﻿var currentReveal;
var mainMenuState=0;
var originalSub;//Lưu SubTab hiện tại (tab của trang mà người dùng đang duyệt)
var originalNav;// Lưu mainTab hiện tại
var originalNavSpanLeft;// Lưu mainSpanLeft hiện tại
var originalNavSpanRight;// Lưu mainSpanRight hiện tại
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++){
	    //Tìm được thằng subNav hiện tại
		if (document.getElementById('subNav').getElementsByTagName('div')[x].className=="subLinksOn"){
		    //Gán lại các original Tab
			originalSub=document.getElementById('subNav').getElementsByTagName('div')[x];
			originalNav=document.getElementById('mainNav').getElementsByTagName('a')[x];
			originalNavSpanLeft = document.getElementById('mainNav').getElementsByTagName('span')[x*2];
			originalNavSpanRight = document.getElementById('mainNav').getElementsByTagName('span')[x*2+1];					
		}
		//Gán class off cho tất cả các tab
			document.getElementById('mainNav').getElementsByTagName('a')[x].className="off";
			document.getElementById('mainNav').getElementsByTagName('span')[x*2].className="leftoff";
			document.getElementById('mainNav').getElementsByTagName('span')[x*2+1].className="rightoff";
		if (sender==document.getElementById('mainNav').getElementsByTagName('a')[x]){
			currentReveal=x;
			document.getElementById('subNav').getElementsByTagName('div')[x].className="subLinksReveal";
			//Gán class on cho Tab hiện thời
			document.getElementById('mainNav').getElementsByTagName('a')[x].className="on";
			document.getElementById('mainNav').getElementsByTagName('span')[x*2].className="lefton";
			document.getElementById('mainNav').getElementsByTagName('span')[x*2+1].className="righton";
			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');
	var ImageWidthCenter=sender.offsetWidth/2;
	var LeftPosition = sender.offsetLeft;
	var p1 = LeftPosition+ImageWidthCenter;
	var TotalWidth=document.getElementById('mainNav').offsetWidth;
	for (z=0; z<theAs.length; z++) {
		if (theAs[z].className.indexOf('Subs')!=-1){
			tempWidth+=theAs[z].offsetWidth;
		}
	}
	var CenterSub = p1-(tempWidth/2);//Center the subnav
	if((CenterSub+tempWidth)>TotalWidth){
	    CenterSub=TotalWidth-tempWidth-15; //If the right edge of the subnav is great than the total width, align right
	}
	if(CenterSub<100){
	    CenterSub=0; //If the sub is close to the left side, dont center it
	}
	if (senderPositionVector>tempWidth) {
        if (navigator.userAgent.indexOf('MSIE')==-1){
		    document.getElementById('subNav').getElementsByTagName('div')[args].style.paddingLeft=CenterSub+"px";
		} else {
		    
		    document.getElementById('subNav').getElementsByTagName('div')[args].style.paddingLeft=CenterSub+"px";			
		}
	}
}

// adjusts level3 dropdown menu relative to current sub (var oldSub)
function adjustLevel3Position(){
    var posTop=1+oldSub.offsetHeight+oldSub.offsetTop;
    var posLeft=oldSub.offsetLeft;
    if (navigator.userAgent.indexOf('MSIE')==-1){
        //if(oldLevel3)
            oldLevel3.style.left= 5 + posLeft+document.getElementById('centeredContentDiv').offsetLeft+"px";
    } else {
        //if(oldLevel3)
        oldLevel3.style.left= 5 + 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(){
	    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";
				    document.getElementById('mainNav').getElementsByTagName('span')[x*2].className="leftoff";
				    document.getElementById('mainNav').getElementsByTagName('span')[x*2+1].className="rightoff";
				    if (document.getElementById('subNav').getElementsByTagName('div')[x].className=="subLinksReveal"){
					    document.getElementById('subNav').getElementsByTagName('div')[x].className="subLinks";
				    }
			    }
            theSubs.className="normal";
	        if(originalSub) originalSub.className="subLinksOn";
	        if(originalNav) originalNav.className="on";
	        if(originalNavSpanLeft) originalNavSpanLeft.className = "lefton";
            if(originalNavSpanRight) originalNavSpanRight.className = "righton";
	    }
}


function triggerSub(){
	if(theClose!="" && originalSub){
		window.clearTimeout(theClose);
	}
	mainMenuState=0;
	theClose = window.setTimeout('resetSub()', 1000);
}

// 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;
			//Gán lại các original Tabs
			originalSub=document.getElementById('subNav').getElementsByTagName('div')[x];
			originalNav=document.getElementById('mainNav').getElementsByTagName('a')[x];
			originalNavSpanLeft = document.getElementById('mainNav').getElementsByTagName('span')[x*2];
			originalNavSpanRight = document.getElementById('mainNav').getElementsByTagName('span')[x*2+1];
		}
	}
	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;
	    }
	    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);
        return true;
    }
    else
    {
        return false;
    }
}

function HideFooterGradient(){
    var tablesArray = document.getElementsByTagName("TABLE");
    var tableLength = tablesArray.length-1;
    tablesArray[tableLength].style.display='none';
}
      
function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') 
    {
        window.onload = func;
    } else 
    {
        window.onload = function() 
        {
            if (oldonload) 
            {
                oldonload();
            }
            func();
        }
    }
 } 
 addLoadEvent(init);