 //<![CDATA[ 
var map = null;
var geocoder = null;
var basevcf = "/construction-france.nsf";

var DimensionPlan = 0;
var LargeurPlan = 0;
var HauteurPlan = 0;  
var pole="";
var icons = {}; /*Tableau d'icnes*/
var displayedMarkers=[];
var goRecharge=true;
var langue="fr";
var lang="fr";
var trad1="";
var trad2="";
var trad3="";
var func="";

var iconData = {
  "ico-map-geo.png": { width: 21, height: 29 },
  "ico-map-construction.png": { width: 18, height: 25 },
  "ico-map-constructiondr.png": { width: 22, height: 32 }
};

function getParam(p1){
 var param = location.search.substring(1,location.search.length);
 param = param.split("&");
 var myvalue=0;
 for (var i=0;i<param.length;i++){
  if(param[i].substring(0, param[i].indexOf("="))==p1)
  {
   myvalue= param[i].substring(param[i].indexOf("=")+1, param[i].length);
  }
 }
 return myvalue;
}

function getIcon(gpicto) {
	var icon = null;
	var serveur ="http://www.vinci-construction.fr/construction-france/ressources/images/$file/";

	icon = new GIcon();
	icon.image = serveur + gpicto;
	var size = iconData[gpicto];
	icon.iconSize = new GSize(size.width, size.height);
	icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1);
	icons[gpicto] = icon;

    return icon;
}

function createMarker (point,title,adresse,cp,ville,telephone,telecopie,website,metier,logo,dr,icon,zm) {
		var marker = new GMarker(point, {title:title.replace("<br/>"," - "),icon:icon});
		if (zm>=7) {
			var reg=new RegExp("(%)", "g");

			var tmpMetier=metier.replace(reg,"<br/>");
			var bulleMetier="";
			
			if (tmpMetier.match("batiment")){
				var bulleMetier=bulleMetier+'<img alt="B&acirc;timent" src="/construction-france/ressources/images/$file/ico-metier-batiment.png"/>';
			}
			if (tmpMetier.match("genie")){
				var bulleMetier=bulleMetier+'<img alt="G&eacute;nie civil" src="/construction-france/ressources/images/$file/ico-metier-genie.png"/>';
			}
			if (tmpMetier.match("hydraulique")){
				var bulleMetier=bulleMetier+'<img alt="Hydraulique" src="/construction-france/ressources/images/$file/ico-metier-hydraulique.png"/>';
			}
			if (tmpMetier.match("specialites")){
				var bulleMetier=bulleMetier+'<img alt="M&eacute;tiers de sp&eacute;cialit&eacute;" src="/construction-france/ressources/images/$file/ico-metier-specialites.png"/>';
			}
			
			var bulleTitre = "<strong>" + title + "</strong><br />"+bulleMetier;
						
			var tmpAdresse=adresse.replace(reg,"<br/>");
			var bulleAdresse="<p class='pixd' style='padding:0;'><img width='100' src='http://www.vinci-construction.fr/"+logo+"' /></p>"+tmpAdresse+"<br />"+cp+" "+ville
			
			if (telephone!=" "){
				var bulleAdresse=bulleAdresse+"<br />Tel. : "+telephone
			}

			if (telecopie!=" "){
				var bulleAdresse=bulleAdresse+"<br />Fax : "+telecopie
			}
			
			GEvent.addListener(marker, "click", function() {
				goRecharge=false;
				self.location.hash="#topmap";
				map.openInfoWindowHtml(point,"<div style='width:400px;'>"+bulleTitre+"<br />"+bulleAdresse+"&nbsp;</div>");
			});
		}else{
			GEvent.addListener(marker, "click", function() {
				map.setCenter(point,7,G_NORMAL_MAP);
			});
		}
		return marker;
}

function loadMap(langue) {

   if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById("map")); 
	  map.addControl(new GLargeMapControl());
  	  map.addControl(new GMapTypeControl());
	  map.addControl(new GScaleControl());
