Error executing template "Designs/HolseWibroe/_parsed/Nyheder.2024.parsed.cshtml"
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
at System.Collections.Generic.List`1.get_Item(Int32 index)
at CompiledRazorTemplates.Dynamic.RazorEngine_f893ded743c44599961692581679cb82.Execute() in D:\dynamicweb.net\solutions\FlexMedia\cinas.dw9.dynamicweb-cms.com\files\Templates\Designs\HolseWibroe\_parsed\Nyheder.2024.parsed.cshtml:line 874
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.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
2 <!DOCTYPE html>
3 <!--$$SnippetStart(SiteSearchID)-->@Pageview.Area.Item["SiteSearchID"]<!--$$SnippetEnd(SiteSearchID)-->
4 <!--$$SnippetStart(ShopLoginID)-->@Pageview.Area.Item["ShopLoginID"]<!--$$SnippetEnd(ShopLoginID)-->
5 <!--$$SnippetStart(ShopSignupID)-->@Pageview.Area.Item["ShopSignupID"]<!--$$SnippetEnd(ShopSignupID)-->
6 <!--$$SnippetStart(NewUserIDLink)-->@if(Convert.ToInt32(Pageview.Area.Item["NewUser"])>0){string NewUserLink = "/Default.aspx?id=" +Pageview.Area.Item["NewUser"];<a href="@NewUserLink">Blive oprettet som forhandler</a>}<!--$$SnippetEnd(NewUserIDLink)-->
7 <!--$$SnippetStart(DwSearchPhrase)--><!--$$SnippetEnd(DwSearchPhrase)-->
8 <!--$$SnippetStart(MenuProduct)-->
9 @GetValue("DwNavigation(ProdMenu)")
10 <!--$$SnippetEnd(MenuProduct)-->
11
12
13 @*for at den ikke er ikke defineret, bliver defineret under searchv1 SearchBox.html (på søge siden)*@
14 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName">
15 <head>
16 @using System
17 @using System.Web
18 @{
19 var ALL_HTTP = System.Web.HttpContext.Current.Request["ALL_HTTP"];
20 var HTTP_USER_AGENT = System.Web.HttpContext.Current.Request["HTTP_USER_AGENT"];
21 }
22
23 @if(GetGlobalValue("Global:Pageview.Url.Raw").Contains("CountryCode") || GetGlobalValue("Global:Pageview.Url.Raw").Contains("CurrencyCode")){
24 <script>
25 var ID = @GetInteger("DwPageID");
26 alturl = "/Default.aspx?ID=" + ID;
27 window.location.href = alturl;
28 </script>
29 }
30
31 <script>
32 isFlex=false;IsPhone=false;IsTablet=false;IsMobil=false;
33 @if(!string.IsNullOrWhiteSpace(GetGlobalValue("Global:Device.IsMobile"))){
34 <text>IsPhone=true;IsMobil=true;</text>
35 }
36 @if(!string.IsNullOrWhiteSpace(GetGlobalValue("Global:Device.IsTablet"))){
37 <text>IsTablet=true;IsMobil=true;</text>
38 }
39 </script>
40 @*
41 .
42 @GetGlobalValue("Global:Device.IsTablet")
43 .
44 @GetGlobalValue("Global:Device.IsDesktop")
45 .
46 @GetGlobalValue("Global:Device.IsBot")
47 -
48 @GetGlobalValue("Global:Device.IsAndroid")
49 .
50 @GetGlobalValue("Global:Device.IsIOS")
51 .
52 @GetGlobalValue("Global:Device.IsWindows")
53 .
54 @GetGlobalValue("Global:Device.IsOther")
55 -
56 @GetGlobalValue("Global:Device.IsIPhone")
57 .
58 @GetGlobalValue("Global:Device.IsAndroidPhone")
59 .
60 @GetGlobalValue("Global:Device.IsWindowsPhone")
61 .
62 @GetGlobalValue("Global:Device.IsIPad")
63 .
64 @GetGlobalValue("Global:Device.IsAndroidTablet")
65 .
66 @GetGlobalValue("Global:Device.IsWindowsTablet")
67 -
68
69 @GetGlobalValue("Global:Area.ID")
70
71
72 *@
73 @using System
74 @using System.Web
75
76 @{
77 string MD = GetString("Meta.Description");
78
79 }
80
81 <meta charset="utf-8">
82 <meta name="viewport" id="viewport" content="width=device-width, initial-scale=1.0">
83 <meta name="format-detection" content="telephone=no">
84
85
86 @if(GetGlobalValue("Global:Pageview.Url.Raw").Contains("productid") || GetGlobalValue("Global:Pageview.Url.Raw").Contains("&q=") || GetGlobalValue("Global:Pageview.Url.Raw").Contains("groupid") || GetInteger("DwPageID")== 0){
87
88
89 @RenderSnippet("MetaCanonical")
90 @RenderSnippet("MetaDescription")
91
92 if(GetGlobalValue("Global:Pageview.Url.Raw").Contains("pop=true") || GetGlobalValue("Global:Pageview.Url.Raw").Contains("LoginAction=Recovery")){
93 string cleanURL = @GetGlobalValue("Global:Pageview.Url.Raw");
94 cleanURL = cleanURL.Replace("?pop=true","");
95 cleanURL = cleanURL.Replace("&pop=true","");
96 cleanURL = cleanURL.Replace("&LoginAction=Recovery","");
97 <!-- login fix -->
98 <meta name="robots" content="noindex, nofollow" r="1">
99 }
100
101 }else{
102
103 <title>@GetValue("Title")</title>
104 @GetValue("MetaTags")
105 @GetValue("CopyRightNotice")
106
107
108
109
110 if(!string.IsNullOrWhiteSpace(GetString("Item.Page.OpenGraphImage"))){
111
112 <meta property="og:image" content='https://www.holseogwibroe.dk@(GetString("Item.Page.OpenGraphImage"))'>
113
114 } else {
115 <meta property="og:image" content='https://www.holseogwibroe.dk/Files/Images/HolseWibroe/holse_og.jpg'>
116 }
117
118 if(!GetString("MetaTags").Contains("canonical")){
119
120 if(GetGlobalValue("Global:Pageview.Url").Contains("soeg?q=") || GetGlobalValue("Global:Pageview.Url").Contains("Stype=") || GetGlobalValue("Global:Pageview.Url").Contains("Ptype=") || GetGlobalValue("Global:Pageview.Url").Contains("media=")){
121 string cleanURL = @GetGlobalValue("Global:Pageview.Url");
122 cleanURL = cleanURL.Substring(0, cleanURL.IndexOf("?"));
123 <!-- search canolical fix -->
124 <link rel="canonical" href="@cleanURL">
125 }
126
127 else if(GetGlobalValue("Global:Pageview.Url.Raw").Contains("pop=true") || GetGlobalValue("Global:Pageview.Url.Raw").Contains("LoginAction=Recovery")){
128 string cleanURL = @GetGlobalValue("Global:Pageview.Url.Raw");
129 cleanURL = cleanURL.Replace("?pop=true","");
130 cleanURL = cleanURL.Replace("&pop=true","");
131 cleanURL = cleanURL.Replace("&LoginAction=Recovery","");
132 <!-- login canolical fix -->
133 <link rel="canonical" href="@cleanURL"><meta r="2" name="robots" content="noindex, nofollow">
134 }
135
136 }else if(GetGlobalValue("Global:Pageview.Url.Raw").Contains("pop=true") || GetGlobalValue("Global:Pageview.Url.Raw").Contains("LoginAction=Recovery")){
137 string cleanURL = @GetGlobalValue("Global:Pageview.Url.Raw");
138 cleanURL = cleanURL.Replace("?pop=true","");
139 cleanURL = cleanURL.Replace("&pop=true","");
140 cleanURL = cleanURL.Replace("&LoginAction=Recovery","");
141 <!-- login fix -->
142 <meta name="robots" r="3" content="noindex, nofollow">
143 }
144
145 <meta property="og:url" content='@GetGlobalValue("Global:Request.AbsoluteUri")'>
146 <meta property="og:title" content="@Dynamicweb.Frontend.PageView.Current().Meta.Title">
147
148 if(!string.IsNullOrWhiteSpace(GetString("Meta.Description"))){
149
150 <meta property="og:description" content='@(GetString("Meta.Description"))'>
151 }
152
153 <meta t="t2" property="og:type" content="Website">
154
155
156
157 }
158
159
160 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
161 <!-- Design og udvikling Flex Media http://www.flex-media.dk -->
162 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - h -->
163
164
165
166
167 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.GTMcode"))) {
168 string Gcode = GetString("Item.Area.GTMcode");
169 <!-- Google Tag Manager -->
170 <script async="">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
171 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
172 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
173 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
174 })(window,document,'script','dataLayer','@Gcode');</script>
175 <!-- End Google Tag Manager -->
176 }
177
178
179 <!-- her -->
180 <!-- link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous" -->
181
182 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/default.css?v=1.06">
183
184 <script type="text/javascript">var LoadMe = new Array();</script>
185 <!--script defer src="//ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script-->
186 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
187
188
189
190
191
192 <!-- script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script -->
193
194
195 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Favicon"))) {
196 var Favicon = @GetValue("Item.Area.Favicon");
197 <link rel="icon" type="image/png" href="@Favicon">
198 }
199
200 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.HeadOpen"))) {
201 @GetString("Item.Area.HeadOpen")
202 }
203
204 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.AnalyticCode")) && string.IsNullOrWhiteSpace(GetString("Item.Area.GTMcode"))) {
205 string acode = GetString("Item.Area.AnalyticCode");
206 <!-- Analytics code -->
207 <script async="">
208 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
209 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
210 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
211 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
212 ga('create', '@acode', 'auto');
213 ga('require', 'displayfeatures');
214 ga('require', 'ecommerce');
215 ga('send', 'pageview');
216 </script>
217 <!-- script src="script/google.js" type="text/javascript"></script -->
218 }
219
220
221
222 <noscript id="deferred-styles">
223
224
225 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/Swiper/dist/css/swiper.min.css">
226 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/lightbox2.6/css/lightbox.css" type="text/css" media="screen">
227 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/page.css?ver=1.42" type="text/css">
228 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/ecom.css?ver=1.41" type="text/css">
229 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/grids.css" type="text/css">
230 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/flexform.css" type="text/css">
231 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/footer.css" type="text/css">
232 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/Fonts/Default_Flexset/style.css" type="text/css">
233
234 <link href="https://fonts.googleapis.com/css?family=Open+Sans:400i,600,700,800%7CUbuntu:400,500,700&display=swap" rel="stylesheet" type="text/css">
235
236 </noscript>
237
238
239
240
241
242
243 @RenderSnippet("StyleSheet")
244 @RenderSnippet("JavaScript")
245
246 @GetValue("Stylesheets")
247 @GetValue("Javascripts")
248 </head>
249 <body id="BodyId">
250 @using System
251 @using System.Web
252 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.GTMcode"))) {
253 string Gcode = GetString("Item.Area.GTMcode");
254 <!-- Google Tag Manager (noscript) -->
255 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=@Gcode" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
256 <!-- End Google Tag Manager (noscript) -->
257 }
258
259 <script>
260 var loadDeferredStyles=function(){
261 var addStylesNode=document.getElementById("deferred-styles");
262 var replacement=document.createElement("div");
263 replacement.innerHTML=addStylesNode.textContent;
264 document.body.appendChild(replacement)
265 addStylesNode.parentElement.removeChild(addStylesNode);
266 };
267 var raf=requestAnimationFrame||mozRequestAnimationFrame||webkitRequestAnimationFrame||msRequestAnimationFrame;
268 if(raf)raf(function(){window.setTimeout(loadDeferredStyles,0);});
269 else window.addEventListener('load',loadDeferredStyles);
270 </script>
271
272
273
274 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.BodyOpen"))) {
275 @GetString("Item.Area.BodyOpen")
276 }
277
278
279 @{
280 if (GetBoolean("Item.Area.EnableUpgradingPopup")){
281
282 if(Convert.ToInt32(@Pageview.Area.Item["UpgradingPopupId"].ToString())>0){
283
284 @RenderParagraphContent(Convert.ToInt32(@Pageview.Area.Item["UpgradingPopupId"].ToString()))
285
286 }
287
288
289 }
290 }
291 @using System
292 @using System.Web
293 @using Dynamicweb.Rendering
294 @using Dynamicweb.Security.UserManagement
295 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
296
297 @{
298 bool IsUser = (User.GetCurrentExtranetUser() != null);
299 bool CanImpersonate = (GetLoop("DWExtranetSecondaryUsers").Count > 0);
300 bool IsImpersonateing = !string.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.SecondaryUser.UserID"));
301 }
302
303 @if(IsUser){
304 // if(GetGlobalValue("Global:Extranet.Groups").Contains(@GetString("Item.Area.UserGroupID"))){}
305 <link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/css/impersonate.css">
306 <div id="Impersonate" isimp="@IsImpersonateing">
307 <div class="spacer"></div>
308 @if(CanImpersonate){
309 <div class="container">
310 @if(!IsImpersonateing){
311 <div class="title"><a class="Toggle" onclick="Imp_Toggle()">@Translate("Imp:Impersonate","Impersonate")</a></div>
312 <div class="list">
313 <form method="post">
314 <select id="DWExtranetSecondaryUserSelector" name="DWExtranetSecondaryUserSelector">
315 <option value="">@Translate("Imp:SelectUser","Select user")</option>
316
317 @{
318 var secondaryUsers = User.GetCurrentUser(PagePermissionLevels.Frontend)?.SecondaryUsers.Where(u => u.HasGroup(17)).OrderBy(u => u.Name).ToList();
319 foreach (var user in secondaryUsers)
320 {
321 <option value="@user.ID">
322 @user.Name - <@user.UserName>
323 </option>
324 }
325 }
326
327 @* @foreach(LoopItem user in GetLoop("DWExtranetSecondaryUsers").OrderBy(o=>o.GetString("Name")).ToList()){
328 int IPuser = user.GetInteger("UserID");
329 /// Cinas = 16 4117 4118 4119 4120 5136
330 /// HolseWibroe = 17
331 /// AndemorsVerden = 18
332 User U2 = Dynamicweb.Security.UserManagement.User.GetUserByID(IPuser);
333 if(U2.HasGroup(17)){
334 <option value="@IPuser">
335 @user.GetString("Name") - <@user.GetString("UserName")>
336 </option>
337 }
338 }
339 *@
340 </select>
341 <input type="submit" value="@Translate(" imp:impersonate","impersonate")"="">
342 </form>
343 </div>
344 }else{
345 <div class="title">@Translate("Imp:Impersonate","Impersonate")</div>
346 <div class="alert">
347 <form method="post">
348 <span>
349 <span class="SecondaryUser">@GetGlobalValue("Global:Extranet.SecondaryUser.UserName")</span>
350 @Translate("Imp:isImpersonateing","is impersonating")
351 <span class="User">@Pageview.User.UserName</span>
352 </span>
353 <input type="submit" name="DwExtranetRemoveSecondaryUser" id="DwExtranetRemoveSecondaryUser" value="@Translate(" imp:stop","stop")"="">
354 </form>
355 </div>
356 }
357 </div>
358 }
359 </div>
360 <script>
361 function Imp_Toggle(){
362 c = document.getElementById("Impersonate").className;
363 if(c.indexOf("FoldOut")>-1){c=c.replace(/ FoldOut/g,"");}else{c+=" FoldOut";}
364 document.getElementById("Impersonate").className = c;
365 }
366 </script>
367 }
368 <header>
369 @using System
370 @using System.Web
371 @{
372 var SearchPhrase = System.Web.HttpContext.Current.Request.QueryString["q"];
373 }
374
375
376 <!--$$SnippetStart(DwSearchPhrase)--><!--$$SnippetEnd(DwSearchPhrase)-->
377
378 <div id="firstTopSiteBar">
379 <div id="firstTopSiteBox">
380 @GetValue("DwNavigation(FirstTopMenu)")
381 </div>
382 </div>
383
384 @{
385 var logo = @GetValue("Item.Area.TopLogo"); // changed after upgrade from 9.9.5 to 9.10.5
386 string DwAreaFirstPageID = GetString("DwAreaFirstPageID");
387 }
388
389 <div id="topSiteBar">
390 <div id="topSiteBox">
391 <div id="topLogo">
392 <a href="/" ref="/Default.aspx?ID=@DwAreaFirstPageID" style="background-image:url(@logo)"></a>
393 </div>
394 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
395
396 @{
397 var toplanguages = GetLoop("WebsiteLanguages");
398 if (toplanguages.Count > 1)
399 {
400 <ul id="topLanguage">
401 @foreach (var language in GetLoop("WebsiteLanguages")){
402
403 var CountryCode = @language.GetString("Culture").Split('-');
404 string FirstPageID = language.GetString("FirstPageID");
405 string PrimaryDomain = language.GetString("PrimaryDomain");
406
407 <li><a current='@language.GetValue("IsCurrent")' href="//@PrimaryDomain">@CountryCode[1]</a></li>
408 @* <li><a current='@language.GetValue("IsCurrent")' href="//@PrimaryDomain/Default.aspx?ID=@FirstPageID">@CountryCode[1]</a></li>*@
409 }
410 </ul>
411 }
412 }
413
414
415
416
417 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["TopPhone"].ToString()) ){
418 <div id="topPhoneMobile">
419 @Pageview.Area.Item["TopPhone"].ToString()
420 </div>
421 }
422
423
424 @foreach(LoopItem occ in GetLoop("OrderContextCarts")){
425 if(occ.GetString("Ecom:OrderContext.ID")==Pageview.Area.Item["ORDERCONTEXT"].ToString( )){
426 if(occ.GetInteger("Ecom:Order.OrderLines.ProductLinesCount")>0){
427 string cartlink = "/Default.aspx?ID=" + @GetValue("Item.Area.ShopKurvID");
428 <div id="topToCart">
429 <a href="@cartlink">
430 <i class="icon-shopping_cart"></i>
431 <span>@occ.GetInteger("Ecom:Order.OrderLines.ProductLinesCount")</span>
432 </a>
433 </div>
434 }
435 }
436 }
437
438
439 <div id="topUser">
440 @if(GetGlobalValue("Global:Extranet.UserName")!=""){
441 if(!GetGlobalValue("Global:Extranet.Groups").Contains(@GetString("Item.Area.UserGroupID"))){
442 <script>window.location='/Admin/Public/ExtranetLogoff.aspx?redirect=@GetGlobalValue("Global:Pageview.Url")'</script>
443 }else{
444 <a title="@Pageview.User.UserName" href='/Admin/Public/ExtranetLogoff.aspx?redirect=@GetGlobalValue("Global:Pageview.Url")' class="btn btn-default navbar-btn">@Translate("Sign_out", "Sign out")</a>
445
446
447 }}else{
448 <a onclick="OpenThis('LoginSitePop')">@Translate("Login", "Login")</a>
449 }
450 </div>
451
452
453 </div>
454 </div>
455
456
457 <div id="topmenuSiteBarMobile">
458
459
460 @foreach(LoopItem occ in GetLoop("OrderContextCarts")){
461 if(occ.GetString("Ecom:OrderContext.ID")==Pageview.Area.Item["ORDERCONTEXT"].ToString( )){
462 if(occ.GetInteger("Ecom:Order.OrderLines.ProductLinesCount")>0){
463 string cartlink = "/Default.aspx?ID=" + @GetValue("Item.Area.ShopKurvID");
464 <div id="topToCart">
465 <a href="@cartlink">
466 <i class="icon-shopping_cart"></i>
467 <span>@occ.GetInteger("Ecom:Order.OrderLines.ProductLinesCount")</span>
468 </a>
469 </div>
470 }
471 }
472 }
473
474 <div id="TopSearchBlockMobile">
475 <form name="Search form in menu" method="get" action="/Default.aspx">
476 <input type="hidden" name="ID" value='@Pageview.Area.Item["SiteSearchID"]'>
477 <input id="TopSearchInput" placeholder='@Translate("Search.SearchFor","Søg efter")' type="text" name="q" value='@SearchPhrase'>
478 <!-- input type="submit" value='@Translate("Search.Button","Søg")' / -->
479 <button onclick="submit()"><i class="icon-search"></i></button>
480 </form>
481 <button onclick="JshowFirst('TopMenuBlock','TopSearchBlockMobile',330);"><i class="icon-close"></i></button>
482 </div>
483
484 <button class="search-button" onclick="JshowFirst('TopSearchBlockMobile','TopMenuBlock',330,'TopSearchInput');"><i class="icon-search"></i></button>
485
486 <span onclick="MobilMenuToggle(this)" id="TopMenu_MobilMenu"></span>
487
488
489
490
491 </div>
492
493
494 @{
495 string ShopPageID = @Pageview.Area.Item["ShopPageID"].ToString();
496 }
497 <div id="mobile-menu">
498 <span id="back-to-menu">@Translate("Hovedmenu")</span>
499 <span id="back-to-produkter">@Translate("Produkter")</span>
500 <span id="selected-title"></span>
501 <a href="/" id="selected-link">@Translate("Gå til siden") <span class="title"></span></a>
502 <ul id="produkter-li">
503 <li class="have-children">
504 <a href="/Default.aspx?ID=@ShopPageID">@Translate("Produkter")</a>
505 </li>
506 </ul>
507 @GetValue("DwNavigation(FirstTopMenuMobile)")
508
509 </div>
510
511
512 <div id="topmenuSiteBar">
513 <div id="topmenuSiteBox">
514
515 <div id="TopSearchBlock">
516 <form name="Search form in menu" method="get" action="/Default.aspx">
517 <input type="hidden" name="ID" value='@Pageview.Area.Item["SiteSearchID"]'>
518 <input id="TopSearchInput" placeholder='@Translate("Search.SearchFor","Søg efter")' type="text" name="q" value='@SearchPhrase'>
519 <!-- input type="submit" value='@Translate("Search.Button","Søg")' / -->
520 <button onclick="submit()"><i class="icon-search"></i></button>
521 </form>
522 <button onclick="JshowFirst('TopMenuBlock','TopSearchBlock',330);"><i class="icon-close"></i></button>
523 </div>
524 <div id="TopMenuBlock">
525 <!--ul class="dwnavigation" id="TopMenu2" data-settings="template:navbar.xslt;endlevel:1;expandmode:all;drop:true;click=true;startlevel:1;thistag:Shop"></ul-->
526
527 @GetValue("DwNavigation(TopMenu)")
528
529 <button onclick="JshowFirst('TopSearchBlock','TopMenuBlock',330,'TopSearchInput');"><i class="icon-search"></i></button>
530
531
532 <!--ul class="dwnavigation" id="TopMenu2" data-settings="template:prodLinks.xslt;endlevel:3;expandmode:all;drop:true;click=true;"></ul-->
533 </div>
534 </div>
535 </div>
536
537
538
539 <!-- a href="/Default.aspx?ID=146" class="btn btn-large btn-default">Login</a -->
540
541
542 @if(GetGlobalValue("Global:Extranet.UserName")=="DontShowThis"){
543 <text>
544 @if(GetGlobalValue("Global:Extranet.UserName")!=""){
545 if(!GetGlobalValue("Global:Extranet.Groups").Contains(@GetString("Item.Area.UserGroupID"))){
546 <script>window.location="/Admin/Public/ExtranetLogoff.aspx?redirect=@GetGlobalValue("Global:Pageview.Url")"</script>
547 <!-- script>window.location="/Admin/Public/ExtranetLogoff.aspx?redirect=/default.aspx?ID=@GetValue("DwPageID")"</script-->
548 }else{
549 <a href='/Admin/Public/ExtranetLogoff.aspx?redirect=@GetGlobalValue("Global:Pageview.Url")' class="btn btn-default navbar-btn"><span class="username">@Pageview.User.UserName</span> @Translate("Sign_out", "Sign out")</a>
550
551
552 }}else{
553 <a onclick="OpenThis('LoginSitePop')" class="btn btn-default navbar-btn">Forhandler Login</a>
554 if(GetGlobalValue("Global:Request.Query").Contains("pop=true")){
555 <script type="text/javascript">LoadMe.push("OpenThis('LoginSitePop')");</script>
556 }
557 }
558 </text>
559 }
560
561
562 @if((!string.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request["username"]) && !string.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request["password"]) && (Int32.Parse(GetGlobalValue("Global:Extranet.UserID"))==0)) || !string.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request.QueryString["pop"])){
563 <script>LoadMe.push('OpenThis("LoginSitePop")')</script>
564 }
565
566
567 <div id="LoginSitePop">
568 <div class="SitePopBG" onclick="CloseThis(this.parentNode)"></div>
569 <div class="SitePopBox"><button class="close" onclick="CloseThis(this.parentNode.parentNode)" title='@Translate("Close", "Luk")'>
570 <span class="glyphicon glyphicon-remove"></span>
571 <i class="icon-close"></i></button>
572 <header>Forhandler Login</header>
573 <div class="container">
574
575 @if (Pageview.Area.Item != null && Pageview.Area.Item.ContainsKey("ShopLoginID")){
576 if (Int32.Parse(GetGlobalValue("Global:Extranet.UserID")) > 0){
577 <a href='/Admin/Public/ExtranetLogoff.aspx?redirect=@System.Web.HttpUtility.UrlEncode("/Default.aspx?ID="+Pageview.Page.ID)' class="btn btn-default navbar-btn">@Translate("Sign_out", "Sign out")</a>
578 }else{
579 if(!string.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request["username"]) && !string.IsNullOrWhiteSpace(System.Web.HttpContext.Current.Request["password"]) && (Int32.Parse(GetGlobalValue("Global:Extranet.UserID"))==0)){
580 <small>@Translate("LoginFail", "Fejl i brugernavn eller kodeord")</small>
581 }
582 @RenderPageContent(Convert.ToInt32(Pageview.Area.Item["ExtraLoginpopID"]))
583 }
584 }
585 </div>
586 </div>
587 </div>
588
589
590 @{
591 var miniCounter = 0;
592 var PruductNr = "";
593 var ShopPricesWithVat = Convert.ToBoolean(Pageview.Area.Item["ShopPricesWithVat"]);
594 }
595
596
597
598 <div id="MiniCartSiteBox" t="mc">
599 <div id="mini-cart">
600
601 @foreach(LoopItem occ in GetLoop("OrderContextCarts")){
602 if(occ.GetString("Ecom:OrderContext.ID")==Pageview.Area.Item["ORDERCONTEXT"].ToString( )){
603
604 if(occ.GetInteger("Ecom:Order.OrderLines.TotalProductQuantity")>0){
605 <div class="mini-cart-container">
606 <ul>
607
608
609
610
611
612 @foreach (LoopItem i in occ.GetLoop("OrderLines")){
613
614 //KR 09-01-2020 start
615 if(!string.IsNullOrWhiteSpace(i.GetString("Ecom:Order:OrderLine.ProductNumber"))){
616 if(i.GetString("Ecom:Order:OrderLine.ProductNumber").Substring(0,1)!="P"){
617 PruductNr = i.GetString("Ecom:Order:OrderLine.ProductNumber");
618 }else{
619 PruductNr = i.GetString("Ecom:Order:OrderLine.ProductNumber").Substring(1);
620 }
621 }
622 //KR 09-01-2020 end
623
624
625 if(i.GetInteger("Ecom:Order:OrderLine.Type")!=3){
626
627
628
629
630 <li class="product">
631 <div class="image">
632 <img alt='@i.GetValue("Ecom:Order:OrderLine.ProductName")' src='/admin/public/getimage.aspx?Image=/Files/Images/HolseWibroe/Produkter/@(PruductNr).jpg&Format=jpg&Width=60&Height=60&Compression=78&Crop=5&altFmImage_path=/Files/Templates/Designs/HolseWibroe/Images/missing.png'>
633 </div>
634 <div class="product-title">
635 <a class="" href='@i.GetValue("Ecom:Order:OrderLine.ProductLink")'>@i.GetValue("Ecom:Order:OrderLine.ProductName")</a>
636 </div>
637 <div class="price">
638 <div class="quantity">
639 @i.GetValue("Ecom:Order:OrderLine.Quantity")
640 @if(!string.IsNullOrWhiteSpace(i.GetString("Ecom:Order:OrderLine.UnitName"))){
641 <sup>@i.GetValue("Ecom:Order:OrderLine.UnitName")</sup>
642 }else{
643 <sup>Stk.</sup>
644 }
645 </div>
646 <div class="currency-code">@i.GetValue("Ecom:Product.Price.Currency.Code")</div>
647 @*
648
649 @if(Pageview.Area.Item["ShopPricesWithVat"].ToString()=="True" || (Pageview.Area.Item["ShopPricesWithVatNonUsers"].ToString()=="True" && GetGlobalValue("Global:Extranet.UserName")=="")){
650
651 if (!string.IsNullOrWhiteSpace(i.GetString("Ecom:Order:OrderLine.TotalPriceWithProductDiscounts.PriceWithVAT"))) {
652
653 // Double dPrice = i.GetDouble("Ecom:Product.Price.PriceWithVAT.Value")*(i.GetDouble("Ecom:Product.Price.VATPercent")+100)/100;
654 // string pPrice = String.Format("{0:#,#.00}", @dPrice);
655
656
657 <div class="amount" t="a">@i.GetValue("Ecom:Order:OrderLine.TotalPriceWithProductDiscounts.PriceWithVAT")</div>
658 }
659 else {
660 <div class="amount" t="b">@i.GetValue("Ecom:Order:OrderLine.Price.PriceWithVAT")</div>
661 }
662
663 }else{
664 if (!string.IsNullOrWhiteSpace(i.GetString("Ecom:Order:OrderLine.TotalPriceWithProductDiscounts.PriceWithoutVAT"))) {
665 <div class="amount" t="c">@i.GetValue("Ecom:Order:OrderLine.TotalPriceWithProductDiscounts.PriceWithoutVAT")</div>
666 }
667 else {
668 <div class="amount" t="d">@i.GetValue("Ecom:Order:OrderLine.Price.PriceWithoutVAT")</div>
669 }
670 }
671
672 *@
673
674 @*
675
676 @{
677 Double dUPrice = i.GetDouble("Ecom:Order:OrderLine.UnitPrice.PriceWithoutVAT.Value");
678 Double dLPrice = i.GetDouble("Ecom:Order:olPrice.PriceWithoutVAT.Value");
679
680 if(Pageview.Area.Item["ShopPricesWithVat"].ToString()=="True" || (Pageview.Area.Item["ShopPricesWithVatNonUsers"].ToString()=="True" && GetGlobalValue("Global:Extranet.UserName")=="")){
681 dUPrice = i.GetDouble("Ecom:Order:OrderLine.UnitPrice.PriceWithVAT.Value");
682 dLPrice = i.GetDouble("Ecom:Order:olPrice.PriceWithVAT.Value");
683 }
684 string uPrice = String.Format("{0:#,0.00}", @dUPrice);
685 string lPrice = String.Format("{0:#,0.00}", @dLPrice);
686 }
687
688
689 <div class="amount">@uPrice </div>
690
691 *@
692
693
694 @if(Pageview.Area.Item["ShopPricesWithVat"].ToString()=="True" || (Pageview.Area.Item["ShopPricesWithVatNonUsers"].ToString()=="True" && GetGlobalValue("Global:Extranet.UserName")=="")){
695
696 <div class="amount">@i.GetString("Ecom:Order:olPrice.PriceWithVAT")</div>
697
698 }else{
699 <div class="amount">@i.GetString("Ecom:Order:olPrice.PriceWithoutVAT")</div>
700 }
701
702
703
704
705
706 </div>
707 </li>
708
709 miniCounter = miniCounter + 1;
710 }else{
711 <li class="discount">
712 <div class="space"><span> </span></div>
713 <div class="product-title">@i.GetValue("Ecom:Order:OrderLine.ProductName")</div>
714 <div class="price">
715
716 <div class="quantity"></div>
717 <div class="currency-code">@i.GetValue("Ecom:Product.Price.Currency.Code")</div>
718
719 @if(Pageview.Area.Item["ShopPricesWithVat"].ToString()=="True" || (Pageview.Area.Item["ShopPricesWithVatNonUsers"].ToString()=="True" && GetGlobalValue("Global:Extranet.UserName")=="")){
720 <div class="amount">@i.GetString("Ecom:Order:olPrice.PriceWithVAT")</div>
721 }else{
722 <div class="amount">@i.GetString("Ecom:Order:olPrice.PriceWithoutVAT")</div>
723 }
724
725
726
727 </div>
728 </li>
729 }
730
731
732 }
733 </ul>
734
735 @if (miniCounter > 3){
736 <div class="more">
737 <span class="icon-caret-down"></span>
738 </div>
739 <script>
740 $( document ).ready(function() {
741 $("#mini-cart .more span").click(function(){
742 $("#mini-cart").toggleClass("showAll");
743 $("#mini-cart ul").scrollTop(0);
744 })
745 });
746 </script>
747 }
748
749
750
751 </div>
752 <div class="text">
753 <span class="total-text">@Translate("Total","Total") </span>
754 @{
755
756 Double dProdPrice;
757 Double dnVProdPrice;
758
759 dProdPrice = occ.GetDouble("Ecom:Order.Price.PriceWithVAT.Value") - occ.GetDouble("Ecom:Order.PaymentFee.PriceWithVAT.Value") - occ.GetDouble("Ecom:Order.ShippingFee.PriceWithVAT.Value");
760 dnVProdPrice = occ.GetDouble("Ecom:Order.Price.PriceWithoutVAT.Value") - occ.GetDouble("Ecom:Order.PaymentFee.PriceWithoutVAT.Value") - occ.GetDouble("Ecom:Order.ShippingFee.PriceWithoutVAT.Value");
761
762 string ProdPrice = String.Format("{0:#,0.00}", @dProdPrice);
763 string nVProdPrice = String.Format("{0:#,0.00}", @dnVProdPrice);
764
765 }
766
767 @if(Pageview.Area.Item["ShopPricesWithVat"].ToString()=="True" || (Pageview.Area.Item["ShopPricesWithVatNonUsers"].ToString()=="True" && GetGlobalValue("Global:Extranet.UserName")=="")){
768 <span class="PriceNote">@Translate("ShowCart.XDelevery","Incl. moms og ex. levering")</span>
769 <span class="curencycode">@occ.GetValue("Ecom:Order.Price.Currency.Code")</span>
770 <span class="total-price">@ProdPrice</span>
771 @* <span class="total-price">@occ.GetValue("Ecom:Order.PriceWithoutFees.PriceWithVAT")</span>*@
772 }else{
773 <span class="PriceNote">@Translate("ShowCart.XVatDelevery","Ex. moms og levering")</span>
774 <span class="curencycode">@occ.GetValue("Ecom:Order.Price.Currency.Code")</span>
775 <span class="total-price">@nVProdPrice</span>
776 @* <span class="total-price">@occ.GetValue("Ecom:Order.PriceWithoutFees.PriceWithoutVAT")</span>*@
777 }
778 @*<!-- span class="total-price">@occ.GetValue("Ecom:Order.OrderLines.TotalPriceWithoutSymbol")</span -->*@
779 </div>
780
781 <div class="links">
782 @{
783 string cartlink = "/Default.aspx?ID=" + GetInteger("DwAreaCartPageID");
784 string checkoutlink = "/Default.aspx?ID=" + Pageview.Area.Item["EcomShopCheckoutPageID"];
785 }
786 <a class="kurv" href="@cartlink">@Translate("Gå til kurv","Gå til kurv")</a>
787 <a class="checkout" href='/Default.aspx?ID=@Pageview.Area.Item["ShopBestilID"]'>@Translate("Gå til kasse","Gå til kasse")</a>
788
789 </div>
790 }
791
792 else {
793 <ul class="">
794 <li class="">
795 <div class="">@Translate("Kurven er tom","Kurven er tom")</div>
796 </li>
797 </ul>
798 }
799
800
801 }
802 }
803
804
805 <div class="close">
806 <span class="icon-close"></span>
807 </div>
808 <script>
809 $( document ).ready(function() {
810 $("#mini-cart .close").click(function(){
811 $("#mini-cart").removeClass("active");
812 })
813
814 $("#topToCart a").click(function(e){
815 e.preventDefault();
816 $("#mini-cart").toggleClass("active");
817
818 var n = $( "#mini-cart .product" ).length;
819
820 if (n > 6){
821 $("#mini-cart").addClass("large");
822 }
823
824
825 })
826 });
827 </script>
828 </div></div>
829
830
831 </header>
832
833
834 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>>
835
836
837
838
839
840
841 <div id="topImage" class="wrapper">
842 @if (@GetValue("Item.Page.PageTopPic") != ""){
843 <div class="topImage" style='background-image:url("@GetString("Item.Page.PageTopPic")")'></div>
844 }else{
845 @RenderParagraphContent(79)
846 }
847 </div>
848
849
850
851
852 <main>
853 <div id="PageSiteBar">
854 <div id="PageSiteBox">
855
856
857 <h1>@GetValue("Item.Headline")</h1>
858
859 <div class="paragraphBlog" t="a">
860 <div class="Box40">
861 <div><div class="img">
862
863
864
865 @if (Loops.Contains("Item.Images")){
866 var cnt=0;
867 @*
868 foreach (var i in GetLoop("Item.Images")){
869 <a id="lb@(cnt)" class="swiper-slide" title='@i.GetValue("Item.Images.AltText")' data-lightbox="Nyhed" href='/admin/public/getimage.ashx?Image=@i.GetValue("Item.Images.Image")&Format=jpg&Width=960&Height=960&Compression=65&Crop=5;Background=f5f5f5'></a>
870 cnt++;
871 }
872 *@
873
874 var First = GetLoop("Item.Images")[0];
875 var firstImage = First.GetValue("Item.Images.Image");
876
877 <a class="figure cnt@(cnt)" href="javascript:document.getElementById('lb0').click();"><figure><img src='/admin/public/getimage.ashx?Image=@firstImage&Format=jpg&Width=485&Height=485&Compression=57&Crop=0' alt='@First.GetValue("Item.Images.AltText")'></figure></a>
878
879
880
881
882
883
884
885 if(cnt>1 && 1==2){
886 <div class="moreImg">
887 <div class="swiper-container news"><div class="swiper-wrapper">
888 @{cnt=0;}
889 @foreach (var i in GetLoop("Item.Images")){
890
891 var loopImage = @i.GetValue("Item.Images.Image");
892
893 <a href="javascript:document.getElementById('lb@(cnt)').click();" class="swiper-slide" title='@i.GetValue("Item.Images.AltText")'>
894 <img src='/admin/public/getimage.ashx?Image=@loopImage&Format=jpg&Width=195&Height=195&Compression=52&Crop=5;Background=f5f5f5' alt='@i.GetValue("Item.Images.AltText")'>
895 </a>
896
897 cnt++;
898 }
899 </div>
900 <!-- div class="swiper-pagination"></div -->
901 <div class="swiper-button-next"></div>
902 <div class="swiper-button-prev"></div>
903 <!--div class="swiper-button-next icon-keyboard_arrow_right"></div>
904 <div class="swiper-button-prev icon-keyboard_arrow_left"></div-->
905 </div>
906 </div>
907 }
908
909
910 }
911
912
913
914 </div></div>
915 </div>
916 <div class="Box60">
917 <div><div class="txt"><div>
918
919
920
921 <h2>@GetValue("Item.TeaserTekst")</h2>
922
923 <span>@GetValue("Item.Content")</span>
924
925 </div></div></div>
926 </div>
927
928
929 </div>
930
931 <div class="paragraphBlog">
932 <div class="BoxFull" style="display: block;background-color: transparent;">
933
934 @if (Loops.Contains("Item.Images")){
935 var cnt=0;
936
937 foreach (var i in GetLoop("Item.Images")){
938 <a id="lb@(cnt)" class="swiper-slide" title='@i.GetValue("Item.Images.AltText")' data-lightbox="Nyhed" href='/admin/public/getimage.ashx?Image=@i.GetValue("Item.Images.Image")&Format=jpg&Width=960&Height=960&Compression=65&Crop=5;Background=f5f5f5'></a>
939 cnt++;
940 }
941
942
943 var First = GetLoop("Item.Images")[0];
944 var firstImage = First.GetValue("Item.Images.Image");
945 @*
946 <a class="figure cnt@(cnt)" href="javascript:document.getElementById('lb0').click();"><figure><img src='/admin/public/getimage.ashx?Image=@firstImage&Format=jpg&Width=485&Height=485&Compression=57&Crop=5' alt='@First.GetValue("Item.Images.AltText")'></figure></a>
947
948 *@
949
950
951
952
953
954 if(cnt>1){
955 <div class="moreImg" style="max-height: 466px;">
956 <div class="swiper-container news" style="max-height:466px;"><div class="swiper-wrapper">
957 @{cnt=0;}
958 @foreach (var i in GetLoop("Item.Images")){
959
960 var loopImage = @i.GetValue("Item.Images.Image");
961
962 <a href="javascript:document.getElementById('lb@(cnt)').click();" class="swiper-slide" title='@i.GetValue("Item.Images.AltText")'>
963 <img src='/admin/public/getimage.ashx?Image=@loopImage&Format=jpg&Width=485&Height=485&Compression=52&Crop=5;Background=f5f5f5' alt='@i.GetValue("Item.Images.AltText")'>
964 </a>
965
966 cnt++;
967 }
968 </div>
969 <!-- div class="swiper-pagination"></div -->
970 <div class="swiper-button-next"></div>
971 <div class="swiper-button-prev"></div>
972 <!--div class="swiper-button-next icon-keyboard_arrow_right"></div>
973 <div class="swiper-button-prev icon-keyboard_arrow_left"></div-->
974 </div>
975 </div>
976 }
977
978
979 }
980
981 </div>
982 </div>
983
984
985
986 </div>
987 </div>
988 </main>
989
990
991 <!--link rel="stylesheet" href="/Files/Templates/Designs/HolseWibroe/lightbox2.6/css/lightbox.css" type="text/css" media="screen" /-->
992 <!--script async="async" src="/Files/Templates/Designs/HolseWibroe/lightbox2.6/js/lightbox-2.6.min.js"></script -->
993
994 <!--script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script><!-- need this for it to work -->
995 <script src="/Files/Templates/Designs/HolseWibroe/Swiper/dist/js/swiper.jquery.min.js"></script>
996 <script>
997 LoadMe.push('swiperLoader()')
998 function swiperLoader(){
999 var swiper = new Swiper('.swiper-container', {
1000 initialSlide: 0,
1001 pagination: '.swiper-pagination',
1002 slidesPerView: '3',
1003 centeredSlides: false,
1004 paginationClickable: true,
1005 nextButton: '.swiper-button-next',
1006 prevButton: '.swiper-button-prev',
1007 // autoplay: 2500,
1008 autoplayDisableOnInteraction: true,
1009 spaceBetween: 0,
1010 loop: true,
1011 autoplay: 3456
1012 });
1013 }
1014
1015 function SwipeThis(a){
1016 var mySwiper = $('.swiper-container')[0].swiper;
1017 mySwiper.slideTo(a);
1018 }
1019
1020 </script>
1021 <link href="/Files/Templates/Designs/HolseWibroe/Swiper/dist/css/swiper.min.css" rel="stylesheet">
1022
1023
1024
1025
1026 @if(GetInteger("Item.Area.BottomSiteParagraphID")>0){
1027 <div id="bottomSiteBar">
1028 <div id="bottomSiteBox">
1029 @RenderParagraphContent(@GetInteger("Item.Area.BottomSiteParagraphID"))
1030 </div>
1031 </div>
1032 }
1033
1034
1035 <footer style="position:relative;">@using System
1036 @using System.Web
1037 @using Dynamicweb.Environment
1038
1039
1040 @RenderParagraphContent(Convert.ToInt32(@Pageview.Area.Item["FooterCallBackParagraphID"].ToString()))
1041
1042
1043 <div id="footerSiteBar">
1044 <div id="footerSiteBox">
1045 <table><tr><td>
1046 @GetValue("DwNavigation(FooterFirst)")
1047 </td><td>
1048 @GetValue("DwNavigation(FooterSecond)")
1049 </td><td>
1050 @GetValue("Item.Area.FooterAddress")
1051 </td>
1052 <td>
1053
1054 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["FacebookLink"].ToString()) || !string.IsNullOrWhiteSpace(Pageview.Area.Item["GooglePlusLink"].ToString()) || !string.IsNullOrWhiteSpace(Pageview.Area.Item["LinkedInLink"].ToString()) || !string.IsNullOrWhiteSpace(Pageview.Area.Item["TwitterLink"].ToString()) || !string.IsNullOrWhiteSpace(Pageview.Area.Item["YouTubeLink"].ToString()) || !string.IsNullOrWhiteSpace(Pageview.Area.Item["InstagramLink"].ToString()) || !string.IsNullOrWhiteSpace(Pageview.Area.Item["PinterestLink"].ToString()) ){
1055 <div id="footeradressSiteBlock">
1056 <div>
1057 <header>@Translate("Follow", "Følg os")</header>
1058 <span class="soclinks">
1059 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["FacebookLink"].ToString())){
1060 <a class="Facebook" target="_blank" href='@Pageview.Area.Item["FacebookLink"]'>Facebook</a>
1061 }
1062 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["GooglePlusLink"].ToString())){
1063 <a class="GooglePlus" target="_blank" href='@Pageview.Area.Item["GooglePlusLink"]'>Google+</a>
1064 }
1065 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["LinkedInLink"].ToString())){
1066 <a class="LinkedIn" target="_blank" href='@Pageview.Area.Item["LinkedInLink"]'>LinkedIn</a>
1067 }
1068 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["TwitterLink"].ToString())){
1069 <a class="Twitter" target="_blank" href='@Pageview.Area.Item["TwitterLink"]'>Twitter</a>
1070 }
1071 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["YouTubeLink"].ToString())){
1072 <a class="YouTube" target="_blank" href='@Pageview.Area.Item["YouTubeLink"]'>YouTube</a>
1073 }
1074 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["InstagramLink"].ToString())){
1075 <a class="Instagram" target="_blank" href='@Pageview.Area.Item["InstagramLink"]'>Instagram</a>
1076 }
1077 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["PinterestLink"].ToString())){
1078 <a class="Pinterest" target="_blank" href='@Pageview.Area.Item["PinterestLink"]'>Pinterest</a>
1079 }
1080 </span>
1081 </div>
1082 </div>
1083 }
1084
1085 </td>
1086 </tr>
1087 <tr>
1088 <td colspan="2">
1089 <div class="footer-cards">
1090 <div class="footer__card-type">
1091 <img width="60" height="32" src="/Admin/Public/GetImage.ashx?width=60&Compression=75&image=/files/Images/HolseWibroe/Payment/visa.png" alt="Visa" title="Visa">
1092 </div>
1093 <!-- <div class="footer__card-type">
1094 <img src="/Admin/Public/GetImage.ashx?width=60&Compression=75&image=/files/Images/HolseWibroe/Payment/visa_e.png" alt="Visa Electron" title="Visa Electron">
1095 </div> -->
1096 <!-- <div class="footer__card-type">
1097 <img src="/Admin/Public/GetImage.ashx?width=60&Compression=75&image=/files/Images/HolseWibroe/Payment/maestro.png" alt="Maestro" title="Maestro">
1098 </div> -->
1099 <div class="footer__card-type">
1100 <img width="60" height="32" src="/Admin/Public/GetImage.ashx?width=60&Compression=75&image=/files/Images/HolseWibroe/Payment/mastercard.png" alt="Mastercard" title="Mastercard">
1101 </div>
1102 @if (GetString("Item.Area.ORDERCONTEXT")=="ORDERCONTEXT2"){
1103 <div class='footer__card-type'>
1104 <img src="/Admin/Public/GetImage.ashx?width=60&Compression=75&image=/files/Images/HolseWibroe/Payment/dk.png" alt="DK debit card" title="DK debit card">
1105 </div>
1106 }
1107 @if (GetString("Item.Area.ORDERCONTEXT")=="ORDERCONTEXT2"){
1108 <div class="footer__card-type">
1109 <img src="/Admin/Public/GetImage.ashx?width=60&Compression=75&image=/files/Images/HolseWibroe/Payment/mobilepay.png" alt="Mobilepay" title="Mobilepay">
1110 </div>
1111 }
1112
1113 </div>
1114 </td>
1115 <td colspan="2">
1116
1117 <!-- TrustBox widget - Starter -->
1118 <div style="margin-bottom: 40px;" class="trustpilot-widget" data-locale="da-DK" data-template-id="5613c9cde69ddc09340c6beb" data-businessunit-id="48543fae000064000502b5d7" data-style-height="100%" data-style-width="100%" data-theme="dark">
1119 <a href="https://dk.trustpilot.com/review/www.holseogwibroe.dk" target="_blank" rel="noopener">Trustpilot</a>
1120 </div>
1121 <!-- End TrustBox widget -->
1122
1123 </td>
1124 </tr>
1125 </table>
1126 </div>
1127 </div>
1128
1129 <div id="endSiteBar" onclick="$('html, body').animate({scrollTop:0}, 500);">
1130 <a>@Translate("Gå_til_top", "Gå til top")</a>
1131 </div>
1132
1133
1134 @*@if(Dynamicweb.Base.ChkInteger(Pageview.Area.Item["CookiePageID"])>0){*@
1135
1136 @if(Convert.ToInt32(@Pageview.Area.Item["CookiePageID"].ToString())>0){
1137 var CookiePage = @Pageview.Area.Item["CookiePageID"];
1138 <div id="CookieBar"><div id="CookieBox">
1139 <p>@Pageview.Area.Item["CookieBarText"].ToString()</p>
1140 @if(!string.IsNullOrWhiteSpace(Pageview.Area.Item["CookieBarButtonRead"].ToString())){
1141 <p class="CookieLink"><a href="/Default.aspx?ID=@CookiePage">@Pageview.Area.Item["CookieBarButtonRead"].ToString()</a></p>
1142 }
1143 <span><a href="javascript:CookieOKclick()" class="cookieButton">@Pageview.Area.Item["CookieBarConfirmButtonText"].ToString()</a></span>
1144 </div></div>
1145 <script type="text/javascript">LoadMe.push('CookieON()')</script>
1146 }
1147
1148
1149
1150
1151 @{
1152
1153 string refreshCookieConsent = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("CookieConsent")) ? Dynamicweb.Context.Current.Request.QueryString.Get("CookieConsent") : string.Empty;
1154
1155 if (refreshCookieConsent == "Manage"){
1156 <div>
1157
1158 @{
1159 var categories = CookieManager.GetCategories();
1160
1161 string cookieNoticeLink = Pageview.AreaSettings.GetLink("CookiePolicyLink") != null ? Pageview.AreaSettings.GetLink("CookiePolicyLink").Url : "";
1162 string privacyPolicyLink = Pageview.AreaSettings.GetLink("PrivacyPolicyLink") != null ? Pageview.AreaSettings.GetLink("PrivacyPolicyLink").Url : "";
1163 int cookieNoticePageID = Pageview.AreaSettings.GetLink("CookiePolicyLink") != null ? Pageview.AreaSettings.GetLink("CookiePolicyLink").PageId : 0;
1164 int privacyPolicyPageID = Pageview.AreaSettings.GetLink("PrivacyPolicyLink") != null ? Pageview.AreaSettings.GetLink("PrivacyPolicyLink").PageId : 0;
1165
1166 string layout = Pageview.AreaSettings.GetRawValueString("CookieLayout", "modal");
1167 layout = Pageview.Page.ID == cookieNoticePageID || Pageview.Page.ID == privacyPolicyPageID ? "both" : layout;
1168
1169 }
1170
1171 @if (!Pageview.IsVisualEditorMode) {
1172 if (layout == "both"){
1173 if (layout == "banner" || layout == "both")
1174 {
1175 string bannerTheme = !string.IsNullOrWhiteSpace(Pageview.AreaSettings.GetRawValueString("CookieBannerTheme")) ? " theme " + Pageview.AreaSettings.GetRawValueString("CookieBannerTheme").Replace(" ", "").Trim().ToLower() : "theme light";
1176
1177 <div class="cookiebanner">
1178 <div class="position-fixed bottom-0 w-100 shadow @bannerTheme" id="dwCookieBanner">
1179 <div class="align-items-center grid p-3">
1180 @if (layout == "banner")
1181 {
1182 <div class="g-col-12 g-col-md-6 g-col-lg-8">
1183 <div><strong>@Translate("This website uses cookies")</strong></div>
1184 <span>@Translate("We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. You consent to our cookies if you continue to use our website.")</span>
1185 </div>
1186 <div class="g-col-12 g-col-md-6 g-col-lg-4">
1187 <div class="grid grid-1 grid-sm-2">
1188 <button type="button" onclick="setOptInCookie(2)" class="btn btn-primary" id="CookiesAcceptAll">
1189 @Translate("Allow all cookies")
1190 </button>
1191 <button type="button" onclick="setOptInCookie(1)" class="btn btn-secondary" id="CookiesDeclineAll">
1192 @Translate("Use necessary cookies only")
1193 </button>
1194 </div>
1195 </div>
1196 }
1197 @if (layout == "both")
1198 {
1199 <div class="g-col-12 g-col-lg-6 g-col-xxl-8">
1200 <div><strong>@Translate("This website uses cookies")</strong></div>
1201 <span>@Translate("We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. You consent to our cookies if you continue to use our website.")</span>
1202 </div>
1203 <div class="g-col-12 g-col-lg-6 g-col-xxl-4">
1204 <div class="grid grid-1 grid-sm-3">
1205 <button type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#dwCookieModal" onclick="customizeSettings()">
1206 @Translate("Show details")
1207 </button>
1208 <button type="button" onclick="setOptInCookie(2)" class="btn btn-secondary" id="CookiesAcceptAll">
1209 @Translate("Allow all cookies")
1210 </button>
1211 <button type="button" onclick="setOptInCookie(1)" class="btn btn-secondary" id="CookiesDeclineAll">
1212 @Translate("Use necessary cookies only")
1213 </button>
1214 </div>
1215 </div>
1216 }
1217 </div>
1218 </div>
1219 </div>
1220 }
1221
1222 if (layout == "modal" || layout == "both")
1223 {
1224 string modalTheme = !string.IsNullOrWhiteSpace(Pageview.AreaSettings.GetRawValueString("CookieModalTheme")) ? " theme " + Pageview.AreaSettings.GetRawValueString("CookieModalTheme").Replace(" ", "").Trim().ToLower() : "theme light";
1225
1226 <div class="cookiebanner">
1227 <div class="modal fade" id="dwCookieModal">
1228 <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" style="max-width:560px;">
1229 <div class="modal-content @modalTheme">
1230 <div style="overflow-y:auto;overflow-x:hidden">
1231 <div class="p-3 p-md-4 overflow-auto" style="max-height:50vh;">
1232 <div class="h3 mb-3">@Translate("This website uses cookies")</div>
1233
1234 <div>@Translate("We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services. You consent to our cookies if you continue to use our website.")</div>
1235
1236 @if (!string.IsNullOrEmpty(cookieNoticeLink))
1237 {
1238 <a href="@cookieNoticeLink" class="d-block mb-3" id="CookiesReadModeAbout">@Translate("Read more about Cookies")</a>
1239 }
1240 @if (!string.IsNullOrEmpty(privacyPolicyLink))
1241 {
1242 <a href="@privacyPolicyLink" class="d-block" id="CookiesPrivacyPolicy">@Translate("Our privacy policy")</a>
1243 }
1244 </div>
1245
1246 <div class="p-3 px-md-4 border-top">
1247 <div class="grid grid-1 grid-sm-2 gap-3">
1248 <button type="button" onclick="setOptInCookie(1)" class="btn btn-secondary" data-bs-dismiss="modal" id="dwCookieDeclineAll">@Translate("Use necessary cookies only")</button>
1249 @if (categories.Any())
1250 {
1251 <button type="button" onclick="acceptCustomSetup()" class="btn btn-secondary d-none" data-bs-dismiss="modal" id="dwCookieAcceptSelected">@Translate("OK")</button>
1252 }
1253 <button type="button" onclick="setOptInCookie(2)" class="btn btn-secondary" data-bs-dismiss="modal" id="dwCookieAcceptAll">@Translate("Allow all cookies")</button>
1254 </div>
1255 </div>
1256
1257 @if (categories.Any())
1258 {
1259 int categoriesCount = 0;
1260 int totalCategories = categories.Count();
1261
1262 <form id="dwCookieModalCustomForm" method="post" action="/Admin/Public/CookieOptInLevelConfig.aspx">
1263 <input type="hidden" name="cmd" value="SetCookieOptInLevel">
1264 <input type="hidden" name="OptInLevel" id="OptInLevel" value="1">
1265 <div class="grid grid-2 grid-sm-4 gap-0 px-md-3 border-top border-1">
1266 <div class="p-3">
1267 <label class="form-check-label" for="dwCookieNecessary"><span>@Translate("Necessary")</span></label>
1268 <div class="form-check form-switch form-control-lg py-0">
1269 <input class="form-check-input opacity-100" type="checkbox" id="dwCookieNecessary" checked="" disabled="" style="background-color: rgba(0,0,0,0.1);">
1270 </div>
1271 </div>
1272 @foreach (var category in categories)
1273 {
1274 string border = categoriesCount < (totalCategories - 1) ? "" : "";
1275
1276 <div class="p-3 @(border)">
1277 <label class="form-check-label" for="CookieCategory_@category"><span>@Translate(category)</span></label>
1278 <div class="form-check form-switch form-control-lg py-0">
1279 <input class="form-check-input js-checkbox" checked="" type="checkbox" name="OptInCategory" value="@category" id="CookieCategory_@category" onchange="toggleAcceptSelected()" style="background-color: rgba(0,0,0,0.1);">
1280 </div>
1281 </div>
1282 categoriesCount++;
1283 }
1284 </div>
1285 </form>
1286 }
1287 </div>
1288 </div>
1289 </div>
1290 </div>
1291 </div>
1292 }
1293
1294
1295 <script>
1296 async function setOptInCookie(optInLevel) {
1297 let response = await fetch("/admin/public/CookieOptInLevelConfig.aspx?cmd=SetCookieOptInLevel&OptInLevel=" + optInLevel);
1298
1299 if (response.ok) {
1300 if (document.querySelector("#dwCookieBanner")) {
1301 document.querySelector("#dwCookieBanner").classList.add("d-none");
1302 }
1303 if (document.querySelector("#dwCookieModal")) {
1304 document.querySelector("#dwCookieModal").classList.remove("show");
1305 }
1306 window.location = window.location.href.split("?")[0];
1307 //return false;
1308 } else {
1309 return false;
1310 }
1311 }
1312
1313 async function acceptCustomSetup() {
1314 var form = document.querySelector("#dwCookieModalCustomForm");
1315
1316 let formData = new FormData(form);
1317 var fetchOptions = {
1318 method: 'POST',
1319 body: formData
1320 };
1321
1322 let response = await fetch(form.action, fetchOptions);
1323
1324 if (response.ok) {
1325 if (document.querySelector("#dwCookieBanner")) {
1326 document.querySelector("#dwCookieBanner").classList.add("d-none");
1327 }
1328 if (document.querySelector("#dwCookieModal")) {
1329 document.querySelector("#dwCookieModal").classList.remove("show");
1330 }
1331 window.location = window.location.href.split("?")[0];
1332 //return false;
1333 } else {
1334 return false;
1335 }
1336 }
1337
1338 function toggleAcceptSelected() {
1339 var cookieCalegoriesElement = document.querySelector("#dwCookieModalCustomForm");
1340 var enableAcceptSelected = false;
1341
1342 cookieCalegoriesElement.querySelectorAll(".js-checkbox").forEach(function (field) {
1343 if (field.checked == true) {
1344 enableAcceptSelected = true;
1345 }
1346 });
1347
1348 if (enableAcceptSelected) {
1349 document.querySelector("#dwCookieDeclineAll").classList.add("d-none");
1350 document.querySelector("#dwCookieAcceptSelected").classList.remove("d-none");
1351 } else {
1352 document.querySelector("#dwCookieDeclineAll").classList.remove("d-none");
1353 document.querySelector("#dwCookieAcceptSelected").classList.add("d-none");
1354 }
1355 }
1356
1357 function showCookieModal() {
1358 var cookieModal = new bootstrap.Modal(document.querySelector('#dwCookieModal'), {
1359 backdrop: 'static'
1360 });
1361 cookieModal.show();
1362 }
1363
1364 function customizeSettings(){
1365 document.getElementById("dwCookieModal").classList.add("show");
1366 }
1367
1368
1369 document.querySelector('#dwCookieModal').addEventListener('click', function(event) {
1370
1371 if (!event.target.classList.contains('cookiebanner')) {
1372
1373 document.getElementById("dwCookieModal").classList.remove("show");
1374
1375 }
1376 });
1377
1378 // Prevent clicks on .cookiebanner from propagating to #dwCookieModal
1379 document.querySelector('.modal-dialog').addEventListener('click', function(event) {
1380 event.stopPropagation();
1381 });
1382
1383
1384
1385 </script>
1386
1387 if (layout == "modal")
1388 {
1389 <script type="module">
1390 showCookieModal();
1391 </script>
1392 }
1393
1394 }
1395 }
1396
1397 <link rel="stylesheet" href="/Files/Templates/Designs/Cinas/css/cookiesmodal.css">
1398
1399 </div>
1400 }
1401 }
1402 <span style="position:absolute;bottom:39px;"><font style="font-size:0.50em;color:rgba(128,128,128,0.5);">@GetGlobalValue("WebSeviceConnectionStatus")</font></span>
1403 </footer>
1404
1405
1406
1407 <script defer="defer" src="/Files/Templates/Designs/HolseWibroe/js/default.js?ver=1.31" type="text/javascript"></script>
1408
1409 <script async="" src="/Files/Templates/Designs/HolseWibroe/lightbox2.6/js/lightbox-2.6.min.js"></script>
1410
1411 <!-- TrustBox script -->
1412 <script async="" type="text/javascript" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async=""></script>
1413 <!-- End TrustBox script -->
1414 @RenderSnippet("JavaScriptBottom")
1415
1416
1417
1418 @{
1419 // Flex Media onload start
1420 string CookieOptInLevel = CookieManager.GetCookieOptInLevel().ToString();
1421 var CookieOptInCategories = CookieManager.GetCookieOptInCategories();
1422 var CookieOptInCategoriesCNT = CookieOptInCategories.Count;
1423 string CookieOptInCategoriesLST = "";
1424 if(CookieOptInLevel=="All"){
1425 foreach (var cat in CookieManager.GetCategories()){CookieOptInCategoriesLST += cat + ",";}
1426 }else{
1427 foreach (var category in CookieOptInCategories){CookieOptInCategoriesLST += category + ",";}
1428 }
1429 char[] charsToTrim = {','};CookieOptInCategoriesLST = CookieOptInCategoriesLST.Trim(charsToTrim);
1430
1431
1432 // var CookieCategories = CookieManager.GetCategories();
1433 // var CookieCategoriesCNT = CookieCategories.Count;
1434
1435
1436 }
1437
1438 <script>var DW_CookieOptInLevel="@CookieOptInLevel";var DW_CookieOptInCategories="@CookieOptInCategoriesLST"</script>
1439 </body>
1440 </html>