// Don't change these parameters
var delayLeft        = 500; /////
var menuElementLeft  = new Array ();
var usedWidthLeft    = 0;
var numOfMenusLeft   = 0;
/// ----------------------------

// check browser version
isNCLeft    = (document.layers) ? 1 : 0;
isOPERALeft = (navigator.userAgent.indexOf('Opera') >= 0)? true : false;
isIELeft    = (document.all && !isOPERALeft)? true : false;
isDOMLeft   = (document.getElementById && !isIELeft && !isOPERALeft)? true : false;

var topIDLeft  = -1;
function testLeft (id)
{
	alert (document.all[id].offsetLeft);
	//document.all['D' + id].style.background = "#FFFFFF";
	//document.all[id].style.background = "#FFFFFF";
	//alert (document.all[id].style.visibility);
}
// constructor of MenuLeft elements
function menuConstructorLeft (id, content)
{
	this.IDLeft            = id;
	this.parentIDLeft      = content [0]*1;
	this.parentItemIDLeft  = content [1]*1;
	this.width         = content [2]*1;
	this.timerIDLeft       = -1;
	this.isOnLeft          = false;
	this.itemLeft          = new Array ();
	this.currItemIDLeft    = -1;
	
	this.xLeft = content [3]*1;
	
	if (this.xLeft < 0 && this.parentIDLeft == -1)
	{
		this.xLeft = initXLeft + usedWidthLeft;
		usedWidthLeft = usedWidthLeft + this.width;
	}
	else if (this.xLeft < 0 && this.parentIDLeft > -1)
	{
		this.xLeft =  menuElementLeft [this.parentIDLeft].xLeft
			      + menuElementLeft [this.parentIDLeft].width
			      - xOverlap;
	}
	this.yLeft = content [4]*1;
	if (this.yLeft < 0 && this.parentIDLeft == -1)
		this.yLeft = initYLeft;
	else if (this.yLeft < 0 && this.parentIDLeft > -1)
		this.yLeft =  menuElementLeft [this.parentIDLeft].yLeft
	 		      + itemHeight*this.parentItemIDLeft
			      + yOverlap;
	
	itemLeft = content [5];

	layerBody = '<table width=' + this.width + ' cellpadding=3 cellspacing=' + borderSize + ' border=0>';
	
	imgLocator = '';
	
	count = 0;
	for (j = 0; j <= itemLeft.length - 3; j = j + 3)
	{
		if (itemLeft [j + 2] != '') 
			imgLocator = '<img src=' + itemLeft [j + 2] + ' border=0 width=20 height=' + (itemHeight - 5) + ' align=right vspace=0 hspace=0>';
		controlBlock = ' onMouseOver = "enterItemLeft (' + this.IDLeft + ', ' + ((j + 3)/3 - 1) + ');" onMouseOut = "exitItemLeft (' + this.IDLeft + ', ' + ((j + 3)/3 - 1) + ');" ';
		layerBody += '<td id=LD' + this.IDLeft + count + ' height=' + itemHeight + ' width=' + this.width + ' style="background: ' + backColor + ';" ' + backColor + '>' + imgLocator + '<a class=subMenu href='+ itemLeft [j + 1] +' ' + controlBlock + '>' + itemLeft [j] + '</a></td>';
		if (j < itemLeft.length - 3)
			layerBody = layerBody +  '<tr>\n';
		else
			layerBody = layerBody + '\n';
		count++;
		imgLocator = '';
	}

	if (!isNCLeft)
		layerHeader = '<div id=MenuLeft' + this.IDLeft +
				   	   ' onMouseOver="enterMenuLeft (' + this.IDLeft + ');" onMouseOut = "exitMenuLeft (' + this.IDLeft + ');"' +
		    	       ' style="background: ; width: ' + this.width + '; visibility: hidden; position: absolute; left: ' + this.xLeft +
		        	   '; top: ' + this.yLeft + ';">';
	else
		layerHeader = '<layer id=MenuLeft' + this.IDLeft +
					   ' onMouseOver="enterMenuLeft (' + this.IDLeft + ');" onMouseOut = "exitMenuLeft (' + this.IDLeft + ');"' +
					   ' visibility=hideLeft left=' + this.xLeft +
					   ' top =' + this.yLeft + '>';

	layerHeader += '<table width=' + this.width + ' cellpadding=0 cellspacing=0 border=0>' +
				    '<td bgcolor=' + borderColor + '>';

	layerFooter = '</table></td></table>';

	if (!isNCLeft)
		layerFooter = layerFooter + '</div>';
	else
		layerFooter = layerFooter + '</layer>';

	document.writeln (layerHeader + layerBody + layerFooter);


	return this;
}
function enterTopItemLeft (ID)
{
	//document.all['LD' + ID].style.background = activeBackColor;
	updateTopPosLeft (ID);
	
	if (topIDLeft != ID && topIDLeft != -1)
		hideLeftTreeLeft (topIDLeft);
	releaseTreeLeft (ID);
	topIDLeft = ID;
	showLeft (ID);
}
function exitTopItemLeft (ID)
{
	//document.all['LD' + ID].style.background = backColor;
	menuElementLeft [ID].timerIDLeft = setTimeout ('hideLeft (' + ID + ')', delayLeft);
}
function updateTopPosLeft (id)
{
	realXLeft = getRealLeftLeft (document.all['LD' + id]);
	realYLeft = getRealTopLeft (document.all['LD' + id]);
	for (var i = 0; i < numOfMenusLeft; i++)
	{
		if (menuElementLeft [i].parentIDLeft == -1)
		{
			document.all['MenuLeft' + i].style.left = initXLeft + realXLeft;
			document.all['MenuLeft' + i].style.top = initYLeft + realYLeft;
		}
	}
}
function enterItemLeft (menuID, itemID)
{
	document.all['LD' + menuID + itemID].style.background = activeBackColor;
	realXLeft = getRealLeftLeft (document.all['MenuLeft' + menuID]);
	
	
	var currItemID = menuElementLeft [menuID].currItemIDLeft;

	if (currItemID != i & currItemID > -1)	
		hideLeft (currItemID);
	

	for (var i = 0; i < numOfMenusLeft; i++)
	{
		if (menuElementLeft [i].parentIDLeft == menuID &&
		    menuElementLeft [i].parentItemIDLeft == itemID)
		{
			document.all['MenuLeft' + i].style.left = realXLeft + menuElementLeft [i].width - xOverlap;
			clearTimeout (menuElementLeft [i].timerIDLeft);
			menuElementLeft [i].timerIDLeft = -1;
			showLeft (i);
			return 0;
		}
	}

	return -1;
}

