﻿//**************************************Start OF DATE VALIDATION***************************************\\
// Declaring valid date character, minimum year and maximum year
var dtCh = "/";
var minYear = 1900;
var maxYear = 2100;

function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary(year) {
    // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
        if (i == 2) { this[i] = 29 }
    }
    return this
}

function isDate(dtStr) {
    var daysInMonth = DaysArray(12)
    var pos1 = dtStr.indexOf(dtCh)
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
    var strDay = dtStr.substring(0, pos1)
    var strMonth = dtStr.substring(pos1 + 1, pos2)
    var strYear = dtStr.substring(pos2 + 1)
    strYr = strYear
    if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
    if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
    }
    month = parseInt(strMonth)
    day = parseInt(strDay)
    year = parseInt(strYr)
    if (pos1 == -1 || pos2 == -1) {
        return false
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        return false
    }
    if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
        return false
    }
    if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
        return false
    }
    return true
}

function ValidateDateString() {
    var dt = document.getElementById(DepartingDate);
    if (isDate(dt.value) != false) {
        var dtStr = dt.value;
        var returndate = document.getElementById(ReturningDate);
        var pos1 = dtStr.indexOf(dtCh)
        var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
        var strDay = dtStr.substring(0, pos1)
        var strMonth = dtStr.substring(pos1 + 1, pos2)
        var strYear = dtStr.substring(pos2 + 1)
        strYr = strYear
        if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
        if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
        for (var i = 1; i <= 3; i++) {
            if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
        }
        month = parseInt(strMonth)
        day = parseInt(strDay)
        year = parseInt(strYr)
        var returnDateOBJ = new Date();
        returnDateOBJ.setUTCFullYear(year, month - 1, day);
        returnDateOBJ.setDate(returnDateOBJ.getDate() + 1);
        var retday = returnDateOBJ.getDate() + "";
        if (retday.length == 1)
            retday = "0" + retday;
        var retmonth = returnDateOBJ.getMonth() + 1;
        retmonth = retmonth + "";
        if (retmonth.length == 1)
            retmonth = "0" + retmonth;
        returndate.value = retday + "/" + retmonth + "/" + returnDateOBJ.getFullYear();
    }
}
//**************************************END OF DATE VALIDATION***************************************\\

// --- IE6  IFRAME SHOW AND HIDE FOR CALENDAR 2 BE 0VER ALL DROPDOWN BOX  ---//
function HideIframe() {
    if (navigator.userAgent.indexOf("MSIE 6") != -1 || navigator.userAgent.indexOf("MSIE 5") != -1) {

        document.getElementById('IframeCal').style.width = "0px";
    }
}
function displayIframe() {
    if (navigator.userAgent.indexOf("MSIE 6") != -1 || navigator.userAgent.indexOf("MSIE 5") != -1) {

        if (document.getElementById('IframeCal').style.width == "0px") {
            document.getElementById('IframeCal').style.width = "300px";
        }
        else {
            document.getElementById('IframeCal').style.width = "0px";
        }

    }
}


//--------------------Code for Popup was deleted--------------------------------------------

_spBodyOnLoadFunctionNames.push('modifyinfants');
function modifyinfants() {
    var infantddl = document.getElementById(InfanntsDDLName);
    while (infantddl.hasChildNodes()) {
        infantddl.removeChild(infantddl.firstChild);
    }
    for (var i = 0; i < 2; i++) {
        addOption(infantddl, i, i)
    }
    infantddl.selectedIndex = 0;
}

function OtherService_ClientClick() {
    window.open('http://www.gulfair.com/en/IBE/help/help_addserv.html', null, 'height=500,width=650,status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes');
}

function getnumberofinfants() {
    var adult = document.getElementById(NumberOfAdultsDDLName).value;
    var adultno = adult * 1;
    var infantddl = document.getElementById(InfanntsDDLName);
    var oldselectedvalue = document.getElementById(InfanntsDDLName).value;
    var oldselectedvalueNo = oldselectedvalue * 1;
    while (infantddl.hasChildNodes()) {
        infantddl.removeChild(infantddl.firstChild);
    }


    for (var i = 0; i <= adultno; i++) {
        addOption(infantddl, i, i)
    }
    if (adultno < oldselectedvalueNo)
        infantddl.selectedIndex = 0;
    else
        infantddl.selectedIndex = oldselectedvalueNo;
}

function addOption(selectbox, value, text) {
    var optn = document.createElement("OPTION");
    optn.text = text;
    optn.value = value;

    selectbox.options.add(optn);
}

function validateDDate(source, clientside_arguments) {
    var deptb = document.getElementById(DepartingDate);
    var depdate = deptb.value;
    var depday = depdate.substr(0, 2) * 1;
    var depmon = depdate.substr(3, 2) * 1;
    depmon = depmon - 1;
    var depyear = depdate.substr(6, 4) * 1;
    var ddate = new Date();
    ddate.setFullYear(depyear, depmon, depday);
    var today = new Date();
    var maxdate = new Date();
    maxdate.setMonth(maxdate.getMonth() + 11);
    today.setHours(0, 0, 0, 0);
    ddate.setHours(0, 0, 0, 0);
    maxdate.setHours(0, 0, 0, 0);
    if (ddate < today || ddate > maxdate)
        clientside_arguments.IsValid = false;
    else
        clientside_arguments.IsValid = true;
}
function validateRDate(source, clientside_arguments) {
    var rettb = document.getElementById(ReturningDate);
    var retdate = rettb.value;
    var retday = retdate.substr(0, 2) * 1;
    var retmon = retdate.substr(3, 2) * 1;
    retmon = retmon - 1;
    var retyear = retdate.substr(6, 4) * 1;
    var rdate = new Date();
    rdate.setFullYear(retyear, retmon, retday);

    var deptb = document.getElementById(DepartingDate);
    var depdate = deptb.value;
    var depday = depdate.substr(0, 2) * 1;
    var depmon = depdate.substr(3, 2) * 1;
    depmon = depmon - 1;
    var depyear = depdate.substr(6, 4) * 1;
    var ddate = new Date();
    ddate.setFullYear(depyear, depmon, depday);

    var maxdate = new Date();
    maxdate.setMonth(maxdate.getMonth() + 11);
    rdate.setHours(0, 0, 0, 0);
    ddate.setHours(0, 0, 0, 0);
    maxdate.setHours(0, 0, 0, 0);
    if (rdate < ddate || rdate > maxdate)
        clientside_arguments.IsValid = false;
    else
        clientside_arguments.IsValid = true;
}
function openRCalendar() {
    HideIframe();
    var rettb = document.getElementById(ReturningDate);
    if(rettb.disabled == false)
    {
        rettb.focus();
    }
}
function UpdateSelectedDate(sender, args) {
    var rettb = document.getElementById(ReturningDate);
    var retdate = rettb.value;
    var retday = retdate.substr(0, 2) * 1;
    var retmon = retdate.substr(3, 2) * 1;
    retmon = retmon - 1;
    var retyear = retdate.substr(6, 4) * 1;
    var newdate = new Date();
    newdate.setFullYear(retyear, retmon, retday);
    sender.set_selectedDate(newdate);
}