/*
Copyright (c) 2009, Devel-Tech Inc., dti@develtech.ca
All rights reserved.

Redistribution and/or use in source and binary forms, with or without modification, 
are NOT permitted without the express written consent of Devel-Tech Inc. AND Saskhouses.com  

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// FILENAME: saskhouses_code.js
// UPDATED:  November 24, 2009
/////////////////////////////////////////////////////////////////////////////////////////////////////////
//--------------------------------------------------------------------------------
//  map variables
//--------------------------------------------------------------------------------
    var map = null;                        var geocoder = null;    var whichscreen = "";                                    
    var currentposition = "";              var currentlat = 0.0;                  var currentlng = 0.0;
    var current_markers = new Array();
    var holdcolor = 0;                                     var tolerance = 1.0;
    var showall = 1;
    var savedzoom = 0;
    var openhousesonff = 0;  
    var totnew = 0;
    var totchange = 0;

    var all_markers = new Array();
    var Listing_values = new Array();
    var Openhouses_values = new Array();
    var All_listings = new Array();
    var city_values = new Array();
    var city_latlng = new Array();
    var city_counts = new Array();
    var latlng_lookup = new Array();
    var pickedlat = 0.0;
    var pickedlng = 0.0;
    var pickedzoom_master = 9;
    var pickedzoom = 9;
    var pickedzoomSaskatoon = 8;
    var singlepickzoom = 14;

    var redicon = new GIcon();
    redicon.image = "./images/mm_20_red.png";      redicon.iconSize = new GSize(12,20);
    redicon.iconAnchor = new GPoint(6, 10);        redicon.infoWindowAnchor = new GPoint(5, 1);

    var blueicon = new GIcon();
    blueicon.image = "./images/mm_20_blue.png";    blueicon.iconSize = new GSize(12,20);
    blueicon.iconAnchor = new GPoint(6, 10);       blueicon.infoWindowAnchor = new GPoint(5, 1);

    var greenicon = new GIcon();
    greenicon.image = "./images/mm_20_green.png";  greenicon.iconSize = new GSize(12,20);
    greenicon.iconAnchor = new GPoint(6, 10);      greenicon.infoWindowAnchor = new GPoint(5, 1);


    // Create our "tiny" marker icon
    var icon = new GIcon();
    icon.image = "./images/red.png";               icon.iconSize = new GSize(20,34);
    icon.iconAnchor = new GPoint(6, 20);           icon.infoWindowAnchor = new GPoint(7, 1);
    var icon2 = new GIcon();
    icon2.image = "./images/blue.png";             icon2.iconSize = new GSize(20,34);
    icon2.iconAnchor = new GPoint(6, 20);          icon2.infoWindowAnchor = new GPoint(7, 1);
    var icon4 = new GIcon();
    icon4.image = "./images/green.png";            icon4.iconSize = new GSize(20,34);
    icon4.iconAnchor = new GPoint(6, 20);          icon4.infoWindowAnchor = new GPoint(7, 1);
    var icon3 = new GIcon();
    icon3.image = "./images/blue_large_new.png";        icon3.iconSize = new GSize(40,40);
    icon3.iconAnchor = new GPoint(6, 20);               icon3.infoWindowAnchor = new GPoint(17, 1);

    var bluelarge = new GIcon();
    bluelarge.image = "./images/blue_large_new.png";     bluelarge.iconSize = new GSize(40,40);
    bluelarge.iconAnchor = new GPoint(6, 20);            bluelarge.infoWindowAnchor = new GPoint(17, 1);
    var redlarge = new GIcon();
    redlarge.image = "./images/red_large_new.png";       redlarge.iconSize = new GSize(40,40);
    redlarge.iconAnchor = new GPoint(6, 20);             redlarge.infoWindowAnchor = new GPoint(17, 1);
    var greenlarge = new GIcon();
    greenlarge.image = "./images/green_large_new.png";   greenlarge.iconSize = new GSize(40,40);
    greenlarge.iconAnchor = new GPoint(6, 20);           greenlarge.infoWindowAnchor = new GPoint(17, 1);


//--------------------------------------------------------------------------------
    function trim(stringToTrim) {	return stringToTrim.replace(/^\s+|\s+$/g,"");}
    function ltrim(stringToTrim) {	return stringToTrim.replace(/^\s+/,"");}
    function rtrim(stringToTrim) {	return stringToTrim.replace(/\s+$/,"");}

//--------------------------------------------------------------------------------
//  grid variables
//--------------------------------------------------------------------------------
    var page1 = new Array();      var page2 = new Array();     var page3 = new Array();
    var page4 = new Array();      var page5 = new Array();     var page6 = new Array();
    var page7 = new Array();      var page8 = new Array();     var page9 = new Array();
    var page10 = new Array();     var page11 = new Array();    var page12 = new Array();
    var page13 = new Array();     var page14 = new Array();    var page15 = new Array();
    var page16 = new Array();     var page17 = new Array();    var page18 = new Array();
    var page19 = new Array();     var page20 = new Array();    var page21 = new Array();
    var page22 = new Array();     var page23 = new Array();    var page24 = new Array();
    var page25 = new Array();     var page26 = new Array();    var page27 = new Array();
    var page28 = new Array();     var page29 = new Array();    var page30 = new Array();
    var page31 = new Array();     var page32 = new Array();    var page33 = new Array();
    var page34 = new Array();     var page35 = new Array();    var page36 = new Array();
    var page37 = new Array();     var page38 = new Array();    var page39 = new Array();
    var page40 = new Array();     var page41 = new Array();    var page42 = new Array();
    var page43 = new Array();     var page44 = new Array();    var page45 = new Array();
    var page46 = new Array();     var page47 = new Array();    var page48 = new Array();
    var page49 = new Array();     var page50 = new Array();    var page51 = new Array();
    var page52 = new Array();     var page53 = new Array();    var page54 = new Array();
    var page55 = new Array();     var page56 = new Array();    var page57 = new Array();
    var page58 = new Array();     var page59 = new Array();    var page60 = new Array();
    var page61 = new Array();     var page62 = new Array();    var page63 = new Array();
    var page64 = new Array();     var page65 = new Array();    var page66 = new Array();
    var page67 = new Array();     var page68 = new Array();    var page69 = new Array();
    var page70 = new Array();     var page71 = new Array();    var page72 = new Array();
    var page73 = new Array();     var page74 = new Array();    var page75 = new Array();
    var page76 = new Array();     var page77 = new Array();    var page78 = new Array();
    var page79 = new Array();     var numarrays = 0;           var totpages = 0;

    var gridtexthdr = "<DIV class=tableContainer3><table style='font-size:8pt;font-family:Arial;width:215px;'>";
    var gridtext = "";                               
    var gridtextftr = "</table></div>";          
    var highlighted = 0;   var unhighlighted = 0;
    var whichbrowser = "";

    var legend_div_txt = "<table style='font-size:8pt;font-family:Arial'><tr><td>";
    legend_div_txt = legend_div_txt + "<img src='./images/mm_20_red.png'>&nbsp;Recent Listings&nbsp;";
    legend_div_txt = legend_div_txt + "<img src='./images/mm_20_green.png'>&nbsp;Price Change&nbsp;";
    legend_div_txt = legend_div_txt + "<img src='./images/mm_20_blue.png'>&nbsp;Prior Listings&nbsp;";
    //legend_div_txt = legend_div_txt + "<img src='./images/blue_large_mm20.png'>&nbsp;Multiple Listings&nbsp;";
    legend_div_txt = legend_div_txt + "</td></tr></table>";

    var openhouses_div_txt = "<table style='font-size:8pt;font-family:Arial'>";
    openhouses_div_txt = openhouses_div_txt+"<tr><td><a href='Javascript:switchToOpenhouses()'>Open Houses Only</a></td></tr>";
    openhouses_div_txt = openhouses_div_txt+"<tr><td><a href='Javascript:resetMap()'>Reset map</a></td></tr>";
    openhouses_div_txt = openhouses_div_txt+"</table>";

    var search_div_txt = "";

    var sort_div_txt = "<table style='font-size:8pt;font-family:Arial'>";
    sort_div_txt = sort_div_txt + "<tr><td><b>Sort by Price:</b></td></tr>";
    sort_div_txt = sort_div_txt + "<tr><td><select id='sortorder' style='font-size:8pt;font-family:Arial;background-color:#e8e8e8' onchange='javascript:runSort();'><option selected='selected'>Ascending</option><option>Descending</option></select></td></tr>";
    sort_div_txt = sort_div_txt+"</table>";

    var sort_div_txt2 = "<table style='font-size:8pt;font-family:Arial'>";
    sort_div_txt2 = sort_div_txt2 + "<tr><td><b>Sort by Price:</b></td></tr>";
    sort_div_txt2 = sort_div_txt2 + "<tr><td><select id='sortorder' style='font-size:8pt;font-family:Arial;background-color:#e8e8e8' onchange='javascript:runSort();'><option selected='selected'>Ascending</option><option>Descending</option></select></td></tr>";
    sort_div_txt2 = sort_div_txt2+"</table>";
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function getCitiesLatLng()
    {
        city_latlng = new Array();
        var mynumrows = 0;
        var xmlDoc;
        if (window.XMLHttpRequest) 
        { 
           // code for Mozilla, Safari, etc 
           var xmlhttp = new XMLHttpRequest();           
           xmlhttp.open('GET', './xmls/city_latlng.xml', false);
           xmlhttp.send(null);               
           var xmlDoc = xmlhttp.responseXML;
           var x=xmlDoc.getElementsByTagName("city");
           for (i=0;i<x.length;i++)
           {
              var y=x[i].attributes;
              city_latlng[mynumrows] = y.getNamedItem("name").value + "|" + y.getNamedItem("lat").value + "|" + y.getNamedItem("lng").value;
              mynumrows++;
           }
        } 
        else if (window.ActiveXObject) 
        { 
           //IE 
           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async=false;
           xmlDoc.load('./xmls/city_latlng.xml');
           var x=xmlDoc.getElementsByTagName("city");
           for (i=0;i<x.length;i++)
           {
              var y=x[i].attributes;
              city_latlng[mynumrows] = y.getNamedItem("name").value + "|" + y.getNamedItem("lat").value + "|" + y.getNamedItem("lng").value;
              mynumrows++;
           }
       }
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function getLatLngLookup()
    {
        latlng_lookup = new Array();
        var mynumrows = 0;
        var xmlDoc;
        if (window.XMLHttpRequest) 
        { 
           // code for Mozilla, Safari, etc 
           var xmlhttp = new XMLHttpRequest();           
           xmlhttp.open('GET', './xmls/latlng_lookup.xml', false);
           xmlhttp.send(null);               
           var xmlDoc = xmlhttp.responseXML;
           var x=xmlDoc.getElementsByTagName("lookup");
           for (i=0;i<x.length;i++)
           {
              var y=x[i].attributes;
              latlng_lookup[mynumrows] = y.getNamedItem("siteid").value + "|" + y.getNamedItem("lat").value + "|" + y.getNamedItem("lng").value;
              mynumrows++;
           }
        } 
        else if (window.ActiveXObject) 
        { 
           //IE 
           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async=false;
           xmlDoc.load('./xmls/latlng_lookup.xml');
           var x=xmlDoc.getElementsByTagName("lookup");
           for (i=0;i<x.length;i++)
           {
              var y=x[i].attributes;
              latlng_lookup[mynumrows] = y.getNamedItem("siteid").value + "|" + y.getNamedItem("lat").value + "|" + y.getNamedItem("lng").value;
              mynumrows++;
           }
       }
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function getCities()
    {
        var mynumrows = 0;        
        city_values = new Array();
        city_counts = new Array();
        var totlistings = 0;
        var xmlDoc;
        if (window.XMLHttpRequest) 
        { 
           // code for Mozilla, Safari, etc 
           var xmlhttp = new XMLHttpRequest();           
           xmlhttp.open('GET', './xmls/Listing_Extract.xml', false);
           xmlhttp.send(null);               
           var xmlDoc = xmlhttp.responseXML;
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var lat = y.getNamedItem("lat").value;
               var lng = y.getNamedItem("lon").value;
               var siteid = y.getNamedItem("siteid").value;
               var matched = 1;
               if (parseFloat(lng) > -101.30 || parseFloat(lng) < -110.02 || parseFloat(lat) < 49.0 || parseFloat(lat) > 58.0)
               {
                   matched = 0;
                   for (var j = 0; j < latlng_lookup.length; j++)
                   {
                       var fields = latlng_lookup[j].split("|");
                       if (siteid == fields[0]){matched = 1;}
                   }
               }  
               if (matched == 1)
               {
                   var city = y.getNamedItem("city").value;
                   city = city.replace("+#","&#"); 
                   city = trim(city);
                   matched = -1;
                   for (var j = 0; j < city_values.length; j++){if (city_values[j] == city){matched = j; break;}}
                   if (matched == -1){city_values[mynumrows] = city;  city_counts[mynumrows] = 1; mynumrows = mynumrows + 1;}
                   else {city_counts[matched] = city_counts[matched] + 1;}
               }
           }
        } 
        else if (window.ActiveXObject) 
        { 
           //IE 
           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async=false;
           xmlDoc.load('./xmls/Listing_Extract.xml');
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var lat = y.getNamedItem("lat").value;
               var lng = y.getNamedItem("lon").value;
               var siteid = y.getNamedItem("siteid").value;
               var matched = 1;
               if (parseFloat(lng) > -101.30 || parseFloat(lng) < -110.02 || parseFloat(lat) < 49.0 || parseFloat(lat) > 58.0)
               {
                   matched = 0;
                   for (var j = 0; j < latlng_lookup.length; j++)
                   {
                       var fields = latlng_lookup[j].split("|");
                       if (siteid == fields[0]){matched = 1;}
                   }
               }  
               if (matched == 1)
               {
                   var city = y.getNamedItem("city").value;
                   city = city.replace("+#","&#"); 
                   city = trim(city);
                   matched = -1;
                   for (var j = 0; j < city_values.length; j++){if (city_values[j] == city){matched = j; break;}}
                   if (matched == -1){city_values[mynumrows] = city;  city_counts[mynumrows] = 1; mynumrows = mynumrows + 1;}
                   else {city_counts[matched] = city_counts[matched] + 1;}
               }
           }
       }
       for (var i = 0; i < city_values.length; i++){totlistings = totlistings + city_counts[i];}
       for (var i = 1; i < city_values.length-1; i++)
       {
           for (var j = i+1; j < city_values.length; j++)
           {
               if (city_values[i] > city_values[j])
               {
                  city = city_values[i]; 
                  city_values[i] = city_values[j]; 
                  city_values[j] = city;
                  mynumrows = city_counts[i];
                  city_counts[i] = city_counts[j];
                  city_counts[j] = mynumrows;
               }
           }
       }
       search_div_txt = "<table style='font-size:8pt;font-family:Arial'>";
       search_div_txt = search_div_txt+"<tr><td><b>Search by City:</b></td></tr>";
       search_div_txt = search_div_txt+"<tr><td><select id='cities' style='font-size:7pt;font-family:Arial;background-color:#e8e8e8' onchange='Javascript:runCityQuery();'><option>All Listings (" + totlistings + ")</option>";
       for (var i = 0; i < city_values.length; i++)
       {
           if (city_values[i] == "Saskatoon")
           {
               search_div_txt = search_div_txt +"<option selected='selected'>";
               search_div_txt = search_div_txt + city_values[i] + " (" + city_counts[i] + ")</option>";
           }
           else
           {
               search_div_txt = search_div_txt +"<option>";
               search_div_txt = search_div_txt + city_values[i] + " (" + city_counts[i] + ")</option>";
           }
       }
       search_div_txt = search_div_txt+"</select></td></tr></table>";
       document.getElementById("query_div").innerHTML = search_div_txt + sort_div_txt;
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function runCityQuery()
    {
        var mynumrows = 0;        
        var numopen = 0;        
        map.clearOverlays();
        all_markers = new Array();
        Listing_values = new Array();
        Openhouses_values = new Array();
        All_listings = new Array();
        var elementnum = document.getElementById("cities").selectedIndex;
        var city = document.getElementById("cities").options[elementnum].text;
        var pos = city.indexOf(" (");  
        city = trim(city.slice(0,pos));
        pickedzoom = pickedzoom_master;
        var xmlDoc;
        if (window.XMLHttpRequest) 
        { 
           // code for Mozilla, Safari, etc 
           var xmlhttp = new XMLHttpRequest();           
           xmlhttp.open('GET', './xmls/Listing_Extract.xml', false);
           xmlhttp.send(null);               
           var xmlDoc = xmlhttp.responseXML;
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var city2 = y.getNamedItem("city").value;
               city2 = city2.replace("+#39;","'");               city2 = trim(city2);
               var lat = y.getNamedItem("lat").value;            var lng = y.getNamedItem("lon").value;
               var siteid = y.getNamedItem("siteid").value;
               var matched = 0;
               var matched4 = 0;
               if (city == "All Listings"){matched4 = 1;}else{ if (city2 == city){matched4 = 1;}}
               if (matched4 == 1)
               {
                   matched = 1;
                   if (parseFloat(lng) > -101.30 || parseFloat(lng) < -110.02 || parseFloat(lat) < 49.0 || parseFloat(lat) > 58.0)
                   {
                       matched = 0;
                       for (var j = 0; j < latlng_lookup.length; j++)
                       {
                           var fields = latlng_lookup[j].split("|");
                           if (siteid == fields[0])
                           {
                               lat = fields[1]; lng = fields[2]; 
                               matched = 1; break;
                           }
                       }
                   }
                   if (matched == 1)
                   {
                       var price = y.getNamedItem("price").value;
                       price = price.replace("$","");
                       Listing_values[mynumrows] = y.getNamedItem("id").value + "|" + y.getNamedItem("title").value + "|" + y.getNamedItem("city").value + "|" + y.getNamedItem("loc").value + "|" + price + "|" + y.getNamedItem("file").value + "|" + y.getNamedItem("url").value + "|" + y.getNamedItem("desc").value + "|" + lat + "|" + lng + "|" + y.getNamedItem("openhouse").value + "|" + y.getNamedItem("newold").value + "|" + y.getNamedItem("changed").value + "|" + siteid;
                       All_listings[mynumrows] = y.getNamedItem("id").value + "|" + y.getNamedItem("title").value + "|" + y.getNamedItem("city").value + "|" + y.getNamedItem("loc").value + "|" + price + "|" + y.getNamedItem("file").value + "|" + y.getNamedItem("url").value + "|" + y.getNamedItem("desc").value + "|" + lat + "|" + lng + "|" + y.getNamedItem("openhouse").value + "|" + y.getNamedItem("newold").value + "|" + y.getNamedItem("changed").value + "|" + siteid;
                       mynumrows = mynumrows + 1;
                       if (y.getNamedItem("openhouse").value == "Y")
                       {
                           Openhouses_values[numopen] = y.getNamedItem("id").value + "|" + y.getNamedItem("title").value + "|" + y.getNamedItem("city").value + "|" + y.getNamedItem("loc").value + "|" + price + "|" + y.getNamedItem("file").value + "|" + y.getNamedItem("url").value + "|" + y.getNamedItem("desc").value + "|" + lat + "|" + lng + "|" + y.getNamedItem("openhouse").value + "|" + y.getNamedItem("newold").value + "|" + y.getNamedItem("changed").value + "|" + siteid;
                           numopen = numopen + 1;
                       }
                   }
              }
           }
        } 
        else if (window.ActiveXObject) 
        { 
           //IE 
           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async=false;
           xmlDoc.load('./xmls/Listing_Extract.xml');
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var city2 = y.getNamedItem("city").value;
               city2 = city2.replace("+#","&#");                city2 = trim(city2);
               var lat = y.getNamedItem("lat").value;           var lng = y.getNamedItem("lon").value;
               var siteid = y.getNamedItem("siteid").value;
               var matched = 0;
               var matched4 = 0;
               if (city == "All Listings"){matched4 = 1;}else{ if (city2 == city){matched4 = 1;}}
               if (matched4 == 1)
               {
                   matched = 1;
                   if (parseFloat(lng) > -101.30 || parseFloat(lng) < -110.02 || parseFloat(lat) < 49.0 || parseFloat(lat) > 58.0)
                   {
                       matched = 0;
                       for (var j = 0; j < latlng_lookup.length; j++)
                       {
                           var fields = latlng_lookup[j].split("|");
                           if (siteid == fields[0])
                           {
                               lat = fields[1]; lng = fields[2]; 
                               matched = 1; break;
                           }
                       }
                   }
                   if (matched == 1)
                   {
                       var price = y.getNamedItem("price").value;
                       price = price.replace("$","");
                       Listing_values[mynumrows] = y.getNamedItem("id").value + "|" + y.getNamedItem("title").value + "|" + y.getNamedItem("city").value + "|" + y.getNamedItem("loc").value + "|" + price + "|" + y.getNamedItem("file").value + "|" + y.getNamedItem("url").value + "|" + y.getNamedItem("desc").value + "|" + lat + "|" + lng + "|" + y.getNamedItem("openhouse").value + "|" + y.getNamedItem("newold").value + "|" + y.getNamedItem("changed").value + "|" + siteid;
                       All_listings[mynumrows] = y.getNamedItem("id").value + "|" + y.getNamedItem("title").value + "|" + y.getNamedItem("city").value + "|" + y.getNamedItem("loc").value + "|" + price + "|" + y.getNamedItem("file").value + "|" + y.getNamedItem("url").value + "|" + y.getNamedItem("desc").value + "|" + lat + "|" + lng + "|" + y.getNamedItem("openhouse").value + "|" + y.getNamedItem("newold").value + "|" + y.getNamedItem("changed").value + "|" + siteid;
                       mynumrows = mynumrows + 1;
                       if (y.getNamedItem("openhouse").value == "Y")
                       {
                           Openhouses_values[numopen] = y.getNamedItem("id").value + "|" + y.getNamedItem("title").value + "|" + y.getNamedItem("city").value + "|" + y.getNamedItem("loc").value + "|" + price + "|" + y.getNamedItem("file").value + "|" + y.getNamedItem("url").value + "|" + y.getNamedItem("desc").value + "|" + lat + "|" + lng + "|" + y.getNamedItem("openhouse").value + "|" + y.getNamedItem("newold").value + "|" + y.getNamedItem("changed").value + "|" + siteid;
                           numopen = numopen + 1;
                       }
                   }
              }
           }
       }
       if (Listing_values.length == 0)
       {  
          var output = Listing_values.length + " listings returned by search.";
          if (openhousesonff == 1){output = output + "&nbsp;&nbsp;&nbsp;NOTE: You are currently viewing Open Houses Only!";}
          display(output);
          document.getElementById("grid").innerHTML = "";    
          document.getElementById("grid_pages").innerHTML = "";    
          var citylookup = city.toUpperCase();
          pickedlat = 0;           pickedlng = 0;           pickedzoom = pickedzoom_master;
          for (var i = 0; i < city_latlng.length; i++)
          {
              var fields = city_latlng[i].split("|");
              if (fields[0] == citylookup){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " RECREATION SITE")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " PROVINCIAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " REGIONAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
          }
          if (pickedlat == 0){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "All"){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "Saskatoon"){pickedzoom = pickedzoomSaskatoon;}
          map.setCenter(new GLatLng(pickedlat,pickedlng), pickedzoom);
       }
       else
       {
          for (var i = 0; i < Listing_values.length-1; i++)
          {
              var fields = Listing_values[i].split("|");
              for (var j = i+1; j < Listing_values.length; j++)
              {
                  var fields2 = Listing_values[j].split("|");
                  // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
                  // 10=openhouse, 11=newold, 12=changed, 13=siteid
                  var changeit = 0;
                  if (parseFloat(fields[8]) > parseFloat(fields2[8])){changeit = 1;}
                  if (parseFloat(fields[8]) == parseFloat(fields2[8])){if (parseFloat(fields[9]) < parseFloat(fields2[9])){changeit = 1;}}
                  if (changeit == 1)
                  {
                     var temp = Listing_values[i]; 
                     Listing_values[i] = Listing_values[j]; 
                     Listing_values[j] = temp;
                     fields = Listing_values[i].split("|");
                     fields2 = Listing_values[j].split("|");
                  }
              }
          }
          var citylookup = city.toUpperCase();
          pickedlat = 0;           pickedlng = 0;           pickedzoom = city_center_zoom;
          for (var i = 0; i < city_latlng.length; i++)
          {
              var fields = city_latlng[i].split("|");
              if (fields[0] == citylookup){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " RECREATION SITE")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " PROVINCIAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " REGIONAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
          }
          if (pickedlat == 0)
          {
              var fields2 = Listing_values[0].split("|");
              var loc = fields2[3].toUpperCase();    var lat = fields2[8];    var lng = fields2[9];
              for (var i = 0; i < city_latlng.length; i++)
              {
                  var fields = city_latlng[i].split("|");
                  if (fields[0] == loc){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " RECREATION SITE")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " PROVINCIAL PARK")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " REGIONAL PARK")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
              }
              if (pickedlat == 0)
              {
                 pickedlat = parseFloat(lat); pickedlng = parseFloat(lng);
                 if (pickedlng > -101.30 || pickedlng < -110.02 || pickedlat < 49.0 || pickedlat > 58.0)
                 {
                     pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;
                 }
              }
          }
          if (city == "All"){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "Saskatoon"){pickedzoom = pickedzoomSaskatoon;}
          map.setCenter(new GLatLng(pickedlat,pickedlng), pickedzoom);
          all_markers = new Array();                                
          map.clearOverlays();  
          getMarkerIDs();  
          newLoad(); 
          savedzoom = map.getZoom();
          runSort();
          if (openhousesonff == 1){switchToOpenhouses();}
          var output = Listing_values.length + " listings returned by search.";
          if (openhousesonff == 1){output = output + "&nbsp;&nbsp;&nbsp;NOTE: You are currently viewing Open Houses Only!";}
          display(output);
       }
    }
//--------------------------------------------------------------------------------

//================================================================================================================
    var balloonwidth = 450;       var propertyheight = 260;     var regularheight = 250;
    var groupheight = 200;        var groupwidth = 415;

//--------------------------------------------------------------------------------
function getMarkerIDs()
{
    var marker_id = 0;
    var nummatch = 0;
    var matchlines = new Array();
    var latlng1 = "";    var latlng2 = "";
    var lat = 0.0;   var lng = 0.0;  var lat2 = 0.0;  var lng2 = 0.0;

    matchlines = new Array();
    nummatch = 0;
    marker_id = 0;
    matchlines[nummatch] = Listing_values[0]+"|0";
    nummatch = nummatch + 1;
    // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
    // 10=openhouse, 11=newold, 12=changed, 13=siteid
    // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
    var fields1 = Listing_values[0].split("|");
    latlng1 = fields1[8] + "," + fields1[9];
    lat = parseFloat(fields1[8]);
    lng = parseFloat(fields1[9]);
    for (var n = 1; n < Listing_values.length; n++)
    {
       // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
       // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
       // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
	    var fields2 = Listing_values[n].split("|");
       latlng2 = fields2[8] + "," + fields2[9];
       lat2 = parseFloat(fields2[8]);
       lng2 = parseFloat(fields2[9]);
       if ((Math.abs(lat-lat2) <= 0.00001) && (Math.abs(lng-lng2) <= 0.00001))
       //if (latlng1 == latlng2)
       {
           matchlines[nummatch] = Listing_values[n]+"|"+n;
           nummatch = nummatch + 1;
       }else{
           for (var i = 0; i < nummatch; i++)
           {
				 var fields3 = matchlines[i].split("|");
               var position = parseInt(fields3[14]);               
               Listing_values[position] = Listing_values[position]+"|"+position+"|"+marker_id+"|"+nummatch+"|"+i;
           }
           marker_id = marker_id + 1;
           matchlines = new Array();
           nummatch = 0;
           matchlines[nummatch] = Listing_values[n]+"|"+n;
           nummatch = nummatch + 1;
           // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
           // 10=openhouse, 11=newold, 12=changed, 13=siteid
           var fields1 = Listing_values[n].split("|");
           latlng1 = fields1[8] + "," + fields1[9];
           lat = parseFloat(fields1[8]);
           lng = parseFloat(fields1[9]);
       }       
    }
    for (var i = 0; i < nummatch; i++)
    {
	 	 var fields3 = matchlines[i].split("|");
        var position = parseInt(fields3[14]);
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
        Listing_values[position] = Listing_values[position]+"|"+position+"|"+marker_id+"|"+nummatch+"|"+i;
    }
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
function newLoad()
{
     var oldzoom = map.getZoom();
     var minlat = 9999999.999;  var minlon = -99999999.999; var maxlat = 0.000; 
     var maxlon = 0.000;   var lat2 = 0.000;  var lon2 = 0.000;
     var group = new Array();  var j = 0;
     var nextindex = 0;
     var counter = 1;
     var generated = new Array();
     var numgenerated = 0;

     // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
     // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
     // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
     var fields = Listing_values[0].split("|");    
     var lat = fields[8];                  var lon = fields[9];           
     var point = new GLatLng(parseFloat(fields[8]),parseFloat(fields[9]));
     lat2 = parseFloat(fields[8]);         lon2 = parseFloat(fields[9]);
     if (lat2 < minlat){minlat = lat2;}    if (lat2 > maxlat){maxlat = lat2;}
     if (lon2 > minlon){minlon = lon2;}    if (lon2 < maxlon){maxlon = lon2;}

     group = new Array();
     group.push(Listing_values[0]);
     var marker_counter = fields[15];
     var thumbnail_url = fields[5];
     if (fields[16] == "1"){nextindex = 1;}
     else
     { 
         for (j = 1; j < Listing_values.length; j++)
         { 
             var myfields = Listing_values[j].split("|");
             if (myfields[15] == fields[15]){group.push(Listing_values[j]); nextindex = j;} 
             else{nextindex++; break;}
         }
     }
     var cur_pos = 0;
     generated[numgenerated] = marker_counter;
     numgenerated++;
     map.addOverlay(createMarkerNew(point,cur_pos,marker_counter,group));
     if (nextindex < Listing_values.length)
     {
         lat2 = parseFloat(fields[8]);         lon2 = parseFloat(fields[9]);
         for (var i = nextindex; i < Listing_values.length; i++)
         {
             // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
             // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
             // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
             var fields = Listing_values[i].split("|");
             cur_pos = i;
             group = new Array();
             group.push(Listing_values[i]);
             marker_counter = fields[15];
             thumbnail_url = fields[5];
             var point = new GLatLng(parseFloat(fields[8]),parseFloat(fields[9]));
             lat2 = parseFloat(fields[8]);    lon2 = parseFloat(fields[9]);
             if (lat2 < minlat){minlat = lat2;}    if (lat2 > maxlat){maxlat = lat2;}
             if (lon2 > minlon){minlon = lon2;}    if (lon2 < maxlon){maxlon = lon2;}
             if (fields[16] == "1"){nextindex = i;}
             else
             { 
                 for (j = i+1; j < Listing_values.length; j++)
                 { 
                    var myfields = Listing_values[j].split("|");
                    if (myfields[15] == fields[15]){group.push(Listing_values[j]); nextindex = j;} 
                    else{break;}
                 }
             }
             i = nextindex;
             var matched = 0;
             for (var z = 0; z < numgenerated; z++){if (marker_counter == generated[z]){matched = 1;}}
             if (matched == 0)
             {
                generated[numgenerated] = marker_counter;
                numgenerated++;
                map.addOverlay(createMarkerNew(point,cur_pos,marker_counter,group));
             }
          }
      }
      var switchit = maxlon;         maxlon = minlon;          minlon = switchit;
      var pointMin = new GLatLng(minlat,minlon);              
      var pointMax = new GLatLng(maxlat,maxlon);
      var oBounds=new GLatLngBounds(pointMin,pointMax);       
      if (all_markers.length == 1)
      {
          var fields = Listing_values[0].split("|");                 
          lat2 = parseFloat(fields[8]);   lon2 = parseFloat(fields[9]);
          minlat = lat2 - 0.00001;        maxlat = lat2 + 0.00001;     
          minlon = lon2 + 0.00001;        maxlon = lon2 - 0.00001;
          pointMin = new GLatLng(minlat,minlon);              
          pointMax = new GLatLng(maxlat,maxlon);
          oBounds=new GLatLngBounds(pointMax,pointMin);       
      }
      var nZoom=map.getBoundsZoomLevel(oBounds);
      var centerlat = (maxlat+minlat)/2;                      
      var centerlon = (maxlon+minlon)/2;
      var pointCenter = new GLatLng(centerlat,centerlon);     
      if (all_markers.length == 1){nZoom = singlepickzoom;}
      map.setCenter(pointCenter, nZoom);
      display(Listing_values.length + " listings returned by search.");
}
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
function createMarkerNew(point2,pos,number,group) 
{
        var newflag = 0;            var changeflag = 0;
        for (var j = 0; j < group.length; j++)
        {
           var fields2=group[j].split("|"); 
           if (fields2[11] == "Y"){newflag = 1;}
           if (fields2[12] == "Y"){changeflag = 1;}
        }
        var whichicon = bluelarge;
        var which = 0;
        var whichimage = './images/blue_large_new.png';
        if (newflag == 1){which = 1;whichimage = './images/red_large_new.png'; whichicon = redlarge;}
        if ((changeflag == 1) && (which == 0)){which = 2;whichimage = './images/green_large_new.png'; whichicon = greenlarge;}
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
        var fields=Listing_values[parseInt(pos)].split("|"); 
        var numgroup = fields[16];
        var point = new GLatLng(parseFloat(fields[8]),parseFloat(fields[9]));
        if (numgroup == "1")
        {
            if (fields[11] == "Y"){var marker = new GMarker(point,redicon);}
            else{if (fields[12] == "Y"){var marker = new GMarker(point,greenicon);} else {var marker = new GMarker(point,blueicon);}}
        }
        else
        { 
             var text = "<b><small>"+numgroup+"<\/b><\/small>";
             var opts = null;
             if (parseInt(numgroup) < 10){
                if (which == 0){
                opts = {"icon": bluelarge,"clickable": true, "labelText": text, "labelOffset": new GSize(10, -18)};}
                if (which == 1){
                opts = {"icon": redlarge,"clickable": true, "labelText": text, "labelOffset": new GSize(10, -18)};}
                if (which == 2){
                opts = {"icon": greenlarge,"clickable": true, "labelText": text, "labelOffset": new GSize(10, -18)};}
             }
             else {
                if (which == 0){
                opts = {"icon": bluelarge,"clickable": true, "labelText": text, "labelOffset": new GSize(8, -18)};}
                if (which == 1){
                opts = {"icon": redlarge,"clickable": true, "labelText": text, "labelOffset": new GSize(8, -18)};}
                if (which == 2){
                opts = {"icon": greenlarge,"clickable": true, "labelText": text, "labelOffset": new GSize(8, -18)};}
             }
             var marker = new LabeledMarker(point, opts);
         }
         marker.id = number;
         marker.point = point;
         marker.group_start = pos;
         marker.group_listings = group;
         marker.openhouse = fields[10];
         marker.holdcolor = 0;
         marker.unhighlighted = 0;
         marker.which = which;
         all_markers.push(marker);
         if (numgroup == "1")
         {
             GEvent.addListener(marker,"mouseover",function(){if (holdcolor == 0){marker.setImage('./images/cyan.png');}});
             GEvent.addListener(marker,"mouseout",function(){
                if (holdcolor == 0)
                {
                    if (fields[11] == "Y"){marker.setImage('./images/mm_20_red.png');}
                    else 
                    {
                        if (fields[12] == "Y"){marker.setImage('./images/mm_20_green.png');}
                        else {marker.setImage('./images/mm_20_blue.png');}
                    }
                }
             });
             GEvent.addListener(marker,"infowindowbeforeclose",function(){
                if (fields[11] == "Y"){marker.setImage('./images/mm_20_red.png');}
                else 
                {  
                   if (fields[12] == "Y"){marker.setImage('./images/mm_20_green.png');}
                   else {marker.setImage('./images/mm_20_blue.png');}
                }
                holdcolor = 0; unhighlighted = 0; 
             });
         }
         else
         {
             GEvent.addListener(marker,"mouseover",function(){if (holdcolor == 0){marker.setImage('./images/cyan_large.png');}});
             GEvent.addListener(marker,"mouseout",function()
             {
                 if (holdcolor == 0)
                 {
                     if (marker.which == 0){marker.setImage('./images/blue_large_new.png');}
                     if (marker.which == 1){marker.setImage('./images/red_large_new.png');}
                     if (marker.which == 2){marker.setImage('./images/green_large_new.png');}
                 }
             });
             GEvent.addListener(marker,"infowindowbeforeclose",function(){
                 if (marker.which == 0){marker.setImage('./images/blue_large_new.png');}
                 if (marker.which == 1){marker.setImage('./images/red_large_new.png');}
                 if (marker.which == 2){marker.setImage('./images/green_large_new.png');}
                 holdcolor = 0; unhighlighted = 0;
             });
         }
         GEvent.addListener(marker, "click", function() {
             holdcolor = 1;    
             unhighlighted = 1;
             // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
             // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
             // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
             var fields = marker.group_listings[0].split("|"); 
             var point = marker.point;
             var totcaption = '<table style="font-size:8pt;font-family:Arial;">';
             var markerid = parseInt(fields[15]);                
             var mymarker = all_markers[markerid];
             for (var i = 0; i < mymarker.group_listings.length;i++)
             {
                 var fields_group = mymarker.group_listings[i].split("|");
                 totcaption = totcaption + '<tr><td style="border-bottom-style:solid;border-bottom-width:thin;border-bottom-color:#d0d0d0;">' + getCaptionContent2(fields_group[14],fields_group[17],mymarker.group_listings.length-1)  + '</td></tr>';
             }
             totcaption = totcaption + '</table>';
             if (fields[16] == "1")
             {
                 marker.setImage('./images/cyan.png');
                 marker.openInfoWindowHtml(totcaption,{maxWidth:balloonwidth, maxHeight:regularheight,autoScroll:true});
             }
             else
             {
                 marker.setImage('./images/cyan_large.png');
                 marker.openInfoWindowHtml(totcaption,{maxWidth:groupwidth, maxHeight:groupheight,autoScroll:true});
             }
         });
         return marker;
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
function getCaptionContent2(number,position,group_count)
{
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
        var fields=Listing_values[number].split("|"); 
        var title = fields[1];           var city = fields[2];                
        var neighborhood = fields[3];    var thumbnail_url = fields[5];        var details_url = fields[6];
        var desc = fields[7];
        //var price = fields[4].slice(0,fields[4].length-2) + ".00";
        var price = fields[4];
        //var caption = "<table style='font-size:10px;font-family:Arial;'><tr><tr><td style='width:100px;' align='left'>";
        //caption = caption + "<a href='"+details_url+"' target='_blank'><b>"+title+"</b></a><br>"+city+"<br>"+neighborhood+"<br>$ "+price;
        //if (desc.length > 0){ caption = caption + "<br>" + desc;}
        //caption = caption+"</td><td style='width:100px;' align='right'><img src='"+thumbnail_url+"'></td></tr></table>";
        var caption = "<table style='font-size:10px;font-family:Arial;'><tr><tr><td style='width:100px;' align='left'>";
        caption = caption + "<a href='"+details_url+"' target='_blank'><b>"+title+"</b></a><br>"+city+"<br>"+neighborhood+"<br>$ "+price;
        if (desc.length > 0){ caption = caption + "<br>" + desc;}
        caption = caption+"</td><td style='width:90px;' align='right'><img src='"+thumbnail_url+"'></td></tr></table>";
        return caption;
}
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
// showGridMarkerNew - user clicked on a balloon next to a listing     - invokes the click for that marker
//--------------------------------------------------------------------------------
    function showGridMarkerNew(number)
    {
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
        var fields=Listing_values[number].split("|"); 
        var title = fields[1];           var city = fields[2];                
        var neighborhood = fields[3];    var thumbnail_url = fields[5];        var details_url = fields[6];
        var desc = fields[7];
        //var price = fields[4].slice(0,fields[4].length-2) + ".00";
        var price = fields[4];
        var point = new GLatLng(parseFloat(fields[8]),parseFloat(fields[9]));

        var markerid = parseInt(fields[15]);                
        var mymarker = all_markers[markerid];
        var totcaption = '<table style="font-size:14pt;font-family:Arial;">';
        unhighlight = 1;
        for (var i = 0; i < mymarker.group_listings.length;i++)
        {
            var fields_group = mymarker.group_listings[i].split("|");
            totcaption = totcaption + '<tr><td style="border-bottom-style:solid;border-bottom-width:thin;border-bottom-color:#d0d0d0;width:235px;">' + getCaptionContent2(fields_group[14],fields_group[17],mymarker.group_listings.length-1)  + '</td></tr>';
        }
        totcaption = totcaption + '</table>';
        var fields=Listing_values[number].split("|"); 
        if (fields[16] == "1")
        {
            mymarker.setImage('./images/cyan.png');             holdcolor = 0;
            mymarker.openInfoWindowHtml(totcaption,{maxWidth:balloonwidth, maxHeight:regularheight,autoScroll:true});
        }
        else
        {
            mymarker.setImage('./images/cyan_large.png');       holdcolor = 0;
            mymarker.openInfoWindowHtml(totcaption,{maxWidth:balloonwidth, maxHeight:regularheight,autoScroll:true});
        }
    }
//--------------------------------------------------------------------------------


//--------------------------------------------------------------------------------
function gridSectionNew(currentline, currentnum)
{
     var fields = currentline.split("|");  
     // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
     // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
     // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17 = pos_in_group
     var caption = getNewCaptionContent(fields[14],fields[17]);
     var gridline = "<tr><td onmouseover='javascript:highlight_cell(this," + currentnum + ");' onmouseout='javascript:reset_cell(this," + currentnum + ");' onClick='Javascript:showGridMarkerNew("+currentnum+");' style='border-bottom-style:solid;border-bottom-width:thin;border-bottom-color:#d0d0d0;'>" + caption + "</td></tr>";
     return gridline;
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
function getNewCaptionContent(number,position)
{
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
        var fields=Listing_values[number].split("|"); 
        var title = fields[1];           var city = fields[2];                
        var neighborhood = fields[3];    var thumbnail_url = fields[5];        var details_url = fields[6];
        var desc = fields[7];
        //var price = fields[4].slice(0,fields[4].length-2) + ".00";
        var price = fields[4];

        var caption = "<table style='font-size:10px;font-family:Arial;'><tr><td style='width:115px;' align='left'>";
        caption = caption + "<a href='"+details_url+"' target='_blank'><b>"+title+"</b></a><br>"+city+"<br>"+neighborhood+"<br>$ "+price;
        if (desc.length > 0){ caption = caption + "<br>" + desc;}
        caption = caption+"</td><td style='width:90px;' align='right'><img src='"+thumbnail_url+"'></td></tr></table>";
        return caption;
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function switchToOpenhouses()
    {
        var current_center = map.getCenter();
        openhousesonff = 1;
        var openhouses_div2_txt = "<table style='font-size:8pt;font-family:Arial'>";
        openhouses_div2_txt = openhouses_div2_txt+"<tr><td><a href='Javascript:switchToAllListings()'>Show All Listings</a></td></tr>";
        openhouses_div2_txt = openhouses_div2_txt+"<tr><td><a href='Javascript:resetMap()'>Reset map</a></td></tr>";
        openhouses_div2_txt = openhouses_div2_txt+"</table>";
        document.getElementById("openhouses_div").innerHTML = openhouses_div2_txt;
        showall = 0;
        if (Openhouses_values.length > 0){ Listing_values = Openhouses_values.slice(0);} else {Listing_values = new Array();}
        all_markers = new Array();                                
        map.clearOverlays();  
       if (Listing_values.length == 0)
       {  
          var output = Listing_values.length + " listings returned by search.";
          if (openhousesonff == 1){output = output + "&nbsp;&nbsp;&nbsp;NOTE: You are currently viewing Open Houses Only!";}
          display(output);
          document.getElementById("grid").innerHTML = "";    
          document.getElementById("grid_pages").innerHTML = "";    
          var citylookup = city.toUpperCase();
          pickedlat = 0;           pickedlng = 0;           pickedzoom = pickedzoom_master;
          for (var i = 0; i < city_latlng.length; i++)
          {
              var fields = city_latlng[i].split("|");
              if (fields[0] == citylookup){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " RECREATION SITE")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " PROVINCIAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " REGIONAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
          }
          if (pickedlat == 0){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "All"){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "Saskatoon"){pickedzoom = pickedzoomSaskatoon;}
          map.setCenter(new GLatLng(pickedlat,pickedlng), pickedzoom);
          map.setCenter(current_center, savedzoom);
       }
       else
       {
          for (var i = 0; i < Listing_values.length-1; i++)
          {
              var fields = Listing_values[i].split("|");
              for (var j = i+1; j < Listing_values.length; j++)
              {
                  var fields2 = Listing_values[j].split("|");
                  // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
                  // 10=openhouse, 11=newold, 12=changed, 13=siteid
                  var changeit = 0;
                  if (parseFloat(fields[8]) > parseFloat(fields2[8])){changeit = 1;}
                  if (parseFloat(fields[8]) == parseFloat(fields2[8])){if (parseFloat(fields[9]) < parseFloat(fields2[9])){changeit = 1;}}
                  if (changeit == 1)
                  {
                     var temp = Listing_values[i]; 
                     Listing_values[i] = Listing_values[j]; 
                     Listing_values[j] = temp;
                     fields = Listing_values[i].split("|");
                     fields2 = Listing_values[j].split("|");
                  }
              }
          }
          var citylookup = city.toUpperCase();
          pickedlat = 0;           pickedlng = 0;           pickedzoom = city_center_zoom;
          for (var i = 0; i < city_latlng.length; i++)
          {
              var fields = city_latlng[i].split("|");
              if (fields[0] == citylookup){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " RECREATION SITE")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " PROVINCIAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " REGIONAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
          }
          if (pickedlat == 0)
          {
              var fields2 = Listing_values[0].split("|");
              var loc = fields2[3].toUpperCase();    var lat = fields2[8];    var lng = fields2[9];
              for (var i = 0; i < city_latlng.length; i++)
              {
                  var fields = city_latlng[i].split("|");
                  if (fields[0] == loc){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " RECREATION SITE")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " PROVINCIAL PARK")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " REGIONAL PARK")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
              }
              if (pickedlat == 0)
              {
                 pickedlat = parseFloat(lat); pickedlng = parseFloat(lng);
                 if (pickedlng > -101.30 || pickedlng < -110.02 || pickedlat < 49.0 || pickedlat > 58.0)
                 {
                     pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;
                 }
              }
          }
          if (city == "All"){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "Saskatoon"){pickedzoom = pickedzoomSaskatoon;}
          map.setCenter(new GLatLng(pickedlat,pickedlng), pickedzoom);
          all_markers = new Array();                                
          map.clearOverlays();  
          getMarkerIDs();  
          newLoad(); 
          runSort();
          //var current_center = map.getCenter();
          //map.setCenter(current_center, pickedzoom);
       }
       map.setCenter(current_center, savedzoom);
       var output = Listing_values.length + " listings returned by search.";
       if (openhousesonff == 1){output = output + "&nbsp;&nbsp;&nbsp;NOTE: You are currently viewing Open Houses Only!";}
       display(output);
    }
//--------------------------------------------------------------------------------
 
//--------------------------------------------------------------------------------
    function switchToAllListings()
    {
        var current_center = map.getCenter();
        openhousesonff = 0;
        var openhouses_div2_txt = "<table style='font-size:8pt;font-family:Arial'>";
        openhouses_div2_txt = openhouses_div2_txt+"<tr><td><a href='Javascript:switchToOpenhouses()'>Open Houses Only</a></td></tr>";
        openhouses_div2_txt = openhouses_div2_txt+"<tr><td><a href='Javascript:resetMap()'>Reset map</a></td></tr>";
        openhouses_div2_txt = openhouses_div2_txt+"</table>";
        document.getElementById("openhouses_div").innerHTML = openhouses_div2_txt;
        showall = 1;
        if (All_listings.length > 0){ Listing_values = All_listings.slice(0);} else {Listing_values = new Array();}
        all_markers = new Array();                                
        map.clearOverlays();  
        //getMarkerIDs();
        //newLoad();
        //runSort();
       if (Listing_values.length == 0)
       {  
          display(Listing_values.length + " listings returned by search.");
          document.getElementById("grid").innerHTML = "";    
          document.getElementById("grid_pages").innerHTML = "";    
          var citylookup = city.toUpperCase();
          pickedlat = 0;           pickedlng = 0;           pickedzoom = pickedzoom_master;
          for (var i = 0; i < city_latlng.length; i++)
          {
              var fields = city_latlng[i].split("|");
              if (fields[0] == citylookup){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " RECREATION SITE")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " PROVINCIAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " REGIONAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
          }
          if (pickedlat == 0){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "All"){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "Saskatoon"){pickedzoom = pickedzoomSaskatoon;}
          map.setCenter(new GLatLng(pickedlat,pickedlng), pickedzoom);
       }
       else
       {
          for (var i = 0; i < Listing_values.length-1; i++)
          {
              var fields = Listing_values[i].split("|");
              for (var j = i+1; j < Listing_values.length; j++)
              {
                  var fields2 = Listing_values[j].split("|");
                  // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
                  // 10=openhouse, 11=newold, 12=changed, 13=siteid
                  var changeit = 0;
                  if (parseFloat(fields[8]) > parseFloat(fields2[8])){changeit = 1;}
                  if (parseFloat(fields[8]) == parseFloat(fields2[8])){if (parseFloat(fields[9]) < parseFloat(fields2[9])){changeit = 1;}}
                  if (changeit == 1)
                  {
                     var temp = Listing_values[i]; 
                     Listing_values[i] = Listing_values[j]; 
                     Listing_values[j] = temp;
                     fields = Listing_values[i].split("|");
                     fields2 = Listing_values[j].split("|");
                  }
              }
          }
          var citylookup = city.toUpperCase();
          pickedlat = 0;           pickedlng = 0;           pickedzoom = city_center_zoom;
          for (var i = 0; i < city_latlng.length; i++)
          {
              var fields = city_latlng[i].split("|");
              if (fields[0] == citylookup){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " RECREATION SITE")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " PROVINCIAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
              if (fields[0] == (citylookup + " REGIONAL PARK")){
                 pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]);break;}
          }
          if (pickedlat == 0)
          {
              var fields2 = Listing_values[0].split("|");
              var loc = fields2[3].toUpperCase();    var lat = fields2[8];    var lng = fields2[9];
              for (var i = 0; i < city_latlng.length; i++)
              {
                  var fields = city_latlng[i].split("|");
                  if (fields[0] == loc){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " RECREATION SITE")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " PROVINCIAL PARK")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
                  if (fields[0] == (loc + " REGIONAL PARK")){pickedlat = parseFloat(fields[1]); pickedlng = parseFloat(fields[2]); break;}
              }
              if (pickedlat == 0)
              {
                 pickedlat = parseFloat(lat); pickedlng = parseFloat(lng);
                 if (pickedlng > -101.30 || pickedlng < -110.02 || pickedlat < 49.0 || pickedlat > 58.0)
                 {
                     pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;
                 }
              }
          }
          if (city == "All"){pickedlat = prov_center_lat; pickedlng = prov_center_lng; pickedzoom = prov_center_zoom;}
          if (city == "Saskatoon"){pickedzoom = pickedzoomSaskatoon;}
          map.setCenter(new GLatLng(pickedlat,pickedlng), pickedzoom);
          all_markers = new Array();                                
          map.clearOverlays();  
          getMarkerIDs();  
          newLoad(); 
          runSort();
          map.setCenter(current_center, savedzoom);
       }
       map.setCenter(current_center, savedzoom);
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function resetMap()
    {
        openhousesonff = 0;
        map.clearOverlays();
        all_markers = new Array();
        map.setCenter(new GLatLng(city_center_lat,city_center_lng), city_center_zoom);
        document.getElementById("legend_div").innerHTML = legend_div_txt;
        document.getElementById("openhouses_div").innerHTML = openhouses_div_txt;
        document.getElementById("query_div").innerHTML = search_div_txt + sort_div_txt;
        display("");
        document.getElementById("grid").innerHTML = "";    
        runCityQuery();
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function highlight_cell(tablecell,number)
    {
        tablecell.style.background="#e0e0e0";
        // appropriate marker color changes
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
        var fields=Listing_values[number].split("|"); 
        var title = fields[1];           var city = fields[2];                
        var neighborhood = fields[3];    var thumbnail_url = fields[5];        var details_url = fields[6];
        var desc = fields[7];
        //var price = fields[4].slice(0,fields[4].length-2) + ".00";
        var price = fields[4];
        var markerid = parseInt(fields[15]);                
        var mymarker = all_markers[markerid];
        if (unhighlighted == 0)
        {
           if (fields[16] == "1"){mymarker.setImage('./images/cyan.png');}
           else{mymarker.setImage('./images/cyan_large.png');}
        }
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function reset_cell(tablecell,number)
    {
        tablecell.style.background="#ffffff";
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
        var fields=Listing_values[number].split("|"); 
        var title = fields[1];           var city = fields[2];                
        var neighborhood = fields[3];    var thumbnail_url = fields[5];        var details_url = fields[6];
        var desc = fields[7];
        //var price = fields[4].slice(0,fields[4].length-2) + ".00";
        var price = fields[4];
        var markerid = parseInt(fields[15]);                
        var mymarker = all_markers[markerid];

        if (unhighlighted == 0)
        {
           if (fields[16] == "1")
           {
               if (fields[11] == "Y"){mymarker.setImage('./images/red.png');}
               else 
               {
                   if (fields[12] == "Y"){mymarker.setImage('./images/green.png');}
                   else {mymarker.setImage('./images/blue.png');}
               }
           }
           else
           {
               //mymarker.setImage('./images/blue_large.png');}
               if (mymarker.which == 0){mymarker.setImage('./images/blue_large_new.png');}
               if (mymarker.which == 1){mymarker.setImage('./images/red_large_new.png');}
               if (mymarker.which == 2){mymarker.setImage('./images/green_large_new.png');}
           }
        }
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
function display(message){
   if (whichscreen == "SMALL"){
      document.getElementById("display-div").style.fontSize="8pt";
      document.getElementById("display-div").style.fontWeight="bold";
      document.getElementById("display-div").style.color="red";
      document.getElementById("display-div").innerHTML="<style:'font-size:12pt;'>"+message+"</style>";
   }else{	document.getElementById("display-div").innerHTML="<style:'font-size:12pt'>"+message+"</style>";   }
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
// runSort()
//--------------------------------------------------------------------------------
    function runSort()
    {
        var elementnum2 = document.getElementById("sortorder").selectedIndex;
 
        // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
        // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
        // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
        for(var n=0;n<Listing_values.length-1;n++) 
        {
            // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
            // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
            // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
            var fields=Listing_values[n].split("|");       
            var tempprice = fields[4];
            tempprice = tempprice.replace(",","");
            var price = parseInt(tempprice);

            for(var j=n+1;j<Listing_values.length;j++) 
            {
                    var fields2=Listing_values[j].split("|");    
                    var tempprice2 = fields2[4];
                    tempprice2 = tempprice2.replace(",","");
                    var price2 = parseInt(tempprice2);
                    if (elementnum2 == 0)
                    {
                        if (price > price2)
                        {
                            var templine = Listing_values[n];         Listing_values[n] = Listing_values[j];
                            Listing_values[j] = templine;             var fields=Listing_values[n].split("|"); 
                            var tempprice = fields[4];
                            tempprice = tempprice.replace(",","");
                            var price = parseInt(tempprice);
                        }
                    }else{
                        if (price < price2)
                        {
                            var templine = Listing_values[n];         Listing_values[n] = Listing_values[j];
                            Listing_values[j] = templine;             var fields=Listing_values[n].split("|"); 
                            var tempprice = fields[4];
                            tempprice = tempprice.replace(",","");
                            var price = parseInt(tempprice);
                        }
                    }
            }
        }
        var pagenum = 1;
        var numperpage = 0;
        page1 = new Array();        page2 = new Array();        page3 = new Array();
        page4 = new Array();        page5 = new Array();        page6 = new Array();
        page7 = new Array();        page8 = new Array();        page9 = new Array();
        page10 = new Array();       page11 = new Array();       page12 = new Array();
        page13 = new Array();       page14 = new Array();       page15 = new Array();
        page16 = new Array();       page17 = new Array();       page18 = new Array();
        page19 = new Array();       page20 = new Array();       page21 = new Array();
        page22 = new Array();       page23 = new Array();       page24 = new Array();
        page25 = new Array();       page26 = new Array();       page27 = new Array();
        page28 = new Array();       page29 = new Array();       page30 = new Array();
        page31 = new Array();       page32 = new Array();       page33 = new Array();
        page34 = new Array();       page35 = new Array();       page36 = new Array();
        page37 = new Array();       page38 = new Array();       page39 = new Array();
        page40 = new Array();       page41 = new Array();       page42 = new Array();
        page43 = new Array();       page44 = new Array();       page45 = new Array();
        page46 = new Array();       page47 = new Array();       page48 = new Array();
        page49 = new Array();       page50 = new Array();       page51 = new Array();
        page52 = new Array();       page53 = new Array();       page54 = new Array();
        page55 = new Array();       page56 = new Array();       page57 = new Array();
        page58 = new Array();       page59 = new Array();       page60 = new Array();
        page61 = new Array();       page62 = new Array();       page63 = new Array();
        page64 = new Array();       page65 = new Array();       page66 = new Array();
        page67 = new Array();       page68 = new Array();       page69 = new Array();
        page70 = new Array();       page71 = new Array();       page72 = new Array();
        page73 = new Array();       page74 = new Array();       page75 = new Array();
        page76 = new Array();       page77 = new Array();       page78 = new Array();
        page79 = new Array();       
        numarrays = 0;              totpages = 0;
        for(var n=0;n<Listing_values.length;n++) 
        {
            // 0=id, 1=title, 2=city, 3=loc, 4=price, 5=file, 6=url, 7=desc, 8=lat, 9=lng, 
            // 10=openhouse, 11=newold, 12=changed, 13=siteid, 
            // 14=lineid, 15=markerid, 16=nummarkers_at_lat_lng, 17= pos_in_group
            var fields=Listing_values[n].split("|");    
            fields[14] = n;
            Listing_values[n] = fields.join("|");   
            numperpage++;
            if (numperpage > 15){numperpage = 1; pagenum++;}
            if (pagenum == 1){page1[numperpage-1] = Listing_values[n];}     
            if (pagenum == 2){page2[numperpage-1] = Listing_values[n];}
            if (pagenum == 3){page3[numperpage-1] = Listing_values[n];}
            if (pagenum == 4){page4[numperpage-1] = Listing_values[n];}
            if (pagenum == 5){page5[numperpage-1] = Listing_values[n];}     
            if (pagenum == 6){page6[numperpage-1] = Listing_values[n];}
            if (pagenum == 7){page7[numperpage-1] = Listing_values[n];}     
            if (pagenum == 8){page8[numperpage-1] = Listing_values[n];}
            if (pagenum == 9){page9[numperpage-1] = Listing_values[n];}     
            if (pagenum == 10){page10[numperpage-1] = Listing_values[n];}
            if (pagenum == 11){page11[numperpage-1] = Listing_values[n];}   
            if (pagenum == 12){page12[numperpage-1] = Listing_values[n];}
            if (pagenum == 13){page13[numperpage-1] = Listing_values[n];}   
            if (pagenum == 14){page14[numperpage-1] = Listing_values[n];}
            if (pagenum == 15){page15[numperpage-1] = Listing_values[n];}   
            if (pagenum == 16){page16[numperpage-1] = Listing_values[n];}
            if (pagenum == 17){page17[numperpage-1] = Listing_values[n];}   
            if (pagenum == 18){page18[numperpage-1] = Listing_values[n];}
            if (pagenum == 19){page19[numperpage-1] = Listing_values[n];}   
            if (pagenum == 20){page20[numperpage-1] = Listing_values[n];}
            if (pagenum == 21){page21[numperpage-1] = Listing_values[n];}   
            if (pagenum == 22){page22[numperpage-1] = Listing_values[n];}
            if (pagenum == 23){page23[numperpage-1] = Listing_values[n];}   
            if (pagenum == 24){page24[numperpage-1] = Listing_values[n];}
            if (pagenum == 25){page25[numperpage-1] = Listing_values[n];}   
            if (pagenum == 26){page26[numperpage-1] = Listing_values[n];}
            if (pagenum == 27){page27[numperpage-1] = Listing_values[n];}   
            if (pagenum == 28){page28[numperpage-1] = Listing_values[n];}
            if (pagenum == 29){page29[numperpage-1] = Listing_values[n];}   
            if (pagenum == 30){page30[numperpage-1] = Listing_values[n];}
            if (pagenum == 31){page31[numperpage-1] = Listing_values[n];}   
            if (pagenum == 32){page32[numperpage-1] = Listing_values[n];}
            if (pagenum == 33){page33[numperpage-1] = Listing_values[n];}   
            if (pagenum == 34){page34[numperpage-1] = Listing_values[n];}
            if (pagenum == 35){page35[numperpage-1] = Listing_values[n];}   
            if (pagenum == 36){page36[numperpage-1] = Listing_values[n];}
            if (pagenum == 37){page37[numperpage-1] = Listing_values[n];}   
            if (pagenum == 38){page38[numperpage-1] = Listing_values[n];}
            if (pagenum == 39){page39[numperpage-1] = Listing_values[n];}   
            if (pagenum == 40){page40[numperpage-1] = Listing_values[n];}
            if (pagenum == 41){page41[numperpage-1] = Listing_values[n];}   
            if (pagenum == 42){page42[numperpage-1] = Listing_values[n];}
            if (pagenum == 43){page43[numperpage-1] = Listing_values[n];}   
            if (pagenum == 44){page44[numperpage-1] = Listing_values[n];}
            if (pagenum == 45){page45[numperpage-1] = Listing_values[n];}   
            if (pagenum == 46){page46[numperpage-1] = Listing_values[n];}
            if (pagenum == 47){page47[numperpage-1] = Listing_values[n];}   if (pagenum == 48){page48[numperpage-1] = Listing_values[n];}
            if (pagenum == 49){page49[numperpage-1] = Listing_values[n];}
            if (pagenum == 50){page50[numperpage-1] = Listing_values[n];}
            if (pagenum == 51){page51[numperpage-1] = Listing_values[n];}
            if (pagenum == 52){page52[numperpage-1] = Listing_values[n];}
            if (pagenum == 53){page53[numperpage-1] = Listing_values[n];}
            if (pagenum == 54){page54[numperpage-1] = Listing_values[n];}
            if (pagenum == 55){page55[numperpage-1] = Listing_values[n];}
            if (pagenum == 56){page56[numperpage-1] = Listing_values[n];}
            if (pagenum == 57){page57[numperpage-1] = Listing_values[n];}
            if (pagenum == 58){page58[numperpage-1] = Listing_values[n];}
            if (pagenum == 59){page59[numperpage-1] = Listing_values[n];}
            if (pagenum == 60){page60[numperpage-1] = Listing_values[n];}
            if (pagenum == 61){page61[numperpage-1] = Listing_values[n];}
            if (pagenum == 62){page62[numperpage-1] = Listing_values[n];}
            if (pagenum == 63){page63[numperpage-1] = Listing_values[n];}
            if (pagenum == 64){page64[numperpage-1] = Listing_values[n];}
            if (pagenum == 65){page65[numperpage-1] = Listing_values[n];}
            if (pagenum == 66){page66[numperpage-1] = Listing_values[n];}
            if (pagenum == 67){page67[numperpage-1] = Listing_values[n];}
            if (pagenum == 68){page68[numperpage-1] = Listing_values[n];}
            if (pagenum == 69){page69[numperpage-1] = Listing_values[n];}
            if (pagenum == 70){page70[numperpage-1] = Listing_values[n];}
            if (pagenum == 71){page71[numperpage-1] = Listing_values[n];}
            if (pagenum == 72){page72[numperpage-1] = Listing_values[n];}
            if (pagenum == 73){page73[numperpage-1] = Listing_values[n];}
            if (pagenum == 74){page74[numperpage-1] = Listing_values[n];}
            if (pagenum == 75){page75[numperpage-1] = Listing_values[n];}
            if (pagenum == 76){page76[numperpage-1] = Listing_values[n];}
            if (pagenum == 77){page77[numperpage-1] = Listing_values[n];}
            if (pagenum == 78){page78[numperpage-1] = Listing_values[n];}
            if (pagenum == 79){page79[numperpage-1] = Listing_values[n];}
        }    
        totpages = pagenum;
        for (var n = 0; n < all_markers.length; n++)
        {
             var ids = new Array();
	          var mymarker = all_markers[n];
             for (var i = 0; i < Listing_values.length; i++)
             {
                 var fields = Listing_values[i].split("|");
                 if (parseInt(fields[15]) == n){ids.push(Listing_values[i]);} 
             }
             mymarker.group_listings = ids;
        }
        getPage(1);
        unhighlight = 0;
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
function getPage(pagenum2)
{
     var pagenum = parseInt(pagenum2);
     gridtext = gridtexthdr;
     if (pagenum == 1)
     {
        for (var n = 0; n < page1.length; n++)
        {
            var fields=page1[n].split("|"); 
            var gridline = gridSectionNew(page1[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 2)
     {
        for (var n = 0; n < page2.length; n++)
        {
            var fields=page2[n].split("|"); 
            var gridline = gridSectionNew(page2[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 3)
     {
        for (var n = 0; n < page3.length; n++)
        {
            var fields=page3[n].split("|"); 
            var gridline = gridSectionNew(page3[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 4)
     {
        for (var n = 0; n < page4.length; n++)
        {
            var fields=page4[n].split("|"); 
            var gridline = gridSectionNew(page4[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 5)
     {
        for (var n = 0; n < page5.length; n++)
        {
            var fields=page5[n].split("|"); 
            var gridline = gridSectionNew(page5[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 6)
     {
        for (var n = 0; n < page6.length; n++)
        {
            var fields=page6[n].split("|"); 
            var gridline = gridSectionNew(page6[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 7)
     {
        for (var n = 0; n < page7.length; n++)
        {
            var fields=page7[n].split("|"); 
            var gridline = gridSectionNew(page7[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 8)
     {
        for (var n = 0; n < page8.length; n++)
        {
            var fields=page8[n].split("|"); 
            var gridline = gridSectionNew(page8[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 9)
     {
        for (var n = 0; n < page9.length; n++)
        {
            var fields=page9[n].split("|"); 
            var gridline = gridSectionNew(page9[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 10)
     {
        for (var n = 0; n < page10.length; n++)
        {
            var fields=page10[n].split("|"); 
            var gridline = gridSectionNew(page10[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 11)
     {
        for (var n = 0; n < page11.length; n++)
        {
            var fields=page11[n].split("|"); 
            var gridline = gridSectionNew(page11[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 12)
     {
        for (var n = 0; n < page12.length; n++)
        {
            var fields=page12[n].split("|"); 
            var gridline = gridSectionNew(page12[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 13)
     {
        for (var n = 0; n < page13.length; n++)
        {
            var fields=page13[n].split("|"); 
            var gridline = gridSectionNew(page13[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 14)
     {
        for (var n = 0; n < page14.length; n++)
        {
            var fields=page14[n].split("|"); 
            var gridline = gridSectionNew(page14[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 15)
     {
        for (var n = 0; n < page15.length; n++)
        {
            var fields=page15[n].split("|"); 
            var gridline = gridSectionNew(page15[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 16)
     {
        for (var n = 0; n < page16.length; n++)
        {
            var fields=page16[n].split("|"); 
            var gridline = gridSectionNew(page16[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 17)
     {
        for (var n = 0; n < page17.length; n++)
        {
            var fields=page17[n].split("|"); 
            var gridline = gridSectionNew(page17[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 18)
     {
        for (var n = 0; n < page18.length; n++)
        {
            var fields=page18[n].split("|"); 
            var gridline = gridSectionNew(page18[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 19)
     {
        for (var n = 0; n < page19.length; n++)
        {
            var fields=page19[n].split("|"); 
            var gridline = gridSectionNew(page19[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 20)
     {
        for (var n = 0; n < page20.length; n++)
        {
            var fields=page20[n].split("|"); 
            var gridline = gridSectionNew(page20[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 21)
     {
        for (var n = 0; n < page21.length; n++)
        {
            var fields=page21[n].split("|"); 
            var gridline = gridSectionNew(page21[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 22)
     {
        for (var n = 0; n < page22.length; n++)
        {
            var fields=page22[n].split("|"); 
            var gridline = gridSectionNew(page22[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 23)
     {
        for (var n = 0; n < page23.length; n++)
        {
            var fields=page23[n].split("|"); 
            var gridline = gridSectionNew(page23[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 24)
     {
        for (var n = 0; n < page24.length; n++)
        {
            var fields=page24[n].split("|"); 
            var gridline = gridSectionNew(page24[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 25)
     {
        for (var n = 0; n < page25.length; n++)
        {
            var fields=page25[n].split("|"); 
            var gridline = gridSectionNew(page25[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 26)
     {
        for (var n = 0; n < page26.length; n++)
        {
            var fields=page26[n].split("|"); 
            var gridline = gridSectionNew(page26[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 27)
     {
        for (var n = 0; n < page27.length; n++)
        {
            var fields=page27[n].split("|"); 
            var gridline = gridSectionNew(page27[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 28)
     {
        for (var n = 0; n < page28.length; n++)
        {
            var fields=page28[n].split("|"); 
            var gridline = gridSectionNew(page28[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 29)
     {
        for (var n = 0; n < page29.length; n++)
        {
            var fields=page29[n].split("|"); 
            var gridline = gridSectionNew(page29[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 30)
     {
        for (var n = 0; n < page30.length; n++)
        {
            var fields=page30[n].split("|"); 
            var gridline = gridSectionNew(page30[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 31)
     {
        for (var n = 0; n < page31.length; n++)
        {
            var fields=page31[n].split("|"); 
            var gridline = gridSectionNew(page31[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 32)
     {
        for (var n = 0; n < page32.length; n++)
        {
            var fields=page32[n].split("|"); 
            var gridline = gridSectionNew(page32[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 33)
     {
        for (var n = 0; n < page33.length; n++)
        {
            var fields=page33[n].split("|"); 
            var gridline = gridSectionNew(page33[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 34)
     {
        for (var n = 0; n < page34.length; n++)
        {
            var fields=page34[n].split("|"); 
            var gridline = gridSectionNew(page34[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 35)
     {
        for (var n = 0; n < page35.length; n++)
        {
            var fields=page35[n].split("|"); 
            var gridline = gridSectionNew(page35[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 36)
     {
        for (var n = 0; n < page36.length; n++)
        {
            var fields=page36[n].split("|"); 
            var gridline = gridSectionNew(page36[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 37)
     {
        for (var n = 0; n < page37.length; n++)
        {
            var fields=page37[n].split("|"); 
            var gridline = gridSectionNew(page37[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 38)
     {
        for (var n = 0; n < page38.length; n++)
        {
            var fields=page38[n].split("|"); 
            var gridline = gridSectionNew(page38[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 39)
     {
        for (var n = 0; n < page39.length; n++)
        {
            var fields=page39[n].split("|"); 
            var gridline = gridSectionNew(page39[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 40)
     {
        for (var n = 0; n < page40.length; n++)
        {
            var fields=page40[n].split("|"); 
            var gridline = gridSectionNew(page40[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 41)
     {
        for (var n = 0; n < page41.length; n++)
        {
            var fields=page41[n].split("|"); 
            var gridline = gridSectionNew(page41[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 42)
     {
        for (var n = 0; n < page42.length; n++)
        {
            var fields=page42[n].split("|"); 
            var gridline = gridSectionNew(page42[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 43)
     {
        for (var n = 0; n < page43.length; n++)
        {
            var fields=page43[n].split("|"); 
            var gridline = gridSectionNew(page43[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 44)
     {
        for (var n = 0; n < page44.length; n++)
        {
            var fields=page44[n].split("|"); 
            var gridline = gridSectionNew(page44[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 45)
     {
        for (var n = 0; n < page45.length; n++)
        {
            var fields=page45[n].split("|"); 
            var gridline = gridSectionNew(page45[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 46)
     {
        for (var n = 0; n < page46.length; n++)
        {
            var fields=page46[n].split("|"); 
            var gridline = gridSectionNew(page46[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 47)
     {
        for (var n = 0; n < page47.length; n++)
        {
            var fields=page47[n].split("|"); 
            var gridline = gridSectionNew(page47[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 48)
     {
        for (var n = 0; n < page48.length; n++)
        {
            var fields=page48[n].split("|"); 
            var gridline = gridSectionNew(page48[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 49)
     {
        for (var n = 0; n < page49.length; n++)
        {
            var fields=page49[n].split("|"); 
            var gridline = gridSectionNew(page49[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 50)
     {
        for (var n = 0; n < page50.length; n++)
        {
            var fields=page50[n].split("|"); 
            var gridline = gridSectionNew(page50[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 51)
     {
        for (var n = 0; n < page51.length; n++)
        {
            var fields=page51[n].split("|"); 
            var gridline = gridSectionNew(page51[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 52)
     {
        for (var n = 0; n < page52.length; n++)
        {
            var fields=page52[n].split("|"); 
            var gridline = gridSectionNew(page52[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 53)
     {
        for (var n = 0; n < page53.length; n++)
        {
            var fields=page53[n].split("|"); 
            var gridline = gridSectionNew(page53[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 54)
     {
        for (var n = 0; n < page54.length; n++)
        {
            var fields=page54[n].split("|"); 
            var gridline = gridSectionNew(page54[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 55)
     {
        for (var n = 0; n < page55.length; n++)
        {
            var fields=page55[n].split("|"); 
            var gridline = gridSectionNew(page55[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 56)
     {
        for (var n = 0; n < page56.length; n++)
        {
            var fields=page56[n].split("|"); 
            var gridline = gridSectionNew(page56[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 57)
     {
        for (var n = 0; n < page57.length; n++)
        {
            var fields=page57[n].split("|"); 
            var gridline = gridSectionNew(page57[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 58)
     {
        for (var n = 0; n < page58.length; n++)
        {
            var fields=page58[n].split("|"); 
            var gridline = gridSectionNew(page58[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 59)
     {
        for (var n = 0; n < page59.length; n++)
        {
            var fields=page59[n].split("|"); 
            var gridline = gridSectionNew(page59[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 60)
     {
        for (var n = 0; n < page60.length; n++)
        {
            var fields=page60[n].split("|"); 
            var gridline = gridSectionNew(page60[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 61)
     {
        for (var n = 0; n < page61.length; n++)
        {
            var fields=page61[n].split("|"); 
            var gridline = gridSectionNew(page61[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 62)
     {
        for (var n = 0; n < page62.length; n++)
        {
            var fields=page62[n].split("|"); 
            var gridline = gridSectionNew(page62[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 63)
     {
        for (var n = 0; n < page63.length; n++)
        {
            var fields=page63[n].split("|"); 
            var gridline = gridSectionNew(page63[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 64)
     {
        for (var n = 0; n < page64.length; n++)
        {
            var fields=page64[n].split("|"); 
            var gridline = gridSectionNew(page64[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 65)
     {
        for (var n = 0; n < page65.length; n++)
        {
            var fields=page65[n].split("|"); 
            var gridline = gridSectionNew(page65[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 66)
     {
        for (var n = 0; n < page66.length; n++)
        {
            var fields=page66[n].split("|"); 
            var gridline = gridSectionNew(page66[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 67)
     {
        for (var n = 0; n < page67.length; n++)
        {
            var fields=page67[n].split("|"); 
            var gridline = gridSectionNew(page67[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 68)
     {
        for (var n = 0; n < page68.length; n++)
        {
            var fields=page68[n].split("|"); 
            var gridline = gridSectionNew(page68[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 69)
     {
        for (var n = 0; n < page69.length; n++)
        {
            var fields=page69[n].split("|"); 
            var gridline = gridSectionNew(page69[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 70)
     {
        for (var n = 0; n < page70.length; n++)
        {
            var fields=page70[n].split("|"); 
            var gridline = gridSectionNew(page70[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 71)
     {
        for (var n = 0; n < page71.length; n++)
        {
            var fields=page71[n].split("|"); 
            var gridline = gridSectionNew(page71[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 72)
     {
        for (var n = 0; n < page72.length; n++)
        {
            var fields=page72[n].split("|"); 
            var gridline = gridSectionNew(page72[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 73)
     {
        for (var n = 0; n < page73.length; n++)
        {
            var fields=page73[n].split("|"); 
            var gridline = gridSectionNew(page73[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 74)
     {
        for (var n = 0; n < page74.length; n++)
        {
            var fields=page74[n].split("|"); 
            var gridline = gridSectionNew(page74[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 75)
     {
        for (var n = 0; n < page75.length; n++)
        {
            var fields=page75[n].split("|"); 
            var gridline = gridSectionNew(page75[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 76)
     {
        for (var n = 0; n < page76.length; n++)
        {
            var fields=page76[n].split("|"); 
            var gridline = gridSectionNew(page76[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 77)
     {
        for (var n = 0; n < page77.length; n++)
        {
            var fields=page77[n].split("|"); 
            var gridline = gridSectionNew(page77[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 78)
     {
        for (var n = 0; n < page78.length; n++)
        {
            var fields=page78[n].split("|"); 
            var gridline = gridSectionNew(page78[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     if (pagenum == 79)
     {
        for (var n = 0; n < page79.length; n++)
        {
            var fields=page79[n].split("|"); 
            var gridline = gridSectionNew(page79[n],fields[14]); gridtext = gridtext+gridline;
        }
     }
     gridtext = gridtext+gridtextftr;
     if (whichscreen == "SMALL")
     {
         var replacetext2 = "font-size:7pt";                                    
         var tempstr = gridtext;
         tempstr = tempstr.replace(/font-size:8pt/g,replacetext2);              
         gridtext = tempstr;
     }
     document.getElementById("grid").innerHTML = gridtext;

     var pagetext = "&nbsp;&nbsp;";
     if (totpages > 1){
        if (pagenum > 1){pagetext = pagetext + "<a href='javascript:getPage(" + (pagenum-1) + ");'>Previous</a>&nbsp;&nbsp;";}
        if (totpages <= 9)
        {
            for (var i = 1; i <= totpages; i++)
            {
               if (i == pagenum){pagetext = pagetext + i + "&nbsp;&nbsp;";}
               else { pagetext = pagetext + "<a href='javascript:getPage(" + i + ");'>" + i + "</a>&nbsp;&nbsp;";}
            }
        }
        else
        {
            for (var i = pagenum; i <= totpages; i++)
            {
               if (i == pagenum){pagetext = pagetext + i + "&nbsp;&nbsp;";}
               else { pagetext = pagetext + "<a href='javascript:getPage(" + i + ");'>" + i + "</a>&nbsp;&nbsp;";}
               if (i == (pagenum + 8)){break;}
            }
        }
        if (pagenum < totpages){pagetext = pagetext + "<a href='javascript:getPage(" + (pagenum+1) + ");'>Next</a>";}
     }
     document.getElementById("grid_pages").innerHTML = pagetext;
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
//  getGlobalsFromURL()
//--------------------------------------------------------------------------------
function getGlobalsFromURL()
{
    listingID = ""; 
    var parameters2 = from_URL.split("&");
    var param_names = new Array();
    var param_values = new Array();
    for (var i = 0; i < parameters2.length; i++)
    {
        var temp = parameters2[i].split("=");
        param_names.push(temp[0]);
        if (temp.length > 1)
        {
            param_values.push(temp[1]);
            if (temp[0] == "listing_id"){listingID = temp[1];}
        }
    }
}
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function getListingCity()
    {
        var city = "NULL";
        var xmlDoc;
        if (window.XMLHttpRequest) 
        { 
           // code for Mozilla, Safari, etc 
           var xmlhttp = new XMLHttpRequest();           
           xmlhttp.open('GET', './xmls/Listing_Extract.xml', false);
           xmlhttp.send(null);               
           var xmlDoc = xmlhttp.responseXML;
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var id = y.getNamedItem("siteid").value;
               if (id ==  listingID)
               {
                   listingIDcity = y.getNamedItem("city").value;
                   listingIDlat = y.getNamedItem("lat").value;
                   listingIDlon = y.getNamedItem("lon").value;
                   break;
               }
           }
        } 
        else if (window.ActiveXObject) 
        { 
           //IE 
           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async=false;
           xmlDoc.load('./xmls/Listing_Extract.xml');
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var id = y.getNamedItem("siteid").value;
               if (id ==  listingID)
               {
                   listingIDcity = y.getNamedItem("city").value;
                   listingIDlat = y.getNamedItem("lat").value;
                   listingIDlon = y.getNamedItem("lon").value;
                   break;
               }
           }
       }
    }
//--------------------------------------------------------------------------------

//--------------------------------------------------------------------------------
    function getCities2()
    {
        var mynumrows = 0;        
        city_values = new Array();
        city_counts = new Array();
        var totlistings = 0;
        var xmlDoc;
        if (window.XMLHttpRequest) 
        { 
           // code for Mozilla, Safari, etc 
           var xmlhttp = new XMLHttpRequest();           
           xmlhttp.open('GET', './xmls/Listing_Extract.xml', false);
           xmlhttp.send(null);               
           var xmlDoc = xmlhttp.responseXML;
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var lat = y.getNamedItem("lat").value;
               var lng = y.getNamedItem("lon").value;
               var siteid = y.getNamedItem("siteid").value;
               var matched = 1;
               if (parseFloat(lng) > -101.30 || parseFloat(lng) < -110.02 || parseFloat(lat) < 49.0 || parseFloat(lat) > 58.0)
               {
                   matched = 0;
                   for (var j = 0; j < latlng_lookup.length; j++)
                   {
                       var fields = latlng_lookup[j].split("|");
                       if (siteid == fields[0]){matched = 1;}
                   }
               }  
               if (matched == 1)
               {
                   var city = y.getNamedItem("city").value;
                   city = city.replace("+#","&#"); 
                   city = trim(city);
                   matched = -1;
                   for (var j = 0; j < city_values.length; j++){if (city_values[j] == city){matched = j; break;}}
                   if (matched == -1){city_values[mynumrows] = city;  city_counts[mynumrows] = 1; mynumrows = mynumrows + 1;}
                   else {city_counts[matched] = city_counts[matched] + 1;}
               }
           }
        } 
        else if (window.ActiveXObject) 
        { 
           //IE 
           xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
           xmlDoc.async=false;
           xmlDoc.load('./xmls/Listing_Extract.xml');
           var x=xmlDoc.getElementsByTagName("row");
           for (i=0;i<x.length;i++)
           {
               var y=x[i].attributes;
               var lat = y.getNamedItem("lat").value;
               var lng = y.getNamedItem("lon").value;
               var siteid = y.getNamedItem("siteid").value;
               var matched = 1;
               if (parseFloat(lng) > -101.30 || parseFloat(lng) < -110.02 || parseFloat(lat) < 49.0 || parseFloat(lat) > 58.0)
               {
                   matched = 0;
                   for (var j = 0; j < latlng_lookup.length; j++)
                   {
                       var fields = latlng_lookup[j].split("|");
                       if (siteid == fields[0]){matched = 1;}
                   }
               }  
               if (matched == 1)
               {
                   var city = y.getNamedItem("city").value;
                   city = city.replace("+#","&#"); 
                   city = trim(city);
                   matched = -1;
                   for (var j = 0; j < city_values.length; j++){if (city_values[j] == city){matched = j; break;}}
                   if (matched == -1){city_values[mynumrows] = city;  city_counts[mynumrows] = 1; mynumrows = mynumrows + 1;}
                   else {city_counts[matched] = city_counts[matched] + 1;}
               }
           }
       }
       for (var i = 0; i < city_values.length; i++){totlistings = totlistings + city_counts[i];}
       for (var i = 1; i < city_values.length-1; i++)
       {
           for (var j = i+1; j < city_values.length; j++)
           {
               if (city_values[i] > city_values[j])
               {
                  city = city_values[i]; 
                  city_values[i] = city_values[j]; 
                  city_values[j] = city;
                  mynumrows = city_counts[i];
                  city_counts[i] = city_counts[j];
                  city_counts[j] = mynumrows;
               }
           }
       }
       search_div_txt = "<table style='font-size:8pt;font-family:Arial'>";
       search_div_txt = search_div_txt+"<tr><td><b>Search by City:</b></td></tr>";
       search_div_txt = search_div_txt+"<tr><td><select id='cities' style='font-size:7pt;font-family:Arial;background-color:#e8e8e8' onchange='Javascript:runCityQuery();'><option>All Listings (" + totlistings + ")</option>";
       for (var i = 0; i < city_values.length; i++)
       {
           var compare = "Saskatoon";
           if (listingIDcity.length > 0){compare = listingIDcity;}
           if (city_values[i] == compare)
           {
               search_div_txt = search_div_txt +"<option selected='selected'>";
               search_div_txt = search_div_txt + city_values[i] + " (" + city_counts[i] + ")</option>";
           }
           else
           {
               search_div_txt = search_div_txt +"<option>";
               search_div_txt = search_div_txt + city_values[i] + " (" + city_counts[i] + ")</option>";
           }
       }
       search_div_txt = search_div_txt+"</select></td></tr></table>";
       document.getElementById("query_div").innerHTML = search_div_txt + sort_div_txt;
    }
//--------------------------------------------------------------------------------
