HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/web/castironradiatorcentre/changes prev/2021-04-23/new/inc-template-email-html.asp
<%
' === COMMON TEMPLATE (SAME FOR ALL SHOPPING SITES) ===

' inc-template-email-html.asp 08/06/07
' (SS,19/03/09) in Sub ShowEmailAddressDetails changed "Invoice Address" to "Billing Address"
' (SS,20/04/09) to Sub ShowEmailOrderHeader added AMobile, ADeliveryDate & AVoucherCode
' added AIsDiscount and ADiscount to Sub ShowEmailOrderFooter 
' added href to web address in footer
' (SS,29/05/09) changes to ShowEmailAddressDetails and ShowEmailFooter, added OrderStatus to ShowEmailOrderHeader
' (SS,02/11/09) changed to ShowEmailOrderHeader
' (SS,19/03/10) added language translation using calls to tr function
' (SS,15/02/11) sorted issue with column sizes in Outlook 2007/2010, added product link, swapped Code and Product Name column order
' (SS,06/07/11) added AProductID and AOptionsList to Sub ShowEmailOrderItem
' (SS,19/09/11) changed Order Reference to Order/Invoice No
' (SS,22/05/12) change to ShowEmailHeader to always use text rather than logo in header, i.e. changed "If AForEmail Then" to "If True Then"
' (SS,02/11/12) change to ShowEmailOrderFooter to not show VAT if label is blank
' (SS,08/03/13) changed width of cell in ShowEmailFooter for telephone/email/website from 220 to 250
' (SS,18/11/13) removed HTML comments e.g. START/END OF HEADER etc. in case it affects the spam score. Had also removed the Google Analytics javascript code from AppUtils.asp for every page except products.asp.
' (SS,18/11/13) replaced all <br> with <br /> because doc type changed to "-//W3C//DTD XHTML 1.0 Transitional//EN
' (SS,18/11/13) replaced all nowrap in td with style="white-space: nowrap", nowrap deprecated in HTML 4.01
' (SS,18/11/13) various corrections to ensure that passes W3C validation at http://validator.w3.org/
' (SS,03/07/14) positive discount now shown as adjustment, change to Sub ShowEmailOrderFooter
' (SS,30/10/15) changes to Sub ShowEmailFooter, needs latest apputils.asp (dated from this date onwards)
' (SS,04/04/17) change to Sub ShowEmailFooter, improved print preview to also close the window
' (SS,08/07/17) change to Sub ShowEmailOrderHeader to always show GBP Total for multicurrency sites (e.g. HF)
' (SS,12/03/18) Major change to return a string instead of direct HTML rendering
'               To fix issue when use of itpEmailer.dll was resulting in empty attachment in Outlook 2017 (and some other email clients)
'               On some email clients customers were seeing just an attached file.
'               Fixed by rewriting all the "ShowEmail.." sub routines as "GetOrderEmail..." functions.
'               Rather than fetching a webpage to get the email text, we can now build the content as a string using function calls.
' (SS,19/11/20) Minor width adjustment to Function GetOrderEmailFooter
' (SS,22/12/20) Added EORI No to Function GetOrderEmailFooter
' (SS,16/02/21) Added XI EORINo to Function GetOrderEmailFooter, also added AEORINumber and AXIEORINumber to Function GetOrderEmailHeaderDetail
' (SS,22/04/21) Change to Function GetOrderEmailFooterDetails, replaced tr("Delivery") with GetDeliveryOptionLabel to show Expedited or Tracked Delivery for HF


' (SS,22/5/09) removed AFullName parameter, section moved to footer, added ATitle parameter to replace "Order Confirmation"
' (SS,1/6/09) added AForEmail
' (SS,9/3/18) rewrote Sub ShowEmailHeader as Function GetOrderEmailHeader to return a string instead of direct HTML
Function GetOrderEmailHeader(ATitle, AForEmail) 
  Dim LResult 
  LResult = ""

  ' (SS,12/3/18) following taken from order-details.asp to complete the HTML page
  LResult = LResult &_
"<!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">" & NL &_
"<html xmlns=""http://www.w3.org/1999/xhtml"">" & NL &_
"<head>"& NL  
  ' if called from order-details.asp page (i.e. not for emailing) then disable the cache so that latest version is fetched
  ' I think this needs to be just after the <head> tag to work best
  If Not AForEmail Then
    DisableCache
  End If
  LResult = LResult &_
"<meta http-equiv=""Content-Type"" content=""text/html; charset=iso-8859-1"" />" & NL &_
"<title>" & tr("Order Details") & "</title>" & NL &_
"</head>" & NL &_
"<body>" & NL &_
"<div>" & NL
  
  ' (SS,13/3/18) HTMLEncode used because ATitle may contain an ampsersand
  LResult = LResult &_
