﻿//start new script code
try {
    YAHOO.namespace("example.calendar");
    var htlDoaCal;
    var htlDodCal;
    //var calArray = new Array(); // store calendar objects for use to show calendar.
}
catch (e) { };

function initCal() {
    htlDoaCal = new WCT.calendar("htlDoaCal", "cal1Container", "calendarBoxArrive", "chk_in", "DOA");
    htlDodCal = new WCT.calendar("htlDodCal", "cal2Container", "calendarBoxDepart", "chk_out", "DOD");
    htlDoaCal.addLinkedCal(htlDodCal);
    htlDodCal.addLinkedCal(htlDoaCal);
    htlDoaCal.position("relative");
    htlDodCal.position("relative");
    //.push(htlDoaCal);
    //calArray.push(htlDodCal);
}

//IE BACKGROUND IMAGE FLICKER FIX
try {
    document.execCommand("BackgroundImageCache", false, true);
} catch (e) { };


// Checks if browser is Netscape 2.0x since the options array properties don't work with Netscape 2.0x
function isBrowserSupp() {
    // Get the version of the browser
    version = parseFloat(navigator.appVersion);

    if ((version >= 2.0) && (version < 2.1) && (navigator.appName.indexOf("Netscape") != -1)) {
        return false;
    }
    else {
        return true;
    }

    return true;
}

function isLeapYear(yrStr) {
    var leapYear = false;
    var year = parseInt(yrStr, 10);
    // every fourth year is a leap year
    if (year % 4 == 0) {
        leapYear = true;
        // unless it's a multiple of 100
        if (year % 100 == 0) {
            leapYear = false;
            // unless it's a multiple of 400
            if (year % 400 == 0) {
                leapYear = true;
            }
        }
    }
    return leapYear;
}

function getDaysInMonth(mthIdx, YrStr) {
    // all the rest have 31
    var maxDays = 31
    // expect Feb. (of course)
    if (mthIdx == 1) {
        if (isLeapYear(YrStr)) {
            maxDays = 29;
        } else {
            maxDays = 28;
        }
    }
    // thirty days hath...
    if (mthIdx == 3 || mthIdx == 5 || mthIdx == 8 || mthIdx == 10) {
        maxDays = 30;
    }
    return maxDays;
}

function getYear(mthIdx) {
    var today = new Date()
    var theYear = parseInt(today.getYear(), 10)

    if (mthIdx < today.getMonth()) {
        theYear = (parseInt(today.getYear(), 10) + 1)
    }
    if (theYear < 100) {
        theYear = "19" + theYear
    } else {
        if ((theYear - 100) < 10) {
            theYear = "0" + (theYear - 100)
        } else {
            theYear = (theYear - 100) + ""
        }
        theYear = "20" + theYear
    }
    return theYear;
}

//the function which does some magic to the date fields
// return non-zero if it is the last day of the month
function adjustDate(mthIdx, Dt) {
    var value = 0;
    var today = new Date()
    var theYear = parseInt(today.getYear(), 10)

    if (mthIdx < today.getMonth()) {
        theYear = (parseInt(today.getYear(), 10) + 1)
    }
    if (theYear < 100) {
        theYear = "19" + theYear
    } else {
        if ((theYear - 100) < 10) {
            theYear = "0" + (theYear - 100)
        } else {
            theYear = (theYear - 100) + ""
        }
        theYear = "20" + theYear
    }

    var numDays = getDaysInMonth(mthIdx, theYear);

    if (mthIdx == 1) {
        if (Dt.options.selectedIndex + 1 < numDays) {
            return 0;
        } else {
            Dt.options.selectedIndex = numDays - 1;
            //check for leap year
            if (numDays == 29) {
                return 99;
            } else {
                return 1;
            }
        }
    }

    if (Dt.options.selectedIndex + 1 < numDays) {
        value = 0;
    } else {
        if (Dt.options.selectedIndex + 1 > numDays) {
            Dt.options.selectedIndex--;
            value = 3;
        } else {
            //index is 31 or 30
            value = 2;
        }
    }
    return value;
}

