var MaxSearchDateRange = 14;
function changeArrivalDateRb(form)
{
	form.rbArrivalDate.checked = true;
	form.rbDateRange.checked = false;
}

function changeDateRangeRb(form)
{
	form.rbArrivalDate.checked = false;
	form.rbDateRange.checked = true;
}


function changeSearchRb(form)
{
	if (form.lbParkSelect.selectedIndex == 0)
	{
		for(var i = 1; i < form.lbParkSelect.options.length; i++)
		{
			if(form.lbParkSelect.options[i].selected == true)
			{
				form.lbParkSelect.options[0].selected = false;
			}	
		}
	}
	form.rbSearchParks.checked = true;
	form.rbSearchAllParks.checked = false;
}

function resetParkSelect(form)
{
	form.lbParkSelect.selectedIndex = 0;
}


var todaysDate = new Date();
var todaysMonthYear = todaysDate.getMonth() + 1;
todaysMonthYear = todaysMonthYear + "/" + todaysDate.getFullYear();
var todaysDay = todaysDate.getDate();
var tempDate = createDate(todaysMonthYear,todaysDay);

	
function basicCheckDates(form, isQuickCheck)
{
    //debugger;
	var eArrivalDate = new Date(g_earliestArrivalDate);
	var eArrivalDateMonthYear = eArrivalDate.getMonth() + 1;
	eArrivalDateMonthYear = eArrivalDateMonthYear + "/" + eArrivalDate.getFullYear();
	var eArrivalDay = eArrivalDate.getDate();
	var tArrivalDate = createDate(eArrivalDateMonthYear,eArrivalDay);
	
	//validate the arrival date
	var isValidDate = validDate(form.hdnArrDt.value);
	var fullDate = form.hdnArrDt.value;
	var dateDiff = compareDates(fullDate, tArrivalDate);
	
	if (isValidDate == -1)
	{
		alert("Not a valid date.\nThe search date exceeds the number of days in that month!");
		return false;
	}
	if (dateDiff == 1)
	{
		alert("Search date must be greater than or equal to " + tArrivalDate);
		return false;
	}
	
	// todo - put this code seperately, if possible | KJ
	if ((typeof( form._ctl0_ContentPlaceHolder1_ddlEquipment ) != 'undefined') && (form._ctl0_ContentPlaceHolder1_ddlEquipment.value == ""))
	{			
		alert("Please select an equipment.");
		form._ctl0_ContentPlaceHolder1_ddlEquipment.focus();
		return false;		
	}
	
	if ((typeof( form._ctl0_ContentPlaceHolder1_ddlEquipment ) != 'undefined') && (form._ctl0_ContentPlaceHolder1_ddlEquipment.value != ""))
	{
		if  (form._ctl0_ContentPlaceHolder1_ddlEquipment.options[form._ctl0_ContentPlaceHolder1_ddlEquipment.selectedIndex].value == "-1")
		{
			alert("Please select an equipment.");
			form._ctl0_ContentPlaceHolder1_ddlEquipment.focus();
			return false;
		}
	}
	
	if ((typeof( form._ctl0_ContentPlaceHolder1_ddlPeople ) != 'undefined') && (form._ctl0_ContentPlaceHolder1_ddlPeople.value != ""))
	{			
		if (form._ctl0_ContentPlaceHolder1_ddlPeople.options[form._ctl0_ContentPlaceHolder1_ddlPeople.selectedIndex].value == "-1")
		{
			alert("Please select number of people.");
			form._ctl0_ContentPlaceHolder1_ddlPeople.focus();
			return false;
		}		
	}
	//see if the date is greater than the last checkin date
	var lastBookingDate = new Date(g_lastBookingDate);
	var lastBookingDateMonthYear = lastBookingDate.getMonth() + 1;
	lastBookingDateMonthYear = lastBookingDateMonthYear + "/" + lastBookingDate.getFullYear();
	var lastBookingDay = lastBookingDate.getDate();
	var tlastBookingDate = createDate(lastBookingDateMonthYear,lastBookingDay);
	
	var AllCheckedLastBookingDate;
	/*************************************************************
	if (g_CurrHour < g_InvOpenHour)
	{
		AllCheckedLastBookingDate = g_LastBookingDateMinusOne;		
	}
	else
	{
		AllCheckedLastBookingDate = tlastBookingDate
	}
	*************************************************************/
	AllCheckedLastBookingDate = g_lastBookingDate;
	
	dateDiff = compareDates(fullDate,tlastBookingDate);
	if (dateDiff == -1)
	{		
		alert("The arrival date cannot be greater than " + AllCheckedLastBookingDate);
		return false;
	}
	if (dateDiff == 0)
	{
		/*
		if (g_CurrHour < g_InvOpenHour)
		{
			alert("The arrival date cannot be greater than " + AllCheckedLastBookingDate);
			return false;				
		}
		*/
	}
	if(typeof( isQuickCheck ) == 'undefined')
	{
		if(CheckCampSeasonValid(form, fullDate))		
		{
			// Check for Confirmation from user // 
			return ConfirmSelection();
		}
		else
		{
			return false;
		}
    }
    return true;	
}//end basicCheckDates

