/* 
 * Author: Jakub Míšek
 * info@jakubmisek.cz
 */

$(document).ready(function() {
    
    $('.scroll-top').live('click', function() {
        $('html, body').animate({
            scrollTop: 0
        }, 100);    
    });
    
    $("#slider").easySlider({
        auto: true,
        continuous: true,
        numeric: true,
        numericId: 'navigation',
        pause: 3000
    });    
    
    // po načtení stránky
    $(function () {
        // odeslání na formulářích
        $("form.ajaxsubmit, .ajaxsubmit form").live('submit', function (e) {

            $(this).ajaxSubmit(e);
            return false;
        });

        // odeslání pomocí tlačítek
        $("form.ajaxsubmit :submit, .ajaxsubmit form :submit").live('click', function (e) {

            $(this).ajaxSubmit(e);
            return false;
        });
    });
    
        
    // save AJAX state .ajaxhash
    var processAjax = true;
    var domain = 'http://' + document.location.host;
    var clicked = false;

    $("a.ajaxhash").live("click", function (event) {
        url = this.href.substring(domain.length, this.href.length);
        $.bbq.pushState('#!' + url);
        processAjax = false;
        event.preventDefault();
        clicked = true;
        $.get(this.href);

        // zobrazení spinneru a nastavení jeho pozice
        $("#ajax-spinner").show().css({
            position: "absolute",
            left: event.pageX + 20,
            top: event.pageY + 40
        });

    });

    // reload page from ajax state
    $(window).bind("hashchange", function(e) {
        if (!clicked) {
            loaded = false;
            url = '';
            for(key in $.bbq.getState()) {

                if ($.bbq.getState()[key] == '') {
                    url = key.substring(1, key.length);
                } else if (url == '') {
                    url = key.substring(1, key.length) + '=' + $.bbq.getState()[key];
                } else {
                    url = url + '&' + key.substring(0, key.length) + '=' + $.bbq.getState()[key];
                }
            }

            if (!processAjax || url != '') {
                if (url == undefined) {
                    $.get(location.href);
                } else {
                    $.get(domain + url);
                }
            }
            processAjax = false;
            loaded = true;

            if (!processAjax && !loaded) $.get(location.href);
        }
        clicked = false;

    });
    // load ajax state
    $(window).trigger("hashchange");

    $('a').filter(function() {
        return this.hostname && this.hostname !== location.hostname;
    }).addClass('external');

    $('.search-input').bind('click', function() {
        if ($(this).val() == 'Zadejte hledaný výraz') {
            $(this).val('');
        } 
        return false;
    });
    
    //odstranění popisku inputu
    $('.search-input').bind('blur', function() {
        if ($(this).val() == '') {
            $(this).val('Zadejte hledaný výraz');
        }
        return false;
    });

    $(function () {
        // vhodně nastylovaný div vložím po načtení stránky
        $('<div id="ajax-spinner"></div>').appendTo("body").ajaxStop(function () {
            // a při události ajaxStop spinner schovám a nastavím mu původní pozici
            $(this).hide().css({
                position: "fixed",
                left: "50%",
                top: "50%"
            });
        }).hide();
    });

    // zajaxovatění odkazů
    $("a.ajax").live("click", function (event) {
        event.preventDefault();

        $.get(this.href);

        // zobrazení spinneru a nastavení jeho pozice
        $("#ajax-spinner").show().css({
            position: "absolute",
            left: event.pageX + 20,
            top: event.pageY + 40
        });
    });
    
    // open and close producers filters
    $('#filter-producer').toggle(function() {
        $('#filter-producer-form').removeAttr('class');
        $('#filter-producer-form').show();
        return false;
    }, function() {
        $('#filter-producer-form').removeAttr('class');
        $('#filter-producer-form').hide();
        return false;
    });
    
    // close filtering of producers
    $('#filter-producer-close').live('click', function() {
        $('#filter-producer').click();
        return false;
    });
    
    // close "product in basket" lightbox window
    $('#basket-insert-close').live('click', function() {
        $('#basket-insert-bg').hide();
        $('#basket-insert-cont').hide();
        return false;
    });
    
    // change variant of product
    $('#frmproductForm-variant').live('click', function(e) {
        id = $(this).val();
        $("#availability").html(variants[id]);
        return false;
        
    })
    
    // product link
    $('#print').live('click', function() {
        window.print();
        return false;
    });
    
    // close lightbox window - product question
    $('#send-question-close').live('click', function() {
        $('#grey-bg').hide();
        $('#send-question-cont').hide();
        return false;
    });

    // open lightbox window - product question
    $('#link-question').live('click', function() {
        $('#grey-bg').show();
        $('#send-question-cont').show();
        return false;
    });
    
    // open lightbox window - send product
    $('#link-product').live('click', function() {
        $('#grey-bg').show();
        $('#send-product-cont').show();
        return false;
    });
    
    // close lightbox window - send product
    $('#send-product-close').live('click', function() {
        $('#grey-bg').hide();
        $('#send-product-cont').hide();
        return false;
    });
    
    // opening and closing delivery and company block @ registration page
    $('#frmregisterForm-company_checkbox, #frmeditForm-company_checkbox').click(function() {
        if ($(this).attr('checked') == 'checked') {
            $('#company-block').slideDown('middle').show();
        } else {
            $('#company-block').slideUp('middle').show();
        }
    });    

    $('#frmregisterForm-delivery, #frmeditForm-delivery').click(function() {
        if ($(this).attr('checked') == 'checked') {
            $('#delivery-block').slideDown('middle').show();
        } else {
            $('#delivery-block').slideUp('middle').show();
        }
    });  
    
    // submite form when changing delivery and payment type
    $('#frmdeliveryForm-delivery-0, #frmdeliveryForm-delivery-1, #frmdeliveryForm-delivery-2, #frmdeliveryForm-payment-0, #frmdeliveryForm-payment-1, #frmdeliveryForm-payment-2').live('click', function(e) {
        $('#frmdeliveryForm-ajaxsubmit').val('1');
        //$(this).parent().parent().submit();
        $(this).parent().parent().ajaxSubmit(e);
        $('#frmdeliveryForm-ajaxsubmit').val('0');
    });
    
    // link in new window
    $('a.blank').live('click', function() {
        window.open($(this).attr('href'),'mywindow');
        return false;
    })
    
    
    
    // open edit customer blocks if they are filled in
    if ($('#frmeditForm-company_checkbox').attr('checked') == 'checked') {
        $('#company-block').css('display', 'block');
    }

    if ($('#frmeditForm-delivery').attr('checked') == 'checked') {
        $('#delivery-block').css('display', 'block');
    }
    
    $('#desc-top-desc .discusion').live('click', function() {
        $('#desc-top-desc').css('display', 'none');
        $('#desc-top-disc').css('display', 'block');
        $('#desc-content-disc').css('display', 'block');
        $('#desc-content-desc').css('display', 'none');
        return false;
    });
    
    $('#desc-top-disc .discusion').live('click', function() {
        $('#desc-top-disc').css('display', 'none');
        $('#desc-top-desc').css('display', 'block');
        $('#desc-content-desc').css('display', 'block');
        $('#desc-content-disc').css('display', 'none');
        return false;
    });
    
    $('#desc-content-disc form').live('submit', function() {
        $('#frmdiscussionForm-web').val('1');
    });
    
    $('#frmfilterForm-order, #frmfilterForm-direction').live('change', function() {
        $('#frmfilterForm-submit').val('0');
        $('#frm-filterForm').submit();
    });
    
    $('#frmfilterForm-order1, #frmfilterForm-direction1').live('change', function() {
        $('#frmfilterForm-submit').val('1');
        $('#frm-filterForm').submit();
    });
    
    
    $('.producer input').live('change', function() {
        $('#frm-filterForm').submit();
    });
    
});
