Error executing template "Designs/ambu/_parsed/ambu-mastersite-espresso.parsed.cshtml"System.NullReferenceException: Object reference not set to an instance of an object.at CompiledRazorTemplates.Dynamic.RazorEngine_55aea58ee7a64fe4b93bc2ac30803293.Execute() in E:\dynamicweb.net\SolutionsCustom\Co3\ambu-com.espresso4.dk\files\Templates\Designs\ambu\_parsed\ambu-mastersite-espresso.parsed.cshtml:line 30at 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.b__0(TextWriter writer)at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)at Dynamicweb.Rendering.Template.RenderRazorTemplate()
1 @inherits Co3.Espresso.Website.TemplateBases.Pages.PageBase 2 @using Co3.Ambu.Dw.Services; 3 @using Co3.Ambu.Dw.DAL.Models; 4 @using System.Web; 5 @using Co3.Ambu.Dw.Models.Frontend 6 @using Co3.Espresso.Base.Extensions 7 @using Dynamicweb.Frontend; 8 @using Dynamicweb.Rendering; 9 @{ 10 string globalAreaLang = GetGlobalValue( "Global:Area.Lang" ); 11 //DomainLocalization domainLocalization = LocalizationService.Instance.GetDomainLocalizationIfMatch(); 12 string siteHostUrl = HttpContext.Current.Request.Url.Host; 13 string siteHost = GetGlobalValue( "Global:Request.Scheme" ) + "://" + siteHostUrl + "/"; 14 int globalAreaID = PageView.Current().Area.ID; 15 16 bool isProductPage = string.IsNullOrEmpty( HttpContext.Current.Request["productid"] ) == false; 17 bool isProductPageSearch = string.IsNullOrEmpty( HttpContext.Current.Request["PageNum"] ) == false; 18 string productTitleSnippetHtml = RenderSnippet( "productTitle" ).ToString().Trim(); 19 string eComCanonicalSnippetTag = RenderSnippet( "eComCanonical" ).ToString().Trim(); 20 string globalValueUrl = GetGlobalValue( "Global:Pageview.Url" ); 21 string pageTitle = GetGlobalValue("Global:Page.Name"); 22 if ( GetGlobalValue( "Global:Pageview.Url" ).IndexOf( "?" ) > -1 ) 23 { 24 globalValueUrl = GetGlobalValue( "Global:Pageview.Url" ).Substring( 0, GetGlobalValue( "Global:Pageview.Url" ).IndexOf( "?" ) ); 25 } 26 string canonicalPageView = String.Format( "{0}://{1}{2}", GetGlobalValue( "Global:Request.Scheme" ), GetGlobalValue( "Global:Request.Host" ), globalValueUrl ); 27 string pageCanonical = PageView.Current().Page.MetaCanonical; 28 string OpenGraphURL = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + GetGlobalValue( "Global:Pageview.Url" ); 29 30 string scriptHead = (Espresso.Area.Item.ScriptHead != "") ? Espresso.Area.Item.ScriptHead : ""; 31 string scriptBodyTop = (Espresso.Area.Item.ScriptBodyTop != "") ? Espresso.Area.Item.ScriptBodyTop : ""; 32 string scriptBodyBottom = (Espresso.Area.Item.ScriptBodyBottom != "") ? Espresso.Area.Item.ScriptBodyBottom : ""; 33 } 34 <!DOCTYPE html> 35 <html lang="@globalAreaLang"> 36 <head> 37 <meta charset="utf-8"> 38 @if ( isProductPage == false && isProductPageSearch == false ) 39 { 40 <title>@GetValue("Title")</title> 41 @GetValue("CopyRightNotice") 42 43 @GetValue("MetaTags") 44 } 45 else if(isProductPage) 46 { 47 @productTitleSnippetHtml 48 } 49 else 50 { 51 <title>@pageTitle</title> 52 <base href="@siteHost"> 53 <meta name="generator" content="Dynamicweb 9"> 54 } 55 <meta content="width=device-width, initial-scale=1, shrink-to-fit=no, minimal-ui" name="viewport"> 56 <meta content="ie=edge" http-equiv="x-ua-compatible"> 57 <meta content="313B624F0C8264FB3B95057AE602F42C" name="msvalidate.01"> 58 @using Dynamicweb.Frontend 59 @using Area = Dynamicweb.Content.Area 60 61 62 <!-- Hreflang --> 63 @{ 64 @* Get areas from service *@ 65 Dynamicweb.Content.AreaService areaService = new Dynamicweb.Content.AreaService(); 66 IList<Area> areas = areaService.GetAreas(); 67 68 @* Get current page's relation-text from page-item *@ 69 string currentPageRelation = PageView.Current().Page.Item["PageRelation"] != null ? PageView.Current().Page.Item["PageRelation"].ToString() : string.Empty; 70 71 @* Frontpage must have 'frontpage' as relation-text *@ 72 string CONST_frontpageRelation = "frontpage"; 73 74 @* Iterate areas *@ 75 foreach ( Area area in areas ) 76 { 77 if ( area.Active == true ) 78 { 79 80 81 82 @* Get current area's culture *@ 83 string culture = area.Culture; 84 @* Check for IsDefault Hreflang on area *@ 85 string isDefaultHrefLang = area.Item["IsDefaultHrefLang"] != null ? area.Item["IsDefaultHrefLang"].ToString() : string.Empty; 86 @* Check for override-culture text on area *@ 87 string hreflangCultureOverride = area.Item["HreflangLanguageOverride"] != null ? area.Item["HreflangLanguageOverride"].ToString() : string.Empty; 88 89 @* Get scheme and domain *@ 90 string scheme = GetGlobalValue( "Global:Request.Scheme" ); 91 92 string domain = area.DomainLock; 93 @* If we have a primary domain call pageservice and get pages *@ 94 if ( string.IsNullOrEmpty( currentPageRelation ) == false && string.IsNullOrEmpty( domain ) == false && !domain.EndsWith( "espresso4.dk" ) ) 95 { 96 Dynamicweb.Content.PageService pageService = new Dynamicweb.Content.PageService(); 97 IEnumerable<Dynamicweb.Content.Page> pages = pageService.GetPagesByAreaID( area.ID ); 98 99 @* Iterate pages in area - check if is active + has item + has item-pagerelation + item-pagerelation equals current pagerelation *@100 foreach ( Dynamicweb.Content.Page page in pages.Where( p => p.Published && p.Item != null && p.Item["PageRelation"] != null && p.Item["PageRelation"].ToString().Equals( currentPageRelation ) ) )101 {102 string productId = HttpContext.Current.Request["productid"];103104 string url = string.Empty;105106 if ( string.IsNullOrEmpty( productId ) == false )107 {108 @* Build url to area product page *@109 string prodUrl = string.Format( "Default.aspx?ID={0}&ProductId={1}", page.ID, productId );110 url = string.Format( "{0}://{1}{2}", scheme, domain, SearchEngineFriendlyURLs.GetFriendlyUrl( prodUrl, area.EcomLanguageId ) );111 }112 else113 {114 @* Build url to area page *@115 url = string.Format( "{0}://{1}{2}", scheme, domain, SearchEngineFriendlyURLs.GetFriendlyUrl( page.GetPageHrefValue() ) );116 }117118 @* If our current page relation match frontpage - set link to domain only *@119 if ( currentPageRelation.ToLower() == CONST_frontpageRelation )120 {121 url = string.Format( "{0}://{1}/", scheme, domain );122 }123 @* If we have a value in the area-item to overrule the culture, override the value here *@124 if ( string.IsNullOrEmpty( hreflangCultureOverride ) == false )125 {126 culture = hreflangCultureOverride;127 }128 @* If our area item has checked in Default hreflang, we render x-default link *@129 if ( isDefaultHrefLang == "True" )130 {131 <link rel="alternate" hreflang="x-default" href="@url">132 }133 else134 {135 @* Render hreflang-link *@136 <link rel="alternate" hreflang="@culture.ToLower()" href="@url">137 }138139 @* Find all related cultures *@140 string relatedCulturesString = area.Item["RelatedCultures"] != null ? area.Item["RelatedCultures"].ToString() : string.Empty;141142 if (!string.IsNullOrWhiteSpace(relatedCulturesString))143 {144 @* RelatedCultures is an editable list, which comes comma separated *@145 string[] relatedCultures = relatedCulturesString.Split(',');146147 foreach (string relatedCulture in relatedCultures)148 {149 <link rel="alternate" hreflang="@relatedCulture.ToLower()" href="@url">150 }151 }152 }153 }154 }155 }156 }157 <!-- End Hreflang -->158159 @if ( globalValueUrl.EndsWith( "/product" ) || globalValueUrl.Contains( "/test-dev" ) || globalValueUrl.Contains( "/test-pages" ) )160 {161 <meta content="noindex" name="robots">162 }163164 @if ( isProductPage == false )165 {166 <link rel="canonical" href="@canonicalPageView">167 }168 else169 {170 <link rel="canonical" href="@eComCanonicalSnippetTag">171 @GetValue( "MetaTags" )172 }173174 <link rel="preload" href="/Files/Templates/Designs/ambu/assets/_dist/css/myfonts.net.css?family=Nationalev=1.0" as="style">175 <link rel="preload" href="/Files/Templates/Designs/ambu/assets/_dist/css/myfonts.net.css?family=NoirNo1v=1.0" as="style">176177 @Espresso.CriticalCSS178179 @scriptHead180181 @if ( string.IsNullOrEmpty( Espresso.Area.GoogleTagManagerID ) == false && Espresso.Area.GoogleTagManagerID != "GTM-XXXX" )182 {183 <!-- Google Tag Manager -->184 <script>185 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':186 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],187 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=188 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);189 })(window,document,'script','dataLayer','@Espresso.Area.GoogleTagManagerID');190 </script>191 <!-- End Google Tag Manager -->192 }193 <link href="/Files/Templates/Designs/ambu/assets/_dist/css/default.css?v=4.03999999" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style">194195 @Espresso.CriticalJS196197198 <link rel="shortcut icon" href="@Espresso.Area.Item.Favicon">199 @if ( Espresso.IsStagingUrl == true || siteHost.Contains( "webtester.dk" ) )200 {201 <meta content="noindex,nofollow" name="robots">202 }203204 <meta property="og:url" content="@OpenGraphURL">205 <meta property="og:title" content="@Espresso.OpenGraphTitle">206 <meta property="og:description" content="@Espresso.OpenGraphDescription">207 <meta property="og:image" content="@Espresso.OpenGraphImage">208209 @if ( string.IsNullOrEmpty( Espresso.Area.Item.GoogleSiteVerification ) == false )210 {211 <meta name="google-site-verification" content="@Espresso.Area.Item.GoogleSiteVerification">212 }213214 @{215 if ( 1 == 2 )216 {217 @GetValue( "Stylesheets" )218 }219 }220221 @*<div class="modal fade ambu-disclaimer-modal" id="ambu-disclaimer" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static">222 <div class="modal-dialog">223 <div class="modal-content col-xs-12 col-md-8 col-md-offset-2 p-t-2 p-b-2">224 <button type="button" class="close" data-dismiss="modal" aria-label="Close">225 <span aria-hidden="true">&times;</span>226 </button>227 <section class="p-t-3 p-b-3">228 <div class="container-fluid">229 <div class="row">230 <div class="col-xs-12">231 <div class="row">232 <div class="js-disclaimer-text-container col-xs-12 col-md-12 " hidden="">233 <div class="row">234 <div class="col-xs-12">235 <h2 class="m-b-0">Disclaimer <span style="font-size: 0.5em;" class="text-primary">(Important)</span></h2>236 <p class="card-header p-t-3 p-b-3 small m-t-1">237 ELECTRONIC VERSIONS OF THE MATERIALS YOU ARE SEEKING TO ACCESS ARE BEING MADE AVAILABLE ON THIS WEBPAGE BY AMBU A/S (THE <strong>“COMPANY”</strong>) IN GOOD FAITH AND FOR INFORMATION PURPOSES ONLY. THESE MATERIALS ARE NOT DIRECTED AT OR ACCESSIBLE BY PERSONS LOCATED IN THE UNITED STATES, CANADA, AUSTRALIA AND JAPAN AND ANY OTHER JURISDICTION WHERE THE EXTENSION OR AVAILABILITY OF THE PROPOSED OFFERING (AND ANY OTHER TRANSACTION CONTEMPLATED THEREBY) WOULD BREACH ANY APPLICABLE LAW OR REGULATION (THE <strong>“RESTRICTED JURISDICTIONS”</strong>).</p>238 <p class="lead">239 Please read this notice carefully — it applies to all persons who view this webpage. Please note that the disclaimer set out below may be altered or updated from time to time. You should read it in full each time you visit the site.</p>240 <h3>Basis of access </h3>241 <p>242 Access to electronic versions of these materials is being made available by the Company in good faith and for information purposes only. Any person seeking access to this webpage represents and warrants to the Company that they are doing so for information purposes only. Making press announcements and other documents available in electronic format does not constitute an offer to sell or the solicitation of an offer to buy the securities mentioned in such materials (the “Securities”). Further, it does not constitute a recommendation by the Company or any other party to sell or buy the Securities.</p>243 <h3>Foreign Persons</h3>244 <p>245 Viewing the materials on this webpage may not be lawful in certain jurisdictions. In other jurisdictions, only certain categories of person may be allowed to view such materials. Any citizens or residents or, or persons otherwise located in, any Restricted Jurisdiction, who wish to view these materials should satisfy themselves that they are not subject to any local requirements that prohibit or restrict them from doing so.</p>246 <p>247 Unless otherwise determined by the Company and permitted by applicable law and regulation, the materials do not constitute or form a part of any offer or solicitation to purchase or subscribe for the Securities by the Company made in the Restricted Jurisdictions or any other jurisdiction in which such offers or sales are unlawful prior to registration or qualification under the securities laws of any such jurisdiction.</p>248 <p>249 In particular, the Securities have not been and will not be registered under the United States Securities Act of 1933, as amended (the <strong>“Securities Act”</strong>), and may not be offered or sold in or into the United States except pursuant to an exemption from, or in a transaction not subject to, the registration requirements of the Securities Act. The Securities will not be registered under or offered in compliance with applicable securities laws of any state, province, territory, county or jurisdiction of the United States or the other Restricted Jurisdictions. Accordingly, unless an exemption under the relevant securities law is applicable, the Securities may not be offered, sold, taken up, exercised, renounced, resold, delivered or distributed, directly or indirectly, in or into the United States or the other Restricted Jurisdictions or any other jurisdiction if to do so would constitute a violation of the relevant laws of, or require registration of the Securities in, such jurisdiction. There will be no public offering of the Securities in the United States.</p>250 <p>251 If you are not permitted to view materials on this webpage or are in any doubt as to whether you are permitted to view these materials, please exit this webpage.</p>252 <h3>Confirmation of understanding and acceptance of disclaimer</h3>253 <p>254 Electronic versions of these materials are not directed at or accessible by, nor should they be made available to, persons located in the Restricted Jurisdictions or in any other restricted jurisdiction.</p>255 <p>256 By clicking on the “Agree” button, I certify that I am not located in any of the Restricted Jurisdictions or in any other restricted jurisdiction.257 </p>258 <p>259 I have read and understood the disclaimer set out above. I understand that it may affect my rights. I agree to be bound by its terms. By clicking on the “Agree” button, I confirm that I am permitted to proceed to electronic versions of these materials.</p>260 </div>261 </div>262 <div class="row">263264 <div class="m-t-1 col-xs-12 col-md-6">265 <button class="btn btn-primary btn-sm btn-block js-disclaimer-modal-confirm-again-btn" type="button">Agree</button>266 </div>267 <div class="m-t-1 col-xs-12 col-md-6">268 <button class="btn btn-secondary btn-sm btn-block" type="button" data-dismiss="modal">Disagree</button>269 </div>270 </div>271 </div>272 <div class="js-disclaimer-select-country-container col-xs-12 col-md-8 col-md-offset-2">273 <h2 class="text-xs-center">Please confirm your location here</h2>274 <form class="form-inline"></form>275 <div class="form-group">276 <div class="row">277 <div class="m-t-1 col-xs-12 col-md-8">278 <select style="height: 100%; padding: 0.1em 0;" class="form-control form-control-lg js-disclaimer-modal-confirm-value">279 <option selected="" disabled="">Select country</option>280 <option value="AL">Albania</option>281 <option value="AR">Argentina</option>282 <option value="AU">Australia</option>283 <option value="AT">Austria</option>284 <option value="BH">Bahrain</option>285 <option value="BD">Bangladesh</option>286 <option value="BE">Belgium</option>287 <option value="BO">Bolivia</option>288 <option value="BR">Brazil</option>289 <option value="BG">Bulgaria</option>290 <option value="CA">Canada</option>291 <option value="CL">Chile</option>292 <option value="CN">China</option>293 <option value="CO">Colombia</option>294 <option value="CR">Costa Rica</option>295 <option value="HR">Croatia</option>296 <option value="CZ">Czech Republic</option>297 <option value="DK">Denmark</option>298 <option value="EC">Ecuador</option>299 <option value="EG">Egypt</option>300 <option value="SV">El Salvador</option>301 <option value="EE">Estonia</option>302 <option value="FI">Finland</option>303 <option value="FR">France</option>304 <option value="DE">Germany</option>305 <option value="GR">Greece</option>306 <option value="GT">Guatamala</option>307 <option value="HK">Hong Kong</option>308 <option value="HU">Hungary</option>309 <option value="IS">Iceland</option>310 <option value="IN">India</option>311 <option value="ID">Indonesia</option>312 <option value="IR">Iran</option>313 <option value="IQ">Iraq</option>314 <option value="IE">Ireland</option>315 <option value="IL">Israel</option>316 <option value="IT">Italy</option>317 <option value="JP">Japan</option>318 <option value="JO">Jordan</option>319 <option value="KE">Kenya</option>320 <option value="KW">Kuwait</option>321 <option value="LV">Latvia</option>322 <option value="LB">Lebanon</option>323 <option value="LY">Libya</option>324 <option value="LT">Lithuania</option>325 <option value="LU">Luxembourg</option>326 <option value="MY">Malaysia</option>327 <option value="MT">Malta</option>328 <option value="MK">Marcedonia</option>329 <option value="MX">Mexico</option>330 <option value="MA">Morocco</option>331 <option value="MM">Myanmar</option>332 <option value="NP">Nepal</option>333 <option value="NL">Netherlands</option>334 <option value="NZ">New Zealand</option>335 <option value="NI">Nicaragua</option>336 <option value="NO">Norway</option>337 <option value="OM">Oman</option>338 <option value="PK">Pakistan</option>339 <option value="PA">Panana</option>340 <option value="PY">Paraguay</option>341 <option value="PE">Peru</option>342 <option value="PH">Philippines</option>343 <option value="PL">Poland</option>344 <option value="PT">Portugal</option>345 <option value="PR">Puerto Rico</option>346 <option value="QA">Qatar</option>347 <option value="DO">República Dominicana</option>348 <option value="RO">Romania</option>349 <option value="RU">Russia</option>350 <option value="SA">Saudi Arabia</option>351 <option value="RS">Serbia</option>352 <option value="SG">Singapore</option>353 <option value="SK">Slovak Republic</option>354 <option value="SI">Slovenia</option>355 <option value="ZA">South Africa</option>356 <option value="KR">South Korea</option>357 <option value="ES">Spain</option>358 <option value="LK">Sri Lanka</option>359 <option value="SE">Sweden</option>360 <option value="CH">Switzerland</option>361 <option value="SY">Syria</option>362 <option value="TW">Taiwan</option>363 <option value="TH">Thailand</option>364 <option value="TT">Trinidad &amp; Tobago</option>365 <option value="TN">Tunisia</option>366 <option value="TR">Turkey</option>367 <option value="AE">UAE</option>368 <option value="GB">United Kingdom</option>369 <option value="US">United States</option>370 <option value="UY">Uruguay</option>371 <option value="VN">Vietnam</option>372 </select>373 </div>374 <div class="m-t-1 col-xs-12 col-md-4">375 <button class="btn btn-primary btn-sm btn-block js-disclaimer-modal-confirm-btn" type="button">Go</button>376 </div>377 </div>378 </div>379 </div>380 <form></form>381 </div>382 </div>383 </div>384 </div>385 </section>386 </div>387 </div>388 </div>*@389390 @GetValue("Stylesheets")391 @GetValue("Javascripts")392 </head>393394 <body class="@Espresso.Item.CustomClasses">395396 @scriptBodyTop397398 @if ( string.IsNullOrEmpty( Espresso.Area.GoogleTagManagerID ) == false && Espresso.Area.GoogleTagManagerID != "GTM-XXXX" )399 {400 <!-- Google Tag Manager (noscript) -->401 <noscript>402 <iframe src="https://www.googletagmanager.com/ns.html?id=@Espresso.Area.GoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe>403 </noscript>404 <!-- End Google Tag Manager (noscript) -->405 }406407 @using Co3.Ambu.Dw.Services408 @{409 if( Espresso.Canvas.ClassList.ToString().Contains("e-page-is-loading") == true ){410 Espresso.Canvas.ClassList.RemoveClasses("e-page-is-loading");411 Espresso.Canvas.ClassList.AddClasses("is-loading");412 }413 if ( Espresso.Item.HeaderHide == "True" )414 {415 Espresso.Canvas.ClassList.AddClasses( "p-t-0" );416 }417 }418419 @if( Espresso.Area.Item.OptimizedLoading == "True" ){420 <div id="js-e-page-loading-overlay" class="e-page-loading-overlay e-loading-overlay is-loading"><div class="e-loading-spinner"></div></div>421 }422423 <div class="@Espresso.Canvas.ClassList" id="js-e-canvas">424 @{425 string Logo = Espresso.Area.Item.Logo; string Tagline = Espresso.Area.Item.Tagline;426 }427 @if( Espresso.Item.HeaderHide != "True" ){428 <header class="e-header e-header-mastersite js-e-header is-sticky">429 <div class="e-header-container">430 <div class="container-fluid">431 <div class="row">432 <div class="col-xs-12">433 <article class="e-header-wrapper">434 <div class="e-logo hidden-lg-up">435 <a href="/" class="e-logo-link">436 <img src="@Logo" class="e-logo-img" alt="@Tagline">437 @if( string.IsNullOrEmpty( Tagline ) == false ){438 <p class="e-logo-tagline">@Tagline</p>439 }440 </a>441 </div>442 @if( Espresso.Item.NavigationHide != "True" ){443 @GetValue("DwNavigation(dwnavheadercta)")444 if( Espresso.Area.Item.Search == "True" ){445 <div class="e-search-toggle e-header-btn">446 <a data-toggle="modal" data-target=".modal.e-search" class="btn text-auto">447 <i class="material-icons m-a-0">search</i>448 </a>449 </div>450 }451 if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity"))) {452 if( Espresso.Area.Item.Shop == "True" ){453 <div class="e-header-btn e-cart-mini">454 <a href="/quote/cart/" class="btn text-auto">455 <i class="material-icons m-a-0">shopping_basket</i>456 <span class="e-cart-count js-e-cart-count">@GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity")</span>457 </a>458 </div>459 }460 }461 <div class="e-header-btn e-nav-toggle">462 <a data-toggle="modal" data-target=".modal.e-nav-container" class="btn text-auto">463 <i class="material-icons">menu</i>464 </a>465 </div>466 <div class="e-nav-container modal js-e-nav-container" data-backdrop="false">467 <nav class="e-nav">468 <div class="e-nav-masthead">469 <div class="e-logo">470 <a href="/" class="e-logo-link">471 <img src="@Logo" class="e-logo-img" alt="@Tagline"> @if( string.IsNullOrEmpty( Tagline ) == false ){472 <p class="e-logo-tagline">@Tagline</p>473 }474 </a>475 </div>476 <div class="e-nav-toggle e-header-btn">477 <button type="button" data-toggle="modal" data-target=".modal.e-nav-container" class="btn text-auto">478 <i class="material-icons">close</i>479 </button>480 </div>481 @if( Espresso.Area.Item.Search == "True" ){482 <div class="e-search-toggle e-header-btn">483 <button type="button" data-toggle="modal" data-target=".modal.e-search" class="btn text-auto">484 <i class="material-icons">search</i>485 </button>486 </div>487 }488 @if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity"))) {489 if( Espresso.Area.Item.Shop == "True" ){490 <div class="e-header-btn e-cart-mini">491 <a href="/quote/cart/" class="btn text-auto">492 <i class="material-icons m-a-0">shopping_basket</i>493 <span class="e-cart-count js-e-cart-count">@GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity")</span>494 </a>495 </div>496 }497 }498 </div>499 <section class="e-nav-global">500 <ul class="nav">501 @GetValue("DwNavigation(dwnavglobal)")502 </ul>503 @if( Espresso.Area.Item.Search == "True" ){504 <div class="e-search-toggle">505 <button type="button" data-toggle="modal" data-target=".modal.e-search" class="btn text-auto">506 <i class="material-icons">search</i>507 </button>508 </div>509 }510 @if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity"))) {511 if( Espresso.Area.Item.Shop == "True" ){512 <div class="e-cart-mini">513 <a href="/quote/cart/" class="btn text-auto">514 <i class="material-icons m-a-0">shopping_basket</i>515 <span class="e-cart-count js-e-cart-count">@GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity")</span>516 </a>517 </div>518 }}519 </section>520 @*@if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavcta)") ) == false ){521 <section class="e-nav-cta">522 <ul class="nav">523 @GetValue("DwNavigation(dwnavcta)")524 </ul>525 </section>526 }*@527 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiesprimary)") ) == false ){528 <section class="e-nav-utilities-primary">529 <div class="e-logo">530 <a href="/" class="e-logo-link hidden-md-down">531 <img src="@Logo" class="e-logo-img" alt="@Tagline">532 @if( string.IsNullOrEmpty( Tagline ) == false ){533 <p class="e-logo-tagline">@Tagline</p>534 }535 </a>536 </div>537 <ul class="nav">538 @if( Espresso.Item.NavigationHide != "True" ){539 @GetValue("DwNavigation(dwnavutilitiesprimary)")540 }541 </ul>542 </section>543 }544 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiessecondaryheader)") ) == false ){545 <section class="e-nav-utilities-secondary">546 <ul class="nav">547 @GetValue("DwNavigation(dwnavutilitiessecondaryheader)")548 </ul>549 </section>550 }551 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavcontext)") ) == false ){552 <section class="e-nav-context">553 <ul class="nav">554 @GetValue("DwNavigation(dwnavcontext)")555 </ul>556 </section>557 }558 </nav>559560 </div>561 }562 </article>563 </div>564 </div>565 </div>566 </div>567 </header>568 }569570 <main class="e-content">571 @{572 string eBreadcrumbClasslist = "e-breadcrumb js-e-breadcrumb";573 if( String.IsNullOrEmpty( Espresso.Item.BreadcrumbColor ) == false && Espresso.Item.BreadcrumbColor != "auto"){574 eBreadcrumbClasslist += string.Format(" e-breadcrumb-{0}", Espresso.Item.BreadcrumbColor);575 }576 }577 @if( Espresso.Item.BreadcrumbShow == "True" ){578 <nav class="@eBreadcrumbClasslist">579 <div class="container-fluid">580 <div class="row">581 <div class="col-xs-12">582 @GetValue("DwNavigation(dwnavbreadcrumb)")583 </div>584 </div>585 </div>586 </nav>587 }588589 <article id="dwcontentmain" class="e-content-main @Espresso.ContentArea.ClassList">590 @using Dynamicweb.Admin.dk.dynamicweb.templates591 @{592 string NavigationLocalHorizontalClassList = "e-nav-local e-nav-local-horizontal js-e-nav-local-horizontal";593 @* reset-animate *@594 string NavigationLocalHorizontalContainerClassList = "e-nav-local-container";595 if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" ) {596 NavigationLocalHorizontalClassList += " " + Espresso.Item.NavigationLocalCustomClasses;597 if( Espresso.Item.NavigationLocalSticky == "True" ) {598 NavigationLocalHorizontalClassList += " is-sticky";599 }600 if( Espresso.Item.NavigationLocalAbsolute == "True" ) {601 NavigationLocalHorizontalClassList += " is-absolute";602 }603 else{604 if( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) {605 NavigationLocalHorizontalClassList += " m-t-" + Espresso.Item.NavigationLocalMarginTop;606 }607 if( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) {608 NavigationLocalHorizontalClassList += " m-b-" + Espresso.Item.NavigationLocalMarginBottom;609 }610 }611 }612 }613614 @if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" )615 {616 string navigation = RenderNavigation( new617 {618 id = "dwnav-local-" + Espresso.DynamicwebPage.ID,619 parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID,620 template = string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false ? Espresso.Item.NavigationLocalTemplate : "local-" + Espresso.Item.NavigationLocalLayout + ".xslt",621 startlevel = Espresso.Item.NavigationLocalLevelStart,622 endlevel = Espresso.Item.NavigationLocalLevelEnd,623 expandmode = Espresso.Item.NavigationLocalExpandMode,624 } );625 if(!string.IsNullOrEmpty(navigation))626 {627 <section class="e-section @NavigationLocalHorizontalClassList">628 <div class="container-fluid">629 <div class="row">630 <div class="col-xs-12">631 <div class="row">632633 <div class="col-xs-12">634 <nav id="dwnav-local-@Espresso.DynamicwebPage.ID" class="@NavigationLocalHorizontalContainerClassList">635 <ul class="nav">636 @if( Espresso.Item.NavigationLocalHeading != "" ){637 <li class="e-nav-local-heading"><h2><a class="e-nav-local-heading-link" href="/default.aspx?ID=@Espresso.Item.NavigationLocalParentPage">@Espresso.Item.NavigationLocalHeading</a></h2></li>638 }639 @navigation640 </ul>641 </nav>642 </div>643644 </div>645 </div>646 </div>647 </div>648 </section>649 }650 }651652 @{653 string NavigationLocalVerticalClassList = "e-nav-local e-nav-local-vertical js-e-nav-local-vertical reset-animate";654 string NavigationLocalVerticalContainerClassList = "e-nav-local-container";655 if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) {656 NavigationLocalVerticalClassList += " " + Espresso.Item.NavigationLocalCustomClasses;657 //NavigationLocalVerticalClassList += " col-xs-3";658659 if( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) {660 NavigationLocalVerticalClassList += " p-t-" + Espresso.Item.NavigationLocalMarginTop;661 }662 if( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) {663 NavigationLocalVerticalClassList += " p-b-" + Espresso.Item.NavigationLocalMarginBottom;664 }665666 if( Espresso.Item.NavigationLocalSticky == "True" ) {667 NavigationLocalVerticalClassList += " is-sticky";668 }669 if( Espresso.Item.NavigationLocalAbsolute == "True" ) {670 NavigationLocalVerticalClassList += " is-absolute";671 }672 else{673 Espresso.ContentSection.ClassList.RemoveClasses("col-xs-12 col-md-12 col-lg-12 col-md-10 col-md-11 col-lg-8 col-md-offset-1 col-lg-offset-2");674 Espresso.ContentSection.ClassList.AddClasses("col-xs-12 col-lg-9 col-lg-offset-3");675 }676 }677 }678679 @if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" )680 {681 string navigation = RenderNavigation( new682 {683 id = "dwnav-local-" + Espresso.DynamicwebPage.ID,684 parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID,685 template = string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false ? Espresso.Item.NavigationLocalTemplate : "local-" + Espresso.Item.NavigationLocalLayout + ".xslt",686 startlevel = Espresso.Item.NavigationLocalLevelStart,687 endlevel = Espresso.Item.NavigationLocalLevelEnd,688 expandmode = Espresso.Item.NavigationLocalExpandMode,689 } );690691 if ( !string.IsNullOrEmpty( navigation ) )692 {693 <section class="e-section @NavigationLocalVerticalClassList">694 <div class="container-fluid">695 <div class="row">696 <div class="col-xs-12">697 <div class="row">698699 <div class="col-xs-3">700 <nav id="dwnav-local-@Espresso.DynamicwebPage.ID" class="@NavigationLocalVerticalContainerClassList">701 <ul class="nav">702 @if ( Espresso.Item.NavigationLocalHeading != "" )703 {704 <li class="e-nav-local-heading">705 <h2><a class="e-nav-local-heading-link" href="/default.aspx?ID=@Espresso.Item.NavigationLocalParentPage">@Espresso.Item.NavigationLocalHeading</a></h2>706 </li>707 }708 @navigation709 </ul>710 </nav>711 </div>712713 </div>714 </div>715 </div>716 </div>717 </section>718 }719 }720721722 <section class="e-section">723 <div class="container-fluid">724 <div class="row">725 <div class="@Espresso.ContentSection.ClassList">726 <div class="row">727 @GetValue("DwContent(dwcontentmain)")728 </div>729 </div>730 </div>731 </div>732 </section>733 </article>734 </main>735 <footer class="e-footer">736 <article class="e-footer-wrapper">737 @if( Espresso.Item.FooterHide != "True" ){738 <section class="e-footer-content e-section">739 <div class="container-fluid">740 <div class="row">741 @if( string.IsNullOrEmpty( Espresso.Area.Item.FooterParagraphs ) == false ){742 foreach( string paragraphID in Espresso.Area.Item.FooterParagraphs.Split( new char[]{','}, StringSplitOptions.None ) ){743 @RenderParagraphContent( int.Parse( paragraphID ) );744 }745 }746 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiessecondaryfooter)") ) == false ){747 <div class="col-xs-12">748 <aside class="e-nav-utilities-secondary">749 <ul class="nav nav-inline">750 @GetValue("DwNavigation(dwnavutilitiessecondaryfooter)")751 </ul>752 </aside>753 </div>754 }755 </div>756 </div>757 </section>758 }759 <section class="e-footer-copyright e-section">760 <div class="container-fluid">761 <div class="row p-t-1">762 @if( string.IsNullOrEmpty( Espresso.Area.Item.FooterParagraphsUtility ) == false ){763 foreach( string paragraphID in Espresso.Area.Item.FooterParagraphsUtility.Split( new char[]{','}, StringSplitOptions.None ) ){764 @RenderParagraphContent( int.Parse( paragraphID ) );765 }766 }767 <div class="p p-imagetext col-xs-12 text-xs-center">768 <p class="e-copyright p-t-2">769 @Translate("Footer CopyrightText", "Copyright &copy;")770 @GetGlobalValue("Global:Server.Date.Year")771 @Espresso.Area.Item.CompanyName772 </p>773 </div>774 </div>775 </div>776 </section>777 </article>778 </footer>779780 </div>781 @using Dynamicweb.Admin.dk.dynamicweb.templates@using Dynamicweb.Ecommerce.Products<div class="e-cart-msg" id="js-e-cart-msg"><button class="close" data-dismiss="msg" type="button"><i class="material-icons">close</i></button><section class="e-section p-b-3 p-t-3"><div class="container-fluid"><div class="row"><div class="col-xs-12"><div class="js-e-cart-msg-content"><script id="js-handlebars-tmpl-cart-msg-content" type="text/x-handlebars-template"><div class="row"><div class="col-xs-12"><div class="e-cart-msg-last-added p-t-1"><div class="row"><div class="col-xs-12"><div class="row"><div class="col-xs-12">@if ( GetInteger( "Ecom:Order.OrderLines.TotalProductQuantity" ) > 1 ){<h2 class="m-b-0">{{totalProductQuantity}} @Translate( "Quote requests in your basket", "Quote requests in your basket" )</h2>}else{<h2 class="m-b-0"><i class="material-icons text-success">check</i> {{lastAdded.quantity}} @Translate( "Quote request in your basket", "Quote request in your basket" )</h2>}</div></div><div class="row"><div class="col-xs-12 m-t-3"><div class=""><div class="row"><div class="col-xs-5 col-sm-7"><h3>@Translate( "Product", "Product" )</h3></div><div class="col-xs-4 col-sm-3"><h3>@Translate( "Product no.", "Product no." )</h3></div><div class="col-xs-3 col-sm-2 text-xs-center"><h3>@Translate( "QTY", "QTY" )</h3></div></div><hr class="m-t-1"><div class="js-e-cart-orderlines">{{#each orderlines}}<div class="js-e-orderline e-orderline" id="{{id}}"><div class="row"><div class="col-xs-5 col-sm-7 e-orderline-product-text"><p class="m-b-0"><strong>{{{product.name}}}</strong></p></div><div class="col-xs-4 col-sm-3">{{{product.number}}}</div><div class="col-xs-3 col-sm-2"><div class="row row-xs-center"><div class="col-xs-12"><input class="form-control text-xs-center js-e-orderline-quantity" type="number" value="{{quantity}}" name="QuantityOrderLine{{id}}" data-rule-min="0" data-rule-digits="true"></div></div></div></div><hr></div>{{/each}}</div></div></div></div></div></div></div></div></div></script></div><div class="col-xs-6 col-xs-offset-6 e-cart-actions m-b-1 text-xs-right"><div class="row"><div class="col-xs-6 hidden-sm-down m-b-1"><a class="btn btn-block btn-outline-success" href="javascript:history.back();">@Translate( "Continue shopping", "Continue shopping" )</a></div><div class="col-md-6 col-xs-12 m-b-1"><a class="btn btn-block btn-success" href="/quote/cart">@Translate( "Request Quote", "Request Quote" )</a></div></div></div></div></div></div></section></div>782 @if( Espresso.Area.Item.Search == "True" ){783 <div class="modal fade e-search js-e-search js-e-search-modal modal-fullscreen" data-backdrop="false">784 <div class="modal-dialog">785 <div class="modal-content">786 <div class="modal-body">787 <button type="button" class="close" data-dismiss="modal">788 <i class="material-icons">close</i>789 </button>790 <div class="container-fluid">791792 <div class="e-search-form-container">793 <div class="row">794 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3 m-t-3">795 <form action="" class="e-search-form js-e-search-form">796 <div class="js-e-search-input-group e-search-input-group is-empty">797 <label class="e-search-label" for="e-search-input"><i class="material-icons">search</i></label>798 @{ string Translate_Search_InputDefaultText = Translate("Search InputDefaultText", "Søgning"); }799 <input type="text" class="js-e-search-input e-search-input form-control" name="q" id="e-search-input" placeholder="@Translate_Search_InputDefaultText">800 <span class="js-e-search-clear e-search-clear"><i class="material-icons">close</i></span>801 <button class="e-search-submit btn btn-primary" type="submit"><i class="material-icons p-a-0">search</i></button>802 </div>803 </form>804 </div>805 </div>806 </div>807808 <div class="js-e-search-result-container e-search-result-container">809 <div class="row">810811 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3">812 <p class="e-search-result-info small text-muted m-t-1 m-b-3"><span class="js-e-search-result-count">0</span> @Translate("Search ResultCountText", "resultater")</p>813 </div>814815 <div class="col-xs-12 col-xl-10 col-xl-offset-1" style="z-index: 0;">816 <div class="js-e-search-result-products e-search-result-products is-empty m-b-4">817 <script id="js-handlebars-tmpl-search-result-item-product" type="text/x-handlebars-template">818 <div class="e-products">819 <ul class="e-grid">820 {{#loop products}}821 <li class="col-xs-6 col-md-3 m-b-4">822 <div class="e-product-container">823 <div class="ambu-products-image-box">824 <a href="{{{url}}}">825 <img src="{{imageLarge}}" alt="{{primaryImageAltText}}">826 </a>827 </div>828 <div class="e-product-text-container text-xs-center">829 <h3 class="e-product-name m-b-0 m-t-2"><a href="{{{url}}}">{{name}}</a></h3>830 <p class="e-product-text">831 <a href="{{{url}}}">{{descriptionShortExtra01}}</a>832 </p>833 </div>834 </div>835 </li>836 {{/loop}}837 </ul>838 <div class="p-txt-container col-xs-12 text-xs-center">839 <span class="js-e-search-products-show-all"><a href="" class="btn btn-secondary p-x-6">@Translate( "Search ViewAllProductsButtonText", "Vis alle produkter" )</a></span>840 </div>841 </div>842 </script>843 </div>844 </div>845846 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3">847 <div class="js-e-search-result-pages e-search-result-pages is-empty m-b-1">848 <script id="js-handlebars-tmpl-search-result-item-page" type="text/x-handlebars-template">849 <div class="row">850 {{#loop pages}}851 <div class="col-xs-12">852 <p class="m-b-0"><a href="{{{url}}}" class="text-bold">{{{title}}}</a></p>853 <p class="m-b-0 small text-truncate">854 <a href="{{{url}}}" class="text-auto text-muted"><span class="hidden-xs-down">@GetGlobalValue( "Global:Request.Host" )</span>{{{url}}}</a></p>855 <p class="small">{{{text}}}...</p>856 </div>857 {{/loop}}858 </div>859 </script>860 </div>861 </div>862863 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3" id="downloads-content">864 <h4 class="e-search-result-header large text-muted m-t-1 m-b-1"><span class="hidden-xs-up">Supplementary Product Information</span></h4>865 </div>866867 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3">868 <div class="js-e-search-result-files e-search-result-files is-empty m-b-3">869 <script id="js-handlebars-tmpl-search-result-item-file" type="text/x-handlebars-template">870 <div class="row">871 {{#loop files}}872 <div class="col-xs-12">873 <p class="m-b-1 small text-truncate">874 <a target="_blank" href="/Files/{{{filepath}}}/{{{filename}}}" class="text-bold">{{{filename}}}</a>875 </p>876 </div>877 {{/loop}}878 </div>879 </script>880 </div>881 </div>882883 </div>884885 <div class="js-e-search-loading-overlay e-loading-overlay e-search-loading-overlay">886 <div class="e-loading-spinner"></div>887 </div>888889 </div>890891 </div>892 </div>893 </div>894 </div>895 </div>896 }897898 @if( Espresso.Area.Item.BackToTopLink == "True" ){899 <a href="#top" class="e-back-to-top js-e-back-to-top"><i class="material-icons">keyboard_arrow_up</i></a>900 }901902 @RenderingService.Instance.PartialView( "_partials/redirect.cshtml" )903904905 <script async="" src="/Files/Templates/Designs/ambu/assets/_dist/js/default.js?v=4.008"></script>906907 @{908 SidebarPopup sidebarPopupModel = new SidebarPopup()909 {910 SidebarPopupContent = Pageview.Area.Item.GetValue<string>( "SidebarPopupContent" ),911 SidebarPopupButtonIcon = Pageview.Area.Item.GetValue<string>( "SidebarPopupButtonIcon" ),912 SidebarPopupLandingPage = Pageview.Area.Item.GetValue<string>( "SidebarPopupLandingPage" )913 };914 }915916 @RenderingService.Instance.PartialView( "../_partials/ambu-sidebar-popup.cshtml", sidebarPopupModel )917918 <div aria-hidden="true" class="ambu-languages fade modal" data-backdrop="true" id="ambu-languages" role="dialog" tabindex="-1">919 <button aria-label="Close" class="close" data-dismiss="modal" type="button">920 <span aria-hidden="true">&times;</span>921 </button>922 <div class="modal-dialog">923 <div class="modal-content">924 <section class="p-b-3 p-t-3">925 <div class="container-fluid">926 <div class="row">927 <div class="col-xs-12">928 <div class="row">929 <div class="col-xs-12 m-b-2 text-xs-center">930 <img class="col-xs-4 m-b-1" src="/Files/Images/worldmap.svg">931 </div>932 <div class="col-md-10 col-md-offset-1 col-xs-12">933 <p class="h2 text-xs-center">@Translate( "Choose your country", "Find your local Ambu website" )</p>934 <ul class="nav small">935 @GetValue("DwNavigation(dwnavambulanguages)")936 </ul>937 <p class="modal-text text-xs-center">@Translate( "Choose your country additional text", "Looking for a local Ambu representative in your country?<br><a href='/Default.aspx?Id=12845'>Go to our local distributors page</a>" )</p>938 </div>939 </div>940 </div>941 </div>942 </div>943 </section>944 </div>945 </div>946 </div>947948 <script type="text/javascript">949 window.dataLayer = window.dataLayer || [];950 var regexname = /^185\.233\.221\.218$|^202\.68\.175\.150$|^80\.14\.131\.94$|^93\.51\.217\.48$|^208\.204\.9\.50$|^50\.203\.113\.7$|^59\.60\.7\.50$|^113\.210\.190\.34$|^23\.97\.167\.114$|^52\.166\.13\.102$|^195\.77\.35\.162$|^46\.17\.165\.212$|^210\.187\.178\.33$|^62\.245\.231\.242$|^201\.174\.154\.58$|^77\.243\.43\.130$|^87\.62\.83\.1$/;951 var visitorIp = "@HttpContext.Current.Request.UserHostAddress";952 if (visitorIp.match(regexname)) {953 window.dataLayer.push({954 'Ambu_Internal': 'true'955 });956 } else {957 window.dataLayer.push({958 'Ambu_Internal': 'false'959 });960 }961 </script>962 <!-- Google reCAPTCHA -->963 <script async="" defer="" src="https://www.google.com/recaptcha/api.js"></script>964 <!-- End Google reCAPTCHA -->965966 @scriptBodyBottom967968 </body>969 @GetValue( "CopyRightNotice" )970 </html>971