Exception in template (Designs\Dwsimple\eCom/Product/ProductTHM.cshtml): System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.bfadabdfebdeccfecf.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.Output()
@using System; @using System.Linq; @using System.Collections; @using System.Collections.Generic; @using System.Text.RegularExpressions @using System.Web @functions{ public class WrapMethods { //Gets the contrasting color public static string getContrastYIQ(string hexcolor) { if (hexcolor != "") { hexcolor = Regex.Replace(hexcolor, "[^0-9a-zA-Z]+", ""); int r = Convert.ToByte(hexcolor.Substring(0, 2), 16); int g = Convert.ToByte(hexcolor.Substring(2, 2), 16); int b = Convert.ToByte(hexcolor.Substring(4, 2), 16); int yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000; if (yiq >= 128) { return "black"; } else { return "white"; } } else { return "black"; } } //Truncate text public static string Truncate (string value, int count, bool strip=true) { if (strip == true){ value = StripHtmlTagByCharArray(value); } if (value.Length > count) { value = value.Substring(0, count - 1) + "..."; } return value; } //Strip text from HTML public static string StripHtmlTagByCharArray(string htmlString) { char[] array = new char[htmlString.Length]; int arrayIndex = 0; bool inside = false; for (int i = 0; i < htmlString.Length; i++) { char let = htmlString[i]; if (let == '<') { inside = true; continue; } if (let == '>') { inside = false; continue; } if (!inside) { array[arrayIndex] = let; arrayIndex++; } } return new string(array, 0, arrayIndex); } //Make the correct count of columns public static string ColumnMaker(int Col, string ScreenSize) { string Columns = ""; switch (Col) { case 1: Columns = "col-"+ScreenSize+"-12"; break; case 2: Columns = "col-"+ScreenSize+"-6"; break; case 3: Columns = "col-"+ScreenSize+"-4"; break; case 4: Columns = "col-"+ScreenSize+"-3"; break; case 6: Columns = "col-"+ScreenSize+"-2"; break; default: Columns = "col-"+ScreenSize+"-3"; break; } return Columns; } private string Custom(string firstoption, string secondoption) { if (firstoption == "custom") { return secondoption; } else { return firstoption; } } } } @helper GetProductList(dynamic Loop, int ColMD = 3, int ColSM = 3, int ColXS = 1) { int Count = 0; string ColumnsMD = WrapMethods.ColumnMaker(ColMD, "md"); string ColumnsSM = WrapMethods.ColumnMaker(ColSM, "sm"); string ColumnsXS = WrapMethods.ColumnMaker(ColXS, "xs"); foreach (LoopItem product in Loop) { string lengthValue = product.GetString("Ecom:Product:Field.Length"); string heightValue = product.GetString("Ecom:Product:Field.Heigth"); string widthValue = product.GetString("Ecom:Product:Field.Width"); string altText = product.GetString("Ecom:Product:Field.imgAltText"); var length = product.GetString("Ecom:Product:Field.Length") != "0,00" ? "L" + ": " + product.GetString("Ecom:Product:Field.Length") + @Translate(" cm", " cm") : ""; var height = product.GetString("Ecom:Product:Field.Heigth") != "0,00" ? "H" + ": " + product.GetString("Ecom:Product:Field.Heigth") + @Translate(" cm", " cm") : ""; var width = product.GetString("Ecom:Product:Field.Width") != "0,00" ? "D" + ": " + product.GetString("Ecom:Product:Field.Width") + @Translate(" cm", " cm") : ""; string Image = product.GetString("Ecom:Product.ImageSmall.Default.Clean"); string GroupLink = product.GetString("Ecom:Product.LinkGroup.Clean"); string Name = product.GetString("Ecom:Product.Name"); string Description = product.GetString("Ecom:Product.ShortDescription"); string Discount = product.GetString("Ecom:Product.Discount.Price"); string Price = product.GetString("Ecom:Product.Price"); string Number = product.GetString("Ecom:Product.Number"); string priceWithoutFormate = product.GetString("Ecom:Product.Price.Price"); string Symbol = product.GetString("Ecom:Product.Discount.Price.Currency.Symbol"); <div class="productlist productlistSize @ColumnsMD @ColumnsSM @ColumnsXS @Count"> <div class="boxproduct wp-block product"> <div class="listproductright"> <a href="@GroupLink" title="@Name"> <figure style="" class="productfigure"> <img alt="@altText" src="/Admin/Public/Getimage.ashx?width=300&amp;compression=85&amp;Crop=5&amp;image=@Image" class="img-responsive img-center"> </figure> </a> </div> <div class="extracolumn"> <div class="fixedHeight"> <h2 class="product-title"><a href="@GroupLink">@Name</a></h2> @*<div class="shortproductdescription"> <p>@WrapMethods.Truncate(product.GetString("Ecom:Product.ShortDescription"), 60)</p> </div>*@ </div> @*<div style="display: none !important" class="longproductdescription"> <p class="pull-left" style="text-align: left !important">@WrapMethods.Truncate(product.GetString("Ecom:Product.ShortDescription"), 180)</p> </div>*@ </div> <div class="listFields productlistFields"> @if (lengthValue != "") { <span>@length</span> } @if (heightValue != "") { <span>@height</span> } @if (widthValue != "") { <span>@width</span> } </div> <div class="list-specific-attributes clearfix"> <span class="productlistnumber">@Translate("Item number", "Item number"): @Number</span> @* @{ var realStock = product.GetInteger("Ecom:Product.Stock"); if (Dynamicweb.Frontend.PageView.Current().Device == Dynamicweb.Frontend.PageView.DeviceType.Desktop) { <div class="instocklist"> @if (realStock > 0) { <i class="fa fa-check-square-o" aria-hidden="true"></i> <span class="detail-page-stock">@Translate("Stock", "Stock")</span> } else { <i class="fa fa-square-o" aria-hidden="true"></i> <span class="detail-page-stock">@Translate("Stock", "Stock")</span> } </div> } } *@ </div> <div class="listproductleft wp-block-footer"> @if (Discount != Price) { <span class="productprice price pull-left" style="padding: 0 0 0 0 !important; font-size: 16px !important"><strong> @Discount</strong></span><span>&nbsp;&nbsp;</span> <span class="productpricebr"></span> <p class="productoldprice price" style="margin-top: 0px !important; padding-top: 0px !important; color: #AAAAAA !important; font-size: 12px !important; position: absolute; text-decoration: line-through"> @Symbol @priceWithoutFormate</p> } else { <span class="productprice price pull-left" style="font-size: 16px !important"><strong> @Symbol @priceWithoutFormate </strong></span><span>&nbsp;&nbsp;</span> } @*<div class="addFav"> @if (Dynamicweb.Input.FormatBoolean(GetGlobalValue("Global:Extranet.UserName"))) { if (product.GetString("Ecom:Product.IsProductInFavoriteList") == "True") { <a href="@product.GetString("Ecom:Product.RemoveFromFavorites")" title="@Translate("Remove from favorites", "Remove from favorites")"> <i class="fa fa-star" aria-hidden="true"></i> </a> } else { <a href="@product.GetString("Ecom:Product.AddToFavorites")" title="@Translate("Add to favorites", "Add to favorites")"> <i class="fa fa-star-o" aria-hidden="true"></i> </a> } } </div>*@ <div class="addFav"> @if (!string.IsNullOrWhiteSpace("Ecom:Product.AddToList")) { string star = ""; var countstar = product.GetString("Ecom:Product.ID"); bool listExist = false; if (product.GetLoop("CustomerCenter.ListTypes").Any(x => x.GetLoop("CustomerCenter.ProductLists").Any(y => y.GetString("Ecom:Product.List.IsProductInThisList") == "True"))) { star = "<i class='fa fa-star'></i>"; } else { star = "<i class='fa fa-star-o'></i>"; } if (Dynamicweb.Input.FormatBoolean(GetGlobalValue("Global:Extranet.UserName"))) { <a data-target="#lists_@countstar" title="@Translate("Add to favorites", "Add to favorites")" data-toggle="collapse" class="product-link" data-collapse-group="favorites"> @star </a> } else { <a data-target="#login" title="@Translate("Add to favorites", "Add to favorites")" data-toggle="modal" class="product-link"> <i class='fa fa-star-o'></i> </a> } <div class="collapse favorite-container" id="lists_@countstar"> <div class="col-xs-12 pull-left"> @foreach (LoopItem listType in product.GetLoop("CustomerCenter.ListTypes")) { foreach (LoopItem list in listType.GetLoop("CustomerCenter.ProductLists")) { listExist = true; if (list.GetString("Ecom:Product.List.IsProductInThisList") == "True") { <a href="@list.GetString("Ecom:Product.RemoveFromThisList")"> <div class="favorite-icon "> <span class="fa-stack pull-left"> <i class="fa fa-fw fa-star fa-stack-1x"></i> </span> <span class="list-name pull-left">@list.GetValue("Ecom:CustomerCenter.List.Name")</span> </div> </a> } else { <a href="@list.GetString("Ecom:Product.AddToThisListAction")"> <div class="favorite-icon "> <span class="fa-stack pull-left"> <i class="fa fa-star-o fa-stack-1x"></i> </span> <span class="list-name pull-left">@list.GetValue("Ecom:CustomerCenter.List.Name")</span> </div> </a> } } } @if (!listExist) { <a href="Default.aspx?id=@Pageview.Area.Item["FavoritesListId"]" style="text-align:center;">@Translate("Create new list")</a> } </div> </div> } </div> <div class="productmorebr pull-right"> <a href="@GroupLink" class="btn btn-sm btn-dw-primary btn-products-list"><span>@Translate("Read more", "Read more")</span></a> </div> </div> @if (Discount != Price) { if (@Pageview.Area.Item["EcommerceStickerType"].ToString() == "ribbon") { <span class="ribbon base">@Translate("On sale!", "On sale!")</span> } if (@Pageview.Area.Item["EcommerceStickerType"].ToString() == "ball") { <span class="ball">@Translate("On sale!", "On sale!")</span> } } </div> </div> Count++; if (Count == ColMD) { @*<div class="row"></div>*@ Count = 0; } } } @{ string image = ""; var grouplink = ""; string productname = ""; var pid = GetValue("Ecom:Product.ID"); var name = GetValue("Ecom:Product.Name"); string alt1 = ""; string alt2 = ""; string alt3 = ""; string alt4 = ""; string altText = GetString("Ecom:Product:Field.imgAltText"); bool doListExist = false; string idJpg = GetString("Ecom:Product.ID"); string idMyList = GetString("Ecom:Product.ID") + "myLists"; Dynamicweb.eCommerce.Products.Product engProduct = Dynamicweb.eCommerce.Products.Product.GetProductByID("Gravering"); } <script type="text/javascript"> /* CLASSES */ function VariantGroup(id, name) { this.Id = id; this.Name = name; this.Options = []; } function VariantOption(id, name) { this.Id = id; this.Name = name; } function VariantCombination(id) { this.Id = id; } function VariantSelector() { this.Groups = []; this.Combinations = []; } /* FUNCTIONS */ function ByGroupOrder(varid) { var vars = []; for (g = 0; g < Selector.Groups.length; g++) { for (o = 0; o < Selector.Groups[g].Options.length; o++) { for (v = 0; v < varid.length; v++) { if (Selector.Groups[g].Options[o].Id == varid[v]) { vars.push(varid[v]); } } } } return vars; } //function PresetCombo(combono, value) { // document.getElementById('COMBO' + combono).value = value; // UpdateCombo(combono); //} function CombinationExist(query) { found = false; for (ci = 0; ci < Selector.Combinations.length; ci++) { combis = Selector.Combinations[ci].Id.split("."); queryfoundincombination = true; for (q = 0; q < query.length; q++) { queryitemfoundincombination = false; for (cs = 0; cs < combis.length; cs++) { if (combis[cs] == query[q]) queryitemfoundincombination = true; } if (!queryitemfoundincombination) queryfoundincombination = false; } if (queryfoundincombination) found = true; } return found; } function FillCombo(combono) { //ClearCombo(combono); @{ var selectiontext = @Translate("Choose variant", "Choose variant"); } var op = document.createElement("option"); op.text = "@selectiontext"; op.value = ""; //document.getElementById('COMBO' + combono).options.add(op); //for (i = 0; i < Selector.Groups[combono].Options.length; i++) { // option = Selector.Groups[combono].Options[i]; // includeoption = true; // curcombination = []; // for (g = 0; g < combono; g++) { // curcombination.push(document.getElementById('COMBO' + g).value); // } // curcombination.push(option.Id); // includeoption = CombinationExist(curcombination); // if (includeoption) { // var op = document.createElement("option"); // op.text = option.Name; // op.value = option.Id; // document.getElementById('COMBO' + combono).options.add(op); // document.getElementById('COMBO' + combono).disabled = false; // } //} } //function ClearCombo(combono) { // while (document.getElementById('COMBO' + combono).options.length > 0) { // document.getElementById('COMBO' + combono).options[0] = null; // } // document.getElementById('COMBO' + combono).disabled = true; //} function UpdateCombo(combono) { if (combono < Selector.Groups.length - 1) { if (document.getElementById('COMBO' + combono).value != "") FillCombo((combono + 1)); if (combono > -1) { fromcombo = (document.getElementById('COMBO' + combono).value == "") ? combono + 1 : combono + 2; for (c = fromcombo; c < Selector.Groups.length; c++) { ClearCombo(c); } } } else { if (!presetting && (document.getElementById('COMBO' + (Selector.Groups.length - 1)).value != "")) { id = ""; for (c = 0; c < Selector.Groups.length; c++) { id += (c == 0) ? document.getElementById('COMBO' + c).value : "." + document.getElementById('COMBO' + c).value; } document.location.href = Page + "&VariantID=" + id; //Spinner var opts = { lines: 9, // The number of lines to draw length: 0, // The length of each line width: 10, // The line thickness radius: 18, // The radius of the inner circle corners: 1, // Corner roundness (0..1) rotate: 0, // The rotation offset direction: 1, // 1: clockwise, -1: counterclockwise color: '#000', // #rgb or #rrggbb or array of colors speed: 1, // Rounds per second trail: 35, // Afterglow percentage shadow: false, // Whether to render a shadow hwaccel: false, // Whether to use hardware acceleration className: 'spinner', // The CSS class to assign to the spinner zIndex: 2e9, // The z-index (defaults to 2000000000) top: '50%', // Top position relative to parent left: '50%' // Left position relative to parent }; var target = document.getElementById('productinfo'); var spinner = new Spinner(opts).spin(target); } } } //function UpdateCart() { // document.getElementById('minipagecart').className = " dw-minicart-update"; // document.getElementById('minipagecart-button').className = "btn btn-sm dw-minicart-update"; //} </script> @{ string ButtikLink = @Pageview.Area.Item["ButtikId"].ToString(); } @{ string imagesize = ""; string infosize = ""; string unitID = GetString("Ecom:Product.DefaultUnitID"); double DBPrice = GetDouble("Ecom:Product.DBPrice"); string DBFormatted = String.Format("{0:0.00}", DBPrice); string unitName = ""; bool offer = false; if (unitID != "") { unitName = Dynamicweb.eCommerce.Variants.VariantOption.GetVariantOption(unitID).Name; } switch (Pageview.Area.Item["EcommerceProductcardImageSize"].ToString()) { case "small": imagesize = "4"; infosize = "8"; break; case "medium": imagesize = "6"; infosize = "6"; break; case "large": imagesize = "12"; infosize = "12"; break; } } <div class="product-wrapper"> <div class="right-content col-sm-12 col-xs-12"> <div class="row"> <div class="product col-md-6 col-sm-6 col-xs-12"> <div class="product-gallery"> <!-- Discount sticker --> @{ image = System.Web.HttpContext.Current.Server.UrlEncode(GetString("Ecom:Product.ImageLarge.Default.Clean")); alt1 = System.Web.HttpContext.Current.Server.UrlEncode(GetString("Ecom:Product.ImageAlt_1.Default.Clean")); alt2 = System.Web.HttpContext.Current.Server.UrlEncode(GetString("Ecom:Product.ImageAlt_2.Default.Clean")); alt3 = System.Web.HttpContext.Current.Server.UrlEncode(GetString("Ecom:Product.ImageAlt_3.Default.Clean")); alt4 = System.Web.HttpContext.Current.Server.UrlEncode(GetString("Ecom:Product.ImageAlt_4.Default.Clean")); bool imageMissing = false; } @if (image.Contains("missing_image")) { image = System.Web.HttpContext.Current.Server.UrlEncode("/Files/Images/Produkter/" + idJpg + ".jpg"); alt1 = System.Web.HttpContext.Current.Server.UrlEncode("/Files/Images/Produkter/" + idJpg + "_1.jpg"); alt2 = System.Web.HttpContext.Current.Server.UrlEncode("/Files/Images/Produkter/" + idJpg + "_2.jpg"); alt3 = System.Web.HttpContext.Current.Server.UrlEncode("/Files/Images/Produkter/" + idJpg + "_3.jpg"); alt4 = System.Web.HttpContext.Current.Server.UrlEncode("/Files/Images/Produkter/" + idJpg + "_4.jpg"); imageMissing = true; <div class="checkElement"></div> } <div class="primary-image"> <ul id="altImgs" class="bxslider"> <li class="bxsliderLI image_0" data-image="0" style="width: 100%"> <a href="@image" rel="group" class="fancybox"> <img onError="this.onerror=null;this.src='/Files/Images/Ecom/missing_image.jpg';" alt="@altText" src="@image" class="img-responsive" style="margin: auto; position:absolute; top:0; left:0; bottom:0; right:0; max-height:280px; width:inherit !important" /> </a> </li> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_1.Clean")) || imageMissing) { <li id="altImg1" data-image="1" class="bxsliderLI image_1" style="width: 100%;display:none;"> <a href="@alt1" rel="group" class="fancybox"> <img onError="checkError(1);" alt="@name" src="@alt1" class="img-responsive" style="margin: auto; position:absolute; top:0; left:0; bottom:0; right:0; max-height:280px; width:inherit !important" /> </a> </li> } @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_2.Clean")) || imageMissing) { <li id="altImg2" data-image="2" class="bxsliderLI image_2" style="width: 100%;display:none;"> <a href="@alt2" rel="group" class="fancybox"> <img onError="checkError(2);" alt="@name" src="@alt2" class="img-responsive" style="margin: auto; position:absolute; top:0; left:0; bottom:0; right:0; max-height:280px; width:inherit !important" /> </a> </li> } @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_3.Clean")) || imageMissing) { <li id="altImg3" data-image="3" class="bxsliderLI image_3" style="width: 100%;display:none;"> <a href="@alt3" rel="group" class="fancybox"> <img onError="checkError(3);" alt="@name" src="@alt3" class="img-responsive" style="margin: auto; position:absolute; top:0; left:0; bottom:0; right:0; max-height:280px; width:inherit !important" /> </a> </li> } <!--@if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_4.Clean")) || imageMissing) { <li id="altImg4" class="bxsliderLI" style="width: 100%"><a href="@alt4" class="fancybox"> <img onError="checkError(4);" alt="@name" src="@alt4" class="img-responsive" style="margin: auto; position:absolute; top:0; left:0; bottom:0; right:0; max-height:280px; width:inherit !important"/></a></li> } --> </ul> @if (Dynamicweb.Input.FormatBoolean(GetGlobalValue("Global:Extranet.UserName"))) { if (GetBoolean("Ecom:Product.IsProductInFavoriteList")) { <a href="javascript:void(0)" data-toggle="modal" data-target="#@idMyList"><i class="fa fa-star" aria-hidden="true" style="float:right;font-size: 22px;position: absolute;top: 5px;right: 15px; cursor:pointer; z-index:500;"></i></a> <a href="javascript:void(0)" data-toggle="modal" data-target="#@idMyList"><i class="fa fa-star" aria-hidden="true" style="float:right;font-size: 22px;position: absolute;top: 5px;right: 15px; cursor:pointer; z-index:500;"></i></a> } else { <a href="javascript:void(0)" data-toggle="modal" data-target="#@idMyList"><i class="fa fa-star-o" aria-hidden="true" style="float:right;font-size: 22px;position: absolute;top: 5px;right: 15px; cursor:pointer; z-index:500;"></i></a> } } </div> <div>&nbsp;</div> <div class="row DetailSliderImageBox text-center"> <div id="bx-pager"> <div class="col-md-3 col-sm-6 col-xs-6" style="padding-left:5px; padding-right:5px;display: inline-flex;justify-content: center;float: none;"> <div class="thumbnail-images"> <img onError="this.onerror=null;this.src='/Files/Images/Ecom/missing_image.jpg';" data-thumb="0" src="@image" class="img-responsive" alt="" style="max-height:60px; margin:0 auto;"> </div> </div> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_1.Clean")) || imageMissing) { <div class="col-md-3 col-sm-6 col-xs-6 thumbnail1" style="padding-left:5px; padding-right:5px;display: inline-flex;justify-content: center;float: none;"> <div class="thumbnail-images"> <img onError="removeElement(1);" data-thumb="1" src="@alt1" class="img-responsive" alt="" style="max-height:60px; margin:0 auto;"> </div> </div> } @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_2.Clean")) || imageMissing) { <div class="col-md-3 col-sm-6 col-xs-6 thumbnail2" style="padding-left:5px; padding-right:5px;display: inline-flex;justify-content: center;float: none;"> <div class="thumbnail-images"> <img onError="removeElement(2);" data-thumb="2" src="@alt2" class="img-responsive" alt="" style="max-height:60px; margin:0 auto;"> </div> </div> } @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_3.Clean")) || imageMissing) { <div class="col-md-3 col-sm-6 col-xs-6 thumbnail3" style="padding-left:5px; padding-right:5px;display: inline-flex;justify-content: center;float: none;"> <div class="thumbnail-images"> <img onError="removeElement(3);" data-thumb="3" src="@alt3" class="img-responsive" alt="" style="max-height:60px; margin:0 auto;"> </div> </div> } <!-- @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product.ImageAlt_4.Clean"))) { <div class="col-md-3 col-sm-6 col-xs-6" style="padding-left:5px; padding-right:5px;"> <div class="thumbnail-images"> <a data-slide-index="4" href=""> <img src="@alt4" class="img-responsive" alt=""> </a> </div> </div> } --> </div> @foreach (LoopItem detail in GetLoop("Details")) { image = System.Web.HttpContext.Current.Server.UrlEncode(detail.GetString("Ecom:Product:Detail.Image.Clean")); <div class="col-md-3 col-sm-6 col-xs-6 <div class="col-md-3 col-sm-6 col-xs-6"> <div class="thumbnail-images"> <a href="@image" class="fancybox"> <img src="@image" alt=""> </a> </div> </div> } </div> </div> </div> <div class="col-md-6 col-sm-6 col-xs-12"> <form name="@pid" id="@pid" method="post" action="/Default.aspx"> @GetValue("Ecom:Product.Form.Clean") <span class="product-info" vocab="http://schema.org/" typeof="Product" id="productinfo"> <h1><span property="name">@GetString("Ecom:Product.Name")</span> @GetString("Ecom:Product.SelectedVariantComboName")</h1> <div id="description"> @GetString("Ecom:Product.ShortDescription") </div> <span>@Translate("Item number", "Item number"): @GetString("Ecom:Product.Number")</span> @{ string lengthValue = GetString("Ecom:Product:Field.Length"); string heightValue = GetString("Ecom:Product:Field.Heigth"); string widthValue = GetString("Ecom:Product:Field.Width"); var length = GetString("Ecom:Product:Field.Length") != "0,00" ? @Translate("Lengde", "Lengde") + ": " + GetString("Ecom:Product:Field.Length") + @Translate(" cm", " cm") : ""; var height = GetString("Ecom:Product:Field.Heigth") != "0,00" ? @Translate("Høyde", "Høyde") + ": " + GetString("Ecom:Product:Field.Heigth") + @Translate(" cm", " cm") : ""; var width = GetString("Ecom:Product:Field.Width") != "0,00" ? @Translate("Diam", "Diam") + ": " + GetString("Ecom:Product:Field.Width") + @Translate(" cm", " cm") : ""; } <span class="productSetting"> @if (lengthValue != "") { @length } @if (heightValue != "") { @height } @if (widthValue != "") { @width } </span> <!-- DYNAMIC VARIANT OPTION --> <div id="productvariants"> <!-- SELECTOR MAIN --> @{ var pageid = GetValue("Ecom:Product:Page.ID"); var productid = GetValue("Ecom:Product.ID"); } <script type="text/javascript"> var presetting = true; var VariantID = "@GetValue("Ecom:Product.SelectedVariantComboID")"; var VariantOptions = VariantID.split('.'); var Page = "/Default.aspx?ID=@pageid&ProductID=@productid"; var Selector = new VariantSelector(); </script> <script type="text/javascript"> @foreach (LoopItem variantgroup in GetLoop("VariantGroups")) { var variantgroupid = variantgroup.GetValue("Ecom:VariantGroup.ID"); var variantgroupname = variantgroup.GetString("Ecom:VariantGroup.Name"); <text>group = new VariantGroup("@variantgroupid", "@variantgroupname");</text> foreach (LoopItem variantoption in variantgroup.GetLoop("VariantOptions")) { var variantoptionid = variantoption.GetValue("Ecom:VariantOption.ID"); var variantoptionname = variantoption.GetString("Ecom:VariantOption.Name"); <text>group.Options.push(new VariantOption("@variantoptionid", "@variantoptionname"));</text> } <text>Selector.Groups.push(group);</text> } </script> <script type="text/javascript"> @foreach (LoopItem variantcomb in GetLoop("VariantCombinations")) { var variantcombid = variantcomb.GetValue("Ecom:VariantCombination.VariantID"); <text>Selector.Combinations.push(new VariantCombination("@variantcombid"));</text> } </script> <script type="text/javascript"> for (g = 0; g < Selector.Groups.length; g++) { document.write("<br><b>" + Selector.Groups[g].Name + "</b><br>"); document.write("<select id='COMBO" + g + "' style='width:40%' onchange=\"UpdateCombo(" + g + ");\">\n</select><br>\n"); } //FillCombo(0); //for (vo = 0; vo < VariantOptions.length; vo++) { // PresetCombo(vo, VariantOptions[vo]); //} presetting = false; </script> </div> <div property="offers" typeof="Offer"> <div class="row"> <div class="col-md-12 col-xs-12 price-box" style="margin-top:5px; display: table;"> @{ var currency = GetString("Ecom:Product.Price.Currency.Code"); } <meta property="priceCurrency" content="@currency" /> @if (offer) { if (GetDouble("Ecom:Product.DBPrice") > GetDouble("Ecom:Product.Price")) { <span class="productprice price"><strong style="margin-left:-7px;margin-top: 5px; padding: 0 4px 0 6px !important; font-size: 20px !important;display:inline-block;color:#333c44;line-height: 35px; display: table-cell;"> @GetString("Ecom:Product.Currency.Symbol") @GetString("Ecom:Product.Price.Price")</strong><span style="font-size:20px;color: #333c44;font-weight:bold">/ @unitName</span></span><span>&nbsp;&nbsp;</span> } else { <span class="productprice price"><strong style="margin-left:-7px; padding: 0 4px 0 6px !important; font-size: 16px !important;display: table-cell; "> @GetString("Ecom:Product.Currency.Symbol") @GetString("Ecom:Product.Price.Price")</strong><span style="font-weight:400;"></span></span><span>&nbsp;&nbsp;</span> } <span class="productpricebr"></span> <p class="productoldprice price" style="margin-top: -30px !important; padding-top: 0px !important; color: #AAAAAA !important; font-size: 15px !important; position: absolute; text-decoration: line-through; font-weight:inherit; font-style: italic;display: table-cell; ">DKK @DBFormatted</p> } else { if (GetDouble("Ecom:Product.DBPrice") > GetDouble("Ecom:Product.Price")) { <span class="productprice price" style="font-size: 28px !important; margin-top: 4px !important; color: #333c44!important;display: table-cell;">@GetString("Ecom:Product.Currency.Symbol") @GetString("Ecom:Product.Price.Price")<span style="font-weight:400; font-size:14px;"><span style="font-size:20px;">/ @unitName</span></span></span><span>&nbsp;&nbsp;</span> } else { <span class="productprice price" style="font-size: 28px !important; margin-top: 4px !important; color: #333c44!important;display: table-cell;"><strong>@GetString("Ecom:Product.Currency.Symbol") @GetString("Ecom:Product.Price.Price")</strong><span style="font-weight:400; font-size:14px;"></span></span><span>&nbsp;&nbsp;</span> } } @*<div class="col-md-12 col-sm-12 col-xs-12" style="float:none !important; margin: 20px 0px 20px 0; text-align:right; padding-right:0;display: table-cell; vertical-align: bottom; padding-bottom: 30px;"> <a href="/Default.aspx?ID=@ButtikLink" class="btn btn-dw-cart" style="background: #333c44!important;margin-left: 0"><strong>@Translate("Find butik", "Find butik")</strong></a> </div>*@ </div> <div style="float:right; padding-right:15px;"> @if (!string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.salesArg1.Value")) || !string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.salesArg2.Value")) || !string.IsNullOrWhiteSpace(GetString("Ecom:Product:Field.salesArg3.Value"))) { <ul style="list-style-type:none; color:#9A9A9A"> <li style="padding-bottom:10px;">@GetString("Ecom:Product:Field.salesArg1.Value")</li> <li style="padding-bottom:10px;">@GetString("Ecom:Product:Field.salesArg2.Value")</li> <li style="padding-bottom:10px;">@GetString("Ecom:Product:Field.salesArg3.Value")</li> </ul> } </div> <div class="col-md-6 col-sm-6 col-xs-2"> <div class="col-md-8 col-sm-8 col-xs-8 info-stock settings" style="padding-left:0;"> @* @{ var realStock = GetInteger("Ecom:Product.Stock"); if (realStock > 0) { <div class="" style="position:inherit;"> <i class="fa fa-check-square-o" aria-hidden="true"></i> <span>@Translate("Stock", "Stock")</span> </div> } else { <div class=""> <i class="fa fa-square-o" aria-hidden="true"></i> <span>@Translate("Stock", "Stock")</span> </div> } } *@ </div> <div class="col-md-8 col-sm-8 col-xs-8 campaign settings collapse" style="padding-left:0;"> <!-- hidden for now --> <i class="fa fa-usd" aria-hidden="true"></i> <span>@Translate("Campaign", "Campaign")</span> </div> <div class="col-md-8 col-sm-8 col-xs-8 favorite-wrapper settings" style="padding-left:0;"> <div class="addFav"> @if (!string.IsNullOrWhiteSpace("Ecom:Product.AddToList")) { string star = ""; var countstar = GetString("Ecom:Product.ID"); bool listExist = false; string starTitle = ""; if (GetLoop("CustomerCenter.ListTypes").Any(x => x.GetLoop("CustomerCenter.ProductLists").Any(y => y.GetString("Ecom:Product.List.IsProductInThisList") == "True"))) { star = "<i class='fa fa-star'></i>"; starTitle = "Remove from favorites"; } else { star = "<i class='fa fa-star-o'></i>"; starTitle = "Add to favorites"; } if (Dynamicweb.Input.FormatBoolean(GetGlobalValue("Global:Extranet.UserName"))) { <a data-target="#lists_@countstar" title="@Translate("Add to favorites", "Add to favorites")" data-toggle="collapse" class="product-link" data-collapse-group="favorites"> @star @starTitle </a> } else { <a data-target="#login" title="@Translate("Add to favorites", "Add to favorites")" data-toggle="modal" class="product-link"> <i class='fa fa-star-o'></i> </a> } <div class="collapse favorite-container" id="lists_@countstar"> <div class="col-xs-12 pull-left"> @foreach (LoopItem listType in GetLoop("CustomerCenter.ListTypes")) { foreach (LoopItem list in listType.GetLoop("CustomerCenter.ProductLists")) { listExist = true; if (list.GetString("Ecom:Product.List.IsProductInThisList") == "True") { <a href="@list.GetString("Ecom:Product.RemoveFromThisList")"> <div class="favorite-icon "> <span class="fa-stack pull-left"> <i class="fa fa-fw fa-star fa-stack-1x"></i> </span> <span class="list-name pull-left">@list.GetValue("Ecom:CustomerCenter.List.Name")</span> </div> </a> } else { <a href="@list.GetString("Ecom:Product.AddToThisListAction")"> <div class="favorite-icon "> <span class="fa-stack pull-left"> <i class="fa fa-star-o fa-stack-1x"></i> </span> <span class="list-name pull-left">@list.GetValue("Ecom:CustomerCenter.List.Name")</span> </div> </a> } } } @if (!listExist) { <a href="Default.aspx?id=@Pageview.Area.Item["FavoritesListId"]" style="text-align:center;">@Translate("Create new list")</a> } </div> </div> } </div> </div> </div> <div class="col-md-6 col-sm-6 col-xs-10 right-size ingravering-button" style="height: 60px;"> @if (GetString("Ecom:Product:Field.ProductEngraving.Value") == "True") { foreach (var item in GetLoop("CustomFields")) { if (item.GetString("ProductEngraving.Value") == "True") { <a href="#" data-toggle="modal" data-target="#engraving" class="btn btn-dw-cart pull-right" style=""><strong>@Translate("Indgravering", "Indgravering")</strong></a> } } } </div> <div class="pull-right buyControl right-size"> <input type="number" name="Quantity" value="1" class="quantity qty" style="width:60px; text-align:center;margin: 0 3px;height:34px;"> <button type="submit" name="submit" class="btn btn-dw-cart" style="background: #333c44!important;margin-left: 10px;"><strong>@Translate("Buy", "Buy")</strong></button> </div> @*<div class="col-md-4 col-sm-4 col-xs-12 text-right" id="deliverycol" style="float:right; margin: 20px 0;"> <div class="wrapper-o pull-right"> <div class="free settings"> <small> <i class="fa fa-truck"></i> <span>@Translate("Free delivery", "Free delivery")</span> </small> </div> <div class="delivery settings"> <small> <i class="fa fa-clock-o"></i> <span>1-3 @GetString("Ecom:Product:Stock.DeliveryText")@Translate("days delivery", "days delivery")</span> </small> </div> <div class="invoice settings collapse"> <!-- hidden for now --> <small> <i class="fa fa-desktop" aria-hidden="true"></i> <span>@Translate("Invoice payment", "Invoice payment")</span> </small> </div> </div> </div>*@ <div class="row"> <span class="clearfix"></span> <div class="product-short-info"> <div class="col-md-6 col-xs-12"> @* @foreach (var unit in GetLoop("Units")) { <p><small>@Translate("Unit", "Vareenhed"): <span property="identifier">@unit.GetString("Ecom:VariantOption.Name")</span></small></p> } *@ </div> @if (GetLoop("BOMProducts").Count > 0) { <div class="col-md-12 col-xs-12" id="includingproducts"> <table cellspacing="0" cellpadding="0" border="0"> @foreach (LoopItem bomconfig in GetLoop("BOMConfigurators")) { <tr> <td> <b>@bomconfig.GetString("Ecom:Product.Configurator.Name")</b><br> <select name="@bomconfig.GetString("Ecom:Product.Configurator.ID")"> @foreach (LoopItem configproduct in GetLoop("ConfiguratorProducts")) { <option value="@configproduct.GetString("Ecom:Product.ID")" @configproduct.GetString("Ecom:Product.Configurator.Selected")>@configproduct.GetString("Ecom:Product.Name") ( @configproduct.GetString("Ecom:Product.ActualPrice")" ) </option> } </select> </td> </tr> } </table> </div> } </div> </div> </div> </div> </form> </div> @if (Dynamicweb.Base.IsModuleInstalled("LoyaltyPoints")) { @* Buy with loyalty points start *@ var productPoints = GetDouble("Ecom:Product.PointPrice"); <div class="col-md-6 col-sm-12 col-xs-12"> @if (productPoints > 0) { <span class="price pull-left" style="font-size: 22px !important; margin-top: 4px !important">@productPoints @Translate("Points", "Points")</span> var user = Dynamicweb.Modules.UserManagement.User.get_Current(Dynamicweb.Modules.UserManagement.PagePermissionLevels.Frontend); if (user == null) { <div class="alert alert-info">@Translate("Sign in to buy this product using points")</div> } else { var availablePoints = user != null ? user.PointBalance : 0; var cart = Dynamicweb.eCommerce.Common.Context.Cart; var pointsUsedInCart = cart != null ? cart.TotalPoints : 0; if (availablePoints < productPoints + pointsUsedInCart) { <div class="alert alert-danger">@string.Format(Translate("You don't have enough points to buy this product using points ({0:0.00}/{1:0.00})"), availablePoints, productPoints + pointsUsedInCart)</div> } else { var ProductID = GetValue("Ecom:Product.ID"); <form method="post" role="form"> <input type="hidden" name="ProductID" value="@ProductID" /> <button type="submit" onclick="UpdateCart();" class="btn btn-dw-secondary pull-right" name="CartCmd" value="addWithPoints">@Translate("Buy for") @productPoints @Translate("points")</button> </form> } } } </div> @* Buy with loyalty points end *@ } </div> <div class="col-md-12 col-sm-12 col-xs-12 long-description collapse"> <!-- Hidden for now --> <p class="description">@GetString("Ecom:Product.LongDescription")</p> </div> <!-- RELATED PRODUCTS --> @if (Pageview.Area.Item["RelatedProducts"].ToString() == "True") { if (GetString("Ecom:Product.RelatedCount") != "0") { <div class="row"> <div class="col-md-12 col-sm-12 col-xs-12"> <h3 class="dw-section-title more-products"><span>@Translate("Related products", "Related products")</span></h3> </div> </div> foreach (LoopItem relatedgroup in GetLoop("ProductRelatedGroups")) { <div class="row"> @{ var relatedproductloop = relatedgroup.GetLoop("RelatedProducts").OrderByDescending(g => g.GetString("Ecom:Product.LoopCounter")).ToList(); } <div class="productsRelated"> @GetProductList(relatedproductloop, 3, 3, 1) </div> </div> if (GetInteger("Ecom:Product.RelatedCount") > 3) { <div class="show" style="border: 1px solid #e0eded; text-align: center; line-height: 34px;"> <p class="showAllRelated" onclick="showAll()" style="line-height: inherit; margin-bottom: inherit; cursor:pointer;"><i class="fa fa-arrow-down" aria-hidden="true"></i> @Translate("Vis alle relaterede produkter", "Vis alle relaterede produkter")</p> </div> } <div class="row"> <hr /> </div> } } } </div> </div> @*Engraving modal START*@ <div class="modal fade" id="engraving" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-md" style="position:absolute;left:0;right:0;width:800px;"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">@Translate("Indgravering", "Indgravering")</h4> </div> <div class="row" style="margin-top:20px;margin-bottom:20px;"> <div class="col-md-12 col-sm-12 col-xs-12"> <form id="engravingForm" action="/Default.aspx" method="post"> <div class="col-md-6 col-sm-12 col-xs-12"> <input type="hidden" id="CartCmd" name="CartCmd" value="add" /> <input type="hidden" name="ID" value="@GetString("Ecom:Product:Page.ID")" /> <input type="hidden" name="ProductLoopCounter1" id="ProductLoopCounter" value="1"> <input type="hidden" name="ProductID" id="ProductID" value="@pid"> <input type="hidden" name="VariantID" id="VariantID" value=""> <input type="hidden" name="PriceTag" value="@GetString("Ecom:Product.Price.Price").Replace(",", ".")" /> <div class="form-group"> <label for="tekst">@Translate("Tekst", "Tekst")</label> <input type="text" class="form-control" size="200" name="EcomOrderLineFieldInput_Engraving" id="tekst"> </div> <div class="form-group"> <label for="instruksion">@Translate("Instruksjon", "Instruksjon")</label> <textarea class="form-control" name="EcomOrderLineFieldInput_Instruktion" size="200" rows="5" id="instruksion"></textarea> </div> <div class="form-group"> <label for="sel1">@Translate("Skrift-type", "Skrift-type")</label> <select name="EcomOrderLineFieldInput_WritingStyle" class="form-control" id="sel"></select> </div> <div class="clearfix pricebuy"> <input type="number" name="Quantity" value="1" min="1" step="1" class="quantity qty"> @*<p class="livePrice" style="margin-top:20px;"></p>*@ <p class="livePriceTest">@GetString("Ecom:Product.Price.Currency.Code") <span>@GetString("Ecom:Product.Price.Price")</span></p> </div> <div class="" style="margin-top:20px;"> <a href="mailto:@Pageview.Area.Item["Email"]?Subject=Indgravering">@Translate("MonogramTekst", "Kontakt os her for indgravering af logo eller monogram")</a><br /> @*<a onclick="document.getElementById('engravingForm').submit();" class="btn btn-dw-cart" style="background: #333c44!important;margin-top:30px;"><strong>@Translate("Læg i kurv", "Læg i kurv")</strong></a>*@ <button type="submit" class="btn btn-dw-cart" style="background: #333c44!important;margin-top:30px;">@Translate("Læg i kurv")</button> </div> </div> @{ string imageLink = Pageview.Area.Item["Billede"].ToString(); string imageEngraving = ""; if (string.IsNullOrWhiteSpace(imageLink)) { imageEngraving = "/Admin/Public/GetImage.ashx?Image=/Files/Images/Ecom/missing_image.jpg&amp;Format=jpg&amp;Width=250&amp;Height=250&amp;Crop=5"; } else { imageEngraving = "/Admin/Public/GetImage.ashx?Image="+ Pageview.Area.Item["Billede"] +"&amp;Format=jpg&amp;Width=250&amp;Height=250&amp;Crop=5"; } } <div class="col-md-6 col-sm-12 col-xs-12" style="text-align:center;"> <img src="@imageEngraving" alt="" /> <p style="text-align:left;">@Pageview.Area.Item["Tekst"]</p> <div class="row"> &nbsp; </div> <div class="row"> &nbsp; </div> <p style="text-align:left;">@Translate("Product engravement text")</p> </div> </form> </div> </div> </div> </div> </div> @*Engraving modal END*@ <!--Lists Modal START --> <div class="modal fade" id="@GetString("Ecom:Product.ID")myLists" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-sm"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title" id="myModalLabel">@Translate("Tilføj til liste", "Tilføj til liste")</h4> <div class="modal-body" style="padding-left:0;"> @foreach (var listType in GetLoop("CustomerCenter.ListTypes")) { <table class="table"> @foreach (var list in listType.GetLoop("CustomerCenter.ProductLists")) { doListExist = true; <tr> <td style="cursor:pointer; padding-left:0;"> @if (list.GetBoolean("Ecom:Product.List.IsProductInThisList")) { <a href="@list.GetString("Ecom:Product.RemoveFromThisList")"><i class="fa fa-star" aria-hidden="true"></i> @list.GetValue("Ecom:CustomerCenter.ListTypes.List.Name")</a>} else { <a href="@list.GetString("Ecom:Product.AddToThisListAction")"><i class="fa fa-star-o" aria-hidden="true"></i> @list.GetValue("Ecom:CustomerCenter.ListTypes.List.Name")</a> } </td> </tr> } <tr> <td style="cursor:pointer; padding-left:0;"> <a href="Default.aspx?id=@Pageview.Area.Item["FavoritesListId"]" style="text-align:center;">@Translate("Opret ny liste")</a> </td> </tr> </table> } @if (!doListExist) { <table class="table"> <tr> <td style="cursor:pointer; padding-left:0;"> <a href="Default.aspx?id=@Pageview.Area.Item["FavoritesListId"]" style="text-align:center;">@Translate("Opret ny liste")</a> </td> </tr> </table> } </div> </div> </div> </div> </div> <!--Lists Modal END --> <script> $(function () { $('#@pid').submit(function () { var quantityRaw = $("input.quantity").val(); var quantity = parseInt(quantityRaw); var salesQuant = $("input.quantity").val(); if (quantity % salesQuant == 0) { return true; } else { alert("Dette produkt kan kun bestilles i multipla af " + salesQuant); return false; } }); }); </script> <script> $(".livePrice").html('NOK @GetString("Ecom:Product.Price.Price")'); $("#engravingForm input[name=Quantity]").bind('keyup mouseup', function () { var price = parseInt($("#engravingForm input[name=PriceTag]").val()); var priceDecimal = price.toFixed(2); var quantity = parseInt($("#engravingForm input[name=Quantity]").val()); var dbprice = '@GetDouble("Ecom:Product.Price.Price")'; var dbengravingPrice = ""; @if (engProduct != null) { <text>dbengravingPrice1 = '@(engProduct.Price.Price)';</text> } var inputs1 = $("#tekst").val(); var engravingPrice = parseFloat(dbengravingPrice1); var price = parseFloat(dbprice); dbengravingPrice = dbengravingPrice1.replace(",", "."); dbprice = dbprice.replace(",", "."); var engraving = engravingPrice * inputs1.length; var result = quantity * (price + engraving); result = result.toFixed(2); result = result.replace(".", ","); $(".livePriceTest").html("NOK" + result); }); $("#tekst").bind('keyup mouseup', function () { var dbprice = '@GetDouble("Ecom:Product.Price.Price")'; var dbengravingPrice = ""; @if (engProduct != null) { <text>dbengravingPrice = '@(engProduct.Price.Price)';</text> } dbengravingPrice = dbengravingPrice.replace(",", "."); dbprice = dbprice.replace(",", "."); var engravingPrice = parseFloat(dbengravingPrice); var price = parseFloat(dbprice); var inputs = $("#tekst").val(); var quantityProduct = parseInt($("#engravingForm input[name=Quantity]").val()); var engraving = engravingPrice * inputs.length; var newPrice = quantityProduct * (price + engraving); newPrice = newPrice.toFixed(2); $("#Quantity2").attr("value", inputs.length); $(".livePriceTest").html("NOK " + newPrice); }); </script> <script> var OriFontValues = '@Pageview.Area.Item["Skrift"]'; var fontValues = OriFontValues.split(','); for (var i = 0, len = fontValues.length; i < len; i++) { var opt = document.createElement("option"); var t = document.createTextNode(fontValues[i]); opt.appendChild(t); var att = document.createAttribute("value"); att.value = fontValues[i]; opt.setAttributeNode(att); document.getElementById("sel").appendChild(opt); } </script> <script> $(".productsRelated > .productlist").hide(); $(".0:first").show(); $(".1:first").show(); $(".2:first").show(); var related = "firstThree"; function showThree() { $(".productsRelated > .productlist").hide(); $(".0:first").show(); $(".1:first").show(); $(".2:first").show(); related = "firstThree"; $(".showAllRelated").html('<i class="fa fa-arrow-down" aria-hidden="true"></i> @Translate("Vis alle relaterede produkter", "Vis alle relaterede produkter")'); } function showAll() { if (related == "firstThree") { $(".productsRelated > .productlist").show(); related = "all"; $(".showAllRelated").html('<i class="fa fa-arrow-up" aria-hidden="true"></i> @Translate("Vis færre relaterede produkter", "Vis færre relaterede produkter")'); } else { showThree(); } } </script> <script> $(".wp-block.product").css("padding-bottom", "15px"); var arr = new Array(); arr = document.getElementsByClassName("listproductright"); for (var i = 0; i < arr.length; i++) { arr.item(i).className = "listproductright"; } arr = document.getElementsByClassName("extracolumn"); for (var i = 0; i < arr.length; i++) { arr.item(i).className = "extracolumn"; } arr = document.getElementsByClassName("boxproduct"); for (var i = 0; i < arr.length; i++) { arr.item(i).className = "boxproduct wp-block product boxOnly"; } arr = document.getElementsByClassName("listproductleft"); for (var i = 0; i < arr.length; i++) { arr.item(i).className = "listproductleft wp-block-footer"; } arr = document.getElementsByClassName("longproductdescription"); for (var i = 0; i < arr.length; i++) { arr.item(i).style = "display: none !important; text-align: left !important"; } arr = document.getElementsByClassName("productfigure"); for (var i = 0; i < arr.length; i++) { arr.item(i).style = "border-bottom: 1px solid #E0EDED"; } </script> <script> /*product detail images*/ $(document).on('click', '.thumbnail-images img', function () { if ($(".thumbnail-images img").data("thumb") == $(".bxsliderLI").data("image")) { var thumb = $(this).data("thumb"); $(".bxsliderLI").hide(); $(".bxsliderLI.image_" + thumb).show(); } }); </script> <style> .bxsliderLI { background: #fff; } .wp-block-footer { display: none !important; } .fancybox-nav > span { visibility: visible; height: 40px; } .fancybox-next > span { background: url(/Files/Images/controls_a.png) no-repeat -631px -16px; opacity: 0.5; } .fancybox-prev > span { background: url(/Files/Images/controls_a.png) no-repeat -66px -16px; opacity: 0.5; } a:active, a:focus { outline: none !important; } </style> <script> function togglePrices(){ $("#pricesTable").toggle(); } function checkError(el){ var altImg = document.getElementById("altImgs"); $('#altImg' + el).remove(); $('#altImg' + el).addClass("errorImg"); //$(el).parent(".bxSliderLI").detach(); //$(el).parent("a").remove(); } function removeElement(number){ var altImg = document.getElementById("bx-pager"); $('.thumbnail' + number).remove(); //$('#altImg' + el).addClass("errorImg"); //altImg.removeChild(el); //$(el).parent(".bxSliderLI").detach(); //$(el).parent("a").remove(); } </script>

Contact us

 

payment card info