// JavaScript Document

var cMnuDivStyle = 'tmenu_dhtml_div';
var cMnuLnkStyle = 'tmenu_dhtml_lnk'; 
var nMnuTopdiff  = 0;
var nMnuAniEnd = 0;
var nMnuAniSteps = 1;
var nMnuAniOffSteps = 10;
var nMnuAniOffSpeed = Math.max((500 / nMnuAniOffSteps),20.0);
var nMnuAniOffStart = 1500;
var nMnuAniOffAuto = 3000;
var nMnuAniSpeed = Math.max((500 / nMnuAniSteps),20.0);
var nMnuCurItem = -1;
var uMnuAniEvent;
var nMnuOpacity = 0.72;
var bUseOpacity = true;
var oImageDiv;
var oFlash;
var bChangeFlash;
var bChangeFlashOnOpen = false;
var bInitFlashMenu = false;
var bCloseOnOpen = false;
function initFlashMenu()
{
	var cImage = '';
	var oFlashObj;
	var oDiv;
	oFlashObj = document.getElementById('flashcheck');
	
	if (oFlashObj)
	{
		oDiv = oFlashObj.parentNode;
		if (noFlash)
			cImage = noFlash; 
		if (navigator.userAgent.match(/safari/i))
		{
			bChangeFlash = true;
			bUseOpacity = true;
		}
		else if (navigator.userAgent.match(/mac/i))
		{
			bUseOpacity = false;
			bChangeFlash = false;
		}
		if (navigator.userAgent.match(/Linux/i) && !navigator.userAgent.match(/KHTML/i))
		{
			bChangeFlash = true;
			bUseOpacity = true;
			bChangeFlashOnOpen = true;
		}
		
		if (bChangeFlash)
		{
			oImageDiv = document.createElement('div');
			oImageDiv.innerHTML = cImage;
			oImageDiv.style.display = 'none';
			oFlash = document.createElement('div');
			oFlashObj = oDiv.removeChild(oFlashObj);
			oFlash.appendChild(oFlashObj);
			oDiv.appendChild(oFlash);
			oDiv.appendChild(oImageDiv);
		}

	}
	else
	{
		bChangeFlash = false;
		bUseOpacity = true;
	}

	bInitFlashMenu = true;
};

