//HELPER FUNCTIONS
//Check element is valid and having value
function IsVldCtrl(ctlAl) {
    return ($(ctlAl) != null && !IsNullEmpt($(ctlAl).val()));
}

function IsNullEmpt(val) {
    return (val == undefined || val == null || val.length == 0);
}

var selectedHotelLocationID = "-1";

function formatItem(row) {
    return row[0];
}

function selectItemForHotel(li) {
    selectedHotelLocationID = li.extra[0];
}

$(document).ready(function() {
    $("#txtAirFrom,#txtAirTo,#txtVacFrom,#txtCarLocation,#txtCarDropOff").autocomplete(
        "/DesktopModules/Common/AutoSuggest.aspx",
        {
            minChars: 3,
            lineSeparator: "~",
            width: 300,
            cacheLength: 30,
            delay: 200,
            formatItem: formatItem
        }
    );

    $("#txtVacTo").autocomplete(
        "/DesktopModules/Common/AutoSuggest.aspx",
        {
            minChars: 3,
            lineSeparator: "~",
            width: 300,
            cacheLength: 1,
            delay: 200,
            formatItem: formatItem,
            extraParams: { t: "V" }
        }
    );

    $('#txtHotDest').bind("keydown", function(event) {
        CallAutoSuggest(event, txtDestinationClientID, hdnDestinationClientID, 'trRoomSelections', 'H');
    }).bind("focus", function(event) {
        this.value = "";
        selectedHotelLocationID = "-1";
    });

    var fromDate = new Date();
    var toDateDate = new Date();

    fromDate.setDate(fromDate.getDate() + 14);
    toDateDate.setDate(toDateDate.getDate() + 21);

    setDate("txtAirDepDate", fromDate);
    setDate("txtAirRetDate", toDateDate);

    setDate("txtHotInDate", fromDate);
    setDate("txtHotOutDate", toDateDate);

    setDate("txtCarPickDate", fromDate);
    setDate("txtCarDropDate", toDateDate);

    setDate("txtVacDepDate", fromDate);
    setDate("txtVacRetDate", toDateDate);
    setDate("txtVacInDate", fromDate);
    setDate("txtVacOutDate", toDateDate);

    curTab = "F";
    //toggleTabs();
});

function showHide(blnHide) {
    if (blnHide) {
        $("#returnRow").show();
    }
    else {
        $("#returnRow").hide();
    }
}

function getElement(elementID) {
    return document.getElementById(elementID);
}

function toggleVisisble(elementID) {
    if (getElement(elementID).style.display == "none") {
        getElement(elementID).style.display = "";
    }
    else {
        getElement(elementID).style.display = "none";
    }
}

function setDate(elementID, dateToUse) {
    try {
        getElement(elementID).value = (dateToUse.getMonth() + 1) + "/" + dateToUse.getDate() + "/" + dateToUse.getFullYear();
    }
    catch (err) {
    }
}

function hideElement(elementID) {
    try {
        $("#" + elementID).hide();
    }
    catch (err) {
    }
}

function showdiv(divid, css) {
    hideElement("div1");
    hideElement("div2");
    hideElement("div3");
    hideElement("div4");
    $("#li1").removeClass();
    $("#li2").removeClass();
    $("#li3").removeClass();
    $("#li4").removeClass();

    switch (parseInt(divid)) {
        case 1:
            $("#div1").show();
            $("#li1").addClass(css);
            curTab = "F";
            break;
        case 2:
            $("#div2").show();
            $("#li2").addClass(css);
            curTab = "H";
            break;
        case 3:
            $("#div3").show();
            $("#li3").addClass(css);
            curTab = "P";
            break;
        case 4:
            $("#div4").show();
            $("#li4").addClass(css);
            curTab = "C";
            break;
    }
}

var searchStr;

