var ie  = document.all

function positionoffset(wg, ot)
{
	var toff = (ot=="left") ? wg.offsetLeft : wg.offsetTop;
	var parentEl = wg.offsetParent;
	while (parentEl != null)
	{
		toff = (ot=="left") ? toff + parentEl.offsetLeft : toff + parentEl.offsetTop;
		parentEl = parentEl.offsetParent;
	}
	return toff;
}

function showhideobject(obj, e)
{
	dropmenuobj.style.left = dropmenuobj.style.top="-500px"
	if (e.type=="mouseover")
	{
		obj.visibility="visible"
	}
}

function ietest()
{
	if (document.compatMode && document.compatMode!="BackCompat")
	{
		return document.documentElement
	}
	else
	{
		document.body
	}
}

function clearedge(obj, wedge)
{
	if (wedge=="rightedge")
	{
		eoffx=0
		var winedge = ie && !window.opera ? ietest().scrollLeft + ietest().clientWidth-15 : window.pageXOffset+window.innerWidth - 15
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
		if (winedge-dropmenuobj.x < dropmenuobj.contentmeasure)
			eoffx=dropmenuobj.contentmeasure-obj.offsetWidth
		return eoffx
	}
	else
	{
		eoffy=0
		var topedge = ie && !window.opera? ietest().scrollTop : window.pageYOffset
		var winedge=ie && !window.opera? ietest().scrollTop+ ietest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
		if (winedge-dropmenuobj.y < dropmenuobj.contentmeasure) //move up?
			eoffy=dropmenuobj.contentmeasure+obj.offsetHeight
		return eoffy
	}
}

var objres;
var obje;
var display = false;

function displaypopup(obj, e)
{
	objres = obj;
	obje = e;
	
	if (window.event) 
		event.cancelBubble=true
	else if (e.stopPropagation) 
		e.stopPropagation()

	if (typeof dropmenuobj!="undefined" && !display)
		dropmenuobj.style.visibility="hidden"

	display = true;

	clearhidemenu()
	
	var prepareid = obj.getAttribute("id");
	if(prepareid != null)
		if(prepareid.indexOf("x") == 0){
			prepareid = prepareid.substring(1)
		}
	
	dropmenuobj=document.getElementById(prepareid)
	showhideobject(dropmenuobj.style, e)
	dropmenuobj.x = positionoffset(obj, "left")
	dropmenuobj.y = positionoffset(obj, "top")
//	dropmenuobj.style.left=dropmenuobj.x-clearedge(obj, "rightedge")+"px"
//	dropmenuobj.style.top=dropmenuobj.y-clearedge(obj, "bottomedge")+obj.offsetHeight+"px"
	
	var frameHeight=0;
	var frameWidth=0;
 	var curposx = mCur.x+10;
 	var curposy = mCur.y+22;
 
	if (self.innerHeight)  
	    frameHeight = self.innerHeight;  
	else if (document.documentElement && document.documentElement.clientHeight)  
	    frameHeight = document.documentElement.clientHeight;  
	else if (document.body)  
	    frameHeight = document.body.clientHeight;  
	 
	if (self.innerWidth)  
	    frameWidth = self.innerWidth;  
	else if (document.documentElement && document.documentElement.clientWidth)  
	    frameWidth = document.documentElement.clientWidth;  
	else if (document.body)  
	    frameWidth = document.body.clientWidth;

	//alert(frameWidth+"::"+frameHeight);		

 	if(frameWidth != 0 || frameHeight != 0){
		if(frameWidth/2 < mCur.cx)
			curposx = curposx -	dropmenuobj.offsetWidth - 15;
		if(frameHeight/3 < mCur.cy/2){
			curposy = curposy -	dropmenuobj.offsetHeight - 27;
		}
			
	}
	
	//alert(dropmenuobj.offsetWidth+":"+dropmenuobj.offsetHeight+":::");
	dropmenuobj.style.left=curposx+"px";
	dropmenuobj.style.top=curposy+"px";
}


function delayhidemenu()
{
	display = false;
	delayhide=setTimeout("dropmenuobj.style.visibility='hidden'; dropmenuobj.style.left=0; ",250)
}

function clearhidemenu()
{
	if (typeof delayhide!="undefined")
		clearTimeout(delayhide)
}

function idtoelement(linkobj)
{ 
	var relvalue=linkobj.getAttribute("id")
	if(relvalue != null)
		if(relvalue.indexOf("x") == 0){
			relvalue = relvalue.substring(1)
		}
	return (relvalue!=null && relvalue!="" && document.getElementById(relvalue)!=null && document.getElementById(relvalue).className=="popup")? true : false
}

function initcal()
{
	var all_links=document.getElementsByTagName("a")
	for (var i=0; i<all_links.length; i++)
	{
		if (idtoelement(all_links[i]))
		{
			all_links[i].onmouseover=function(e)
			{
				var evtobj=window.event? window.event : e
				displaypopup(this, evtobj)
			}

			all_links[i].onmouseout=delayhidemenu
		}
	}
}

function mousePageXY(e)
{
  var x = 0, y = 0, cx = 0, cy = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    cx = e.clientX;
	cy = e.clientY;

	x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
  	if(!document || !document.body || !document.documentElement)
		  return {"x":x, "y":y, "cx":cx, "cy":cy};

    cx = e.clientX;
	cy = e.clientY;

    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }

  return {"x":x, "y":y, "cx":cx, "cy":cy};
}
var mCur = {"x":0, "y":0, "cx":0, "cy":0};

document.onmousemove = function(e){
	mCur = mousePageXY(e);
	if(display){
	//	display = false;
		displaypopup(objres, obje);
	}
}

if (window.addEventListener)
	window.addEventListener("load", initcal, false)
else if (window.attachEvent)
	window.attachEvent("onload", initcal)
else if (document.getElementById)
	window.onload=initcal