"<table width=""97%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""10"">" & NL &_
"<tr>" & NL &_
"  <td style=""font-size: 24px; font-weight: bold; font-family: Verdana; color: #000000;"">" & GetStoreName & "</td>" & NL &_
"  <td align=""right"" style=""font-size: 24px; font-family: Verdana; color: #0066CC;"">[" & HTMLEncode(ATitle) & "]</td>" & NL &_
"</tr>" & NL &_
"<tr>" & NL &_
"  <td colspan=""2""><hr noshade=""noshade"" size=""2"" /></td>" & NL &_
"</tr>" & NL &_
"</table>" & NL
  
  GetOrderEmailHeader = LResult
End Function

' (SS,29/5/09) replaced parameters AInvoiceAddress, ADeliveryAddress with AAddress1Title, AAddress1, AAddress2Title, AAddress2
' (SS,9/3/18) rewritten to return as string, also renamed from Sub ShowEmailAddressDetails to Function GetOrderEmailAddressDetails
Function GetOrderEmailAddressDetails(AAddress1Title, AAddress1, AAddress2Title, AAddress2)
  Dim LResult
  
  LResult = "" &_
"<table width=""97%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""8"">" & NL &_
"<tr>" & NL &_
"  <td style=""font-size: 16px; font-family: Verdana; color: #0066CC;"" width=""50%""><b>" & AAddress1Title & "</b></td>" & NL &_
"  <td style=""font-size: 16px; font-family: Verdana; color: #0066CC;"" width=""50%""><b>" & AAddress2Title & "</b></td>" & NL &_
"</tr>" & NL &_
"<tr>" & NL &_
"  <td valign=""top"">" & NL &_
"    <table width=""100%"" cellpadding=""8"" cellspacing=""0"" style=""border: 2px solid #0066CC"">" & NL &_
"    <tr style=""font-size: 12px; font-family: Verdana;"">" & NL &_
"    <td height=""112"" valign=""top"" bgcolor=""#ECF5FF"">" & NL &_
    AAddress1 & NL &_
"    </td>" & NL &_
"    </tr>" & NL &_
"    </table>" & NL &_
"  </td>" & NL &_
"  <td valign=""top"">" & NL &_
"    <table width=""100%"" cellpadding=""8"" cellspacing=""0"" style=""border: 2px solid #0066CC"">" & NL &_
"    <tr style=""font-size: 12px; font-family: Verdana;"">" & NL &_
"      <td height=""112"" valign=""top"" bgcolor=""#ECF5FF"">" & NL &_
    AAddress2 & NL &_
"      </td>" & NL &_
"    </tr>" & NL &_
"    </table>" & NL &_
"  </td>" & NL &_
"</tr>" & NL &_
"</table>" & NL 
  GetOrderEmailAddressDetails = LResult
End Function

' (SS,20/4/09) added AMobile, ADeliveryDate & AVoucherCode
' (SS,29/5/09) added AStatus
' (SS,1/6/09) added APaymentMethod, APaymentReference
' (SS,2/11/09) increased width of price column from 90 to 100 to allow for size "VAT Deducted" or "Included" label which appears for some customers
' (SS,15/2/11) Changed widths from 50, 0%, 80, 100, 80 to 1%, 0% was just removed, to fix issue in Outlook 2007 and 2010 where columns sizes were incorrect
' (SS,8/8/17) Added new AGBPGrandTotal parameter shown for multicurrency sites
' (SS,9/3/18) rewritten to return as string, also renamed from Sub ShowEmailOrderHeader to Function GetOrderEmailHeaderDetails
' (SS,16/2/21) added AEORINumber and AXIEORINumber
Function GetOrderEmailHeaderDetails(AOrderNo, AOrderDate, AOrderStatus, AAccountID, APurchaseOrderNo, AMessage, ATelephone, AMobile, AEmailAddress, AVATNumber, AEORINumber, AXIEORINumber, ADeliveryDate, AVoucherCode, APaymentMethod, APaymentReference, AGBPGrandTotal)
  Dim LResult
  
  LResult = "" &_
