// JavaScript Document
/****************************************************************************
 * Timeout Script
*****************************************************************************/
function umb_display_timeout(msg) {
	if(msg==null || msg=='' || msg=='undefined') msg='Your search session will timeout soon.';
	document.getElementById('umb_timeout_message').innerHTML=msg;
	document.getElementById('umb_timeout_container').style.display='inline';
}

/*****************************************************************************
*	Drag and Drop
*****************************************************************************/
var umbDrag = {
	object : null,

	init : function(baseElement, handle, startX, startY) {
		handle.onmousedown = umbDrag.start;
		handle.base = baseElement;
		
		handle.base.style.left = startX ? startX : '0px';
		handle.base.style.top  = startY ? startY : '0px';
		
		handle.base.doDragStart = new Function();
		handle.base.doDragEnd   = new Function();
		handle.base.doDrag      = new Function();
	},

	start : function(event) {
		umbDrag.object = this;
		event = umbDrag.getEvent(event);
		var x = parseInt(umbDrag.object.base.style.left);
		var y = parseInt(umbDrag.object.base.style.top);
		umbDrag.object.base.doDragStart(x, y);

		umbDrag.object.lastMouseX = event.clientX;
		umbDrag.object.lastMouseY = event.clientY;

		document.onmousemove = umbDrag.drag;
		document.onmouseup   = umbDrag.end;

		return false;
	},

	drag : function(event) {
		event = umbDrag.getEvent(event);

		var mouseY = event.clientY;
		var mouseX = event.clientX;
		var x = parseInt(umbDrag.object.base.style.left);
		var y = parseInt(umbDrag.object.base.style.top);
		var deltaX = x + (mouseX - umbDrag.object.lastMouseX);
		var deltaY = y + (mouseY - umbDrag.object.lastMouseY);

		umbDrag.object.base.style["left"] = deltaX + "px";
		umbDrag.object.base.style["top"]  = deltaY + "px";
		umbDrag.object.lastMouseX = mouseX;
		umbDrag.object.lastMouseY = mouseY;

		umbDrag.object.base.doDrag(deltaX, deltaY);
		return false;
	},

	end : function() {
		document.onmousemove = null;
		document.onmouseup   = null;
		var x = parseInt(umbDrag.object.base.style["left"]);
		var y = parseInt(umbDrag.object.base.style["top"]);
		umbDrag.object.base.doDragEnd(x,y);
		umbDrag.object = null;
	},

	getEvent : function(event) {
		if (typeof event == 'undefined') event = window.event;
		if (typeof event.layerX == 'undefined') event.layerX = event.offsetX;
		if (typeof event.layerY == 'undefined') event.layerY = event.offsetY;
		return event;
	}
};
