// JavaScript Document
//SET GLOBALS
var timer = 400;
var effectDuration = .2;
var thirdlevelduration = .12;
var topoffsetID = 'header_wrapper';

var sectionontimer = null;

var subnav = $('subnav_wrapper');


//NAVIGATION HOLDER
var MainNav = new Array();
		
function initNavEvents()
{
	//init ids
	var mainnav = null;
	var subnav = null;
	
	if(sectionon != null)
	{
			//MainNav[sectionon].submenu.hide();
		MainNav[sectionon].submenu.parentNode.insertBefore( MainNav[sectionon].submenu, MainNav[sectionon].submenu.parentNode.firstChild);
			
	}

	//init main nav events
	for(var a=0; a<MainNav.length; a++)
	{				  
		
		
		if(a != sectionon)
		{
			function showsub(event, obj) 
			{    
				clearTimeout(obj.outtimer);
				clearTimeout(obj.subnavtimer);

				obj.overtimer = setTimeout(function () {		
							
						clearTimeout(sectionontimer);
						if(obj.submenu.style.display != 'block')
						{
							if(sectionon == null)
							{
								new Effect.BlindDown(obj.submenu, 
								{
									duration: effectDuration,
									beforeStart: function ()
									{
										
										obj.submenu.style.visibility = 'visible';
										obj.submenu.style.display = 'none'; 
										obj.submenu.style.zIndex= '100'; 
									},
									afterFinish: function ()
									{
										obj.submenu.style.visibility = 'visible';
										obj.submenu.style.display = 'block'; 
										obj.submenu.style.width = '800px'; 
										obj.submenu.style.height = '35px'; 
									}
								});
							}
							else
							{
							
								new Effect.Appear(obj.submenu, 
								{
									duration: effectDuration,
									beforeStart: function ()
									{
										MainNav[sectionon].parentItem.className = '';
										obj.submenu.style.visibility = 'visible';
										obj.submenu.style.display = 'none'; 
										obj.submenu.style.zIndex= '100'; 
										MainNav[sectionon].submenu.hide();
										
									},
									afterFinish: function ()
									{
										obj.submenu.style.visibility = 'visible';
										obj.submenu.style.display = 'block'; 
										obj.submenu.style.width = '800px'; 
										obj.submenu.style.height = '35px'; 
									}
								});
							
							}
							
						}
				}, timer);
				   
			} 
			
			MainNav[a].parentItem.observe('mouseover', showsub.bindAsEventListener(this, MainNav[a]));   
	
			
			function hidesub(event, obj) 
			{    
				clearTimeout(obj.overtimer);
				
				obj.parentItem.className = '';
				obj.outtimer = setTimeout(function () {
						if(obj.submenu.style.display != 'none')
						{
							if(sectionon == null)
							{
								new Effect.BlindUp(obj.submenu, 
								{
									duration:effectDuration,
									beforeStart: function ()
									{
										obj.submenu.style.zIndex= '0'; 
										obj.submenu.style.display = 'block'; 
									},
									afterFinish: function ()
									{
										obj.submenu.style.visibility = 'hidden';
										obj.submenu.style.display = 'none'; 
									}
								});
							}
							else
							{
								
								new Effect.Fade(obj.submenu, 
								{
									duration:effectDuration,
									beforeStart: function ()
									{
										obj.submenu.style.zIndex= '0'; 
										obj.submenu.style.display = 'block'; 
									},
									afterFinish: function ()
									{
										obj.submenu.style.visibility = 'hidden';
										obj.submenu.style.display = 'none'; 
										
									}
								});
								
								sectionontimer = setTimeout(function () {
									new Effect.Appear(MainNav[sectionon].submenu, 
									{
										duration:effectDuration,
										beforeStart: function ()
										{
											MainNav[sectionon].submenu.style.visibility = 'visible';
											MainNav[sectionon].submenu.style.display = 'none'; 
											MainNav[sectionon].submenu.style.zIndex= '100'; 
										},
										afterFinish: function ()
										{
											MainNav[sectionon].parentItem.className = 'main_nav_wrapperSectionOn';
											MainNav[sectionon].submenu.style.visibility = 'visible';
											MainNav[sectionon].submenu.style.display = 'block'; 
											MainNav[sectionon].submenu.style.width = '800px'; 
											MainNav[sectionon].submenu.style.height = '35px'; 
										}
									});
								}, timer);
							}
							
						}
				}, timer);
			} 
			MainNav[a].parentItem.observe('mouseout', hidesub.bindAsEventListener(this, MainNav[a]));  
		
		
		
		}
		
		if(a != sectionon)
		{
			MainNav[a].submenu.hide();
			MainNav[a].parentItem.className = '';
		}
		else
		{
			MainNav[a].submenu.show();
			MainNav[a].parentItem.className = 'main_nav_wrapperSectionOn';
		}
		
		
	}
	
	//init submenu events
	for(var a=0; a<MainNav.length; a++)
	{
		if(a != sectionon)
		{
			if(MainNav[a].submenu)
			{
				function showsubmenu(event, obj) 
				{    
					
					obj.parentItem.className = 'main_nav_wrapperOn';
	
					obj.submenu.style.visibility = 'visible';
					obj.submenu.style.display = 'block';   
					clearTimeout(obj.subnavtimer);
					clearTimeout(obj.outtimer);
				} 
				MainNav[a].submenu.observe('mouseover', showsubmenu.bindAsEventListener(this, MainNav[a]));   
				
				
				function hidesubmenu(event, obj) 
				{   
					obj.subnavtimer = setTimeout(function () {
						
						if(sectionon == null)
						{
							new Effect.BlindUp(obj.submenu, 
								{
									duration:effectDuration,
									beforeStart: function ()
									{
										
									},
									afterFinish: function ()
									{
										obj.parentItem.className = '';
										obj.submenu.style.visibility = 'hidden';
										obj.submenu.style.display = 'none';
										
										
									}
								});
						}
						else
						{
						
							new Effect.Fade(obj.submenu, 
								{
									duration:effectDuration,
									beforeStart: function ()
									{
										
									},
									afterFinish: function ()
									{
										obj.parentItem.className = '';
										obj.submenu.style.visibility = 'hidden';
										obj.submenu.style.display = 'none';
										
										
									}
								});
							new Effect.Appear(MainNav[sectionon].submenu, 
								{
									duration:effectDuration,
									beforeStart: function ()
									{
										MainNav[sectionon].submenu.style.visibility = 'visible';
										MainNav[sectionon].submenu.style.display = 'none'; 
										MainNav[sectionon].submenu.style.zIndex= '100'; 
									},
									afterFinish: function ()
									{
										MainNav[sectionon].parentItem.className = 'main_nav_wrapperSectionOn';
										MainNav[sectionon].submenu.style.visibility = 'visible';
										MainNav[sectionon].submenu.style.display = 'block'; 
										MainNav[sectionon].submenu.style.width = '800px'; 
										MainNav[sectionon].submenu.style.height = '35px'; 
									}
								});
			
						
						}
						
						
					}, timer);
					
					
					
				} 
				MainNav[a].submenu.observe('mouseout', hidesubmenu.bindAsEventListener(this, MainNav[a]));  
			}
		}
	}

}