"<table width=""97%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""10"">" & NL &_
"<tr>" & NL &_
"  <td>" & NL &_
"    <table width=""100%"" border=""0"" align=""center"" cellpadding=""3"" cellspacing=""2"">" & NL

  LResult = LResult & GetOrderEmailHeaderDetailLine("Order/Invoice No", AOrderNo, "Account ID", AAccountID)
  LResult = LResult & GetOrderEmailHeaderDetailLine("Order Date", AOrderDate, "Payment Method", APaymentMethod)
  LResult = LResult & GetOrderEmailHeaderDetailLine("Order Status", AOrderStatus, "Payment Reference", APaymentReference)
  If IsMulticurrency Then LResult = LResult & GetOrderEmailHeaderDetailLine("GBP Grand Total", AGBPGrandTotal, "", "")
  LResult = LResult & GetOrderEmailHeaderDetailLine("Purchase Order No", APurchaseOrderNo, "", "")
  LResult = LResult & GetOrderEmailHeaderDetailLine("VAT Number", AVATNumber, "", "")
  
  ' (SS,16/2/21)
  LResult = LResult & GetOrderEmailHeaderDetailLine("EORI  Number", AEORINumber, "XI EORI  Number", AXIEORINumber)
  
  LResult = LResult & GetOrderEmailHeaderDetailLine("Telephone", ATelephone, "Email", AEmailAddress)
  LResult = LResult & GetOrderEmailHeaderDetailLine("Mobile", AMobile, "", "")  
  If ChooseDeliveryDate Then LResult = LResult & GetOrderEmailHeaderDetailLine("Delivery Date", ADeliveryDate, "", "")    
  LResult = LResult & GetOrderEmailHeaderDetailLine("Voucher Code", AVoucherCode, "", "") 
  LResult = LResult & GetOrderEmailHeaderDetailLine("Message", AMessage, "", "")
  
  LResult = LResult &_
"    </table>" & NL &_
"    </td>" & NL &_
"</tr>" & NL &_
"</table>" & NL

  LResult = LResult &_
"<table width=""97%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""10"">" & NL &_
"<tr>" & NL &_
"  <td>" & NL &_
"    <table width=""100%"" align=""center"" cellpadding=""3"" cellspacing=""2"">" & NL &_
"    <tr style=""font-size: 12px; font-family: Verdana;"">" & NL &_
"      <td width=""1%"" align=""center"" style=""white-space: nowrap"" bgcolor=""#CAE8FF""><b>" & tr("Qty") & "</b></td>" & NL &_
"      <td width=""1%"" style=""white-space: nowrap"" bgcolor=""#CAE8FF""><b>" & tr("Code") & "</b></td>" & NL &_
"      <td bgcolor=""#CAE8FF""><b>" & tr("Product Name") & "</b></td>" & NL &_
"      <td width=""1%"" align=""right"" style=""white-space: nowrap"" bgcolor=""#CAE8FF""><b>" & tr("Price") & "</b></td>" & NL &_
"      <td width=""1%"" align=""right"" style=""white-space: nowrap"" bgcolor=""#CAE8FF""><b>" & tr("Total") & "</b></td>" & NL &_
"    </tr>" & NL

  GetOrderEmailHeaderDetails = LResult
End Function

Function GetOrderEmailHeaderDetailLine(ALabel1, AValue1, ALabel2, AValue2)
  Dim LResult
  LResult = ""
  If AValue1 <> "" Or AValue2 <> "" Then
    LResult = LResult & "<tr style=""font-size: 12px; font-family: Verdana;"">" & NL
    
    LResult = LResult & GetOrderEmailHeaderDetailLineCell(ALabel1, AValue1)
    LResult = LResult & GetOrderEmailHeaderDetailLineCell(ALabel2, AValue2)

    LResult = LResult & "</tr>" & NL    
  End If
    
  GetOrderEmailHeaderDetailLine = LResult   
End Function  

Function GetOrderEmailHeaderDetailLineCell(ALabel, AValue)
  Dim LResult
  If ALabel <> "" And AValue <> "" Then
    LResult = "<td style=""white-space: nowrap"" width=""10%""><b>" & tr(ALabel) & ":</b></td><td width=""40%"">" & AValue & "</td><td>&nbsp;</td>" & NL
  Else
    LResult = "<td colspan=""2"">&nbsp;</td>" & NL
  End If
  GetOrderEmailHeaderDetailLineCell = LResult
End Function

' (SS,15/2/11) added nowraps, also added product link, also swapped Code and Product Name column order
' (SS,6/7/11) added AProductID and AOptionsList
' (SS,9/3/18) renamed from Sub ShowEmailOrderItem, now returns a string instead of direct rendering
Function GetOrderEmailProductItem(AProductID, AProductCode, AProductName, AOptionsList, AQty, APriceEach, APriceTotal)
  Dim LResult
  LResult = "" &_
