// JavaScript Document
document.onclick = function(event) 
{ 
	var evt = (event) ? event : window.event;
	var src = getSrcEvent(evt);
	
	if ((src != null) && (src.getAttribute("target") != null))
	{
		var div = document.getElementById(src.getAttribute("target"));
		if (div.style.zIndex != currentZIndex)
		{
			div.style.zIndex = ++currentZIndex;
		}
		
		return;
	}

	for (var n in openedDivs)
	{
		if (openedDivs[n].doNotClose == false)
		{
			if (document.getElementById(n))
			{
				document.body.removeChild(document.getElementById(n));
				delete openedDivs[n];
			}
		}
	}
}

var targetElt = null;

document.onmousedown = function(event)
{
	var evt = (event) ? event : window.event;
	var src = getSrcEvent(evt);
	
	if ((src != null) && (src.getAttribute("target") != null))
	{
		targetElt = document.getElementById(src.getAttribute("target"));
		targetElt.setAttribute("oldx", evt.clientX);
		targetElt.setAttribute("oldy", evt.clientY);
		
		CancelBubble(evt);
	}
}

document.onmouseup = function(event)
{
	targetElt = null;	
}

document.onmousemove = function(event)
{
	if (targetElt != null)
	{
		var evt = (event) ? event : window.event;
		
		var diffX = evt.clientX - parseInt(targetElt.getAttribute("oldx"), 10);
		var diffY = evt.clientY - parseInt(targetElt.getAttribute("oldy"), 10);
		
		var newLeft = parseInt(targetElt.style.left, 10) + diffX;
		var newTop = parseInt(targetElt.style.top, 10) + diffY;
		
		if ((newLeft <= 0) || (newTop <= 0))
		{
			CancelBubble(evt);
			return;
		}
		
		var newRight = parseInt(targetElt.style.width, 10) + newLeft;
		var newBottom = parseInt(targetElt.style.height, 10) + newTop;
	
		if ((newBottom >= document.body.clientHeight) || (newRight >= document.body.clientWidth))
		{
			CancelBubble(evt);
			return;
		}
		
		targetElt.style.left = newLeft;
		targetElt.style.top =  newTop;
		
		targetElt.setAttribute("oldx", evt.clientX);
		targetElt.setAttribute("oldy", evt.clientY);
		
		CancelBubble(evt);
	}
}

document.onselectstart = function(event)
{
	var evt = (event) ? event : window.event;
	var src = getSrcEvent(evt);
	if ((src.tagName != "INPUT") && (src.tagName != "TEXTAREA"))
	{
		CancelBubble(evt);
		return false;
	}
}


function getSrcEvent(e)
{
	var browser=navigator.appName;
	if (browser=="Microsoft Internet Explorer") return e.srcElement;
	else return e.target;
}