var op5;
var op6;
var agt;
var mac;
var ie; 
var mac_ie;
function sniffBrowsers() {
	op5 = (navigator.userAgent.indexOf("Opera 5")!=-1) ||(navigator.userAgent.indexOf("Opera/5")!=-1);
	op6 = (navigator.userAgent.indexOf("Opera 6")!=-1) ||(navigator.userAgent.indexOf("Opera/6")!=-1);
	agt=navigator.userAgent.toLowerCase();
	mac = (agt.indexOf("mac")!=-1);
	ie = (agt.indexOf("msie") != -1); 
	mac_ie = mac && ie;
}
function getElementHeight(elem) {
	if (op5) {
		xPos = elem.style.pixelHeight;
	} else {
		xPos = elem.offsetHeight;
	}
	return xPos;
}
function getElementWidth(elem) {
	if (op5) {
		xPos = elem.style.pixelWidth;
	} else {
		xPos = elem.offsetWidth;
	}
	return xPos;
}
function getElementLeft(elem) {
	xPos = elem.offsetLeft;
	tempEl = elem.offsetParent;
  	while (tempEl != null) {
  		xPos += tempEl.offsetLeft;
	  	tempEl = tempEl.offsetParent;
  	}
	return xPos;
}
function getElementTop(elem) {
	yPos = elem.offsetTop;
	tempEl = elem.offsetParent;
	while (tempEl != null) {
  		yPos += tempEl.offsetTop;
	  	tempEl = tempEl.offsetParent;
  	}
	return yPos;
}
function moveXY(obj, x, y) {
	if (op5) {
		obj.style.pixelTop = y;
 		obj.style.pixelLeft = x;
	} else {
		obj.style.top = y + 'px';
 		obj.style.left = x + 'px';
	}	
}
function getObject(objectId) {
	if(document.getElementById) {
		return document.getElementById(objectId);
	} else if (document.all) {
		return document.all(objectId);
	} else {
		return null;
	}
} 
function displayMenu(popupId,xparentObj,xparentfact,yparentObj,yparentfact,xfact,yfact,xshift,yshift)
{
	if (xfact == null) xfact = 0;
	if (yfact == null) yfact = 0;
	if (xshift == null) xshift = 0;
	if (yshift == null) yshift = 0;
	var object=getObject(popupId);
	var x=xshift+getElementLeft(xparentObj)+getElementWidth(xparentObj)*xparentfact-getElementWidth(object)*xfact;
	var y=yshift+getElementTop(yparentObj)+getElementHeight(yparentObj)*yparentfact-getElementHeight(object)*yfact;
	object.style.visibility='visible';
	moveXY(object,x,y);
	var popupframe=getObject('popupframe');
	popupframe.style.width=object.offsetWidth+"px";
	popupframe.style.height=object.offsetHeight+"px";
	popupframe.style.left=object.style.left;
	popupframe.style.top=object.style.top;
	popupframe.style.visibility='visible';
}
function hideMenu(popupId)
{
	hideMenu1(getObject(popupId));
}
function showMenu1(object)
{
	object.style.visibility='visible';
	var popupframe=getObject('popupframe');
	popupframe.style.visibility='visible';
}
function hideMenu1(object)
{
	object.style.visibility='hidden';
	var popupframe=getObject('popupframe');
	popupframe.style.visibility='hidden';
}

function CreatePopup1(popupId,xparentObj,xparentfact,yparentObj,yparentfact,xfact,yfact,xshift,yshift)
{
	if (xshift == null) xshift = 0;
	if (yshift == null) yshift = 0;
	var x=xshift+getElementLeft(xparentObj)+getElementWidth(xparentObj)*xparentfact;
	var y=yshift+getElementTop(yparentObj)+getElementHeight(yparentObj)*yparentfact;
	CreatePopup(popupId,x,y,xfact,yfact)
}

var popupObjList = new Array();
var popupNClicks;
function CreatePopup(popupId,x,y,xfact,yfact)
{
	popupNClicks = 0;
	if (xfact == null) xfact = 0;
	if (yfact == null) yfact = 0;
	var isNew = false;
	var popupDiv = getObject(popupId);
	if (!popupDiv)
	{
		isNew = true;
		popupDiv = document.createElement('div');
		popupDiv.setAttribute('id', popupId);
		popupDiv.onmouseover = function () {ShowPopup(popupId);};
		popupDiv.style.position = "absolute";
		if (popupObjList.length==0)
		{
			addEvent( document.body, 'click',
				function (event)
				{
					var x = event.clientX+document.body.scrollLeft;
					var y = event.clientY+document.body.scrollTop;
					for (var i in popupObjList)
					{
						var popupId = popupObjList[i];
						var popupDiv = getObject(popupId);
						if (popupNClicks > 0 && !IsInArea(popupDiv,x,y))
						{
							ClosePopup(popupId);
						}
					}
					popupNClicks++;
				}
			);
		}
	}
	else
	{
		popupDiv.innerHTML = "";
		popupDiv.style.display='none';
	}	
	//var popupIframe = getObject(popupId + "backgroundIframe");
	//if (!popupIframe)
	//{
	//	popupIframe = document.createElement('iframe');
	//	popupIframe.setAttribute('id', popupId + "backgroundIframe");
	//	popupIframe.style.position = "absolute"; 
	//}
	//else
	//{
	//	//popupIframe.style.display='none';
	//}
	x -= getElementWidth(popupDiv)*xfact;
	y -= getElementHeight(popupDiv)*yfact;
	moveXY(popupDiv,x,y);
	//popupIframe.style.width=popupDiv.offsetWidth+"px";
	//popupIframe.style.height=popupDiv.offsetHeight+"px";
	//popupIframe.style.left=popupDiv.style.left;
	//popupIframe.style.top=popupDiv.style.top;
	if (isNew)
	{
		document.body.appendChild(popupDiv);
		//document.body.appendChild(popupIframe);
		popupObjList.push(popupId);
	}
	else
	{
		popupDiv.style.display='block';
		//popupIframe.style.display='block';
	}
}

function IsInArea(popupDiv,x,y)
{
	var left = getElementLeft(popupDiv);
	var right = left  + getElementWidth(popupDiv);
	var top = getElementTop(popupDiv);
	var bottom = top + getElementHeight(popupDiv);
	return (x > left && x < right && y > top && y < bottom);
}

function ClosePopup(popupId)
{
	var popupDiv = getObject(popupId);
	//var popupIframe = getObject(popupId + "backgroundIframe");
	popupDiv.style.display='none';
	//popupIframe.style.display='none';
}
function ShowPopup(popupId)
{
	var popupDiv = getObject(popupId);
	//var popupIframe = getObject(popupId + "backgroundIframe");
	popupDiv.style.display='block';
	//popupIframe.style.display='block';
}

function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, obj[type+fn] );
    obj[type+fn] = null;
  } else
    obj.removeEventListener( type, fn, false );
}

sniffBrowsers();

