	// --------------------------------------
	// -- Graphic User Interface Functions --
	// --------------------------------------
	// -- Author: Stephan Themis
	// -- Copyright THEMIS Web Technologies 2011
	// --------------------------------------
	

	var ui_mouseX, ui_mouseY;
	var divCurrentModalDialog;
	
	var availWidth, availHeight;
	var clientWidth, clientHeight;
	
	var currentMovingBox = null;
	var currentMovingBoxOffsetX = 0;
	var currentMovingBoxOffsetY = 0;
	
	document.onmousemove=getMouseXY;
	
	function getMouseXY(e) // works on IE6,FF,Moz,Opera7
	{
		if (!e)
			e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

		if (e)
		{ 
			if (e.pageX || e.pageY)
			{ 
				// this doesn't work on IE6!! (works on FF,Moz,Opera7)
				ui_mouseX = e.pageX;
				ui_mouseY = e.pageY;
				algor = '[e.pageX]';
				
				if (e.clientX || e.clientY)
					algor += ' [e.clientX] ';
			}
			else if (e.clientX || e.clientY)
			{ 
				// works on IE6,FF,Moz,Opera7
				ui_mouseX = e.clientX + document.body.scrollLeft;
				ui_mouseY = e.clientY + document.body.scrollTop;
				algor = '[e.clientX]';
				if (e.pageX || e.pageY)
					algor += ' [e.pageX] ';
			 }
			 
			 if(currentMovingBox != null)
			 {
				currentMovingBox.style.left = (ui_mouseX-currentMovingBoxOffsetX)+"px";
				currentMovingBox.style.top = (ui_mouseY-currentMovingBoxOffsetY)+"px";
			 }
		}	
	}

	function beginModalDialog(strDialogDivName)
	{
		divCurrentModalDialog = document.getElementById(strDialogDivName);
		divCurrentModalDialog.style.display = "block";
		showModalDialogMask();
	}
	
	
	function beginCenteredModalDialog(strDialogDivName)
	{
		modalContentDiv = document.getElementById("divModalContent");
		modalDialogDiv = document.getElementById(strDialogDivName);
		
		modalContentDiv.innerHTML = modalDialogDiv.innerHTML
		
		var boxWidth = Number(modalDialogDiv.style.width.replace(/px/, "")); 
		var boxHeight = Number(modalDialogDiv.style.height.replace(/px/, ""));

		var clientWidth = document.body.clientWidth;
		var clientHeight = document.body.clientHeight;
		var offsetY = document.body.scrollTop;
		var offsetX = document.body.scrollLeft;

		var boxPosX = (clientWidth - boxWidth)/2 + offsetX;
		var boxPosY = (clientHeight - boxHeight)/2 + offsetY;
		
		modalContentDiv.style.left = boxPosX+"px";
		modalContentDiv.style.top = boxPosY+"px"; 
		
		modalContentDiv.style.display = "block";
		showModalDialogMask();
	}


	function endCenteredModalDialog()
	{
		modalContentDiv = document.getElementById("divModalContent");
		modalContentDiv.style.display = "none";
		hideModalDialogMask();
	}
	
	
	function endModalDialog()
	{
		divCurrentModalDialog.style.display = "none";
		hideModalDialogMask();
	}
	
	function showModalDialogMask()
	{
		modalDialogMask = document.getElementById("divModalMask");
		modalDialogMask.style.left = "0px";
		modalDialogMask.style.top = "0px";
		modalDialogMask.style.width = document.body.scrollWidth;
		modalDialogMask.style.height = document.body.scrollHeight;
		modalDialogMask.style.display = "block";
	}
	
	function hideModalDialogMask()
	{
		modalDialogMask = document.getElementById("divModalMask");
		modalDialogMask.style.display = "none";
	}
	
	function getRadioValue(group)
	{
		for (var i=0; i < group.length; i++)
		{
			if (group[i].checked)
			{
				return(group[i].value);
			}
		}

		return "";
	}
	
	function setRadioValue(group, selectedItem)
	{
		for (var i=0; i < group.length; i++)
		{
			if (group[i].value == selectedItem)
			{
				group[i].checked = true;
				return true;
			}
		}

		return false;
	}
	
	function showDialogBox(boxName)
	{
		var boxWidth = Number(boxName.style.width.replace(/px/, "")); 
		var boxHeight = Number(boxName.style.height.replace(/px/, ""));

		var clientWidth = document.body.clientWidth;
		var clientHeight = document.body.clientHeight;
		var offsetY = document.body.scrollTop;
		var offsetX = document.body.scrollLeft;

		var boxPosX = (clientWidth/2 - boxWidth/2) + offsetX;
		var boxPosY = (clientHeight/2 - boxHeight/2) + offsetY;
		
		boxName.style.left = boxPosX;
		boxName.style.top = boxPosY; 
		
		boxName.style.display='block';
	}

	function hideDialogBox(boxName)
	{
		boxName.style.display='none';
	}

	function startDialogDrag(boxName)
	{
		var boxX = Number(boxName.style.left.replace(/px/, "")); 
		var boxY = Number(boxName.style.top.replace(/px/, ""));

		currentMovingBoxOffsetX = ui_mouseX-boxX;
		currentMovingBoxOffsetY = ui_mouseY-boxY;
		
		currentMovingBox = boxName;
	}
	
	function endDialogDrag(boxName)
	{
		currentMovingBoxOffsetX = 0;
		currentMovingBoxOffsetY = 0;
		
		currentMovingBox = null;
	}
	
	function displayInfoBubble(message)
	{
		infoBubble = document.getElementById("divInfoBubble");
		
		infoBubble.style.left = ui_mouseX+5;
		infoBubble.style.top = ui_mouseY-10;
		infoBubble.innerHTML = message;
		
		infoBubble.style.display = 'block';
	}

	function hideInfoBubble()
	{
		infoBubble.style.display = 'none';
	}
	
	