function CheckCampSeasonValid(form, arrDate)
{
	// Check if The selected Arrival Dates in some camp season and get the season Id //
	var iArrivalSeasonNumber = -1;
	var AlternateEarliestCampSeason = "";
	for (var i=0; i<iTotalSeason; i++)
	{
		var dtCampSeasonST  =  eval("dtSeasonStart_" + i);
		var dtCampSeasonEND =  eval("dtSeasonEnd_" + i);
		
		var iStartCompare = compareDates( arrDate, dtCampSeasonST ) ;
		var iEndCompare   = compareDates( arrDate, dtCampSeasonEND ) ;	
		
		if (AlternateEarliestCampSeason == "")
		{
			if (  compareDates(tempDate, dtCampSeasonST) == 1 )
			{
				AlternateEarliestCampSeason = dtCampSeasonST;
			}
		}		
		if (( iStartCompare !=1 ) && (iEndCompare != -1))
		{
			iArrivalSeasonNumber = i; // Got the Season Matching //
		}
	}
	
	// Check to see if an Arrival date was found in One of the seasons // 
	if (iArrivalSeasonNumber == -1) // No camp season found//
	{
		alert( "There are no camp seasons available for reservation for arrival on " + arrDate + ".\n Earliest arrival possible on or after selected date is " + AlternateEarliestCampSeason +"."  );
		return false;
	}
	
	/////////////////////////////////////////////////////////////////////////
	// Check to see if the number of nights are valid in this season //	
	/////////////////////////////////////////////////////////////////////////
	//-Akshay : Commented for now -//
	/*
	var iNightSelected = form.ddlNight.options[form.ddlNight.selectedIndex].value;	
	if ( iNightSelected > eval( "iMaxStay_" + iArrivalSeasonNumber ) )
	{
		alert("Maximum no. of nights of stay between " + eval("dtSeasonStart_" + iArrivalSeasonNumber)  + " and " + eval("dtSeasonEnd_" + iArrivalSeasonNumber) + " is " + eval( "iMaxStay_" + iArrivalSeasonNumber ) + ".\nSee Season Info Below for details.");
		return false;	
	}
	*/	
	/////////////////////////////////////////////////////////////////////////
	if (document.getElementById("ddlPeople") != null)
	{
		var iPplSelected = form.ddlPeople.options[form.ddlPeople.selectedIndex].value;	
		if ( iPplSelected > eval( "iMaxCap_" + iArrivalSeasonNumber ) )
		{
			alert("Maximum capacity between " + eval("dtSeasonStart_" + iArrivalSeasonNumber)  + " and " + eval("dtSeasonEnd_" + iArrivalSeasonNumber) + " is " + eval( "iMaxCap_" + iArrivalSeasonNumber ) + ".\nSee season information Below for details.");
			return false;	
		}
	}	
	return true;
}
function checkDates(form)
{
	var eArrivalDate = new Date(g_earliestArrivalDate);
	var eArrivalDateMonthYear = eArrivalDate.getMonth() + 1;
	eArrivalDateMonthYear = eArrivalDateMonthYear + "/" + eArrivalDate.getFullYear();
	var eArrivalDay = eArrivalDate.getDate();
	var tlastBookingDate = g_lastBookingDate;
	var tArrivalDate = createDate(eArrivalDateMonthYear,eArrivalDay);
	var AllCheckedLastBookingDate;
	/*************************************************************************
	
	if (g_CurrHour < g_InvOpenHour)
	{
		AllCheckedLastBookingDate = g_LastBookingDateMinusOne;
	}
	else
	{
		AllCheckedLastBookingDate = g_lastBookingDate;
	}
	***************************************************************************/
	AllCheckedLastBookingDate = g_lastBookingDate;
	
	if(form.rbArrivalDate.checked)
	{
		//validate the arrival date
		var isValidDate = checkDateExists(form.ddlArrivalDateMonthYear.value, form.ddlArrivalDateDay.value);
		var fullDate = createDate(form.ddlArrivalDateMonthYear.value, form.ddlArrivalDateDay.value);
		var dateDiff = compareDates(fullDate,tArrivalDate);
		if (isValidDate == -1)
		{
			alert("The arrival date of the date range exceeds the number of days in that month!");
			return false;
		}
		if (dateDiff == 1)
		{
			alert("Search date must be greater than or equal to " + tArrivalDate);
			return false;
		}
		
		//see if the date is greater than the last checkin date
		var lastBookingDate = new Date(g_lastBookingDate);
		
		var lastBookingDateMonthYear = lastBookingDate.getMonth() + 1;
		lastBookingDateMonthYear = lastBookingDateMonthYear + "/" + lastBookingDate.getFullYear();
		var lastBookingDay = lastBookingDate.getDate();
		var tlastBookingDate = createDate(lastBookingDateMonthYear,lastBookingDay);
		dateDiff = compareDates(fullDate,tlastBookingDate);
		
		if (dateDiff == -1)
		{
			alert("The arrival date cannot be greater than " + AllCheckedLastBookingDate);
			return false;
		}
		if (dateDiff == 0)
		{
			if (g_CurrHour < g_InvOpenHour)
			{
				alert("The arrival date cannot be greater than " + AllCheckedLastBookingDate);
				return false;				
			}
		}
		
	}//end form.rbArrivalDate.checked
	
	if(form.rbDateRange.checked)
	{
		//validate the start date
		var isValidDate = checkDateExists(form.ddlDateRangeBeginMonthYear.value, form.ddlDateRangeBeginDay.value);
		if (isValidDate == -1)
		{
			alert("The beginning date of the date range exceeds the number of days in that month!");
			return false;
		}
		//validate the end date
		var isValidDate = checkDateExists(form.ddlDateRangeEndMonthYear.value, form.ddlDateRangeEndDay.value);
		if (isValidDate == -1)
		{
			alert("The end date of the date range exceeds the number of days in that month!");
			return false;
		}
		//make sure the start date is less than the end date
		var beginFullDate = createDate(form.ddlDateRangeBeginMonthYear.value, form.ddlDateRangeBeginDay.value);
		var endFullDate = createDate(form.ddlDateRangeEndMonthYear.value, form.ddlDateRangeEndDay.value);
		var dateDiff = compareDates(beginFullDate,endFullDate);
		if (dateDiff == -1)
		{
			alert("End date must be greater than the beginning date when doing a date range search.");
			return false;
		}
		//make sure the start date is greater than todays date, no need to check
		//for end date since end date must be greater than start date.
		dateDiff = compareDates(beginFullDate,tArrivalDate);
		if (dateDiff == 1)
		{
			alert("Start date range must be greater than or equal to " + tArrivalDate);
			return false;
		}
		
		
		//make sure the max search is for MaxSearchDateRange days
		var daysDiff = getDaysDiff(beginFullDate, endFullDate);
		if(daysDiff > MaxSearchDateRange)
		{
			alert("You may only search within a "+MaxSearchDateRange+" day time block.");
			return false;
		}
		
		//see if the end date is greater than the last available date
		var lastBookingDate = new Date(g_lastBookingDate);
		var lastBookingDateMonthYear = lastBookingDate.getMonth() + 1;
		lastBookingDateMonthYear = lastBookingDateMonthYear + "/" + lastBookingDate.getFullYear();
		var lastBookingDay = lastBookingDate.getDate();
		var tlastBookingDate = createDate(lastBookingDateMonthYear,lastBookingDay);
		
		dateDiff = compareDates(beginFullDate,tlastBookingDate);
		if (dateDiff == -1)
		{
			alert("Start date range cannot be greater than " + AllCheckedLastBookingDate);
			return false;
		}
		if (dateDiff == 0)
		{
			if (g_CurrHour < g_InvOpenHour)
			{
				alert("Start date range cannot be greater than " + AllCheckedLastBookingDate);
				return false;				
			}
		}
		
		dateDiff = compareDates(endFullDate,tlastBookingDate);
		if (dateDiff == -1)
		{
			alert("End date range cannot be greater than " + AllCheckedLastBookingDate);
			return false;
		}
		if (dateDiff == 0)
		{
			if (g_CurrHour < g_InvOpenHour)
			{
				alert("End date range cannot be greater than " + AllCheckedLastBookingDate);
				return false;				
			}
		}
		
	}//end form.rbDateRange.checked
	//check to see if a park has been selected
	if (form.lbParkSelect.selectedIndex <= 0 && form.rbSearchParks.checked)
	{
		alert("Please select a park");
		form.lbParkSelect.focus();
		return false;
	}
	alert(form.ddlEquipment.options[form.ddlEquipment.selectedIndex].value);
	//check to see if equipment has been selected
	if ((form.ddlEquipment.selectedIndex <= 0) || (form.ddlEquipment.options[form.ddlEquipment.selectedIndex].value == "-1"))
	{
		alert("Please select an equipment");
		form.ddlEquipment.focus();
		return false;
	}	
	// Check for Confirmation from user // 
	return ConfirmSelection();
	
}//end checkdates

