/*
 * tools.tabs 1.0.2 - Tabs done right.
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/tabs.html
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 *
 * Launch  : November 2008
 * Date: ${date}
 * Revision: ${revision} 
 */
(function(d){d.tools=d.tools||{};d.tools.tabs={version:"1.0.2",conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialIndex:0,event:"click",api:false,rotate:false},addEffect:function(e,f){c[e]=f}};var c={"default":function(f,e){this.getPanes().hide().eq(f).show();e.call()},fade:function(g,e){var f=this.getConf(),h=f.fadeOutSpeed,j=this.getCurrentPane();if(h){j.fadeOut(h)}else{j.hide()}this.getPanes().eq(g).fadeIn(f.fadeInSpeed,e)},slide:function(f,e){this.getCurrentPane().slideUp(200);this.getPanes().eq(f).slideDown(400,e)},ajax:function(f,e){this.getPanes().eq(0).load(this.getTabs().eq(f).attr("href"),e)}};var b;d.tools.tabs.addEffect("horizontal",function(f,e){if(!b){b=this.getPanes().eq(0).width()}this.getCurrentPane().animate({width:0},function(){d(this).hide()});this.getPanes().eq(f).animate({width:b},function(){d(this).show();e.call()})});function a(f,g,h){var e=this,i;function j(k,l){d(e).bind(k,function(n,m){if(l&&l.call(this,m.index)===false&&m){m.proceed=false}});return e}d.each(h,function(k,l){if(d.isFunction(l)){j(k,l)}});d.extend(this,{click:function(l){var o=e.getCurrentPane();var m=f.eq(l);if(typeof l=="string"&&l.replace("#","")){m=f.filter("[href*="+l.replace("#","")+"]");l=Math.max(f.index(m),0)}if(h.rotate){var n=f.length-1;if(l<0){return e.click(n)}if(l>n){return e.click(0)}}if(!m.length){if(i>=0){return e}l=h.initialIndex;m=f.eq(l)}var k={index:l,proceed:true};d(e).triggerHandler("onBeforeClick",k);if(!k.proceed){return e}if(l===i){return e}m.addClass(h.current);c[h.effect].call(e,l,function(){d(e).triggerHandler("onClick",k)});f.removeClass(h.current);m.addClass(h.current);i=l;return e},getConf:function(){return h},getTabs:function(){return f},getPanes:function(){return g},getCurrentPane:function(){return g.eq(i)},getCurrentTab:function(){return f.eq(i)},getIndex:function(){return i},next:function(){return e.click(i+1)},prev:function(){return e.click(i-1)},onBeforeClick:function(k){return j("onBeforeClick",k)},onClick:function(k){return j("onClick",k)}});f.each(function(k){d(this).bind(h.event,function(l){e.click(k);return l.preventDefault()})});if(location.hash){e.click(location.hash)}else{e.click(h.initialIndex)}g.find("a[href^=#]").click(function(){e.click(d(this).attr("href"))})}d.fn.tabs=function(i,f){var g=this.eq(typeof f=="number"?f:0).data("tabs");if(g){return g}var h=d.extend({},d.tools.tabs.conf),e=this.length;d.extend(h,f);if(d.isFunction(f)){f={onBeforeClick:f}}d.extend(h,f);this.each(function(l){var j=d(this);var k=j.find(h.tabs);if(!k.length){k=j.children()}var m=j.children(i);if(!m.length){m=e==1?d(i):j.parent().find(i)}g=new a(k,m,h);j.data("tabs",g)});return h.api?g:this}})(jQuery);

/*************************************************
**  jQuery Masonry version 1.3.2
**  Copyright David DeSandro, licensed MIT
**  http://desandro.com/resources/jquery-masonry
**************************************************/
(function(e){var n=e.event,o;n.special.smartresize={setup:function(){e(this).bind("resize",n.special.smartresize.handler)},teardown:function(){e(this).unbind("resize",n.special.smartresize.handler)},handler:function(j,l){var g=this,d=arguments;j.type="smartresize";o&&clearTimeout(o);o=setTimeout(function(){jQuery.event.handle.apply(g,d)},l==="execAsap"?0:100)}};e.fn.smartresize=function(j){return j?this.bind("smartresize",j):this.trigger("smartresize",["execAsap"])};e.fn.masonry=function(j,l){var g=
{getBricks:function(d,b,a){var c=a.itemSelector===undefined;b.$bricks=a.appendedContent===undefined?c?d.children():d.find(a.itemSelector):c?a.appendedContent:a.appendedContent.filter(a.itemSelector)},placeBrick:function(d,b,a,c,h){b=Math.min.apply(Math,a);for(var i=b+d.outerHeight(true),f=a.length,k=f,m=c.colCount+1-f;f--;)if(a[f]==b)k=f;d.applyStyle({left:c.colW*k+c.posLeft,top:b},e.extend(true,{},h.animationOptions));for(f=0;f<m;f++)c.colY[k+f]=i},setup:function(d,b,a){g.getBricks(d,a,b);if(a.masoned)a.previousData=
d.data("masonry");a.colW=b.columnWidth===undefined?a.masoned?a.previousData.colW:a.$bricks.outerWidth(true):b.columnWidth;a.colCount=Math.floor(d.width()/a.colW);a.colCount=Math.max(a.colCount,1)},arrange:function(d,b,a){var c;if(!a.masoned||b.appendedContent!==undefined)a.$bricks.css("position","absolute");if(a.masoned){a.posTop=a.previousData.posTop;a.posLeft=a.previousData.posLeft}else{d.css("position","relative");var h=e(document.createElement("div"));d.prepend(h);a.posTop=Math.round(h.position().top);
a.posLeft=Math.round(h.position().left);h.remove()}if(a.masoned&&b.appendedContent!==undefined){a.colY=a.previousData.colY;for(c=a.previousData.colCount;c<a.colCount;c++)a.colY[c]=a.posTop}else{a.colY=[];for(c=a.colCount;c--;)a.colY.push(a.posTop)}e.fn.applyStyle=a.masoned&&b.animate?e.fn.animate:e.fn.css;b.singleMode?a.$bricks.each(function(){var i=e(this);g.placeBrick(i,a.colCount,a.colY,a,b)}):a.$bricks.each(function(){var i=e(this),f=Math.ceil(i.outerWidth(true)/a.colW);f=Math.min(f,a.colCount);
if(f===1)g.placeBrick(i,a.colCount,a.colY,a,b);else{var k=a.colCount+1-f,m=[];for(c=0;c<k;c++){var p=a.colY.slice(c,c+f);m[c]=Math.max.apply(Math,p)}g.placeBrick(i,k,m,a,b)}});a.wallH=Math.max.apply(Math,a.colY);d.applyStyle({height:a.wallH-a.posTop},e.extend(true,[],b.animationOptions));a.masoned||setTimeout(function(){d.addClass("masoned")},1);l.call(a.$bricks);d.data("masonry",a)},resize:function(d,b,a){a.masoned=!!d.data("masonry");var c=d.data("masonry").colCount;g.setup(d,b,a);a.colCount!=c&&
g.arrange(d,b,a)}};return this.each(function(){var d=e(this),b={};b.masoned=!!d.data("masonry");var a=b.masoned?d.data("masonry").options:{},c=e.extend({},e.fn.masonry.defaults,a,j),h=a.resizeable;b.options=c.saveOptions?c:a;l=l||function(){};g.getBricks(d,b,c);if(!b.$bricks.length)return this;g.setup(d,c,b);g.arrange(d,c,b);!h&&c.resizeable&&e(window).bind("smartresize.masonry",function(){g.resize(d,c,b)});h&&!c.resizeable&&e(window).unbind("smartresize.masonry")})};e.fn.masonry.defaults={singleMode:false,
columnWidth:undefined,itemSelector:undefined,appendedContent:undefined,saveOptions:true,resizeable:true,animate:false,animationOptions:{}}})(jQuery);

/* -------------------------------------------------- *
 * Tooltip
** -------------------------------------------------- */

;function simple_tooltip(target_items,name){
$(target_items).each(function(i){$("body").append("<div class='"+name+"' id='"+name+i+"'><iframe src='about:blank' scrolling='no' frameborder='0' class='f-frame'></iframe><div><p>"+$(this).attr('title')+"</p></div><i></i></div>");var my_tooltip=$("#"+name+i);$(this).removeAttr("title").mouseover(function(){my_tooltip.css({display:"block"});}).mousemove(function(kmouse){
offPage = 0;
if(kmouse.pageX+my_tooltip.width() > $(window).width()) {
	offPage = my_tooltip.width();
}
else {
	offPage = 0;
}
my_tooltip.css({left:kmouse.pageX-offPage+10,top:kmouse.pageY+10});}).mouseout(function(){my_tooltip.hide();});});}

/*
 * Alternate Select Multiple (asmSelect) 1.0.4a beta - jQuery Plugin
 * http://www.ryancramer.com/projects/asmselect/
 * 
 * Copyright (c) 2009 by Ryan Cramer - http://www.ryancramer.com
 * 
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 */

