if (GBrowserIsCompatible()) {
// paramètres par défaut :43.705236 7.265654 14 nice
var dflat = 43.705236;
var dflng = 7.265654;
var dfzoom = 14;
var dfmaptype = G_HYBRID_MAP;
var dfzone="F-06";
var address = "" ;
// paramètres de l'url et nettoyage
var query = location.search.substring(1);
q=query;
query=q.replace(/%3D/g,"=");
q=query;
query=q.replace(/%26/g,"&");
q=query;
query=q.replace(/&amp;/g,"&");
// recueil des arguments de l'url
var pairs = query.split("&");
for (var i=0; i<pairs.length; i++) {
	var pos = pairs[i].indexOf("=");
	var argname = pairs[i].substring(0,pos).toLowerCase();
	var value = pairs[i].substring(pos+1).toLowerCase();
   if (argname == "lat") {dflat = parseFloat(value);}
   if (argname == "lng") {dflng = parseFloat(value);}	
	if (argname == "gc") { address = value ;}
   if (argname == "zoom") {dfzoom = parseInt(value);}
   if (argname == "type") {
      if (value == "m") {dfmaptype = G_NORMAL_MAP;}
      if (value == "k") {dfmaptype = G_SATELLITE_MAP;}
      if (value == "h") {dfmaptype = G_HYBRID_MAP;}
   }
   if (argname == "zone") {dfzone = value;}
}

//**** icones ***
var gicons=[];
gicons["default"]=new GIcon(G_DEFAULT_ICON,"default.png");
gicons["nb1"]=new GIcon(G_DEFAULT_ICON,"nb1.png");
gicons["nb2"]=new GIcon(G_DEFAULT_ICON,"nb2.png");
gicons["nb3"]=new GIcon(G_DEFAULT_ICON,"nb3.png");
gicons["nb4"]=new GIcon(G_DEFAULT_ICON,"nb4.png");
gicons["nb5"]=new GIcon(G_DEFAULT_ICON,"nb5.png");
gicons["nb6"]=new GIcon(G_DEFAULT_ICON,"nb6.png");
gicons["nb7"]=new GIcon(G_DEFAULT_ICON,"nb7.png");
gicons["nb8"]=new GIcon(G_DEFAULT_ICON,"nb8.png");
gicons["nb9"]=new GIcon(G_DEFAULT_ICON,"nb9.png");
gicons["nb10"]=new GIcon(G_DEFAULT_ICON,"nb10.png");
gicons["nb11"]=new GIcon(G_DEFAULT_ICON,"nb11.png");
gicons["nb12"]=new GIcon(G_DEFAULT_ICON,"nb12.png");
gicons["nb13"]=new GIcon(G_DEFAULT_ICON,"nb13.png");
gicons["nb14"]=new GIcon(G_DEFAULT_ICON,"nb14.png");
gicons["nb15"]=new GIcon(G_DEFAULT_ICON,"nb15.png");
gicons["nb16"]=new GIcon(G_DEFAULT_ICON,"nb16.png");
gicons["nb17"]=new GIcon(G_DEFAULT_ICON,"nb17.png");
gicons["mus"]=new GIcon(G_DEFAULT_ICON,"mus.png");
gicons["land"]=new GIcon(G_DEFAULT_ICON,"land.png");
gicons["vr"]=new GIcon(G_DEFAULT_ICON,"vr.png");
gicons["asso"]=new GIcon(G_DEFAULT_ICON,"asso.png");
gicons["divers"]=new GIcon(G_DEFAULT_ICON,"divers.png");
// effacer les ombres
gicons["default"].shadowSize = new GSize(0,0);
gicons["mus"].shadowSize = new GSize(0,0);
gicons["land"].shadowSize = new GSize(0,0);
gicons["asso"].shadowSize = new GSize(0,0);
gicons["divers"].shadowSize = new GSize(0,0);
gicons["vr"].shadowSize = new GSize(0,0);
gicons["vr"].iconSize = new GSize(14, 14);
gicons["vr"].iconAnchor = new GPoint(5, 5);
//**** construction de la carte principale : map ***

var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GOverviewMapControl());
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GScaleControl(),new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(10,40)));
map.setCenter(new GLatLng(dflat,dflng),dfzoom,dfmaptype); 
var mg = new MarkerManager(map);

geocoder = new GClientGeocoder();



//********* fiches XML *********
// mettre ça dans une fonction de façon à pouvoir 
//charger effacer recharger différents fichiers 
 