//function gets the number of days between date 1 and date 2
function getDaysDiff(date1, date2)
{
	var date1Month = date1.substring(0,date1.indexOf("/"));
	var date1Day = date1.substring(date1.indexOf("/") + 1, date1.lastIndexOf("/"));
	var date1Year = date1.substring(date1.lastIndexOf("/") + 1, date1.length);
	var date2Month = date2.substring(0,date2.indexOf("/"));
	var date2Day = date2.substring(date2.indexOf("/") + 1, date2.lastIndexOf("/"));
	var date2Year = date2.substring(date2.lastIndexOf("/") + 1, date2.length);	
	
	var beginDateObj = new Date(date1Year, date1Month, date1Day);
	var endDateObj = new Date(date2Year, date2Month, date2Day);
	var diff = new Date();
	
	diff.setTime(Math.abs(beginDateObj.getTime() - endDateObj.getTime()));

	var timeDiff = diff.getTime();
	var days = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); 
	return days;
	
	
}
//compares date 1 to date 2 in the format mm/dd/yyyy.  If Date 1 is greater than date 2 it
//returns a -1 if date 1 is less than date 2 it returns a 1 if they are equal a 0 is returned

function compareDates(date1,date2)
{
	var date1Month = date1.substring(0,date1.indexOf("/"));
	var date1Day = date1.substring(date1.indexOf("/") + 1, date1.lastIndexOf("/"));
	var date1Year = date1.substring(date1.lastIndexOf("/") + 1, date1.length);
	var date2Month = date2.substring(0,date2.indexOf("/"));
	var date2Day = date2.substring(date2.indexOf("/") + 1, date2.lastIndexOf("/"));
	var date2Year = date2.substring(date2.lastIndexOf("/") + 1, date2.length);	
	
	if(parseInt(date1Year) > parseInt(date2Year)){return -1;}
	if(parseInt(date1Year) < parseInt(date2Year)){return 1;}
	if(parseInt(date1Year) == parseInt(date2Year))
	{
		if(parseInt(date1Month) > parseInt(date2Month)){return -1;}
		if(parseInt(date1Month) < parseInt(date2Month)){return 1;}
		if(parseInt(date1Month) == parseInt(date2Month))
		{
			if(parseInt(date1Day) > parseInt(date2Day)){return -1;}
			if(parseInt(date1Day) < parseInt(date2Day)){return 1;}
			if(parseInt(date1Day) == parseInt(date2Day)){return 0;}
		}
	}
	
}//end compareDates

