function IsRequired(loControl, lsDisplayName, lbFocus){
	if ((loControl.type == "checkbox") || (loControl.type == "radio")) {
		if (!loControl.checked){
			alert("Please enter a value in the '" + lsDisplayName + "' field.");
			if (lbFocus){
				loControl.focus();}
			return (false);
		}
	}
	if (loControl.length){
		if (loControl[0].type == "radio"){
			return (isRadioButtonSelected(loControl, lsDisplayName));
		}
	}
	if (!(isValueSomething(loControl.value))){
		alert("Please enter a value in the '" + lsDisplayName + "' field.");
		if (lbFocus){
			loControl.focus();}
		return (false);
	}
	return (true);
}

function IsFirstItemSelected(loControl, lsDisplayName){
	if (loControl.selectedIndex == 0){
		alert("The first '" + lsDisplayName + "' option is not a valid selection.  Please choose one of the other options.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsAlphabets(loControl, lsDisplayName){
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	var checkStr = loControl.value;
	var allValid = true;
	var i;
	var j;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid){
		alert("Please enter only letter characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsDigits(loControl, lsDisplayName){
	var checkOK = "0123456789";
	var checkStr = loControl.value;
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid){
		alert("Please enter only digit characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsAlphaNumeric(loControl, lsDisplayName){
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
	var checkStr = loControl.value;
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid){
		alert("Please enter only letter and digit characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsAlphabetsWithSpaces(loControl, lsDisplayName){
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz \t\r\n\f";
	var checkStr = loControl.value;
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
			break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid){
		alert("Please enter only letter and space characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsDigitsWithSpaces(loControl, lsDisplayName){
	var checkOK = "0123456789 \t\r\n\f";
	var checkStr = loControl.value;
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid){
		alert("Please enter only digit and space characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsAlphaNumericWithSpaces(loControl, lsDisplayName){
	var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 \t\r\n\f";
	var checkStr = loControl.value;
	var allValid = true;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
	}
	if (!allValid){
		alert("Please enter only letter, digit and space characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsInteger(loControl, lsDisplayName){
	var checkOK = "0123456789-+";
	var checkStr = loControl.value;
	var allValid = true;
	var llSignPos;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
		if (ch == "+" || ch == "-"){
			llSignPos = i;
		}
	}
	if (!allValid){
		alert("Please enter a valid integer number in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	if (!llSignPos == 0){
		alert("Please enter a valid integer number in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsDecimal(loControl, lsDisplayName){
	var checkOK = "0123456789-+.";
	var checkStr = loControl.value;
	var allValid = true;
	var decPoints = 0;
	var llSignPos;
	for (i = 0;  i < checkStr.length;  i++){
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length){
			allValid = false;
			break;
		}
		if (ch == "+" || ch == "-"){
			llSignPos = i;
		}
		if (ch == "."){
			decPoints++;
		}
	}
	if (!allValid){
		alert("Please enter a valid decimal number in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	if (decPoints > 1){
		alert("Please enter a valid decimal number in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	if (!llSignPos == 0){
		alert("Please enter a valid decimal number in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
  return (true);
}

function IsEmail (loControl, lsDisplayName){   
	var lsValue = loControl.value;
	if (!pbIsEmail(lsValue)){
		alert("Please enter a valid email address in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsDate (loControl, lsDisplayName){
	var lsValue = loControl.value;
	if (!pbIsDate(lsValue)){
		alert("Please enter a valid date as dd/mm/yyyy in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function IsLessThan (loControl, lsDisplayName, lvFixedValue, liCompare){   
	var chkVal = loControl.value;
	var prsVal = chkVal;
	var lFixedValue = lvFixedValue; 
	if (liCompare == 1){	
		prsVal = parseFloat(prsVal);
		lFixedValue = parseFloat(lFixedValue);
	}  
	if (liCompare == 2){
		if (!IsDate(loControl, lsDisplayName)) return false;
		prsVal = pdtConvertToDate(prsVal);
		lFixedValue = pdtConvertToDate(lFixedValue);	
	}
	if (chkVal != "" && !(prsVal < lFixedValue)){
		alert("Please enter a value less than " + lvFixedValue + " in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsLessThanEqualTo (loControl, lsDisplayName, lvFixedValue, liCompare){   
	var chkVal = loControl.value;
	var prsVal = chkVal;
	var lFixedValue = lvFixedValue; 
	if (liCompare == 1){	
		prsVal = parseFloat(prsVal);
		lFixedValue = parseFloat(lFixedValue);
	}  
	if (liCompare == 2){
		if (!IsDate(loControl, lsDisplayName)) return false;
		prsVal = pdtConvertToDate(prsVal);
		lFixedValue = pdtConvertToDate(lFixedValue);	
	}
	if (chkVal != "" && !(prsVal <= lFixedValue)){
		alert("Please enter a value less than or equal to " + lvFixedValue + " in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return (true);
}

function IsGreaterThan (loControl, lsDisplayName, lvFixedValue, liCompare){   
	var chkVal = loControl.value;
	var prsVal = chkVal;
	var lFixedValue = lvFixedValue;
	if (liCompare == 1){	
		prsVal = parseFloat(prsVal);
		lFixedValue = parseFloat(lFixedValue);
	}
	if (liCompare == 2){
		if (!IsDate(loControl, lsDisplayName)) return false;
		prsVal = pdtConvertToDate(prsVal);
		lFixedValue = pdtConvertToDate(lFixedValue);
	}
	if (chkVal != "" && !(prsVal > lFixedValue)){
		alert("Please enter a value greater than " + lvFixedValue + " in the '" + lsDisplayName + "' field.");
		loControl.focus();
	   return (false);
	}
	return true;
}

function IsGreaterThanEqualTo (loControl, lsDisplayName, lvFixedValue, liCompare){   
	var chkVal = loControl.value;
	var prsVal = chkVal;
	var lFixedValue = lvFixedValue;
	if (liCompare == 1){	
		prsVal = parseFloat(prsVal);
		lFixedValue = parseFloat(lFixedValue);
	}   
	if (liCompare == 2){
		if (!IsDate(loControl, lsDisplayName)) return false;
		prsVal = pdtConvertToDate(prsVal);
		lFixedValue = pdtConvertToDate(lFixedValue);	
	}
	if (chkVal != "" && !(prsVal >= lFixedValue)){
		alert("Please enter a value greater than or equal to " + lvFixedValue + " in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function IsEqualTo (loControl, lsDisplayName, lvFixedValue, liCompare){   
	var chkVal = loControl.value;
	var prsVal = chkVal;
	var lFixedValue = lvFixedValue; 
	if (liCompare == 1){	
		prsVal = parseFloat(prsVal);
		lFixedValue = parseFloat(lFixedValue);
	}   
	if (liCompare == 2){
		if (!IsDate(loControl, lsDisplayName)) return false;
		prsVal = pdtConvertToDate(prsVal);
		lFixedValue = pdtConvertToDate(lFixedValue);	
	}
	if (chkVal != "" && !(prsVal == lFixedValue)){
		alert("Please enter a value equal to " + lvFixedValue + " in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function IsNotEqualTo (loControl, lsDisplayName, lvFixedValue, liCompare){   
	var chkVal = loControl.value;
	var prsVal = chkVal;
	var lFixedValue = lvFixedValue;  
	if (liCompare == 1){	
		prsVal = parseFloat(prsVal);
		lFixedValue = parseFloat(lFixedValue);
	}  
	if (liCompare == 2){
		if (!IsDate(loControl, lsDisplayName)) return false;
		prsVal = pdtConvertToDate(prsVal);
		lFixedValue = pdtConvertToDate(lFixedValue);	
	}
	if (chkVal != "" && !(prsVal != lFixedValue)){
		alert("Please enter a value other than " + lvFixedValue + " in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function IsMinimumLength (loControl, lsDisplayName, liMinLength){   
	if (loControl.value.length < liMinLength){
		alert("Please enter at least " + liMinLength + " characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return(false);
	}
	return (true);
}

function IsMaximumLength (loControl, lsDisplayName, liMaxLength){  
	if (loControl.value.length > liMaxLength){
		alert("Please enter at most " + liMaxLength + " characters in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return(false);
	}
	return (true);
}

function AreSame (loControl1, loControl2, lsDisplayName1, lsDisplayName2){   
	var lsValue1 = loControl1.value;
	var lsValue2 = loControl2.value;
	var lbValid = true;
	if (lsValue1 != lsValue2){
		lbValid = false;
	}
	if (!lbValid){
		alert("Please enter a value in the '" + lsDisplayName1 + "' field that is same as the value entered in the '" + lsDisplayName2 + "' field.");
		loControl1.focus();
		return(false);
	}
	return true;
}

function AreNotSame (loControl1, loControl2, lsDisplayName1, lsDisplayName2){   
	var lsValue1 = loControl1.value;
	var lsValue2 = loControl2.value;
	var lbValid = true;
	if ( (lsValue1 == "") && (lsValue2 == "") ) return true;
	if (lsValue1 == lsValue2){
		lbValid = false;
	}
	if (!lbValid){
		alert("Please enter a value in the '" + lsDisplayName1 + "' field that is different from the value entered in the '" + lsDisplayName2 + "' field.");
		loControl1.focus();
		return(false);
	}
	return true;
}

function IsMinimumAge (loControl, lsDisplayName, lsSystemDate, liMinimumAge){   
	var lsValue = loControl.value;
	var liAge;
	var lsYearDOB;
	var lsMonthDOB;
	var lsDayDOB;
	var lsYearToday;
	var lsMonthToday;
	var lsDayToday;
	if (lsValue == "") return true;
	if (!IsDate(loControl, lsDisplayName)) return false;
	lsDayDOB = lsValue.substr(0,2);
	lsMonthDOB = lsValue.substr(3,2);
	lsYearDOB = lsValue.substr(6,4);	
	lsDayDOB = parseInt(lsDayDOB, 10);
	lsMonthDOB = parseInt(lsMonthDOB, 10);
	lsYearDOB = parseInt(lsYearDOB, 10);
	lsDayToday = lsSystemDate.substr(0,2);
	lsMonthToday = lsSystemDate.substr(3,2);
	lsYearToday = lsSystemDate.substr(6,4);
	lsDayToday = parseInt(lsDayToday, 10);
	lsMonthToday = parseInt(lsMonthToday, 10);
	lsYearToday = parseInt(lsYearToday, 10);
	var lsDOB = new Date(lsYearDOB, lsMonthDOB - 1, lsDayDOB);	
	var lsToday = new Date(lsYearToday, lsMonthToday - 1, lsDayToday);		
	liAge = lsToday.getFullYear() - lsDOB.getFullYear();
	lsDOB.setYear( lsToday.getFullYear() );
	if ( lsToday < lsDOB ){
		liAge--;
	}
	var lsTemp 
	if ( lsToday.getDate() < 10 ){
		lsTemp = "0" + lsToday.getDate() + "/"
	}
	else{
		lsTemp = lsToday.getDate() + "/"
	}
	if ( ( lsToday.getMonth() + 1 ) < 10 ){
		lsTemp = lsTemp + "0" + ( lsToday.getMonth() + 1 ) + "/"
	}
	else{
		lsTemp = lsTemp + ( lsToday.getMonth() + 1 ) + "/"
	}
	lsTemp = lsTemp + ( lsToday.getYear() - liMinimumAge)
	if (liAge < liMinimumAge){
		alert("Please enter a value that is before '" + lsTemp + "' in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function IsMaximumAge (loControl, lsDisplayName, lsSystemDate, liMaximumAge){ 
	var lsValue = loControl.value;
	var liAge;
	var lsYearDOB;
	var lsMonthDOB;
	var lsDayDOB;
	var lsYearToday;
	var lsMonthToday;
	var lsDayToday;
	if (lsValue == "") return true;
	if (!IsDate(loControl, lsDisplayName)) return false;
	lsDayDOB = lsValue.substr(0,2);
	lsMonthDOB = lsValue.substr(3,2);
	lsYearDOB = lsValue.substr(6,4);
	lsDayDOB = parseInt(lsDayDOB, 10);
	lsMonthDOB = parseInt(lsMonthDOB, 10);
	lsYearDOB = parseInt(lsYearDOB, 10);
	lsDayToday = lsSystemDate.substr(0,2);
	lsMonthToday = lsSystemDate.substr(3,2);
	lsYearToday = lsSystemDate.substr(6,4);
	lsDayToday = parseInt(lsDayToday, 10);
	lsMonthToday = parseInt(lsMonthToday, 10);
	lsYearToday = parseInt(lsYearToday, 10);
	var lsDOB = new Date(lsYearDOB, lsMonthDOB - 1, lsDayDOB);	
	var lsToday = new Date(lsYearToday, lsMonthToday - 1, lsDayToday);	
	liAge = lsToday.getFullYear() - lsDOB.getFullYear();
	lsDOB.setYear( lsToday.getFullYear() );
	if ( lsToday < lsDOB ){
		liAge--;
	}
	var lsTemp 
	if ( lsToday.getDate() < 10 ){
		lsTemp = "0" + lsToday.getDate() + "/"
	}
	else{
		lsTemp = lsToday.getDate() + "/"
	}
	if ( ( lsToday.getMonth() + 1 ) < 10 ){
		lsTemp = lsTemp + "0" + ( lsToday.getMonth() + 1 ) + "/"
	}
	else{
		lsTemp = lsTemp + ( lsToday.getMonth() + 1 ) + "/"
	}
	lsTemp = lsTemp + ( lsToday.getYear() - liMaximumAge - 1)
	if (liAge > liMaximumAge){
		alert("Please enter a value that is after '" + lsTemp + "' in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function isEmptySpace(chkstr){		
	var CHAR_FOR_SPACE=32;
	var len=chkstr.length;
	var k=0;
	var blisSpaces=true;
	if(len>0){
		for (k=0; k<len; k++){				
			if (chkstr.charCodeAt(k)!=CHAR_FOR_SPACE){
				blisSpaces=false;	
				break;
			}
		} 	
	}
	return blisSpaces;
}
	
function isValueSomething(chkstr){
	var blisValueSomething=false;
	if((isNull(chkstr)==false)&&(isEmptySpace(chkstr)==false)){
		blisValueSomething=true;
	}
	return blisValueSomething;
}
	
function isNull(chkstr){		
	var blisNull=true;	
	var len=chkstr.length;
	if(len){
		blisNull=false;	
	} 
	return blisNull;	
}
			
function pbIsEmail(chkstr){
	var blisEmail=true;
	if(isValueSomething(chkstr)==false){
		return blisEmail;
	}
	var supported = 0;
	if (window.RegExp){				
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}			
	if (!supported) 			
		return (chkstr.indexOf(".") > 2) && (chkstr.indexOf("@") > 0);			
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	blisEmail= ((!r1.test(chkstr) && r2.test(chkstr)));												
	return blisEmail;
}
		
function pbIsDate(chkstr){
	var blnisDate=true;
	var separator1="/";
	var UseSeparator;	
	if(isValueSomething(chkstr)==false){
		return blnisDate;
	}
	if((chkstr.length > 10) || (chkstr.length < 10)){
		blnisDate=false;	
		return blnisDate;       
	}
	var pos1=chkstr.indexOf(separator1)
	if(pos1<0){
		blnisDate=false;	
		return blnisDate;       
	}	
	else if(pos1>=0){
		UseSeparator=separator1
	}
	else{
		blnisDate=false;	
		return blnisDate;       		
	}					
	var pos=chkstr.indexOf(UseSeparator)
	strDay  = chkstr.substring(0, pos)
	pos2=chkstr.lastIndexOf(UseSeparator)
	strMonth  = chkstr.substring(pos+1, pos2)
	strYear = chkstr.substring(pos2+1, chkstr.length)		
	if((isValueSomething(strDay)==false)||(isValueSomething(strMonth)==false)||(isValueSomething(strYear)==false)){ //Check if the values are present for Day, Month and Year		
		blnisDate=false;	
		return blnisDate;
	}		
	else		
	if((isNaN(strDay))||(isNaN(strMonth))||(isNaN(strYear))){
		blnisDate=false;	
		return blnisDate;
	}
	dtDay = eval(strDay)
	dtMonth = eval(strMonth)
	dtYear = eval(strYear)
	if (dtDay<1 || dtDay>31){
		blnisDate=false;
		return blnisDate;
	}
	if (dtMonth<1 || dtMonth>12){
		blnisDate=false;	
		return blnisDate;
	}
	if ((dtYear<1900)||(dtYear>2079)){
		blnisDate=false;	
		return blnisDate;
	}
	if (dtYear==2079){
		if (dtMonth>6){
			blnisDate=false;	
			return blnisDate;
		}
		else if (dtMonth==6){
			if (dtDay>6){
				blnisDate=false;
				return blnisDate;
			}
		}			
	}
	if (dtMonth==4 || dtMonth==6 || dtMonth==9 || dtMonth==11){
		if (dtDay==31){
			blnisDate=false;
			return blnisDate;
		}
	}
	if (dtMonth==2){
		if (dtDay>29){
			blnisDate=false;	
			return blnisDate;
		}
		if (dtDay==29){
			if((dtYear%4)!=0){
				blnisDate=false;	
				return blnisDate;
			}
			if(((dtYear%400)!=0)&&((dtYear%100)==0)){
				blnisDate=false;	
				return blnisDate;
			}
		}
	} 	
	return blnisDate;
}

function isRadioButtonSelected(loControl, lsDisplayName){
	var liCount;
	var lbCheck;
	lbCheck=false;
	for (liCount =0;liCount<=loControl.length-1;liCount++){	
		if (loControl[liCount].checked == true){
			lbCheck= true;
			break;
		}
		else{
			lbCheck= false
		}
	}
	if (!lbCheck){
		alert("Please enter a value in the '" + lsDisplayName + "' field."); 			
		loControl[0].focus();
		return (false);
	} 		
	return (lbCheck);
}

function pdtConvertToDate(lsValue){
	var lsYear;
	var lsMonth;
	var lsDay;
	var ldtDate = "";
	if (lsValue == "") return (ldtDate);	
	if (!pbIsDate(lsValue)) return (ldtDate);
	lsDay = lsValue.substr(0,2);
	lsMonth = lsValue.substr(3,2);
	lsYear = lsValue.substr(6,4);
	lsDay = parseInt(lsDay, 10);
	lsMonth = parseInt(lsMonth, 10);
	lsYear = parseInt(lsYear, 10);
	ldtDate = new Date(lsYear, lsMonth - 1, lsDay);	
	return (ldtDate);
}

function IsLessThanControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2, liCompare){   
	var lsValue1 = loControl1.value;
	var lsValue2 = loControl2.value;
	var lbValid = true; 
	if (liCompare == 1){	
		lsValue1 = parseFloat(lsValue1);
		lsValue2 = parseFloat(lsValue2);
	}  
	if (liCompare == 2){
		if (!IsDate(loControl1, lsDisplayName1)) return false;
		if (!IsDate(loControl2, lsDisplayName2)) return false;
		lsValue1 = pdtConvertToDate(lsValue1);
		lsValue2 = pdtConvertToDate(lsValue2);	
	}
	if ((lsValue1 != "") && (lsValue2 != "") && (lsValue1 >= lsValue2)){
		lbValid = false;
	}
	if (!lbValid){
		alert("Please enter a value in the '" + lsDisplayName1 + "' field that is less than the value entered in the '" + lsDisplayName2 + "' field.");
		loControl2.focus();
		return(false);
	}
  return true;
}

function IsLessThanEqualToControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2, liCompare){   
	var lsValue1 = loControl1.value;
	var lsValue2 = loControl2.value;
	var lbValid = true;
	if (liCompare == 1){	
		lsValue1 = parseFloat(lsValue1);
		lsValue2 = parseFloat(lsValue2);
	}   
	if (liCompare == 2){
		if (!IsDate(loControl1, lsDisplayName1)) return false;
		if (!IsDate(loControl2, lsDisplayName2)) return false;
		lsValue1 = pdtConvertToDate(lsValue1);
		lsValue2 = pdtConvertToDate(lsValue2);	
	}
	if ((lsValue1 != "") && (lsValue2 != "") && (lsValue1 > lsValue2)){
		lbValid = false;
	}
	if (!lbValid){
		alert("Please enter a value in the '" + lsDisplayName1 + "' field that is less than or equal to the value entered in the '" + lsDisplayName2 + "' field.");
		loControl2.focus();
		return(false);
	}
	return true;
}

function IsGreaterThanControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2, liCompare){   
	var lsValue1 = loControl1.value;
	var lsValue2 = loControl2.value;
	var lbValid = true; 
	if (liCompare == 1){	
		lsValue1 = parseFloat(lsValue1);
		lsValue2 = parseFloat(lsValue2);
	}    
	if (liCompare == 2){
		if (!IsDate(loControl1, lsDisplayName1)) return false;
		if (!IsDate(loControl2, lsDisplayName2)) return false;
		lsValue1 = pdtConvertToDate(lsValue1);
		lsValue2 = pdtConvertToDate(lsValue2);
	}
	if ((lsValue1 != "") && (lsValue2 != "") && (lsValue1 <= lsValue2)){
		lbValid = false;
	}
	if (!lbValid){
		alert("Please enter a value in the '" + lsDisplayName1 + "' field that is greater than the value entered in the '" + lsDisplayName2 + "' field.");
		loControl2.focus();
		return(false);
	}
	return true;
}

function IsGreaterThanEqualToControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2, liCompare){   
	var lsValue1 = loControl1.value;
	var lsValue2 = loControl2.value;
	var lbValid = true; 
	if (liCompare == 1){	
		lsValue1 = parseFloat(lsValue1);
		lsValue2 = parseFloat(lsValue2);
	}   
	if (liCompare == 2){
		if (!IsDate(loControl1, lsDisplayName1)) return false;
		if (!IsDate(loControl2, lsDisplayName2)) return false;
		lsValue1 = pdtConvertToDate(lsValue1);
		lsValue2 = pdtConvertToDate(lsValue2);	
	}
	if ((lsValue1 != "") && (lsValue2 != "") && (lsValue1 < lsValue2)){
		lbValid = false;
	}
	if (!lbValid){
		alert("Please enter a value in the '" + lsDisplayName1 + "' field that is greater than or equal to the value entered in the '" + lsDisplayName2 + "' field.");
		loControl2.focus();
		return(false);
	}
	return true;
}

function IsXORControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2){
	if (!(isValueSomething(loControl1.value)) && !(isValueSomething(loControl2.value))){
		alert("Please enter a value in either the '" + lsDisplayName2 + "' field or '" + lsDisplayName1 + "' field.");
		loControl1.focus();
		return (false);
	}
	if ((isValueSomething(loControl1.value)) && (isValueSomething(loControl2.value))){
		alert("Please enter a value in either the '" + lsDisplayName2 + "' field or '" + lsDisplayName1 + "' field.");
		loControl2.focus();
		return (false);
	}
  return (true);
}

function IsORControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2){
	if (!(isValueSomething(loControl1.value)) && !(isValueSomething(loControl2.value))){
		alert("Please enter a value in either the '" + lsDisplayName2 + "' field or the '" + lsDisplayName1 + "' field.");
		loControl2.focus();
		return (false);
	}
	return (true);
}

function IsANDControl (loControl1, loControl2, lsDisplayName1, lsDisplayName2){
	if (!(isValueSomething(loControl1.value)) && (isValueSomething(loControl2.value))){
		alert("Please enter a value in both the '" + lsDisplayName2 + "' field and the '" + lsDisplayName1 + "' field.");
		loControl1.focus();
		return (false);
	}
	if ((isValueSomething(loControl1.value)) && !(isValueSomething(loControl2.value))){
		alert("Please enter a value in both the '" + lsDisplayName2 + "' field and the '" + lsDisplayName1 + "' field.");
		loControl2.focus();
		return (false);
	}
	return (true);
}

function IsMinimumDays (loControl, lsDisplayName, lsSystemDate, liDays){   
	var lsValue = loControl.value;
	var lsYear;
	var lsMonth;
	var lsDay;
	var lsYearToday;
	var lsMonthToday;
	var lsDayToday;
	if (lsValue == "") return true;
	if (!IsDate(loControl, lsDisplayName)) return false;
	lsDay = lsValue.substr(0,2);
	lsMonth = lsValue.substr(3,2);
	lsYear = lsValue.substr(6,4);	
	lsDay = parseInt(lsDay, 10);
	lsMonth = parseInt(lsMonth, 10);
	lsYear = parseInt(lsYear, 10);
	lsDayToday = lsSystemDate.substr(0,2);
	lsMonthToday = lsSystemDate.substr(3,2);
	lsYearToday = lsSystemDate.substr(6,4);
	lsDayToday = parseInt(lsDayToday, 10);
	lsMonthToday = parseInt(lsMonthToday, 10);
	lsYearToday = parseInt(lsYearToday, 10);
	var lsDate = new Date(lsYear, lsMonth - 1, lsDay);
	var lsToday = new Date(lsYearToday, lsMonthToday - 1, lsDayToday);	
	liNew = lsToday.getTime() - Math.floor(liDays*(1000*60*60*24));
	var lsThreshold = new Date();	
	lsThreshold.setTime(liNew);
	var lsTemp 
	if ( lsThreshold.getDate() < 10 ){
		lsTemp = "0" + lsThreshold.getDate() + "/"
	}
	else{
		lsTemp = lsThreshold.getDate() + "/"
	}
	if ( ( lsThreshold.getMonth() + 1 ) < 10 ) {
		lsTemp = lsTemp + "0" + ( lsThreshold.getMonth() + 1 ) + "/"
	}
	else{
		lsTemp = lsTemp + ( lsThreshold.getMonth() + 1 ) + "/"
	}
	lsTemp = lsTemp + lsThreshold.getYear()
	if (lsThreshold > lsDate){
		alert("Please enter a value that is on or after '" + lsTemp + "' in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
	return true;
}

function IsMaximumDays (loControl, lsDisplayName, lsSystemDate, liDays){   
	var lsValue = loControl.value;
	var lsYear;
	var lsMonth;
	var lsDay;
	var lsYearToday;
	var lsMonthToday;
	var lsDayToday;
	if (lsValue == "") return true;
	if (!IsDate(loControl, lsDisplayName)) return false;
	lsDay = lsValue.substr(0,2);
	lsMonth = lsValue.substr(3,2);
	lsYear = lsValue.substr(6,4);	
	lsDay = parseInt(lsDay, 10);
	lsMonth = parseInt(lsMonth, 10);
	lsYear = parseInt(lsYear, 10);
	lsDayToday = lsSystemDate.substr(0,2);
	lsMonthToday = lsSystemDate.substr(3,2);
	lsYearToday = lsSystemDate.substr(6,4);
	lsDayToday = parseInt(lsDayToday, 10);
	lsMonthToday = parseInt(lsMonthToday, 10);
	lsYearToday = parseInt(lsYearToday, 10);
	var lsDate = new Date(lsYear, lsMonth - 1, lsDay);
	var lsToday = new Date(lsYearToday, lsMonthToday - 1, lsDayToday);
	liNew = lsToday.getTime() - Math.floor(liDays*(1000*60*60*24));
	var lsThreshold = new Date();	
	lsThreshold.setTime(liNew);
	var lsTemp 
	if ( lsThreshold.getDate() < 10 ){
		lsTemp = "0" + lsThreshold.getDate() + "/"
	}
	else{
		lsTemp = lsThreshold.getDate() + "/"
	}
	if ( ( lsThreshold.getMonth() + 1 ) < 10 ){
		lsTemp = lsTemp + "0" + ( lsThreshold.getMonth() + 1 ) + "/"
	}
	else{
		lsTemp = lsTemp + ( lsThreshold.getMonth() + 1 ) + "/"
	}
	lsTemp = lsTemp + lsThreshold.getYear()
	if (lsThreshold < lsDate){
		alert("Please enter a value that is on or before '" + lsTemp + "' in the '" + lsDisplayName + "' field.");
		loControl.focus();
		return (false);
	}
   return true;
}