function initNavPos()
{
	$('subnav_wrapper').style.top = $('header_wrapper').getHeight() -1 + 'px';
	//Main Nav Items Array
	if(sectionon != null)
	{
		$('subnav').style.height = '35px'; 
		
	}
	else
	{
		$('subnav_wrapper').style.position = 'absolute';
		$('subnav_wrapper').style.left = '0px';
	}
	
	var mainnav_items = $$('#main_nav a');
	mainnav_items[mainnav_items.length-1].parentNode.style.backgroundImage = 'url(none)';
	//Get 2ndLevel subnav and put node references in array
	for(var i=0; i < mainnav_items.length; i++)
	{		
		
		var mainsubnav = {
			parentItem : null,
			submenu : null,
			overtimer : null,
			outtimer : null,
			subnavtimer : null
		}
		
		//look for subnav wrapper
		var subnavID = mainnav_items[i].id + '_subnav';
		var subnavitem = $(subnavID);
		if(subnavitem)
		{
			if(i != sectionon)
			{
				subnavitem.hide();		


			}
			subnavitem.cleanWhitespace(); 
			mainsubnav.parentItem = mainnav_items[i];

			mainsubnav.submenu = subnavitem;
			MainNav.push(mainsubnav);
			
		}
	}

}



// Function to remove white spaces from nodes
function removeWhitespace(node) 
{
	var loopIndex;
	
	for (loopIndex = 0; loopIndex < node.childNodes.length; 
	  loopIndex++) {
	
	  var currentNode = node.childNodes[loopIndex];
	
	  if (currentNode.nodeType == 1) {
		removeWhitespace(currentNode);
	  }
	
	  if (((/^\s+$/.test(currentNode.nodeValue))) &&   
		(currentNode.nodeType == 3)) {
		  node.removeChild(node.childNodes[loopIndex--]);
	  }
	}
}

