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}});var RecentGoods_class=new Class({catalog:null,Class:'RecentGoods_class',options:{count_item:3,URL:'http://my.rozetka.com.ua/recent_goods/',tpl:'',cookie_duration:183,url:'/cgi-bin/recent_goods.php'},is_updated:0,existent_goods_id:[],initialize:function(options){this.setOptions(options);if(S.checkup)this.onLoadS(S);S.addEvent('loadS',this.onLoadS.bind(this))},init:function(id){if(this._isAllow()){this.elem=$(id);if($defined(this.S)&&$defined(this.goods)){this.update()}else if(Cookie.get("recent_goods")&&!Cookie.get("sid")){this.renewS()}}},_isAllow:function(){if(!$defined(this.options.users_quota)){var is_allow=true}else if(this.options.users_quota==0){var is_allow=false}else{var uid=Cookie.get('uid');var is_allow=(uid&&!(crc32(uid)%this.options.users_quota))}return is_allow},onLoadS:function(){if($defined(S.data)&&$defined(S.data.recent_goods)){this.S=S.data.recent_goods}else if(Cookie.get("recent_goods")){this.renewS()}if(this.S){this.goods=[];with(this.S)for(var key in records){if(!$defined(this.goods[key])&&$type(records[key])=='object'){this.goods.include(records[key]);this.existent_goods_id.include(this.goods[key].id)}};this.update()}},update:function(){if($defined(this.elem)&&!this.is_updated&&this.goods){var goods=this.goods.filter(function(item,key){return key<this.options.count_item}.bind(this));var node={};node.title='Просмотренные товары';node.href='http://my.rozetka.com.ua/recent_goods/';this.elem.setHTML(App.getHTML(this.options.tpl,{goods:goods,node:node}));this.onUpdate(goods);this.is_updated=1}},onUpdate:function(items){},add:function(id){if(id&&this._isAllow()){var cookie_str=Cookie.get("recent_goods")?Cookie.get("recent_goods"):'';var recent_goods_ids=cookie_str.split(/,/);if(!recent_goods_ids.contains(id.toString())){cookie_str=cookie_str?cookie_str+','+id:id;Cookie.set("recent_goods",cookie_str,{duration:this.options.cookie_duration,domain:'.rozetka.com.ua',path:'/'});this.renewS()}}},renewS:function(){S.renew(this.options.url)}});RecentGoods_class.implement(new Options,new Events);var RozetkaRecentGoods_class=RecentGoods_class.extend({onUpdate:function(items){items.each(function(item,key){ElementsPerfomance.setTrackEvent('recent_goods_item_'+item.id,item.href,'recent_goods',key+1)})}});var BigPromo_class=new Class({Class:'BigPromo_class',banner:{},banner_place:{},active_page_key:0,TimerChangePage:null,TimerStartSlideShow:null,options:{periodSlideShow:5000,delayAfterClick:120000,tpl:'{var count=0}\r\n<ul class=\"items\" name=\"images\">\r\n{for page in pages}\r\n\t{if !count}\r\n\t\t<li class=\"active\"><a href=\"${page.url}\"><img src=\"${page.src}\" width=\"${page.width}\" height=\"${page.height}\" alt=\"${page.alt}\" \/><\/a><\/li>\r\n\t{else}\r\n\t\t<li><a href=\"${page.url}\"><img src=\"${page.src}\" width=\"${page.width}\" height=\"${page.height}\" alt=\"${page.alt}\" \/><\/a><\/li>\r\n\t{\/if}\r\n\t{var count=count+1}\r\n{\/for}\r\n<\/ul>\r\n{var count_pages=1}\r\n<ul class=\"pages\" name=\"pages\">\r\n{if count > 1}\r\n\t{for page in pages}\r\n\t\t{if count_pages == 1}\r\n\t\t\t<li class=\"active\"><a href=\"#\">&nbsp;<\/a><\/li>\r\n\t\t{else}\r\n\t\t\t<li><a href=\"#\">&nbsp;<\/a><\/li>\r\n\t\t{\/if}\r\n\t\t{var count_pages=count_pages+1}\r\n\t{\/for}\r\n{\/if}\r\n<\/ul>'},initialize:function(id_banner_place,banner,place){if(banner){this.banner=banner;this.place=place;this.banner_place=$(id_banner_place);this.banner_place.setHTML(App.getHTML(this.options.tpl,this.banner));this.startSlideShow();this.activePaginator();this.addEventOnImagesClick()}},startSlideShow:function(){if(this.TimerChangePage)$clear(this.TimerChangePage);this.TimerChangePage=this.changePage.periodical(this.options.periodSlideShow,this)},stopSlideShow:function(){$clear(this.TimerChangePage)},activePaginator:function(){this.images=this.banner_place.getElement('ul[name=images]').getElements('li');this.pages=this.banner_place.getElement('ul[name=pages]').getElements('li');this.pages.each(function(item,key){item.addEvent('click',function(e){this.onClickToPage(e,key)}.bind(this))}.bind(this))},onClickToPage:function(e,key){var event=new Event(e).stop();if(this.TimerStartSlideShow)$clear(this.TimerStartSlideShow);this.stopSlideShow();this.setActivePage(key);this.TimerStartSlideShow=this.startSlideShow.delay(this.options.delayAfterClick,this);param=this.getParamFromUrl(this.images[key].getElement("a").getAttribute('href'));App.trackEvent('banners_bigpromo','switch',this.place+' | '+param)},changePage:function(){if(this.pages.length>this.active_page_key+1){this.setActivePage(this.active_page_key+1)}else{this.setActivePage(0)}param=this.getParamFromUrl(this.images[this.active_page_key].getElement("a").getAttribute('href'));App.passiveTrackEvent('banners_bigpromo','passive-switch',this.place+' | '+param)},setActivePage:function(key){if(this.active_page_key!=key){this.images.each(function(item,item_key){if(item_key!=key){item.removeClass('active');this.pages[item_key].removeClass('active')}else{item.addClass('active');this.pages[item_key].addClass('active')}}.bind(this));this.active_page_key=key}},addEventOnImagesClick:function(){this.images.each(function(item,key){item.getElement('a').addEvent('click',function(item){param=this.getParamFromUrl(this.images[key].getElement("a").getAttribute('href'));App.trackEvent('banners_bigpromo','click',this.place+' | '+param)}.bind(this))}.bind(this))},getParamFromUrl:function(url){param=url.match(/utm_campaign=([^&]*)/i);if(param&&param[1]){param=param[1]}else{param=url}return param}});var GetRandomItems_class=new Class({options:{tpl:'',items:[],limit:3},getContent:function(){var items=[];if(this.options.items.length<=this.options.limit){items=this.options.items}else{for(var i=0;i<this.options.limit;i++){var item=this.options.items.getRandom();items.include(item);this.options.items.erase(item)}}return(items.length)?App.getHTML(this.options.tpl,{'items':items}):''}});GetRandomItems_class.implement(new Options());var LightBox_class=Popup_class.extend({data:[],options:{align:'center',valign:'middle',fixheight:true,fixwidth:true,cutcontent:true},setData:function(data,title){this.data=data;this._dataPreload('preview');this._updateBody();if(title)this.getElement('[name=title]').setText(title);this.image=this.getElement('[name=image]');this.controls=this.getElement('[name=controls]');this.data.each(this._getOriginators.bind(this));var max={w:0,h:0};this.data.each(function(item){if(max.w<parseInt(item.original.w))max.w=parseInt(item.original.w);if(max.h<parseInt(item.original.h))max.h=parseInt(item.original.h)});if(this.options.fixheight)this.image.setStyle('height',max.h+'px');if(this.options.fixwidth)this.image.setStyle('width',max.w+'px');if(this.options.cutcontent)this.image.setStyle('overflow','hidden');this._fx=[];this._active=null},_dataPreload:function(size){for(var i=0,l=this.data.length;i<l;i++)$(this.data[i][size].el=new Image(this.data[i][size].w,this.data[i][size].h)).src=this.data[i][size].src},_getOriginators:function(img){if(img.original.src!==''){$$('[href='+img.original.src+']').each(function(a){a.addEvent('click',function(e){new Event(e).stop();this._showImage(img)}.bind(this))},this);this.controls.getElements('[href='+img.original.src+']').each(function(a){img.preview.el.inject(a);a.addEvent('click',function(e){new Event(e).stop();this._showImage(img,1)}.bind(this))},this)}},_showImage:function(img,soft){this.overlayON();if(this._isOpened&&this._active===img)return;if(!img.original.el)this._dataPreload('original');if(!this._isOpened)this.open();if(this._fx[0])this._fx[0].stop();if(this._fx[1])this._fx[1].stop();if(this._active&&soft){this._fx[0]=new Fx.Styles(this.image.getFirst().setStyles({width:this._active.original.w,height:this._active.original.h,'margin-left':this._marginLeft(this._active),'margin-top':this._marginTop(this._active),position:"relative",opacity:1}),{duration:200,transition:Fx.Transitions.Circ.easeOut,onComplete:function(){this._fx[0]=new Fx.Styles(img.original.el.clone().injectTop(this.image.empty()).setStyles({width:img.preview.w+'px',height:img.preview.h+'px','margin-left':img.preview.el.getPosition().x-this.image.getPosition().x,'margin-top':img.preview.el.getPosition().y-this.image.getPosition().y,position:"relative",opacity:0}),{duration:400,transition:Fx.Transitions.Circ.easeOut,onComplete:function(el){el.addEvent('click',this.close.bind(this))}.bind(this)}).start({width:img.original.w,height:img.original.h,'margin-left':this._marginLeft(img),'margin-top':this._marginTop(img),opacity:1})}.bind(this)}).start({width:this._active.preview.w+'px',height:this._active.preview.h+'px','margin-left':this._active.preview.el.getPosition().x-this.image.getPosition().x,'margin-top':this._active.preview.el.getPosition().y-this.image.getPosition().y,opacity:0});this._fx[1]=new Fx.Styles(this._active.preview.el,{duration:200,onComplete:function(){this._fx[1]=new Fx.Styles(img.preview.el,{duration:400,onComplete:function(el){el.setStyle('cursor','default')}}).start({opacity:.5})}.bind(this)}).start({opacity:1});this._active.preview.el.setStyle('cursor','pointer')}else{if(this._active)this._active.preview.el.setOpacity(1);img.original.el.clone().setStyles({'margin-left':this._marginLeft(img),'margin-top':this._marginTop(img),position:"relative"}).inject(this.image.empty()).addEvent('click',this.close.bind(this));this._setActivePreview(img)}this._active=img},_setActivePreview:function(img){img.preview.el.setStyles({cursor:'default',opacity:'0.5'});if($defined(img.preview.el.getParent())&&$defined(img.preview.el.getParent().getParent())&&$defined(img.preview.el.getParent().getParent().getParent())){img.preview.el.getParent().getParent().getParent().addClass('active')}},_marginTop:function(image){switch(this.options.valign){case'top':return 0;case'bottom':return this.image.getSize().size.y-image.original.h;default:return parseInt((this.image.getSize().size.y-image.original.h)/2)}},_marginLeft:function(image){switch(this.options.align){case'left':return 0;case'right':return this.image.getSize().size.x-image.original.w;default:return parseInt((this.image.getSize().size.x-image.original.w)/2)}}});var LightBox=new LightBox_class('<div class=\"lightbox-popup\"> <div class=\"popup-css popup-css-green\"> <div name=\"close\" class=\"close\"><a href=\"#\"><\/a><\/div> <div name=\"content\" id=\"catalog_item${goods_id}\"> <div class=\"center container\"> <h2 name=\"title\"><\/h2> <table class=\"menu-view\"><tr name=\"controls\"> {if data.length>1} {for img in data}<td><a href=\"${img.original.src}\" target=\"_blank\"><\/a><\/td>{\/for} {\/if} <\/tr><\/table> <table class=\"large-image\"> <tr> {if data.length>1} <td class=\"scroll-left\"> <a href=\"#\" id=\"scroll-left\"> <img src=\"http:\/\/i.rozetka.ua\/design\/_.gif\" width=\"40\" height=\"60\" alt=\"&lt;\" align=\"absmiddle\"><span>(&larr;&nbsp;Ctrl)<\/span> <\/a> <\/td> {\/if} <td name=\"image\" class=\"show-foto\"><\/td> {if data.length>1} <td class=\"scroll-right\"> <a href=\"#\" id=\"scroll-right\"> <span>(Ctrl&nbsp;&rarr;)<\/span><img src=\"http:\/\/i.rozetka.ua\/design\/_.gif\" width=\"40\" height=\"60\" alt=\"&gt;\" align=\"absmiddle\"> <\/a> <\/td> {\/if} <\/tr> <tr> {if data.length>1}<td><\/td>{\/if} <td> {if sell_status == \"available\"} {if price_uah > 0} <table class=\"price-label available\"> <tr> <td class=\"buy\"> <div name=\"buy_popup\"><\/div> <\/td> <td class=\"price\"> <div class=\"uah\">${price_uah}<span> \u0433\u0440\u043d.<\/span><\/div> <div class=\"usd\">${price_usd}<\/div> <\/td> <\/tr> <\/table> {\/if} {elseif sell_status == \"limited\"} {if price_uah > 0} <table class=\"price-label available\"> <tr> <td class=\"buy\"> <div name=\"buy_popup\"><\/div> <\/td> <td class=\"price\"> <div class=\"uah\">${price_uah}<span> \u0433\u0440\u043d.<\/span><\/div> <div class=\"usd\">${price_usd}<\/div> <\/td> <\/tr> <\/table> {\/if} {elseif sell_status == \"archive\"} {else} <table class=\"price-label unavailable\"> <tr> <td> <div name=\"waitlist_popup\"><\/div> <\/td> {if price_uah > 0} <td class=\"price\"> <div class=\"uah\">${price_uah}<span> \u0433\u0440\u043d.<\/span><\/div> <div class=\"usd\">${price_usd}<\/div> <\/td> {\/if} <\/tr> <\/table> {\/if} <\/td> {if data.length>1}<td><\/td>{\/if} <\/tr> {if $defined(data) && data[0].description} <tr class=\"img-description\"> {if data.length>1} <td><\/td> {\/if} <td> <p class=\"gray\">*&nbsp;${data[0].description}<\/p> <\/td> {if data.length>1} <td><\/td> {\/if} <\/tr> {\/if} <\/table> <\/div> <\/div> <\/div> <\/div> ');var Promotions_class=new Class({_promotions:{},_additional_info:{},_time_data:{},tpl:'{var left=time_left}\n<div class=\"last-days\">\n\t{if left>24*60}\n\t<div class=\"days\">${Math.floor(left\/(60*24))} ${Math.floor(left\/(60*24))|morphology:[\"\u0434\u0435\u043d\u044c\",\"\u0434\u043d\u044f\",\"\u0434\u043d\u0435\u0439\"]}<\/div>\n\t\u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0430\u043a\u0446\u0438\u0438\n\t{elseif left>60 && left<24*60}\n\t<div class=\"days\">${Math.ceil(left\/60)} \u0447\u0430\u0441${Math.ceil(left\/60)|morphology}<\/div>\n\t\u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0430\u043a\u0446\u0438\u0438\n\t{elseif left<60 && left>0}\n\t<div class=\"days\">${Math.ceil(left)} \u043c\u0438\u043d\u0443\u0442${Math.ceil(left)|morphology:[\"\u0430\",\"\u044b\",\"\"]}<\/div>\n\t\u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0430\u043a\u0446\u0438\u0438\n\t{else}\n\t<div class=\"days\">\u0410\u043a\u0446\u0438\u044f \u043e\u043a\u043e\u043d\u0447\u0435\u043d\u0430<\/div>\n\t{\/if}\n<\/div>',add:function(promotions){this._promotions=promotions},addInfo:function(info){this._additional_info=info},get:function(){return this._promotions},getInfo:function(){return this._additional_info},timeLeft:function(value,id){this._time_data.time_left=null;var step=1000*60;var timeNow=new Date();this._time_data.time_left=(value-timeNow.getTime())/step;$(id).setHTML(App.getHTML(this.tpl,this._time_data));setTimeout(function(){this.timeLeft(value,id)}.bind(this,value,id),step)}});var Promotions=new Promotions_class();App.addOnDomReady(function(){setStyleForPromotions()});function setStyleForPromotions(){var promotions=Promotions.get();var catalog=GoodsCatalog._catalog;for(var i=0;i<catalog.length;i++){if(promotions[catalog[i].id]){if(!catalog[i].elem.hasClass('stock')){catalog[i].elem.addClass('stock')}}}}var RecentGoods=new RozetkaRecentGoods_class({users_quota:'2',tpl:'<div class=\"goods list\"> <div class=\"container small-view\"> <h4>\u0412\u044b \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438<\/h4> {for item in goods} <div class=\"item ${item.sell_status}\" id=\"recent_goods_item_${item.id}\"> <div class=\"img-block\"> <div class=\"image\"> <a href=\"${item.href}\"> <img src=\"${item.attachments.images.medium.url}\"  width=\"${item.attachments.images.medium.width}\"  height=\"${item.attachments.images.medium.height}\" alt=\"\" \/> <\/a> <\/div> <\/div> <div class=\"detail\"> <div class=\"title\"><a href=\"${item.href}\">${item.title}<\/a><\/div> {if item.price != 0 && item.unit_price} <div class=\"price\"> <div class=\"uah\">${item.price} <span>${item.unit_price}<\/span><\/div> <\/div> {\/if} <\/div> <\/div> {\/for} <div class=\"skyblue-links more\"><a href=\"${node.href}\">\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f <span class=\"arrow\">&rarr;<\/span><\/a><\/div> <\/div> <\/div>'});
