// JavaScript Document
//SET GLOBALS
var canvaswidth = 970;
var subnavwidth = '190px';
var timer = 200;
var wheretostartleftalign = 6;
var effectDuration = 100;
var thirdlevelduration = 120;
var topoffsetID = 'header_wrapper';

//NAVIGATION HOLDER
var MainNav = [];
var MainNavInit = false;
		
function initNavEvents()
{
	//init ids
	var mainnav = null;
	var subnav = null;
	for(var a=0; a<MainNav.length; a++)
	{
	    if(!MainNav[a].submenu)
	        continue;
		MainNav[a].submenu.style.width = subnavwidth;
	}

	//init main nav events
	for(var a=0; a<MainNav.length; a++)
	{				 
		function showsub(e)
		{
		    var obj = e.data;
			clearTimeout(obj.outtimer);
			clearTimeout(obj.subnavtimer);
			obj.overtimer = setTimeout(function () {
					$(obj.parentItem).addClass('main_nav_wrapperOn');
					if(obj.submenu && obj.submenu.style.display != 'block')
					{
					    obj.submenu.style.visibility = 'visible';
						$(obj.parentItem).addClass('main_nav_wrapperOn');
						obj.submenu.style.zIndex= 1; 
						jQuery('#main_nav').css('z-index', 600);
						obj.parentItem.style.zIndex= 999; 
								
					    jQuery(obj.submenu).show("blind", {}, effectDuration, function ()
						{	
							obj.parentItem.style.position = 'relative';
							jQuery('#main_nav').css('position', 'relative');
							obj.submenu.style.zIndex= 1; 
						});
					}
					else if(obj.submenu == null)
					{
						$(obj.parentItem).addClass('main_nav_wrapperOn');
						jQuery('#main_nav').css('z-index', 600);
						obj.parentItem.style.zIndex= 999; 
						obj.parentItem.style.position = 'relative';
						jQuery('#main_nav').css('position', 'relative');
					}
			}, timer);
		} 
		jQuery(MainNav[a].parentItem).bind('mouseover', MainNav[a], showsub);
		
		function hidesub(e) 
		{
		    var obj = e.data;
			clearTimeout(obj.overtimer);
			$(obj.parentItem).removeClass('main_nav_wrapperOn');
			obj.outtimer = setTimeout(function () {
					if(obj.submenu && obj.submenu.style.display != 'none')
					{
					    obj.submenu.style.zIndex= '0'; 
						jQuery('#main_nav').css('z-index', 5);
						
						jQuery(obj.submenu).hide("blind", {}, effectDuration);
					}
					else if(obj.submenu == null)
					{
					    jQuery('#main_nav').css('z-index', 5);
					}
			}, timer);
		} 
		jQuery(MainNav[a].parentItem).bind('mouseout', MainNav[a], hidesub);
	}
	
	//init submenu events
	for(var a=0; a<MainNav.length; a++)
	{
		if(MainNav[a].submenu)
		{
			function showsubmenu(e) 
			{
			    var obj = e.data;
				$(obj.parentItem).addClass('main_nav_wrapperOn');
				obj.submenu.style.visibility = 'visible';
				obj.submenu.style.display = 'block';
				clearTimeout(obj.subnavtimer);
				clearTimeout(obj.outtimer);
			} 
			jQuery(MainNav[a].submenu).bind('mouseover', MainNav[a], showsubmenu);
			
			function hidesubmenu(e) 
			{
			    var obj = e.data;
				obj.subnavtimer = setTimeout(function () {
				    $(obj.parentItem).removeClass('main_nav_wrapperOn');
					jQuery('#main_nav').css('z-index', 5);
								
				    jQuery(obj.submenu).hide("blind", {}, effectDuration, function ()
					{	
						obj.submenu.style.visibility = 'hidden';
						obj.submenu.style.display = 'none'; 
					});
				}, timer);
			}
			jQuery(MainNav[a].submenu).bind('mouseout', MainNav[a], hidesubmenu);
		}			
	}
}

