
var tm = new Array();
var layername;
var hddelay = 940; // Конст., задающая в мс задержку исчезновения неактивного submenu
var x1sm = 1;
var y1sm = 0;

// Функция доступа к слою
function layer(layername)
	{	
  	if(isDOM) return document.getElementById(layername);
  	if(document.all) return document.all[layername];
  	if(isNetscape4) return document.layers[layername];
	}

// Функция доступа к стилю объекта
function layerstyle(layername)
	{
	if (layer(layername))
		{
		var mylayer = layer(layername);
		if (mylayer.style) return mylayer.style;
		else return mylayer;
		}
	else
		{		
  		if(layername.style) return layername.style;
  		else if (layername) return layername;  		
  		else return false;
  		}
	}

// Функция для управления видимостью слоя
function setlayervis(layername, vis)
	{
	//alert(layername);
	if (vis == 0) layerstyle(layername).visibility = isNetscape4 ? 'hide' : 'hidden';
	if (vis == 1) layerstyle(layername).visibility = isNetscape4 ? 'show' : 'visible';
	return null;
	}

// Функция, проверяющая статус видимости слоя	
function isvisible(layername)
	{
    if (layerstyle(layername).visibility == 'show' || layerstyle(layername).visibility == 'visible') return 1;
    else return 0;
    }

// Функция, инвертирующая статус видимости слоя
function changevis(layername)
	{
	var temp1 = 1 - isvisible(layername);
    setlayervis(layername, temp1);
    return temp1;   
    }


// Расчет координат слоя
function getlayercoords(layername)
	{
	if (!layername) return false;
	var hisx = 0;
	var hisy = 0;
	var obj = layername;
	if (isMozilla)
		{
		while(obj.tagName != "BODY")
			{
			hisx = hisx + obj.offsetLeft;
			if(obj.tagName != "TD") hisy = hisy + obj.offsetTop;
			obj = obj.parentNode;
			}				
		}
	else if (isNetscape4)
		{
		hisx = obj.pageX;
		hisy = obj.pageY;		
		}

	else if (isOpera || isMSIE)
		{
		while(obj.tagName != "BODY")
			{
			hisx = hisx + obj.offsetLeft;
			if(obj.tagName != "TD") hisy = hisy + obj.offsetTop;
			obj = obj.parentElement;
			}
		}
	return [hisx, hisy];
	}    
    
function getpageoffset(layername)
	{ 
  	var myleft = 0;
  	var mytop = 0; 	
  	do
  		{  	 		
    	myleft += layername.offsetLeft;
    	mytop  += layername.offsetTop;    	    	
  		}
  	while (layername = layername.offsetParent);  	
  	
  	
  	if (isMSIE)
  		{
  		var y1 = document.images['hh'].height + document.images['imgmen101'].height + y1sm;
  		if (mytop > y1) mytop = y1;		  		
  		}
  	return [myleft, mytop];
  	
	}    
    
// Функция для определения X,Y-координат левого края слоя
function getlayerpos(layername)
	{
	if(isNetscape4)
  		{
    	return [layername.pageX, layername.pageY];
    	}
  	else if(isMSIE || isOpera || isMozilla)
  		{
  		var mycoords = getpageoffset(layername);
  		return [mycoords[0], mycoords[1]]; 		
  		}
	}

	
// Функция для определения X-размера слоя
function getlayerwidth(layername)	
	{
	if(isOpera5 || isOpera6)
		return layername.style.pixelWidth;
	else if(isNetscape4)
    	return layername.document.width;
    else if(isMSIE || isOpera7 || isMozilla)
    	return layername.offsetWidth;
	}
	
// Функция для определения Y-размера слоя
function getlayerheight(layername)	
	{
	if (!layername) return 0;
	else if(isOpera5 || isOpera6)
		return layername.style.pixelHeight;
	else if(isNetscape4)
    	return layername.document.height;
    else if(isMSIE || isOpera7 || isMozilla)
    	return layername.offsetHeight;
	}	





// Функция позиционирования слоя
function movelayer(layername, newx, newy)
	{
	if (!layername) return false;
	if(isOpera)
		{
    	layerstyle(layername).pixelLeft = parseInt(newx);
    	layerstyle(layername).pixelTop = parseInt(newy);    	
    	}
  	else if(isNetscape4)
  		{
    	layerstyle(layername).x = parseInt(newx);
    	layerstyle(layername).y = parseInt(newy);    	
    	}
  	else
  		{  		
    	layerstyle(layername).left = parseInt(newx) + 'px';
    	layerstyle(layername).top = parseInt(newy) + 'px';  	    	
    	}
	}

    	
