
var BrowserInfo = new Object;
var sAgent = navigator.userAgent.toLowerCase() ;
//alert(sAgent);
BrowserInfo.IsIE			= sAgent.indexOf("msie") != -1 ;
BrowserInfo.IsIE6 = sAgent.indexOf("msie 6.0") != -1 ;
BrowserInfo.IsGecko		= !BrowserInfo.IsIE ;
BrowserInfo.IsNetscape	= sAgent.indexOf("netscape") != -1 ;
BrowserInfo.IsFF	= sAgent.indexOf("firefox") != -1 ;
BrowserInfo.IsOpera	= sAgent.indexOf("opera") != -1 ;
if (BrowserInfo.IsOpera)
	BrowserInfo.IsIE = false;


var activeLayer = null;
var currLevel = 1;
var activeLayersArray = new Array(10);
var activeFixArray = new Array(10);
var activeTimersArray = new Array(10);
var timeoutID = 0;
var picUrl1;
var picUrl2;
var picUrl3;
var layerForImages;
var rootTop =  new Array(10);
var rootLeft =  new Array(10);

function getAbsOffsetTop(tElement){
    var bodyElements = document.getElementsByTagName("body");
    var bodyElement = bodyElements[0];
    var curItem = tElement;
    var curParent = null;
    var absOffsetTop = 0;
    var curOffsetValue;
//alert(bodyElements);
    do{
	    curParent = curItem.offsetParent;
	    curOffsetValue = curItem.offsetTop;
	    absOffsetTop += curOffsetValue;
	    curItem = curParent;
    }
    while(curParent != bodyElement && curParent != null);
    return absOffsetTop;
}

function getAbsOffsetLeft(tElement){
    var bodyElements = document.getElementsByTagName("body");
    var bodyElement = bodyElements[0];
    var curItem = tElement;
    var curParent = null;
    var absOffsetLeft = 0;
    var curOffsetValue;
    do{
	    curParent = curItem.offsetParent;
	    curOffsetValue = curItem.offsetLeft;
	    absOffsetLeft += curOffsetValue;
	    curItem = curParent;
    }
    while(curParent != bodyElement && curParent != null);
//alert(absOffsetLeft);
    return absOffsetLeft;
}

function ShowSecondLevelForV(layerid, aElement){	
	var topOffset = getAbsOffsetTop(aElement);
	var leftOffset = getAbsOffsetLeft(aElement);
	var layerToActive = document.getElementById(layerid);

	if(this.timeoutID){
		onMouseOverLayer(2);
	}
	if(this.activeLayer){
	}
	if(layerToActive){
		this.activeLayer = layerToActive;
		this.currLevel=2;
		this.activeLayersArray[this.currLevel] = layerToActive;
	}else{
		this.setImagesActive(layerid);
		return;    
	}
	this.activeLayer.style.display='block';
	rootLeft[2] = leftOffset;
	rootTop[2] = topOffset+aElement.offsetHeight - (BrowserInfo.IsFF ? 1 : -1);
	this.activeLayer.style.top = ""+(topOffset - 1 + (!BrowserInfo.IsFF ? -1 : 0))+"px";
//	this.activeLayer.style.left = ""+(leftOffset + (!BrowserInfo.IsFF ? 160 : 160))+"px";
	this.activeLayer.style.left = ""+(leftOffset - 0 - layerToActive.offsetWidth - (!BrowserInfo.IsFF ? 0 : 0))+"px";
//alert(1*layerToActive.offsetWidth);
//alert("here: top="+this.activeLayer.style.top+"   left:"+this.activeLayer.style.left);

	this.activeLayer.style.visibility='visible';
	this.setImagesActive(layerid);
}


function ShowSecondLevelForH(layerid, aElement){	
	var topOffset = getAbsOffsetTop(aElement);
	var leftOffset = getAbsOffsetLeft(aElement);
	var layerToActive = document.getElementById(layerid);

	if(this.timeoutID){
		onMouseOverLayer(2);
	}
	if(this.activeLayer){
	}
	if(layerToActive){
		this.activeLayer = layerToActive;
		this.currLevel=2;
		this.activeLayersArray[this.currLevel] = layerToActive;
	}else{
		this.setImagesActive(layerid);
		return;    
	}
	this.activeLayer.style.display='block';
	rootLeft[2] = leftOffset;
	rootTop[2] = "322";	//topOffset+aElement.offsetHeight - (BrowserInfo.IsFF ? 0 : 0);
	this.activeLayer.style.top = "322px";//""+(topOffset - 0 + aElement.offsetHeight+0+(BrowserInfo.IsFF ? 0 : 0))+"px";
	this.activeLayer.style.left = "0"+(leftOffset - 0 - (BrowserInfo.IsFF ? 0 : 0))+"px";
//alert("here: top="+this.activeLayer.style.top+"   left:"+this.activeLayer.style.left);

	this.activeLayer.style.visibility='visible';
	this.setImagesActive(layerid);
}

