﻿//Check Date Format.
function checkdate(txtcheckindate, txtcheckoutdate) {
    var validformat = /^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
    var returncheckin = false;
    var returncheckout = false;
    if (!validformat.test(txtcheckindate.value))
        alert("Invalid Date Format. Please correct format is MM/dd/YYYY.")
    else { //Detailed check for valid date ranges
        var monthfield = txtcheckindate.value.split("/")[0]
        var dayfield = txtcheckindate.value.split("/")[1]
        var yearfield = txtcheckindate.value.split("/")[2]
        var dayobj = new Date(yearfield, monthfield - 1, dayfield)
        if ((dayobj.getMonth() + 1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield))
            alert("Invalid Day, Month, or Year range detected. Please correct checkin date.")
        else
            returncheckin = true
    }
    if (returncheckin == false) {
        txtcheckindate.select()
        return returncheckin;
    }
    //return returncheckin

    if (!validformat.test(txtcheckoutdate.value))
        alert("Invalid Date Format. Please correct format is MM/dd/YYYY.")
    else { //Detailed check for valid date ranges
        var monthfield = txtcheckoutdate.value.split("/")[0]
        var dayfield = txtcheckoutdate.value.split("/")[1]
        var yearfield = txtcheckoutdate.value.split("/")[2]
        var dayobj = new Date(yearfield, monthfield - 1, dayfield)
        if ((dayobj.getMonth() + 1 != monthfield) || (dayobj.getDate() != dayfield) || (dayobj.getFullYear() != yearfield))
            alert("Invalid Day, Month, or Year range detected. Please correct checkout date.")
        else
            returncheckout = true;
    }
    if (returncheckout == false) {
        txtcheckoutdate.select()
        return returncheckout;
    }

    var checkinDate = new Date(txtcheckindate.value);
    var checkoutDate = new Date(txtcheckoutdate.value);
    var currentDate = new Date();
    var diffCheckInOut;
    var diffCurrentCheckINOUT;

    //Check Current Date And Check In Date.
    diffCurrentCheckINOUT = Math.floor((checkinDate.getTime() - currentDate.getTime()) / 1000 * 60 * 60 * 24)
    if (diffCurrentCheckINOUT <= 0) {
        alert("Check In Date must be greater than Current Date");
        return false;
    }
    //Check CheckIn Date And CheckOut Date
    diffCheckInOut = Math.floor((checkoutDate.getTime() - checkinDate.getTime()) / 1000 * 60 * 60 * 24)
    if (diffCheckInOut <= 0) {
        alert("Check Out Date must be greater than Check In Date");
        return false;
    }
    //Check Positive No for Adults
    if (!chkPositiveNum(document.form1.txtadult, "Adults")) {
        return false;
    }
    //Check Positive No for Children
    if (!chkPositiveNum(document.form1.txtChildren, "Children")) {
        return false;
    }

    return true;
}

function chkPositiveNum(obj, fieldtitle) {
    if (chkNum(obj, fieldtitle)) {
        if (eval(obj.value) < 0) {
            alert("Please enter Positive Integer.")
            obj.select();
            return false;
        }
        return true;
    }
    return false;
}

function chkNum(obj, fieldtitle) {
    obj.value = alltrim(obj.value);
    var str = obj.value;
    if (str.length == 0) {
        alert("Please Enter " + fieldtitle + ".");
        obj.select();
        return false;
    }
    var exp = new RegExp("[^0-9\-]");

    if (str.match(exp)) {
        alert("Please Enter Valid Number.");
        obj.select();
        return false;
    }
    return true;
}

function alltrim(str) {
    var ch;
    var rstr;
    var i = 0;
    while (true) {
        ch = str.substring(i, i + 1);
        if (ch != " ")
            break;
        i++;
    }
    str = str.substring(i, str.length);
    i = str.length;
    while (true) {
        ch = str.substring(i, i - 1);
        if (ch != " ")
            break;
        i--;
    }
    str = str.substring(0, i);
    return (str);
}

