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