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 - &lt;@user.UserName&gt; 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") - &lt;@user.GetString("UserName")&gt; 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>&nbsp;</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")&amp;Format=jpg&amp;Width=960&amp;Height=960&amp;Compression=65&amp;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&amp;Format=jpg&amp;Width=195&amp;Height=195&amp;Compression=52&amp;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")&amp;Format=jpg&amp;Width=960&amp;Height=960&amp;Compression=65&amp;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&amp;Format=jpg&amp;Width=485&amp;Height=485&amp;Compression=52&amp;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&amp;Compression=75&amp;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&amp;Compression=75&amp;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&amp;Compression=75&amp;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&amp;Compression=75&amp;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&amp;Compression=75&amp;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&amp;Compression=75&amp;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>