function checkmainnav(str, level)
{
	str = str.replace(sitebase, '');
	var string = str.split('/');
	var stringcompare = '';
	for(var i=0; i<level; i++)
	{
		if(string[i].indexOf('.') == -1)
		{
			stringcompare = stringcompare + string[i] + '/' ;
		}
	}
	
	if(currentURL.indexOf(stringcompare) != -1)
		return true;
	else
		return false;
	//alert(stringcompare);

}



function prepnav()
{
	//var mainnav = new Array();
	var mainnav_page = $('main_nav');
	var subnav_page = $('subnav');
	
	var subnavDiv = document.createElement('div');
	
	var subnav = new Array();
	var datasource = $('navigation');
	removeWhitespace(datasource);
	
	var mainnavuls = datasource.childNodes;
	//alert(mainnavuls);
	
	for(var i=0; i<mainnavuls.length; i++)
	{
		var nav = mainnavuls[i].firstChild;
		var temp = document.createElement('li');
		nav.id = nav.innerHTML.replace(' ', '_');
		//alert(nav.getAttribute('href'));
		if(checkmainnav(nav.getAttribute('href'), 1))
		{
			sectionon = i;
			
			
			
			//alert(nav.getAttribute('href'));
		}
		temp.appendChild(nav);
		mainnav_page.appendChild(temp);
		if(mainnavuls[i].firstChild)
		{
			var tempsub = mainnavuls[i].firstChild;
			tempsub.id = nav.id+'_subnav';
			//alert(mainnavuls[i].innerHTML);
			/*if(checkmainnav(tempsub.getAttribute('href')))
			{
				
			}*/
			
			var thirdtemp = tempsub.childNodes;
			for(var q=0; q<thirdtemp.length; q++)
			{
				if(currentURL.indexOf(thirdtemp[q].firstChild.getAttribute('href')) != -1)
				{
					thirdtemp[q].firstChild.className = 'secondnavon';
				}
				
				//alert(thirdtemp[q].firstChild.getAttribute('href'));
				var temp4 = thirdtemp[q].getElementsByTagName('ul');
				if(temp4.length != 0)
				{
					
					
					var temp5 = temp4[0].getElementsByTagName('a');
					var issubthird = false;
					for(var h=0; h<temp5.length; h++)
					{
						if(checkmainnav(temp5[h].getAttribute('href'), 2))
						{
							issubthird = true;
							
							if(currentURL.indexOf(temp5[h].getAttribute('href')) != -1)
							{
								temp5[h].className = 'thirdnavon';
								temp5[h].parentNode.parentNode.previousSibling.className = 'secondnavon';
							}
						}
					}
					if(issubthird)
					{
						
						var content = $('content_col');
						removeWhitespace(content);
						
						content.className = content.className + ' colfloat_right';

						
						var lhn = document.createElement('div');
						lhn.className = 'colfloat_left';
						
						temp4[0].style.display = 'block';
						temp4[0].className = 'lhn_wrapper';
						lhn.appendChild(temp4[0]);
	
						content.parentNode.appendChild(lhn);
						
						var clear = document.createElement('img');
						clear.src = '/online/uicomponents/images/spacer.gif';
						clear.className = 'clear';
						content.parentNode.appendChild(clear);
						
						$('content_wrapper').style.backgroundImage = 'url(/online/uicomponents/images/doublecol_bg.gif)';
						

					}
					else
					{
						temp4[0].style.display = 'none';
					}
					
				}	
				subnav_page.appendChild(tempsub);
			}
		}
			
	}

}

function initNav()
{	
	prepnav();
	initNavPos();
	//reposNav();
	initNavEvents();
	$('subnav_container').style.display = 'none';
}