function searchAir() {
    searchStr = "/Default.aspx?tabid=2300";
    var airPref = "";

    if (IsVldCtrl("#tbA1")) airPref = $("#tbA1").val() + ",";
    if (IsVldCtrl("#tbA2")) airPref += $("#tbA2").val() + ",";
    if (IsVldCtrl("#tbA3")) airPref += $("#tbA3").val() + ",";

    var prefType = 1; //by default for all airline

    if (airPref.length > 0) prefType = 2;

    searchStr += "&from=" + $("#txtAirFrom").val()
                  + "&fromDt=" + $("#txtAirDepDate").val()
                  + "&fromTm=" + $("#ddlAirDepTime").val()
                  + "&to=" + $("#txtAirTo").val()
                  + "&toDt=" + $("#txtAirRetDate").val()
                  + "&toTm=" + $("#ddlAirRetTime").val()
                  + "&rt=" + $("#rbAirRT").is(':checked')
                  + "&ad=" + $("#ddlAirAdults").val()
                  + "&ch=" + $("#ddlAirChildren").val()
                  + "&se=" + $("#ddlAirSeniors").val()
                  + "&class=" + $("#ddlAirClass").val()
                  + "&airpref=" + airPref.substring(0, airPref.length - 1)
                  + "&IsNS=" + $("#chkDirectFlt").is(':checked')
                  + "&preftyp=" + prefType;

    location.href = searchStr;
}

function searchHot() {
    searchStr = "/Default.aspx?tabid=3709";

    searchStr += "&to=" + $("#txtHotDest").val()
                  + "&fromDt=" + $("#txtHotInDate").val()
                  + "&toDt=" + $("#txtHotOutDate").val()
                  + (selectedHotelLocationID != '-1' ? "&lid=" + selectedHotelLocationID : "")
                  + "&rooms=" + $("#ddlHotelRooms").val()
                  + "&r1a=" + $("#ddlHotR1Adults").val()
                  + "&r1c=" + $("#ddlHotR1Children").val()
                  + "&r2a=" + $("#ddlHotR2Adults").val()
                  + "&r2c=" + $("#ddlHotR2Children").val()
                  + "&r3a=" + $("#ddlHotR3Adults").val()
                  + "&r3c=" + $("#ddlHotR3Children").val()
                  + "&htlname=" + $("#txtHotName").val()
                  + "&rat=" + $("#ddlHotStar").val()
                  + "&ht=";

    location.href = searchStr;
}

function searchCar() {
    searchStr = "/Default.aspx?tabid=2300";

    searchStr += "&to=" + $("#txtCarLocation").val()
                  + "&fromDt=" + $("#txtCarPickDate").val()
                  + "&fromTm=" + $("#ddlCarPickTime").val() + $("#ddlCarPickAMPM").val()
                  + "&toDt=" + $("#txtCarDropDate").val()
                  + "&toTm=" + $("#ddlCarDropTime").val() + $("#ddlCarDropAMPM").val()
                  + "&tran" + $("#tran").val()
                  + "&ctyp=" + $("#ctyp").val()
                  + "&acon=" + $("#acon").val()
                  + "&rc=" + (IsNullEmpt($("#txtCarDropOff").val()) ? $("#txtCarLocation").val() : $("#txtCarDropOff").val())
                  + "&cr=Default";

    location.href = searchStr;
}

function searchVac() {
    searchStr = "/Default.aspx?tabid=3994";

    var rooms = 1;

    if (getElement("ddlVacR2Adults").value > 0) {
        rooms = 2;
    }

    searchStr += "&from=" + $("#txtVacFrom").val()
                + "&to=" + $("#txtVacTo").val()
                + "&dep=" + $("#txtVacDepDate").val()
                + "&ret=" + $("#txtVacRetDate").val()
                + "&svc=" + $("#ddlVacClass").val()
                + "&rm=" + rooms
                + "&r1a=" + $("#ddlVacR1Adults").val();

    if (rooms == 2) {
        searchStr += "&r2a=" + $("#ddlVacR2Adults").val();
    }

    if ($("#cbVacPartialHotel").is(':checked')) {
        searchStr += "&cin=" + $("#txtVacInDate").val() + "&cout=" + $("#txtVacOutDate").val();
    }

    location.href = searchStr;
}

function updateHotelRooms() {
    $("#hRm2,#hRm3,#ddlHotR2Adults,#ddlHotR3Adults,#ddlHotR2Children,#ddlHotR3Children").hide();
    switch ($("#ddlHotelRooms").val()) {
        case "2":
            $("#hRm2,#ddlHotR2Adults,#ddlHotR2Children").show();
            break;
        case "3":
            $("#hRm2,#hRm3,#ddlHotR2Adults,#ddlHotR3Adults,#ddlHotR2Children,#ddlHotR3Children").show();
            break;
        default:
            break;
    }
}

function updateVacHotelRooms() {
    $("#pRm2,#ddlVacR2Adults,#ddlVacR2Children").hide();
    switch ($("#ddlVacHotelRooms").val()) {
        case "2":
            $("#pRm2,#ddlVacR2Adults,#ddlVacR2Children").show();
            break;
        default:
            break;
    }
}