"    <tr style=""font-size: 12px; font-family: Verdana;"">" & NL &_
"      <td align=""center"" style=""white-space: nowrap"" bgcolor=""#F0F4F7"">" & AQty & "</td>" & NL &_
"      <td style=""white-space: nowrap"" bgcolor=""#F0F4F7""><a href=""" & GetFullProductLink(AProductCode) & """>" & AProductCode & "</a></td>" & NL &_
"      <td bgcolor=""#F0F4F7""><a href=""" & GetFullProductLink(AProductCode) & """>" & AProductName & "</a>"
  If AOptionsList <> "" Then
    LResult = LResult & "<br /><span style=""font-size: 10px"">" & AOptionsList & "</span>"
  End If
  LResult = LResult &_  
"      </td>" & NL &_
"      <td align=""right"" style=""white-space: nowrap"" bgcolor=""#F0F4F7"">" & APriceEach & "</td>" & NL &_
"      <td align=""right"" style=""white-space: nowrap"" bgcolor=""#F0F4F7"">" & APriceTotal & "</td>" & NL &_
"    </tr>" & NL
  GetOrderEmailProductItem = LResult    
End Function


' (SS,20/4/09) added AIsDiscount and ADiscount
' (SS,2/11/12) added 'And VATLabel <> ""' because VAT Deducted is no longer shown
' (SS,3/7/14) positive discount now shown as adjustment
' (SS,9/10/14) added GetDeliveryInfo
' (SS,9/3/18) renamed from Sub ShowEmailOrderFooter, now returns a string instead of direct rendering
' (SS,22/4/21) replaced tr("Delivery") with GetDeliveryOptionLabel 
Function GetOrderEmailFooterDetails(ASubtotal, AIsDiscount, ADiscount, ADelivery, AVATLabel, AVATAmount, AGrandTotal, ATotalWeight)
    Dim LResult
    LResult = ""
    
    LResult = LResult & GetOrderEmailFooterDetailLine(False, "", tr("Subtotal"), ASubtotal)
    
    If AIsDiscount Then
      Dim ADiscountLabel
      If InStr(ADiscount, "-") > 0 Then ' ADiscount is a string
        ADiscountLabel = tr("Discount") ' as before
      Else ' positive then show as adjustment
        ADiscountLabel = tr("Adjustment")         
      End If    
      LResult = LResult & GetOrderEmailFooterDetailLine(False, "", ADiscountLabel, ADiscount)
    End If
    
    LResult = LResult & GetOrderEmailFooterDetailLine(False, GetDeliveryInfo, GetDeliveryOptionLabel, ADelivery)
    
    If IsVATRegistered And AVATLabel <> "" Then LResult = LResult & GetOrderEmailFooterDetailLine(False, "", AVATLabel, AVATAmount)
    
    LResult = LResult & GetOrderEmailFooterDetailLine(True, "", tr("Grand Total"), AGrandTotal)
    
    If Not IsNull(ATotalWeight) Then LResult = LResult & GetOrderEmailFooterDetailLine(False, "", tr("Total Weight"), ATotalWeight) 

  LResult = LResult &_    
"    </table>" & NL &_
"  </td>" & NL &_
"</tr>" & NL &_
"</table>"

  GetOrderEmailFooterDetails = LResult
End Function

' (SS,9/3/18)
Function GetOrderEmailFooterDetailLine(AHighlight, AValue1, AValue2, AValue3)
  Dim LResult
  LResult = ""
  If AValue1 <> "" Or AValue2 <> "" Then
    LResult = LResult & "<tr style=""font-size: 12px; font-family: Verdana;"">" & NL
    
    LResult = LResult & GetOrderEmailFooterDetailLineCell(1, AValue1, AHighlight)
    LResult = LResult & GetOrderEmailFooterDetailLineCell(2, AValue2, AHighlight)
    LResult = LResult & GetOrderEmailFooterDetailLineCell(3, AValue3, AHighlight)

    LResult = LResult & "</tr>" & NL    
  End If
    
  GetOrderEmailFooterDetailLine = LResult   
End Function  

' (SS,9/3/18)
Function GetOrderEmailFooterDetailLineCell(ANo, AValue, AHighlight)
  Dim LResult 
  If ANo = 1 Then
    If AValue <> "" Then   
      LResult = "<td colspan=""2"">&nbsp;</td>" & NL
      LResult = LResult & "<td>" & AValue & "</td>"  & NL
    Else
      LResult = "<td colspan=""3"">&nbsp;</td>" & NL
    End If
  Else ' i.e. 2 or 3
    Dim LBGColour, LBoldText
    If AHighlight Then
      LBGColour = "#CAE8FF"
    Else
      LBGColour = "#F0F4F7"
    End If
    If ANo = 2 Or (ANo = 3 And AHighlight) Then ' 2nd column or (3rd column and highlight i.e. Grand Total) then bold text
      LBoldText = ";font-weight: bold"
    Else
      LBoldText = ""
    End If
    LResult = "<td align=""right"" style=""white-space: nowrap" & LBoldText & """ bgcolor=""" & LBGColour & """>" & AValue & "</td>"
  End If
  GetOrderEmailFooterDetailLineCell = LResult
