var currentReveal;
var mainMenuState=0;
var originalSub;
var originalNav;
var theClose;

// adjusts main navigation and sub navigation based on sender element
function revealSub(sender) {
	if(theClose!=""){
		window.clearTimeout(theClose);
	}
	mainMenuState=0;
	resetSub();
	mainMenuState=1;
	var theSubs=document.getElementById('subNav');
	theSubs.className="reveal";
	for (x=0; x<document.getElementById('mainNav').getElementsByTagName('a').length; x++){
		if (document.getElementById('subNav').getElementsByTagName('div')[x].className=="subLinksOn"){
			originalSub=document.getElementById('subNav').getElementsByTagName('div')[x];
			document.getElementById('mainNav').getElementsByTagName('a')[x].className="off";
			originalNav=document.getElementById('mainNav').getElementsByTagName('a')[x];
		}
		if (sender==document.getElementById('mainNav').getElementsByTagName('a')[x]){
			currentReveal=x;
			document.getElementById('subNav').getElementsByTagName('div')[x].className="subLinksReveal";
			document.getElementById('mainNav').getElementsByTagName('a')[x].className="on";
			adjustSubPosition(sender, x);
		}
	}
	
}

// adjusts sub navigation left position if sub navigation elements are not positioned to overlap the width of sender
function adjustSubPosition(sender, args){
	var tempWidth=0;
	var senderPositionVector=sender.offsetLeft+sender.offsetWidth;
	var theAs=document.getElementById('subNav').getElementsByTagName('div')[args].getElementsByTagName('a');
		for (z=0; z<theAs.length; z++) {
			if (theAs[z].className.indexOf('Subs')!=-1){
				tempWidth+=theAs[z].offsetWidth;
			}
		}
		
		if (senderPositionVector>tempWidth) {
            if (navigator.userAgent.indexOf('MSIE')==-1){
			    document.getElementById('subNav').getElementsByTagName('div')[args].style.paddingLeft=senderPositionVector-tempWidth+20-7-document.getElementById('navContainer').offsetLeft+"px";
			} else {
			    document.getElementById('subNav').getElementsByTagName('div')[args].style.paddingLeft=senderPositionVector-tempWidth+20-7+"px";			
			}
		}
}

// adjusts level3 dropdown menu relative to current sub (var oldSub)
function adjustLevel3Position(){
    var posTop=oldSub.offsetHeight+oldSub.offsetTop;
    var posLeft=oldSub.offsetLeft;
    if (navigator.userAgent.indexOf('MSIE')==-1){
        oldLevel3.style.left=posLeft+document.getElementById('centeredContentDiv').offsetLeft+"px";
    } else {
        oldLevel3.style.left=posLeft+document.getElementById('navContainer').offsetLeft+document.getElementById('centeredContentDiv').offsetLeft+"px";    
    }
}

// resets original "page load state" of main nav and sub nav - page load state is inaccurate but sufficient to describe function
function resetSub(){
    if (originalSub){
	    var theSubs=document.getElementById('subNav');
	    if (mainMenuState!=1) {
		    var theSubs=document.getElementById('subNav');
		    if (oldSub && oldSubClassName){
                oldSub.className=oldSubClassName;
	            document.getElementById(oldSub.innerHTML+"Subs").style.display="none";
            }
	for (x=0; x<document.getElementById('subNav').getElementsByTagName('a').length; x++){
			if (document.getElementById('subNav').getElementsByTagName('a')[x].className.indexOf('with')!=-1){
		    if(originalSubUltimate!=document.getElementById('subNav').getElementsByTagName('a')[x]){
		        document.getElementById('subNav').getElementsByTagName('a')[x].className=document.getElementById('subNav').getElementsByTagName('a')[x].className.replace("on","");
		    }
		}

	}
			    for (x=0; x<document.getElementById('mainNav').getElementsByTagName('a').length; x++){
				    document.getElementById('mainNav').getElementsByTagName('a')[x].className="off";
				    if (document.getElementById('subNav').getElementsByTagName('div')[x].className=="subLinksReveal"){
					    document.getElementById('subNav').getElementsByTagName('div')[x].className="subLinks";
				    }
			    }
            theSubs.className="normal";
	        originalSub.className="subLinksOn";
	        originalNav.className="on";
	    }
	}
}


