//Libs
(function (a) {
    jQuery.browser.mobile = /android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))
})(navigator.userAgent || navigator.vendor || window.opera);
/* jquery.tools 1.1.2 - The missing UI library for the Web [tools.scrollable-1.1.2] */
(function (b) {
    b.tools = b.tools || {};
    b.tools.scrollable = {version:"1.1.2", conf:{size:5, vertical:false, speed:400, keyboard:true, keyboardSteps:null, disabledClass:"disabled", hoverClass:null, clickable:true, activeClass:"active", easing:"swing", loop:false, items:".items", item:null, prev:".prev", next:".next", prevPage:".prevPage", nextPage:".nextPage", api:false}};
    var c;

    function a(o, m) {
        var r = this, p = b(this), d = !m.vertical, e = o.children(), k = 0, i;
        if (!c) {
            c = r
        }
        b.each(m, function (s, t) {
            if (b.isFunction(t)) {
                p.bind(s, t)
            }
        });
        if (e.length > 1) {
            e = b(m.items, o)
        }
        function l(t) {
            var s = b(t);
            return m.globalNav ? s : o.parent().find(t)
        }

        o.data("finder", l);
        var f = l(m.prev), h = l(m.next), g = l(m.prevPage), n = l(m.nextPage);
        b.extend(r, {getIndex:function () {
            return k
        }, getClickIndex:function () {
            var s = r.getItems();
            return s.index(s.filter("." + m.activeClass))
        }, getConf:function () {
            return m
        }, getSize:function () {
            return r.getItems().size()
        }, getPageAmount:function () {
            return Math.ceil(this.getSize() / m.size)
        }, getPageIndex:function () {
            return Math.ceil(k / m.size)
        }, getNaviButtons:function () {
            return f.add(h).add(g).add(n)
        }, getRoot:function () {
            return o
        }, getItemWrap:function () {
            return e
        }, getItems:function () {
            return e.children(m.item)
        }, getVisibleItems:function () {
            return r.getItems().slice(k, k + m.size)
        }, seekTo:function (s, w, t) {
            if (s < 0) {
                s = 0
            }
            if (k === s) {
                return r
            }
            if (b.isFunction(w)) {
                t = w
            }
            if (s > r.getSize() - m.size) {
                return m.loop ? r.begin() : this.end()
            }
            var u = r.getItems().eq(s);
            if (!u.length) {
                return r
            }
            var v = b.Event("onBeforeSeek");
            p.trigger(v, [s]);
            if (v.isDefaultPrevented()) {
                return r
            }
            if (w === undefined || b.isFunction(w)) {
                w = m.speed
            }
            function x() {
                if (t) {
                    t.call(r, s)
                }
                p.trigger("onSeek", [s])
            }

            if (d) {
                e.animate({left:-u.position().left}, w, m.easing, x)
            } else {
                e.animate({top:-u.position().top}, w, m.easing, x)
            }
            c = r;
            k = s;
            v = b.Event("onStart");
            p.trigger(v, [s]);
            if (v.isDefaultPrevented()) {
                return r
            }
            f.add(g).toggleClass(m.disabledClass, s === 0);
            h.add(n).toggleClass(m.disabledClass, s >= r.getSize() - m.size);
            return r
        }, move:function (u, t, s) {
            i = u > 0;
            return this.seekTo(k + u, t, s)
        }, next:function (t, s) {
            return this.move(1, t, s)
        }, prev:function (t, s) {
            return this.move(-1, t, s)
        }, movePage:function (w, v, u) {
            i = w > 0;
            var s = m.size * w;
            var t = k % m.size;
            if (t > 0) {
                s += (w > 0 ? -t : m.size - t)
            }
            return this.move(s, v, u)
        }, prevPage:function (t, s) {
            return this.movePage(-1, t, s)
        }, nextPage:function (t, s) {
            return this.movePage(1, t, s)
        }, setPage:function (t, u, s) {
            return this.seekTo(t * m.size, u, s)
        }, begin:function (t, s) {
            i = false;
            return this.seekTo(0, t, s)
        }, end:function (t, s) {
            i = true;
            var u = this.getSize() - m.size;
            return u > 0 ? this.seekTo(u, t, s) : r
        }, reload:function () {
            p.trigger("onReload");
            return r
        }, focus:function () {
            c = r;
            return r
        }, click:function (u) {
            var v = r.getItems().eq(u), s = m.activeClass, t = m.size;
            if (u < 0 || u >= r.getSize()) {
                return r
            }
            if (t == 1) {
                if (m.loop) {
                    return r.next()
                }
                if (u === 0 || u == r.getSize() - 1) {
                    i = (i === undefined) ? true : !i
                }
                return i === false ? r.prev() : r.next()
            }
            if (t == 2) {
                if (u == k) {
                    u--
                }
                r.getItems().removeClass(s);
                v.addClass(s);
                return r.seekTo(u, time, fn)
            }
            if (!v.hasClass(s)) {
                r.getItems().removeClass(s);
                v.addClass(s);
                var x = Math.floor(t / 2);
                var w = u - x;
                if (w > r.getSize() - t) {
                    w = r.getSize() - t
                }
                if (w !== u) {
                    return r.seekTo(w)
                }
            }
            return r
        }, bind:function (s, t) {
            p.bind(s, t);
            return r
        }, unbind:function (s) {
            p.unbind(s);
            return r
        }});
        b.each("onBeforeSeek,onStart,onSeek,onReload".split(","), function (s, t) {
            r[t] = function (u) {
                return r.bind(t, u)
            }
        });
        f.addClass(m.disabledClass).click(function () {
            r.prev()
        });
        h.click(function () {
            r.next()
        });
        n.click(function () {
            r.nextPage()
        });
        if (r.getSize() < m.size) {
            h.add(n).addClass(m.disabledClass)
        }
        g.addClass(m.disabledClass).click(function () {
            r.prevPage()
        });
        var j = m.hoverClass, q = "keydown." + Math.random().toString().substring(10);
        r.onReload(function () {
            if (j) {
                r.getItems().hover(function () {
                    b(this).addClass(j)
                }, function () {
                    b(this).removeClass(j)
                })
            }
            if (m.clickable) {
                r.getItems().each(function (s) {
                    b(this).unbind("click.scrollable").bind("click.scrollable", function (t) {
                        if (b(t.target).is("a")) {
                            return
                        }
                        return r.click(s)
                    })
                })
            }
            if (m.keyboard) {
                b(document).unbind(q).bind(q, function (t) {
                    if (t.altKey || t.ctrlKey) {
                        return
                    }
                    if (m.keyboard != "static" && c != r) {
                        return
                    }
                    var u = m.keyboardSteps;
                    if (d && (t.keyCode == 37 || t.keyCode == 39)) {
                        r.move(t.keyCode == 37 ? -u : u);
                        return t.preventDefault()
                    }
                    if (!d && (t.keyCode == 38 || t.keyCode == 40)) {
                        r.move(t.keyCode == 38 ? -u : u);
                        return t.preventDefault()
                    }
                    return true
                })
            } else {
                b(document).unbind(q)
            }
        });
        r.reload()
    }

    b.fn.scrollable = function (d) {
        var e = this.eq(typeof d == "number" ? d : 0).data("scrollable");
        if (e) {
            return e
        }
        var f = b.extend({}, b.tools.scrollable.conf);
        d = b.extend(f, d);
        d.keyboardSteps = d.keyboardSteps || d.size;
        this.each(function () {
            e = new a(b(this), d);
            b(this).data("scrollable", e)
        });
        return d.api ? e : this
    }
})(jQuery);
/* jQuery TOOLS plugin :: scrollable.circular 0.5.1  */
(function (b) {
    var a = b.tools.scrollable;
    a.plugins = a.plugins || {};
    a.plugins.circular = {version:"0.5.1", conf:{api:false, clonedClass:"cloned"}};
    b.fn.circular = function (e) {
        var d = b.extend({}, a.plugins.circular.conf), c;
        b.extend(d, e);
        this.each(function () {
            var i = b(this).scrollable(), n = i.getItems(), k = i.getConf(), f = i.getItemWrap(), j = 0;
            if (i) {
                c = i
            }
            if (n.length < k.size) {
                return false
            }
            n.slice(0, k.size).each(function (o) {
                b(this).clone().appendTo(f).click(
                        function () {
                            i.click(n.length + o)
                        }).addClass(d.clonedClass)
            });
            var l = b.makeArray(n.slice(-k.size)).reverse();
            b(l).each(function (o) {
                b(this).clone().prependTo(f).click(
                        function () {
                            i.click(-o - 1)
                        }).addClass(d.clonedClass)
            });
            var m = f.children(k.item);
            var h = k.hoverClass;
            if (h) {
                m.hover(function () {
                    b(this).addClass(h)
                }, function () {
                    b(this).removeClass(h)
                })
            }
            function g(o) {
                var p = m.eq(o);
                if (k.vertical) {
                    f.css({top:-p.position().top})
                } else {
                    f.css({left:-p.position().left})
                }
            }

            g(k.size);
            b.extend(i, {move:function (s, r, p, q) {
                var u = j + s + k.size;
                var t = u > i.getSize() - k.size;
                if (u <= 0 || t) {
                    var o = j + k.size + (t ? -n.length : n.length);
                    g(o);
                    u = o + s
                }
                if (q) {
                    m.removeClass(k.activeClass).eq(u + Math.floor(k.size / 2)).addClass(k.activeClass)
                }
                if (u === j + k.size) {
                    return self
                }
                return i.seekTo(u, r, p)
            }, begin:function (p, o) {
                return this.seekTo(k.size, p, o)
            }, end:function (p, o) {
                return this.seekTo(n.length, p, o)
            }, click:function (p, r, q) {
                if (!k.clickable) {
                    return self
                }
                if (k.size == 1) {
                    return this.next()
                }
                var s = p - j, o = k.activeClass;
                s -= Math.floor(k.size / 2);
                return this.move(s, r, q, true)
            }, getIndex:function () {
                return j
            }, setPage:function (p, q, o) {
                return this.seekTo(p * k.size + k.size, q, o)
            }, getPageAmount:function () {
                return Math.ceil(n.length / k.size)
            }, getPageIndex:function () {
                if (j < 0) {
                    return this.getPageAmount() - 1
                }
                if (j >= n.length) {
                    return 0
                }
                var o = (j + k.size) / k.size - 1;
                return o
            }, getVisibleItems:function () {
                var o = j + k.size;
                return m.slice(o, o + k.size)
            }});
            i.onStart(function (p, o) {
                j = o - k.size;
                return false
            });
            i.getNaviButtons().removeClass(k.disabledClass)
        });
        return d.api ? c : this
    }
})(jQuery);
/* jQuery TOOLS plugin :: scrollable.autoscroll 1.0.1 */
(function (b) {
    var a = b.tools.scrollable;
    a.plugins = a.plugins || {};
    a.plugins.autoscroll = {version:"1.0.1", conf:{autoplay:true, interval:10000, autopause:true, steps:1, api:false}};
    b.fn.autoscroll = function (d) {
        if (typeof d == "number") {
            d = {interval:d}
        }
        var e = b.extend({}, a.plugins.autoscroll.conf), c;
        b.extend(e, d);
        this.each(function () {
            var g = b(this).scrollable();
            if (g) {
                c = g
            }
            var i, f, h = true;
            g.play = function () {
                if (i) {
                    return
                }
                h = false;
                i = setInterval(function () {
                    g.move(e.steps)
                }, e.interval);
                g.move(e.steps)
            };
            g.pause = function () {
                i = clearInterval(i)
            };
            g.stop = function () {
                g.pause();
                h = true
            };
            if (e.autopause) {
                g.getRoot().add(g.getNaviButtons()).hover(function () {
                    g.pause();
                    clearInterval(f)
                }, function () {
                    if (!h) {
                        f = setTimeout(g.play, e.interval)
                    }
                })
            }
            if (e.autoplay) {
                setTimeout(g.play, e.interval)
            }
        });
        return e.api ? c : this
    }
})(jQuery);
/* Equal Heights Plugin (c) Rob Glazebrook (cssnewbie.com) */
(function ($) {
    $.fn.equalHeights = function (minHeight, maxHeight) {
        tallest = (minHeight) ? minHeight : 0;
        this.each(function () {
            if ($(this).height() > tallest) {
                tallest = $(this).height();
            }
        });
        if ((maxHeight) && tallest > maxHeight) tallest = maxHeight;
        return this.each(function () {
            $(this).height(tallest).css("overflow", "auto");
        });
    }
})(jQuery);

