<%
'Include Common Files @1-C42A9701
%>
<!-- #INCLUDE VIRTUAL="Common.asp"-->
<!-- #INCLUDE VIRTUAL="Cache.asp" -->
<!-- #INCLUDE VIRTUAL="Template.asp" -->
<!-- #INCLUDE VIRTUAL="Sorter.asp" -->
<!-- #INCLUDE VIRTUAL="Navigator.asp" -->
<%
'End Include Common Files

'Initialize Page @1-7CCA8452
' Variables
Dim PathToRoot, ScriptPath
Dim FileName
Dim Redirect
Dim Tpl, HTMLTemplate
Dim TemplateFileName
Dim ComponentName
Dim PathToCurrentPage

' Events
Dim CCSEvents
Dim CCSEventResult

' Connections
Dim DBsignage

' Page controls
Dim signageSearch
Dim signage

Redirect = ""
TemplateFileName = "signage_list.html"
Set CCSEvents = CreateObject("Scripting.Dictionary")
PathToCurrentPage = "./"
FileName = "signage_list.asp"
PathToRoot = "./"
ScriptPath = Left(Request.ServerVariables("PATH_TRANSLATED"), Len(Request.ServerVariables("PATH_TRANSLATED")) - Len(FileName))
'End Initialize Page

'Initialize Objects @1-EA057DEE
Set DBsignage = New clsDBsignage
DBsignage.Open

' Controls
Set signageSearch = new clsRecordsignageSearch
Set signage = New clsGridsignage
signage.Initialize DBsignage

CCSEventResult = CCRaiseEvent(CCSEvents, "AfterInitialize", Nothing)
'End Initialize Objects

'Execute Components @1-2D34A168
signageSearch.Operation
'End Execute Components

'Go to destination page @1-6D35F4FD
If NOT ( Redirect = "" ) Then
    UnloadPage
    Response.Redirect Redirect
End If
'End Go to destination page

'Initialize HTML Template @1-0155E1BE
CCSEventResult = CCRaiseEvent(CCSEvents, "OnInitializeView", Nothing)
Set HTMLTemplate = new clsTemplate
Set HTMLTemplate.Cache = TemplatesRepository
HTMLTemplate.LoadTemplate ScriptPath & TemplateFileName
Set Tpl = HTMLTemplate.Block("main")
CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShow", Nothing)
'End Initialize HTML Template

'Show Page @1-63160DA1
signageSearch.Show Tpl
signage.Show Tpl
HTMLTemplate.PParse "main", False
'End Show Page

'Unload Page @1-CB210C62
UnloadPage
Set Tpl = Nothing
Set HTMLTemplate = Nothing
'End Unload Page

'UnloadPage Sub @1-60A14B52
Sub UnloadPage()
    CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeUnload", Nothing)
    If DBsignage.State = adStateOpen Then _
        DBsignage.Close
    Set DBsignage = Nothing
    Set CCSEvents = Nothing
    Set signageSearch = Nothing
    Set signage = Nothing
End Sub
'End UnloadPage Sub

Class clsRecordsignageSearch 'signageSearch Class @2-9AC2CE2D

'signageSearch Variables @2-B8FE8452

    ' Public variables
    Public ComponentName
    Public HTMLFormAction
    Public PressedButton
    Public Errors
    Public FormSubmitted
    Public EditMode
    Public Visible
    Public Recordset
    Public TemplateBlock

    Public CCSEvents
    Private CCSEventResult

    Public InsertAllowed
    Public UpdateAllowed
    Public DeleteAllowed
    Public ReadAllowed
    Public DataSource
    Public Command
    Public ValidatingControls
    Public Controls

    ' Class variables
    Dim s_English
    Dim s_Gaelic
    Dim s_Category
    Dim s_CategoryDataSource
    Dim Button_DoSearch
'End signageSearch Variables

