var jsAreaShowTime = 5000;
var JsAreas = new Object();
var varAreaId

var dragapproved=false
var minrestore=0
var initialwidth,initialheight
var ie5=document.all&&document.getElementById
var ns6=document.getElementById&&!document.all

function GetArea(id)
{
	return JsAreas[id] ? JsAreas[id] : (JsAreas[id] = new JsArea(id));
}

// A single popup window
function JsArea(id)
{
	this.AreaId = id;
}

// Function to return the DIV Layer
JsArea.prototype.ContentArea= function()
{
	var divArea = document.getElementById(this.AreaId);
	if (divArea != null)
	{
		return divArea;
	}
	return null;
}

var activeAreaId = null;

// Function to show the DIV Layer
JsArea.prototype.popareaup = function(x, y)
{
if (activeAreaId != null)	
	jsAreaClose(activeAreaId);
	
	var divLayer = this.ContentArea();
	divLayer.style.position = 'absolute';
	divLayer.style.display = 'block';
	divLayer.style.left = x - 100;	

	if(y > 400)
        divLayer.style.top = y - 100;
    else
        divLayer.style.top = y + 20;
        
	divLayer.onmouseover= JsAreaMouseOver;
	divLayer.onmouseout = jsAreaMouseOut;
	activeAreaId = this.AreaId;
	
	return false;
}

// Function to hide the DIV Layer
JsArea.prototype.hide = function()
{
	var divLayer = this.ContentArea();
	if (divLayer != null)
		divLayer.style.display = 'none';
		
	return false;
}

// Function to be called
// by Web forms to show the Popup Window
function PopupArea(e, areaId)
{
    varAreaId = areaId;
    
	if (e.clientX || e.clientY)
	{
		posx = e.clientX + document.body.scrollLeft;
		posy = e.clientY + document.body.scrollTop;
	}
	var area = GetArea(areaId);
	area.popareaup(posx, posy);
	

}

// Function to hide the DIV Layer
function jsAreaClose(areaId)
{
	GetArea(areaId).hide();
	activeAreaId = divHangTimer = null;	
}

var divHangTimer = null;

// Function to keep the Div Layer
// showing for a "period" of time
// after that period, if the mouse
// has been outside the DIV Layer, 
// it will be hidden automatically
function KeepArea(areaId)
{
	if (areaId == activeAreaId && divHangTimer != null)
	{
		clearTimeout(divHangTimer);
		divHangTimer = null;
	}
}

// Function to release the DIV Layer
function RelArea(areaId)
{
	//if (areaId == activeAreaId && divHangTimer == null)
	//	divHangTimer = setTimeout('jsAreaClose(\'' + areaId + '\')', jsAreaShowTime);
}

// Function fired when mouse is over the 
// DIV Layer, used to keep the layer showing
function JsAreaMouseOver(e)
{
	if (!e) 
		var e = window.event;
	var targ = e.target ? e.target : e.srcElement;
	KeepArea(activeAreaId);
}

// Function that fires when mouse is out of
// the scope of the DIV Layer
function jsAreaMouseOut(e)
{
	if (!e) 
		var e = window.event;
	var targ = e.relatedTarget ? e.relatedTarget : e.toElement;
	var activeAreaView = document.getElementById(activeAreaId);
	if (activeAreaView != null && !jsAreaContains(activeAreaView, targ))
		RelArea(activeAreaId);
}
function jsAreaContains(parent, child)
{
	while(child)
		if (parent == child) return true;
		else 
			child = child.parentNode;
		
		return false;
}

function initializedragpopup(e)
{
    offsetx=ie5? event.clientX : e.clientX
    offsety=ie5? event.clientY : e.clientY
    //document.getElementById("dwindowcontent").style.display="none" //extra
    tempx=parseInt(document.getElementById(varAreaId).style.left)
    tempy=parseInt(document.getElementById(varAreaId).style.top)

    dragapproved=true
    document.getElementById(varAreaId).onmousemove=drag_drop_popup
}
function stopdragpopup()
{
    dragapproved=false;
    document.getElementById(varAreaId).onmousemove=null;
    //document.getElementById("dwindowcontent").style.display="" //extra
}

function drag_drop_popup(e)
{
    if (ie5&&dragapproved&&event.button==1)
    {
        document.getElementById(varAreaId).style.left=tempx+event.clientX-offsetx+"px"
        document.getElementById(varAreaId).style.top=tempy+event.clientY-offsety+"px"
    }
    else if (ns6&&dragapproved)
    {
        document.getElementById(varAreaId).style.left=tempx+e.clientX-offsetx+"px"
        document.getElementById(varAreaId).style.top=tempy+e.clientY-offsety+"px"
    }
}

