/**
 * BSG JavaScript Document
 * @author uiL (uillb@hotmail.com)
 */
/**
 * set Function timeout method
 */
Function.prototype.timeOut = function(t){
    var __method = this;
    
    var argu = Array.prototype.slice.call(arguments, 1);
    var f = function(){
        __method.apply(null, argu);
    }
    return setTimeout(f, t);
};
/**
 * get various level links of nav
 * @id menu id
 * @lvl depth of links
 */
function getTopLinks(id, lvl){
    var navroot = document.getElementById(id);
    var links = navroot.getElementsByTagName("li");
    var topLinks = [];
    var lvl1Links = [];
    for (var i = 0; i < links.length; i++) {
        if (links[i].id.substr(0, 3) == "nav") {
            //alert(links[i].id);
            topLinks.push(links[i]);
        }
        else 
            if (links[i].className == "level1") {
                lvl1Links.push(links[i]);
            }
    }
    if (lvl == 0) {
        return topLinks;
    }
    else {
        return lvl1Links;
    }
};
/**
 * toggle dropdown menu show of hide
 * @id dropdown menu parent node id
 * @vis visibility of dropdown menu
 * @time delay time of disappear
 */
function setSubMenu(id, vis, time){
    smroot = document.getElementById(id);
    function hideMenu(menu){
        menu.parentNode.className = "";
        menu.style.display = "none";
    };
    switch (vis) {
        case "show":
            if (smroot.getElementsByTagName("ul")[0]) {
                smroot.className = "over";
                smroot.getElementsByTagName("ul")[0].style.display = "block";
            }
            break;
        case "hide":
            if (smroot.getElementsByTagName("ul")[0]) {
                var timer = hideMenu.timeOut(time, smroot.getElementsByTagName("ul")[0]);	
				setDefaultMenu.timeOut(time, "nav");
                return timer;
            }
            break;
        default:
            vis = false;
            break;
    }
};
/**
 * set the current section status "on"
 * @id dropdown menu parent node id
 */
function setDefaultMenu(id){
    var navroot = document.getElementById(id);
    tmpTopLinks = getTopLinks(id, 0);
    switch (navroot.className) {
        case "ms":
            tmpTopLinks[0].className = "on";
            break;
        case "so":
            tmpTopLinks[1].className = "on";
            break;
        case "in":
            tmpTopLinks[2].className = "on";
            break;
        case "tr":
            tmpTopLinks[3].className = "on";
            break;
        case "ne":
            tmpTopLinks[4].className = "on";
            break;
        default:
            break;           
    }
};

function resetDropMenus() {
	var toplinks = getTopLinks("nav", 0);
	setDefaultMenu("nav");
	for (var i = 0; i < toplinks.length; i++) {
		if(toplinks[i].getElementsByTagName("ul")[0]) {
			if(toplinks[i].className == "over") {
				toplinks[i].className = "";
			}
			toplinks[i].getElementsByTagName("ul")[0].style.display = "none";
		}
	}
}


var tabnavid;

// set styles and behaves for table
function setBSGTable(){
    $("table.bsgTable tr").hover(
        function() {
            $("td a",this).addClass("bsg-table-hover");
            $("td",this).addClass("bsg-table-hover");
        },
        function() {
            $("td a",this).removeClass("bsg-table-hover");
            $("td",this).removeClass("bsg-table-hover");
        }
    );
}


/**
 * set the footer to bottom of browser
 */
function setFoot() {
	var divFoot = document.getElementById("foot");
	var divSp = document.getElementById("special");
	var tHeight = 100;
	if(navigator.userAgent.indexOf("MSIE") != -1) {
		tHeight = 130;
	} else {
		tHeight = 100;
	}
	
	if (divSp != null && divFoot != null)
	{
	    if (divSp.offsetHeight + tHeight < document.documentElement.clientHeight) {
		    divFoot.style.position = "absolute";
		    divFoot.style.bottom = "0";
	    } else {
		    divFoot.style.position = "";
		    divFoot.style.bottom = "";
	    }
	}
}

function doFirstSearch(){
    if (typeof EkSearch != 'undefined') {
        //debugger;
        __LoadSearchResult(EkSearch.getArguements(), 'control=__ecmsearchresult$&__ecmcurrentpage=1');
        //alert(document.getElementById("ecmBasicKeywords").Value);
    }
};
window.onload = function(){
    //setDropDown("nav");
	setFoot();
    arrTopLinks = getTopLinks("nav", 0);
    setDefaultMenu("nav");
    var tls = [];
    for (var i = 0; i < arrTopLinks.length; i++) {
        tls[i] = document.getElementById(arrTopLinks[i].id);
        tls[i].onmouseover = function(){
            clearTimeout(this.t);
			resetDropMenus();
            setSubMenu(this.id, "show", 0);
        }
        tls[i].onmouseout = function(){
            this.t = setSubMenu(this.id, "hide", 700);
        }
    }
    
    // set styles for table
    setBSGTable();
    if (document.getElementById(tabnavid)) {
        var cTitle = document.getElementsByTagName("h2");
        cTitle[0].style.marginTop = "48px";
    }
    // set search
    doFirstSearch();
    
};
window.onresize = function() {
	setFoot();
}