'signageSearch Class_Initialize Event @2-BF23810E
    Private Sub Class_Initialize()

        Visible = True
        Set Errors = New clsErrors
        Set CCSEvents = CreateObject("Scripting.Dictionary")
        InsertAllowed = False
        UpdateAllowed = False
        DeleteAllowed = False
        ReadAllowed = True
        Dim Method
        Dim OperationMode
        OperationMode = Split(CCGetFromGet("ccsForm", Empty), ":")
        If UBound(OperationMode) > -1 Then 
            FormSubmitted = (OperationMode(0) = "signageSearch")
        End If
        If UBound(OperationMode) > 0 Then 
            EditMode = (OperationMode(1) = "Edit")
        End If
        ComponentName = "signageSearch"
        Method = IIf(FormSubmitted, ccsPost, ccsGet)
        Set s_English = CCCreateControl(ccsTextBox, "s_English", "s_English", ccsText, Empty, CCGetRequestParam("s_English", Method))
        Set s_Gaelic = CCCreateControl(ccsTextBox, "s_Gaelic", "s_Gaelic", ccsText, Empty, CCGetRequestParam("s_Gaelic", Method))
        Set s_CategoryDataSource = CCCreateDataSource(dsListOfValues, Empty, Array( _
            Array("Warning", "Information", "Instruction", "Other"), _
            Array("Warning", "Information", "Instruction", "Other")))
        Set s_Category = CCCreateList(ccsListBox, "s_Category", "s_Category", ccsText, CCGetRequestParam("s_Category", Method), s_CategoryDataSource)
        Set Button_DoSearch = CCCreateButton("Button_DoSearch")
        Set ValidatingControls = new clsControls
        ValidatingControls.addControls Array(s_English, s_Gaelic, s_Category)
        
    End Sub
'End signageSearch Class_Initialize Event

'signageSearch Class_Terminate Event @2-199A7E95
    Private Sub Class_Terminate()
        Set Errors = Nothing
        Set CCSEvents = Nothing
    End Sub
'End signageSearch Class_Terminate Event

'signageSearch Validate Method @2-B9D513CF
    Function Validate()
        Dim Validation
        ValidatingControls.Validate
        CCSEventResult = CCRaiseEvent(CCSEvents, "OnValidate", Me)
        Validate = ValidatingControls.isValid() And (Errors.Count = 0)
    End Function
'End signageSearch Validate Method

'signageSearch Operation Method @2-A8FA2DB5
    Sub Operation()
        If NOT ( Visible AND FormSubmitted ) Then Exit Sub

        If FormSubmitted Then
            PressedButton = "Button_DoSearch"
            If Not IsEmpty(CCGetParam("Button_DoSearch", Empty)) Then
                PressedButton = "Button_DoSearch"
            End If
        End If
        Redirect = "signage_list.asp"
        If Validate() Then
            If PressedButton = "Button_DoSearch" Then
                If NOT Button_DoSearch.OnClick() Then
                    Redirect = ""
                Else
                    Redirect = "signage_list.asp?" & CCGetQueryString("Form", Array(PressedButton, "ccsForm"))
                End If
            End If
        Else
            Redirect = ""
        End If
    End Sub
'End signageSearch Operation Method

'signageSearch Show Method @2-1A077643
    Sub Show(Tpl)

        If NOT Visible Then Exit Sub

        EditMode = False
        HTMLFormAction = FileName & "?" & CCAddParam(Request.ServerVariables("QUERY_STRING"), "ccsForm", "signageSearch" & IIf(EditMode, ":Edit", ""))
        Set TemplateBlock = Tpl.Block("Record " & ComponentName)
        TemplateBlock.Variable("HTMLFormName") = ComponentName
        TemplateBlock.Variable("HTMLFormEnctype") ="application/x-www-form-urlencoded"
        Set Controls = CCCreateCollection(TemplateBlock, Null, ccsParseOverwrite, _
            Array(s_English, s_Gaelic, s_Category, Button_DoSearch))
        If Not FormSubmitted Then
        End If
        If FormSubmitted Then
            With TemplateBlock.Block("Error")
                .Variable("Error") = ValidatingControls.GetErrors & Errors.ToString
                .Parse False
            End With
        End If
        TemplateBlock.Variable("Action") = HTMLFormAction

        CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShow", Me)
        If Visible Then Controls.Show
    End Sub
'End signageSearch Show Method

End Class 'End signageSearch Class @2-A61BA892

Class clsGridsignage 'signage Class @7-18C6150A

