Error executing template "Designs/Web2020/_parsed/ArticlePage.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
at CompiledRazorTemplates.Dynamic.RazorEngine_fa5403dbf51e4e79b5e8ad6cb2413c81.Execute() in D:\dynamicweb.net\Solutions\Skabertrang\fsr.cloud.dynamicweb-cms.com\files\Templates\Designs\Web2020\_parsed\ArticlePage.parsed.cshtml:line 1149
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel>
2 @using System.IO
3 @using System.Web.UI
4 @using Dynamicweb.Environment
5 @using System
6 @using System.Text.RegularExpressions;
7
8 @functions{
9 string Rot13(string value) {
10 var chars = value.ToCharArray();
11
12 for (var i = 0; i < chars.Length; i++) {
13 var number = (int)chars[i];
14
15 if (number >= 'a' && number <= 'z') {
16 if (number > 'm') {
17 number -= 13;
18 } else {
19 number += 13;
20 }
21 } else if (number >= 'A' && number <= 'Z') {
22 if (number > 'M') {
23 number -= 13;
24 } else {
25 number += 13;
26 }
27 }
28 chars[i] = (char)number;
29 }
30 return new string(chars);
31 }
32 }
33
34 @helper Rot13_Email(string email, string text = "") {
35 var tpl = new char[] {
36 '<', 'a', ' ', 'h', 'r', 'e', 'f', '=', '"', 'm', 'a', 'i', 'l', 't', 'o', ':', '#', '1', '"', ' ', 'r', 'e', 'l', '=', '"', 'n', 'o', 'f', 'o', 'l', 'l', 'o', 'w', '"', '>', '#', '2', '<', '/', 'a', '>'
37 };
38 <span class="rot13Email">@Rot13(new string(tpl).Replace("#1", email).Replace("#2", string.IsNullOrWhiteSpace(text) ? email : text).Replace("[a]", "@"))</span>
39 }
40
41 @helper renderStar() {
42 <svg class="star" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 131 125" aria-label="stjerne ikon" alt="Stjerne ikon">
43 <g data-name="Layer 2">
44 <g data-name="Layer 1">
45 <path data-name="Fill 1" class="cls-1 fsr-star" d="M131,52.3c0-8.93-6.89-16.16-13.36-16.16-11.64,0-35.77,18.7-47.84,25.5C72.4,48.47,80.15,28.48,80.15,14c0-8.51-5.61-14-14.65-14C58.17,0,50.85,5.1,50.85,14c0,13.19,7.75,34.44,10.34,47.61-12-6.8-35.33-25.51-47.4-25.51C6,36.13,0,42.94,0,52.3,0,70.58,40.5,67.17,59,69.72,46.53,80.78,19,97.79,19,110.12c0,7.22,8.63,14.88,16,14.88,14.65,0,23.7-35.72,30.6-50.6C72.4,88.43,81,125,96.1,125c7.76,0,15.94-7.66,15.94-14.88C112,96.93,84,80.36,72.4,69.3c18.09-2.55,58.6,1.28,58.6-17"></path>
46 </g>
47 </g>
48 </svg>
49 }
50
51 @helper RenderBreadcrumElement(string name, string path, int counter) {
52 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
53 <a itemprop="item" href="@path" title="@name">
54 <span itemprop="name">
55 @name
56 </span>
57 <meta itemprop="position" content="@counter" />
58 </a>
59 </li>
60 }
61 @Title("Standard Page")
62 @Description("Template for a standard page")
63 @{
64 <!-- used in _Nav.cshtml -->
65 string contrastBodyClass = "";
66 Dynamicweb.Environment.Cookie cookieContrastDarkSet = CookieManager.GetCookie("contrast-dark-set");
67 string ariaChecked = "false";
68 string ariaLabel = "aktiver mørk kontrast";
69 string changeContrastChecked = "";
70
71
72 if (cookieContrastDarkSet != null && cookieContrastDarkSet.Value == "dark-contrast") {
73 ariaChecked = "true";
74 ariaLabel = "deaktiver mørk kontrast";
75 changeContrastChecked = "checked";
76 contrastBodyClass = "dark-contrast";
77 } else {
78 ariaChecked = "false";
79 ariaLabel = "aktiver mørk kontrast";
80 changeContrastChecked = "";
81 }
82 <!-- used in _Nav.cshtml -->
83
84 string companyName = Model.Area.Item.GetString("CompanyName");
85 string companyAddress = Model.Area.Item.GetString("CompanyAddress");
86 string companyZipAndCity = Model.Area.Item.GetString("Company_Postal") + " " + Model.Area.Item.GetString("CompanyCity");
87 string companyMail = Model.Area.Item.GetString("CompanyEmail");
88 string companyPhone = Model.Area.Item.GetString("CompanyPhone");
89 string companyPhoneClean = companyPhone.Replace(" ", "");
90 string companyCVR = Model.Area.Item.GetString("CompanyCVR");
91
92 string companyLinkedin = Model.Area.Item.GetString("SoMeLinkedin");
93 string companyFacebook = Model.Area.Item.GetString("SoMeFacebook");
94 string companyTwitter = Model.Area.Item.GetString("SoMeTwitter");
95 string companyInstagram = Model.Area.Item.GetString("SoMeInstagram");
96 string companyYouTube = Model.Area.Item.GetString("SoMeYouTube");
97
98 string openGraphDomain = "https://" + Dynamicweb.Context.Current?.Request?.Url?.Host;
99 string openGraphUrl = Model.Item?.GetItem("OpenGraph")?.GetString("Url");
100 string openGraphTitle = !string.IsNullOrWhiteSpace(Model.Item?.GetItem("OpenGraph")?.GetString("Title")) ? Model.Item?.GetItem("OpenGraph").GetString("Title") : Model.Name;
101 string openGraphType = !string.IsNullOrWhiteSpace(Model.Item?.GetItem("OpenGraph")?.GetString("Type")) ? Model.Item?.GetItem("OpenGraph").GetString("Type") : "website";
102 string openGraphDescription = !string.IsNullOrWhiteSpace(Model.Item?.GetItem("OpenGraph")?.GetString("Description")) ? Model.Item?.GetString("Description") : Model.Description;
103 var openGraphImage = Model.Item?.GetItem("OpenGraph")?.GetFile("Image");
104 int openGraphImageWidth = (Model.Item?.GetItem("OpenGraph")?.GetInt32("ImageWidth") ?? 0) >= 200 ? Model.Item.GetItem("OpenGraph").GetInt32("ImageWidth") : 200;
105 int openGraphImageHeight = (Model.Item?.GetItem("OpenGraph")?.GetInt32("ImageHeight") ?? 0) >= 200 ? Model.Item.GetItem("OpenGraph").GetInt32("ImageHeight") : 200;
106 string facebookPageLink = Model.Area.Item.GetString("SoMeFacebook");
107 string facebookAppId = Model.Area.Item.GetString("SoMeFacebookAppID");
108
109 string designBasePath = Pageview.Layout.File.Location;
110 string assetsBasePath = designBasePath + "Assets/";
111 string bodyClass = Model.Area.FirstActivePage.ID == Model.ID ? "index" : "page";
112
113 // SITE LINKS
114 int ServiceMenuID = Model.Area.Item.GetInt32("ServiceMenuFolder_ID");
115
116 string placeholderSearch = Translate("Søg");
117
118 bool showGlobalWarning = false;
119 string globalMessage = Model.Area.Item.GetString("WarningText");
120 string globalHeading = Model.Area.Item.GetString("WarningHeading");
121 string messageId = Regex.Replace(globalHeading.ToLower().Replace(" ", ""), @"[^a-z0-9]", "");
122 if (string.IsNullOrEmpty(messageId)) {
123 messageId = "stdmessage";
124 }
125
126 if (Model.Area.Item != null
127 && Model.Area.Item.GetDateTime("WarningStartTime") != DateTime.MinValue && Model.Area.Item.GetDateTime("WarningStartTime") <= DateTime.Now
128 && Model.Area.Item.GetDateTime("WarningEndTime") != DateTime.MinValue && Model.Area.Item.GetDateTime("WarningEndTime") > DateTime.Now
129 && (Dynamicweb.Context.Current.Request.Cookies[messageId] == null || Dynamicweb.Context.Current.Request.Cookies[messageId].Value != "hidden")) {
130 showGlobalWarning = true;
131 }
132 if (Dynamicweb.Context.Current.Request.QueryString.Get("showwarning") == "true") {
133 showGlobalWarning = true;
134 }
135
136
137 // STICKY POPUP --------------------------------------------------------------------------------------------------------------
138 bool stickyPopupActive = Model.Area.Item.GetBoolean("StickyPopupActive");
139
140 string stickyPopupHeader = Model.Area.Item.GetString("StickyPopupHeader");
141 string stickyPopupText = Model.Area.Item.GetString("StickyPopupText");
142
143 // StickyPopupImage
144 var stickyPopupImageFile = Model.Area.Item.GetFile("StickyPopupImage");
145 string stickyPopupImageSrc = "";
146
147 if (stickyPopupImageFile != null) {
148 if (stickyPopupImageFile.Extension == ".gif") {
149 stickyPopupImageSrc = stickyPopupImageFile.PathUrlEncoded;
150 } else {
151 stickyPopupImageSrc = "/Admin/Public/GetImage.ashx?Image="
152 + stickyPopupImageFile.PathUrlEncoded
153 + "&Width=1110&Crop=7&format=webp&Quality=85";
154 if (stickyPopupImageFile.HasFocalPoint()) {
155 stickyPopupImageSrc += "&" + stickyPopupImageFile.GetFocalPointParameters();
156 }
157 }
158 }
159
160 // StickyPopupButtonIcon
161 var stickyPopupButtonIconFile = Model.Area.Item.GetFile("StickyPopupButtonIcon");
162 string stickyPopupButtonIconSrc = "";
163
164 if (stickyPopupButtonIconFile != null) {
165 if (stickyPopupButtonIconFile.Extension == ".gif") {
166 stickyPopupButtonIconSrc = stickyPopupButtonIconFile.PathUrlEncoded;
167 } else {
168 stickyPopupButtonIconSrc = "/Admin/Public/GetImage.ashx?Image="
169 + stickyPopupButtonIconFile.PathUrlEncoded
170 + "&Width=50&Height=50&Crop=5&format=webp&Quality=85"; // du kan ændre størrelsen her
171 if (stickyPopupButtonIconFile.HasFocalPoint()) {
172 stickyPopupButtonIconSrc += "&" + stickyPopupButtonIconFile.GetFocalPointParameters();
173 }
174 }
175 }
176
177 string stickyPopupLink = Model.Area.Item.GetString("StickyPopupLink");
178 string stickyPopupLinkText = Model.Area.Item.GetString("StickyPopupLinkText");
179
180 // /STICKY POPUP --------------------------------------------------------------------------------------------------------------
181
182 Dictionary<string, List<int>> favIcons = new Dictionary<string, List<int>>() {
183 {"apple-touch-icon", new List<int>(){57,60,72,76,114,120,144,152,180 } },
184 {"icon", new List<int>(){192,32,96,16 } }
185 };
186
187 string userAgent = "";
188 string userDevice = "Unknown"; // Default fallback
189
190 // Check if context and request are available
191 if (Dynamicweb.Context.Current?.Request != null) {
192 userAgent += Dynamicweb.Context.Current.Request.UserAgent;
193 if (!string.IsNullOrEmpty(userAgent)) {
194 var deviceInfo = Dynamicweb.Frontend.Devices.DeviceInfo.ParseFromUserAgentString(userAgent.ToLower());
195 if (deviceInfo?.DeviceType != null) {
196 userDevice = deviceInfo.DeviceType.ToString();
197 }
198 }
199 }
200 bool isIpad = userAgent.IndexOf("ipad") > -1 || userAgent.IndexOf("tablet") > -1;
201 if (isIpad) {
202 bodyClass += " ipad-class";
203 }
204
205 string titleSearch = Translate("Søg");
206 string mobileTabIndex = "0";
207 if (!string.IsNullOrWhiteSpace(userDevice) && userDevice == "Desktop") {
208 mobileTabIndex = "-1";
209 }
210
211 string selectedTheme = "";
212 if (Model.Item.GetBoolean("AdminSettings")) {
213 selectedTheme = "" + Model.Item.GetList("Theme").SelectedValue;
214 }
215 //linje 170
216
217 }
218
219 @helper iconLink(int size, string rel, string basePath)
220 {
221 string iconfileurl = basePath + "logo.png";
222 string iconLink = "/Admin/Public/GetImage.ashx?Image=" + iconfileurl + "&Format=png&Width=" + size + "&Height=" + size + "&Crop=6&DoNotUpscale=1";
223 <link rel="@rel" type="image/png" sizes="@(size)x@(size)" href="@iconLink">
224 }
225 @helper sns(string introtext)
226 {
227 <div class="text-right w-100">
228 <p>
229 <small><strong class="align-bottom">@Translate("Del til"):</strong></small>
230
231 @{
232 if (!string.IsNullOrWhiteSpace(introtext)) {
233 introtext = Dynamicweb.Core.Encoders.HtmlEncoder.UrlEncode(introtext, System.Text.Encoding.UTF8);
234 }
235 string shareTitle = Model.Title;
236 if (Model.Item != null && !string.IsNullOrWhiteSpace(Model.Item.GetString("Title"))) {
237 shareTitle = Model.Item.GetString("Title");
238 shareTitle = Dynamicweb.Core.Encoders.HtmlEncoder.UrlEncode(shareTitle, System.Text.Encoding.UTF8);
239 }
240 string shareUrl = "https://" + Dynamicweb.Context.Current.Request.Url.Host + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(Pageview.ID);
241
242 string fbShareUrl = "https://facebook.com/sharer/sharer.php?u=" + shareUrl;
243 string twitterShareUrl = "https://twitter.com/intent/tweet/?text=" + shareTitle + "&url=" + shareUrl;
244 string liShareUrl = "https://www.linkedin.com/shareArticle?mini=true&url=" + shareUrl + "&title=" + shareTitle + "&summary=" + introtext + "&source=" + "https://" + Dynamicweb.Context.Current.Request.Url.Host;
245 }
246 <a class="resp-sharing-button__link" href="@liShareUrl" target="_blank" rel="noopener" aria-label="@Translate("Del på LinkedIn")">
247 <i class="fab fa-linkedin-in"></i>
248 </a>
249
250 <a class="resp-sharing-button__link" href="@twitterShareUrl" target="_blank" rel="noopener" aria-label="@Translate("Del på Twitter")">
251 <i class="fab fa-twitter"></i>
252 </a>
253
254 <a class="resp-sharing-button__link" href="@fbShareUrl" target="_blank" rel="noopener" aria-label="@Translate("Del på Facebook")">
255 <i class="fab fa-facebook-f"></i>
256 </a>
257
258 <button type="button" class="print-button" aria-label="print"><i class="fal fa-print" aria-hidden="true"></i></button>
259 </p>
260 </div>
261 }
262
263 <!DOCTYPE html>
264 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName">
265 <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# @openGraphType: http://ogp.me/ns/@(openGraphType)#">
266 <meta charset="utf-8">
267 <meta http-equiv="X-UA-Compatible" content="IE=edge">
268 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
269 <meta name="description" content="@Model.Description" />
270 <meta name="keywords" content="@Model.Keywords" />
271 <meta name="format-detection" content="telephone=no">
272 @Model.MetaTags.Replace("?GroupID=\">", "\">")
273 <title>@Model.Name</title>
274 @if (Model.ID == 753 && Model.MetaTags.IndexOf("canon") == -1) {
275 string canon = "https://" + Pageview.Area.DomainLock + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(Model.ID);
276 <link rel="canonical" href="@canon">
277 }
278 <!-- OpenGraph -->
279 <meta property="og:url" content="@Pageview.SearchFriendlyUrl" />
280 <meta property="og:type" content="@openGraphType" />
281 @if (!string.IsNullOrWhiteSpace(facebookPageLink)) {
282 <meta property="article:publisher" content="@facebookPageLink" />
283 }
284 @if (!string.IsNullOrWhiteSpace(facebookAppId)) {
285 <meta property="fb:app_id" content="@facebookAppId" />
286 }
287 <meta property="og:title" content="@openGraphTitle" />
288 @if (!string.IsNullOrWhiteSpace(openGraphDescription)) {
289 <meta property="og:description" content="@openGraphDescription" />
290 }
291 @if (openGraphImage != null) {
292 string openGraphImagePath = "/Admin/Public/GetImage.ashx?Image=" + openGraphImage.PathUrlEncoded + "&Width=" + openGraphImageWidth + "&Height=" + openGraphImageHeight + "&Crop=7&format=jpeg&Quality=85";
293 if (openGraphImage.HasFocalPoint()) {
294 openGraphImagePath += "&" + openGraphImage.GetFocalPointParameters();
295 }
296
297 Uri uri = new Uri(openGraphDomain + openGraphImage);
298 string listImageUrl = uri.AbsoluteUri;
299 <meta name="image" property="og:image" content="@openGraphImagePath" />
300 <meta property="og:image:width" content="@openGraphImageWidth" />
301 <meta property="og:image:height" content="@openGraphImageHeight" />
302 }
303 <meta property="og:site_name" content='@Model.Area.Name' />
304 @if (openGraphType == "article") {
305 <meta property="article:published_time" content="@Model.CreatedDate.ToString("yyyy-MM-dd:HH:mm:ss")" />
306 <meta property="og:updated_time" content="@Model.UpdatedDate.ToString("yyyy-MM-dd:HH:mm:ss")" />
307 }
308 @*@resourceHtml*@
309
310 <!--Fav Icon-->
311 @{
312 string faviconpath = "/Files/Images/Graphics/Fav/";
313 }
314 @foreach (var i in favIcons) {
315 foreach (int t in i.Value) {
316 @iconLink(t, i.Key, faviconpath)
317 }
318 }
319
320 @*<link rel="manifest" href="@(faviconpath)site.webmanifest">*@
321 <link rel="mask-icon" href="@(faviconpath)safari-pinned-tab.svg" color="#5a976e">
322 <link rel="shortcut icon" href="@(faviconpath)favicon.ico">
323 <meta name="msapplication-TileColor" content="#c4007a">
324 <meta name="msapplication-TileImage" content="/Admin/Public/GetImage.ashx?Image=@(faviconpath)logo.png&Format=png&Width=144&Height=144&Crop=6&DoNotUpscale=1">
325 <meta name="msapplication-config" content="@(faviconpath)browserconfig.xml">
326 <meta name="theme-color" content="#ffffff">
327 <meta name="google-site-verification" content="B0aoP7mxm154yGmoQSpHTlONi53vmCQ7--xruDKsVMQ" />
328 <meta name="facebook-domain-verification" content="mwvue0w7rmti91ocv9mhw7msum09si" />
329
330
331
332
333 <!-- CSS & JS-->
334
335 <link href="https://fonts.googleapis.com/css?family=Merriweather:400,400i,700|Montserrat:300,400,500,700,800&display=swap" rel="stylesheet">
336 <link href="@(assetsBasePath)twitter-bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css" media="screen,print" />
337
338 <link href="@(assetsBasePath)font-awesome/css/all.min.css" rel="stylesheet" type="text/css" media="screen,print" />
339 <link href="@(assetsBasePath)Swiper/css/swiper.min.css" rel="stylesheet" type="text/css" media="screen,print" />
340 <link href="@(designBasePath)css/style.min.css?v=20250619T1622" rel="stylesheet" type="text/css" media="screen,print" />
341 <link href="@(assetsBasePath)plyr/plyr.min.css" rel="stylesheet" type="text/css" media="screen,print" />
342
343 @* COOKIEBOT *@
344 @if (!System.Web.HttpContext.Current.Request.Url.AbsoluteUri.StartsWith("https://stagingweb.fsr.dk")) {
345 <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="e16a8147-b398-46f2-8a08-b11ccb532ffd" data-blockingmode="auto" type="text/javascript"></script>
346 }
347 @* COOKIEBOT *@
348
349
350 @*@Model.Area.Item.GetString("ScriptsHead")*@
351 @*@if (Pageview.Page.NavigationTag == "Counseling") {
352 <script src="https://code.createjs.com/1.0.0/createjs.min.js"></script>
353 }*@
354 @{
355
356 <script src="@(assetsBasePath + "jquery/jquery.min.js")"></script>
357 <script src="@(assetsBasePath + "popper.js/umd/popper.min.js")"></script>
358 <script src="@(assetsBasePath + "twitter-bootstrap/js/bootstrap.min.js")"></script>
359 <script async src="@(assetsBasePath + "font-awesome/js/all.min.js")"></script>
360 <script defer src="@(assetsBasePath + "jquery-validate/jquery.validate.min.js")"></script>
361 <script defer src="@(assetsBasePath + "jquery-validate/localization/messages_da.min.js")"></script>
362 <script defer src="@(assetsBasePath + "typeahead/typeahead.bundle.min.js")"></script>
363 <script defer src="@(assetsBasePath + "Swiper/js/swiper.min.js")"></script>
364 <script src="@(assetsBasePath + "handlebars/dist/handlebars.min.js")"></script>
365 <script defer src="@(designBasePath + "js/script.js?v=20260410T1150")"></script>
366 <script defer src="@(designBasePath + "js/zeynep.js")"></script>
367 if (!System.Web.HttpContext.Current.Request.Url.AbsoluteUri.StartsWith("https://stagingweb.fsr.dk")) {
368 <!-- Google Tag Manager -->
369 <script>
370 (function (w, d, s, l, i) {
371 w[l] = w[l] || []; w[l].push({
372 'gtm.start':
373 new Date().getTime(), event: 'gtm.js'
374 }); var f = d.getElementsByTagName(s)[0],
375 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
376 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
377 })(window, document, 'script', 'dataLayer', 'GTM-WNQG263');</script>
378 <!-- End Google Tag Manager -->
379
380 <!-- Google tag (gtag.js) -->
381 <script async src="https://www.googletagmanager.com/gtag/js?id=AW-967315187"></script>
382 <script>
383 window.dataLayer = window.dataLayer || [];
384 function gtag() { dataLayer.push(arguments); }
385 gtag('js', new Date());
386
387 gtag('config', 'AW-967315187');
388 </script>
389 <!-- End Google tag (gtag.js) -->
390
391 }
392 }
393 <style>
394 .login-required-box.tb {
395 min-height: 380px;
396 }
397
398 @@media screen and (max-width: 1199px) {
399 .login-required-box.tb {
400 min-height: 430px;
401 }
402 }
403 </style>
404 <!-- Karla API script -->
405 <script id="karlastatic-script"
406 src="https://static.getkarla.ai/static/js/main.js?key=T6qWCFNKFDfwFDtKswXaajXelGbHjrTf4kJ-ST0CfaE">
407 </script>
408 </head>
409
410 <body class="@bodyClass @contrastBodyClass @selectedTheme">
411
412 <!-- Google Tag Manager (noscript) -->
413 <noscript>
414 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WNQG263"
415 height="0" width="0" style="display:none;visibility:hidden"></iframe>
416 </noscript>
417 <!-- End Google Tag Manager (noscript) -->
418
419
420 @Model.Area.Item.GetString("ScriptsBodyBegin")
421 <a id="skip" href="/Default.aspx?ID=@(Model.ID)#main">@Translate("Spring hovednavigationen over")</a>
422 @if (showGlobalWarning) {
423 <aside id="global-message" class="global-warning-area layout-yellow p-3" data-message-id="@messageId">
424 <div class="container text-center">
425 <div class="row">
426 <div class="col-auto ml-auto">
427 <div class="global-warning-close text-right d-inline-block" aria-label="@Translate("Luk advarselsbanner")">
428 <svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="times-circle" class="svg-inline--fa fa-times-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 464c-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216 0 118.7-96.1 216-216 216zm94.8-285.3L281.5 256l69.3 69.3c4.7 4.7 4.7 12.3 0 17l-8.5 8.5c-4.7 4.7-12.3 4.7-17 0L256 281.5l-69.3 69.3c-4.7 4.7-12.3 4.7-17 0l-8.5-8.5c-4.7-4.7-4.7-12.3 0-17l69.3-69.3-69.3-69.3c-4.7-4.7-4.7-12.3 0-17l8.5-8.5c4.7-4.7 12.3-4.7 17 0l69.3 69.3 69.3-69.3c4.7-4.7 12.3-4.7 17 0l8.5 8.5c4.6 4.7 4.6 12.3 0 17z"></path></svg>
429 </div>
430 </div>
431 </div>
432
433 <div class="row">
434 <div class="col-12">
435 @if (!string.IsNullOrWhiteSpace(globalHeading)) {
436 <h3>@globalHeading</h3>
437 }
438 @if (!string.IsNullOrWhiteSpace(globalMessage)) {
439 @globalMessage
440 }
441 </div>
442 </div>
443
444 </div>
445 </aside>
446 }
447
448 @*classes are flat, single, multiple, semantic - https://css-tricks.com/reading-position-indicator/ *@
449 <progress value="0" id="progressBar" class="flat">
450 <div class="progress-container">
451 <span class="progress-bar"></span>
452 </div>
453 </progress>
454
455 @*<div id="mobile-menu-overlay"></div>*@
456
457 @* TOOGLE MOBILE NAV *@
458 <div class="container">
459 <div class="floatcontainer">
460 <div class="inner">
461 <button type="button" class="btn-open" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
462 <div>
463 <div class="nav-icon">
464 <div></div>
465 </div>
466 </div>
467 </button>
468 </div>
469 </div>
470 </div>
471
472 <div class="zeynep-overlay"></div>
473
474 <div class="zeynep" style="transform: translateX(-295px);">
475
476 <div class="golden-buzz puha">
477 <div class="login-container">
478
479 @if (Pageview.User != null) {
480 var mitfsrpage = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "mitfsr");
481 @*<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">*@
482 @*<a href="/Default.aspx?ID=@mitfsrpage.ID" class="login-btn" title="@Translate("mit fsr")" aria-label="@Translate("mit fsr")"><i class="fal fa-lock-open-alt"></i> @Translate("Mit FSR")</a>*@
483 <a class="nav-link dropdown-toggle navbarDropdown" href="#" id="navbarDropdown" tabindex="@mobileTabIndex" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
484 <i class="fal fa-lock-open-alt"></i> @Translate("Mit FSR")
485 </a>
486
487 <div class="login-box dropdown-menu logged-in" aria-labelledby="navbarDropdown">
488 <ul class="line-list white-hover">
489 <li>
490 <a href="/mit-fsr" title="@Translate("Mit FSR")" aria-label="@Translate("Gå til Mit FSR")">@Translate("Gå til Mit FSR")</a>
491 </li>
492 @*<li><a href="/Admin/Public/ExtranetLogoff.aspx" title="@Translate("Log ud")" aria-label="@Translate("Log ud")">@Translate("Log ud")</a></li>*@
493 </ul>
494
495 <hr />
496
497 <a href="/Files/Handlers/B2CLoginHandler.ashx?signout=1" title="@Translate("Log ud")" tabindex="@mobileTabIndex" aria-label="@Translate("Log ud")" class="btn btn-secondary-naked btn-sm btn-block">@Translate("Log ud")</a>
498
499 </div>
500 } else {
501 <a class="nav-link dropdown-toggle navbarDropdown" href="#" tabindex="@mobileTabIndex" id="zeynep-navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
502 <i class="fal fa-lock-alt"></i> @Translate("Mit FSR")
503 </a>
504
505 @* -- LOGIN -- *@
506 <div class="login-box dropdown-menu" aria-labelledby="zeynep-navbarDropdown">
507 <form method="get" action="/Files/Handlers/B2CLoginHandler.ashx">
508 <input type="hidden" name="auth" value="1">
509
510 <div class="form-group">
511 <button type="submit" class="btn btn-secondary btn-block">@(Translate("Log ind"))</button>
512 </div>
513 <ul class="line-list white-hover">
514 <li>
515 <a href="/medlem" title="@Translate("Bliv medlem")" aria-label="@Translate("Bliv medlem")">@Translate("Bliv medlem")</a>
516 </li>
517 </ul>
518 </form>
519 </div>
520 }
521 </div>
522 <div id="zeynep-search-top" class="search-container">
523 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown1" tabindex="@mobileTabIndex" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
524 <i class="fal fa-search"></i> @Translate("Søg")
525 </a>
526 <div id="mobile-search-container" class="login-box logged-in d-none" aria-labelledby="navbarDropdown1">
527
528 @*<form action="/default.aspx"><input type="hidden" name="ID" value="226" /><input class="typeahead" name="search" type="text" placeholder="@titleSearch "><input type="submit" class="search-submit" tabindex="-1" /></form>*@
529
530 <form action="/Default.aspx" data-toptypeahead="1" data-notfound="@(Translate("Vi fandt desværre ikke noget, som matcher din søgning"))">
531
532 @*<button id="btn-search" type="button" class="btn search search-activated"></button>*@
533
534 <div class="input-container">
535 <input type="hidden" name="ID" value="2908" />
536 <input class="typeahead" style="display:none;" name="search" type="text" placeholder="@placeholderSearch">
537 <input type="submit" class="search-submit" tabindex="-1" />
538 </div>
539
540 </form>
541 </div>
542
543 </div>
544
545 </div>
546 <div class="main-nav d-lg-none" tabindex="@mobileTabIndex" aria-hidden="true">
547
548 @RenderNavigation(new {
549 startlevel = 1,
550 endlevel = 99,
551 template = "TopBarNav-Mobile.xslt",
552 expandmode = "All",
553 parentid = 0,
554 areaid = Pageview.AreaID,
555 includemode = "All"
556 })
557 </div>
558 @*<ul><li><a href="#">Home</a></li><li class="has-submenu"><a href="#" data-submenu="stores">Stores</a><div id="stores" class="submenu"><div class="submenu-header" data-submenu-close="stores"><a href="#">Main Menu</a></div><label>Stores</label><ul><li><a href="#">Istanbul</a></li><li><a href="#">Mardin</a></li><li><a href="#">Amed</a></li></ul></div></li><li class="has-submenu"><a href="#" data-submenu="categories">Categories</a><div id="categories" class="submenu"><div class="submenu-header" data-submenu-close="categories"><a href="#">Main Menu</a></div><label>Categories</label><ul><li class="has-submenu"><a href="#" data-submenu="electronics">Electronics</a><div id="electronics" class="submenu"><div class="submenu-header" data-submenu-close="electronics"><a href="#">Categories</a></div><label>Electronics</label><ul><li><a href="#">Camera & Photo</a></li><li><a href="#">Home Audio</a></li><li><a href="#">Tv & Video</a></li><li><a href="#">Computers & Accessories</a></li><li><a href="#">Car & Vehicle Electronics</a></li><li><a href="#">Portable Audio & Video</a></li><li><a href="#">Headphones</a></li><li><a href="#">Accessories & Supplies</a></li><li><a href="#">Video Projectors</a></li><li><a href="#">Office Electronics</a></li><li><a href="#">Wearable Technology</a></li><li><a href="#">Service Plans</a></li></ul></div></li><li><a href="#">Books</a></li><li><a href="#">Video Games</a></li><li><a href="#">Computers</a></li></ul></div></li><li><a href="#">Contact</a></li><li><a href="#">About</a></li></ul>*@
559 <div class="service-nav d-lg-none" tabindex="@mobileTabIndex" aria-hidden="true">
560 @RenderNavigation(new {
561 startlevel = 1,
562 endlevel = 99,
563 template = "TopBarNav-Mobile.xslt",
564 expandmode = "All",
565 parentid = ServiceMenuID,
566 areaid = Pageview.AreaID,
567 includemode = "All",
568
569 //_ShowCart = 1,
570 //_CartCount = Dynamicweb.Ecommerce.Common.Context.Cart?.OrderLines?.Count ?? 0,
571 //_CartPageId = GetPageIdByNavigationTag("kurv"),
572 //_CartPageName = Translate("Indkøbskurven")
573 })
574 </div>
575 </div>
576
577 <div class="zeynep-overlay zeynep-overlay-under"></div>
578
579
580 @* /MOBIL NAV *@
581
582
583 @using Dynamicweb.Rendering
584 @using Dynamicweb.Frontend
585 @using System.Text.RegularExpressions
586 @using FSR.Articles
587 @inherits ViewModelTemplate<PageViewModel>
588
589 @{
590 string itemSection = Model?.Item?.GetString("Section") ?? string.Empty;
591
592 string sectionDk = FSR.Articles.ArticleHelper.GetSectionInDanish(itemSection);
593 string sectionEng = FSR.Articles.ArticleHelper.GetSectionInEnglish(itemSection);
594
595 bool showReadTime = Model?.Item?.GetItem("ReadTime")?.GetBoolean("ShowReadTime") ?? default;
596
597 var parentPage = !string.IsNullOrEmpty(sectionEng) ? Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, sectionEng) : null;
598
599 string lastestNewsFilterFeedBase = "";
600
601 if (Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "latestnewsfeed") != null) {
602 lastestNewsFilterFeedBase = "/Default.aspx?ID=" + Dynamicweb.Content.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "latestnewsfeed").ID;
603 }
604
605 string latestNewsFilterFeed = lastestNewsFilterFeedBase + "&pagesonly=true&itemtype=ArticlePage§ions=" + sectionDk;
606
607 if (sectionDk == "Signatur") {
608 latestNewsFilterFeed = lastestNewsFilterFeedBase + "&pagesonly=true&itemtype=ArticlePage§ions=" + itemSection;
609 }
610
611 // Setting access rights
612 var accessFieldList = Model?.Item?.GetList("Accessfield");
613 bool hasAccess = accessFieldList?.SelectedValues?.Contains("Public") == true || ArticleHelper.DoesCurrentUserHaveAccess(Pageview.User, sectionEng);
614
615 string title = !string.IsNullOrWhiteSpace(Model?.Item?.GetString("Header")) ? Model.Item.GetString("Header") : Model.Name;
616
617 List<string> subjectAndTopics = new List<string>();
618
619 if (Model?.Item?.GetValue("Subject" + sectionEng) != null) {
620 subjectAndTopics.Add("" + Model.Item.GetValue("Subject" + sectionEng));
621
622 for (int i = 1; i <= 100; i++) {
623 string topicSystemName = "Topics" + sectionEng + i;
624
625 if (Model.Item.GetValue(topicSystemName) == null) {
626 break;
627 } else {
628 foreach (var s in Model.Item.GetList(topicSystemName).SelectedOptions) {
629 subjectAndTopics.Add(s.Value.Replace("'", " "));
630 }
631 }
632 }
633 }
634
635 Dynamicweb.Context.Current.Items["returnAfterLogin"] = true;
636
637 string mainClass = Model?.ItemType?.ToLower() + " " + sectionEng;
638
639 bool showRightColumn = hasAccess && (Model?.Item?.GetBoolean("SideNavVisible") == true || Model?.Item?.GetUsers("Contact")?.Any() == true);
640
641 if (showRightColumn) {
642 mainClass += " columns-2";
643 }
644
645 // DEVICE CHECK
646 //string userAgent = Dynamicweb.Context.Current.Request.UserAgent.ToLower();
647 //string userDevice = Dynamicweb.Frontend.Devices.DeviceInfo.ParseFromUserAgentString(userAgent).DeviceType.ToString();
648 string referer = "" + System.Web.HttpContext.Current.Request.ServerVariables["HTTP_REFERER"];
649 bool useReferer = referer.StartsWith("https://www.fsr.dk");
650
651 int refererPageId = 0;
652 if (useReferer && System.Web.HttpContext.Current.Session["refPID"] != null) {
653 int.TryParse("" + System.Web.HttpContext.Current.Session["refPID"], out refererPageId);
654 if (refererPageId != 0) {
655 var refPage = Dynamicweb.Content.Services.Pages.GetPage(refererPageId);
656 if (refPage != null && (refPage.ItemType == "PageTechnical" || refPage.ItemType == "SubjectListPage" ||refPage.ItemType == "SMVPortal")) {
657 parentPage = refPage;
658 }
659 }
660 //System.Web.HttpContext.Current.Session["refPID"] = 0;
661 }
662
663 }
664 <header class="narrow tall">
665 <div class="container">
666 <div class="row">
667 <div class="col-12 bg-container">
668 @using Dynamicweb.Rendering
669 @using Dynamicweb.Frontend
670 @inherits ViewModelTemplate<PageViewModel>
671
672 @{
673 int showCart = 1;
674 int cartCount = Dynamicweb.Ecommerce.Common.Context.Cart?.OrderLines?.Count ?? 0;
675 int cartPageId = GetPageIdByNavigationTag("kurv");
676 string cartPageName = Translate("Indkøbskurven");
677 }
678
679 @*// LLA HERE - https://codepen.io/bsngr/pen/frDqh*@
680 <div class="row justify-content-end">
681
682 @if (userDevice == "Desktop") { }
683 <div class="col d-none d-lg-block">
684 <nav class="service-nav d-flex justify-content-end align-items-center">
685 <div class="justify-content-end">
686 <label class="switch" title="aktiver kontrast">
687
688 <input id="change-contrast" type="checkbox" tabindex="0" @changeContrastChecked aria-checked="@ariaChecked" aria-label="@ariaLabel" data-active-label="aktiver mørk kontrast" data-inactive-label="deaktiver mørk kontrast">
689 <span class="slider round d-flex justify-content-between">
690 <svg id="contrast-darksun-svg" xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="M10 14q-1.667 0-2.833-1.167Q6 11.667 6 10q0-1.667 1.167-2.833Q8.333 6 10 6q1.667 0 2.833 1.167Q14 8.333 14 10q0 1.667-1.167 2.833Q11.667 14 10 14Zm-8.25-3.25q-.312 0-.531-.219Q1 10.312 1 10q0-.312.219-.531.219-.219.531-.219h2q.312 0 .531.219.219.219.219.531 0 .312-.219.531-.219.219-.531.219Zm14.5 0q-.312 0-.531-.219-.219-.219-.219-.531 0-.312.219-.531.219-.219.531-.219h2q.312 0 .531.219Q19 9.688 19 10q0 .312-.219.531-.219.219-.531.219ZM10 4.5q-.312 0-.531-.219-.219-.219-.219-.531v-2q0-.312.219-.531Q9.688 1 10 1q.312 0 .531.219.219.219.219.531v2q0 .312-.219.531-.219.219-.531.219ZM10 19q-.312 0-.531-.219-.219-.219-.219-.531v-2q0-.312.219-.531.219-.219.531-.219.312 0 .531.219.219.219.219.531v2q0 .312-.219.531Q10.312 19 10 19ZM5.042 6.104 4 5.042q-.229-.209-.229-.511 0-.302.229-.531.208-.229.521-.229.312 0 .521.229l1.062 1.042q.229.229.229.531 0 .302-.229.531-.208.229-.521.229-.312 0-.541-.229ZM14.958 16l-1.062-1.042q-.229-.229-.229-.531 0-.302.229-.531.208-.229.521-.229.312 0 .541.229L16 14.958q.229.209.229.511 0 .302-.229.531-.229.229-.521.229-.291 0-.521-.229Zm-1.062-9.896q-.229-.208-.229-.521 0-.312.229-.541L14.958 4q.23-.229.521-.219.292.011.521.219.229.229.229.521 0 .291-.229.521l-1.042 1.062q-.229.229-.531.229-.302 0-.531-.229ZM4 16q-.229-.208-.229-.521 0-.312.229-.521l1.042-1.062q.229-.208.531-.208.302 0 .531.208.229.229.219.531-.011.302-.219.531L5.042 16q-.209.229-.511.229-.302 0-.531-.229Z" /></svg>
691 <svg id="contrast-sun-svg" xmlns="http://www.w3.org/2000/svg" height="20" width="20"><path d="M10 12.5q1.042 0 1.771-.729.729-.729.729-1.771 0-1.042-.729-1.771Q11.042 7.5 10 7.5q-1.042 0-1.771.729Q7.5 8.958 7.5 10q0 1.042.729 1.771.729.729 1.771.729Zm0 1.5q-1.667 0-2.833-1.167Q6 11.667 6 10q0-1.667 1.167-2.833Q8.333 6 10 6q1.667 0 2.833 1.167Q14 8.333 14 10q0 1.667-1.167 2.833Q11.667 14 10 14Zm-8.25-3.25q-.312 0-.531-.219Q1 10.312 1 10q0-.312.219-.531.219-.219.531-.219h2q.312 0 .531.219.219.219.219.531 0 .312-.219.531-.219.219-.531.219Zm14.5 0q-.312 0-.531-.219-.219-.219-.219-.531 0-.312.219-.531.219-.219.531-.219h2q.312 0 .531.219Q19 9.688 19 10q0 .312-.219.531-.219.219-.531.219ZM10 4.5q-.312 0-.531-.219-.219-.219-.219-.531v-2q0-.312.219-.531Q9.688 1 10 1q.312 0 .531.219.219.219.219.531v2q0 .312-.219.531-.219.219-.531.219ZM10 19q-.312 0-.531-.219-.219-.219-.219-.531v-2q0-.312.219-.531.219-.219.531-.219.312 0 .531.219.219.219.219.531v2q0 .312-.219.531Q10.312 19 10 19ZM5.042 6.104 4 5.042q-.229-.209-.229-.511 0-.302.229-.531.208-.229.521-.229.312 0 .521.229l1.062 1.042q.229.229.229.531 0 .302-.229.531-.208.229-.521.229-.312 0-.541-.229ZM14.958 16l-1.062-1.042q-.229-.229-.229-.531 0-.302.229-.531.208-.229.521-.229.312 0 .541.229L16 14.958q.229.209.229.511 0 .302-.229.531-.229.229-.521.229-.291 0-.521-.229Zm-1.062-9.896q-.229-.208-.229-.521 0-.312.229-.541L14.958 4q.23-.229.521-.219.292.011.521.219.229.229.229.521 0 .291-.229.521l-1.042 1.062q-.229.229-.531.229-.302 0-.531-.229ZM4 16q-.229-.208-.229-.521 0-.312.229-.521l1.042-1.062q.229-.208.531-.208.302 0 .531.208.229.229.219.531-.011.302-.219.531L5.042 16q-.209.229-.511.229-.302 0-.531-.229Zm6-6Z" /></svg>
692 </span>
693 </label>
694 </div>
695 @RenderNavigation(new {
696 startlevel = 1,
697 endlevel = 1,
698 template = "TopBarNav.xslt",
699 expandmode = "All",
700 parentid = ServiceMenuID,
701 areaid = Pageview.AreaID,
702 includemode = "All",
703
704 _ShowCart = 1,
705 _CartCount = Dynamicweb.Ecommerce.Common.Context.Cart?.OrderLines?.Count ?? 0,
706 _CartPageId = GetPageIdByNavigationTag("kurv"),
707 _CartPageName = Translate("Indkøbskurven")
708 })
709 </nav>
710 </div>
711
712
713
714 </div>
715 <div class="row">
716
717 <nav class="w-100 navbar navbar-expand-lg main-nav">
718 <div class="col">
719
720
721 @getLogo()
722
723 </div>
724
725 @{
726 string containerClass = "col-md-auto ml-auto";
727
728 if (userDevice != "Desktop") {
729 containerClass += " w-100";
730 }
731 }
732
733 <div class="@containerClass">
734
735 @if (userDevice == "Desktop") {
736
737 <div class="collapse navbar-collapse" id="nav">
738
739 @RenderNavigation(new {
740 startlevel = 1,
741 endlevel = 99,
742 template = "TopBarNav.xslt",
743 expandmode = "All",
744 parentid = 0,
745 areaid = Pageview.AreaID,
746 includemode = "All"
747 })
748
749 <div class="golden-buzz">
750 <div class="login-container">
751
752 @if (Pageview.User != null) {
753 var mitfsrpage = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "mitfsr");
754
755 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
756 <i class="fal fa-lock-open-alt"></i> @Translate("Mit FSR")
757 </a>
758
759 <div class="login-box dropdown-menu logged-in" aria-labelledby="navbarDropdown">
760 <ul class="line-list white-hover">
761 <li>
762 <a href="/mit-fsr" title="@Translate("Mit FSR")" aria-label="@Translate("Gå til Mit FSR")">@Translate("Gå til Mit FSR")</a>
763 </li>
764
765 </ul>
766
767 <a href="/Files/Handlers/B2CLoginHandler.ashx?signout=1" title="@Translate("Log ud")" aria-label="@Translate("Log ud")" class="btn btn-secondary-naked btn-sm btn-block mt-3">@Translate("Log ud")</a>
768
769 </div>
770 } else {
771 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
772 <i class="fal fa-lock-alt"></i> @Translate("Mit FSR")
773 </a>
774
775 @* -- LOGIN -- *@
776 <div class="login-box dropdown-menu" aria-labelledby="navbarDropdown">
777 <form method="get" action="/Files/Handlers/B2CLoginHandler.ashx">
778 <input type="hidden" name="auth" value="1">
779
780
781 <div class="form-group">
782 <button type="submit" class="btn btn-secondary btn-block">@(Translate("Log ind"))</button>
783 </div>
784 <ul class="line-list white-hover">
785 <li>
786 <a href="/medlem" title="@Translate("Bliv medlem")" aria-label="@Translate("Bliv medlem")">@Translate("Bliv medlem")</a>
787 </li>
788 </ul>
789 </form>
790 </div>
791 }
792 </div>
793 <div id="search-top" class="search-container">
794
795
796 <form action="/Default.aspx" data-toptypeahead="1" role="search" data-notfound="@(Translate("Vi fandt desværre ikke noget, som matcher din søgning"))">
797
798 <button id="btn-search" type="button" class="btn search search-disabled" title="@Translate("søg")"></button>
799
800 <div class="input-container search-closed">
801 <input type="hidden" name="ID" value="2908" />
802 <input class="typeahead" style="display:none;" name="search" type="text" placeholder="@placeholderSearch">
803 <input type="submit" class="search-submit" tabindex="-1"/>
804 </div>
805
806 </form>
807
808 </div>
809
810 </div>
811
812 </div>
813
814 } else if (cartCount >= 1) {
815 <a class="basket-link" href="/Default.aspx?Id=@cartPageId" title="Indkøbskurven">
816 <span class="mr-1">
817 <svg class="svg-inline--fa fa-shopping-basket fa-w-18" aria-hidden="true" focusable="false" data-prefix="far" data-icon="shopping-basket" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" data-fa-i2svg="">
818 <path fill="currentColor" d="M564 192h-72.902L362.286 40.457c-8.583-10.099-23.729-11.327-33.83-2.743-10.099 8.584-11.327 23.731-2.742 33.83L428.102 192H147.899L250.287 71.543c8.584-10.099 7.356-25.246-2.743-33.83s-25.246-7.355-33.83 2.743L84.901 192H12c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h18.667l27.584 198.603C61.546 462.334 81.836 480 105.794 480h364.412c23.958 0 44.248-17.666 47.544-41.397L545.333 240H564c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12zm-93.794 240H105.794L79.127 240h417.745l-26.666 192zM312 296v80c0 13.255-10.745 24-24 24s-24-10.745-24-24v-80c0-13.255 10.745-24 24-24s24 10.745 24 24zm112 0v80c0 13.255-10.745 24-24 24s-24-10.745-24-24v-80c0-13.255 10.745-24 24-24s24 10.745 24 24zm-224 0v80c0 13.255-10.745 24-24 24s-24-10.745-24-24v-80c0-13.255 10.745-24 24-24s24 10.745 24 24z">
819 </path>
820 </svg>
821 </span>
822 <span class="badge-container">
823 <span class="badge badge-pill badge">
824 @cartCount
825 </span>
826 </span>
827 </a>
828 }
829 </div>
830
831 </nav>
832 </div>
833
834 @helper getLogo() {
835 <a href="/" title="@Model.Area.Name" alt="@Model.Area.Name">
836 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="186" height="84.979" viewBox="0 0 186 84.979">
837 <defs>
838 <style>
839 .a {
840 fill: none;
841 }
842
843 .b {
844 fill: #14143c;
845 }
846
847 .c {
848 clip-path: url(#a);
849 }
850
851 .d {
852 fill: #b7b5aa;
853 }
854 </style>
855 <clipPath id="a">
856 <path class="a" d="M0,0H185.834V40.784H0Z" transform="translate(0 0.195)"></path>
857 </clipPath>
858 </defs>
859 <path class="b" d="M5.365,13H0v-.21c.658-.194.887-.44.887-2.436V2.646C.887.65.657.4,0,.21V0H5.489C9.227,0,13,1.935,13,6.259a6.278,6.278,0,0,1-2.169,4.93A8.359,8.359,0,0,1,5.365,13ZM3.24,1.239V11.761H5.716a4.67,4.67,0,0,0,3.25-1.234,5.148,5.148,0,0,0,1.455-3.848A5.492,5.492,0,0,0,9,2.6,5.447,5.447,0,0,0,5.036,1.239Z" transform="translate(0 1)"></path>
860 <path class="b" d="M13.7,12.669a.3.3,0,0,1-.3.331.414.414,0,0,1-.278-.1L3.034,2.377V7.316c0,4.94.192,5.084,1.3,5.27v.207H.406v-.207c1.111-.186,1.3-.331,1.3-5.27V1.054A10.157,10.157,0,0,0,0,.207V0H4.145l8.226,8.66V5.477c0-4.939-.192-5.084-1.3-5.27V0H15V.207c-1.111.186-1.3.331-1.3,5.27v7.192" transform="translate(32 1)"></path>
861 <path class="b" d="M3.49,13A7.968,7.968,0,0,1,.2,12.353L0,9.745H.306a3.239,3.239,0,0,0,3.265,2.062c1.245,0,2.327-.566,2.327-1.88,0-1.294-1.388-1.961-2.776-2.871C1.8,6.187.408,5.257.408,3.3c0-2.1,1.959-3.3,4.1-3.3A7.183,7.183,0,0,1,7.347.607V2.749H7.1A3.046,3.046,0,0,0,4.327,1.193c-1.143,0-1.878.647-1.878,1.476,0,1.193,1.265,1.84,2.633,2.73C6.489,6.308,8,7.339,8,9.341,8,11.747,5.51,13,3.49,13" transform="translate(50 1)"></path>
862 <path class="b" d="M3.094,6.531v3.822c0,2.016.237,2.247.847,2.436V13H0v-.21c.611-.189.847-.42.847-2.436V2.646C.847.63.611.4,0,.21V0H3.941V.21C3.33.4,3.094.63,3.094,2.646V6.027L6.956,1.743c.2-.231.63-.672.63-1.008,0-.378-.315-.462-.552-.525V0h3.941V.21A4.5,4.5,0,0,0,8.69,1.68L5.044,5.629,8.079,9.577c1.182,1.533,2.581,3.108,3.763,3.108H12v.252c-.118.021-1.241.063-1.695.063C8.2,13,7.921,12.958,6.7,11.341L3.094,6.531" transform="translate(62 1)"></path>
863 <path class="b" d="M8.111,0V1.911H7.9c-.3-.441-.445-.672-3.134-.672H3.325V5.607H4.913c2.054,0,2.415-.042,2.732-.525h.148V7.371H7.645c-.318-.483-.678-.525-2.732-.525H3.325v4.915H6.184c1.949,0,2.2-.5,2.6-1.155H9L8.682,13H0v-.21c.656-.189.91-.42.91-2.436V2.646C.91.63.656.4,0,.21V0H8.111" transform="translate(77 1)"></path>
864 <path class="b" d="M4.181,13H0v-.21c.666-.194.9-.44.9-2.436V2.646C.9.65.665.4,0,.21V0H4.075A7.982,7.982,0,0,1,7.511.662a2.943,2.943,0,0,1,1.727,2.8c0,1.272-1.036,2.107-1.949,2.843-.232.187-.451.363-.642.538L6.753,7c1.281,1.845,3.947,5.684,6.079,5.684H13v.21A18.051,18.051,0,0,1,11.14,13c-2.795,0-2.853-.082-4.358-2.188-.181-.253-.385-.539-.617-.856L5,8.338c-.363-.515-.554-.567-1.212-.567h-.5v2.583c0,2,.233,2.242.9,2.436V13Zm-.9-11.761V6.758h.648a2.67,2.67,0,0,0,2.009-.814,3.12,3.12,0,0,0,.771-2.185,2.549,2.549,0,0,0-2.738-2.52Z" transform="translate(62 21)"></path>
865 <path class="b" d="M8.111,0V1.911H7.9c-.3-.441-.445-.672-3.134-.672H3.325V5.607H4.913c2.054,0,2.415-.042,2.732-.525h.148V7.371H7.645c-.318-.483-.678-.525-2.732-.525H3.325v4.915H6.184c1.949,0,2.2-.5,2.6-1.155H9L8.682,13H0v-.21c.656-.189.91-.42.91-2.436V2.646C.91.63.656.4,0,.21V0H8.111" transform="translate(77 21)"></path>
866 <path class="b" d="M14,.2c-.689.1-1.085.734-1.794,2.221L7.2,12.919a.137.137,0,0,1-.25,0L1.773,2.241C.981.611.668.306,0,.2V0H4.736V.2C3.9.346,3.693.815,4.257,2.017l3.38,7.257,3.15-6.849c.688-1.467.73-2.058-.5-2.221V0H14V.2" transform="translate(88 21)"></path>
867 <path class="b" d="M3.14,10.354c0,2.016.24,2.247.86,2.436V13H0v-.21c.62-.189.86-.42.86-2.436V2.646C.86.63.62.4,0,.21V0H4V.21C3.38.4,3.14.63,3.14,2.646v7.707" transform="translate(105 21)"></path>
868 <path class="b" d="M3.49,13A7.972,7.972,0,0,1,.2,12.353L0,9.745H.306a3.238,3.238,0,0,0,3.265,2.062c1.245,0,2.327-.566,2.327-1.88,0-1.294-1.388-1.961-2.776-2.871C1.8,6.187.408,5.257.408,3.3c0-2.1,1.959-3.3,4.1-3.3A7.183,7.183,0,0,1,7.347.607V2.749H7.1A3.047,3.047,0,0,0,4.327,1.193c-1.143,0-1.877.647-1.877,1.476,0,1.193,1.265,1.84,2.632,2.73C6.49,6.308,8,7.339,8,9.341,8,11.747,5.51,13,3.49,13" transform="translate(115 21)"></path>
869 <path class="b" d="M7.553,13a8.156,8.156,0,0,1-5.307-1.878A6.143,6.143,0,0,1,0,6.409,5.926,5.926,0,0,1,2.372,1.8,8.1,8.1,0,0,1,7.363,0a8.773,8.773,0,0,1,5.2,1.713A5.733,5.733,0,0,1,15,6.308a6.139,6.139,0,0,1-2.611,5.029A8.533,8.533,0,0,1,7.553,13ZM7.405,1.193A4.425,4.425,0,0,0,3.929,2.729a5.511,5.511,0,0,0-1.236,3.6,5.661,5.661,0,0,0,1.536,3.937,4.806,4.806,0,0,0,3.429,1.541,4.615,4.615,0,0,0,3.371-1.385,4.925,4.925,0,0,0,1.32-3.447,6.088,6.088,0,0,0-1.549-4.3A4.72,4.72,0,0,0,7.405,1.193Z" transform="translate(127 21)"></path>
870 <path class="b" d="M4.18,13H0v-.21c.666-.194.9-.44.9-2.436V2.646C.9.65.665.4,0,.21V0H4.075A7.982,7.982,0,0,1,7.511.662a2.943,2.943,0,0,1,1.727,2.8c0,1.273-1.036,2.107-1.95,2.844-.232.187-.45.362-.641.537L6.753,7c1.281,1.845,3.947,5.684,6.079,5.684H13v.21A18.026,18.026,0,0,1,11.14,13c-2.795,0-2.853-.082-4.358-2.188-.181-.253-.385-.539-.617-.856L5,8.338c-.363-.515-.554-.567-1.212-.567h-.5v2.583c0,2,.233,2.242.9,2.436V13Zm-.9-11.761V6.7h.648a2.683,2.683,0,0,0,2.779-2.94,2.549,2.549,0,0,0-2.738-2.52Z" transform="translate(146 21)"></path>
871 <path class="b" d="M8.111,0V1.911H7.9c-.3-.441-.445-.672-3.134-.672H3.325V5.607H4.913c2.054,0,2.414-.042,2.732-.525h.148V7.371H7.645c-.318-.483-.678-.525-2.732-.525H3.325v4.915H6.184c1.949,0,2.2-.5,2.6-1.155H9L8.682,13H0v-.21c.656-.189.91-.42.91-2.436V2.646C.91.63.656.4,0,.21V0H8.111" transform="translate(161 21)"></path>
872 <path class="b" d="M4.181,13H0v-.21c.666-.194.9-.44.9-2.436V2.646C.9.65.665.4,0,.21V0H4.075A7.982,7.982,0,0,1,7.511.662a2.943,2.943,0,0,1,1.727,2.8c0,1.272-1.036,2.107-1.949,2.843-.232.187-.451.363-.642.538l.1.148c1.282,1.847,3.949,5.691,6.083,5.691H13v.21A18.051,18.051,0,0,1,11.14,13c-2.795,0-2.853-.082-4.358-2.188-.181-.253-.385-.539-.617-.856L5,8.338c-.363-.515-.554-.567-1.212-.567h-.5v2.583c0,2,.233,2.242.9,2.436V13Zm-.9-11.761V6.758h.647a2.671,2.671,0,0,0,2.009-.814,3.12,3.12,0,0,0,.771-2.185,2.549,2.549,0,0,0-2.738-2.52Z" transform="translate(173 21)"></path>
873 <g transform="translate(0 44)">
874 <path class="a" d="M0,0H185.834V40.784H0Z" transform="translate(0 0.195)"></path>
875 <g class="c">
876 <path class="b" d="M0,6.465H185.834V0H0Z" transform="translate(0 0.195)"></path>
877 <path class="d" d="M40.19,24.664a18.966,18.966,0,0,1-7.413-1.482l-.436-5.6h.678a5.959,5.959,0,0,0,3.065,3.743,9.27,9.27,0,0,0,4.3,1.088A6.745,6.745,0,0,0,44.5,21.154,4.626,4.626,0,0,0,46.3,17.346c0-2.883-2.785-4.541-5.734-6.3a24.4,24.4,0,0,1-5.056-3.619,7.815,7.815,0,0,1-2.39-5.677A8.035,8.035,0,0,1,33.305,0h3.468a4.115,4.115,0,0,0-.022.413A5.026,5.026,0,0,0,38.643,4.13a26.362,26.362,0,0,0,4.2,2.9l.058.035c3.923,2.36,7.171,4.68,7.171,9.184a7.635,7.635,0,0,1-3.143,6.272A11.351,11.351,0,0,1,40.19,24.664Zm33.341-.573H65v-.478a2.073,2.073,0,0,0,1.6-1.214,12.011,12.011,0,0,0,.478-4.335V.509c0-.176,0-.344,0-.509h4.363V10.075h2.278c4.342,0,6.833-2.563,6.833-7.031A6.636,6.636,0,0,0,79.878,0h5.048a8.224,8.224,0,0,1,.331,2.373c0,2.931-2.739,5.329-4.94,7.255-.274.24-.532.466-.777.686.181.251.377.525.587.818a73.824,73.824,0,0,0,6.087,7.687c2.862,3.021,5.344,4.553,7.378,4.553h.387v.479a22.4,22.4,0,0,1-3.053.238c-3.135,0-4.754-.124-6.058-.861-1.326-.75-2.356-2.15-4.225-4.692-.332-.451-.674-.917-1.055-1.43l-2.713-3.635c-.9-1.214-1.458-1.387-3.053-1.387H71.447v5.979a12,12,0,0,0,.479,4.335,2.075,2.075,0,0,0,1.605,1.214v.478Zm-64.519,0H0v-.478A2.074,2.074,0,0,0,1.605,22.4a12.008,12.008,0,0,0,.478-4.335V.509c0-.176,0-.344,0-.509H6.444V7.539h3.634c4.635,0,5.519-.088,6.25-1.2h.339v4.64h-.339c-.732-1.108-1.616-1.2-6.25-1.2H6.444v8.275c0,2.34.156,3.6.539,4.335s.983.987,2.029,1.214v.477Z" transform="translate(76.402 16.337)"></path>
878 </g>
879 </g>
880 <path class="b" d="M3.714,13H0v-.2c.671-.1,1.053-.668,1.795-2.221L6.8.081A.133.133,0,0,1,6.927,0a.131.131,0,0,1,.125.081l5.174,10.678C13.033,12.417,13.346,12.7,14,12.8V13H9.264v-.2a.907.907,0,0,0,.721-.4c.151-.288.074-.736-.242-1.41l-.8-1.747H3.816l-.6,1.339c-.395.841-.6,1.435-.4,1.793.124.227.412.363.906.428V13ZM6.348,3.613,4.325,8.106H8.419Z" transform="translate(14)"></path>
881 <path class="d" d="M13,5.439a1.6,1.6,0,0,0-1.326-1.681c-1.155,0-3.55,1.946-4.748,2.653C7.185,5.04,7.954,2.962,7.954,1.459A1.359,1.359,0,0,0,6.5,0,1.425,1.425,0,0,0,5.046,1.459,33.909,33.909,0,0,0,6.073,6.411c-1.2-.707-3.507-2.653-4.7-2.653A1.512,1.512,0,0,0,0,5.439c0,1.9,4.019,1.547,5.858,1.812C4.618,8.4,1.881,10.17,1.881,11.452A1.759,1.759,0,0,0,3.464,13C4.917,13,5.816,9.285,6.5,7.738,7.185,9.2,8.039,13,9.536,13a1.72,1.72,0,0,0,1.583-1.548c0-1.371-2.78-3.095-3.934-4.245C8.98,6.942,13,7.341,13,5.439" transform="translate(173 56)"></path>
882 </svg>
883 </a>
884 }
885 </div>
886 </div>
887 </div>
888 </header>
889
890 <main id="main" class="@mainClass">
891
892 <div class="container">
893 <div class="row">
894 <div class="col-12 col-lg-8 mt-3">
895 <ol itemscope itemtype="https://schema.org/BreadcrumbList" class="breadcrumb" data-itemtypes="Page">
896 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
897 <a itemprop="item" href="/" title="@Translate("Forside")">
898 <span itemprop="name">
899 @Translate("Forside")
900 </span>
901 <meta itemprop="position" content="1" />
902 </a>
903 </li>
904 @{
905 int breadcrumbPos = 2;
906 }
907 @if (parentPage != null) {
908 foreach (var i in Dynamicweb.Content.Services.Pages.GetAncestors(parentPage.ID, true)) {
909 string pageName = i.MenuText;
910 if (pageName.Length > 50) {
911 pageName = pageName.Substring(0, 46) + "...";
912 }
913
914 if (pageName != "Service menu") {
915
916 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
917 <a itemprop="item" href="/Default.aspx?ID=@(i.ID)" title="@pageName" data-pageid="@i.ID">
918 <span itemprop="name">
919 @pageName
920 </span>
921 </a>
922 <meta itemprop="position" content="@breadcrumbPos" />
923 </li>
924 breadcrumbPos++;
925 }
926 }
927 }
928
929 @if (Model.Name != null && !string.IsNullOrWhiteSpace("" + Model.Name)) {
930 string pageName = "" + Model.Name;
931 if (pageName.Length > 50) {
932 pageName = pageName.Substring(0, 46) + "...";
933 }
934
935 if (pageName != "Service menu") {
936
937 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
938 <a itemprop="item" href="/Default.aspx?ID=@(Model.ID)" title="@pageName" data-pageid="@Model.ID">
939 <span itemprop="name">
940 @pageName
941 </span>
942 </a>
943 <meta itemprop="position" content="@breadcrumbPos" />
944 </li>
945 }
946 }
947 </ol>
948 @** @if (useReferer)
949 {
950 <aside>
951 //<a href="/default.aspx?ID=@parentPage.ID" class="text-uppercase btn btn-primary-naked btn-sm mb-4"> <i class="fas fa-arrow-left"></i> @Translate("Tilbage til oversigten")</a>
952 <a href="@referer" class="text-uppercase btn btn-primary-naked btn-sm mt-4 mb-6"> <i class="fas fa-arrow-left"></i> @Translate("Tilbage til oversigten")</a>
953 </aside>
954 }*@
955 @if (useReferer && !referer.ToLower().Contains("admin")) {
956 <aside>
957 @*<a href="/default.aspx?ID=@parentPage.ID" class="text-uppercase btn btn-primary-naked btn-sm mb-4"> <i class="fas fa-arrow-left"></i> @Translate("Tilbage til oversigten")</a>*@
958 <a href="@referer" class="text-uppercase btn btn-primary-naked btn-sm mt-4 mb-6 @referer"> <i class="fas fa-arrow-left"></i> @Translate("Tilbage til oversigten")</a>
959 </aside>
960 } else if (parentPage != null) {
961 <aside>
962 @*<a href="/default.aspx?ID=@parentPage.ID" class="text-uppercase btn btn-primary-naked btn-sm mb-4"> <i class="fas fa-arrow-left"></i> @Translate("Tilbage til oversigten")</a>*@
963 <a href="/default.aspx?ID=@parentPage.ID" class="text-uppercase btn btn-primary-naked btn-sm mt-4 mb-6" title="@parentPage"> <i class="fas fa-arrow-left"></i> @Translate("Tilbage til oversigten")</a>
964 </aside>
965 }
966
967 @if (showReadTime && Model?.Item?.GetItem("Content") != null && userDevice != "Desktop") {
968 char[] delimiters = new char[] { ' ', '\r', '\n' };
969 string allText = title + Model.Item.GetString("Introduction") + Model.Item.GetItem("Content").GetString("Text");
970 if (Model.Content.ContainsKey("content")) {
971 allText += Model.Content["content"];
972 }
973 double numberOfWords = Regex.Replace(allText, "<.*?>", String.Empty).Split(delimiters, StringSplitOptions.RemoveEmptyEntries).Length;
974 double readTime = numberOfWords / 300;
975
976 double readingTime = Math.Round(readTime, 2, MidpointRounding.AwayFromZero);
977 string readTimeText = readingTime < 1 ? "< 1 min." : "" + readingTime + " min.";
978 <div class="article-info-container mb-3">
979 <div class="col-12 pt-3 pb-3 article-info-top">
980 <p class="font-weight-bold mb-0">@Translate("Det får du i artiklen"):</p>
981
982 @if (Model.Item.GetItem("ReadTime")?.GetItems("ReadTimeTextList")?.Any() == true) {
983 foreach (var i in Model.Item.GetItem("ReadTime").GetItems("ReadTimeTextList")) {
984 <span class="line-list">@i.GetString("Text")</span>
985 }
986 }
987 </div>
988
989
990 <div class="article-info-bottom mt-0">
991 <div class="row text-center pt-3">
992 <div class="col-6">
993 <p class="mb-0">@Translate("Antal ord")</p>
994 <p class="medium-big">@numberOfWords</p>
995 </div>
996 <div class="col-6">
997 <p class="mb-0">@Translate("Læsetid")</p>
998 <p class="medium-big">@readTimeText</p>
999 </div>
1000 </div>
1001 </div>
1002 </div>
1003 }
1004
1005
1006 <article id="article-content">
1007 <p class="sub-title">
1008 @*@Translate("Fagligt nyt") <span>----</span>*@
1009
1010 @Model.Item.GetDateTime("PublishingDateStart").ToString("dd. MMMM yyyy")
1011 @*@if (Model.Item.GetBoolean("IsHistorical")) {<span class="gold-frame ml-2">@Translate("Historisk")</span>}*@
1012
1013 @*@for(int i = 1; 1<10; i++) {if(string.IsNullOrWhiteSpace(Model.Item.GetString("Attribute" + i))) {break;}}*@
1014 </p>
1015
1016 <div class="news-teaser-box-bottom mb-3">
1017 @{
1018
1019 string spanClass = "no-tilt-title";
1020 //Claus: har udkommenteret dette da jeg ikke tror det er relevant længere?
1021 //if (parentPage == null) {
1022 // spanClass += " no-tilt-title-after";
1023 //}
1024 int subjectAndTopicsCounter = 1;
1025
1026 }
1027 <span class="@spanClass">
1028 @renderStar()
1029 @Translate("" + sectionDk)
1030 </span>
1031
1032 @foreach (var i in subjectAndTopics) {
1033 <span class="subject">
1034 @Translate(i)
1035 @if (subjectAndTopicsCounter != subjectAndTopics.Count) {
1036 subjectAndTopicsCounter++;
1037 <span>-</span>
1038 }
1039 </span>
1040 }
1041
1042 @if (Model.Item.GetBoolean("IsHistorical")) {
1043 <span class="gold-frame Historisk ml-2">
1044 @Translate("Historisk")
1045 </span>
1046 }
1047
1048 @if (Model.Item.GetList("AccessField").SelectedValue.IndexOf("Public") == -1) {
1049 if (hasAccess) {
1050 <i class="far fa-lock-open-alt"></i>
1051 } else {
1052 <i class="far fa-lock-alt"></i>
1053 }
1054 }
1055 </div>
1056
1057 <h1>@title</h1>
1058
1059 <p class="intro-text">@Model.Item.GetString("Introduction")</p>
1060 <hr>
1061 @if (hasAccess) {
1062 var contacts = Model?.Item?.GetItem("Content")?.GetUsers("Contact")?.ToList();
1063
1064 if (contacts?.Any() == true) {
1065 string contactDirection = Model.Item.GetItem("Content")?.GetList("ContactSortDirection")?.SelectedValue;
1066 if (string.IsNullOrEmpty(contactDirection)) {
1067 contactDirection = "Ascending";
1068 }
1069
1070
1071 var sortedContacts = contactDirection == "Ascending" ? contacts.OrderBy(x => x.Name).ToList() : contacts.OrderByDescending(x => x.Name).ToList();
1072 <div class="content-contact-information mb-3">
1073 <div class="row">
1074 @for (var ii = 0; ii < sortedContacts.Count; ii++) {
1075 var i = sortedContacts[ii];
1076
1077 if (ii != 0 && ii % 2 == 0) {
1078 <div class="d-none d-lg-block col-lg-12">
1079 <hr>
1080 </div>
1081 }
1082 <div class="col-lg-6">
1083 <div class="row contact-box">
1084 @if (!string.IsNullOrWhiteSpace(i.Image)) {
1085 string contactImagePath = "/Admin/Public/GetImage.ashx?Image=" + i.Image + "&Width=120&Height=120&Crop=0&format=webp&Quality=85";
1086
1087 <div class="col-3 pr-0">
1088 <img src="@contactImagePath" class="img-fluid rounded-circle w-100" alt="Billede af @i.Name" title="@i.Name">
1089 </div>
1090 }
1091 <div class="col my-auto">
1092 <p class="mb-0">
1093
1094 <strong>@i.Name</strong>
1095
1096 @if (!string.IsNullOrWhiteSpace(i.Title)) {
1097 @i.Title
1098 <br />
1099 }
1100 @if (!string.IsNullOrWhiteSpace(i.Email)) {
1101 <i class="fal fa-envelope"></i>
1102 @Rot13_Email(i.Email)
1103 }
1104 @if (!string.IsNullOrWhiteSpace(i.Phone)) {
1105 @renderStar()
1106 <i class="fal fa-phone"></i>
1107 <a href="tel:@i.Phone.Trim().Insert((i.Phone.Length / 2), " ")">
1108 @i.Phone.Trim().Insert((i.Phone.Length / 2), " ")
1109 </a>
1110 }
1111 @if (!string.IsNullOrWhiteSpace(i.PhoneMobile)) {
1112 @renderStar()
1113 <i class="fal fa-mobile-android-alt"></i>
1114 <a href="tel:@i.PhoneMobile.Trim().Insert((i.PhoneMobile.Length / 2), " ")">
1115 @i.PhoneMobile.Trim().Insert((i.PhoneMobile.Length / 2), " ")
1116 </a>
1117 }
1118 </p>
1119 @if (Model.Item.GetItem("Content") != null && Model.Item.GetItem("Content").GetBoolean("OtherAuthor")) {
1120 <div class="w-100">
1121 <p class="font-weight-light mb-0 mt-2">
1122 <i>
1123 <small>
1124 @Translate("Articles_Former_Author", "Artiklen er oprindeligt skrevet af en anden medarbejder")
1125 </small>
1126 </i>
1127 </p>
1128 </div>
1129 }
1130
1131
1132 </div>
1133 </div>
1134 </div>
1135
1136 <div class="d-lg-none col-12">
1137 <hr>
1138 </div>
1139 }
1140 </div>
1141
1142 <hr class="d-none d-lg-block">
1143 </div>
1144 }
1145
1146 @*<div class="row"><div class="col-12 mt-3">@Model.Item.GetItem("Content").GetString("Text")</div></div>*@
1147
1148 <div class="editor-text">
1149 @Model.Item.GetItem("Content").GetString("Text")
1150 </div>
1151
1152 <div class="row">
1153 @Model.Placeholder("content", "Indhold", "sort:1")
1154 </div>
1155 <div class="article-footer">
1156 <div class="row">
1157 <div class="col-xs-12 col-sm-12 col-md-6 col-lg-12 col-xl-6 align-items-end d-flex">
1158
1159 @if (Dynamicweb.Environment.CookieManager.GetCookie("articlevote") != null && Dynamicweb.Environment.CookieManager.GetCookie("articlevote").Value.IndexOf(Model.ID.ToString()) > -1) {
1160 <p class="vote-thankyou">@Translate("Tak for din tilbagemelding")</p>
1161 } else {
1162 <p class="vote-buttons">
1163 <small><strong class="align-bottom">@Translate("Var artiklen værdifuld for dig")?:</strong></small>
1164 <button type="button" class="btn btn-secondary" data-vote="yes" data-page="@Model.ID">@Translate("Ja")</button>
1165 <button type="button" class="btn btn-secondary" data-vote="no" data-page="@Model.ID">@Translate("Nej")</button>
1166 </p>
1167 }
1168
1169 </div>
1170 <div class="col-xs-12 col-sm-12 col-md-6 col-lg-12 col-xl-6 align-items-end d-flex some">
1171
1172 @sns(Model.Item.GetString("Introduction"))
1173
1174 </div>
1175 </div>
1176 </div>
1177 } else if (Pageview.User != null) {
1178 @*<div class="login-required-box">
1179 <hr />
1180 @Model.Area.Item.GetString("NoAccessText")
1181 <hr />
1182 </div>*@
1183
1184 <div class="login-required-box tb-no-access">
1185
1186 <div class="bg-blue">
1187
1188 <div class="row">
1189 <div class="col-12 col-md-5 position-absolute">
1190 <div class="iroogn-02">
1191 @Model.Area.Item.GetString("NoAccessText")
1192 </div>
1193 </div>
1194
1195 <div class="col-12 col-md-7 mr-auto">
1196 <h3>@Translate("Vil du læse mere?")</h3>
1197 <p>
1198 @Translate("Du har desværre ikke adgang til denne side. For at få adgang skal du have et abonnement på") <strong>@(sectionDk).</strong>
1199 </p>
1200 <p>
1201 @Translate("Er du i tvivl om, hvad du har adgang til, kan du se dine abonnementer på") <a href="/mit-fsr">Mit FSR</a>
1202 </p>
1203 </div>
1204
1205 </div>
1206
1207 </div>
1208
1209 </div>
1210
1211 } else {
1212 <div class="login-required-box tb">
1213
1214 <div class="bg-blue">
1215
1216 <div class="row">
1217 <div class="col-12 col-md-5 position-absolute">
1218 <a href="/medlem" title="Bliv medlem" class="iroogn-02 d-block">
1219 @Model.Area.Item.GetString("NotLoggedInText")
1220 </a>
1221 </div>
1222
1223 <div class="col-12 col-md-7 mr-auto">
1224 <h3>@Translate("Log ind for at læse videre")</h3>
1225 </div>
1226
1227 <div class="col-12 col-md-7 mr-auto">
1228 <div class="row">
1229 @if (System.Web.HttpContext.Current.Request.Url.DnsSafeHost.IndexOf("local") > -1) {
1230 @RenderParagraphContent(3)
1231 } else {
1232 @RenderParagraphContent(2)
1233 }
1234 </div>
1235 </div>
1236
1237 <div class="col-12 col-md-12">
1238 <div class="row">
1239 <div class="col-12 col-md-7">
1240 <ul class="line-list white-hover">
1241 <li>
1242 <a href="/medlem">@(Translate("Bliv medlem"))</a>
1243 </li>
1244 </ul>
1245 <p class="mb-0">
1246 @Translate("login issues") <a href="mailto:medlemsservice@fsr.dk">@(Translate("kontakt medlemsservice"))</a>
1247 </p>
1248 </div>
1249 </div>
1250 </div>
1251 </div>
1252 </div>
1253 </div>
1254 }
1255
1256 </article>
1257 </div>
1258 <aside class="aside col-12 col-lg-4">
1259 @if (showReadTime && userDevice == "Desktop") {
1260 char[] delimiters = new char[] { ' ', '\r', '\n' };
1261 string allText = Model.Name + Model.Item.GetString("Introduction") + Model.Item.GetItem("Content").GetString("Text");
1262 if (Model.Content.ContainsKey("content")) {
1263 allText += Model.Content["content"];
1264 }
1265 double numberOfWords = Regex.Replace(allText, "<.*?>", String.Empty).Split(delimiters, StringSplitOptions.RemoveEmptyEntries).Length;
1266 double readTime = numberOfWords / 300;
1267
1268 double readingTime = Math.Round(readTime, 2, MidpointRounding.AwayFromZero);
1269 string readTimeText = readingTime < 1 ? "< 1 min." : "" + readingTime + " min.";
1270 <div class="article-info-container mb-5">
1271 <div class="col-12 pt-3 pb-3 article-info-top">
1272 <p class="font-weight-bold mb-0">@Translate("Det får du i artiklen"):</p>
1273
1274 @if (Model?.Item?.GetItem("ReadTime")?.GetItems("ReadTimeTextList")?.Any() == true) {
1275 foreach (var i in Model.Item.GetItem("ReadTime").GetItems("ReadTimeTextList")) {
1276 <span class="line-list mt-1 mb-0">@i.GetString("Text")</span>
1277 }
1278 }
1279
1280 </div>
1281
1282 <div class="article-info-bottom">
1283 <div class="row text-center pt-3">
1284 <div class="col-6">
1285 <p class="mb-0">@Translate("Antal ord")</p>
1286 <p class="medium-big">@numberOfWords</p>
1287 </div>
1288 <div class="col-6">
1289 <p class="mb-0">@Translate("Læsetid")</p>
1290 <p class="medium-big">@readTimeText</p>
1291 </div>
1292 </div>
1293 </div>
1294 </div>
1295 }
1296
1297 <div class="latest-news-container">
1298 @if (parentPage != null) {
1299 <h2>@Translate("Seneste nyt") - @parentPage.MenuText</h2>
1300 } else {
1301 <h2>@Translate("Seneste nyt")</h2>
1302 }
1303
1304 <div id="handlebar-content-page-@Model.ID" class="handlebar-content" data-feed-url="@latestNewsFilterFeed" data-template-id="template-page-@Model.ID"></div>
1305
1306 </div>
1307
1308 </aside>
1309
1310 @{
1311 string backgroundColor = string.Empty;
1312 string textColor = string.Empty;
1313
1314 if (true) {
1315 var ribbonItems = new List<ItemViewModel>();
1316 if (Model.Item.GetItem("Ribbon") != null) {
1317
1318 if (Model.Item.GetItem("Ribbon").GetItems("List") != null && Model.Item.GetItem("Ribbon").GetItems("List").Any()) {
1319 ribbonItems = (List<ItemViewModel>)Model.Item.GetItem("Ribbon").GetItems("List");
1320 }
1321 backgroundColor = Model.Item.GetItem("Ribbon").GetString("ListBackgroundColor");
1322
1323 textColor = Model.Item.GetItem("Ribbon").GetString("ListTextColor");
1324 }
1325 if (!ribbonItems.Any()) {
1326 if (parentPage != null && parentPage.ItemType != "") {
1327
1328 var meta = Dynamicweb.Content.Items.ItemManager.Metadata.GetItemType(parentPage.Item);
1329 var columnsField = meta.GetAllFields().Find("Ribbon");
1330 if (columnsField != null) {
1331
1332 var editor = columnsField.CreateEditorInstance(false);
1333 var fieldValue = parentPage.Item["Ribbon"];
1334 var fieldViewModel = (Dynamicweb.Frontend.ItemViewModel)editor.GetViewModelValue(fieldValue, columnsField);
1335 bool ribbonVisible = parentPage.Item["RibbonVisible"] != null && (bool)parentPage.Item["RibbonVisible"];
1336 if (fieldViewModel != null && ribbonVisible && fieldViewModel.GetItems("List") != null && fieldViewModel.GetItems("List").Any()) {
1337 ribbonItems = (List<ItemViewModel>)fieldViewModel.GetItems("List");
1338
1339 backgroundColor = fieldViewModel.GetString("ListBackgroundColor");
1340 textColor = fieldViewModel.GetString("ListTextColor");
1341 }
1342 }
1343
1344 }
1345 }
1346
1347 if (hasAccess && ribbonItems.Any() && Dynamicweb.Context.Current.Request.Url.ToString().IndexOf("productid=") == -1) {
1348
1349 string textColorClass = "";
1350 if (!string.IsNullOrWhiteSpace(textColor)) {
1351 textColorClass = "text-controller-" + @Model.ID;
1352 }
1353
1354 <div id="background-controller-@Model.ID" class="col-12 bg-left blue spot-ribbon @textColorClass" data-color="@backgroundColor">
1355 <div class="row">
1356 @foreach (var card in ribbonItems) {
1357 var imageItem = card.GetItem("Image");
1358 string Ribbontitle = card.GetString("Title");
1359 var textItem = card.GetItem("Text");
1360 var linkItem = card.GetItem("Link");
1361 if (imageItem == null || textItem == null || linkItem == null) {
1362 continue;
1363 }
1364
1365 if (ribbonItems.Count > 1) {
1366 <a href="@linkItem.GetString("Link")" title="@linkItem.GetString("Text")" aria-label="@linkItem.GetString("Text")" class="spot col-12 col-lg-4">
1367 <div class="d-flex flex-column h-100">
1368 @if (imageItem.GetFile("File") != null) {
1369 string spotImagePath = "/Admin/Public/GetImage.ashx?Image=" + imageItem.GetFile("File").PathUrlEncoded + "&Width=692&Height=416&Crop=7&format=webp&Quality=85";
1370 if (imageItem.GetFile("File").HasFocalPoint()) {
1371 spotImagePath += "&" + imageItem.GetFile("File").GetFocalPointParameters();
1372 }
1373
1374
1375 <div class="zoom">
1376 <img src="@spotImagePath" alt="@imageItem.GetString("Alt")" title="@imageItem.GetString("Title")" class="img-fluid" />
1377 </div>
1378 }
1379 <div class="intro-text">
1380 @Ribbontitle
1381 </div>
1382 <div class="intro-content">
1383 @textItem.GetString("Text")
1384 </div>
1385 <div class="mt-auto">
1386 @if (!string.IsNullOrWhiteSpace(linkItem.GetString("Text"))) {
1387 <span class="line-link">@linkItem.GetString("Text")</span>
1388 }
1389 </div>
1390 </div>
1391 </a>
1392 } else {
1393 <a href="@linkItem.GetString("Link")" title="@linkItem.GetString("Text")" aria-label="@linkItem.GetString("Text")" class="spot col-12 col-lg-12 mb-0">
1394 <div class="row">
1395 <div class="col-lg-6">
1396 <div class="d-flex flex-column h-100">
1397 @if (imageItem.GetFile("File") != null) {
1398 string spotImagePath = "/Admin/Public/GetImage.ashx?Image=" + imageItem.GetFile("File").PathUrlEncoded + "&Width=692&Height=416&Crop=7&format=webp&Quality=85";
1399 if (imageItem.GetFile("File").HasFocalPoint()) {
1400 spotImagePath += "&" + imageItem.GetFile("File").GetFocalPointParameters();
1401 }
1402
1403
1404 <div class="zoom">
1405 <img src="@spotImagePath" alt="@imageItem.GetString("Alt")" title="@imageItem.GetString("Title")" class="img-fluid" />
1406 </div>
1407 }
1408 </div>
1409 </div>
1410
1411 <div class="col-lg-6">
1412 <div class="intro-text">
1413 @Ribbontitle
1414 </div>
1415 <div class="intro-content">
1416 @textItem.GetString("Text")
1417 </div>
1418 <div class="mt-auto">
1419 @if (!string.IsNullOrWhiteSpace(linkItem.GetString("Text"))) {
1420 <span class="line-link">@linkItem.GetString("Text")</span>
1421 }
1422 </div>
1423 </div>
1424 </div>
1425 </a>
1426 }
1427
1428 }
1429 </div>
1430 </div>
1431
1432
1433 }
1434 }
1435 }
1436
1437 <style>
1438 #background-controller-@Model.ID {
1439 background-color: @(backgroundColor);
1440 }
1441
1442 .text-controller-@Model.ID,
1443 .text-controller-@Model.ID .intro-text,
1444 .text-controller-@Model.ID h4,
1445 .text-controller-@Model.ID p,
1446 .text-controller-@Model.ID a
1447 .text-controller-@Model.ID a.line-link,
1448 .text-controller-@Model.ID a:link.line-link,
1449 .text-controller-@Model.ID a .line-link,
1450 .text-controller-@Model.ID a:link .line-link
1451 {
1452 color: @(textColor) !important;
1453 }
1454
1455 .text-controller-@Model.ID a .line-link:before,
1456 .text-controller-@Model.ID a.line-link:before,
1457 .text-controller-@Model.ID a:link .line-link:before,
1458 .text-controller-@Model.ID a:link.line-link:before {
1459 background-color: @(textColor) !important;
1460 }
1461
1462 .spot-ribbon.text-controller-@Model.ID .spot .line-link:after {
1463 background: @(textColor);
1464 opacity: 0.1;
1465 filter: invert(1)
1466 }
1467 </style>
1468
1469
1470 @if (Pageview.User == null) {
1471 <style>
1472 // ---------------------------
1473 .login-required-box.tb {
1474 min-height: 380px;
1475 }
1476
1477 @@media screen and (max-width: 1199px) {
1478 .login-required-box.tb {
1479 min-height: 430px;
1480 }
1481 }
1482 // ---------------------------
1483
1484 .become-member.become-member-v2 {
1485 margin-top: 9rem;
1486 }
1487 @@media screen and (max-width: 991px) {
1488 .become-member.become-member-v2 {
1489 margin-top: 4rem;
1490 }
1491 }
1492 .become-member.become-member-v2 > h2 {
1493 position: absolute;
1494 top: -87px;
1495 text-align: center;
1496 z-index: 10;
1497 font-size: 4rem;
1498 font-weight: 800;
1499 color: #000;
1500 width: 100%;
1501 }
1502 @@media screen and (max-width: 991px) {
1503 .become-member.become-member-v2 > h2 {
1504 position: relative;
1505 top: auto;
1506 }
1507 }
1508 .become-member.become-member-v2 .benefits-left {
1509 color: #14143C;
1510 }
1511
1512 .become-member.become-member-v2 .benefits-left h2 {
1513 color: #000000;
1514 margin-bottom: 15px;
1515 }
1516
1517 @@media screen and (min-width: 768px) {
1518 .become-member.become-member-v2 .benefits-left >.row>div svg {
1519 min-height: 85px;
1520 }
1521 }
1522
1523 .become-member.become-member-v2 .benefits-right > div {
1524 padding-right: 2rem;
1525 }
1526 @@media screen and (max-width: 1199px) {
1527 .become-member.become-member-v2 .benefits-right > div {
1528 padding-right: 2rem;
1529 left: 0;
1530 }
1531 }
1532 @@media screen and (max-width: 991px) {
1533 .become-member.become-member-v2 .benefits-right > div {
1534 position: absolute;
1535 bottom: 0;
1536 left: 2rem;
1537 }
1538 }
1539 .become-member.become-member-v2 .benefits-right > div p {
1540 font-size: 1.45rem;
1541 font-weight: 500;
1542 line-height: 1.5rem;
1543 color: #ffffff;
1544 }
1545
1546 @@media screen and (max-width: 1199px) {
1547 .become-member.become-member-v2 .benefits-right > div p {
1548 font-size: 1.25rem;
1549 max-width: 425px;
1550 margin-bottom: 5px;
1551 color: #000;
1552 }
1553 }
1554
1555 @@media screen and (max-width: 991px) {
1556 .become-member.become-member-v2 .benefits-right > div p {
1557 color: #fff;
1558 }
1559 }
1560
1561 .become-member.become-member-v2 .benefits-right > div .line-link {
1562 margin-top: 35px;
1563 }
1564 @@media screen and (max-width: 1199px) {
1565 .become-member.become-member-v2 .benefits-right > div .line-link {
1566 margin-top: 0;
1567 }
1568 }
1569 @@media screen and (max-width: 991px) {
1570 .become-member.become-member-v2 .benefits-right > div .line-link {
1571 margin-top: 30px;
1572 }
1573 }
1574
1575
1576 </style>
1577
1578
1579 @* -- -- NEW VERSION (2020) -- -- *@
1580 <a href="/medlem" title="Bliv medlem af FSR" aria-label="Bliv medlem af FSR" class="col-12 bg-right become-member become-member-v2">
1581 @*<h2>@Translate("Gratis medlem")?</h2>*@
1582
1583 <div class="row">
1584 <div class="col-12 col-lg-6">
1585 <div class="benefits-left">
1586 <h2 class="color-black">@Translate("Medlemsfordele")</h2>
1587 <div class="row">
1588 <div class="col-12 col-md-4">
1589 <div class="row">
1590 <div class="col-4 col-md-12">
1591 <svg xmlns="http://www.w3.org/2000/svg" width="73" height="70.407" viewBox="0 0 73 70.407">
1592 <defs>
1593 <style>.become-member.become-member-v2 .b{fill:none !important;stroke:#444969;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px;}</style>
1594 </defs>
1595 <g transform="translate(-783.881 -543.255)">
1596 <path class="b" d="M842.868,544.755h.681a4.223,4.223,0,0,1,4.211,4.211v54.77a4.223,4.223,0,0,1-4.211,4.213h-.681c-2.344,0-16.871-21.473-32.42-21.473h-19.36a5.724,5.724,0,0,1-5.707-5.707v-8.835a5.726,5.726,0,0,1,5.707-5.707h19.36c15.551,0,30.076-21.471,32.42-21.471Z" transform="translate(0)"></path>
1597 <path class="b" d="M814.653,554.785a10.671,10.671,0,0,1,0,20.49" transform="translate(33.043 11.322)"></path>
1598 <line class="b" y2="20.25" transform="translate(810.815 566.227)"></line>
1599 <path class="b" d="M801.912,564.353c.785,4.479-.364,9.154,2.359,13.439l4.609,7.253c1.158,1.824-.711,4.994-2.8,4.994h-6.919a5.243,5.243,0,0,1-4.807-3.8l-5.186-21.882Z" transform="translate(4.276 22.123)"></path>
1600 </g>
1601 </svg>
1602 </div>
1603 <div class="col-8 col-md-12 d-flex">
1604 <span class="align-self-center w-100">@Translate("Faglige nyheder")</span>
1605 </div>
1606 </div>
1607 </div>
1608 <div class="col-12 col-md-4">
1609 <div class="row">
1610 <div class="col-4 col-md-12">
1611 <svg xmlns="http://www.w3.org/2000/svg" width="85" height="85.001" viewBox="0 0 85 85.001">
1612 <path class="a" d="M73,29H58.874V26.812l-4.145,1.68a6.849,6.849,0,0,1-2.59.508H32.229a6.927,6.927,0,0,1-3.719-1.086L2.793,12.119A5.79,5.79,0,0,1,0,7.1,5.939,5.939,0,0,1,.747,4.218,5.6,5.6,0,0,1,3.173,1.9,5.207,5.207,0,0,1,4.6,1.417a5.491,5.491,0,0,1,3.84.652l14.35,7.969A5.756,5.756,0,0,1,26.634,6.38l16.314-4.5a12.51,12.51,0,0,1,3.264-.435h5.435a6.948,6.948,0,0,1,3.63,1.03l3.6,2.212V0H73V29ZM61.7,2.9V26.1h8.476V2.9ZM5.67,4.218H5.66a2.954,2.954,0,0,0-.541.051,2.6,2.6,0,0,0-.707.236A2.786,2.786,0,0,0,3.2,5.655,3,3,0,0,0,2.821,7.1a2.906,2.906,0,0,0,1.4,2.518L29.978,25.436a4.165,4.165,0,0,0,2.251.664H52.137a4.154,4.154,0,0,0,1.554-.3l5.182-2.1V8.072l-5.05-3.1a4.159,4.159,0,0,0-2.177-.618H46.232a9.642,9.642,0,0,0-2.552.345L27.373,9.173a2.926,2.926,0,0,0-2.078,2.558c-.012.122,0,.471,0,.474a2.643,2.643,0,0,0,.082.536A2.843,2.843,0,0,0,28.1,14.877h.006c.176-.015,1.03-.2,1.647-.341l14.629-4.013.728,2.8L30.435,17.356a13.523,13.523,0,0,1-2.328.426,5.7,5.7,0,0,1-5.461-4.291,1.059,1.059,0,0,1-.025-.153c0-.037-.008-.074-.016-.112L7.044,4.6A2.708,2.708,0,0,0,5.67,4.218Z" transform="translate(12 56)"></path>
1613 <path class="a" d="M85,49H25.5V30.6a15.422,15.422,0,0,1-8.068-2.642l-.857-.576H14.167v4.324H0V0H14.167V2.777l1.439.051c.056,0,.112,0,.168,0a4.151,4.151,0,0,0,1.888-.456L20.836.761A7.084,7.084,0,0,1,24,0H41.851a12.412,12.412,0,0,1,4.862.987A12.59,12.59,0,0,1,50.83,3.8l7.6,7.731H85V49ZM28.333,21.357V46.118H82.166V14.412h-36.6L48.4,17.294H72.25v1.441A5.723,5.723,0,0,0,77.917,24.5h1.417V36.03H77.917a5.723,5.723,0,0,0-5.666,5.764v1.441h-34V41.794a5.723,5.723,0,0,0-5.666-5.764H31.167V24.5h1.417a5.643,5.643,0,0,0,4.541-2.342L34.708,19.7A10.158,10.158,0,0,1,29.1,21.386C28.847,21.386,28.588,21.376,28.333,21.357Zm10.82,2.855A8.427,8.427,0,0,1,34,27.263v6a8.612,8.612,0,0,1,6.965,7.087H69.534A8.612,8.612,0,0,1,76.5,33.267v-6a8.612,8.612,0,0,1-6.966-7.087H50.564a5.769,5.769,0,0,1-.464,5.172,7.083,7.083,0,0,1,9.892-.528,7.369,7.369,0,0,1,.969,10.029,7.085,7.085,0,0,1-9.8,1.443,7.364,7.364,0,0,1-1.863-9.9,5.638,5.638,0,0,1-8-.007Zm16.1,1.73a4.324,4.324,0,1,0,4.25,4.323A4.292,4.292,0,0,0,55.25,25.942ZM2.833,2.883V28.823h8.5V2.883ZM14.167,5.661V24.5h3.258L19,25.561a12.623,12.623,0,0,0,6.5,2.156V20.753A10.234,10.234,0,0,1,22.614,19.1l-.831-.684,1.786-2.239.822.677a7.41,7.41,0,0,0,9.548-.144l.992-.865,8.358,8.5a2.808,2.808,0,0,0,4.018-.008A2.93,2.93,0,0,0,47.3,20.25L37.292,10.069l2-2.037,3.438,3.5H54.423l-5.6-5.693a9.792,9.792,0,0,0-3.2-2.186,9.652,9.652,0,0,0-3.78-.768H24a4.215,4.215,0,0,0-1.9.456L18.928,4.955a7.05,7.05,0,0,1-3.171.76c-.084,0-.17,0-.254,0Z"></path>
1614 </svg>
1615 </div>
1616 <div class="col-8 col-md-12 d-flex">
1617 <span class="align-self-center w-100">@Translate("Rabat på kurser")</span>
1618 </div>
1619 </div>
1620 </div>
1621 <div class="col-12 col-md-4">
1622 <div class="row">
1623 <div class="col-4 col-md-12">
1624 <svg xmlns="http://www.w3.org/2000/svg" width="102.271" height="75.877" viewBox="0 0 102.271 75.877">
1625 <defs>
1626 <style>.become-member.become-member-v2 .b{fill:none;stroke:#444969;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px;}</style>
1627 </defs>
1628 <g transform="translate(-646.5 -460.5)">
1629 <g transform="translate(648 462)">
1630 <path class="b" d="M1162.88,273.455s0-16.192-11.465-18.672a12.2,12.2,0,1,0-9.442,0c-11.461,2.481-11.462,18.671-11.462,18.671" transform="translate(-1097.061 -200.578)"></path>
1631 <g transform="translate(0 0)">
1632 <path class="b" d="M1044.968,138.788a12.2,12.2,0,1,0-16.921,11.251c-11.461,2.481-11.461,18.671-11.461,18.671" transform="translate(-1016.585 -126.589)"></path>
1633 <path class="b" d="M1089.774,193.352a12.2,12.2,0,1,0-13.395,19.83c-11.461,2.481-11.462,18.671-11.462,18.671" transform="translate(-1050.726 -171.193)"></path>
1634 <g transform="translate(60.223)">
1635 <path class="b" d="M1258.013,138.788a12.2,12.2,0,1,1,16.921,11.251c11.461,2.481,11.462,18.671,11.462,18.671" transform="translate(-1247.348 -126.589)"></path>
1636 <path class="b" d="M1221.691,193.352a12.2,12.2,0,1,1,13.395,19.83c11.461,2.481,11.462,18.671,11.462,18.671" transform="translate(-1221.691 -171.193)"></path>
1637 </g>
1638 <path class="b" d="M1168.483,138.788a12.2,12.2,0,0,0-24.4,0" transform="translate(-1106.649 -126.589)"></path>
1639 </g>
1640 </g>
1641 </g>
1642 </svg>
1643 </div>
1644 <div class="col-8 col-md-12 d-flex">
1645 <span class="align-self-center w-100">@Translate("Arrangementer og events")</span>
1646 </div>
1647 </div>
1648
1649 </div>
1650 </div>
1651 </div>
1652 </div>
1653 <div class="col-12 col-lg-6">
1654 <div class="benefits-right">
1655 <img src="/Admin/Public/GetImage.ashx?Image=/Files/Images/Graphics/Content/Medlemsfordele_banner.jpg&Width=491&Height=296&Crop=7&format=webp&Quality=85" alt="1 person forklarer en anden at hvis du er ansat i en medlemsvirksomhed, så kan du blive interessemedlem gratis" title="Bliv medlem" />
1656 <div>
1657 @*<p>@Translate("Er du ansat i en medlemsvirksomhed, kan du blive gratis interessemedlem")</p>*@
1658 <span class="line-link">@Translate("Læs mere")</span>
1659 </div>
1660 </div>
1661 </div>
1662 </div>
1663 </a>
1664
1665
1666 }
1667
1668 </div>
1669 </div>
1670 </main>
1671
1672 @SnippetStart("ParagraphJs")
1673 <script id="template-page-@Model.ID" type="text/template">
1674 <a title="@Translate("Læs mere om"): {{name}}" href="/Default.aspx?ID={{id}}" class="latest-news-box">
1675 <p class="sub-title">
1676 @*@Translate("Fagligt nyt") <span>----</span>*@
1677 {{publishDateShortString}}
1678 </p>
1679 <p class="latest-news-title">{{name}}</p>
1680
1681 </a>
1682
1683
1684
1685
1686 </script>
1687
1688
1689
1690 @* NEW CAROUSEL -- -- -- -- -- -- -- -- --*@
1691 <script>
1692
1693 </script>
1694
1695 @* /NEW CAROUSEL -- -- -- -- -- -- -- -- --*@
1696
1697 @SnippetEnd("ParagraphJs")
1698
1699 <footer>
1700 <div class="container">
1701 <div class="row">
1702 <div class="col">
1703 <address>
1704 <p>
1705 <strong>@companyName</strong>
1706 <br />
1707 @companyAddress
1708 <br />
1709 @companyZipAndCity
1710 </p>
1711 <p>
1712 @Translate("Telefon"):
1713 <a href="tel:@companyPhoneClean">@companyPhone</a>
1714 <br />
1715 @Translate("E-mail"):
1716 @Rot13_Email(companyMail)
1717 </p>
1718 <p>
1719 @Translate("CVR"):
1720 @companyCVR
1721 </p>
1722 @*<p><a href="#" title="">Intranet</a></p>*@
1723
1724 </address>
1725 </div>
1726 <div class="col-12 col-sm-6 col-md-8 ml-auto">
1727 <div class="row">
1728 <div class="col some">
1729
1730 @if (!string.IsNullOrWhiteSpace(companyLinkedin)) {
1731 <a href="@companyLinkedin" target="_blank" title="LinkedIn">
1732 <i class="fab fa-linkedin-in"></i>
1733 </a>
1734 }
1735
1736 @if (!string.IsNullOrWhiteSpace(companyTwitter)) {
1737 <a href="@companyTwitter" target="_blank" title="Twitter">
1738 <i class="fab fa-twitter"></i>
1739 </a>
1740 }
1741
1742 @if (!string.IsNullOrWhiteSpace(companyFacebook)) {
1743 <a href="@companyFacebook" target="_blank" title="Facebook">
1744 <i class="fab fa-facebook-f"></i>
1745 </a>
1746 }
1747 @if (!string.IsNullOrWhiteSpace(companyInstagram)) {
1748 <a href="@companyInstagram" target="_blank" title="Instagram">
1749 <i class="fab fa-instagram"></i>
1750 </a>
1751 }
1752 @if (!string.IsNullOrWhiteSpace(companyYouTube)) {
1753 <a href="@companyYouTube" target="_blank" title="Youtube">
1754 <i class="fab fa-youtube"></i>
1755 </a>
1756 }
1757 </div>
1758 </div>
1759 <div class="row">
1760
1761 <div class="col footer-link-container">
1762
1763 <div class="row">
1764 @for (int i = 1; i <= 3; i++) {
1765 var itemsList = Model.Area.Item.GetItems("FooterLinksColumn" + i);
1766 if (itemsList != null && itemsList.Any()) {
1767 <div class="col-12 col-md-12 col-lg-4">
1768 <ul class="line-list">
1769 @foreach (var column in itemsList) {
1770 <li>
1771 <a href=" @column.GetString("Link")">
1772 <span>
1773 @column.GetString("Text")
1774 </span>
1775 </a>
1776 </li>
1777 }
1778 </ul>
1779 </div>
1780 }
1781 }
1782
1783 </div>
1784 </div>
1785 </div>
1786 </div>
1787 </div>
1788 <div class="row">
1789 <div class="col-12 text-center footer-payment-options" style="color:#ffffff">
1790 Sikker betaling: <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 481.23 289.89" alt="Dankort" aria-label="Dankort">
1791 <g>
1792 <path class="svg-dankort-cl1" d="M144.96,2.89C66.62,2.89,2.89,66.61,2.89,144.94s63.73,142.07,142.07,142.07h191.33c78.33,0,142.05-63.73,142.05-142.07S414.62,2.89,336.29,2.89h-191.33Z" />
1793 <path class="svg-dankort-cl3 svg-dankort-contur" d="M336.29,289.89h-191.33C65.03,289.89,0,224.87,0,144.94S65.03,0,144.96,0h191.33c79.92,0,144.94,65.02,144.94,144.94s-65.02,144.95-144.94,144.95M144.96,2.89C66.62,2.89,2.89,66.61,2.89,144.94s63.73,142.07,142.07,142.07h191.33c78.33,0,142.05-63.73,142.05-142.07S414.62,2.89,336.29,2.89h-191.33Z" />
1794 <path class="svg-dankort-cl2" d="M369.74,136.26l63.62,75.67c13.18-19.04,20.92-42.13,20.92-66.99,0-26.24-8.62-50.51-23.17-70.13l-61.37,61.46Z" />
1795 <path class="svg-dankort-cl2" d="M189.45,68.42c47.51,0,83.31,12.09,87,52.12l50-52.13h99.57c-21.66-25.35-53.85-41.46-89.73-41.46h-191.33c-35.89,0-68.09,16.1-89.75,41.46h134.23Z" />
1796 <path class="svg-dankort-cl2" d="M111.16,118.89l-16.97,46.65h68.46c20.24,0,26.36-8.38,30.89-24.51,4.48-15.95-6.78-22.14-20.61-22.14h-61.77Z" />
1797 <path class="svg-dankort-cl2" d="M326.86,218.3l-52.89-66.83c-9.78,45.57-41.79,66.83-101.8,66.83H52.59c21.63,27.18,55,44.65,92.36,44.65h191.33c37.36,0,70.71-17.45,92.34-44.64h-101.77Z" />
1798 </g>
1799 </svg>
1800 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80.21 26.61" alt="Visa" aria-label="Visa">
1801
1802 <g>
1803 <path class="svg-visa-cl1" d="M39.71.47l-5.36,25.74h-6.48L33.23.47h6.48ZM66.98,17.09l3.41-9.67,1.96,9.67h-5.37ZM74.21,26.21h5.99L74.97.47h-5.53c-1.25,0-2.3.74-2.76,1.89l-9.73,23.85h6.81l1.35-3.84h8.31l.79,3.84h0ZM57.3,17.81c.03-6.79-9.14-7.17-9.08-10.2.02-.92.88-1.9,2.75-2.16.93-.12,3.49-.22,6.39,1.15l1.14-5.46c-1.56-.58-3.57-1.14-6.06-1.14-6.41,0-10.91,3.5-10.95,8.51-.04,3.71,3.22,5.77,5.67,7.01,2.53,1.26,3.38,2.07,3.36,3.2-.02,1.73-2.02,2.49-3.88,2.52-3.26.05-5.15-.91-6.66-1.63l-1.18,5.64c1.52.71,4.31,1.33,7.21,1.37,6.81,0,11.27-3.46,11.29-8.81h0ZM30.45.47l-10.5,25.74h-6.85L7.93,5.67c-.31-1.26-.59-1.73-1.54-2.26C4.84,2.54,2.26,1.72,0,1.22L.15.47h11.03c1.4,0,2.67.96,2.99,2.62l2.73,14.9L23.64.47h6.81Z" />
1804 </g>
1805 </svg>
1806 <svg class="svg-icon mastercard-svg-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71.08 43.83" aria-label="Mastercard">
1807
1808 <g>
1809 <rect class="svg-mastercard-cl1" x="25.93" y="4.69" width="19.22" height="34.45" />
1810 <path class="svg-mastercard-cl2" d="M27.15,21.91c0-7,3.29-13.21,8.36-17.23C31.79,1.77,27.09,0,21.97,0,9.82,0,0,9.8,0,21.91s9.82,21.91,21.97,21.91c5.13,0,9.82-1.77,13.55-4.69-5.06-3.96-8.36-10.23-8.36-17.23Z" />
1811 <path class="svg-mastercard-cl3" d="M71.08,21.91c0,12.11-9.82,21.91-21.97,21.91-5.13,0-9.82-1.77-13.55-4.69,5.13-4.02,8.36-10.23,8.36-17.23s-3.29-13.21-8.36-17.23c3.72-2.92,8.42-4.69,13.55-4.69,12.14,0,21.97,9.86,21.97,21.91Z" />
1812 </g>
1813 </svg>
1814 <div class="col-12 text-right copyright" style="top:2px;right:0;">© @Model.Item.GetString("CompanyName") @DateTime.Now.Year</div>
1815
1816 </div>
1817 </div>
1818 </div>
1819 </footer>
1820
1821
1822 @Model.Area.Item.GetString("ScriptsBodyEnd")
1823
1824 @{
1825 }
1826
1827 <div class="modal fade" id="modal-ordercart" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
1828 <div class="modal-dialog modal-dialog-centered" role="document">
1829 <div class="modal-content">
1830 <div class="modal-body"></div>
1831 </div>
1832 </div>
1833 </div>
1834
1835 <script type="text/javascript">
1836 function addCourse2Cart(productId) {
1837 var $modal = $('#modal-ordercart');
1838 var $body = $('.modal-body', $modal);
1839
1840 var redirect = '/Files/Handlers/MiscHandler.ashx?methodName=AfterAddCourse2Cart&_=' + (new Date()).getTime();
1841
1842 var memberSubscriberGroup = ''; @*'@(cartModal_Member?.SubscriberGroup?.Value ?? string.Empty)'.toUpperCase();*@
1843 var notAllowed = {
1844 subscriberGroups : ['REV_UM', 'SKAT_UM', 'CSR_UM', 'IT_UM', 'MED_ØVR'/*, 'EJMEDL_PER'*/],
1845 courses : ['41004', '41005', '41006', '41009', '41011', '41012', '41013', '41014']
1846 };
1847
1848 if (notAllowed.subscriberGroups.includes(memberSubscriberGroup) && notAllowed.courses.includes(productId)) {
1849 $body.empty().html([
1850 '<div class="text-center py-lg-3">',
1851 '<h4>@(Translate("Kursusnr.")): <strong>' + productId + '</strong></h4>',
1852
1853 '<p>Interessemedlemmer der <u>ikke</u> er ansat i en medlemsvirksomshed, kan desværre ikke deltage på dette kursus.</p>',
1854
1855 '<div class="row justify-content-center">',
1856 '<div class="col-auto">',
1857 '<button type="button" class="btn btn-primary btn-block mb-2" data-dismiss="modal">@(Translate("Luk"))</button>',
1858 '</div>',
1859 '</div>',
1860 '</div>'
1861 ].join(''));
1862
1863 $modal.modal();
1864 return;
1865 }
1866
1867 $body.empty().html([
1868 '<div class="text-center py-lg-3">',
1869 '<div class="fa-2x">',
1870 '<i class="fas fa-spinner fa-pulse"></i> @(Translate("Vent venligst..."))',
1871 '</div>',
1872 '</div>'
1873 ].join(''));
1874
1875 async function _add() {
1876 var before = await postAsync('/Files/Handlers/MiscHandler.ashx?methodName=BeforeAddCourse2Cart', { 'ProductId' : productId });
1877
1878 if (before.Error) {
1879 var err = before.Error;
1880
1881 if (err == 'Product_NotFound')
1882 err = 'Kursus findes ikke!';
1883
1884 if (err == 'Product_AlreadyAdded')
1885 err = 'Kursus er allerede tilføjet i kurven!';
1886
1887 if (err == 'Order_Normal:Product_InclVAT' || err == 'Order_InclVAT:Product_Normal')
1888 err = 'Det er ikke muligt at tilføje dette kursus pga. der er konflikt med hensyn til betaling.<br />Færdiggør indkøbskurven og prøv igen.';
1889
1890 if (err == 'Order_InclVAT:Product_InclVAT')
1891 err = 'Der er 1 kursus i indkøbskurven som skal færdiggøres før dette kursus kan tilføje.';
1892
1893 $body.empty().html([
1894 '<div class="text-center py-lg-3">',
1895 '<p>' + err + '</p>',
1896
1897 '<div class="row">',
1898 '<div class="col-sm-6">',
1899 '<button type="button" class="btn btn-primary btn-block mb-2" data-dismiss="modal">@(Translate("Luk"))</button>',
1900 '</div>',
1901 '<div class="col-sm-6">',
1902 '<a href="/Default.aspx?Id=@(GetPageIdByNavigationTag("kurv"))" class="btn btn-secondary btn-block">@(Translate("Gå til indkøbskurven"))</a>',
1903 '</div>',
1904 '</div>',
1905 '</div>'
1906 ].join(''));
1907 return;
1908 }
1909
1910 var data = await postAsync('/Default.aspx', {
1911 'CartCmd' : 'Add',
1912 'ProductId' : productId,
1913 'Quantity' : 1,
1914 'Redirect' : redirect
1915 });
1916
1917 if (!data) {
1918 $body.empty().html([
1919 '<div class="text-center py-lg-3">',
1920 '<p>@(Translate("Noget gik galt. Prøv venligst igen"))!</p>',
1921
1922 '<div class="row">',
1923 '<div class="col-sm-6">',
1924 '<button type="button" class="btn btn-primary btn-block mb-2" data-dismiss="modal">@(Translate("Luk"))</button>',
1925 '</div>',
1926 '<div class="col-sm-6">',
1927 '<a href="/Default.aspx?Id=@(GetPageIdByNavigationTag("kurv"))" class="btn btn-secondary btn-block">@(Translate("Gå til indkøbskurven"))</a>',
1928 '</div>',
1929 '</div>',
1930 '</div>'
1931 ].join(''));
1932 return;
1933 }
1934
1935 $body.empty().html([
1936 '<div class="text-center py-lg-3">',
1937 '<h4>@(Translate("Kursusnr.")): <strong>' + data.ProductId + '</strong></h4>',
1938
1939 '<p>@(Translate("Er tilføjet til indkøbskurven"))!</p>',
1940
1941 '<div class="row">',
1942 '<div class="col-sm-6">',
1943 '<button type="button" class="btn btn-primary btn-block mb-2" data-dismiss="modal">@(Translate("Fortsæt med at handle"))</button>',
1944 '</div>',
1945 '<div class="col-sm-6">',
1946 '<a href="/Default.aspx?Id=@(GetPageIdByNavigationTag("kurv"))" class="btn btn-secondary btn-block">@(Translate("Gå til indkøbskurven"))</a>',
1947 '</div>',
1948 '</div>',
1949 '</div>'
1950 ].join(''));
1951
1952 var $li = $('li.nav-item[data-cartcount]', '.service-nav');
1953 var $badge = $('span.badge', $li);
1954
1955 $li.attr('data-cartcount', data.OrderLines.length);
1956 $badge.html(data.OrderLines.length);
1957
1958 }
1959
1960 $modal.off('shown.bs.modal');
1961 $modal.on('shown.bs.modal', function() {
1962 setTimeout(_add, 500);
1963 });
1964
1965 $modal.modal();
1966 }
1967 </script>
1968
1969
1970 @RenderSnippet("ParagraphJs")
1971
1972
1973
1974
1975
1976 @* STICKY POPUP --------------------------------------------------------------------------------------------- *@
1977
1978 @if (stickyPopupActive) {
1979
1980 @* Button trigger modal *@
1981 if (!string.IsNullOrEmpty(stickyPopupButtonIconSrc)) {
1982 <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#sticky-popup">
1983 <img src="@stickyPopupButtonIconSrc" alt="">
1984 </button>
1985 }
1986
1987 @* Modal *@
1988 <div class="modal" id="sticky-popup" data-backdrop="false" data-keyboard="false" tabindex="-1" aria-labelledby="sticky-popup-title" aria-hidden="true">
1989 <div class="modal-dialog">
1990 <div class="modal-content">
1991
1992 <div class="modal-body text-center">
1993
1994 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1995 <span aria-hidden="true">×</span>
1996 </button>
1997
1998 @if (!string.IsNullOrWhiteSpace(stickyPopupHeader)) {
1999 <h3 class="modal-title" id="sticky-popup-title">@stickyPopupHeader</h3>
2000 }
2001 @if (!string.IsNullOrWhiteSpace(stickyPopupText)) {
2002 <p>@stickyPopupText</p>
2003 }
2004 @if (!string.IsNullOrEmpty(stickyPopupImageSrc)) {
2005 <img src="@(stickyPopupImageSrc)">
2006 }
2007
2008 @if (!string.IsNullOrWhiteSpace(stickyPopupLink) && !string.IsNullOrWhiteSpace(stickyPopupLinkText)) {
2009 <a href="@stickyPopupLink" title="" class="btn">
2010 <span>
2011 @stickyPopupLinkText
2012 </span>
2013 </a>
2014 }
2015
2016 </div>
2017 </div>
2018 </div>
2019 </div>
2020
2021 }
2022
2023 @* COOKIE SCRIPT *@
2024
2025 <script>
2026 // Helper til at sætte cookie
2027 function setCookie(name, value, days) {
2028 const d = new Date();
2029 d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
2030 document.cookie = name + "=" + value + ";expires=" + d.toUTCString() + ";path=/";
2031 }
2032
2033 // Helper til at hente cookie
2034 function getCookie(name) {
2035 const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
2036 return match ? match[2] : null;
2037 }
2038
2039 // Tjek om URL indeholder en parameter vi vil udelukke
2040 function hasExcludedParams() {
2041 const excluded = ["utm", "msdynmkt"]; // kan nemt udvides
2042
2043 // 1) Tjek query params (?utm_source=... osv.)
2044 const urlParams = new URLSearchParams(window.location.search);
2045 for (const key of urlParams.keys()) {
2046 for (const ex of excluded) {
2047 if (key.toLowerCase().startsWith(ex)) {
2048 return true;
2049 }
2050 }
2051 }
2052
2053 // 2) Tjek hash (#msdynmkt_trackingcontext=... osv.)
2054 const hash = window.location.hash.toLowerCase();
2055 for (const ex of excluded) {
2056 if (hash.includes(ex)) {
2057 return true;
2058 }
2059 }
2060
2061 return false;
2062 }
2063
2064 // Når dokumentet er klar
2065 document.addEventListener("DOMContentLoaded", function () {
2066 // Hvis vi har ekskluderede parametre → vis aldrig popup
2067 if (hasExcludedParams()) return;
2068
2069 // Tjek cookie
2070 if (!getCookie("sticky-popup-250825")) {
2071 // Vent 5 sek før vi viser modal
2072 setTimeout(function () {
2073 $('#sticky-popup').modal('show');
2074 }, 5000);
2075 }
2076
2077 // Hvis modal lukkes via kryds → sæt cookie
2078 $('#sticky-popup').on('hide.bs.modal', function () {
2079 setCookie("sticky-popup-250825", "hidden", 7); // varer i 7 dage
2080 });
2081
2082 // Hvis brugeren klikker på linket → sæt cookie
2083 const btn = document.querySelector('#sticky-popup a.btn');
2084 if (btn) {
2085 btn.addEventListener('click', function () {
2086 setCookie("sticky-popup-250825", "hidden", 7);
2087 });
2088 }
2089 });
2090 </script>
2091
2092
2093 @* /COOKIESCRIPT *@
2094
2095 @* /STICKY POPUP --------------------------------------------------------------------------------------------- *@
2096
2097
2098
2099 @*Google adservice cookie*@
2100 @if (!System.Web.HttpContext.Current.Request.Url.AbsoluteUri.StartsWith("https://stagingweb.fsr.dk")) {
2101
2102 <script type="text/javascript">
2103 /* <![CDATA[ */
2104 var google_conversion_id = 967315187;
2105 var google_custom_params = window.google_tag_params;
2106 var google_remarketing_only = true;
2107 /* ]]> */
2108 </script>
2109 <script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js">
2110 </script>
2111 <noscript>
2112 <div style="display: inline;">
2113 <img height="1" width="1" style="border-style: none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/967315187/?guid=ON&script=0" />
2114 </div>
2115 </noscript>
2116 <script type="text/javascript">
2117 (function (e, t, o, n, p, r, i) { e.visitorGlobalObjectAlias = n; e[e.visitorGlobalObjectAlias] = e[e.visitorGlobalObjectAlias] || function () { (e[e.visitorGlobalObjectAlias].q = e[e.visitorGlobalObjectAlias].q || []).push(arguments) }; e[e.visitorGlobalObjectAlias].l = (new Date).getTime(); r = t.createElement("script"); r.src = o; r.async = true; i = t.getElementsByTagName("script")[0]; i.parentNode.insertBefore(r, i) })(window, document, "https://diffuser-cdn.app-us1.com/diffuser/diffuser.js", "vgo");
2118 vgo('setAccount', '252609999');
2119 vgo('setTrackByDefault', true);
2120
2121 vgo('process');
2122 </script>
2123 <script type="text/javascript">
2124 _linkedin_partner_id = "1237129";
2125 window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];
2126 window._linkedin_data_partner_ids.push(_linkedin_partner_id);
2127 </script>
2128 <script type="text/javascript">
2129 (function (l) {
2130 if (!l) {
2131 window.lintrk = function (a, b) { window.lintrk.q.push([a, b]) };
2132 window.lintrk.q = []
2133 }
2134 var s = document.getElementsByTagName("script")[0];
2135 var b = document.createElement("script");
2136 b.type = "text/javascript"; b.async = true;
2137 b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js";
2138 s.parentNode.insertBefore(b, s);
2139 })(window.lintrk);
2140 </script>
2141 <noscript>
2142 <img height="1" width="1" style="display:none;" alt="linkedin" src="https://px.ads.linkedin.com/collect/?pid=1237129&fmt=gif" />
2143 </noscript>
2144 }
2145
2146
2147 @using Dynamicweb.Rendering
2148 @using Dynamicweb.Frontend
2149 @inherits ViewModelTemplate<PageViewModel>
2150 @if (Dynamicweb.Security.UserManagement.User.GetCurrentBackendUser() != null || Pageview.User != null && Pageview.User.AllowBackend) {
2151 <div class="dropdown page-edit dropup" style="position: fixed; bottom: 5rem; right: 10px; z-index: 100">
2152 <button class="btn btn-secondary dropdown-toggle" type="button" id="page-edit-button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2153 @Translate("Page actions")
2154 </button>
2155 <div class="dropdown-menu dropdown-menu-right" aria-labelledby="page-edit-button">
2156 @if (Pageview.Page.Item == null) {
2157 <a class="dropdown-item" target="backend" href="/Admin/Content/ParagraphList.aspx?PageID=@Pageview.Page.ID">@Translate("Edit paragraphs")</a>
2158 } else {
2159 <a class="dropdown-item" target="backend" href="/Admin/Content/Items/Editing/ItemEdit.aspx?PageID=@Pageview.Page.ID">@Translate("Edit page")</a>
2160 <a class="dropdown-item" target="backend" href="/Admin/Content/ParagraphList.aspx?PageID=@Pageview.Page.ID&mode=viewParagraphs">@Translate("Edit paragraphs")</a>
2161 }
2162 </div>
2163 </div>
2164
2165 }
2166 <script defer src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0&features=Element.prototype.classList%2CObject.assign"></script>
2167 <script defer="" src="https://unpkg.com/focus-visible"></script>
2168
2169 @if (Dynamicweb.Security.UserManagement.User.IsFrontendUserLoggedIn()) {
2170 <script type="text/javascript">
2171 (function () {
2172 async function fetchSessID() {
2173 var response = await fetch('/Files/Handlers/MiscHandler.ashx?methodName=SessID', {
2174 method: 'POST',
2175 headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
2176 });
2177 var json = await response.json();
2178 }
2179
2180 setInterval(fetchSessID, 1000 * 60 * 5);
2181 })();
2182 </script>
2183 }
2184
2185 <!-- Start of HubSpot Embed Code -->
2186 <script data-cookieconsent="statistics" type="text/javascript" id="hs-script-loader" async defer src="https://js-eu1.hs-scripts.com/146079294.js"></script>
2187 <!-- End of HubSpot Embed Code -->
2188
2189 <script>
2190 var KarlaStaticTag_fxr0de2yqx9 = document.currentScript;
2191
2192 function loadKarla() {
2193 new KarlaStatic({ model: "xrek9klq32x05Y9JUGAj", type: "search" });
2194 new KarlaStatic({ model: "9vs6iNioWFTQvA9zKdH7", type: "search" });
2195 }
2196
2197 if (window.KarlaStatic) {
2198 loadKarla();
2199 } else {
2200 var KarlaScript = document.getElementById("karlastatic-script");
2201 KarlaScript.onload = loadKarla;
2202 }
2203 </script>
2204 </body>
2205 </html>
2206