$(document).ready(function() {
    $("#city_id").change(function() {
        $("#city_form").submit();
    });

    $("a[rel~='external']").live("click", function() {
        window.open($(this).attr("href"));
        return false;
    });

    $("a[rel~='new_window']").live("click", function() {
        var options = "toolbar=1, status=1, menubar=1, location=1, scrollbars=1, resizable=1, top=10, left=0, width=800, height=600";
        window.open($(this).attr("href"), '', options);
        return false;
    });

    //Сокращенная ссылка на сайт поизводителя.
    $("#producer_link_cont a").attr({title: 'Открыть в новом окне', target: '_blank'});

    $('#search, #special_item').each(function() {
        $(this).addClass('overlabel');
        var $searchInput = $(this).find('input:not([name^=csrf])');
        var $searchLabel = $(this).find('label');
        if ($searchInput.val()) {
            $searchLabel.hide();
        }
        $searchInput
            .focus(function() {
            $searchLabel.hide();
        })
            .blur(function() {
                if (this.value == '') {
                    $searchLabel.show();
                }
            });
        $searchLabel.click(function() {
            $searchInput.trigger('focus');
        });
    });

    $("#tracker_link").click(function() {
        var barcode = $(this).text();
        $("#show_tracker > #BarCode").val(barcode).parents('#show_tracker').submit();
        return false;
    });

    // Расширения tablesorter
    $.tablesorter.addParser({
        id: "polarisHrefText",
        is: function(s) {
            return /^(https?|ftp|file):\/\/$/.test(s);
        },
        format: function(s) {
            var m = s.match(/>(.*?)</);
            if (m != null) {
                var t = m[1];
                return t.toLowerCase();
            }
            return s;
        },
        type: "text"
    });

    $(".btn, .button").button();
    $("body").delegate(".a-main", "click", function() {
        var catalog_id = $(this).attr("catalog_id");
        $("#catalog-" + catalog_id).slideDown("fast");
        $(this).toggleClass("a-main a-opened");
        $("span.ui-icon-carat-1-e", this).toggleClass("ui-icon-carat-1-s ui-icon-carat-1-e");
        return false;
    });
    $("body").delegate(".a-opened", "click", function() {
        /*if ($(this).hasClass("selected")){
         return false;
         }*/
        var catalog_id = $(this).attr("catalog_id");
        $("#catalog-" + catalog_id).slideUp("fast");
        $(this).toggleClass("a-main a-opened");
        $("span.ui-icon-carat-1-s", this).toggleClass("ui-icon-carat-1-s ui-icon-carat-1-e");
        return false;
    });

    $(".add_link, .bsk-link").button();
    $(".a-city-slct").button({ icons: { secondary: "ui-icon-carat-1-s" } });
    $(".a-main").button({ icons: { secondary: "ui-icon-carat-1-e" } });
    $(".a-sgl").button({ icons: { secondary: "" } });
    $(".a-opened").button({ icons: { secondary: "ui-icon-carat-1-s" } });
    $(".rmv-btn").button({icons: {primary: "ui-icon-close"}, text: false })

    $("#bsk_digest_holder").waypoint(function(event, direction) {
        $(this).toggleClass("sticky", direction === "down");
        event.stopPropagation();
    });

//    "Добавить в корзину"
//    .button пришлось включить в catalog/basket_div.html
    $("body").delegate(".add_link", "click", function() {
        //$.getJSON($(this).attr('href'), $.replaceBasket);
        var mark = $(this).closest(".item-cont").attr("id");
        $.post($(this).attr('href'), {"mark": mark}, $.replaceBasket, "json");
        //$(this).next('span').html('уже&nbsp;в&nbsp;корзине');
        return false;
    });
    (function($) {
        $.replaceBasket = function(json) {
            if (0 < json.size) {
                if ($("#bsk_digest").length < 1) {
                    $("#bsk_digest_holder").load("/orders/basket_teaser/");
                }
                if ($("#bsk_top_cont").length < 1) {
                    $(".bsk-top").append('<span id="bsk_top_cont">(<span id="bsk_top_digit">' + json.size + '</span>)</span>');
                }
                $("#basket_portlet_content").html('Товаров:&nbsp;' + json.size + ',&nbsp;сумма:&nbsp;' + json.total + '&nbsp;р.');
                $("#bsk_top_digit").html(json.size);
            }
        }
    })(jQuery);

    $(".avail-b-info").delegate(".help-icon", "mouseover", function(event) {
        var self = $(this),
            hlp_text = $("#avail_outer_hlp");
        self.qtip({
            overwrite: false,
            content: {
                text: hlp_text, // Use the submenu as the qTip content
                title: {
                    text: '&nbsp;',
                    button: false
                }
            },
            position: {
                viewport: $(window),
                adjust: { method: 'shift flip' },
                my: 'bottom right',
                at: 'left top'
            },
            show: {
                delay: 60,
                event: event.type + ' click', // Make sure to sue the same event as above
                ready: true, // Make sure it shows on first mouseover
                solo: false
            },
            hide: {
                delay: 300,
                event: 'unfocus mouseleave',
                fixed: true
            },
            style: {
                width: 350,
                tip: {
                    border: 1,
                    width: 10,
                    height: 15
                },
                classes: 'ui-tooltip-hlp ui-tooltip-light ui-tooltip-shadow'
            },
            events: {
                toggle: function(event, api) {
                    api.elements.target.toggleClass('active', event.type === 'tooltipshow');
                }
            }
        }).click(function(event) {
                event.preventDefault();
            });
    });

    // TODO: Переделать в случае постраничного вывода товаров: (:checked").size() выведет не всё
    $("body").delegate(".compare-add-inp", "change", function() {
        var elem = $(this);
        var checks = $(".compare-add:has(.compare-add-inp:checked)");
        var link = elem.closest(".compare-add").next(".compare-link-cont");
        if (!elem.is(":checked")) {
            if (checks.size() < 2) {
                checks.each(function(){
                    $(this).next(".compare-link-cont").addClass("v-hidden");
                });
            }
            link.addClass("v-hidden");
        } else {
            if (checks.size() > 1) {
                checks.each(function(){
                    $(this).next(".compare-link-cont").removeClass("v-hidden");
                });
            }
        }
        $.getJSON(elem.attr('href'), function(json) {
            elem.attr('href', json.compare_url);
//            var link = elem.closest(".compare-add").next(".compare-link-cont");
//            json.remove ? link.addClass("v-hidden") : (json.count > 1 ? link.removeClass("v-hidden") : false);
//            draw_compare_block();
        });
//        return false;
    });
});
