%@ Language=VBScript %>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : Retrieve a customers Password and send via email
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
Option explicit
Response.Buffer = true
%>
<%
'*************************************************************************
' Function : Language definitions. The default definitions can be
' : replaced with your own.
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
const langErrConfig = "Could not load Store Configuration settings."
const langErrCartEmpty = "Your shopping cart is empty."
const langErrInvOrder = "Invalid Order Number."
const langErrInvRandKey = "Invalid Random Key."
const langErrMinPrice = "This store has a minimum purchase amount of "
const langErrInvForm = "Some errors were detected. Please correct and re-submit."
const langErrNotLoggedIn = "You need to be logged in to perform this function."
const langErrInvCustAcc = "Your account is no longer valid."
const langErrEmailUsed = "Your email address already exists. Use the 'Forgot your Password?' feature to retrieve your password to logon."
const langErrShipLoc = "We were unable to determine your Shipping Location."
const langErrShipZone = "We were unable to determine your Shipping Zone."
const langErrNoShipRate = "We were unable to calculate Shipping Rates for this order. Please contact us for assistance."
const langErrInvShipRate = "Invalid value in Shipping Rate table. Please contact us for assistance."
const langErrInvPayment = "Invalid Payment Method."
const langErrInvTax = "We were unable to calculate taxes for this order. Please contact us for assistance."
const langErrInvOrdStat = "Invalid Order Status."
const langErrInvProdID = "Invalid or Inactive Product."
const langErrMaxOrdQty = "Maximum order quantity has been exceeded."
const langErrReqOpt = "The following Option is Required : "
const langErrItemDelete = "Invalid Item selected for deletion."
const langErrInvDiscCode = "Discount Code invalid or inactive"
const langErrInvDiscAmt1 = "Requires sub total of "
const langErrInvDiscAmt2 = " to qualify"
const langErrInvQty = "Invalid Quantity."
const langErrMaxItemQty = "Maximum quantity per item is "
const langErrNoStock = "Quantity exceeds number of items in stock."
const langErrNoOrders = "No Orders were found."
const langErrInvSearch = "Invalid search criteria."
const langErrInvCategory = "Invalid Category."
const langErrNoRecFound = "No records were found matching your request."
const langErrInvParms = "Invalid Parameters."
const langErrInvFilename = "Invalid Filename."
const langErrDownNotPaid = "Download will be available as soon as payment has been received and confirmed."
const langErrDownMaxTimes = "You have reached the maximum number of times this item can be downloaded."
const langErrDownMaxHours = "You have reached the maximum number of hours this item can be downloaded."
const langErrInvRC4Key = "RC4Key not configured properly. See 'config.asp' file for instructions."
const langErrStoreClosed = "Store is temporarily closed for maintenance."
const langGenLogoffMsg = "You were successfully Logged Off. Thanks for visiting!"
const langGenSubject = "Subject"
const langGenExistCust = "Returning Customer"
const langGenNewCust = "New Customer"
const langGenEmail = "Email"
const langGenPassword = "Password"
const langGenLogon = "Log On"
const langGenForgetPass = "Forgot your Password?"
const langGenNewCustDesc = "If this is your first visit to our store, please click the button below."
const langGenCustInfo = "General Info"
const langGenNewAcc = "New Account"
const langGenModAcc = "Update Account"
const langGenStep = "Step"
const langGenName = "First Name"
const langGenLastName = "Last Name"
const langGenCompany = "Company"
const langGenPhone = "Phone"
const langGenNotifyMsg = "Notify me about special events at this store."
const langGenLearnMore = "Learn More"
const langGenBillAddr = "Billing Address"
const langGenAddress = "Address"
const langGenCity = "City"
const langGenZip = "Zip/PostCode"
const langGenState = "State/Province"
const langGenStateAlt = "State/Prov. not listed? Enter it below."
const langGenCountry = "Country"
const langGenPayment = "Payment"
const langGenPayPolicy = "Payment Policy"
const langGenShipAddr = "Shipping Address"
const langGenShipAddrOpt = "Only required if different from Billing Address."
const langGenNextBut = "Next >>"
const langGenNoShipCharge = "No Shipping Charge"
const langGenMetShip = "Shipping Method"
const langGenShipping = "Shipping"
const langGenPayDetail = "Payment Detail"
const langGenCCtype = "Card Type"
const langGenCCnumber = "Card Number"
const langGenCCexpire = "Expiration"
const langGenCCcvv = "Card Verification #"
const langGenCCname = "Name on Card"
const langGenMonth = "Month"
const langGenYear = "Year"
const langGenOptional = "Optional"
const langGenAddComment = "Additional Comments"
const langGenComments = "Comments"
const langGenCommentsHelp = "(Max 250 Chars)"
const langGenVerifyOrder = "Verify Order"
const langGenLocation = "Location"
const langGenQty = "Qty"
const langGenItemDesc = "Item Description"
const langGenSubTotal = "Sub Total"
const langGenDiscount = "Discount"
const langGenDiscCode = "Discount Code"
const langGenTax = "Tax"
const langGenTotal = "Total"
const langGenSaveOrder = "Save >>"
const langGenCancelOrder = "Cancel"
const langGenTOSmsg = "By continuing you agree to and accept our "
const langGenTOSlink = "Terms and Conditions"
const langGenOrderNumber = "Order Number"
const langGenSubmitPayment = "Submit Payment"
const langGenOrderSummary = "Order Summary"
const langGenFullName = "Name"
const langGenOrderDate = "Order Date"
const langGenPayNowMsg = "IMPORTANT : Click below to submit payment."
const langGenPayErrorHdr = "Payment Error or Cancellation."
const langGenPaySuccessHdr = "Thank you for your Order !"
const langGenYourAccount = "Your Account"
const langGenOrder = "Order"
const langGenSKU = "SKU"
const langGenLogoff = "Logoff"
const langGenOrderStatus = "Order Status"
const langGenClickOnOrder = "NOTE : Click on order number to view or retrieve order."
const langGenPassSentMsg = "Thank you for your request. Your password was sent to your email address."
const langGenPassRequest = "Password Request"
const langGenSend = "Send"
const langGenDownload = "Download"
const langGenOrdPendingMsg = "Your order will be completed when payment has been verified. Please check you order status regularly for changes."
const langGenReSubPay = "Re-submit payment?"
const langGenStoreComments = "Store Comments"
const langGenAdjustment = "Adjustment"
const langGenNotApplicable = "N/A"
const langGenViewMore = "View More"
const langGenOurPrice = "Price"
const langGenNoImage = "NO IMAGE"
const langGenEmailFriendHdr = "Email a Friend"
const langGenEmailFriendMsg = "Thank you. Your email was sent."
const langGenYourName = "Your Name"
const langGenFriendEmail = "Friend's Email"
const langGenMessage = "Message"
const langGenSearchFor = "You Searched For"
const langGenSpecials = "Specials"
const langGenYouAreAt = "You are at"
const langGenListPrice = "List Price"
const langGenYouSave = "You Save"
const langGenSelOptions = "Select Options"
const langGenNavPage = "Page"
const langGenNavBack = "Back"
const langGenNavNext = "Next"
const langGenInStock = "Item in stock!"
const langGenOutStock = "Out of stock"
const langGenRelatedProd = "Related Products"
const langGenCategory = "Category"
const langGenSearchRelated = "Search Related Products"
const langGenSystemMessage = "System Message"
const langGenShoppingCart = "Shopping Cart"
const langGenCart = "Cart"
const langGenAccount = "Account"
const langGenCheckout = "Checkout"
const langGenSearch = "Search"
const langGenClose = "Close"
const langGenStatUnfinal = "Unfinalized"
const langGenStatPending = "Pending"
const langGenStatPaid = "Scheduled to Deliver"
const langGenStatShipped = "Shipped"
const langGenStatComplete = "Complete"
const langGenStatCancel = "Cancelled"
const langGenStatUnknown = "Unknown"
const langGenReview = "Review"
const langGenReviewStars = "Stars (5=Best)"
const langGenProductReviews = "Product Reviews"
const langGenWriteReview = "Write a review"
const langGenAverageRating = "Average rating"
const langGenNumberReviews = "Number of reviews"
const langGenNotReviewedYet = "Not reviewed yet"
const langGenReviewAddedMsg = "Thank you! Your review will appear shortly."
const langGenClickToReturn = "Click HERE to return."
const langGenPrintVersion = "Printable version"
const langGenPrintMessage = "Please use your browser's Print function to print this page."
'ADDED - Version 2.2
const langErrAction = "Requested action is invalid."
const langGenHome = "Home"
const langGenCategories = "Categories"
const langGenAllCategories = "All Categories"
const langGenNewProd = "What's New"
const langGenTopSellers = "Top Sellers"
const langGenReadyToOrder = "Ready To Order?"
const langGenStatSaved = "Saved"
const langGenRetrieveCart = "Retrieve"
const langGenFreeShipping = "Free shipping for this item!"
const langGenAdvancedSearch = "Advanced Search"
const langGenSearchKeywords = "Keywords"
const langGenSearchMinPrice = "Min. Price"
const langGenSearchMaxPrice = "Max. Price"
const langGenSearchCat = "Search Category"
const langGenOf = "of"
const langGenSort = "Sort"
const langGenPrice = "Price"
const langGenOrderView = "View Order"
const langGenContactUsHdr = "Contact Us"
const langGenContactUsMsg = "Thank you. Your email was sent."
const langGenProdInquiry = "Product Inquiry"
const langGenGeneralInquiry = "General Inquiry"
const langGenTo = "To"
const langGenHandlingFeeMsg = "Handling fee that will be added to shipping"
const langGenHandlingFee = "Handling Fee"
'ADDED - Version 2.3
const langErrCountry = "Country is Invalid."
const langGenRating = "Rating"
const langGenEach = "ea."
const langGenLowStockWarn = "Low Stock Warning"
const langGenDeleteCart = "Delete"
const langGenAllKeyWords = "All Words"
const langGenAnyKeyWords = "Any Words"
const langGenYourOrders = "Your Orders"
const langGenAffiliate = "Affiliate"
const langGenExistAff = "Existing Affiliate"
const langGenNewAff = "New Affiliate"
const langGenNewAffDesc = "Click the button below if you need to create an affiliate account."
'ADDED - Version 2.4
const langGenPhrase = "Phrase"
const langGenExistCustDesc = "If you bought from us before, please logon below."
const langGenExistAffDesc = "If you already have an affiliate account, please logon below."
const langErrLogon = "Invalid Email or Password"
const langGenEstShipLink = "Estimate"
const langGenEstShip = "Shipping Estimate"
const langGenSubmit = "Submit"
const langGenResult = "Result"
const langGenMiscellaneous = "Miscellaneous"
const langGenStep1 = "[ Step 1 of 4 ]"
const langGenStep2 = "[ Step 2 of 4 ]"
const langGenStep3 = "[ Step 3 of 4 ]"
const langGenStep4 = "[ Step 4 of 4 ]"
'ADDED - Version 2.5
const langGenSave = "Save"
const langGenCookieCheck = "Note : If you think you received this message in error, please make sure that your browser is configured to accept 'session cookies'."
const langGenLogonClick = "Click here to Logon."
const langGenMandatoryOpt = "Mandatory Option"
const langGenDefault = "Default"
const langGenAdd = "Add"
const langGenOtherFees = "Other Fees"
%>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : Loads and Manages the Store Configuration settings
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
'*************************************************************************
'Set global defaults. Do NOT change these unless there is a problem
'*************************************************************************
session.LCID = 1033 'Default LCID (US English)
session.Timeout = 60 '60 Minutes
'*************************************************************************
'Declare local configuration variables
'*************************************************************************
dim urlNonSSL,urlSSL,pDownloadDir,pImagesDir,mailComp
dim pSMTPServer,pEmailSales,pEmailAdmin,pCompany,pCatalogOnly
dim pMaxCartQty,prodViewLayout,pHidePricingZero,pMaxItemQty
dim pMinCartAmount,pMaxItemsPerPage,pOrderPrefix,pCurrencySign
dim pStoreLCID,pShowStockView,pMailIn,pPayPal,payPalMemberID
dim pCreditCard,pCCType,pAuthNet,authNetLogin,authNetCurrCode
dim payMsgMailIn,payMsgCreditCard,payMsgPayPal,payMsgOther
dim payMsgNotReq,shipDisplayType,TwoCheckOut,TwoCheckOutSID
dim payMsgTwoCheckOut,pEmailFriendSec,pMaxDownloadHours
dim pMaxDownloadCount,payDefault,pAuthNetFrontEnd,payMsgAuthNet
dim pCompanyAddr,TwoCheckoutMD5,pHideAddStockLevel,payCustom
dim payMsgCustom,taxOnShipping,allowShipAddr,defaultCountryCode
dim listViewLayout,payCallIn,payFaxIn,PayCOD,statUpdPending
dim payMsgCallIn,payMsgFaxIn,payMsgCOD,taxBillOrShip
dim handlingFeeAmt,handlingFeeTax,payPalCurrCode,authNetTxKey
dim homeViewLayout,pEmailStockLevel,pAuthNetType,pHTMLarea
dim pProdThumbs,homeViewRandom,timeOffSet,feeMailIn,feeCallIn
dim feeFaxIn,feeCOD,feeOffCC,feePayPal,fee2CO,feeAuthNet,feeCustom
dim categoryLayout,MSXMLprogID,XMLDOMprogID,hideAddOnProdList
dim useSecureDownload
'*************************************************************************
'Get additional configuration settings from "config.asp"
'*************************************************************************
%><%
'*********************************************************************
' Function : Database and Security Settings
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*********************************************************************
dim connString
dim dbpath
'---------------------------------------------------------------------
' Database Connection String.
'
' EXAMPLE : DSN-less connection for SQL Server
' connString="driver={SQL Server};server=SERVER_NAME;uid=USER_ID;pwd=PASSWORD;database=DB_NAME"
' connString="provider=sqloledb;Data Source=SERVER_NAME;User Id=USER_ID;Password=PASSWORD;Initial Catalog=DB_NAME"
'
' EXAMPLE : DSN-less connection for MS Access
' connString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\store.mdb;"
' connString="provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\store.mdb;"
'
' EXAMPLE : DSN connection (all databases)
' connString= "dsn=NAME_OF_YOUR_DSN"
'---------------------------------------------------------------------
'dbpath = "c:\websites\chennaistore400\chennaistore.com\db\storenew.mdb"
'dbpath = "store.mdb"
'objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbPath)
'connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\websites\chennaistore400\chennaistore.com\db\store.mdb'"
'connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\websites\chennaistore400\chennaistore.com\db\storenew.mdb'"
'connString = "Driver={MySql ODBC 3.51 Driver}; Server=chennaistorecom.yourwebhostingmysql.com; uid=storeuser;pwd=StoreUseR1; database=mystore; option=3; port=3306;"
connString = "Driver={MySql ODBC 3.51 Driver}; Server=localhost; uid=karthisiva;pwd=PassworD*; database=mystore; option=3; port=3306;"
'connString = "Driver={MySql ODBC 3.51 Driver}; Server=localhost; uid=storeuser;pwd=StoreUseR1; database=mystore; option=3; port=3306;"
'connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbPath)
'connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath
'---------------------------------------------------------------------
' Database Type (0=Access ; 1=SQL Server)
'---------------------------------------------------------------------
const dbType = 0
'---------------------------------------------------------------------
' Administrator UserID and Password
'---------------------------------------------------------------------
const adminUser = "poweradmin"
const adminPass = "SydneY+"
'---------------------------------------------------------------------
' RC4Key used for En/De-cription. CHANGE ONLY ONCE!
'
' This is the Encryption Key used to Encrypt/Decrypt Passwords and
' Credit Card Numbers on your database. It is recommended that you
' write your key down and keep it in a safe place in case you need it.
'
' The key must be :
' 1. Exactly 30 characters in length
' 2. Consist only of Alpha-Numeric characters (a-z,A-Z,0-9)
' 3. No special characters
' 4. The key is case sensitive
' 5. Example : "nw8vwstsldi6tsadhsd389705vj5hd"
'
' WARNING : Once this key has been entered, you can NOT change it
' again. If you do, you will no longer be able to decrypt existing
' information that was encrypted with the old key.
'---------------------------------------------------------------------
const rc4Key = "SivaguruKarthiyayeni3012551204"
'---------------------------------------------------------------------
' Store ID. If you are going to be hosting multiple stores on the same
' web (or virtual web), you should assign a different store ID to each
' of them to prevent sessions from being shared. The storeID can be
' any combination of alpha (a-z) and numeric (0-9) characters with a
' maximum of 10 characters (eg. "toystore"), and a minimum of 1
' character. No spaces are allowed.
'---------------------------------------------------------------------
const storeID = "mystore"
'---------------------------------------------------------------------
' Put Store in Demo Mode? (Y/N)
'---------------------------------------------------------------------
const demoMode = "N"
'---------------------------------------------------------------------
' Is CandyPress Store Admin installed. (Y/N)
'---------------------------------------------------------------------
const StoreAdminInstalled = "Y"
'-- ADDED - Version 1.8 ----------------------------------------------
' Put Store in Debug Mode? (Y/N)
'---------------------------------------------------------------------
const debugMode = "Y"
'-- ADDED - Version 2.2 ----------------------------------------------
' Lock the Database. (Y/N)
'---------------------------------------------------------------------
const dbLocked = "N"
'-- ADDED - Version 2.2 ----------------------------------------------
' Additonal login for general non-administrator staff. This login
' will NOT allow acces to the setup and configuration utilities.
'---------------------------------------------------------------------
const nonAdminUser = ""
const nonAdminPass = ""
%>
<%
'*************************************************************************
'Retrieve configuration settings from DB and load into local variables
'*************************************************************************
function loadConfig()
'Work variables
dim mySQL, rsTemp
dim configArr
'Get configuration control record from database
mySQL = "SELECT configValLong " _
& "FROM storeAdmin " _
& "WHERE configVar = 'controlRec' " _
& "AND adminType = 'C' "
set rsTemp = openRSexecute(mySQL)
if not rsTemp.EOF then
configArr = trim(rsTemp("configValLong"))
if len(configArr) > 0 then
configArr = split(configArr,"*|*")
end if
end if
call closeRS(rsTemp)
'Check config array
if isNull(configArr) or isEmpty(configArr) or not(isArray(configArr)) then
loadConfig = false
exit function
elseif UBound(configArr) <> 84 then
loadConfig = false
exit function
end if
'Assign config setting to local variables.
on error resume next
urlNonSSL = Cstr(configArr(0))
urlSSL = Cstr(configArr(1))
pDownloadDir = Cstr(configArr(2))
pImagesDir = Cstr(configArr(3))
mailComp = CLng(configArr(4))
pSMTPServer = Cstr(configArr(5))
pEmailSales = Cstr(configArr(6))
pEmailAdmin = Cstr(configArr(7))
pCompany = Cstr(configArr(8))
pCatalogOnly = CLng(configArr(9))
pMaxCartQty = CLng(configArr(10))
pMaxItemQty = CLng(configArr(11))
pMinCartAmount = CLng(configArr(12))
pMaxItemsPerPage = CLng(configArr(13))
pOrderPrefix = Cstr(configArr(14))
pCurrencySign = Cstr(configArr(15))
pStoreLCID = Cstr(configArr(16))
pShowStockView = CLng(configArr(17))
pMailIn = CLng(configArr(18))
pPayPal = CLng(configArr(19))
payPalMemberID = Cstr(configArr(20))
pCreditCard = CLng(configArr(21))
pCCType = Cstr(configArr(22))
pAuthNet = CLng(configArr(23))
authNetLogin = Cstr(configArr(24))
authNetCurrCode = Cstr(configArr(25))
payMsgMailIn = Cstr(configArr(26))
payMsgCreditCard = Cstr(configArr(27))
payMsgPayPal = Cstr(configArr(28))
payMsgOther = Cstr(configArr(29))
payMsgNotReq = Cstr(configArr(30))
TwoCheckOut = CLng(configArr(31))
TwoCheckOutSID = Cstr(configArr(32))
payMsgTwoCheckOut = Cstr(configArr(33))
pEmailFriendSec = CLng(configArr(34))
pMaxDownloadHours = CLng(configArr(35))
pMaxDownloadCount = CLng(configArr(36))
payDefault = Cstr(configArr(37))
pAuthNetFrontEnd = CLng(configArr(38))
pCompanyAddr = Cstr(configArr(39))
payMsgAuthNet = Cstr(configArr(40))
TwoCheckoutMD5 = Cstr(configArr(41))
pHideAddStockLevel = CLng(configArr(42))
payCustom = CLng(configArr(43))
payMsgCustom = Cstr(configArr(44))
taxOnShipping = CLng(configArr(45))
allowShipAddr = CLng(configArr(46))
prodViewLayout = CLng(configArr(47))
shipDisplayType = CLng(configArr(48))
defaultCountryCode = Cstr(configArr(49))
pHidePricingZero = CLng(configArr(50))
payCallIn = CLng(configArr(51))
payFaxIn = CLng(configArr(52))
payCOD = CLng(configArr(53))
payMsgCallIn = Cstr(configArr(54))
payMsgFaxIn = Cstr(configArr(55))
payMsgCOD = Cstr(configArr(56))
listViewLayout = CLng(configArr(57))
taxBillOrShip = CLng(configArr(58))
statUpdPending = CLng(configArr(59))
handlingFeeAmt = CDbl(configArr(60))
handlingFeeTax = CLng(configArr(61))
payPalCurrCode = Cstr(configArr(62))
authNetTxKey = Cstr(configArr(63))
homeViewLayout = Cstr(configArr(64))
pEmailStockLevel = CLng(configArr(65))
pAuthNetType = CStr(configArr(66))
pHTMLarea = CLng(configArr(67))
pProdThumbs = CLng(configArr(68))
homeViewRandom = CLng(configArr(69))
timeOffSet = CLng(configArr(70))
feeMailIn = CDbl(configArr(71))
feeCallIn = CDbl(configArr(72))
feeFaxIn = CDbl(configArr(73))
feeCOD = CDbl(configArr(74))
feeOffCC = CDbl(configArr(75))
feePayPal = CDbl(configArr(76))
fee2CO = CDbl(configArr(77))
feeAuthNet = CDbl(configArr(78))
feeCustom = CDbl(configArr(79))
categoryLayout = CLng(configArr(80))
MSXMLprogID = CStr(configArr(81))
XMLDOMprogID = CStr(configArr(82))
hideAddOnProdList = CLng(configArr(83))
useSecureDownload = CLng(configArr(84))
if err.number = 0 then
loadConfig = true
else
loadConfig = false
end if
on error goto 0
end function
%>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : Database functions.
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
'*************************************************************************
'Declare some standard ADO variables
'*************************************************************************
Const adOpenKeyset = 1
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockOptimistic = 3
Const adStateClosed = &H00000000
Const adUseServer = 2
Const adUseClient = 3
Const adCmdText = &H0001
Const adCmdTable = &H0002
'*************************************************************************
'Open Database Connection
'*************************************************************************
function openDB()
if UCase(dbLocked) = "Y" then
call errorDB("" & langErrStoreClosed & "","")
end if
on error resume next
set connTemp = server.createobject("adodb.connection")
connTemp.CursorLocation = 3
connTemp.Open connString
if err.number <> 0 then
dim errMsg
errMsg = "" _
& "Number : " & err.number & "
" _
& "Desc : " & err.Description
call errorDB("",errMsg)
end if
on error goto 0
end function
'*************************************************************************
'Close Database Connection
'*************************************************************************
function closeDB()
on error resume next
connTemp.close
set connTemp = nothing
on error goto 0
end function
'*************************************************************************
'Open RecordSet using "Execute" method
'*************************************************************************
function openRSexecute(mySQL)
on error resume next
set openRSexecute = conntemp.execute(mySQL)
if err.number <> 0 then
dim errMsg
errMsg = "" _
& "Number : " & err.number & "
" _
& "SQL : " & mySQL
call errorDB("",errMsg)
end if
on error goto 0
end function
'*************************************************************************
'Open RecordSet using "Open" method
'*************************************************************************
function openRSopen(dbSource,dbCursorLoc,dbCursorType,dbLockType,dbOptions,dbCache)
on error resume next
set openRSopen = Server.CreateObject("ADODB.Recordset")
if dbCache > 0 then
openRSopen.CacheSize = dbCache
end if
if dbCursorLoc > 0 then
'openRSopen.CursorLocation = dbCursorLoc
openRSopen.CursorLocation = 3
end if
openRSopen.Open dbSource,connTemp,dbCursorType,dbLockType,dbOptions
if err.number <> 0 then
dim errMsg
errMsg = "" _
& "Number : " & err.number & "
" _
& "SQL : " & dbSource
call errorDB("",errMsg)
end if
on error goto 0
end function
'*************************************************************************
'Close Recordset
'*************************************************************************
function closeRS(rs)
on error resume next
rs.Close
set rs = nothing
on error goto 0
end function
'*************************************************************************
'Handle database errors
'*************************************************************************
sub errorDB(errMsgShow,errMsgHide)
'Clear output buffer and declare work variables
Response.Clear
dim errMsg
dim hideError
'Decide which error to display, and if we must hide the error
if len(trim(errMsgShow)) > 0 then
errMsg = trim(errMsgShow)
hideError = false
else
errMsg = trim(errMsgHide)
hideError = true
end if
'Force detailed error to be displayed if debug mode is on
on error resume next
if UCase(debugMode) = "Y" then
if err.number = 0 then
hideError = false
end if
end if
on error goto 0
%>
System Error
<%
if hideError then
%>
Note : The detail of this error can be
viewed by activating debug mode for
this store.
<%
else
Response.Write errMsg
end if
%>
<%
'Close open database connections and end
call closeDB()
Response.End
end sub
%>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : These functions and subroutines are used by the scripts
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
'*************************************************************************
'Calculate cart total
'INCLUDE - Product (Item) Discounts
'INCLUDE - Order Discount
'EXCLUDE - Taxes and Shipping
'*************************************************************************
function cartTotal(idOrder,idCartRow)
'Declare Variables
dim mySQL,rsTemp
dim discPerc
dim discTotal
cartTotal = 0.00
'Calculate totals
if len(idOrder) > 0 and IsNumeric(idOrder) _
and len(idCartRow) > 0 and IsNumeric(idCartRow) then
mySQL = "SELECT discPerc " _
& "FROM carthead " _
& "WHERE idOrder = " & validSQL(idOrder,"I")
set rsTemp = openRSexecute(mySQL)
if not rsTemp.EOF then
discPerc = CDbl(emptyString(rsTemp("discPerc"),"0"))
cartTotal = cartTotalExDisc(idOrder,idCartRow)
discTotal = Round(((cartTotal * discPerc) / 100),2)
cartTotal = cartTotal - discTotal
end if
call closeRS(rsTemp)
end if
cartTotal = CDbl(cartTotal)
end function
'*************************************************************************
'Calculate cart total
'INCLUDE - Product (Item) Discounts
'EXCLUDE - Order Discount
'EXCLUDE - Taxes and Shipping
'*************************************************************************
function cartTotalExDisc(idOrder,idCartRow)
'Declare Variables
dim mySQL,rsTemp,rsTempq
dim quantity,unitPrice
dim optionPrice,discAmt
cartTotalExDisc = 0.00
'Calculate totals
if len(idOrder) > 0 and IsNumeric(idOrder) _
and len(idCartRow) > 0 and IsNumeric(idCartRow) then
'mySQL = "SELECT quantity,unitPrice,discAmt," _
' & " (SELECT SUM(optionPrice) " _
' & " FROM cartRowsOptions " _
' & " WHERE cartRowsOptions.idCartRow = cartRows.idCartRow) " _
' & " AS optionPrice " _
' & "FROM cartRows " _
' & "WHERE idOrder = " & validSQL(idOrder,"I") & " "
mySQL = "SELECT quantity,unitPrice,discAmt " _
& "FROM cartrows " _
& "WHERE idOrder = " & validSQL(idOrder,"I") & " "
if idCartRow > 0 then
mySQL = mySQL & " AND idCartRow = " & validSQL(idCartRow,"I")
end if
set rsTemp = openRSexecute(mySQL)
do while not rsTemp.eof
quantity = CDbl(emptyString(rsTemp("quantity"),"0"))
unitPrice = CDbl(emptyString(rsTemp("unitPrice"),"0"))
discAmt = CDbl(emptyString(rsTemp("discAmt"),"0"))
mySQL = "SELECT SUM(optionPrice) AS optionPrice " _
& " FROM cartrowsoptions " _
& " WHERE cartrowsoptions.idcartrow =" & validSQL(idCartRow,"I")
set rsTempq = openRSexecute(mySQL)
if not rsTempq.eof then
optionPrice = CDbl(emptyString(rsTempq("optionPrice"),"0"))
call closeRS(rsTempq)
end if
cartTotalExDisc = cartTotalExDisc + (quantity * (unitPrice + optionPrice - discAmt))
rsTemp.movenext
loop
call closeRS(rsTemp)
end if
cartTotalExDisc = CDbl(cartTotalExDisc)
end function
'*************************************************************************
'Calculate Cart Quantity
'*************************************************************************
function cartQty(idOrder)
'Declare Variables
dim mySQL, rsTemp
cartQty = 0.00
'Calculate Cart Quantity
'if len(idOrder) > 0 and IsNumeric(idOrder) then
' mySQL = "SELECT quantity AS qTotal " _
' & "FROM cartRows " _
' & "WHERE idOrder = " & validSQL(idOrder,"I")
'set rsTemp = openRSexecute(mySQL)
'if not rsTemp.eof then
'if isNumeric(rsTemp("qTotal")) then
'cartQty = rsTemp("qTotal")
'end if
'end if
'call closeRS(rsTemp)
'end if
'begin change code
' Cart Quantity code changed on 2007-11-16 by jeevitha.
'the above set of commented code is the actuall code
if len(idOrder) > 0 and IsNumeric(idOrder) then
mySQL = "SELECT quantity " _
& "FROM cartrows " _
& "WHERE idOrder = "& validSQL(idOrder,"I")
set rsTemp = openRSexecute(mySQL)
do while not rsTemp.eof
cartQty = cartQty + rsTemp("quantity")
rstemp.moveNext
loop
end if
call closeRS(rsTemp)
'End code
cartQty = CDbl(cartQty)
end function
'*************************************************************************
'Money Formatter - Use Store LCID
'*************************************************************************
function moneyS(aNumber)
if isNumeric(aNumber) then
dim tempNumber, tempLCID
tempNumber = CDbl(aNumber)
tempLCID = session.LCID
session.LCID = pStoreLCID 'User configured format
moneyS = formatNumber(round(tempNumber,2),2)
session.LCID = tempLCID 'Default format
else
moneyS = aNumber
end if
end function
'*************************************************************************
'Money Formatter - Use Default LCID
'*************************************************************************
function moneyD(aNumber)
if isNumeric(aNumber) then
moneyD = formatnumber(round(aNumber,2),2)
else
moneyD = aNumber
end if
end function
'*************************************************************************
'Date formatter
'*************************************************************************
function formatTheDate(strDate)
if isDate(strDate) then
dim tempDate, tempLCID
tempDate = CDate(strDate)
tempLCID = session.LCID
session.LCID = pStoreLCID 'User configured format
formatTheDate = formatDateTime(tempDate,vbShortDate)
session.LCID = tempLCID 'Default format
else
formatTheDate = strDate
end if
end function
'*************************************************************************
'Scan list of error FieldNames for possible match
'*************************************************************************
function checkFieldError(byVal FieldName, array1)
dim i
FieldName = Lcase(FieldName)
for i = 0 to Ubound(array1)
if LCase(array1(i)) = FieldName then
checkFieldError = "*"
exit for
end if
next
end function
'*************************************************************************
'Substitute empty or null strings with something else
'*************************************************************************
function emptyString(tempStr,replaceWith)
if len(trim(tempStr))=0 or isEmpty(tempStr) or isNull(tempStr) then
emptyString = replaceWith
else
emptyString = trim(tempStr)
end if
end function
'*************************************************************************
'Payment Type Message / Description
'*************************************************************************
function paymentMsg(paymentType,Amount,cardNumber)
if Amount > 0 then
select case lCase(paymentType)
case "mailin"
paymentMsg = payMsgMailIn
case "callin"
paymentMsg = payMsgCallIn
case "faxin"
paymentMsg = payMsgFaxIn
case "cod"
paymentMsg = payMsgCOD
case "creditcard"
if len(trim(cardNumber)) > 4 then
paymentMsg = payMsgCreditCard & " (" & replace(space(len(cardNumber)-4)," ","x") & right(cardNumber,4) & ")"
else
paymentMsg = payMsgCreditCard
end if
case "paypal"
paymentMsg = payMsgPayPal
case "2checkout"
paymentMsg = payMsgTwoCheckOut
case "authorizenet"
paymentMsg = payMsgAuthNet
case "custom"
paymentMsg = payMsgCustom
case else
paymentMsg = payMsgOther
end select
else
paymentMsg = payMsgNotReq
end if
end function
'******************************************************************
'Get/Set idOrder from session/form/querystring
'******************************************************************
function sessionCart()
'Declare Variables
dim mySQL, rsTemp, idOrder
idOrder = trim(session(storeID & "idOrder"))
'Response.Write(session(storeID & "idOrder"))
'Response.Write(session("storeidOrder"))
'Response.End()
'Check idOrder exists and Order is still Open
if isEmpty(idOrder) or not IsNumeric(idOrder) then
session(storeID & "idOrder") = null
sessionCart = null
else
mySQL="SELECT idOrder " _
& "FROM carthead " _
& "WHERE idOrder = " & validSQL(idOrder,"I") & " " _
& "AND (orderStatus = 'U' OR orderStatus = 'S') "
set rsTemp = openRSexecute(mySQL)
if not rstemp.eof then
session(storeID & "idOrder") = idOrder
sessionCart = idOrder
else
session(storeID & "idOrder") = null
sessionCart = null
end if
call closeRS(rsTemp)
end if
end function
'******************************************************************
'Get/Set idCust from session/form/querystring
'******************************************************************
function sessionCust()
'Declare Variables
dim mySQL, rsTemp, idCust
idCust = trim(session(storeID & "idCust"))
'Check if idCust exists on DB and is still Active
if isEmpty(idCust) or not IsNumeric(idCust) then
session(storeID & "idCust") = null
sessionCust = null
else
mySQL="SELECT idCust FROM customer " _
& "WHERE idCust = " & validSQL(idCust,"I") & " " _
& "AND status = 'A'"
set rsTemp = openRSexecute(mySQL)
if not rstemp.eof then
session(storeID & "idCust") = idCust
sessionCust = idCust
else
session(storeID & "idCust") = null
sessionCust = null
end if
call closeRS(rsTemp)
end if
end function
'******************************************************************
'Format values entered into HTML form fields to prevent cross-site
'scripting and other malicious HTML.
'******************************************************************
function validHTML(aString)
'Declare Variables
dim tempString
tempString = trim(aString)
'Check for empty values
if isNull(tempString) or isEmpty(tempString) or len(tempString) = 0 then
validHTML = ""
exit function
end if
'Clean up HTML
tempString = replace(tempString,"<", " ")
tempString = replace(tempString,">", " ")
tempString = replace(tempString,"""","'")
validHTML = trim(tempString)
end function
'******************************************************************
'Format values inserted into SQL statements before executing the
'SQL statement. This is to prevent SQL injection attacks, and to
'ensure that certain characters are interpreted correctly.
'******************************************************************
function validSQL(aString,aType)
'Declare Variables
dim tempString
tempString = trim(aString)
'Check for empty values
if isNull(tempString) or isEmpty(tempString) or len(tempString) = 0 then
validSQL = ""
exit function
end if
'Clean up SQL
if lCase(tempString) = "null" then 'Nulls
validSQL = tempString
else
select case trim(UCase(aType))
case "I" 'Integer
validSQL = CLng(tempString)
case "D" 'Double
validSQL = CDbl(tempString)
case else 'Alphanumeric
tempString = replace(tempString,"--"," ")
tempString = replace(tempString,"=="," ")
tempString = replace(tempString,";", " ")
tempString = replace(tempString,"'","''")
validSQL = tempString
end select
end if
end function
'******************************************************************
'Check a string for invalid characters
'******************************************************************
function invalidChar(aString,alphaNum,addChars)
dim i, checkChar
invalidChar = true 'Assume invalid chars unless proven otherwise
select case alphaNum
case 1 'Alphanumeric [a-z, 0-9] is valid
addChars = lCase("abcdefghijklmnopqrstuvwxyz0123456789" & addChars)
case 2 'Numeric [0-9] is valid
addChars = lCase("0123456789" & addChars)
case 3 'Alpha [a-z] is valid
addChars = lCase("abcdefghijklmnopqrstuvwxyz" & addChars)
case else 'Only characters in addChar is valid
end select
for i = 1 to len(aString)
checkChar = lCase(mid(aString,i,1))
if inStr(addChars,checkChar) = 0 then
invalidChar = true
exit function
end if
next
invalidChar = false
end function
'******************************************************************
'Convert Date to Integer
'******************************************************************
function dateInt(strDate)
dim qYear, qMonth, qDay, qHour, qMin, qSec
qYear = year(strDate)
qMonth = left("00",2-len(datePart("m",strDate))) & datePart("m",strDate)
qDay = left("00",2-len(datePart("d",strDate))) & datePart("d",strDate)
qHour = left("00",2-len(datePart("h",strDate))) & datePart("h",strDate)
qMin = left("00",2-len(datePart("n",strDate))) & datePart("n",strDate)
qSec = left("00",2-len(datePart("s",strDate))) & datePart("s",strDate)
dateInt = qYear & qMonth & qDay & qHour & qMin & qSec
end function
'******************************************************************
'Order Status Descriptions
'******************************************************************
function orderStatusDesc(orderStatus)
select case orderStatus
case "U"
orderStatusDesc = langGenStatUnfinal
case "S"
orderStatusDesc = langGenStatSaved
case "0"
orderStatusDesc = langGenStatPending
case "1"
orderStatusDesc = langGenStatPaid
case "2"
orderStatusDesc = langGenStatShipped
case "7"
orderStatusDesc = langGenStatComplete
case "9"
orderStatusDesc = langGenStatCancel
case else
orderStatusDesc = langGenStatUnknown
end select
end function
'*************************************************************************
'Get State Description
'*************************************************************************
function getStateDesc(locCountry,locState,locState2)
'Declare Variables
dim mySQL, rsTemp
locCountry = trim(locCountry)
locState = trim(locState)
locState2 = trim(locState2)
'If the alternate state is entered, return it.
if len(locState2) > 0 then
getStateDesc = locState2
else
'Get State description on database.
if len(locCountry) = 0 or len(locState) = 0 then
getStateDesc = locState
else
'Get State Name
mySQL = "SELECT locName " _
& "FROM locations " _
& "WHERE locCountry = '" & validSQL(locCountry,"A") & "' " _
& "AND locState = '" & validSQL(locState,"A") & "'"
set rsTemp = openRSexecute(mySQL)
if rsTemp.eof then
getStateDesc = locState
else
getStateDesc = rsTemp("locName")
end if
call closeRS(rsTemp)
end if
end if
end function
'*************************************************************************
'Get Country Description
'*************************************************************************
function getCountryDesc(locCountry)
'Declare Variables
dim mySQL, rsTemp
locCountry = trim(locCountry)
'Check Country code
if len(locCountry) = 0 then
getCountryDesc = locCountry
else
'Get Country Name
mySQL = "SELECT locName " _
& "FROM locations " _
& "WHERE locCountry = '" & validSQL(locCountry,"A") & "' " _
& "AND (locState = '' OR locState IS NULL)"
set rsTemp = openRSexecute(mySQL)
if rsTemp.eof then
getCountryDesc = locCountry
else
getCountryDesc = rsTemp("locName")
end if
call closeRS(rsTemp)
end if
end function
'*************************************************************************
'Check if an Item is a Downloadable Item. If it is, return the filename
'of the downloadable file.
'*************************************************************************
function downloadFile(qIdOrder,idCartRow)
'Declare Variables
dim mySQL, rsTemp
'Get Filename
mySQL="SELECT products.fileName " _
& "FROM cartrows, products " _
& "WHERE idOrder = " & validSQL(qIdOrder,"I") & " " _
& "AND idCartRow = " & validSQL(idCartRow,"I") & " " _
& "AND products.idProduct = cartrows.idProduct " _
& "AND NOT (products.fileName IS NULL " _
& "OR products.fileName = '') "
set rsTemp = openRSexecute(mySQL)
if rsTemp.eof then
downloadFile = ""
else
downloadFile = trim(rsTemp("fileName"))
end if
call closeRS(rsTemp)
end function
'*********************************************************************
'Check if str1 and str2 matches and return "selected" if they do
'*********************************************************************
function checkMatch(str1,str2)
if lCase(trim(str1)) = lCase(trim(str2)) then
checkMatch = " selected "
else
checkMatch = ""
end if
end function
'*********************************************************************
'Display average rating for a product
'*********************************************************************
function ratingImage(prodRating)
if not isNumeric(prodRating) then
ratingImage = ""
exit function
end if
select case round(prodRating,0)
case 1
ratingImage = ""
case 2
ratingImage = ""
case 3
ratingImage = ""
case 4
ratingImage = ""
case 5
ratingImage = ""
case else
ratingImage = ""
end select
end function
'*********************************************************************
'Save a cart (order) for later retrieval
'*********************************************************************
function saveCart(idOrder,idCust)
'Declare Variables
dim mySQL, rsTemp, rsTemp2
if isNumeric(idOrder) and isNumeric(idCust) then
'Get some customer info
mySQL="SELECT idCust,Name,LastName,Phone," _
& " Email,Address,City,Zip,locState,locCountry " _
& "FROM customer " _
& "WHERE idCust = " & validSQL(idCust,"I")
set rsTemp = openRSexecute(mySQL)
if not rstemp.eof then
'Update cartHead
mySQL = "UPDATE carthead SET " _
& "orderStatus = 'S'," _
& "idCust = " & validSQL(rsTemp("idCust"),"I") & "," _
& "Name = '" & validSQL(rsTemp("Name"),"A") & "'," _
& "LastName = '" & validSQL(rsTemp("LastName"),"A") & "'," _
& "Phone = '" & validSQL(rsTemp("Phone"),"A") & "'," _
& "Email = '" & validSQL(rsTemp("Email"),"A") & "'," _
& "Address = '" & validSQL(rsTemp("Address"),"A") & "'," _
& "City = '" & validSQL(rsTemp("City"),"A") & "'," _
& "Zip = '" & validSQL(rsTemp("Zip"),"A") & "'," _
& "locState = '" & validSQL(rsTemp("locState"),"A") & "'," _
& "locCountry = '" & validSQL(rsTemp("locCountry"),"A") & "' " _
& "WHERE idOrder = " & validSQL(idOrder,"I")
set rsTemp2 = openRSexecute(mySQL)
call closeRS(rsTemp2)
end if
call closeRS(rsTemp)
end if
end function
'*************************************************************************
'Calculate an option's price for as it relates to a particular product.
'*************************************************************************
function getOptionPrice(priceToAdd, percToAdd, prodPrice)
'Declare variables
dim tempPrice
'Check parameters
if not(isNumeric(priceToAdd) and IsNumeric(percToAdd) and IsNumeric(prodPrice)) then
getOptionPrice = 0
exit function
end if
if isNull(priceToAdd) or isNull(percToAdd) or isNull(prodPrice) then
getOptionPrice = 0
exit function
end if
if priceToAdd = 0 and percToAdd = 0 then
getOptionPrice = 0
exit function
end if
'Determine Option Price
if priceToAdd > 0 and percToAdd > 0 then
tempPrice = Round(((prodPrice * percToAdd) / 100),2)
if tempPrice > priceToAdd then
getOptionPrice = tempPrice
else
getOptionPrice = priceToAdd
end if
elseif priceToAdd > 0 then
getOptionPrice = priceToAdd
else
getOptionPrice = Round(((prodPrice * percToAdd) / 100),2)
end if
end function
'******************************************************************
'Get affiliate ID and set session variables
'******************************************************************
function getIdAffiliate(idAffiliate)
'Declare Variables
dim mySQL, rsTemp
'Check idAffiliate parameter
if isEmpty(idAffiliate) or isNull(idAffiliate) or not isNumeric(idAffiliate) then
exit function
end if
'Check idAffiliate on DB
mySQL="SELECT commPerc FROM customer " _
& "WHERE idCust = " & validSQL(idAffiliate,"I") & " " _
& "AND status = 'A' " _
& "AND affiliate = 'Y' "
set rsTemp = openRSexecute(mySQL)
if not rstemp.eof then
'Set session variables
session(storeID & "idAffiliate") = idAffiliate
session(storeID & "commPerc") = rsTemp("commPerc")
end if
call closeRS(rsTemp)
end function
'******************************************************************
'Add delimiters to a date if used in an SQL statement
'******************************************************************
function addDateDel(dateVal)
if dbType = 0 then 'MS Access
dateVal = "#" & dateVal & "#"
else 'SQL Server
dateVal = "'" & dateVal & "'"
end if
addDateDel = dateVal
end function
'******************************************************************
'Return current date or time
'******************************************************************
function currDateTime(dtFormat,timeOffSet)
currDateTime = dateAdd("h",timeOffSet,now())
if UCase(dtFormat) = "D" then
currDateTime = formatDateTime(currDateTime,vbShortDate)
elseif UCase(dtFormat) = "T" then
currDateTime = formatDateTime(currDateTime,vbLongTime)
else
currDateTime = formatDateTime(currDateTime,vbGeneralDate)
end if
end function
'*************************************************************************
'Get full category position, ie : cat1 > cat2 > cat3
'*************************************************************************
function getCategoryPos(IDCategory,tempStr,linksYN,tmpParentflg)
'Declare variables
dim mySQL, rsTemp
const separator = " > "
'Read DB and construct string
mySQL = "SELECT idCategory,idParentcategory,categoryDesc " _
& "FROM categories " _
& "WHERE idCategory = " & validSQL(idCategory,"I")
set rsTemp = openRSexecute(mySQL)
if rsTemp.eof then
'When we reach beginning of node, strip unneeded separator characters
tempStr = mid(tempStr,len(separator)+1)
end if
do while not rsTemp.eof
if UCase(trim(linksYN & "")) = "Y" then
if (tmpParentflg="N") then
tempStr = separator & "" & rsTemp("categoryDesc") & "" & tempStr
else
tempStr = separator & "" & rsTemp("categoryDesc") & "" & tempStr
end if
else
tempStr = separator & rsTemp("categoryDesc") & tempStr
end if
tempStr = getCategoryPos(rsTemp("idParentcategory"),tempStr,linksYN,"Y")
rsTemp.movenext
loop
call closeRS(rsTemp)
getCategoryPos = tempStr
end function
'*********************************************************************
'Sort a one dimensional array
'*********************************************************************
%>
<%
Function SortArray(arrInput)
SortArray = Split(SortVBArray(arrInput), Chr(8))
End Function
'*********************************************************************
'DEPRECATED Functions
'*********************************************************************
function checkString(str1) 'No longer required.
checkString = str1
end function
function money(aNumber) 'Replaced by moneyS() and moneyD()
money = moneyS(aNumber)
end function
%>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : RC4 Encryption / Decryption routines
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
'******************************************************************
'Encrypt/Decrypt text
'Note : Script is based on RC4 routines by Mike Shaffer with mods
' : by Zivan van Zyl
'******************************************************************
Function EnDeCrypt(plaintxt, psw)
'If plaintext is empty, return Empty String
if isEmpty(plaintxt) or isNull(plaintxt) or plaintxt = "" then
EnDeCrypt = ""
exit function
end if
'If psw (RC4Key) is incorrect, stop everything and display an error.
if len(psw) <> 30 then
'Just in case
Response.Clear
'Show error
Response.Redirect "sysMsg.asp?errMsg=" & server.URLEncode(langErrInvRC4Key)
'Just in case
exit function
end if
'Declare Variables
dim sbox(255), key(255)
dim temp, tempSwap, intLength
dim a, b, i, j, k
dim cipherby, cipher
'Initialize some variables
b = 0
i = 0
j = 0
'Initialize sbox and key array
intLength = len(psw)
For a = 0 To 255
key(a) = asc(mid(psw, (a mod intLength)+1, 1))
sbox(a) = a
next
For a = 0 To 255
b = (b + sbox(a) + key(a)) Mod 256
tempSwap = sbox(a)
sbox(a) = sbox(b)
sbox(b) = tempSwap
Next
'Encrypt/Decrypt text
For a = 1 To Len(plaintxt)
i = (i + 1) Mod 256
j = (j + sbox(i)) Mod 256
temp = sbox(i)
sbox(i) = sbox(j)
sbox(j) = temp
k = sbox((sbox(i) + sbox(j)) Mod 256)
cipherby = Asc(Mid(plaintxt, a, 1)) Xor k
cipher = cipher & Chr(cipherby)
Next
EnDeCrypt = cipher
End Function
'******************************************************************
'Convert a String to Hex values
'******************************************************************
function Ascii2Hex(strTemp)
if strTemp = "" or isNull(strTemp) then
Ascii2Hex = ""
else
dim I
for I = 1 to len(strTemp)
Ascii2Hex = Ascii2Hex & right("00" & hex(asc(mid(strTemp,I,1))),2)
next
end if
end function
'******************************************************************
'Convert a Hex values to String
'******************************************************************
function Hex2Ascii(strTemp)
if strTemp = "" or isNull(strTemp) then
Hex2Ascii = ""
else
dim I
for I = 1 to len(strTemp) step 2
Hex2Ascii = Hex2Ascii & Chr(Eval("&H" & Mid(strTemp,I,2)))
next
end if
end function
%>
<%
'*************************************************************************
' DO NOT MODIFY THIS SCRIPT IF YOU WANT UPDATES TO WORK!
' Function : Sends email
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
'*************************************************************************
'Forward email send request to appropriate component
'*************************************************************************
Function sendMail(fromName, fromEmail, toEmail, subject, body, contType)
'mailComp="4"
'Ignore email errors if not in debug mode
if UCase(debugMode) <> "Y" then
on error resume next
end if
select case mailComp
case "1" 'JMail
call JMail(fromName, fromEmail, toEmail, subject, body, contType)
case "2" 'CDONTS
call CDONTS(fromName, fromEmail, toEmail, subject, body, contType)
case "3" 'Persits ASPEmail
call PASPEmail(fromName, fromEmail, toEmail, subject, body, contType)
case "4" 'ServerObjects ASPMail
call SOASPMail(fromName, fromEmail, toEmail, subject, body, contType)
case "5" 'Bamboo SMTP
call bamboo(fromName, fromEmail, toEmail, subject, body, contType)
case "6" 'CDOSYS
call CDOSYS(fromName, fromEmail, toEmail, subject, body, contType)
end select
on error goto 0
end Function
'JMail (v4.3)
Function JMail(fromName, fromEmail, toEmail, subject, body, contType)
dim mail,I
set mail = server.CreateObject("JMail.Message")
'mail.Charset = "iso-2022-jp"
'mail.ContentTransferEncoding = "quoted-printable"
mail.From = fromEmail
mail.FromName = fromName
mail.silent = false
mail.Subject = subject
mail.TextBody = body
if contType = 1 then 'Send HTML Email
mail.ContentType = "text/html"
end if
if isArray(toEmail) then 'Send Multiple Emails
for I = 0 to Ubound(toEmail)
if len(toEmail(I)) > 0 then
mail.ClearRecipients()
mail.AddRecipient toEmail(I)
mail.Send(pSmtpServer)
end if
next
else 'Send Single Email
mail.AddRecipient toEmail
mail.Send(pSmtpServer)
end if
set mail = nothing
end Function
'CDONTS
'Note : After the "Send" method, the "NewMail" object becomes invalid.
' We therefore have to create the "NewMail" object for each email.
Function CDONTS(fromName, fromEmail, toEmail, subject, body, contType)
dim mail,I
if isArray(toEmail) then 'Send Multiple Emails
for I = 0 to Ubound(toEmail)
if len(toEmail(I)) > 0 then
Set mail = Server.CreateObject ("CDO.message")
if contType = 1 then 'Send HTML Email
'Mail.BodyFormat = 0
'Mail.MailFormat = 0
end if
mail.Send fromEmail & " (" & fromName & ")", toEmail(I), subject, body
set mail = nothing
end if
next
else 'Send Single Email
Set mail = Server.CreateObject ("CDO.message")
if contType = 1 then 'Send HTML Email
'Mail.BodyFormat = 0
'Mail.MailFormat = 0
end if
mail.Send fromEmail & " (" & fromName & ")", toEmail, subject, body
set mail = nothing
end if
end Function
'Persits ASP Email
Function PASPEmail(fromName, fromEmail, toEmail, subject, body, contType)
dim mail,I
set mail = server.CreateObject("Persits.MailSender")
'mail.Charset = "iso-2022-jp"
'mail.ContentTransferEncoding = "quoted-printable"
mail.Host = "localhost"
mail.From = fromEmail
mail.FromName = fromName
mail.Subject = subject
mail.Body = body
if contType = 1 then 'Send HTML Email
mail.IsHTML = True
end if
if isArray(toEmail) then 'Send Multiple Emails
for I = 0 to Ubound(toEmail)
if len(toEmail(I)) > 0 then
mail.Reset
mail.AddAddress toEmail(I)
mail.Send
end if
next
else 'Send Single Email
mail.AddAddress toEmail
mail.Send
end if
set mail = nothing
end Function
'ServerObjects ASPMail
Function SOASPMail(fromName, fromEmail, toEmail, subject, body, contType)
dim mail,I
set mail = server.CreateObject("SMTPsvg.Mailer")
'pSmtpServer="smtp.mail.yahoo.com"
'toEmail="karthisiva12@yahoo.com"
mail.RemoteHost = pSmtpServer
mail.FromAddress = fromEmail
mail.FromName = fromName
mail.Subject = subject
mail.BodyText = body
if contType = 1 then 'Send HTML Email
mail.ContentType = "text/html"
end if
if isArray(toEmail) then 'Send Multiple Emails
for I = 0 to Ubound(toEmail)
if len(toEmail(I)) > 0 then
mail.ClearRecipients
mail.AddRecipient "", toEmail(I)
mail.SendMail
end if
next
else 'Send Single Email
mail.AddRecipient "", toEmail
mail.SendMail
end if
set mail = nothing
end Function
'Bamboo SMTP
Function bamboo(fromName, fromEmail, toEmail, subject, body, contType)
dim mail,I
set mail = Server.CreateObject("Bamboo.SMTP")
mail.Server = pSmtpServer
mail.From = fromEmail
mail.FromName = fromName
mail.Subject = subject
mail.Message = body
if contType = 1 then 'Send HTML Email
mail.ContentType = "text/html"
end if
if isArray(toEmail) then 'Send Multiple Emails
for I = 0 to Ubound(toEmail)
if len(toEmail(I)) > 0 then
mail.Rcpt = toEmail(I)
mail.Send
end if
next
else 'Send Single Email
mail.Rcpt = toEmail
mail.Send
end if
set mail = nothing
end Function
'CDOSYS
Function CDOSYS(fromName, fromEmail, toEmail, subject, body, contType)
Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort = 2
Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout = "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoAnonymous = 0
Const cdoBasic = 1
Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
Dim objConfig ' As CDO.Configuration
Dim objMessage ' As CDO.Message
Dim Fields ' As ADODB.Fields
' Get a handle on the config object and it's fields
Set objConfig = Server.CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields
' Set config fields we care about
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = pSmtpServer
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPConnectionTimeout) = 10
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item (cdoSendUserName) = fromEmail
.Item (cdoSendPassword) = "MurugaN*"
.Update
End With
Set objMessage = Server.CreateObject("CDO.Message")
Set objMessage.Configuration = objConfig
response.Write(toEmail)
'response.End()
With objMessage
.From = fromEmail
.To = toEmail
.Subject = subject
.HTMLBody = body
'.Body = body
.Send
End With
Set Fields = Nothing
Set objMessage = Nothing
Set objConfig = Nothing
end Function
%>
Tamil New Year Sarees Online, Send Tamil New Year flowers, Send Tamil New Year Cake, Send Tamil New Year gifts to chennai, Tamil New Year Online Shopping, Tamil New Year Sweets, Tamil New Year Shopping - Chennai Store, an online showroom for Sarees and Gifts
<%
'Customer
dim status
dim Name
dim LastName
dim Email
dim Password
'Work Fields
dim arrayErrors
dim customerEmail
dim formID
'Database
dim mySQL
dim conntemp
dim rstemp
dim rstemp2
'Session
dim idOrder
dim idCust
'*************************************************************************
'Open Database Connection
call openDb()
'Store Configuration
if loadConfig() = false then
call errorDB(langErrConfig,"")
end if
'Get/Set Cart/Order Session
idOrder = sessionCart()
'Get/Set Customer Session
idCust = sessionCust()
'Get Form ID
formID = Request.Form("formID")
if formID <> "00b" then
formID = ""
end if
%>
<%
'*************************************************************************
' Function : Page template for front-end
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
%>
<%
'*************************************************************************
' Function : HTML/ASP code functions and subroutines which can be
' : used to customize the look of the store's header.
' Product : CandyPress Store Frontend
' Version : 2.5
' Modified : February 2004
' Copyright: Copyright (C) 2004 CandyPress.Com
' See "license.txt" for this product for details regarding
' licensing, usage, disclaimers, distribution and general
' copyright requirements. If you don't have a copy of this
' file, you may request one at webmaster@candypress.com
'*************************************************************************
'*************************************************************************
'Display Featured Categories
'*************************************************************************
function showFeaturedCat(CatId)
'Declare some variables
dim mySQL, rsTemp, tempStr
'Read Database
mySQL = "SELECT idCategory,categoryDesc " _
& "FROM categories " _
& "WHERE categoryFeatured='Y' and idParentCategory=" & CatId _
& " ORDER BY sortOrder,categoryDesc "
set rsTemp = openRSexecute(mySQL)
do while not rsTemp.EOF
'Build display string
tempStr = tempStr _
& "" _
& rstemp("categoryDesc") _
& " "
'Next Record
rsTemp.MoveNext
loop
call closeRS(rsTemp)
'Return
showFeaturedCat = tempStr
end function
'*************************************************************************
'Display New Products
'*************************************************************************
function showNewProd(dispNum,CatId)
'Declare some variables
dim mySQL, rsTemp, tempStr, count
'Read Database
mySQL="SELECT TOP " & dispNum & " p.idProduct, p.description " _
& "FROM products p,categories_products c " _
& "WHERE p.idProduct=c.idproduct and c.idCategory=" & CatId & " and p.active = -1 " _
& "ORDER BY p.idProduct DESC "
set rsTemp = openRSexecute(mySQL)
do while not rsTemp.EOF
'Increment counter
count = count + 1
'Build display string
tempStr = tempStr _
& count & ". " _
& rstemp("description") _
& " "
'Next Record
rsTemp.MoveNext
loop
call closeRS(rsTemp)
'Return
if isEmpty(tempStr) or isNull(tempStr) or len(trim(tempStr)) = 0 then
showNewProd = langGenNotApplicable
else
showNewProd = tempStr
end if
end function
'*************************************************************************
'Display Top Sellers
'*************************************************************************
function showTopSell(dispNum)
'Declare some variables
dim mySQL, rsTemp, tempStr, count
'Read Database
mySQL = "SELECT TOP " & dispNum & " a.idProduct, a.description " _
& "FROM cartRows a, cartHead b, products c " _
& "WHERE a.idOrder = b.idOrder " _
& "AND (b.orderStatus='1' OR b.orderStatus='2' OR b.orderStatus='7') " _
& "AND a.idProduct = c.idProduct " _
& "AND c.active = -1 " _
& "GROUP BY a.idProduct, a.description " _
& "ORDER BY SUM(a.quantity) DESC "
set rsTemp = openRSexecute(mySQL)
do while not rsTemp.EOF
'Increment counter
count = count + 1
'Check if number of products exceed count
if count > dispNum then
exit do
end if
'Build display string
tempStr = tempStr _
& count & ". " _
& rstemp("description") _
& " "
'Next Record
rsTemp.MoveNext
loop
call closeRS(rsTemp)
'Return
if isEmpty(tempStr) or isNull(tempStr) or len(trim(tempStr)) = 0 then
showTopSell = langGenNotApplicable
else
showTopSell = tempStr
end if
end function
%>
<%
If InStr(Request.ServerVariables("HTTP_HOST"),"bangalorestores")>0 then
Session("domain") = "BangaloreStores"
Session("branch") = "Bangalore"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"delhistore")>0 then
Session("domain") = "DelhiStore"
Session("branch") = "Delhi"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"ahmedabadstore")>0 then
Session("domain") = "AhmedabadStore"
Session("branch") = "Ahmedabad"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"thehyderabadstore")>0 then
Session("domain") = "HyderabadStore"
Session("branch") = "Hyderabad"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"kolkatastore")>0 then
Session("domain") = "KolkataStore"
Session("branch") = "Kolkata"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"punestore")>0 then
Session("domain") = "PuneStore"
Session("branch") = "Pune"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"punjabstore")>0 then
Session("domain") = "PunjabStore"
Session("branch") = "Punjab"
ElseIf InStr(Request.ServerVariables("HTTP_HOST"),"suratstore")>0 then
Session("domain") = "SuratStore"
Session("branch") = "Surat"
Else
Session("domain") = "ChennaiStore"
Session("branch") = "Chennai"
End If
%>
<% if Session("domain") = "BangaloreStores" then %>
Sarees, Saree, Sari, Saris, Bangalore Online Shopping, India Online Shopping, Send Gifts to Bangalore, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - BangaloreStores, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "DelhiStore" then %>
Sarees, Saree, Sari, Saris, Delhi Online Shopping, India Online Shopping, Send Gifts to Delhi, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - DelhiStore, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "AhmedabadStore" then %>
Sarees, Saree, Sari, Saris, Ahmadabad Online Shopping, India Online Shopping, Send Gifts to Ahmadabad, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - AhmadabadStore, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "HyderabadStore" then %>
Sarees, Saree, Sari, Saris, Hyderabad Online Shopping, India Online Shopping, Send Gifts to Hyderabad, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - HyderabadStore, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "KolkataStore" then %>
Sarees, Saree, Sari, Saris, Delhi Online Shopping, India Online Shopping, Send Gifts to Delhi , Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - DelhiStore, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "PuneStore" then %>
Sarees, Saree, Sari, Saris, Pune Online Shopping, India Online Shopping, Send Gifts to Pune, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - PuneStore, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "PunjabStore" then %>
Sarees, Saree, Sari, Saris, Punjab Online Shopping, India Online Shopping, Send Gifts to Punjab, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - PunjabStore, an online showroom for Sarees and Gifts
<% elseif Session("domain") = "SuratStore" then %>
Sarees, Saree, Sari, Saris, Surat Online Shopping, India Online Shopping, Send Gifts to Surat, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - SuratStore, an online showroom for Sarees and Gifts
<% else%>
Sarees, Saree, Sari, Saris, Chennai Online Shopping, India Online Shopping, Send Gifts to chennai, Buy Sarees Online, Buy Cheap Indian Sarees online, Send Gifts to india, Buy Indian Sarees, send Gifts to India Online - ChennaiStore, an online showroom for Sarees and Gifts
<% end if %>
<% if Session("domain") = "BangaloreStores" then %>
<%elseif Session("domain") = "DelhiStore" then %>
<%elseif Session("domain") = "AhmadabadStore" then %>
<%elseif Session("domain") = "HyderabadStore" then %>
<%elseif Session("domain") = "KolkataStore" then %>
<%elseif Session("domain") = "PuneStore" then %>
<%elseif Session("domain") = "PunjabStore" then %>
<%elseif Session("domain") = "SuratStore" then %>
<%else%>
<%end if%>
<%
Dim SQL1,res,cat
SQL1 = "SELECT idCategory " _
& "FROM categories " _
& "WHERE IdParentCategory=2 ORDER BY RAND() LIMIT 1"
set res = openRSexecute(SQL1)
DO WHILE NOT res.EOF
cat = res("idCategory")
res.MoveNext
Loop
%>
<%
Dim sURL,URL
URL = Request.ServerVariables("SCRIPT_NAME")
If Ucase(trim(split(URL,"/")(ubound(split(URL,"/"))))) = ucase(trim("prodlist.asp")) Then
sURL = "prodList.asp?"
Dim showPalette,showid
SQL1 = "SELECT idCategory " _
& "FROM categories " _
& "WHERE ( IdParentCategory=2 or idCategory=2) ORDER BY idCategory"
set res = openRSexecute(SQL1)
DO WHILE NOT res.EOF
if trim(res("idCategory")) = trim(idCategory) Then
showPalette = true
'sURL = replace(sURL,"idCategory=2","")
sURL = sURL & "idCategory=2"
exit do
end if
res.MoveNext
Loop
if not showPalette then
SQL1 = "SELECT idCategory " _
& "FROM categories " _
& "WHERE ( IdParentCategory=24 or idCategory=24) ORDER BY idCategory"
set res = openRSexecute(SQL1)
DO WHILE NOT res.EOF
if trim(res("idCategory")) =trim(idCategory) Then
showPalette = true
'sURL = replace(sURL,"idCategory=24","")
sURL = sURL & "idCategory=24"
exit do
end if
res.MoveNext
Loop
end if
if showPalette Then %>
<% call closedb()%>
<%
'Close Database Connection
call closedb()
'**********************************************************************
'Main Shopping Cart Display Area
'**********************************************************************
sub cartMain()
%>
The festival of lights is celebrated with great gusto across India and by Indians across the world with great enthusiasm. Tamil New Year shopping is done in every household and we bring this online Tamil New Year shop to make shopping much easier than earlier. It is everyone's festival, irrespective of age, caste, creed and social status. Visit our site for wide range of Tamil New Year sweets, Tamil New Year sarees, Tamil New Year Gifts to Inida, Tamil New Year Ghagra Cholis, Tamil New Year Combo Gifts, Tamil New Year Chudithars, Tamil New Year Flowers.Tamil New Year shirts for men. Tamil New Year dress for Childrens.
'Tamil New Year Online Sarees collections’ come in a wide variety like - exclusive saris, exclusive silk sari, Tamil New Year wedding sarees, Tamil New Year Georgette Sarees, Deevali Mysore silk sarees, Tamil New Year Kanchipuram Silk Saree, Tamil New Yearspecial sari, festival saree etc. There are special Saris for Speacial occasions. On the birth of a new baby or the wedding of a relative ladies wear brocade and festival sarees are usually worn while in celebrations and festivals like the Tamil New Year and the Wedding, women wear exclusive sarees that are embroidered with gold. Brides of almost all classes wear light colored Sari. Women wear red or pink sari with zari. Fine silk sarees are for all festive occasions.
buy exclusive sarees , fancy and unique collection of exclusive embroidered saris, exclusive sari from our fashion designers, festival sarees for different occasions such as Tamil New Year,Pongal and many more.
Everybody celebrates Tamil New Year in their own way. To elders, Tamil New Year is a time to follow rituals to offer pooja to the gods for blessings, while for kids, it's a time to burst crackers and eat sweets. To merchants, Tamil New Year is a time to consolidate accounts and start business afresh, while to some others it's a time to meet friends and relatives.
ChennaiStore.com provide the Online shopping for Tamil New Year for large Indian community residing in USA, UK, Canada, Australia, Europe, Singapore, India, New York, Jersey, Los Angeles, Chicago, Houston, San Diego, Dallas, Detroit, San Jose, Indianapolis, San Francisco, Columbus, Austin, Baltimore, Cincinatti, Boston, Washington, Seattle, Denver, Oklahoma, Las Vegas, Ontario, British Columbia, Toronto. Montreal, Vancouver, California, Texas, Michigan, Florida, Ohio, D.C, Washington, Calgary, Winnipeg, London, Leeds, Ipswitch, Leicestershire, Liverpool, Sydney, Mauritius, Fiji Is., Malaysia and other parts of world