//////////////////////////////////////////////////////////////////////////////////////
String.prototype.trim = function() {
	return this.replace(/^\s*/,"").replace(/\s*$/,"");
}
//////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////
//window.onerror = genErrHandler;

function genErrHandler(sMsg, sURL, iLnNo) {
	//alert('An error occurred while attempting to process your request.\nPlease contact your web site administrator.\n\nError: ' + sMsg + '\nLine: ' + iLnNo);
	return true;
}
//////////////////////////////////////////////////////////////////////////////////////
 
//////////////////////////////////////////////////////////////////////////////////////
var bIsIE = ('Microsoft Internet Explorer' == navigator.appName);
var bIsNS = (!bIsIE && 'Netscape' == navigator.appName);
var bIsMac = (-1 < navigator.appVersion.toUpperCase().indexOf('MAC'));
var iDPIMult = (bIsIE && screen.deviceXDPI) ? (screen.deviceXDPI / screen.logicalXDPI) : 1;
var sStatusBarText = '';
//////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////
if (bIsIE)
	document.onselectstart = disableSelect;
else if (!bIsMac) {
	document.onmousedown = disableSelect;
	document.onclick = enableSelect;
}

function disableSelect(evt) {
	var objElement = (bIsIE) ? event.srcElement : evt.target;

	if (objElement) {
		var sTagName = objElement.tagName.toUpperCase();
		if ('INPUT' != sTagName && 'TEXTAREA' != sTagName) return false;
	}
}

function enableSelect(evt) {
	return true;
}
//////////////////////////////////////////////////////////////////////////////////////

function getObjectByID(sObjID) {
	var objRet = null;

	try {
		if (sObjID) {
			if (document.getElementById)
				objRet = document.getElementById(sObjID);
			else if (document.all)
				objRet = eval('document.all.' + sObjID);
			else
				objRet = eval('document.' + sObjID);
		}
	}
	catch (e) { }

	return objRet;
}

function getContainerTable(objElement) {
	var objTable = objElement;

	while (objTable && ('TABLE' != objTable.tagName.toUpperCase())) {
		objTable = objTable.parentNode;
	}

	return objTable;
}

function getParentRow(objElement) {
	var objRow = objElement;

	while (objRow && ('TR' != objRow.tagName.toUpperCase())) {
		objRow = objRow.parentNode;
	}

	return objRow;
}

function isChildElement(objChildElement, objParentElement, bNullIsAChild) {
	var bIsChild = false;

	if (objParentElement) {
		if (!objChildElement)
			bIsChild = (bNullIsAChild) ? true : false;
		else {
			var objCheck = objChildElement.parentNode;

			while (objCheck) {
				if (objCheck == objParentElement) {
					bIsChild = true;
					break;
				}
				objCheck = objCheck.parentNode;
			}
		}
	}

	return bIsChild;
}

function doStdLinkOver(objAnchor) {
	try {
		if (objAnchor) {
			if (!objAnchor.linkImg) objAnchor.linkImg = objAnchor.childNodes[0];
			if (!objAnchor.sbText) {
				objAnchor.sbText = (objAnchor.childNodes[0].alt.length) ? objAnchor.childNodes[0].alt : ' ';
				objAnchor.childNodes[0].alt = '';
			}

			objAnchor.linkImg.origSrc = objAnchor.linkImg.src;
			if (!objAnchor.linkImg.overSrc) objAnchor.linkImg.overSrc = getMouseOverSrc(objAnchor.linkImg.src);
			objAnchor.linkImg.src = objAnchor.linkImg.overSrc;
			window.status = objAnchor.sbText;
			return true;
		}
	}
	catch (e) { }

	return false;
}

function doStdLinkOut(objAnchor) {
	try {
		if (objAnchor) objAnchor.linkImg.src = objAnchor.linkImg.origSrc;
		window.status = '';
	}
	catch (e) { }

	return true;
}

function showLinkStatus() {
	window.status = sStatusBarText;
}

function getMouseOverSrc(sImgSrc) {
	var sOverSource = '';

	if (sImgSrc) sOverSource = sImgSrc.substr(0, sImgSrc.indexOf('.gif')) + '_O.gif';

	return sOverSource;
}

function getActivePageSrc(sImgSrc) {
	var sActiveSource = '';

	if (sImgSrc) sActiveSource = sImgSrc.substr(0, sImgSrc.indexOf('.gif')) + '_Sel.gif';

	return sActiveSource;
}

function lockImageDrag() {
	var arrElements = document.getElementsByTagName('IMG');
	var iNumImg = arrElements.length;
	
	for (var i = 1; i < iNumImg; i++)
		arrElements[i].ondrag = imgDrag;

	arrElements = document.getElementsByTagName('A');
	iNumImg = arrElements.length;
	
	for (i = 1; i < iNumImg; i++)
		arrElements[i].ondrag = imgDrag;
}

function imgDrag() {
	return false;
}

function openModalDialog(sURL, sWinName, vArgs, iWidth, iHeight) {
	if (bIsIE) {
		iWidth = (iWidth + 24) * iDPIMult;
		iHeight = (iHeight + 24) * iDPIMult;
		var sGet = (-1 == sURL.indexOf('?')) ? '?' : '&';

		window.showModalDialog(sURL + sGet + 'cachePrevent=' + getRandomNum(), vArgs, 'dialogWidth:' + iWidth  + 'px; dialogHeight:' + iHeight + 'px; scroll:no; status:no; help:no;');
	}
	else
		window.open(sURL, sWinName, 'width=' + iWidth + ',height=' + iHeight + ',dependent,alwaysRaised');
}

function getRandomNum() {
	return Math.round((Math.random() * 19999) + 1);
}
