var shSpeed=40;										//Mozilla fix bug realized in "hide enqueue"
var shDelaySpeed=800;	

var shEnqueueNumber=0;					
var shEnqueue=Array();

var shDelayEnqueueNumber=0;	
var shDelayEnqueueCurrent=0;
var shDelayEnqueue=Array();		//FIFO type

function shDelayShow(id){
	shDelayEnqueue[shDelayEnqueueNumber++]=id;
	setTimeout("shRealDelay()",shDelaySpeed);
	return false;
}
function shDelayHide(id) {
	shEnqueue[shEnqueueNumber++]=id;
	setTimeout("shRealHide()",shDelaySpeed);
	return false;
}

function shRealDelay(){
	var o=document.getElementById(shDelayEnqueue[shDelayEnqueueCurrent]);
	if(!o || !o.style) {
		alert('err');
		delete(shDelayEnqueue[shDelayEnqueueCurrent++]);
		return false;
	}

	o.style.visibility = 'visible';
	o.style.display = "block";
	delete(shDelayEnqueue[shDelayEnqueueCurrent++]);
	return false;
}

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 = "inline";
	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);
}

function shShowOne(id,ids){
	for (var i=0;i<ids.length;i++){
		if (ids[i]==id) continue;
		shEnqueue[shEnqueueNumber++]=ids[i];
	}
	shRealHide();
	shShow(id);
	return false;
}

function shOneTextPart(ids,id_prefix,def){
	ids[ids.length]=id_prefix+ids.length;
	if(def) document.write("<div class='textpartdef' id='"+ids[ids.length-1]+"'>");
	else  document.write("<div class='textpart' id='"+ids[ids.length-1]+"'>");
	return false;
}

shTmpl="<div class=\"textpart\" onMouseOver=\"shShow('mn[NUMBER]');\" onMouseOut=\"shHide('mn[NUMBER]');\">[TITLE]<div id=\"mn[NUMBER]\" class=\"mnchild\">[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;}

shXM=function(image,width,height,alt,b,tmpl){
	var a="<img src='/images/"+image+"' width='"+width+"' height='"+height+"' alt='"+alt+"'>";
	document.write(shX(a,b,tmpl));
	return false;
}


prwNumber=0;

function Preview(f,w,h){
	if(!w) w=700;
	if(!h) h=755;
	var prms='scrollbars=1,resizable=1,width='+w+',height='+h+',status=no,toolbar=no,menubar=no';
	open(f,prwNumber++,prms);
	return false;
}
