Error executing template "Designs/Rapido/_parsed/Page.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_fde62a6c0a3f4d91b495832c65e5129f.Execute() in E:\Dynamicweb.net\Solutions\Buchs\citylift.dw9.dynamicweb-cms.com\Files\Templates\Designs\Rapido\_parsed\Page.parsed.cshtml:line 532
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.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
  1     @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
  2  3     @* Rapido version 2.0.1 *@
  4  5     @using Dynamicweb.Frontend.Devices
  6     @using Dynamicweb.Extensibility
  7     @using Dynamicweb.Content
  8     @using Dynamicweb.Security
  9     @using System
 10     @using System.Linq
 11     @using System.Web
 12     @using System.IO
 13 14     @{
 15     	//General settings
 16     	string favicon = Model.Area.Item.GetFile("LogoFavicon") != null ? Model.Area.Item.GetFile("LogoFavicon").Path : "/Files/Images/favicon.png";
 17     	string logo = Model.Area.Item.GetFile("LogoImage") != null ? Model.Area.Item.GetFile("LogoImage").Path : "/Files/Images/logo-dynamicweb.png";
 18     	if (Path.GetExtension(logo).ToLower() != ".svg")
 19     	{
 20     		logo = @*"/Admin/Public/GetImage.ashx?height=40&crop=5&Compression=00&image=" + *@ @logo;
 21     	}
 22     	string searchPlaceholder = Translate("Search products", "Search products");
 23     	string searchValue = HttpContext.Current.Request.QueryString.Get("Search") != null ? HttpContext.Current.Request.QueryString.Get("Search") : "";
 24     	string wireframeMode = Model.Area.Item.GetBoolean("WireframeMode").ToString();
 25 26     	//Font settings
 27     	string navigationFont = Model.Area.Item.GetItem("NavigationFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 28     	string mobileNavigationFont = Model.Area.Item.GetItem("MobileNavigationFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 29     	string headerFont = Model.Area.Item.GetItem("ContentLayoutHeaderFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 30     	string subHeaderFont = Model.Area.Item.GetItem("ContentLayoutSubheaderFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 31     	string contentFont = Model.Area.Item.GetItem("ContentLayoutBodyText").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 32     	string newStickersFont = Model.Area.Item.GetItem("NewStickersFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 33     	string customStickersFont = Model.Area.Item.GetItem("CustomStickersFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 34     	string toolsMenuFont = Model.Area.Item.GetItem("ToolsMenuFont").GetGoogleFont("FontFamily").Family.Replace(" ", "+");
 35 36     	//Page IDs for use in the template
 37     	int pageId = Model.TopPage.ID;
 38     	string firstPageId = Model.Area.FirstActivePage.ID.ToString();
 39     	int cartPageId = GetPageIdByNavigationTag("CartPage");
 40     	int miniCartFeedPageId = GetPageIdByNavigationTag("MiniCartFeed");
 41     	int cartFeedPageId = GetPageIdByNavigationTag("CartOrderlinesFeed");
 42     	int productsPageId = GetPageIdByNavigationTag("ProductsPage");
 43     	int productsSearchFeedId = productsPageId;
 44     	int productGroupsPageId = GetPageIdByNavigationTag("ProductGroupsFeed");
 45     	int impersonationPageId = GetPageIdByNavigationTag("Impersonation");
 46 47     	bool stickyMenu = Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet" ? false : Model.Area.Item.GetBoolean("NavigationStickyMenu");
 48     	string stickyTop = stickyMenu ? "top-container--sticky" : "";
 49     	string pagePos = stickyMenu ? "js-page-pos" : "";
 50     	string topLayout = Model.Area.Item.GetList("LayoutTop").SelectedValue;
 51     	bool renderPagesInToolBar = Model.Area.Item.GetBoolean("RenderPagesInToolBar");
 52     	string toolbarText = Model.Area.Item.GetString("ToolbarText");
 53     	bool onlyPreview = Model.Area.Item.GetBoolean("OnlyPreviewForAnonymous") && Model.CurrentUser.ID == 0;
 54 55     	string autoCssLink = "/Files/Templates/Designs/Rapido/css/rapido/rapido_" + Model.Area.ID.ToString() + ".min.css?ticks=" + Model.Area.UpdatedDate.Ticks;
 56 57     	string userInitials = "";
 58     	if (Model.CurrentUser.ID != 0)
 59     	{
 60     		if (!String.IsNullOrEmpty(Model.CurrentUser.Name))
 61     		{
 62     			string[] names = Model.CurrentUser.Name.Split(' ');
 63     			userInitials += Model.CurrentUser.Name.Substring(0, 1);
 64 65     			if (names.Length > 1)
 66     			{
 67     				userInitials += names[names.Length - 1].Substring(0, 1);
 68     			}
 69     		}
 70     		else
 71     		{
 72     			userInitials += Model.CurrentUser.FirstName != null && Model.CurrentUser.FirstName != "" ? Model.CurrentUser.FirstName.Substring(0, 1) : "";
 73     			userInitials += Model.CurrentUser.LastName != null && Model.CurrentUser.LastName != "" ? Model.CurrentUser.LastName.Substring(0, 1) : "";
 74     			userInitials += userInitials.Length == 1 && Model.CurrentUser.FirstName != null && Model.CurrentUser.FirstName.Length > 1 ? Model.CurrentUser.FirstName.Substring(1, 2) : "";
 75     			userInitials += userInitials == "" && Model.CurrentUser.Email != null && Model.CurrentUser.Email.Length > 1 ? Model.CurrentUser.Email.Substring(0, 2) : "";
 76     			userInitials += userInitials == "" ? Model.CurrentUser.UserName.Substring(0, 2) : "";
 77     		}
 78     	}
 79 80     	string siteURL = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host;
 81     	string businessPhotoPath = Model.Area.Item.GetFile("BusinessPhoto") != null ? Model.Area.Item.GetFile("BusinessPhoto").Path : "";
 82     	string businessName = Model.Area.Item.GetString("BusinessName");
 83     	var address = Model.Area.Item.GetItem("Address");
 84     	string streetAddress = "";
 85     	string addressLocality = "";
 86     	string addressRegion = "";
 87     	string postalCode = "";
 88     	string addressCountry = "";
 89     	if (address != null)
 90     	{
 91     		streetAddress = address.GetString("StreetAddress");
 92     		addressLocality = address.GetString("City");
 93     		addressRegion = address.GetString("Region");
 94     		postalCode = address.GetString("PostalCode");
 95     		addressCountry = address.GetString("Country");
 96     	}
 97     	string contactEmail = Model.Area.Item.GetString("ContactEmail");
 98     	string contactNumber = Model.Area.Item.GetString("ContactNumber");
 99     }
100     <!DOCTYPE html>
101102     <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName">
103     <head>
104         <meta charset="utf-8" />
105         <title>@Model.Title</title>
106         <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
107         <meta name="robots" content="index, follow">
108     	@Model.MetaTags
109110         <!-- Favicon -->
111         <link href="@favicon" rel="icon" type="image/png">
112113         <!-- Font awesome -->
114         <link rel="stylesheet" href="/Files/Templates/Designs/Rapido/css/rapido/font-awesome.min.css" type="text/css">
115116         <!-- Base (Default, wireframe) styles -->
117         <link rel="stylesheet" href="/Files/Templates/Designs/Rapido/css/base/base.min.css" type="text/css">
118119         <!-- Rapido Css from Website Settings -->
120         <link id="rapidoCss" rel="stylesheet" href="@autoCssLink" type="text/css">
121122         <!-- Ignite Css (Custom site specific styles) -->
123         <link id="igniteCss" type="text/css" href="/Files/Templates/Designs/Rapido/css/ignite/ignite.min.css" rel="stylesheet">
124125         <!-- Google fonts -->
126         @{
127             var fonts = new string[8] { navigationFont, mobileNavigationFont, headerFont, subHeaderFont, contentFont, newStickersFont, customStickersFont, toolsMenuFont };
128             var family = string.Join("%7C", fonts.Distinct().Select(x => string.Format("{0}:100,200,300,400,500,600,700,800,900", x)));
129         }
130         <link href="https://fonts.googleapis.com/css?family=@family" rel="stylesheet">
131           @if(Model.Area.ID == 1){
132         <!-- Google Tag Manager -->
133         <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
134         new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
135         j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
136         'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
137         })(window,document,'script','dataLayer','GTM-KLKN3R7');</script>
138         <!-- End Google Tag Manager -->
139           } else {
140           <!-- Google Tag Manager -->
141     <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
142     new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
143     j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
144     'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
145     })(window,document,'script','dataLayer','GTM-5FHSNZ3');</script>
146     <!-- End Google Tag Manager -->
147           }
148149150         @if (!string.IsNullOrEmpty(businessPhotoPath) &&
151              !string.IsNullOrEmpty(businessName) &&
152              !string.IsNullOrEmpty(streetAddress) &&
153              !string.IsNullOrEmpty(addressLocality) &&
154              !string.IsNullOrEmpty(addressRegion) &&
155              !string.IsNullOrEmpty(postalCode) &&
156              !string.IsNullOrEmpty(addressCountry))
157         {
158             <script type="application/ld+json">
159             {
160               "@@context": "http://schema.org",
161               "@@type": "Store",
162               "image": [
163                 "@siteURL/Admin/Public/GetImage.ashx?width=400&height=400&crop=0&Compression=75&DoNotUpscale=true&image=@businessPhotoPath",
164                 "@siteURL/Admin/Public/GetImage.ashx?width=400&height=300&crop=0&Compression=75&DoNotUpscale=true&image=@businessPhotoPath",
165                 "@siteURL/Admin/Public/GetImage.ashx?width=448&height=225&crop=0&Compression=75&DoNotUpscale=true&image=@businessPhotoPath"
166               ],
167               "@@id": "@siteURL",
168               "name": "@businessName",
169               "address": {
170                 "@@type": "PostalAddress",
171                 "streetAddress": "@streetAddress",
172                 "addressLocality": "@addressLocality",
173                 "addressRegion": "@addressRegion",
174                 "postalCode": "@postalCode",
175                 "addressCountry": "@addressCountry"
176               }
177               @if (!string.IsNullOrEmpty(contactEmail))
178               {
179                 <text>,"email": "@Model.Area.Item.GetString("ContactEmail")"</text>
180               }
181               @if (!string.IsNullOrEmpty(contactNumber))
182               {
183                 <text>,"telephone": "@Model.Area.Item.GetString("ContactNumber")"</text>
184               }
185             }
186             </script>
187         }
188     </head>
189190     <body>
191       @if(Model.Area.ID == 1){
192         <!-- Google Tag Manager (noscript) -->
193         <noscript>
194             <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KLKN3R7"
195                     height="0" width="0" style="display:none;visibility:hidden"></iframe>
196         </noscript>
197         <!-- End Google Tag Manager (noscript) -->
198       } else {
199       <!-- Google Tag Manager (noscript) -->
200     <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5FHSNZ3"
201     height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
202     <!-- End Google Tag Manager (noscript) -->
203       }
204         @MobileNavigation(userInitials)
205206         @LoginModal()
207208         <main class="site dw-mod">
209             <header class="top-container @stickyTop dw-mod" id="Top">
210                 @if(renderPagesInToolBar && Pageview.Device.ToString() != "Mobile" && Pageview.Device.ToString() != "Tablet") {
211                     <div class="tools-navigation dw-mod">
212                         <div class="center-container grid top-container__center-container dw-mod">
213                             <div class="grid__cell">
214                                 <div class="u-pull--left u-margin-top">@toolbarText</div>
215                                 <div class="u-pull--right">
216                                     @RenderNavigation(new
217                                     {
218                                         id = "topToolsNavigation",
219                                         cssclass = "menu menu-tools dw-mod dwnavigation",
220                                         template = "TopMenu.xslt"
221                                     })
222                                 </div>
223                             </div>
224                         </div>
225                     </div>
226                 }
227228                 @if(Pageview.Device.ToString() != "Mobile" && Pageview.Device.ToString() != "Tablet") {
229                     switch(topLayout) {
230                         case "condensed": //2
231                         <!-- Main navigation -->
232                         <nav class="main-navigation dw-mod">
233                             <div class="center-container top-container__center-container dw-mod">
234                                 <div class="grid">
235236                                     <div class="grid__col-md-3 grid--align-self-center grid__col--bleed-y">
237                                         <div class="logo u-padding--xs dw-mod">
238                                             <a href="/Default.aspx?ID=@firstPageId">
239                                                 <img class="grid__cell-img" src="@logo" alt="@businessName" />
240                                             </a>
241                                         </div>
242                                     </div>
243244                                     @* Navigation *@
245                                     <div class="u-pull--left">
246                                         @RenderHeaderNavigation()
247                                     </div>
248249                                     <div class="grid__cell grid__cell--align-middle-right">
250                                         <ul class="menu dw-mod u-pull--right">
251                                             @RenderSignIn("inNavigation", userInitials)
252                                             @RenderLanguageSelector()
253                                             @RenderFavorites()
254                                             @RenderMiniCart()
255                                         </ul>
256                                     </div>
257                                 </div>
258                             </div>
259                         </nav>
260261                         <!-- Searchbar -->
262                         <div class="u-box-shadow u-color-light-gray--bg u-inline-block u-full-width">
263                             <div class="center-container top-container__center-container dw-mod">
264                                 <div class="typeahead typeahead--centered u-color-inherit js-typeahead dw-mod" data-page-size="10" id="ProductSearchBar" data-search-page-id="@productsSearchFeedId&feed=true" data-result-page-id="@productsPageId" data-groups-page-id="@productGroupsPageId">
265                                     <button type="button" class="btn btn--condensed u-color-light-gray--bg typeahead-group-btn dw-mod js-typeahead-groups-btn" data-group-id="all">@Translate("All")</button>
266                                     <ul class="dropdown dropdown--absolute-position u-min-w220px js-handlebars-root js-typeahead-groups-content dw-mod" id="ProductSearchBarGroupsContent" data-template="SearchGroupsTemplate" data-json-feed="/Default.aspx?ID=@productGroupsPageId&feedType=productGroups" data-init-onload="false" data-preloader="minimal"></ul>
267                                     <div class="typeahead-search-field">
268                                         <input type="text" class="u-no-margin u-full-width js-typeahead-search-field" placeholder="@searchPlaceholder" value="@searchValue">
269                                         <ul class="dropdown dropdown--absolute-position u-min-w220px u-full-width js-handlebars-root js-typeahead-search-content dw-mod" id="ProductSearchBarContent" data-template="SearchContentTemplate" data-json-feed="/Default.aspx?ID=@productsSearchFeedId&feedType=productsOnly&feed=true" data-init-onload="false"></ul>
270                                     </div>
271                                     <button type="button" class="btn btn--condensed btn--primary u-no-margin dw-mod js-typeahead-enter-btn"><i class="fa fa-search"></i></button>
272                                 </div>
273                             </div>
274                         </div>
275276                         break;
277                         case "minimal": //3
278                         <!-- Main navigation -->
279                         <nav class="main-navigation dw-mod">
280                             <div class="center-container top-container__center-container dw-mod">
281                                 <div class="grid">
282283                                     <div class="grid__col-md-3 grid--align-self-center grid__col--bleed-y">
284                                         <div class="logo u-padding--xs dw-mod">
285                                             <a href="/Default.aspx?ID=@firstPageId">
286                                                 <img class="grid__cell-img" src="@logo" alt="@businessName" />
287                                             </a>
288                                         </div>
289                                     </div>
290291                                     @* Navigation *@
292                                     <div class="u-pull--left">
293                                         @RenderHeaderNavigation()
294                                     </div>
295296                                     <div class="grid__cell grid__cell--align-middle-right">
297                                         <ul class="menu dw-mod u-pull--right">
298299                                             @* Search *@
300                                             <li class="menu__item menu__item--horizontal menu__item--top-level dw-mod" onmouseover="document.getElementById('headerSearch').focus()">
301                                                 <div class="menu__link u-w50px is-dropdown is-dropdown--no-icon dw-mod">
302                                                     <i class="fa fa-search fa-1_5x"></i>
303                                                     <div class="menu menu--dropdown u-w340px top-micro-search dw-mod">
304                                                         <div class="typeahead js-typeahead" data-page-size="10" id="ProductSearchBar" data-search-page-id="@productsSearchFeedId&feed=true" data-result-page-id="@productsPageId" data-groups-page-id="@productGroupsPageId">
305                                                             <div class="typeahead-search-field">
306                                                                 <input type="text" class="u-no-margin u-full-width js-typeahead-search-field" id="headerSearch" placeholder="@searchPlaceholder" value="@searchValue">
307                                                                 <ul class="dropdown dropdown--absolute-position u-min-w220px u-full-width js-handlebars-root js-typeahead-search-content" id="ProductSearchBarContent" data-template="SearchContentTemplate" data-json-feed="/Default.aspx?ID=@productsSearchFeedId&feedType=productsOnly&feed=true" data-init-onload="false" data-preloader="minimal"></ul>
308                                                             </div>
309                                                         </div>
310                                                     </div>
311                                                 </div>
312                                             </li>
313314                                             @* @RenderSignIn("inNavigation", userInitials) *@
315                                             @RenderLanguageSelector()
316                                             @* @RenderFavorites()
317                                                 @RenderMiniCart() *@
318                                         </ul>
319                                     </div>
320                                 </div>
321                             </div>
322                         </nav>
323                         break;
324                         case "splitted": //4
325                         <!-- Header -->
326                         <div class="header header-top dw-mod">
327                             <div class="center-container top-container__center-container dw-mod">
328                                 <div class="grid">
329330                                     @* Logo *@
331                                     <div class="grid__col-md-6 grid__col-sm-6 grid--align-self-center grid__col--bleed-y">
332                                         <div class="grid__cell">
333                                             <div class="logo u-max-w220px u-margin-top u-margin-bottom dw-mod">
334                                                 <a href="/Default.aspx?ID=@firstPageId">
335                                                     <img class="grid__cell-img" src="@logo" alt="@businessName" />
336                                                 </a>
337                                             </div>
338                                         </div>
339                                     </div>
340341                                     @* Search *@
342                                     <div class="grid__col-md-6 grid__col-sm-6 grid__col-xs-12 grid--align-self-center grid__col--bleed">
343                                         <div class="grid__cell">
344                                             <div class="typeahead u-no-margin u-margin-top u-margin-bottom u-color-inherit js-typeahead" data-page-size="10" id="TopProductSearch" data-search-page-id="@productsSearchFeedId&feed=true" data-result-page-id="@productsPageId" data-groups-page-id="@productGroupsPageId">
345                                                 <button type="button" class="btn btn--condensed u-color-light-gray--bg typeahead-group-btn dw-mod js-typeahead-groups-btn" data-group-id="all">@Translate("All")</button>
346                                                 <ul class="dropdown dropdown--absolute-position u-min-w220px js-handlebars-root js-typeahead-groups-content dw-mod" id="TopProductSearchGroupsContent" data-template="SearchGroupsTemplate" data-json-feed="/Default.aspx?ID=@productGroupsPageId&feedType=productGroups" data-init-onload="false" data-preloader="minimal"></ul>
347                                                 <input type="text" class="typeahead-search-field u-no-margin js-typeahead-search-field" placeholder="@searchPlaceholder" value="@searchValue">
348                                                 <ul class="dropdown dropdown--absolute-position u-min-w220px u-full-width js-handlebars-root js-typeahead-search-content u-full-width dw-mod" id="TopProductSearchContent" data-template="SearchContentTemplate" data-json-feed="/Default.aspx?ID=@productsSearchFeedId&feedType=productsOnly&feed=true" data-init-onload="false" data-preloader="minimal"></ul>
349                                                 <button type="button" class="btn btn--condensed btn--primary u-no-margin dw-mod js-typeahead-enter-btn"><i class="fa fa-search"></i></button>
350                                             </div>
351                                         </div>
352                                     </div>
353                                 </div>
354                             </div>
355                         </div>
356                         <!-- Main navigation -->
357                         <nav class="main-navigation dw-mod">
358                             <div class="center-container top-container__center-container dw-mod">
359                                 <div class="grid">
360                                     <div class="u-pull--left">
361                                         @RenderHeaderNavigation()
362                                     </div>
363                                     <div class="grid__cell grid__cell--align-middle-right">
364                                         <ul class="menu dw-mod u-pull--right">
365                                             @RenderSignIn("inNavigation", userInitials)
366                                             @RenderLanguageSelector()
367                                             @RenderFavorites()
368                                             @if(!onlyPreview) {
369                                                 @RenderMiniCart()
370                                             }
371                                         </ul>
372                                     </div>
373                                 </div>
374                             </div>
375                         </nav>
376377                         break;
378                         case "normal": //1
379                         default:
380                         <!-- Header -->
381                         <div class="header header-top dw-mod">
382                             <div class="center-container top-container__center-container dw-mod">
383                                 <div class="grid">
384385                                     @* Logo *@
386                                     <div class="grid__col-md-3 grid__col-sm-3 grid__col-xs-12 grid--align-self-center grid__col--bleed-y">
387                                         <div class="logo dw-mod">
388                                             <a href="/Default.aspx?ID=@firstPageId">
389                                                 <img class="grid__cell-img" src="@logo" alt="@businessName" />
390                                             </a>
391                                         </div>
392                                     </div>
393394                                     @* Search *@
395                                     <div class="grid__col-md-4 grid__col-sm-4 grid__col-xs-12 grid__col--bleed-y grid--align-self-center">
396                                         <div class="typeahead u-margin u-color-inherit js-typeahead" data-page-size="10" id="TopProductSearch" data-search-page-id="@productsSearchFeedId&feed=true" data-result-page-id="@productsPageId" data-groups-page-id="@productGroupsPageId">
397                                             <button type="button" class="btn btn--condensed u-color-light-gray--bg typeahead-group-btn dw-mod js-typeahead-groups-btn" data-group-id="all">@Translate("All")</button>
398                                             <ul class="dropdown dropdown--absolute-position js-handlebars-root js-typeahead-groups-content u-min-w220px dw-mod" id="TopProductSearchGroupsContent" data-template="SearchGroupsTemplate" data-json-feed="/Default.aspx?ID=@productGroupsPageId&feedType=productGroups" data-init-onload="false" data-preloader="minimal"></ul>
399                                             <input type="text" class="typeahead-search-field u-no-margin js-typeahead-search-field" placeholder="@searchPlaceholder" value="@searchValue">
400                                             <ul class="dropdown dropdown--absolute-position u-min-w220px u-full-width js-handlebars-root js-typeahead-search-content u-full-width dw-mod" id="TopProductSearchContent" data-template="SearchContentTemplate" data-json-feed="/Default.aspx?ID=@productsSearchFeedId&feedType=productsOnly&feed=true" data-init-onload="false" data-preloader="minimal"></ul>
401                                             <button type="button" class="btn btn--condensed btn--primary u-no-margin dw-mod js-typeahead-enter-btn"><i class="fa fa-search"></i></button>
402                                         </div>
403                                     </div>
404405                                     <div class="grid__col-md-4 grid__col-sm-4 grid__col-xs-12 grid__col--bleed-y grid--align-self-center">
406                                         <div class="grid__cell grid__cell--align-middle-right">
407                                             <ul class="menu dw-mod u-pull--right">
408                                                 @RenderSignIn("outsideNavigation", userInitials)
409                                                 @RenderLanguageSelector("outsideNavigation")
410                                                 @RenderFavorites("outsideNavigation")
411                                                 @if(!onlyPreview) {
412                                                     @RenderMiniCart("outsideNavigation")
413                                                 }
414                                             </ul>
415                                         </div>
416                                     </div>
417                                 </div>
418                             </div>
419                         </div>
420421                         <!-- Main navigation -->
422                         <nav class="main-navigation dw-mod">
423                             <div class="center-container top-container__center-container dw-mod">
424                                 <div class="grid">
425                                     @RenderHeaderNavigation()
426                                 </div>
427                             </div>
428                         </nav>
429430                         break;
431                     }
432                 } else {
433                     string style = (topLayout == "normal" || topLayout == "splitted" ? "main-navigation--top-style" : "main-navigation--nav-style");
434                     <!-- Main navigation -->
435                     <nav class="main-navigation dw-mod @style">
436                         <div class="center-container top-container__center-container dw-mod">
437                             <div class="grid">
438                                 @MobileNavigationTrigger()
439440                                 <div class="logo u-max-w220px u-middle dw-mod">
441                                     <a href="/Default.aspx?ID=@firstPageId">
442                                         <img class="grid__cell-img u-w-100prc" src="@logo" alt="@businessName" />
443                                     </a>
444                                 </div>
445446                                 @if(!onlyPreview) {
447                                     <ul class="menu dw-mod u-pull--right">
448                                         @RenderMiniCart()
449                                     </ul>
450                                 }
451                             </div>
452                         </div>
453                     </nav>
454455                     @* Mobile search *@
456                     <div class="u-padding">
457                         <div class="js-typeahead" data-page-size="10" id="MobileProductSearch" data-search-page-id="@productsSearchFeedId&feed=true" data-result-page-id="@productsPageId">
458                             <input type="text" class="u-full-width js-typeahead-search-field u-no-margin" placeholder="@searchPlaceholder" value="@searchValue">
459                             <ul class="dropdown dropdown--absolute-position u-min-w220px js-handlebars-root js-typeahead-search-content dw-mod" id="MobileProductSearchContent" data-template="SearchContentTemplate" data-json-feed="/Default.aspx?ID=@productsSearchFeedId&feedType=productsOnly&feed=true" data-init-onload="false"></ul>
460                         </div>
461                     </div>
462                 }
463464                 @* Impersonation bar *@
465                 @if(Model.CurrentUser.ID > 0 && Model.SecondaryUsers.Count > 0) {
466                     <div class="u-color-warning--bg">
467                         <div class="center-container top-container__center-container dw-mod">
468                             @*Impersonation*@
469                             <div class="grid">
470                                 <div class="grid--align-self-center grid__col-x">
471                                     @if(Model.CurrentSecondaryUser != null && Model.CurrentSecondaryUser.ID > 0) {
472                                         string stopImpersonateTranslation = Translate("Stop impersonation");
473                                         string username = "";
474                                         if(!string.IsNullOrEmpty(Model.CurrentSecondaryUser.FirstName) && !string.IsNullOrEmpty(Model.CurrentSecondaryUser.LastName)) {
475                                             username = Model.CurrentSecondaryUser.FirstName + " " + Model.CurrentSecondaryUser.LastName;
476                                         } else if(!string.IsNullOrEmpty(Model.CurrentSecondaryUser.Name)) {
477                                             username = Model.CurrentSecondaryUser.Name;
478                                         } else if(!string.IsNullOrEmpty(Model.CurrentSecondaryUser.Email)) {
479                                             username = Model.CurrentSecondaryUser.Email;
480                                         } else {
481                                             username = Model.CurrentSecondaryUser.UserName;
482                                         }
483                                         <div class="grid-cell">
484                                             <div class="u-pull--left u-bold u-margin-top">
485                                                 <i class="fa fa-user-secret"></i>
486                                                 @username<text> </text>@Translate("is impersonated by")<text> </text>@Pageview.User.UserName
487                                             </div>
488                                             <form method="post" class="u-pull--right u-no-margin">
489                                                 <input type="submit" class="btn btn--secondary dw-mod u-no-margin" name="DwExtranetRemoveSecondaryUser" value="@stopImpersonateTranslation">
490                                             </form>
491                                         </div>
492                                     } else {
493                                         string viewListTranslation = Translate("View the list of users you can impersonate");
494                                         <div class="grid-cell u-bold">
495                                             <i class="fa fa-user-secret"></i>
496                                             <a href="/Default.aspx?ID=@impersonationPageId" title="@viewListTranslation" class="u-color-font-black">@viewListTranslation</a>
497                                         </div>
498                                     }
499                                 </div>
500                             </div>
501                         </div>
502                     </div>
503                 }
504             </header>
505506             <!-- Floating mini cart -->
507             @if(!onlyPreview && !stickyMenu && pageId == productsPageId && Pageview.Device.ToString() != "Mobile" && Pageview.Device.ToString() != "Tablet") {
508                 <div class="floating-mini-cart u-hidden dw-mod" id="FloatingMiniCart">
509                     <div class="mini-cart dw-mod">
510                         <a href="/Default.aspx?ID=@cartPageId&Purge=True" class="menu-tools__link menu__link--condensed dw-mod js-mini-cart-button" onmouseover="Cart.UpdateMiniCart(event, 'SecondaryMiniCart', '/Default.aspx?ID=@miniCartFeedPageId&feedType=MiniCart')">
511                             <i class="fa fa-shopping-cart fa-4x"></i>
512                             <div class="mini-cart__counter mini-cart__counter--lg dw-mod">
513                                 <div class="js-handlebars-root js-mini-cart-counter" id="FloatingCartCounter" data-template="MiniCartCounterContent" data-json-feed="/Default.aspx?ID=@miniCartFeedPageId&feedType=Counter" data-preloader="false" data-init-onload="false">
514                                     <div class="js-mini-cart-counter-content">
515                                         @Model.Cart.TotalProductsCount
516                                     </div>
517                                 </div>
518                             </div>
519                         </a>
520521                         <div class="mini-cart-dropdown js-handlebars-root js-mini-cart dw-mod" id="SecondaryMiniCart" data-template="MiniCartContent" data-cart-id="@miniCartFeedPageId" data-json-feed="/Default.aspx?ID=@miniCartFeedPageId&feedType=MiniCart" data-init-onload="false"></div>
522                     </div>
523                 </div>
524             }
525526             <!-- Render the content -->
527             <div id="Page" class="page @pagePos">
528                 <section class="center-container content-container dw-mod" id="content">
529                     @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
530531532     @if (Model.PropertyItem.GetList("ShowBreadcrumb").SelectedValue == "True")
533     {
534     	<div class="grid__col-12 grid__col--bleed-y">
535     		@RenderNavigation(new
536        {
537     	   id = "breadcrumb",
538     	   template = "Breadcrumb.xslt"
539        })
540     	</div>
541     }
542543     <div class="grid">
544     	@if (Model.PropertyItem.GetList("LeftMenu").SelectedValue == "True")
545     	{
546     		var navigationMarkup = RenderNavigation(new
547     		{
548     			id = "leftnav",
549     			cssclass = "menu dwnavigation",
550     			startLevel = 2,
551     			endlevel = 5,
552     			template = "LeftNavigation.xslt"
553     		});
554     		if (!string.IsNullOrEmpty(navigationMarkup))
555     		{
556     			<nav class="grid__col-md-3 grid__col-sm-12 grid__col-xs-12">
557                     <div class="grid">
558                         <div class="grid__col-12">
559                             <div class="grid__cell">
560     					        @navigationMarkup
561     				        </div>
562                         </div>
563                     </div>
564     			</nav>
565     		}
566     	}
567     	<div class="grid__col-auto grid__col--bleed">
568     		<div class="grid">
569     			@* Divs count is equal divs in ParagraphContainer.cshtml *@
570     			@Model.Placeholder("dwcontent", "content", "default:true;sort:1")
571     		</div>
572     	</div>
573     </div>
574                 </section>
575             </div>
576         </main>
577578         @RenderFooter()
579580581         <!-- Content rendering helpers -->
582583         @helper MobileNavigation(string userInitials) {
584             int pageId = Model.TopPage.ID;
585             string mobileNavigationLevels = Model.Area.Item.GetBoolean("MobileNavigationLevels") ? Model.Area.Item.GetString("MobileNavigationLevels") : "3";
586587             bool showCreateAccountLink = Model.Area.Item.GetBoolean("ShowCreateAccountLink");
588589             int miniCartFeedPageId = GetPageIdByNavigationTag("MiniCartFeed");
590             int cartFeedPageId = GetPageIdByNavigationTag("CartOrderlinesFeed");
591             int createAccountPageId = GetPageIdByNavigationTag("CreateAccount");
592593             string myProfilePageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("CustomerProfile").ToString() : GetPageIdByNavigationTag("CustomerProfile").ToString();
594             string myOrdersPageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("CustomerOrders").ToString() : GetPageIdByNavigationTag("CustomerOrders").ToString();
595             string myFavoritesPageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("CustomerFavorites").ToString() : GetPageIdByNavigationTag("CustomerFavorites").ToString();
596             bool showMyProfileLink = Model.Area.Item.GetBoolean("ShowMyProfileLink");
597             bool showMyOrdersLink = Model.Area.Item.GetBoolean("ShowMyOrdersLink");
598             bool showMyFavoritesLink = Model.Area.Item.GetBoolean("ShowMyFavoritesLink");
599600             bool renderPagesInToolBar = Model.Area.Item.GetBoolean("RenderPagesInToolBar");
601             int startLevel = renderPagesInToolBar ? 1 : 0;
602603             bool onlyPreview = Model.Area.Item.GetBoolean("OnlyPreviewForAnonymous") && Model.CurrentUser.ID == 0;
604605             if(Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") {
606                 <!-- Trigger for mobile navigation -->
607                 <input type="checkbox" id="MobileNavTrigger" class="mobile-nav-trigger" />
608609                 <!-- Mobile navigation -->
610                 <nav class="mobile-navigation dw-mod">
611                     @if(Model.CurrentUser.ID > 0) {
612                         string userName = Model.CurrentUser.FirstName != null ? Model.CurrentUser.FirstName : "";
613                         userName += " " + Model.CurrentUser.LastName != null ? Model.CurrentUser.LastName : "";
614                         userName += userName == "" && Model.CurrentUser.UserName != null ? Model.CurrentUser.UserName : "";
615616                         <ul class="menu menu-mobile">
617                             <li class="menu-mobile__item">
618                                 <a href="/default.aspx?ID=@myProfilePageId" class="menu-mobile__link dw-mod"><i class="fa fa-user menu-mobile__link-icon"></i> @userName</a>
619                             </li>
620                         </ul>
621                     }
622623                     @RenderNavigation(new
624                     {
625                         id = "mobilenavigation",
626                         cssclass = "menu menu-mobile dwnavigation",
627                         startLevel = @startLevel,
628                         ecomStartLevel = @startLevel+1,
629                         endlevel = @mobileNavigationLevels,
630                         expandmode = "all",
631                         template = "BaseMenuForMobile.xslt"
632                     })
633634                     @if(Model.Area.Item.GetBoolean("RenderPagesInToolBar")) {
635                         @RenderNavigation(new
636                         {
637                             id = "topToolsMobileNavigation",
638                             cssclass = "menu menu-mobile dwnavigation",
639                             template = "ToolsMenuForMobile.xslt"
640                         })
641                     }
642643                     <ul class="menu menu-mobile">
644                         @if(Model.CurrentUser.ID <= 0) {
645                             @*
646                                 <li class="menu-mobile__item">
647                                     <label for="SignInModalTrigger" onclick="document.getElementById('MobileNavTrigger').checked = false;" class="menu-mobile__link dw-mod menu-mobile__link--highlighted"><i class="fa fa-user menu-mobile__link-icon"></i> @Translate("Sign in")</label>
648                                 </li>
649                                 if (showCreateAccountLink)
650                                 {
651                                     <li class="menu-mobile__item">
652                                         <a class="menu-mobile__link menu-mobile__link--highlighted dw-mod" href="/Default.aspx?ID=@createAccountPageId"><i class="fa fa-user menu-mobile__link-icon"></i> @Translate("Create account")</a>
653                                     </li>
654                                 }
655                             *@
656                         } else {
657                             if(showMyProfileLink) {
658                                 <li class="menu-mobile__item">
659                                     <a href="/default.aspx?ID=@myProfilePageId" class="menu-mobile__link menu-mobile__link--highlighted dw-mod"><i class="fa fa-user menu-mobile__link-icon"></i> @Translate("My Profile")</a>
660                                 </li>
661                             }
662                             if(showMyOrdersLink) {
663                                 <li class="menu-mobile__item">
664                                     <a href="/default.aspx?ID=@myOrdersPageId" class="menu-mobile__link menu-mobile__link--highlighted dw-mod"><i class="fa fa-list menu-mobile__link-icon"></i> @Translate("My Orders")</a>
665                                 </li>
666                             }
667                             if(showMyFavoritesLink) {
668                                 <li class="menu-mobile__item">
669                                     <a href="/default.aspx?ID=@myFavoritesPageId" class="menu-mobile__link menu-mobile__link--highlighted dw-mod"><i class="fa fa-star menu-mobile__link-icon"></i> @Translate("My Favorites")</a>
670                                 </li>
671                             }
672                             <li class="menu-mobile__item">
673                                 <a class="menu-mobile__link menu-mobile__link--highlighted dw-mod" href="/Admin/Public/ExtranetLogoff.aspx?ID=@pageId"><i class="fa fa-user menu-mobile__link-icon"></i> @Translate("Sign out")</a>
674                             </li>
675                         }
676677678                         @if(true) {
679                             string selectedLanguage = Pageview.Area.CultureInfo.DisplayName.Split('(')[0].Trim();
680681                             <li class="menu-mobile__item dw-mod">
682                                 <label for="MobileMenuCheck_Language" class="menu-mobile__link menu-mobile__link--highlighted dw-mod"><i class="fa fa-globe menu-mobile__link-icon"></i> @selectedLanguage</label>
683                                 <input id="MobileMenuCheck_Language" type="checkbox" class="expand-trigger">
684                                 <label for="MobileMenuCheck_Language" class="menu-mobile__trigger"></label>
685                                 <ul class="menu-mobile menu-mobile__submenu expand-menu">
686                                     @foreach(var area in Dynamicweb.Services.Areas.GetAreas()) {
687                                         string languageName = Translate(area.CultureInfo.DisplayName.Split('(')[0].Trim());
688                                         <li class="menu-mobile__item dw-mod">
689                                             <a class="menu-mobile__link menu-mobile__link--highlighted dw-mod menu-mobile__link--level-1" href="/Default.aspx?ID=@(Dynamicweb.Services.Pages.GetFirstPageForArea(area.ID).ID)">@languageName</a>
690                                         </li>
691                                     }
692                                 </ul>
693                             </li>
694                         }
695                     </ul>
696                 </nav>
697                 <label class="mobile-nav-trigger-off" for="MobileNavTrigger"></label>
698699                 if(!onlyPreview) {
700                     <div class="u-visually-hidden js-handlebars-root js-mini-cart" id="miniCart" data-template="MiniCartContent" data-cart-id="@cartFeedPageId" data-json-feed="/Default.aspx?ID=@miniCartFeedPageId&feedType=MiniCart" data-init-onload="false"></div>
701                 }
702             }
703         }
704705         @helper LoginModal() {
706             int pageId = Model.TopPage.ID;
707             string topLayout = Model.Area.Item.GetList("LayoutTop").SelectedValue;
708             int createAccountPageId = GetPageIdByNavigationTag("CreateAccount");
709             int signInProfilePageId = GetPageIdByNavigationTag("SignInPage");
710             string forgotPasswordPageId = signInProfilePageId.ToString() + "&LoginAction=Recovery";
711             string userSignedInError = !Model.LogOnFailed ? "" : "checked";
712             string userSignedInErrorText = "";
713714             if(Model.LogOnFailed) {
715                 switch(Model.LogOnFailedReason) {
716                     case Dynamicweb.Security.UserManagement.LogOnFailedReason.PasswordLengthInvalid:
717                     userSignedInErrorText = Translate("Password length is invalid");
718                     break;
719                     case Dynamicweb.Security.UserManagement.LogOnFailedReason.IncorrectLogin:
720                     userSignedInErrorText = Translate("Invalid email or password");
721                     break;
722                     case Dynamicweb.Security.UserManagement.LogOnFailedReason.ExceededFailedLogOnLimit:
723                     userSignedInErrorText = Translate("You have exceeded the limit of allowed login attempts. The user account is temporarily locked");
724                     break;
725                     case Dynamicweb.Security.UserManagement.LogOnFailedReason.LoginLocked:
726                     userSignedInErrorText = Translate("The user account is temporarily locked");
727                     break;
728                     case Dynamicweb.Security.UserManagement.LogOnFailedReason.PasswordExpired:
729                     userSignedInErrorText = Translate("The password has expired and needs to be renewed");
730                     break;
731                     default:
732                     userSignedInErrorText = Translate("An unknown error occured");
733                     break;
734                 }
735             }
736737             <!-- Trigger for the login modal -->
738             <input type="checkbox" id="SignInModalTrigger" class="modal-trigger @topLayout" @userSignedInError />
739740             <!-- Login modal -->
741             <div class="modal-container">
742                 <label for="SignInModalTrigger" id="SignInModalOverlay" class="modal-overlay"></label>
743                 <div class="modal modal--xs" id="SignInModal">
744                     <div class="modal__header">
745                         <h2>@Translate("Sign in")</h2>
746                     </div>
747                     <div class="modal__body">
748                         <form method="post" id="LoginForm" class="u-no-margin">
749                             <input type="hidden" name="ID" value="@pageId" />
750                             <input type="hidden" name="DWExtranetUsernameRemember" value="True" />
751                             <input type="hidden" name="DWExtranetPasswordRemember" value="True" />
752                             <input type="text" class="u-full-width" id="LoginUsername" name="username" placeholder="@Translate("Email")" />
753                             <input type="password" class="u-full-width" id="LoginPassword" name="password" placeholder="@Translate("Password")" />
754                             <div class="field-error dw-mod">@userSignedInErrorText</div>
755756                             <label>
757                                 <input type="checkbox" id="RememberMe" name="Autologin" checked="checked" value="True">
758                                 <span>@Translate("Remember me", "Remember me")</span>
759                             </label>
760761                             <button type="submit" class="btn btn--primary btn--full dw-mod" name="LoginAction" value="Login" onclick="Buttons.LockButton(event)">@Translate("Sign in")</button>
762763                             <a class="btn btn--link-clean dw-mod" href="/Default.aspx?id=@forgotPasswordPageId">@Translate("Forgot your password?", "Forgot your password?")</a>
764765                             <a class="btn btn--link-clean dw-mod" href="/default.aspx?ID=@createAccountPageId">@Translate("Create account")?</a>
766                         </form>
767                     </div>
768                 </div>
769             </div>
770         }
771772         @helper RenderHeaderNavigation() {
773             bool megaMenu = Model.Area.Item.GetList("NavigationMegaMenu").SelectedValue.ToLower() == "true" ? true : false;
774             string megamenuPromotionImage = Model.Area.Item.GetFile("NavigationMegamenuPromotionImage") != null ? Model.Area.Item.GetFile("NavigationMegamenuPromotionImage").Path : "";
775             bool renderPagesInToolBar = Model.Area.Item.GetBoolean("RenderPagesInToolBar");
776             int startLevel = renderPagesInToolBar ? 1 : 0;
777778779             if(Pageview.Device.ToString() != "Mobile" && Pageview.Device.ToString() != "Tablet") {
780                 if(!megaMenu) {
781                     if(Model.Area.ID == 10) {
782783             <ul class="menu dw-mod dwnavigation" id="topnavigation">
784                 @foreach(var page in Dynamicweb.Services.Pages.GetPagesByParentID(725)) {
785                     if(page.ID == 753) {
786                         <li class="menu__item dw-mod menu__item--horizontal menu__item--top-level dw-navbar-button is-dropdown menu__item--disabled">
787                             <a href="/Default.aspx?ID=@page.ID" class="menu__link dw-mod">@page.MenuText</a>
788                             <ul class="menu menu--dropdown dw-mod">
789                                 @foreach(var i in Dynamicweb.Ecommerce.Services.ProductGroups.GetGroups("LANG2").Where(x => x.ProductCount > 0).OrderBy(x => x.Name)) {
790791                                     string urlToParse = "Default.aspx?ID=725&GroupID="+i.IdUrlEncoded;
792                                     string groupHref = Dynamicweb.SystemTools.UrlParser.GetFullHrefString(urlToParse);
793                                 <li class="menu__item dw-mod menu__item--fixed-width">
794                                     <a class=" menu-dropdown__link dw-mod" href="@groupHref">@i.Name</a>
795                                 </li>
796                                 }
797                             </ul>
798                         </li>
799                     } else {
800                         <li class="menu__item dw-mod menu__item--horizontal menu__item--top-level dw-navbar-button">
801                             <a class="menu__link dw-mod" href="/Default.aspx?ID=@page.ID">@page.MenuText</a>
802                         </li>
803                     }
804                 }
805             </ul>
806807                     } else {
808                         @RenderNavigation(new
809                         {
810                             id = "topnavigation",
811                             cssclass = "menu dw-mod dwnavigation",
812                             startLevel = @startLevel,
813                             ecomStartLevel = @startLevel+1,
814                             endlevel = 5,
815                             expandmode="all",
816                             template = "BaseMenuWithDropdown.xslt"
817                         });
818                     }
819820                 } else {
821                     @RenderNavigation(new
822                    {
823                         id = "topnavigation",
824                         cssclass = "menu dw-mod dwnavigation",
825                         startLevel = @startLevel,
826                         ecomStartLevel = @startLevel+1,
827                         endlevel = 5,
828                         promotionImage = megamenuPromotionImage,
829                         promotionLink = Model.Area.Item.GetString("NavigationMegamenuPromotionLink"),
830                         expandmode = "all",
831                         template = "BaseMegaMenu.xslt"
832                     });
833                 }
834             }
835         }
836837         @helper MobileNavigationTrigger() {
838             @* Mobile navigation trigger *@
839840             if(Pageview.Device.ToString() == "Mobile" || Pageview.Device.ToString() == "Tablet") {
841                 <div class="menu dw-mod u-pull--left">
842                     <div class="menu__item menu__item--horizontal menu__item--top-level dw-mod">
843                         <label for="MobileNavTrigger" class="mobile-nav-trigger-button menu__link dw-mod"></label>
844                     </div>
845                 </div>
846             }
847         }
848849         @helper RenderLanguageSelector(string type = "inNavigation") {
850             string liClasses = type == "inNavigation" ? "menu__item menu__item--horizontal menu__item--top-level dw-mod" : "menu__item menu__item--horizontal menu--clean u-w40px dw-mod";
851             string menuLinkClass = type == "inNavigation" ? "menu__link" : "header-menu__link";
852             string twoLetterLanguageName = Pageview.Area.CultureInfo.TwoLetterISOLanguageName;
853854             if(twoLetterLanguageName == "en"){
855                 twoLetterLanguageName = "gb";
856             } else if(twoLetterLanguageName == "da"){
857                 twoLetterLanguageName = "dk";
858             }
859860             @* Language selector *@
861862863             if(true) {
864865                 <li class="@liClasses">
866                     <div class="@menuLinkClass u-w40px is-dropdown is-dropdown--no-icon dw-mod" style="position:relative;">
867                         <img style="display:inline;" src="/Admin/Resources/fonts/flags/1x1/@(twoLetterLanguageName).svg"/>
868869                         <div class="menu menu--dropdown u-w100px dw-mod" style="left:inherit;right:0;">
870                             @foreach(var area in Dynamicweb.Services.Areas.GetAreas()) {
871                                 string languageName = Translate(area.CultureInfo.DisplayName.Split('(')[0].Trim());
872                                 string areaprotocol = area.SslMode == 1 ? "https://" : "http://";
873                                 <a href="@(areaprotocol)@area.DomainLock" class="menu-dropdown__item menu-dropdown__item--link dw-mod">@languageName</a>
874                             }
875                         </div>
876                     </div>
877                 </li>
878             }
879         }
880881         @helper RenderMiniCart(string type = "inNavigation") {
882             string liClasses = type == "inNavigation" ? "menu__item menu__item--horizontal menu__item--top-level dw-mod" : "menu__item menu__item--horizontal menu--clean dw-mod";
883             string menuLinkClass = type == "inNavigation" ? "menu__link" : "header-menu__link";
884885             int miniCartFeedPageId = GetPageIdByNavigationTag("MiniCartFeed");
886             int cartFeedPageId = GetPageIdByNavigationTag("CartOrderlinesFeed");
887             int cartPageId = GetPageIdByNavigationTag("CartPage");
888             double cartProductsCount = Model.Cart.TotalProductsCount;
889890             @* Mini cart *@
891             <li class="@liClasses">
892                 <div class="mini-cart dw-mod">
893                     <a href="/Default.aspx?ID=@cartPageId&Purge=True" id="miniCartCounterWrap" class="@menuLinkClass dw-mod js-mini-cart-button" onmouseenter="Cart.UpdateMiniCart(event, 'miniCart', '/Default.aspx?ID=@miniCartFeedPageId&feedType=MiniCart')">
894                         <i class="fa fa-shopping-cart fa-1_5x"></i>
895                         <div class="mini-cart__counter mini-cart__counter--inline dw-mod">
896                             <div class="js-handlebars-root js-mini-cart-counter" id="cartCounter" data-template="MiniCartCounterContent" data-json-feed="/Default.aspx?ID=@miniCartFeedPageId&feedType=Counter" data-init-onload="false" data-preloader="false">
897                                 <div class="js-mini-cart-counter-content">
898                                     @cartProductsCount
899                                 </div>
900                             </div>
901                         </div>
902                     </a>
903                     @if(Pageview.Device.ToString() != "Mobile" && Pageview.Device.ToString() != "Tablet") {
904                         <div class="mini-cart-dropdown js-handlebars-root js-mini-cart dw-mod" id="miniCart" data-template="MiniCartContent" data-cart-id="@miniCartFeedPageId" data-json-feed="/Default.aspx?ID=@miniCartFeedPageId&feedType=MiniCart" data-init-onload="false"></div>
905                     }
906                 </div>
907             </li>
908         }
909910         @helper RenderSignIn(string type = "inNavigation", string userInitials = "") {
911             string liClasses = type == "inNavigation" ? "menu__item menu__item--horizontal menu__item--top-level dw-mod u-hidden-xxs" : "menu__item menu__item--horizontal menu__item--clean u-w40px dw-mod";
912             string menuLinkClass = type == "inNavigation" ? "menu__link" : "header-menu__link";
913914             int pageId = Model.TopPage.ID;
915             string myProfilePageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("CustomerProfile").ToString() : GetPageIdByNavigationTag("CustomerProfile").ToString();
916             string myOrdersPageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("CustomerOrders").ToString() : GetPageIdByNavigationTag("CustomerOrders").ToString();
917             int myDashboardPageId = GetPageIdByNavigationTag("CustomerDashboard");
918             string myFavoritesPageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("CustomerFavorites").ToString() : GetPageIdByNavigationTag("CustomerFavorites").ToString();
919             string mySavedCardsPageId = (Model.CurrentUser.ID <= 0) ? GetPageIdByNavigationTag("SignInPage").ToString() + "&RedirectPageId=" + GetPageIdByNavigationTag("SavedCards").ToString() : GetPageIdByNavigationTag("SavedCards").ToString();
920             int createAccountPageId = GetPageIdByNavigationTag("CreateAccount");
921             int signInProfilePageId = GetPageIdByNavigationTag("SignInPage");
922             string forgotPasswordPageId = signInProfilePageId.ToString() + "&LoginAction=Recovery";
923924             bool showCreateAccountLink = Model.Area.Item.GetBoolean("ShowCreateAccountLink");
925             bool showMyProfileLink = Model.Area.Item.GetBoolean("ShowMyProfileLink");
926             bool showMyOrdersLink = Model.Area.Item.GetBoolean("ShowMyOrdersLink");
927             bool showMyFavoritesLink = Model.Area.Item.GetBoolean("ShowMyFavoritesLink");
928             bool showMySavedCardsLink = Model.Area.Item.GetBoolean("ShowMySavedCardsLink");
929930             @* Sign in + Customer center links *@
931             <li class="@liClasses">
932                 <div class="@menuLinkClass is-dropdown is-dropdown--no-icon u-w40px dw-mod">
933                     @if(Model.CurrentUser.ID <= 0) {
934                         <i class="fa fa-user fa-1_5x"></i>
935                     } else {
936                         <a href="/default.aspx?ID=@myDashboardPageId" class="u-color-inherit"><div class="circle-icon-btn">@userInitials.ToUpper()</div></a>
937                     }
938939                     <div class="menu menu--dropdown sign-in-dropdown dw-mod">
940                         <ul class="list list--clean dw-mod">
941                             @if(Model.CurrentUser.ID <= 0) {
942                                 <li>
943                                     <label for="SignInModalTrigger" class="btn btn--primary btn--full u-no-margin sign-in-modal-trigger-button dw-mod" onclick="setTimeout(function () { document.getElementById('LoginUsername').focus() }, 10)">@Translate("Sign in")</label>
944                                 </li>
945                                 if(showCreateAccountLink) {
946                                     <li>
947                                         <a href="/default.aspx?ID=@createAccountPageId" class="list__link dw-mod">@Translate("Create account")</a>
948                                     </li>
949                                 }
950                                 <li>
951                                     <a href="/default.aspx?ID=@forgotPasswordPageId" class="list__link dw-mod">@Translate("Forgot your password?")</a>
952                                 </li>
953                                 if(showMyProfileLink || showMyOrdersLink || showMyFavoritesLink || showMySavedCardsLink) {
954                                     <li class="list__seperator dw-mod"></li>
955                                 }
956                             }
957                             @if(showMyProfileLink) {
958                                 <li>
959                                     <a href="/default.aspx?ID=@myProfilePageId" class="list__link dw-mod"><i class="fa fa-user"></i> @Translate("My Profile")</a>
960                                 </li>
961                             }
962                             @if(showMyOrdersLink) {
963                                 <li>
964                                     <a href="/default.aspx?ID=@myOrdersPageId" class="list__link dw-mod"><i class="fa fa-list"></i> @Translate("My Orders")</a>
965                                 </li>
966                             }
967                             @if(showMyFavoritesLink) {
968                                 <li>
969                                     <a href="/default.aspx?ID=@myFavoritesPageId" class="list__link dw-mod"><i class="fa fa-star"></i> @Translate("My Favorites")</a>
970                                 </li>
971                             }
972                             @if(showMySavedCardsLink) {
973                                 <li>
974                                     <a href="/default.aspx?ID=@mySavedCardsPageId" class="list__link dw-mod"><i class="fa fa-credit-card"></i> @Translate("My Saved cards")</a>
975                                 </li>
976                             }
977                             @if(Model.CurrentUser.ID > 0) {
978                                 if(showMyProfileLink || showMyOrdersLink || showMyFavoritesLink || showMySavedCardsLink) {
979                                     <li class="list__seperator dw-mod"></li>
980                                 }
981                                 <li>
982                                     <a href="/Admin/Public/ExtranetLogoff.aspx?ID=@pageId" class="list__link dw-mod">@Translate("Sign out")</a>
983                                 </li>
984                             }
985                         </ul>
986                     </div>
987                 </div>
988             </li>
989         }
990991         @helper RenderFavorites(string type = "inNavigation") {
992             string liClasses = type == "inNavigation" ? "menu__item menu__item--horizontal menu__item--top-level dw-mod u-hidden-xxs" : "menu__item menu__item--horizontal menu--clean u-w40px dw-mod";
993             string menuLinkClass = type == "inNavigation" ? "menu__link" : "header-menu__link";
994995             string myFavoritesPageId = GetPageIdByNavigationTag("CustomerFavorites").ToString();
996997             @* Favorites *@
998             if(Model.CurrentUser.ID > 0) {
999                 <li class="@liClasses">
1000                     <a href="/Default.aspx?ID=@myFavoritesPageId" class="@menuLinkClass dw-mod">
1001                         <i class="fa fa-star fa-1_5x"></i>
1002                     </a>
1003                 </li>
1004             }
1005         }
100610071008         @helper RenderFooter() {
1009             string footerColumnOneContent = !string.IsNullOrEmpty(Model.Area.Item.GetString("FooterColumnOne")) ? Model.Area.Item.GetString("FooterColumnOne") : "";
1010             string footerColumnTwoContent = !string.IsNullOrEmpty(Model.Area.Item.GetString("FooterColumnTwo")) ? Model.Area.Item.GetString("FooterColumnTwo") : "";
1011             string footerColumnThreeContent = !string.IsNullOrEmpty(Model.Area.Item.GetString("FooterColumnThree")) ? Model.Area.Item.GetString("FooterColumnThree") : "";
1012             string footerColumnOneHeader = Model.Area.Item.GetString("FooterColumnOneHeader");
1013             string footerColumnTwoHeader = Model.Area.Item.GetString("FooterColumnTwoHeader");
1014             string footerColumnThreeHeader = Model.Area.Item.GetString("FooterColumnThreeHeader");
1015             int newsletterSignUpPageId = GetPageIdByNavigationTag("NewsletterSignUp");
10161017             <!-- Footer section -->
1018             <footer class="footer dw-mod">
1019                 <div class="center-container top-container__center-container dw-mod">
1020                     <div class="grid">
1021                         @if(!string.IsNullOrEmpty(footerColumnOneContent) || !string.IsNullOrEmpty(footerColumnOneHeader)) {
1022                             <div class="grid__col-md-auto">
1023                                 <h4 class="footer__heading dw-mod">@footerColumnOneHeader</h4>
1024                                 <div class="footer__content dw-mod">
1025                                     @footerColumnOneContent
1026                                 </div>
1027                             </div>
1028                         }
1029                         @if(!string.IsNullOrEmpty(footerColumnTwoContent) || !string.IsNullOrEmpty(footerColumnTwoHeader)) {
1030                             <div class="grid__col-md-auto">
1031                                 <h4 class="footer__heading dw-mod">@footerColumnTwoHeader</h4>
1032                                 <div class="footer__content dw-mod">
1033                                     @footerColumnTwoContent
1034                                 </div>
1035                             </div>
1036                         }
1037                         @if(!string.IsNullOrEmpty(footerColumnThreeContent) || !string.IsNullOrEmpty(footerColumnThreeHeader)) {
1038                             <div class="grid__col-md-auto">
1039                                 <h4 class="footer__heading dw-mod">@footerColumnThreeHeader</h4>
1040                                 <div class="footer__content dw-mod">
1041                                     @footerColumnThreeContent
1042                                 </div>
1043                             </div>
1044                         }
1045                         @if(Model.Area.Item.GetBoolean("FooterNewsletterSignUp")) {
1046                             <div class="grid__col-md-auto">
1047                                 <h4 class="footer__heading dw-mod">@Translate("Mailing list", "Mailing list")</h4>
1048                                 <div class="footer__content dw-mod">
1049                                     <p>@Translate("Sign up if you would like to receive occasional treats from us", "Sign up if you would like to receive occasional treats from us").</p>
1050                                     <form class="form dw-mod" name="NewsletterRedirect" action='/Default.aspx' method="get" enctype="multipart/form-data">
1051                                         <input name="ID" id="ID" value="@newsletterSignUpPageId" type="hidden" />
1052                                         <div class="form__field-combi">
1053                                             <input name="NewsletterEmail" id="NewsletterEmail" type="text" placeholder='@Translate("Your email address", "Your email address")' />
1054                                             <input class="btn btn--primary btn--condensed dw-mod" type="submit" id="Submitter" value='@Translate("Go", "Go")' />
1055                                         </div>
1056                                     </form>
1057                                 </div>
1058                             </div>
1059                         }
1060                         @if(Model.Area.Item.GetItems("FooterSocialLinks").Count > 0) {
1061                             <div class="grid__col-md-auto">
1062                                 <h4 class="footer__heading dw-mod">@Translate("Social links", "Social links")</h4>
1063                                 <div class="footer__content dw-mod">
1064                                     <div class="collection dw-mod">
1065                                         @foreach(var socialitem in Model.Area.Item.GetItems("FooterSocialLinks")) {
1066                                             //Fields.FirstOrDefault(x => x.SystemName == "Icon").GetString()
1067                                             var socialIcon = socialitem.GetValue("Icon") as Dynamicweb.Frontend.ListViewModel;
1068                                             string socialIconClass = socialIcon.SelectedValue;
1069                                             string socialIconTitle = socialIcon.SelectedName;
1070                                             string socialLink = socialitem.GetString("Link");
10711072                                             <a href="@socialLink" target="_blank" title="@socialIconTitle"><i class="fa @socialIconClass fa-2x"></i></a>
1073                                         }
1074                                     </div>
1075                                 </div>
1076                             </div>
1077                         }
1078                         <div class="grid__col-12 footer__copyright dw-mod">
1079                             <p>@Model.Area.Item.GetString("FooterCopyrightText")</p>
1080                         </div>
1081                     </div>
1082                 </div>
1083             </footer>
1084         }
108510861087         @* Templates for Typeahead *@
1088         <script id="SearchGroupsTemplate" type="text/x-template">
1089             {{#.}}
1090             <li class="dropdown__item dw-mod" onclick="Search.UpdateGroupSelection(this)" data-group-id="{{id}}">{{name}}</li>
1091             {{/.}}
1092         </script>
10931094         <script id="SearchContentTemplate" type="text/x-template">
1095             {{#each .}}
1096             {{#Product}}
1097             {{#ifCond template "!==" "SearchMore"}}
1098             <li class="dropdown__item dropdown__item--seperator dw-mod">
1099                 <div>
1100                     <a href="{{link}}" class="js-typeahead-link u-color-inherit u-pull--left">
1101                         <div class="u-margin-right u-pull--left {{noimage}} u-hidden-xs u-hidden-xxs"><img src="/Admin/Public/GetImage.ashx?width=45&height=36&crop=5&FillCanvas=True&Compression=75&image={{image}}" alt="{{name}}"></div>
1102                         <div class="u-pull--left">
1103                             <div class="u-bold u-max-w220px u-truncate-text js-typeahead-name">{{name}}</div>
1104                             @if(!onlyPreview) {
1105                                 <div class="{{onlyPreview}}">{{price}}</div>
1106                             }
1107                         </div>
1108                     </a>
1109                     <div class="u-margin-left u-pull--right u-w80px u-hidden">
1110                         <button class="btn btn--primary btn--condensed btn--full u-no-margin dw-mod {{hideBuyOptions}} js-ignore-click-outside" onclick="Cart.AddToCart(event, '{{productId}}', '1')"><i class="fa fa-shopping-cart js-ignore-click-outside"></i></button>
1111                         <a href="{{link}}" class="btn btn--secondary btn--condensed btn--full u-no-margin dw-mod {{hideViewMore}} js-ignore-click-outside">@Translate("View")</a>
1112                     </div>
1113                 </div>
1114             </li>
1115             {{/ifCond}}
1116             {{#ifCond template "===" "SearchMore"}}
1117             {{>SearchMore}}
1118             {{/ifCond}}
1119             {{/Product}}
1120             {{else}}
1121             <li class="dropdown__item dropdown__item--seperator dw-mod">
1122                 @Translate("No products found")
1123             </li>
1124             {{/each}}
1125         </script>
11261127         <script id="SearchMore" type="text/x-template">
1128             <li class="dropdown__item dropdown__item--not-selectable dw-mod">
1129                 <a href="/Default.aspx?ID=@productsPageId&Search={{searchParameter}}&GroupID={{groupId}}" class="btn btn--primary btn--full u-no-margin dw-mod js-typeahead-link">
1130                     @Translate("View all")
1131                 </a>
1132             </li>
1133         </script>
11341135         @* Templates for the mini cart *@
1136         <script id="MiniCartCounterContent" type="text/x-template">
1137             {{#.}}
1138             <div class="js-mini-cart-counter-content dw-mod">
1139                 {{numberofproducts}}
1140             </div>
1141             {{/.}}
1142         </script>
11431144         <script id="MiniCartContent" type="text/x-template">
1145             {{#.}}
1146             <div class="mini-cart-dropdown__inner {{isempty}} dw-mod">
1147                 <h4 class="u-ta-center u-no-margin u-margin-bottom u-margin-top">@Translate("Shopping cart")</h4>
1148                 <div class="mini-cart-dropdown__body dw-mod">
1149                     <table class="table mini-cart-table dw-mod">
1150                         <thead>
1151                             <tr>
1152                                 <td> </td>
1153                                 <td>@Translate("Product")</td>
1154                                 <td class="u-ta-right">@Translate("Qty")</td>
1155                                 <td class="u-ta-right" width="120">@Translate("Price")</td>
1156                             </tr>
1157                         </thead>
11581159                         {{#OrderLines}}
1160                         {{#ifCond template "===" "CartOrderline"}}
1161                         {{>MiniCartOrderline}}
1162                         {{/ifCond}}
1163                         {{#ifCond template "===" "CartOrderlineMobile"}}
1164                         {{>MiniCartOrderlineMobile}}
1165                         {{/ifCond}}
1166                         {{#ifCond template "===" "CartOrderlineDiscount"}}
1167                         {{>MiniCartOrderlineDiscount}}
1168                         {{/ifCond}}
1169                         {{/OrderLines}}
11701171                         <tr>
1172                             <td><i class="fa fa-credit-card"></i></td>
1173                             <td>{{paymentmethod}}</td>
1174                             <td colspan="2" class="u-ta-right" width="130">{{paymentfee}}</td>
1175                         </tr>
1176                         <tr>
1177                             <td><i class="fa fa-truck"></i></td>
1178                             <td>{{shippingmethod}}</td>
1179                             <td colspan="2" class="u-ta-right" width="130">{{shippingfee}}</td>
1180                         </tr>
1181                         <tr class="mini-cart-totals dw-mod">
1182                             <td colspan="2">@Translate("Total")</td>
1183                             <td class="u-ta-right">{{numberofproducts}}</td>
1184                             <td class="u-ta-right" width="130">{{totalprice}}</td>
1185                         </tr>
1186                     </table>
1187                 </div>
11881189                 <table class="table mini-cart-table dw-mod">
1190                     <tr class="mini-cart-orderlines__footer dw-mod">
1191                         <td colspan="2"><button type="button" class="btn btn--secondary u-pull--left u-no-margin dw-mod btn--sm" onclick="Cart.EmptyCart(event)">@Translate("Empty cart")</button></td>
1192                         <td colspan="2" class="u-ta-right"><a href="/Default.aspx?ID=@cartPageId" class="btn btn--primary u-pull--right u-no-margin dw-mod btn--sm">@Translate("Proceed to checkout")</a></td>
1193                     </tr>
1194                 </table>
1195             </div>
1196             {{/.}}
1197         </script>
11981199         <script id="MiniCartOrderline" type="text/x-template">
1200             <tr class="{{isempty}}">
1201                 <td><a href="{{link}}" class="{{hideimage}}"><img src="/Admin/Public/GetImage.ashx?width=50&height=50&crop=5&Compression=75&image={{image}}" alt="{{name}}"></a></td>
1202                 <td>
1203                     <a href="{{link}}" class="mini-cart-orderlines__name" title="{{name}}">{{name}}</a>
1204                     <a href="{{link}}" class="mini-cart-orderlines__name item-number">{{variantname}}</a>
1205                     <div class="item-number">{{unitname}}</div>
1206                 </td>
1207                 <td class="u-ta-right">{{quantity}}</td>
1208                 <td class="u-ta-right">{{totalprice}}</td>
1209             </tr>
1210         </script>
12111212         <script id="MiniCartOrderlineMobile" type="text/x-template">
1213             <tr class="{{isempty}}">
1214                 <td><a href="{{link}}" class="{{hideimage}}"><img src="/Admin/Public/GetImage.ashx?width=50&height=50&crop=5&Compression=75&image={{image}}" alt="{{name}}"></a></td>
1215                 <td>
1216                     <a href="{{link}}" class="mini-cart-orderlines__name">{{name}}</a>
1217                     <a href="{{link}}" class="mini-cart-orderlines__name item-number">{{variantname}}</a>
1218                     <div class="item-number">{{unitname}}</div>
1219                 </td>
1220                 <td class="u-ta-right">{{quantity}}</td>
1221                 <td class="u-ta-right">{{totalprice}}</td>
1222             </tr>
1223         </script>
12241225         <script id="MiniCartOrderlineDiscount" type="text/x-template">
1226             <tr class="table__row--no-border {{isempty}}">
1227                 <td> </td>
1228                 <td><div class="mini-cart-orderlines__name dw-mod">{{name}}</div></td>
1229                 <td class="u-ta-right"> </td>
1230                 <td class="u-ta-right">{{totalprice}}</td>
1231             </tr>
1232         </script>
12331234         <!-- Javascript -->
1235         <script src="/Files/Templates/Designs/Rapido/js/handlebars-v4.0.11.js"></script>
1236         <script src="/Files/Templates/Designs/Rapido/js/master.min.js"></script>
12371238         @if(Model.Area.Item.GetBoolean("UseCustomJavascript")) {
1239             <script src="/Files/Templates/Designs/Rapido/js/custom.min.js"></script>
1240         }
12411242         <script>
1243         Wireframe.Init(@wireframeMode.ToLower());
1244         </script>
1245     </body>
1246     </html>
12471248