﻿// ANBookingFormValidation.js
<!--


function setCurrentDay(sFormName, sFieldName){
    var dCurrentDate = new Date();
    var iCurrentDay = dCurrentDate.getDate();
    var iSelInd = iCurrentDay-1;
    
    setDropDownSelectedIndex(sFormName, sFieldName, iSelInd);
}

function setCurrentMonth(sFormName, sFieldName){
    var dCurrentDate = new Date();
    var iCurrentMonth = dCurrentDate.getMonth();
    var iSelInd = iCurrentMonth;
    setDropDownSelectedIndex(sFormName, sFieldName, iSelInd);
}

function setUpANBookingForm(){
    setCurrentMonth('frmANBooking','leavemm1'); 
    setCurrentDay('frmANBooking','leavedd1'); 
    setCurrentMonth('frmANBooking','leavemm2'); 
    setCurrentDay('frmANBooking','leavedd2'); 
}


function getMonthName(sMonthNum, bAbbrev){
    var sMonthName = ""
    
    if (sMonthNum.length<2){
        sMonthNum = padString(sMonthNum, 2, '0', true)
    }
    
    switch (sMonthNum){
        case "01":
            sMonthName = "January";
            break
        case "02":
            sMonthName = "February";
            break
        case "03":
            sMonthName = "March";
            break
        case "04":
            sMonthName = "April";
            break
        case "05":
            sMonthName = "May";
            break
        case "06":
            sMonthName = "June";
            break
        case "07":
            sMonthName = "July";
            break
        case "08":
            sMonthName = "August";
            break
        case "09":
            sMonthName = "September";
            break
        case "10":
            sMonthName = "October";
            break
        case "11":
            sMonthName = "November";
            break
        case "12":
            sMonthName = "December";
            break
        default:
            sMonthName = "January";
    
    }
    
    if (bAbbrev){
        sMonthName = sMonthName.substring(0,3)
    }
        
    return sMonthName;
} //getMonthName


function setUpANBookingFormDates(){
    var sFromYYYY = ""
    var sFromMM = ""
    var sFromDD = ""
    var sToYYYY = ""
    var sToMM = ""
    var sToDD = ""
    var sFromDate = ""
    var sToDate = ""
    
    //sFromDate = getTextValue('frmANBooking','FromDate');
    //sToDate = getTextValue('frmANBooking','ToDate');
    
    var sFromDateYYYY = ""
    var sFromDateMM = ""
    var sFromDateDD = ""
    var sToDateYYYY = ""
    var sToDateMM = ""
    var sToDateDD = ""
    
    var objFromDay = document.getElementById('FromDate_Day_ID');
    var objFromMonth = document.getElementById('FromDate_Month_ID');
    var objFromYear = document.getElementById('FromDate_Year_ID');
    
    var objToDay = document.getElementById('ToDate_Day_ID');
    var objToMonth = document.getElementById('ToDate_Month_ID');
    var objToYear = document.getElementById('ToDate_Year_ID');
    
    sFromDateYYYY = getTextValue('frmANBooking','FromDate_Year_ID');
    sFromDateMM = objFromMonth[objFromMonth.selectedIndex].value;
    sFromDateDD = objFromDay[objFromDay.selectedIndex].text;
    sToDateYYYY = getTextValue('frmANBooking','ToDate_Year_ID');
    sToDateMM = objToMonth[objToMonth.selectedIndex].value;
    sToDateDD = objToDay[objToDay.selectedIndex].text;
    
    sFromDateMM = parseInt(sFromDateMM) + 1;
    sToDateMM = parseInt(sToDateMM) + 1;

    sFromYYYY = sFromDateYYYY.substring(0,4);
    sFromMM = removePrefixChars('0', sFromDateMM);
    sFromDD = removePrefixChars('0', sFromDateDD);
        
    sToYYYY = sToDateYYYY.substring(0,4);
    sToMM = removePrefixChars('0', sToDateMM);
    sToDD = removePrefixChars('0', sToDateDD);
    
    setTextValue('frmANBooking','leaveyyyy1', sFromYYYY);
    setTextValue('frmANBooking','leavemm1', sFromMM);
    setTextValue('frmANBooking','leavedd1', sFromDD);
    setTextValue('frmANBooking','leaveyyyy2', sToYYYY);
    setTextValue('frmANBooking','leavemm2', sToMM);
    setTextValue('frmANBooking','leavedd2', sToDD);

}

