//##########################################
//###### Add to Bookmark Script ############
//##########################################
function bookmark(url, title)
{
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4))
	{
		window.external.AddFavorite(url,title);
	}
	else if (navigator.appName == "Netscape")
	{
    	window.sidebar.addPanel(title, url, "");
  	}
	else
	{
    	alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
 	}
}
//##########################################
//###### Deck Plan Image Change Script #####
//##########################################
function changeImage()
{
	document.getElementById("deckPlan").submit();
}
//##########################################
//###### Cruise Line Menu Select Script ####
//##########################################
function cruiseLinePage(targ, selObj, restore)
{
  eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value+ "'");
  if (restore) selObj.selectedIndex = 0;
}
//##########################################
//###### Search Dynamic Dropdown Script ####
//##########################################
function refreshChild(str_level, int_c1)
{
	//Get Element
	if (str_level == 'cruiseLine')
	{		
		myElement = document.getElementById("cruiseShip")
		//Clear Option
		myElement.options.length = 0;
		thisoption = new Option('All', '', true, false)
		myElement.options.add(thisoption)

		for(i = 0; i < cruiseArray.length; i++)
		{
			subArray = cruiseArray[i].split("#")
			if(subArray[0]==int_c1)
			{
				//Insert Option
				thisoption = new Option(subArray[2], subArray[1], true, false)
				myElement.options.add(thisoption)
			}
		}
		
		
		//IF STATEMENT AUTOMATICALLY SETS SEARCH CRITERIA "CRUISE TYPE" TO VALUE "CRUISE ONLY..." FOR CRUISE LINES WITH THE FOLLOWING IDs.
		if (int_c1 == 37 || int_c1 == 27 || int_c1 == 24 || int_c1 == 16)
		{
			document.searchForm.cruiseType.selectedIndex = 3;
		}
		else
		{
			document.searchForm.cruiseType.selectedIndex = 0;	
		}
	}
}
//##########################################
//###### Form Validation Script ############
//##########################################
function validateForm(theForm)
{
	if(!IsRequired(theForm.emailAddress, 'Email Address',true))	return false;
	if(!IsEmail(theForm.emailAddress, 'Email Address'))	return false;
	return (true);
}
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 select a value from the '" + lsDisplayName + "' menu.");
		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;
}