GDownloadUrl("fiches/"+dfzone+".xml", function (doc) {
        var gmarkers = [];     
        var xmlDoc = GXml.parse(doc);
        var markers = xmlDoc.documentElement.getElementsByTagName("marker");

          
   for (var i = 0; i < markers.length; i++) {
if (dfzone=="land-art") {

          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var name = markers[i].getAttribute("name");
          var author = " <strong>"+markers[i].getAttribute("author")+"</strong><br>";
          var territoile ='<a href="http://territoile.org/index.php?title='+ markers[i].getAttribute("territoile")+'">territoileWiki</a><br />';
          var more = '<br /><a href="'+markers[i].getAttribute("more")+'">voir aussi</a><br />';
          var height = markers[i].getAttribute("height");
          var width = markers[i].getAttribute("width");
          var image = '<img src="'+markers[i].getAttribute("image")+'" height="'+height+'" width="'+width+'" alt="" class="flG">';
          
          var html = markers[i].getAttribute("html");
          var txt = image+"<em>"+name+"</em>"+author+html+more+territoile;
          var icontype = markers[i].getAttribute("icontype");
          var marker = createMarker(icontype,point,name,txt);
} 
else {

          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var name = markers[i].getAttribute("name");
          var html = markers[i].getAttribute("html");
          var icontype = markers[i].getAttribute("icontype");
          var marker = createMarker(icontype,point,name,name+"<br> "+html);
}
          gmarkers.push(marker);
     }

        mg.addMarkers(gmarkers,2,17);
        mg.refresh();
});

//********* minimap *********


var Iconzz = new GIcon();
Iconzz.image = "zz.png";
Iconzz.iconSize = new GSize(10, 10);
Iconzz.shadowSize = new GSize(0,0);
Iconzz.iconAnchor = new GPoint(5, 5);
Iconzz.infoWindowAnchor = new GPoint(11, 11);
Iconzz.infoShadowAnchor = new GPoint( 11, 11);
// Création de la minimap
var minimap = new GMap2(document.getElementById("minimap"));
minimap.addControl(new GOverviewMapControl());
minimap.addControl(new GSmallMapControl());
minimap.addControl(new GMapTypeControl());
minimap.setCenter(new GLatLng(dflat,dflng), 8);
// marqueurs no-made
var zz = new GMarker(new GLatLng(43.55060,7.00169),{title:"no made à la MJC Picaud" ,icon:Iconzz});
minimap.addOverlay(zz);
var zz = new GMarker(new GLatLng(44.096123,7.089272), {title:"no made à Roure" ,icon:Iconzz});
minimap.addOverlay(zz);
var zz = new GMarker(new GLatLng(43.72042,7.40404), {title:"no made à Cap d'Ail" ,icon:Iconzz});
minimap.addOverlay(zz);

// ====== Handle the Map movements ======

var map_moving = 0;
var minimap_moving = 0;

GEvent.addListener(map, 'move', Move);
GEvent.addListener(minimap, 'moveend', MMove);
GEvent.addListener(map, 'moveend', makeLink);

// signaler la zone
a="fichier "+dfzone;
so_clearInnerHTML(document.getElementById("zone"));
document.getElementById("zone").appendChild(document.createTextNode(a));

if (address!="") {showAddress(decodeURI(address));}
}


else { alert("Sorry, the Google Maps API is not compatible with this browser"); }




// ********* fonctions ***********************

// ********* createMarker(icontype,point,name,html) ************** 
function createMarker(icontype,point,name,html) {
  var marker = new GMarker(point, {title:name,icon:gicons[icontype]});
  GEvent.addListener(marker, "click", function() {
     marker.openInfoWindowHtml(html);
  });
  return marker;
 }


//************* Move() *****************
// This function handles what happens when the main map moves
// If we arent moving it (i.e. if the user is moving it) move the minimap 
//to match and reposition the crosshair back to the centre

function Move(){
 minimap_moving = true;
 if (map_moving == false) {
   minimap.setCenter(map.getCenter());
 }
 minimap_moving = false;
}


//************ MMove() ******************
// This function handles what happens when the mini map moves
// If we arent moving it (i.e. if the user is moving it) move the 
// main map to match and reposition the crosshair back to the 
// centre
function MMove() {
 map_moving = true;
 if (minimap_moving == false) {
  map.setCenter(minimap.getCenter());
 }
 map_moving = false;
}

