$(document).ready(function () {

    //InLine Images Zoom
    $("a[rel^='lightbox']").prettyPhoto();

    //Relacja 'New Window'
    $("a[rel^='newWnd']").click(function () {
        window.open($(this).attr('href'));
        return false;
    });

    var sliderEnabled = true;

    if ($("#topSlider img").size() > 0 && sliderEnabled == true) {
        $("#topSlider").nivoSlider({
            effect: 'fade',
            slices: 15,
            boxCols: 16,
            boxRows: 8,
            animSpeed: 500,
            pauseTime: 6000,
            startSlide: 0,
            directionNav: false,
            /*directionNavHide: true,*/
            controlNav: false
        });
    }

    if ($("#iContentGalleryContainer img").size() > 0 && sliderEnabled == true) {
        $("#iContentGalleryContainer").nivoSlider({
            effect: 'fade',
            slices: 6,
            boxCols: 16,
            boxRows: 6,
            animSpeed: 600,
            pauseTime: 3000,
            startSlide: 0,
            directionNav: false,
            /*directionNavHide: true,*/
            controlNav: false
        });
    }

    $('#mainMenuWrapper a, #topBars a, #langWrapper a, #fbWrapper, #menuWrapper a').hover(
        function () {
            $(this).stop().animate({
                opacity: 0.4
            }, 300, "linear", function () { });
        },
        function () {
            $(this).stop().animate({
                opacity: 1
            }, 300, "linear", function () { });
        });

    $('#logoFlash').css('opacity', '0').css('display', 'block').css('cursor', 'pointer');
    $('#logoFlash').click(function () { document.location.href = '/index.html'; });
    $('#logoWrapper').hover(
    function () {
        $('#logoFlash').stop().animate({
            opacity: 0.2
        }, 300, "linear", function () { });
    },
    function () {
        $('#logoFlash').stop().animate({
            opacity: 0.0
        }, 300, "linear", function () { });
    });

    /**
    * jQuery Langs
    */
    $.datepicker.regional['pl'] = {
        closeText: 'Zamknij',
        prevText: 'Poprzedni',
        nextText: 'Następny',
        currentText: 'DziĹ',
        monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
        monthNamesShort: ['Sty', 'Lu', 'Mar', 'Kw', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Pa', 'Lis', 'Gru'],
        dayNames: ['Niedziela', 'Poniedzialek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],
        dayNamesShort: ['Nie', 'Pn', 'Wt', 'Śr', 'Czw', 'Pt', 'So'],
        dayNamesMin: ['N', 'Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],
        weekHeader: 'Tydz',
        dateFormat: 'yy-mm-dd',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    };

    $.datepicker.setDefaults($.datepicker.regional['pl']);
    $('.datePicker').datepicker({
        dateFormat: 'yy.mm.dd'
    });

    ReservationController.loadForm();

}); 

/**
* Reservation Form Controller
*/
var ReservationController = {
    /**
    * Konfiguracja kontrolera
    */
    Config: {
        formsHolder: 'formWrapper',
        citiesHolder: 'iFormCity',
        roomHolder: 'iFormRoom',
        fromHolder: 'iFormFrom',
        toHolder: 'iFormTo',

        roomsLoader: 'roomsLoader',

        controllerURL: '/rezerwacja.html',
        loadForm: '',

        fullForm: false,
        setCity: 0
    },

    Dates: null,

    /**
    * Initializacja
    */
    loadForm: function () {
        if (this.Config.loadForm != '') {

            var specialLoader = '';
            if (this.Config.setCity != 0) {
                specialLoader = '&city=' + this.Config.setCity;
            }

            $.ajax({
                url: ReservationController.Config.controllerURL + '?action=' + ReservationController.Config.loadForm + specialLoader,
                dataType: 'html',
                success: function (data) {
                    $('#' + ReservationController.Config.formsHolder).html(data).fadeIn('fast');
                    ReservationController.Init();
                }
            });
        }
    },

    Init: function () {

        /*for (i in this.Config.Cities) {
        this.addOption('#' + this.Config.citiesHolder, i, this.Config.Cities[i]);
        }*/

        $('#' + ReservationController.Config.citiesHolder).change(function () {
            $('#' + ReservationController.Config.roomsLoader).fadeIn('fast');
            $.ajax({
                url: ReservationController.Config.controllerURL + '?action=get_rooms&id=' + $('#' + ReservationController.Config.citiesHolder).val(),
                dataType: 'html',
                success: function (data) {
                    $('#' + ReservationController.Config.roomHolder).html(data);
                    $('#' + ReservationController.Config.roomsLoader).fadeOut('fast');
                }
            });
        });

        ReservationController.Dates = $("#" + this.Config.fromHolder + ", #" + this.Config.toHolder + "").datepicker({
            minDate: 0,
            firstDay: 1,
            dateFormat: 'yy.mm.dd',
            onSelect: function (selectedDate) {
                var option = this.id == ReservationController.Config.fromHolder ? "minDate" : "maxDate",
					instance = $(this).data("datepicker"),
					date = $.datepicker.parseDate(
						instance.settings.dateFormat ||
						$.datepicker._defaults.dateFormat,
						selectedDate, instance.settings);
                ReservationController.Dates.not(this).datepicker("option", option, date);
            }
        });

        $('#insertForm').submit(function () {
            var error = 0;

            //Data 'Od':
            if ($('#iFormFrom').val() == '') {
                $('#iFormFrom').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#iFormFrom').css('border', 'solid 1px #F1F2F2');

            //Data 'Do':
            if ($('#iFormTo').val() == '') {
                $('#iFormTo').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#iFormTo').css('border', 'solid 1px #F1F2F2');

            //Pokój
            if (!$('#iFormRoom').val()) {
                $('#iFormRoom').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#iFormRoom').css('border', 'solid 1px #F1F2F2');


            if (error)
                return false;
        });

        $('#orderForm').submit(function () {

            var error = 0;

            //Imię
            if (!$('#oFormName').val()) {
                $('#oFormName').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#oFormName').css('border', 'solid 1px #F1F2F2');

            //Nazwisko
            if (!$('#oFormLastname').val()) {
                $('#oFormLastname').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#oFormLastname').css('border', 'solid 1px #F1F2F2');

            //Mail
            if (!$('#oFormMail').val()) {
                $('#oFormMail').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#oFormMail').css('border', 'solid 1px #F1F2F2');

            //NIP:
            if ($('#oFormVat').val() == 1 && !$('#oFormNIP').val()) {
                $('#oFormNIP').css('border', 'solid 1px #d81908');
                error++;
            }
            else
                $('#oFormNIP').css('border', 'solid 1px #F1F2F2');

            if (error)
                return false;

        });
    },

    /**
    * Opcjonowanie selectów
    */
    addOption: function (field, value, desc, selected) {
        var _selected = '';
        if (selected)
            _selected = ' selected="selected"';

        $('<option value="' + value + '"' + _selected + '>' + desc + '</option>').appendTo($(field));
    },

    /**
    * Usuwanie obiektów
    */
    deleteReservation: function (id) {
        $('#objectToDelete').val(id);
        $('#deleteForm').submit();
    }
};
