function init() {
	var nav = document.getElementById("nav");
	var LIArray = getElementsByClass("level01", nav, "li");
	for(var i = 0; i < LIArray.length; i++) {
		var LIItem = LIArray[i];
		var hasChild = false;
		for(var j = 0; j < LIItem.childNodes.length; j++) {
			var childNode = LIItem.childNodes[j];
			if(childNode.tagName == "A") {
				var linkChild = childNode;
			}
			if(childNode.tagName == "UL") {
				hasChild = true;
			}
		}
		if(hasChild) {
			addEvent(linkChild, "click", childEngine);
			linkChild.style.backgroundPosition = "0 bottom";
		}
	}
}
addEvent(window, "load", init);

function childEngine(e) {
	var currentLink = getTarget(e);
	var LIItem = getParent(currentLink, "li");

	for(var i = 0; i < LIItem.childNodes.length; i++) {
		var childNode = LIItem.childNodes[i];
		if(childNode.tagName == "UL") {
			var subMenu = childNode;
			break;
		}
	}

	if(getStyle(subMenu, "display") == "block") {
		currentLink.style.backgroundPosition = "0 bottom";
		subMenu.style.display = "none";
	}
	else {
		currentLink.style.backgroundPosition = "0 top";
		subMenu.style.display = "block";
	}
}

function addEvent(obj, evType, fn){
	if(obj) {
		var w3DOM = obj.addEventListener;
		var ieDOM = obj.attachEvent;
		if (w3DOM)  obj.addEventListener(evType, fn, true);
		if (ieDOM)  obj.attachEvent("on"+evType, fn);
	}
}

function getTarget(e) {
	var obj = e;
	var w3DOM = window.addEventListener;
	if(w3DOM){
		if(e.currentTarget) {
			obj = e.currentTarget;
		}
	}
	else {
		if(e.srcElement) {
			obj = e.srcElement;
		}
	}
	return obj;
}

function getParent(el, pTagName) {
	if (el == null) {
		return null;
	}
	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase()) {
		return el;
	}
	else {
		return getParent(el.parentNode, pTagName);
	}
}

function getStyle(el,styleProp) {
	if(String(typeof(el)) != "object") {
		var x = document.getElementById(el);
	}
	else {
		var x = el;	
	}
	if (x.currentStyle) {
		var y = x.currentStyle[styleProp];
		if(styleProp == "height") {
			y = x.scrollHeight + "px";
		}
	}
	else if (window.getComputedStyle) {
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	}
	return y;
}

function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	if(node == null) {
		node = document;
	}
	else if(typeof(node) == "string") {
		node = document.getElementById(node);
	}
	if(tag == null) {
		tag = '*';
	}
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for(i = 0; i < elsLen; i++) {
		if(pattern.test(els[i].className)) {
			classElements.push(els[i]);
		}
	}
	return classElements;
}