function checkANBookingDateChronology(){
    var sFromYYYY = ""
    var sFromMM = ""
    var sFromDD = ""
    var sToYYYY = ""
    var sToMM = ""
    var sToDD = ""
    var dFromDate;
    var dToDate;
    var dCurrentDate = new Date();
    var sRoundTrip = "false";
    var bChronological = true;
    var bDateIsFuture = true;
    
    sRoundTrip = getRadioButtonSetValue('frmANBooking','roundtrip');


    sFromYYYY = getTextValue('frmANBooking','leaveyyyy1');
    sFromMM = getTextValue('frmANBooking','leavemm1');
    sFromDD = getTextValue('frmANBooking','leavedd1');
       
    sToYYYY = getTextValue('frmANBooking','leaveyyyy2');
    sToMM = getTextValue('frmANBooking','leavemm2');
    sToDD = getTextValue('frmANBooking','leavedd2');
        
    sFromMM = getMonthName(sFromMM);
    sFromDD = padString(sFromDD, 2, '0', true)
    
    sToMM = getMonthName(sToMM);
    sToDD = padString(sToDD, 2, '0', true)
    
    dFromDate = new Date(sFromMM + ' ' + sFromDD + ', ' + sFromYYYY);
    
    dToDate = new Date(sToMM + ' ' + sToDD + ', ' + sToYYYY);
    
    dCurrentDate.setHours(0);
    dCurrentDate.setMinutes(0);
    dCurrentDate.setSeconds(0);

    bDateIsFuture = checkDateChronology(dCurrentDate, dFromDate);
    
    if (bDateIsFuture==true){
        if (sRoundTrip=="true") {
             bChronological = checkDateChronology(dFromDate, dToDate);
            
            if (bChronological==false){
                alert('Your return date must not precede your departure date.');
                setFocus('frmANBooking','ToDate_Month_ID');
            }    
        } //end if sRoundTrip=="true"
    }else{
        bChronological = false;
        alert('Your departure date cannot be prior to today\'s date.');
        setFocus('frmANBooking','FromDate_Month_ID');
    }
    
    return bChronological;
}


function checkDateChronology(dEarlierDate, dLaterDate){
    var iEarlierDateInMS = dEarlierDate.getTime()-1000;
    var iLaterDateInMS = dLaterDate.getTime()
    var bChronological = true;

    if (iEarlierDateInMS>iLaterDateInMS){
        bChronological = false;
    }
    
    return bChronological;
}

function cleanANBookingPAX(sFormName, sFieldName, sString){
    var sCleanedString = '';
    
    if (isStringNumeric(sString)==false || sString == 'undefined'){
        setTextValue(sFormName, sFieldName, '0');
        sCleanedString = '0';
    }else{
        sCleanedString = removeSpaces(sString);
    }
    
    return sCleanedString;
}


function checkANBookingPAX(){
    var sAdultCount = getTextValue('frmANBooking','apassengers');
    var sSeniorCount = getTextValue('frmANBooking','spassengers');
    var sChildCount = getTextValue('frmANBooking','cpassengers');
    var sInfantCount = getTextValue('frmANBooking','lcpassengers');
    var iPAXCountTotal = 0;
    var bBookingPAXOK = true;
    
    sAdultCount = cleanANBookingPAX('frmANBooking','apassengers',sAdultCount);
    sSeniorCount = cleanANBookingPAX('frmANBooking','spassengers',sSeniorCount);
    sChildCount = cleanANBookingPAX('frmANBooking','cpassengers',sChildCount);
    sInfantCount = cleanANBookingPAX('frmANBooking','lcpassengers',sInfantCount);

    iPAXCountTotal = parseInt(sAdultCount) + parseInt(sSeniorCount) + parseInt(sChildCount) + parseInt(sInfantCount)
    
    if (iPAXCountTotal==0){
        alert('Please specify the number of passengers travelling.');
        bBookingPAXOK = false;
    }else{
        if (iPAXCountTotal>=10){
            alert('For online booking the total number of \npassengers travelling cannot exceed 9.');
            bBookingPAXOK = false;
        }
    }
      
    /*
    if (sAdultCount == '0' && sSeniorCount=='0' && sChildCount=='0' && sInfantCount=='0'){
        alert('Please specify the number of passengers travelling.');
        bBookingPAXOK = false;
    }else{
        //Check to make certain the total number of pax is 9 or less
        
        
    }
    */
    
    return bBookingPAXOK;
}

