var defaultIcon = null;
var bringBanksIcon = null;
var recyclingCentreIcon = null
var civicAmenityIcon = null;
var countyIcon = null;
var mrkManager;

function getdata(county, facility_type, keywords, materials){
  mrkManager = new MarkerManager(map, {trackMarkers:true});  
  //mrkManager = new GMarkerManager(map);
  loadIcons();
  google.maps.DownloadUrl("getdata.php?target=A&county="+county+"&facility_type="+facility_type+"&keywords="+keywords+"&materials="+materials, function (data) {
    addMapsData(data);
  }); 
}

function addMapsData(data){
  //var hasInnerText = (document.getElementsByTagName("body")[0].innerText != undefined) ? true : false;
  //mydebug('hasInnerText: '+hasInnerText);
  //mydebug(data);
  var xml = GXml.parse(data);
  // fill markers
  var MarkersLvl = xml.documentElement.getElementsByTagName("markers");
  //markers = [];
  //var lastDate=new Date();
  for(var MarkersLvlIndex = 0; MarkersLvlIndex < MarkersLvl.length; MarkersLvlIndex++){
    var xmlMarkers = MarkersLvl[MarkersLvlIndex].getElementsByTagName("marker");
    var markers = [];
    for (var i = 0; i < xmlMarkers.length; i++) {
      //mydebug('M'+i);
      markerChilds = xmlMarkers[i].childNodes;
      var id_mrk = xmlMarkers[i].getAttribute("id_mrk");
      var name = xmlMarkers[i].getAttribute("name");
      var lat = xmlMarkers[i].getAttribute("lat");
      var lng = xmlMarkers[i].getAttribute("lng");
      var type = xmlMarkers[i].getAttribute("type");
      //mydebug('count:'+markerChilds.length);
      for (var j = 0; j < markerChilds.length; j++) {
        //mydebug('f'+j+' - '+markerChilds[j].tagName);
        //if(markerChilds[j].tagName == 'id_mrk')
        //  var id_mrk = markerChilds[j].firstChild.nodeValue;
        //if(markerChilds[j].tagName == 'name')
        //  var name   = markerChilds[j].firstChild.nodeValue;      
        if(markerChilds[j].tagName == 'description')
          var mydescription = markerChilds[j].firstChild.nodeValue;
        //if(markerChilds[j].tagName == 'lat')
        //  var lat = markerChilds[j].firstChild.nodeValue;
        //if(markerChilds[j].tagName == 'lng')
        //  var lng = markerChilds[j].firstChild.nodeValue;
        //if(markerChilds[j].tagName == 'type')
        //  var type = markerChilds[j].firstChild.nodeValue;
      }
      //var id_mrk = xmlMarkers[i].getElementsByTagName("id_mrk").firstChild;
      //var title = xmlMarkers[i].getAttribute("title");
      //var date = xmlMarkers[i].getAttribute("date");
      //var description = xmlMarkers[i].getAttribute("description");
      //var lat = xmlMarkers[i].getAttribute("lat");
      //var lng = xmlMarkers[i].getAttribute("lng");
      //var type = xmlMarkers[i].getAttribute("type");
      
      var mmarker = create_marker(id_mrk, name, mydescription, lat, lng, type);
      markers.push(mmarker);
      //map.addOverlay(mmarker);
    }
    var zoom_min = parseInt(MarkersLvl[MarkersLvlIndex].getAttribute("zoom_min"));
    var zoom_max = parseInt(MarkersLvl[MarkersLvlIndex].getAttribute("zoom_max"));
    
    mrkManager.addMarkers(markers, zoom_min, zoom_max);
    
    //var currentTime = new Date();
    //console.log(zoom_min+"-"+zoom_max+" - "+markers.length +" ("+(currentTime - lastDate)+" ms)");
    //lastDate=new Date();    
  }
  mrkManager.refresh();
  overlayMessage.Clear();
}

function create_marker(id_mrk, title, mydescription, lat, lng, type){
  //center = new GLatLng(53.199, -7.6);
  //markerOptions = {draggable: false};
  //mymarker = new GMarker(center, markerOptions);
  //return mymarker;
  //mydebug('m'+id_mrk+'|'+title);
  
  gicon = defaultIcon;
  if (type == 0 )
    gicon = defaultIcon;
  else if (type == 1)
    gicon = bringBanksIcon;
  else if (type == 2)
    gicon = recyclingCentreIcon;
  else if (type == 3)
    gicon = civicAmenityIcon;
  else if (type == 10)
    gicon = countyIcon;
  
  //markerOptions = {draggable: false};
  markerOptions = {icon: gicon, draggable: false, title: title };
  //var gmarker = new GMarker(new google.maps.LatLng(lat, lng), {title: title, icon: gicon });
  point = new GLatLng(lat, lng);
  var gmarker = new GMarker(point, markerOptions);
  //var gmarker = new GMarker(center, markerOptions);
  //gmarker.disableDragging();
  //gmarker.id_mrk = marker.id_mrk;
  gmarker.bindInfoWindowHtml(mydescription); //description = description;
  //marker.gmarker = gmarker;
  
  return gmarker;
}

function mydebug(mytext){
  debugdiv = document.getElementById('debug');
  if(debugdiv) 
    debugdiv.innerHTML += mytext + '<br />';
  else 
    alert(mytext);
}

