///////////////////////////////////////////////////////////////////////////////////////////////////
//
// $Id: createGoogleInteractiveMap.js,v 1.10 2008/12/08 12:57:44 markr Exp markr $
//
///////////////////////////////////////////////////////////////////////////////////////////////////


function load() {
   if (GBrowserIsCompatible()) {
      var opts = {size: new GSize(800,600)};
      var map = new GMap2(document.getElementById("map"), opts);

      var control = new GLargeMapControl();
      map.addControl(control);

      var point = new GLatLng(53.077342, -2.258675);
      var xDelta = 0.00025;
      var yDelta = 0.00025;
      map.setCenter(point, 14);

      // Add the labels/icons
      GDownloadUrl("phpsql_genxml2.xml", function(data) {
         // I know this gets called now alert("HOW DO ALERTS WORK 2!");
         var xml = GXml.parse(data);
         var markers = xml.documentElement.getElementsByTagName("marker");

         var myCircles = Array();

         for (var i = 0; i < markers.length; i++) {
            // Add the street name to an array which will then be used to
            // populate the "Select" box after completing this for loop
            // The array is a simple string array and searchs/sorts are
            // faster this way.
            addStreetToSource(markers[i].getAttribute("WHERE"));

            addCountToSelectRange(parseInt(markers[i].getAttribute("SUM")));

            var latPoint = parseFloat(markers[i].getAttribute("LAT")) - xDelta;
            var longPoint = parseFloat(markers[i].getAttribute("LONG")) - yDelta;
            latPoint += (2 * xDelta) * Math.random();
            longPoint += (2 * yDelta) * Math.random();
            var sugPoint = new GLatLng(latPoint, longPoint);

            // Attribute the correct coloured Icon
            for (iCol=0; iCol < g_NUM_COLOURS; ++iCol) {
               if (g_theColours[iCol].chckBoxName == markers[i].getAttribute("COLOUR")) {
                  var markerSize = parseInt(markers[i].getAttribute("SUM"));
                  var markerIndex = Math.floor(markerSize / 2);
                  if (myCircles[markerIndex] == undefined) {
                     myCircles[markerIndex] = new GIcon();
                     myCircles[markerIndex].iconSize = new GSize(13 + markerSize, 12 + markerSize);
                     myCircles[markerIndex].iconAnchor = new GPoint(6 + markerSize, 6 + markerSize);
                     myCircles[markerIndex].infoWindowAnchor = new GPoint(6 + markerSize, 6 + markerSize);
                  }

                  myCircles[markerIndex].image = g_theColours[iCol].file;
                  markerOptions = { icon:myCircles[markerIndex] };

                  var fwhere = markers[i].getAttribute("WHERE");
                  var fwhat = markers[i].getAttribute("WHAT");
                  var fcoldesc = markers[i].getAttribute("COLDESC");

                  g_markers[g_markerIndex] = new MarkerClass(
                                                new GMarker(sugPoint, markerOptions),
                                                iCol, fwhat, fwhere, markerSize);
                  map.addOverlay(g_markers[g_markerIndex].theMarker);


                  var priorityLink = "<a href='"
                                    + "showPriority.html?item="
                                    + markers[i].getAttribute("PRIORITY_ITEM")
                                    + "&area="
                                    + markers[i].getAttribute("PRIORITY_AREA")
                                    + "' "
                                    + "target='_blank'>"
                                    + markers[i].getAttribute("PRIORITY_ITEM")
                                    + "</a>";
                  var spanStyle     = "<span "
                                       + "style='background-color:"
                                       + getColour(markers[i].getAttribute("STATUS"))
                                       + "'>";
                  var markerMessage = spanStyle
                                       + fcoldesc + "<br>"
                                       + fwhere + " : <b>"
                                       + fwhat + "</b> : " + markers[i].getAttribute("SUM")
                                       + "<br><small>@ lat,long:"
                                       + markers[i].getAttribute("LAT")
                                       + ","
                                       + markers[i].getAttribute("LONG")
                                       + "</small><br>"
                                       + "Priority Item("
                                       + priorityLink
                                       + ") "
                                       + "<small>"
                                       + "Ward : "
                                       + markers[i].getAttribute("PRIORITY_AREA")
                                       + "</small>"
                                       + "<br>'"
                                       + markers[i].getAttribute("HEADING")
                                       + "'"
                                       + " : <b>"
                                       + markers[i].getAttribute("PRIORITY1")
                                       + "</b><br>"
                                       + "<small>"
                                       + "assigned by community during consultation at "
                                       + markers[i].getAttribute("VENUE1")
                                       + " "
                                       + markers[i].getAttribute("DATE1")
                                       + "</small>"
                                       + "</span>";
                  g_markers[g_markerIndex].theMarker.bindInfoWindowHtml(markerMessage);
                  ++g_markerIndex;
               }
            }
         }

         // Update any forms, and show or hide markers depending on the check box status etc
         populateSourceStreetBox();
         populateCountBoxes();
         checkClick();
      });
   }
}