'signage Variables @7-7A1775A9

    ' Private variables
    Private VarPageSize
    ' Public variables
    Public ComponentName, CCSEvents
    Public Visible, Errors
    Public DataSource
    Public PageNumber
    Public Command
    Public TemplateBlock
    Public ActiveSorter, SortingDirection
    Public Recordset

    Private CCSEventResult

    ' Grid Controls
    Public StaticControls, RowControls
    Dim Sorter_int
    Dim Sorter_English
    Dim Sorter_Gaelic
    Dim Sorter_Category
    Dim int1
    Dim English
    Dim Gaelic
    Dim Category
    Dim signage_Insert
    Dim Navigator
'End signage Variables

'signage Class_Initialize Event @7-C2A76E40
    Private Sub Class_Initialize()
        ComponentName = "signage"
        Visible = True
        Set CCSEvents = CreateObject("Scripting.Dictionary")
        Set Errors = New clsErrors
        Set DataSource = New clssignageDataSource
        Set Command = New clsCommand
        PageSize = CCGetParam(ComponentName & "PageSize", Empty)
        If IsNumeric(PageSize) And Len(PageSize) > 0 Then
            If PageSize <= 0 Then Errors.AddError(CCSRunTimeMessages.GetMessage("GridPageSizeError", Empty))
            If PageSize > 100 Then PageSize = 100
        End If
        If NOT IsNumeric(PageSize) OR IsEmpty(PageSize) Then _
            PageSize = 20 _
        Else _
            PageSize = CInt(PageSize)
        PageNumber = CCGetParam(ComponentName & "Page", 1)
        If Not IsNumeric(PageNumber) And Len(PageNumber) > 0 Then
            Errors.AddError(CCSRunTimeMessages.GetMessage("GridPageNumberError", Empty))
            PageNumber = 1
        ElseIf Len(PageNumber) > 0 Then
            If PageNumber > 0 Then
                PageNumber = CInt(PageNumber)
            Else
                Errors.AddError(CCSRunTimeMessages.GetMessage("GridPageNumberError", Empty))
                PageNumber = 1
            End If
        Else
            PageNumber = 1
        End If
        ActiveSorter = CCGetParam("signageOrder", Empty)
        SortingDirection = CCGetParam("signageDir", Empty)
        If NOT(SortingDirection = "ASC" OR SortingDirection = "DESC") Then _
            SortingDirection = Empty

        Set int1 = CCCreateControl(ccsLink, "int1", "int1", ccsFloat, Empty, CCGetRequestParam("int1", ccsGet))
        Set English = CCCreateControl(ccsLabel, "English", "English", ccsText, Empty, CCGetRequestParam("English", ccsGet))
        Set Gaelic = CCCreateControl(ccsLabel, "Gaelic", "Gaelic", ccsText, Empty, CCGetRequestParam("Gaelic", ccsGet))
        Set Category = CCCreateControl(ccsLabel, "Category", "Category", ccsText, Empty, CCGetRequestParam("Category", ccsGet))
        Set Sorter_int = CCCreateSorter("Sorter_int", Me, FileName)
        Set Sorter_English = CCCreateSorter("Sorter_English", Me, FileName)
        Set Sorter_Gaelic = CCCreateSorter("Sorter_Gaelic", Me, FileName)
        Set Sorter_Category = CCCreateSorter("Sorter_Category", Me, FileName)
        Set signage_Insert = CCCreateControl(ccsLink, "signage_Insert", "signage_Insert", ccsText, Empty, CCGetRequestParam("signage_Insert", ccsGet))
        Set Navigator = CCCreateNavigator(ComponentName, "Navigator", FileName, 10, tpSimple)
    End Sub
'End signage Class_Initialize Event

'signage Initialize Method @7-2AEA3975
    Sub Initialize(objConnection)
        If NOT Visible Then Exit Sub

        Set DataSource.Connection = objConnection
        DataSource.PageSize = PageSize
        DataSource.SetOrder ActiveSorter, SortingDirection
        DataSource.AbsolutePage = PageNumber
    End Sub
'End signage Initialize Method

