
var PPSCUtilities = {

	defocus : function (node)
	{
		var insertionNode = node ? node : document.body.firstChild;
			
		var dummyLink = document.createElement("a");
		dummyLink.style.fontSize = "0px";
		dummyLink.style.lineHeight = "0px";
		dummyLink.innerHTML = "";
		dummyLink.href = "javascript:void(0);";
		
		insertionNode.parentNode.appendChild(dummyLink);//, insertionNode);
	
		dummyLink.focus();
		
		insertionNode.parentNode.removeChild(dummyLink);
	},
	
	
	showPleaseWait : function (message)
	{
		var pleaseWaitTop;
		if (document.documentElement && document.documentElement.clientHeight)
			pleaseWaitTop = document.documentElement.clientHeight;
		else
			pleaseWaitTop = document.body.clientHeight;
		
		pleaseWaitTop = PPSCUtilities.getScreenCenterY() - 30;
		pleaseWaitTop += "px";
		
		var pleaseWaitLeft = PPSCUtilities.getScreenCenterX() - 150;
		pleaseWaitLeft += "px";
        	
		var pleaseWait = document.createElement("div");
		pleaseWait.innerHTML = message;
		pleaseWait.style.padding = "8px";
		pleaseWait.style.border = "1px solid darkblue";
		pleaseWait.style.fontSize = "18px";
		pleaseWait.style.position = "absolute";
		pleaseWait.style.width = "300px";
		pleaseWait.style.height = "60px";
		pleaseWait.style.lineHeight = "60px";
		pleaseWait.style.backgroundColor = "white";
		
		pleaseWait.style.left = pleaseWaitLeft;
		pleaseWait.style.top = pleaseWaitTop;
		
		var maxDots = 0;
		
		document.body.firstChild.parentNode.appendChild(pleaseWait);
		
		setInterval( 
			function() 
			{ 
			if (maxDots++ < 10) 
			{ 
				pleaseWait.innerHTML += "."; 
			} 
			else 
			{ 
				pleaseWait.innerHTML = message; 
				maxDots = 0; 
			} 
			}, 750);
		
		return { parent : document.body.firstChild.parentNode, pleaseWaitNode : pleaseWait };
	},
	
	
	getScreenCenterX : function ()
	{
		return document.body.clientWidth / 2;
	},
	
	getScreenCenterY : function ()
	{
		if (self.pageYOffset)
		{
			y = self.pageYOffset;
		}
		else if (document.documentElement && document.documentElement.scrollTop)
		{
			y = document.documentElement.scrollTop;
		}
		else if (document.body)
		{
			y = document.body.scrollTop;
		}
		
		return y + (PPSCUtilities.getWindowHeight() / 2);
	},
	
	getBrowserLeftEdge : function ()
	{
		if (LKBrowser.is_ua_ie)
		{
			return document.documentElement.scrollLeft + document.body.scrollLeft;
		}
		else
		{
			return window.scrollX;
		}			
	},
	
	getBrowserTopEdge : function ()
	{
		if (LKBrowser.is_ua_ie)
		{
			return document.documentElement.scrollTop + document.body.scrollTop;
		}
		else
		{		
			return window.scrollY;
		}
	},
	
	getDocumentWidth : function () 
	{
		// FF
		// document.body.clientWidth = width of document (without scroll bars, etc)
		// window.innerWidth = width of actual window (with scrolls, borders)
		
		return document.body.clientWidth;	
	},
	
	getWindowHeight : function ()
	{
		var h;
		
		if (document.documentElement && document.documentElement.clientHeight)
		{
			h = document.documentElement.clientHeight;
		}
		else if (document.body.clientHeight)
		{
			h = document.body.clientHeight;
		}
		return h;	
	},
	
	getEventPageY : function (e)
	{
		var evt = e ? e : window.event;
		var pageY;
		
		if (evt.pageY)
		{
			pageY = evt.pageY;
		}
		else
		{
			pageY = evt.clientY + document.body.scrollTop;
		}
	
		return pageY;
	},
	
	
	getEventPageX : function (e)
	{
		var evt = e ? e : window.event;
		var pageX;
		
		if (evt.pageX)
		{
			pageX = evt.pageX;
		}
		else
		{
			//alert(evt.clientX);
			pageX = evt.clientX;
		}
	
		return pageX;
	},
	
	padNumber : function (num, padWidth, padCharacter)
	{
		var padWith = padCharacter ? padCharacter : "0";
		
		var numDigitsToPad = padWidth ? padWidth : 2;
		var topLimit = (numDigitsToPad - 1) * 10;
		
		var numString = String(num);
		var currentLength = numString.length;
		
		if (num >= 0 && num < topLimit)
		{
			var paddingToAdd = numDigitsToPad - currentLength;
			if (paddingToAdd > 0)
			{
				for (i = 0; i < paddingToAdd; i++)
				{
					numString = padWith + numString;
				}
			}
		}
		
		return numString;
	},
	
	escape : function (string)
	{
		return escape(string).replace(/\+/g,'%2B');		
	}

};