//check the validity of the date
function checkDateExists(dateMonthYear,dateDay)
{
	//build date
	var fullDate = createDate(dateMonthYear, dateDay);
	//see if date is valid
	var isDateValid = validDate(fullDate);
	return isDateValid;
	
}


/*
this function will check to see if the date selected is 
actually a valid date.  this function only checks to see if the
day falls within the month
*/
function validDate(isValidDate)
{
	var dateMonth = isValidDate.substring(0,isValidDate.indexOf("/"));
	var dateDay = isValidDate.substring(isValidDate.indexOf("/") + 1, isValidDate.lastIndexOf("/"));
	var dateYear = isValidDate.substring(isValidDate.lastIndexOf("/") + 1, isValidDate.length);
	var intDays = 0;
	
	if(dateMonth == 1 || dateMonth == 3 || dateMonth == 5 || dateMonth == 7 || dateMonth == 8 || dateMonth == 10 || dateMonth == 12)
	{
		intDays = 31;
	}
	
	if(dateMonth == 4 || dateMonth == 6 || dateMonth == 9 || dateMonth == 11)
	{	
		intDays = 30;	
	}
	
	if(dateMonth == 2)
	{
		var isLeapYear = checkYear(dateYear);
		//if the value of isLeapYear is 1 then it is a leap year
		if(isLeapYear == 1)
		{
			intDays = 29;
		//no leap year
		}else{
			intDays = 28;
		}
	}
	
	if(dateDay > intDays)
	{
		//not valid day in the month
		return -1;
	}else{
		//valid day
		return 0;
	}
	
}