// Functions

// равнялка высоты списка лотов
var checkHeight = function () {
    $('.vitrina-bit .descr').equalHeights();
}

var checkWidth = function () {
    $('.vitrina-bit').css('width', '50%');

    if ($('.vitrina').width() > 850) {
        $('.vitrina-bit').css('width', '33%');
    }
    else if ($('.vitrina').width() > 1120) {
        $('.vitrina-bit').css('width', '25%');
    }
    else if ($('.vitrina').width() > 1410) {
        $('.vitrina-bit').css('width', '20%');
    }
    else if ($('.vitrina').width() > 1690) {
        $('.vitrina-bit').css('width', '16%');
    }
}

var checkWidthHeight = function () {
    checkWidth();
    checkHeight();
}

function free_delivery() {
    $('.free-delivery-ekb').hide();

    if ($('body').width() > 1200) {
        $('.free-delivery-ekb').show();
    }
}
// реализация навигации по ajax-запросам
var loadAjaxContent = function (href) {
    var origContent = "";
    var workArea = $('div #product_list');
    if (href != "") {

        if (origContent == "") {
            origContent = workArea.html();
        }
        workArea.load(href);
    } else if (origContent != "") {
        workArea.html(origContent);
    }
}
// индикатор ожидания для ajax-загрузок
var initAjaxLoader = function (object) {
    var popupX = Math.round(($(window).width() - object.width()) / 2);
    var popupY = $(document).scrollTop() + Math.round($(window).height() / 2) - Math.round(object.height() / 2);

    object.css({
        top:popupY + 'px',
        left:popupX + 'px',
        position:'absolute'
    });
}

