var iCptPopup = 0;
        
function slideMenu(slide)
{
  var targetElement;
  targetMenuCarte = document.getElementById('menu_carte');

  if (slide=='on'){
    // on affiche le menu de gauche
    if (targetMenuCarte.style.display == 'none'){
      targetMenuCarte.style.display = '';
      panZoom.moveTo(new OpenLayers.Pixel(260, 4));
    }
      
    // on affiche le titre
    targetElement = document.getElementById('titre_carte');
    if (targetElement.style.display == 'none'){
      targetElement.style.display = '';
    }
    
    targetElement = document.getElementById('slider_carte');
    targetElement.style.left='242px';

    targetElement = document.getElementById('slider_cursor_on');
    targetElement.style.display = 'none';

    targetElement = document.getElementById('slider_cursor_off');
    targetElement.style.display = '';
  } else {
      panZoom.moveTo(new OpenLayers.Pixel(30, 4));
    // on affiche le menu de gauche
    targetMenuCarte.style.display = 'none';

    targetElement = document.getElementById('titre_carte');
    targetElement.style.display = 'none';
    
    targetElement = document.getElementById('slider_carte');
    targetElement.style.left='0';
    targetElement.style.top='0';
    
    targetElement = document.getElementById('slider_cursor_on');
    if (targetElement.style.display == 'none'){
      targetElement.style.display = '';
    }

    targetElement = document.getElementById('slider_cursor_off');
    targetElement.style.display = 'none';
  }
}

function montreCacheThema(id) {
  var d = document.getElementById(id);
  if (d) {
    if (d.style.display == 'none'){
      d.style.display='block';
    } else {
      d.style.display='none';
    }
  }
}
        
function montreCachePopup(idDiv, idLien ){
  var d = document.getElementById(idDiv);
  var i = document.getElementById(idLien);

  var oStyle = ( d.style ? d.style : d );
  if (d) {
    if (oStyle.display == 'none'){
      oStyle.display='block';
      i.innerHTML = 'Fermer';
    } else {
      oStyle.display='none';
      i.innerHTML = 'Lire';
    }
  }
}

function RechercheValide(strToken)
{
  var oAjax = new AlkAjax('nameNlValide', 'fnLoadRechercheValide', ALK_FORM_METHOD_POST, '/scripts/alkanet/alkanet_site_sql.php?token='+strToken, 'form_geoloc');
  visible('menu_carte_hidden');          
}
        
function fnLoadRechercheValide(strJs)
{
  var tab_points = eval(strJs);
  var epsg4326 = new OpenLayers.Projection("EPSG:4326");
  
  // cacher le picto de la dernière rue recherchée
  var pixel = map.getLayerPxFromLonLat(new OpenLayers.LonLat(0,0));
  markerRue.moveTo(pixel);
  
  // recentrer la carte
  var center = new OpenLayers.LonLat(-1.64032,48.182265).transform(epsg4326, map.getProjectionObject());
  map.setCenter(center, 15);  
  
  markerI.destroy();   
    markerI = new OpenLayers.Layer.Markers("POI");
    markerI.displayInLayerSwitcher=false;
    map.addLayers([markerI]);
    if(tab_points.length != 0){
      

      for(var i=0; i< tab_points.length; i++ ){
        //tab_points[i] = new GeolocEntity(map, tab_points[i].x, tab_points[i].y, 0, 0, 20,20,unescape(tab_points[i].picto),'GeolocEntity'+i,tab_points[i].label, tab_points[i].token+"&popup_id="+i,i);
    	  tab_points[i] = new GeolocEntity(map, tab_points[i].x, tab_points[i].y, 0, 0, 20,20,unescape(tab_points[i].picto),'GeolocEntity'+(iCptPopup),'', tab_points[i].token+"&popup_id="+iCptPopup,iCptPopup);
    	  iCptPopup++;
      }
    }
    
  invisible('menu_carte_hidden');
  return;

  // retourne le code html de la liste des blocs de la page
    var oDiv = document.getElementById("nlreturn");
  if ( !oDiv ) return;
  var oStyle = ( oDiv.style ? oDiv.style : oDiv );
  oStyle.display = 'block';
  //oDiv.innerHTML = strHtmlContent;  
}
        
