window.onload = niftyaddevents;

hideDelay=1000;

function niftyaddevents(){
	
	var options = new Array();
	var divs = document.getElementsByTagName('div');
	for(var j=0;j<divs.length;j++){
		if(divs[j].className.indexOf('niftymenu') != -1){
			var lis = divs[j].getElementsByTagName('li');
			for(var i =0;i<lis.length;i++){
				lis[i].onmouseover = niftyover;
				lis[i].onmouseout = niftyoutSetTimeout;
				
				if(lis[i].getElementsByTagName('ul').length > 0){
					lis[i].className += 'haschild';
					
				}
				
				var uls = lis[i].getElementsByTagName('ul');
				for(var k=0;k<uls.length;k++){
					var found = 'no';
					for(var z=0;z<options.length;z++){
						if(options[z] == uls[k]){
							found = 'yes';
						}
					}
					if(found == 'no'){
						options[options.length] = uls[k];
						uls[k].style.zIndex = '100';
						niftyEffectLoad(uls[k]);
					}
				}
			}
		}
	}
}
function niftyoutSetTimeout(e){
	if(!e){
		var myevent = window.event;
	}
	else{
		var myevent = e;
	}
	var reltg = (myevent.relatedTarget) ? myevent.relatedTarget : myevent.toElement;
	if(reltg){
		var under = ancestor(reltg,this);
		if(under === false && reltg != this){
			window.niftyLast = this;
			var parent = this.parentNode;
			while(parent.parentNode && parent.className.indexOf('niftymenu') == -1){
				parent = parent.parentNode;
			}
			if(parent.className.indexOf('delay') != -1){
				window.niftyTimeout = setTimeout(function(){niftyout()},hideDelay);
			}
			else{
				niftyout();
			}
		}
	}
}
function niftyout(){
if(window.niftyLast==null)return false;
	var uls = window.niftyLast.getElementsByTagName('ul');
	var sib;
	for(var i=0;i<uls.length;i++){
		uls[i].style.display = 'none';
		window.niftyLast.className = 'haschild hide';
		
	}
	window.lastover = null;
}
function niftyover(e){
	if(!e){
		var myevent = window.event;
	}
	else{
		var myevent = e;
	}
	myevent.cancelBubble = true;
	if(myevent.stopPropagation){
		myevent.stopPropagation();
	}
	clearTimeout(window.niftyTimeout);
	if(window.niftyLast && window.niftyLast != this && ancestor(this,window.niftyLast) == false){
		niftyout();
	}
	else{
		window.niftyLast = null;
	}
	var reltg = (myevent.relatedTarget) ? myevent.relatedTarget : myevent.fromElement;
	var ob = this.getElementsByTagName('ul');
	var under = ancestor(reltg,this);
	if(ob[0] && under == false){
		if(window.lastover != ob[0]){
			
			this.className = 'haschild';
			niftyEffectOver(ob[0],this);
			window.lastover = ob[0];
		}
	}
}
function niftySetOpacity(ob,level){
	if(ob){
		//level is between 0 and 10
		//need to convert to decimal for standard
		var standard = level/10;
		//need to convert to 0-100 scale for IE filter
		var ie = level*10;
		ob.style.opacity = standard;
		ob.style.filter = "alpha(opacity="+ie+")"
	}
}
function niftyIncreaseOpacity(ob){
		var current = ob.style.opacity;
		if(lastob == ob && lastop == current){
			//niftyout has not interfered
			current = current *10;
			var upone = current +1;
			niftySetOpacity(ob,upone);
			lastob = ob;
			lastop = upone/10;
		}
}

function niftyEffectOver(ob,parent){
	ob.style.display = 'block';
}

function niftyEffectLoad(ob){
	var parent = ob.parentNode;
	while(parent.parentNode && parent.className.indexOf('niftymenu') == -1){
		parent = parent.parentNode;
	}
	
	ob.className = 'none';
	ob.style.display = 'none';
	
}

function ancestor(child, parent){
	if(child==null)return false;
	if(navigator.userAgent.indexOf('Gecko') != -1 && navigator.userAgent.indexOf('Opera') == -1){
		var allc = parent.getElementsByTagName('*');
		for(var i= 0;i<allc.length;i++){
			if(allc[i] == child){
				return true;
			}
		}
	}
	else{
		for(; child.parentNode; child = child.parentNode){
			if(child.parentNode === parent){
				return true;
			}
		}
	}
	return false;
}