var showAjaxLoader = function () {
    var object = $('#loading');

    initAjaxLoader(object);
    object.fadeIn('slow');
}

var hideAjaxLoader = function () {
    var object = $('#loading');

    initAjaxLoader(object);
    object.fadeOut('slow');
}


// Работа с корзиной
function add_to_cart(elem) {
    var div = $('#div-update-cart').val();
    div = (div == undefined) ? 'cart-preview' : div;
    showAjaxLoader();
    $.ajax({
        type:'POST',
        dataType:'html',
        url:elem.attr('href'),
        success:function (data, textStatus) {
            $('div#' + div).html(data);
        }
    });
    hideAjaxLoader();
    elem.parent(".cart").hide().prev(".cart-notice").show().next().next('#status').hide();
    return false;
}

function cart_del(elem) {
    var div = $('#div-update-cart').val();
    div = (div == undefined) ? 'cart-preview' : div;
    var name = elem.attr('rel');
    var msg = 'Вы действительно хотите удалить ' + name + '?';
    if (confirm(msg)) {
        showAjaxLoader();
        $.ajax({
            type:'POST',
            dataType:'html',
            url:elem.attr('href'),
            success:function (data, textStatus) {
                $('div#' + div).html(data);
            }
        });
        hideAjaxLoader();
        elem.parent(".cart").show().prev(".cart-notice").hide();
    }
    return false;
}
/**
 * Un used???
 */
