var _ua = navigator.userAgent.toLowerCase();
var browser = {
  version: (_ua.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
  opera: /opera/i.test(_ua),
  msie: (!this.opera && /msie/i.test(_ua)),
  msie6: (!this.opera && /msie 6/i.test(_ua)),
  mozilla: /firefox/i.test(_ua),
  chrome: /chrome/i.test(_ua),
  safari: (!(/chrome/i.test(_ua)) && /webkit|safari|khtml/i.test(_ua)),
  iphone: /iphone/i.test(_ua)
}

function doSelect(type) {
	if(!browser.msie6) return;

	var catHidden = document.getElementById('catHidden');
	var catId = document.getElementById('catId');
	switch(type){
		case'hide':
			catId.style.display = 'none';
			catHidden.style.display = 'inline';
		break;
		case'show':
			catHidden.style.display = 'none';
			catId.style.display = 'inline';
		break;
	}
}

var masthead_level_1 	= "";
var masthead_level_2 	= "";
var masthead_level_3 	= "";

var level_1				= null;
var level_2				= null;
var level_2_link		= null;
var level_3				= null;
var level_3Timer 		= null;

if (document.getElementsByName("masthead.level_1").length > 0) {
	masthead_level_1 = document.getElementsByName("masthead.level_1")[0].content;
}
if (document.getElementsByName("masthead.level_2").length > 0) {
	masthead_level_2 = document.getElementsByName("masthead.level_2")[0].content;
}
if (document.getElementsByName("masthead.level_3").length > 0) {
	masthead_level_3 = document.getElementsByName("masthead.level_3")[0].content;
}

/* SHOW LEVEL 1 */
function showLevel_1(id) {
	if (document.getElementById(id) != null) {
		document.getElementById(id).style.backgroundPosition = '0 -34px';
	
		var index = parseInt(id.substring(id.lastIndexOf('_')+1));
		if (document.getElementById('menuLevel1_separator_'+index) != null) {
			document.getElementById('menuLevel1_separator_'+index).style.display = 'none';
		}
		if (document.getElementById('menuLevel1_separator_'+(index+1)) != null) {
			document.getElementById('menuLevel1_separator_'+(index+1)).style.display = 'none';
		}
		hideLevel_2_placeHolder();
		level_1=id;
	}
}

function hideLevel_1() {
	if (level_1 != null && document.getElementById(level_1)) {
		document.getElementById(level_1).style.backgroundPosition = '0 0';

		var index = parseInt(level_1.substring(level_1.lastIndexOf('_')+1));
		if (document.getElementById('menuLevel1_separator_'+index) != null) {
			document.getElementById('menuLevel1_separator_'+index).style.display = '';
		}
		if (document.getElementById('menuLevel1_separator_'+(index+1)) != null) {
			document.getElementById('menuLevel1_separator_'+(index+1)).style.display = '';
		}	
	}
}

function showLevel_2(id) {
	if (document.getElementById(id) != null) {
		hideLevel_2_placeHolder();
		document.getElementById(id).style.display="inline";
		level_2=id;		
	}
}

function hideLevel_2() {
	if (document.getElementById(level_2) != null) {
		document.getElementById(level_2).style.display="none";
	}
}

function hideLevel_2_placeHolder() {
	if (document.getElementById('level2_placeholder') != null) {
		document.getElementById('level2_placeholder').style.display="none";
	}
}

function showLevel_3(parent_id, id) {
	doSelect('hide');
	if (document.getElementById(id) != null) {
		var userAgent = navigator.userAgent;
	    var offset = (userAgent.indexOf("MSIE")!=-1)?[0,30]:[0,18];
		
		var y = (userAgent.indexOf("MSIE")!=-1) ? document.getElementById(parent_id).offsetTop : 163;
		var x = document.getElementById(parent_id).offsetLeft;

		var parent_offset = document.getElementById(parent_id).offsetParent;
		
		while (parent_offset != null) {
		    y += parent_offset.offsetTop;
		    x += parent_offset.offsetLeft;
		    parent_offset = parent_offset.offsetParent;
		}
		
		x += offset[0];
		y += offset[1];

		document.getElementById(id).style.top = y+'px';
		document.getElementById(id).style.left = x+'px';
		
		document.getElementById(parent_id).setAttribute("class", "menuLevel2Selected");
		document.getElementById(parent_id).setAttribute("className", "menuLevel2Selected");
		
		document.getElementById(id).setAttribute("class", "submenuLevel3");
		document.getElementById(id).setAttribute("className", "submenuLevel3");
		document.getElementById(id).style.display = "inline";

		if (x - document.getElementById(id).offsetWidth/2 > 0)
		{
					document.getElementById(id).style.left = (x - document.getElementById(id).offsetWidth/2 + document.getElementById(parent_id).offsetWidth) +'px';
		}

		if (x - document.getElementById(id).offsetWidth > 0)
		{
					document.getElementById(id).style.left = (x - document.getElementById(id).offsetWidth + document.getElementById(parent_id).offsetWidth) +'px';
		}
		
		if (document.getElementById(id).offsetWidth < document.getElementById(parent_id).offsetWidth) {
			document.getElementById(id).style.width = document.getElementById(parent_id).offsetWidth + 10+"px";
		}
		
		level_2_link=parent_id;
		level_3=id;
	}
}

function hideLevel_3() {
	doSelect('show');
	if (document.getElementById(level_3) != null) {
		document.getElementById(level_3).style.display="none";
		document.getElementById(level_2_link).setAttribute("class", "menuLevel2");
		document.getElementById(level_2_link).setAttribute("className", "menuLevel2");		
	}
}

function startLevel3Timer() {
	level_3Timer = setTimeout("hideLevel_3();", 500);
}

function stopLevel3Timer() {
	clearTimeout(level_3Timer);
}

function loadMenu(url, callback) {
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xhr = new ActiveXObject("Msxml2.XMLHTTP");
	}
	xhr.open("GET", url, true);
	xhr.setRequestHeader("Content-Type","text/xml");
	xhr.onreadystatechange=function(){
		if (xhr.readyState==4){
			if (xhr.status==200){
				parseResponse(xhr);
			}else{
				//alert(xhr.status);
			}
		};
	};

	xhr.send(null);
}