// Функция позиционирования слоя по X-координате
function movetoparamx(layername, newx)
	{

	if(isOpera)
    	layerstyle(layername).pixelLeft = parseInt(newx);
  	else if(isNetscape4)
    	layerstyle(layername).x = parseInt(newx);
  	else
  		{  		
    	layerstyle(layername).left = parseInt(newx) + 'px';  	
    	}
	}
	
// Функция позиционирования слоя по Y-координате
function movetoparamy(layername, newy)
	{
	if(isOpera)
    	layerstyle(layername).pixelTop = parseInt(newy);
  	else if(isNetscape4)
    	layerstyle(layername).y = parseInt(newy);
  	else
  		{
    	layerstyle(layername).top = parseInt(newy) + 'px';
    	}
	}
	


// на основе Kruglov S. A. (kruglov.ru), 2002
	
function cancelclosemenu(layername)
	{
	if (tm.length){
	for (var i = 0; i < tm.length; i++)
		{
		if (tm[i][0] == layername)
			clearTimeout(tm[i][1]);
		else
			{
			hidemenu(tm[i][0]);
			//setlayervis(tm[i][0], 0);
			}						
		}}
	}

function showmenu(ownerlayer)
	{

	
	cancelclosemenu(ownerlayer + 'sub');
	
	var myobj = layer(ownerlayer + 'sub');
	var parobj = layer(ownerlayer);
	
	movelayer(myobj, getlayerpos(parobj)[0] + x1sm, getlayerpos(parobj)[1] + getlayerheight(parobj) + y1sm);	
	setlayervis(myobj, 1);	
	}
	
function showmenu2(ownerlayer)
	{


	cancelclosemenu(ownerlayer + 'sub');
	
	var myobj = layer(ownerlayer + 'sub');
	var parobj = layer(ownerlayer);
	movelayer(myobj, getlayerpos(parobj)[0] + x1sm, getlayerpos(parobj)[1] + getlayerheight(parobj) + y1sm);	
	setlayervis(myobj, 0);
	
	}	
	

function phidemenu(layername)
	{
	var havit=-1;
	var mytimer;
	if (tm.length)
		{
		for (var i = 0; i < tm.length; i++)
			{
			if (tm[i][0] == layername)
				havit = i;			
			}
		}
	mytimer = setTimeout('hidemenu("' + layername + '")', hddelay);
	if (havit>-1) 
		{				
		tm[havit] = [layername, mytimer];		
		}
	else
		{
		tm[tm.length] = [layername, mytimer];
		}
	}

function hidemenu(layername)
	{
	setlayervis(layername, 0);
	}	


function swapClass(obj)
	{
	var classPrefix = obj.className.substr(0, obj.className.indexOf('_'));
	var classSufix = obj.className.substr(obj.className.indexOf('_') + 1);
	if(classSufix == "inactive") obj.className = classPrefix + "_active";
	else obj.className = classPrefix + "_inactive";
	}

function gotourl(url)
	{
	document.location = url;
	}


function chbg(obj, par)
	{
	if (par<0 || par>1) return false;
	var tdcolor = new Array();
	tdcolor[0] = 'E7EAEF';
	tdcolor[1] = 'CBD5E2';

	if (isMSIE || isMozilla || isOpera6 || isOpera7) layerstyle(obj).backgroundColor = '#' + tdcolor[par];
	else if (isOpera5) layerstyle(obj).background = '#' + tdcolor[par];
	else if (isNetscape4) layerstyle(obj).bgColor = '#' + tdcolor[par];
	return true;
	}	
	
	
	
function changepicref(imgname, ref)
	{
	if(isNetscape4)
		{
		imglayer = imgname.substring(3, imgname.length);
		var mylayer = layer(imglayer);

		//eval('mylayer.document.images["'+imgname+'"].src = ref;');
		
		// <span id="men102" ...
		// <img name="imgmen102" 
		//document.layers["men102"].document.images["imgmen102"].src = ref;
		return true;				
		}
		
    else document.images[imgname].src = ref;
	}	
