$('document').ready(function(){
    /**
     * Dodawanie strony głównej do zakładki
     */
    function dodajzakladke(tytul,adres) {
        if (window.sidebar) //  dla firefoksa
            window.sidebar.addPanel(tytul, adres, "");
        else if(window.opera && window.print) { // dla opery
            var elem = document.createElement('a');
            elem.setAttribute('href',adres);
            elem.setAttribute('title',tytul);
            elem.setAttribute('rel','sidebar');
            elem.click();
        }
        else if(document.all)// dla internet explorera
            window.external.AddFavorite(adres, tytul);
    }

    var dodajDoZakladki = $('.sitemapaLink a:eq(1)');
    if(dodajDoZakladki.length) {
        dodajDoZakladki.click(function(){
            dodajzakladke('Domset.pl - Nieruchomości, Wycena, Kredyty', 'http://www.domset.pl/');
            return false;
        });
    }

    /**
     * Auto-uzupełnianie miast/dzielic wg. wybranych kryteriów
     */
    if($('#ogloszenia_filters__csrf_token').length != 0) {
        wojewodztwo = 0;
        //powiat = '';
        //gmina = '';
        miasto = '';
        dzielnica = '';
        //powiatId = 0;
        //gminaId = 0;
        miastoId = 0;
        dzielnicaId = 0;
        trybExt = false;

        listaPowiatow = new Array();
        listaGmin = new Array();
        listaMiast = new Array();
        listaDzielnic = new Array();


        function wyszukajElement(search, tab) {
            for(xf in tab) {
                if(tab[xf] == search) return xf;
            }
            return -1;
        }

        function pobierzMiasta(asyncSt) {
            $.ajax({
                url: '/lokalizacja/miasto.html',
                async: asyncSt,
                cache: false,
                data: 'wojewodztwo='+wojewodztwo,
                type: 'POST',
                dataType: 'json',
                success: function(msg) {

                    data = '[';
                    var pwt = Array();
                    for(z in msg) { // Tworzę listę autocomplete
                        if(msg[z] != '') {  // Element nie jest pusty
                            if(wyszukajElement(msg[z], pwt) == -1) {    // Element nie znajduje się w tablicy
                                data = data + "'" + msg[z] + "',";
                                pwt.push(msg[z]);
                            }
                        }
                    }
                    if(data.length > 2) data = data.substr(0, data.length-1);
                    data = data + ']';
                    listaMiast = msg;
                    if(!asyncSt) {
                        if($("#ogloszenia_filters_miasto").val() != 'Miejscowość') {
                            miasto = $("#ogloszenia_filters_miasto").val();
                            miastoId = wyszukajElement(miasto, listaMiast);
                        }
                    }
                    $("#ogloszenia_filters_miasto").autocomplete( "option", "source", eval(data));
                }
            });
        }

        function pobierzDzielnice(asyncSt) {
            $.ajax({
                url: '/lokalizacja/dzielnica.html',
                async: asyncSt,
                cache: false,
                data: 'wojewodztwo='+wojewodztwo+'&miasto='+miastoId,
                type: 'POST',
                dataType: 'json',
                success: function(msg) {

                    data = '[';
                    var pwt = Array();
                    for(z in msg) { // Tworzę listę autocomplete
                        if(msg[z] != '') {  // Element nie jest pusty
                            if(wyszukajElement(msg[z], pwt) == -1) {    // Element nie znajduje się w tablicy
                                data = data + "'" + msg[z] + "',";
                                pwt.push(msg[z]);
                            }
                        }
                    }
                    if(data.length > 2) data = data.substr(0, data.length-1);
                    data = data + ']';
                    listaDzielnic = msg;
                    if(!asyncSt) {
                        if($("#ogloszenia_filters_dzielnica").val() != 'Dzielnica') {
                            dzielnica = $("#ogloszenia_filters_dzielnica").val();
                            dzielnicaId = wyszukajElement(dzielnica, listaDzielnic);
                        }
                    }
                    $("#ogloszenia_filters_dzielnica").autocomplete( "option", "source", eval(data));

                }
            });
        }

        function clearAllFields(type) {
            if(type & 16) {
                if($("#ogloszenia_filters_miasto").val('') != 'Miejscowość') $("#ogloszenia_filters_miasto").val('Miejscowość');
                miasto = '';
                $("#ogloszenia_filters_miasto").autocomplete( "option", "source", []);
                listaMiast = new Array();
            }
            if(type & 32) {
                if($("#ogloszenia_filters_dzielnica").val('') != 'Dzielnica') $("#ogloszenia_filters_dzielnica").val('Dzielnica');
                dzielnica = '';
                $("#ogloszenia_filters_dzielnica").autocomplete( "option", "source", []);
                listaDzielnic = new Array();
            }
        }

        function ustawLimitElementow() {    // Funckja ustawia tak elementy aby było ich maksymalnie 10 (pytanie czemu tej metody nie ma w UI... ten sposób jest koszmarnie nieoptymalny)
            num = 0;
            $('.ui-autocomplete:visible li').each(function(){
                if(num > 9) $(this).remove();
                num++;
            });
        }
        $("#ogloszenia_filters_miasto").autocomplete({
            source: [],
            minLength: 0,
            delay: 0
        });
        $("#ogloszenia_filters_dzielnica").autocomplete({
            source: [],
            minLength: 0,
            delay: 0
        });

        wojewodztwo = $('#ogloszenia_filters_wojewodztwo_id').val();    // Pobieram zaznaczone województwo
        if(wojewodztwo != 1) {
            pobierzMiasta(false);
            if($('#ogloszenia_filters_miasto').val() != 'Miejscowość') {
                pobierzDzielnice(false);
            }
        }


        $('#ogloszenia_filters_wojewodztwo_id').change(function() {
            if(wojewodztwo != $(this).val()) {
                clearAllFields(60);   // Czyszczę wszystkie pola
                wojewodztwo = $(this).val();
                if($(this).val() != 1) {
                    pobierzMiasta(true);
                }
            }
        });

        $('#ogloszenia_filters_miasto').focusout(function() {
            if($(this).val() == '') {
                $(this).val('Miejscowość');
                clearAllFields(32);
            }
            else if(miasto != $(this).val()) {   // Nastąpiła zmiana wartości
                clearAllFields(32); // Czyszczę wybrane pola
                miasto = $(this).val(); // Przypisuje nową wartość

                miastoId = wyszukajElement(miasto, listaMiast);    // Wyszukuje numer SIMC miasta
                if(miastoId == -1) miastoId = 0;
                if(wojewodztwo != 1) pobierzDzielnice(true);
            }
        });

        miasto = $('#ogloszenia_filters_miasto').val();

        $('#ogloszenia_filters_dzielnica').focusout(function() {
            if($(this).val() == '') {
                $(this).val('Dzielnica');
            }
            else if(dzielnica != $(this).val()) {   // Nastąpiła zmiana wartości
                dzielnica = $(this).val(); // Przypisuje nową wartość

                dzielnicaId = wyszukajElement(dzielnica, listaDzielnic);    // Wyszukuje numer SIMC dzielnicy
                if(dzielnicaId == -1) dzielnicaId = 0;
            }
        });

        dzielnica = $('#ogloszenia_filters_dzielnica').val();

        // Ustawiam otwarcie menu autocomplete przy wyborze pola które ma pustą wartość
        $("#ogloszenia_filters_miasto").focus(function(){
            if($(this).val() == '') $(this).autocomplete("search");
            else if($(this).val() == 'Miejscowość') {
                $(this).val('');
                $(this).autocomplete("search");
            }
        });
        $("#ogloszenia_filters_dzielnica").focus(function(){
            if($(this).val() == '') $(this).autocomplete("search");
            else if($(this).val() == 'Dzielnica' && miasto != '' && miasto != 'Miejscowość') {
                $(this).val('');
                $(this).autocomplete("search");
            } else if($(this).val() == 'Dzielnica') {
                $(this).val('');
            }
        });


        // Ustawiam limity dla elementów
        $( "#ogloszenia_filters_miasto" ).bind( "autocompleteopen", function(event, ui) {
            ustawLimitElementow();
        });
        $( "#ogloszenia_filters_dzielnica" ).bind( "autocompleteopen", function(event, ui) {
            ustawLimitElementow();
        });


        /**
         * Skrypt pokazywanie ogłoszeń na google map
         */

        var mapa = false;
        var cloudStatus = false;

        function addCloud(marker, html) {
            GEvent.addListener(marker, "mouseover", function() {
                if(!cloudStatus) {
                    marker.openInfoWindow(html);
                    cloudStatus = true;
                }
            });
            GEvent.addListener(marker, 'infowindowclose', function() {
                cloudStatus = false;
            });
            GEvent.addListener(marker, 'click', function() {
                marker.openInfoWindow(html);
                cloudStatus = true;
            });

        }

        function mapaStart()
        {
            if(GBrowserIsCompatible())
            {
                cloudStatus = false;
                $('#announcementsBox .announcmetsBar').after('<div style="height: 350px; width: 753px;" id="mapaGmap"></div>');
                mapa = new GMap2(document.getElementById("mapaGmap"));
                $('.gMapPositionVl').each(function(){
                    var pozycjaPs = $(this).find('.positionXY:first');
                    if(pozycjaPs.length > 0) {
                        pozycja = eval(pozycjaPs.text());
                        if(pozycja[0] && pozycja[1]) {
                            pozycja = new GLatLng(pozycja[0],pozycja[1]);
                            marker_ps = new GMarker(pozycja);
                            htmlNode = $(this).find('.htmlInfoGmap:first');
                            if(htmlNode.length > 0) addCloud(marker_ps, htmlNode.html());
                            mapa.addOverlay(marker_ps);
                        }
                    }
                });

                pozycjaSrednia = $('#pozycjaSredniaGMap');
                przyblizenie = $('#gmapPrzyblizenie');
                if(pozycjaSrednia.length > 0) pozycjaSrednia = eval(pozycjaSrednia.text());
                else pozycjaSrednia = false;
                if(przyblizenie.length > 0) przyblizenie = przyblizenie.text();
                else przyblizenie = false;
                
                if(!pozycjaSrednia || !przyblizenie || pozycjaSrednia[0] == 0 || pozycjaSrednia[1] == 0) {
                    mapa.setCenter(new GLatLng(51.919438,19.145136), 6);
                } else {
                    przyblizenie = parseInt(przyblizenie);
                    pozycjaSrednia = new GLatLng(pozycjaSrednia[0],pozycjaSrednia[1]);
                    mapa.setCenter(pozycjaSrednia, przyblizenie);
                }

                // Dodaje kontrolę
                mapa.addControl(new GMapTypeControl());
                mapa.addControl(new GLargeMapControl());
                mapa.addControl(new GScaleControl());
                mapa.enableScrollWheelZoom();  // Zoom za pomocą kółka myszki
            }
        }

        $('.linkToGmap').click(function(){
            if(!mapa) {
                mapaStart();
            } else {
                $('#mapaGmap').remove();
                mapa = false;
            }
            return false;
        });
    }

    /**
     * Skrypt dla strony z opisem ogłoszenia
     */
    if($('#zakladkiJs').length > 0) {

        var wspolrzedne = new Array();
        var adresyWiekszychZdjec = new Array();
        if($('#gMapSpot').length > 0) {
            wspolrzedne = $('#gMapSpot').text();
            wspolrzedne = eval(wspolrzedne);
            $('#gMapSpot').text('');
        }

        // Pre-loading obrazków
        var zdjeciaDoWczytania = $('#zdjeciaPreLoaderJs').text();
        zdjeciaDoWczytania = eval(zdjeciaDoWczytania);
        if(zdjeciaDoWczytania.length > 0) {
            for(i in zdjeciaDoWczytania) {
                adresyWiekszychZdjec.push(zdjeciaDoWczytania[i]);
            }
            for(i in zdjeciaDoWczytania) {
                jQuery("<img>").attr("src", zdjeciaDoWczytania[i]);
            }
        }

        function aktywujZakladkeZeZdjeciami() {
            $('.ramkaInformacyjna').html($('#zdjeciaZakladka').html());
            $('.ramkaInformacyjna a').fancybox({
                'showNavArrows': false,
                'hideOnContentClick': true,
                'showCloseButton': true,
                'cyclic': true,
                'titleShow': false
            });
        }
       
        function aktywujZakladkeZGmap() {
            if($('#gMapSpot').text() == '' && wspolrzedne.length == 2) {
                if(GBrowserIsCompatible())
                {
                    $('.ramkaInformacyjna').html('<div style="width: 405px; height: 315px; margin: 5px;" id="toCreateGmap"></div>');
                    mapa = new GMap2(document.getElementById("toCreateGmap"));
                    pozycja = new GLatLng(wspolrzedne[0],wspolrzedne[1]);
                    marker = new GMarker(pozycja);
                    mapa.addOverlay(marker);
                    mapa.setCenter(pozycja, 13);

                    mapa.addControl(new GMapTypeControl());
                    mapa.addControl(new GLargeMapControl());
                    mapa.addControl(new GScaleControl());
                    mapa.enableScrollWheelZoom();
                }
            } else {
                $('.ramkaInformacyjna').html($('#gMapaZakladka').html());
            }
        }
       
        function aktywujZakladkeZFilmem() {
            $('.ramkaInformacyjna').html($('#filmYTZakladka').html());
        }
       
        function aktywujZakladkeZKalkulatorem() {
            $('.ramkaInformacyjna').html($('#kalkulatorZakladka').html());
        }

        $('#wyswietlZdjeciaZakladka').click(function(){
            aktywujZakladkeZeZdjeciami();
            return false;
        });

        $('#wyswietlFilmZakladka').click(function(){
            aktywujZakladkeZFilmem();
            return false;
        });

        $('#wyswietlMapeZakladka').click(function(){
            aktywujZakladkeZGmap();
            return false;
        });

        $('#wyswietlKalkulatorZakladka').click(function(){
            aktywujZakladkeZKalkulatorem();
            return false;
        });

        $('.galleryImg a').click(function(){  // Kliknięto miniaturkę
            var nazwaKlasy = $(this).find('img').attr('class');
            nazwaKlasy = nazwaKlasy.split('imageMin');
            nazwaKlasy = nazwaKlasy[1]-3;
            nazwaKlasy = parseInt(nazwaKlasy);
            $('#zdjeciaZakladka img').attr('src', adresyWiekszychZdjec[nazwaKlasy]);
            $('#zdjeciaZakladka img').css('border', 'none');
            adresNN = adresyWiekszychZdjec[nazwaKlasy].replace("m/2/", "m/1/");
            $('#zdjeciaZakladka a').attr('href', adresNN);
            aktywujZakladkeZeZdjeciami();
            return false;
        });

        $("a[rel=lightbox]").fancybox({
            'showNavArrows': false,
            'hideOnContentClick': true,
            'showCloseButton': true,
            'cyclic': true,
            'titleShow': false
        });

        var statusOkna = false;
        var statusWyslania = false;
        $('.napiszDoNasLink a').click(function(){
            if(!statusOkna) {
                var htmlWindowWidth = 0;
                var htmlWindowHeight = 0;

                var heightPos = $(window).scrollTop();
                var height = $(window).height();
                var widthPos =  $(window).scrollLeft();
                var width = $(window).width();
                htmlWindowWidth = Math.round((width - $('#formularzKontaktJs').width())/2);
                htmlWindowHeight = Math.round((height-$('#formularzKontaktJs').height())/2);

                $('#formularzKontaktJs').css('top', heightPos+htmlWindowHeight);
                $('#formularzKontaktJs').css('left', widthPos+htmlWindowWidth);

                $('#formularzKontaktJs').show();
                
                statusOkna = true;
                $('#formularzKontaktJs img').click(function(){
                    $('#formularzKontaktJs').hide();
                    statusOkna = false;
                });


                $('#formularzKontaktJs form').submit(function() {
                    $(".formularzeKontaktowe").validate();
                    if($(this).find('.js_error_class:visible').length == 0) {   // Wysyłam formularz
                        if(!statusWyslania) {
                            var adresF = $('#adresFormularzaJs').text();
                            statusWyslania = true;
                            var wartosci = $(this).serialize();
                            $('#formularzKontaktJs form').html('<div style="text-align: center; font-size: 13px; padding: 15px 0; margin: 0; font-weight: bold;">'+$('#gifLoader').html()+'</div>');

                            $.ajax({
                                url: adresF,
                                type: "post",
                                data: wartosci,
                                dataType: 'json',
                                success: function(data) {
                                    if(data != true) {
                                        $('#formularzKontaktJs form').html('<div style="text-align: center; font-size: 13px; padding: 15px 0; margin: 0; font-weight: bold;">'+data+'</div>');
                                    } else {
                                        $('#formularzKontaktJs form').html('<div style="text-align: center; font-size: 13px; padding: 15px 0; margin: 0; font-weight: bold;">Formularz został wysłany.</div>');
                                    }
                                    statusWyslania = false;
                                },
                                error: function(){
                                    statusWyslania = false;
                                    $('#formularzKontaktJs form').html('<div style="text-align: center; font-size: 13px; padding: 15px 0; font-weight: bold; margin: 0;">Wystąpił błąd podczas wysyłania formularza.</div>');
                                }
                            });
                        }
                    }
                    return false;
                });
            }
            return false;
        });
    }
});
