/**
 * Project:     aimscore - All Information Management System core
 * File:        menueLite.js
 *
 * see aimscore.php for licence informations
 *
 * @copyright 2007-2009 Andrej Zieger
 * @author Andrej Zieger <andrej@ziegers.net>
 */

var ActiveCat = new Array();
var closeTimeout = new Array();
var deactivateTimeout = new Array();
var activeLink = new Array();
var activeLinkSolo = new Array();
var lockedCats = new Array();
var lockedLinks = new Array();
var lastOpenLink = new Array();
var lastOpenCat = new Array();
var delayEffect = false;
var menueInit = false;


var menueLite = new Object();

menueLite.none = function(){};

menueLite.globalHandler = new Object();
menueLite.globalHandler.window = new Object();
menueLite.globalHandler.window.old = new Object();

menueLite.globalHandler.window.onload = function(e){
	var menueList = document.getElementsByTagName("ul");
	
	for(var i = 0; i < menueList.length;i++){
		if(menueList[i].className.search("menueLiteMenue") == -1)
			continue;
		var menue = menueList[i];
		menueLite.menue.initMenue(menue);
	}
	
	if(menueLite.globalHandler.window.old.onload)
		menueLite.globalHandler.window.old.onload(e);
}

menueLite.globalHandler.window.old.onload = window.onload;
window.onload = menueLite.globalHandler.window.onload;


menueLite.menue = new Object();
menueLite.menue.menues = new Array();

menueLite.menue.initMenue = function(menue,crawled){
	if(menue.className.search("open") != -1){
		menue.rel = "open";
	}
	for(var i = 0;i< menue.childNodes.length; i++){
		if(!menue.childNodes[i].getElementsByTagName)
			continue;
		var links = menue.childNodes[i].getElementsByTagName("a");
		for(var x = 0; x < links.length; x++){
			if((!links[x].href)
				||(links[x].href  == window.location.href)
				||(links[x].href == window.location.href.substr(0,window.location.href.lastIndexOf("/")+1))){
				//links[x].removeAttribute("href");

				if(links[x].parentNode.parentNode.className.search("cur") == -1)
						links[x].href = "JavaScript:menueLite.none()";
			}

		}
		
		menue.childNodes[i].onclick = menueLite.menue.onclick;
		menue.childNodes[i].onmouseover = menueLite.menue.mouseover;
		menue.childNodes[i].onmouseout = menueLite.menue.mouseout;
	
	}
	if(!crawled){
		var uls = menue.getElementsByTagName("ul");
		for(var i = 0; i < uls.length;i++)
			menueLite.menue.initMenue(uls[i]);
		menueLite.menue.menues.push(menue);
	}
	
}

menueLite.menue.onclick = function(e){
	var e = (window.event) ? window.event : e;
	
	var tg = (window.event) ? e.srcElement : e.target;

	if(!(tg.parentNode.parentNode == this))
		return;
	
	if(this.lastChild.nodeName != "UL")
		return;
	if(this.lastChild.rel == "open")
		menueLite.menue.close.call(this.lastChild,e);
	else
		menueLite.menue.open.call(this.lastChild,e);
}

menueLite.menue.open = function(e){
	this.rel = "open";
	if(this.className.search("close") == -1)
		this.className += " open";
	else
		this.className = this.className = this.className.replace(/close/g,"open");

}
menueLite.menue.close = function(e){
	this.rel = "close";
	this.className = this.className.replace(/open/g,"close");
}

menueLite.menue.mouseover = function(e){
	this.className += " over";	
}


menueLite.menue.mouseout = function(e){
	
	if (!e) var e = window.event;
	var tg = (window.event) ? e.srcElement : e.target;
	//if (tg.nodeName != 'DIV') return;
	var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	if(!reltg)
		return;
	while (reltg != tg && reltg.nodeName != 'BODY'){
		if(reltg == document)
			break;
		reltg= reltg.parentNode;
	}
	if (reltg== tg) return;
	
	this.className = this.className.replace(/over/g,"");
}

menueLite.menue.addItem = function(parent,position,name,url,cssclass){
	if(!parent.insertBefore){
		if(document.getElementById(parent))
			parent = document.getElementById(parent);
		else if(menueLite.menue.menues[parent]){
			parent = menueLite.menue.menues[parent];
		}
	}
	
	if(!parent.insertBefore)
		return;

	if(position > 0)
		var before = parent.childNodes[position];
	else
		var before = "";

	var item = gui.createElementTo("li",parent,null,before);
	var text = gui.createElementTo("span",item);
	var link = gui.createElementTo("a",text);
	
	gui.createTextNodeTo(name,link);
	
	if(isFunction(url))
		link.onclick = url;
	else
		link.href = url;
		
	item.className = cssclass;

}

menueLite.menue.addCategory = function(parent,position,name,link,cssclass){
	if(!parent.insertBefore){
		if(document.getElementById(parent))
			parent = document.getElementById(parent);
		else if(menueLite.menue.menues[parent])
			parent = menueLite.menue.menues[parent];
	}
	
	if(!parent.insertBefore)
		return;
}
