//eigener Namespace
var YMHotelAvailability = function ()
{
    // bool das angibt, ob der Wert des BIS-Datepickers vom Anwender geändert wurde.
    var wasManuallyChanged = false;

    // Text des Kalender-Buttons
    var buttonText = "";

    // Pfad zum Kalender-Icon
    var buttonImage = "http://www.yellowmap.de/YMap/Layout/Images/Generic/Calendar.gif";

    // Dauer der Datepicker Einblende/Ausblende-Animation. "slow", "normal", "fast" oder "" für keine Animation.
    var datepickerAnimDuration = "normal";

    return {

        //Entfernen von "z.B. " des DefaultWertes
        validateInput: function ()
        {
            var ZipTown = document.getElementById('DatePickerZipTown');
            if (ZipTown && ZipTown.value.length > 5 && ZipTown.value.substr(0, 5) == "z.B. ")
            {
                ZipTown.value = ZipTown.value.substr(5, ZipTown.value.length);
            }
        },

        init: function ()
        {
            //onselect-Funktion für den VON-DatePicker. Setzt das minimum-Datum für den BIS-Datepicker.
            function onSelect(dateText, inst)
            {
                var selectedFromDate = $("#DatePickerFromInp").datepicker('getDate');
                var selectedToDate = $("#DatePickerFromInp").datepicker('getDate');

                selectedFromDate.setDate(selectedFromDate.getDate() + 1);
                $("#DatePickerUntilInp").datepicker('option', 'minDate', selectedFromDate);
                if (wasManuallyChanged)
                {
                    return;
                }
                $("#DatePickerUntilInp").datepicker('setDate', selectedFromDate);
            }

            //onselect-Funktion für den BIS-DatePicker.
            function onSelect2(dateText, inst)
            {
                wasManuallyChanged = true;
            }

            $(document).ready(function ()
            {

                //Datepicker Locale Einstellungen setzen.
                $.datepicker.regional['de'] = {
                    closeText: 'Schlie&szlig;en',
                    prevText: '&#x3c;Zur&uuml;ck',
                    nextText: 'Vor&#x3e;',
                    currentText: 'Heute',
                    monthNames: ['Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],
                    monthNamesShort: ['Jan', 'Feb', 'M&auml;r', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
                    dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
                    dayNamesShort: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
                    dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
                    dateFormat: 'dd.mm.yy',
                    firstDay: 1,
                    isRTL: false
                };

                if ($.browser.msie && $.browser.version < 7)
                {
                    //Animationen machen im IE6 ggf. Probleme.
                    datepickerAnimDuration = "";
                }

                //Datepicker Locale Einstellungen übernehmen
                $.datepicker.setDefaults($.datepicker.regional['de']);

                var minDate = new Date();


                var nextFriday = new Date();
                if (nextFriday.getDay() <= 5) nextFriday = new Date(nextFriday.getTime() + 86400 * 1000 * (5 - nextFriday.getDay()));
                else nextFriday = new Date(nextFriday.getTime() + 86400 * 1000 * 6);
                var nextSunday = new Date(nextFriday.getTime() + 86400 * 1000 * 2);

                // Immer das nächste Wochenende als Default auswählen
                $("#DatePickerFromInp").val('{0}.{1}.{2}'.replace('{0}', nextFriday.getDate()).replace('{1}', nextFriday.getMonth() + 1).replace('{2}', nextFriday.getFullYear()));
                $("#DatePickerUntilInp").val('{0}.{1}.{2}'.replace('{0}', nextSunday.getDate()).replace('{1}', nextSunday.getMonth() + 1).replace('{2}', nextSunday.getFullYear()));

                //Datepicker einbauen
                $("#DatePickerFromInp").datepicker({
                    duration: datepickerAnimDuration,
                    onSelect: onSelect,
                    minDate: minDate,
                    showOn: 'both',
                    buttonImage: buttonImage,
                    buttonImageOnly: true,
                    buttonText: buttonText
                });
                $("#DatePickerUntilInp").datepicker({
                    duration: datepickerAnimDuration,
                    onSelect: onSelect2,
                    minDate: 1,
                    showOn: 'both',
                    buttonImage: buttonImage,
                    buttonImageOnly: true,
                    buttonText: buttonText
                });

                // Falls kein Datumswert in der Session stand, setzen wir "heute" als vorbefüllten Datepicker-Wert
                if ($("#DatePickerFromInp").val() && $("#DatePickerFromInp").val().length < 1)
                {
                    $("#DatePickerFromInp").datepicker('setDate', minDate);
                    $("#DatePickerUntilInp").datepicker('setDate', 1);
                }

                // Bei submit des HotelAvilabilityForm-Formulars die validateInput-function ausführen.
                $("#HotelAvilabilityForm").submit(YMHotelAvailability.validateInput);
            });
        }
    };
} ();

YMHotelAvailability.init();