End Function 

' (SS,22/5/09) added AFullName, also changed text "Please check the following order information:" to "Please check your order details above."
' (SS,29/5/09) added APrintPreview
' (SS,16/2/11) improved text for English, using function IsEnglish to check if English
' (SS,8/3/13) changed width of cell for telephone/email/website from 220 to 250
' (SS,23/10/15) change to not use the default when EmailUseMessageToCustomerForDespatch
' (SS,30/10/15) moved some of the code to apputils.asp
' (SS,04/04/17) improved print preview to also close the window
' (SS,9/3/18) renamed from Sub ShowEmailFooter, now returns a string instead of direct rendering
' (SS,19/11/20) adjusted width from 250 to 260 due to website name wrapping after W: to next line for CIRC
' (SS,22/12/20) added GetStoreEORINo, removed one of the <br>'s
' (SS,16/2/21) added GetStoreXIEORINo
Function GetOrderEmailFooter(AFullName, AMessage, APrintPreview)
	Dim LResult, LEmailLink ' (SS,16/2/11) added because now in two places
	LEmailLink = "<a href=""mailto:" + GetStoreEmail + """>" + GetStoreEmail + "</a>"
  LResult = "" &_
"<table width=""97%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""10"">" & NL &_
"<tr>" & NL &_
"  <td style=""font-size: 12px; font-family: Verdana;"">" & AMessage & "</td>" & NL &_
"</tr>" & NL &_
"</table>" & NL

  LResult = LResult &_
"<table width=""97%"" border=""0"" align=""center"" cellpadding=""0"" cellspacing=""10"">"  & NL &_
"<tr>" & NL &_
"  <td colspan=""2""><hr noshade=""noshade"" size=""2"" /></td>" & NL &_
"</tr>" & NL &_
"<tr style=""font-size: 11px; font-family: Verdana;"">" & NL &_
"  <td width=""260"" valign=""top"">" & NL &_
"  <p>" & NL

  If GetStoreTelephone <> "" Then
    LResult = LResult & "<b>T:</b> " & GetStoreTelephone & "<br />" & NL
  End If
  If GetStoreFax <> "" Then
    LResult = LResult & "<b>F:</b> " & GetStoreFax & "<br />" & NL
  End If
  LResult = LResult &_
"  <b>E:</b> " & LEmailLink & "<br />" & NL &_
"  <b>W:</b> <a href=""" & GetStoreURL & """>" & GetStoreURLNoHttp & "</a><br />" & NL &_
"  </p>" & NL &_
"  </td>" & NL &_
"  <td align=""right"" valign=""top"">" & NL &_
  GetStoreAddress(True, True) & "<br />" & NL
  If GetStoreVATRegNo <> "" Then
    LResult = LResult & "  <b>"  & tr("VAT Reg No") & ":</b> " & GetStoreVATRegNo & NL
  End If
  ' (SS,22/12/20)
  If GetStoreEORINo <> "" Then
    LResult = LResult & "<br />" & "<b>"  & tr("EORI No") & ":</b> " & GetStoreEORINo & NL
  End If  
  ' (SS,22/12/20)
  If GetStoreXIEORINo <> "" Then
    LResult = LResult & "<br />" & "<b>"  & tr("XI EORI No") & ":</b> " & GetStoreXIEORINo & NL
  End If    
  LResult = LResult &_
"  </td>" & NL &_
"</tr>" & NL &_
"</table>" & NL

' (SS,29/3/17) now called from print order/invoice button in local mode
' now closes the window
' replaced window.print(); with following to close the window/tab
' window.onload = function() {
'    window.print(); 
'    setTimeout(window.close, 0);
' }
  If APrintPreview Then
    LResult = LResult &_
"<script type=""text/javascript"">" & NL &_
"  window.onload = function() {" & NL &_
"    window.print();" & NL &_
"    setTimeout(window.close, 0);" & NL &_
"  }" & NL &_
"</script>" & NL
  End If
  
  ' (SS,12/3/18) following taken from order-details.asp to complete the page
  LResult = LResult &_
"</div>" & NL &_
"</body>" & NL &_
"</html>"

  GetOrderEmailFooter = LResult
End Function

%>