//var getHttpHost = function() {
//    var url = window.location.href;
//    url = url.replace('http://', '');
//
//    var urlExplode = url.split('/');
//
//    return 'http://' + urlExplode[0];
//}
//var fixCart = function(data) {
//    if ('undefined' != typeof data) {
//        var id = parseInt(data.slice(26, 32));
//
//        if (id > 0) {
//            $('tr#row-' + id).fadeOut('slow', function() {
//                var totalSum = 0;
//                var sum = 0;
//
//                $(this).siblings().slice(1, -1).each(function() {
//                    var value = $(this).find('.sum').text();
//                    if (value) {
//                        sum = parseFloat($(this).find('.sum').text());
//                        totalSum += sum;
//                    }
//                });
//
//                if (totalSum) {
//                    $('#total .total-value').text(totalSum);
//
//                    $(this).remove();
//                }
//                else {
//                    $('#total .total-value').text('Корзина пуста');
//                    alert('Корзина пуста. Вы можете продолжить выбирать товары');
//                    window.location.href = '/catalogue';
//                }
//            });
//        }
//    }
//}
//var clearForm = function(form) {
//    if (form) {
//        form.find(':input')
//                .not(':button, :submit, :reset, :hidden')
//                .val('')
//                .removeAttr('checked')
//                .removeAttr('selected');
//    }
//};


// перерасчет значений корзины, обновление
// данная функция запускается по таймеру
var updateCart = function () {
    if (updaterCart_id == 0) {
        return false;
    }
    var url = $('#url-update-cart').val(); // ссылка для обновления корзины
    var div = $('#div-update-cart').val(); // id div-а, в который нужно записать результат
    var productId = parseInt(updaterCart_id.attr('id'));
    var quantity = parseInt(updaterCart_id.val());
    var preview = 0;
    url = url.split('?');
    var add = (url[1] != undefined) ? '?' + url[1] : '';
    $.ajax({
        type:'POST',
        url:url[0] + '/' + productId + '/' + quantity + add,
        beforeSend:function () {
            showAjaxLoader();
        },
        success:function (data) {
            if ('undefined' != typeof data) {

                $('div#' + div).html(data);

            }
            hideAjaxLoader();
        }
    });
}

