// JavaScript Document

	var map = null;
    var geocoder = null;
	var adresseERR = "";
	var adresseOK = "";
	var pointOK = "";
	var NBpointOK = 0;
	var NOM_APARCAMIENTO = "";

function load(recherche, punticos) {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
	map.addControl(new CustomControls());
	map.setCenter(new GLatLng(41.76469, -2.47205), 16);
	GEvent.addListener(map, "click", function() {
          CloseDiv('bulle');
		  CloseDiv('adresse');
		  CloseDiv('services');
		  CloseDiv('aproximite');
         });
	GEvent.addListener(map, "dragstart", function() {
          CloseDiv('bulle');
		  CloseDiv('adresse');
		  CloseDiv('services');
		  CloseDiv('aproximite');
         });
   
   var DimensionPlan = map.getSize();
   var LargeurPlan = DimensionPlan.width;
   var HauteurPlan = DimensionPlan.height;
  }
 
// Create marker icons
		/*
		var icon_parking = new GIcon(); 

		icon_parking.image = "mapasparking/imagenes_googlemap/picto_parking.png";
		icon_parking.iconSize = new GSize(30, 53);
        icon_parking.iconAnchor = new GPoint(8, 53);
        icon_parking.infoWindowAnchor = new GPoint(5, 1);

		*/
		
// Create infoTabs
	    var infoTabs = [
          new GInfoWindowTab("Onglet 1", "Contenu de l'onglet 1"),
          new GInfoWindowTab("Onglet 2", "Contenu de l'onglet 2")
        ];

// Parse data
	   GDownloadUrl("mapasparking/zonaazul/map/parcs.xml", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
			var PRC_Nom =  markers[i].getAttribute("PRC_Nom");
		    var AP_Adresse1 =  markers[i].getAttribute("AP_Adresse1"); 
		    var AP_CodePostal =  markers[i].getAttribute("AP_CodePostal"); 
		    var AP_Ville =  markers[i].getAttribute("AP_Ville");  
		    var z_CivCP =  markers[i].getAttribute("z_CivCP");  
		    var z_NomCP =  markers[i].getAttribute("z_NomCP");  
		    var z_PrenomCP =  markers[i].getAttribute("z_PrenomCP");  
		    var z_Tel =  markers[i].getAttribute("z_Tel");  
		    var z_Fax =  markers[i].getAttribute("z_Fax"); 
			var ES_X1 = markers[i].getAttribute("ES_X1");
			var ES_Y1 = markers[i].getAttribute("ES_Y1");
			var rutica = markers[i].getAttribute("z_Mail");
			var foto = markers[i].getAttribute("z_foto");
			
		    
		var icon_parking = new GIcon(); 

		icon_parking.image = "images/" + AP_CodePostal;
		icon_parking.iconSize = new GSize(23, 23);
        icon_parking.iconAnchor = new GPoint(8, 53);
        icon_parking.infoWindowAnchor = new GPoint(5, 1);
			
			
			createMarker(ES_X1, ES_Y1, AP_Ville, PRC_Nom, AP_Adresse1, AP_CodePostal, z_CivCP, z_NomCP, z_PrenomCP, z_Tel, z_Fax, icon_parking, rutica, foto);
		
		 }

