Error executing template "Designs/Hags2024/_parsed/default.parsed.cshtml"
System.TypeInitializationException: The type initializer for 'System.Collections.Generic.EqualityComparer`1' threw an exception. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Collections.Generic.EqualityComparer`1.CreateComparer()
at System.Collections.Generic.EqualityComparer`1..cctor()
--- End of inner exception stack trace ---
at System.Collections.Generic.EqualityComparer`1.get_Default()
at System.Array.IndexOf[T](T[] array, T value, Int32 startIndex, Int32 count)
at System.Array.IndexOf[T](T[] array, T value)
at System.SZArrayHelper.Contains[T](T value)
at System.Linq.Enumerable.Contains[TSource](IEnumerable`1 source, TSource value)
at Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFilter.Filter(Diagnostic d, Int32 warningLevelOption, NullableContextOptions nullableOption, ReportDiagnostic generalDiagnosticOption, IDictionary`2 specificDiagnosticOptions)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.FilterDiagnostic(Diagnostic diagnostic)
at Microsoft.CodeAnalysis.Compilation.FilterAndAppendDiagnostics(DiagnosticBag accumulator, IEnumerable`1 incoming, HashSet`1 exclude)
at Microsoft.CodeAnalysis.Compilation.FilterAndAppendAndFreeDiagnostics(DiagnosticBag accumulator, DiagnosticBag& incoming)
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, Boolean emitMetadataOnly, Boolean emitTestCoverageData, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream metadataPEStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, CompilationTestData testData, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, CancellationToken cancellationToken)
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, CancellationToken cancellationToken)
at RazorEngine.Roslyn.CSharp.RoslynCompilerServiceBase.CompileType(TypeContext context)
at RazorEngine.Templating.RazorEngineCore.CreateTemplateType(ITemplateSource razorTemplate, Type modelType)
at RazorEngine.Templating.RazorEngineCore.Compile(ITemplateKey key, Type modelType)
at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.DynamicWrapperService.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 RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 @using System;
3 @using System.Linq;
4 @using System.Web.Optimization;
5 @using HagsWeb.Library.Methods.Page;
6 @using HagsWeb.Library.State;
7 @using HagsWeb.Library.Utilities;
8 @using Dynamicweb.Content;
9 @using Dynamicweb.Ecommerce.International;
10
11
12 @{
13 //set up Content Security Policy nonce and header
14 string nonce = Convert.ToBase64String(Guid.NewGuid().ToByteArray());
15 string cspDefaultSrc = "default-src 'self' cdn.fonts.net;";
16 string cspImageSrc = "img-src 'self';";
17 string cspScriptSrc = "script-src 'self' 'unsafe-eval' nonce-" + nonce + "' consent.cookiebot.com www.googletagmanager.com connect.facebook.net www.facebook.com cdn.weglot.com;";
18 string cspStyleSrc = "style-src 'self' 'unsafe-inline' https://cdn.weglot.com https://cdn.fonts.net;";
19
20 string csp = cspDefaultSrc + cspImageSrc + cspStyleSrc + cspScriptSrc;
21
22
23
24 // switch off for now - but we will need to add this to the eternal scripts if we tighten the security headers
25 //System.Web.HttpContext.Items["ScriptNonce"] = nonce;
26
27 // switch off for now
28 //System.Web.HttpContext.Current.Response.Headers.Add("Content-Security-Policy",csp);
29
30 // end of CSP stuff
31
32 string testCountryCode = System.Web.HttpContext.Current.Request.QueryString["tc"];
33 string baseWeglotLang = System.Web.HttpContext.Current.Request.Headers["weglot-language"];
34 string baseActualLang = baseWeglotLang;
35
36 if (baseWeglotLang == "se")
37 {
38 baseActualLang = "sv";
39 }
40
41 if (baseWeglotLang == "ch-de")
42 {
43 baseActualLang = "de-ch";
44 }
45
46
47 bool inDev = false;
48 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("http://hagsdw915solution.");
49 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagsdev.hags.");
50 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagslang.hags.");
51 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagslive.hags.");
52
53 int masterAreaId = int.TryParse(GetGlobalValue("Global:Area.ID"), out masterAreaId) ? masterAreaId : 0;
54 Dynamicweb.Content.Area masterArea = new Dynamicweb.Content.AreaService().GetArea(masterAreaId);
55
56 string themeTag = HagsPages.GetThemeByNavigationTag(GetGlobalValue("Global:Page.Top.ID")); // gets the page ID at the top of the tree this page sits on.
57 string siteNavigation = HagsPages.GetActiveAreas();
58 string htmlLang = GetGlobalValue("Global:Area.LongLang");
59 string siteAreaName = GetString("DwAreaName");
60 string designBaseUrl = GetString("Template:DesignBaseUrl");
61 var unixTimestamp = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds();
62 var jsTimestamp = inDev ? unixTimestamp : 0;
63 string currentUser = GetString("DW_extranet_AccessUserName");
64 string userGroups = GetString("DW_extranet_Groups");
65
66 var siteFirstPageId = GetString("DwAreaFirstPageID"); // for the Hags Logo url. Go to the WEBSITE home page
67 var thisSiteName = HagsWeb.Library.Methods.Page.HagsPages.GetSiteCountryName(@GetGlobalValue("Global:Area.LongLang"), @GetGlobalValue("Global:Area.Name"));
68 var websites = GetLoop("WebsiteLanguages");
69 string worldwideContactsLink = DWUtilities.GetPageByNavigationTag("worldwide-contacts", masterAreaId);
70
71 bool selmaOn = true;
72 string selmaTest = System.Web.HttpContext.Current.Request.QueryString["selma"];
73 if ( !string.IsNullOrEmpty(selmaTest) )
74 {
75 selmaOn = true;
76 }
77
78 }
79 <!DOCTYPE html>
80 <html class="no-js">
81 <head>
82 <meta charset="utf-8">
83 <meta name="viewport" content="width=device-width, initial-scale=1.0">
84 <title>@GetValue("Title")</title>
85 @GetValue("MetaTags")
86 @GetValue("CopyRightNotice")
87
88
89 <meta name="author" content="HAGS @(siteAreaName)">
90 <link rel="icon" href="@(designBaseUrl)assets/img/favicon.ico" sizes="32x32">
91 <link rel="icon" href="@(designBaseUrl)assets/img/icon.svg" type="image/svg+xml">
92 <link rel="apple-touch-icon" href="@(designBaseUrl)assets/img/apple-touch-icon.png">
93
94 <script nonce="@nonce">(function (H) { H.className = H.className.replace(/\bno-js\b/, 'js') })(document.documentElement)</script>
95
96 <!--link rel="preconnect" href="https://cdn.fonts.net"-->
97 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/monotype-redux.css">
98
99 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/reset.css?v=1.1">
100 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/core.css?ts=@unixTimestamp">
101 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/nav-mega.css?ts=@unixTimestamp">
102 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/forms.css?ts=@unixTimestamp">
103 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/country-rules.css?ts=@unixTimestamp">
104 <link rel="stylesheet" href="@(designBaseUrl)assets/js/libraries/range-slider/range-slider-element.css">
105
106 @if (!inDev)
107 {
108 <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-culture="@baseActualLang" data-cbid="89c7e0fa-fa61-446d-9c96-866489bcea3c" data-blockingmode="auto" type="text/javascript"></script>
109 }
110
111 @foreach (var language in GetLoop("Languages"))
112 {
113 string pageid = language.GetString("PageID");
114 string url = string.Empty;
115 string productId = System.Web.HttpContext.Current.Request.QueryString.Get("productid");
116 if (string.IsNullOrEmpty(productId))
117 {
118 url = @GetGlobalValue("Global:Request.Scheme") + "://" + language.GetString("PrimaryDomain");
119 url = url + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("default.aspx?id=" + pageid);
120 }
121 else
122 {
123 string productSystemUrl = "default.aspx?id=" + pageid + "&ProductID=" + productId;
124 string productUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(productSystemUrl);
125 if (!string.IsNullOrEmpty(productUrl))
126 {
127 url = @GetGlobalValue("Global:Request.Scheme") + "://" + language.GetString("PrimaryDomain") + productUrl;
128 }
129 }
130 if (!string.IsNullOrEmpty(url))
131 {
132 <link rel="alternate" href='@url' hreflang='@language.GetString("Culture")'>
133 }
134 }
135
136 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/jquery.min.js" cookieconsent="ignore"></script>
137 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/validation/jquery.validate.min.js" cookieconsent="ignore"></script>
138 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/validation/additional-methods.min.js" cookieconsent="ignore"></script>
139 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/hags-global.js?v=1.4.8&ts=@jsTimestamp" cookieconsent="ignore"></script>
140 @*<script type="text/javascript" src="@(designBaseUrl)assets/js/functions/hags-global.js?" cookieconsent="ignore"></script>*@
141
142 @* the future!! HTMX is here *@
143
144 <script src="@(designBaseUrl)assets/js/libraries/htmx/htmx.min.js" cookieconsent="ignore"></script>
145 <script type="module" src="@(designBaseUrl)assets/js/libraries/range-slider/range-slider.min.js" cookieconsent="ignore"></script>
146
147 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/h24.js?v=1.4.8&ts=@unixTimestamp" cookieconsent="ignore"></script>
148
149 @* set up some JS globals *@
150 <script type="text/javascript">
151 h24.baseWeglotLang = '@(baseWeglotLang)';
152 h24.testCountryCode = '@(testCountryCode)';
153 h24.inDev = @(inDev.ToString().ToLower());
154 var __ss_noform = __ss_noform || [];
155 h24.dwFormFunctions = {};
156 </script>
157
158
159 @* this snippet is from the product page template *@
160 @RenderSnippet("productScripts")
161
162 @* this snippet is from the case studies item listing *@
163 @RenderSnippet("caseStudyScripts")
164
165
166 @* do not use these for now *@
167 <!--IncludeFile("Includes/SharpSpringCode.cshtml")-->
168 <!--IncludeFile("Includes/TrailHub_DenmarkCode.cshtml")-->
169 <!-- Start of Sleeknote signup and lead generation tool - www.sleeknote.com -->
170 @if (!inDev)
171 {
172 <script id="sleeknoteScript" type="text/javascript">
173 (function () {
174 var sleeknoteScriptTag = document.createElement("script");
175 sleeknoteScriptTag.type = "text/javascript";
176 sleeknoteScriptTag.charset = "utf-8";
177 sleeknoteScriptTag.src = ("//sleeknotecustomerscripts.sleeknote.com/60385.js");
178 var s = document.getElementById("sleeknoteScript");
179 s.parentNode.insertBefore(sleeknoteScriptTag, s);
180 })();
181 </script>
182
183 }
184
185 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
186
187 @if (!inDev)
188 {
189 <meta name="facebook-domain-verification" content="8vnuupfwjjw7l4g2t44cuzv5c17fa2">
190 <meta name="p:domain_verify" content="e984d55d650d51a77b5bd78fce401aee">
191
192 string verificationCode = "";
193 switch (masterAreaId)
194 {
195 case 1:
196 <!-- Google Analytics Property for Global -->
197 <meta name="google-site-verification" content="SU7OrN2pJAoaHy4QUbJqKRyiRK_pJK_mydVX9HnbAjE">
198 break;
199 case 2:
200 <!-- Google Analytics Property for Sweden -->
201 <meta name="google-site-verification" content="WMHOYHSUksAhokWvc_pl1xi2eUEIqlSAmqSuPqBuIhw">
202 break;
203 case 3:
204 <!-- Google Analytics Property for Germany -->
205 <meta name="google-site-verification" content="2FnagwVri1SLEk0f1-cNAMIsqoelzEf6qa64iTOo6A4">
206 break;
207 case 4:
208 <!-- Google Analytics Property for Denmark -->
209 <meta name="google-site-verification" content="iTdN9SsW-DWo1nPaqZ2_W6c1lKr1KdpIE-9PIa7efD8">
210 break;
211 case 5:
212 <!-- Google Analytics Property for France -->
213 <meta name="google-site-verification" content="q7sWMD42DhdNcVgQjRvpUnHq6UWvgFfxxN7SWLTjDBs">
214 break;
215 case 6:
216 <!-- Google Analytics Property for Spain -->
217 <meta name="google-site-verification" content="5l8EU56ZLDtGLgFsyPizPWpK1lt_DAqhcYsgiP_wZ2w">
218 break;
219 case 7:
220 <!-- Google Analytics Property for UK -->
221 <meta name="google-site-verification" content="VWJFZapvDhxv8eu8eMl66KkAAArEyIG3pa8ZffeAKrg">
222 break;
223 }
224
225 <!-- Google Tag Manager -->
226 <script>
227 window.dataLayer = window.dataLayer || [];
228 </script>
229 <script nonce="@nonce" type="text/javascript">
230 (function (w, d, s, l, i) {
231 w[l] = w[l] || [];
232 w[l].push({
233 'gtm.start':
234 new Date().getTime(),
235 event: 'gtm.js'
236 });
237 var f = d.getElementsByTagName(s)[0],
238 j = d.createElement(s),
239 dl = l != 'dataLayer' ? '&l=' + l : '';
240 j.async = true;
241 j.src =
242 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
243 f.parentNode.insertBefore(j, f);
244 })(window, document, 'script', 'dataLayer', 'GTM-MCRWZS');
245 </script>
246 <!-- End Google Tag Manager -->
247 <!-- Facebook Pixel Code -->
248 <script nonce="@nonce" type="text/javascript">
249 !function (f, b, e, v, n, t, s) {
250 if (f.fbq) return;
251 n = f.fbq = function () {
252 n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments)
253 };
254 if (!f._fbq) f._fbq = n;
255 n.push = n;
256 n.loaded = !0;
257 n.version = '2.0';
258 n.queue = [];
259 t = b.createElement(e);
260 t.async = !0;
261 t.src = v;
262 s = b.getElementsByTagName(e)[0];
263 s.parentNode.insertBefore(t, s)
264 }(window,
265 document,
266 'script',
267 'https://connect.facebook.net/en_US/fbevents.js');
268 fbq('init', '271101660030700');
269 fbq('track', 'PageView');
270 </script>
271 <!-- End Facebook Pixel Code -->
272 } else {
273 <script>
274 window.dataLayer = window.dataLayer || [];
275 </script>
276 }
277
278
279 <script nonce="@nonce" type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script>
280 @if ( baseWeglotLang == "en" || baseWeglotLang == "en-gb" )
281 {
282 <script>
283 Weglot.initialize({
284 api_key: 'wg_d0f1722188f1546fd2c7289d2058d7083'
285 });
286 </script>
287 } else
288 {
289 <script>
290 Weglot.initialize({
291 api_key: 'wg_d0f1722188f1546fd2c7289d2058d7083',
292 translate_search: true,
293 search_forms: '#search-box',
294 search_parameter: 'q'
295 });
296 </script>
297 }
298
299 @* Add the Sedish chat script in *@
300 @if ( baseWeglotLang == "se" || testCountryCode == "se" )
301 {
302 <script src='https://online3.superoffice.com/Cust29133/CS/javascript/chat.js' data-topicid='2' data-title='Kundsupport' data-theme='modern' data-color='#0080FF' data-badgecolor='#4f6128' data-badgetextcolor='#ffffff' data-custmsgcolor='#dbe5f1' data-custmsgtextcolor='#000000' data-agentmsgcolor='#c3d69b' data-agentmsgtextcolor='#000000' data-buttoncolor='#ffffff' data-buttontextcolor='' data-font='"Verdana", "Gill Sans", Arial, sans-serif' data-fontsize='12px' data-size='normal' data-delay='1' defer=""></script>
303 }
304
305
306 @GetValue("Stylesheets")
307 @GetValue("Javascripts")
308 </head>
309
310 <body>
311 @if (!inDev)
312 {
313 <noscript>
314 <!-- Google Tag Manager (noscript) -->
315 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MCRWZS" height="0" width="0" style="display:none;visibility:hidden"></iframe>
316 <!-- End Google Tag Manager (noscript) -->
317 <!-- Facebook Pixel Code -->
318 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=271101660030700&ev=PageView&noscript=1">
319 </noscript>
320 }
321 @* Snippets are rendered last and can be defined in any template *@
322 @* We are using a snippet (headerClass) here to let a page template define if the header sits on top or is part of the
323 @* document flow. Setting the snippet to an empty string below makes sure it gets rendered as empty and not as a DW comment string *@
324 @* if a snippetStart/End command is used in another template it is appended to the snippet *@
325
326 @SnippetStart("headerClass")@("")@SnippetEnd("headerClass")
327
328 @{
329 string weglotLangHeader = System.Web.HttpContext.Current.Request.Headers["weglot-language"];
330 string urlLangHeader = weglotLangHeader != "" ? "/" + weglotLangHeader : "";
331 //ignore the default en code
332 urlLangHeader = weglotLangHeader == "en" ? "" : urlLangHeader;
333 }
334
335 <header class="header" data-variant='@RenderSnippet("headerClass")'>
336
337 <div class="header__wrapper">
338
339 <div class="header__global-nav">
340
341 <div class="header-logo" itemscope="" itemtype="http://schema.org/Organization">
342 <a href="/" itemprop="url">
343 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 362 81" class="hags-logo"><path fill="currentColor" fill-rule="evenodd" d="M311.22.5c9.399 0 16.725 3.168 18.555 3.168.862 0 1.596-.243 2.697-1.338h2.558l2.318 19.692h-4.876c-2.697-9.846-10.513-16.292-19.911-16.292-6.837 0-11.97 3.65-11.97 8.39 0 11.187 20.279 13.258 33.958 26.873 5.004 4.986 6.951 10.214 6.951 16.05 0 12.648-11.47 22.618-26.006 22.618-9.77 0-18.687-3.888-20.887-3.888-1.1 0-1.952.611-2.562 1.947h-3.178L285.82 55.59v-.002h4.757c4.029 12.031 11.236 18.237 20.88 18.237 8.059 0 14.17-5.11 14.17-11.917 0-18.122-39.204-17.509-39.204-41.586C286.423 8.645 296.681.5 311.22.5Zm-75.498 0c7.426 0 13.874 1.484 18.765 2.7l.801.2c3.013.755 5.377 1.361 6.941 1.361 1.825 0 2.814-.492 3.66-1.586h3.055v22.253h-4.89c-3.29-12.4-12.575-19.7-25.28-19.7-17.337 0-29.31 13.622-29.31 33.318 0 19.946 12.584 34.778 29.56 34.778 4.638 0 9.77-1.215 13.068-3.157V53.883c0-6.078-2.561-7.419-15.022-7.662v-4.617h40.55v4.617h-.001c-6.474.124-8.675 2.068-8.675 7.662v18.12c-8.795 4.011-21.364 7.656-31.877 7.656-30.898 0-45.805-17.146-45.805-40.488C191.264 16.916 209.71.5 235.722.5ZM39.705 2.33v4.74h-1.712c-6.351 0-9.526 2.066-9.526 8.878v19.086h40.301V16.31c0-6.808-2.685-9.24-9.77-9.24h-1.1V2.33h39.083v4.74h-2.203c-6.223 0-9.156 2.308-9.156 8.878v48.153c0 6.318 2.322 9.116 9.403 9.116h1.956v4.74H57.899v-4.742h1.708c6.476 0 9.161-2.796 9.161-9.364V42.21h-40.3V64.1c0 6.445 2.565 9.117 9.4 9.117h1.837v4.74H.5v-4.742h2.073c6.235 0 9.04-2.796 9.04-8.873V15.948c0-6.08-2.685-8.878-9.156-8.878H.5V2.33h39.205ZM154.04.5l24.433 61.772c3.175 8.026 5.857 10.452 12.208 10.943v4.741h-39.693v-4.741h4.271c7.451 0 8.551-3.282 6.11-9.238l-5.741-14.107h-26.752l.005.003-5.125 14.226c-2.2 6.2-2.07 9.116 9.65 9.116h1.586v4.741h-32.37v-4.741h1.837c5.858 0 8.912-2.67 11.966-11.182L137.313 4.03 135.967.5h18.073ZM141.59 14.733l-10.26 28.448h21.492L141.59 14.733ZM352.674 2.62c1.114 0 2.164.213 3.148.64a8.412 8.412 0 0 1 2.58 1.726 8.042 8.042 0 0 1 1.743 2.562c.427.984.64 2.034.64 3.148a7.702 7.702 0 0 1-.64 3.131 8.097 8.097 0 0 1-1.743 2.544 8.158 8.158 0 0 1-2.58 1.708 8.02 8.02 0 0 1-3.148.623 8.02 8.02 0 0 1-3.15-.623 8.158 8.158 0 0 1-2.579-1.708 8.097 8.097 0 0 1-1.743-2.544 7.702 7.702 0 0 1-.64-3.13c0-1.115.213-2.165.64-3.15a8.042 8.042 0 0 1 1.743-2.561 8.412 8.412 0 0 1 2.58-1.726 7.827 7.827 0 0 1 3.149-.64Zm0 1.245c-.95 0-1.839.178-2.669.534a6.854 6.854 0 0 0-2.17 1.459 6.854 6.854 0 0 0-1.459 2.17 6.702 6.702 0 0 0-.533 2.668c0 .925.177 1.803.533 2.633a7.07 7.07 0 0 0 1.459 2.188 6.71 6.71 0 0 0 2.17 1.477c.83.356 1.72.534 2.669.534.948 0 1.838-.178 2.668-.534a6.71 6.71 0 0 0 2.17-1.477 7.07 7.07 0 0 0 1.46-2.188c.355-.83.533-1.708.533-2.633 0-.948-.178-1.838-.534-2.668a6.854 6.854 0 0 0-1.459-2.17 6.854 6.854 0 0 0-2.17-1.46 6.702 6.702 0 0 0-2.668-.533Zm.035 2.242.318.009c.316.017.625.062.928.133a3.3 3.3 0 0 1 1.085.463c.32.213.575.486.765.818.19.332.284.747.284 1.245 0 .664-.19 1.204-.569 1.619-.38.415-.89.694-1.53.836l2.455 3.985h-1.992l-2.135-3.807h-1.174v3.807h-1.637V6.107h3.202Zm-.07 1.387h-1.495v2.598h1.316a3.48 3.48 0 0 0 1.352-.267c.427-.178.64-.54.64-1.085 0-.499-.195-.83-.586-.997-.392-.166-.801-.249-1.228-.249Z"></path></svg>
344 </a>
345 </div>
346
347 @using System;
348 @using System.Collections.Generic;
349 @using System.Linq;
350 @using Dynamicweb.Ecommerce.Variants;
351 @using HagsWeb.Library.BusinessObjects.UsersLists;
352 @using HagsWeb.Library.Methods.AssetManager;
353 @using HagsWeb.Library.Methods.ProductProperties;
354 @using HagsWeb.Library.State;
355
356
357 @helper renderCollectionCount()
358 {
359 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>();
360 int collectionCount = productCollectionItems.Count();
361 if ( productCollectionItems.Any() )
362 {
363 <span id="collection-count" class="actions-list__badge">@collectionCount</span>
364 }
365
366 }
367
368 @helper renderMyCollectionPanel()
369 {
370
371 Dynamicweb.Frontend.PageView collectionPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current();
372 Dynamicweb.Content.Area collectionArea = new Dynamicweb.Content.AreaService().GetArea(collectionPage.AreaID);
373
374 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>();
375
376 bool isQuote = Convert.ToBoolean(collectionArea.Item["QuoteAndOrderChk"]);
377 bool isCatalog = true; // Always available;
378 string downloadingText = HagsWeb.Library.Utilities.DWUtilities.GetTranslation("Downloading...", "Downloading...", collectionArea.Culture);
379 int currentPage = collectionArea.ID;
380 string currentCollection = Dynamicweb.Context.Current.Request.QueryString.Get("collection");
381 bool isLoggedIn = String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName")) ? false : true;
382 string designBaseUrl = GetString("Template:DesignBaseUrl");
383
384 List<ProductAsset> imageFileList = new List<ProductAsset>();
385 List<ProductAsset> dwgFileList = new List<ProductAsset>();
386 List<ProductAsset> instructionsFileList = new List<ProductAsset>();
387 string contactUsLink = HagsWeb.Library.Utilities.DWUtilities.GetPageByNavigationTag("ContactUs", currentPage); // /kontakta-oss?mode=quote#contactForms // /kontakta-oss?success=True&mode=quote#contactForms // restful url
388
389 string printShout = Translate("SaveOrPrint", "Save or Print your Product PDF ");
390 string altCopy = @Translate("RemoveFromCollection", "Remove from my collection");
391 string removeCopy = @Translate("RemoveFromCollection", "Remove from my collection");
392
393 <div class="collection flow">
394
395 <input type="hidden" id="isQuote" value="@isQuote">
396 <input type="hidden" id="downloadingText" value="@downloadingText">
397 <input type="hidden" id="collectionCount" value="@productCollectionItems.Count">
398
399 <div id="instns_MyProductCollection" class="flow-xs">
400 @if (productCollectionItems.Any() || !string.IsNullOrEmpty(currentCollection))
401 {
402 <p>@Translate("ProductCollectionButtonInstructionsNew", "Go to <strong>My Collection</strong> to download files, create quotes or print a product catalogue.")</p>
403 <a class="btn btn--outline" href="/my-collection">@Translate("MyCollection", "My Collection")</a>
404 }
405 else
406 {
407 <p>@Translate("product-collection-instructions-copy-new", "To add a product simply click on <strong>Add to my collection</strong> on any product page. Once you have added products to a collection you will be able to print a product catalogue, download installation guides, images and DWG files or request a quote.")</p>
408
409 }
410 </div>
411
412 <div class="collection__ui">
413
414 <div class="main-panel">
415
416 <div class="panel-listing" id="prods_MyProductCollection">
417
418 @if (productCollectionItems.Any())
419 {
420 foreach (ProductCollectionItem item in productCollectionItems)
421 {
422 <div class="product-card collection__item">
423
424 <div class="product-card__actions in-collection">
425
426 <button type="button" class="action-btn" data-removeproductlist="@(item.ProductNumber)">
427 <span class="visually-hidden">@removeCopy</span>
428 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="h24-icon h24-icon--minus"><path fill="currentColor" fill-rule="evenodd" d="M106 6c55.193 0 100 44.807 100 100s-44.807 100-100 100S6 161.193 6 106 50.807 6 106 6Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C21.936 56.207 11.333 79.875 11.333 106c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C155.793 21.936 132.125 11.333 106 11.333Zm28.772 87.504a6.5 6.5 0 0 1 6.5 6.5v1a6.5 6.5 0 0 1-6.5 6.5h-57a6.5 6.5 0 0 1-6.5-6.5v-1a6.5 6.5 0 0 1 6.5-6.5h57Z"></path></svg>
429 </button>
430
431 </div>
432
433 <div class="product-card__img-silo">
434
435 @if (item.ProductImageUrl != null && !String.IsNullOrEmpty(item.ProductUrlReference))
436 {
437 <a href="@item.ProductUrlReference">
438 <img src="@item.ProductImageUrl">
439 </a>
440 }
441 else
442 {
443 <a href="@item.ProductUrlReference" class="product-card__missing">
444 <img src="@(designBaseUrl)assets/img/h24-see-saw.svg">
445 <span>No Image Available</span>
446 </a>
447 }
448
449 </div>
450
451 <div class="product-card__copy">
452
453 <p class="product-card__heading">
454 <a href="@item.ProductUrlReference">@(item.ProductName)</a>
455 </p>
456
457 <p>@item.ProductNumber</p>
458
459 @if (!string.IsNullOrEmpty(item.ProductVariantId))
460 {
461 Tuple<string, string, string, string, string, string, List<VariantOption>> optionsTuple = ProductFieldValues.GetProductOptions(item.ProductVariantId, collectionArea.EcomLanguageId);
462
463 //optionsTuple.Item1; "Red"
464 //optionsTuple.Item2; "Above Ground"
465 //optionsTuple.Item3; "Wooden Post"
466 //optionsTuple.Item4; "Wooden Post / HPL Panels"
467 //optionsTuple.Item5; "A310.png"
468 //optionsTuple.Item6; "A310-diagram.png"
469 //optionsTuple.Item7; List<VariantOption> Not used here
470
471 }
472
473 </div>
474
475 </div>
476 }
477 }
478
479 </div>
480
481 </div>
482
483 </div> <!-- collection__iu end -->
484
485 <div class="cluster">
486 @if (productCollectionItems.Any())
487 {
488 foreach (var item in productCollectionItems)
489 {
490 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Images) && n.FileName == item.ProductNumber + ".jpg" || n.FileName == item.ProductNumber + "_Side.jpg" || n.FileName == item.ProductNumber + "_Top.jpg").ToList())
491 {
492 imageFileList.Add(asset);
493 }
494
495 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Drawings)).ToList())
496 {
497 dwgFileList.Add(asset);
498 }
499
500 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.AssemblyInstructions)).ToList())
501 {
502 instructionsFileList.Add(asset);
503 }
504 }
505
506 <button class="btn btn--warn" type="button" data-removeproductlist="All">@Translate("RemoveAll", "Remove All")</button>
507 }
508
509 </div>
510
511 @if (isLoggedIn && productCollectionItems.Any())
512 {
513 <div id="panelcollectiondetails" class="flow-xs">
514 <h5><strong>@Translate("Save collection?", "Save collection?")</strong></h5>
515 <p>@Translate("You are logged in", "You are currently logged in to HAGS Connect so you can save this collection to your account.")</p>
516 <button class="btn btn--outline" role="button" data-open-modal="#saveCollection">@Translate("Save collection", "Save this Collection")</button>
517 </div>
518 }
519 else
520 {
521 if (!isLoggedIn && productCollectionItems.Any())
522 {
523 <div id="panelcollectiondetails" class="flow-xs">
524 <h5><strong>@Translate("Save collection?", "Save collection?")</strong></h5>
525 <p>@Translate("To save login", "To save this collection into your HAGS Connect simply login using the button below.")</p>
526 <a class="btn btn--outline js-connect-login" href="/Admin/Public/Social/ExternalLogin.aspx?action=login&providerID=3">HAGS Connect Login</a>
527 </div>
528 }
529 }
530
531 </div> <!-- collection end -->
532 }
533
534
535
536
537
538
539
540
541
542
543
544
545
546 <div class="header__actions" data-username="@currentUser">
547
548 <ul role="list" class="actions-list">
549
550 <li class="actions-list__item">
551 <button class="header__action-btn js-action-btn" data-target="search-panel">
552 <span class="visually-hidden">Search</span>
553 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path d="M85.3 144a69 69 0 0 0 45.3-2.5l31.5 57 14.6-8.2-31.6-56.9A69.4 69.4 0 1 0 85.3 144Zm33.8-116.7a52.5 52.5 0 1 1-29 101 52.5 52.5 0 0 1 29-101Z" fill="currentColor" fill-rule="nonzero"></path></svg>
554 </button>
555 </li>
556
557 <li class="actions-list__item">
558 <button class="header__action-btn js-action-btn" data-target="country-select-panel">
559 <span class="visually-hidden">Choose Location</span>
560 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><g fill="currentColor" fill-rule="nonzero"><path d="M106 3C64.446 3 32 34.472 32 74.528c0 8.87 3.415 26.608 9.108 39.483 18.5 42.63 58.915 90.983 60.623 92.986 1.138 1.43 2.561 2.003 4.269 2.003 1.708 0 3.13-.858 4.27-2.003 1.707-2.003 42.122-50.355 60.622-92.986C176.585 101.136 180 83.397 180 74.528 180 34.472 147.554 3 106 3Zm54.362 106.433C146.13 142.336 117.1 180.39 106 194.123c-11.1-13.734-40.13-51.787-54.362-84.69-5.123-11.158-8.253-27.18-8.253-34.905 0-33.761 27.607-60.084 62.615-60.084s62.615 26.323 62.615 60.084c0 7.725-3.13 23.747-8.253 34.905Z"></path><path d="M106 37.333c-21.915 0-39.846 18.025-39.846 40.056 0 22.03 17.93 40.055 39.846 40.055 21.915 0 39.846-18.025 39.846-40.055S127.916 37.333 106 37.333ZM106 106c-15.654 0-28.462-12.875-28.462-28.611S90.346 48.778 106 48.778s28.462 12.875 28.462 28.61C134.462 93.126 121.654 106 106 106Z"></path></g></svg>
561 </button>
562 </li>
563
564 <li class="actions-list__item">
565 <button class="header__action-btn js-action-btn" data-target="collection-panel" data-action-page="site-wide" data-action-type="Button" data-action-label="View Collection">
566 <span class="visually-hidden">Product Collections</span>
567 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path fill="currentColor" fill-rule="nonzero" d="M183.337 75.733c-.856-10.588-9.716-18.735-20.325-18.67h-20.475V39.663A36.668 36.668 0 0 0 124.24 7.914a36.552 36.552 0 0 0-36.611 0 36.667 36.667 0 0 0-18.297 31.748v17.402H48.857c-10.6-.047-19.45 8.09-20.307 18.669l-9.474 111.102a20.462 20.462 0 0 0 5.277 15.557A20.368 20.368 0 0 0 39.373 209h133.244a20.369 20.369 0 0 0 15.02-6.608 20.433 20.433 0 0 0 5.287-15.557l-9.587-111.102Zm-101.6-35.968c0-13.385 10.832-24.234 24.196-24.234 13.363 0 24.196 10.85 24.196 24.234v17.402H81.736V39.765Zm96.788 154.231a7.923 7.923 0 0 1-5.882 2.48H39.253a7.94 7.94 0 0 1-5.883-2.582 7.994 7.994 0 0 1-2.066-6.087l9.577-111.102h.009a7.948 7.948 0 0 1 7.966-7.215H69.36v15.78l-.01.01a6.209 6.209 0 0 0 6.208 6.208 6.209 6.209 0 0 0 6.208-6.208V69.49h48.393v15.79a6.2 6.2 0 0 0 6.198 6.208 6.203 6.203 0 0 0 6.208-6.208V69.49h20.446a7.958 7.958 0 0 1 7.948 7.308l9.576 111.103a7.935 7.935 0 0 1-2.038 6.095h.029Z"></path></svg>
568 </button>
569 <span class="actions-list__badge-silo" hx-get="@(urlLangHeader)/snippets/my-collection-count" hx-trigger="collectionChange from:document">
570 @renderCollectionCount()
571 </span>
572 </li>
573
574 <li class="actions-list__item">
575 <button class="header__action-btn js-action-btn" data-target="hags-connect-panel">
576 <span class="visually-hidden">HAGS Connect</span>
577 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path fill="currentColor" fill-rule="evenodd" d="M149.316 21.1C137.27 9.035 122.73 3 105.693 3 88.657 3 74.116 9.034 62.069 21.1 50.023 33.169 44 47.735 44 64.8c0 21.725 8.676 38.55 26.026 50.477l-12.248 85.885c-.267 1.877.167 3.574 1.302 5.091 1.136 1.517 2.641 2.41 4.515 2.678a7.13 7.13 0 0 0 .97.069h82.256c1.893 0 3.508-.67 4.847-2.011 1.339-1.341 2.008-2.96 2.008-4.856a6.78 6.78 0 0 0-.069-.97l-12.248-85.886c17.351-11.926 26.026-28.752 26.026-50.477 0-17.066-6.023-31.632-18.069-43.7Zm-10.398 174.167-11.753-82.409a6.73 6.73 0 0 1 .595-3.916 6.713 6.713 0 0 1 2.654-2.936c15.508-9.36 23.262-23.094 23.262-41.206 0-13.273-4.685-24.603-14.054-33.988-9.37-9.386-20.68-14.079-33.93-14.079s-24.56 4.693-33.928 14.079c-9.37 9.385-14.055 20.715-14.055 33.988 0 18.112 7.755 31.847 23.263 41.206a6.713 6.713 0 0 1 2.654 2.936 6.73 6.73 0 0 1 .594 3.916l-11.752 82.409h66.45Z"></path></svg>
578 </button>
579 </li>
580
581 <li class="actions-list__item" id="menu-panel-icon">
582 <button class="header__action-btn js-action-btn" data-target="nav-panel">
583 <span class="visually-hidden">Menu</span>
584 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path d="M166.435 62H45.558C41.386 62 38 57.294 38 51.495S41.386 41 45.558 41h120.884c4.18 0 7.558 4.706 7.558 10.505-.007 5.799-3.386 10.495-7.565 10.495ZM173 106.5c0-5.796-3.379-10.5-7.558-10.5H44.558C40.386 96 37 100.704 37 106.5s3.386 10.5 7.558 10.5h120.891c4.172 0 7.551-4.704 7.551-10.5Zm0 54c0-5.806-3.379-10.5-7.558-10.5H44.558C40.386 150 37 154.694 37 160.5s3.386 10.5 7.558 10.5h120.891c4.172 0 7.551-4.694 7.551-10.5Z" fill="currentColor" fill-rule="nonzero"></path></svg>
585 </button>
586 </li>
587
588 </ul>
589
590 <div class="header__action-panel" id="help-panel">
591 <button class="header__action-btn header__action-btn--close js-panel-close">
592 <span class="visually-hidden">Close</span>
593 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
594 </button>
595 <div class="header__action-area">
596 <div class="header__action-copy flow-s">
597 <div class="wrapper help-form">
598 <div class="center-copy flow-xs">
599 <h6>We are here to help!</h6>
600 <p><strong>Opening hours:</strong><br>Monday - Friday 7.30 - 16.00 (GMT+1)</p>
601 <p>Need advice or a quote? Our team is just a click away.</p>
602
603 <form method="post" action="/Admin/Public/404.aspx" enctype="multipart/form-data" class="dw-form-help" id="dw-form-help" onsubmit="">
604 <input type="hidden" name="FormPID" value="140109">
605 <input type="hidden" name="FormID" value="50">
606 <input type="hidden" name="cmd" value="save">
607 <input type="hidden" name="referer" value="https://hagsdev.hags.com/contact">
608 <input type="hidden" name="_sys_to_email" value="mrsmith@dynamicweb.com" autocomplete="off">
609 <input type="hidden" name="FormCH1_h" value="" autocomplete="off">
610 <input type="hidden" name="FormCH1_f" value="ab58463a68d83b5bf40de2f6f06967eb" autocomplete="off">
611 <input type="hidden" name="FormCH1_s" value="0e40bc9b9e89e9b04e4e895ed500d910" autocomplete="off">
612 <input type="hidden" name="FormCH1_i" value="91822310a66a1e144b1b256215ca6b6a" autocomplete="off">
613 <input type="hidden" name="c246f198423a0137b4c2c0930e6deaf7ts" value="KDpDyqTfFYKycw44M+GexKmDzdgXrG0U" style="display:none!important" autocomplete="off">
614 <input type="text" name="c246f198423a0137b4c2c0930e6deaf7description" value="" style="display:none!important" autocomplete="off">
615 <input type="text" name="c246f198423a0137b4c2c0930e6deaf7email" value="mrssmith@dynamicweb.com" style="display:none!important" autocomplete="off">
616 <div class="flow-xs">
617 <div class="form__control form__control--textinput">
618 <label for="FirstName">First name <sup>*</sup></label>
619 <input type="text" id="FirstName" name="FirstName" required="">
620 <div style="position: relative !important; height: 0px !important; width: 0px !important; float: left !important;" data-lastpass-icon-root=""></div>
621 </div>
622 <div class="form__control form__control--textinput">
623 <label for="LastName">Last name <sup>*</sup></label>
624 <input type="text" id="LastName" name="LastName" required="">
625 </div>
626 <div class="form__control form__control--textinput">
627 <label for="Company">Company <sup>*</sup></label>
628 <input type="text" id="Company" name="Company" required="">
629 </div>
630 <div class="form__control form__control--textinput">
631 <label for="Email">Email <sup>*</sup></label>
632 <input type="text" id="Email" name="Email" required="">
633 </div>
634 <div class="form__control form__control--select">
635 <label for="TypeofEnquiry">Type of enquiry <sup>*</sup></label>
636 <select id="TypeofEnquiry" name="TypeofEnquiry" title="Type of Enquiry" required="">
637 <option value="">Select...</option>
638 <option value="Talk to a Representative">Talk to a Representative</option>
639 <option value="Brochure/Literature">Brochure/Literature</option>
640 <option value="Place an Order">Place an Order</option>
641 <option value="Price/Quotation">Price/Quotation</option>
642 <option value="Installation/Technical">Installation/Technical</option>
643 <option value="After Sales">After Sales</option>
644 <option value="Spare Parts">Spare Parts</option>
645 <option value="Other">Other</option>
646 </select>
647 </div>
648 <div class="form__control form__control--select">
649 <label for="Country">Country <sup>*</sup></label>
650 <select id="Country" name="Country" required="">
651 <option value="">Select Country...</option>
652 <option value="Afghanistan">Afghanistan</option>
653 <option value="Albania">Albania</option>
654 <option value="Algeria">Algeria</option>
655 <option value="American Samoa">American Samoa</option>
656 <option value="Andorra">Andorra</option>
657 <option value="Angola">Angola</option>
658 <option value="Antigua and Barbuda">Antigua and Barbuda</option>
659 <option value="Argentina">Argentina</option>
660 <option value="Armenia">Armenia</option>
661 <option value="Aruba">Aruba</option>
662 <option value="Australia">Australia</option>
663 <option value="Austria">Austria</option>
664 <option value="Azerbaijan">Azerbaijan</option>
665 <option value="Bahamas, The">Bahamas, The</option>
666 <option value="Bahrain">Bahrain</option>
667 <option value="Bangladesh">Bangladesh</option>
668 <option value="Barbados">Barbados</option>
669 <option value="Belarus">Belarus</option>
670 <option value="Belgium">Belgium</option>
671 <option value="Belize">Belize</option>
672 <option value="Benin">Benin</option>
673 <option value="Bermuda">Bermuda</option>
674 <option value="Bhutan">Bhutan</option>
675 <option value="Bolivia">Bolivia</option>
676 <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
677 <option value="Botswana">Botswana</option>
678 <option value="Brazil">Brazil</option>
679 <option value="British Virgin Islands">British Virgin Islands</option>
680 <option value="Brunei Darussalam">Brunei Darussalam</option>
681 <option value="Bulgaria">Bulgaria</option>
682 <option value="Burkina Faso">Burkina Faso</option>
683 <option value="Burundi">Burundi</option>
684 <option value="Cabo Verde">Cabo Verde</option>
685 <option value="Cambodia">Cambodia</option>
686 <option value="Cameroon">Cameroon</option>
687 <option value="Canada">Canada</option>
688 <option value="Cayman Islands">Cayman Islands</option>
689 <option value="Central African Republic">Central African Republic</option>
690 <option value="Chad">Chad</option>
691 <option value="Channel Islands">Channel Islands</option>
692 <option value="Chile">Chile</option>
693 <option value="China">China</option>
694 <option value="Colombia">Colombia</option>
695 <option value="Comoros">Comoros</option>
696 <option value="Congo, Dem. Rep.">Congo, Dem. Rep.</option>
697 <option value="Congo, Rep.">Congo, Rep.</option>
698 <option value="Costa Rica">Costa Rica</option>
699 <option value="Côte d'Ivoire">Côte d'Ivoire</option>
700 <option value="Croatia">Croatia</option>
701 <option value="Cuba">Cuba</option>
702 <option value="Curaçao">Curaçao</option>
703 <option value="Cyprus">Cyprus</option>
704 <option value="Czech Republic">Czech Republic</option>
705 <option value="Denmark">Denmark</option>
706 <option value="Djibouti">Djibouti</option>
707 <option value="Dominica">Dominica</option>
708 <option value="Dominican Republic">Dominican Republic</option>
709 <option value="Ecuador">Ecuador</option>
710 <option value="Egypt, Arab Rep.">Egypt, Arab Rep.</option>
711 <option value="El Salvador">El Salvador</option>
712 <option value="Equatorial Guinea">Equatorial Guinea</option>
713 <option value="Eritrea">Eritrea</option>
714 <option value="Estonia">Estonia</option>
715 <option value="Eswatini">Eswatini</option>
716 <option value="Ethiopia">Ethiopia</option>
717 <option value="Faroe Islands">Faroe Islands</option>
718 <option value="Fiji">Fiji</option>
719 <option value="Finland">Finland</option>
720 <option value="France">France</option>
721 <option value="French Polynesia">French Polynesia</option>
722 <option value="Gabon">Gabon</option>
723 <option value="Gambia, The">Gambia, The</option>
724 <option value="Georgia">Georgia</option>
725 <option value="Germany">Germany</option>
726 <option value="Ghana">Ghana</option>
727 <option value="Gibraltar">Gibraltar</option>
728 <option value="Greece">Greece</option>
729 <option value="Greenland">Greenland</option>
730 <option value="Grenada">Grenada</option>
731 <option value="Guam">Guam</option>
732 <option value="Guatemala">Guatemala</option>
733 <option value="Guinea">Guinea</option>
734 <option value="Guinea-Bissau">Guinea-Bissau</option>
735 <option value="Guyana">Guyana</option>
736 <option value="Haiti">Haiti</option>
737 <option value="Honduras">Honduras</option>
738 <option value="Hong Kong SAR, China">Hong Kong SAR, China</option>
739 <option value="Hungary">Hungary</option>
740 <option value="Iceland">Iceland</option>
741 <option value="India">India</option>
742 <option value="Indonesia">Indonesia</option>
743 <option value="Iran, Islamic Rep.">Iran, Islamic Rep.</option>
744 <option value="Iraq">Iraq</option>
745 <option value="Ireland">Ireland</option>
746 <option value="Isle of Man">Isle of Man</option>
747 <option value="Israel">Israel</option>
748 <option value="Italy">Italy</option>
749 <option value="Jamaica">Jamaica</option>
750 <option value="Japan">Japan</option>
751 <option value="Jordan">Jordan</option>
752 <option value="Kazakhstan">Kazakhstan</option>
753 <option value="Kenya">Kenya</option>
754 <option value="Kiribati">Kiribati</option>
755 <option value="Korea, Dem. People's Rep.">Korea, Dem. People's Rep.</option>
756 <option value="Korea, Rep.">Korea, Rep.</option>
757 <option value="Kosovo">Kosovo</option>
758 <option value="Kuwait">Kuwait</option>
759 <option value="Kyrgyz Republic">Kyrgyz Republic</option>
760 <option value="Lao PDR">Lao PDR</option>
761 <option value="Latvia">Latvia</option>
762 <option value="Lebanon">Lebanon</option>
763 <option value="Lesotho">Lesotho</option>
764 <option value="Liberia">Liberia</option>
765 <option value="Libya">Libya</option>
766 <option value="Liechtenstein">Liechtenstein</option>
767 <option value="Lithuania">Lithuania</option>
768 <option value="Luxembourg">Luxembourg</option>
769 <option value="Macao SAR, China">Macao SAR, China</option>
770 <option value="Madagascar">Madagascar</option>
771 <option value="Malawi">Malawi</option>
772 <option value="Malaysia">Malaysia</option>
773 <option value="Maldives">Maldives</option>
774 <option value="Mali">Mali</option>
775 <option value="Malta">Malta</option>
776 <option value="Marshall Islands">Marshall Islands</option>
777 <option value="Mauritania">Mauritania</option>
778 <option value="Mauritius">Mauritius</option>
779 <option value="Mexico">Mexico</option>
780 <option value="Micronesia, Fed. Sts.">Micronesia, Fed. Sts.</option>
781 <option value="Moldova">Moldova</option>
782 <option value="Monaco">Monaco</option>
783 <option value="Mongolia">Mongolia</option>
784 <option value="Montenegro">Montenegro</option>
785 <option value="Morocco">Morocco</option>
786 <option value="Mozambique">Mozambique</option>
787 <option value="Myanmar">Myanmar</option>
788 <option value="Namibia">Namibia</option>
789 <option value="Nauru">Nauru</option>
790 <option value="Nepal">Nepal</option>
791 <option value="Netherlands">Netherlands</option>
792 <option value="New Caledonia">New Caledonia</option>
793 <option value="New Zealand">New Zealand</option>
794 <option value="Nicaragua">Nicaragua</option>
795 <option value="Niger">Niger</option>
796 <option value="Nigeria">Nigeria</option>
797 <option value="North Macedonia">North Macedonia</option>
798 <option value="Northern Mariana Islands">Northern Mariana Islands</option>
799 <option value="Norway">Norway</option>
800 <option value="Oman">Oman</option>
801 <option value="Pakistan">Pakistan</option>
802 <option value="Palau">Palau</option>
803 <option value="Panama">Panama</option>
804 <option value="Papua New Guinea">Papua New Guinea</option>
805 <option value="Paraguay">Paraguay</option>
806 <option value="Peru">Peru</option>
807 <option value="Philippines">Philippines</option>
808 <option value="Poland">Poland</option>
809 <option value="Portugal">Portugal</option>
810 <option value="Puerto Rico">Puerto Rico</option>
811 <option value="Qatar">Qatar</option>
812 <option value="Romania">Romania</option>
813 <option value="Russian Federation">Russian Federation</option>
814 <option value="Rwanda">Rwanda</option>
815 <option value="Samoa">Samoa</option>
816 <option value="San Marino">San Marino</option>
817 <option value="São Tomé and Príncipe">São Tomé and Príncipe</option>
818 <option value="Saudi Arabia">Saudi Arabia</option>
819 <option value="Senegal">Senegal</option>
820 <option value="Serbia">Serbia</option>
821 <option value="Seychelles">Seychelles</option>
822 <option value="Sierra Leone">Sierra Leone</option>
823 <option value="Singapore">Singapore</option>
824 <option value="Sint Maarten (Dutch part)">Sint Maarten (Dutch part)</option>
825 <option value="Slovak Republic">Slovak Republic</option>
826 <option value="Slovenia">Slovenia</option>
827 <option value="Solomon Islands">Solomon Islands</option>
828 <option value="Somalia">Somalia</option>
829 <option value="South Africa">South Africa</option>
830 <option value="South Sudan">South Sudan</option>
831 <option value="Spain">Spain</option>
832 <option value="Sri Lanka">Sri Lanka</option>
833 <option value="St. Kitts and Nevis">St. Kitts and Nevis</option>
834 <option value="St. Lucia">St. Lucia</option>
835 <option value="St. Martin (French part)">St. Martin (French part)</option>
836 <option value="St. Vincent and the Grenadines">St. Vincent and the Grenadines</option>
837 <option value="Sudan">Sudan</option>
838 <option value="Suriname">Suriname</option>
839 <option value="Sweden">Sweden</option>
840 <option value="Switzerland">Switzerland</option>
841 <option value="Syrian Arab Republic">Syrian Arab Republic</option>
842 <option value="Taiwan, China">Taiwan, China</option>
843 <option value="Tajikistan">Tajikistan</option>
844 <option value="Tanzania">Tanzania</option>
845 <option value="Thailand">Thailand</option>
846 <option value="Timor-Leste">Timor-Leste</option>
847 <option value="Togo">Togo</option>
848 <option value="Tonga">Tonga</option>
849 <option value="Trinidad and Tobago">Trinidad and Tobago</option>
850 <option value="Tunisia">Tunisia</option>
851 <option value="Turkey">Turkey</option>
852 <option value="Turkmenistan">Turkmenistan</option>
853 <option value="Tuvalu">Tuvalu</option>
854 <option value="Uganda">Uganda</option>
855 <option value="Ukraine">Ukraine</option>
856 <option value="United Arab Emirates">United Arab Emirates</option>
857 <option value="United Kingdom">United Kingdom</option>
858 <option value="United States">United States</option>
859 <option value="Uruguay">Uruguay</option>
860 <option value="Uzbekistan">Uzbekistan</option>
861 <option value="Vanuatu">Vanuatu</option>
862 <option value="Venezuela, RB">Venezuela, RB</option>
863 <option value="Vietnam">Vietnam</option>
864 <option value="Virgin Islands (U.S.)">Virgin Islands (U.S.)</option>
865 <option value="West Bank and Gaza">West Bank and Gaza</option>
866 <option value="Yemen, Rep.">Yemen, Rep.</option>
867 <option value="Zambia">Zambia</option>
868 <option value="Zimbabwe">Zimbabwe</option>
869 </select>
870 </div>
871 <div class="form__control form__control--textinput">
872 <label for="PostalCode">Postal Code <sup>*</sup></label>
873 <input type="text" id="PostalCode" name="PostalCode" class="input-small" required="">
874 </div>
875 <div class="form__control form__control--textarea">
876 <label for="Message">Message <sup>*</sup></label>
877 <textarea rows="8" id="Message" name="Message" required=""></textarea>
878 </div>
879 <div class="form__control form__control--checkbox">
880 <label for="ContactConsent">I consent to HAGS retaining my contact information <sup>*</sup></label>
881 <input type="checkbox" id="ContactConsent" name="ContactConsent" class="opt-in" required="">
882 </div>
883 <div class="form__control form__control--submit">
884 <button class="btn btn--outline">Send enquiry</button>
885 </div>
886 </div>
887 </form>
888 <script>
889 h24.dwFormFunctions['dw-form-help'] = function(e) {
890 s=function(e){e.elements['FormCH1_h'].value='c246f198423a0137b4c2c0930e6deaf7';e.elements['_sys_to_email'].value='';e.setAttribute('action', '/Default.aspx?ID=19166&PID=140109');return true};return s(e);
891 };
892 </script>
893 </div>
894 </div>
895 </div>
896 </div>
897 </div>
898
899 @helper renderSearch(Dynamicweb.Content.Area masterArea)
900 {
901
902 string searchPageUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetInteger("DwAreaSearchPageID"));
903 string langCode = @GetGlobalValue("Global:Area.LongLang");
904 string searchId = @GetString("DwAreaSearchPageID");
905 string searchTranslate = Translate("Search", "Search");
906 string testHtmx = System.Web.HttpContext.Current.Request["htmx"];
907 string weglotLang = System.Web.HttpContext.Current.Request.Headers["weglot-language"];
908 string urlLang = weglotLang != "" ? "/" + weglotLang : "";
909 //ignore the default en code
910 urlLang = weglotLang == "en" ? "" : urlLang;
911
912 <script type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script>
913
914 <form id="search-box" name="searchBox" action="Default.aspx" method="get">
915 <div class="form-group flow-s">
916 <input type="hidden" name="ID" value="@searchId">
917 <input type="hidden" id="search-advanced-culture" value="@langCode">
918 <input type="hidden" id="search-advanced-resultsurl" value="@searchPageUrl">
919 <input type="hidden" id="Searchtype" value="">
920 <input type="hidden" id="search-advanced-pageAreaId" value="@(masterArea.ID)">
921 <input type="hidden" id="search-advanced-pagelanguage" name="areaLanguage" value="LANG1">
922
923
924 <label for="InputSearch"><h5>@(searchTranslate)</h5></label>
925
926 <!--input type="search" name="q" class="form-control" id="InputSearch" maxlength="45" placeholder="@(searchTranslate) HAGS" onkeyup="return forceLower(this);" autocomplete="off" /-->
927 @if ( true ) {
928 <p data-weglot="@weglotLang">
929 <input type="search" id="InputSearch" class="search" name="q" placeholder="@(searchTranslate) HAGS" hx-get="@(urlLang)/snippets/suggestions?areaLanguage=LANG1" hx-params="q" hx-trigger="input[this.value.length > 3] changed delay:300ms,input[this.value.length == 0]" hx-target="#search-suggest">
930 </p>
931 }
932
933 <button>@Translate("Go", "Go")</button>
934 </div>
935 </form>
936
937 <div class="header__action-area">
938 <ul class="flow-xs" role="list" id="search-suggest"></ul>
939 </div>
940 }
941
942 <div class="header__action-panel" id="search-panel">
943 <button class="header__action-btn header__action-btn--close js-panel-close">
944 <span class="visually-hidden">Close</span>
945 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
946 </button>
947 <div class="header__action-copy flow-s">
948 @renderSearch(masterArea)
949 </div>
950 </div>
951
952 @*if ( currentUser == "Kevin Lees" || currentUser == "Ian Mckay" )*@
953 @if ( true )
954 {
955 <div class="header__action-panel" id="hags-connect-panel">
956
957 <button class="header__action-btn header__action-btn--close js-panel-close">
958 <span class="visually-hidden">Close</span>
959 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
960 </button>
961 @{
962 string thisPageID = @GetGlobalValue("Global:Page.ID");
963 string hagsConnectTitle = @Translate("HAGS Connect", "HAGS Connect");
964 }
965
966 <div class="header__action-copy flow-s">
967
968 <h5>@hagsConnectTitle</h5>
969
970 <p>@Translate("HAGSConnectIntro", "A brief block of introductory copy about HAGS Connect.")</p>
971
972 @if (!String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName")))
973 {
974
975 <p>
976 <strong>@Translate("Welcome", "Welcome"), @GetGlobalValue("Global:Extranet.FirstName")</strong>
977 </p>
978
979 @RenderNavigation(new{
980 ParentTag = "MyHags",
981 Template = "simple-nav.xslt"
982 })
983
984 <ul role="list" class="icon-list">
985 <li>
986 <a href="/admin/Public/ExtranetLogOff.aspx?ID=@thisPageID">
987 <img src="@(designBaseUrl)assets/svg-icons/connect/logout-icon-2.svg">
988 <span>@Translate("SignOut", "Sign Out")</span>
989 </a>
990 </li>
991 </ul>
992
993
994
995 }
996 else
997 {
998 if (Dynamicweb.Configuration.SystemConfiguration.Instance.GetBoolean("/Globalsettings/System/MyHags/SSOLoginActive"))
999 {
1000 <a href="/Admin/Public/Social/ExternalLogin.aspx?action=login&providerID=3">HAGS Connect Login</a>
1001 }
1002 }
1003
1004 </div>
1005 </div>
1006 }
1007
1008
1009 @helper renderCountryList(string outputElement = "list")
1010 {
1011 // create a list of 'anonymous' objects to hold the weglot sites - move to site config at some point
1012 var allCountries = new List<object>
1013 {
1014 new { Url = "https://hagsdev.hags.com", Image = "globe.svg", Title = "Global", Active = true },
1015 new { Url = "be-nl", Image = "be.svg", Title = "Belgium (Flemish)", Active = true },
1016 new { Url = "be-fr", Image = "be.svg", Title = "Belgium (French)", Active = true },
1017 new { Url = "zh", Image = "cn.svg", Title = "China", Active = true },
1018 new { Url = "hr", Image = "hr.svg", Title = "Croatia", Active = true },
1019 new { Url = "https://hags.dk/", Image = "dk.svg", Title = "Denmark", Active = true },
1020 new { Url = "et", Image = "ee.svg", Title = "Estonia", Active = true },
1021 new { Url = "fi", Image = "fi.svg", Title = "Finland", Active = true },
1022 new { Url = "fr", Image = "fr.svg", Title = "France", Active = true },
1023 new { Url = "de", Image = "de.svg", Title = "Germany", Active = true },
1024 new { Url = "hu", Image = "hu.svg", Title = "Hungary", Active = true },
1025 new { Url = "it", Image = "it.svg", Title = "Italy", Active = true},
1026 new { Url = "ja", Image = "jp.svg", Title = "Japan", Active = true},
1027 new { Url = "lv", Image = "lv.svg", Title = "Latvia", Active = true},
1028 new { Url = "nl", Image = "nl.svg", Title = "Netherlands", Active = true },
1029 new { Url = "no", Image = "no.svg", Title = "Norway", Active = true },
1030 new { Url = "pl", Image = "pl.svg", Title = "Poland", Active = true },
1031 new { Url = "sa", Image = "rs.svg", Title = "Serbia", Active = true },
1032 new { Url = "ko", Image = "kr.svg", Title = "South Korea", Active = true },
1033 new { Url = "es", Image = "es.svg", Title = "Spain", Active = true },
1034 new { Url = "https://hags.se/", Image = "se.svg", Title = "Sweden", Active = true },
1035 new { Url = "ch-de", Image = "ch.svg", Title = "Switzerland (German)", Active = true },
1036 new { Url = "tr", Image = "tr.svg", Title = "Turkey", Active = true},
1037 new { Url = "https://hags.co.uk/", Image = "gb.svg", Title = "United Kingdom", Active = true }
1038 };
1039
1040 // sort the list - the getType etc.. is because it's anonymous
1041 //var sortedList = allCountries.OrderBy(item => item.GetType().GetProperty("Title").GetValue(item)).ToList();
1042 var sortedList = allCountries;
1043
1044 if ( outputElement == "list" )
1045 {
1046
1047 <ul class="icon-list" role="list">
1048 @foreach (var thisCountry in sortedList)
1049 {
1050 var thisActive = thisCountry.GetType().GetProperty("Active").GetValue(thisCountry);
1051 var thisImage = thisCountry.GetType().GetProperty("Image").GetValue(thisCountry);
1052 var thisTitle = thisCountry.GetType().GetProperty("Title").GetValue(thisCountry);
1053 var thisUrl = thisCountry.GetType().GetProperty("Url").GetValue(thisCountry);
1054 bool isActive = Convert.ToBoolean(thisActive);
1055
1056 if (isActive)
1057 {
1058 if ( thisTitle == "Global" ) {
1059 <li>
1060 <a href="@thisUrl" data-wg-notranslate="">
1061 <img src="/Files/Templates/Designs/Hags2024/icons/flags/@thisImage" alt="@thisTitle">
1062 <span data-wg-translate="">@thisTitle</span>
1063 </a>
1064 </li>
1065 }
1066 else
1067 {
1068 <li>
1069 <a href="@thisUrl">
1070 <img src="/Files/Templates/Designs/Hags2024/icons/flags/@thisImage" alt="@thisTitle">
1071 <span>@thisTitle</span>
1072 </a>
1073 </li>
1074 }
1075
1076 }
1077 }
1078 </ul>
1079 }
1080 }
1081
1082
1083
1084
1085 <div class="header__action-panel" id="country-select-panel">
1086
1087 <button class="header__action-btn header__action-btn--close js-panel-close">
1088 <span class="visually-hidden">Close</span>
1089 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1090 </button>
1091 <div class="header__action-copy flow-s">
1092 <h5>@Translate("SelectYourLocation", "Select your location")</h5>
1093 <div class="header__action-area">
1094 @renderCountryList("list")
1095 </div>
1096 </div>
1097 </div>
1098
1099
1100 <div class="header__action-panel" id="collection-panel">
1101
1102 <button class="header__action-btn header__action-btn--close js-panel-close">
1103 <span class="visually-hidden">Close</span>
1104 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1105 </button>
1106
1107 <div class="header__action-copy flow-s">
1108
1109 <h5>@Translate("MyProductCollection", "My Product Collection")</h5>
1110
1111 <div class="header__action-area" id="" hx-get="@(urlLangHeader)/snippets/my-collection-panel" hx-trigger="collectionChange from:document">
1112
1113 @renderMyCollectionPanel()
1114
1115 </div>
1116
1117 </div>
1118
1119 </div>
1120
1121
1122 <div class="header__action-panel" id="search-panel">
1123 <button class="header__action-btn header__action-btn--close js-panel-close">
1124 <span class="visually-hidden">Close</span>
1125 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1126 </button>
1127 <div class="header__action-copy flow-s">
1128 @renderSearch(masterArea)
1129 </div>
1130 </div>
1131
1132 <div class="header__action-panel" id="nav-panel">
1133 <button class="header__action-btn header__action-btn--close js-panel-close">
1134 <span class="visually-hidden">Close</span>
1135 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1136 </button>
1137 <div class="header__action-area">
1138 @RenderSnippet("navigation")
1139 </div>
1140 </div>
1141
1142 </div>
1143
1144 </div>
1145
1146
1147 <div class="header__local-nav">
1148
1149 @SnippetStart("navigation")
1150 <nav class="nav">
1151 <!--button id="menu-toggle" class="menu-toggle menu-toggle--main" aria-expanded="false" aria-controls="main-nav">
1152 <div class="menu-toggle__box">
1153 <div class="menu-toggle__lines"></div>
1154 </div>
1155 <span class="visually-hidden">Menu</span>
1156 </button-->
1157 @GetValue("DwNavigation(mainnav)")
1158 </nav>
1159 @SnippetEnd("navigation")
1160
1161 @RenderSnippet("navigation")
1162
1163 @* This snippet generates the product listing links on levels 4 and 5 of the site *@
1164 @* In a snippet because these xslt built f*****s are only processed on PAGE templates not paragraph templates *@
1165 @* The snippet is then included in the relevant PARAGRAPH template *@
1166
1167 @SnippetStart("nextLevel3Nav")
1168 <section>
1169 <div class="wrapper">
1170 @GetValue("DwNavigation(productlistingnavipema)")
1171 </div>
1172 </section>
1173 @SnippetEnd("nextLevel3Nav")
1174
1175 @SnippetStart("nextLevelNav")
1176 <section>
1177 <div class="wrapper">
1178 @GetValue("DwNavigation(productlistingnav)")
1179 </div>
1180 </section>
1181 @SnippetEnd("nextLevelNav")
1182
1183 </div></div></header>
1184 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
1185
1186
1187
1188 <main class="flow-page" id="content">@GetValue("DwContent(content)")</main>
1189 @if (GetLoop("Item.Area.Accreditation_Images").Count() > 0)
1190 {
1191 <section class="creds">
1192 <div class="wrapper">
1193 <ul class="creds__list" role="list">
1194 <!-- Accreditation Carousel items -->
1195 @foreach (var item in @GetLoop("Item.Area.Accreditation_Images"))
1196 {
1197 var imageUrl = item.GetString("Item.Area.Accreditation_Images.Image");
1198 var imageAlt = item.GetString("Item.Area.Accreditation_Images.Alternative_Text");
1199 string imageLink = item.GetString("Item.Area.Accreditation_Images.Link");
1200 var imageTitle = item.GetString("Item.Area.Accreditation_Images.Title");
1201
1202 if (!string.IsNullOrWhiteSpace(imageLink))
1203 {
1204 <li class="creds__item">
1205 <a href="@imageLink">
1206 <img class="creds__img" src="@imageUrl" alt="@imageAlt">
1207 </a>
1208 </li>
1209 }
1210 else
1211 {
1212 <li class="creds__item">
1213 <img class="creds__img" src="@imageUrl" alt="@imageAlt" class="img-responsive">
1214 </li>
1215 }
1216
1217 }
1218 </ul>
1219 </div>
1220 </section>
1221 }
1222
1223 <footer class="footer">
1224 <div class="inner-wrapper">
1225
1226 <div class="footer__logo" itemscope="" itemtype="http://schema.org/Organization">
1227 <a href="Default.aspx?ID=@siteFirstPageId" itemprop="url">
1228 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 362 81" class="hags-logo"><path fill="currentColor" fill-rule="evenodd" d="M311.22.5c9.399 0 16.725 3.168 18.555 3.168.862 0 1.596-.243 2.697-1.338h2.558l2.318 19.692h-4.876c-2.697-9.846-10.513-16.292-19.911-16.292-6.837 0-11.97 3.65-11.97 8.39 0 11.187 20.279 13.258 33.958 26.873 5.004 4.986 6.951 10.214 6.951 16.05 0 12.648-11.47 22.618-26.006 22.618-9.77 0-18.687-3.888-20.887-3.888-1.1 0-1.952.611-2.562 1.947h-3.178L285.82 55.59v-.002h4.757c4.029 12.031 11.236 18.237 20.88 18.237 8.059 0 14.17-5.11 14.17-11.917 0-18.122-39.204-17.509-39.204-41.586C286.423 8.645 296.681.5 311.22.5Zm-75.498 0c7.426 0 13.874 1.484 18.765 2.7l.801.2c3.013.755 5.377 1.361 6.941 1.361 1.825 0 2.814-.492 3.66-1.586h3.055v22.253h-4.89c-3.29-12.4-12.575-19.7-25.28-19.7-17.337 0-29.31 13.622-29.31 33.318 0 19.946 12.584 34.778 29.56 34.778 4.638 0 9.77-1.215 13.068-3.157V53.883c0-6.078-2.561-7.419-15.022-7.662v-4.617h40.55v4.617h-.001c-6.474.124-8.675 2.068-8.675 7.662v18.12c-8.795 4.011-21.364 7.656-31.877 7.656-30.898 0-45.805-17.146-45.805-40.488C191.264 16.916 209.71.5 235.722.5ZM39.705 2.33v4.74h-1.712c-6.351 0-9.526 2.066-9.526 8.878v19.086h40.301V16.31c0-6.808-2.685-9.24-9.77-9.24h-1.1V2.33h39.083v4.74h-2.203c-6.223 0-9.156 2.308-9.156 8.878v48.153c0 6.318 2.322 9.116 9.403 9.116h1.956v4.74H57.899v-4.742h1.708c6.476 0 9.161-2.796 9.161-9.364V42.21h-40.3V64.1c0 6.445 2.565 9.117 9.4 9.117h1.837v4.74H.5v-4.742h2.073c6.235 0 9.04-2.796 9.04-8.873V15.948c0-6.08-2.685-8.878-9.156-8.878H.5V2.33h39.205ZM154.04.5l24.433 61.772c3.175 8.026 5.857 10.452 12.208 10.943v4.741h-39.693v-4.741h4.271c7.451 0 8.551-3.282 6.11-9.238l-5.741-14.107h-26.752l.005.003-5.125 14.226c-2.2 6.2-2.07 9.116 9.65 9.116h1.586v4.741h-32.37v-4.741h1.837c5.858 0 8.912-2.67 11.966-11.182L137.313 4.03 135.967.5h18.073ZM141.59 14.733l-10.26 28.448h21.492L141.59 14.733ZM352.674 2.62c1.114 0 2.164.213 3.148.64a8.412 8.412 0 0 1 2.58 1.726 8.042 8.042 0 0 1 1.743 2.562c.427.984.64 2.034.64 3.148a7.702 7.702 0 0 1-.64 3.131 8.097 8.097 0 0 1-1.743 2.544 8.158 8.158 0 0 1-2.58 1.708 8.02 8.02 0 0 1-3.148.623 8.02 8.02 0 0 1-3.15-.623 8.158 8.158 0 0 1-2.579-1.708 8.097 8.097 0 0 1-1.743-2.544 7.702 7.702 0 0 1-.64-3.13c0-1.115.213-2.165.64-3.15a8.042 8.042 0 0 1 1.743-2.561 8.412 8.412 0 0 1 2.58-1.726 7.827 7.827 0 0 1 3.149-.64Zm0 1.245c-.95 0-1.839.178-2.669.534a6.854 6.854 0 0 0-2.17 1.459 6.854 6.854 0 0 0-1.459 2.17 6.702 6.702 0 0 0-.533 2.668c0 .925.177 1.803.533 2.633a7.07 7.07 0 0 0 1.459 2.188 6.71 6.71 0 0 0 2.17 1.477c.83.356 1.72.534 2.669.534.948 0 1.838-.178 2.668-.534a6.71 6.71 0 0 0 2.17-1.477 7.07 7.07 0 0 0 1.46-2.188c.355-.83.533-1.708.533-2.633 0-.948-.178-1.838-.534-2.668a6.854 6.854 0 0 0-1.459-2.17 6.854 6.854 0 0 0-2.17-1.46 6.702 6.702 0 0 0-2.668-.533Zm.035 2.242.318.009c.316.017.625.062.928.133a3.3 3.3 0 0 1 1.085.463c.32.213.575.486.765.818.19.332.284.747.284 1.245 0 .664-.19 1.204-.569 1.619-.38.415-.89.694-1.53.836l2.455 3.985h-1.992l-2.135-3.807h-1.174v3.807h-1.637V6.107h3.202Zm-.07 1.387h-1.495v2.598h1.316a3.48 3.48 0 0 0 1.352-.267c.427-.178.64-.54.64-1.085 0-.499-.195-.83-.586-.997-.392-.166-.801-.249-1.228-.249Z"></path></svg>
1229 </a>
1230 </div>
1231
1232 <div class="footer__switcher">
1233
1234 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Name.Value")))
1235 {
1236 <section class="footer-address" itemscope="" itemtype="http://schema.org/PostalAddress">
1237 <h4 class="footer__heading">@Translate("ContactUs", "Contact Us")</h4>
1238 <p class="address">
1239 <span class="h-adr adr">
1240 <span class="fn p-org org">@GetString("Item.Area.Company_Name.Value")</span><br>
1241 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Address")))
1242 {
1243 <span class="p-street-address street-address" itemprop="streetAddress">@GetString("Item.Area.Company_Address.Value")</span>
1244 }
1245 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Address_2.Value")))
1246 {
1247 <br><span class="p-street-address street-address" itemprop="streetAddress">@GetString("Item.Area.Company_Address_2.Value")</span>
1248 }
1249 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Town_City.Value")))
1250 {
1251 <br> <span class="p-street-address street-address" itemprop="addressLocality">@GetString("Item.Area.Town_City.Value")</span>
1252 }
1253 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.County.Value")))
1254 {
1255 <br><span class="p-street-address street-address" itemprop="addressRegion">@GetString("Item.Area.County.Value")</span>
1256 }
1257 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Postcode.Value")))
1258 {
1259 <br><span class="p-street-address street-address" itemprop="postalCode">@GetString("Item.Area.Postcode.Value")</span>
1260 }
1261 </span>
1262 </p>
1263 @*
1264 <ul class="footer__list" role="list">
1265 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Contact_Email_Link")))
1266 {
1267 string mailTo = "mailto:" + GetString("Item.Area.Contact_Email_Link");
1268 <li>
1269 <a href="@mailTo">
1270 E: <span itemprop="email">@GetString("Item.Area.Contact_Email")</span>
1271 </a>
1272 </li>
1273 }
1274 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Telephone")))
1275 {
1276 string telTo = "tel:" + GetString("Item.Area.Telephone");
1277 <li>
1278 <a href="@telTo">
1279 T: <span itemprop="telephone">@GetString("Item.Area.Telephone")</span>
1280 </a>
1281 </li>
1282 }
1283 </ul>
1284 *@
1285 </section>
1286 }
1287
1288 <section>
1289 <h4 class="footer__heading">@Translate("CompanyInformation", "Company Information")</h4>
1290 <nav>
1291 @GetValue("DwNavigation(footerpages)")
1292 </nav>
1293
1294 @{
1295 int legalsLink = 0;
1296 var legalsPage = HagsWeb.Library.Methods.Page.HagsPages.GetPageByNavigationTag("Legals", masterArea.ID);
1297 if (legalsPage != null)
1298 {
1299 legalsLink = legalsPage.ID;
1300 }
1301
1302 if (legalsLink > 0)
1303 {
1304
1305 <ul class="footer__list" role="list">
1306 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("PrivacyPolicy", "Privacy Policy")</a></li>
1307 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("CookieNotice", "Cookie Notice")</a></li>
1308 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("TermsConditions", "Terms & Conditions")</a></li>
1309 </ul>
1310 }
1311 }
1312 </section>
1313
1314 <section>
1315 <h4 class="footer__heading">@Translate("FindUs", "Find Us")</h4>
1316 <ul class="footer__list">
1317 <!-- Social Media items -->
1318 @foreach (var item in @GetLoop("Item.Area.Social_Media"))
1319 {
1320 var linkUrl = item.GetValue("Item.Area.Social_Media.Social_Link");
1321 string linkTitle = item.GetString("Item.Area.Social_Media.Social_Icon");
1322 string linkIcon = "/Files/Templates/Designs/HagsCore/res/img/icons/social/" + linkTitle + ".png";
1323 <li><a href="@linkUrl" target="_blank">@linkTitle</a></li>
1324 }
1325 </ul>
1326 </section>
1327
1328 </div>
1329 </div>
1330
1331 @if ( baseWeglotLang != "se" && testCountryCode != "se" )
1332 {
1333 <div class="help-toggle-footer">
1334 <button id="" class="btn btn--shadow js-action-btn" data-target="help-panel">Need Help?</button>
1335 <button id="hide-help" class="action-btn">
1336 <span class="visually-hidden">Hide help</span>
1337 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="h24-icon h24-icon--close-bg"><g fill="none" fill-rule="evenodd"><path d="M106 11.3A94.4 94.4 0 0 0 11.3 106a94.4 94.4 0 0 0 94.7 94.7 94.4 94.4 0 0 0 94.7-94.7A94.4 94.4 0 0 0 106 11.3Z" fill="#fff"></path><path d="M106 6a100 100 0 1 1 0 200 100 100 0 0 1 0-200Zm0 5.3A94.4 94.4 0 0 0 11.3 106a94.4 94.4 0 0 0 94.7 94.7 94.4 94.4 0 0 0 94.7-94.7A94.4 94.4 0 0 0 106 11.3Zm25.1 78.9-15 15.5 15.5 14.9a6.5 6.5 0 0 1 .2 9.2l-.7.7a6.5 6.5 0 0 1-9.2.2l-15.5-15-14.9 15.5a6.5 6.5 0 0 1-9.2.2l-.7-.7a6.5 6.5 0 0 1-.2-9.2l15-15.5-15.5-15a6.5 6.5 0 0 1-.2-9.1l.7-.7a6.5 6.5 0 0 1 9.2-.2l15.5 15 15-15.5a6.5 6.5 0 0 1 9.1-.2l.7.7a6.5 6.5 0 0 1 .2 9.2Z" fill="currentColor"></path></g></svg>
1338 </button>
1339 </div>
1340 }
1341
1342
1343
1344 </footer>
1345
1346
1347
1348
1349 <dialog class="modal" id="adviceModal">
1350
1351 <div class="modal__body">
1352
1353 <div class="modal__header">
1354
1355 <div class="modal__close">
1356 <button type="button" class="action-btn js-modal-close-target" data-target-id="adviceModal">
1357 <span class="visually-hidden">Close</span>
1358 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1359 </button>
1360 </div>
1361
1362 <h3 class="ts-2" id="advice-title">
1363 <span>Information</span>
1364 </h3>
1365
1366 </div>
1367
1368 <div class="modal__main">
1369
1370 <div id="result-advice" class="advice-message"></div>
1371
1372 </div>
1373
1374 <div class="modal__footer">
1375
1376 <button type="button" class="btn btn--outline js-modal-close-target" data-target-id="adviceModal">
1377 @Translate("Close", "Close")
1378 </button>
1379
1380 </div>
1381
1382 </div>
1383
1384 </dialog>
1385 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
1386 @using System.Collections.Generic;
1387 @using HagsWeb.Library.BusinessObjects.UsersLists;
1388 @using System.Web;
1389
1390 @{
1391 int currentAreaID = int.TryParse(GetGlobalValue("Global:Area.ID"), out currentAreaID) ? currentAreaID : 0;
1392 var currentArea = new Dynamicweb.Content.AreaService().GetArea(currentAreaID);
1393
1394 var featureRequest = HttpContext.Current.Request;
1395 string featureCheck = featureRequest.QueryString["mail-h24"];
1396
1397 //List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>();
1398
1399 }
1400
1401 <dialog id="CreateCatalog" class="modal modal--full">
1402
1403 <div class="modal__body">
1404
1405 <div class="modal__header">
1406
1407 <div class="modal__close">
1408 <button type="button" class="action-btn js-modal-close-target" data-target-id="CreateCatalog">
1409 <span class="visually-hidden">Close</span>
1410 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1411 </button>
1412 </div>
1413
1414 <h4 class="modal-title" id="CreateCatalogModalLabel">
1415 @Translate("CreateYourCatalog", "Create Your Catalogue")
1416 </h4>
1417
1418 </div> <!-- header -->
1419
1420 <div class="modal__main">
1421
1422 <div id="div_CreateCatalog" class="modal__pdf-grid">
1423
1424 <div>
1425
1426
1427 <div class="h-tabs">
1428 <button class="h-tabs__btn js-active" data-tab="customise-catalogue">Customise</button>
1429 <button class="h-tabs__btn" data-tab="email-catalogue">Email</button>
1430 </div>
1431
1432
1433 <div class="modal__forms h-tabs__tab js-active" id="customise-catalogue">
1434 <form id="frm_CreateCatalog">
1435 <input type="hidden" name="areaId" value="@(currentArea.ID)">
1436 <input type="hidden" name="languageId" value="@currentArea.EcomLanguageId">
1437 <input type="hidden" value="#CreateCatalog" name="catType">
1438 <input type="hidden" name="weglotLang" value="">
1439 <fieldset>
1440 <div>
1441 <label for="catHagsCatalogName">@Translate("HagsCatalogName", "Hags Catalog Name"):</label>
1442 <input type="text" class="form-control search-group" value="" name="catHagsCatalogName">
1443 </div>
1444
1445 <label for="catHagsContactName">@Translate("HagsContactName", "Hags Contact Name"):</label>
1446 <input type="text" class="form-control search-group" value="" name="catHagsContactName">
1447
1448 <label for="catHagsContactPhone">@Translate("HagsPhoneNumber", "Hags Phone Number"):</label>
1449 <input type="text" class="form-control search-group" value="" name="catHagsContactPhone">
1450
1451 <label for="catHagsContactEmail">@Translate("HagsContactEmail", "Hags Contact Email"):</label>
1452 <input type="email" class="form-control search-group" value="" name="catHagsContactEmail">
1453
1454 <label for="catCompanyName">@Translate("CompanyName", "Company Name"):</label>
1455 <input type="text" class="form-control search-group" value="" name="catCompanyName">
1456
1457 <label for="catAddress">@Translate("CompanyAddress", "Company Address"):</label>
1458 <input type="text" class="form-control search-group" value="" name="catAddress">
1459
1460 <input type="text" class="form-control search-group" value="" name="catAddress2">
1461
1462 <label for="catAddrTown">@Translate("CompanyTown", "Company Town"):</label>
1463 <input type="text" class="form-control search-group" value="" name="catAddrTown">
1464
1465 <label for="catAddrPostCode">@Translate("CompanyPostCode", "Company Postal Code"):</label>
1466 <input type="text" class="form-control search-group" value="" name="catAddrPostCode">
1467
1468 <label for="catAddrCountry">@Translate("CompanyCountry", "Company Country"):</label>
1469 <input type="text" class="form-control search-group" value="" name="catAddrCountry">
1470
1471
1472 </fieldset>
1473 </form>
1474
1475 <button class="btn btn--outline" name="updatecatalogue" role="button" type="button">Update Catalog</button>
1476
1477 </div>
1478
1479
1480 @*Switch Form here*@
1481
1482 <div class="modal__forms h-tabs__tab" id="email-catalogue">
1483
1484 <form id="frm_CatalogEmailSettings">
1485 <input type="hidden" name="pdfFileName" value="">
1486 <input type="hidden" name="areaId" value="@currentAreaID">
1487 <input type="hidden" name="weglotLang" value="">
1488
1489 <fieldset>
1490
1491 <label for="emailFrom">@Translate("EmailFrom", "Email from"):</label>
1492 <input type="email" class="form-control search-group" name="emailFrom" required="" value="">
1493
1494 <label for="emailTo">@Translate("EmailTo", "Email to"):</label>
1495 <input type="email" class="form-control search-group" name="emailTo" required="" value="">
1496
1497 <label for="emailSubject">@Translate("EmailSubject", "Subject"):</label>
1498 <input type="text" class="form-control search-group" name="emailSubject" value="">
1499
1500 <label for="emailMessage">@Translate("Message", "Message"):</label>
1501 <textarea class="form-control" name="emailMessage" cols="45" rows="7" value=""></textarea>
1502
1503 </fieldset>
1504
1505 <div name="emailProgressContent" style="display:none;">
1506 <span id="CreateCatalogueEmailLabel" style="display: block; text-align: center; margin: auto;">@Translate("SendingYourEmail", "Sending your Email")</span>
1507 <img src="/Files/Templates/Designs/HagsCore/res/img/loader/ajax-loader.gif" style="margin: auto; display: block;">
1508 </div>
1509
1510 <div name="emailProgress" style="display: none;"></div>
1511
1512 <div class="m-search-advanced-buttons text-right" name="preSendEmail" style="display: block;">
1513
1514 @*
1515 <button class="btn btn--outline" name="emailcatalogue" type="button" role="button">Send Email</button>
1516 *@
1517
1518
1519 <button class="btn btn--outline" name="emailcatalogueH24" type="button" role="button">Send Email</button>
1520
1521 <button class="btn btn--outline" style="margin: 2px;" name="refreshemail" type="button" role="button">
1522 Clear form
1523 </button>
1524
1525 @*
1526 <button class="btn btn--outline" style="display: none;" name="refreshemail" type="button" role="button">@Translate("Refresh", "Refresh")</button>
1527 <button class="btn btn--outline" name="cancelemail" type="button" role="button" data-modal-name="catalogue">@Translate("Cancel", "Cancel")</button>
1528 *@
1529 </div>
1530
1531
1532
1533 <div class="m-search-advanced-buttons text-center" name="downloadResend" style="display: none;">
1534 @*
1535 <button class="btn btn--outline" style="display: none;" name="resendcatalogue" type="button" role="button">@Translate("SendEmail", "Send Email")</button>
1536 <button class="btn btn--outline" style="margin: 2px;" name="refreshemail" type="button" role="button">@Translate("ClearFormSendAgain", "Clear form and send again")</button><br>
1537 <a href="" class="btn btn--outline" name="pdfDownloadLink" download="">@Translate("DownloadCatalogue", "Download Catalogue")</a>
1538 <button class="btn btn--outline js-modal-close-target" data-target-id="CreateCatalog" type="button">@Translate("CloseWindow", "Close Window")</button>
1539 *@
1540 </div>
1541
1542 </form>
1543
1544
1545 </div>
1546
1547 </div>
1548
1549 <div id="loader" style="display:none;text-align:center;position:absolute;left:61%;">
1550 <span id="CreateCataloguePdfLabel" style="display: inline-block;margin: 10px 10px 0 0;padding: 5px 10px"></span>
1551 <img src="/Files/Templates/Designs/Hags2024/assets/img/loader/ajax-loader.gif" style="margin:auto;display:block;">
1552 </div>
1553
1554 <div id="pdfViewer" class="modal__embed-silo"></div>
1555
1556 </div>
1557
1558 </div> <!-- main -->
1559
1560
1561 <div class="modal__footer">
1562
1563 <div class="m-search-advanced-buttons cluster cluster--dialog">
1564 @*
1565 <button class="btn btn--outline" name="createemail" data-modal-name="catalogue" type="button" role="button">@Translate("EmailCatalogue", "Email Catalogue")</button>
1566 *@
1567 <button class="btn btn--outline" id="pdfPrintCatalogue" target="_blank" type="button">@Translate("Print", "Print")</button>
1568 <a class="btn btn--outline" href="#" id="pdfDownloadCatalogue" type="button" download="">@Translate("Download", "Download")</a>
1569 <button class="btn btn--outline js-modal-close-target" data-target-id="CreateCatalog" type="button">@Translate("Close", "Close")</button>
1570
1571 </div>
1572
1573 </div> <!-- footer -->
1574
1575 </div>
1576
1577 </dialog>
1578 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
1579 @using HagsWeb.Library.State;
1580 @using HagsWeb.Library.BusinessObjects.UsersLists;
1581 @{
1582
1583 int saveCollectionAreaID = HagsWeb.Library.Utilities.WebUtilities.CheckInteger(GetGlobalValue("Global:Area.ID"));
1584 Dynamicweb.Content.Page saveCollectionMyHagsRegistrationPage = HagsWeb.Library.Methods.Page.HagsPages.GetPageByNavigationTag("CreateAccountPage", saveCollectionAreaID);
1585
1586 bool savecollection = bool.Parse(string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("savecollection")) ? "false" : Dynamicweb.Context.Current.Request.QueryString.Get("savecollection"));
1587
1588 string areaLanguage = GetGlobalValue("Global:Area.Lang");
1589
1590 EditCollection editSession = new EditCollection();
1591 if (SessionManager.IsSessionValueSet("EditCollectionSession_" + GetGlobalValue("Global:Extranet.UserID")))
1592 {
1593 editSession = (EditCollection)SessionManager.GetSessionItem("EditCollectionSession_" + GetGlobalValue("Global:Extranet.UserID"));
1594 }
1595
1596 string currentCollectionName = string.Empty; // Dynamicweb.Context.Current.Request.QueryString.Get("collection");
1597 string currentCollectionDescription = string.Empty;
1598 string currentCollectionOriginalFileName = string.Empty;
1599 if (editSession != null)
1600 {
1601 currentCollectionName = editSession.CollectionName;
1602 currentCollectionDescription = editSession.CollectionDescription;
1603 currentCollectionOriginalFileName = editSession.OriginalFileName;
1604 }
1605
1606 bool isLoggedIn = false;
1607 if (!String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName")))
1608 {
1609 isLoggedIn = true;
1610 }
1611
1612 string saveCollectionValidationMessages = string.Format("messages_{0}.min.js", GetGlobalValue("Global:Area.Lang"));
1613 string saveCollectionAreaLanguage = GetGlobalValue("Global:Area.Lang");
1614 string saveCollectionLoginPageId = GetGlobalValue("Global:Page.ID");
1615 string UserId = GetGlobalValue("Global:Extranet.UserID");
1616 //string designBaseUrl = GetString("Template:DesignBaseUrl");
1617
1618 // Notes: for the Forgotten Password we now are just advising the user to contact their local office for a reset
1619 // We do however maintain the original code as is for when they change their mind back again!
1620 }
1621
1622
1623 @*@Scripts.Render("~/bundle/Validation")*@
1624
1625 <dialog class="modal" id="saveCollection">
1626
1627 @if (areaLanguage != "en")
1628 {
1629 <script src="@(designBaseUrl)assets/js/libraries/validation/localization/@saveCollectionValidationMessages"></script>
1630 }
1631
1632 <div class="modal__body">
1633
1634 <div class="modal__header">
1635
1636 <div class="modal__close">
1637 <button type="button" class="action-btn js-modal-close-target" data-target-id="saveCollection">
1638 <span class="visually-hidden">Close</span>
1639 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg>
1640 </button>
1641 </div>
1642
1643 <h3 class="ts-2">
1644 @Translate("SaveMyHagsCollection", "Save HAGS Connect Collection")
1645 </h3>
1646
1647 </div>
1648
1649 <div class="modal__main">
1650
1651 <input type="hidden" id="action" value="">
1652
1653 <form role="form" method="post" id="saveCollectionForm" action="">
1654
1655 <input type="hidden" name="UserId" value="@UserId">
1656 <input type="hidden" name="OriginalFileName" value="@currentCollectionOriginalFileName">
1657
1658 <div class="form-group">
1659 <label for="collectionName">@Translate("CollectionName", "Name of Collection") <sup>*</sup></label>
1660 <input type="text" class="form-control" name="CollectionName" value="@currentCollectionName" required="" placeholder='@Translate("CollectionName", "Name of Collection")'>
1661 </div>
1662
1663 <div class="form-group">
1664 <label for="collectionDescription">@Translate("CollectionDescription", "Description") <sup>*</sup></label>
1665 <textarea type="text" class="form-control" rows="4" cols="50" name="CollectionDescription" required="" placeholder='@Translate("CollectionDescription", "Description")'>@currentCollectionDescription</textarea>
1666 </div>
1667
1668 <div id="resultAdvice"></div>
1669
1670 </form>
1671
1672 </div>
1673
1674
1675 <div class="modal__footer">
1676
1677 <button type="submit" id="save" name="savecollection" class="btn btn--outline">@Translate("Save", "Save")</button>
1678 <button type="button" id="continue" name="modalclose" class="btn btn--outline js-modal-close-target" data-target-id="saveCollection">@Translate("Close", "Close")</button>
1679 <!--button type="button" id="new" name="removecollection" class="btn btn--outline" data-removeproductlist="All" data-dismiss="modal">@Translate("StartNewCollection", "Start a new collection")</button-->
1680
1681 </div>
1682
1683 </div>
1684
1685 </dialog>
1686
1687
1688 @* this snippet is from the case studies item listing *@
1689 @RenderSnippet("bodyScripts")
1690
1691
1692 @SnippetStart("bodyScripts")
1693
1694 @* my collection scripts *@
1695
1696 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/filesaver/filesaver.min.js"></script>
1697 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/product-collection.js?v=1.2&ts=@unixTimestamp"></script>
1698 @* <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/product-collection.js?v=1.2&ts=@jsTimestamp"></script>*@
1699
1700 @* contact form scripts *@
1701 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/contact-us-forms.js"></script>
1702
1703
1704 @* load the embla carousel script *@
1705 <script data-cookieconsent="ignore" type="text/javascript" src="@(designBaseUrl)assets/js/libraries/embla/embla-carousel.umd.js"></script>
1706 <script data-cookieconsent="ignore" type="text/javascript" src="@(designBaseUrl)assets/js/libraries/embla/embla-carousel-fade.umd.js"></script>
1707
1708 @SnippetEnd("bodyScripts")
1709
1710 @* constant contact scripts *@
1711
1712 @*IncludeFile("partials/constant-contact-config.cshtml")*@
1713
1714 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/h24-cc-forms.js?v=0.1" cookieconsent="ignore"></script>
1715 <script type="text/javascript" src="https://koi-3QNTATERZU.marketingautomation.services/client/noform.js?ver=1.24" cookieconsent="ignore"></script>
1716
1717 @* SELMA Plugin for live only *@
1718 @if ( !inDev && selmaOn )
1719 {
1720 <script>
1721 (function () { var s = document.createElement('script'); var h = document.querySelector('head') || document.body; s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; s.async = true; s.onload = function () { acsbJS.init(); }; h.appendChild(s); })();
1722 </script>
1723
1724 }
1725 </body>
1726 </html>
1727
1728
1729