function add_js_menu(cParendId, cUrl, cTitle)
{
	var nId = -1;
	var n = 0;
	if(!self.mnuItems)
	{
		self.mnuItems = new Array();
	}
	for (var n = 0; n < self.mnuItems.length;n++)
	{
		if (self.mnuItems[n][0] == cParendId)
		{
			nId = n;
			break;
		}
	}
	if (nId < 0)
	{
		nId = self.mnuItems.length;
		self.mnuItems[n] = new Array(cParendId,new Array());
	}
	n = self.mnuItems[nId][1].length;
	self.mnuItems[nId][1][n] = {'url':cUrl,'title':cTitle};
}
function open_js_menu(oA)
{
	if (!bInitFlashMenu)
	{
		initFlashMenu();
	}
    if (!self.mnuItems)
        return;
	bCloseOnOpen = false;
	var nId = oA.id;// oA.href.match(/tabid-([0-9]*)/)[1];
	var nCurItem = -1;
	var oDiv ;
	for (var n = 0; n < self.mnuItems.length; n++)
	{
		if (nId == self.mnuItems[n][0] && nMnuCurItem != n)
		{
			nMnuCurItem = n;
			nCurItem = n;
			break;
		}
	}
	if (nCurItem >= 0)
	{
		if(uMnuAniEvent)
		{
			window.clearTimeout(uMnuAniEvent);
			uMnuAniEvent = null;
		}

		oA.onmouseout = function(oe){close_js_menu(this,oe)};

		//_trace('open');
		oDiv = build_js_container(oA);
		fill_js_container(oDiv, self.mnuItems[nCurItem][1]);
		show_js_container(oDiv,oA);
		if (bChangeFlash && bChangeFlashOnOpen)
			replaceFlash(true);
		
		nMnuAniEnd = 1;
	}
}
function close_js_menu(oA,oE)
{
	if (!oE)
	{
		oE 	= window.event;
		if (oA.contains(oE.toElement))
		{
			return;
		}
	}
	else
	{
		if (containsDOM(oA,oE.relatedTarget))
		{
			return;
		}
	}
	if (nMnuAniEnd > 0)
	{
		bCloseOnOpen = true;
		return;
	}

	var nMLeft = oE.clientX;
	var nMTop  = oE.clientY;
	var oDiv = oA;
	var nDLeft = oDiv.offsetLeft;
	var nDTop = oDiv.offsetTop;
	var oTemp = oDiv.offsetParent;
	
	while(oTemp && oTemp.offsetTop)
	{
		nDLeft += oTemp.offsetLeft;
		nDTop  += oTemp.offsetTop;
		oTemp = oTemp.offsetParent;
	}
	
	var nDRight = oDiv.offsetLeft + oDiv.offsetWidth;
	var nDBottom = nDTop + oDiv.offsetHeight;
	var nHeight = oDiv.offsetHeight;
	if (nMLeft <= nDLeft || nMLeft >= nDRight || nMTop >= nDBottom || nMTop <= nDTop)
	{
		//_trace('close: m:' + nMLeft  + '#' + nMTop +'-- l:' + nDLeft + ' r:' + nDRight + '-- t:'  + nDTop  + ' b:' + nDBottom + ' h:' + nHeight);
		if (uMnuAniEvent)
			window.clearTimeout(uMnuAniEvent);
		oDiv.nAniOpac    = 1;
		uMnuAniEvent = window.setTimeout('hide_js_container()', nMnuAniOffAuto);
	}

}
function show_js_container(oDiv,oA)
{
	var nLeft = oA.offsetLeft;
	var nTop;
	var nHeight  = oDiv.offsetHeight; 
	var opacityBlend = nMnuOpacity;

	nTop = oA.offsetTop
	var oT = oA.offsetParent;
	while (oT && (oT.nodeName != 'BODY' || oT.nodeName != 'HTML'))
	{
		nTop += oT.offsetTop;
		nLeft += oT.offsetLeft;
		oT = oT.offsetParent;
	}
	nTop += oA.offsetHeight + nMnuTopdiff;
	
	oDiv.style.overflow = 'visible';
	oDiv.onmouseout = null;
	oDiv.style.left = nLeft   + 'px';
	oDiv.style.top = nTop  + 'px';	
	oDiv.nAniHeight = nHeight;
	nHeight = Math.max(2,Math.floor(nHeight / nMnuAniSteps));
	
	try{
   		oDiv.style.clip='rect(0px ' + oDiv.offsetWidth + 'px ' + nHeight + 'px  0px)';
   	}catch(e)
   	{
   			oDiv.style.clip='rect(0px,' + oDiv.offsetWidth + 'px,' + nHeight + 'px , 0px)';
   	}
	if(bUseOpacity)
	{
		oDiv.style.opacity = 1;
		if (this.innerHeight)
		{
			oDiv.style.opacity = opacityBlend;
		}
		else
			oDiv.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + Math.round(opacityBlend * 100) + ')';
	}
	oDiv.nAniSteps  = nMnuAniSteps;
	oDiv.nAniPos   = 1; 
	uMnuAniEvent = window.setTimeout('anim_js_container()', nMnuAniSpeed);
	
}
function anim_js_container()
{
	var nDiff, nHeight, oDiv;
	var nWidth;
	window.clearTimeout(uMnuAniEvent);
	oDiv = document.getElementById('mnuLocal');
	if (!oDiv || oDiv.nAniPos >= (oDiv.nAniSteps)) // ||  oDiv.offsetHeight >= oDiv.nAniHeight)
	{
		uMnuAniEvent = null;
		oDiv.style.overflow = 'visible';
		oDiv.bAniOpen = false;
		nMnuAniEnd = 0;
		if (bCloseOnOpen)
			uMnuAniEvent = window.setTimeout('hide_js_container()', nMnuAniOffAuto);
		//else
		oDiv.onmouseout = close_js_container;
		return;
	}
	
	nHeight = Math.floor(oDiv.nAniHeight / nMnuAniSteps * oDiv.nAniPos);
	nWidth  = oDiv.offsetWidth;
	oDiv.nAniPos++;
	
	if (nHeight > 0 && nWidth > 0)
	{
		try{
			oDiv.style.clip='rect(0px ' + nWidth + 'px ' + nHeight + 'px  0px)';
		}catch(e)
		{
   			oDiv.style.clip='rect(0px,' + nWidth + 'px,' + nHeight + 'px , 0px)';
		}
	}

	uMnuAniEvent = window.setTimeout('anim_js_container()',nMnuAniSpeed);
	return;
	
}
function fill_js_container(oDiv,aItems)
{
	var oLnk;
	clean_js_container(oDiv);

	var cLnkClass = oDiv.cLnkClass;
	for (var n = 0; n < aItems.length; n++)
	{
		oLnk = document.createElement('a');
		oLnk.className = cLnkClass;
		oLnk.href = aItems[n].url;
		//oLnk.appendChild(document.createTextNode(aItems[n].title));
		oLnk.innerHTML = aItems[n].title;
		oDiv.appendChild(oLnk);
	}
}
function clean_js_container(oDiv)
{
	while (oDiv.childNodes.length > 0)
	{
		oDiv.removeChild(oDiv.childNodes[oDiv.childNodes.length-1]);
	}
	oDiv.style.overflow = 'visible';
	oDiv.style.height = '';
}