function parseResponse(xhr) {
	var root = null;
	
	if (window.ActiveXObject) {
		var d = new ActiveXObject("MSXML2.DOMDocument");
	    d.loadXML(xhr.responseText);
	    root = d.documentElement; 
     }
     else {
		root = xhr.responseXML.documentElement;
	}
	createMenuLevel1(root.childNodes);
}

function createMenuLevel1(menus) {
	var menuFound 	= false;
	var linkCounter = 1;
	var menuCounter	= 1;
	
	for (var c = 0; c<menus.length; c++) {
		if (menus[c].nodeName == "menu") {
			
			menuFound = true;
			
			var wrapper = document.getElementById('level1Container').insertCell(-1);
			wrapper.setAttribute("class", "menuLevel1");
			wrapper.setAttribute("className", "menuLevel1");
			
			var sourceHolder = document.createElement('div');
			
			// Create link
			var link = document.createElement("a");
			link.style.background = 'url('+ menus[c].getAttribute("src") +') no-repeat 0 0';
			link.style.height = '34px';
			link.style.width = menus[c].getAttribute("width");
			link.setAttribute("id", "menuLevel1_link_"+linkCounter);
			link.setAttribute("href", menus[c].getAttribute("link"));
			link.setAttribute("class", "menuLevel1");
			link.setAttribute("className", "menuLevel1");
			link.setAttribute("onmouseover", "hideLevel_1(); hideLevel_2(); hideLevel_3(); showLevel_1(this.id); showLevel_2('menuContainer_"+menuCounter+"_"+linkCounter+"');");			
	
			var showLayer = false;

			// Check for children			
			if (menus[c].getElementsByTagName("menu").length > 0) {
				createMenuLevel2(menus[c].childNodes, menuCounter+"_"+linkCounter,showLayer);
			}
			sourceHolder.appendChild(link);
			wrapper.innerHTML = sourceHolder.innerHTML;		
			menuCounter++;
			linkCounter++;
		}
	}
}

