var shSpeed=40;										//Mozilla fix bug realized in "hide enqueue"
var shEnqueueNumber=0;					
var shEnqueue=Array();

function shShow(id) {
	for(var i=0;i<shEnqueueNumber;i++){										//if in enqueue - not delete
		if(!shEnqueue[i] || (shEnqueue[i]=="undefined")) continue;
		if(shEnqueue[i]!=id) continue;
		delete(shEnqueue[i]);
	}

	var o=document.getElementById(id);
	if(!o || !o.style) return;

	o.style.visibility = 'visible';
	o.style.display = "block";
	return true;
}

function shHide(id) {
	shEnqueue[shEnqueueNumber++]=id;
	setTimeout("shRealHide()",shSpeed);
	return false;
}

function shRealHide(){
	for(var i=0;i<shEnqueueNumber;i++){
		if(!shEnqueue[i] || (shEnqueue[i]=="undefined")) continue;

		var o=document.getElementById(shEnqueue[i]);
		if(!o || !o.style) {
			delete(shEnqueue[i]);
			continue;
		}

		o.style.visibility = 'hidden';
		o.style.display = "none";
	}
	shEnqueueNumber=0;
}

function shSwitch(id){
	var o=document.getElementById(id);
	if(!o || !o.style) return;
	
	if(!o.style.visibility || o.style.visibility=="hidden" ||  o.style.display == "none") return shShow(id);
	return shHide(id);
}

shTmpl="<div class=\"mnparent\" onMouseOver=\"shShow('mn[NUMBER]');\" onMouseOut=\"shHide('mn[NUMBER]');\">[TITLE]<div id=\"mn[NUMBER]\" class=\"mnchild\">[MENU]</div></div>";
shTmplsml="<div class=\"mnparent\" onMouseOver=\"shShow('mn[NUMBER]');\" onMouseOut=\"shHide('mn[NUMBER]');\">[TITLE]<div id=\"mn[NUMBER]\" class=\"mnchildsml\">[MENU]</div></div>";
shTmpllrg="<div class=\"mnparent\" onMouseOver=\"shShow('mn[NUMBER]');\" onMouseOut=\"shHide('mn[NUMBER]');\">[TITLE]<div id=\"mn[NUMBER]\" class=\"mnchildlrg\">[MENU]</div></div>";

shNumber=0;
shX=function(a,b,c){if(c)str=c;else str=shTmpl;str=str.replace(/\[TITLE\]/g,a);str=str.replace(/\[MENU\]/g,b);str=str.replace(/\[NUMBER\]/g,shNumber);shNumber++;return str;}
