Blue Grass Ltd.
Deerfoot Trail North to the
Balzac Overpass, Go East
Take first right on to South Service Road
Follow 2 kms, we are located on the left hand side.
CALGARY (Balzac), Alberta

403.226.0468 Telephone
403.226.0713 Fax

bluegrass@telus.net

MAILING ADDRESS:
PO Box 120
Balzac, Alberta   T0M 0E0

Blue Grass Sod Farm
3 Miles west of #2 overpass on Highway 11A 1 Mile North on RR 282
RED DEER, Alberta

403.347.7211 Telephone
403.342.7488 Fax

bluesod@telusplanet.net

MAILING ADDRESS:
Box 11 Site 2 RR 1
Red Deer, Alberta   T4N 5E1

HOURS OF OPERATION

CALGARY RETAIL
Monday to Friday
9:00 a.m. to 8:00 p.m.
Saturday
9:00 a.m. to 6:00 p.m.
Sunday
9:00 a.m. to 5:00 p.m.

CALGARY WHOLESALE
Monday to Friday
7:00 a.m. to 7:00 p.m.
Saturday
7:00 a.m. to 6:00 p.m.
Sunday
9:00 a.m. to 5:00 p.m.

RED DEER
Monday to Friday
7:00 a.m. to 8:00 p.m.
Saturday
7:00 a.m. to 5:00 p.m.
Sunday
10:00 a.m. to 4:00 p.m.
 




Image # of



100% Natural Organic Turf Care Products
Now Available
(Retail and Commercial)
Please visit their informative website @
www.turfrevolution.com





Some images in the Products area of our site
are supplied by Horticopia.com
and LANTA.



 
SOD IS NOW AVAILABLE!!!



DREAM YOUR GARDEN ... GARDEN YOUR DREAM



EARLY BIRD GETS THE WORM' JUNE SPECIALS
Save 20%
Hedging Shears and Loppers


MORE GREAT JUNE SPECIALS!!
Come in and check out our great specials on water gardening products.










AT BLUE GRASS, WE'RE DOWN TO EARTH!

<% '*************************************** ' File: Upload.asp ' Author: Jacob "Beezle" Gilley ' Email: avis7@airmail.net ' Date: 12/07/2000 ' Comments: The code for the Upload, CByteString, ' CWideString subroutines was originally ' written by Philippe Collignon...or so ' he claims. Also, I am not responsible ' for any ill effects this script may ' cause and provide this script "AS IS". ' Enjoy! '**************************************** Class FileUploader Public Files Private mcolFormElem Private Sub Class_Initialize() Set Files = Server.CreateObject("Scripting.Dictionary") Set mcolFormElem = Server.CreateObject("Scripting.Dictionary") End Sub Private Sub Class_Terminate() If IsObject(Files) Then Files.RemoveAll() Set Files = Nothing End If If IsObject(mcolFormElem) Then mcolFormElem.RemoveAll() Set mcolFormElem = Nothing End If End Sub Public Property Get Form(sIndex) Form = "" If mcolFormElem.Exists(LCase(sIndex)) Then Form = mcolFormElem.Item(LCase(sIndex)) End Property Public Default Sub Upload() Dim biData, sInputName Dim nPosBegin, nPosEnd, nPos, vDataBounds, nDataBoundPos Dim nPosFile, nPosBound biData = Request.BinaryRead(Request.TotalBytes) nPosBegin = 1 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13))) If (nPosEnd-nPosBegin) <= 0 Then Exit Sub vDataBounds = MidB(biData, nPosBegin, nPosEnd-nPosBegin) nDataBoundPos = InstrB(1, biData, vDataBounds) Do Until nDataBoundPos = InstrB(biData, vDataBounds & CByteString("--")) nPos = InstrB(nDataBoundPos, biData, CByteString("Content-Disposition")) nPos = InstrB(nPos, biData, CByteString("name=")) nPosBegin = nPos + 6 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34))) sInputName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) nPosFile = InstrB(nDataBoundPos, biData, CByteString("filename=")) nPosBound = InstrB(nPosEnd, biData, vDataBounds) If nPosFile <> 0 And nPosFile < nPosBound Then Dim oUploadFile, sFileName Set oUploadFile = New UploadedFile nPosBegin = nPosFile + 10 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(34))) sFileName = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) oUploadFile.FileName = Right(sFileName, Len(sFileName)-InStrRev(sFileName, "\")) nPos = InstrB(nPosEnd, biData, CByteString("Content-Type:")) nPosBegin = nPos + 14 nPosEnd = InstrB(nPosBegin, biData, CByteString(Chr(13))) oUploadFile.ContentType = CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) nPosBegin = nPosEnd+4 nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2 oUploadFile.FileData = MidB(biData, nPosBegin, nPosEnd-nPosBegin) If oUploadFile.FileSize > 0 Then Files.Add LCase(sInputName), oUploadFile Else nPos = InstrB(nPos, biData, CByteString(Chr(13))) nPosBegin = nPos + 4 nPosEnd = InstrB(nPosBegin, biData, vDataBounds) - 2 If Not mcolFormElem.Exists(LCase(sInputName)) Then mcolFormElem.Add LCase(sInputName), CWideString(MidB(biData, nPosBegin, nPosEnd-nPosBegin)) End If nDataBoundPos = InstrB(nDataBoundPos + LenB(vDataBounds), biData, vDataBounds) Loop End Sub 'String to byte string conversion Private Function CByteString(sString) Dim nIndex For nIndex = 1 to Len(sString) CByteString = CByteString & ChrB(AscB(Mid(sString,nIndex,1))) Next End Function 'Byte string to string conversion Private Function CWideString(bsString) Dim nIndex CWideString ="" For nIndex = 1 to LenB(bsString) CWideString = CWideString & Chr(AscB(MidB(bsString,nIndex,1))) Next End Function End Class Class UploadedFile Public ContentType Public FileName Public FileData Public Property Get FileSize() FileSize = LenB(FileData) End Property Public Sub SaveToDisk(sPath) Dim oFS, oFile Dim nIndex sPath = server.mapPath("./products/images") ' this means the current directory If sPath = "" Or FileName = "" Then Exit Sub If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\" Set oFS = Server.CreateObject("Scripting.FileSystemObject") If Not oFS.FolderExists(sPath) Then Exit Sub Set oFile = oFS.CreateTextFile(sPath & FileName, True) For nIndex = 1 to LenB(FileData) oFile.Write Chr(AscB(MidB(FileData,nIndex,1))) Next oFile.Close End Sub Public Sub SaveToDatabase(ByRef oField) If LenB(FileData) = 0 Then Exit Sub If IsObject(oField) Then oField.AppendChunk FileData End If End Sub End Class %>