'signage Class_Terminate Event @7-2C3914FE
    Private Sub Class_Terminate()
        Set CCSEvents = Nothing
        Set DataSource = Nothing
        Set Command = Nothing
        Set Errors = Nothing
    End Sub
'End signage Class_Terminate Event

'signage Show Method @7-0DE36BC9
    Sub Show(Tpl)
        If NOT Visible Then Exit Sub

        Dim RecordCounter, ShownRecords
        Dim RowBlock

        With DataSource
            .Parameters("urls_English") = CCGetRequestParam("s_English", ccsGET)
            .Parameters("urls_Gaelic") = CCGetRequestParam("s_Gaelic", ccsGET)
            .Parameters("urls_Category") = CCGetRequestParam("s_Category", ccsGET)
        End With

        CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeSelect", Me)
        Set Recordset = DataSource.Open(Command)

        Set TemplateBlock = Tpl.Block("Grid " & ComponentName)
        Set RowBlock = TemplateBlock.Block("Row")
        Set StaticControls = CCCreateCollection(TemplateBlock, Null, ccsParseOverwrite, _
            Array(Sorter_int, Sorter_English, Sorter_Gaelic, Sorter_Category, signage_Insert, Navigator))
        Set RowControls = CCCreateCollection(RowBlock, Null, ccsParseAccumulate, _
            Array(int1, English, Gaelic, Category))

        CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShow", Me)
        If NOT Visible Then Exit Sub

        Errors.AddErrors DataSource.Errors
        If Errors.Count > 0 Then
            TemplateBlock.HTML = CCFormatError("Grid signage", Errors)
        Else

            ' Show NoRecords block if no records are found
            If Recordset.EOF Then
                TemplateBlock.Block("NoRecords").Parse ccsParseOverwrite
            End If
            While NOT Recordset.EOF AND ShownRecords < PageSize
                int1.Value = Recordset.Fields("int1")
                int1.Parameters = CCGetQueryString("QueryString", Array("ccsForm"))
                int1.Parameters = CCAddParam(int1.Parameters, "int", Recordset.Fields("int1_param1"))
                int1.Page = "signage_maint.asp"
                English.Value = Recordset.Fields("English")
                Gaelic.Value = Recordset.Fields("Gaelic")
                Category.Value = Recordset.Fields("Category")
                CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeShowRow", Me)
                RowControls.Show
                Recordset.MoveNext
                ShownRecords = ShownRecords + 1
            Wend
            
            signage_Insert.Parameters = CCGetQueryString("QueryString", Array("int", "ccsForm"))
            signage_Insert.Page = "signage_maint.asp"
            Navigator.SetDataSource Recordset
            StaticControls.Show
        End If

    End Sub
'End signage Show Method

'signage PageSize Property Let @7-54E46DD6
    Public Property Let PageSize(NewValue)
        VarPageSize = NewValue
        DataSource.PageSize = NewValue
    End Property
'End signage PageSize Property Let

'signage PageSize Property Get @7-9AA1D1E9
    Public Property Get PageSize()
        PageSize = VarPageSize
    End Property
'End signage PageSize Property Get

End Class 'End signage Class @7-A61BA892

Class clssignageDataSource 'signageDataSource Class @7-E2EEA1CA

'DataSource Variables @7-CAB48DCA
    Public Errors, Connection, Parameters, CCSEvents

    Public Recordset
    Public SQL, CountSQL, Order, Where, Orders
    Public PageSize
    Public PageCount
    Public AbsolutePage
    Public Fields
    Dim WhereParameters
    Public AllParamsSet
    Public CmdExecution

    Private CurrentOperation
    Private CCSEventResult

    ' Datasource fields
    Public int1
    Public int1_param1
    Public English
    Public Gaelic
    Public Category
'End DataSource Variables