function exitItemLeft (menuID, itemID)
{
	document.all['LD' + menuID + itemID].style.background = backColor;
	for (var i = 0; i < numOfMenusLeft; i++)
	{
		if (menuElementLeft [i].parentIDLeft == menuID &&
		    menuElementLeft [i].parentItemIDLeft == itemID)
		{
			menuElementLeft [i].timerIDLeft = setTimeout ('hideLeft (' + i + ')', delayLeft);
			return 0;
		}
	}
}
function enterMenuLeft (ID)
{
	var parentIDLeft = menuElementLeft [ID].parentIDLeft;
	if (parentIDLeft == -1)
	{
		clearTimeout (menuElementLeft [ID].timerIDLeft);
		menuElementLeft [ID].timerIDLeft = -1;
	}
	else
		releaseTreeLeft (ID);
}
function exitMenuLeft (ID)
{
	timeoutTree (ID);
}
function hideLeftTreeLeft (ID)
{
	hideLeft (ID);
	for (var j = 0; j < numOfMenusLeft; j++)
	{
		if (menuElementLeft [j].parentIDLeft == ID &&
			menuElementLeft [j].isOnLeft)
		{
			hideLeftTreeLeft (j);
			return 0;
		}
	}
}
function releaseTreeLeft (ID)
{
	clearTimeout (menuElementLeft [ID].timerIDLeft);
	menuElementLeft [ID].timerIDLeft = -1;

	var parentIDLeft = menuElementLeft [ID].parentIDLeft;
	if (parentIDLeft > -1)
		releaseTreeLeft (parentIDLeft);
}
function timeoutTree (ID)
{
	menuElementLeft [ID].timerIDLeft = setTimeout ('hideLeft (' + ID + ')', delayLeft);
	var parentIDLeft = menuElementLeft [ID].parentIDLeft;
	if (parentIDLeft > -1)
		timeoutTree (parentIDLeft);
}

function showLeft (ID)
{
	if (isDOMLeft) 
		document.getElementById('MenuLeft' + ID).style.visibility = "visible";
    	else if (isIELeft) 
		document.all['MenuLeft' + ID].style.visibility = "visible";
      	else if (isNCLeft) 
		document.layers[ID].visibility = "show";		

	menuElementLeft [ID].isOnLeft = true;

	if (menuElementLeft [ID].parentIDLeft > -1)
		menuElementLeft [menuElementLeft [ID].parentIDLeft].currItemIDLeft = ID;
}

function hideLeft (ID)
{
	if (isDOMLeft) 
		document.getElementById('MenuLeft' + ID).style.visibility = "hidden";
    	else if (isIELeft) 
		document.all['MenuLeft' + ID].style.visibility = "hidden";
      	else if (isNCLeft) 
		document.layers[ID].visibility = "hide";

	menuElementLeft [ID].isOnLeft = false;

	if (menuElementLeft [ID].parentIDLeft > -1)
		menuElementLeft [menuElementLeft [ID].parentIDLeft].currItemIDLeft = -1;
}

function createMenuTreeLeft ()
{
	for (var i = 0; i < menuContentLeft.length; i++)
	{
		menuElementLeft [i] = new menuConstructorLeft (i, menuContentLeft [i]);
		numOfMenusLeft++;
	}
}

function getRealLeftLeft (id) {
    x = id.offsetLeft;
    parentElement = id.offsetParent;
    while (parentElement != null) {
        x += parentElement.offsetLeft;
        parentElement = parentElement.offsetParent;
    }
    return x;
}

function getRealTopLeft (id) {
    y = id.offsetTop;
    parentElement = id.offsetParent;
    while (parentElement != null) {
        x += parentElement.offsetTop;
        parentElement = parentElement.offsetParent;
    }
    return y;
}

createMenuTreeLeft ();