﻿function initDate() {
    var now = new Date();
    var mth = now.getMonth();
    var dd = now.getDate();
    var yy = now.getFullYear();
    if (mth < 10) {
        mth == 0 + mth;
    }
    if (dd < 10) {
        dd == 0 + dd;
    }
    if ((mth == 11) && (dd >= 29)) {
        document.getElementById('AIR_frommonth').selectedIndex = mth;
        document.getElementById('AIR_fromdate').selectedIndex = dd - 1;
        document.getElementById('AIR_todate').selectedIndex = dd - dd;
        document.getElementById('AIR_tomonth').selectedIndex = mth - mth;
    } else if ((dd >= 29) || ((dd >= 27) && (mth == 1))) {
        document.getElementById('AIR_frommonth').selectedIndex = mth + 1;
        document.getElementById('AIR_fromdate').selectedIndex = dd - dd;
        document.getElementById('AIR_todate').selectedIndex = (dd - dd) + 1;
        document.getElementById('AIR_tomonth').selectedIndex = mth + 1;
    } else {
        document.getElementById('AIR_frommonth').selectedIndex = mth;
        document.getElementById('AIR_fromdate').selectedIndex = dd + 1;
        document.getElementById('AIR_tomonth').selectedIndex = mth;
        document.getElementById('AIR_todate').selectedIndex = dd + 3;
    }
}

function setDisplay(obj, id) {
    var date = obj.value;
    var dd = Number(date.substr(0, 2));
    var mm = Number(date.substr(3, 2));
    dd = dd - 1;
    mm = mm - 1;
    if (id == 1) {
        document.getElementById('AIR_frommonth').selectedIndex = dd;
        document.getElementById('AIR_fromdate').selectedIndex = mm;
    } else {
        document.getElementById('AIR_tomonth').selectedIndex = dd;
        document.getElementById('AIR_todate').selectedIndex = mm;
    }
}

function changeParam(type) {
    if (type == 'city') {
        document.getElementById('selected_polygon').disabled = true;
        document.getElementById('cityName').disabled = false;
        document.getElementById('t0_distance').disabled = false;
    }
    else {
        document.getElementById('selected_polygon').disabled = false;
        document.getElementById('cityName').disabled = true;
        document.getElementById('t0_distance').disabled = true;
    }
}

function TravelocityWidget() {
    this.widgetId = "travelocityWidget";
    this.defaultTab = "hotel";

    this.initTabs = function () {
        $(".tab_" + this.defaultTab).addClass("selected");
        $(".panel_" + this.defaultTab).addClass("selected");

        $("#" + this.widgetId + " .widgetTabs ul li a").click(function (e) {
            e.preventDefault();
            var tabName = $(e.target).parent().attr("class");
            tabName = tabName.replace("tab_", "");
            $(".widgetTabs li.selected").removeClass("selected");
            $(".widgetPanels div.selected").removeClass("selected");
            $(".tab_" + tabName).addClass("selected");
            $(".panel_" + tabName).addClass("selected");
            $(".widgetTabs ul").removeClass();
            $(".widgetTabs ul").addClass("active_" + tabName);
        });
    }

    this.initHotel = function() {
        $("#" + hotelButton).click(submitHotel);
        $(".searchType").change(function() {
            if ($(".searchType:checked").val() == "city") {
                $.each(hotelFields, function(index, value) {
                    if (value[0] == "city" || value[0] == "t0_distance") {
                        $("#" + value[1]).removeAttr("disabled");
                    } else if (value[0] == "selected_polygon") {
                        $("#" + value[1]).attr("disabled", "true");
                    }
                });
            }
            if ($(".searchType:checked").val() == "region") {
                $.each(hotelFields, function(index, value) {
                    if (value[0] == "city" || value[0] == "t0_distance") {
                        $("#" + value[1]).attr("disabled", "true");
                    } else if (value[0] == "selected_polygon") {
                        $("#" + value[1]).removeAttr("disabled");
                    }
                });
            }
        });
    }

    this.initCar = function () {
        $("#" + carButton).click(submitCar);
        $(".rblCarSame").change(function (e) {
            var rblVal = $(e.target).val();
            if (rblVal == "y") {
                $("#diffDropOff").show();
            } else if (rblVal == "n") {
                $("#diffDropOff").hide();
            }
        });
    }

    this.initAir = function () {
        $("#" + airButton).click(submitAir);
        $(".ddlAirChildren").change(function (e) {
            var childCount = $(e.target).val();
            if (childCount > 0) {
                $("#cbFOchildages").show();
                $("#cbFOchildages .formfield .cbChild").hide();
                var selBoxes = $("#cbFOchildages .formfield .cbChild");
                for (i = 0; i < childCount; i++) {
                    $(selBoxes[i]).show();
                }
            } else {
                $("#cbFOchildages").hide();
            }
        });
    }
}