(function($) {

        $.fn.asmSelect = function(customOptions) {

                var options = {

                        listType: 'ol',                                         // Ordered list 'ol', or unordered list 'ul'
                        sortable: false,                                        // Should the list be sortable?
                        highlight: false,                                       // Use the highlight feature? 
                        animate: false,                                         // Animate the the adding/removing of items in the list?
                        addItemTarget: 'bottom',                                // Where to place new selected items in list: top or bottom
                        hideWhenAdded: false,                                   // Hide the option when added to the list? works only in FF
                        debugMode: false,                                       // Debug mode keeps original select visible 

                        removeLabel: 'remove',                                  // Text used in the "remove" link
                        highlightAddedLabel: 'Added: ',                         // Text that precedes highlight of added item
                        highlightRemovedLabel: 'Removed: ',                     // Text that precedes highlight of removed item

                        containerClass: 'asmContainer',                         // Class for container that wraps this widget
                        selectClass: 'asmSelect',                               // Class for the newly created <select>
                        optionDisabledClass: 'asmOptionDisabled',               // Class for items that are already selected / disabled
                        listClass: 'asmList',                                   // Class for the list ($ol)
                        listSortableClass: 'asmListSortable',                   // Another class given to the list when it is sortable
                        listItemClass: 'asmListItem',                           // Class for the <li> list items
                        listItemLabelClass: 'asmListItemLabel',                 // Class for the label text that appears in list items
                        removeClass: 'asmListItemRemove',                       // Class given to the "remove" link
                        highlightClass: 'asmHighlight'                          // Class given to the highlight <span>

                        };

                $.extend(options, customOptions); 

                return this.each(function(index) {

                        var $original = $(this);                                // the original select multiple
                        var $container;                                         // a container that is wrapped around our widget
                        var $select;                                            // the new select we have created
                        var $ol;                                                // the list that we are manipulating
                        var buildingSelect = false;                             // is the new select being constructed right now?
                        var ieClick = false;                                    // in IE, has a click event occurred? ignore if not
                        var ignoreOriginalChangeEvent = false;                  // originalChangeEvent bypassed when this is true

                        function init() {

                                // initialize the alternate select multiple

                                // this loop ensures uniqueness, in case of existing asmSelects placed by ajax (1.0.3)
                                while($("#" + options.containerClass + index).size() > 0) index++; 

                                $select = $("<select></select>")
                                        .addClass(options.selectClass)
                                        .attr('name', options.selectClass + index)
                                        .attr('id', options.selectClass + index); 

                                $selectRemoved = $("<select></select>"); 

                                $ol = $("<" + options.listType + "></" + options.listType + ">")
                                        .addClass(options.listClass)
                                        .attr('id', options.listClass + index); 

                                $container = $("<div></div>")
                                        .addClass(options.containerClass) 
                                        .attr('id', options.containerClass + index); 

                                buildSelect();

                                $select.change(selectChangeEvent)
                                        .click(selectClickEvent); 

                                $original.change(originalChangeEvent)
                                        .wrap($container).before($select).before($ol);

                                if(options.sortable) makeSortable();

                                if($.browser.msie && $.browser.version < 8) $ol.css('display', 'inline-block'); // Thanks Matthew Hutton
                        }

                        function makeSortable() {

                                // make any items in the selected list sortable
                                // requires jQuery UI sortables, draggables, droppables

                                $ol.sortable({
                                        items: 'li.' + options.listItemClass,
                                        handle: '.' + options.listItemLabelClass,
                                        axis: 'y',
                                        update: function(e, data) {

                                                var updatedOptionId;

                                                $(this).children("li").each(function(n) {

                                                        $option = $('#' + $(this).attr('rel')); 

                                                        if($(this).is(".ui-sortable-helper")) {
                                                                updatedOptionId = $option.attr('id'); 
                                                                return;
                                                        }

                                                        $original.append($option); 
                                                }); 

                                                if(updatedOptionId) triggerOriginalChange(updatedOptionId, 'sort'); 
                                        }

                                }).addClass(options.listSortableClass); 
                        }

                        function selectChangeEvent(e) {
                                
                                // an item has been selected on the regular select we created
                                // check to make sure it's not an IE screwup, and add it to the list

                                if($.browser.msie && $.browser.version < 7 && !ieClick) return;
                                var id = $(this).find("option:selected").slice(0,1).attr('rel');
                                addListItem(id);        
                                ieClick = false; 
                                triggerOriginalChange(id, 'add'); // for use by user-defined callbacks
                        }

                        function selectClickEvent() {

                                // IE6 lets you scroll around in a select without it being pulled down
                                // making sure a click preceded the change() event reduces the chance
                                // if unintended items being added. there may be a better solution?

                                ieClick = true; 
                        }

                        function originalChangeEvent(e) {

                                // select or option change event manually triggered
                                // on the original <select multiple>, so rebuild ours

                                if(ignoreOriginalChangeEvent) {
                                        ignoreOriginalChangeEvent = false; 
                                        return; 
                                }

                                $select.empty();
                                $ol.empty();
                                buildSelect();

                                // opera has an issue where it needs a force redraw, otherwise
                                // the items won't appear until something else forces a redraw
                                if($.browser.opera) $ol.hide().fadeIn("fast");
                        }

                        function buildSelect() {

                                // build or rebuild the new select that the user
                                // will select items from

                                buildingSelect = true; 

                                // add a first option to be the home option / default selectLabel
                                $select.prepend("<option>" + $original.attr('title') + "</option>"); 
 
                                buildOptions($original.children("option"), $select);
 
                                $original.children("optgroup").each(function(n) {
                                        var $optgroup = $('<optgroup label="' + $(this).attr('label') + '"/>')
                                        $select.append($optgroup);
                                        buildOptions($(this).children("option"), $optgroup, n)
                                });
 
                                if(!options.debugMode) $original.hide(); // IE6 requires this on every buildSelect()
                                selectFirstItem();
                                buildingSelect = false; 
                        }
 
                        function buildOptions(options, parent, group) {
                                options.each(function(n) {
                                        if(!$(this).attr('id')) {
                                                if (group !== undefined) {
                                                        $(this).attr('id', 'asm' + index + 'group' + group + 'option' + n);
                                                } else {
                                                        $(this).attr('id', 'asm' + index + 'option' + n);
                                                }
                                        }
                                        var id = $(this).attr('id'); 

                                        if($(this).is(":selected")) {
                                                addListItem(id); 
                                                addSelectOption(parent, id, true);
                                        } else {
                                                addSelectOption(parent, id);
                                        }
                                });
                        }
 
                        function addSelectOption(parent, optionId, disabled) {
 
                                // add an <option> to the <select>
                                // used only by buildSelect()

                                if(disabled == undefined) var disabled = false; 

                                var $O = $('#' + optionId); 
                                var $option = $("<option>" + $O.text() + "</option>")
                                        .val($O.val())
                                        .attr('rel', optionId);

                                if(disabled) disableSelectOption($option); 

                                parent.append($option); 
                        }

                        function selectFirstItem() {

                                // select the firm item from the regular select that we created

                                $select.children(":eq(0)").attr("selected", true); 
                        }

                        function disableSelectOption($option) {

                                // make an option disabled, indicating that it's already been selected
                                // because safari is the only browser that makes disabled items look 'disabled'
                                // we apply a class that reproduces the disabled look in other browsers

                                $option.addClass(options.optionDisabledClass)
                                        .attr("selected", false)
                                        .attr("disabled", true);

                                if(options.hideWhenAdded) $option.hide();
                                if($.browser.msie) $select.hide().show(); // this forces IE to update display
                        }

                        function enableSelectOption($option) {

                                // given an already disabled select option, enable it

                                $option.removeClass(options.optionDisabledClass)
                                        .attr("disabled", false);

                                if(options.hideWhenAdded) $option.show();
                                if($.browser.msie) $select.hide().show(); // this forces IE to update display
                        }

                        function addListItem(optionId) {

                                // add a new item to the html list

                                var $O = $('#' + optionId); 

                                if(!$O) return; // this is the first item, selectLabel

                                var $removeLink = $("<a></a>")
                                        .attr("href", "#")
                                        .addClass(options.removeClass)
                                        .prepend(options.removeLabel)
                                        .click(function() { 
                                                dropListItem($(this).parent('li').attr('rel')); 
                                                return false; 
                                        }); 

                                var $itemLabel = $("<span></span>")
                                        .addClass(options.listItemLabelClass)
                                        .html($O.html()); 

                                var $item = $("<li></li>")
                                        .attr('rel', optionId)
                                        .addClass(options.listItemClass)
                                        .append($itemLabel)
                                        .append($removeLink)
                                        .hide();

                                if(!buildingSelect) {
                                        if($O.is(":selected")) return; // already have it
                                        $O.attr('selected', true); 
                                }

                                if(options.addItemTarget == 'top' && !buildingSelect) {
                                        $ol.prepend($item); 
                                        if(options.sortable) $original.prepend($O); 
                                } else {
                                        $ol.append($item); 
                                        if(options.sortable) $original.append($O); 
                                }

                                addListItemShow($item); 

                                disableSelectOption($("[rel=" + optionId + "]", $select));

                                if(!buildingSelect) {
                                        setHighlight($item, options.highlightAddedLabel); 
                                        selectFirstItem();
                                        if(options.sortable) $ol.sortable("refresh");   
                                }

                        }

                        function addListItemShow($item) {

                                // reveal the currently hidden item with optional animation
                                // used only by addListItem()

                                if(options.animate && !buildingSelect) {
                                        $item.animate({
                                                opacity: "show",
                                                height: "show"
                                        }, 100, "swing", function() { 
                                                $item.animate({
                                                        height: "+=2px"
                                                }, 50, "swing", function() {
                                                        $item.animate({
                                                                height: "-=2px"
                                                        }, 25, "swing"); 
                                                }); 
                                        }); 
                                } else {
                                        $item.show();
                                }
                        }

                        function dropListItem(optionId, highlightItem) {

                                // remove an item from the html list

                                if(highlightItem == undefined) var highlightItem = true; 
                                var $O = $('#' + optionId); 

                                $O.attr('selected', false); 
                                $item = $ol.children("li[rel=" + optionId + "]");

                                dropListItemHide($item); 
                                enableSelectOption($("[rel=" + optionId + "]", options.removeWhenAdded ? $selectRemoved : $select));

                                if(highlightItem) setHighlight($item, options.highlightRemovedLabel); 

                                triggerOriginalChange(optionId, 'drop'); 
                                
                        }

                        function dropListItemHide($item) {

                                // remove the currently visible item with optional animation
                                // used only by dropListItem()

                                if(options.animate && !buildingSelect) {

                                        $prevItem = $item.prev("li");

                                        $item.animate({
                                                opacity: "hide",
                                                height: "hide"
                                        }, 100, "linear", function() {
                                                $prevItem.animate({
                                                        height: "-=2px"
                                                }, 50, "swing", function() {
                                                        $prevItem.animate({
                                                                height: "+=2px"
                                                        }, 100, "swing"); 
                                                }); 
                                                $item.remove(); 
                                        }); 
                                        
                                } else {
                                        $item.remove(); 
                                }
                        }

                        function setHighlight($item, label) {

                                // set the contents of the highlight area that appears
                                // directly after the <select> single
                                // fade it in quickly, then fade it out

                                if(!options.highlight) return; 

                                $select.next("#" + options.highlightClass + index).remove();

                                var $highlight = $("<span></span>")
                                        .hide()
                                        .addClass(options.highlightClass)
                                        .attr('id', options.highlightClass + index)
                                        .html(label + $item.children("." + options.listItemLabelClass).slice(0,1).text()); 
                                        
                                $select.after($highlight); 

                                $highlight.fadeIn("fast", function() {
                                        setTimeout(function() { $highlight.fadeOut("slow"); }, 50); 
                                }); 
                        }

                        function triggerOriginalChange(optionId, type) {

                                // trigger a change event on the original select multiple
                                // so that other scripts can pick them up

                                ignoreOriginalChangeEvent = true; 
                                $option = $("#" + optionId); 

                                $original.trigger('change', [{
                                        'option': $option,
                                        'value': $option.val(),
                                        'id': optionId,
                                        'item': $ol.children("[rel=" + optionId + "]"),
                                        'type': type
                                }]); 
                        }

                        init();
                });
        };

})(jQuery); 

