//------------------------------------------------------------------------------
// Position functions
//------------------------------------------------------------------------------

// -----------------------------------------------------------------------------
// getElementPos
// get the xy coordinates from an element
// return an array with corrinates X (index 0) and Y (index 1)
//------------------------------------------------------------------------------
function getElementPos(obj)
{   var curleft = 0;
    var curtop = 0;
	if(obj.offsetParent)
	{   while(obj.offsetParent)
		{   curleft+=obj.offsetLeft;
		    curtop+=obj.offsetTop;
			obj=obj.offsetParent;
		}
	}
	else
	{	if(obj.x) curleft+=obj.x;
	    if(obj.y) curtop+=obj.y;
	}
	return [curleft,curtop];
}

// MousePos
// get the mouse coordinates from a event
// return an array with corrinates X (index 0) and Y (index 1)
function getMousePos(e)
{	var pos=new Array(2);

	if (!e) var e = window.event;
	if (e.pageX || e.pageY)
	{	pos[0] = e.pageX;
		pos[1] = e.pageY;
	}
	else
	{	if(document.body && (document.body.scrollTop || document.body.scrollLeft))
		{	pos[0]=document.body.scrollLeft+e.clientX;
			pos[1]=document.body.scrollTop+e.clientY;
		}
		else
		{   pos[0]=document.documentElement.scrollLeft+e.clientX;
			pos[1]=document.documentElement.scrollTop+e.clientY;
		}
	}
	return pos;
}

// putLayer(elm,from)
function putLayer(elm,from)
{ pos=getElementPos(from);
  if(pos[1]-document.body.scrollTop>(document.body.clientHeight/2-10))
    elm.style.top=pos[1]-elm.offsetHeight;
  else
    elm.style.top=pos[1]+from.offsetHeight;

  if(parseInt(elm.style.top)<5) elm.style.top='5px';

  if(pos[0]-document.body.scrollLeft>(document.body.clientWidth/2-10))
  { var aux=pos[0]+from.offsetWidth-elm.offsetWidth;
  	if(aux<5) aux=5;
  	elm.style.left=aux;
  }
  else
  {	if(pos[0]+elm.offsetWidth>document.body.clientWidth-5)
  		elm.style.left=document.body.clientWidth-5-elm.offsetWidth;
  	else
  		elm.style.left=pos[0];
  }
}

// putLayer(elm,from)
function putLayerXY(elm,from,left,top)
{ pos=getElementPos(from);
  elm.style.left=parseInt(pos[0])+left+'px';
  elm.style.top=parseInt(pos[1])+top+'px';
}