function createMenuLevel2(menus, containerId, showLayer) {

	var container = document.createElement("div");
	container.setAttribute("class", "submenuLevel2");
	container.setAttribute("className", "submenuLevel2");
	container.setAttribute("id","menuContainer_"+containerId);
	container.setAttribute("level",1);
		
	var linkCounter = 1;
	var menuCounter	= 1;
	
	for (var c = 0; c<menus.length; c++) {
		if (menus[c].nodeName == "menu") {			
			// Create link for LI contents
			var link = document.createElement("a");
			link.setAttribute("id", "menuLevel2_link"+containerId+"."+linkCounter);
			link.setAttribute("href", menus[c].getAttribute("link"));
			link.setAttribute("class", "menuLevel2");	
			link.setAttribute("className", "menuLevel2");	
			link.setAttribute("onMouseOver", "hideLevel_2(); hideLevel_3(); showLevel_2('"+container.id+"'); showLevel_3(this.id,'menuContainer_"+containerId+"_"+menuCounter+"_"+linkCounter+"');");
			link.innerHTML = menus[c].getAttribute("label");
			
			// Sub menu indicator
			var subImg  = document.createElement("img");
			subImg.setAttribute("src", "/images/submenu.gif");
			subImg.setAttribute("width", "16");
			subImg.setAttribute("height", "16");
			subImg.setAttribute("border", "0");
			subImg.setAttribute("align", "absmiddle");
			
			// perform highlights			
			if (masthead_level_2.toLowerCase() == menus[c].getAttribute("label").toLowerCase()) {				
				link.innerHTML = "<strong>"+menus[c].getAttribute("label")+"<strong>";				
				container.style.display="block";
				hideLevel_2_placeHolder();
				level_2 = container.id;
			}
			else if (showLayer) {
				container.style.display="block";
				hideLevel_2_placeHolder();
				level_2 = container.id;
			}
			// Check for children
			
			if (menus[c].getElementsByTagName("menu").length > 0) {
				link.appendChild(subImg);
				createMenuLevel3(menus[c].childNodes, containerId+"_"+menuCounter+"_"+linkCounter, "menuContainer_"+containerId);
			}
			else {
				subImg.setAttribute("src", "/images/blank.gif");
				subImg.setAttribute("width", "1");
				subImg.setAttribute("height", "16");
				link.removeAttribute("onMouseOver");
			}
			
			link.appendChild(subImg);			
			container.appendChild(link);
			menuCounter++;
			linkCounter++;	
		}
	}
	
	if (document.getElementById("level2Container") != null) {
		var holder = document.createElement("div");
		holder.appendChild(container);
		document.getElementById("level2Container").innerHTML += holder.innerHTML;
	}
}

function createMenuLevel3(menus, containerId) {

	var container = document.createElement("div");
	container.setAttribute("class", "submenuLevel3");
	container.setAttribute("className", "submenuLevel3");
	container.setAttribute("id","menuContainer_"+containerId);
	container.setAttribute("level",2);
	container.setAttribute("onMouseOut", "startLevel3Timer()");
	container.setAttribute("onMouseOver", "stopLevel3Timer()");
	
	var list = document.createElement("ul");
	list.setAttribute("class", "menuLevel3");
	list.setAttribute("className", "menuLevel3");
	
	var menuFound 				= false;
	var previousWithChildren 	= false;
	var linkCounter = 1;
	var menuCounter	= 1;
	for (var c = 0; c<menus.length; c++) {
		if (menus[c].nodeName == "menu") {
						
			// Create link for LI contents
			var link = document.createElement("a");
			link.setAttribute("id", "menuLevel3_link"+containerId+"."+linkCounter);
			link.setAttribute("href", menus[c].getAttribute("link"));
			link.setAttribute("class", "menuLevel3");	
			link.setAttribute("className", "menuLevel3");	
			link.innerHTML = menus[c].getAttribute("label");
			link.setAttribute("onMouseOver", "stopLevel3Timer()");
			
			// Create LI for menu item
			var listItem 	= document.createElement("li");
			listItem.setAttribute("class", "menuLevel3");
			listItem.setAttribute("className", "menuLevel3");
			
			// Sub menu indicator
			var listSeparator  = document.createElement("li");
			listSeparator.setAttribute("class", "menuLevel3Separator");
			listSeparator.setAttribute("className", "menuLevel3Separator");
			listSeparator.innerHTML = '';
			
			var listSubSpan  = document.createElement("span");
			listSubSpan.setAttribute("class", "menuLevel3SubMenuIndicator");
			listSubSpan.setAttribute("className", "menuLevel3SubMenuIndicator");
			listSubSpan.innerHTML = '&nbsp;';
			
			var listPreSpan = document.createElement("span");
			listPreSpan.setAttribute("class", "menuLevel3PreSubMenuIndicator");
			listPreSpan.setAttribute("className", "menuLevel3PreSubMenuIndicator");
			listPreSpan.innerHTML = '';
			
			// check for invalid menus
			if (menus[c].getAttribute('link').toLowerCase().indexOf('javascript') == -1) {
				
				// Check for children			
				if (menus[c].getElementsByTagName("menu").length > 0) {	
					if (menuFound) {
						listItem.appendChild(listPreSpan);
					}
					menuFound=true;
					previousWithChildren=true;
					listItem.appendChild(link);		
					listItem.appendChild(listSubSpan);	
					list.appendChild(listItem);
					list.appendChild(listSeparator);
					createMenuLevel4(menus[c].childNodes, list, containerId+"_"+menuCounter+"_"+linkCounter);				
				}
				else {
					if (previousWithChildren) {
						listItem.appendChild(listPreSpan);
					}
					previousWithChildren = false;
					menuFound=true;
					listItem.appendChild(link);		
					listItem.appendChild(listSubSpan);	
					list.appendChild(listItem);
					list.appendChild(listSeparator);	
				}
			
			}
			
			// perform highlights			
			if (masthead_level_3.toLowerCase() == menus[c].getAttribute("label").toLowerCase()) {				
				link.innerHTML = "<strong>"+menus[c].getAttribute("label")+"<strong>";				
			}
			
			menuCounter++;
			linkCounter++;	
		}
	}
	
	container.appendChild(list);
	
	if (document.getElementById("level3Container") != null) {
		var holder = document.createElement("div");
		holder.appendChild(container);
		document.getElementById("level3Container").innerHTML += holder.innerHTML;
	}
}