function css_browser_selector(u){var ua = u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1;},g='gecko',w='webkit',s='safari',o='opera',h=document.getElementsByTagName('html')[0],b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?'mobile':is('iphone')?'iphone':is('ipod')?'ipod':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win':is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);
(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
(function($){$.listen=function(a,b,c,d){if($.listen.illegal(a))throw'jQuery.Listen > "'+a+'" can\'t be handled because it doesn\'t bubble';if(typeof b!='object')d=c,c=b,b=document;var e=jQuery.data(b,'indexer-'+a)||jQuery.data(b,'indexer-'+a,new Indexer(a,b));switch(c){case undefined:case false:e.stop();break;default:e.append(c,d);case true:e.start();break}};$.fn.listen=function(a,b,c){return this.each(function(){$.listen(a,this,b,c)})};$.extend($.listen,{strict:true,bubbles:{},illegal:function(a){return this.strict&&!this.bubbles[a]}});$.each(('click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,'+'keydown,keypress,keyup').split(','),function(i,e){$.listen.bubbles[e]=true});function Indexer(a,b){this.ids={};this.names={};this.listener=b;this.event=a;Indexer.instances.push(this)};Indexer.instances=[];Indexer.prototype={constructor:Indexer,handler:function(e){var a=e.data;e.data=null;a.parse.apply(a,arguments)},running:false,start:function(){if(this.running)return;$.event.add(this.listener,this.event,this.handler,this);this.running=true},stop:function(){if(!this.running)return;$.event.remove(this.listener,this.event,this.handler);this.running=false},parse:function(e){var d=e.target,handlers=[];if(d.id&&this.ids[d.id])push(handlers,this.ids[d.id]);each([d.nodeName,'*'],function(b){var c=this.names[b];if(c)each(push(d.className.split(' '),['*']),function(a){if(c[a])push(handlers,c[a])})},this);this.execute(d,handlers,arguments);d=handlers=e=null},append:function(a,b){var c=new Index(a);if(c.id){(this.ids[c.id]||(this.ids[c.id]=[])).push(b)}else if(c.nodeName){var d=this.names[c.nodeName]||(this.names[c.nodeName]={});(d[c.className]||(d[c.className]=[])).push(b)}else{throw'jQuery.Listen > "'+a+'" was not recognized as a valid selector.';}},execute:function(b,c,d){if(c.length)each(c,function(a){a.apply(b,d)})}};function Index(a){var b=Index.regex.exec(a)||[];if(b[1]){this.id=b[1]}else if(b[2]||b[3]){this.nodeName=b[2]?b[2].toUpperCase():'*';this.className=b[3]?b[3].substring(1):'*'}};Index.regex=/#([\w\d_-]+)$|(\w*)(\.[\w_]+)?$/;function each(a,b,c){for(var i=0,l=a.length;i<l;i++)b.call(c,a[i],i)};function push(a,b){Array.prototype.push.apply(a,b);return a};$.event.add(window,'unload',function(){if(Indexer)$.each(Indexer.instances,function(i,a){a.stop();a.listener=null})})})(jQuery);

jQuery.uiTableFilter = function(jq, phrase, column, ifHidden){
  var new_hidden = false;
  if( this.last_phrase === phrase ) return false;

  var phrase_length = phrase.length;
  var words = phrase.toLowerCase().split(" ");

  // these function pointers may change
  var matches = function(elem) { elem.show() }
  var noMatch = function(elem) { elem.hide(); new_hidden = true }
  var getText = function(elem) { return elem.find('span,em').text() }

  if( column ) {
    var index = null;
    jq.find("thead > tr:last > th").each( function(i){
      if( $(this).text() == column ){
        index = i; return false;
      }
    });
    if( index == null ) throw("given column: " + column + " not found")

    getText = function(elem){ return jQuery(elem.find(("td:eq(" + index + ")")  )).text()
    }
  }

  // if added one letter to last time,
  // just check newest word and only need to hide
  if( (words.size > 1) && (phrase.substr(0, phrase_length - 1) ===
        this.last_phrase) ) {

    if( phrase[-1] === " " )
    { this.last_phrase = phrase; return false; }

    var words = words[-1]; // just search for the newest word

    // only hide visible rows
    matches = function(elem) {;}
    var elems = jq.find("tbody > tr.ln:visible")
  }
  else {
    new_hidden = true;
    var elems = jq.find("tbody > tr.ln")
  }

  elems.each(function(){
    var elem = jQuery(this);
    jQuery.uiTableFilter.has_words( getText(elem), words, false ) ?
      matches(elem) : noMatch(elem);
  });

  last_phrase = phrase;
  if( ifHidden && new_hidden ) ifHidden();
  return jq;
};

// caching for speedup
jQuery.uiTableFilter.last_phrase = ""

// not jQuery dependent
// "" [""] -> Boolean
// "" [""] Boolean -> Boolean
jQuery.uiTableFilter.has_words = function( str, words, caseSensitive )
{
  var text = caseSensitive ? str : str.toLowerCase();
  for (var i=0; i < words.length; i++) {
    if (text.indexOf(words[i]) === -1) return false;
  }
  return true;
}

$(function () {
    $('.b-search .btn,.loginbar .btn,.gonextstep .btn,.addproduct .btn,#refresh_price,#compareprice .btn,.addcommentForm .btn,.addcommentForm .canc,.pop .btn').live('mouseover', function () { $(this).addClass('hovered') }).live('mouseout', function () { $(this).removeClass('hovered').removeClass('mousedown') }).live('mousedown', function () { $(this).addClass('mousedown') }).live('mouseup', function () { $(this).removeClass('mousedown') });

    if ($('#table-view').size() > 0) {
        function tableview() {
            var wi = $('#table-view').width();
            var col = parseInt(wi / 179);
            col > 5 ? (col = 5) : (col = col);
            var ww = parseInt(wi / col - 3);
            $('#table-view .it,#table-view .item,#table-view .em-hover').css('width', ww + 'px');
        } tableview();
        $(window).resize(function () { tableview() });
    }

    $('#tabsbar .names a.tab').click(function () {
        if (!$(this).parent().hasClass('active')) {
            if ($(this).attr('href') == '#block1') { $('#fromsellers').addClass('act') } else { $('#fromsellers').removeClass('act') }
            if ($(this).attr('href') == '#block2') { $('#pricebar .art a').addClass('act') } else { $('#pricebar .art a').removeClass('act') }
            opentab($(this).attr('href'), $(this));
        }
        return false
    });
    function opentab(id, el) {
        if (arguments.length > 1) {
            $('ul.names').find('.active').removeClass('active');
            el.parent().addClass('active').parent().parent().children('div').hide();
            $(id).show();
        }
        else {
            $('ul.names').find('.active').removeClass('active').end().parent().children('div').hide();
            $('ul.names').find('a[href=' + id + ']').parent().addClass('active');
            $(id).show();
        }
    }
    $('#fromsellers').click(function () {
        $(this).addClass('act'); $('#pricebar .art a').removeClass('act');
        opentab('#block1');
        return false
    });
    $('#pricebar .art a.sizes').click(function () {
        $(this).addClass('act'); $('#fromsellers').removeClass('act')
        opentab('#block2');
        return false
    });
    $('td.order a').mouseleave(function () { $(this).removeClass('down') }).mousedown(function () { $(this).addClass('down') }).mouseup(function () { $(this).removeClass('down') });

    function mousePageXY(e) {
        var x = 0, y = 0;
        if (!e) e = window.event;
        if (e.pageX || e.pageY) {
            x = e.pageX;
            y = e.pageY;
        }
        else if (e.clientX || e.clientY) {
            x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
            y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
        }
        return { "x": x, "y": y };
    }
    $('#block1 .pay img').hover(function () {
        $('<div id="toolt">' + $(this).attr('alt') + '</div>').appendTo('body');
        $(document).bind('mousemove', function (e) {
            var pos = mousePageXY(e);
            $('#toolt').css('left', pos.x + 12 + 'px').css('top', pos.y + 3 + 'px');
        });
    }, function () {
        $('#toolt').remove();
        $(document).unbind('mousemove');
    });

    if ($('#modelbar').size() > 0) {
        if ($('body').width() > 1002) { $('body').addClass('bodybig') } else { $('body').removeClass('bodybig') }
        $(window).resize(function () {
            if ($('body').width() > 1002) { $('body').addClass('bodybig') } else { $('body').removeClass('bodybig') }
        });
    }

    $('#dsize tr.ln').hover(function () { $(this).addClass('hovered') }, function () { $(this).removeClass('hovered') });

    var heightmax = $('#block1').height();
    //$('#tabsbar>div').css('height',heightmax+60 + 'px');

    $('.disks .item:not(".hovered")').mouseenter(function () {
        $(this).clone().addClass('hovered').prependTo($(this)); hovered();
    }).mouseleave(function () {
        $(this).find('.item').remove();
    });

    function hovered() {
        $('.item.hovered').add($('.item.hovered').find('.it,.em-hover')).animate({ "width": "+=40px" }, 0).end().css('margin-left', '-20px');
        $('.item.hovered').mouseleave(function () {
            $(this).remove();
        });
    }

    $('.seldrop').mouseleave(function () {
        $(this).hide();
    }).find('a').click(function () {
        var value = $(this).attr('rel');
        var txt = $(this).text();
        var $im = $(this).find('img').clone();

        $(this).parent().prev().find('div').text(txt).prepend($im);
        $('#color').val(value);
        $(this).parent().hide();

        return false
    });
    $('.selbar').click(function () {
        $(this).next().show();
        return false
    });

    if ($('div.b-site-map').size() > 0) {
        function mapsort() {
            var par = '#' + $('div.mapbar .show-on .active').attr('rel') + ' ';
            $(par + 'div.b-site-map').clone().hide().appendTo(par);
            $(par + 'div.b-site-map:first').show();
            var xx = $(par + 'div.b-site-map:first').width();
            var col = parseInt(xx / 220);
            $(par + 'div.b-site-map:first >.item').each(function () {
                var el = $(this);
                var array = $(this).find('li');
                var inone = Math.ceil(array.size() / col);
                for (var i = 0; i < array.size(); i += inone) {
                    var push = $('<ul></ul>');
                    for (var j = i; j < i + inone; j++) {
                        push.append(array.eq(j));
                    }
                    push.appendTo(el);
                }
            }).find('ul:first').remove();
        }
        mapsort();
        var timer;
        $(window).resize(function () {
            clearTimeout(timer);
            timer = setTimeout(function () {
                var par = '#' + $('div.mapbar .show-on .active').attr('rel') + ' ';
                $(par + 'div.b-site-map:first').remove();
                mapsort();
            }, 200);
        });
    }

    if ($('#lefttime').size() > 0) {
        function showdate() {
            var now = new Date();
            var date = new Date("Jun,9,2010,12:00:00");
            var totalRemains = (date.getTime() - now.getTime());
            if (totalRemains > 1) {
                var RemainsSec = (parseInt(totalRemains / 1000));
                var RemainsFullDays = (parseInt(RemainsSec / (24 * 60 * 60)));
                var secInLastDay = RemainsSec - RemainsFullDays * 24 * 3600;
                var RemainsFullHours = (parseInt(secInLastDay / 3600));
                var secInLastHour = secInLastDay - RemainsFullHours * 3600;
                var RemainsMinutes = (parseInt(secInLastHour / 60));
                if (RemainsMinutes < 10) { RemainsMinutes = "0" + RemainsMinutes };
                if (RemainsFullHours < 10) { RemainsFullHours = "0" + RemainsFullHours };
                var lastSec = secInLastHour - RemainsMinutes * 60;
                if (lastSec < 10) { lastSec = "0" + lastSec };
                //var FullHours = RemainsFullHours+(RemainsFullDays*24);
                $('#leftdays > span').text(RemainsFullDays);
                $('#lefttime > span').text(RemainsFullHours + ":" + RemainsMinutes + ":" + lastSec);
                setTimeout(function () { showdate(); }, 1000);
            }
            else { $('#timeleft').text('Сайт открыт') }
        }
        showdate();
    }

    $('#byfirm,#byalphabet').attr('ww', $('#byfirm').width());
    $('div.mapbar .show-on a').click(function () {
        if (!$(this).hasClass('active')) {
            $('div.mapbar .show-on a').removeClass('active');
            $(this).addClass('active');
            $('#byfirm,#byalphabet').hide();
            var el = $('#' + $(this).attr('rel'));
            el.show();

            if (el.hasClass('firstload')) {
                el.removeClass('firstload');
                mapsort();
            }
            if (el.width() != el.attr('ww')) {
                $('#' + $(this).attr('rel') + ' div.b-site-map:first').remove();
                mapsort()
            }

        }
        return false
    });

    $('div.text table tr:even').addClass('dark');

    $('.adv th a').hover(function () { $('#' + $(this).attr('class')).css('visibility', 'visible') }, function () { $('#' + $(this).attr('class')).css('visibility', 'hidden') }).click(function () { return false });

    if ($('#sell').size() > 0) {
        var ww = $('#sell .lf .war1').width();
        var cols = parseInt(ww / 18);
        $('#sell .lf .war1 input').attr('size', cols);
        $(window).resize(function () {
            var ww = $('#sell .lf .war1').width();
            var cols = parseInt(ww / 18);
            $('#sell .lf .war1 input').attr('size', cols);
        });
    }

    $('.gonextstep input').click(function () {
        isValid = true;
        $('div.regform').find('.need').each(function () {
            if (!$(this).val() || $(this).hasClass('default') || $(this).val() == '') {
                if ($(this).hasClass('number')) { $(this).parents('tr').parents('tr').find('em.error').css('display', 'block'); }
                else { $(this).parents('tr').find('em.error').css('display', 'block'); }
                isvaliddel();
                isValid = false
            }
        });
        if (isValid) {
            $(this).parents('form').submit();
        }
    });
    function isvaliddel() { $('.regform input,.regform textarea').one('keyup', function () { $('.regform em.error').hide() }) }

    $('#addtel:not(.set)').click(function () {
        $('<table><col width="220" /><col width="305" /><col width="425" /><tr class="bigpadding"><td></td><td><span class="kbel">+375</span><table class="tel"><tr><td><input type="text" class="tx kod" /><span class="dp">код</span></td><td><input type="text" class="tx number" /><span class="dp">номер</span></td><td><select><option>Оператор</option></select></td></tr></table></td><td><a href="#" class="deltel">Удалить</a></td></tr></table>').insertAfter($(this).parents('table'));
        $('a.deltel').click(function () {
            $(this).parents('table').remove();
            return false
        });
        return false
    });

    $('#addtel.set').click(function () {
        $('<tr class="bigpadding"><td></td><td><span class="kbel">+375</span><table class="tel"><tr><td><input type="text" class="tx kod" /><span class="dp">код</span></td><td><input type="text" class="tx number" /><span class="dp">номер</span></td><td><select><option>Оператор</option></select></td></tr></table></td><td><a href="#" class="deltel">Удалить</a></td></tr>').appendTo($(this).parents('table'));
        $('a.deltel').click(function () {
            $(this).parents('tr.bigpadding').remove();
            return false
        });
        return false
    });

    $('#cab #addtel:not(.set)').unbind('click').click(function () {
        $('<tr class="othertel"><td></td><td><span class="kbel">+375</span><table class="tel"><tr><td><input type="text" class="tx kod" /><span class="dp">код</span></td><td><input type="text" class="tx number need" /><span class="dp">номер</span></td><td><select><option>Оператор</option></select></td><td class="ww"><input type="text" class="tx cface need" /><span class="dp">Имя контактного лица</span></td></tr></table></td><td class="subinfo"><a href="#" class="deltel">Удалить</a></td></tr>').insertAfter($(this).parents('tr').prev());
        $('a.deltel').unbind('click').click(function () {
            $(this).parents('tr').remove();
            return false
        });
        return false
    });

    $('#jur').click(function () {
        if ($(this).find(':checked').size() > 0) {
            $('input.city:last').val($('input.city:first').val());
            $('input.zipcode:last').val($('input.zipcode:first').val());
            $('input.address:last').val($('input.address:first').val());
        }
        else {
            $('input.city:last,input.zipcode:last,input.address:last').val('');
        }
    });

    $('.regform .tel input:text:not(".cface")').keypress(function (e) { var cc = (e.which) ? e.which : event.keyCode; if (cc > 31 && (cc < 48 || cc > 57)) { return false } });

    $('input.default').each(function () {
        $(this).attr('def', $(this).attr('value'));
    }).focus(function () {
        if ($(this).val() == $(this).attr('def')) {
            $(this).val('').removeClass('default');
        }
    }).blur(function () {
        if ($(this).val() == '') {
            $(this).val($(this).attr('def')).addClass('default');
        }
    });

    // листалка сообщений
    var unreadcol = $('div.unread').size();
    if (unreadcol > 0) {
        $('div.messageItem:first').show();
        $('div.cabt2 .lf span').text(unreadcol);
    }
    else {
        $('div.cab_messages').hide();
    }
    if ($('div.messageItem:visible').hasClass('unread')) { $('a.messclose').show() } else { $('a.messclose').hide() }

    $('div.messageItem').each(function (i) { $(this).attr('num', i) });
    var messagesblock = $('div.cab_messages .in');

    var mcol = parseInt($('div.messageItem').size()) - 1;
    if (mcol < 1) { $('a.messprev,a.messnext').hide() }
    var messageactivenumber = 0;

    $('a.messprev').click(function () {
        if ($('div.messageItem[num=' + messageactivenumber + ']').hasClass('unread')) {
            $('div.messageItem[num=' + messageactivenumber + ']').removeClass('unread');
            unreadcol--; if (unreadcol < 0) { unreadcol = 0 }
            $('div.cabt2 .lf span').text(unreadcol);
        }
        if (messageactivenumber == 0) {
            $('div.messageItem[num=' + messageactivenumber + ']').hide('normal');
            $('div.messageItem[num=' + mcol + ']').show('normal');
            messageactivenumber = mcol;
        }
        else {
            $('div.messageItem[num=' + messageactivenumber + ']').hide('normal');
            var prev = messageactivenumber - 1;
            $('div.messageItem[num=' + prev + ']').show('normal');
            messageactivenumber--;
        }
        if ($('div.messageItem:visible').hasClass('unread')) { $('a.messclose').show() } else { $('a.messclose').hide() }
        return false
    });
    $('a.messnext').click(function () {
        if ($('div.messageItem[num=' + messageactivenumber + ']').hasClass('unread')) {
            $('div.messageItem[num=' + messageactivenumber + ']').removeClass('unread');
            unreadcol--; if (unreadcol < 0) { unreadcol = 0 }
            $('div.cabt2 .lf span').text(unreadcol);
        }
        if (messageactivenumber == mcol) {
            $('div.messageItem[num=' + messageactivenumber + ']').hide('normal');
            $('div.messageItem[num=' + 0 + ']').show('normal');
            messageactivenumber = 0;
        }
        else {
            $('div.messageItem[num=' + messageactivenumber + ']').hide('normal');
            var next = messageactivenumber + 1;
            $('div.messageItem[num=' + next + ']').show('normal');
            messageactivenumber++;
        }
        if ($('div.messageItem:visible').hasClass('unread')) { $('a.messclose').show() } else { $('a.messclose').hide() }
        return false
    });
    $('a.messclose').click(function () {
        if (unreadcol > 1) {
            if ($('div.messageItem[num=' + messageactivenumber + ']').hasClass('unread')) {
                $('div.messageItem[num=' + messageactivenumber + ']').removeClass('unread');
                unreadcol--; if (unreadcol < 0) { unreadcol = 0 }
                $('div.cabt2 .lf span').text(unreadcol);

                $('div.messageItem').hide('normal');
                messageactivenumber = parseInt($('div.messageItem.unread:first').attr('num'));
                $('div.messageItem.unread:first').show('normal');
            }
        }
        else {
            if ($('div.messageItem[num=' + messageactivenumber + ']').hasClass('unread')) {
                $('div.messageItem[num=' + messageactivenumber + ']').removeClass('unread');
                unreadcol--; if (unreadcol < 0) { unreadcol = 0 }
                $('div.cabt2 .lf span').text(unreadcol);

                $('div.messageItem').hide('normal');

                if (messageactivenumber == mcol) {
                    $('div.messageItem[num=' + messageactivenumber + ']').hide('normal');
                    $('div.messageItem[num=' + 0 + ']').show('normal');
                    messageactivenumber = 0;
                }
                else {
                    $('div.messageItem[num=' + messageactivenumber + ']').hide('normal');
                    var next = messageactivenumber + 1;
                    $('div.messageItem[num=' + next + ']').show('normal');
                    messageactivenumber++;
                }
                if ($('div.messageItem:visible').hasClass('unread')) { $('a.messclose').show() } else { $('a.messclose').hide() }
            }
        }
        return false
    });
    $('a.imail').click(function () {
        if (mcol > 0) {
            var el = $('div.cab_messages');
            if (el.is(':hidden')) {
                el.slideDown('fast');
            }
            else {
                el.slideUp('fast');
            }
        }
        return false
    });
    $('div.informforsel').next().css('padding-left', $('div.informforsel td.fst:first').outerWidth() + 'px'); $(window).resize(function () { $('div.informforsel').next().css('padding-left', $('div.informforsel td.fst:first').outerWidth() + 'px'); });

    var hasmodel = 0;
    var firstfabr = 0;
    var hasline = 0;
    var linescol = 0;
    var activationjumpcol = 30;
    var sortingType = $('div.addproduct').attr('id');
    $('#addmodel').click(function () {
        var fabrnum = $(this).parent().parent().find('option[selected]:first').val();

        if ($(this).parent().parent().find('select').val() != 1 && $('#mlist .fabricator a[name="n' + fabrnum + '"]').size() <= 0) {

            $('div.modellist').show();
            if (hasmodel == 0) {
                hasmodel = 1;
                $('#firstaddinfo').hide();
            }
            var name = $(this).parent().parent().find('option[selected]:first').text();
            if (firstfabr == 0) {
                $('<tr class="fabr"><td class="fabricator" colspan="13"><a name="n' + fabrnum + '">' + name + '</a></td></tr>').insertBefore('#secondaddinfo');
                firstfabr++;
            }
            else {
                $('<tbody><tr class="fabr"><td class="fabricator" colspan="13"><a name="n' + fabrnum + '">' + name + '</a></td></tr><tr class="adline"><td colspan="12"><table class="addline"><tr><td><a href="#" class="anaddline">Добавить строку</a></td></tr></table></td></tr></tbody>').prependTo('#mlist');
            }

            $('#anchors').addClass('anch').click(function () { $('#anchorsbar').show(); return false });
            $('#anchorsbar span').text($('#anchors').text()).click(function () { $('#anchorsbar').hide(); });
            $('<a href="#n' + fabrnum + '"><em>' + name + '</em></a>').appendTo('#anchorsbar2');

            $(this).parent().parent().find('option[selected]:first').remove();

        }
        return false
    });

    function lighting(el) {
        el.addClass('lighting');
        setTimeout(function () { el.removeClass('lighting') }, 2000);
    }

    function validateline(line) {

        line.find('select').each(function () {
            if ($(this).hasClass('season')) {
                var txt = $(this).find('option[selected]').text();
                if (txt == 'Лето') { var cont = '<img src="img/ico-sun-w.gif />' }
                else if (txt == 'Зима') { var cont = '<img src="img/ico-winter-w.gif" />' }
                else if (txt == 'Всесезонный') { var cont = '<img src="img/ico-as.png" />' }
                else { var cont = '&mdash;' }
                $(this).parent().find('span.procherk').html(cont).removeClass('incorrect');
            }
            else {
                var txt = $(this).find('option[selected]').text();
                $(this).parent().find('span.procherk').text(txt).removeClass('incorrect');
            }
        });
        line.find(':text').each(function () {
            var txt = $(this).val();
            $(this).parent().find('span.procherk').text(txt).removeClass('incorrect');
        });
        line.find('span.procherk').each(function () {
            if ($(this).text() == '—') {
                $(this).html('<b>&nbsp;</b>').addClass('incorrect');
            }
        });
    }
    function unactivated(el) {
        if (el) {
            validateline(el);
            el.removeClass('activated');
        }
        else {
            $('#mlist tr.activated').each(function () {
                validateline($(this));
                $(this).removeClass('activated');
            });
        }
    }
    $('#mlist').find('a.idel').live('mouseup keyup', function (event) {
        var key = event.keyCode || event.which;
        if ($(event.target).is('a') && (event.type == 'mouseup' || (event.type == 'keyup' && key == 13))) {
            if (confirm("Вы уверены, что хотите удалить данную запись?")) {
                var tb = $(this).parents('tbody');
                $(this).parent().parent().remove();
            }
            return false
        }
    }).live('blur', function () {
        var par = $(this).parents('tr.ln');
        $(window).one('keyup', function (e) {
            var key = e.keyCode || e.which;
            if (!e.shiftKey) {
                if (key == 9) {
                    validateline(par);
                    unactivated(par);
                    lineprocess(par.next());
                    par.next().click();
                    par.next().find('select:first').focus();
                }
            }
        });
    }).live('focus', function () {
        var par = $(this).parents('tr.ln');
        validateline(par.next());
        unactivated(par.next());
        lineprocess(par);
        par.click();

    });

    $('#mlist').find('a.iadd').live('mouseup keyup', function (event) {
        var key = event.keyCode || event.which;
        if (event.type == 'mouseup' || (event.type == 'keyup' && key == 13)) {
            event.stopPropagation();
            if ($(this).parents('tr').hasClass('activated')) {

                if (sortingType == 'byManufacture') {
                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
							'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
							'<td><span class="procherk">—</span><select class="season"><option value="0">—</option><option value="1">Лето</option><option value="2">Зима</option><option value="3">Всесезонный</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">195</option><option value="2">195</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">50</option><option value="2">50</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">R15</option><option value="2">R16</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">85</option><option value="2">87</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">H</option><option value="2">V</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Россия</option><option value="2">Раша</option></select></td>' +
							'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
							'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
							'<td><a href="#" class="iclone"><!-- --></a></td>' +
							'<td><a href="#" class="iadd"><!-- --></a></td>' +
							'<td><a href="#" class="idel"><!-- --></a></td>' +
						'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                if (sortingType == 'byRadius') {
                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
							'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">195</option><option value="2">195</option></select></td>' +
							'<td><span class="procherk">—</span><select class="season"><option value="0">—</option><option value="1">Лето</option><option value="2">Зима</option><option value="3">Всесезонный</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">50</option><option value="2">50</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">R15</option><option value="2">R16</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">85</option><option value="2">87</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">H</option><option value="2">V</option></select></td>' +
							'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Россия</option><option value="2">Раша</option></select></td>' +
							'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
							'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
							'<td><a href="#" class="iclone"><!-- --></a></td>' +
							'<td><a href="#" class="iadd"><!-- --></a></td>' +
							'<td><a href="#" class="idel"><!-- --></a></td>' +
						'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                if (sortingType == 'bySeason') {

                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
								'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">195</option><option value="2">195</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Лето</option><option value="2">Зима</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">50</option><option value="2">50</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">R15</option><option value="2">R16</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">85</option><option value="2">87</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">H</option><option value="2">V</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Россия</option><option value="2">Раша</option></select></td>' +
								'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td><a href="#" class="iclone"><!-- --></a></td>' +
								'<td><a href="#" class="iadd"><!-- --></a></td>' +
								'<td><a href="#" class="idel"><!-- --></a></td>' +
							'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                if (sortingType == 'byDiskManufacture') {
                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
								'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Литой</option><option value="2">Стальной</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">6</option><option value="2">7</option><option value="2">7.5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">15</option><option value="2">16</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">4</option><option value="2">5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">114.3</option><option value="2">139.5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">30</option><option value="2">40</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
								'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td><a href="#" class="iclone"><!-- --></a></td>' +
								'<td><a href="#" class="iadd"><!-- --></a></td>' +
								'<td><a href="#" class="idel"><!-- --></a></td>' +
							'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                if (sortingType == 'byDiskDiam') {
                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
								'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Литой</option><option value="2">Стальной</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">6</option><option value="2">7</option><option value="2">7.5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">4</option><option value="2">5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">114.3</option><option value="2">139.5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">30</option><option value="2">40</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
								'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td><a href="#" class="iclone"><!-- --></a></td>' +
								'<td><a href="#" class="iadd"><!-- --></a></td>' +
								'<td><a href="#" class="idel"><!-- --></a></td>' +
							'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                if (sortingType == 'byDiskType') {
                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
								'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">6</option><option value="2">7</option><option value="2">7.5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">14</option><option value="2">15</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">114.3</option><option value="2">139.5</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">30</option><option value="2">40</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
								'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td><a href="#" class="iclone"><!-- --></a></td>' +
								'<td><a href="#" class="iadd"><!-- --></a></td>' +
								'<td><a href="#" class="idel"><!-- --></a></td>' +
							'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                if (sortingType == 'byAccum') {
                    var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

                    $('<tr class="ln">' +
								'<td class="fst"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">Прямая</option><option value="2">Обратная</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">62</option><option value="2">74</option><option value="2">190</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">680</option><option value="2">1050</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">276</option><option value="2">517</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">175</option><option value="2">150</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">190</option><option value="2">270</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">21</option><option value="2">55</option></select></td>' +
								'<td><span class="procherk">—</span><select><option value="0">—</option><option value="1">есть</option><option value="2">нет</option></select></td>' +
								'<td class="shtuk"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td class="pric"><span class="procherk">—</span><input type="text" value="—" /></td>' +
								'<td><a href="#" class="iclone"><!-- --></a></td>' +
								'<td><a href="#" class="iadd"><!-- --></a></td>' +
								'<td><a href="#" class="idel"><!-- --></a></td>' +
							'</tr>').insertAfter($(this).parents('tr.ln'));
                }

                lighting($(this).parents('tr.ln').next());

                linescol++;
                if (linescol >= activationjumpcol) {
                    $('a.gotodown,div.gotoup').show();
                }
                var par = $(this).parents('tr');
                validateline(par);
                unactivated(par);
                lineprocess(par.next());
                setTimeout(function () { par.next().click(); par.next().find('select:first').focus(); }, 50);
            }
            event.preventDefault();
        }
    });

    $('#mlist').find('a.iclone').live('mouseup keyup', function (event) {
        var key = event.keyCode || event.which;
        if (event.type == 'mouseup' || (event.type == 'keyup' && key == 13)) {
            if ($(this).parents('tr').hasClass('activated')) {
                validateline($(this).parents('tr.ln'));
                $(this).parents('tr.ln').clone().removeClass('activated').insertAfter($(this).parents('tr.ln'));

                lighting($(this).parents('tr.ln').next());

                linescol++;
                if (linescol >= activationjumpcol) {
                    $('a.gotodown,div.gotoup').show();
                }

                $(this).parents('tr.ln').next().find('select').each(function () {
                    var txt = $(this).prev().text();
                    $(this).find('option').each(function () {
                        if ($(this).text() == txt) { $(this).attr('selected', 'true') }
                        return true;
                    });
                });
                var par = $(this).parents('tr');

                validateline(par);
                unactivated(par);
                lineprocess(par.next());
                setTimeout(function () { par.next().click(); par.next().find('select:first').focus(); }, 50);
            }


            return false
        }
    });

    function lineprocess(theTR) {
        theTR.unbind('click').click(function (e) {
            if (!$(e.target).is('select') && !$(this).hasClass('active')) {
                unactivated();
                $(this).addClass('activated');
                if ($(e.target).is('span') || $(e.target).is('td')) { $(this).find('select:first').focus() }
            }
            return false
        });

    }

    $.listen("click", "a.anaddline", function (e) {
        linescol++;
        $('#secondaddinfo .war').parent().remove();
        $('#priceblockleft').show();
        if (hasline == 0) {
            $('td.addproductselect').parents('table').width('100%');
            $('div.grouped').show().parent().width('100%');
            hasline = 1;
        }

        if (sortingType == 'byManufacture') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select class="season"><option value="0">—</option><option value="1">Лето</option><option value="2">Зима</option><option value="3">Всесезонный</option></select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select><option value="0">—</option><option value="1">195</option><option value="2">195</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">50</option><option value="2">50</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">R15</option><option value="2">R16</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">85</option><option value="2">87</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">H</option><option value="2">V</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Россия</option><option value="2">Раша</option></select></td>' +
					'<td class="shtuk lnn9"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn11"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn12"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }

        if (sortingType == 'byRadius') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select><option value="0">—</option><option value="1">195</option><option value="2">195</option></select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select class="season"><option value="0">—</option><option value="1">Лето</option><option value="2">Зима</option><option value="3">Всесезонный</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">50</option><option value="2">50</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">R15</option><option value="2">R16</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">85</option><option value="2">87</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">H</option><option value="2">V</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Россия</option><option value="2">Раша</option></select></td>' +
					'<td class="shtuk lnn9"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn11"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn12"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }

        if (sortingType == 'bySeason') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select><option value="0">—</option><option value="1">195</option><option value="2">195</option></select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Лето</option><option value="2">Зима</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">50</option><option value="2">50</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">R15</option><option value="2">R16</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">85</option><option value="2">87</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">H</option><option value="2">V</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Россия</option><option value="2">Раша</option></select></td>' +
					'<td class="shtuk lnn9"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn11"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn12"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }

        if (sortingType == 'byDiskManufacture') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Литой</option><option value="2">Стальной</option></select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select><option value="0">—</option><option value="1">6</option><option value="2">7</option><option value="2">7.5</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">15</option><option value="2">16</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">4</option><option value="2">5</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">114.3</option><option value="2">139.5</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">30</option><option value="2">40</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
					'<td class="shtuk lnn9"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn11"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn12"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }

        if (sortingType == 'byDiskDiam') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Литой</option><option value="2">Стальной</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">6</option><option value="2">7</option><option value="2">7.5</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">4</option><option value="2">5</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">114.3</option><option value="2">139.5</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">30</option><option value="2">40</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
					'<td class="shtuk lnn9"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn11"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn12"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }

        if (sortingType == 'byDiskType') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select><option value="0">—</option><option value="1">6</option><option value="2">7</option><option value="2">7.5</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">14</option><option value="2">15</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">114.3</option><option value="2">139.5</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">30</option><option value="2">40</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">77.7</option><option value="2">53.7</option></select></td>' +
					'<td class="shtuk lnn9"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn11"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn12"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }

        if (sortingType == 'byAccum') {
            var options = '<option value="1">Name</option>'; // тут надо сделать функцию дергаюшую модели по производителю

            $('<tr class="ln">' +
					'<td class="fst lnn1"><span class="procherk">—</span><select><option value="0">—</option>' + options + '</select></td>' +
					'<td class="lnn2"><span class="procherk">—</span><select><option value="0">—</option><option value="1">Прямая</option><option value="2">Обратная</option></select></td>' +
					'<td class="lnn3"><span class="procherk">—</span><select><option value="0">—</option><option value="1">62</option><option value="2">74</option><option value="2">190</option></select></td>' +
					'<td class="lnn4"><span class="procherk">—</span><select><option value="0">—</option><option value="1">680</option><option value="2">1050</option></select></td>' +
					'<td class="lnn5"><span class="procherk">—</span><select><option value="0">—</option><option value="1">276</option><option value="2">517</option></select></td>' +
					'<td class="lnn6"><span class="procherk">—</span><select><option value="0">—</option><option value="1">175</option><option value="2">150</option></select></td>' +
					'<td class="lnn7"><span class="procherk">—</span><select><option value="0">—</option><option value="1">190</option><option value="2">270</option></select></td>' +
					'<td class="lnn8"><span class="procherk">—</span><select><option value="0">—</option><option value="1">21</option><option value="2">55</option></select></td>' +
					'<td class="lnn9"><span class="procherk">—</span><select><option value="0">—</option><option value="1">есть</option><option value="2">нет</option></select></td>' +
					'<td class="shtuk lnn10"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="pric lnn11"><span class="procherk">—</span><input type="text" value="—" /></td>' +
					'<td class="lnn12"><a href="#" class="iclone"><!-- --></a></td>' +
					'<td class="lnn13"><a href="#" class="iadd"><!-- --></a></td>' +
					'<td class="lnn14"><a href="#" class="idel"><!-- --></a></td>' +
				'</tr>').insertBefore($(this).parents('.addline').parents('tr'));
        }


        validateline($('#mlist tr.activated'));

        if (linescol >= activationjumpcol) {
            $('a.gotodown,div.gotoup').show();
        }

        var thatline = $(this).parent().parent().parent().parent().parent().parent().prev();
        lineprocess(thatline);
        thatline.click();
        thatline.find('>td:first>select').focus();

        e.preventDefault();
    });

    $('a.gotodown').click(function () {
        $('body').scrollTo({ left: '0', top: '100%' }, 400);
        return false
    });
    $('div.gotoup a').click(function () {
        $('body').scrollTo({ left: '0', top: '0' }, 400);
        return false
    });

    var theTable = $('#mlist')
    $("#filter").keyup(function () {
        $.uiTableFilter(theTable, this.value);
        if ($(this).val() != '') {
            $('#mlist > tbody:not(:first)').each(function () {
                $(this).show();
                if ($(this).find('tr.ln:visible').size() <= 0) { $(this).hide() }
            });
        }
        else {
            $('#mlist tbody').show();
        }
    })
    $('#filter-form').submit(function () {
        theTable.find("> tbody > tr.ln:visible").mousedown();
        return false;
    }).focus();
    $('#filter-form input').focus(function () {
        if ($(this).val() == 'Быстрый поиск') {
            $(this).val('');
        }
    }).blur(function () {
        if ($(this).val() == '') {
            $(this).val('Быстрый поиск');
        }
    });

    $('#anchorsbar').each(function () {
        var x = $('#anchors').position().left;
        $(this).css('left', x - 16);
    });
    $(window).resize(function () {
        $('#anchorsbar').each(function () {
            var x = $('#anchors').position().left;
            $(this).css('left', x - 16);
        });
    });

    $('#refresh_price').click(function () {
        var el = $(this).next();
        el.show();
        setTimeout(function () {
            el.fadeOut('slow');
        }, 5000);
    });

    $('a.cchange').click(function () {
        $(this).parents('table').hide().next().show();
        return false
    });
    $('a.csave').click(function () {
        var par = $(this).parents('table');
        var sum = '+' + par.find('input').val() + par.find(':selected').text();
        $(this).parents('table').prev().find('td:eq(1) a').text(sum).end().show();
        par.hide();
        return false
    });
    $('a.kchange').click(function () {
        var par = $(this).parents('table');
        var cr = $(this).find('span').text();
        $(this).hide().next().show();
        $('<span>' + cr + '</span>').insertBefore($('a.ksave').show());
        return false
    });
    $('a.ksave').click(function () {
        var par = $(this).parents('table');
        var kurs = par.find('input').val();
        var cr = par.find('span:first').text();
        par.find('a.kchange').html(kurs + '&nbsp;<span>' + cr + '</span>').show().next().hide();
        $(this).hide().prev().remove();
        return false
    });
    $('div.copylink a').toggle(function () {
        $(this).next().show();
    }, function () {
        $(this).next().hide();
    });
    $('#usenbrb').change(function () {
        $('#kurs').find('td.curs .kchange').html('3000 <span>&nbsp;BLR</span>');
    });
    $('#blrcur').click(function () {
        if (!$(this).is(':checked')) {
            $('#mlist tr.ln').each(function () {
                var el = $(this).find('td:eq(9)');
                if (parseInt(el.find(':text').val())) {
                    var kurs = parseInt($('#kurs td.curs span').text());
                    var newcost = String(parseInt(el.find(':text').val()) * kurs).replace(/(\w\w\w)$/gi, ' $1').replace(/(\w\w\w)\s(\w\w\w)$/gi, ' $1 $2').replace(/^\s+|\s+$/g, '');
                    el.find('.procherk').text(newcost);
                    el.find(':text').val(newcost);
                }
            });
        }
    });
    $('#usdcur').click(function () {
        if (!$(this).is(':checked')) {
            $('#mlist tr.ln').each(function () {
                var el = $(this).find('td:eq(9)');
                if (parseInt(el.find(':text').val())) {
                    var kurs = parseInt($('#kurs td.curs span').text());
                    var newcost = parseInt(parseInt(el.find(':text').val().replace(/\s/, '').replace(/\s/, '')) / kurs);
                    el.find('.procherk').text(newcost);
                    el.find(':text').val(newcost);
                }
            });
        }
    });

    if ($('body').width() < 1200) { $('#minWidth').addClass('smallest'); } else { $('#minWidth').removeClass('smallest'); }
    $(window).resize(function () { if ($('body').width() < 1200) { $('#minWidth').addClass('smallest'); } else { $('#minWidth').removeClass('smallest'); } });

    $('#mlist th').each(function (i) {
        $(this).attr('index', i);
    });
    function saz(a, b) {
        if (a[1] > b[1])
            return 1;
        else if (a[1] < b[1])
            return -1;
        else
            return 0;
    }
    function sza(a, b) {
        if (a[1] > b[1])
            return -1;
        else if (a[1] < b[1])
            return 1;
        else
            return 0;
    }


    $('#mlist th a').click(function () {
        var sortType = 1;
        if ($(this).hasClass('a-z')) {
            sortType = 1;
            $(this).removeClass().addClass('z-a');
        }
        else if ($(this).hasClass('z-a')) {
            sortType = 0;
            $(this).removeClass().addClass('a-z');
        }
        else {
            $('#mlist th a').removeClass();
            $(this).removeClass().addClass('z-a');
        }
        var index = $(this).parent().attr('index');

        $('#mlist > tbody').each(function () {
            var rows = [];
            var par = $(this);
            $(this).find('tr.ln').each(function (i) {
                $(this).attr('num', i);
                rows[i] = [i, $(this).find('td:eq(' + index + ') span.procherk').text().toLowerCase()];
            });

            (sortType == 0) ? rows.sort(saz) : rows.sort(sza);
            var next;
            for (var i = 0; i < rows.length; i++) {
                if (i == 0) {
                    next = $(par).find('tr[num="' + rows[i][0] + '"]');
                    next.insertAfter(par.find('tr.fabr'));

                }
                else {
                    var el = $(par).find('tr[num="' + rows[i][0] + '"]');
                    el.insertAfter(next);
                    next = el;
                }
            }

            $(this).find('tr.ln').each(function (i) {
                $(this).removeAttr('num');
            });

        });
        lineprocess();
        return false
    });

    $('select.secondgroup').change(function () {
        var elm = $('#mlist tr.ln td.shtuk');
        if ($(this).val() == 'yes') {
            elm.each(function () {
                if ($(this).find('span.procherk').text() == '—' || $(this).find('span.procherk').text() == '0' || $(this).find('span.procherk b').size() > 0) {
                    $(this).parent().hide();
                }
                else {
                    $(this).parent().show();
                }
            });
        }
        else if ($(this).val() == 'no') {
            elm.each(function () {
                if ($(this).find('span.procherk').text() != '0') {
                    $(this).parent().hide();
                }
                else {
                    $(this).parent().show();
                }
            });
        }
        if ($(this).val() == 'all') {
            elm.each(function () {
                $(this).parent().show();
            });
        }
    });

    bindaddcomments();

    if (!$.browser.msie) {
        $('form.wrcom').unbind('submit').live('submit', function () {
            var valid = true;
            if ($(this).find('.tx:first').val().length < 3) { $(this).find('.tx:first').next().css('display', 'inline-block'); valid = false }

            function isValidEmail(email) { return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email); }
            if (!isValidEmail($(this).find('.tx:last').val())) { $(this).find('.tx:last').next().css('display', 'inline-block'); valid = false }

            if ($(this).find('textarea').val().length < 2) { $(this).find('textarea').parent().next().css('display', 'block'); valid = false }

            if (valid) {
		        $(this).ajaxSubmit({
		            success: function () {
		                alert('Спасибо! Ваш комментарий был успешно добавлен.');
		                bindaddcomments();
		            },
		            target: '#block5'
        });
		        return false
    }

            return false
        });
    }
    else {
        $('.addcommentForm .btn').unbind('click').live('click', function () {

            var form = $(this).parents('form:first');

            var valid = true;
            if (form.find('.tx:first').val().length < 3) { form.find('.tx:first').next().css('display', 'inline-block'); valid = false }

            function isValidEmail(email) { return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email); }
            if (!isValidEmail(form.find('.tx:last').val())) { form.find('.tx:last').next().css('display', 'inline-block'); valid = false }

            if (form.find('textarea').val().length < 2) { form.find('textarea').parent().next().css('display', 'block'); valid = false }

            if (valid) {
		        form.ajaxSubmit({
		            success: function () {
		                alert('Спасибо! Ваш комментарий был успешно добавлен.');
		                bindaddcomments();
		            },
		            target: '#block5'
        });
    }
            
            return false
        });
    }

    $('a.collapse').click(function () {
        if (!$(this).hasClass('closed')) {
            $(this).addClass('closed');
            $('#cab div.lf:first').hide();
            $('#cab div.rg:first,#cab div.rg2:first').css('margin-left', '9px');
        }
        else {
            $(this).removeClass('closed');
            $('#cab div.lf:first').show();
            $('#cab div.rg:first').css('margin-left', '-160px');
            $('#cab div.rg2:first').css('margin-left', '160px');
        }
        return false
    });

    $(window).resize(function () {
        $('.modellist th em').each(function () {
            $(this).width($(this).parent().width() + 'px');
        });
    });

    $('div.pop a.clz').click(function () {
        $('#ovl').remove();
        $(this).parents('.pop').hide();
        return false
    });
    $('span.allproducers').click(function () {
        $('<div id="ovl"></div>').prependTo('body');
        $('#aproducers').show();
        $('#aproducers div.cont').masonry({ columnWidth: 180 }); ;
    });
    $('span.selectauto').click(function () {
        $('<div id="ovl"></div>').prependTo('body');
        $('#selectcar').show();
    });
    $('#selectcar .btn').click(function () {
        var car = 'RolsRoys, 2010, 16.4V';
        $('span.selectauto').text(car);
        $('#ovl').remove();
        $(this).parents('.pop').hide();
        $('span.remcar').css({ display: 'inline-block' });

        $('div.def').show();
        $('.b-search .sizes-tbl .ch-select').show().next().hide();
    });
    $('span.remcar').click(function () {
        $('span.selectauto').text('Выбрать авто').next().hide();
        $('div.def').hide();
        $('.b-search .sizes-tbl .ch-select').hide().next().show();
    });
    $('#typeraz').asmSelect({
        listType: 'ul',
        removeLabel: 'Удалить'
    });
    $('div.ab4 span.clz').click(function () {
        $('div.ab1').remove();
    });
    $('span.next25').toggle(function () {
        $(this).prev().find('.hide').removeClass('hide').addClass('show');
        $(this).text('Скрыть типоразмеры');
    }, function () {
        var els = $(this).prev().find('.show');
        var siz = els.size();
        $(this).prev().find('.show').removeClass('show').addClass('hide');
        $(this).text('Еще ' + siz + ' типоразмеров');
    });
    $('div.nmline .i3 a').toggle(function () {
        $('div.resBlock div.inf').hide();
        $(this).text('Показать описание');
    }, function () {
        $('div.resBlock div.inf').show();
        $(this).text('Скрыть описание');
    });
    $('a.afv').mouseenter(function () {
        var par = $(this).parents('.fv');
        par.removeClass('novis');
        $('div.show-on select').css('visibility', 'hidden');
    }).click(function () { return false });

    $('div.favr').mouseleave(function () {
        var par = $(this).parent();
        par.addClass('novis');
        $('div.show-on select').css('visibility', 'visible');
    });

    $('div.by-lyst a').click(function () {
        if (!$(this).hasClass('checked')) {
            $(this).text('Картинками').addClass('checked');
            $('div.resBlock').find('span.tp,div.im,div.inf').hide();
            $('a.hideinfo').css('visibility', 'hidden');
        }
        else {
            $(this).text('Списком').removeClass('checked');
            $('div.resBlock').find('span.tp,div.im,div.inf').show();
            $('a.hideinfo').css('visibility', 'visible');
        }
        return false
    });

    function bindaddcomments() {
        $('a.addcom').click(function () {
            var id = $(this)[0].id.replace('addcom-', '');
            if (!$(this).hasClass('opened')) {
            	$(this).addClass('opened');
                $('.comment div.addcommentForm').remove();
                $('em.err').hide();
                var newform = $('div.addcommentForm').clone();
                newform.find('textarea,:text').val('').end().insertAfter($(this).parent().next());
                var newform = newform.find('form');
                newform[0].id = 'addcomment-' + id;
                newform[0].action += '/' + id;

				newform.submit(function(){
		            var valid = true;
		            if (newform.find('.tx:first').val().length < 3) { newform.find('.tx:first').next().css('display', 'inline-block'); valid = false }

		            function isValidEmail(email) { return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email); }
		            if (!isValidEmail(newform.find('.tx:last').val())) { newform.find('.tx:last').next().css('display', 'inline-block'); valid = false }

		            if (newform.find('textarea').val().length < 2) { newform.find('textarea').parent().next().css('display', 'block'); valid = false }

		            if (valid) {
				        newform.ajaxSubmit({
                    success: function () {
                        alert('Спасибо! Ваш комментарий был успешно добавлен.');
                        bindaddcomments();
                    },
                    target: '#block5'
				        });
            }
		        
		            return false
                
				});
                
            }
            else {
                $('.comment div.addcommentForm').remove();
                $('a.addcom').removeClass('opened');
            }
            return false
        });
        $('input.canc').live('click', function () {
            $(this).parents('div.addcommentForm').remove();
            $('a.addcom').removeClass('opened');
        });
        $('form.wrcom textarea,form.wrcom :text').live('keyup', function () {
            $(this).parents('form').find('em.err').hide();
        });

        if($('#addcomment').length > 0)
        $('#addcomment').ajaxForm({
            success: function () {
                alert('Спасибо! Ваш комментарий был успешно добавлен.');
                bindaddcomments();
            },
            target: '#block5'
        });
        var index = document.location.href.indexOf('#');
        if (index > 0) {
            var sub = document.location.href.substr(index + 1, document.location.href.length - index - 1);
            if (sub != 'block1') {
                $('a#a-' + sub).click();
                opentab('#block5');
            }
        }

    }
    
    $('#pricebar .opentab').click(function () {
		$('#tabsbar a[href=#block2]').click();
        return false
    });

});