/*this function takes two strings and creates a date*/
function createDate(monthYear, dayOfMonth)
{
	var dateMonth = monthYear.substring(0,monthYear.indexOf("/"));
	var dateDay = dayOfMonth;
	var dateYear = monthYear.substring(monthYear.indexOf("/") + 1,monthYear.length);
	var retDate = dateMonth + "/" + dateDay + "/" + dateYear;
	return retDate;
}
function createDate1(dateYear,dateMonth, dateDay)
{
	
	var retDate = dateMonth + "/" + dateDay + "/" + dateYear;
	return retDate;
}
function createDate2()
{
		var tempMonth = document.forms[0]._ctl0_ContentPlaceHolder1_DropDownFromMonth[document.forms[0]._ctl0_ContentPlaceHolder1_DropDownFromMonth.selectedIndex].value;
		var tempDay = document.forms[0]._ctl0_ContentPlaceHolder1_DropDownFromDay[document.forms[0]._ctl0_ContentPlaceHolder1_DropDownFromDay.selectedIndex].value;
		var tempYear = document.forms[0]._ctl0_ContentPlaceHolder1_DropDownFromYear[document.forms[0]._ctl0_ContentPlaceHolder1_DropDownFromYear.selectedIndex].value;
		
		return createDate1(tempYear,tempMonth, tempDay)
}

function checkYear(year) 
{ 
	return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) ? 1 : 0;
}

function CheckDatesOnly(form)
{
}

