var messageY=0;function setMousePosition(){var c=$("items");var a=c.cumulativeOffset()[1];var b=document.documentElement.clientHeight;messageY=document.documentElement.scrollTop+document.body.scrollTop+b/2;if(messageY<a){messageY=a+100;}}var Pager=Class.create();Pager.prototype={initialize:function(c,d,b,a,h,g,f,e){this.button={};
this.iconLoader=g;this.searchedItems=h;this.searchContent=$$(c);this.setPagerValues(b);this.prefix_item="page_";this.setcriterions(a);this.label=$(d);this.strings=e;this.pagerValues=b;this.setPagerButtonTexts(f,e);this.setPagerViewAndListeners();},setPagerButtonTexts:function(c,a){try{this.pager_template=new Template($(c).innerHTML,/(^|.|\r|\n)(\__(\w+)__)/);
}catch(b){}try{this.button["first"]=this.pager_template.evaluate({text:a["first"]});this.button["last"]=this.pager_template.evaluate({text:a["last"]});this.button["next"]=this.pager_template.evaluate({text:a["next"]});this.button["prev"]=this.pager_template.evaluate({text:a["prev"]});}catch(b){this.button["first"]="<<";
this.button["last"]=">>";this.button["next"]=">";this.button["prev"]="<<";}},drawPagers:function(){if(this.pagerValues.countPages>1){var c=this.strings.productsFound.replace("{0}",this.pagerValues.countItems);c=c.replace("{1}",this.pageFrom);c=c.replace("{2}",this.pagerValues.countPages);this.label.innerHTML=c;
}else{var b=this.strings.oneProductFound.replace("{0}",this.pagerValues.countItems);this.label.innerHTML=b;}if(this.countPages==1){return;}var a=true;$A(this.searchContent).each(function(d){this.drawPager(d,a);a=false;}.bind(this),this);this.showPagers();},setPagerViewAndListeners:function(){this.drawPagers();
this.setListeners();},drawPager:function(d,e){var c=[];if(e){c["next"]="<span id ='next_page'";c["first"]="<span id ='first_page'";c["previous"]="<span id ='previous_page'";c["last"]="<span id ='last_page'";}else{c["next"]=c["first"]=c["previous"]=c["last"]="<span";}d.innerHTML="";if(this.left>1){d.insert(c["first"]+" class='"+this.prefix_item+"1 column button' onclick='setMousePosition(event)'>"+this.button["first"]+"</span>"+'<span class="space">&nbsp;&nbsp;&nbsp;</span>');
}if(this.pageFrom>1){d.insert(c["previous"]+" class='"+this.prefix_item+""+(this.pageFrom-1)+" column button' onclick='setMousePosition(event)'>"+this.button["prev"]+"</span>"+'<span class="space">&nbsp;&nbsp;&nbsp;</span>');}var a;for(var b=this.left;b<=this.right;b++){if(b==this.right){a='<span class="column bullet">&nbsp;&nbsp;&nbsp;</span>';
}else{a='<span class="column bullet">&nbsp;&bull;&nbsp;</span>';}if(b==this.pageFrom){d.insert('<span class="'+this.prefix_item+""+b+'  column current">'+b+"</span>"+a);}else{d.insert('<span class="'+this.prefix_item+""+b+" column\" onclick='setMousePosition(event)'>"+b+"</span>"+a);}}if(this.pageFrom<this.countPages){d.insert(c["next"]+" class='"+this.prefix_item+""+(this.pageFrom+1)+" column button' onclick='setMousePosition(event)'>"+this.button["next"]+"</span>"+'<span class="space">&nbsp;&nbsp;&nbsp;</span>');
}if(this.right<this.countPages){d.insert(c["last"]+" class='"+this.prefix_item+""+this.countPages+" column button' onclick='setMousePosition(event)'>"+this.button["last"]+"</span>");}},reDrawPagers:function(a){$A(this.searchContent).each(function(c,b){(c).select(".current")[0].className="";}.bind(this),this);
},setcriterions:function(a){this.style=a.style;this.category=a.category;},setPagerValues:function(a){if(a!=null){this.left=a.left;this.right=a.right;this.pageFrom=a.pageFrom;this.countPages=a.countPages;this.countItems=a.countItems;}else{this.left=1;this.right=1;this.pageFrom=1;this.countPages=1;this.countItems=1;
}},setListeners:function(){$A(this.searchContent).each(function(a){$A(a.childElements()).each(function(b){if($(b).className.indexOf("page_")!=-1){$(b).observe("click",function(c){var d=parseInt(b.className.replace(this.prefix_item,""));this.pageFrom=d;this.searchItemsByPagerParams();}.bind(this),this);
}}.bind(this),this);}.bind(this),this);},hidePagers:function(){$A(this.searchContent).each(function(a){a.parentNode.style.display="none";});},showPagers:function(){$A(this.searchContent).each(function(a){a.parentNode.style.display="";});},searchItemsByPagerParams:function(){this.pagerItemAjaxListener();
},pagerItemAjaxListener:function(){var a="pageFrom="+this.pageFrom+"&ajax=true";if(this.style!="null"){a+="&style="+this.style;}if(this.category!="null"){a+="&category="+this.category;}this.infoPageAjax=new Ajax.Request(this.iconLoader.searchUrl,{parameters:a,onComplete:function(b){this.processReceivedData(b);
this.iconLoader.messagesManager.hide();}.bind(this),onCreate:function(){this.iconLoader.messagesManager.setText($(this.iconLoader.messages["loading"]).innerHTML);this.iconLoader.messagesManager.show();}.bind(this)});},processReceivedData:function(b){var a=[];a=b.responseText.evalJSON();this.searchedItems=a[0];
this.setPagerValues(a[1]);if(this.countPages>1){this.setPagerViewAndListeners();}else{this.hidePagers();}this.iconLoader.setSearchedIcons(this.searchedItems);this.iconLoader.drawSearchedIcons();this.iconLoader.setNewHash(this.searchedItems);this.iconLoader.mergeIcons(true,"icon",true);}};var MessagesManager=Class.create();
MessagesManager.prototype={initialize:function(a){this.template=$(a);this.templateText=$(a+"_text");},setText:function(a){this.templateText.update(a);},show:function(){setMousePosition();$(this.template).setOpacity(1);$(this.template).style.top=messageY+"px";$(this.template).show();},hide:function(a){if(arguments.length==0){a=2;
}Effect.Fade($(this.template),{duration:a});}};var ColumnManager=Class.create();ColumnManager.prototype={initialize:function(){this.column=$$(".main_indent")[0];Event.observe(window,"resize",function(){}.bindAsEventListener(this));}};var loader;var IconLoader=Class.create();IconLoader.prototype={initialize:function(a,c,b){this.searchType=a;
this.searchContent=$(c);this.searchUrl=b;this.ajax={};this.searchedIcons=[];loader=this;},setMessagesManager:function(a){this.messagesManager=a;},setMessages:function(a){this.messages=a;},mergeAllIcons:function(h,c,b){var g=false;for(var f=0;f<c.length;f++){g=false;try{var d=$(h+c[f].id);for(var a=0;
a<b.length;a++){try{if(c[f].id==b[a].id){d.className="column cartbottom opacity20";g=true;break;}}catch(k){}}if(!g){d.className="column cartbottom opacity100";}}catch(k){}}},mergeIcons:function(c,d,h){if(c){var j=cart.cartIcons;cart.cartIcons=cart.cartIcons.compact();if(h||cart.cartIcons.length==0){this.mergeAllIcons(d,loader.searchedIcons,j);
}for(var b=0;b<cart.cartIcons.length;b++){if(h){loader=this;if(loader==null){loader=cart.getLoader("0");}}else{var i=cart.cartIcons[b];var a=i.packName;loader=cart.getLoader(a);}this.mergeAllIcons(d,loader.searchedIcons,j);}cart.setCartEmpty();}try{var g=$("cart_count_items");if(cart.cartIcons.size()>=19||cart.cartIcons.size()==0){$("shopping_cart_row").style.display="none";
}else{$("shopping_cart_row").style.display="block";}g.update("("+cart.cartIcons.size()+")");}catch(f){}},setPager:function(a){this.pager=new Pager(a.pager_class,a.totalLabelId,a.pager_values,a.pager_criterions,this.searchedIcons,this,a.pager_template,a.pager_texts);},setTemplates:function(a,b,d){try{this.icon_template=new Template($(a).innerHTML,/(^|.|\r|\n)(\_(\w+)_)/);
}catch(c){}try{this.tooltip_template=new Template($(b).innerHTML,/(^|.|\r|\n)(\_(\w+)_)/);}catch(c){}try{this.search_params_template=new Template($(d).innerHTML,/(^|.|\r|\n)(\_(\w+)_)/);}catch(c){}},showNoMoneyContent:function(a,b){if(b){this.block=new Element("div",{style:"position:absolute; z-index:100;display:none;padding:0;margin:0; background:white;top:10px;left:10px"});
document.body.appendChild(this.block);this.block.update($(a).innerHTML);Effect.Appear(this.block);}},searchItemsByParams:function(){this.setSearchParams();this.pager.setcriterions({style:$F(this.stylesId),category:$F(this.categoriesId)});this.pager.pageFrom=1;this.pager.searchItemsByPagerParams();},staticSearchItemsByParams:function(){$(this.stylesId).form.submit();
},processAndViewResult:function(){this.drawSearchedIcons();},setSearchedIcons:function(a){this.searchedIcons=a;},drawSearchedIcons:function(a,c,b){if(arguments.length>0){this.drawIcons(this.searchedIcons,this.searchContent,a,c,b);}else{this.drawIcons(this.searchedIcons,this.searchContent,false,true,false);
}},drawIcons:function(e,b,a,d,c){$(b).update("");$A(e).each(function(f){this.drawIcon(f,b,"icon",a,c);if(d){this.setIconDraggable(f,"icon");}}.bindAsEventListener(this));},drawIcon:function(h,j,d,i,k){var c={id:d+h.id,src:h.src,alt:h.alt,title:h.title};j.insert({bottom:this.icon_template.evaluate(c)});
if(i){this.removeBuyIconWidget(h,d);}else{try{$("buyicon"+h.id).observe("click",function(){cart.addIconToShoppingCart(c.id,null,null);}.bindAsEventListener(this),this);}catch(g){}}try{var b=$$("#"+d+h.id+" .info")[0];var f={productNumber:h.productNumber,size:h.size,software:h.software,format:h.format};
var a=this.tooltip_template.evaluate(f);new ToolTip(b,a,{className:"tooltip"});}catch(g){}if(k){this.drawRemoveIconWidget(h,d);}},drawRemoveIconWidget:function(b,d,c){var a=$$("#"+d+b.id+" .remove")[0];a.style.visibility="visible";Event.observe(a,"click",function(){cart.removeIconFromShoppingCart(b,d,c);
}.bindAsEventListener(this),this);},removeBuyIconWidget:function(a,b){try{$$("#"+b+a.id+" .buy")[0].style.display="none";}catch(c){}},setBuyIcon:function(a,c){if(c){try{$(a).observe("click",function(){this.messagesManager.setText($(this.messages["noMoney"]).innerHTML);this.messagesManager.show();this.messagesManager.hide(4);
}.bind(this));}catch(b){}}},setIconDraggable:function(a,b){new Draggable($(b+a.id),{revert:true,reverteffect:function(e,d,c){var f=Math.sqrt(Math.abs(d^2)+Math.abs(c^2))*0.02;new Effect.Move(e,{x:-c,y:-d,duration:f,queue:{scope:"_draggable",position:"end"}});},endeffect:function(c){}});},setParamsListeners:function(a,b){this.stylesId=$(a);
this.categoriesId=$(b);},setSearchParamsParentDiv:function(a){this.searchParamsParentDiv=$(a);},setNewHash:function(b){for(var a=0;a<b.length;a++){searchedIconsArray.set("'"+b[a].id+"'",b[a].packName);}}};var DownloadList=Class.create({initialize:function(e,d,b,c,a){this.messages=$H(e);this.autoRefresh=a;
this.doTooltips();this.url=b;this.template=new Template(c.innerHTML,/(^|.|\r|\n)(\#\s*(\w+)\s*#)/);this.forAjaxItems=$$("."+d);this.timer={};this.doAjax();},doTooltips:function(){this.messages.each(function(b){var a="."+b.key;this.items=$$(a);var c=$(b.value).innerHTML;$A(this.items).each(function(d){new ToolTip(d,c,{className:"tooltip"});
}.bind(this));}.bind(this));},doAjax:function(){var a=1000*this.autoRefresh;this.timer=setInterval(function(){this.doAjaxItems();}.bind(this),a);},doAjaxItems:function(){var b=new Array();var a=0;$A(this.forAjaxItems).each(function(c){b[a++]=c.id;}.bind(this));if(b.length>0){new Ajax.Request(this.url,{method:"post",parameters:{"ids":b.toJSON()},onComplete:function(c){this.onCompleteItems(c.responseText.evalJSON());
}.bindAsEventListener(this)});}},onCompleteItems:function(a){$A(a).each(function(c){if(c["error"]!=null){Window.location="/";}else{var b="";b=this.template.evaluate(c);$(c["id"]).update(b);}}.bind(this));}});var TransactionStatusRefresher=Class.create({initialize:function(c,d,b,a){this.operationId=c;
this.timeout=d;this.status=a;this.url=b;this.timer={};this.startTimer();},setInitialText:function(a){if((a=="Purchases Approved"||a=="Subscription")&&$("orderInfoText")){this.setVisibleElement(false,"orderInfoText");}},startTimer:function(){var a=1000*this.timeout;this.timer=setInterval(function(){this.onTimer();
}.bind(this),a);},onTimer:function(){new Ajax.Request(this.url,{method:"post",parameters:{"operationId":this.operationId,"status":this.status},onComplete:function(a){this.onRequest(a.responseText.evalJSON());}.bindAsEventListener(this)});},onRequest:function(a){if(a["error"]!=null){window.location="/";
}else{if(a["status"]!=this.status){this.status=a["status"];this.setInitialText(this.status);if(a["view"]!=null){$(this.operationId).update(a["view"]);}if(a["topText"]!=null){$("topText").update(a["topText"]);}if(a["bottomText"]!=null){$("bottomText").update(a["bottomText"]);}}if((a["isContinue"]!=null)&&(a["isContinue"]=="false")){clearInterval(this.timer);
}}},setVisibleElement:function(b,a){if(b){document.getElementById(a).style.display="block";}else{document.getElementById(a).style.display="none";}}});