// установка таймера для запуска обновления корзины
function bindUpdaterCart(element) {
    if (updaterCartTimer) {
        clearTimeout(updaterCartTimer);
    }

    updaterCart_id = element;
    updaterCartTimer = setTimeout(updateCart, 1000);
}
var checkForm = function (form) {
    var result = true;

    if (form) {
        form = $(form);
        form.find('.error').hide();

        var formName = form.find('#form_name').val();
        var fieldObject = {};
        var fieldName = '';
        var fields = ['name', 'email', 'text'];

        for (index in fields) {
            fieldName = formName + '_' + fields[index];
            fieldObject = $('#' + fieldName);

            if (fieldObject.length > 0 && !fieldObject.val()) {
                fieldObject.prev('.error').fadeIn('slow');
                result = false;
            }
        }

        return result;
    }
};
function array_flip(trans) {
    var key, tmp_ar = {};
    for (key in trans) {
        if (!trans.hasOwnProperty(key)) {
            continue;
        }
        tmp_ar[trans[key]] = key;
    }
    return tmp_ar;
}
function array_merge() {
    var args = Array.prototype.slice.call(arguments),
            argl = args.length,
            arg,
            retObj = {},
            k = '',
            argil = 0,
            j = 0,
            i = 0,
            ct = 0,
            toStr = Object.prototype.toString,
            retArr = true;

    for (i = 0; i < argl; i++) {
        if (toStr.call(args[i]) !== '[object Array]') {
            retArr = false;
            break;
        }
    }

    if (retArr) {
        retArr = [];
        for (i = 0; i < argl; i++) {
            retArr = retArr.concat(args[i]);
        }
        return retArr;
    }

    for (i = 0, ct = 0; i < argl; i++) {
        arg = args[i];
        if (toStr.call(arg) === '[object Array]') {
            for (j = 0, argil = arg.length; j < argil; j++) {
                retObj[ct++] = arg[j];
            }
        }
        else {
            for (k in arg) {
                if (arg.hasOwnProperty(k)) {
                    if (parseInt(k, 10) + '' === k) {
                        retObj[ct++] = arg[k];
                    }
                    else {
                        retObj[k] = arg[k];
                    }
                }
            }
        }
    }
    return retObj;
}

