function extend_columns() {
	var contentheight = $('#contentarea').height();
	var modulesheight = $('#modules_right').height();
	
	if (modulesheight<contentheight) $('#modules_right').height(contentheight);
	if (modulesheight>contentheight) $('#content').height(modulesheight);
}

function hide_sub_nav(parentid) {
	var $subnav = $('#navsubitems');
	$subnav.data('fadingout',true);
	$subnav.fadeOut(
		'fast',
		(function(){
			$this = $(this);
			$this.data('fadingout',false);
			$this.data('fadingin',false);
			show_sub_nav($this.data('nextshow')); 
		})
	);
}

function show_sub_nav(parentid) {
	var $subnav = $('#navsubitems');
	
	if ($subnav.data('fadingin')) {
		$subnav.data('fadingin',false);
		$subnav.stop(true,true);
		$subnav.hide();
	}
	
	if ($subnav.data('fadingout')) {
		$subnav.data('nextshow',parentid);
		return;
	}
	
	if ($subnav.is(':visible')) {
		$subnav.data('nextshow',parentid);
		return hide_sub_nav();
	}
	
	$subnav.empty();
	$subnav.hide();
	
	if (!window.navigation[parentid]) return;
	
	var itemcount = window.navigation[parentid].length;
	for (var i=0; i<itemcount; i++) {
		var $item = $('<li />');
		var $link = $('<a />');
		$link.attr('href',window.navigation[parentid][i].link ? window.navigation[parentid][i].link : ('/pages/' + window.navigation[parentid][i].name) );
		$link.html(window.navigation[parentid][i].title);
		$link.appendTo($item);
		if (i==itemcount-1) $item.addClass('last');
		$item.appendTo($subnav);
	}
	
	$subnav.data('fadingin',true);
	$subnav.data('fadingout',false);
	window.active_menuid = parentid;
	$subnav.fadeIn(
		'fast',
		(function() {
			$(this).data('fadingin',false);
		})
	);
}

function generate_navigation() {
	for (var id in window.navigation) {
		var $mitem = $('#mitem'+id);
		if (!$mitem.length) continue;
		
		$mitem.hover(
			(function() {
				$this = $(this);
				$('a',$this).addClass('hover');
				var parentid = $this.attr('id').replace(/^mitem/,'');
				if (parentid!=window.active_menuid) show_sub_nav(parentid);
					
				$this.addClass('hover');
			}),
			
			(function() {
				$this = $(this);
				$this.removeClass('hover');
				$('a',$this).removeClass('hover');
			})
		);
		
		$mitem.click(
			(function() {
				window.location = $('a',$(this)).attr('href');
			})
		);
		
		
	}
	show_sub_nav(window.navigation_first);
}

function setup_search_field() {
	var searchstr = 'Search...';
	
	$field = $('#searchfield');
	$field.focus((function() {
		$this = $(this);
		if ($this.hasClass('nokeyword')) {
			$this.val('');
			$this.removeClass('nokeyword');
		}
	}));
	$field.blur((function() {
		$this = $(this);
		if ($this.val()=='') {
			$this.val(searchstr);
			$this.addClass('nokeyword');
		}
	}));
	
	$field.addClass('nokeyword');
	$field.val(searchstr);
}

$(function() {
	setup_search_field();
	extend_columns();
	generate_navigation();
});