function changeOptionDate(inM, inD) {
    // Dynamically add/remove dates according to the selected month
    var o_days = new Array(31, ((getYear(inM.options.selectedIndex) % 4 == 0 && getYear(inM.options.selectedIndex) % 100 != 0) || getYear(inM.options.selectedIndex) % 400 == 0 ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); // Set the days for each month

    if (inD.options.length > o_days[inM.options.selectedIndex]) {
        for (var i = 31; i >= o_days[inM.options.selectedIndex]; i--) {
            inD.options[i] = null;
        }
    }
    if (inD.options.length < o_days[inM.options.selectedIndex]) {
        for (var i = inD.options.length + 1; i <= o_days[inM.options.selectedIndex]; i++) {
            inD.options[i - 1] = new Option(i, i);
        }
    }
}

//changes departure month when arrival month is changed
function amadChange(inM, inD, outM, outD) {

    if (!isBrowserSupp()) {
        return;
    }

    changeOptionDate(inM, inD);
    var res = adjustDate(inM.options.selectedIndex, inD);
    if (res != 0) {
        outD.options.selectedIndex = 0;

        if (outM.options.selectedIndex == 11) {
            outM.options.selectedIndex = 0
        } else {
            outM.options.selectedIndex = inM.options.selectedIndex + 1;
        }
    } else {
        outM.options.selectedIndex = inM.options.selectedIndex;
        outD.options.selectedIndex = inD.options.selectedIndex + 1;
    }
    return;
}

function dmddChange(outM, outD) {

    if (!isBrowserSupp()) {
        return;
    }

    adjustDate(outM.options.selectedIndex, outD);
    return;
}

function varNewWindow(url, width, height) {
    var w = 800, h = 600; // Assume

    if (document.all || document.layers) {
        w = screen.availWidth;
        h = screen.availHeight;
    }

    if (width == null) {
        width = 450;
    }

    if (height == null) {
        height = 350;
    }

    var leftPos = (w - width) / 2, topPos = (h - height) / 2;

    var win = window.open('', '', "resizable=1,toolbar=0,status=0,scrollbars=1,width=" + width + ",height=" + height + ",top=" + topPos + ",left=" + leftPos);
    win.focus();
    //	win.document.write('<HTML><BODY bgcolor="#FFFFFF"><TABLE border=0 width="100%" height="100%"><TR><TD width="100%" height="100%" align=center valign=middle><font FACE="Verdana, Arial, MS Sans Serif, Helvetica, Geneva" size="-1"><B>Just a moment...</B><BR>&nbsp;</FONT></TD></TR></TABLE></BODY></HTML>');

    win.location.href = url;
}

function newWindow(url) {

    urlWindow = window.open(url, 'AirportCodes', 'width=450,height=350');
    urlWindow.focus;
}

function setRadioBtn(theForm, radioObjName, valOfBtnToSet) {
    for (var i = 0; i < theForm[radioObjName].length; i++) {
        if (theForm[radioObjName][i].value == valOfBtnToSet) theForm[radioObjName][i].checked = true;
    }
}

function reload_page() {
    var newWin = window.location;
    var url = newWin.search;
    var queryString = url.substring(url.indexOf('?') + 1);
    var params = queryString.split('&');
    var newURL;

    //populate the array with keys & values
    for (var i = 0; i < params.length; i++) {
        var key = params[i].substring(0, params[i].indexOf('='));
        var value = params[i].substring(params[i].indexOf('=') + 1);
        if ((key == 'clear_cache' && (value == 'Y' || value == 'N' || value == ''))) {
            var myBoolean = 1;
        }
    }

    if (myBoolean != 1) {
        newURL = newWin.href + "&clear_cache=Y";
    } else {
        newURL = newWin.href;
    }
    newWin.replace(newURL);
}

//new power search javascript code

var currentPaneStyle = 0;
var currentTab = 0;

function tabstrip() {
    this.tabs = new Array();
    this.add = addTab;
    this.write = writeTabstrip;
}

function tab(caption, content, tabNumber) {
    this.setId = setId;
    this.caption = caption;
    this.content = content;
    this.write = writeTab;
    this.writeContent = writePane;
}

function addTab(tab) {
    tab.setId("tab" + this.tabs.length);
    this.tabs[this.tabs.length] = tab;
}

function setId(id) {
    this.id = id;
}

function writePane() {
    document.write("<div class='pane tableWidth' style='block' id='pn_" + this.id + "'>");
    document.write("<table width='100%' border='0' cellpadding='0' cellspacing='0'>");
    document.write("<tr class='mainTable'>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_leftM.gif' width='8'><img src='http://images.wctravel.com/images-general/null.gif' width='8' height='6' border='0'></td>");
    document.write("<td width='100%'><img src='http://images.wctravel.com/images/space.gif' width='1' height='6' border='0'></td>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_in.gif'  width='5'><img src='http://images.wctravel.com/images-general/null.gif' width='5' height='6' border='0'></td>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_out.gif' class='unselected' width='2'><img src='http://images.wctravel.com/images-general/null.gif' width='2' height='6' border='0'></td>");
    document.write("</tr><tr class='mainTable'>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_leftM.gif' width='8'><img src='http://images.wctravel.com/images-general/null.gif' width='8' height='1' border='0'></td>");
    document.write("<td width='100%' class='innerTableLine'>");
    document.write("<table width='100%' border='0' cellspacing='1' cellpadding='1'>");
    document.write("<tr class='innerTableBg'>");
    document.write("<td class='innerTable'>");
    document.write("<table width='100%' border='0' cellspacing='0' cellpadding='3'>");
    document.write("<tr>");
    // HERE IS WHERE THE BOX WITH ALL THE FORMS ARE GENERATED //
    document.write("<td width='100%'>" + this.content + "</td>");
    // HERE IS WHERE THE BOX WITH ALL THE FORMS ARE GENERATED //
    document.write("<td><img src='http://images.wctravel.com/images/space.gif' width='8' height='1' border='0'></td>");
    document.write("</tr>");
    document.write("</table>");
    document.write("</td>");
    document.write("</tr>");
    document.write("</table>");
    document.write("</td>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_in.gif' width='5'><img src='http://images.wctravel.com/images-general/null.gif' width='5' height='1' border='0'></td>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_out.gif' class='unselected' width='2'><img src='http://images.wctravel.com/images-general/null.gif' width='2' height='1' border='0'></td>");
    document.write("</tr>");
    document.write("<tr class='mainTable'>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_bt_left.gif' width='8'><img src='http://images.wctravel.com/images-general/null.gif' width='8' height='1' border='0'></td>");
    document.write("<td width='100%'><img src='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_in.gif' width='1' height='1' border='0'></td>");
    document.write("<td width='5'><img src='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_in.gif' width='5' height='1' border='0'></td>");
    document.write("<td background='http://images.wctravel.com/images-general/powersearch/tbl_main_rightM_out.gif' class='unselected' width='2'><img src='http://images.wctravel.com/images-general/null.gif' width='2' height='1' border='0'></td>");
    document.write("</tr>");
    document.write("<tr class='mainTable'>");
    document.write("<td width='8'><img src='http://images.wctravel.com/images-general/powersearch/tbl_main_bt_left.gif' width='8' height='6' border='0'></td>");
    document.write("<td width='100%' background='http://images.wctravel.com/images-general/powersearch/tbl_main_btM.gif'><img src='http://images.wctravel.com/images-general/null.gif' height='6' border='0'></td>");
    document.write("<td width='5'><img src='http://images.wctravel.com/images-general/powersearch/tbl_main_bt_right_in.gif' width='5' height='6' border='0'></td>");
    document.write("<td width='2'><img src='http://images.wctravel.com/images-general/powersearch/tbl_main_bt_right_out.gif' width='2' height='6' border='0'></td>");
    document.write("</tr>");
    document.write("</table>");
    document.write("</div>");
}

function writeTab() {
    document.write("<td style='padding: 1px 1px 0px 1px;'>");
    document.write("<div class='unselectedTab tabSize' id='" + this.id + "' onclick='showPane(this)'>");
    document.write("<table width='100%' height='100%' border='0' cellspacing='0' cellpadding='0'><tr>");
    document.write("<td class='leftTop'><img src='http://images.wctravel.com/images-general/powersearch/null.gif'></td>");
    document.write("<td class='tab'><img src='http://images.wctravel.com/images-general/powersearch/null.gif'></td>");
    document.write("<td class='rightTop'><img src='http://images.wctravel.com/images-general/powersearch/null.gif'></td></tr>");
    document.write("<tr><td rowspan='2' class='leftTabBorder'></td></tr>");
    document.write("<tr>");
    document.write("<td align='center' class='tabs'>" + this.caption + "</td>");
    document.write("<td class='rightTabBorder'><img src='http://images.wctravel.com/images-general/powersearch/null.gif'></td>");
    document.write("</tr></table>");
    document.write("</div>");
    document.write("</td>");
    // document.write("<td class='tabs' align='center'><div class='tabs' id='" + this.id + "' onclick='showPane(this)'>" + this.caption + "</div></td>");
}

// HERE IS WHERE THE TABS GET CALLED //
function writeTabstrip() {
    document.write("<table border='0' cellspacing='0' cellpadding='0'><tr>");
    for (var i = 0; i < this.tabs.length; i++) {
        this.tabs[i].write();
    }
    document.write("</tr></table>");

    for (var k = 0; k < this.tabs.length; k++) {
        this.tabs[k].writeContent();
    }
    initiate();
}

function ShowHide(obj, visibility) {
    if (document.getElementById) {
        divs = document.getElementsByTagName("div");
        divs[obj].style.visibility = visibility;
    }
}

function currencyWindow(curr) {
    currWindow = window.open(curr, 'CurrConverter', 'width=500,height=400');
    currWindow.focus;
}

function writeSessionCookie(cookieName, cookieValue) {
    if (testSessionCookie()) {
        document.cookie = escape(cookieName) + "=" + escape(cookieValue) + "; path=/";
        return true;
    }
    else return false;
}

function getCookieValue(cookieName) {
    var exp = new RegExp(escape(cookieName) + "=([^;]+)");
    if (exp.test(document.cookie + ";")) {
        exp.exec(document.cookie + ";");
        return unescape(RegExp.$1);
    }
    else return false;
}

function testSessionCookie() {
    document.cookie = "testSessionCookie=Enabled";
    if (getCookieValue("testSessionCookie") == "Enabled")
        return true
    else
        return false;
}

function hotelCheckBox(chkbox) {
    if (chkbox.checked == true) {
        if (!getCookieValue("HID")) {
            // no cookie present.  Set new cookie
            writeSessionCookie("HID", chkbox.value);
        }
        else {
            //append current value to cookie
            var cookieVal = getCookieValue("HID");
            if (window.RegExp) {
                var htlregstr = cookieVal;
                var reg1 = new RegExp(htlregstr);
                if (!reg1.test(chkbox.value)) {
                    cookieVal = cookieVal + "|" + chkbox.value;
                    writeSessionCookie("HID", cookieVal);
                }
            }
        }
    }
    else {
        // remove hotel value from cookie
        var reg1str = getCookieValue("HID");
        if (reg1str) {
            var newString = reg1str.replace(chkbox.value, '');
            if (window.RegExp) {
                newString = newString.replace(/(\|$)|(^\|)/g, '');
                newString = newString.replace(/(\|\|)/g, '|');
            }
            writeSessionCookie("HID", newString);
        }
    }
}

function resizeIframe(frameid, width, height) {
    var currentfr = document.all ? document.all[frameid] : document.getElementById(frameid);
    if (currentfr) {
        currentfr.style.display = "block";
        if (width && height) {
            currentfr.height = height;
            currentfr.width = width;
        }
        else {
            if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax
                currentfr.height = currentfr.contentDocument.body.offsetHeight + FFextraHeight;

            else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax
                currentfr.height = currentfr.Document.body.scrollHeight;
        }
    }
}

function customRange(input) {
    if (input.value == "mm/dd/yyyy" || input.value == "dd.mm.yyyy" || input.value == "dd/mm/yyyy") {
        input.value = '';
    }
    return { minDate: ($('#chk_in').val() && (input.id == 'chk_out') ? $('#chk_in').datepicker("getDate").addDays(1) : new Date()),
        maxDate: (new Date().addDays(330))
    };
}

function populateFormDate(id, dateObj) {
    var prefix = null;

    /* for products that uses doa* and dod* for dates */
    if (id == "chk_in")
        prefix = "doa";
    else
        prefix = "dod";

    /* Populate hidden input fields with values if they exists */
    if ($("#" + prefix + "_mm,#" + prefix + "_dd,#" + prefix + "_yy").length > 0) {
        var dateStr = $.datepicker.formatDate('mm/dd/yy', dateObj);
        var dateArray = dateStr.split("/");
        $("#" + prefix + "_mm").attr({ value: dateArray[0] });
        $("#" + prefix + "_dd").attr({ value: dateArray[1] });
        $("#" + prefix + "_yy").attr({ value: dateArray[2] });
    }

}

function validateWctDate(value, element) {
    var check = false;
    var re = /^\d{1,2}(\/|\.)\d{1,2}(\/|\.)\d{4}$/;
    var regexpResult = re.exec(value);
    if (regexpResult && regexpResult.length > 0) {
        var delimiter = regexpResult[1];
        var adata = value.split(delimiter);
        var mm = parseInt(adata[1], 10);
        var gg = parseInt(adata[0], 10);
        var aaaa = parseInt(adata[2], 10);
        var xdata = new Date(aaaa, mm - 1, gg);
        // checking for dd/mm/yyyy
        if ((xdata.getFullYear() == aaaa) && (xdata.getMonth() == mm - 1) && (xdata.getDate() == gg))
            check = true;
        else {
            // reverse month/day to see if we get a valid match
            // checking for mm/dd/yyyy
            xdata = new Date(aaaa, gg - 1, mm);
            if ((xdata.getFullYear() == aaaa) && (xdata.getMonth() == gg - 1) && (xdata.getDate() == mm))
                check = true;
            else
                check = false;
        }
    } else {
        if (value = 'mm/dd/aaaa') {
            check = true;
        } else {
            check = false;
        }
    }
    return this.optional(element) || check;
}









