Error executing template "Designs/elsalg/eCom/Product/ProductDetail.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_32d40a480fc447b5a0bd60662f3c2636.Execute() in d:\websites\euronics.dk\application\Files\Templates\Designs\elsalg\eCom\Product\ProductDetail.cshtml:line 427
   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.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @using System.Net; 2 @using System.Web; 3 @using eela.custom; 4 @using eela.custom.Providers; 5 @using Newtonsoft.Json; 6 @using Newtonsoft.Json.Linq; 7 @using Dynamicweb.Ecommerce; 8 9 @{ 10 var request = HttpContext.Current.Request; 11 12 if (!string.IsNullOrEmpty(request.QueryString["pid"]) || !string.IsNullOrEmpty(request.QueryString["PID"])) 13 { 14 var redirectURL = string.Format("{0}://{1}{2}?", request.Url.Scheme, request.Url.Authority, request.Url.AbsolutePath); 15 16 foreach (string param in request.QueryString) 17 { 18 if (param.ToLower() != "pid") 19 { 20 redirectURL += String.Format("{0}={1}&", param, request.QueryString[param]); 21 } 22 } 23 24 redirectURL = redirectURL.TrimEnd('&'); 25 HttpContext.Current.Response.RedirectPermanent(redirectURL, true); 26 return; 27 } 28 else if (request.RawUrl.ToLower().Contains("?pid")) 29 { 30 var redirectURL = request.RawUrl.Substring(0, request.RawUrl.ToLower().IndexOf("?pid")); 31 HttpContext.Current.Response.RedirectPermanent(redirectURL, true); 32 return; 33 } 34 } 35 36 @functions{ 37 public String getClassFromStockText(String stockText) 38 { 39 String stockClass = ""; 40 switch (stockText) 41 { 42 case "På lager": return "in-stock"; 43 case "På fjernlager": return "warehouse"; 44 case "Ikke på lager": return "out-of-stock"; 45 } 46 return stockClass.ToString(); 47 } 48 49 public bool GetIfIsInLampGroup(string currentProductId) 50 { 51 if (string.IsNullOrEmpty(currentProductId)) { return false; } 52 var lampParentGroupId = "20-at-SHOP2"; 53 if (lampParentGroupId == currentProductId) { return true; } 54 55 var product = Dynamicweb.Ecommerce.Services.Products.GetProductById(currentProductId, string.Empty, false); 56 if (product == null) { return false; } 57 58 var groups = product.Groups.ToList(); 59 while (groups != null && groups.Count > 0) 60 { 61 var temp = new List<Dynamicweb.Ecommerce.Products.Group>(); 62 foreach (var g in groups) 63 { 64 if (g.Id == lampParentGroupId) { return true; } 65 temp.AddRange(g.ParentGroups.ToList()); 66 } 67 groups = temp; 68 } 69 70 return false; 71 } 72 73 public string GetMetaTitle() 74 { 75 string title = GetValue("Ecom:Product.Name") != null ? GetValue("Ecom:Product.Name").ToString() : string.Empty; 76 string categoryTitle = string.Empty; 77 foreach (var customField in GetLoop("CustomFields")) 78 { 79 categoryTitle += customField.GetValue("ELSProductSubHeader") != null ? 80 customField.GetValue("ELSProductSubHeader").ToString() : null; 81 } 82 if (!string.IsNullOrEmpty(categoryTitle)) 83 { 84 title += " - " + categoryTitle; 85 } 86 return title; 87 } 88 89 public List<int> ProductImgExists() 90 { 91 List<int> imgExistsDict = new List<int>(); 92 93 for (int i = 5; i >= 1; i--) 94 { 95 try 96 { 97 string url = String.Format("https://cdn1.elsalg.dk/files/ELSALG/eCom/Pictures/{0}_{1}.png", GetValue("Ecom:Product:Field.ELSEan.Value"), i.ToString()); 98 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 99 request.Timeout = 1000; 100 101 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 102 response.Close(); 103 104 imgExistsDict.Add(i); 105 } 106 catch 107 { 108 } 109 } 110 111 return imgExistsDict; 112 } 113 } 114 115 @{ 116 var currentProductId = GetValue("Ecom:Product.ID") != null ? GetValue("Ecom:Product.ID").ToString() : string.Empty; 117 bool isInLampGroup = GetIfIsInLampGroup(currentProductId); 118 119 var primaryGroup = ProductProvider.GetPrimaryParentGroup(currentProductId); 120 121 List<int> imgExistsList = ProductImgExists(); 122 var electraImgExists = ProductProvider.ElectraImgExists(GetString("Ecom:Product:Field.ELSEan.Value"), GetString("Ecom:Product.Number")); 123 124 string buyURL = string.Empty; 125 126 if (!string.IsNullOrEmpty(currentProductId)) 127 { 128 string baseUrl = String.Format("Default.aspx?ID={0}&ProductID={1}", "9", currentProductId); 129 buyURL = String.Format("{0}?cartcmd=add", Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(baseUrl).ToString()); 130 } 131 132 string onlySoldInstore = GetString("Ecom:Product:Field.ELSOnlySoldInstore.Value"); 133 string itemStatus = GetString("Ecom:Product:Field.ELSItemStatus.Value"); 134 int availableAmount = Convert.ToInt32(GetValue("Ecom:Product.AvailableAmount")); 135 136 bool hideDeliveryAndBuy = (onlySoldInstore == "1" || ((itemStatus == "1" || itemStatus == "2") && availableAmount <= 0)) ? true : false; 137 bool hideExternalProductDetails = (GetValue("Ecom:Product:Field.ELSHideExternalProductDetails.Value").ToString() == "1") ? false : true; 138 139 } 140 141 <!--@SnippetStart(cssFiles)--> 142 143 @if (isInLampGroup) 144 { 145 <link rel="stylesheet" type="text/css" media="all" href="/files/templates/designs/elsalg/assets/css/screen-exclusive.css?ver=3" /> 146 <link rel="stylesheet" type="text/css" media="all" href="/files/templates/designs/elsalg/assets/css/m-1200.css?ver=1" /> 147 <link rel="stylesheet" type="text/css" media="all" href="/files/templates/designs/elsalg/assets/css/m-1024.css?ver=1" /> 148 <link rel="stylesheet" type="text/css" media="all" href="/files/templates/designs/elsalg/assets/css/m-768.css?ver=1" /> 149 <link rel="stylesheet" type="text/css" media="all" href="/files/templates/designs/elsalg/assets/css/m-480.css?ver=1" /> 150 <link rel="stylesheet" type="text/css" media="all" href="/files/templates/designs/elsalg/assets/css/mediaqueries-exclusive.css?ver=3" /> 151 } 152 153 <!--@SnippetEnd(cssFiles)--> 154 155 <script> 156 function formatPrice(fPrice) { 157 document.write(fPrice.replace(/,00$/, ',-')); 158 } 159 </script> 160 161 <script> 162 dataLayer.push({ 163 'event': 'fbViewContent', 164 'fbContentType': 'product', 165 'fbContentIds': ['@(GetValue("Ecom:Product.Number"))'] 166 }); 167 </script> 168 169 @{ 170 // all data neccessary for google structured data 171 172 Dynamicweb.Ecommerce.Products.Product product; 173 string brandName = string.Empty, 174 price = string.Empty, 175 relatedCategories = string.Empty; 176 double unitStock = 0; 177 178 if (!string.IsNullOrEmpty(currentProductId)) 179 { 180 product = Dynamicweb.Ecommerce.Services.Products.GetProductById(currentProductId, string.Empty, false); 181 182 brandName = GetValue("Ecom:Manufacturer.Name") != null ? GetValue("Ecom:Manufacturer.Name").ToString() : ""; 183 price = GetValue("Ecom:Product.Price.PriceWithVAT").ToString(); 184 unitStock = product.UnitStock; 185 186 relatedCategories = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(product, "ELSProductCategories").ToString(); 187 188 if (!string.IsNullOrEmpty(relatedCategories)) 189 { 190 string hostURL = String.Format("{0}://{1}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host); 191 string href = string.Empty; 192 193 <div id="googleBreadcrumb" style="display: none;"> 194 195 @for (int i = 0; i < relatedCategories.Split(';').Length; i++) 196 { 197 string category = relatedCategories.Split(';')[i]; 198 var group = product.Groups.Where(g => g.Name == category).OrderByDescending(g => g.Number).FirstOrDefault(); 199 200 if (group != null) 201 { 202 if (i == 0 && group.ParentGroups != null && group.ParentGroups.Count > 0) 203 { 204 string mainTitle = group.ParentGroups[0].Name; 205 206 href = String.Format("{0}/{1}", hostURL, group.ParentGroups[0].ProductGroupFieldValues.GetProductGroupFieldValue("ELSNormalizedName").Value.ToString()); 207 208 <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> 209 <a href="@href" itemprop="url"> 210 <span itemprop="title">@mainTitle</span> 211 </a> 212 </div> 213 } 214 215 if (string.IsNullOrEmpty(href)) 216 { 217 href = hostURL; 218 } 219 220 href = String.Format("{0}/{1}", href, group.ProductGroupFieldValues.GetProductGroupFieldValue("ELSNormalizedName").Value.ToString()); 221 222 <div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> 223 <a href="@href" itemprop="url"> 224 <span itemprop="title">@category</span> 225 </a> 226 </div> 227 } 228 } 229 </div> 230 } 231 } 232 } 233 234 <section id="main" class="relaxed" itemscope itemtype="http://schema.org/Product"> 235 236 <!--@SnippetStart(googleStructuredData)--> 237 <meta property="og:type" content="product" /> 238 <!--@SnippetEnd(googleStructuredData)--> 239 <div class="breadcrumbs breadcrumbs-products clearfix"> 240 <div class="container_4"> 241 <p> 242 Du er her: 243 @{ 244 string breadcrumbs = ProductProvider.GetProductBreadCrumbs(currentProductId); 245 if (!string.IsNullOrWhiteSpace(breadcrumbs)) 246 { 247 string[] groups = breadcrumbs.Split('|').Reverse().ToArray(); 248 string linkBuilder = string.Empty; 249 foreach (string crumb in groups) 250 { 251 if (!string.IsNullOrWhiteSpace(crumb)) 252 { 253 string[] nameAndLink = crumb.Split(';'); 254 linkBuilder += nameAndLink[1]; 255 256 <span><a href="@linkBuilder">@nameAndLink[0]</a></span> 257 } 258 } 259 } 260 } 261 <span class="last-breadcrumb">@GetValue("Ecom:Product.Name")</span> 262 </p> 263 </div> 264 </div> 265 <div class="relaxed"> 266 <div class="container_4 clearfix"> 267 <script type="text/javascript"> 268 // <![CDATA[ 269 $(function () { 270 window.setTimeout(function () { 271 ELSALG.settings.thumbnailZoom = false; //Enable thumbnail zooming 272 ELSALG.initProductThumbnails($(".product-header").get(0)); 273 }, 100); 274 }); 275 // ]]> 276 </script> 277 278 <div class="grid_4"> 279 <div class="product-header"> 280 <div class="product-image"> 281 @{ 282 var altPictureId = string.IsNullOrEmpty(GetValue("Ecom:Product:Field.ELSAlternatePictureID.Value").ToString()) ? "0000000000001" : GetValue("Ecom:Product:Field.ELSAlternatePictureID.Value").ToString(); 283 var electraImgUrl = ProductProvider.GetElectraImgUrl(GetString("Ecom:Product.Number")); 284 } 285 286 @if (!electraImgExists) 287 { 288 <a class="productDefaultImg"> 289 290 <img itemprop="image" class="imgtest" 291 onerror="$('.product-image-zoom').addClass('disabled');src='https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;height=466&amp;width=466&amp;crop=5'" 292 src="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/@(altPictureId).png&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value")).png&amp;Width=466&amp;height=466&amp;crop=5" 293 alt="" /> 294 </a> 295 } 296 else 297 { 298 299 <a class="productDefaultImg"> 300 <img itemprop="image" class="imgtest" 301 onerror="$('.product-image-zoom').addClass('disabled');src='@electraImgUrl'" 302 src="@electraImgUrl" 303 alt="" /> 304 </a> 305 } 306 307 <div class="image"> 308 <div class="product"> 309 <ul class="notes"> 310 @*----- Render all the images related to the product notes. ----- *@ 311 @{ 312 product = Dynamicweb.Ecommerce.Services.Products.GetProductById(currentProductId, string.Empty, false); 313 var productSymbolsValue = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(product, "ELSProductSymbols").ToString(); 314 315 bool hasDiscount = false; 316 317 if (Convert.ToDecimal(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(product, "ELSUnitSavings").ToString()) != 0) 318 { 319 hasDiscount = true; 320 } 321 322 if (!string.IsNullOrWhiteSpace(productSymbolsValue.Trim())) 323 { 324 var productSymbols = JArray.Parse(productSymbolsValue) as JArray; 325 326 foreach (var productSymbol in productSymbols) 327 { 328 string symbollink = Dynamicweb.Rendering.Translation.Translation.GetTranslation("symbollinks_" + productSymbol["value"]); 329 <div class="item"> 330 @if (!string.IsNullOrEmpty(symbollink)) 331 { 332 <a href="@symbollink" target="_new"><img src="/files/images/symbols/@(productSymbol["value"])" alt="" /></a> 333 } 334 else 335 { 336 <img src="/files/images/symbols/@(productSymbol["value"])" alt="" /> 337 } 338 </div> 339 340 } 341 } 342 } 343 @if (hasDiscount) 344 { 345 <li class="discount" data-symbol="discount"><span class="ico" style="background-image: url('../files/images/symbols/discount.png')"></span><span class="txt">Tilbud</span></li> 346 } 347 </ul> 348 </div> 349 </div> 350 </div> 351 <span class="product-spacer"></span> 352 <div class="product-thumbs"> 353 <div class="product-thumbs-wrapper"> 354 <div class="product-thumbs-inner"> 355 356 @if (!electraImgExists) 357 { 358 <span class="thumb"> 359 <a href="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/@(altPictureId).png&amp;Width=450&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value")).png&amp;width=450&amp;crop=5" 360 data-master="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/@(altPictureId).png&amp;Width=1200&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value")).png&amp;Width=1200"> 361 <img src="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/@(altPictureId).png&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value")).png&amp;Width=100&amp;height=144&amp;crop=5" alt="" /> 362 </a> 363 </span> 364 foreach (int no in imgExistsList.OrderBy(i => i)) 365 { 366 <span class="thumb"> 367 <a href="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;Width=450&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value"))_@(no).png&amp;Width=450" 368 data-master="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;Width=1200&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value"))_@(no).png&amp;Width=1200"> 369 <img src="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;image=/files/ELSALG/eCom/Pictures/@(GetValue("Ecom:Product:Field.ELSEan.Value"))_@(no).png&amp;Width=144&amp;height=144&amp;crop=5" alt="" /> 370 </a> 371 </span> 372 } 373 } 374 else 375 { 376 <span class="thumb"> 377 <a href="@electraImgUrl" data-master="@electraImgUrl"> 378 <img src="@electraImgUrl" alt="" /> 379 </a> 380 </span> 381 } 382 </div> 383 </div> 384 </div> 385 386 <span class="product-spacer product-spacer-after-images"></span> 387 388 <div class="product-info"> 389 390 <div class="product-info-content"> 391 <div class="title"> 392 <h1 itemprop="name">@GetValue("Ecom:Product.Name")</h1> 393 <div class="sku">@GetValue("Ecom:Product.Number")</div> 394 <div itemprop="brand" itemscope itemtype="http://schema.org/Brand" style="display: none;"> 395 <span itemprop="name">@brandName</span> 396 </div> 397 <h3> 398 @foreach (var customField in GetLoop("CustomFields")) 399 { 400 @customField.GetValue("ELSProductSubHeader") 401 } 402 </h3> 403 </div> 404 405 <div class="text"> 406 <p class="text-specs"><strong>Specifikationer:</strong></p> 407 408 @GetString("Ecom:Product:Field.ELSProductShortText.Value") 409 </div> 410 411 <div id="delivery-adds-wrapper" class="delivery-adds-wrapper"> 412 @{ 413 var supplementalProducts = SupplementalServicesHelper.GetSupplementalServices(currentProductId); 414 if (!hideDeliveryAndBuy) 415 { 416 <!--@Global:Paragraph.Content(3502)--> 417 <div class="@(supplementalProducts.Count > 3 ? "delivery-expander" : "")"> 418 <div class="delivery-adds"> 419 420 @for (int i = 0; i < supplementalProducts.Count; i++) 421 { 422 var suppProd = supplementalProducts[i]; 423 424 <div class="delivery-field"> 425 <span class="inp"> 426 <input type="radio" name="product-delivery" id="product-delivery-@(i + 1)" 427 value="@(i + 1)" @(i == 0 ? "checked=\"checked\"" : "") data-prod-id="@suppProd.Id" data-value="@suppProd.GetPrice("DKK", "DK").ToString().Replace(".", "")" @(suppProd.GetPrice("DKK", "DK").PriceFormattedNoSymbol.ToString() == "0,00" ? "data-default=\"true\"" : "") style="opacity: 0;" /> 428 </span> 429 <span class="lbl"> 430 <label for="product-delivery-@(i + 1)">@suppProd.Name</label> 431 </span> 432 <span class="price add-price">@suppProd.ProductPriceString</span> 433 </div> 434 } 435 </div> 436 </div> 437 438 if (supplementalProducts.Count > 3) 439 { 440 <div id="delivery-show-more" class="label-showmore" data-text-show="Vis flere muligheder" data-text-hide="Vis færre muligheder"> 441 <span>Vis flere muligheder</span> 442 </div> 443 444 <script type="text/javascript"> 445 $(function () { 446 var wrapper = $('#delivery-adds-wrapper'); 447 448 $('.delivery-expander').click(function (e) { 449 if ($(e.target).is('input')) { 450 return true; 451 } 452 453 var $this = $(this), 454 span = $('#delivery-show-more').find('span'); 455 456 wrapper.addClass('expanded'); 457 458 $this.css('height', 'auto'); 459 span.text($('#delivery-show-more').attr('data-text-hide')); 460 461 }); 462 463 $('#delivery-show-more').click(function () { 464 var $this = $(this), 465 span = $this.find('span'), 466 expander = $this.parent().find('.delivery-expander'); 467 468 wrapper.toggleClass('expanded'); 469 470 if (wrapper.hasClass('expanded')) { 471 expander.css('height', 'auto'); 472 span.text($this.attr('data-text-hide')); 473 } 474 else { 475 expander.removeAttr('style'); 476 span.text($this.attr('data-text-show')); 477 } 478 }); 479 480 481 }); 482 </script> 483 } 484 <div class="label-smallinfo"> 485 @foreach (var customField in GetLoop("CustomFields")) 486 { 487 @customField.GetValue("ELSDeliveryText") 488 } 489 490 Afhænger af tilvalg. 491 <a onclick="fnDeliveryTerms();"> 492 Mere info 493 </a> 494 </div> 495 } 496 } 497 @if (onlySoldInstore == "1") 498 { 499 <div class="label-info">Dette produkt kan kun købes i butik</div> 500 <div style="text-align: left;">Du kan kun købe dette produkt i butik. Find den nærmeste butik ved at klikke på <a href="/andre-links/find-butik">FIND BUTIK</a></div> 501 } 502 @if (((itemStatus == "1" || itemStatus == "2") && availableAmount <= 0)) 503 { 504 <div class="label-info">Dette produkt er desværre udgået</div> 505 <div style="text-align: left;">Produktet er desværre udgået og kommer ikke i vores sortiment igen.</div> 506 } 507 @if (GetString("Ecom:Product:Field.ELSUseAlternativeItemId.Value").ToString() == "1" && !GetString("Ecom:Product:Field.ELSAlternativeItemId").ToString().IsNullOrEmpty()) 508 { 509 var alternativeProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(GetString("Ecom:Product:Field.ELSAlternativeItemId.Value").ToString() + "-at-SHOP1", string.Empty, false); 510 string alternativeBaseUrl = String.Format("Default.aspx?ID={0}&ProductID={1}", "9", alternativeProduct.Id); 511 string alternativeUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(alternativeBaseUrl).ToString(); 512 <div style="text-align: left;">Du kan finde et alternativt produkt her <a href="@alternativeUrl">@alternativeProduct.Name</a></div> 513 514 } 515 </div> 516 517 @if (!((itemStatus == "1" || itemStatus == "2") && availableAmount <= 0)) 518 { 519 <div class="footer-options"> 520 <div class="footer-prices" itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 521 522 <div class="vp value-currnet @(hasDiscount ? "value-discount" : "")"> 523 @foreach (var customField in GetLoop("CustomFields")) 524 { 525 var elsUnitSavings = customField.GetValue("ELSUnitSavings"); 526 if (Convert.ToDecimal(elsUnitSavings) != 0) 527 { 528 <span class="spare-span">@(Convert.ToDecimal(elsUnitSavings) != 0 ? "Spar " + Convert.ToDouble(elsUnitSavings).ToString("0,0.00").Replace(",00", ",-") : "")</span> 529 } 530 } 531 <span id="product-price" data-value="@price.Replace(".", "")"> 532 533 @{ 534 string priceStr = string.Empty; 535 if (price != null) 536 { 537 priceStr = price.ToString(); 538 if (priceStr.EndsWith(",00")) 539 { 540 priceStr = priceStr.Replace(",00", ",-"); 541 } 542 } 543 } 544 @priceStr 545 </span> 546 <span itemprop="price" style="display: none"> 547 @price 548 </span> 549 <meta itemprop="priceCurrency" content="@GetValue("Ecom:Product.Currency.Code")" /> 550 <link itemprop="availability" href="http://schema.org/@(unitStock > 0 ? "InStock" : "OutOfStock")" /> 551 <span class="free-delivery" id="product-price-incl-addons">Inkl. tilvalg</span> 552 </div> 553 </div> 554 555 @{ 556 var energyImgPath = ProductProvider.GetEnergyImagePath(GetString("Ecom:Product:Field.ELSEan.Value"), GetString("Ecom:Product:Field.ELSEnergy.Value"), primaryGroup.Id.Replace("-at-SHOP2", "")); 557 558 <div class="footer-energy"> 559 <div class="fe-wrapper"> 560 @if (!string.IsNullOrEmpty(energyImgPath)) 561 { 562 <div class="fe-icon"> 563 <img src="@energyImgPath" alt="" onclick="scrollToSpecifications();" /> 564 </div> 565 } 566 <div class="fe-link"><a onclick="scrollToSpecifications();">Produktdatablad</a></div> 567 </div> 568 </div> 569 } 570 <div class="footer-addtocart"> 571 @{ 572 var butiksNumber = HttpContext.Current.Request.Cookies["butiksnummer"]; 573 var alternativeDisplay = HttpContext.Current.Request.Cookies["butiksudstilling"]; 574 bool showBuyButton = true; 575 576 if (butiksNumber != null && !string.IsNullOrEmpty(butiksNumber.Value) && 577 alternativeDisplay != null && !string.IsNullOrEmpty(alternativeDisplay.Value) && alternativeDisplay.Value == "true") 578 { 579 var elsButiksSortiment = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(product, "ELSButiksSortiment").ToString(); 580 if (string.IsNullOrEmpty(elsButiksSortiment.ToString()) || elsButiksSortiment.ToString() != "1") 581 { 582 showBuyButton = false; 583 } 584 } 585 586 if (showBuyButton && !hideDeliveryAndBuy) 587 { 588 <a onclick="AJAXAddToBasket('@buyURL', '@HttpUtility.JavaScriptStringEncode(product.Number)', '@currentProductId', true, '@HttpUtility.JavaScriptStringEncode(product.Name.Replace("''", ""))'); return false;" class="kob">Køb</a> 589 } 590 else if (onlySoldInstore == "1") 591 { 592 <a href="/andre-links/find-butik" class="kob" style="background-color: #001b51;">FIND BUTIK</a> 593 } 594 } 595 </div> 596 </div> 597 <div id="sparxpress-productdetail"></div> 598 } 599 </div> 600 </div> 601 </div> 602 603 </div> 604 </div> 605 </div> 606 @{ 607 string productLongDesc = GetValue("Ecom:Product.LongDescription").ToString(); 608 var elsEnergyClass = false; 609 610 if (primaryGroup != null) 611 { 612 elsEnergyClass = Convert.ToBoolean(primaryGroup.ProductGroupFieldValues.GetProductGroupFieldValue("ELSEnergyClass").Value); 613 } 614 615 string eanEL = string.Format("{0}_EL.png", GetValue("Ecom:Product:Field.ELSEan.Value")); 616 617 var navigateToSpecifications = HttpContext.Current.Request.RawUrl.Contains("tab=specifications"); 618 } 619 620 @if (GetLoop("RaptorSimilarItems").Count() > 0) 621 { 622 <div class="widget-products widget-products-details"> 623 624 <div class="container_4 clearfix"> 625 626 <div class="grid_4"> 627 628 <span class="h2">Lignende produkter</span> 629 630 <div class="owl-small-products owl-carousel owl-theme"> 631 <!--item--> 632 @foreach (var similarItem in GetLoop("RaptorSimilarItems")) 633 { 634 var similarProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(similarItem.GetValue("ID").ToString(), string.Empty, false); 635 636 if (string.IsNullOrWhiteSpace(similarProduct.Name)) { continue; } 637 638 <div class="item"> 639 <div class="image"> 640 @{ 641 var smilarAltPictureId = string.IsNullOrEmpty(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSAlternatePictureID").ToString()) ? "0000000000001" : Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSAlternatePictureID").ToString(); 642 var similarElectraImgUrl = ProductProvider.GetElectraImgUrl(similarProduct.Number); 643 var similarElectraImage = ProductProvider.ElectraImgExists(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSEan").ToString(), similarProduct.Number); 644 645 string similarBaseUrl = String.Format("Default.aspx?ID={0}&ProductID={1}", "9", similarProduct.Id); 646 string similarUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(similarBaseUrl).ToString(); 647 string similarBuyURL = String.Format("{0}?cartcmd=add", similarUrl); 648 649 var similarprimaryGroup = ProductProvider.GetPrimaryParentGroup(similarProduct.Id); 650 var similarelsEnergy = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSEnergy").ToString(); 651 var similarenergyImgPath = ProductProvider.GetEnergyImagePath(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSEan").ToString(), similarelsEnergy, similarprimaryGroup.Id.Replace("-at-SHOP2", "")); 652 653 } 654 655 @if (!similarElectraImage) 656 { 657 <a class="productDefaultImg" href="@similarUrl"> 658 659 <img itemprop="image" class="imgtest" 660 onerror="$('.product-image-zoom').addClass('disabled');src='https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;height=466&amp;width=466&amp;crop=5'" 661 src="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/@(smilarAltPictureId).png&amp;image=/files/ELSALG/eCom/Pictures/@(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct,"ELSEan").ToString()).png&amp;Width=466&amp;height=466&amp;crop=5" 662 alt="" /> 663 </a> 664 } 665 else 666 { 667 668 <a class="productDefaultImg" href="@similarUrl"> 669 <img itemprop="image" class="imgtest" 670 onerror="$('.product-image-zoom').addClass('disabled');src='@similarElectraImgUrl'" 671 src="@similarElectraImgUrl" 672 alt="" /> 673 </a> 674 } 675 676 <div class="product"> 677 <ul class="notes"> 678 @*----- Render all the images related to the product notes. ----- *@ 679 @{ 680 var similarProductSymbolsValue = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSProductSymbols").ToString(); 681 682 bool similarHasDiscount = false; 683 684 if (Convert.ToDecimal(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSUnitSavings").ToString()) != 0) 685 { 686 similarHasDiscount = true; 687 } 688 689 if (!string.IsNullOrWhiteSpace(similarProductSymbolsValue.Trim())) 690 { 691 var similarProductSymbols = JArray.Parse(similarProductSymbolsValue) as JArray; 692 693 foreach (var similarProductSymbol in similarProductSymbols) 694 { 695 if (similarProductSymbol["value"].ToString() == "4garanti.png") 696 { 697 <li class="test-winner-fixed" data-symbol="@similarProductSymbol["value"].ToString()"><img src="../files/images/symbols/@(similarProductSymbol["value"].ToString().Replace(".png", "_large.png"))" alt="Alternate Text" /></li> 698 } 699 else 700 { 701 <li class="test-winner" data-symbol="@similarProductSymbol["value"].ToString()"><span class="ico" style="background-image:url('../files/images/symbols/@(similarProductSymbol["value"])')"></span><span class="txt">@similarProductSymbol["description"]</span></li> 702 } 703 } 704 } 705 } 706 @*----- Now add item related to the dicount -----*@ 707 708 @if (similarHasDiscount) 709 { 710 <li class="discount" data-symbol="discount"><span class="ico" style="background-image: url('../files/images/symbols/discount.png')"></span><span class="txt">Tilbud</span></li> 711 } 712 </ul> 713 </div> 714 715 716 <!-- <a class="product-image-zoom">Se stort billede</a> --> 717 </div> 718 <div class="text"> 719 <div class="title"><a href="@similarUrl">@similarProduct.Name</a></div> 720 <div class="subtitle">@Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSProductSubHeader").ToString()</div> 721 </div> 722 <div class="pricing"> 723 <div class="prod-spec-tab"><a href="@string.Format("{0}?tab=specifications", similarUrl)">Produktdatablad</a></div> 724 <div> 725 <div class="price"> 726 <script>formatPrice('@similarProduct.GetPrice("DKK","DK").PriceWithVAT.ToString("0,0.00")')</script> 727 </div> 728 @if (!string.IsNullOrEmpty(similarenergyImgPath)) 729 { 730 <span class="energy-pg"> 731 <a href="@string.Format("{0}?tab=specifications", similarUrl)"> 732 <img src="@similarenergyImgPath" alt="" /> 733 </a> 734 </span> 735 } 736 </div> 737 <span class="discount"> 738 @(Convert.ToDecimal(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSUnitSavings").ToString()) != 0 ? "Spar " + Convert.ToDouble(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(similarProduct, "ELSUnitSavings").ToString()).ToString("0,0.00").Replace(",00", ",-") : "") 739 </span> 740 <div class="buy" style="display:none;"> 741 <div onclick="AddToCartWithSupplemental('@similarBuyURL', '@similarProduct.Number', '@similarProduct.Id', '@HttpUtility.JavaScriptStringEncode(similarProduct.Name.Replace("''", ""))');return false;" class="button skipSwipable"> 742 743 Køb 744 </div> 745 </div> 746 </div> 747 </div> 748 } 749 </div> 750 </div> 751 </div> 752 </div> 753 } 754 755 @if (GetLoop("RaptorRelatedItems").Count() > 0) 756 { 757 <div class="widget-products widget-products-details" style="display:none;"> 758 759 <div class="container_4 clearfix"> 760 761 <div class="grid_4"> 762 763 <span class="h2">Relaterede produkter</span> 764 765 <div class="owl-small-products owl-carousel owl-theme"> 766 <!--item--> 767 @foreach (var relatedItem in GetLoop("RaptorRelatedItems")) 768 { 769 var relatedProduct = Dynamicweb.Ecommerce.Services.Products.GetProductById(relatedItem.GetValue("ID").ToString(), string.Empty, false); 770 771 if (string.IsNullOrWhiteSpace(relatedProduct.Name)) { continue; } 772 773 <div class="item"> 774 <!-- pocetak slike widgeta --> 775 <div class="image"> 776 @{ 777 if (string.IsNullOrWhiteSpace(relatedProduct.Name)) { continue; } 778 779 var smilarAltPictureId = string.IsNullOrEmpty(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSAlternatePictureID").ToString()) ? "0000000000001" : Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSAlternatePictureID").ToString(); 780 var relatedElectraImgUrl = ProductProvider.GetElectraImgUrl(relatedProduct.Number); 781 var relatedElectraImage = ProductProvider.ElectraImgExists(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSEan").ToString(), relatedProduct.Number); 782 783 string relatedBaseUrl = String.Format("Default.aspx?ID={0}&ProductID={1}", "9", relatedProduct.Id); 784 string relatedUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(relatedBaseUrl).ToString(); 785 string relatedBuyURL = String.Format("{0}?cartcmd=add", relatedUrl); 786 787 var relatedprimaryGroup = ProductProvider.GetPrimaryParentGroup(relatedProduct.Id); 788 var relatedelsEnergy = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSEnergy").ToString(); 789 var relatedenergyImgPath = ProductProvider.GetEnergyImagePath(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSEan").ToString(), relatedelsEnergy, relatedprimaryGroup.Id.Replace("-at-SHOP2", "")); 790 791 } 792 793 @if (!relatedElectraImage) 794 { 795 <a class="productDefaultImg" href="@relatedUrl"> 796 797 <img itemprop="image" class="imgtest" 798 onerror="$('.product-image-zoom').addClass('disabled');src='https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;height=466&amp;width=466&amp;crop=5'" 799 src="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/@(smilarAltPictureId).png&amp;image=/files/ELSALG/eCom/Pictures/@(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct,"ELSEan").ToString()).png&amp;Width=466&amp;height=466&amp;crop=5" 800 alt="" /> 801 </a> 802 } 803 else 804 { 805 806 <a class="productDefaultImg" href="@relatedUrl"> 807 <img itemprop="image" class="imgtest" 808 onerror="$('.product-image-zoom').addClass('disabled');src='@relatedElectraImgUrl'" 809 src="@relatedElectraImgUrl" 810 alt="" /> 811 </a> 812 } 813 814 <div class="product"> 815 <ul class="notes"> 816 @{ 817 var relatedProductSymbolsValue = Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSProductSymbols").ToString(); 818 819 bool relatedHasDiscount = false; 820 821 if (Convert.ToDecimal(Services.Products.GetProductFieldValue(relatedProduct, "ELSUnitSavings").ToString()) != 0) 822 { 823 relatedHasDiscount = true; 824 } 825 826 if (!string.IsNullOrWhiteSpace(relatedProductSymbolsValue.Trim())) 827 { 828 var relatedProductSymbols = JArray.Parse(relatedProductSymbolsValue) as JArray; 829 830 foreach (var relatedProductSymbol in relatedProductSymbols) 831 { 832 if (relatedProductSymbol["value"].ToString() == "4garanti.png") 833 { 834 <li class="test-winner-fixed" data-symbol="@relatedProductSymbol["value"].ToString()"><img src="../files/images/symbols/@(relatedProductSymbol["value"].ToString().Replace(".png", "_large.png"))" alt="Alternate Text" /></li> 835 } 836 else 837 { 838 <li class="test-winner" data-symbol="@relatedProductSymbol["value"].ToString()"><span class="ico" style="background-image:url('../files/images/symbols/@(relatedProductSymbol["value"])')"></span><span class="txt">@relatedProductSymbol["description"]</span></li> 839 } 840 } 841 } 842 } 843 @if (relatedHasDiscount) 844 { 845 <li class="discount" data-symbol="discount"><span class="ico" style="background-image: url('../files/images/symbols/discount.png')"></span><span class="txt">Tilbud</span></li> 846 } 847 </ul> 848 </div> 849 </div> 850 <div class="text"> 851 <div class="title"><a href="@relatedUrl">@relatedProduct.Name</a></div> 852 <div class="subtitle">@Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSProductSubHeader").ToString()</div> 853 </div> 854 <div class="pricing"> 855 <div class="prod-spec-tab"><a href="@string.Format("{0}?tab=specifications", relatedUrl)">Produktdatablad</a></div> 856 <div> 857 <div class="price"> 858 <script>formatPrice('@product.GetPrice("DKK","DK").PriceWithVAT.ToString("0,0.00")')</script> 859 </div> 860 @if (!string.IsNullOrEmpty(relatedenergyImgPath)) 861 { 862 <span class="energy-pg"> 863 <a href="@string.Format("{0}?tab=specifications", relatedUrl)"> 864 <img src="@relatedenergyImgPath" alt="" /> 865 </a> 866 </span> 867 } 868 </div> 869 <span class="discount"> 870 @(Convert.ToDecimal(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSUnitSavings").ToString()) != 0 ? "Spar " + Convert.ToDouble(Dynamicweb.Ecommerce.Services.Products.GetProductFieldValue(relatedProduct, "ELSUnitSavings").ToString()).ToString("0,0.00").Replace(",00", ",-") : "") 871 </span> 872 <div class="buy" style="display:none;"> 873 <div onclick="AddToCartWithSupplemental('@relatedBuyURL', '@relatedProduct.Number', '@relatedProduct.Id', '@HttpUtility.JavaScriptStringEncode(relatedProduct.Name.Replace("''", ""))');return false;" class="button skipSwipable"> 874 Køb 875 </div> 876 </div> 877 </div> 878 </div> 879 } 880 </div> 881 </div> 882 </div> 883 </div> 884 } 885 886 <script type="text/javascript"> 887 $(function () { 888 $('.owl-small-products').owlCarousel({ 889 loop: false, 890 margin: 30, 891 nav: true, 892 items: 6, 893 responsive: { 894 0: { 895 items: 2 896 }, 897 600: { 898 items: 3 899 }, 900 1000: { 901 items: 6 902 } 903 } 904 }); 905 }); 906 </script> 907 908 <div class="plain"> 909 <nav class="tabs-menu mobile-swipable"> 910 <div class="container_4 clearfix"> 911 <div class="grid_4"> 912 <ul> 913 @if (true) 914 { 915 <li class="@(!navigateToSpecifications ? "current" : "")"> 916 <a href="#product-description"> 917 Beskrivelse 918 </a> 919 </li> 920 } 921 <li id="specs-tab-nav" class="@(navigateToSpecifications ? "current" : "")"> 922 <a href="#product-specifications"> 923 Specifikationer 924 </a> 925 </li> 926 </ul> 927 </div> 928 </div> 929 </nav> 930 931 <div class="tabs-items container_4"> 932 @if (true) 933 { 934 <section class="tab-item grid_2 @(!navigateToSpecifications ? "current" : "")" id="product-description"> 935 <h3 class="tab-title">Beskrivelse</h3> 936 <div class="clearfix"> 937 <div itemprop="description" class="grid_2"> 938 @if (hideExternalProductDetails) 939 { 940 <div id="ccs-inline-content"></div> 941 <div id="ccs-logos"></div> 942 <script type='text/javascript'> 943 var ccs_cc_args = ccs_cc_args || []; 944 945 // Product Page 946 ccs_cc_args.push(['cpn', '@GetValue("Ecom:Product.Number")']); 947 ccs_cc_args.push(['mf', '@(GetValue("Ecom:Manufacturer.Name") != null ? GetValue("Ecom:Manufacturer.Name").ToString() : "")']); 948 ccs_cc_args.push(['pn', '@GetValue("Ecom:Product:Field.ELSModelNumber.Value")']); 949 ccs_cc_args.push(['upcean', '@GetValue("Ecom:Product:Field.ELSEan.Value")']); 950 //ccs_cc_args.push(['ccid', 'CATALOG_CODE']); 951 ccs_cc_args.push(['lang', 'da']); 952 ccs_cc_args.push(['market', 'DK']); 953 954 (function () { 955 var o = ccs_cc_args; o.push(['_SKey', '6bff718e']); o.push(['_ZoneId', '8a0298c552']); 956 var sc = document.createElement('script'); sc.type = 'text/javascript'; sc.async = true; 957 sc.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'cdn.cs.1worldsync.com/jsc/h1ws.js'; 958 var n = document.getElementsByTagName('script')[0]; n.parentNode.insertBefore(sc, n); 959 })(); 960 </script> 961 962 <div id="flix-inpage"></div> 963 <script type="text/javascript" src="//media.flixfacts.com/js/loader.js" 964 data-flix-distributor="13042" 965 data-flix-language="da" 966 data-flix-brand="@(GetValue("Ecom:Manufacturer.Name") != null ? GetValue("Ecom:Manufacturer.Name").ToString() : "")" 967 data-flix-mpn="@GetValue("Ecom:Product:Field.ELSModelNumber.Value")" 968 data-flix-ean="@GetValue("Ecom:Product:Field.ELSEan.Value")" 969 data-flix-sku="@GetValue("Ecom:Product.Number")" 970 data-flix-button="" 971 data-flix-inpage="flix-inpage" 972 data-flix-button-image="" 973 data-flix-fallback-language="en" 974 data-flix-price=""> 975 </script> 976 <div class="loadbeeTabContent" 977 data-loadbee-apikey="5GdYSWSkkpsBDkpgvDNuw6hLfPNt3CaW" 978 data-loadbee-gtin="@GetValue("Ecom:Product:Field.ELSEan.Value")", 979 data-loadbee-locale="da_DK" 980 data-loadbee-manufacturer="EAN" 981 data-loadbee-product="@GetValue("Ecom:Product:Field.ELSEan.Value")" 982 data-loadbee-language="da_DK" 983 data-loadbee-css="default" 984 data-loadbee-button="default" 985 data-loadbee-template="default" 986 data-loadbee-debug="false"> 987 </div> 988 } 989 <div id="description-native">@GetValue("Ecom:Product.LongDescription")</div> 990 </div> 991 <div class="text"> 992 <!--@Global:Paragraph.Content(3503)--> 993 </div> 994 </div> 995 </section> 996 } 997 998 <section class="tab-item grid_2 @(navigateToSpecifications ? "current" : "")" id="product-specifications"> 999 <h3 class="tab-title">Specifikationer</h3> 1000 <div class="container_4 clearfix"> 1001 1002 @foreach (var customField in GetLoop("CustomFields")) 1003 { 1004 @customField.GetValue("ELSProductFeaturesHTML") 1005 } 1006 </div> 1007 </section> 1008 1009 </div> 1010 1011 <div class="container_4 clearfix"> 1012 @if (elsEnergyClass) 1013 { 1014 try 1015 { 1016 var energyImgURL = "https://cdn1.elsalg.dk/files/ELSALG/eCom/Pictures/" + eanEL; 1017 HttpWebRequest energyInfoRequest = (HttpWebRequest)WebRequest.Create(energyImgURL); 1018 energyInfoRequest.Timeout = 1000; 1019 energyInfoRequest.Method = "HEAD"; 1020 1021 var energyInfoResponse = (HttpWebResponse)energyInfoRequest.GetResponse(); 1022 1023 if (energyInfoResponse.StatusCode != HttpStatusCode.NotFound) 1024 { 1025 <a id="product-energy-link" class="productEnergyImage" data-href="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;image=/files/ELSALG/eCom/Pictures/@(eanEL)&amp;Width=1200"> 1026 <img src="https://cdn1.elsalg.dk/inetimagegen.ashx?altFmImage_path=/Files/ELSALG/eCom/Pictures/0000000000001.png&amp;image=/files/ELSALG/eCom/Pictures/@(eanEL)&amp;Width=500&amp;height=500&amp;crop=5" alt="Energi information" /> 1027 </a> 1028 } 1029 energyInfoResponse.Close(); 1030 } 1031 catch (Exception ex) 1032 { 1033 <img class="productEnergyImage" src="../files/images/symbols/no_energy_info.png" width="350" height="350" alt="Energim&#230;rke p&#229; vej" /> 1034 } 1035 } 1036 </div> 1037 </div> 1038 1039 </section> 1040 1041 <div id="delivery-terms-popup" class="mfp-hide"> 1042 @{ 1043 try 1044 { 1045 var paragraph = Dynamicweb.Services.Paragraphs.GetParagraph(3500); 1046 if (paragraph != null) 1047 { 1048 var item = Dynamicweb.Content.Items.ItemManager.Storage.GetById(paragraph.ItemType, paragraph.ItemId); 1049 object content = null; 1050 item.TryGetValue("Content", out content); 1051 1052 <div id="delivery-terms-content">@content</div> 1053 } 1054 } 1055 catch { } 1056 } 1057 </div> 1058 1059 <script type="text/javascript"> 1060 1061 $(window).load(function() { 1062 $(".product-thumbs").find("img").each(function( index ) { 1063 var $this = $(this); 1064 1065 if(($this.height() / $this.width()) >= 4) { 1066 $this.css("display", "inline-block"); 1067 $this.css("width", "auto"); 1068 } 1069 }); 1070 1071 @if (navigateToSpecifications) 1072 { 1073 <text> 1074 scrollToSpecifications(); 1075 </text> 1076 } 1077 }); 1078 1079 var scrollToSpecifications = function() { 1080 1081 $('.tabs-menu').find('li').removeClass('current'); 1082 $('#specs-tab-nav').addClass('current'); 1083 1084 $('.tab-item').removeClass('current'); 1085 $('#product-specifications').addClass('current'); 1086 1087 var scrollTopPosition = $('.tabs-menu').position().top - $('#sticker').outerHeight(); 1088 if ($(window).width() < 769) { 1089 scrollTopPosition = scrollTopPosition + $('.quicksearch-bar').outerHeight(); 1090 } 1091 1092 $('html, body').animate({ 1093 scrollTop: scrollTopPosition 1094 }, 1000); 1095 }; 1096 1097 var fnDeliveryTerms = function() { 1098 1099 $.magnificPopup.open({ 1100 items: { 1101 type: "inline", 1102 src: "#delivery-terms-popup" 1103 } 1104 }); 1105 }; 1106 1107 $(function () { 1108 var imgpath = "https://cdn1.elsalg.dk/files/ELSALG/eCom/Pictures/"; 1109 var imgjpg = imgpath + "@(GetValue("Ecom:Product:Field.ELSEan.Value")).jpg"; 1110 var imgpng = imgpath + "@(GetValue("Ecom:Product:Field.ELSEan.Value")).png"; 1111 1112 ELSALG.initProduct(); 1113 }); 1114 1115 </script> 1116 1117 @if (hideExternalProductDetails) 1118 { 1119 <script type="text/javascript"> 1120 $(document).ready(function() { 1121 var eneryClass = @elsEnergyClass.ToString().ToLower(); 1122 var html = $('#ccs-inline-content').html(); 1123 setTimeout(function(){ 1124 if($('#ccs-inline-content').html() != html){ 1125 $('#description-native').hide(); 1126 if (!eneryClass) { 1127 $('#product-description').width('100%'); 1128 } 1129 } 1130 if($('#flix-inpage').height() > 0){ 1131 $('#description-native').hide(); 1132 $('#product-description').width('100%'); 1133 if (!eneryClass) { 1134 $('#product-energy-link').hide(); 1135 } 1136 } 1137 }, 3000); 1138 }); 1139 1140 var loadbeeProductFoundCallback = function() { 1141 var eneryClass = @elsEnergyClass.ToString().ToLower(); 1142 $('#description-native').hide(); 1143 $('#product-description').width('100%'); 1144 if (!eneryClass) { 1145 $('#product-energy-link').hide(); 1146 } 1147 } 1148 1149 loadbeeApiKey ="bhhVb3J9sRTn6VFS2xD3sA6kTBX8S6rU"; 1150 </script> 1151 <script async type="text/javascript" src="https://cdn.loadbee.com/js/loadbee_integration.js"></script> 1152 }
Gå til kurv