//	  map.enableScrollWheelZoom();
      map.setCenter(new GLatLng(47.10004469402519, 2.8564453125), 5);
	  map.setMapType (G_NORMAL_MAP);
	  
	  GEvent.addListener(map, "moveend",function () {
		  if (goRecharge==true) {
			rechargeCarte (map, langue);
		  }else{
			goRecharge=true
 		  }
	  });

	  DimensionPlan = map.getSize();
      LargeurPlan = DimensionPlan.width;
      HauteurPlan = DimensionPlan.height;

      var mapbound = map.getBounds();
	  var pointsw = mapbound.getSouthWest();
	  var pointne = mapbound.getNorthEast();
	  var zm = map.getZoom();

	  displayedMarkers=[];
	  
	   GDownloadUrl("http://www.vinci-construction.fr/construction-france.nsf/googlemaps.xml?openagent&lang=fr&latne=" + pointne.lat()+ "&lngne=" + pointne.lng()+"&latsw=" + pointsw.lat()+ "&lngsw=" + pointsw.lng()+ "&z=" + zm, function(data) {
		var xml = GXml.parse(data);
		
		var markers = xml.documentElement.getElementsByTagName("marker");
	  		  
        for (var i = 0; i < markers.length; i++) {
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), 13);
			var title = markers[i].getAttribute("title");
			var picto = markers[i].getAttribute("picto");
			var adresse = markers[i].getAttribute("adresse");
			var cp = markers[i].getAttribute("cp");
			var ville = markers[i].getAttribute("ville");
			var telephone = markers[i].getAttribute("telephone");
			var telecopie = markers[i].getAttribute("telecopie");
			var website =  markers[i].getAttribute("website");
			var metier =  markers[i].getAttribute("metier");
			var logo =  markers[i].getAttribute("logo");
			var dr =  markers[i].getAttribute("dr");
			var icon = getIcon(picto);

			var marker=createMarker(point,title,adresse,cp,ville,telephone,telecopie,website,metier,logo,dr,icon,zm)
			marker.title=title;
			marker.adresse=adresse;
			marker.cp=cp;
			marker.ville=ville;
			marker.telephone=telephone;
			marker.telecopie=telecopie;
			marker.website=website;
			marker.metier=metier;
			marker.logo=logo;
			marker.dr=dr;
			map.addOverlay(marker);
			displayedMarkers.push(marker);
			}
		updateSidebar();
	  	}); 
    }
}
		
function rechargeCarte (map, langue) {
	if (goRecharge==true){
     map.clearOverlays();
     DimensionPlan = map.getSize();
     LargeurPlan = DimensionPlan.width;
     HauteurPlan = DimensionPlan.height;

     var mapbound = map.getBounds();
	 var pointsw = mapbound.getSouthWest();
	 var pointne = mapbound.getNorthEast();
	 var zm = map.getZoom();
	 
	 displayedMarkers=[];
	 
	   GDownloadUrl("http://www.vinci-construction.fr/construction-france.nsf/googlemaps.xml?openagent&lang=fr&latne=" + pointne.lat()+ "&lngne=" + pointne.lng()+"&latsw=" + pointsw.lat()+ "&lngsw=" + pointsw.lng()+ "&z=" + zm, function(data) {
	   var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName("marker");
	  		  
       for (var i = 0; i < markers.length; i++) {
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng")), 13);
			var title = markers[i].getAttribute("title");
			var picto = markers[i].getAttribute("picto");
			var adresse = markers[i].getAttribute("adresse");
			var cp = markers[i].getAttribute("cp");
			var ville = markers[i].getAttribute("ville");
			var telephone = markers[i].getAttribute("telephone");
			var telecopie = markers[i].getAttribute("telecopie");
			var website =  markers[i].getAttribute("website");
			var metier =  markers[i].getAttribute("metier");
			var logo =  markers[i].getAttribute("logo");
			var dr =  markers[i].getAttribute("dr");
			var icon = getIcon(picto);

			var marker=createMarker(point,title,adresse,cp,ville,telephone,telecopie,website,metier,logo,dr,icon,zm)
			marker.title=title;
			marker.adresse=adresse;
			marker.cp=cp;
			marker.ville=ville;
			marker.telephone=telephone;
			marker.telecopie=telecopie;
			marker.website=website;
			marker.metier=metier;
			marker.logo=logo;
			marker.dr=dr;			
			map.addOverlay(marker);
			displayedMarkers.push(marker);
	   		};
			updateSidebar(); 
	   });
   } 
}
	
function chxClick(langue){
	rechargeCarte (map, langue);
}
	
