      var listingIds  = new Array();
      var markers     = new Array();


    function createMarker(point, html, icon) {

          var marker;

          if (icon) {
            marker = new GMarker(point, {icon: icon});
          }
          else {
            marker = new GMarker(point);
          }

            GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml(html);
            });
            return marker;
      }



      function openMarker(listingId) {
           GEvent.trigger(listingId,  "click");
      }


      function getMarkers(){
        //get the markers

        //clear existing
        var markers = new Array();
        var thecount = document.getElementById('count').value;
        var lat, lon, text, marker;
        for(i=0; i < thecount; i++) {
           if(document.getElementById('map-co-lat-'+i) != null){
             lat = document.getElementById('map-co-lat-'+i).value;
             lon = document.getElementById('map-co-lon-'+i).value;
             text = document.getElementById('map-txt-'+i).innerHTML;

             var point = new GLatLng(lat, lon);

             marker = createMarker(point, text);
             listingIds.push(i);
             markers.push(marker);

            }
        }
        return markers;
      }



   //open a marker
   function openMarker(listingId) {
      var marker;
      var num;
      for (var i = 0; i < listingIds.length; i++) {
        var id = listingIds[i];
        if (id == listingId) {
          num = i;
          break;
        }
    }
      if (num != undefined) {
        GEvent.trigger(markers[num],  "click");
        return;
      }
      //Clicks on a listing-id with no marker so close all info windows
      map.closeInfoWindow();
    }

  //zoomin
  function myzoom(a) {
      map.setZoom(map.getZoom() + a);
    }



   /// it all starts here !!!
    function initializeMap() {

      var mapcanvas = "map_canvas" ;

     // var listingIds  = new Array();
     // var markers     = new Array();
      document.getElementById(mapcanvas).style.display = 'block';

      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById(mapcanvas));

        //get the center point
        if(document.getElementById('map-center-lat') != null){
           var clat = document.getElementById('map-center-lat').value;
           var clon = document.getElementById('map-center-lon').value;
           var mapcenter = new GLatLng(clat, clon);
       } else {
         //default center point (WA) GW changed this? is it right?
            var mapcenter = new GLatLng(-24.59, 122.57); 
        //  var mapcenter = new GLatLng(-31.95, 115.85); //CBD
       }

        map.setCenter(mapcenter, 4); //this is the zoom level
        map.setUIToDefault();



        markers = getMarkers();
        for (var i = markers.length - 1; i >= 0 ; i--) {
              map.addOverlay(markers[i]);
        }
        //if only 1 marker then open and zoom
        if(markers.length == 1){
           openMarker(0);
           map.setZoom(16);
        }






      }
    }




   function initializeEditMap(lat, long) {
	//GW changed this? is it right?
      if(lat == ''){
          lat = -31.570836;
          long = 115.513273;
      }

      var mapcanvas = "map_edit" ;

      document.getElementById(mapcanvas).style.display = 'block';

      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById(mapcanvas));

        //default center point (middle of WA)
        var mapcenter = new GLatLng(lat, long);

        map.setCenter(mapcenter, 5);
        map.setUIToDefault();

        var marker = new GMarker(mapcenter);
        map.addOverlay(marker);


          GEvent.addListener( map, "click", function(overlay, point){

           map.clearOverlays();

            var newlat = point.lat(), newlong = point.lng();

            var center = new GLatLng(newlat, newlong);


            var marker = new GMarker(point);



            document.getElementById('latitude').value = point.lat();
            document.getElementById('longitude').value = point.lng();


              map.setCenter(point, map.getZoom() );
              map.addOverlay(marker);


            })



      }
    }

