<% '*********************************************************************** ' System : ASPBanner Unlimited ' Author : Christopher Williams of CJWSoft www.CJWSoft.com ' ' COPYRIGHT NOTICE ' ' See attached Software License Agreement ' ' (c) Copyright 2000 - 2003 by CJWSoft. All rights reserved '*********************************************************************** 'Function to randomize array order Function RandmizeArray(ByVal InputArray) SwapUpper = UBound(InputArray) SwapLower = LBound(InputArray) Randomize(Cbyte(Left(Right(Time(),5),2))) For SwapLoop = SwapLower to SwapUpper SwapPosition = Int(Rnd * (SwapUpper + 1)) TempVar = InputArray(SwapLoop) InputArray(SwapLoop) = InputArray(SwapPosition) InputArray(SwapPosition) = TempVar Next RandmizeArray = InputArray End Function Set BanDataConn = Server.CreateObject("ADODB.Connection") BanDataConn.Open BannerConnectionString Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdGetZones = Server.CreateObject("ADODB.Recordset") CmdBannerTemp.CommandText = "SELECT Banner_Zones.* FROM Banner_Zones" CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = ConnBannerSystem CmdGetZones.Open CmdBannerTemp, , 1, 3 While Not CmdGetZones.EOF ZoneString = ZoneString & CmdGetZones("Zone_ID") & "," CmdGetZones.MoveNext Wend ZoneString = Left(ZoneString,Len(ZoneString) - 1) ZoneArray = Split(ZoneString,",") Application.Lock For ZoneIndex = 0 to Ubound(ZoneArray) LocationIndex = ZoneArray(ZoneIndex) Application("BannerZone" & LocationIndex) = "" Application("BannerZone" & LocationIndex & "_Cycle") = "" Next Application.Unlock ' ************************************************************* ' Checks status settings for Banners in the database and changes them if necessary ' ************************************************************* Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdUpdateWaiting = Server.CreateObject("ADODB.Recordset") If BannerDatabaseType = "SQL" Then CmdBannerTemp.CommandText = "UPDATE Banners SET Banner_Status = 'Active' WHERE (Banner_Status = 'Waiting') AND (Banner_Begin_Date <= '" & InternationalDate(DATE) & "')" ElseIf BannerDatabaseType = "MSACCESS" Then CmdBannerTemp.CommandText = "UPDATE Banners SET Banner_Status = 'Active' WHERE (Banner_Status = 'Waiting') AND (Banner_Begin_Date <= #" & InternationalDate(DATE) & "#)" End IF CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = BanDataConn CmdUpdateWaiting.Open CmdBannerTemp, , 0, 1 CmdUpdateWaiting.Close Set CmdUpdateWaiting = Nothing Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdUpdateExpired = Server.CreateObject("ADODB.Recordset") If BannerDatabaseType = "SQL" Then CmdBannerTemp.CommandText = "UPDATE Banners SET Banner_Status = 'Expired' WHERE (Banner_Status = 'Active') AND (NOT (Banner_End_Date IS NULL)) AND (Banner_End_Date <= '" & InternationalDate(DATE) & "')" ElseIf BannerDatabaseType = "MSACCESS" Then CmdBannerTemp.CommandText = "UPDATE Banners SET Banner_Status = 'Expired' WHERE (Banner_Status = 'Active') AND (NOT (Banner_End_Date IS NULL)) AND (Banner_End_Date <= #" & InternationalDate(DATE) & "#)" End IF CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = BanDataConn CmdUpdateExpired.Open CmdBannerTemp, , 0, 1 CmdUpdateExpired.Close Set CmdUpdateExpired = Nothing Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdRetrieveImpLimitedAds = Server.CreateObject("ADODB.Recordset") CmdBannerTemp.CommandText = "SELECT Banners.* FROM Banners WHERE (Banner_Status = 'Active') AND (Banner_End_Date IS NULL)" CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = ConnBannerSystem CmdRetrieveImpLimitedAds.Open CmdBannerTemp, , 0, 1 While Not CmdRetrieveImpLimitedAds.EOF Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdRetrieveImpressions = Server.CreateObject("ADODB.Recordset") CmdBannerTemp.CommandText = "SELECT SUM(Banner_Impressions) AS TotalImpressions FROM Banner_Stats WHERE (Banner_ID = " & CmdRetrieveImpLimitedAds("Banner_ID") & ")" CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = ConnBannerSystem CmdRetrieveImpressions.Open CmdBannerTemp, , 0, 1 If Not CmdRetrieveImpressions.EOF Then If CmdRetrieveImpressions("TotalImpressions") >= CmdRetrieveImpLimitedAds("Banner_Impressions_Purchased") Then Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdUpdateImpHit = Server.CreateObject("ADODB.Recordset") CmdBannerTemp.CommandText = "UPDATE Banners SET Banner_Status = 'ImpHit' WHERE (Banner_ID = " & CmdRetrieveImpLimitedAds("Banner_ID") & ")" CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = BanDataConn CmdUpdateImpHit.Open CmdBannerTemp, , 0, 1 End IF End If CmdRetrieveImpLimitedAds.MoveNext Wend CmdRetrieveImpLimitedAds.Close Set CmdRetrieveImpLimitedAds = Nothing CmdRetrieveImpressions.Close Set CmdRetrieveImpressions = Nothing CmdUpdateImpHit.Close Set CmdUpdateImpHit = Nothing BanDataConn.Close Set BanDataConn = Nothing For ZoneIndex = 0 to Ubound(ZoneArray) LocationIndex = ZoneArray(ZoneIndex) ' ************************************************************* ' Sets the Application Variables Needed for for BannerLocations ' ************************************************************* Set ConnBannerSystem = Server.CreateObject("ADODB.Connection") ConnBannerSystem.Open BannerConnectionString Set CmdBannerTemp = Server.CreateObject("ADODB.Command") Set CmdRetrieveAds = Server.CreateObject("ADODB.Recordset") CmdBannerTemp.CommandText = "SELECT Banners.* FROM Banners WHERE (Banner_Status = 'Active') And Zone_ID = " & LocationIndex CmdBannerTemp.CommandType = 1 Set CmdBannerTemp.ActiveConnection = ConnBannerSystem CmdRetrieveAds.Open CmdBannerTemp, , 0, 1 If Not CmdRetrieveAds.EOF Then Application.Lock Application("BannerZone" & LocationIndex) = "" CycleBannerTotal = 0 CycleList = "" NewCycleList = "" While Not CmdRetrieveAds.EOF For LoopBanner = 1 To CmdRetrieveAds("Banner_Weight") CycleBannerTotal = CycleBannerTotal + 1 If Application("BannerZone" & LocationIndex) <> "" Then Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & "|" End If Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_ID") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Image_URL") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Width") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Height") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Border") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Text_Message") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_ALT_Text") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Target") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_HTML_code") & vbTab Application("BannerZone" & LocationIndex) = Application("BannerZone" & LocationIndex) & CmdRetrieveAds("Banner_Type") & vbTab Next CmdRetrieveAds.MoveNext Wend For CycleLoop = 0 To CycleBannerTotal - 1 If CycleList <> "" Then CycleList = CycleList & "|" End If CycleList = CycleList & CycleLoop Next CycleListArray = Split(CycleList,"|") CycleListArray = RandmizeArray(CycleListArray) For CycleListArrayIndex = 0 To Ubound(CycleListArray) If NewCycleList <> "" Then NewCycleList = NewCycleList & "," End If NewCycleList = NewCycleList & CycleListArray(CycleListArrayIndex) Next Application("BannerZone" & LocationIndex & "_Cycle") = "0|" & CycleBannerTotal & "|" & NewCycleList Application.Unlock End If CmdRetrieveAds.Close Set CmdRetrieveAds = Nothing Next ConnBannerSystem.Close Set ConnBannerSystem = Nothing Application.Lock Application("BannersLastUpdated") = Hour(time) Application.Unlock %>