
var ie = document.all;
var ns = document.getElementById && !ie;
var oldmousemove = document.onmousemove;  // = null;
var offsetpx, offsetpy;  // global 


function dragbyclass(e) {
  var fobj = ns ? e.target : event.srcElement;

  if ((fobj.id != "hdrInstructions") && (fobj.id != "instructionsTitleBar"))
	return;
	
  if (fobj.id == "hdrInstructions")
	fobj = fobj.parentNode;

  if (fobj.tagName=="DIV") {
   	var ev=e||event;
	
	// offsetpx, offsetpy are global
	var mouseX = getMouseX(e||event);
	var mouseY = getMouseY(e||event);
	offsetpx = mouseX - parseInt(fobj.parentNode.offsetLeft);
	offsetpy = mouseY - parseInt(fobj.parentNode.offsetTop);
	
	// Don't set oldmousemove to our onmousemove function.  We want it to be set to the onmousemove from other javascript.
	//if ((document.onmousemove == null) || (document.onmousemove.toString().substring(0, 12) != "function (e)"))
	//if ((document.onmousemove == null) || (document.onmousemove == origOnMouseMove))
	//	oldmousemove = document.onmousemove;
	//	
	//if (document.onmousemove != null)
	//	document.title = "{" + document.onmousemove.toString().substring(0, 12) + "}";
	
	//document.title = document.body.offsetWidth;
		
	document.onmousemove=function(e) {
	   	var ev=e||event;

		moveObject(ev, fobj);
		
		return false;
	}
	fobj.onmouseup=function() {
	   	//var ev=e||event;
		
		if (parseInt(fobj.parentNode.style.left) < (-1 * (parseInt(fobj.parentNode.clientWidth - 40))))
			fobj.parentNode.style.left = (-1 * (parseInt(fobj.parentNode.clientWidth - 40))) + "px";
			
		if (parseInt(fobj.parentNode.style.top) < 20)
			fobj.parentNode.style.top = "20px";
			
			
		//if (parseInt(fobj.parentNode.style.left) > parseInt(document.body.offsetWidth))
		//	fobj.parentNode.style.left = (document.body.offsetWidth - 40) + "px";
	
	    //document.onmousemove=null;
		document.onmousemove = oldmousemove;
	}
  }
}

document.onmousedown=dragbyclass


function moveObject(e, fobj) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	// posx and posy contain the mouse position relative to the document
		
	// offsetpx, offsetpy are global
	posx = posx - offsetpx;
	posy = posy - offsetpy;
	
	fobj.parentNode.style.left = posx + "px"; 
	fobj.parentNode.style.top = posy + "px"; 
}

function getMouseX(e) {
	var posx = 0;
	//var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX) 	{
		posx = e.pageX;
		//posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		//posy = e.clientY + document.body.scrollTop
		//	+ document.documentElement.scrollTop;
	}
	return posx;
}

function getMouseY(e) {
	//var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageY) 	{
		//posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		//posx = e.clientX + document.body.scrollLeft
		//	+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	return posy;
}

