
var geocoder;
var mapFrance;
var mapMartinique;
var mapMayotte;
var mapReunion;


function HomeControl(controlDiv, map) {
 
  controlDiv.style.padding = '5px';
 
  var controlUI = document.createElement('DIV');
  controlUI.style.backgroundColor = 'white';
  controlUI.style.borderStyle = 'solid';
  controlUI.style.borderWidth = '2px';
  controlUI.style.cursor = 'pointer';
  controlUI.style.textAlign = 'center';
  controlUI.title = 'Revenir au zoom initial';
  controlDiv.appendChild(controlUI);
 
  // Set CSS for the control interior
  var controlText = document.createElement('DIV');
  controlText.style.fontFamily = 'Arial,sans-serif';
  controlText.style.fontSize = '12px';
  controlText.style.paddingLeft = '4px';
  controlText.style.paddingRight = '4px';
  controlText.innerHTML = '<b>Accueil</b>';
  controlUI.appendChild(controlText);
 
  // Setup the click event listeners: simply set the map to
  var centreFrance = new google.maps.LatLng(45.9, 2);
  google.maps.event.addDomListener(controlUI, 'click', function() {
    map.setCenter(centreFrance);
	map.setZoom(6);
  });
 
}


function initialize() {
	
	var type = '';
	var urlCarte = document.location.href;
	if ( urlCarte.indexOf('/journaliste/',0) >0 ) {
		// espace presse
		type = 'presse';
	}
	
	
	// carte de la France
	var franceLatlng = new google.maps.LatLng(45.9, 2);
	geocoder = new google.maps.Geocoder();
	var optionsFrance = {
		zoom: 6,
		center: franceLatlng,
		draggable: true,
		scrollwheel: false,
		mapTypeControl: true,
		mapTypeControlOptions: {
			style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
		},
		navigationControl: true,
		/*navigationControlOptions: {
			style: google.maps.NavigationControlStyle.SMALL
		},
		scaleControl: true,
		scaleControlOptions: {
			position: google.maps.ControlPosition.TOP_LEFT
		}, */
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	mapFrance = new google.maps.Map(document.getElementById("map_france"), optionsFrance);

	var homeControlDiv = document.createElement('DIV');
	var homeControl = new HomeControl(homeControlDiv, mapFrance); 
	homeControlDiv.index = 1;
	mapFrance.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv);

	if (departementsArray) {
		var nombreDpt = departementsArray.length;
		
		nomFichier = 'http://www.rn2d.net/wp-content/themes/septime/inc/gmap/concateKml.php?ids='+departementsArray.join(',');
		var file = getJS(nomFichier);
		eval(file);
		for(var i=0;i<nombreDpt;i++ ) {
			ajoutePolygone(eval('poly'+departementsArray[i]), mapFrance, departementsArray[i], type, nomdepartementsArray[i]+ ' (' + departementsArray[i] + ')');
		}
	}

	/* corse
	nomFichier = 'http://www.rn2d.net/wp-content/themes/septime/inc/gmap/dpts/2A.js';
	var file = getJS(nomFichier);
	eval(file);
	ajoutePolygone(poly,mapFrance,'2A',type, 'Corse du Sud (2A)');
	nomFichier = 'http://www.rn2d.net/wp-content/themes/septime/inc/gmap/dpts/2B.js';
	var file = getJS(nomFichier);
	eval(file);
	ajoutePolygone(poly,mapFrance,'2B',type, 'Haute Corse (2B)'); 
	*/	

	// carte de la martinique
	var martiniqueLatlng = new google.maps.LatLng(14.65, -61.007);
	var optionsMartinique = {
		zoom: 7,
		draggable: false,
		scrollwheel: false,
		center: martiniqueLatlng,
		disableDefaultUI: true,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	mapMartinique = new google.maps.Map(document.getElementById("map_martinique"), optionsMartinique);
	var file = getJS('http://www.rn2d.net/wp-content/themes/septime/inc/gmap/dpts/972.js');
	eval(file);
	ajoutePolygone(poly,mapMartinique,'972',type, 'Martinique');


	// carte de mayotte
	var mayotteLatlng = new google.maps.LatLng(-12.875010472941441, 45.112078613281255);
	var optionsMayotte = {
		zoom: 7,
		draggable: false,
		scrollwheel: false,
		center: mayotteLatlng,
		disableDefaultUI: true,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	mapMayotte = new google.maps.Map(document.getElementById("map_mayotte"), optionsMayotte);
	var file = getJS('http://www.rn2d.net/wp-content/themes/septime/inc/gmap/dpts/976.js');
	eval(file);
	ajoutePolygone(poly,mapMayotte,'976',type, 'Mayotte');


	// carte de la réunion
	var reunionLatlng = new google.maps.LatLng(-21.24, 55.50);
	var optionsReunion = {
		zoom: 7,
		draggable: false,
		scrollwheel: false,
		center: reunionLatlng,
		disableDefaultUI: true,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	}
	mapReunion = new google.maps.Map(document.getElementById("map_reunion"), optionsReunion);
	var file = getJS('http://www.rn2d.net/wp-content/themes/septime/inc/gmap/dpts/974.js');
	eval(file);
	ajoutePolygone(poly,mapReunion,'974',type, 'La réunion');

}

function loadScript() {
	var script = document.createElement("script");
	script.type = "text/javascript";
	script.src = "http://maps.google.com/maps/api/js?v=3.1&sensor=false&region=FR&callback=initialize";
	document.body.appendChild(script);
}

var markersArray = []; ;
function geocodeAddress() {
  var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {

		// récup Lat et Lng
		var LatLng = results[0].geometry.location
		var MarkerName =  results[0].address_components[0].long_name;
		var LatLngTmp = LatLng + '';
		var LatLngTmp = LatLngTmp.replace('(','');
		var LatLngTmp = LatLngTmp.replace(')','');
		var LatLngTmp = LatLngTmp.replace(',','');
		var LatLngTmp = LatLngTmp.split(' ');
		var Lat = parseFloat(LatLngTmp[0]);
		var Lng = parseFloat(LatLngTmp[1]);

		// sur quelle carte se trouve le point trouvé...
		if ( Lat > 41.28270406481437 && Lat < 51.12830297446275
				&& Lng > -5.452496582031241 && Lng < 9.807513183593759 ) { // en métropole
			var mapConcernee = mapFrance;
			var enFrance = 'oui';
		}
		if ( Lat > -21.46617458966438 && Lat < -20.810365502499977
				&& Lng > 55.164568847656255 && Lng < 55.867693847656255 ) { // en réunion
			var mapConcernee = mapReunion;
			var enFrance = 'oui';
		}
		/*
		if ( Lat > 15.822308722186758 && Lat < 16.516081198560137
				&& Lng > -61.8480654296874 && Lng < -60.91697412109374 ) { // en guadeloupe
			var mapConcernee = mapGuadeloupe;
			var enFrance = 'oui';
		}
		*/
		if ( Lat > -13.115932728353034 && Lat < -12.596455149226252
				&& Lng > 44.840166992187505 && Lng < 45.53367895507813 ) { // a mayotte
			var mapConcernee = mapMayotte;
			var enFrance = 'oui';
		}
		if ( Lat > 14.3678349562003 && Lat < 14.892694364080924
				&& Lng > -61.2493105468749 && Lng < -60.77689843749999 ) { // en martinique
			var mapConcernee = mapMartinique;
			var enFrance = 'oui';
		}
		/*
		if ( Lat > 1.9136624958623267 && Lat < 5.8807167947785395
				&& Lng > -54.66575341796874 && Lng < -51.41380029296874 ) { // en guyane
			var mapConcernee = mapGuyane;
			var enFrance = 'oui';
		}
		*/

		if (enFrance == 'oui') { // si en France
			var marker = new google.maps.Marker({
				position: LatLng
			});
			deleteOverlays();
			markersArray.push(marker);
			marker.setMap(mapConcernee);
		}
		else {
			alert("Ce lieu n'est pas en France");
		}

      } else {
        alert("Lieu non trouvé" + status);
      }
    });
  }

