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) {

    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.ddlEquipment ) != 'undefined') && (form.ddlEquipment.value == ""))
    //{			
    //alert("Please select an equipment.");
    //form.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;
    //}

    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;				
    }
    }
    ***************************************************************************************/

    /////////////////////////////////////////////////////////////////////////////
    /// SPECIAL CHECK FOR MN SP 
    /// AKSHAY - 11/22/2006
    /////////////////////////////////////////////////////////////////////////////

    if ((typeof (form._ctl0_ContentPlaceHolder1_ddlNight) != 'undefined') && (form._ctl0_ContentPlaceHolder1_ddlNight.value != "")) {
        if (parseInt(form._ctl0_ContentPlaceHolder1_ddlNight.options[form._ctl0_ContentPlaceHolder1_ddlNight.selectedIndex].value) > 15) {
            alert("Cannot select more than 15 nights reservation.\nFor reservations longer than 15 nights, call 1-800-447-2757 between 7 a.m. and 10 p.m. Central Time.");
            form._ctl0_ContentPlaceHolder1_ddlNight.focus();
            return false;
        }
    }
    /////////////////////////////////////////////////////////////////////////////

    if (typeof (isQuickCheck) == 'undefined') {
        if (CheckCampSeasonValid(form, fullDate)) {
            return true;
        }
        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 +".\nSee Season information below for details."  );
        alert("Reservations are not being taken for an arrival of " + arrDate + ".\n However, first-come/first-serve sites may be available, see Season information below for details. \n The next reservation season begins  " + 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;	
    }
	
	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;
    //}

    if (form._ctl0_ContentPlaceHolder1_rbArrivalDate.checked) {
        //validate the arrival date
        var isValidDate = checkDateExists(form._ctl0_ContentPlaceHolder1_ddlArrivalDateMonthYear.value, form._ctl0_ContentPlaceHolder1_ddlArrivalDateDay.value);
        var fullDate = createDate(form._ctl0_ContentPlaceHolder1_ddlArrivalDateMonthYear.value, form._ctl0_ContentPlaceHolder1_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._ctl0_ContentPlaceHolder1_rbDateRange.checked) {
        //validate the start date
        var isValidDate = checkDateExists(form.d_ctl0_ContentPlaceHolder1_dlDateRangeBeginMonthYear.value, form._ctl0_ContentPlaceHolder1_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._ctl0_ContentPlaceHolder1_lbParkSelect.selectedIndex <= 0 && form._ctl0_ContentPlaceHolder1_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._ctl0_ContentPlaceHolder1_ddlEquipment.selectedIndex <= 0) || (form._ctl0_ContentPlaceHolder1_ddlEquipment.options[form._ctl0_ContentPlaceHolder1_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 myForm = document.forms[0];

    var tempMonth = myForm._ctl0_ContentPlaceHolder1_DropDownFromMonth.value;
    var tempDay = myForm._ctl0_ContentPlaceHolder1_DropDownFromDay.value;
    var tempYear = myForm._ctl0_ContentPlaceHolder1_DropDownFromYear.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 validateBoatInfo(BoatName, BoatNumber) {

    if (BoatName.value == '') {
        alert("Please specify Boat Name");
        return false;
    }
    if (BoatNumber.value == '') {
        alert("Please specify Boat Number");
        return false;
    }
    else {

        return true;



    }
    return true;

}
function CheckForAgreement() {

    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 agree with this agreement.");

        cb.focus();

        return false;
    }

    return true;
}
function validateCreditCard(cardNumberField, expMonthField, expYearField, CVVNumber, AccountHolderName, Address, City, ddlCountry, Zip) {


    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 agree with this agreement.");

        //cb.focus();

        return false;
    }

    if (AccountHolderName.value == '') {
        alert("Please specify valid account holder name");
        return false;
    }
    else {
        var data = AccountHolderName.value;
        //var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_0123456789";
        var iChars = "!@#$%^&*()+=\\\'`;/{}|\":<>?~_";
        for (var i = 0; i < data.length; i++) {
            if (iChars.indexOf(data.charAt(i)) != -1) {
                alert("Account Holder Name should be alphabetic");
                return false;
            }
        }
    }
    if (Address.value == '') {
        alert("Please specify valid address");
        return false;
    }
    /*else {
        var data = Address.value;
        var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_";
        for (var i = 0; i < data.length; i++) {
            if (iChars.indexOf(data.charAt(i)) != -1) {
                alert("Address has special characters. \nThese are not allowed.");
                return false;
            }
        }
    }*/
    if (City.value == '') {
        alert("Please specify valid City");
        return false;
    }
    else {
        var data = City.value;
        var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_0123456789";
        for (var i = 0; i < data.length; i++) {
            if (iChars.indexOf(data.charAt(i)) != -1) {
                alert("City should be alphabetic.");
                return false;
            }
        }


    }
    //alert(Zip.value);
    //alert(Zip.value == '');
    if (Zip.value == '') {
        alert("Please specify valid zip");
        return false;
    }
    else {
        /*var re5digit = /^\d{5}$/ ;
        if (Zip.value.search(re5digit)== -1)
        {
        alert("Please enter valid 5 digit numbers for zip");
        return false;
        }*/
        //alert("here");
        var strCountry = ddlCountry.value;
        // alert(strCountry);
        //alert(Zip.value);
        //alert(strCountry);
        var regZip;
        if (strCountry == "USA") {
            regZip = /[0-9]{5}(-[0-9]{4})?/;
        }
        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;
        }

    }
    if (CVVNumber.value == '') {
        alert("Please specify valid CVV number");
        return false;
    }
    else {
        var re3digit = /^\d{3}$/;
        if (CVVNumber.value.search(re3digit) == -1) {
            alert("Please enter valid 3 digit numbers for CVVNumber");
            return false;
        }
    }



    var cardType = document.getElementById("_ctl0_ContentPlaceHolder1_ddlCardType").value;
    cardNumber = cardNumberField.value;
    expYear = expYearField.value;
    expMonth = expMonthField.value;

    firstChar = cardNumber.charAt(0);
    if (!(firstChar == '4' || firstChar == '5' || 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 (((cardNumber.charAt(0) == '4') && (cardType != 'V')) || ((cardNumber.charAt(0) == '5') && (cardType != 'M')) || (cardType == 'X')) {
        alert("Invalid card type specified.");
        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;
        }
    }

    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() {
    try {
        var myForm = document.forms[0];

        var strConfirm = new String();

        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 = "N/A";
        var sNite = "N/A";
        var sBoatDraft = "N/A";
        var sBoatLen = "N/A";
        var sBoatwidth = "N/A";
        var sPpl = "N/A";

        var sElect = "";
        var sPet = "";
        var sADA = "";
        var sWater = "";
        var sPull = "";
        var sSewer = "";

        if (typeof (myForm._ctl0_ContentPlaceHolder1_ddlEquipment) != "undefined") sEquip = myForm._ctl0_ContentPlaceHolder1_ddlEquipment.options[myForm._ctl0_ContentPlaceHolder1_ddlEquipment.selectedIndex].text;
        if (typeof (myForm._ctl0_ContentPlaceHolder1_ddlNight) != "undefined") sNite = myForm._ctl0_ContentPlaceHolder1_ddlNight.options[myForm._ctl0_ContentPlaceHolder1_ddlNight.selectedIndex].text;
        if (typeof (myForm._ctl0_ContentPlaceHolder1_ddlPeople) != "undefined") sPpl = myForm._ctl0_ContentPlaceHolder1_ddlPeople.options[myForm._ctl0_ContentPlaceHolder1_ddlPeople.selectedIndex].text;
        if (typeof (myForm._ctl0_ContentPlaceHolder1_ddlBoatDraft) != "undefined") sBoatDraft = myForm._ctl0_ContentPlaceHolder1_ddlBoatDraft.options[myForm._ctl0_ContentPlaceHolder1_ddlBoatDraft.selectedIndex].text;
        if (typeof (myForm._ctl0_ContentPlaceHolder1_ddlBoatLen) != "undefined") sBoatLen = myForm._ctl0_ContentPlaceHolder1_ddlBoatLen.options[myForm._ctl0_ContentPlaceHolder1_ddlBoatLen.selectedIndex].text;
        if (typeof (myForm._ctl0_ContentPlaceHolder1_ddlBoatWidth) != "undefined") sBoatwidth = myForm._ctl0_ContentPlaceHolder1_ddlBoatWidth.options[myForm._ctl0_ContentPlaceHolder1_ddlBoatWidth.selectedIndex].text;

        sElect = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkElecFlag"), "_ctl0_ContentPlaceHolder1_chkElecFlag");
        sPet = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkPetFlag"), "_ctl0_ContentPlaceHolder1_chkPetFlag");
        sADA = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkADAFlag"), "_ctl0_ContentPlaceHolder1_chkADAFlag");
        sWater = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkWaterFlag"), "_ctl0_ContentPlaceHolder1_chkWaterFlag");
        sSewer = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkSewerFlag"), "_ctl0_ContentPlaceHolder1_chkSewerFlag");
        sPull = PrefData(document.getElementsByName("_ctl0:ContentPlaceHolder1:chkPull"), "_ctl0_ContentPlaceHolder1_chkPull");
        //var strConfirm = "You have selected the following arrival date and site preferences.\nTo confirm, select OK.  To change search, select Cancel.\n\n";
        var strConfirm = "You have selected the following arrival date.\nTo confirm, select OK.  To change search, select Cancel.\n\n";
        //strConfirm += "- Campground: "+ sCamp+ ".\n";
        //strConfirm += "- Equipment: "+ sEquip + ".\n";
        strConfirm += "- Arrival Date: " + sArrive + ".\n";
        strConfirm += "- " + "Number of Nights: " + sNite + ".\n\n";
        if (sPpl == "N/A") {
            strConfirm += "- " + "Boat Length: " + sBoatLen + ".\n\n";
            strConfirm += "- " + "Boat Draft: " + sBoatDraft + ".\n\n";
            strConfirm += "- " + "Boat Width: " + sBoatwidth + ".\n\n";
        }
        else {
            //strConfirm += "- Preferences:\n";
            strConfirm += "\n";
            if (sElect != "") strConfirm += "  Electric: " + sElect + ".\n";
            if (sPet != "") strConfirm += "  Pet: " + sPet + ".\n";
            if (sWater != "") strConfirm += "  Water: " + sWater + ".\n";
            if (sSewer != "") strConfirm += "  Sewer: " + sSewer + ".\n";
            if (sADA != "") strConfirm += "  ADA Accessible: " + sADA + ".\n";
            if (sPull != "") strConfirm += "  Pull Thru: " + sPull + ".\n";
        }
        //if (sPull!="") strConfirm += "  Pull through: " + sPull+ ".\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 W_btnNext_onClick() {
    ///var tempDate	  = document.Form1.ddlArrivalDates.options[document.Form1.ddlArrivalDates.selectedIndex].value;
    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;

    var tempNumNights = 1;

    var strMsg = "The following is your selection:\n\n";
    strMsg += "Arrival Date: " + tempMonth + "/" + tempDay + "/" + tempYear;
    strMsg += "\nNum Nights:  " + tempNumNights;
    strMsg += "\n\n Click Ok to continue.";

    //if (confirm(strMsg))
    //{
    document.forms[0].hdnArrDt.value = tempMonth + "/" + tempDay + "/" + tempYear;
    document.forms[0].hdnNights.value = tempNumNights;
    var myStatus = false;
    if (checkSearchCriteria(basicCheckDates(document.forms[0]))) {
        if (ConfirmSelection()) {
            myStatus = true;
        }
    }
    if (!myStatus) {
        checkSearchCriteria(false);
        return false;
    }
    else {
        return true;
    }
}				