function createMenuLevel4(menus, parentContainer, containerId) {

	var container = document.createElement("ul");
	container.setAttribute("class", "menuLevel4");
	container.setAttribute("className", "menuLevel4");
	container.setAttribute("id","menuContainer_"+containerId);
	
	var menuFound 	= false;
	var linkCounter = 1;
	var menuCounter	= 1;
	
	for (var c = 0; c<menus.length; c++) {
		if (menus[c].nodeName == "menu") {	
			// check for invalid menus
			if (menus[c].getAttribute('link').toLowerCase().indexOf('javascript') == -1 && menus[c].getAttribute('label').toLowerCase().indexOf('ecode') == -1 ) {
				// Create link for LI contents
				var link = document.createElement("a");
				link.setAttribute("id", "menuLevel4_link"+containerId+"."+linkCounter);
				link.setAttribute("href", menus[c].getAttribute("link"));
				link.setAttribute("class", "menuLevel4");	
				link.setAttribute("className", "menuLevel4");	
				link.innerHTML = menus[c].getAttribute("label");
				
				// Create LI for menu item
				var listItem 	= document.createElement("li");
				listItem.setAttribute("class", "menuLevel4");
				listItem.setAttribute("className", "menuLevel4");
				
				var listSpan  = document.createElement("li");
				listSpan.setAttribute("class", "menuLevel4Separator");
				listSpan.setAttribute("className", "menuLevel4Separator");
				listSpan.innerHTML = '';
				
				listItem.appendChild(link);						
				container.appendChild(listItem);
				container.appendChild(listSpan);
			}

			menuCounter++;
			linkCounter++;	
		}
	}
	
	parentContainer.appendChild(container);
}


function nowShowTheMenu() {
	if (level_1 == null)
	{
		showLevel_1('menuLevel1_link_3'); showLevel_2('menuContainer_3_3');
	}
}
(function(){//闭包，保护全局变量 
     var fns=[]; 
     document.addDomReadyEvent = function(fn) { 
         fns.push(fn); 
     } 
     function runFns(){ 
         for(var i=0;i<fns.length;i++){ 
             fns[i](); 
         } 
     } 
     //W3C 
     if(document.addEventListener){ 
         document.addEventListener("DOMContentLoaded", runFns, false); 
     }    
     else { //IE 
var dummy = location.protocol == "https:" ? "https://javascript:void(0)" : "javascript:void(0)";
document.write("<script id='__ie_onload' defer='defer' src='" + dummy + "'><\/script>");
document.getElementById("__ie_onload").onreadystatechange = function() {
if (this.readyState == "complete") {
runFns();
}
}
     } 
})(); 

document.addDomReadyEvent(nowShowTheMenu);

