//(С) 2000 MDD-WEBSERVICES www.mdd.ru
//Автор: Ревзин Михаил mrevsin@iname.com

var xx = new Array();
var dx = new Array();
var menu_overed = new Array();
var header_overed = new Array();
var menu_style = new Array();
var menu_visible = new Array();
var menu_count=10;
var Rolling=new Array();
var step=20;
var minx=-219;
var maxx=21;

for(i=1;i<=menu_count;i++) {
 menu_overed[i] = 0; 
 menu_visible[i] = 0; 
 header_overed[i] = 0; 
 Rolling[i] = 0;
}


function layer_over(id){
	menu_overed[id] = 1;
	if (Rolling[id]==1) dx[id]=Math.abs(dx[id]);
}

function layer_out(id){
	menu_overed[id] = 0;
	if (menu_style[id]==1) Turn(id,0);
	if (menu_style[id]==2) setTimeout("BeginRoll(" + id +", 0);",100);
}

function header_over(id){
	header_overed[id] = 1;
	if (menu_style[id]==1) Turn(id,1);
	if ((menu_style[id]==2) && (menu_visible[id]==0)) setTimeout("BeginRoll(" + id +", 1);",100);
}

function header_out(id){
		header_overed[id] = 0;
		if (menu_style[id]==1) Turn(id,0);
		if (menu_style[id]==2) setTimeout("BeginRoll(" + id +", 0);",100);
}

function CreateMenuLayer(text, id, top, left, z, styl) {
	if(document.layers)
	{
  	var str="<LAYER ID=menu" + id + " TOP=" + top + " LEFT=" + left + " Z-INDEX=" + z + " onmouseover=\"layer_over(" + id + ");\" onmouseout=\"layer_out(" + id + ");\" VISIBILITY=HIDE>" + text + "</LAYER>\n";
  	document.write(str);
	}
	else
	if(document.all)
	{
		var str="<div id=menu" + id + " style=\"position:absolute;top:" + top + ";left:" + left + ";z-index:" + z +";visibility:hidden;width:100;filter:alpha(opacity=100);\" onmouseover=\"layer_over(" + id + ");\" onmouseout=\"layer_out(" + id + ");\">" + text + "</div>\n";
		document.write(str);
	}
	menu_style[id] = styl;
};

function CreateLayer(text, top, left, z) {
	if(document.layers)
	{
  	var str="<LAYER TOP=" + top + " LEFT=" + left + " Z-INDEX=" + z + " VISIBILITY=SHOW>" + text + "</LAYER>\n";
  	document.write(str);
	}
	else
	if(document.all)
	{
		var str="<div style=\"position:absolute;top:" + top + ";left:" + left + ";z-index:" + z +";visibility:visible;\" >" + text + "</div>\n";
		document.write(str);
	}
};

function CreateHiddenLayer(text, id, top, left, z) {
	if(document.layers)
	{
  	var str="<LAYER ID=" + id + " TOP=" + top + " LEFT=" + left + " Z-INDEX=" + z + " VISIBILITY=HIDE>" + text + "</LAYER>\n";
  	document.write(str);
	}
	else
	if(document.all)
	{
		var str="<div id=" + id + " style=\"position:absolute;top:" + top + ";left:" + left + ";z-index:" + z +";visibility:hidden;\" >" + text + "</div>\n";
		document.write(str);
	}
};
 
function Turn(id, mode) {
	if(document.layers || document.all)
	{
		if(mode)
			eval("setTimeout(\"menuOn(" + id + ");\",100)");
		else
			eval("setTimeout(\"menuOff(" + id + ");\",100)");
	}
};
 
function menuOn(id){
	if(document.all)
		eval("menu" + id).style.visibility = 'visible';
	else if(document.layers)
		eval("document.layers['menu" + id + "']").visibility = "show";
	menu_visible[id] = 1;
};


function menuOff(id){
  if ((menu_overed[id]==0) && (header_overed[id]==0))
   if(document.all)
    eval("menu" + id).style.visibility = 'hidden';
   else if(document.layers)
    eval("document.layers['menu" + id + "']").visibility = "hide";
	menu_visible[id] = 0;
};
 
function  BeginRoll(id, mode){
	if(document.layers || document.all) {
		if ((Rolling[id]==0) && !((mode==0) && ((menu_overed[id]==1) || (header_overed[id]==1)))) {
	 		if (mode==1) menuOn(id,mode);
 			if (mode==1) {xx[id]=minx; dx[id]=step} else {xx[id]=maxx; dx[id]=-step};
 			Rolling[id]=1;
  		eval("setTimeout(\"Roll(" + id + ");\",100)");
  	} else {
  		if (menu_overed[id]==0)
  			if (mode==1) dx[id]=step; else dx[id]=-step;
  	}
	}
};

function  Roll(id){
 	if (((dx[id]>0) && (xx[id]<maxx)) || ((dx[id]<0) && (xx[id]>minx))) {
	 	xx[id]=xx[id]+dx[id];
		if (document.all)
			eval("menu" + id).style.left=xx[id];
		else if(document.layers)
	  	eval("document.layers['menu" + id + "']").left=xx[id];
		eval("setTimeout(\"Roll(" + id + ");\",30)");
	} else {
		Rolling[id]=0;
		if (dx[id]<0) menuOff(id);
	}
};
