PageSourceSearch

https://my-merchants.com/js/allmerchants.js?v=28122018

js my-merchants.com collected 2026-10-07 03:48:42 UTC 6,780 bytes, 256 lines download raw bytes

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.