function showAddress(address) {
  if (geocoder) {
    geocoder.getLatLng(
      address,
      function(point) {
        if (!point) {
          alert(address + " not found");
        } else {
          if(map.getZoom()<12)
            map.setZoom(12);
          //mydebug(map.getZoom());
          map.panTo(point);
          mymarker.setLatLng(point);
          update_coordinates(mymarker);
        }
      }
    );
  }
} 

function loadIcons(){
  defaultIcon = new GIcon(G_DEFAULT_ICON);  
  
  bringBanksIcon = new GIcon(G_DEFAULT_ICON);
  bringBanksIcon.image = "http://www.repak.ie/icons_maps/bring_banks_icon.png";
  bringBanksIcon.iconSize = new GSize(18, 37);
  bringBanksIcon.shadow = "http://www.repak.ie/icons_maps/bring_banks_icon_shadow.png";
  bringBanksIcon.shadowSize = new GSize(34, 37);
  bringBanksIcon.iconAnchor = new GPoint(4, 37);
  bringBanksIcon.infoWindowAnchor = new GPoint( 18, 18);
  bringBanksIcon.printImage = "http://www.repak.ie/icons_maps/bring_banks_icon_print.gif";
  bringBanksIcon.mozPrintImage = "http://www.repak.ie/icons_maps/bring_banks_icon_mozprint.gif";
  bringBanksIcon.printShadow = "http://www.repak.ie/icons_maps/bring_banks_icon_print_shadow.gif";
  bringBanksIcon.transparent = "http://www.repak.ie/icons_maps/bring_banks_icon_transparent.png";
  bringBanksIcon.imageMap = [ 4,36, 3,30, 0,28, 0,0, 17,0, 17,29, 8,30, 5,36 ];
  
  recyclingCentreIcon = new GIcon(G_DEFAULT_ICON);
  recyclingCentreIcon.image = "http://www.repak.ie/icons_maps/recycling_centre_icon.png";
  recyclingCentreIcon.iconSize = new GSize(48, 61);
  recyclingCentreIcon.shadow = "http://www.repak.ie/icons_maps/recycling_centre_icon_shadow.png";
  recyclingCentreIcon.shadowSize = new GSize(81, 61);
  recyclingCentreIcon.iconAnchor = new GPoint(6, 61);
  recyclingCentreIcon.infoWindowAnchor = new GPoint( 48, 30);
  recyclingCentreIcon.printImage = "http://www.repak.ie/icons_maps/recycling_centre_icon_print.gif";
  recyclingCentreIcon.mozPrintImage = "http://www.repak.ie/icons_maps/recycling_centre_icon_mozprint.gif";
  recyclingCentreIcon.printShadow = "http://www.repak.ie/icons_maps/recycling_centre_icon_printshadow.gif";
  recyclingCentreIcon.transparent = "http://www.repak.ie/icons_maps/recycling_centre_icon_transparent.png";
  recyclingCentreIcon.imageMap = [ 6,60, 9,54, 1,43, 1,1, 46,1, 47,43, 25,45, 7,60];
  
  civicAmenityIcon = new GIcon(G_DEFAULT_ICON);
  civicAmenityIcon.image = "http://www.repak.ie/icons_maps/civic_amenity_icon.png";
  civicAmenityIcon.iconSize = new GSize(48, 61);
  civicAmenityIcon.shadow = "http://www.repak.ie/icons_maps/civic_amenity_icon_shadow.png";
  civicAmenityIcon.shadowSize = new GSize(81, 61);
  civicAmenityIcon.iconAnchor = new GPoint(6, 61);
  civicAmenityIcon.infoWindowAnchor = new GPoint(48, 30);
  civicAmenityIcon.printImage = "http://www.repak.ie/icons_maps/civic_amenity_icon_print.gif";
  civicAmenityIcon.mozPrintImage = "http://www.repak.ie/icons_maps/civic_amenity_icon_mozprint.gif";
  civicAmenityIcon.printShadow = "http://www.repak.ie/icons_maps/civic_amenity_icon_print_shadow.gif";
  civicAmenityIcon.transparent = "http://www.repak.ie/icons_maps/civic_amenity_icon_transparent.png";
  civicAmenityIcon.imageMap = [ 6,60, 9,54, 1,43, 1,1, 46,1, 47,43, 25,45, 7,60];

  countyIcon = new GIcon(G_DEFAULT_ICON);
  countyIcon.image = "icons_maps/county_icon.png";
  countyIcon.iconSize = new GSize(21, 30);
  countyIcon.shadow = "icons_maps/county_icon_shadow.png";
  countyIcon.shadowSize = new GSize(42, 30);
  countyIcon.iconAnchor = new GPoint(10, 30);
  countyIcon.infoWindowAnchor = new GPoint(10, 30);
  countyIcon.printImage = "icons_maps/county_icon_print.gif";
  countyIcon.mozPrintImage = "icons_maps/county_icon_mozprint.gif";
  countyIcon.printShadow = "icons_maps/county_icon_print_shadow.gif";
  countyIcon.transparent = "icons_maps/county_icon_transparent.png";
  countyIcon.imageMap = [ 10,29, 1,12, 1,5, 6,0, 14,0, 19,5, 19,12, 10,29];
}