function ShowOtherLevelFor(layerid, aElement, lev){	
	var topOffset = getAbsOffsetTop(aElement);
	var leftOffset = getAbsOffsetLeft(aElement);
	var layerToActive = document.getElementById(layerid);

	if(this.timeoutID){
		onMouseOverLayer(lev);
	}
	if(this.activeLayer){
	}
	if(layerToActive){
		this.activeLayer = layerToActive;
		this.currLevel = lev;
		this.activeLayersArray[this.currLevel] = layerToActive;
	}else{
		this.setImagesActive(layerid);
		return;    
	}
//alert(leftOffset);
	rootLeft[lev] = leftOffset; - rootLeft[lev-1];
	var x = (BrowserInfo.IsIE ? 25 : 26);
	rootTop[lev]  = topOffset;//-1 + (!BrowserInfo.IsFF ? x : 0);// - rootTop[lev-1];
	this.activeLayer.style.display='block';
	this.activeLayer.style.top = ""+(topOffset - rootTop[lev-1] - 0)+"px";

//	this.activeLayer.style.top = ""+(topOffset - rootTop[lev-1] - 0 + (!BrowserInfo.IsFF ? x : -2))+"px";

	var d = (BrowserInfo.IsIE ? 1 : -1);

	this.activeLayer.style.left = ""+( 1*this.activeLayersArray[lev-1].offsetWidth - this.activeLayersArray[lev].offsetWidth + layerToActive.offsetWidth +1)+"px";
//	if(1*leftOffset - 1*this.activeLayersArray[lev-1].offsetWidth - 1*this.activeLayersArray[lev].offsetWidth < 0)
//		this.activeLayer.style.left = ""+(d-this.activeLayersArray[lev].offsetWidth+0)+"px";
//	else
//		this.activeLayer.style.left = ""+(this.activeLayersArray[lev-1].offsetWidth - d)+"px";
	this.activeLayer.style.visibility='visible';
	this.setImagesActive(layerid);
}

function setImagesActive(layerid){
	return;
	var image;
	var td;
	image = document.getElementById('I_' + layerid + '_1');
	if(image){
	    this.picUrl1 = image.src;
	    image.src='./Images/menu_c_1.gif';
	}
	image = document.getElementById('I_' + layerid + '_3');
	this.picUrl3 = image.src;
	image.src='./Images/menu_c_3.gif';
	td = document.getElementById('T_' + layerid);
	this.picUrl2 = td.getAttribute('background');
	td.setAttribute('background','./Images/menu_c_2.gif');
	this.layerForImages = layerid;
}

function setImagesPrevious(){
	return;
	var image;
	var td;
	image = document.getElementById('I_' + this.layerForImages + '_1');
	if(image){
	    image.src = this.picUrl1;
	}
	image = document.getElementById('I_' + this.layerForImages + '_3');
	image.src = this.picUrl3;
	td = document.getElementById('T_' + this.layerForImages);
	td.setAttribute('background',this.picUrl2);
}

function onMouseOverLayer(lev)
{
	if(this.timeoutID)
		window.clearTimeout(this.timeoutID);
	this.activeFixArray[lev] = 1;
}

function onMouseOutLayer(layer)
{
	 HideSecondLevelFor();
}

function HideSecondLevelFor()
{
//	this.timeoutID = window.setTimeout("HideLayer(this.activeLayer, 2)", 100);
}

function HideThirdLevelFor(lev)
{
//	this.timeoutID = window.setTimeout("HideLayer(this.activeLayer, "+lev+")", 100);
}

function HideLayer(layerid, lev)
{
	if(this.timeoutID)
		this.timeoutID = 0;

	if (lev < this.currLevel)
		return;

	if (this.activeLayersArray[lev])
		this.activeLayersArray[lev].style.visibility='hidden';

	this.currLevel--;

	this.setImagesPrevious();
}




//---

//var openedLayers = new Array(10);
//var currLevel = 0;

function openLevel(id, elem, lev)
{
	hideLevel(lev);
	this.currLevel = lev;
	if (lev == 2)	
		ShowSecondLevelFor(id, elem);
	else
		ShowOtherLevelFor(id, elem, lev);
}

function openLevelH(id, elem, lev)
{
	hideLevel(lev);
	this.currLevel = lev;
	ShowSecondLevelForH(id, elem);
}

function openLevelV(id, elem, lev)
{
	hideLevel(lev);
	this.currLevel = lev;
//alert(document.getElementById(elem));
//alert(elem.offsetWidth);
	if (lev == 2)	
		ShowSecondLevelForV(id, elem);
	else
		ShowOtherLevelFor(id, elem, lev);
}

function hideLevel(lev)
{
	while(this.activeLayersArray[lev])
	{
		this.activeLayersArray[lev].style.visibility='hidden';
		this.activeLayersArray[lev].style.display='none';
		this.activeLayersArray[lev] = null;
		lev++;
	}
	this.currLevel = lev-1;
}

function closeLevel(lev)
{
//	if (lev<this.currLevel)
//		return;

	this.activeFixArray[lev] = 0;

//	this.activeTimersArray[lev] = window.setTimeout("closeLevel2("+lev+")", 1000);
//	this.timeoutID = window.setTimeout("closeLevel2("+this.currLevel+")", 1000);
	this.timeoutID = window.setTimeout("closeLevel2("+lev+")", 1000);
}

function closeLevel2(lev)
{
	if (this.activeFixArray[lev] == 1)
		return;

	hideLevel(lev);

	if (lev>2)
		this.timeoutID = window.setTimeout("closeLevel2("+(lev-1)+")", 1000);
}


