var Catalog_class=new Class({_class:null,_catalog:null,_queueAdd:null,_id_preff:'',checkup:false,is_updated:false,options:{},initialize:function(item_class,id_preff){this._catalog=[];this._queueAdd=[];this._class=item_class;if(id_preff)this._id_preff=id_preff},add:function(id){var i=this._catalog.push(new this._class(id,this._id_preff+id))-1;this._catalog[i].addEvent('delete',this['delete'].bind(this,id));this._catalog[i].setOptions(this.options);if(this.is_updated)this._catalog[i].update()},addKit:function(id,kit_id,units_ids){var i=this._catalog.push(new this._class(id,this._id_preff+id,kit_id,units_ids))-1;this._catalog[i].addEvent('delete',this['delete'].bind(this,id));this._catalog[i].setOptions(this.options);if(this.is_updated)this._catalog[i].update()},update:function(){this._catalog.each(function(item){item.update()});this.is_updated=1},clean:function(){this._catalog=[]},'delete':function(id){var i=0;var len=this._catalog.length;while(i<len){if(this._catalog[i].id===id){this._catalog.splice(i,1);len--}else{i++}}},toQueueAdd:function(id){this._queueAdd.push(id)},delayedAdd:function(){this.is_updated=1;while(this._queueAdd.length>0)this.add(this._queueAdd.shift())},updateBind:function(obj){this.is_updated=obj.is_updated;obj.addEvent('update',this.update.bind(this));return this}});Catalog_class.implement(new Options);var CatalogItem_class=new Class({options:{dynamicElements:{},activeElements:{},onActionStart:Class.empty,onActionComplete:Class.empty},initialize:function(id,elem){this.id=id;if($type(elem)=='string')elem=$(elem).removeProperty('id');this.elem=$(elem)},onActionComplete:function(e){this.process=0;this.fireEvent('onActionComplete')},'delete':function(){this.elem.remove();this.fireEvent('delete')},update:function(){this.collectionElements(this.options.dynamicElements,'setDynamic');this.collectionElements(this.options.activeElements,'setActive')},collectionElements:function(collection,fnName){for(var name in collection){this.elem[name]=this.elem.getElement('[name='+name+']');if($type(this.elem[name])==='element'){if(fnName==='setActive')this.elem[name].removeEvents();this[fnName](this.elem[name],collection[name])}}},setDynamic:function(elem,tpl){elem.setHTML(App.getHTML(tpl,this))},setActive:function(elem,param){elem.addEvent(param.event?param.event:'click',function(e){e=new Event(e);if(e.type==='click')e.stop();if(!this.process&&(!$defined(param.confirm_tpl)||confirm(App.getHTML(param.confirm_tpl,this)))){this.process=1;this.fireEvent('onActionStart',{action:param.action,initiator:elem});this[param.action](elem)}}.bind(this))}});CatalogItem_class.implement(new Options,new Events);var Goods_class=CatalogItem_class.extend({Class:'Goods_class',id:null,_flagAddToCart:false,_popupAddToCart:null,options:{open_popup:false,popup_tpl:'',popup_content_tpl:'',overlayON:false,popup_floatingY:true},initialize:function(id,elem){this.parent(id,elem);if(typeof Cart!='undefined')Cart.addEvent('actionCompleteForGoods'+this.id,this.onActionComplete.bind(this));if(typeof Comparison!='undefined')Comparison.addEvent('actionCompleteForGoods'+this.id,this.onActionComplete.bind(this));if(typeof Waitlist!='undefined')Waitlist.addEvent('actionCompleteForGoods',this.onActionComplete.bind(this));if(typeof Wishlists!='undefined')Wishlists.addEvent('actionCompleteForGoods',this.onActionComplete.bind(this))},addToComparison:function(){Comparison.addGoods(this.id)},addToWaitlist:function(){Waitlist.addGoods(this.id)},addToWishlist:function(){Wishlists.addGoods(this.id)},deleteFromComparison:function(){Comparison.deleteGoods(this.id)},addToCart:function(){this._flagAddToCart=true;Cart.addGoods(this.id)},deleteFromCart:function(){Cart.deleteGoods(this.id)},inCart:function(){return Cart.inPurchases(this.id)},inWaitlist:function(){return Waitlist.inWaitlist(this.id)},inWishlist:function(){return Wishlists.inWishlist(this.id)},deleteFromWishlist:function(){Wishlists.deleteGoods(this.id)},deleteFromWaitlist:function(){Waitlist.deleteGoods(this.id)},inComparison:function(){return Comparison.goods[this.id]},isPossibilityToCompare:function(){return Comparison.isPossibilityToCompare(this.id)},onActionComplete:function(e){this.parent();if(this.options.open_popup&&this._flagAddToCart){this._popupAddToCart=new Popup_class(this.options.popup_tpl);this._popupAddToCart.setContent(this.options.popup_content_tpl,{newGoods:Cart.goods[this.id][0],cart:Cart});if(this.options.overlayON){this._popupAddToCart.overlayON()}this._popupAddToCart.setOptions({floatingY:this.options.popup_floatingY});this._popupAddToCart.open()}this._flagAddToCart=false}});TehnoshopCatalog_class=Catalog_class.extend({add:function(id,quantity,category){var i=this._catalog.push(new this._class(id,this._id_preff+id))-1;this._catalog[i].addEvent('delete',this['delete'].bind(this,id));this._catalog[i].setOptions(this.options);this._catalog[i].quantity=quantity;this._catalog[i].category=category;if(this.is_updated)this._catalog[i].update()}});var GoodsCatalog=new TehnoshopCatalog_class(Goods_class,'catalog_item');GoodsCatalog.setOptions({dynamicElements:{buy_details:'{if inCart()}\r\n\t<span class=\"in-cart\">\u0423\u0436\u0435 <a href=\"http:\/\/my.tehnoshop.ua\/cart\/\">\u0432 \u043a\u043e\u0440\u0437\u0438\u043d\u0435<\/a><\/span>\r\n{else}\r\n\t<form method=\"POST\" action=\"http:\/\/my.tehnoshop.ua\/cgi-bin\/form.php?r=http%3A%2F%2Fmy.tehnoshop.ua%2Fcart%2F&action=buy\">\r\n\t\t<input type=\"hidden\" value=\"${id}\" name=\"goods_id\" \/>\r\n\t\t<input type=\"submit\" value=\"\u041a\u0443\u043f\u0438\u0442\u044c\"\/>\r\n\t<\/form>\r\n{\/if}',comparison_catalog:'<div class=\"comparison\">\r\n{if inComparison()}\r\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d&nbsp;{if inComparison().section.count>1}<a href=\"${inComparison().section.href}\" class=\"sprite\"><i><\/i>\u043a&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e<\/a>{else}<span class=\"sprite\"><i><\/i>\u043a&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e<\/span>{\/if}\r\n{else}\r\n\t\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c&nbsp;<a href=\"#\"\r\n\t\t\t\t\t name=\"tocomparison\"\r\n\t\t\t\t\t class=\"sprite xhr\"\r\n\t\t\t\t\t onClick=\"_gaq.push([\u0027_trackEvent\u0027, \u0027Goods_\u0421omparison\u0027, \u0027Add goods to comparison (catalog)\u0027, \u0027${category}\u0027]);\"><i><\/i>\u043a&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e<\/a>\r\n{\/if}\r\n<\/div>\r',comparison_details:'<div>\r\n\t<div>\r\n\t{if inComparison()}\r\n\t\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d&nbsp;{if inComparison().section.count>1}<a href=\"${inComparison().section.href}\" class=\"sprite\"><i><\/i>\u0432&nbsp;\u0441\u043f\u0438\u0441\u043e\u043a&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a>{else}\u0432&nbsp;\u0441\u043f\u0438\u0441\u043e\u043a&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f{\/if}\r\n\t{else}\r\n\t\t\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c&nbsp;<a href=\"#\"\r\n\t\t\t\t\t\t name=\"tocomparison\"\r\n\t\t\t\t\t\t class=\"sprite xhr\"\r\n\t\t\t\t\t\t onClick=\"_gaq.push([\u0027_trackEvent\u0027, \u0027Goods_\u0421omparison\u0027, \u0027Add goods to comparison (details)\u0027, \u0027${category}\u0027]);\"><i><\/i>\u0432&nbsp;\u0441\u043f\u0438\u0441\u043e\u043a&nbsp;\u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f<\/a>\r\n\t{\/if}\r\n\t<\/div>\r\n<\/div>'},activeElements:{tocomparison:{action:'addToComparison'}}});GoodsCatalog.updateBind(Cart);
