Error executing template "Designs/Rapido/eCom/Productlist/FGX_MultiSearch_ProductsRender.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_4a50bfb16743460196c64e4ebc33564c.Execute() in C:\Website\Solutions\Files\Templates\Designs\Rapido\eCom\Productlist\FGX_MultiSearch_ProductsRender.cshtml:line 17
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 @using Dynamicweb.Frontend.Devices
3 @using Dynamicweb.Extensibility
4 @using Dynamicweb.Content
5 @using Dynamicweb.Core
6 @using System
7 @using System.Web
8 @using System.Collections.Generic;
9 @using System.Linq
10 @using System.Text.RegularExpressions
11
12
13 @{
14
15
16
17 string searchItem = !string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["MultiSearch"]) ? System.Web.HttpContext.Current.Request["MultiSearch"] : HttpContext.Current.Session["SearchItem"].ToString();
18 //string searchList = !string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["MultiSearchList"]) ? System.Web.HttpContext.Current.Request["MultiSearchList"] : System.Web.HttpContext.Current.Session["SearchList"].ToString();
19 string multiSearchList = System.Web.HttpContext.Current.Request["MultiSearchList"] == null ? "" : System.Web.HttpContext.Current.Request["MultiSearchList"].ToString();
20 string searchListFromSession = System.Web.HttpContext.Current.Session["SearchList"] == null ? "" : System.Web.HttpContext.Current.Session["SearchList"].ToString();
21
22 string searchList = !string.IsNullOrEmpty(multiSearchList) ? multiSearchList : searchListFromSession;
23
24 HttpContext.Current.Session["SearchItem"] = searchItem;
25 HttpContext.Current.Session["SearchList"] = searchList;
26
27 string[] searches = searchList.Split(',');
28
29 int multiSearchPageId = GetPageIdByNavigationTag("MultiSearch");
30
31 string pageUrl = GetGlobalValue("Global:Pageview.Url.Raw");
32
33 //Favorites
34 string pageId = GetGlobalValue("Global:Page.ID");
35 string feedFullUrl = pageUrl + "&feed=true";
36 string requestQuery = GetGlobalValue("Global:Request.Query") + "&feed=true";
37 string groupID = HttpContext.Current.Request.QueryString.Get("groupid");
38 string productCatalogId = GetGlobalValue("Global:Page.ID");
39 string listId = HttpContext.Current.Request.QueryString.Get("ListID");
40 bool isFavoriteList = !String.IsNullOrEmpty(listId) ? true : false;
41 requestQuery += !isFavoriteList ? "&DoNotShowVariantsAsSingleProducts=True" : "";
42 feedFullUrl += !isFavoriteList ? "&DoNotShowVariantsAsSingleProducts=True" : "";
43
44 //Layout
45 int listViewsCount = 0;
46 listViewsCount += Converter.ToBoolean(Pageview.Area.Item["ProductItemContainer"]) ? 1 : 0;
47 listViewsCount += Converter.ToBoolean(Pageview.Area.Item["ProductGridItemContainer"]) ? 1 : 0;
48 listViewsCount += Converter.ToBoolean(Pageview.Area.Item["ProductDetailsItemContainer"]) ? 1 : 0;
49
50 bool hideSorting = Converter.ToBoolean(Pageview.Area.Item["HideSorting"]);
51 bool onlyPreview = Converter.ToBoolean(Pageview.Area.Item["OnlyPreviewForAnonymous"]) && Pageview.User == null;
52
53 Dynamicweb.Content.Items.Item icons = Dynamicweb.Content.Items.Item.GetItemById("Icons", Pageview.Area.Item["Icons"].ToString());
54 string cartIcon = icons["CartIcon"] != null ? icons["CartIcon"].ToString() : "fas fa-shopping-cart";
55
56 var listViewSettings = Dynamicweb.Content.Items.Item.GetItemById("ProductCatalogListView", Pageview.Area.Item["ProductCatalogListView"].ToString());
57 bool listViewShowCartButton = listViewSettings["ListViewShowAddToCartButton"] != null ? Converter.ToBoolean(listViewSettings["ListViewShowAddToCartButton"]) : true;
58 bool listViewShowListButton = listViewSettings["ListViewShowAddToListButton"] != null ? Converter.ToBoolean(listViewSettings["ListViewShowAddToListButton"]) : true;
59 bool listViewShowViewButton = listViewSettings["ListViewShowViewButton"] != null ? Converter.ToBoolean(listViewSettings["ListViewShowViewButton"]) : true;
60
61 var gridViewSettings = Dynamicweb.Content.Items.Item.GetItemById("ProductCatalogGridView", Pageview.Area.Item["ProductCatalogGridView"].ToString());
62 string gridViewColumns = gridViewSettings["GridViewColumns"] != null ? gridViewSettings["GridViewColumns"].ToString() : "4";
63 bool gridViewShowCartButton = gridViewSettings["GridViewShowAddToCartButton"] != null ? Converter.ToBoolean(gridViewSettings["GridViewShowAddToCartButton"]) : true;
64 bool gridViewShowListButton = gridViewSettings["GridViewShowAddToListButton"] != null ? Converter.ToBoolean(gridViewSettings["GridViewShowAddToListButton"]) : true;
65 bool gridViewShowViewButton = gridViewSettings["GridViewShowViewButton"] != null ? Converter.ToBoolean(gridViewSettings["GridViewShowViewButton"]) : true;
66 bool gridViewShowStock = gridViewSettings["GridViewShowStockAndShipping"] != null ? Converter.ToBoolean(gridViewSettings["GridViewShowStockAndShipping"]) : true;
67
68 string cartButtonText = Converter.ToInt32(gridViewColumns) >= 4 ? Translate("Add to cart", "Add to cart") : "";
69
70 var detailsViewSettings = Dynamicweb.Content.Items.Item.GetItemById("ProductCatalogDetailsView", Pageview.Area.Item["ProductCatalogDetailsView"].ToString());
71 bool detailsViewShowCartButton = detailsViewSettings["DetailsViewShowAddToCartButton"] != null ? Converter.ToBoolean(detailsViewSettings["DetailsViewShowAddToCartButton"]) : true;
72 bool detailsViewShowListButton = detailsViewSettings["DetailsViewShowAddToListButton"] != null ? Converter.ToBoolean(detailsViewSettings["DetailsViewShowAddToListButton"]) : true;
73 bool detailsViewShowViewButton = detailsViewSettings["DetailsViewShowViewButton"] != null ? Converter.ToBoolean(detailsViewSettings["DetailsViewShowViewButton"]) : true;
74 bool detailsViewShowStock = detailsViewSettings["DetailsViewShowStockAndShipping"] != null ? Converter.ToBoolean(detailsViewSettings["DetailsViewShowStockAndShipping"]) : true;
75 bool detailsViewShowImage = detailsViewSettings["DetailsViewDetailsViewShowImage"] != null ? Converter.ToBoolean(detailsViewSettings["DetailsViewDetailsViewShowImage"]) : true;
76
77 string listCookie = "";
78 if (HttpContext.Current.Request.Cookies["ProductsContainerTemplate"] != null)
79 {
80 listCookie = HttpContext.Current.Request.Cookies["ProductsContainerTemplate"].Value;
81 }
82 listCookie = !String.IsNullOrEmpty(listCookie) ? listCookie : Pageview.Area.Item["ProductDefaultListView"].ToString();
83
84 string listViewSelected = listCookie == "ProductItemContainer" ? "checked" : "";
85 string gridViewSelected = listCookie == "ProductGridItemContainer" ? "checked" : "";
86 string detailsViewSelected = listCookie == "ProductDetailsItemContainer" ? "checked" : "";
87
88 var navigationMarkup = RenderNavigation(new
89 {
90 id = "leftnav",
91 cssclass = "dwnavigation",
92 startLevel = 1,
93 endlevel = 5,
94 template = "LeftNavigation.xslt",
95 mode = "ecom"
96 });
97 }
98
99 @GetValue("DoNotRenderProductListTemplate")
100
101 @if (!String.IsNullOrEmpty(System.Web.HttpContext.Current.Request["GroupID"])){
102 @RenderSnippet("CategoryPageFeaturedProducts")
103 }
104
105 <div id="content" class="multi_product_search_result_content">
106 <div id="sub_content" class="container">
107 <div class="items_list_text">
108 <p>@Translate("Items in your shopping list")</p>
109 </div>
110
111 <div class="multi_product_result">
112 <div style="display: block;" class="single-tab-content">
113 <ul>
114 @foreach( string s in searches ){
115 if( searchItem == s ){
116 <li class="active_tab">
117 <a href="javascript:void(0)" onclick="multiSearchSelect(this, '@s')">@s</a>
118 </li>
119 }else{
120 <li class="">
121 <a href="javascript:void(0)" onclick="multiSearchSelect(this, '@s')">@s</a>
122 </li>
123 }
124 }
125 </ul>
126 </div>
127 </div>
128 <div class="Result_desc">
129 <div class="edit_list_btn">
130 <form name="editMultiSearch" method="POST" action="/Default.aspx?ID=@multiSearchPageId" >
131 <input type="hidden" value="@searchList" name="oldSearchList">
132 <input type="submit" value="@Translate("Edit Your list")" name="edit_products">
133 </form>
134 </div>
135 </div>
136 <form name="multiForm" id="multiForm" method="post" >
137 <input type="hidden" name="CartCmd" id="CartCmd" value="addMulti"/>
138 <div class="grid grid--external-bleed grid--align-content-start js-handlebars-root" id="productList" data-template="ProductContainer" data-pre-render-template="ProductPreRenderContainer" data-json-feed="@feedFullUrl" data-preloader="overlay"></div>
139 </form>
140 </div>
141 <div class="banner_image">
142 @RenderParagraphContent(2342)
143 </div>
144 <div class="res_banner_image" style="display:none;">
145 @RenderParagraphContent(2342)
146 </div>
147 </div>
148
149
150
151
152
153
154
155 <script id="ProductPreRenderContainer" type="text/x-template">
156 @if (Pageview.Area.Item["EcommerceFacetsViewMode"] != null && Pageview.Area.Item["EcommerceFacetsViewMode"].ToString() == "left" && Pageview.Device.ToString() != "Mobile")
157 {
158 <div class="grid__col-3">
159 <div class="pre-render-element pre-render-element--xs"></div>
160 <div class="pre-render-element pre-render-element--md"></div>
161 <div class="pre-render-element pre-render-element--md"></div>
162 <div class="pre-render-element pre-render-element--md"></div>
163 </div>
164 }
165 <div class="grid__col-auto">
166 <div class="pre-render-element pre-render-element--xs"></div>
167 <div class="pre-render-element pre-render-element--lg"></div>
168 <div class="pre-render-element pre-render-element--lg"></div>
169 <div class="pre-render-element pre-render-element--lg"></div>
170 <div class="pre-render-element pre-render-element--lg"></div>
171 </div>
172 </script>
173
174 <script id="ProductContainer" type="text/x-template">
175 {{#each .}}
176
177 <div class="result_desc">
178 <p>@Translate("We found","We found") {{count}} @Translate("products for","products for") <b>'{{multiSearchIndex}}'</b></p>
179 </div>
180 @if (Pageview.Area.Item["EcommerceFacetsViewMode"] != null && Pageview.Area.Item["EcommerceFacetsViewMode"].ToString() == "top" || Pageview.Device.ToString() == "Mobile")
181 {
182
183 <div id="desktop_facet">
184 {{#if FacetGroups}}
185 <div class="grid__col-12">
186
187 <div class="productList__tab-container">
188 <div class="productList__info tabs">
189 {{#FacetGroups}}
190 <input type="radio" name="PorductList__Facets" id="OptionsGroup_{{counter}}" class="tabs__trigger" {{showfirst}}/>
191 {{/FacetGroups}}
192 <div class="tabs__list dw-mod">
193 {{#FacetGroups}}
194 <label class="tabs__label dw-mod" for="OptionsGroup_{{counter}}">{{name}}</label>
195 {{/FacetGroups}}
196 </div>
197 <div class="tabs__blocks dw-mod">
198 {{#FacetGroups}}
199 <div class="tabs__block dw-mod">
200 <section class="product__section paragraph-container paragraph-container--full-width product__section--bordered dw-mod">
201 <div class="center-container dw-mod">
202 <div class="tab-content">
203 <div class="grid grid--external-bleed-x u-margin-bottom--lg">
204 <ul>
205 {{#FacetOptions}}
206 {{#ifCond template "===" "Checkboxes"}}
207 {{>Checkboxes}}
208 {{/ifCond}}
209 {{/FacetOptions}}
210 </ul>
211 </div>
212 </div>
213 </div>
214 </section>
215 </div>
216 {{/FacetGroups}}
217 </div>
218 </div>
219 </div>
220 </div>
221 </div>
222
223 <div id="mobile_facet">
224 <div class="grid__col-12">
225 <input type="checkbox" id="CheckFacetGroups" class="facets-container-trigger js-remember-state" />
226 <div class="filterBy_label">@Translate("Filter by","Filter by")</div>
227 <div class="grid grid--external-bleed-x facets-container dw-mod">
228 <div class="MobileFecetDiv">
229 {{#FacetGroups}}
230 <div class="MobileFacetBlock">
231 <input type="checkbox" id="Mobile_Options_{{counter}}" class="MobileOptionsTrigger" />
232 <div class="MobileFacetDIV">
233 <label class="MobileFacetLabel" for="Mobile_Options_{{counter}}">{{name}}</label>
234 <ul class="MobileFacetList">
235 {{#FacetOptions}}
236 {{#ifCond template "===" "Checkboxes"}}
237 {{>CheckboxesMobile}}
238 {{/ifCond}}
239 {{/FacetOptions}}
240 </ul>
241 <label class="MobileFacetLabelClose" for="Mobile_Options_{{counter}}"></label>
242 </div>
243 </div><span class="separateLine">|</span>
244 {{/FacetGroups}}
245 </div>
246 </div>
247 </div>
248 {{/if}}
249 </div>
250 }
251
252 @if (Pageview.Area.Item["EcommerceFacetsViewMode"] != null && Pageview.Area.Item["EcommerceFacetsViewMode"].ToString() == "left" && Pageview.Device.ToString() != "Mobile")
253 {
254 <div class="grid__col-3">
255 @if (Pageview.Page.PropertyItem["LeftMenu"] != null && Pageview.Page.PropertyItem["LeftMenu"].ToString() == "True" && Pageview.Page.NavigationSettings != null && Pageview.Page.NavigationSettings.UseEcomGroups)
256 {
257 <h2 class="u-margin-bottom">@Translate("Product categories","Product categories")</h2>
258
259 <div class="u-padding-bottom--lg">
260 @navigationMarkup
261 </div>
262 }
263
264 <!-- <h2>@Translate("Filters")</h2>-->
265 <input type="checkbox" id="CheckFacetGroups" class="facets-container-trigger js-remember-state" />
266 <div class="facets-container dw-mod">
267 {{#FacetGroups}}
268 <input type="checkbox" id="OptionsGroup_{{counter}}" class="expand-trigger js-remember-state" {{defaultState}} />
269
270 <div class="expand-container facets-container__box dw-mod js-filter">
271 <label class="expand-container__btn facets-container__header dw-mod" for="OptionsGroup_{{counter}}">{{name}}</label>
272 <div class="expand-container__content dw-mod">
273 <div class="u-margin {{showFilter}}">
274 <input type="text" class="u-full-width u-no-margin" onkeyup="Filter.FilterItems(event)" placeholder="@Translate("Search","Search")"/>
275 </div>
276 <div class="facets-container__list dw-mod">
277 {{#FacetOptions}}
278 {{#ifCond template "===" "Checkboxes"}}
279 {{>Checkboxes}}
280 {{/ifCond}}
281 {{#ifCond template "===" "Range"}}
282 {{>Checkboxes}}
283 {{/ifCond}}
284 {{#ifCond template "===" "Weight"}}
285 {{>Checkboxes}}
286 {{/ifCond}}
287 {{#ifCond template "===" "Tags"}}
288 {{>Tags}}
289 {{/ifCond}}
290 {{#ifCond template "===" "Colors"}}
291 {{>Colors}}
292 {{/ifCond}}
293 {{/FacetOptions}}
294 </div>
295 </div>
296 </div>
297 {{/FacetGroups}}
298 </div>
299 <label for="CheckFacetGroups" class="btn btn--primary btn--full dw-mod facet-selector more">@Translate("Select filters","Select filters")</label>
300 <label for="CheckFacetGroups" class="btn btn--primary btn--full dw-mod facet-selector less">@Translate("Close filters","Close filters")</label>
301 </div>
302 }
303
304
305
306 <div class="grid__col-auto">
307
308 @if (isFavoriteList)
309 {
310 string searchPlaceholder = Translate("Search favorite products", "Search favorite products");
311 string searchValue = HttpContext.Current.Request.QueryString.Get("Search") != null ? HttpContext.Current.Request.QueryString.Get("Search") : "";
312 <div class="grid--align-self-center grid__col--bleed grid__col-12 u-margin-bottom">
313 <div class="typeahead u-margin u-color-inherit js-typeahead" data-page-size="10" id="FavoritesSearch" data-list-id="@listId" data-search-feed-id="@pageId&feed=true" data-result-page-id="@pageId">
314 <input type="text" class="typeahead-search-field u-no-margin u-full-width js-typeahead-search-field" placeholder="@searchPlaceholder" value="@searchValue">
315 <ul class="dropdown dropdown--absolute-position u-full-width js-handlebars-root js-typeahead-search-content u-min-w220px u-full-width dw-mod" id="FavoritesSearchContent" data-template="SearchContentTemplate" data-json-feed="@feedFullUrl&ListID=@listId" data-init-onload="false" data-preloader="minimal"></ul>
316 <button type="button" class="btn btn--condensed btn--primary u-no-margin dw-mod js-typeahead-enter-btn"><i class="fas fa-search"></i></button>
317 </div>
318 </div>
319 }
320
321 <div class="grid__cell">
322
323 <div class="grid productList__header">
324
325
326 @if (String.IsNullOrEmpty(System.Web.HttpContext.Current.Request["Search"]))
327 {
328 <div class="grid__col--bleed-y grid__col-md-auto productList__title">
329 <h2 class="ProductList__Group-Name"><!--<i class="{{headerIcon}}">-->@Translate("Result Product","Result Product")</h2>
330 </div>
331 }
332
333 else{
334 <div class="grid__col--bleed-y grid__col-md-auto productList__title">
335 <h2 class="ProductList__Group-Name"><i class="{{headerIcon}}"></i> </h2>
336 </div>
337
338 }
339
340 <div class="grid--align-end grid__col--bleed-y grid__col-md-5 sm--item-center">
341 <div class="collection u-no-margin ProductList_Sortby">
342 @if (!hideSorting)
343 {
344 <h5 class="u-inline-block u-margin-right">@Translate("Sort by")</h5>
345 <input type="checkbox" id="ProductSort" class="dropdown-trigger" />
346 <div class="dropdown u-w150px u-w125px--xs u-margin-right u-inline-block dw-mod">
347 <label class="dropdown__header dropdown__btn dropdown__btn--small dw-mod" for="ProductSort">{{selectedSort}}</label>
348 <div class="dropdown__content dw-mod">
349 <!--<div class="dropdown__item" onclick="HandlebarsBolt.UpdateContent('productList', '@feedFullUrl')">@Translate("Default")</div>-->
350
351 <!--<div class="dropdown__item" onclick="HandlebarsBolt.UpdateContent('productList', '@feedFullUrl&SortBy=Created&SortOrder=DESC')">@Translate("Newest")</div>-->
352 @if (!onlyPreview)
353 {
354 <!--<div class="dropdown__item" onclick="HandlebarsBolt.UpdateContent('productList', '@feedFullUrl&SortBy=BestSeller&SortOrder=DESC')">@Translate("Best Seller")</div>
355 <div class="dropdown__item" onclick="HandlebarsBolt.UpdateContent('productList', '@feedFullUrl&SortBy=BestSeller&SortOrder=ASC')">@Translate("Popularity")</div>
356 <div class="dropdown__item" onclick="HandlebarsBolt.UpdateContent('productList', '@feedFullUrl&SortBy=Price&SortOrder=ASC')">@Translate("Savings")</div>
357 <div class="dropdown__item" onclick="HandlebarsBolt.UpdateContent('productList', '@feedFullUrl&SortBy=Created&SortOrder=DESC')">@Translate("RecentlyAdded")</div>-->
358 <div class="dropdown__item" onclick="FilterSortBy('&SortBy=Price&SortOrder=ASC'); ">@Translate("Price low - high")</div>
359 <div class="dropdown__item" onclick="FilterSortBy('&SortBy=Price&SortOrder=DESC'); ">@Translate("Price high - low")</div>
360 <div class="dropdown__item" onclick="FilterSortBy('&SortBy=Brand&SortOrder=ASC'); ">@Translate("Brand A - Z")</div>
361 <div class="dropdown__item" onclick="FilterSortBy('&SortBy=Brand&SortOrder=DESC'); ">@Translate("Brand Z - A")</div>
362
363 }
364 </div>
365 <label class="dropdown-trigger-off" for="ProductSort"></label>
366 </div>
367 }
368 @if (listViewsCount > 1)
369 {
370 if (Converter.ToBoolean(Pageview.Area.Item["ProductItemContainer"]))
371 {
372 <input type="radio" class="tag-btn-trigger" id="ListViewBtnOne" name="ViewBtnGroup" @listViewSelected>
373 <label for="ListViewBtnOne" class="btn btn--tag" onclick="HandlebarsBolt.UpdateTemplate('ProductsContainer', 'ProductItemContainer')"><i class="fas fa-th-list"></i></label>
374 }
375 if (Converter.ToBoolean(Pageview.Area.Item["ProductGridItemContainer"]))
376 {
377 <input type="radio" class="tag-btn-trigger" id="ListViewBtnTwo" name="ViewBtnGroup" @gridViewSelected>
378 <label for="ListViewBtnTwo" class="btn btn--tag" onclick="HandlebarsBolt.UpdateTemplate('ProductsContainer', 'ProductGridItemContainer')"><i class="fas fa-th"></i></label>
379 }
380 if (Converter.ToBoolean(Pageview.Area.Item["ProductDetailsItemContainer"]))
381 {
382 <input type="radio" class="tag-btn-trigger" id="ListViewBtnThree" name="ViewBtnGroup" @detailsViewSelected>
383 <label for="ListViewBtnThree" class="btn btn--tag" onclick="HandlebarsBolt.UpdateTemplate('ProductsContainer', 'ProductDetailsItemContainer')"><i class="fas fa-list"></i></label>
384 }
385 }
386
387 @if (isFavoriteList)
388 {
389 <button type="submit" class="btn btn--primary btn--sm dw-mod">@Translate("Buy all") <i class="@cartIcon"></i></button>
390 }
391 </div>
392 </div>
393 </div>
394
395 <div id="ProductsContainer" data-template="{{listTemplate}}" class="grid product-list dw-mod" data-save-cookie="true">
396 {{#ProductsContainer}}
397 {{#ifCond template "===" "ProductItemContainer"}}
398 {{>ProductItemContainer}}
399 {{/ifCond}}
400 {{#ifCond template "===" "ProductGridItemContainer"}}
401 {{>ProductGridItemContainer}}
402 {{/ifCond}}
403 {{#ifCond template "===" "ProductDetailsItemContainer"}}
404 {{>ProductDetailsItemContainer}}
405 {{/ifCond}}
406 {{/ProductsContainer}}
407 </div>
408 {{#ifCond nextPage "!==" ""}}
409 <div class="grid__col-12 grid__col--bleed-y">
410 <button type="button" id="LoadMoreButton" class="btn btn--full loadmorebtn {{nextdisabled}}" data-current="{{currentPage}}" data-page-size="{{pageSize}}" data-total="{{totalPages}}" data-container="ProductsContainer" data-feed-url="@feedFullUrl&groupid=@groupID{{loadMoreFeedParams}}" onclick="LoadMore.Next(this)" {{nextdisabled}}>@Translate("Load") @Translate("more")</button>
411 <button type="button" style="dislay:none;"class="btn btn--clean Returnbtn" onclick="window.scroll(0, 0)">@Translate("Return to top")</button>
412 </div>
413 {{/ifCond}}
414 </div>
415 </div>
416 </div>
417 {{else}}
418 <div class="grid__col-12">
419 <h2 class="u-ta-center">@Translate("Your search gave 0 results")</h2>
420 </div>
421 {{/each}}
422 </script>
423
424 @*Partial templates*@
425
426 @*Facets*@
427
428 <script id="Checkboxes" type="text/x-template">
429 <li>
430 <label class="{{disabled}} checkbox-facet dw-mod" data-filter-value="{{label}}">
431 <input type="checkbox" class="{{selected}} checkbox-facet__checkbox dw-mod" onclick="Facets.UpdateFacets(this); showHideHighlight();" name="{{queryParameter}}" value="{{value}}" {{selected}} {{disabled}}>
432 <span class="checkbox-facet__label dw-mod">{{label}}</span>
433 </label>
434 </li>
435 </script>
436
437 <script id="CheckboxesMobile" type="text/x-template">
438 <li>
439 <label class="{{disabled}} checkbox-facet dw-mod" data-filter-value="{{label}}">
440 <input type="checkbox" class="{{selected}} checkbox-facet__checkbox dw-mod" onclick="Facets.UpdateFacets(this); showHideHighlight();" name="{{queryParameter}}" value="{{value}}" {{selected}} {{disabled}}>
441 <span class="checkbox-facet__label dw-mod">{{label}}</span>
442 </label>
443 </li>
444 </script>
445
446 <script id="Tags" type="text/x-template">
447 <button type="button" class="btn btn--tag {{selected}} {{disabled}}" data-filter-value="{{label}}" data-check="{{selected}}" onclick="Facets.UpdateFacets(this);" name="{{queryParameter}}" value="{{value}}" {{disabled}}>
448 {{label}} <span class="facets-group__counter">({{count}})</span>
449 </button>
450 </script>
451
452 <script id="Colors" type="text/x-template">
453 <button type="button" class="btn btn--colorbox u-margin-right {{selected}} {{disabled}}" data-filter-value="{{label}}" style="background-color: {{value}}" title="{{label}}" data-check="{{selected}}" onclick="Facets.UpdateFacets(this);" name="{{queryParameter}}" value="{{value}}" {{disabled}}></button>
454 </script>
455
456 @*Facet selections*@
457 <script id="SelectedFilter" type="text/x-template">
458 <button type="button" class="btn btn--tag" data-check="checked" onclick="Facets.UpdateFacets(this);" name="{{queryParameter}}" value="{{value}}" title="@Translate("Remove filter")">
459 {{group}}: {{label}} <i class="fas fa-times"></i>
460 </button>
461 </script>
462
463 <script id="SelectedColorFilter" type="text/x-template">
464 <button type="button" class="btn btn--tag" data-check="checked" onclick="Facets.UpdateFacets(this);" name="{{queryParameter}}" value="{{value}}" title="@Translate("Remove filter")">
465 {{group}}: <div class="btn__colorbox" style="background-color: {{label}}"></div> <i class="fas fa-times"></i>
466 </button>
467 </script>
468
469 <script id="ResetFilters" type="text/x-template">
470 <button type="button" class="btn btn--tag" onclick="Facets.ResetFacets(this);">
471 @Translate("Reset all filters") <i class="fas fa-redo"></i>
472 </button>
473 </script>
474
475 @* Product list templates *@
476
477 @* List view *@
478
479 <script id="ProductItemContainer" type="text/x-template">
480 {{#.}}
481 <div id="Product{{id}}" class="grid__col-12 js-product" data-template="ProductItem" data-preloader="overlay">
482 {{#Product}}
483 {{>ProductItem}}
484 {{/Product}}
485 </div>
486 {{/.}}
487 </script>
488
489 <script id="ProductItem" type="text/x-template">
490 {{#.}}
491 <input type="hidden" name="ProductLoopCounter{{id}}" value="{{id}}" />
492 <input type="hidden" name="ProductID{{id}}" value="{{productId}}" />
493 <input type="hidden" value="{{variantid}}" name="VariantID{{id}}" id="Variant_{{id}}" />
494
495 <div class="grid product-list__list-item dw-mod">
496 <div class="grid__col-md-4 {{noImage}} product-list__list-item__left u-color-light--bg dw-mod">
497 <div class="stickers-container dw-mod">
498 {{#Stickers}}
499 {{>Sticker}}
500 {{/Stickers}}
501 </div>
502 <div class="grid__cell">
503 <a href="{{link}}" onclick="Scroll.SavePosition(event)"><img class="grid__cell-img grid__cell-img--centered b-lazy" src="/Admin/Public/GetImage.ashx?width=300&height=300&crop=5&Compression=75&DoNotUpscale=true&FillCanvas=true&image=/Files/Images/placeholder.gif" data-src="/Admin/Public/GetImage.ashx?width=300&height=300&crop=5&Compression=75&DoNotUpscale=true&FillCanvas=true&image={{image}}" alt="{{name}}" /></a>
504 </div>
505 </div>
506 <div class="grid__col-md-auto product-list__list-item__right dw-mod">
507 <div>
508 <div class="u-pull--left">
509 <a href="{{link}}" onclick="Scroll.SavePosition(event)" title="{{name}}"><h2 class="u-no-margin">{{name}}</h2></a>
510 <div class="item-number dw-mod">{{number}}</div>
511 </div>
512 @if(listViewShowListButton){
513 <div class="favorites u-pull--right {{hasVariants}} dw-mod" {{hasVariants}}>
514 {{#Favorite}}
515 {{>FavoriteTemplate}}
516 {{/Favorite}}
517 </div>
518 }
519 </div>
520
521 <div class="grid__cell">
522 {{{description}}}
523 </div>
524
525 @if (listViewShowCartButton) {
526 <div data-template="VariantsTemplate" class="js-variants grid__cell" data-combinations="{{combinationsStringArray}}" data-variants="{{variantsStringArray}}" data-variant-selections="{{variantSelections}}" data-total-variant-groups="{{variantGroupsCount}}" data-selection-complete="UpdateData" data-page-id="@pageId" data-product-id="{{productId}}">
527 {{#Variants}}
528 {{>VariantsTemplate}}
529 {{/Variants}}
530 </div>
531 <small class="js-help-text help-text {{hideViewMore}} {{hideHelpText}}">@Translate("Please select variant!")</small>
532 }
533
534 @if (!onlyPreview)
535 {
536 <div class="grid__cell-footer">
537 <div class="grid__cell">
538 <div class="product-list__list-item__price-actions dw-mod">
539 <div class="u-margin-bottom">
540 <div class="before-price {{onSale}} dw-mod b-price">{{discount}}</div>
541 <div class="price price--product-list dw-mod">{{price}}</div>
542 </div>
543
544 @if (listViewShowCartButton)
545 {
546 <div class="buttons-collection buttons-collection--right">
547 <button type="button" id="CartButton_{{id}}" class="js-cart-btn btn btn--primary btn--condensed u-pull--right dw-mod {{hasVariants}}" name="submit" onclick="Cart.AddToCart(event, '{{productId}}', document.getElementById('Quantity_{{id}}').value, 'Unit_{{id}}', 'Variant_{{id}}');" {{hasVariants}}><i class="@cartIcon"></i><span class="u-hidden-xs u-hidden-xxs"> @Translate("Add to cart")</span></button>
548 <input type="number" class="u-w80px u-pull--right" id="Quantity_{{id}}" name="Quantity{{id}}" value="1" min="1">
549
550 <input type="checkbox" id="UnitOptions_{{id}}" class="dropdown-trigger" />
551 <div class="dropdown u-w110px u-w100px--xs {{hasUnits}} dw-mod">
552 <label class="dropdown__header dropdown__btn dw-mod" for="UnitOptions_{{id}}">{{unitName}}</label>
553 <div id="unitOptions" class="dropdown__content dw-mod">
554 {{#unitOptions}}
555 {{>UnitOption}}
556 {{/unitOptions}}
557 </div>
558 <label class="dropdown-trigger-off" for="UnitOptions_{{id}}"></label>
559 </div>
560 <input type="hidden" value="{{unitId}}" name="Unit{{id}}" id="Unit_{{id}}" />
561 </div>
562 }
563 else if (listViewShowViewButton)
564 {
565 <div class="buttons-collection buttons-collection--right">
566 <a href="{{link}}" id="CartButton_{{id}}" class="btn btn--secondary btn--full u-no-margin dw-mod">{{viewMoreText}}</a>
567 </div>
568 }
569 </div>
570 </div>
571 </div>
572 }
573 else
574 {
575 <button type="button" id="CartButton_{{id}}" class="u-hidden"></button>
576 }
577 </div>
578 </div>
579 {{/.}}
580 </script>
581
582 @* Grid view *@
583
584 <script id="ProductGridItemContainer" type="text/x-template">
585 {{#.}}
586 <div id="Product{{id}}" data-template="ProductGridItem" class="grid__col-lg-@gridViewColumns grid__col-md-@gridViewColumns grid__col-sm-@gridViewColumns grid__col-xs-6 product-list__grid-item dw-mod">
587 {{#Product}}
588 {{>ProductGridItem}}
589 {{/Product}}
590 </div>
591 {{/.}}
592 </script>
593
594 <script id="ProductGridItem" type="text/x-template">
595 {{#.}}
596 <div class="ProductList__item">
597 <input type="hidden" name="ProductLoopCounter{{id}}" value="{{id}}" />
598 <input type="hidden" name="ProductID{{id}}" value="{{productId}}" />
599 <div class="grid__cell product-list__grid-item__image dw-mod {{noImage}}">
600 <div class="stickers-container u-padding dw-mod">
601 {{#Stickers}}
602 {{>Sticker}}
603 {{/Stickers}}
604 </div>
605 <a href="{{link}}" onclick="Scroll.SavePosition(event)">
606 <img class="grid__cell-img grid__cell-img--centered u-padding b-lazy" src="/Files/Images/placeholder.gif" data-src="/Admin/Public/GetImage.ashx?width=300&height=300&crop=5&Compression=75&DoNotUpscale=true&image={{image}}" alt="{{name}}" />
607 {{#ifCond preOrderdays ">" "0"}}
608 <div class="preorderList_rbn"><text>@Translate("Preorder"){{preOrderdays}}@Translate("Days")</text></div>
609 {{/ifCond}}
610 </a>
611 @if(gridViewShowListButton){
612 <div class="favorites favorites--for-grid-view u-pull--right {{hasVariants}} dw-mod" {{hasVariants}}>
613 {{#Favorite}}
614 {{>FavoriteTemplate}}
615 {{/Favorite}}
616 </div>
617 }
618 </div>
619
620 <div class="grid__cell product-list__grid-item__price-info {{shortGridInfo}} dw-mod">
621 <div class="product-list__price-info-block">
622 <div class="product-list__company-name">{{itemGroup}}</div>
623 <a href="{{link}}" onclick="Scroll.SavePosition(event)" title="{{name}}">
624 <h6 class="FGX_productName">{{name}}</h6>
625 <div class="product-list__pack-size">{{packSize}}</div>
626 </a>
627 </div>
628 <!-- <div class="item-number dw-mod">{{number}}</div> -->
629
630 @if (!onlyPreview)
631 {
632 <div class="showPrices">
633 <div class="price price--product-list dw-mod">
634 <span>{{price}}</span>
635 <div class="before-price {{onSale}} dw-mod b-price">{{discount}}</div>
636 </div>
637
638
639 <div class="prod_unit">
640 <div class="unit_lbl unit">@Translate("SELECT UNIT")</div>
641 <select class="unit_select" onchange="HandlebarsBolt.UpdateContent('Product{{id}}', this.value )">
642 {{#unitOptions}}
643 {{>UnitOption}}
644 {{/unitOptions}}
645 </select>
646
647 </div>
648 </div>
649 }
650 <input type="hidden" value="{{unitId}}" name="Unit{{id}}" id="Unit_{{id}}" />
651 <input type="hidden" value="{{variantid}}" name="VariantID{{id}}" id="Variant_{{id}}" />
652 </div>
653
654 <div class="product-list__grid-item__footer dw-mod">
655 @if (!onlyPreview && gridViewShowCartButton)
656 {
657 <div class="u-ta-center u-inline-block u-full-width">
658 <div class="buttons-collection {{hideBuyOptions}} {{productId}}_product">
659
660 {{#ifCond orderLineId "!==" ""}}
661 <button type="button" id="CartButton_{{id}}" class="btn productdetail_cart btn--condensed u-full-width {{hasVariants}} u-hidden CartButton_{{id}}" name="submit" onclick="Cart2.AddToCart(event, '{{id}}', '{{productId}}', document.getElementById('Quantity_{{id}}').value, 'Unit_{{id}}', 'Variant_{{id}}');" {{hasVariants}}><i class="@cartIcon shop-cart" ></i>@Translate("Add to cart","Add to cart")<span class="u-visible-xs u-visible-xxs"> @cartButtonText</span></button>
662 <div id="" class="grid__cell quantity_box Qty_Box_{{id}} {{notOutOfStockText}}">
663 <div class="grid">
664 <input type="hidden" class="{{productId}}_orderline" value="{{orderLineId}}" />
665 <button type="button" class="btn u-no-margin grid__col-3 ProductList__Adjust" onclick="productListChangeQty(this, {{id}})">-</button>
666 <input type="text" class="grid__col-6 ProductList__quantity" id="Quantity_{{id}}" name="Quantity{{id}}" onchange="QuantityChange(this, {{id}}, document.getElementsByClassName('{{productId}}_orderline')[0].value)" value="{{quantityInCart}}" min="0" onkeypress="return restrictAlphabets(event)"/>
667 <button type="button" class="btn u-no-margin grid__col-3 ProductList__Adjust" onclick="productListChangeQty(this, {{id}})">+</button>
668 </div>
669 </div>
670 {{else}}
671 <button type="button" id="CartButton_{{id}}" class="btn productdetail_cart btn--condensed u-full-width {{hasVariants}} CartButton_{{id}} {{notOutOfStockText}}" name="submit" onclick="Cart2.AddToCart(event, '{{id}}', '{{productId}}', document.getElementById('Quantity_{{id}}').value, 'Unit_{{id}}', 'Variant_{{id}}');" {{hasVariants}}><i class="@cartIcon shop-cart"></i>@Translate("Add to cart","Add to cart")<span class="u-visible-xs u-visible-xxs"> @cartButtonText</span></button>
672 <div id="" class="grid__cell quantity_box u-hidden Qty_Box">
673 <div class="grid">
674 <input type="hidden" class="{{productId}}_orderline" value="" />
675 <button type="button" class="btn u-no-margin grid__col-3 ProductList__Adjust" onclick="productListChangeQty(this, {{id}})">-</button>
676 <input type="text" class="grid__col-6 ProductList__quantity" id="Quantity_{{id}}" name="Quantity{{id}}" onchange="QuantityChange(this, {{id}}, document.getElementsByClassName('{{productId}}_orderline')[0].value)" value="1" min="0" onkeypress="return restrictAlphabets(event)"/>
677 <button type="button" class="btn u-no-margin grid__col-3 ProductList__Adjust" onclick="productListChangeQty(this, {{id}})">+</button>
678 </div>
679 </div>
680 {{/ifCond}}
681 <button value="" type="button" class='btn productdetail_outOfStock btn--condensed u-full-width {{outOfStockText}} disable'><i class="fal fa-times-square"></i> @Translate("Out of Stock","Out of Stock")</button>
682 </div>
683 </div>
684 if (gridViewShowViewButton)
685 {
686 <div class="u-ta-center {{hideViewMore}}">
687 <a href="{{link}}" id="CartButton_{{id}}" class="btn btn--secondary btn--full u-no-margin dw-mod">{{viewMoreText}}</a>
688 </div>
689 }
690
691 }
692 else if (gridViewShowViewButton)
693 {
694 <div class="u-ta-center">
695 <a href="{{link}}" id="CartButton_{{id}}" class="btn btn--secondary btn--full u-no-margin dw-mod">{{viewMoreText}}</a>
696 </div>
697 }
698
699 @if (!onlyPreview && gridViewShowStock)
700 {
701 <div>
702 <span class="stock-icon {{stockState}} u-no-margin dw-mod" title="{{stockText}}"></span> {{stockText}}{{deliveryText}}
703 </div>
704 }
705 </div>
706 </div>
707
708 {{/.}}
709 </script>
710
711 @* Details view *@
712
713 <script id="ProductDetailsItemContainer" type="text/x-template">
714 {{#.}}
715 <div id="Product{{id}}" data-template="ProductDetailsItem" data-preloader="overlay" class="grid__col-md-12 product-list__details-item grid--direction-row grid--justify-space-between dw-mod" style="z-index: {{zIndex}}">
716 {{#Product}}
717 {{>ProductDetailsItem}}
718 {{/Product}}
719 </div>
720 {{/.}}
721 </script>
722
723 <script id="ProductDetailsItem" type="text/x-template">
724 {{#.}}
725 <input type="hidden" name="ProductLoopCounter{{id}}" value="{{id}}" />
726 <input type="hidden" name="ProductID{{id}}" value="{{productId}}" />
727
728 <div class="product-list__details-item__left grid__cell dw-mod">
729 @if (detailsViewShowImage)
730 {
731 <div class="lightbox u-hidden-xxs">
732 <a href="{{link}}" onclick="Scroll.SavePosition(event)">
733 <img class="lightbox__image {{noImage}}" src="/Admin/Public/GetImage.ashx?width=220&height=220&crop=5&Compression=75&image={{image}}" alt="{{name}}" />
734 <div class="u-margin-right {{noImage}}">
735 <img src="/Admin/Public/GetImage.ashx?width=75&height=55&crop=5&FillCanvas=true&Compression=75&image={{image}}" alt="{{name}}" />
736 </div>
737 </a>
738 </div>
739 }
740 <div class="u-margin-left u-margin-right">
741 <a href="{{link}}" onclick="Scroll.SavePosition(event)" title="{{name}}"><h6 class="u-no-margin">{{name}}</h6></a>
742 <div class="item-number item-number--compressed dw-mod">
743 {{number}}
744 @if (!onlyPreview)
745 {
746 <span>
747 <span class="stock-icon {{stockState}} u-no-margin dw-mod" title="{{stockText}}"></span> {{stockText}}{{deliveryText}}
748 </span>
749 }
750 <div class="grid__cell-footer stickers-container stickers-container--block dw-mod">
751 {{#Stickers}}
752 {{>MiniSticker}}
753 {{/Stickers}}
754 </div>
755 </div>
756 </div>
757 </div>
758 <div class="product-list__details-item__right grid__cell dw-mod">
759 @if (!onlyPreview && Pageview.Device.ToString() == "Mobile")
760 {
761 <div class="u-full-width u-ta-right u-padding-right">
762 <div class="before-price {{onSale}} before-price--micro dw-mod b-price">{{discount}}</div>
763 <div class="price price--product-list price--micro dw-mod">{{price}}</div>
764 </div>
765 }
766 @if (!onlyPreview && detailsViewShowCartButton)
767 {
768 <div class="u-margin-right">
769 <input type="checkbox" id="UnitOptions_{{id}}" class="dropdown-trigger" />
770 <div class="dropdown u-w120px {{hasUnits}} dw-mod">
771 <label class="dropdown__header dropdown__btn dw-mod" for="UnitOptions_{{id}}">{{unitName}}</label>
772 <div id="unitOptions" class="dropdown__content dw-mod">
773 {{#unitOptions}}
774 {{>UnitOption}}
775 {{/unitOptions}}
776 </div>
777 <label class="dropdown-trigger-off" for="UnitOptions_{{id}}"></label>
778 </div>
779 <input type="hidden" value="{{unitId}}" name="Unit{{id}}" id="Unit_{{id}}" />
780 <input type="hidden" value="{{variantid}}" name="VariantID{{id}}" id="Variant_{{id}}" />
781 </div>
782 }
783 @if (!onlyPreview && Pageview.Device.ToString() != "Mobile")
784 {
785 <div class="u-min-w120px">
786 <div class="u-full-width u-ta-right u-padding-right">
787 <div class="before-price {{onSale}} before-price--micro dw-mod">{{discount}}</div>
788 <div class="price price--product-list price--micro dw-mod">{{price}}</div>
789 </div>
790 </div>
791 }
792 @if (!onlyPreview && detailsViewShowCartButton)
793 {
794 <div class="{{hideBuyOptions}}">
795 <input type="number" class="u-w80px u-no-margin u-margin-right" id="Quantity_{{id}}" name="Quantity{{id}}" value="1" min="1">
796 </div>
797 <div class="{{hideBuyOptions}}">
798 <button type="button" id="CartButton_{{id}}" class="btn btn--primary btn--condensed u-no-margin dw-mod {{hasVariants}}" name="submit" onclick="Cart.AddToCart(event, '{{productId}}', document.getElementById('Quantity_{{id}}').value, 'Unit_{{id}}', 'Variant_{{id}}');" {{hasVariants}}><i class="@cartIcon"></i></button>
799 </div>
800 if (detailsViewShowViewButton) {
801 <div class="{{hideViewMore}}">
802 <a href="{{link}}" class="btn btn--secondary u-no-margin u-w133px dw-mod" onclick="Scroll.SavePosition(event)" title="{{name}}">{{viewMoreText}}</a>
803 </div>
804 }
805 }
806 else if (detailsViewShowViewButton)
807 {
808 <div>
809 <a href="{{link}}" class="btn btn--secondary u-no-margin u-w133px dw-mod" onclick="Scroll.SavePosition(event)" title="{{name}}">{{viewMoreText}}</a>
810 </div>
811 }
812
813 @if(detailsViewShowListButton){
814 <div class="favorites u-margin {{hasVariants}} dw-mod" {{hasVariants}}>
815 {{#Favorite}}
816 {{>FavoriteTemplate}}
817 {{/Favorite}}
818 </div>
819
820 <div class="favorites favorites--lg u-hidden {{hasVariants}} u-hidden-xs u-hidden-xxs dw-mod" {{hasVariants}}>
821 {{#Favorite}}
822 {{>FavoriteListItem}}
823 {{/Favorite}}
824 </div>
825 }
826 </div>
827 {{/.}}
828 </script>
829
830 <!--<script id="Sticker" type="text/x-template">
831 <div class="stickers-container__tag {{className}} dw-mod">{{text}}</div>
832 </script>-->
833
834 <script id="Sticker" type="text/x-template">
835 <div class="stickers-container__tag stickers-container__tag--custom dw-mod">{{text}}</div>
836 </script>
837 <script id="MiniSticker" type="text/x-template">
838 <div class="stickers-container__tag stickers-container__tag--micro {{className}} dw-mod">{{text}}</div>
839 </script>
840
841 @* Units templates *@
842
843 <script id="UnitOption" type="text/x-template">
844 <option value="{{link}}&feed=true&UnitID={{value}}&rid={{id}}" {{selected}}>{{name}}</option>
845
846 </script>
847
848 @* Variants templates *@
849
850 <script id="VariantsTemplate" type="text/x-template">
851 {{#.}}
852 <div>
853 <div class="u-bold">{{name}}</div>
854 <div>
855 {{#VariantOptions}}
856 {{>VariantOption}}
857 {{/VariantOptions}}
858 </div>
859 </div>
860 {{/.}}
861 </script>
862
863
864 <script id="VariantOption" type="text/x-template">
865 <button type="button" data-variant-id="{{variantId}}" data-variant-group="{{groupId}}" onclick="MatchVariants.SelectThis(event)" class="btn btn--tag {{disabled}} {{selected}} js-variant-option" data-check="{{selected}}" {{disabled}}>{{name}}</button>
866 </script>
867
868 <script id="VariantOptionImage" type="text/x-template">
869 <img data-variant-id="{{variantId}}" data-friends="{{friendsList}}" data-variant-group="{{groupId}}" onclick="MatchVariants.SelectThis(event)" src="/Admin/Public/GetImage.ashx?width=100&height=50&crop=5&Compression=75&image=/Images/{{image}}" alt="{{name}}" title="{{name}}" class="btn btn--tag {{disabled}} {{selected}} js-variant-option" data-check="{{selected}}" {{disabled}} />
870 </script>
871
872
873 @* Favorites templates *@
874
875 <script id="FavoriteTemplate" type="text/x-template">
876 <div class="favorites-list u-ta-left">
877 <label for="FavoriteTrigger_{{id}}" class="u-no-margin js-favorite-btn"><i class="{{favoriteIcon}} fa-1_5x"></i></label>
878 <input type="checkbox" id="FavoriteTrigger_{{id}}" class="dropdown-trigger" />
879 <div class="dropdown dropdown--absolute-position">
880 <div class="dropdown__content dropdown__content--show-left dropdown__content--padding u-w220px dw-mod">
881 <ul class="list list--clean dw-mod">
882 {{#FavoriteLists}}
883 {{>FavoriteListItem}}
884 {{/FavoriteLists}}
885 </ul>
886 </div>
887 <label class="dropdown-trigger-off" for="FavoriteTrigger_{{id}}"></label>
888 </div>
889 </div>
890 </script>
891
892 <script id="FavoriteListItem" type="text/x-template">
893 <li>
894 <a href="{{link}}" class="list__link u-no-underline dw-mod"><i class="{{favoriteIcon}}"></i> {{name}}</a>
895 </li>
896 </script>
897
898 <style>
899 div#content{
900 margin-top: 0px;
901 }
902 </style>
903
904
905 <script>
906 document.addEventListener("DOMContentLoaded", function (event) {
907 Facets.Init("productList", '@productCatalogId', '@requestQuery');
908
909 document.getElementById("productList").addEventListener('contentLoaded', function (e) {
910 if (e.srcElement.id === "productList") {
911 Search.Init();
912 if($("#headerBanner").hasClass( "u-hidden" ))
913 {
914
915 $("#headerBanner").removeClass( "u-hidden" );
916 $("#productList").removeClass( "u-hidden" );
917 }
918 }
919 }, false);
920
921 showHideHighlight();
922
923
924
925 });
926
927 function AddToCartBtn(btn){
928 $(btn).hide();
929 $(btn).parent().find('.cart_qty').show();
930 }
931
932
933 function Quant(q){
934
935 var inputBox = $(q).parent().find("input");
936 var qty = $(inputBox).val();
937 var action = $(q).attr("class");
938 if (action == "qty_minus" && qty > 0)
939 qty--;
940
941 if (action == "qty_plus")
942 qty++;
943
944
945 if (qty == 0){
946
947 $(".cart_qty").hide();
948 $(".cart_btn").show();
949
950 }
951
952 $(inputBox).val(qty);
953 }
954
955 function showHideHighlight(){
956
957 var highlight = '';
958 if( document.getElementById('HighlightOfTheWeek') ){
959 highlight = document.getElementById('HighlightOfTheWeek');
960 var url = window.location.href;
961 var query = '';
962 if ( url.indexOf('?') > -1 ){
963 highlight.style.display = 'none';
964 }else{
965 $(highlight).show();
966 }
967 }
968
969 }
970
971 function multiSearchSelect(item, searchItem){
972
973 var li = item.parentElement;
974 var ul = li.parentElement;
975 var liList = ul.children;
976 //if( li.classList.contains('active_tab') == false){
977 for( var i = 0 ; i < liList.length ; i++ ){
978 if( liList[i].classList.contains('active_tab') ){
979 liList[i].classList.remove('active_tab');
980 }
981 }
982
983 li.classList.add('active_tab');
984
985 var url = document.getElementById('productList').getAttribute('data-json-feed');
986 var newUrl = '';
987
988 var toReplace = url.split('MultiSearch=')[1].split('&')[0];
989 newUrl = url.replace( toReplace, searchItem );
990
991 var subIndex = 'MultiSearch='+searchItem;
992
993 newUrl = newUrl.substring(0, newUrl.indexOf(subIndex) + subIndex.length ) + "&feed=true";
994
995 _requestQuery = '?' + newUrl.split('?')[1];
996
997 document.getElementById('productList').setAttribute('data-json-feed', newUrl );
998
999 var cURL = window.location.href;
1000 var c1 = cURL.split('MultiSearch=')[1].split('&')[0];
1001 cURL = cURL.replace('MultiSearch='+c1, 'MultiSearch='+searchItem);
1002
1003 cURL = cURL.substring(0, cURL.indexOf(subIndex) + subIndex.length );
1004 window.history.pushState(null, null, cURL);
1005
1006
1007
1008 HandlebarsBolt.UpdateContent('productList', document.getElementById('productList').getAttribute('data-json-feed') );
1009 //}
1010 }
1011
1012 function FilterSortBy(filterOption){
1013 var url = window.location.href;
1014 if(url.includes("?"))
1015 {
1016 url = url + filterOption.replace('?','&') + '&feed=true';
1017 }
1018 else
1019 {
1020 url = url + filterOption+ '&feed=true';
1021 }
1022
1023 HandlebarsBolt.UpdateContent( 'productList', url );
1024 }
1025
1026 </script>
1027 <script type="text/javascript">
1028 function restrictAlphabets(e){
1029 var iKeyCode = (e.which) ? e.which : e.keyCode
1030 if (iKeyCode != 46 && iKeyCode > 31 && (iKeyCode < 48 || iKeyCode > 57))
1031 { return false;}
1032 else{
1033 return true;}
1034 }
1035 </script>