//************* makeLink() *****************
function makeLink() {
        lt=map.getCenter().lat().toFixed(6);
        lg=map.getCenter().lng().toFixed(6);
        gz=map.getZoom();
        a='http://Territoile.org/crefiche.php'
           + "?lat=" + lt + "&lng=" + lg + "&zoom="+ gz +"&type=h"
           + "&zone="+dfzone;
        b= lt+" "+lg+" "+gz;
        c = document.createElement("a");
        c.setAttribute("href",a);
        c.appendChild(document.createTextNode(b));
        d = document.createElement("span");
        d.appendChild(c);
           
        //document.getElementById("coord").innerHTML = a;
        so_clearInnerHTML(document.getElementById("coord"));
        document.getElementById("coord").appendChild(d);
}

//************** showAddress(address) ****************
function showAddress(address) {
	if (geocoder) {
	  geocoder.getLatLng(
	    address,
	    function(point) {
	      if (!point) {
	        alert(address + " not found");
	      } else {
	        map.setCenter(point, map.getZoom());
	        MMove();
	        Move();makeLink();
	      }
	    }
	  );
	}
}

//************ so_clearInnerHTML(obj) ******************
// remplace innerHTML
function so_clearInnerHTML(obj) {
	while(obj.firstChild) obj.removeChild(obj.firstChild);
 }
 
 
 
 // This Javascript is based on code provided by the
 // Blackpool Community Church Javascript Team
 // http://www.commchurch.freeserve.co.uk/   
 // http://www.econym.demon.co.uk/googlemaps/
 
//**************** Menu **************
function mkz() {
document.getElementById("im-fd").src="navfd-z.png";
document.getElementById("minimap").style.visibility="visible";
document.getElementById("Menu").style.visibility="hidden";
document.getElementById("aide").style.visibility="hidden";
document.getElementById("cible-map1v").style.visibility="visible";
document.getElementById("cible-map1h").style.visibility="visible";
 }
function mkm() {
document.getElementById("im-fd").src="navfd-m.png";
document.getElementById("Menu").style.visibility="visible";
document.getElementById("minimap").style.visibility="hidden";
document.getElementById("aide").style.visibility="hidden";
document.getElementById("cible-map1v").style.visibility="hidden";
document.getElementById("cible-map1h").style.visibility="hidden";
 }
function mka() {
document.getElementById("im-fd").src="navfd-a.png";
document.getElementById("aide").style.visibility="visible";
document.getElementById("minimap").style.visibility="hidden";
document.getElementById("Menu").style.visibility="hidden";
document.getElementById("cible-map1v").style.visibility="hidden";
document.getElementById("cible-map1h").style.visibility="hidden";
 }

//**************** menu : changement d'adresse **************

function menuCA(lat,lng,zoom,zn) {
	  if (zn != dfzone) {
	    dfzone=zn;
	    GDownloadUrl("fiches/"+dfzone+".xml", function (ladoc) {
        var LAmarkers = [];     
        var xmlDoc = GXml.parse(ladoc);
        var lamarkers = xmlDoc.documentElement.getElementsByTagName("marker");

          
        for (var i = 0; i < lamarkers.length; i++) {
          var lat = parseFloat(lamarkers[i].getAttribute("lat"));
          var lng = parseFloat(lamarkers[i].getAttribute("lng"));
          var point = new GLatLng(lat,lng);
          var name = lamarkers[i].getAttribute("name");
          var author = " <strong>"+lamarkers[i].getAttribute("author")+"</strong><br>";
          var territoile ='<a href="http://territoile.org/index.php?title='+ lamarkers[i].getAttribute("territoile")+'">territoileWiki</a><br />';
          var more = '<br /><a href="'+lamarkers[i].getAttribute("more")+'">voir aussi</a><br />';
          var height = lamarkers[i].getAttribute("height");
          var width = lamarkers[i].getAttribute("width");
          var image = '<img src="'+lamarkers[i].getAttribute("image")+'" height="'+height+'" width="'+width+'" alt="" class="flG">';
          
          var html = lamarkers[i].getAttribute("html");
          var txt = image+"<em>"+name+"</em>"+author+html+more+territoile;
          var icontype = lamarkers[i].getAttribute("icontype");
          var marker = createMarker(icontype,point,name,txt);
          LAmarkers.push(marker);
          }
        var mlaOptions = {maxZoom: 18};
        mLA = new MarkerManager(map, mlaOptions);
        mLA.addMarkers(LAmarkers,2,18); 
        mLA.refresh();
       });

	   }
	  map.setCenter(new GLatLng(lat, lng), zoom);
	  MMove(); Move(); makeLink();
 }

//**************** menu : cacher, montrer icones ************** 
function hide(fichier) {
  fichier.clearMarkers();

}
// à faire :
function show() {
   for (var i=0; i<gmarkers.length; i++) {gmarkers[i].show(); }
}
 