/*   validateCCNumber() - checks that a credit card number is a valid credit
 *                        card number, and that the card is not expired.
 *
 *   Parameters: cardNumberField - a text field where cc number has been swiped or entered manually
 *               expMonthField - a text field where the exp month has been entered
 *               expYearField - a text field where the exp year has been entered
 *
 *   Returns: boolean value - true for valid card, false for invalid card
 *
 *   Comments: Visa card numbers begin with 4, MasterCard with 5, Discover with 6.
 *             MasterCard and Discover numbers must be 16 digits in length. Visa cards
 *             must be either 13 or 16 digits in length. 
 */

function validateCreditCard(cardNumberField, expMonthField, expYearField, ddlCardType, ddlPaymentType, ddlCountry, Zip) {
    //debugger;
	cardNumber = cardNumberField.value;
	expYear = expYearField.value;
	expMonth = expMonthField.value;
	var strCountry = ddlCountry.value;
    
	if (ddlPaymentType.value == 'GC') {

	    if (cardNumber == "") {
	        alert("Please enter the gift card number");
	        return false;
	    }
	    if (CheckForAgreement()) {
	        return true;
	    }
	    else {
	        return false;
	    	    }
	    return true;

	}
	
	if (ddlCardType.value == 'X') {
	alert("Please select a valid card type.");
	return false;
    }

    if (strCountry == "USA" || strCountry == "CAN") {
        if (ValidateZip(Zip, strCountry) == false) {
            return false;
        }
    }
	
	
	firstChar = cardNumber.charAt(0);
	if (! (firstChar == '4' || firstChar == '5' || firstChar == '3' || firstChar == '6') )
		{
			alert("Please specify a valid card number."); 
			cardNumberField.focus(); 
			return false;
		}

	
	if(cardNumber.charAt(0) == '4' && (!(cardNumber.length == 13 || cardNumber.length == 16))){
		alert("Invalid card number specified.");
		
		ccStr = "";
		cardNumberField.value = "";
		expMonthField.value = "";
		expYearField.value = "";
		cardNumberField.focus();
		
		return false;
	}
	
	if((cardNumber.charAt(0) == '5') && (cardNumber.length != 16)){ //|| cardNumber.charAt(0) == '6'
		alert("Invalid card number specified.");
		
		ccStr = "";
		cardNumberField.value = "";
		expMonthField.value = "";
		expYearField.value = "";
		cardNumberField.focus();
		
		return false;
	}
	
	if(!luhnCheck(cardNumber)){
	//return true;////////////////////////For testing only
		alert("Please specify a valid card number.");
		
		ccStr = "";
		cardNumberField.value = "";
		expMonthField.value = "";
		expYearField.value = "";
		cardNumberField.focus();
		
		return false;
	}	
	
	// Check the credit card expiration date
	
	today = new Date();
	
	if (expYear.length <= 2)
	{
		if(expYear > 96) expYear = "19" + expYear;
		else if(expYear < 21) expYear = "20" + expYear;
	}
	
	if((expYear.length != 4) || (expYear < today.getYear())){
		alert("Please specify a valid expiration year." );
		
		expYearField.value = "";
		expYearField.focus();
		
		return false;
	}
	
	// Year is okay. Check the month.
	
	else{ 

	//	alert(expMonth);
		
		if(expMonth.length != 2){
			alert("Please specify a valid expiration month.");
			
			expMonthField.value = "";
			expMonthField.focus();
		
			return false;
		}
		else if (! (expMonth.charAt(0) == '0' || expMonth.charAt(0) == '1') )
		{
			alert("Please specify a valid expiration month.");
			
			expMonthField.value = "";
			expMonthField.focus();
		
			return false;
			
		}
		else if (expMonth.charAt(0) == '0')
			{
				if (expMonth.charAt(1) < '1' || expMonth.charAt(1) > '9')
					{
						alert("Please specify a valid expiration month.");
						expMonthField.value = "";
						expMonthField.focus();
						return false;
					}
			}
		else if (expMonth.charAt(0) == '1')
			{
				if (expMonth.charAt(1) < '0' || expMonth.charAt(1) > '2')
					{
						alert("Please specify a valid expiration month.");
						expMonthField.value = "";
						expMonthField.focus();
						return false;
					}
			}
		else if(expMonth.charAt(0) == '0'){
			expMonth = expMonth.charAt(1);
		}
		
		if(expYear == today.getYear() && expMonth <= (today.getMonth() ) ){//+ 1
			
			alert("Please specify a valid expiration month.");
			
			expMonthField.value = "";
			expMonthField.focus();
		
			return false;
		}
	}
	if (CheckForAgreement()) {
	    return true;
	}
	else {
	    return false;
	}
	
	return true;
}			



