var map; 
var geocoder;
var gmarkers = [];


// Fichier Javascript de localisation des revendeurs
function initialiser(nb, appel) {
  map = new GMap2(document.getElementById("map_canvas"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.addControl(new GOverviewMapControl());
  
  
  //map.setCenter(new GLatLng(45, 0), 5);
  geocoder = new GClientGeocoder();
  //document.getElementById("map_canvas").style.width = "700px";
  //document.getElementById("map_canvas").style.height = "300px";
  document.getElementById("map").style.display = "none";
}
function SelectMap(reg, pays) {
  afficherRevendeurRegion(reg, 'map');
}


function switchMapPlan() {
   
  document.getElementById("planisphere").style.display = ((document.getElementById("planisphere").style.display == "none")?"block":"none");
  document.getElementById("table_plani").setAttribute("bgcolor", ((document.getElementById("table_plani").getAttribute("bgcolor")=="#ffffff")?"#000000":"#FFFFFF"));
  document.getElementById("map").style.display = ((document.getElementById("map").style.display == "none")?"block":"none");
}

function rechercheVendeur(type) {
   var recherche = document.getElementById("recherche").value;
   affichVendeur(recherche, type);
   return false;
}

function afficherRevendeurPays(p, pbdd) {
  
  new Ajax.Request(
              'ajax/dealerInfo.php',
              {
                method: 'post',
                postBody: $H({pays: p, pays_bdd: pbdd}).toQueryString(),
                onComplete: function(transport) {
                  
                }
            });
}

function rechercheVendeurMap(region, type) {
   affichVendeur(region, type);
}

function afficherRevendeurRegion(reg, t) {
  switchMapPlan();
  rechercheVendeurMap(reg, t)
  
  for (i=0; i<gmarkers.length; i++) {
    map.removeOverlay(gmarkers[i]);
  }
  
  gmarkers = [];
  new Ajax.Request(
              'ajax/dealerInfo.php',
              {
                method: 'post',
                postBody: $H({region: reg, type: t}).toQueryString(),
                onComplete: function(transport) {
                  
                  var text = transport.responseText;
                  var xmlDoc;
                  try //Internet Explorer
                    {
                    xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async="false";
                    xmlDoc.loadXML(text);
                    }
                  catch(e)
                    {
                    try //Firefox, Mozilla, Opera, etc.
                      {
                      parser=new DOMParser();
                      xmlDoc=parser.parseFromString(text,"text/xml");
                      }
                    catch(e) {alert(e.message)}
                    }
                  var revendeur = xmlDoc.getElementsByTagName("dealer");
                  var center = xmlDoc.getElementsByTagName("informations").item(0).getAttribute("center"); 
				  geocoderCentre(center);
                  for (i=0; i<revendeur.length; i++) {
                  var adresse = revendeur[i].getElementsByTagName("adresse").item(0).firstChild.nodeValue;
                  adresse = adresse + " " + revendeur[i].getElementsByTagName("ville").item(0).firstChild.nodeValue;
                  adresse = adresse + " " + revendeur[i].getElementsByTagName("cp").item(0).firstChild.nodeValue;
                  adresse = adresse + " " + revendeur[i].getElementsByTagName("pays").item(0).firstChild.nodeValue;
                  
		              geocoderPoint(adresse, revendeur[i]);
                    
                  }
                  }
                }
            );
	
	
}

function geocoderPoint(adresse, vendeur) {
  geocoder.getLatLng(
			               adresse,
			               function(point) {
			               	if (!point) {
			               
			               	 }
			               	 else {
			               	   creerMarqueur(point, vendeur);
                        }
			               });
}

function geocoderCentre(center) {
	if(center=="44 france")  var center2 = "44000 france";
	else if(center=="85 france")  var center2 = "85000 france";
	else var center2 = center;
  	geocoder.getLatLng(
		center2,
		function(point) {
			if (!point) {
			 	//alert("adresse introuvable" + adresse);
			} else {
			   	var val_zoom = zoom[stripslashes(center)];
			    map.setCenter(new GLatLng(point.lat(), point.lng()), val_zoom);
            }
	});
}

function creerMarqueur(point, vendeur) {
  var marker = new GMarker(point);
  var nom = ampersandIsALivingRoom(vendeur.getAttribute("nom"));
  var tel = ampersandIsALivingRoom(vendeur.getAttribute("tel"));
  var fax = ampersandIsALivingRoom(vendeur.getAttribute("fax"));
  var email = ampersandIsALivingRoom(vendeur.getAttribute("email"));
  var url = ampersandIsALivingRoom(vendeur.getAttribute("url_vend"));
  var image = ampersandIsALivingRoom(vendeur.getAttribute("image"));
  if (image!="") {
    image = "upload/"+image;
  }
  else {
    image = "images/membre_noImage.gif";
  }
  var pictos = "";
  if (vendeur.getAttribute("certif_route")=="1") {
    pictos = pictos + '<img width="31" height="21" src="images/picto_pedale_route.png" alt="Certifié Route" title="Certifié Route" />';
  }
  if (vendeur.getAttribute("certif_vtt")=="1") {
    pictos = pictos + '<img width="31" height="21" src="images/picto_pedale_vtt.png" alt="Certifié VTT" title="Certifié VTT" />';
  }
  if (vendeur.getAttribute("certif_chaussure")=="1") {
    pictos = pictos + '<img width="31" height="21" src="images/picto_chaussure.png" alt="Certifié Chaussure" title="Certifié Chaussure" />';
  }
  if (vendeur.getAttribute("certif_module")=="1") {
    pictos = pictos + '<img width="31" height="21" src="images/picto_module.png" alt="Certifié Module" title="Certifié Module" />';
  }
  if (vendeur.getAttribute("certif_rtm")=="1") {
    pictos = pictos + '<img width="31" height="21" src="images/picto_roues.png" alt="Certifié RTM" title="Certifié RTM" />';
  }

  var adresse = ampersandIsALivingRoom(vendeur.getElementsByTagName("adresse").item(0).firstChild.nodeValue);
  var ville = ampersandIsALivingRoom(vendeur.getElementsByTagName("ville").item(0).firstChild.nodeValue);
  var cp = ampersandIsALivingRoom(vendeur.getElementsByTagName("cp").item(0).firstChild.nodeValue);
  var pays = ampersandIsALivingRoom(vendeur.getElementsByTagName("pays").item(0).firstChild.nodeValue);
  var html = '<p><table><tr><td valign="top"><span><img src="'+image+'" alt="image" width="100" height="100" /></span></td><td valign="top"><font color="#000000"><span><b>'+nom+'</b></span><br /><span>'+adresse+'<br />'+cp+', '+ville+', <b>'+pays+'</b></span><br /><span>Tel : '+tel+'</span><br /><span>Fax : '+fax+'</span><br /><span>'+pictos+'</span><br /><span><a href=mailto:'+email+'>'+email+'</a></span><br /><span><a href="'+url+'" target="_blank">'+url+'</a></span><br /></font></td></tr></table></p>'; 
  GEvent.addListener(marker, 'click', function(point) {
			marker.openInfoWindowHtml(html);
	});
	gmarkers.push(marker);
  map.addOverlay(marker);

}

function ampersandIsALivingRoom(str) {
  return str.replace("[-etcom-]", "&");
}