// Suppression de l'ancien marqueur
function deleteOverlays() {
  /* bug sous ie8...
  if (markersArray) {
    for (i in markersArray) {
      markersArray[i].setMap(null);
    }
    markersArray.length = 0;
  }
  */
}


function ajoutePolygone(poly,blocCarte,dpt,type, nomDpt) {
	var coordonnee= [];
	for (var i=0; i<poly.length; i++) {
			coordonnee[i] = new google.maps.LatLng(poly[i][1],poly[i][0]);
	}

	var polygone = new google.maps.Polygon({
				paths: coordonnee,//sommets du polygone
				strokeColor: "#FFFFFF",//couleur des bords du polygone
				strokeOpacity: 1,//opacité des bords du polygone
				strokeWeight: 1,//épaisseur des bords du polygone
				fillColor: "#0087b9",//couleur de remplissage du polygone //4b9ab8
				fillOpacity: 0.7////opacité de remplissage du polygone
			});

	polygone.setMap(blocCarte);

	google.maps.event.addListener(polygone, 'mouseover', function(event) {
	  this.setOptions({fillColor: "#66a2b9"});

      var div = document.getElementById('nomDpt');
      div.innerHTML = nomDpt;
      div.style.display = 'block';

	});
	google.maps.event.addListener(polygone, 'mouseout', function() {
	  this.setOptions({fillColor: "#0087b9"});
      var div = document.getElementById('nomDpt');
      div.innerHTML = "";
      div.style.display = 'none';
	});
	google.maps.event.addListener(polygone, 'click', function() {
        Shadowbox.open({
            content:    "/wp-content/themes/septime/sb-structure.php?type="+type+"&dpt="+dpt,
            player:     "iframe",
            width: 700,
            height: 600
        });
	});
}

