/**
 * These two functions allow for finding out the position of an HTML element on the page.
 */
function CMS_findPosX(obj)
{
	var curleft = 0;
/*
//	alert('D: ' + obj.offsetParent.offsetParent.offsetParent.offsetLeft + '  C: ' + obj.offsetParent.offsetParent.offsetLeft + '  B: ' + obj.offsetParent.offsetLeft + '  A: ' + obj.offsetLeft);
	alert(' H: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetLeft + ' G: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetLeft + ' F: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetLeft + ' E: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetLeft + ' D: ' + obj.offsetParent.offsetParent.offsetParent.offsetLeft + '  C: ' + obj.offsetParent.offsetParent.offsetLeft + '  B: ' + obj.offsetParent.offsetLeft + '  A: ' + obj.offsetLeft);
	alert(' H: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['position'] + ' G: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['position'] + ' F: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['position'] + ' E: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['position'] + ' D: ' + obj.offsetParent.offsetParent.offsetParent.currentStyle['position'] + '  C: ' + obj.offsetParent.offsetParent.currentStyle['position'] + '  B: ' + obj.offsetParent.currentStyle['position'] + '  A: ' + obj.currentStyle['position']);
	alert(' H: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['marginLeft'] + ' G: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['marginLeft'] + ' F: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['marginLeft'] + ' E: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['marginLeft'] + ' D: ' + obj.offsetParent.offsetParent.offsetParent.currentStyle['marginLeft'] + '  C: ' + obj.offsetParent.offsetParent.currentStyle['marginLeft'] + '  B: ' + obj.offsetParent.currentStyle['marginLeft'] + '  A: ' + obj.currentStyle['marginLeft']);
	alert(' H: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['paddingLeft'] + ' G: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['paddingLeft'] + ' F: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['paddingLeft'] + ' E: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['paddingLeft'] + ' D: ' + obj.offsetParent.offsetParent.offsetParent.currentStyle['paddingLeft'] + '  C: ' + obj.offsetParent.offsetParent.currentStyle['paddingLeft'] + '  B: ' + obj.offsetParent.currentStyle['paddingLeft'] + '  A: ' + obj.currentStyle['paddingLeft']);
	alert(' H: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['borderLeftWidth'] + ' G: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['borderLeftWidth'] + ' F: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['borderLeftWidth'] + ' E: ' + obj.offsetParent.offsetParent.offsetParent.offsetParent.currentStyle['borderLeftWidth'] + ' D: ' + obj.offsetParent.offsetParent.offsetParent.currentStyle['borderLeftWidth'] + '  C: ' + obj.offsetParent.offsetParent.currentStyle['borderLeftWidth'] + '  B: ' + obj.offsetParent.currentStyle['borderLeftWidth'] + '  A: ' + obj.currentStyle['borderLeftWidth']);
*/
	if(obj.offsetParent)
	{
		while(1)
		{
			curleft += obj.offsetLeft;
			
			if(!obj.offsetParent)
				break;

			if (navigator.userAgent.toLowerCase().indexOf("msie") > -1 && obj.offsetParent.currentStyle['position'] == 'relative')
				curleft -= CMS_toPixels(obj.offsetParent.currentStyle['marginLeft'], obj.offsetParent, 'width');
			
			obj = obj.offsetParent;
		}
	}
	else if(obj.x)
		curleft += obj.x;
	return curleft;
}

function CMS_findPosY(obj)
{
	var curtop = 0;
	if(obj.offsetParent)
		while(1)
		{
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
				break;
			
			if (navigator.userAgent.toLowerCase().indexOf("msie") > -1 && obj.offsetParent.currentStyle['position'] == 'relative')
				curtop -= CMS_toPixels(obj.offsetParent.currentStyle['marginTop'], obj.offsetParent, 'height');
			
			obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	return curtop;
}

function CMS_toPixels(text, obj, widthOrHeight)
{
	var re = new RegExp(/([0-9]*)(px|pt|%)/);
	if (!re.exec(text)) return false;
	
	var theVal = RegExp.$1;
	var theUnit = RegExp.$2;
	var px = 0;
	
	if (theUnit == 'px')
		px = theVal * 1;
	else if (theUnit == 'pt')
		px = Math.round(theVal * 1.3333);
	else if (theUnit == '%')
	{
		if (widthOrHeight == 'width')
			px = Math.round(obj.offsetParent.offsetWidth * (theVal / 100));
		else
			px = Math.round(obj.offsetParent.offsetHeight * (theVal / 100));
	}
	
	return px;
}

/**
 * The following functions allow for appending functions together for these page functions:
 *		'onblur', 'onerror', 'onfocus', 'onload', 'onresize', 'onunload'
 *
 * The first parameter is always the function you wish to add (Note: not a string).
 */
function CMS_addOnblur(f)
{
	var wo = window.onblur;
	window.onblur = (wo) ? function(){wo();f()} : f;
}
function CMS_addOnerror(f)
{
	var wo = window.onerror;
	window.onerror = (wo) ? function(){wo();f()} : f;
}
function CMS_addOnfocus(f)
{
	var wo = window.onfocus;
	window.onfocus = (wo) ? function(){wo();f()} : f;
}
function CMS_addOnload(f)
{
	var wo = window.onload;
	window.onload = (wo) ? function(){wo();f()} : f;
}
function CMS_addOnresize(f)
{
	var wo = window.onresize;
	window.onresize = (wo) ? function(){wo();f()} : f;
}
function CMS_addOnunload(f)
{
	var wo = window.onunload;
	window.onunload = (wo) ? function(){wo();f()} : f;
}
