// GlobalAirportParking.com.js for form

// ONLOAD EVENT HANDLER
        $(document).ready(function () {

            var acode = $('#airport').val();
            
            // SELECT AN AIRPORT IF AFFILIATE ENTERED A DEFAULT
            if (acode != "") {
                $('#airportlist').val(acode);
            }

            // SET THE DATE FIELDS TO INITAL VALUES
            // SET PICK UP 10 DAYS FROM NOW
            var tdy = new Date();
            tdy.setDate(tdy.getDate() + 3); // SET DROP OFF TO 3 DAYS FROM NOW
            var tyear = tdy.getFullYear();
            var tmonth = tdy.getMonth() + 1;
            var tday = tdy.getDate();
            tdy.setDate(tdy.getDate() + 7);
            var pyear = tdy.getFullYear();
            var pmonth = tdy.getMonth() + 1;
            var pday = tdy.getDate();

            $('#ArrivalDate').val(tmonth + '/' + tday + '/' + tyear);
            $('#DepartureDate').val(pmonth + '/' + pday + '/' + pyear);


        });

        A_TCALDEF.imgpath = 'http://c0004692.cdn2.cloudfiles.rackspacecloud.com/';

        function validate() {
            // SET AIRPORT = selected airport from dropdown before submit
            var acode = $('#airportlist').val();

            if (acode == "0") {
                alert('Please select an airport to continue');
                return false;
            }

            $('#airport').val(acode);

            // VALIDATE DATES ENTERED ARE IN THE FUTURE
            var rnow = new Date();
            var ardate = $('#ArrivalDate').val();
            var dedate = $('#DepartureDate').val();
            
            // MAKE SURE WE HAVE GOOD DATES
            if (!isValidDate(ardate, 'mm/dd/yyyy')) {
                alert('Please enter a valid arrival date.');
                return false;
            }

            if (!isValidDate(dedate, 'mm/dd/yyyy')) {
                alert('Please enter a valid return date.');
                return false;
            }
            
            var artime = $('#ArrivalTime').val();
            var detime = $('#DepartureTime').val();
            var aDate = new Date(ardate + ' ' + artime);
            var dDate = new Date(dedate + ' ' + detime);
            var cdate = new Date();

            if (aDate < cdate)
            {
                alert('Arrival date & time should be greater than right now');
                return false
            }

            if (aDate >= dDate) {
                alert('Return date should be greater than the arrival date.');
                return false;
            }

            // Set URL of Form Action
            var bURL = "http://www.globalairportparking.com/";
            var aCode = $('#airportlist').val();
            $('#frmcmain').attr("action", bURL + aCode);
            return true;
        }

function isValidDate(date_string, format) {

    var days = [0,31,28,31,30,31,30,31,31,30,31,30,31];
    var year, month, day, date_parts = null;
    var rtrn = false;
    var decisionTree = {
        'm/d/y':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{2}|\d{4})$/,
            'month': 1,'day': 2, year: 3
        },
        'mm/dd/yy':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{2})$/,
            'month': 1,'day': 2, year: 3
        },
        'mm/dd/yyyy':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/,
            'month': 1,'day': 2, year: 3
        },
        'y/m/d':{
            're':/^(\d{2}|\d{4})[./-](\d{1,2})[./-](\d{1,2})$/,
            'month': 2,'day': 3, year: 1
        },
        'yy/mm/dd':{
            're':/^(\d{1,2})[./-](\d{1,2})[./-](\d{1,2})$/,
            'month': 2,'day': 3, year: 1
        },
        'yyyy/mm/dd':{
            're':/^(\d{4})[./-](\d{1,2})[./-](\d{1,2})$/,
            'month': 2,'day': 3, year: 1
        }
    };
    var test = decisionTree[format];
    if (test) {
        date_parts = date_string.match(test.re);
        if (date_parts) {
            year = date_parts[test.year];
            month = date_parts[test.month];
            day = date_parts[test.day];

            test = (month == 2 && 
                    isLeapYear() && 
                    29 || 
                    days[month] || 0);

            rtrn = 1 <= day && day <= test;
        }
    }

    function isLeapYear() {
        return (year % 4 != 0 ? false : 
            ( year % 100 != 0? true: 
            ( year % 1000 != 0? false : true)));
    }
    return rtrn;
}//eof isValidDate
