/*************************************************
 File			: Popup.js
 Description: Javascript to manage popup windows
 Date			: 4/30/2008
 Project		: kajames.ca/kajames.com
 ================================================
 Updates:
*************************************************/

var objToDrag = null;
var objDragOffsetX = null;
var objDragOffsetY = null;
var objBoundary = null;
var objMinX = null;
var objMinY = null;
var objMaxX = null;
var objMaxY = null;

function SetToDrag(objID, boundaryID) {
	objToDrag = document.getElementById(objID);
   //if (boundaryID!=null) objBoundary = document.getElementById(boundaryID);
   if (objBoundary!=null) {
   	objMinX = getAbsoluteLeft(objBoundary);
      objMaxX = getAbsoluteLeft(objBoundary) + objBoundary.offsetWidth;
      objMinY = getAbsoluteTop(objBoundary);
      objMaxY = getAbsoluteTop(objBoundary) + objBoundary.offsetHeight;
      //alert("MinY: " + objMinY + " MaxY: " + objMaxY + " offsetHeight: " + objBoundary.offsetHeight);
   } else {
   	var winSize = getPageSizeWithScroll();
      objMinX = 0;
      objMinY = 0;
   	objMaxX = winSize[0] - 20;
   	objMaxY = winSize[1];
   }
}

function SetOffset(ev) {
	if (objToDrag!=null) {
		ev = ev || window.event;
		var initCoords = mouseCoords(ev);
		var objTop = getAbsoluteTop(objToDrag);
		var objLeft = getAbsoluteLeft(objToDrag);
		objDragOffsetX = initCoords.x - objLeft;
		objDragOffsetY = initCoords.y - objTop;
	}
}

function ClearDrag(ev) {
	objToDrag = null;
   objBoundary = null;
	objDragOldX = null;
	objDragOldY = null;
}

function DragObject(ev) {
	if ((objToDrag!=null) && (objDragOffsetX!=null) && (objDragOffsetY!=null)) {
		ev = ev || window.event;
		var newCoords = mouseCoords(ev);
		var newX = newCoords.x - objDragOffsetX;
		var newY = newCoords.y - objDragOffsetY;
		if (newX < objMinX) newX = objMinX;
		if ((newX + objToDrag.offsetWidth) > objMaxX) newX = objMaxX - objToDrag.offsetWidth;
		if (newY < objMinY) newY = objMinY;
		if ((newY + objToDrag.offsetHeight) > objMaxY) newY = objMaxY - objToDrag.offsetHeight;
		objToDrag.style.left = newX + "px";
		objToDrag.style.top = newY + "px";
	}
}

function mouseMove(ev){
	ev           = ev || window.event;
	var mousePos = mouseCoords(ev);
}

function mouseCoords(ev){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

document.onmousedown = SetOffset;
document.onmousemove = DragObject;
document.onmouseup = ClearDrag;