var dropliciousShowingUpDuration = 0;
var dropliciousHidingDuration = 0;
var dropliciousHideDelay = 0;

function dropliciousShowingUpEffect(element){
	if(!element.visible()){
		element.show();
	}
}

function dropliciousHidingEffect(element){
	element.hide();
	element.up('li').removeClassName('hover');
}

function setDelayedHide(element){
	element.addClassName('waitingtohide')
	if(!element.hasClassName('hidding')){
		if (!element.hasClassName('hiddingtimerset')){	
			element.addClassName('hiddingtimerset');
			setTimeout(function(){ delayedHide(element); }, dropliciousHideDelay * 1000);
		}
	}
}
function delayedHide(dropElement){
	dropElement.removeClassName('hiddingtimerset');
	if (dropElement.hasClassName('waitingtohide')){
		dropliciousHidingEffect(dropElement);
		dropElement.addClassName('hidding');
		setTimeout(
			function(){
				dropElement.removeClassName('waitingtohide');
				dropElement.removeClassName('hidding');
				dropElement.removeClassName('active');
			}, dropliciousHidingDuration * 1000);
	}
}
function linkMouseOut(id){
	var dropElement = id.element().next('div');
	if (dropElement && dropElement.hasClassName('active')){
		setDelayedHide(dropElement);
	}
}
function linkMouseOver(id){
	var dropElement = id.element().next('div');
	if(dropElement){
		if (!dropElement.hasClassName('hidding')){
			dropElement.removeClassName('waitingtohide');
		}
		if (!dropElement.hasClassName('active')){
			dropElement.addClassName('active');
			dropElement.up('li').addClassName('hover');
			dropliciousShowingUpEffect(dropElement);
		}
	}
}
function submenuMouseOut(event){
	var dropElement = event.findElement(".dd");
	if (dropElement && dropElement.hasClassName('active')){
		setDelayedHide(dropElement);
	}
}

function submenuMouseOver(event){
	var dropElement = event.findElement(".dd");
	if (dropElement && !dropElement.hasClassName('hidding')){
		dropElement.removeClassName('waitingtohide');
	}
}