function triggerSub(){
	if(theClose!="" && originalSub){
		window.clearTimeout(theClose);
	}
	mainMenuState=0;
	theClose = window.setTimeout('resetSub()', 500);
}

// prevents main nav and sub nav from changing based on context
function sustain(){
	mainMenuState=1;
	if(theClose!=""){
		window.clearTimeout(theClose);
	}
}

// triggers timer to reset main nav and sub nav to original page load state
function release(){
	triggerSub();
	mainMenuState=0;
}

var originalSubUltimate;
// sets page variables and adjusts current sub nav position
function init() {
	for (x=0; x<document.getElementById('mainNav').getElementsByTagName('a').length; x++){
		if (document.getElementById('subNav').getElementsByTagName('div')[x].className=="subLinksOn"){
			currentReveal=x;
			originalSub=document.getElementById('subNav').getElementsByTagName('div')[x];
			originalNav=document.getElementById('mainNav').getElementsByTagName('a')[x];
		}
	}
	for (x=0; x<document.getElementById('mainNav').getElementsByTagName('a').length; x++){
		if (document.getElementById('mainNav').getElementsByTagName('a')[x].className=="on"){
			adjustSubPosition(document.getElementById('mainNav').getElementsByTagName('a')[x], x);
			document.getElementById('subNav').getElementsByTagName('div')[x].style.visibility="visible";
		}
	}
	for (x=0; x<document.getElementById('subNav').getElementsByTagName('a').length; x++){
			if (document.getElementById('subNav').getElementsByTagName('a')[x].className.indexOf('withSubson')!=-1){
		    originalSubUltimate=document.getElementById('subNav').getElementsByTagName('a')[x];
		}

	}
}

var oldSub;
var oldLevel3;
var oldSubOn;
var oldSubClassName;

// displays level3 dropdown menu relative to sender
function showLevel3(sender){
    if (originalSub){
	    if (oldSub && sender!=oldSub) {
	        if (oldSubOn!=1){
    	        oldSub.className="withSubs";
    	    }
	        document.getElementById(oldSub.innerHTML+"Subs").style.display="none";
	    }
	    if (sender.className.indexOf('on')!=-1 && sender==originalSubUltimate){
	        oldSubOn=1;
	    } else {
	        oldSubOn=0;
	    }
//alert(oldSubOn);
	    oldSub=sender;
	    oldSubClassName=sender.className;
	    oldLevel3=document.getElementById(sender.innerHTML+"Subs");
	    document.getElementById(sender.innerHTML+"Subs").style.display="block";
	    if (sender.className.indexOf('on')==-1 && sender.className.indexOf('On')==-1){
            sender.className=sender.className+"on";
        }
	    adjustLevel3Position();
	}
}

// hides level3 dropdown menu relative to sender
function hideLevel3(sender){
//    if (originalSub){
//	    if (sender!=oldSub) {
//	        document.getElementById(sender.innerHTML+"Subs").style.display="none";
//	    if (oldSub.className.indexOf('on')!=-1 && oldSubOn!=1){
//	            oldSub.className="withSubs";
//	        }
//	    }
//	}
}

// if current element doesn't have level3 dropdown navigation elements, this function hides any immediate previous dropdown menu
function hideOldLevel3(){
	if (oldSub && oldSub.className.indexOf('on')!=-1 && oldSubOn!=1){
        oldSub.className="withSubs";
	    document.getElementById(oldSub.innerHTML+"Subs").style.display="none";
	    oldSub=null;
	    oldSubOn=0;
    }
}

function doSearch(){
    var theSearchItems=document.getElementById('SimpleSearchBox').value;
    if (theSearchItems!="" && theSearchItems!="Search Microsoft with Live Search"){
        theSearchItems=theSearchItems.replace(" ", "+");
        theSearchItems=escape(theSearchItems);
        document.location.href="http://search.technet.microsoft.com/Default.aspx?Query="+theSearchItems+"&Brand=technet";
    } else {
        return false
    }
}
window.onload=init;