File: D:/web/castironradiatorcentre/2024-07-02/prev/inc-template-product-detail.asp
<%
' (SS,25/02/10) Added Magic Zoom Plus
' (SS,25/06/10) Change to ShowProductDetail
' (SS,06/07/10) replaced GetProductLink with GetProductLinkWithName for SEO in Sub ShowProductRelatedItem
' (SS,07/11/11) changes to work with Magic Zoom Plus 4.04
' (SS,20/5/13) added per section price for radiators to Sub ShowProductDetail
' (SS,21/02/14) replaced facebook like with iframe version because the script version was causing problems in Chrome when going back to previous
' page using browser back button, i.e. related product "add" buttons would stop working for 45secs and "like" might disappear
' (SS,11/09/14) New Bootstrap version, many changes
' (SS,23/10/14) Write Review was removed in Bootstrap viewed, added back in and improved to work in Bootstrap
' (SS,28/11/14) Added call to CustomShowHolidayNotice
' (SS,01/03/15) Added alt attribute to "img src" to remove W3C validation error
' (SS,11/02/16) added facebook, twitter, google plus sharing
' (SS,19/02/16) Added Rich Snippets / Microdata
' (SS,04/03/16) corrected structured data error when no reviews, Google didn't like AggregateRating being set to 0 when no reviews, now not shown when no reviews
' (SS,01/06/17) added sale banner to ShowProductDetail
' (SS,08/04/19) removed google plus sharing due to it being shutdown by Google on 7/3/2019
' (SS,01/10/19) added meta itemprop tags: sku, image to get rid of Google seach console warning message, (Sub ShowProductDetail)
' added meta itemprop tags: url and priceValidUntil in Sub ShowProductDetailPriceAndOptions, (priceValidUntil set to 30 days from today)
' (SS,12/11/20) removed facebook and twitter share links
' (SS,17/05/21) modified Sub ShowProductDetail to not show "In stock" for bespoke radiators and not show "contact us" for items out of stock
' (SS,24/05/21) modified Sub ShowProductDetail to show despatch days for clearance radiators
' (SS,27/05/21) modified Sub ShowProductDetail to only show the H3 tag when LStockInfo has a value (due to W3C checker warning) also removed role="form" and type="text/javascript" due to W3C checker warning
' (SS,07/06/21) modified Sub ShowProductDetail to use the extended lead time attribute for clearance radiators, replaced above with following
' (SS,06/07/22) modified Sub ShowProductDetail to highlight delivery lead time message for radiators (also show before selection of sections and paint finish for bespoke radiators)
' (SS,03/08/22) modified Sub ShowProductDetail to show PayPal Pay Later message
' (SS,11/10/22) added additional more prominent Pay in 3 message
' (SS,24/02/24) improvements to add review stars, BTU calculator modal, go to top arrow from reviews, removed large PayPal banner
' (SS,04/03/24) commented out following combo selection code until further notice
' (SS,20/06/24) change to Sub ShowProductFilesItem to add PDF icon and remove file size
' (SS,13/9/14) added following class to store temporary values used by this unit/module, currently just dimensions
Class ProductDetail
Private FDimensions
Private FProductCode ' (SS,21/6/23)
Private Sub Class_Initialize()
End Sub
Private Sub Class_Terminate()
End Sub
Public Property Get Dimensions()
Dimensions = FDimensions
End Property
Public Property Let Dimensions(AValue)
FDimensions = Trim(AValue)
End Property
' (SS,21/6/23)
Public Property Get ProductCode
ProductCode = FProductCode
End Property
' (SS,21/6/23)
Public Property Let ProductCode(AValue)
FProductCode = Trim(AValue)
End Property
End Class
Dim oProductDetail
' --- START OF PRODUCT DETAIL TEMPLATES --- '
Sub ShowProductDetailYouAreHere(AGroup, ACategory, ASubcategory)
Response.Write GetBreadcrumb(AGroup, ACategory, ASubcategory, "")
End Sub
' (SS,1/9/14) now showing Bootstrap style alert
Sub ShowProductDetailNotFound(AProductCode)
ShowAlertMesssage "warning", "Could not find Product Code: <b>" & AProductCode & "</b>"
End Sub
' (SS,15/6/09) added AShowDescription which is used to print main description or not
' (SS,25/6/10) added Or IsStockAvailable to allow ordering if not in stock but available
' (SS,30/6/11) added AProductID, used by ShowProductOptions, which was also added
' (SS,7/11/11) changes to work with Magic Zoom Plus 4.04
' (SS,17/1/13) added ending / to an img src
' (SS,20/5/13) added per section price for radiators
' (SS,1/03/15) added alt attribute to "img src" to remove W3C validation error
' (SS,11/2/16) added facebook, twitter, google plus sharing
' (SS,4/3/16) corrected structured data error when no reviews, Google didn't like AggregateRating being set to 0 when no reviews, now not shown when no reviews
' (SS,01/06/17) added sale banner via CustomIsSaleBannerApplicable and CustomGetSaleBannerText
' (SS,25/10/19) added url and priceValidUntil to get rid of warning shown in Google Search Console. priceValidUntil is set to 30 days from today.
' (SS,17/5/21) modified to not show "In stock" for bespoke radiators and not show "contact us" for items out of stock
' (SS,24/5/21) modified to show despatch days for clearance radiators
' (SS,27/5/21) modified only show the H3 tag when LStockInfo has a value (due to W3C checker warning), also removed role="form" and type="text/javascript" due to W3C checker warning
' (SS,7/6/21) modified to use the extended lead time attribute for clearance radiators, replaced above with following
' (SS,6/7/22) modified to highlight delivery lead time message for radiators (also show before selection of sections and paint finish for bespoke radiators)
' (SS,14/7/23) added width and height to images to help reduce CLS (Cumulative Layout Shift) on Desktop
Sub ShowProductDetail(AProductID, AProductCode, AProductName, AProductDesc, ADimensions, ASalePrice, AStdPrice, ANumInStock, ANew, ACategory, ASubcategory, AShowLarge, ALargePicWidth, ALargePicHeight, AShowDescription)
' (SS,13/9/14) create the private object used to store some values, for convenience, to pass onto other functions in this module
Set oProductDetail = New ProductDetail
oProductDetail.Dimensions = ADimensions
' (SS,21/6/23) added following to show the ProductCode here as well, for use in ShowProductDetailDescriptionSection (must be a better way)
oProductDetail.ProductCode = AProductCode
' (SS,22/6/11) following used to determine whether to show "Add Review" or "Reviews" tab, "Add Review" shown if no reviews
Dim LReviewRating, LReviewCount
LReviewRating = GetReviewRatingAndCount(AProductCode, LReviewCount)
' (SS,19/2/16)
Dim LBrandFound, LBrand, LMPN
LBrandFound = GetBrandAndMPN(AProductID, AProductCode, LBrand, LMPN)
%>
<!-- START OF PRODUCT DETAIL -->
<div itemscope itemtype="http://schema.org/Product">
<div class="row" style="margin-left: 0px; margin-right: 0px">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" style="border-bottom: 1px solid #ccc; border-top: 1px solid #ccc;">
<h1 itemprop="name" style="text-align:center; margin-top:10px; margin-bottom:10px; font-size:30px"><%=AProductName%></h1>
</div>
</div>
<div class="row" style="margin-left: 0px; margin-right: 0px">
<!-- magic zoom plus-->
<div class="col-lg-6 col-md-6" style="padding-left: 0px; padding-right: 0px">
<div class="col-md-12" style="padding-left: 0px; padding-right: 0px">
<div style="max-width: 425px; margin: 0 auto;">
<a id="Zoomer1" href="<%=GetProductImageLink(AProductCode, "o")%>" class="MagicZoomPlus" rel="selectors-effect: fade; selectors-change: mouseover; selectors-effect: false; disable-zoom: true; pan-zoom: false; expand-effect:linear; expand-speed: 0; show-title: bottom; hint: false" title="<%=ToNamedHTML(AProductName)%>">
<img src="<%=GetProductImageLink(AProductCode, "l")%>" alt="<%=AProductCode%>" width="425" height="425"></a> <br/>
</div>
</div>
<!-- magic zoom plus thumbnails -->
<div class="col-md-12" id="magic-zoom-thumbs" style="padding-left: 0px; padding-right: 0px">
<%ShowProductMoreImages AProductCode, 0, ""%>
</div>
</div>
<%If LBrandFound Then%>
<meta itemprop="brand" content="<%=LBrand%>" />
<meta itemprop="mpn" content="<%=LMPN%>" />
<%End If%>
<meta itemprop="sku" content="<%=AProductCode%>">
<meta itemprop="image" content="<%=GetFullProductImageLink(AProductCode, "o")%>">
<!-- price and description etc -->
<div class="col-lg-6 col-md-6" style="padding-left: 0px; padding-right: 0px">
<div class="price">
<%If CustomIsSaleBannerApplicable(AProductID, ASalePrice) Then%>
<div class="product-detail-sale-banner"><%=CustomGetSaleBannerText%></div>
<%End If%>
<h3 style="margin-top: 10px; margin-bottom: 5px">
<span class="regular"><% ShowProductPriceV2 ASalePrice, AStdPrice, False, False, "savepc" %></span>
<%CustomShowPerSectionText AProductID%>
</h3>
<%=GetCurrencySymbol%><%=GetProductPriceSimple(True, False)%> inc. VAT
<div style="margin-top: 5px">
<% ' (SS,21/2/24) also added id="reviews" anchor further down
ShowReviewRatingV2 AProductCode, True, True, "big,accordian"
AddScript "ScriptGoToReviews"
%>
</div>
<% ' (SS,21/2/24) BTU calculator button if sections
If ProductOptionExists(AProductID, "Sections") Then
%>
<div id="btnBTUCalc" class="btn btn-default" style="margin-top:10px; margin-bottom:-5px"><span class="glyphicon glyphicon-pencil"></span> Calculate BTU</div>
<h4><span class="label label-danger" id="CalculatedBTU"></span> <span id="BTUOK" class="glyphicon glyphicon-check hidden" style="color:#5cb85c;" aria-hidden="true"></span></h4>
<%
End If
%>
<% ' (SS,3/8/22) if not bespoke radiator then show the PayPal Pay Later message here, for bespoke it's shown using ajax after selection
If Not ProductOptionExists(AProductID, "Sections") Then
%>
<div style="margin-top:10px" data-pp-message data-pp-style-layout="text" data-pp-style-logo-type="inline" data-pp-style-text-color="black" data-pp-amount="<%=GetProductPriceSimple(True, False)%>"></div>
<%
End If
%>
<span itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta itemprop="priceCurrency" content="<%=GetCurrencyCode%>">
<meta itemprop="price" content="<%=CustomPriceAdjust(AProductID, GetProductPriceSimple(True, False))%>">
<meta itemprop="priceValidUntil" content="<%=ISODate(DateAdd("d", 30, Date))%>">
<%=GetStockAvailabilityMicrodata(AProductCode, AProductName, ANumInStock)%>
<meta itemprop="url" content="<%=GetFullProductLinkWithName(AProductCode, AProductName)%>">
</span>
</div>
<!-- REVIEW RATING *** to be improved -->
<%' ShowReviewRatingV2 AProductCode, True, True, "left"%>
<!-- END OF REVIEW RATING *** to be improved -->
<%If Not ProductDiscontinued(AProductCode, AProductName) Then
' (SS,17/5/21) Liam requested "In stock" to not show for radiators, and to change
' "Out of stock, contact us for availability” to "Currently out of stock"
' added LStockInfo and checking for existing value and whether a bespoke radiator and change to new text
' (SS,27/5/21) modified further down to only show the H3 tag when LStockInfo has a value (due to W3C checker warning)
' (SS,6/7/22) added LStrongHighlight for radiator products
Dim LStockInfo, LStrongHighlight
LStockInfo = GetStockInfo
LStrongHighlight = False ' (SS,6/7/22)
'If LStockInfo = "In stock" Then
' (SS,24/5/21) replaced above if with following to also show despatch days for clearance radiators
If InStr(1, LStockInfo, "in stock", vbTextCompare) Then
' check for radiator
If GetProductAttributeByName(AProductID, "Product Type") = PT_RADIATOR Then
' quick check for bespoke radiator
'If ProductOptionExists(AProductID, "Sections") Then
' LStockInfo = "" ' don't show any stock info text
'Else
' LStockInfo = "Despatched in " + CustomGetRadiatorDespatchDaysForUSP + " working days"
' (SS,7/6/21) modified to use the extended lead time attribute for clearance radiators, replaced above with following
'LStockInfo = "Despatched in " + CustomGetDeliveryDays(AProductID, "", "", True) + " working days"
'End If
' (SS,6/7/22) replaced above with following
LStockInfo = CustomGetDeliveryDays(AProductID, "", "", False)
' (SS,6/7/22) strong highlight, also added below <small>All items sent together. A....
LStrongHighlight = True
End If
ElseIf InStr(LStockInfo, "Out of stock") > 0 And InStr(LStockInfo, "contact us") > 0 Then
LStockInfo = "Currently out of stock"
End If
%>
<%If InStock(ANumInStock) Or IsStockAvailable Then%>
<form name="frmBasket" class="form-inline" action="<%=GetProductLink(AProductCode)%>" method="post" style="margin-bottom: 10px">
<%ShowProductOptions AProductID%>
<div id="ajax-info" class="price-total" style="margin-top: 5px; margin-bottom: 10px">
</div>
<%If LStockInfo <> "" Then%>
<%' (SS,11/10/22) added this additional more prominent Pay in 3 banner
' (SS,21/2/24) removed
%>
<!--
<div style="margin-top:10px; margin-bottom:10px" data-pp-message data-pp-style-layout="flex" data-pp-style-ratio="8x1" data-pp-style-color="blue" data-pp-amount="0"></div>
-->
<%
' (SS,21/2/24) replaced with less prominent banner
' removed <h3 style="margin-top:0px; margin-bottom:0px; background-color: #dc3545!important; padding: 1rem!important; color: #fff!important;"> =LStockInfo </h3>
' (SS,29/2/24) reverted back from <div class="stock-info">..</div>
If LStrongHighlight Then%>
<div style="margin-bottom:10px">
<h3 style="margin-top:0px; margin-bottom:0px; background-color: #dc3545!important; padding: 1rem!important; color: #fff!important;"><%=LStockInfo%></h3>
<small>All items sent together. Actual delivery depends on item with greatest lead time.</small>
</div>
<%Else ' as before %>
<h3 style="margin-top:0px"><%=LStockInfo%></h3>
<%End If%>
<%End If%>
<div class="form-group">
Quantity<br>
<select class="form-control" name="qty">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select>
</div>
</form>
<button class="btn btn-default btn-success btn-lg" onclick="<%=GetBuyOLink(AProductID)%>"><span class="glyphicon glyphicon-shopping-cart"></span> Add to Basket</button>
<%Else%>
<h3 style="margin-top:0px"><%=LStockInfo%></h3>
<%ShowStockNotificationLink(AProductCode)%>
<%End If%>
<%End If%>
<%CustomShowHolidayNotice "P", AProductID%>
<div style="margin-top: 10px">
<!-- accordian panel panes -->
<div class="panel-group" id="accordion">
<%ShowProductDescriptionSections(AProductDesc)%>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseReviews">
<i class="glyphicon glyphicon-chevron-down" style="margin-right:10px"></i>Reviews</a>
<%If LReviewCount > 0 Then%>
<span itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<%End If%>
<span class="badge" style="background-color: grey"><%If LReviewCount > 0 Then%><span itemprop="reviewCount"><%End If%><%=LReviewCount%><%If LReviewCount > 0 Then%></span><%End If%></span>
<%If LReviewCount > 0 Then%>
<meta itemprop="ratingValue" content="<%=LReviewRating%>" />
<%End If%>
<%ShowReviewRatingStars LReviewRating, "" ' (SS,21/2/24) added "" for options%>
<%If LReviewCount > 0 Then%>
</span>
<%End If%>
</h4>
</div>
<div id="collapseReviews" class="panel-collapse collapse<%=IIf(InWriteReview, " in", "")%>">
<div class="panel-body">
<!--
<div class="<%=GetActiveClass("product-detail-tab-heading", InShowReviews Or InWriteReview)%>">
<%If LReviewCount > 0 Then
Response.Write(AddHRefIfTrue("Reviews", GetShowReviewsLink(AProductCode), Not InShowReviews And Not InWriteReview))
ShowReviewRatingV2 AProductCode, False, True, "num"
Else
Response.Write(AddHRefIfTrue("Add Review", GetWriteReviewLink(AProductCode), Not InShowReviews And Not InWriteReview))
End If%>
</div>
-->
<%WriteReview(AProductCode)%>
<a id="reviews"></a>
<%ShowReviews(AProductCode)%>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseRelated">
<i class="glyphicon glyphicon-chevron-down" style="margin-right:10px"></i>Related Products</a>
<span id="related-product-count" class="badge" style="background-color: grey">0</span>
</h4>
</div>
<div id="collapseRelated" class="panel-collapse collapse">
<div class="panel-body">
<%ShowRelatedProducts(AProductCode)%>
<%ShowViewOtherProducts(AProductCode)%>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--/price and description etc -->
</div>
<!-- END OF PRODUCT DETAIL -->
<!-- product option change -->
<script>
// globals holding selected values
ITP_sections = "";
ITP_paint_finish = "";
function itp_product_option_change(AType, AOption) {
if (AType == 'sections') {
ITP_sections = AOption.value;
}
else if (AType == 'paint finish') {
if (AOption.value != "") {
ITP_paint_finish = AOption.options[AOption.selectedIndex].text;
}
else {
ITP_paint_finish = "";
};
};
// alert("ITP_sections: " + ITP_sections + "\n" + "ITP_paint_finish: " + ITP_paint_finish);
//alert($('#productid').val());
//alert(frmBasket.productid.value);
$.get('ajax.asp?cmd=custom&options=productprice&productid=' + frmBasket.productid.value + '§ions=' + ITP_sections + '&paintfinish=' + ITP_paint_finish,
function(data) {
$("#ajax-info").html(data);
}
);
}
</script>
<%
' (SS,24/10/14) if in write review i.e. cmd=writereview then move to this section
If InWriteReview Then%>
<script type="text/javascript">
$(function() {
$(document).scrollTop( $("#collapseReviews").offset().top );
});
</script>
<%End If%>
<%
' (SS,21/2/24)
ShowBTUCalculatorModal
' (SS,13/9/14) destroy the object created at the start
Set oProductDetail = Nothing
End Sub
' (SS,22/8/14)
' (SS,23/10/14) added InWriteReview
' (SS,19/2/16) added rich snippet tag for ASectionDesc
' (SS,20/6/24) added ShowProductFiles
Sub ShowProductDetailDescriptionSection(ASectionDesc, ASectionName, AFirstSection)
Dim LSectionAnchorName
LSectionAnchorName = "collapse" & Replace(ASectionName, " ", "") ' removes spaces from name
' (SS,17/2/16) for first section, i.e. Description and the rich snippet tag
If AFirstSection Then
' (SS,19/2/16) replaced span with div, because <ul>'s can't be inside spans according to W3C validator
ASectionDesc = "<div itemprop=""description"">" & ASectionDesc & "</div>"
End If
%>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#<%=LSectionAnchorName%>">
<i class="glyphicon glyphicon-chevron-<%=IIf(AFirstSection, "up", "down")%>" style="margin-right:10px"></i><%=ASectionName%>
</a>
</h4>
</div>
<div id="<%=LSectionAnchorName%>" class="panel-collapse collapse<%=IIf(AFirstSection And Not InWriteReview, " in", "")%>">
<div class="panel-body">
<%=ASectionDesc%>
<%If AFirstSection And oProductDetail.Dimensions <> "" Then%>
<p><b>Dimensions:</b> <%=oProductDetail.Dimensions%></p>
<%End If%>
<%If AFirstSection Then%>
<%ShowProductFiles(GetProductCode)%>
<%End If%>
<%If AFirstSection Then
' (SS,15/9/17) show top 3 reviews at bottom of product description
ShowProductReviewsInDesc GetProductCode, 3
' (SS,21/6/23) Instagram customer photos
' If InStr("," + "CDC-760,CDC-SHT-ASCOT,CDC-660,CDC-WARKTRV-ANTBR" + ",", "," + oProductDetail.ProductCode + ",") > 0 Then
%>
<div id="flocker-header" style="display: none"><hr>
<h4>Recent customer photos</h4>
</div>
<div id="flockler-embed-188de9a0a4d0ca28b3959a9a01dfa384"></div>
<style>
.flockler-carousel_v2-item__cta-wrapper {
display:none !important;
}
</style>
<script>
var _flocklerOverride = _flocklerOverride || {};
_flocklerOverride['188de9a0a4d0ca28b3959a9a01dfa384'] = {
tags: ['<%=oProductDetail.ProductCode%>']
};
</script>
<script src="https://plugins.flockler.com/embed/188ddd645f70a27502c5642acd919e5d/188de9a0a4d0ca28b3959a9a01dfa384" async></script>
<%
' End If
End If%>
</div>
</div>
</div>
<script>
(function() {
let interval;
interval = window.setInterval(
function() {
const el = document.querySelector('[id^="flockler-embed-"] article');
if (el) {
const heading = document.querySelector('#flocker-header');
if (heading) {
heading.style.display = 'inline';
window.clearInterval(interval);
interval = null;
}
}
},
300
);
setTimeout(function() {
if (interval) window.clearInterval(interval);
}, 6000);
})();
</script>
<%
End Sub
Sub ShowProductDetailViewOtherProductsHeader
%>
<div id="product-detail-other-products">
<h3>View other products in</h3>
<%
End Sub
Sub ShowProductDetailViewOtherProductsItem(AGroup, ACategory, ASubcategory)
%>
<div class="product-detail-other-products-single">
<%ShowCategoryAndSubcategoryWithLink AGroup, ACategory, ASubcategory%>
</div>
<%
End Sub
Sub ShowProductDetailViewOtherProductsFooter
%>
</div> <!-- end #product-detail-other-products -->
<%
End Sub
Sub ShowProductMoreImagesHeader
%>
<%
End Sub
' (SS,25/02/10) modified to work with Magic Zoom Plus
' (SS,24/5/11) changed class="MagicThumb" rel="zoom-id:Zoomer;"
' to class="MagicThumb" rel="zoom-id:Zoomer; group:Zoomer;"
' fix first thumbnail not having previous/next arrows
' (SS,7/11/11) changes to work with Magic Zoom Plus 4.04
' (SS,18/8/14) new Bootstrap RWD version, this is version 2 which has ACaption as a parameter, and APictureID instead of AProductCode, also AMaxImageCount, calls GetProductImageLinkForPictureID instead of GetProductImageLinkWithImageNo
' (SS,01/03/15) added alt attribute to "img src" to get rid of W3C validation error
' (SS,14/7/23) added width and height to images to help reduce CLS (Cumulative Layout Shift) on Desktop
Sub ShowProductMoreImagesItem(APictureID, AImageNo, AMaxImageCount, ACaption)
%>
<a class="thumbnail MagicThumb magiczoom_thumbnailsmall" href="<%=GetProductImageLinkForPictureID(APictureID, "o")%>" rel="zoom-id: Zoomer1; hint: false" rev="<%=GetProductImageLinkForPictureID(APictureID, "l")%>" title="<%=ACaption%>"><img src="<%=GetProductImageLinkForPictureID(APictureID, "s")%>" alt="<%=ACaption%>" width="67" height="67"></a>
<%
End Sub
Sub ShowProductMoreImagesFooter
%>
<%
End Sub
Sub ShowProductFilesHeader_old
%>
<table width="100%" border="0" cellspacing="0" cellpadding="8">
<tr>
<td>more details</td>
</tr>
<%
End Sub
Sub ShowProductFilesHeader
%>
<table width="100%" border="0" cellspacing="0" cellpadding="8">
<%
End Sub
Sub ShowProductFilesItem_old(AProductCode, AFileName, LFileNameNoExt, AFileNo, AFileType, AFileSize)
%>
<tr>
<td><a href="<%=GetProductFileLink(AProductCode, AFileNo)%>"><%=LFileNameNoExt%></a></td>
</tr>
<%
End Sub
' (SS,20/6/24) changed to add PDF icon and remove file size (old version above)
Sub ShowProductFilesItem(AProductCode, AFileName, LFileNameNoExt, AFileNo, AFileType, AFileSize)
%>
<tr>
<td>
<td>
<a href="<%=GetProductFileLink(AProductCode, AFileNo)%>">
<img src="/images/pdf-icon.png"> <%=LFileNameNoExt%></a></td>
</tr>
<%
End Sub
Sub ShowProductFilesFooter
%>
</table>
<%
End Sub
' (SS,12/9/14) removed "<h3>You may also be interested in</h3>"
Sub ShowProductRelatedHeader
ClearCounter ' (SS,13/9/14)
%>
<div class="row">
<div id="product-detail-related-items">
<%
End Sub
' (SS,6/7/10) replaced GetProductLink with GetProductLinkWithName for SEO
' (SS,12/9/14) changes for Bootstrap
Sub ShowProductRelatedItem(AProductCode, AProductName, AProductDescription)
IncCounter ' (SS,13/9/14)
%>
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
<div class="product-detail-related-item" style="border: 1px dashed #f4f4f4; padding: 10px">
<div class="product-detail-related-item-image">
<a href="<%=GetProductLinkWithName(AProductCode, AProductName)%>"><%=GetProductImgSrcThumbnailSmall(AProductCode, AProductName)%></a>
</div>
<div class="product-detail-related-item-name" style="height: 3em">
<a href="<%=GetProductLinkWithName(AProductCode, AProductName)%>"><%=AProductName%></a>
</div>
<div class="product-detail-related-item-price-section">
<div class="product-detail-related-item-add-button pull-left">
<%If InStock(GetNumInStock) Or IsStockAvailable Then%>
<a href="<%=GetBuyLink(AProductCode)%>" class="btn btn-primary btn-sm" role="button" style="margin-right: 10px; margin-top: 5px">Add</a>
<%End If%>
</div>
<div class="product-detail-related-item-price-info">
Price: <% ShowProductPriceV2 CorrectCurrencyNV(GetSalePrice), CorrectCurrencyNV(GetStdPrice), True, False, "" %>
</div>
</div>
<div class="product-detail-related-item-stock-info">
<%=GetStockInfo%>
</div>
</div>
</div><!--col-->
<%
End Sub
' (SS,13/9/14) set the count in the header
Sub ShowProductRelatedFooter
%>
</div> <!-- end #product-detail-related-items -->
</div><!--row-->
<script>
document.getElementById("related-product-count").innerHTML = '<%=GetCounter%>';
</script>
<%
End Sub
' (SS,21/2/24)
Sub ScriptGoToReviews
%>
<script>
$('.review-rating-text-big').click(function(e) {
$('#collapseReviews').collapse('show');
window.location = "#reviews";
});
</script>
<%
End Sub
' (SS,21/2/24) show modal, and select the number of sections >= calculated BTU
' some help from https://stackoverflow.com/questions/13343566/set-select-option-selected-by-value
Sub ScriptBTUCalc_old
%>
<script>
$('#btnBTUCalc').click(function (e) {
e.preventDefault();
$('#modal-content-btucalc').modal({
show: true
});
});
$('#modal-content-btucalc').on('hidden.bs.modal', function () {
LSectionsCombo = $('[name^="option-"]');
LComboName = LSectionsCombo.attr('name')
// alert(LComboName);
var LValueToSelect = "";
LCalculatedBTU = parseInt($('#calculatedBTU').val());
if (LCalculatedBTU) {
// alert(LCalculatedBTU);
var LSelected = false;
$('[name^="' + LComboName + '"] > option').each(function() {
var LText = this.text
var splitStr = LText.substring(LText.indexOf('mm ') + 3);
var LBTU = parseInt(splitStr);
if (LBTU >= LCalculatedBTU) {
// alert(LBTU);
LValueToSelect = this.value;
LSelected = true;
return false;
}
});
if (LValueToSelect != "") {
$('[name="' + LComboName + '"]').val(LValueToSelect).change();
}
$("#CalculatedBTU").text("Calculated: " + LCalculatedBTU + " BTU");
if (LSelected) {
$("#BTUOK").removeClass("hidden");
}
else {
$("#BTUOK").addClass("hidden");
}
}
});
</script>
<%
End Sub
Sub ScriptBTUCalc
%>
<script>
$('#btnBTUCalc').click(function (e) {
e.preventDefault();
$('#modal-content-btucalc').modal({
show: true
});
});
$('#modal-content-btucalc').on('hidden.bs.modal', function () {
LSectionsCombo = $('[name^="option-"]');
LComboName = LSectionsCombo.attr('name')
// alert(LComboName);
var LValueToSelect = "";
LCalculatedBTU = parseInt($('#calculatedBTU').val());
if (LCalculatedBTU) {
// alert(LCalculatedBTU);
var LSelected = false;
/* (SS,4/3/24) commented out following combo selection code until further notice
$('[name^="' + LComboName + '"] > option').each(function() {
var LText = this.text
var splitStr = LText.substring(LText.indexOf('mm ') + 3);
var LBTU = parseInt(splitStr);
if (LBTU >= LCalculatedBTU) {
// alert(LBTU);
LValueToSelect = this.value;
LSelected = true;
return false;
}
});
*/
if (LValueToSelect != "") {
$('[name="' + LComboName + '"]').val(LValueToSelect).change();
}
$("#CalculatedBTU").text("Calculated: " + LCalculatedBTU + " BTU / " + parseInt($('#calculatedWatts').val()) + " Watts");
if (LSelected) {
$("#BTUOK").removeClass("hidden");
}
else {
$("#BTUOK").addClass("hidden");
}
}
});
</script>
<%
End Sub
' --- END OF PRODUCT DETAIL TEMPLATES --- '
%>