﻿function GVA_ebookers(sDayNamesMin, sMonthNames, sNextText, sPrevText, sErrMsgs, local, langID) {
    //Cars
    var baseURL_C_DE = "http://clk.atdmt.com/EBS/go/253210649/direct/01/?locale=" + local;
    var baseURL_C_EN = "http://clk.atdmt.com/EBS/go/253210657/direct/01/?locale=" + local;
    var baseURL_C_FR = "http://clk.atdmt.com/EBS/go/253210653/direct/01/?locale=" + local;
    //Flight + Hotel
    var baseURL_FH_DE = "http://clk.atdmt.com/EBS/go/253210651/direct/01/?locale=" + local;
    var baseURL_FH_EN = "http://clk.atdmt.com/EBS/go/253210659/direct/01/?locale=" + local;
    var baseURL_FH_FR = "http://clk.atdmt.com/EBS/go/253210655/direct/01/?locale=" + local;
    //Flight
    var baseURL_F_DE = "http://clk.atdmt.com/EBS/go/253210648/direct/01/?locale=" + local;
    var baseURL_F_EN = "http://clk.atdmt.com/EBS/go/253210656/direct/01/?locale=" + local;
    var baseURL_F_FR = "http://clk.atdmt.com/EBS/go/253210652/direct/01/?locale=" + local;
    //Hotel
    var baseURL_H_DE = "http://clk.atdmt.com/EBS/go/253210650/direct/01/?locale=" + local;
    var baseURL_H_EN = "http://clk.atdmt.com/EBS/go/253210658/direct/01/?locale=" + local;
    var baseURL_H_FR = "http://clk.atdmt.com/EBS/go/253210654/direct/01/?locale=" + local;

    initEbookers();
    function initEbookers() {
        $(".tab_content").hide(); //Hide all tab content
        $("ul.tabsform li:first").addClass("active").show(); //Activate first tab
        $(".tab_content:first").show(); //Show first tab content

        //On Click Event
        $("ul.tabsform li").click(function () {
            $("ul.tabsform li").removeClass("active"); //Remove any "active" class
            $(this).addClass("active"); //Add "active" class to selected tab
            $(".tab_content").hide(); //Hide all tab content
            var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
            $(activeTab).fadeIn(); //Fade in the active content
            return false;
        });

        $("#EB_Flights_Departure, #EB_Flights_Arrival, #EB_Hotel_Guests_Checkin, #EB_Hotel_Guests_Checkout, #EB_Car_PickupDate, #EB_Car_DropOffDate, #EB_Combi_Departure, #EB_Combi_Arrival").datepicker({
            showOn: "both",
            buttonImage: "portaldata/1/images/icon_calender.png",
            buttonImageOnly: true,
            dateFormat: 'dd.mm.yy',
            dayNamesMin: sDayNamesMin,
            monthNames: sMonthNames,
            nextText: sNextText,
            prevText: sPrevText,
            firstDay: 1,
            showOtherMonths: true,
            selectOtherMonths: true,
            minDate: 0
        });
        $("#EB_Flights_Departure").change(setFlightsToDate);
        $("#EB_Flights_Kids_Count").change(setFlightsKids);
        setFlightsKids();
        $("#EB_Flights_Submit").click(sendFlightsSearch);

        $("#EB_Hotel_Guests_Checkin").change(setHotelCheckoutDate);
        $("#EB_Hotel_Guests_Checkout").change(adaptHotelNights);
        $("#EB_Hotel_Rooms_Count").change(setHotelRooms);
        setHotelRooms();
        $("#EB_Hotel_Submit").click(sendHotelSearch);

        $("#EB_Car_PickupDate").change(setCarPickupToDate);
        $("#EB_Car_PickupPlaceType").change(adaptPickupPlace);
        $("#EB_Car_DropOffPlaceType").change(adaptDropOffPlace);
        $("#EB_Car_Submit").click(sendCarSearch);

        $("#EB_Combi_Departure").change(setCombiToDate);
        $("#EB_Combi_Kids_Count").change(setCombiKids);
        setCombiKids();
        $("#EB_Combi_Submit").click(sendCombiSearch);
    }
    function setFlightsToDate() {
        var fromDate = $("#EB_Flights_Departure").val();
        $("#EB_Flights_Arrival").datepicker("option", "minDate", fromDate);
        $("#EB_Flights_Arrival").datepicker("option", "defaultDate", fromDate);
    }
    function setFlightsKids() {
        $("#EB_Flights_Kids_Age1, #EB_Flights_Kids_Age2, #EB_Flights_Kids_Age3").attr("disabled", "disabled");
        switch ($("#EB_Flights_Kids_Count").val()) {
            case '0':
                $("#EB_Flights_Kids_Age1, #EB_Flights_Kids_Age2, #EB_Flights_Kids_Age3").val('');
                break;
            case '1':
                $("#EB_Flights_Kids_Age1").attr("disabled", "");
                $("#EB_Flights_Kids_Age2, #EB_Flights_Kids_Age3").val('');
                break;
            case '2':
                $("#EB_Flights_Kids_Age1, #EB_Flights_Kids_Age2").attr("disabled", "");
                $("#EB_Flights_Kids_Age3").val('');
                break;
            case '3':
                $("#EB_Flights_Kids_Age1, #EB_Flights_Kids_Age2, #EB_Flights_Kids_Age3").attr("disabled", "");
                break;
        }
        Custom.init();
    }
    function setCombiKids() {
        $("#EB_Combi_Kids_Age1, #EB_Combi_Kids_Age2, #EB_Combi_Kids_Age3").attr("disabled", "disabled");
        switch ($("#EB_Combi_Kids_Count").val()) {
            case '0':
                $("#EB_Flights_Kids_Age1, #EB_Flights_Kids_Age2, #EB_Flights_Kids_Age3").val('');
                break;
            case '1':
                $("#EB_Combi_Kids_Age1").attr("disabled", "");
                $("#EB_Combi_Kids_Age2, #EB_Combi_Kids_Age3").val('');
                break;
            case '2':
                $("#EB_Combi_Kids_Age1, #EB_Combi_Kids_Age2").attr("disabled", "");
                $("#EB_Combi_Kids_Age3").val('');
                break;
            case '3':
                $("#EB_Combi_Kids_Age1, #EB_Combi_Kids_Age2, #EB_Combi_Kids_Age3").attr("disabled", "");
                break;
        }
        Custom.init();
    }
    function setHotelRooms() {
        $("#EB_Hotel_Nights_Room2, #EB_Hotel_Nights_Room3, #EB_Hotel_Nights_Room4").attr("disabled", "disabled");
        switch ($("#EB_Hotel_Rooms_Count").val()) {
            case '1':
                $("#EB_Hotel_Nights_Room2, #EB_Hotel_Nights_Room3, #EB_Hotel_Nights_Room4").val('');
                break;
            case '2':
                $("#EB_Hotel_Nights_Room1, #EB_Hotel_Nights_Room2").attr("disabled", "");
                $("#EB_Hotel_Nights_Room3, #EB_Hotel_Nights_Room4").val('');
                break;
            case '3':
                $("#EB_Hotel_Nights_Room1, #EB_Hotel_Nights_Room2, #EB_Hotel_Nights_Room3").attr("disabled", "");
                $("#EB_Hotel_Nights_Room4").val('');
                break;
            case '4':
                $("#EB_Hotel_Nights_Room2, #EB_Hotel_Nights_Room3, #EB_Hotel_Nights_Room4").attr("disabled", "");
                break;
        }
        Custom.init();
    }
    function sendFlightsSearch() {
        var errCnt = 0;
        var errMsg = '';
        if ($("#EB_Flights_From").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[2]);
        }
        if ($("#EB_Flights_To").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[3]);
        }
        if ($("#EB_Flights_Departure").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[4]);
        }
        if ($("#EB_Flights_Arrival").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[5]);
        }
        if (errCnt) {
            alert((errCnt == 1 ? sErrMsgs[0] : sErrMsgs[1]) + errMsg);
        } else {
            var redirectURL = baseURL_F_FR + "&type=air&returnspan=Anytime&departspan=Anytime" +
                              "&origin=" + formatString($("#EB_Flights_From").val()) +
                              "&dest=" + formatString($("#EB_Flights_To").val()) +
                              "&departdate=" + $("#EB_Flights_Departure").val().replace(/\./g, "%2F") +
                              "&returndate=" + $("#EB_Flights_Arrival").val().replace(/\./g, "%2F") +
                              "&adults=" + $("#EB_Flights_Adults_Count").val() +
                              "&children=" + $("#EB_Flights_Kids_Count").val() +
                              "&childAges1=" + $("#EB_Flights_Kids_Age1").val() +
                              "&childAges2=" + $("#EB_Flights_Kids_Age2").val() +
                              "&childAges3=" + $("#EB_Flights_Kids_Age3").val() +
                              "&nonstop=" + $("#EB_Flights_NonStop").attr('checked');
            redirectTo(redirectURL);
        }
    }

    function setHotelCheckoutDate() {
        var fromDate = $("#EB_Hotel_Guests_Checkin").val();
        $("#EB_Hotel_Guests_Checkout").datepicker("option", "minDate", fromDate);
        $("#EB_Hotel_Guests_Checkout").datepicker("option", "defaultDate", fromDate);

        adaptHotelNights();
    }
    function adaptHotelNights() {
        if ($("#EB_Hotel_Guests_Checkin").val().trim() != '' && $("#EB_Hotel_Guests_Checkout").val().trim() != '') {
            $("#EB_Hotel_Nights_Count").val(($("#EB_Hotel_Guests_Checkout").datepicker("getDate") - $("#EB_Hotel_Guests_Checkin").datepicker("getDate")) / 86400000);
        }
    }
    function sendHotelSearch() {
        var errCnt = 0;
        var errMsg = '';
        if ($("#EB_Hotel_Guests_Checkin").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[6]);
        }
        if ($("#EB_Hotel_Guests_Checkout").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[7]);
        }
        if (errCnt) {
            alert((errCnt == 1 ? sErrMsgs[0] : sErrMsgs[1]) + errMsg);
        } else {

            var redirectURL = baseURL_H_FR + "&type=hotel&searchtype=keyword&country=CH" +
                                        "&rooms=" + $("#EB_Hotel_Rooms_Count").val() +
                                        "&market=" + formatString($("#EB_Hotel_City").val()) +
                                        "&checkin=" + $("#EB_Hotel_Guests_Checkin").val().replace(/\./g, "%2F") +
                                        "&checkout=" + $("#EB_Hotel_Guests_Checkout").val().replace(/\./g, "%2F") +
                                        "&nbnuit=" + $("#EB_Hotel_Nights_Count").val() +
										"&room1.adults=" + $("#EB_Hotel_Nights_Room1").val() +
										"&room2.adults=" + $("#EB_Hotel_Nights_Room2").val() +
										"&room3.adults=" + $("#EB_Hotel_Nights_Room3").val() +
										"&room4.adults=" + $("#EB_Hotel_Nights_Room4").val();
            redirectTo(redirectURL);
        }
    }
    function setCarPickupToDate() {
        var fromDate = $("#EB_Car_PickupDate").val();
        $("#EB_Car_DropOffDate").datepicker("option", "minDate", fromDate);
        $("#EB_Car_DropOffDate").datepicker("option", "defaultDate", fromDate);
    }
    function adaptPickupPlace() {
        adaptPlace("#EB_Car_PickupPlace", "#EB_Car_PickupPlaceType");
    }
    function adaptDropOffPlace() {
        if ($("#EB_Car_DropOffPlaceType").val() != 'SAME') {
            adaptPlace("#EB_Car_DropOffPlace", "#EB_Car_DropOffPlaceType");
            $("#EB_Car_DropOffPlace").parent().show();
        } else {
            $("#EB_Car_DropOffPlace").parent().hide();
        }
    }
    function adaptPlace(place, placetype) {
        $(place).prev("label").html($(placetype + " option:selected").html() + ':');
        $(place).val('');
    }
    function sendCarSearch() {
        var errCnt = 0;
        var errMsg = '';
        if ($("#EB_Car_PickupPlace").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[8]);
        }
        if ($("#EB_Car_DropOffPlaceType").val() != 'SAME' && $("#EB_Car_DropOffPlace").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[9]);
        }
        if ($("#EB_Car_PickupDate").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[10]);
        }
        if ($("#EB_Car_DropOffDate").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[11]);
        }
        if (errCnt) {
            alert((errCnt == 1 ? sErrMsgs[0] : sErrMsgs[1]) + errMsg);
        } else {
            var redirectURL = baseURL_C_FR + "&type=car&air=U" +
                                        "&pickuptime=" + $("#EB_Car_PickupTime").val() +
                                        "&dropofftime=" + $("#EB_Car_DropOffTime").val() +
                                        "&pickup=" + formatString($("#EB_Car_PickupPlace").val()) +
                                        "&dropoff=" + formatString($("#EB_Car_DropOffPlace").val()) +
                                        "&dropofftype=" + $("#EB_Car_DropOffPlaceType").val() +
                                        "&pickupdate=" + $("#EB_Car_PickupDate").val().replace(/\./g, "%2F") +
                                        "&dropoffdate=" + $("#EB_Car_DropOffDate").val().replace(/\./g, "%2F") +
                                        "&pickuptype=" + $("#EB_Car_PickupPlaceType").val() +
                                        "&driversage=" + $("#EB_Car_DriverAge").val();
            redirectTo(redirectURL);
        }
    }
    function setCombiToDate() {
        var fromDate = $("#EB_Combi_Departure").val();
        $("#EB_Combi_Arrival").datepicker("option", "minDate", fromDate);
        $("#EB_Combi_Arrival").datepicker("option", "defaultDate", fromDate);
    }
    function sendCombiSearch() {
        var errCnt = 0;
        var errMsg = '';
        if ($("#EB_Combi_From").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[2]);
        }
        if ($("#EB_Combi_To").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[3]);
        }
        if ($("#EB_Combi_Departure").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[4]);
        }
        if ($("#EB_Combi_Arrival").val().trim() == '') {
            errCnt++;
            errMsg += formatErrMsg(sErrMsgs[5]);
        }
        if (errCnt) {
            alert((errCnt == 1 ? sErrMsgs[0] : sErrMsgs[1]) + errMsg);
        } else {
            var redirectURL = baseURL_FH_FR + "&type=aph&returnspan=Anytime&departspan=Anytime" +
                                        "&origin=" + formatString($("#EB_Combi_From").val()) +
                                        "&dest=" + formatString($("#EB_Combi_To").val()) +
                                        "&departdate=" + $("#EB_Combi_Departure").val().replace(/\./g, "%2F") +
                                        "&returndate=" + $("#EB_Combi_Arrival").val().replace(/\./g, "%2F") +
                                        "&adults=" + $("#EB_Combi_Guests").val() +
										"&children=" + $("#EB_Combi_Kids_Count").val() +
										"&childAges1=" + $("#EB_Combi_Kids_Age1").val() +
										"&childAges2=" + $("#EB_Combi_Kids_Age2").val() +
										"&childAges3=" + $("#EB_Combi_Kids_Age3").val() +
                                        "&nonstop=" + $("#EB_Combi_NonStop").attr('checked');

            redirectTo(redirectURL);
        }
    }
    function redirectTo(url) {
        window.open(url, 'ebookers', '');
    }

    function formatErrMsg(msg) {
        return '- ' + msg + '\n';
    }

    function formatString(str) {
        str = str.replace("ä", "ae");
        str = str.replace("Ä", "Ae");
        str = str.replace("ü", "ue");
        str = str.replace("Ü", "Ue");
        str = str.replace("ö", "oe");
        str = str.replace("Ö", "Oe");
        str = str.replace("ß", "ss");
        str = str.replace("é", "e");
        str = str.replace("è", "e");
        str = str.replace("ê", "e");
        str = str.replace("à", "a");
        str = str.replace("ô", "o");
        str = str.replace("î", "i");
        str = str.replace("â", "a");
        str = str.replace("ï", "i");
        str = str.replace("Â", "a");
        str = str.replace("Î", "i");
        str = str.replace("Ï", "i");
        return str;
    }
}
