﻿var EmptyFilterName = "Type Council Name";
//"<Type Council Name>""

            function handleCouncilKeyPress( e )
            {
//                if(window.event) // IE
//                  {
//                  keynum = e.keyCode;
//                  }
//                else if(e.which) // Netscape/Firefox/Opera
//                  {
//                  keynum = e.which;
//                  }
//                keychar = String.fromCharCode(keynum);
                
                
                filterText = '';
                
                fb = document.getElementById( "councilFilterBox" );
                if ( fb != null )
                {                     
                    filterText = fb.value;
                    
                }   
                
                filterCouncils( filterText  );             
            }
        
            function filterCouncils(filterText)
            {
//                filterText = '';
//                
//                fb = document.getElementById( "councilFilterBox" );
//                if ( fb != null )
//                {                     
//                    filtertext = fb.value;
//                    alert(filtertext);
//                }
//                
                spans = document.getElementsByTagName("span");
                if ( spans.length > 0 )
                {
                    for ( i=0; i<spans.length;i++ )
                    {
                        pos = spans[i].id.indexOf( "councillist_" );
                        if (  pos > -1 )
                        {
                           cname = spans[i].id.substring( 12 );
                           
                           pos = cname.toLowerCase().indexOf( filterText.toLowerCase() )
                           if ( pos == 0 )
                           {
                                showElement( spans[i].id, true );
                           }
                           else
                           {
                                showElement( spans[i].id, false );
                           }
                           
                        }
                    }
                }
                
           
                
            }
        
            function showElement( elementID, show )
            {
                //alert(0);
                var e = document.getElementById( elementID);
                //alert(1);
                if ( e != null )
                {
                    //alert(1.1);
                    if (show) 
                    {
                        //alert("1.2.1");
                        e.style.display = 'block';
                    }
                    else
                    {
                        //alert("1.2.2");
                        e.style.display = 'none';
                    }
                    //alert(1.3);
                }
                //alert(2);
            }
            
            function showSearch()
            {
                //setSearchDates();
                searchError( "" );
                showElement( "fpdiv", false);
                showElement( "searchdiv", true);
                showElement( "tablediv", false );      
                showCouncilList( false );
            }
            
            function showHome( showCouncils )
            {
                showElement( "fpdiv", true);
                showElement( "searchdiv", false);
                showElement( "tablediv", false );            
                showCouncilList( showCouncils );
                
            }
            
            function showCouncilList( show )
            {
                    showElement( "councilListDiv", show );
            }
            
            var tableRows = new Array();
            
            //Function to get the node text - required because IE does it differently
            function getNodeText( node )
            {
                var r = "";
                if ( node.textContent )
                {
                    r = node.textContent;
                }
                else
                {
                    r = node.text;
                }
                
                if ( r == undefined )
                {
                    r = "";
                }
                
                return r;
            }
            
            function doTROLookup( filters )
            {
                var url = "xml/trolist.aspx";
                var r = "";
                var request = false;
                var i;
                var j;
                var newRow;
                var runningIE = false;
                
                if ( filters.length > 0 )
                {
                    for ( i=0; i<filters.length; i++ )
                    {
                        if ( i==0 )
                        {
                            url = url + "?";
                        }
                        else
                        {
                            url = url + "&";
                        }
                        url = url + filters[i].filterField + "=" + filters[i].filterValue;
                    }
                }
                              
                // Mozilla/Safari
                if (window.XMLHttpRequest) {
                    request = new XMLHttpRequest();
                   
                }
                // IE
                else if (window.ActiveXObject) {
                    request = new ActiveXObject("Microsoft.XMLHTTP");
                    runningIE = true;
                    
                }   

                   // request = new ActiveXObject("Microsoft.XMLHTTP");


                
                request.open('GET', url, false);
                request.send("");                
                if (request.status == 200 )
                {
                    //var doc = new ActiveXObject("MSXML2.DOMDocument");
                    var doc = request.responseXML;
                    //doc.loadXML( request.responseText );
                    tableRows = new Array();
                    /*
  <tro>
    <authority>Allerdale</authority>
    <number>1</number>
    <reference>AL01</reference>
    <title>The Allerdale Borough Council (Off-Street Parking Places) Order 2002</title>
    <year>2002</year>
    <dateMade>06/12/02</dateMade>
    <comments></comments>
    <fileSize>11875485</fileSize>
  </tro>                    
                    */
                    
                    var troNodes = doc.getElementsByTagName( "tro" );
                    
                    for ( i=0; i<troNodes.length; i++ )
                    {
                        newRow = new Object();

                        for ( j=0; j<troNodes[i].childNodes.length; j++ )
                        {                        
                            switch ( troNodes[i].childNodes[j].nodeName )
                            {
                                case "authority":                                 
                                    newRow.authority = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "number":
                                    newRow.number = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "reference":
                                    newRow.reference = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "title":
                                    newRow.title = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "year":
                                    newRow.year = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "dateMade":
                                    newRow.dateMade = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "comments":
                                    newRow.comments = getNodeText(troNodes[i].childNodes[j]);
                                    break;
                                case "fileSize":
                                    newRow.fileSize = getNodeText(troNodes[i].childNodes[j]);
                                    break;                                                                                                                                                                                                                        
                            }
                        }
                        if ( newRow.authority == "" )
                        {
                            newRow.authority = "&nbsp;";
                        }
                        if ( newRow.number == "" )
                        {
                            newRow.number = "&nbsp;";
                        }
                        if ( newRow.reference == "" )
                        {
                            newRow.reference = "&nbsp;";
                        }
                        if ( newRow.title == "" )
                        {
                            newRow.title = "&nbsp;";
                        }
                        if ( newRow.year == "" )
                        {
                            newRow.year = "&nbsp;";
                        }
                        if ( newRow.dateMade == "" )
                        {
                            newRow.dateMade = "&nbsp;";
                        }
                        if ( newRow.comments == "" )
                        {
                            newRow.comments = "&nbsp;";
                        }
                        if ( newRow.fileSize == "" )
                        {
                            newRow.fileSize = "&nbsp;";
                        }
                        if ( newRow.number == "" )
                        {
                            newRow.number = "&nbsp;";
                        }

                        tableRows.push( newRow );
                    }
                }
                return r;            
            }
            
            function showCouncilTable( councilName )
            {
                var s = document.getElementById("tableBreadCrumb");
                var filters = new Array();
                var newFilter = new Object;
                var TROCount = 0;
            
                showElement( "fpdiv", false);
                showElement( "searchdiv", false);
                showElement( "tablediv", true);
                if ( s != null )
                {
                    s.innerHTML = councilName;
                }

                //Get the values
                newFilter.filterField = "authority";
                newFilter.filterValue = councilName;
                filters.push(newFilter);
                //alert(alert.b.c.d);
                doTROLookup( filters );
                
                if ( tableRows.length > 0 )
                {
                    displayTableRows();
                } 
                else
                {
                    var t = document.getElementById("rsTable");
                    for (i=t.rows.length - 1; i > 0; i--)
                    {
                        t.deleteRow(i);           
                    }                    
                    
                    newRow = t.insertRow( -1 );
                    newCell = newRow.insertCell( -1 );
                    newCell.colSpan = 7;
                    newCell.innerHTML="<strong>This Council has not provided Traffic Penalty Tribunal with Traffic Regulation Orders</strong>";
                }
            }
            
            function displayTableRows()
            {
                var t = document.getElementById("rsTable");
                var newRow;
                var i;
                
                for (i=t.rows.length - 1; i > 0; i--)
                {
                    t.deleteRow(i);           
                }
                
                for (i=0; i < tableRows.length; i++ )
                {
                 
                    newRow = t.insertRow( -1 );
                    for (var j=0;j<4;j++)
                    {
                        newRow.insertCell( -1 );
                    }
                    //newRow.cells[0].innerHTML=tableRows[i].number;
                    newRow.cells[0].innerHTML='<a href="files/' + tableRows[i].reference + '.pdf" target="_blank">' + tableRows[i].reference + '</a>';
                    newRow.cells[1].innerHTML=tableRows[i].title;
                    newRow.cells[2].innerHTML=tableRows[i].year;
                    //newRow.cells[3].innerHTML=tableRows[i].dateMade;
                    fsize = parseInt(tableRows[i].fileSize);
                    if ( fsize == NaN )
                    {
                        fzize = "&nbsp;"
                    }
                    else
                    {
                        fsize = (fsize/1024);
                        fsize = fsize.toFixed(2);
                    }                    
//                    else
//                    {
//                        //Convert to MB
//                        fsize = (fsize/1024);
//                        if (fsize > 1024)
//                        {
//                            fsize = fsize/1024;
//                            fsize = fsize.toFixed(1);                            
//                            ftype = " Mb";
//                        }
//                        else
//                        {
//                            fsize = fsize.toFixed(0)
//                            ftype = " Kb";
//                        }
//                        fsize = fsize + ftype;
//                        
//                    }
                    
                    newRow.cells[3].innerHTML=fsize;
                    //newRow.cells[5].innerHTML=tableRows[i].comments;
                    
                }
                removeSortSettings();
                sortColumn(document.getElementById("referenceColumnHeaderCell"), 'rsTable',0,'text');

            }
            
            
            function doSearch()
            {
                var filters = new Array();
                var newFilter = new Object;
                var searchValue;
                var t = document.getElementById("rsTable");
                var s = document.getElementById("tableBreadCrumb");
                
                if ( s != null )
                {
                    s.innerHTML = '<a href="javascript:showSearch();">Search</a> &gt; Results'
                }

                    
                f = document.getElementById("SearchReference");
                if ( f != null )
                {
                    if ( f.value != "" )
                    {
                        newFilter = new Object;
                        newFilter.filterField = "reference";
                        newFilter.filterValue = f.value.toLowerCase();
                        filters.push(newFilter);
                    }
                }
                f = document.getElementById("SearchTitle");
                if ( f != null )
                {
                    if ( f.value != "" )
                    {
                        newFilter = new Object;
                        newFilter.filterField = "title";
                        newFilter.filterValue = f.value.toLowerCase();
                        filters.push(newFilter);
                    }
                }
                f = document.getElementById("SearchYear");
                if ( f != null )
                {
                    searchValue = "";
                    if ( f.selectedIndex > -1 ) 
                    {
                        searchValue = f.options[f.selectedIndex].value.toLowerCase();
                    }                
                    if ( searchValue != "" )
                    {
                        newFilter = new Object;
                        newFilter.filterField = "year";
                        newFilter.filterValue = searchValue;
                        filters.push(newFilter);
                    }                               
                }

//               f = document.getElementById("SearchDate");
//                if ( f != null )
//                {
//                    if ( f.value != "" )
//                    {
//                        newFilter = new Object;
//                        newFilter.filterField = "dateMade";
//                        newFilter.filterValue = f.value.toLowerCase();
//                        filters.push(newFilter);
//                    }
//                }

//               f = document.getElementById("SearchComments");
//                if ( f != null )
//                {
//                    if ( f.value != "" )
//                    {
//                        newFilter = new Object;
//                        newFilter.filterField = "comments";
//                        newFilter.filterValue = f.value.toLowerCase();
//                        filters.push(newFilter);
//                    }
//                }

               
                //alert(alert.b.c.d);
                if ( filters.length > 0 )
                {
                    doTROLookup( filters );
                    
                    if ( tableRows.length > 0 )
                    {
                        displayTableRows();
                        backTo = "Search";
                        showElement( "fpdiv", false);
                        showElement( "searchdiv", false);
                        showElement( "tablediv", true);
                    } 
                    else
                    {
                        searchError( "No TROs found that match this criteria" );
                    }
                }
                else
                {
                    searchError( "Please enter at least one search criteria"  );
                }
           
            }
            
            function olddoSearch()
            {
                var f;
                
                var searchValues = new Array();
                var searchEnabled = new Array();
                var searchFound = 0;
                var numFound = 0;
                
                var t = document.getElementById("rsTable");
                var s = document.getElementById("tableBreadCrumb");
                if ( t != null )
                {
            
                
                    for (i=t.rows.length - 1; i > 0; i--)
                    {
                        t.deleteRow(i);           
                    }

                
                    if ( s != null )
                    {
                        s.innerHTML = "Search Results";
                    }
                
                    for (i=0; i<=4; i++)
                    {
                        searchEnabled[i] = false;                        
                        searchValues[i] = "";                    
                    }
                    
                    f = document.getElementById("SearchReference");
                    if ( f != null )
                    {
                        searchValues[0] = f.value.toLowerCase();
                        if ( searchValues[0] != "" )
                        {
                            searchEnabled[0] = true;
                            searchFound++;
                        }                        
                    }

                    f = document.getElementById("SearchTitle");
                    if ( f != null )
                    {
                        searchValues[1] = f.value.toLowerCase();
                        if ( searchValues[1] != "" )
                        {
                            searchEnabled[1] = true;
                            searchFound++;

                        }                        
                    }
                    
                    f = document.getElementById("SearchYear");
                    if ( f != null )
                    {
                        if ( f.selectedIndex > -1 ) 
                        {
                            searchValues[2] = f.options(f.selectedIndex).value.toLowerCase();
                            if ( searchValues[2] != "" )
                            {
                                searchFound++;
                                searchEnabled[2] = true;
                            }                        
                        }                                   
                    }

                    f = document.getElementById("SearchDate");
                    if ( f != null )
                    {
                        searchValues[3] = f.value.toLowerCase();
                        if ( searchValues[3] != "" )
                        {
                            searchEnabled[3] = true;
                            searchFound++;
                        }                        
                    }


                    f = document.getElementById("SearchComments");
                    if ( f != null )
                    {
                        searchValues[4] = f.value.toLowerCase();
                        if ( searchValues[4] != "" )
                        {
                            searchEnabled[4] = true;
                            searchFound++;
                        }                        
                    }

                    if ( ( searchEnabled[0] ) ||
                         ( searchEnabled[1] ) ||
                         ( searchEnabled[2] ) ||
                         ( searchEnabled[3] ) ||
                         ( searchEnabled[4] )   )
                    {
                        //Do the search
                        for ( i=0; i < TROArray.length; i++ )
                        {
                            found = 0;
                            for ( j=0; j <= 4; j++ )
                            {
                                if ( searchEnabled[j] )
                                {
                                    if ( TROArray[i][j+2].toLowerCase().indexOf( searchValues[j] ) > -1 )
                                    {
                                        found++;
                                    }
                                
                                }
                            }
                            //alert (found + " = " + searchFound );
                            //break;
                            if ( found == searchFound )
                            {
                                numFound++;
                                newRow = t.insertRow( -1 );
                                for (j=0;j<6;j++)
                                {
                                    newRow.insertCell( -1 );
                                }
                                newRow.cells(0).innerHTML=TROArray[i][1];
                                newRow.cells(1).innerHTML='<a href="pdfs/' + TROArray[i][2] + '.pdf">' + TROArray[i][2] + '</a>';
                                newRow.cells(2).innerHTML=TROArray[i][3];
                                newRow.cells(3).innerHTML=TROArray[i][4];
                                newRow.cells(4).innerHTML=TROArray[i][5];
                                if ( TROArray[i][6] == "" )
                                {
                                newRow.cells(5).innerHTML="&nbsp;";
                                }
                                else
                                {
                                    newRow.cells(5).innerHTML=TROArray[i][6];
                                }                                
                            }
                        }
                        if ( numFound > 0 )
                        {
                            showElement( "fpdiv", false);
                            showElement( "searchdiv", false);
                            showElement( "tablediv", true);
                        }
                        else
                        {
                            searchError( "No TROs found that match this criteria" );
                        }
                    }
                    else
                    {
                        searchError( "Please enter at least one search criteria" );
                    }
                }                 


            }
        
            function searchError( errorMessage )
            {
                if ( errorMessage == "" )
                {
                    showElement( "SearchError", false );
                }
                else
                {
                    f = document.getElementById("SearchError");
                    if ( f != null )
                    {
                        f.innerHTML = "<strong>" + errorMessage + "</strong>";
                    }
                    showElement( "SearchError", true  );
                }
            }
        
