﻿var ie = document.all;
var activeLayer;

function ShowLayerNow(callername, layername, Timeout)
{

	var layer = document.getElementById(layername);	

	if ( layer == activeLayer )
	{
		layer.style.visibility = "visible";
		setTimeout("HideLayer('" + layername + "');", Timeout);
    }
}

function ShowLayer(caller, layername, Timeout)
{	
	// Default timeout if not given
	if ( Timeout == null )
		Timeout = 3000;

	var layer = document.getElementById(layername);	
	if ( layer != null )
	{
		activeLayer = layer;
		caller.x = getposOffset(caller, "left");
		caller.y = getposOffset(caller, "top");
		layer.style.visibility = "visible";
		layer.contentHeight = layer.offsetHeight;
		layer.style.left = caller.x + caller.offsetWidth - clearbrowseredge(layer, caller, "rightedge") + "px";// caller.offsetWidth;
		layer.style.top = caller.y + caller.offsetHeight - clearbrowseredge(layer, caller, "topedge") + "px";            
		HideAllLayers("LayersRoot");

		setTimeout("ShowLayerNow('" + caller + "', '" + layername + "', " + Timeout + ");", 2000);
	}
	
}
function SetInactiveLayer(layername)
{
	var layer = document.getElementById(layername);		
	if ( layer == activeLayer )
		activeLayer = null;
}
function HideAllLayers(rootname)
{
	var root = document.getElementById(rootname);
	var layers = root.getElementsByTagName("div");
	
	for ( var i = 0; i < layers.length; i++ )
	{
		if ( layers[i].id != "" )
		{
			layers[i].style.visibility = "hidden";
		}
	}
	
}	

function HideLayer(layername)
{
	var layer = document.getElementById(layername);
	
	layer.style.visibility = "hidden";
}

function getposOffset(what, offsettype)
{
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null)
    {
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;
}

function clearbrowseredge(obj, caller, whichedge)
{
    var edgeoffset=0;
    if (whichedge=="rightedge")
    {
        var windowedge=this.ie && !window.opera? this.iecompattest().scrollLeft+this.iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15;
        
        if ( caller.offsetLeft + caller.offsetWidth + obj.offsetWidth > windowedge )
        {
            // too wide, move to the left
            edgeoffset = caller.offsetLeft + caller.offsetWidth + obj.offsetWidth - windowedge;   
        }
    }
    else
    {
        var topedge=this.ie && !window.opera? this.iecompattest().scrollTop+this.iecompattest().clientHeight-15 : window.pageYOffset;
        var windowedge=this.ie && !window.opera? this.iecompattest().scrollTop+this.iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
        
        if (caller.y + obj.offsetHeight >  windowedge )// windowedge layer.y < layer.offsetHeight){ //move up?
            edgeoffset=caller.y + obj.offsetHeight - windowedge;
        
    }
    
    return edgeoffset;
}
function iecompattest()
{
    return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}