function switchClassName(oObj, sClassName) {
    	oObj.className = sClassName;
}
function bodyScripts() {
	return event.ctrlKey;
}
function BRValidateThis(oForm){
/*
Implementation:

<form method=post onsubmit="return BRValidateThis(this)">
<Input datatype=Username required=1 Type=Text name=Username><br>
<Input datatype=Password required=1 Type=password name=Password><br>
<Input Type=submit value=Login><br>
</form>
*/
	var oElement
	var i, x

	aDataTypeTest = new Array(/*Structure: "DataType Name", "Error Message if failed.", /Regular Expression/ */
		"Text", "You need to put something, anything in here.", /./,
		"Username", "Username requires at least three alpha-numeric characters.", /[a-zA-Z0-9]{3,}/,
		"Password", "Passwords require at least six characters.", /.{6,}/,
		"Alpha", "Letters only, please.", /^[a-zA-Z]+$/,
		"Email", "Try again. Invalid email address format.", /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/,
		"Phone", "This phone data type requires seven or ten digita without dashes.", /^(\d{7,10})$/,
		"Zip", "Not a valid zip code.", /^(\d{5}-\d{4}|\d{5})$|^([a-zA-Z]\d[a-zA-Z] \d[a-zA-Z]\d)$/,
		"Webpage", "Not a valid web address.\nValid addresses must begin with\nhttp://, https:// or ftp://", /((http|ftp|https):\/\/)?[\w]+(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/,
		"IP", "Invalid IP address format", /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/,
		"Number", "Numbers only, please.", /^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$/,
		"Integer", "Whole numbers only please.", /(^-?\d\d*$)/,
		"GUID", "Not a valid GUID", /^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$/,
		"CreditCard", "Not a valid credit card number.", /^((4\d{3})|(5[1-5]\d{2})|(6011))(-| )?\d{4}(-| )?\d{4}(-| )?\d{4}$/,
		"Date", "Not a valid date format or date does not exist.\Try: 1/1/2001\or 01/01/01\nor 1/1/01", /^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/,
		"DateTime", "Not a valid DateTime format.", /20\d{2}(-|\/)((0[1-9])|(1[0-2]))(-|\/)((0[1-9])|([1-2][0-9])|(3[0-1]))(T|\s)(([0-1][0-9])|(2[0-3])):([0-5][0-9]):([0-5][0-9])/,
		"Time", "Not a valid time format.", /^((([0]?[1-9]|1[0-2])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?( )?(AM|am|aM|Am|PM|pm|pM|Pm))|(([0]?[0-9]|1[0-9]|2[0-3])(:|\.)[0-5][0-9]((:|\.)[0-5][0-9])?))$/,
		"HexCode", "Not a valid hexcode format.", /^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$/,
		"Money", "Not a recognized money format.", /^\$?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/,
		"IntPhone", "", /^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/
	)

	for (i=0; i<oForm.length; i++){
		oElement = oForm.elements[i]
		if (oElement.required == 1 && oElement.value == ""){
			oElement.focus();
			alert('This is a required field. (' + oElement.name + ')\n\nPlease correct the error and try again.')
			return false
		}else{
			for (x=0; x<aDataTypeTest.length; x=x+3){
				if(oElement.datatype == aDataTypeTest[x]){
					if ( !aDataTypeTest[x+2].test(oElement.value) ){
						oElement.focus();
						if (aDataTypeTest[x+1] == "")
							alert('Invalid entry.\n\nExpected : ' + oElement.datatype )
						else
							alert(aDataTypeTest[x+1])
						return false
					}
				}
			}
		}
	}
	return true
}
function checkForExit(){
	if(event.keyCode == 27)
		close()
}
function CheckforChanges2(oForm){
	var oElement, bNoErrors = true;
	for(i=0;i<oForm.length&&bNoErrors;i++){
		oElement = oForm.elements[i];
		switch(oElement.type){
			case "text"||"password":
				bNoErrors = (oElement.value == oElement.defaultValue) ? bNoErrors : false;
				break;
			case "checkbox":
				bNoErrors = (oElement.checked == oElement.defaultChecked) ? bNoErrors : false;
				break;
			case "radio":
				bNoErrors = (oElement.checked == oElement.defaultChecked) ? bNoErrors : false;
				break;
			default:
				if(Boolean(oElement.multiple)){
					for(x==0;x<oElement.options.length;++x){
						bNoErrors = (oElement.options[x].defaultSelected == oElement.options[x].selected) ? bNoErrors : false;
					}
				}else{
					bNoErrors = (oElement.value == oElement.defaultValue) ? bNoErrors : false;
				}
				break;
		}
	}
	return bNoErrors;
}
