%
Option Explicit
Response.Buffer = True
Const PAGE_NAME = "distributor-front-new.asp"
%>
<%
Dim arrShops, blnShops
Dim arrDist, blnDist
Dim country
Dim postback
Dim zipcode
Dim postalcode
Dim intD, intS
If Len(Trim(Request("postback"))) > 0 Then postback = Request("postback") else postback = false end if
Call OpenConnZip()
Set objRst = Server.CreateObject("ADODB.RecordSet")
If postback Then
country = UCase(Request("country"))
zipcode = Request("zipcode")
postalcode = UCase(Request("postalcode"))
If Country = "US" or Country = "CA" Then
If Country = "US" Then
If Len(Trim(zipcode)) <> 5 or Not IsNumeric(zipcode) Then
blnErrMessage = True
errMessage = "Zip Code must be 5 digits and numeric."
End IF
End IF
If Country = "CA" Then
If (Len(Trim(postalcode)) < 6 or Len(Trim(postalcode)) > 7) Then
blnErrMessage = True
errMessage = "Postal Code must follow the form of 'A1A 1A1' or 'A1A1A1'."
End IF
If Len(Trim(postalcode)) = 6 Then
postalcode = Mid(postalcode,1,3) & " " & Mid(postalcode,4,3)
End IF
If instr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", mid(postalcode,1,1)) = 0 OR _
instr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", mid(postalcode,3,1)) = 0 OR _
instr(1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", mid(postalcode,6,1)) = 0 OR _
instr(1, "0123456789", mid(postalcode,2,1)) = 0 OR _
instr(1, "0123456789", mid(postalcode,5,1)) = 0 OR _
instr(1, "0123456789", mid(postalcode,7,1)) = 0 OR _
len(trim(mid(postalcode,4,1))) <> 0 Then
blnErrMessage = True
errMessage = "Postal Code must follow the form of 'A1A 1A1' or 'A1A1A1'"
End IF
End IF
If Not blnErrMessage Then
If country = "US" Then
Call SetRadius(25, zipcode, Country)
sqlQuery = "SELECT DISTINCT ZIPCODES.ZIPCode, ZIPCODES.Latitude, ZIPCODES.Longitude, SHOPS.* "
sqlQuery = sqlQuery & "FROM ZIPCODES INNER JOIN SHOPS ON ZIPCODES.ZIPCode = SHOPS.SHOP_ZIPCODE "
sqlQuery = sqlQuery & "WHERE LATITUDE <= " & HighLatitude & " "
sqlQuery = sqlQuery & "AND LATITUDE >= " & LowLatitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE >= " & LowLongitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE <= " & HighLongitude & " "
sqlQuery = sqlQuery & "AND SHOP_COUNTRY = 'US' AND SHOP_TYPE = 1;"
'Response.Write sqlQuery & " "
objRst.Open sqlQuery, objConnZip, 1, 3
If Not objRst.EOF Then
blnShops = True
intCounter = 0
ReDim arrShops(objRst.RecordCount,8)
Do Until objRst.EOF
arrShops(intCounter,0) = objRst("ZIPCODE")
arrShops(intCounter,1) = FormatNumber(GetDistance(Lat_Home, Long_Home, objRst("LATITUDE"), objRst("LONGITUDE"), "M"),2)
arrShops(intCounter,2) = objRst("SHOP_NAME") & " " & objRst("SHOP_ADDR1")
If Len(Trim(objRst("SHOP_ADDR2"))) > 0 Then
arrShops(intCounter,2) = arrShops(intCounter,2) & " " & objRst("SHOP_ADDR2")
End IF
arrShops(intCounter,2) = arrShops(intCounter,2) & ", " & objRst("SHOP_CITY") & ", " & objRst("SHOP_STATE") & " " & objRst("SHOP_ZIPCODE")
arrShops(intCounter,3) = objRst("SHOP_TYPE")
arrShops(intCounter,4) = objRst("SHOP_PHONE")
arrShops(intCounter,5) = objRst("SHOP_FAX")
arrShops(intCounter,6) = objRst("SHOP_EMAIL")
arrShops(intCounter,7) = objRst("SHOP_URL")
intCounter = intCounter + 1
objRst.MoveNext
Loop
End IF
objRst.Close
Call SetRadius(1000, zipcode, Country)
sqlQuery = "SELECT DISTINCT ZIPCODES.ZIPCode, ZIPCODES.Latitude, ZIPCODES.Longitude, SHOPS.* "
sqlQuery = sqlQuery & "FROM ZIPCODES INNER JOIN SHOPS ON ZIPCODES.ZIPCode = SHOPS.SHOP_ZIPCODE "
sqlQuery = sqlQuery & "WHERE LATITUDE <= " & HighLatitude & " "
sqlQuery = sqlQuery & "AND LATITUDE >= " & LowLatitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE >= " & LowLongitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE <= " & HighLongitude & " "
sqlQuery = sqlQuery & "AND SHOP_COUNTRY = 'US' AND SHOP_TYPE = 2 AND STATECODE = '" & Base_State & "';"
'Response.Write sqlQuery & " "
objRst.Open sqlQuery, objConnZip, 1, 3
If Not objRst.EOF Then
blnDist = True
intCounter = 0
ReDim arrDist(objRst.RecordCount,8)
Do Until objRst.EOF
arrDist(intCounter,0) = objRst("ZIPCODE")
arrDist(intCounter,1) = FormatNumber(GetDistance(Lat_Home, Long_Home, objRst("LATITUDE"), objRst("LONGITUDE"), "M"),2)
arrDist(intCounter,2) = objRst("SHOP_NAME") & " " & objRst("SHOP_ADDR1")
If Len(Trim(objRst("SHOP_ADDR2"))) > 0 Then
arrDist(intCounter,2) = arrDist(intCounter,2) & " " & objRst("SHOP_ADDR2")
End IF
arrDist(intCounter,2) = arrDist(intCounter,2) & ", " & objRst("SHOP_CITY") & ", " & objRst("SHOP_STATE") & " " & objRst("SHOP_ZIPCODE")
arrDist(intCounter,3) = objRst("SHOP_TYPE")
arrDist(intCounter,4) = objRst("SHOP_PHONE")
arrDist(intCounter,5) = objRst("SHOP_FAX")
arrDist(intCounter,6) = objRst("SHOP_EMAIL")
arrDist(intCounter,7) = objRst("SHOP_URL")
intCounter = intCounter + 1
objRst.MoveNext
Loop
End IF
objRst.Close
Else
Call SetRadius(25, postalcode, Country)
sqlQuery = "SELECT DISTINCT POSTALCODES.POSTALCODE, POSTALCODES.Latitude, POSTALCODES.Longitude, SHOPS.* "
sqlQuery = sqlQuery & "FROM POSTALCODES INNER JOIN SHOPS ON POSTALCODES.POSTALCODE = SHOPS.SHOP_ZIPCODE "
sqlQuery = sqlQuery & "WHERE LATITUDE <= " & HighLatitude & " "
sqlQuery = sqlQuery & "AND LATITUDE >= " & LowLatitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE >= " & LowLongitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE <= " & HighLongitude & " "
sqlQuery = sqlQuery & "AND SHOP_COUNTRY = 'CA' AND SHOP_TYPE = 1;"
'Response.Write sqlQuery & " "
objRst.Open sqlQuery, objConnZip, 1, 3
If Not objRst.EOF Then
blnShops = True
intCounter = 0
ReDim arrShops(objRst.RecordCount,8)
Do Until objRst.EOF
arrShops(intCounter,0) = objRst("POSTALCODE")
arrShops(intCounter,1) = FormatNumber(GetDistance(Lat_Home, Long_Home, objRst("LATITUDE"), objRst("LONGITUDE"), "M"),2)
arrShops(intCounter,2) = objRst("SHOP_NAME") & " " & objRst("SHOP_ADDR1")
If Len(Trim(objRst("SHOP_ADDR2"))) > 0 Then
arrShops(intCounter,2) = arrShops(intCounter,2) & " " & objRst("SHOP_ADDR2")
End IF
arrShops(intCounter,2) = arrShops(intCounter,2) & ", " & objRst("SHOP_CITY") & ", " & objRst("SHOP_STATE") & " " & objRst("SHOP_ZIPCODE")
arrShops(intCounter,3) = objRst("SHOP_TYPE")
arrShops(intCounter,4) = objRst("SHOP_PHONE")
arrShops(intCounter,5) = objRst("SHOP_FAX")
arrShops(intCounter,6) = objRst("SHOP_EMAIL")
arrShops(intCounter,7) = objRst("SHOP_URL")
intCounter = intCounter + 1
objRst.MoveNext
Loop
End IF
objRst.Close
Call SetRadius(1000, postalcode, Country)
sqlQuery = "SELECT DISTINCT POSTALCODES.POSTALCODE, POSTALCODES.Latitude, POSTALCODES.Longitude, SHOPS.* "
sqlQuery = sqlQuery & "FROM POSTALCODES INNER JOIN SHOPS ON POSTALCODES.POSTALCODE = SHOPS.SHOP_ZIPCODE "
sqlQuery = sqlQuery & "WHERE LATITUDE <= " & HighLatitude & " "
sqlQuery = sqlQuery & "AND LATITUDE >= " & LowLatitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE >= " & LowLongitude & " "
sqlQuery = sqlQuery & "AND LONGITUDE <= " & HighLongitude & " "
sqlQuery = sqlQuery & "AND SHOP_COUNTRY = 'CA' AND SHOP_TYPE = 2 AND PROVINCECODE = '" & Base_State & "';"
'Response.Write sqlQuery & " "
objRst.Open sqlQuery, objConnZip, 1, 3
If Not objRst.EOF Then
blnDist = True
intCounter = 0
ReDim arrDist(objRst.RecordCount,8)
Do Until objRst.EOF
arrDist(intCounter,0) = objRst("POSTALCODE")
arrDist(intCounter,1) = FormatNumber(GetDistance(Lat_Home, Long_Home, objRst("LATITUDE"), objRst("LONGITUDE"), "M"),2)
arrDist(intCounter,2) = objRst("SHOP_NAME") & " " & objRst("SHOP_ADDR1")
If Len(Trim(objRst("SHOP_ADDR2"))) > 0 Then
arrDist(intCounter,2) = arrDist(intCounter,2) & " " & objRst("SHOP_ADDR2")
End IF
arrDist(intCounter,2) = arrDist(intCounter,2) & ", " & objRst("SHOP_CITY") & ", " & objRst("SHOP_STATE") & " " & objRst("SHOP_ZIPCODE")
arrDist(intCounter,3) = objRst("SHOP_TYPE")
arrDist(intCounter,4) = objRst("SHOP_PHONE")
arrDist(intCounter,5) = objRst("SHOP_FAX")
arrDist(intCounter,6) = objRst("SHOP_EMAIL")
arrDist(intCounter,7) = objRst("SHOP_URL")
intCounter = intCounter + 1
objRst.MoveNext
Loop
End IF
objRst.Close
End if
If blnShops Then
Call QuickSort(arrShops,0,UBound(arrShops)-1,1,"N")
'For intCounter = 0 To UBound(arrShops) -1
' Response.Write arrShops(intCounter,0) & " : " & arrShops(intCounter,1) & " : " & arrShops(intCounter,2) & " "
'Next
End IF
End IF
Else
sqlQuery = "SELECT SHOPS.SHOP_ZIPCODE, SHOPS.*, COUNTRY.COUNTRY_NAME "
sqlQuery = sqlQuery & "FROM SHOPS INNER JOIN COUNTRY ON SHOPS.SHOP_COUNTRY = COUNTRY.COUNTRY_SH "
sqlQuery = sqlQuery & "WHERE (((SHOPS.SHOP_COUNTRY)<>'US' And (SHOPS.SHOP_COUNTRY)<>'CA')) "
sqlQuery = sqlQuery & "ORDER BY SHOPS.SHOP_COUNTRY, SHOPS.SHOP_CITY;"
'Response.Write sqlQuery & " "
'Response.End
objRst.Open sqlQuery, objConnZip, 1, 3
If Not objRst.EOF Then
blnShops = True
intCounter = 0
ReDim arrShops(objRst.RecordCount,8)
Do Until objRst.EOF
arrShops(intCounter,0) = objRst("SHOP_ZIPCODE")
arrShops(intCounter,1) = ""
arrShops(intCounter,2) = objRst("SHOP_NAME") & " " & objRst("SHOP_ADDR1")
If Len(Trim(objRst("SHOP_ADDR2"))) > 0 Then
arrShops(intCounter,2) = arrShops(intCounter,2) & " " & objRst("SHOP_ADDR2")
End IF
arrShops(intCounter,2) = arrShops(intCounter,2) & ", " & objRst("SHOP_CITY") & ", " & objRst("SHOP_STATE_O") & " " & objRst("COUNTRY_NAME")
arrShops(intCounter,3) = objRst("SHOP_TYPE")
arrShops(intCounter,4) = objRst("SHOP_PHONE")
arrShops(intCounter,5) = objRst("SHOP_FAX")
arrShops(intCounter,6) = objRst("SHOP_EMAIL")
arrShops(intCounter,7) = objRst("SHOP_URL")
intCounter = intCounter + 1
objRst.MoveNext
Loop
End IF
objRst.Close
End IF
End if
Call CloseConn()
%>
IMCO Performance Exhaust