function in_array(needle, haystack, argStrict) {
    var key = '',
            strict = !!argStrict;

    if (strict) {
        for (key in haystack) {
            if (haystack[key] === needle) {
                return true;
            }
        }
    } else {
        for (key in haystack) {
            if (haystack[key] == needle) {
                return true;
            }
        }
    }

    return false;
}
// end of funcs
function update_checks(no_refresh) {
    console.log('start');
    var selected = $('input.params_check:checked');
    var ids = new Object();
    var params = new Array();
    console.log(selected.length);
    if (selected.length > 0) {
        selected.each(function (i, e) {
            var elem = $(e);
            var val = elem.attr('id');
            params.push(val);
            var parms = cross_params[val];
            parms = array_flip(parms);
            ids = array_merge(ids, parms)
        });
        ids = array_flip(ids);
        $('input.params_check:unchecked').each(function (i, e) {
            if ($(e).attr('disabled') != 'disabled') {
                var val = $(e).attr('id');
                if (!in_array(val, ids)) {
                    $(e).attr('disabled', 'disabled');
                }
            }
        })

    } else {
        $('input.params_check').each(function (i, e) {
            $(e).removeAttr('disabled')
        });
    }
    if (!no_refresh) {
        var url = '';
        var location = window.location;
        if (location.hash == '') {
            url = location.pathname;
            url = url.replace(/^.*#/, '').toString();
        } else {
            var hash = location.hash;
            hash = hash.replace('#', '');
            hash = hash.split('?');
            url = hash[0].toString();
        }
        var _get = get_get();
        _get.filter = encodeURIComponent(params.join(';'));
        url += '?' + set_get(_get);
        $.history.load(url);
    }
}
function currentYPosition() {
    // Firefox, Chrome, Opera, Safari
    if (self.pageYOffset) return self.pageYOffset;
    // Internet Explorer 6 - standards mode
    if (document.documentElement && document.documentElement.scrollTop)
        return document.documentElement.scrollTop;
    // Internet Explorer 6, 7 and 8
    if (document.body.scrollTop) return document.body.scrollTop;
    return 0;
}
function elmYPosition(eID) {
    var elm = document.getElementById(eID);
    var y = elm.offsetTop;
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y += node.offsetTop;
    }
    return y;
}
function smoothScroll(eID) {
    var startY = currentYPosition();
    var stopY = elmYPosition(eID);
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    if (distance < 100) {
        scrollTo(0, stopY);
        return;
    }
    var speed = Math.round(distance / 100);
    if (speed >= 20) speed = 20;
    var step = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    if (stopY > startY) {
        for (var i = startY; i < stopY; i += step) {
            setTimeout("window.scrollTo(0, " + leapY + ")", timer * speed);
            leapY += step;
            if (leapY > stopY) leapY = stopY;
            timer++;
        }
        return;
    }
    for (var i = startY; i > stopY; i -= step) {
        setTimeout("window.scrollTo(0, " + leapY + ")", timer * speed);
        leapY -= step;
        if (leapY < stopY) leapY = stopY;
        timer++;
    }
}
function scroll() {
    if (jQuery.browser.msie == true) {
        var top = $($('.pager')[0]).offset().top;
        var cur_pos = currentYPosition();
        var offset = cur_pos - top;
        if (offset < -300 || offset > 300) {
            window.scrollBy(0, -offset);
        }
    } else {
        smoothScroll('product_list');
    }
}
var submenu_act = function () {
    var location = window.location;
    var url = '';
    if (location.hash != '') {
        url = location.hash.replace('#', '');
    } else {
        url = location.pathname;
    }
    url = url.split('/', 3);
    if ((url[1] && url[2]) != undefined && url[3] == undefined) {
        $('div.lev2 a.curelem').removeClass('curelem');
        var cur_url = url.join('/');
        var cur_elem = $('div.lev2 a[href="' + cur_url + '"]');
        cur_elem.addClass('curelem');
        $(this).addClass('curelem');
        var span = $('.bread').find('span');
        if (span.length != 1) {
            $('.bread').append(' / ').append($('<span></span>'));
            var span = $('.bread').find('span');
        }
        span.html(cur_elem.html());
    }
};
var init_select = function () {
    $('select#brands').dropdownchecklist("destroy");
    $("select#brands").dropdownchecklist({
        firstItemChecksAll:true,
        emptyText:"Производители",
        explicitClose:'отфильтровать',
        width:120,
        onComplete:function (selector) {
            var values = "";
            for (i = 0; i < selector.options.length; i++) {
                if (selector.options[i].selected && (selector.options[i].value != "")) {
                    if (values != "") values += ";";
                    values += selector.options[i].value;
                }
            }
            if (values != '') {
                var _get = get_get();
                _get.brands = values;
                load_page(set_get(_get));
            }
        }
    });
};

function get_get() {
    var _get = new Object();
    var tmp = new Object();
    var tmp2 = new Object();
    var href = window.location.href.split('?');
    if (href[1] != undefined && href[1].length > 0) {
        tmp = decodeURIComponent(href[1]);
        tmp = tmp.split('&');
        for (var i = 0; i < tmp.length; i++) {
            tmp2 = tmp[i].split('=');
            _get[tmp2[0]] = tmp2[1];
        }
    }
    return _get;
}

function set_get(obj) {
    var str = new Array();
    $.each(obj, function (k, v) {
        str.push(k + '=' + v);
    });
    return str.join('&');
}

function load_page(get_query) {
    var loc = window.location;
    var url = '';
    if (loc.hash != '') {
        url = loc.hash.replace(/^.*#/, '');
    } else {
        url = loc.pathname;
    }
    url = url.split('?')[0];
    url += '?' + get_query;
    $.history.load(url);
}
function change_advice(advice) {
    $('div.a').slideUp();
    var len = advice.length;
    if (len == 0) {
        $('#recommends').fadeOut();
    } else {
        $('#recommends').fadeIn();
        for (var i = 0; i < len; i++) {
            var cur_adv = advice[i];
            var index = i + 1;
            var html = '<img alt="' + cur_adv.name + '" src="/' + cur_adv.image + '" >' +
                    '<div class="title">' +
                    '<a href="' + cur_adv.link + '">' + cur_adv.name + '</a>' +
                    '</div>' +
                    '<div class="price-count"><div class="price"><div class="price2">' +
                    cur_adv.price +
                    '</div></div></div>';
            var adv = $('div#a_' + index).html(html).slideDown();
        }
    }
}