function GetPopupFullContent(data_id, popup_id)
{
  var oAjax = new AlkAjax('nameNlValide', 'fnLoadPopupFullContent', ALK_FORM_METHOD_GET, '/libconf/lib/lib_exectmpl.php?tmpl=alkexecmappopupcontent&mode=2&data_id='+data_id+"&popup_id="+popup_id, null);
  //visible('menu_carte_hidden');
}

function fnLoadPopupFullContent(strJs)
{
  // retourne le code html de la liste des blocs de la page
  var tab_results = eval(strJs);
  
  if(tab_results.length != 0){
    var oDiv = document.getElementById("popupContentHidden");
    if ( !oDiv ) return;
    var oStyle = ( oDiv.style ? oDiv.style : oDiv );
    oStyle.display = 'block';
    oDiv.innerHTML = '<a href="javascript:invisible(\'popupContentHidden\');" style="display:block; width: 17px; height: 17px; position: absolute; right: 8px; top: 10px; z-index: 100000;"><img src="/scripts/openlayers/lib/theme/default/img/close.gif" border="0"/></a>'+ unescape(tab_results[0].htmlFullContent);
  }  
}

function fnLoadPopupFullContentOld(strJs)
{
  // retourne le code html de la liste des blocs de la page
  var tab_results = eval(strJs);
  
  if(tab_results.length != 0){
    var oDiv = document.getElementById(tab_results[0].divFullContentName);
    if ( !oDiv ) return;
    var oStyle = ( oDiv.style ? oDiv.style : oDiv );

    if (oStyle.display == 'block'){
      /*var oLien = document.getElementById(tab_results[0].lienFullContentName);
      oLien.innerHTML = "Lien";
      oStyle.display = '';*/ 
      montreCachePopup(tab_results[0].divFullContentName, tab_results[0].lienFullContentName);
    } else {
      var oLien = document.getElementById(tab_results[0].lienFullContentName);
      //oLien.innerHTML = "Fermer";
      montreCachePopup(tab_results[0].divFullContentName, tab_results[0].lienFullContentName);
      oLien.href="javascript:montreCachePopup('"+tab_results[0].divFullContentName+"', '"+tab_results[0].lienFullContentName+"');"
    }
    
    oDiv.innerHTML = unescape(tab_results[0].htmlFullContent);
  }  
}

//géocodage de l'adresse
function codeAddress() {
 geocoder = new google.maps.Geocoder();
 var oAdress = document.getElementById("carte_address");

 // création de l'adresse recherchée
 var addressSearched = oAdress.value+", 35830 Betton, France";
 geocoder.geocode( { address : addressSearched }, function(results, status){doAction(results, status)} );
}

// action effectuée après géocodage de l'adresse
function doAction(results, status) {
 var oDivResults = document.getElementById("divResults");
 oDivResults.innerHTML = "";
 var strHtml = "";
     if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
       alert("Vous avez atteint la limite de géocodage autorisée pour aujourd'hui.");
       return;
   }
 if (status == google.maps.GeocoderStatus.OK && results.length) {
   // You should always check that a result was returned, as it is
   // possible to return an empty results object.
   if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {
     if (results.length == -1) {
       strHtml = strHtml+"<u>Résultat</u> : <br/>";
       strHtml = strHtml+"<ul>";
       strHtml = strHtml+"<li>";
       var formatted_address = results[0].formatted_address;
       strHtml = strHtml+formatted_address;
       strHtml = strHtml+"</li>";
       strHtml = strHtml+"</ul>";
       oDivResults.innerHTML = strHtml;
       var lat = results[0].geometry.location.lat();
       var lng = results[0].geometry.location.lng();
       setFormLatLng(lat, lng, "");
     } else {
       strHtml = strHtml+"<u>Cliquez sur une des propositions ci-dessous pour la localiser sur la carte</u> : <br/>";
       strHtml = strHtml+"<ul>";
       var iCptResult = 0;
       for (i=0; i<results.length; i++) {
    	 if (results[i].formatted_address.match("Betton")){
	         var lat = results[i].geometry.location.lat();
	         var lng = results[i].geometry.location.lng();
	         strHtml = strHtml+"<li>";
	         var formatted_address = results[i].formatted_address;
	         strHtml = strHtml+"<a href=\"javascript:zoomRue("+lng+","+lat+");\">"+formatted_address+"</a>";
	         strHtml = strHtml+"</li>";
	         iCptResult = iCptResult+1;
    	 }
       }
       strHtml = strHtml+"</ul>";
       if (iCptResult==0){
    	 strHtml = "<p>Aucun résultat n'a été trouvé.</p>";
       }
       oDivResults.innerHTML = strHtml;
     }
   }
 } else {
   alert("Aucun résultat trouvé n'a été pour cette adresse.");
 }
} 