function submitHotel(e) {
    e.preventDefault();
    
    var toUrl = "";
    var i = 0;

    $.each(hotelFields, function(index, value) {
        var key = value[0];
        var val = $("#" + value[1]).val();

        switch (key) {
            case "city":
                if ($(".searchType:checked").val() != "city") {
                    key = null;
                    val = null;
                }
                break;
            case "t0_distance":
                if ($(".searchType:checked").val() != "city") {
                    key = null;
                    val = null;
                }
                break;
            case "selected_polygon":
                if ($(".searchType:checked").val() != "region") {
                    key = null;
                    val = null;
                }
                break;
            case "chk_in":
                val = val.replace("/", "%2F");
                break;
            case "chk_out":
                val = val.replace("/", "%2F");
                break;
        }

        if (key != null && val != null) {
            if (i == 0) {
                i = 1;
                toUrl += "?";
            } else {
                toUrl += "&";
            }
            toUrl += key + "=" + val;
        }
    });
    window.open("http://www.res99.com/nexres/search/search_results.cgi" + toUrl);
}

function submitCar(e) {
    e.preventDefault();

    var toUrl = "";
    var i = 0;
    var splitPuDate = "";
    var splitDoDate = "";

    $.each(carFields, function (index, value) {
        var key = value[0];
        var val = $("#" + value[1]).val();

        switch (key) {
            case "pickUp":
                splitPuDate = val.split('/');
                break;
            case "dropOff":
                splitDoDate = val.split('/');
                break;
            case "pu_day":
                val = splitPuDate[1]
                break;
            case "pu_month":
                val = splitPuDate[0]
                break;
            case "do_day":
                val = splitDoDate[1]
                break;
            case "do_month":
                val = splitDoDate[0]
                break;
        }

        if (key != null && val != null) {
            if (i == 0) {
                i = 1;
                toUrl += "?";
            } else {
                toUrl += "&";
            }
            toUrl += key + "=" + val;
        }
    });
    window.open("http://www.res99.com/nexres/start-pages/gateway.cgi" + toUrl);
}

function submitAir(e) {
    e.preventDefault();

    var toUrl = "";
    var i = 0;
    var splitLeaveDate = "";
    var splitReturnDate = "";
    var d = new Date();

    $.each(airFields, function (index, value) {
        var key = value[0];
        var val = $("#" + value[1]).val();

        switch (key) {
            case "dateLeavingMonth":
                splitLeaveDate = val;
                break;
            case "dateLeavingDay":
                splitLeaveDate = splitLeaveDate + "/" + val;
                break;
            case "leavingDate":
                val = splitLeaveDate + "/" + d.getFullYear();
                break;
             case "dateReturningMonth":
                splitReturnDate = val;
                break;
           case "dateReturningDay":
                splitReturnDate = splitReturnDate + "/" + val;
                break;
            case "returningDate":
                val = splitReturnDate + "/" + d.getFullYear();
                break;
            case "nearbyAirports":
                if ($("#" + value[1]).is(':checked')) {
                    val = "on";
                } else {
                    val = "";
                }
                break;
        }

        if (key != null && val != null) {
            if (i == 0) {
                i = 1;
                toUrl += "?";
            } else {
                toUrl += "&";
            }
            toUrl += key + "=" + val;
        }
    });
    window.open("http://www.res99.com/nexres/start-pages/gateway.cgi" + toUrl);
}

$(function () {
    $('.datepicker').datepicker();
    var toWidget = new TravelocityWidget();
    toWidget.initTabs();
    toWidget.initHotel();
    toWidget.initCar();
    toWidget.initAir();
});


