1var AM={ 2 sort:function(){ 3 var $sortSelect=$("#sort"); 4 $sortSelect.change(function(){ 5 var $sortOption=$sortSelect.find("[value='"+$sortSelect.val()+"']"); 6 if($sortOption.length<0){ 7 return; 8 } 9 //console.log("Going to",$sortOption.attr("link")); 10 location.href=$sortOption.attr("link"); 11 }); 12 var options=["price_ascending","price_descending"]; 13 var initVal=""; 14 for (var o = 0; o < options.length; o++) { 15 if(location.href.indexOf(options[o])>-1){ 16 initVal=options[o]; 17 } 18 } 19 $sortSelect.val(initVal); 20 }, 21 fields:function(){ 22 var $elements=jQuery(".field-input"); 23 $elements.focus(function(){ 24 $(this).parent().addClass("is-focused has-label"); 25 }); 26 $elements.blur(function(){ 27 $parent=$(this).parent(); 28 if($(this).val()==""){ 29 $parent.removeClass("has-label"); 30 } 31 $parent.removeClass("is-focused"); 32 }); 33 }, 34 onScroll:function(callback){ 35 var $content=jQuery('body'); 36 jQuery(window).scroll(_.debounce(function(){ 37 callback($(window).scrollTop()); 38 },100)); 39 }, 40 topScroll:function(){ 41 var $element=jQuery(".top-scroll"); 42 AM.onScroll(function(position){ 43 if(position>300){ 44 $element.addClass("visible"); 45 }else{ 46 $element.removeClass("visible"); 47 } 48 }); 49 $element.on('click',function(){ 50 jQuery('body').scrollTop(0); 51 jQuery(window).scrollTop(0); 52 }); 53 }, 54 countrySelect:function(){ 55 $(".country-select .country").click(function(){ 56 if($(this).index()===0){ 57 return; 58 } 59 var link=$(this).attr("link"); 60 location.href=link; 61 }) 62 }, 63 cookies:function(){ 64 var $cookies=$(".cookies"); 65 var accepted=AM_TOOLS.cookies.get("accepted_cookies"); 66 setTimeout(function(){ 67 if(accepted==null){ 68 $cookies.addClass("visible"); 69 } 70 },2000); 71 var disableCookies=function(){ 72 AM_TOOLS.cookies.set("accepted_cookies","true",365); 73 }; 74 $cookies.click(function(){ 75 disableCookies(); 76 $cookies.removeClass("visible"); 77 }); 78 disableCookies(); 79 }, 80 toggleFilters:function(){ 81 $("#show-filters").click(function(){ 82 $(this).toggleClass("visible"); 83 $sR=$(".search-panels").toggleClass("with-filters"); 84 setTimeout(function(){ 85 $sR.find(".filters-group").toggleClass("auto-height") 86 },450); 87 }); 88 }, 89 productsLoading:function(){ 90 var maxLoading=20; 91 $("[pl-loader]").each(function(){ 92 var $loader=$(this); 93 var url=$loader.attr("pl-loader"); 94 var page=1; 95 $loader.append("<div class='pl-loading'><i class='fa fa-spinner fa-spin fa-3x fa-fw'></i></div>"); 96 $loader.append("<div class='pl-grid-sizer'></div>"); 97 var $moreAction=$($loader.attr("pl-loader-action")); 98 $moreAction.css("display","none"); 99 var $grid=$loader.masonry({ 100 columnWidth:".pl-grid-sizer", 101 itemSelector:".product", 102 percentPosition: true 103 }); 104 var appending=false; 105 var appendProducts=function(callback){ 106 if(appending){ 107 return; 108 } 109 appending=true; 110 $loader.addClass("loading"); 111 $moreAction.css("display","none"); 112 console.log("Loading new products ..."); 113 jQuery.get(url,{page:page},function(html){ 114 var $buffer=$("<div></div"); 115 $buffer.append(html); 116 var toLoad=$buffer.find(".product").length; 117 var loaded=0; 118 console.log("Appending new products "+$buffer.find(".product").length+" ..."); 119 var refresh=function(){ 120 if(loaded===toLoad){ 121 var $products=$buffer.find(".product"); 122 $loader.removeClass("loading"); 123 page++; 124 appending=false; 125 if(callback!==undefined){ 126 callback(); 127 } 128 if(page>=4){ 129 $moreAction.css("display","block"); 130 } 131 } 132 }; 133 $buffer.find(".product").each(function(){ 134 var $product=$(this); 135 var $img=$("<img/>"); 136 $product.find(".image").append($img); 137 $img.load(function() { 138 console.log("img loaded"); 139 $grid.append($product).masonry('appended',$product); 140 loaded++; 141 refresh(); 142 }); 143 $img.error(function () { 144 toLoad--; 145 refresh();
146 }); 147 $img.attr("src",$product.find(".image").attr("src")); 148 }); 149 }); 150 }; 151 $(document).ready(function(){ 152 appendProducts(function(){ 153 $(".page-overlay").css("opacity",0); 154 setTimeout(function(){ 155 $(".page-overlay").remove(); 156 },1000); 157 }); 158 }); 159 $(window).on("scroll", _.throttle(function() { 160 var scrollHeight = $(document).height(); 161 var scrollPosition = $(window).height() + $(window).scrollTop(); 162 var scrollPer=(scrollHeight - scrollPosition) / scrollHeight; 163 if(page<=3 && scrollPer<0.1){ 164 appendProducts(); 165 } 166 },500)); 167 $moreAction.click(function(){ 168 appendProducts(); 169 }); 170 }); 171 }, 172 offersLoading:function(init){ 173 if(init==undefined){ 174 init=false; 175 } 176 var maxLoading=init?20:20; 177 var loaded=0; 178 var $more=$(".more-offers .more"); 179 $(".offers .offer.unloaded").each(function(){ 180 if(loaded>=maxLoading){ 181 return; 182 } 183 184 var $offer=$(this); 185 $offer.css({ 186 display:"inline-block" 187 }); 188 $offer.removeClass("unloaded");
189 $offer.find("[piph]").each(function(){ 190 var $offerImg=$(this); 191 setTimeout(function(){ 192 $offerImg.css({ 193 "background-image":"url('"+$offerImg.attr("piph")+"')" 194 }).removeClass("piph"); 195 },1500); 196 }); 197 loaded++; 198 }); 199 if($(".offers .offer.unloaded").length==0){ 200 $more.css({display:"none"}); 201 } 202 if(init){ 203 $more.click(function(){ 204 $more.addClass("loading"); 205 setTimeout(function(){ 206 AM.offersLoading(); 207 $more.removeClass("loading"); 208 },2000); 209 }); 210 } 211 }, 212 dropDownFilters:function(){ 213 $(".filters-group .filters").each(function(){ 214 var $fGroup=$(this); 215 $fGroup.find(".name").click(function(){ 216 $fGroup.toggleClass("open"); 217 }) 218 }); 219 }, 220 toggleCategories:function(){ 221 $(".search-categories-list-open").click(function(){ 222 $(".search-categories").toggleClass("open"); 223 }) 224 }, 225 toggleCountries:function(){ 226 var $countrySelect=$(".country-select"); 227 $countrySelect.click(function(e){ 228 $countrySelect.toggleClass("open"); 229 }); 230 }, 231 toggleState:function(){ 232 $("[toggleState]").each(function(e){ 233 var $control=$(this); 234 var state=$control.attr("toggleState"); 235 $control.click(function(e){ 236 e.stopPropagation(); 237 $control.toggleClass(state); 238 }); 239 }); 240 }, 241 bootstrap:function(){ 242 AM.sort(); 243 AM.fields(); 244 AM.topScroll(); 245 AM.countrySelect(); 246 AM.cookies(); 247 AM.toggleFilters(); 248 AM.offersLoading(true); 249 AM.dropDownFilters(); 250 AM.toggleCategories(); 251 AM.toggleCountries(); 252 AM.toggleState(); 253 AM.productsLoading(); 254 } 255}; 256AM.bootstrap();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.