/*   luhnCheck() - checks that a credit card number is a valid credit
 *                 card number using the Luhn algorithm.
 *
 *   Parameters: String cardNumber - a credit card number
 *               
 *   Returns: boolean value - true for valid number, false for invalid number
 *
 *   Comments: Called by validateCCNumber()
 */
 
function luhnCheck(s) {

  var i, n, c, r, t;

  // First, reverse the string and remove any non-numeric characters.

  r = "";
  for (i = 0; i < s.length; i++) {
    c = parseInt(s.charAt(i), 10);
    if (c >= 0 && c <= 9)
      r = c + r;
  }

  // Check for a bad string.

  if (r.length <= 1)
    return false;

  // Now run through each single digit to create a new string. Even digits
  // are multiplied by two, odd digits are left alone.

  t = "";
  for (i = 0; i < r.length; i++) {
    c = parseInt(r.charAt(i), 10);
    if (i % 2 != 0)
      c *= 2;
    t = t + c;
  }

  // Finally, add up all the single digits in this string.

  n = 0;
  for (i = 0; i < t.length; i++) {
    c = parseInt(t.charAt(i), 10);
    n = n + c;
  }

  // If the resulting sum is an even multiple of ten (but not zero), the
  // card number is good.

  if (n != 0 && n % 10 == 0)
    return true;
  else
    return false;
}

function ConfirmSelection()
{
    //debugger;
	try {

	    
	var myForm = document.forms[0];
	
	var strConfirm = new String();

	var sPark = g_ParkName;
	var sCamp   = myForm._ctl0_ContentPlaceHolder1_ddlCampground.options[myForm._ctl0_ContentPlaceHolder1_ddlCampground.selectedIndex].text;
	var sArrive = myForm.hdnArrDt.value;	
	var arriveDay = getDayNameOfWeek(new Date(sArrive));
	sArrive = arriveDay + ", " + sArrive; 	
	
	var sEquip  = myForm._ctl0_ContentPlaceHolder1_ddlEquipment.options[myForm._ctl0_ContentPlaceHolder1_ddlEquipment.selectedIndex].text;
	var sNite   = myForm._ctl0_ContentPlaceHolder1_ddlNight.options[myForm._ctl0_ContentPlaceHolder1_ddlNight.selectedIndex].text;
	var sPpl    = "";
	if (document.getElementById("_ctl0_ContentPlaceHolder1_ddlPeople") != null)
	{	sPpl    = myForm._ctl0_ContentPlaceHolder1_ddlPeople.options[myForm._ctl0_ContentPlaceHolder1_ddlPeople.selectedIndex].text;}
	
	var sPsite  = "";
	if (document.getElementById("_ctl0_ContentPlaceHolder1_ddlPreferredSite") != null)
	{   sPsite = myForm._ctl0_ContentPlaceHolder1_ddlPreferredSite.options[myForm._ctl0_ContentPlaceHolder1_ddlPreferredSite.selectedIndex].text;}
	if (sPsite == "- Please Select -")
	        {sPsite="None"};
	        
	var sElect = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkElecFlag"), "_ctl0_ContentPlaceHolder1_chkElecFlag");
	var sPet   = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkPetFlag"),  "_ctl0_ContentPlaceHolder1_chkPetFlag");
	var sADA   = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkADAFlag"),  "_ctl0_ContentPlaceHolder1_chkADAFlag");

	strConfirm = "You have selected the following arrival date and site preferences.\nTo confirm, select OK.  To change search, select Cancel.\n\n";
	strConfirm += "- Park: " + sPark + ".\n";
	strConfirm += "- Campground: "+ sCamp+ ".\n";
	//strConfirm += "- Equipment: "+ sEquip + ".\n";
	strConfirm += "- Arrival Date: " + sArrive + "\n" ;		
	strConfirm += "- "+ "Number of Nights: "+ sNite + "\n"; 
	//if (sPsite!="") strConfirm += "- "+ "Preferred Site: " + sPsite + ".\n\n" ;
	//+ ".\n- #Ppl: " + sPpl + ".\n\n" ;
	
	strConfirm += "- Preferences:\n";
	if (sElect!="") strConfirm += "  Electric: " + sElect + ".\n";
	if (sPet!="") strConfirm += "  Pet: " + sPet + ".\n";
	if (sADA!="") strConfirm += "  ADA: " + sADA+ ".\n";
	
	return confirm(strConfirm);	
	}
	catch(e)
	{
		alert(e);
	}
}

