// popup.js


function offsetPosition(obj)
{
	this.Height = obj.offsetHeight;
	this.Width = obj.offsetWidth;

	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;
	}
	this.Left = curLeft;
	this.Top = curTop;
}

///////////// OverLayers /////////////
var openLayers = new Array();

function CloseAllOverLayers()
{
//alert("CloseAllOverLayers");
    var name;
    while (name = openLayers.pop())
    {
	    var overLayer = new getObj(name);
	    if (overLayer) overLayer.style.display = 'none';
	}
}

function CloseOverLayer(layerType)
{
//alert("CloseOverLayer " + layerType);
	var overLayer = new getObj(layerType);
	if (overLayer) overLayer.style.display = 'none';
	else return false;

    return true;
}

function ShowOverLayer(layerType)
{
//alert("ShowOverLayer " + layerType);
	var overLayer = new getObj(layerType);
	if (overLayer) overLayer.style.display = 'inline';
	else return false;

	openLayers.push(layerType);
    return true;
}

function ShowOverLayerRelative(layerType, relativeTo)
{
//alert("ShowOverLayerRelative " + layerType + ", " + relativeTo);
	return ShowOverLayerRelativeToObj(layerType, new getObj(relativeTo).obj);
}

function ShowOverLayerRelativeToObj(layerType, objRelativeTo)
{
//alert("ShowOverLayerRelativeToObj " + layerType + ", " + objRelativeTo.id);
	var overLayer = new getObj(layerType);

	if (overLayer && objRelativeTo) {
//alert(objRelativeTo + " ; " + objRelativeTo.name + " ; " + objRelativeTo.id + " ; " + objRelativeTo.style + " ; " + objRelativeTo.obj);
		var overLayerPos = new offsetPosition(objRelativeTo);

//alert(overLayerPos.Top + " ! " + overLayerPos.Left);
		overLayer.style.left = overLayerPos.Left + 'px';
		overLayer.style.top = overLayerPos.Top + 1 + 'px';
//alert(layerType + " = " + overLayer.style.top + " : " + overLayer.style.left);
		overLayer.style.display = 'inline';

        openLayers.push(layerType);
	} else return false;

    return true;
}

function ShowOverLayerCentralized(id)
{
//alert("ShowOverLayerCentralized " + id);
	var overLayer = new getObj(id);

	ShowOverLayerObjCentralized(overLayer);
}

function ShowOverLayerObjCentralized(overLayer)
{
//alert(overLayer + " : " + overLayer.style.width + " : " + overLayer.style.height);
//alert(document.documentElement.clientHeight + " : "
// + self.screen.availHeight + " : "
//  + window.screen.availHeight + " : "
//   + self.innerHeight + " : "
//   + document.documentElement.clientHeight + " : ");

	if (overLayer == null) return;

	var objWidth = parseInt(overLayer.style.width);
	var objHeight = parseInt(overLayer.style.height);
	
	if (objWidth < 0 || isNaN(objWidth)) objWidth = 0;
	if (objHeight < 0 || isNaN(objHeight)) objHeight = 0;
	
//alert(overLayer + " : " + objWidth + " : " + objHeight);
	
	var scrollLeft = 0, scrollTop = 0;
    if (self.pageYOffset) // all except Explorer
    {
	    scrollLeft = self.pageXOffset;
	    scrollTop = self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop)
	    // Explorer 6 Strict
    {
	    scrollLeft = document.documentElement.scrollLeft;
	    scrollTop = document.documentElement.scrollTop;
    }
    else if (document.body) // all other Explorers
    {
	    scrollLeft = document.body.scrollLeft;
	    scrollTop = document.body.scrollTop;
    }
	
    var wWidth = 200, wHeight = 200;
    if (self.innerHeight) // all except Explorer
    {
	    wWidth = self.innerWidth;
	    wHeight = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
    {
	    wWidth = document.documentElement.clientWidth;
	    wHeight = document.documentElement.clientHeight;
    }
    else if (document.body) // other Explorers
    {
	    wWidth = document.body.clientWidth;

	    wHeight = document.body.clientHeight;
    }
	
	var spaceleft = parseInt((wWidth - objWidth)/2) + scrollLeft;
	var spacetop  = parseInt((wHeight - objHeight)/2) + scrollTop;

	if (spaceleft < 0 || isNaN(spaceleft)) spaceleft = 0;
	if (spacetop < 0 || isNaN(spacetop)) spacetop = 0;

//alert(spacetop + " : " + spaceleft);

	overLayer.style.left = spaceleft + 'px';
	overLayer.style.top = spacetop + 'px';
	overLayer.style.display = 'block';

    if (typeof(overLayer.obj) == 'undefined') openLayers.push(overLayer.id);
    else openLayers.push(overLayer.obj.id);

    return true;
}

function ShowOverLayerContentCentralized(headtext, content)
{
	var popupheadtext = new getObj("popup_headtext");
	var popupcontent = new getObj("popup_body");
		
	popupheadtext.obj.innerHTML = headtext;
	popupcontent.obj.innerHTML = content;
	
	ShowOverLayerCentralized("messageOverLayer");
}