var currentPageLinkItem=null;
var subNavPrefix="maincat_";
var currentPageNavTimer=null;
var subNavArray=null;

function showHideSubNav(id,o) {
	var d = document.getElementById(id);
	hideAllNavigation();
	//Show active L1
	if (o) {o.parentNode.className+=" level_1_active";}
	//Show active L2
	if (d) {
		d.style.left=GetPos(document.getElementById('level2_bar')).x+'px';
		d.style.display='block';
	}
	timerRestore();
}
function timerRestore(){
	if (currentPageNavTimer){
		clearTimeout(currentPageNavTimer);
	}
}
function restoreInitialNavigation(){
	hideAllNavigation();
	currentPageLinkItem.className+=' level_1_active';
	
	for (var i=0;i<subNavArray.length;i++){
		if (subNavArray[i].parentNode==currentPageLinkItem){
			subNavArray[i].style.left=GetPos(document.getElementById('level2_bar')).x+'px';
			subNavArray[i].style.display='block';
		}
	}
}
function hideAllNavigation(){
	//clean lev1 links
	for (var i=0;i<document.getElementById('level1LinkList').childNodes.length;i++){
		if(document.getElementById('level1LinkList').childNodes[i].tagName=='LI'){
			document.getElementById('level1LinkList').childNodes[i].className=document.getElementById('level1LinkList').childNodes[i].className.replace("level_1_active","");
		}
	}
	//clean lev2 divs
	for (var i=0;i<subNavArray.length;i++){
		subNavArray[i].style.display="none";
	}
}

function initPageNavigation(){
	subNavArray=document.getElementsByClassName('links_level2');
	//getting currentActive
	for (var i=0;i<document.getElementById('level1LinkList').childNodes.length;i++){
		if(document.getElementById('level1LinkList').childNodes[i].tagName=='LI'&&document.getElementById('level1LinkList').childNodes[i].className.indexOf('level_1_active')>-1){
			currentPageLinkItem=document.getElementById('level1LinkList').childNodes[i];
		}
		
	}
	//show current subNav
	for (var i=0;i<subNavArray.length;i++){
		if (subNavArray[i].parentNode==currentPageLinkItem){
			subNavArray[i].style.left=GetPos(document.getElementById('level2_bar')).x+'px';
			subNavArray[i].style.display='block';
		}
		//add behaviour on links on L2 links
		for (var j=0;j<subNavArray[i].getElementsByTagName('A').length;j++){
			subNavArray[i].getElementsByTagName('A')[j].onmouseover=function(){
				timerRestore();
			}
		}	
	}

	//add mouseout behaviour on all nav links
	for (var j=0;j<document.getElementById('level1LinkList').getElementsByTagName('A').length;j++){
		document.getElementById('level1LinkList').getElementsByTagName('A')[j].onmouseout=function(){
			currentPageNavTimer=setTimeout('restoreInitialNavigation()',1500)
		}
	}
	
}




function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}
function GetPos(){
	//function GetPos by marin@gatellier.be lm 20040707-15:00
	//returns an object containing x and y positions of Element in the page
	//usage : GetPos(GetObj('obj_id')).x || GetPos(GetObj('obj_id')).y
	arg=GetPos.arguments;t={x:0,y:0};o=arg[0];
	if(o.offsetParent){while(o.offsetParent){t={x:(t.x+=o.offsetLeft),y:(t.y+=o.offsetTop)};o=o.offsetParent;}}else if(o.x&&o.y){t={x:(t.x+=o.x),y:(t.y+=o.y)}};return t;
}
document.getElementsByClassName = function(className){
	var outArray = new Array();
	var item;
	try {
		var xpathResult = document.evaluate('//*[@class = "' + className + '"]', document, null, 0, null);
		while (item = xpathResult.iterateNext())
		outArray[outArray.length] = item;
	}
	catch(err) {
		// ie fix
		var currentIndex = 0;
		var allElements = document.getElementsByTagName('*');
		for(var i=0; i < allElements.length; i++){
			if(allElements[i].className.match(className)){
				outArray[currentIndex] = allElements[i];
				currentIndex++;
			}
		}
	}
	return outArray;
}
addEvent(window, 'load', initPageNavigation);