function updateSidebar(){	
	var html="";
	var isDr=false;
	var flagDr=false;
	var isImplant=false;
	var flagImplant=false;
	
	function sortByName(a, b){
		return a.title.localeCompare(b.title);
	}
		var sorted=[];
	//	Copie les marker dans une table pour etre classe
	for (var i=0; i<displayedMarkers.length; i++){
		sorted.push({title:displayedMarkers[i].title,adresse:displayedMarkers[i].adresse,cp:displayedMarkers[i].cp,ville:displayedMarkers[i].ville,telephone:displayedMarkers[i].telephone,telecopie:displayedMarkers[i].telecopie,website:displayedMarkers[i].website,dr:displayedMarkers[i].dr,metier:displayedMarkers[i].metier,logo:displayedMarkers[i].logo, index:i});
	}
	
	//	ajoute les valeur dans la div side_bar
	for (i=0; i<sorted.length; i++){
		// si dr alors entete dr
		var tmpDr=sorted[i].dr;
		
		var tmpMetier="";
		var tmpImg=sorted[i].metier;
		if (tmpImg!=null){
			if (tmpImg.match("batiment")){
			 var tmpMetier=tmpMetier+'<img alt="B&acirc;timent" src="/construction-france/ressources/images/$file/ico-metier-batiment.png"/>';
			}
			if (tmpImg.match("genie")){
			 var tmpMetier=tmpMetier+'<img alt="G&eacute;nie civil" src="/construction-france/ressources/images/$file/ico-metier-genie.png"/>';
			}
			if (tmpImg.match("hydraulique")){
			 var tmpMetier=tmpMetier+'<img alt="Hydraulique" src="/construction-france/ressources/images/$file/ico-metier-hydraulique.png"/>';
			}
			if (tmpImg.match("specialites")){
			 var tmpMetier=tmpMetier+'<img alt="M&eacute;tiers de sp&eacute;cialit&eacute;" src="/construction-france/ressources/images/$file/ico-metier-specialites.png"/>';
			}
		}

		if (tmpDr=="O"){
			var reg=new RegExp("(%)", "g");
			var tmpAdresse=sorted[i].adresse;
			
			if (tmpAdresse!="") {
				var adresse=tmpAdresse.replace(reg,"<br/>");
			}else{
				var adresse="";
			}
			
			if (isDr==false){
				flagDr=true;
				html=html+"<h5>Contacts r&eacute;gionaux</h5>";
				html=html+'<ul><li><p class="pixd">'+tmpMetier+'</p><p><a href="javascript:void(0)" onclick="triggerMarker('+sorted[i].index+')"><strong>'+sorted[i].title+'</strong></a><br/>'+adresse+'<br/>'+sorted[i].cp+' '+sorted[i].ville+'<br/>T&eacute;l. : '+sorted[i].telephone+'  Fax : '+sorted[i].telecopie+'<br/><a href="'+sorted[i].website+'" target="_blank">'+sorted[i].website+'</a></p></li>';
				isDr=true;
			}else{
				html=html+'<li><p class="pixd">'+tmpMetier+'</p><p><a href="javascript:void(0)" onclick="triggerMarker('+sorted[i].index+')"><strong>'+sorted[i].title+'</strong></a><br/>'+adresse+'<br/>'+sorted[i].cp+' '+sorted[i].ville+'<br/>T&eacute;l. : '+sorted[i].telephone+'  Fax : '+sorted[i].telecopie+'<br/><a href="'+sorted[i].website+'" target="_blank">'+sorted[i].website+'</a></p></li>';
			}
			if (flagDr==true){
				var html=html+"</ul>"
			}
		}else if (tmpDr=="N"){
			if (isImplant==false){
				flagImplant=true;
				html=html+"<h5>Les filiales dans la r&eacute;gion</h5>";				
				html=html+'<ul><li><p class="pixd">'+tmpMetier+'</p><p><a href="javascript:void(0)" onclick="triggerMarker('+sorted[i].index+')"><strong>'+sorted[i].title+'</strong></a><br />'+sorted[i].ville+'</p></li>';
				isImplant=true;
			}else{
				html=html+'<li><p class="pixd">'+tmpMetier+'</p><p><a href="javascript:void(0)" onclick="triggerMarker('+sorted[i].index+')"><strong>'+sorted[i].title+'</strong></a><br />'+sorted[i].ville+'</p></li>';
			}
			if (flagImplant==true){
				var html=html+"</ul>"
			}
		}else{
			sorted=sorted.sort(sortByName);
			
			html=html+'<a href="javascript:void(0)" onclick="triggerMarker('+sorted[i].index+')"><span class="sidebarregion">'+sorted[i].title+'</span></a><br/>';
		}
	}
	html+='</ul>';
	document.getElementById('side_bar').innerHTML=html;
}

function triggerMarker(index){
	GEvent.trigger(displayedMarkers[index], 'click');
}

function cacher(objet){
	document.getElementById(objet).style.display = 'none';
}

function montrer(objet){
	document.getElementById(objet).style.display = 'inline';
}

function onPageUnload(){
	GUnload();
}

function onPageLoad(){
	loadMap();
}

function addLoadEvent(func){
	var oldonload = window.onload;
	if(typeof window.onload != 'function'){
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
			        oldonload();
			      }
      		func();
		}
	}
}


 //]]>