// Pick search
      showAddress(recherche, map);

});

    function createMarker(lat, lgn, AP_Ville, PRC_Nom, AP_Adresse1, AP_CodePostal, z_CivCP, z_NomCP, z_PrenomCP, z_Tel, z_Fax, icon, rutica, foto) {
      var point = new GLatLng(parseFloat(lat), parseFloat(lgn));
	  var marker = new GMarker(point, icon);
	  map.addOverlay(marker);		
	  NBpointOK = NBpointOK + 1;
	  pointOK = pointOK + "<BR>" + NBpointOK + "  " + PRC_Nom;
	  
      GEvent.addListener(marker, "click", function() {
		
	    document.getElementById('bulle_nom').innerHTML = 
		         "<font size=2 family=arial color=white><b>" + PRC_Nom + "</b></font>";
		
		document.getElementById('adresse').innerHTML = 
		         "<font size=2 family=arial>" + AP_Adresse1 + "</font>";
		
		CloseDiv('bulle');
		CloseDiv('adresse');
		CloseDiv('services');
		CloseDiv('aproximite');
		
		var mapNormalProj = G_NORMAL_MAP.getProjection();
     	var mapZoom = map.getZoom();
		var point_px = mapNormalProj.fromLatLngToPixel(marker.getLatLng(), mapZoom);
		var point_center_before = mapNormalProj.fromLatLngToPixel(map.getCenter(), mapZoom);
		
		var x_before = parseInt(parseFloat(LargeurPlan / 2) - (point_center_before.x - point_px.x) - 58);
		var y_before = parseInt(parseFloat(HauteurPlan / 2) - (point_center_before.y - point_px.y) - 366);

		var point_center_after = mapNormalProj.fromLatLngToPixel(map.getCenter(), mapZoom);
		var dy_ie6 = 0;
		var ms = navigator.appVersion.indexOf("MSIE")
        ie6 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) < 7)
 	    if (navigator.appName=="Microsoft Internet Explorer"  && ie6==1 )
		  { dy_ie6 = -41 }

		if ((x_before > 260) && (y_before > -50)) {
			//alert(' x ' + x_before);
			var panMove = new GSize( - parseInt(x_before-260), 0);
			map.panBy(panMove);
			document.getElementById('bulle').style.left = parseInt(parseFloat(LargeurPlan / 2) - (point_center_after.x - point_px.x) - 58) - parseInt(x_before - 260) + 'px';
			document.getElementById('bulle').style.top = parseInt(parseFloat(HauteurPlan / 2) - (point_center_after.y - point_px.y) - 366 + dy_ie6) + 'px';
        } 
		
		if ((x_before < 260) && (y_before < -50)){
			//alert(' y ' + y_before);
			var panMove = new GSize(0, - parseInt(y_before+50));
			map.panBy(panMove);
			document.getElementById('bulle').style.top = parseInt(parseFloat(HauteurPlan / 2) - (point_center_after.y - point_px.y) - 366 + dy_ie6) - parseInt(y_before + 50) + 'px';
		    document.getElementById('bulle').style.left = parseInt(parseFloat(LargeurPlan / 2) - (point_center_after.x - point_px.x) - 58) + 'px';
		} 
		
		if ((x_before > 260) && (y_before < -50)){
			//alert(' x ' + x_before + ' y ' + y_before);
			var panMove = new GSize(- parseInt(x_before-260), - parseInt(y_before+50));
			map.panBy(panMove);
			document.getElementById('bulle').style.left = parseInt(parseFloat(LargeurPlan / 2) - (point_center_after.x - point_px.x) - 58) - parseInt(x_before - 260) + 'px';
			document.getElementById('bulle').style.top = parseInt(parseFloat(HauteurPlan / 2) - (point_center_after.y - point_px.y) - 366 + dy_ie6) - parseInt(y_before + 50) + 'px';
		} 
		
		if ((x_before < 260) && (y_before > -50)){
			//alert('OK');
		    document.getElementById('bulle').style.left = parseInt(parseFloat(LargeurPlan / 2) - (point_center_after.x - point_px.x) - 58) + 'px';
			document.getElementById('bulle').style.top = parseInt(parseFloat(HauteurPlan / 2) - (point_center_after.y - point_px.y) - 366 + dy_ie6) + 'px';
		} 
		
			
	  	OpenDiv('bulle');
		OpenDiv('adresse');
		
      });
      return marker;
    }


    function createMarkerAdresse(adresse, nom, commentaire, icon) {
	  geocoder.getLatLng(
	    adresse,
		function(point) {
		  if (!point) { 
			adresseERR = adresseERR + "<BR>" + adresse;
//			alert(adresse + " not found : ");
		  } else {
			var marker = new GMarker(point, icon);
			map.addOverlay(marker);			 
			adresseOK = adresseOK + "<BR>" + "\" lat=\"\;" + point.lat() + "\;\" lng =\"\;" + point.lng() + "\;\"\; \/\>\;\;" + adresse;
            GEvent.addListener(marker, "click", function() {
              //document.getElementById('formblocorange').innerHTML  = nom;
			  NOM_APARCAMIENTO = nom;
			  marker.openInfoWindowHtml(commentaire);
            });
		  }
		}  
	  );
    }

  setTimeout("map.setMapType(G_NORMAL_MAP)", 1000);

}

    function showAddress(address, map) {
      geocoder = new GClientGeocoder();
	  if (geocoder) {
        geocoder.getLatLng(						   
          address,
          function(point) {
            if (!point) {
              //alert(address + " n\'a pu être trouvé");
            } else {
              map.setCenter(point, 14);
			  var icon_rech = new GIcon(); 
 			  icon_rech.image = "mapasparking/imagenes_googlemap/picto_recherche_vp.png";
			  icon_rech.iconSize = new GSize(30, 49);
        	  icon_rech.iconAnchor = new GPoint(8, 49);
              var marker = new GMarker(point, icon_rech);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);
            }
          }
        );
      }
    }
