$(document).ready(function() {
    // obsługa "submita" w górnej wyszukiwarce
    $('.invisibleSubmit').click(function() {
        $(this).closest('form').submit();
    });

    /**
     * @todo przepisać na plugin
     */
    $('#searchForm').submit(function() {
       var query = $(this).attr('action');

        // jeżeli slash jest ostatnim znakiem w query
        if (query.lastIndexOf('/') == (query.length - 1)) {
            // usuwamy slasha
            query = query.substr(0, query.length - 1);
        }

        $('#searchForm input[type="text"]').each(function() {
            var name = $(this).attr('name');
            var val  = $(this).val();
            if ('' != val) {
                query = query + '/' + name + '/' + Base64.encode(val);
            }
        });

        document.location = query;

        return false;
    });

    $('#itemsPerPage').change(function() {
       var query = String(document.location);

        // jeżeli slash jest ostatnim znakiem w query
        if (query.lastIndexOf('/') == (query.length - 1)) {
            // usuwamy slasha
            query = query.substr(0, query.length - 1);
        }

        var name = $(this).attr('name');
        var val  = $(this).val();
        if ('' != val) {
            // usunięcie z linku fragmentu odpowiedzialnego za skoki po anchorach
            query = query.replace(new RegExp('#[a-zA-Z0-9_]+'), '');

            var pattern = new RegExp(name + '/[a-z0-9_]+');
            if (pattern.test(query)) {
                query = query.replace(pattern, name + '/' + val);
            } else {
                query = query + '/' + name + '/' + val;
            }
        }

        document.location = query;

        return false;
    });

    $('#sortOrder').change(function() {
       var query = String(document.location);

        // jeżeli slash jest ostatnim znakiem w query
        if (query.lastIndexOf('/') == (query.length - 1)) {
            // usuwamy slasha
            query = query.substr(0, query.length - 1);
        }

        var name = $(this).attr('name');
        var val  = $(this).val();
        if ('' != val) {
            // usunięcie z linku fragmentu odpowiedzialnego za skoki po anchorach
            query = query.replace(new RegExp('#[a-zA-Z0-9_]+'), '');
            
            var pattern = new RegExp(name + '/[a-z0-9_]+');
            if (pattern.test(query)) {
                query = query.replace(pattern, name + '/' + val);
            } else {
                query = query + '/' + name + '/' + val;
            }
        }

        document.location = query;

        return false;
    });

    $('#sortBy').change(function() {
       var query = String(document.location);

        // jeżeli slash jest ostatnim znakiem w query
        if (query.lastIndexOf('/') == (query.length - 1)) {
            // usuwamy slasha
            query = query.substr(0, query.length - 1);
        }

        var name = $(this).attr('name');
        var val  = $(this).val();
        if ('' != val) {
            // usunięcie z linku fragmentu odpowiedzialnego za skoki po anchorach
            query = query.replace(new RegExp('#[a-zA-Z0-9_]+'), '');
            
            var pattern = new RegExp(name + '/[a-z0-9_]+');
            if (pattern.test(query)) {
                query = query.replace(pattern, name + '/' + val);
            } else {
                query = query + '/' + name + '/' + val;
            }
        }

        document.location = query;

        return false;
    });

    $('input[type="text"]').clearOnFocus();
    $('textarea#message').clearOnFocus({
        onblur: function (el) {
            $(el).addClass('blured');
        },
        onfocus: function(el) {
            $(el).removeClass('blured');
        }
    });

    /**
     * Obsługa boxów na stronie głównej.
     */
    $('.entryBox h4').click(function() {
        if ($(this).hasClass('expand')) {
            $(this).next('ul').slideUp(200);
            $(this).removeClass('expand');
        } else {
            $(this).next('ul').slideDown(200);
            $(this).addClass('expand');
        }
    });
    /** eot */

    /**
     * Obsługa linku 'Kliknij aby powiększyć' w widoku szczegółowym.
     */
    $('.linkZoom').click(function() {
        jQuery('.iconThumb').trigger('click');
        return false;
    });
    /** eot */

    /**
     * Obsługa formularza filtrującego.
     */
    $('#filterWrapper form').submit(function() {
        var query = $(this).attr('action');

        // jeżeli slash jest ostatnim znakiem w query
        if (query.lastIndexOf('/') == (query.length - 1)) {
            // usuwamy slasha
            query = query.substr(0, query.length - 1);
        }

        $('#filterWrapper form dl dd select').each(function() {
            var name = $(this).attr('name');
            var val  = $(this).val();
            if ('' != val) {
                query = query + '/' + name + '/' + val;
            }
        });
        
        document.location = query;

        return false;
    });
    /** eot */

    Cufon.replace('#mainMenu ul li a');
    Cufon.replace('#welcomeBox h2, #welcomeBox h3');
    Cufon.replace('.entryBox h2');
    Cufon.replace('.itemWrapper h1');
    Cufon.replace('.itemWrapper dd');
    Cufon.replace('#detailWrapper h1');
    Cufon.replace('#detailContent dd');
    Cufon.replace('#detailContent h2');
    Cufon.replace('#contactForm h3');
    Cufon.replace('#recommendForm h3');
    Cufon.replace('#filterWrapper form dt');
    Cufon.replace('#list .noResults');
});