'DataSource Class_Initialize Event @7-788538AD
    Private Sub Class_Initialize()

        Set CCSEvents = CreateObject("Scripting.Dictionary")
        Set Fields = New clsFields
        Set Recordset = New clsDataSource
        Set Recordset.DataSource = Me
        Set Errors = New clsErrors
        AllParamsSet = True
        Set int1 = CCCreateField("int1", "int", ccsFloat, Empty, Recordset)
        Set int1_param1 = CCCreateField("int1_param1", "int", ccsText, Empty, Recordset)
        Set English = CCCreateField("English", "English", ccsText, Empty, Recordset)
        Set Gaelic = CCCreateField("Gaelic", "Gaelic", ccsText, Empty, Recordset)
        Set Category = CCCreateField("Category", "Category", ccsText, Empty, Recordset)
        Fields.AddFields Array(int1, int1_param1, English, Gaelic, Category)
        Set Parameters = Server.CreateObject("Scripting.Dictionary")
        Set WhereParameters = Nothing
        Orders = Array( _ 
            Array("Sorter_int", "int", ""), _
            Array("Sorter_English", "English", ""), _
            Array("Sorter_Gaelic", "Gaelic", ""), _
            Array("Sorter_Category", "Category", ""))

        SQL = "SELECT TOP {SqlParam_endRecord}  signage.[int], signage.English, signage.Gaelic, signage.Category  " & _
        "FROM signage"
        CountSQL = "SELECT COUNT(*)  " & _
        "FROM signage"
        Where = ""
        Order = ""
    End Sub
'End DataSource Class_Initialize Event

'SetOrder Method @7-68FC9576
    Sub SetOrder(Column, Direction)
        Order = Recordset.GetOrder(Order, Column, Direction, Orders)
    End Sub
'End SetOrder Method

'BuildTableWhere Method @7-0B3678C5
    Public Sub BuildTableWhere()
        Dim WhereParams

        If Not WhereParameters Is Nothing Then _
            Exit Sub
        Set WhereParameters = new clsSQLParameters
        With WhereParameters
            Set .Connection = Connection
            Set .ParameterSources = Parameters
            Set .DataSource = Me
            .AddParameter 1, "urls_English", ccsText, Empty, Empty, Empty, False
            .AddParameter 2, "urls_Gaelic", ccsText, Empty, Empty, Empty, False
            .AddParameter 3, "urls_Category", ccsText, Empty, Empty, Empty, False
            .Criterion(1) = .Operation(opContains, False, "English", .getParamByID(1))
            .Criterion(2) = .Operation(opContains, False, "Gaelic", .getParamByID(2))
            .Criterion(3) = .Operation(opContains, False, "Category", .getParamByID(3))
            .AssembledWhere = .opAND(False, .opAND(False, .Criterion(1), .Criterion(2)), .Criterion(3))
            WhereParams = .AssembledWhere
            If Len(Where) > 0 Then 
                If Len(WhereParams) > 0 Then _
                    Where = Where & " AND " & WhereParams
            Else
                If Len(WhereParams) > 0 Then _
                    Where = WhereParams
            End If
        End With
    End Sub
'End BuildTableWhere Method

'Open Method @7-192E38F9
    Function Open(Cmd)
        Errors.Clear
        Set Cmd.Connection = Connection
        Cmd.CommandOperation = cmdOpen
        Cmd.PageSize = PageSize
        Cmd.ActivePage = AbsolutePage
        Cmd.CommandType = dsTable
        CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeBuildSelect", Me)
        Cmd.SQL = SQL
        Cmd.CountSQL = CountSQL
        BuildTableWhere
        Cmd.Where = Where
        Cmd.OrderBy = Order
        Cmd.Options("TOP") = True
        CCSEventResult = CCRaiseEvent(CCSEvents, "BeforeExecuteSelect", Me)
        If Errors.Count = 0 And CCSEventResult Then _
            Set Recordset = Cmd.Exec(Errors)
        CCSEventResult = CCRaiseEvent(CCSEvents, "AfterExecuteSelect", Me)
        Set Recordset.FieldsCollection = Fields
        Set Open = Recordset
    End Function
'End Open Method

'DataSource Class_Terminate Event @7-E1B92B0A
    Private Sub Class_Terminate()
        If Recordset.State = adStateOpen Then _
            Recordset.Close
        Set Recordset = Nothing
        Set Parameters = Nothing
        Set Errors = Nothing
        Set CCSEvents = Nothing
    End Sub
'End DataSource Class_Terminate Event

End Class 'End signageDataSource Class @7-A61BA892


%>
