/***********************************************************************

Author:     Arno Hoogma
URL:        http://www.4rn0.nl

***********************************************************************/


if (typeof window.jQuery != 'undefined') {

	$(function()
	{
		
		initAnchorEvents();
		initNavigationHelpers();
		initMembers();
		initPosts();
		initNodes();
		initBrowserHelpers();
		
	});

	/**
	 * Anchors
	 */
	
	function initAnchorEvents()
	{
		
		$('a[rel=external]').attr('target', '_blank');
		
	}

	/**
	 * Navigation
	 */
	
	function initNavigationHelpers()
	{
		
		if ($('body:not(#punindex) a[href*=forum/]').size()) {
			
			$.get($('ul#navigation > li a[href*=forum/]').attr('href'), function(data) {
				
				var html = '';
				
				$(data).find('.tclcon h3 a').each(function(i,n) {
					
					var href = document.location.href.split('/');
					var target = $(n).attr('href').split('/');

					target = ($('body').hasClass('forum') ? '' : 'forum/') + target[target.length - 1];
					html += '<li><a href="' + target + '"' + ($(n).attr('href') == href[href.length - 1] ? ' class="active"' : '') + '>' + $(n).text() + '</a></li>';
					
				});

				$('ul#navigation > li a[href*=forum/]').parent().append('<ul>' + html + '</ul>');
				
			});
			
			$('ul#navigation > li a[href*=forum/]').css('cursor', 'auto').click(function() {
				return false;
			});
			
		}
		
		if ($('ul#navigation > li a[href*=library/]').size()) {

			$.get($('ul#navigation > li a[href*=library/]').attr('href'), function(data) {
				
				$('ul#navigation > li a[href*=library/]').parent().append('<div class="sub">' + $(data).find('div.primary').html() + '</div>');
				$('ul#navigation > li a[href*=library/]').click(function() {

					$('ul#navigation li div.sub').hide();
					$(document).unbind('click').bind('click', function(event) {
						if (!$(event.target).parents('ul#navigation').size()) {
							$('ul#navigation > li a[href*=library/]').next('div.sub').hide();
							$(document).unbind('click');
						}
					});
					
					$(this).blur().next('div.sub').show();
					return false;

				});

			});
			
		}

		if ($('body:not(.login) a[href=login/]').size()) {

			$.get($('a[href=login/]').attr('href'), function(data) {

				$('ul#navigation > li a[href=login/]').parent().append('<div class="sub">' + $(data).find('div.primary').html() + '</div>');
				$('ul#navigation > li a[href=login/]').click(function() {

					$('ul#navigation li div.sub').hide();
					$(document).unbind('click').bind('click', function(event) {
						if (!$(event.target).parents('ul#navigation').size()) {
							$('a[href=login/]').next('div.sub').hide();
							$(document).unbind('click');
						}
					});
					
					$(this).blur().next('div.sub').show();
					return false;

				});

			});
			
		}
		
		if ($('ul#navigation > li a[href*=members/]').size()) {

			$.get($('ul#navigation > li a[href*=members/]').attr('href'), function(data) {

				$('ul#navigation > li a[href*=members/]').parent().append('<div class="sub">' + $(data).find('div.primary').html() + '</div>');
				$('ul#navigation > li a[href*=members/]').click(function() {

					$('ul#navigation li div.sub').hide();
					$(document).unbind('click').bind('click', function(event) {
						if (!$(event.target).parents('ul#navigation').size()) {
							$('ul#navigation > li a[href*=members/]').next('div.sub').hide();
							$(document).unbind('click');
						}
					});
					
					$(this).blur().next('div.sub').show();
					return false;

				});

			});
			
		}

		if ($('body:not(.visitor) a[href=visitor/]').size()) {

			$.get($('a[href=visitor/]').attr('href'), function(data) {

				$('ul#navigation > li a[href=visitor/]').parent().append('<div class="sub">' + $(data).find('div.primary').html() + '</div>');
				$('ul#navigation > li a[href=visitor/]').click(function() {

					$('ul#navigation li div.sub').hide();
					$(document).unbind('click').bind('click', function(event) {
						if (!$(event.target).parents('ul#navigation').size()) {
							$('a[href=visitor/]').next('div.sub').hide();
							$(document).unbind('click');
						}
					});
					
					$(this).blur().next('div.sub').show();
					return false;

				});

			});
			
		}
		
	}

	/**
	 * Member search
	 */
	
	function initMembers()
	{
		
		$('body.members h3:first').addClass('active');
		$('body.members h3:not(:first) ~ dl').hide();
		
		$('body.members h3').css('cursor', 'pointer').click(function() {
			if (!$(this).hasClass('active')) {
				$('body.members h3 ~ dl').slideUp(300);
				$('body.members h3').removeClass('active');
				$(this).nextAll('dl').slideToggle(300);
				$(this).toggleClass('active');
			}
		});
		
	}
	
	/**
	 * Posts
	 */
	
	function initPosts()
	{
		
		$('body.traineeships-and-academic-posts div#mainContent form').hide();
		$('body.traineeships-and-academic-posts div#mainContent dl').hide();
		
		$('body.traineeships-and-academic-posts div#mainContent h2 + p').append('<br><span>Add a item to this listing by <a>clicking here</a></span>');
		
		$('body.traineeships-and-academic-posts div#mainContent span a').click(function() {
			
			$(this).parents('div[class]').find('ul').hide();
			$(this).parents('div[class]').find('p span').css('visibility', 'hidden');
			$(this).parents('div[class]').find('form').slideDown(300);
			
			return false;
			
		});
		
		$('body.traineeships-and-academic-posts div#mainContent div.primary li strong').css('cursor', 'pointer').click(function() {
			if (!$(this).hasClass('active')) {
				$('body.traineeships-and-academic-posts div#mainContent div.primary dl').slideUp(300);
				$('body.traineeships-and-academic-posts div#mainContent div.primary li strong').removeClass('active');
				$(this).nextAll('dl').slideToggle(300);
				$(this).toggleClass('active');
			}
			else {
				$('dl', $(this).parent('li')).slideUp(300);
				$(this).removeClass('active');
			}
		});
		
		$('body.traineeships-and-academic-posts div#mainContent div.secondary li strong').css('cursor', 'pointer').click(function() {
			if (!$(this).hasClass('active')) {
				$('body.traineeships-and-academic-posts div#mainContent div.secondary dl').slideUp(300);
				$('body.traineeships-and-academic-posts div#mainContent div.secondary li strong').removeClass('active');
				$(this).nextAll('dl').slideToggle(300);
				$(this).toggleClass('active');
			}
			else {
				$('dl', $(this).parent('li')).slideUp(300);
				$(this).removeClass('active');
			}
		});
		
	}
	
	/**
	 * Nodes
	 */
	
	function initNodes()
	{
		
		if ($('body').hasClass('home')) {
		
			var height = 0;
		
			$('ul.nodes li img').wrap('<div class="rounded"></div>');
			$('ul.nodes li div.rounded').prepend('<div class="top"></div>').append('<div class="bottom"></div>');
		
			$('ul.nodes li').each(function(i,n) {

				var h = $(n).height();

				if (h > height) {
					height = h;
				}
			
			});
		
			$('ul.nodes').innerfade({ 
				speed: 1250, 
				timeout: 5000, 
				type: 'sequence', 
				containerheight: height + 'px'
			});
			
		}
		
	}

	/**
	 * IE sucks
	 */

	function initBrowserHelpers()
	{
		
		if ($.browser.msie && parseInt($.browser.version) == 6) {
		
			$('ul#navigation li:has(ul)').hover(
				function () {
					$(this).addClass('hover');
					$('select').css('visibility', 'hidden');
				},
				function () {
					$(this).removeClass('hover');
					$('select').css('visibility', 'visible');
				}
			);
			
		}
		
		if ($.browser.msie) {
			
			$('ul#navigation > li:has(ul)').each(function(i,n) {
				$(n).css('z-index', 100 - i);
			});
			
		}
		
	}

}