function zoomRue(lng,lat){
  var epsg4326 = new OpenLayers.Projection("EPSG:4326");

  var center = new OpenLayers.LonLat(lng,lat).transform(epsg4326, map.getProjectionObject());
  map.setCenter(center,18);
  
  var pixel = map.getLayerPxFromLonLat(new OpenLayers.LonLat(lng,lat).transform(epsg4326, map.getProjectionObject()));
  markerRue.moveTo(pixel);

}
          
        
        
function initMap() {
  /**
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("carte"));
    map.setCenter(new GLatLng(48.087626, -1.616300), 15);
    map.setUIToDefault();
  }
  */

      var options = {
    		  projection: new OpenLayers.Projection("EPSG:900913"),
              units: "m",
              maxResolution: 156543.0339,
              maxExtent: new OpenLayers.Bounds(-190507.854793,6134135.963165,-179042.300553,6141779.665992),
              controls : [],
              restrictedExtent: new OpenLayers.Bounds(-190507.854793,6134135.963165,-179042.300553,6141779.665992)
            };
      
      		OpenLayers.Lang.setCode("fr");
            
            map = new OpenLayers.Map('carte',options);
            map.addControl(new OpenLayers.Control.LayerSwitcher());
            panZoom = new OpenLayers.Control.PanZoom(); 
            map.addControl(panZoom);
            panZoom.moveTo(new OpenLayers.Pixel(260, 4));
            map.addControl(new OpenLayers.Control.Navigation());
            vectors = new OpenLayers.Layer.Vector("Lieux Importants");
            markerI = new OpenLayers.Layer.Markers("POI");
            markerI.displayInLayerSwitcher=false;
            var gnormal = new OpenLayers.Layer.Google(
              "Google plan", 
              {type: G_NORMAL_MAP, numZoomLevels: 19, "sphericalMercator": true}
            );
            
            var ghyb = new OpenLayers.Layer.Google(
              "Google Hybride",
              {type: G_HYBRID_MAP, numZoomLevels: 19, "sphericalMercator": true}
            );
            
            var gsat = new OpenLayers.Layer.Google(
	          "Google satellite",
	          {type: G_SATELLITE_MAP, numZoomLevels: 19, "sphericalMercator": true}
	        );
            
            
            var testkml = new OpenLayers.Layer.GML(
                    "Chemin",
                    "/upload/chemin.kml",
                    {
                      format: OpenLayers.Format.KML,
                      projection: new OpenLayers.Projection("EPSG:4326"),
                      formatOptions: {
                    	extractStyles: true, 
                        extractAttributes: true
                      }
                    }
                );
            
            m = new OpenLayers.Marker(new OpenLayers.LonLat(0, 0));
            markerI.addMarker(m);
            //map.addLayers([gnormal, ghyb, gsat, testkml, markerI]);
            map.addLayers([gnormal, ghyb, gsat, markerI]);
            
            markersRue = new OpenLayers.Layer.Markers("rue");
            markersRue.displayInLayerSwitcher=false;
            var size = new OpenLayers.Size(21,25);
            var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
            var icon = new OpenLayers.Icon('http://www.betton.fr/upload/geoloc/marker-gold.png',size, offset);
            markerRue = new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon); 
            markersRue.addMarker(markerRue);
            map.addLayer(markersRue);
            
            var epsg4326 = new OpenLayers.Projection("EPSG:4326");
            var center = new OpenLayers.LonLat(-1.64032,48.182265).transform(epsg4326, map.getProjectionObject());
            map.setCenter(center, 14);                     
}

StkFuncOnload(initMap);