Error executing template "Designs/HolseWibroe/_parsed/Nyheder.2024.parsed.cshtml"
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
   at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   at System.Collections.Generic.List`1.get_Item(Int32 index)
   at CompiledRazorTemplates.Dynamic.RazorEngine_f893ded743c44599961692581679cb82.Execute() in D:\dynamicweb.net\solutions\FlexMedia\cinas.dw9.dynamicweb-cms.com\files\Templates\Designs\HolseWibroe\_parsed\Nyheder.2024.parsed.cshtml:line 874
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

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