/* Google geo-ref functions */

function updateMapMrks(zoom){
    var req=GXmlHttp.create();
    var url='http://'+document.location.host+document.location.pathname+'/AJAX_getMarkers?reg='+regione;
    req.open("GET", url, true);
    req.onreadystatechange = function(){
        if (req.readyState == 4){
            if (req.status == 200) {
                var res=req.responseText;
                markers=eval(res);
                mapCenterLat=markers[0][0];
				mapCenterLong=markers[0][1];
				markers.shift();
				var point=new GLatLng(mapCenterLat, mapCenterLong);
				map.panTo(point, 7);
				for(var i=0;i<markers.length;i++){
		    		var id=markers[i][0];
		    		var gLat=markers[i][1];
		    		var gLon=markers[i][2];
		    		point=new GLatLng(gLat, gLon);
		    		markers[i]=createMarker(point, id);
				}
				var mkrMgrOptions = { borderPadding: 50, trackMarkers: false };
    			mkrMgr = new GMarkerManager(map, mkrMgrOptions);
				mkrMgr.addMarkers(markers, zoom);
    			mkrMgr.refresh();               
            } /*else {
                alert('Errore di comunicazione con il server');
            }*/
        }
    }
    req.send(null);
}

function updateAVISMapMrks(zoom){
    var req=GXmlHttp.create();
    var url='http://'+document.location.host+document.location.pathname+'/AJAX_getAVISMarkers?reg='+regione+'&prov='+provincia;
    req.open("GET", url, true);
    req.onreadystatechange = function(){
        if (req.readyState == 4){
            if (req.status == 200) {
                var res=req.responseText;
                markers=eval(res);
                markers.shift(); // ignoro il centro della mappa che viene dato dalla geo-referenziazione dele aziende
				for(var i=0;i<markers.length;i++){
		    		var id=markers[i][0];
		    		var gLat=markers[i][1];
		    		var gLon=markers[i][2];
		    		point=new GLatLng(gLat, gLon);
		    		markers[i]=createAVISMarker(point, id);
				}
				var mkrMgrOptions = { borderPadding: 50, trackMarkers: false };
    			mkrMgr = new GMarkerManager(map, mkrMgrOptions);
				mkrMgr.addMarkers(markers, zoom);
    			mkrMgr.refresh();               
            } else {
                alert('Errore di comunicazione con il server');
            }
        }
    }
    req.send(null);
}

function createMarker(point, idx) {
   
  var Icon = new GIcon();
  Icon.image = 'http://'+document.location.host+'/agriturismi/agriturismo/www/geo/icona_agriturismi.png';
  Icon.iconSize = new GSize(22, 34);
  Icon.shadow = 'http://'+document.location.host+'/agriturismi/agriturismo/www/geo/icona_agriturismi_ombra.png';
  Icon.shadowSize = new GSize(34, 34);
  Icon.iconAnchor = new GPoint(10, 34);
  Icon.infoWindowAnchor = new GPoint(5, 2);
  //Icon.transparent = "mytran.png";
  //Icon.printImage = "mymarkerie.gif";
  //Icon.mozPrintImage = "mymarkerff.gif";
  //Icon.printShadow = "myshadow.gif";
  var marker = new GMarker(point, Icon);
  GEvent.addListener(marker, "click", function() {
    getMkrHTML(marker, idx);
  });
  return marker;
}


function createAVISMarker(point, idx) {
  var Icon = new GIcon();
  Icon.image = 'http://'+document.location.host+'/agriturismi/agriturismo/www/geo/icona_avis.png';
  Icon.iconSize = new GSize(18, 28);
  Icon.shadow = 'http://'+document.location.host+'/agriturismi/agriturismo/www/geo/icona_avis_ombra.png';
  Icon.shadowSize = new GSize(30, 30);
  Icon.iconAnchor = new GPoint(8, 28);
  Icon.infoWindowAnchor = new GPoint(5, 2);
  var marker = new GMarker(point, Icon);
  GEvent.addListener(marker, "click", function() {
    getAVISMkrHTML(marker, idx);
  });
  return marker;
}

function getMkrHTML(mkr,idx){
    var req=GXmlHttp.create();
    var url='http://'+document.location.host+document.location.pathname+'/AJAX_getMarkerHTMLWindow?mkrId='+ idx
    req.open("GET", url, true);
    req.onreadystatechange = function(){
        if (req.readyState == 4){
            if (req.status == 200) {
                var res=req.responseText;
                mkr.openInfoWindowHtml(res);
            } /*else {
                alert('Errore di comunicazione con il server');
            }*/
        }
    }
    req.send(null);
}

function getAVISMkrHTML(mkr,idx){
    var req=GXmlHttp.create();
    var url='http://'+document.location.host+document.location.pathname+'/AJAX_getAVISMarkerHTMLWindow?mkrId='+ idx
    req.open("GET", url, true);
    req.onreadystatechange = function(){
        if (req.readyState == 4){
            if (req.status == 200) {
                var res=req.responseText;
                mkr.openInfoWindowHtml(res);
            } /*else {
                alert('Errore di comunicazione con il server');
            } */
        }
    }
    req.send(null);
}