
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 activeHideLayer = null;
var activeLayer = null;
var activeLayer_h = 0;
var currLevel = 1;
var activeLayersArray = new Array(10);
var activeFixArray = new Array(10);
var activeTimersArray = new Array(10);
var timeoutID = 0;
var timeoutID2 = 0;
var timeoutID3 = 0;
var picUrl1;
var picUrl2;
var picUrl3;
var layerForImages;
var rootTop =  new Array(10);
var rootLeft =  new Array(10);
var quickHide = 1;

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;    
	}

	rootLeft[2] = leftOffset;
//	rootTop[2] = "322";	//topOffset+aElement.offsetHeight - (BrowserInfo.IsFF ? 0 : 0);
	rootTop[2] = topOffset+aElement.offsetHeight - (BrowserInfo.IsFF ? 0 : 0);

	this.activeLayer.style.top = "-1000px";
	this.activeLayer.style.visibility='visible';
	this.activeLayer.style.display='block';
	this.activeLayer_h = document.getElementById(layerid+"_inner").offsetHeight;
	this.activeLayer.style.height = '1px';
	this.activeLayer.style.overflow = 'hidden';

	this.activeLayer.style.top = ""+(topOffset - 0 + aElement.offsetHeight+1+(BrowserInfo.IsFF ? 0 : 0))+"px";
	this.activeLayer.style.left = "0"+(leftOffset - 0 - (BrowserInfo.IsFF ? 0 : 0))+"px";
//alert(""+layerid+" here: top="+this.activeLayer.style.top+"   left:"+this.activeLayer.style.left);

	this.timeoutID2 = setTimeout("showLevelH("+20+")", 50);
}

function showLevelH(h)
{
 	if (h >= this.activeLayer_h)
		h = this.activeLayer_h;

	this.activeLayer.style.height = h+'px';

 	if (h < this.activeLayer_h)
		this.timeoutID2 = setTimeout("showLevelH("+(h+20)+")", 50);
	else
	{
		clearTimeout(this.timeoutID2);
//alert(h);
	}
}

function hideLevelH()
{
	clearTimeout(this.timeoutID2);
	h = this.activeHideLayer.offsetHeight - 20;
 	if (h < 0)
		h = 0;

	this.activeHideLayer.style.height = h+'px';


 	if (h > 0)
		this.timeoutID3 = setTimeout("hideLevelH()", 50);
	else
	{
		this.activeHideLayer.style.display = "none";
		clearTimeout(this.timeoutID3);
	}
}

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)
{
	this.quickHide = 1;
	hideLevel(lev);
	this.currLevel = lev;
	ShowSecondLevelForH(id, elem);
}

function openLevelV(id, elem, lev)
{
	this.quickHide = 1;
	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.activeHideLayer = this.activeLayersArray[lev];
		if (this.quickHide == 1)
		{
			this.activeLayersArray[lev].style.visibility='hidden';
			this.activeLayersArray[lev].style.display='none';
			this.activeLayersArray[lev] = null;
		}
		else
			hideLevelH();

		lev++;

//		alert("ee");
//		sh(0);
	}
	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;
	}

//	hideLevelH();
	this.quickHide = 0;
	hideLevel(lev);

	if (lev>2)
	{
		this.timeoutID = window.setTimeout("closeLevel2("+(lev-1)+")", 1000);
	}
}

//-------------------------------------- AJAX functions ------------------------

if(typeof(XMLHttpRequest)!='undefined')
{
  var getXMLHttpObj = function(){ return new XMLHttpRequest(); }
}
else
{
  var getXMLHttpObj = function()
	{
    	var activeXObjects = ['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0',
							  'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];
	    for(var i=0; i<activeXObjects.length; i++)
		{
			try{
		        return new ActiveXObject(activeXObjects[i]);
			}catch(err){}
		}
	}
}
var oXml = getXMLHttpObj();


function processingFunction()
{
	if(oXml.readyState!=4) return;

//	alert(oXml.responseText);

//	return oXml.responseText;
}