function PrefData(myArr, myName)
{
	var arrPREF = myArr;
	if (typeof( myArr ) != 'undefined')
	{
		arrPREF = myArr;
		if (arrPREF.length > 0)
		{
			for (var i=0; i<=arrPREF.length; i++)
			{
				if (arrPREF[i].checked)
				{					
					if (arrPREF[i].id == myName + "_0") return "Yes";
					if (arrPREF[i].id == myName + "_1") return "No";
					if (arrPREF[i].id == myName + "_2") return "No Preference";	
				}
			}	
		}
		else
		{
			return "";
		}
	}
	else
	{
		return "";
	}
}
function getDayNameOfWeek(sArrivalDate)
{
	var iDayofweek = sArrivalDate.getDay();

	var sDayofweek = new String();
	switch (iDayofweek)
	{
		case 0: {sDayofweek = "Sunday";break;}
		case 1: {sDayofweek = "Monday";break;}
		case 2: {sDayofweek = "Tuesday";break;}
		case 3: {sDayofweek = "Wednesday";break;}
		case 4: {sDayofweek = "Thursday";break;}
		case 5: {sDayofweek = "Friday";break;}
		case 6: {sDayofweek = "Saturday";break;}		
	}
	return sDayofweek;
}

function CheckForAgreement() {
    try {
        cb = document.forms[0]._ctl0_ContentPlaceHolder1_cbAgreement;
        if (!cb.checked) {
            alert("Please make sure that you have read and understood the agreement. Please check the checkbox if you accept the agreement.");
            cb.focus();
            return false;
        }
    }
    catch (err) {
        //var dbgConfirm  = confirm(err.message);
        //return (dbgConfirm);

        //When gift card only and no reservation; no agreement.
        //this block will be executed.
        // if so return return true;
        // AAP

        return true;

    }
    return true;
}

function ValidateZip(Zip, strCountry) {
    //debugger;
    if (Zip.value == '') {
        alert("Please specify valid zip");
        return false;
    }
    else {

        var regZip;
        if (strCountry == "USA") {
            //regZip = /([0-9]{5}(-[0-9]{4})?)|([A-Z][0-9][A-Z] [0-9][A-Z][0-9])|([A-Z]([0-9]|[0-9]{2}|[A-Z][0-9]|[A-Z][0-9]{2}|[0-9][A-Z]|[A-Z][0-9][A-Z]) [0-9][A-Z]{2}|GIR 0AA)|((ACT|NSW|NT|QLD|SA|TAS|VIC|WA)( |  )[0-9]{4})/;

            regZip = /^[0-9]{5}$/
        }
        else if (strCountry == "CAN") {
            regZip = /^[ABCEGHJKLMNPRSTVXY]{1}\d{1}[A-Z]{1} *\d{1}[A-Z]{1}\d{1}$/;
        }

        if (Zip.value.search(regZip) == -1) {
            alert("Please enter valid zip for the selected country.");
            return false;
        }


    }
} 