function setSubnavLeft(index)
{
	var mainnav_items = jQuery('#main_nav a, #sidebar a'); 
	var leftoffset = null;
	var pageWidth = (jQuery('#body').length > 0 ? jQuery('#body') : jQuery('#home')).width();
	var pageHeight = (jQuery('#body').length > 0 ? jQuery('#body') : jQuery('#home')).height();
	var pageDim = {width: pageWidth, height: pageHeight};
	if(pageDim.width < canvaswidth) { pageDim.width = canvaswidth; }
	var pageMiddle = pageDim.width/2;
	var canvasleft = pageMiddle - canvaswidth/2;
	
	var navwidths = [];
	
	for(var a=0; a < mainnav_items.length; a++)
	{	
		var temp = mainnav_items.eq(a).outerWidth();
		navwidths.push(temp);
	}
	
	navwidths.reverse() 
	var temp = 0;
	var rightoffset = 0;
	var total = 0;
	for(var a=0; a < (navwidths.length-index); a++)
	{	
		temp = temp + navwidths[a];
		if(a > (navwidths.length-wheretostartleftalign-1))
		{
			rightoffset = 0;
		}
		else
		{
			rightoffset = navwidths[a] - parseInt(subnavwidth) - 1;
		}
	}
	for(var a=0; a < navwidths.length; a++)
	{	
		total = total + navwidths[a];
	}
	//alert(canvasleft);
	//canvasleft = temp;
	//canvasleft = canvasleft - temp
	canvasleft = canvasleft - temp + rightoffset-1 + total -5 + (45*index);
	//canvasleft = 156;
	return canvasleft;
}


function reposNav()
{
    if( !MainNavInit )
        return;
	//alert(MainNav.length);
	var mainnav_items = jQuery('#main_nav a');
	var j = 0;
	for(var i=0; i < mainnav_items.length; i++)
	{
	    if(MainNav[i].submenu)
		    MainNav[i].submenu.style.left = setSubnavLeft(i) + 'px';
		++j;
	}
	
	for(var i=0; i < MainNav.length; i++)
	{
	    if(MainNav[i].thirdLvL)
	    {
		    for(var r=0; r < MainNav[i].thirdLvL.length; r++)
		    {
			    MainNav[i].thirdLvL[r].thirdmenuNode.style.left = MainNav[i].thirdLvL[r].thirdmenuleft + 'px';
			    MainNav[i].thirdLvL[r].thirdmenuNode.style.top = MainNav[i].thirdLvL[r].thirdmenutop + 'px';
		    }
		}
	}
}

function initNavPos()
{
	jQuery('#subnav_wrapper').css('top', (jQuery('#header_wrapper').height() + 33)+ 'px');
	//Main Nav Items Array
	var mainnav_items = jQuery('#main_nav a');
	//Get 2ndLevel subnav and put node references in array
	for(var i=0; i < mainnav_items.length; i++)
	{		
		var mainsubnav = {
			parentItem : null,
			submenu : null,
			submenuleft : null,
			overtimer : null,
			outtimer : null,
			subnavtimer : null
		}
		
		//look for subnav wrapper
		var subnavID = mainnav_items[i].id + '_subnav';
		
		if(jQuery('#' + subnavID).length > 0)
		{
			jQuery('#' + subnavID + ' *').filter(function() { return (this.innerHTML == ""); }).remove(); 
			mainsubnav.parentItem = mainnav_items[i];
			mainsubnav.submenu = jQuery('#' + subnavID)[0];
			
			if(jQuery('#' + subnavID + ' div').length > 0)
				mainsubnav.thirdLvL = [];
			
			MainNav.push(mainsubnav);			
		}
		else
		{
			mainsubnav.parentItem = mainnav_items[i];
			mainsubnav.submenu = null;
			mainsubnav.thirdLvL = null;
			
			MainNav.push(mainsubnav);
		}
	}
	MainNavInit = true;
}
function initNav()
{	
	initNavPos();
	reposNav();
	initNavEvents();
}
jQuery(window).load(initNav);
jQuery(window).resize(reposNav);