function build_js_container(oA)
{
	var opacityBlend = nMnuOpacity;
	var cLnkClass  = cMnuLnkStyle;
	var cDivClass  = cMnuDivStyle;

	var oDiv = document.getElementById('mnuLocal');
	if (!oDiv)
	{
		oDiv = document.createElement('div');
		oDiv.id = 'mnuLocal';
		oDiv.className = cDivClass;
		oDiv.style.position = 'absolute';
		oDiv.style.zIndex = 80;
		oDiv.cLnkClass = cLnkClass;
		oDiv.style.left = '-300px';
		oDiv.style.top = '-300px';
		document.body.appendChild(oDiv);
		//oDiv.onmouseout = close_js_container;
		oDiv.onmouseover = reshow_js_container;
		oDiv.nAniHeight = 0;
		oDiv.nAniSteps  = 0;
		oDiv.nAniPos    = 0; 
		oDiv.nAniOpac   = 1;
		oDiv.nAniOpacity= opacityBlend;
	}
	
	if(bUseOpacity)
	{
		if (this.innerHeight)
		{
			oDiv.style.opacity = opacityBlend;
		}
		else
			oDiv.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + Math.round(opacityBlend * 100) + ')';
	}
	
	oDiv.style.height = '';
	oDiv.style.visibility = 'visible'; 
	oDiv.bAniOpen   = true;
	return oDiv;
}
function close_js_container(oE)
{   
	if (!oE)
	{
		oE = window.event;
	}

	var nMLeft = oE.clientX;
	var nMTop  = oE.clientY;
	var oDiv = document.getElementById('mnuLocal');
	var nDLeft = oDiv.offsetLeft +  5;
	var nDRight = oDiv.offsetLeft + oDiv.offsetWidth - 10;
	var nDTop = oDiv.offsetTop + 5;
	var nDBottom = oDiv.offsetTop + oDiv.offsetHeight - 10;
	if (nMLeft <= nDLeft || nMLeft >= nDRight || nMTop >= nDBottom || nMTop <= nDTop)
	{
		if (uMnuAniEvent)
			window.clearTimeout(uMnuAniEvent);
		oDiv.nAniOpac    = 1; 
		uMnuAniEvent = window.setTimeout('hide_js_container()', nMnuAniOffStart);
	}
}

function hide_js_container()
{   
 	window.clearTimeout(uMnuAniEvent);
	
 	uMnuAniEvent = null;
 	if (nMnuCurItem < 0)
 	{
 		return;
 	}
	var oDiv = document.getElementById('mnuLocal');
	
	var opacityBlend = oDiv.nAniOpacity - (oDiv.nAniOpacity / nMnuAniOffSteps * oDiv.nAniOpac);

	if (oDiv.nAniOpac >= nMnuAniOffSteps || opacityBlend <= 0)
	{
		oDiv.style.visibility = 'hidden'
		oDiv.nAniOpac = 1;
		nMnuCurItem = -1;
		if (bChangeFlash)
			replaceFlash(false);

		return;	
	}
	oDiv.nAniOpac++;
	
	if(bUseOpacity)
	{
		if (this.innerHeight)
		{
			oDiv.style.opacity = opacityBlend;
		}
		else
			oDiv.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + Math.round(opacityBlend * 100) + ')';
	}
	
 	uMnuAniEvent = window.setTimeout('hide_js_container()', nMnuAniOffSpeed);

}
function reshow_js_container(oE)
{   
	if (!oE)
	{
		oE = window.event;
	}
	var nMLeft = oE.clientX;
	var nMTop  = oE.clientY;
	var oDiv = document.getElementById('mnuLocal');
	if (oDiv.bAniOpen)
		return;
	if (bChangeFlash && !bChangeFlashOnOpen)
		replaceFlash(true);
	var nDLeft = oDiv.offsetLeft + 10;
	var nDRight = oDiv.offsetLeft + oDiv.offsetWidth - 20;
	var nDTop = oDiv.offsetTop + 10;
	var nDBottom = oDiv.offsetTop + oDiv.offsetHeight - 20;
	
	if (nMLeft <= nDLeft || nMLeft >= nDRight || nMTop >= nDBottom || nMTop <= nDTop)
	{
		if (uMnuAniEvent)
		{
			window.clearTimeout(uMnuAniEvent);
			uMnuAniEvent = null;
		}	
		oDiv.nAniOpac    = 1; 
		var opacityBlend = oDiv.nAniOpacity;
		
		if(bUseOpacity)
		{
			oDiv.style.opacity = opacityBlend;
			if(!self.innerHeight)
				oDiv.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + Math.round(opacityBlend * 100) + ')';
		}
		
	}
	else
	{
		if (uMnuAniEvent)
		{
			window.clearTimeout(uMnuAniEvent);
			uMnuAniEvent = null;
		}	
	}
}
function replaceFlash(bHide)
{
	var oImgObj = oImageDiv;
	var oFlashObj = oFlash;

	if (bHide && oFlashObj.style.display != 'none')
	{
		oFlashObj.style.display = 'none';
		oImgObj.style.display = 'block';
	}
	if (!bHide && oFlashObj.style.display != 'block')
	{
		oFlashObj.style.display = 'block';
		oImgObj.style.display = 'none';
	}

}
function containsDOM (container, containee) 
{

	var isParent = false;
	do {
		if ((isParent = container == containee)) break;
			containee = containee.parentNode;
	} while (containee != null);
	
	return isParent;
}
function _trace(cValue)
{
	if (document.getElementById('report'))
		document.getElementById('report').innerHTML +=  cValue + '<br>';
}