//CouncilList filter code
function filterClickIn()
{
    var f = document.getElementById( "councilFilterBox" );
    if ( f != null )
    {
        if ( f.value == EmptyFilterName )
        {
            f.value = "";
            f.style.color = "Black";
        }
    }
}

function filterClickOut()
{
    var f = document.getElementById( "councilFilterBox" );
    if ( f != null )
    {
        if ( f.value == "" )
        {
            f.value = EmptyFilterName;
            f.style.color = "Silver";
        }
    }
}

function setNextCheckAlive()
{
    setTimeout( "checkAlive()", 30000 );
}

function checkAlive()
{
    var request = false;
    var url = "/CheckAlive.aspx";

     // Mozilla/Safari
    if (window.XMLHttpRequest) {
        request = new XMLHttpRequest();
       
    }
    // IE
    else if (window.ActiveXObject) {
        request = new ActiveXObject("Microsoft.XMLHTTP");
        runningIE = true;
        
    }   

       // request = new ActiveXObject("Microsoft.XMLHTTP");


    //request.setRequestHeader('cache-request-directive', 'no-cache');
    //request.setRequestHeader('cache-response-directive', 'no-cache');
    
    request.open('GET', url, false);
    request.send("");                
    if (request.status == 200 )
    {
         setNextCheckAlive();
         window.status = new Date();
    }
    else
    {
        document.location = "/LoggedOut.aspx";
    }
}


onunload=function(){return true};