function test(){
    var sFromDate = ""
    var sToDate = ""
    var sOriginalFromDate = ""
    var sOriginalToDate = ""
  
    var sOriginalFromDateYYYY = ""
    var sOriginalFromDateMM = ""
    var sOriginalFromDateDD = ""
    var sOriginalToDateYYYY = ""
    var sOriginalToDateMM = ""
    var sOriginalToDateDD = ""
    
    sFromDate = getTextValue('frmANBooking','leaveyyyy1')+ "-" + getTextValue('frmANBooking','leavemm1')+ "-" + getTextValue('frmANBooking','leavedd1'); // document.forms['frmANBooking'].FromDate.value; 
    sToDate = getTextValue('frmANBooking','leaveyyyy2')+ "-" + getTextValue('frmANBooking','leavemm2')+ "-" + getTextValue('frmANBooking','leavedd2')
    
    //sOriginalFromDate = getTextValue('frmANBooking','FromDate');
    sOriginalFromDate = FromDate_Object.picked.date;
    //sOriginalToDate = getTextValue('frmANBooking','ToDate');
    sOriginalToDate = ToDate_Object.picked.date;
   
    
    var objFromDay = document.getElementById('FromDate_Day_ID');
    var objFromMonth = document.getElementById('FromDate_Month_ID');
    var objFromYear = document.getElementById('FromDate_Year_ID');
    
    var objToDay = document.getElementById('ToDate_Day_ID');
    var objToMonth = document.getElementById('ToDate_Month_ID');
    var objToYear = document.getElementById('ToDate_Year_ID');
    
    sOriginalFromDateYYYY = getTextValue('frmANBooking','FromDate_Year_ID');
    sOriginalFromDateMM = objFromMonth[objFromMonth.selectedIndex].value;
    sOriginalFromDateDD = objFromDay[objFromDay.selectedIndex].text;
    sOriginalToDateYYYY = getTextValue('frmANBooking','ToDate_Year_ID');
    sOriginalToDateMM = objToMonth[objToMonth.selectedIndex].value;
    sOriginalToDateDD = objToDay[objToDay.selectedIndex].text;
     
    alert("FROM: " + sFromDate + "\n" + "TO: " + sToDate + "\n" + "Original From: " + 
        sOriginalFromDate + "\n" + "Original To: " + sOriginalToDate + "\n" +
        "From Year: " + sOriginalFromDateYYYY + "\n" + 
        "From Day: " + sOriginalFromDateDD + "\n" +
        "From Month: " + sOriginalFromDateMM + "\n" +         
        "To Year: " + sOriginalToDateYYYY + "\n" + 
        "To Month: " + sOriginalToDateMM + "\n" + 
        "To Day: " + sOriginalToDateDD);

}


function doSubmit(){
    var bSubmitOK = true;
    
    
    setUpANBookingFormDates();
    
    bSubmitOK = checkANBookingDateChronology();
    
    if (bSubmitOK == true) {
        bSubmitOK =checkANBookingPAX();
    }
    
    //test();

    if (bSubmitOK == true) {
        
		 //submit the form
		document.forms['frmANBooking'].target = "_top";     // _blank, _self, _parent, _top
		document.forms['frmANBooking'].submit();
	}
}

//-->
