if(typeof tabLayers =='undefined') {var tabLayers = new Array();} 
if(typeof tabLayersState =='undefined')  {var tabLayersState = new Array();}	
if(typeof tabLayersWmsLink =='undefined')  {var tabLayersWmsLink = new Array();}
if(typeof tabLayersType =='undefined')  {var tabLayersType = new Array();}	
if(typeof tabLayersAttributes =='undefined')  {var tabLayersAttributes = new Array();}	
if(typeof tabLayersPsp =='undefined')  {var tabLayersPsp = new Array();}	
if(typeof tabLayersReproj =='undefined')  {var tabLayersReproj = new Array();}
if(typeof tabLayersTitreBulle =='undefined')  {var tabLayersTitreBulle = new Array();}
if(typeof tabLayersSource =='undefined')  {var tabLayersSource = new Array();}
if(typeof EstCoche =='undefined')  {var EstCoche = new Array();}


var lonlat;
var layer;
var layerName;  
var myPermalink; 

var map, controls;
var lS;
var extSite; 


// different popup types
function myCloseBoxCallback (e){   
    this.destroy(); 
    OpenLayers.Event.stop(e);
 }
    //anchored
        AutoSizeAnchored = OpenLayers.Class(OpenLayers.Popup.Anchored, {
            'autoSize': true
        });
        AutoSizeAnchoredMinSize = OpenLayers.Class(OpenLayers.Popup.Anchored, {
            'autoSize': true, 
            'minSize': new OpenLayers.Size(400,400)
        });
        AutoSizeAnchoredMaxSize = OpenLayers.Class(OpenLayers.Popup.Anchored, {
            'autoSize': true, 
            'maxSize': new OpenLayers.Size(100,100)
        });
        //anchoredbubble
        AutoSizeAnchoredBubble = OpenLayers.Class(OpenLayers.Popup.AnchoredBubble, {
            'autoSize': true
        });
        AutoSizeAnchoredBubbleMinSize = OpenLayers.Class(OpenLayers.Popup.AnchoredBubble, {
            'autoSize': true, 
            'minSize': new OpenLayers.Size(400,400)
        });
        AutoSizeAnchoredBubbleMaxSize = OpenLayers.Class(OpenLayers.Popup.AnchoredBubble, {
            'autoSize': true, 
            'maxSize': new OpenLayers.Size(100,100)
        });
        //framed
        //disable the autosize for the purpose of our matrix
        OpenLayers.Popup.FramedCloud.prototype.autoSize = true;
        AutoSizeFramedCloud = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
            'autoSize': true
        });
        AutoSizeFramedCloudMinSize = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
            'autoSize': true, 
            'minSize': new OpenLayers.Size(400,400)
        });
        AutoSizeFramedCloudMaxSize = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
            'autoSize': true, 
            'maxSize': new OpenLayers.Size(400,400)
        });
		function ajouteFeature(ll, popupClass, popupContentHTML, closeBox, overflow,nomL) {
				/*var feature = new OpenLayers.Feature(layer, ll); 
				feature.closeBox = closeBox;
				feature.popupClass = popupClass;
				feature.data.popupContentHTML = popupContentHTML;
				feature.data.overflow = (overflow) ? "auto" : "hidden";
				if (feature.popup == null) {
					feature.popup = feature.createPopup(feature.closeBox);
					map.addPopup(feature.popup);
					feature.popup.show();
				} else {feature.popup.toggle();}
				OpenLayers.Event.observe(feature.popup.closeDiv, "click", 
				OpenLayers.Function.bindAsEventListener(myCloseBoxCallback, feature.popup));				
				*/
				
   				var _divajax = document.getElementById('scriptajax_'+nomL); 
				if (_divajax != null) {
					//alert('ok'+_divorchi.innerHTML);
					eval(_divajax.innerHTML);
					//_divorchi = 'test';
				}
				if (nomL == 'Busards') {
				_f = document.getElementById('infocarto');
				_f.innerHTML = popupContentHTML+" <br><span onclick='map.zoomToExtent(extSite);return false;' style='text-decoration:underline;cursor:pointer;'  ><img src='http://sigore.observatoire-environnement.org/busards/img/Search20.png' >zoomer sur le site </span>"; 
				
			
				_c = document.getElementById('coord');
				tabE = _c.innerHTML.split(" ");
				Proj4js.libPath = 'appFiles/proj4js/lib/';
						// apparemment le path a l'air bon mais pas suffisant alors :
				Proj4js.defs["EPSG:27582"] = "+title=27582 +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs ";
				ext = new OpenLayers.Bounds(tabE[0], tabE[1], tabE[2], tabE[3]);
				//alert(ext);
				ext.transform(new OpenLayers.Projection("EPSG:27582"), new OpenLayers.Projection("EPSG:900913"));
				extSite = ext;
				} else {
					var feature = new OpenLayers.Feature(layer, ll); 
					feature.closeBox = closeBox;
					feature.popupClass = popupClass;
					feature.data.popupContentHTML = popupContentHTML;
					feature.data.overflow = (overflow) ? "auto" : "hidden";
					if (feature.popup == null) {
						feature.popup = feature.createPopup(feature.closeBox);
						map.addPopup(feature.popup);
						feature.popup.show();
					} else {feature.popup.toggle();}
					OpenLayers.Event.observe(feature.popup.closeDiv, "click", 
					OpenLayers.Function.bindAsEventListener(myCloseBoxCallback, feature.popup));				
				}
				// map.zoomToExtent(ext);
				//alert(ext)					
				
//				alert(_c.innerHTML );
				
			
		}
    /*handler de creation du popup*/
		function lancePopupSite(response) {
			lancePopup(response,'Busards');
		}
		
		function lancePopupCommune(response) {
			lancePopup(response,'Communes');
		}
	
	
	function lancePopup(response,nomLayer) {
		var Ow = new OpenLayers.Format.XML(); 
		var t1 = Ow.read(response.responseText);
		ogmlw = new OpenLayers.Format.GML(); 
		//alert(t);
		//alert(Ow.getChildValue(t1.getElementsByTagName("gml:boundedBy")[0]));
		var t = Ow.getChildValue(t1.getElementsByTagName("gml:coordinates")[0]);
		
		//alert(t);
		var c = t.split(",");
		//zoomNiveau = new OpenLayers.Bounds(c[0],c[1],c[2],c[3]);
		zoomNiveau = new OpenLayers.Bounds();
		//zoomNiveau.extend(OpenLayers.Layer.SphericalMercator.forwardMercator(c[0],c[1]));
		//zoomNiveau.extend(OpenLayers.Layer.SphericalMercator.forwardMercator(c[2],c[3]));
		
		
		
		//map.zoomToExtent(zoomNiveau);
		for (i in t ) {
			//alert(t[i]+' '+i)	;
			//contenuHtml = 
			//alert(t[i].geometry); 
			//contenuHtml = t[i].attributes.IDZONETUD+t[i].attributes.NBNIDS;
			/*for (i2 in t[i].attributes ) {
				alert(i2+t[i].attributes[i2])	;
			}*/
		}
	/*	var url = response.request.url;
		
		var tmp = url.split("&");
		for (var i in tmp) {
			var str = tmp[i];
			if((typeof str) == 'string') {
				if(str.match('nomLayer')) {
					var tmptmp = str.split('=');
					nomLayer = tmptmp[1];
				}			
			}
		}
		*/
		if(response.responseText.length > 1) {
			contenuHtml = response.responseText;
			ajouteFeature(lonlat, AutoSizeFramedCloud,contenuHtml,true, false ,nomLayer);
		} else {
			if ( nomLayer=='Busards') {
				_f = document.getElementById('infocarto');
				_f.innerHTML = '';
			}
	
		}
	}
	 
         OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {                
                defaultHandlerOptions: {
                    'single': true,
                    'double': false,
                    'pixelTolerance': 0,
                    'stopSingle': false,
                    'stopDouble': false
                },
                initialize: function(options) {
                    this.handlerOptions = OpenLayers.Util.extend(
                        {}, this.defaultHandlerOptions
                    );
                    OpenLayers.Control.prototype.initialize.apply(
                        this, arguments
                    ); 
                    this.handler = new OpenLayers.Handler.Click(
                        this, {
                            'click': this.onClick,
                            'dblclick': this.onDblclick 
                        }, this.handlerOptions
                    );
                }, 
                onClick: function(e) {

						for (var key in map.layers){
						  layer = map.layers[key];
						 	
							if((typeof layer) == 'object') {
							if(layer.getVisibility() && (layer.name=='Busards' || layer.name=='Busards Commune' ) ) {
								//alert(layer.params.LAYERS);
								var x = e.xy.x;
								var y = e.xy.y;
								var currbounds = map.calculateBounds(map.getCenter(), map.getResolution());
								lonlat = map.getLonLatFromPixel(new OpenLayers.Pixel(x,y));
								var format;
								var srs = "EPSG:900913";
								
								format = "text/html";
								//format = "gml";
							
								var url =  layer.getFullRequestString({
														'REQUEST': "GetFeatureInfo",
														'EXCEPTIONS': "application/vnd.ogc.se_xml",
														'BBOX': currbounds.toBBOX(),
														'SRS': srs,
														'X': x,
														'Y': y,
														'RADIUS': 20,
														'INFO_FORMAT': format,
														 'QUERY_LAYERS': layer.params.LAYERS , /*'busards', */
														'WIDTH': layer.map.size.w,
														'HEIGHT': layer.map.size.h});
								
								if(tabLayersReproj[key] != "") {
								url = url.replace('http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[key]);
								url = url.replace('http://sigore2.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[key]);
								url = url.replace('http://sigore3.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[key]);
								url = url.replace('http://sigore4.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[key]);
								}
								//alert(url);
								if (layer.name=='Busards' ) {
									OpenLayers.loadURL(url,{'nomLayer':layer.name}, this, lancePopupSite);
									
								}	else {
									// || layer.name=='Busards Commune' 
									OpenLayers.loadURL(url,{'nomLayer':layer.name}, this, lancePopupCommune);			
								}
						
								}
							}
						}
						
                }
            });
/* fonction d'initialisation de la carte*/    
var map, controls;
function init() {
	// reconstruction de la fenetre (pour maximiser la taille de la carte)
	var ie6 = (navigator.appName == 'Microsoft Internet Explorer' /*&& navigator.appVersion.match("MSIE 6")*/ ) ? 1:0;
   	if(ie6) {var transEff = null;} else {var transEff = 'resize';}

//	reconstruction();
	var lon = 0;
	var lat = 46.1;
	var zoom = 8; 
	OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";
    // create Google Mercator layers
     var gphys = new OpenLayers.Layer.Google(
                "Relief",
                {'type': G_PHYSICAL_MAP , 'transparent': true, 'sphericalMercator': true}
         );
 	var gsat = new OpenLayers.Layer.Google(
              "Satellite",
               {'type': G_SATELLITE_MAP, 'transparent': true, 'sphericalMercator': true}
        );
	var ghyb = new OpenLayers.Layer.Google(
                "Hybride",
                {'type': G_HYBRID_MAP, 'transparent': true, 'sphericalMercator': true}
        );
    var gplan = new OpenLayers.Layer.Google(
                "Plan" ,
				{ 'transparent': true ,'sphericalMercator': true}
     );
	
	var busards = new OpenLayers.Layer.WMS("Busards",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/busards/WMSBusards.map&",
                                   {layers: "busards",'transparent': true, 'format': "image/png", 'srs':'EPSG:900913'} ,{isBaseLayer:false, 'transitionEffect':transEff 
								   ,'singleTile':true,   'ratio':1, 'buffer':1 });

	var busards_commune = new OpenLayers.Layer.WMS("Busards Commune",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/busards/WMSBusards.map&",
                                   {layers: "commune_busards",'transparent': true, 'format': "image/png", 'srs':'EPSG:900913'} ,{isBaseLayer:false, 'transitionEffect':transEff 
								   ,'singleTile':true,   'ratio':1, 'buffer':1 });



	var riviere= new OpenLayers.Layer.WMS("Rivieres",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/busards/WMSBusards.map&",
                                   {layers: "riviere_simple",'transparent': true, 'format': "image/png"/*, 'srs':'EPSG:900913'*/} ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });

	var foret= new OpenLayers.Layer.WMS("Forets",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
                                   {layers: "foret_conifere,foret_feuillus,foret_melangee",'transparent': true, 'format': "image/png"/*, 'srs':'EPSG:900913'*/} ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	
	
	var paysage= new OpenLayers.Layer.WMS("paysage",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
                                   {layers: "paysage_totale",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });

	var route= new OpenLayers.Layer.WMS("Routes",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/wms/wms.map&",
                                   {layers: "route_nat,route_auto",'transparent': true, 'format': "image/png"} ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	var ville= new OpenLayers.Layer.WMS("Ville",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/wms/wms.map&",
                                   {layers: "ville_principale",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });

	var znieff1= new OpenLayers.Layer.WMS("ZNIEFF 1",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
                                   {layers: "znieff_1",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	var znieff2= new OpenLayers.Layer.WMS("ZNIEFF 2",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
                                   {layers: "znieff_2",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	var zico= new OpenLayers.Layer.WMS("ZICO",
                                   "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
                                   {layers: "zico",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	var apb= new OpenLayers.Layer.WMS("APB",
               "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
             {layers: "apb",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	var rn= new OpenLayers.Layer.WMS("RN",
               "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
             {layers: "reserve_naturelle_nat",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });
	var rnv= new OpenLayers.Layer.WMS("RNV",
               "http://sigore.observatoire-environnement.org/cgi-bin/wmsore?",
             {layers: "reserve_naturelle_reg",'transparent': true, 'format': "image/png" } ,{isBaseLayer:false, 'transitionEffect':transEff,'singleTile':true,   'ratio':1, 'buffer':1, visibility:false });





		/* test fond blanc par RM*/
	
	var sL = new OpenLayers.Control.ScaleLine({bottomOutUnits:"", bottomInUnits:""});
	
	var options = { 'projection': new OpenLayers.Projection("EPSG:900913")/*,  'displayProjection': new OpenLayers.Projection("EPSG:4326"),*/, 'units': "m",  'maxResolution': 156543,/*'minResolution': 0.00000268220901489257,*/ 'controls': [new OpenLayers.Control.MouseDefaults(),  sL] , /*'resolutions':res,*/ 'numZoomLevels':20, /*'maxExtent': new OpenLayers.Bounds(-1.56, 45.038, 1.21, 47.22)*/ 'maxExtent': new OpenLayers.Bounds(-173983,5605227,135037,5939454)};
    map = new OpenLayers.Map( 'map_canvas', options);
    
    
	map.addLayers([gphys, gplan, gsat, ghyb,paysage,foret,znieff1,znieff2,apb,zico,rn,rnv,busards,busards_commune,riviere ,route,ville]);
	
	
    lS = new OpenLayers.Control.LayerSwitcher();
    map.addControl(lS);
	
	/* test getFeatureInfo*/
//	wmsgfi = new OpenLayers.Control.WMSGetFeatureInfo(); 
	
	/*gplan.events.register("visibilitychanged", gplan, function () {map.updateSize(); 
		map.getLayersByName("Hybride")[0].redraw();
		map.getLayersByName("Satellite")[0].redraw();
		map.getLayersByName("Relief")[0].redraw();
	});
*/
	
	
	if(!map.getZoom()) {
		var initBounds = new OpenLayers.Bounds(-173983, 5605227, 135037, 5939454);
		map.zoomToExtent(initBounds);
	}
	
		
/*	OpenLayers.Util.extend(lS, {
		onclick: function () {	map.updateSize(); 
		//alert('f');
		}
	});*/
	

	
	//map.addControl(wmsgfi);
		
    map.addControl(new OpenLayers.Control.PanZoom());
	//lS.maximizeControl();
          controls = {
                    "single": new OpenLayers.Control.Click({
                        hanlerOptions: {
                            "single": true
                       }
                  }),
                  "double": new OpenLayers.Control.Click({
                      handlerOptions: {
                          "single": false,
                          "double": true
                      }
                  }),
                  "both": new OpenLayers.Control.Click({
                      handlerOptions: {
                          "single": true,
                          "double": true
                      }
                  }),
                  "nodrag": new OpenLayers.Control.Click({
                      handlerOptions: {
                          "single": true,
                          "pixelTolerance": 1
                      }
                  }),
                  "stopsingle": new OpenLayers.Control.Click({
                      handlerOptions: {
                          "single": true,
                          "stopSingle": true, 
						   "pixelTolerance": 1 
                      }
                  }),
                  "stopdouble": new OpenLayers.Control.Click({
                      handlerOptions: {
                          "single": false,
                          "double": true,
                          "stopDouble": true
                      }
                  })
              };
              var control;
              for(var key in controls) {
                  control = controls[key];
                  // only to route output here
                  control.key = key;
                  map.addControl(control);
              }
	toggle_control('stopsingle');
	map.updateSize();
	
/* on affiche une div avec un lien vers ORE dans la carte */
} // fin init

// fermer le layer switche
function closeLS() {
		lS.minimizeControl();
}


function getLayer(layerName) {
		for (var key in tabLayers){
			if(key == layerName) {
				return 	tabLayers[key];
			}
		} 
}
function getToggleState(layerName) {
		for (var key in tabLayersState){
			if(key == layerName) {
				return 	tabLayersState[key];
			}
		} 
}
function setToggleState(layerName, state) {
		for (var key in tabLayers){
			if(key == layerName) {
				tabLayersState[key] = state;
			}
		} 
}
function toggle_control(key) {
  var control = controls[key];
  if(control.active) {
         control.deactivate();
  } else {
         control.activate();
  }
}
function toggleMyLayer(layerName) {
	EstCoche[layerName] = "0";
	eval('if (!isCreate'+layerName+') { create'+layerName+'(); }');
	var layerToToogle = getLayer(layerName);
    if (getToggleState(layerName) == 1) {
		layerToToogle.setVisibility(false);
		setToggleState(layerName, 0);
		var leg=document.getElementById(layerName+"_leg");
	//	var sc=document.getElementById(layerName+"_sc");
		leg.parentNode.removeChild(leg);
//		sc.parentNode.removeChild(sc); 

		if(OpenLayers.Util.getElement('legend').innerHTML == '') {
			document.getElementById("baseLegend").style.display = 'none';	
			//document.getElementById("BaseSource").style.display = 'none';	

		}
		
	}
	else {
			layerToToogle.setVisibility(true);
			setToggleState(layerName, 1);
			var layer = tabLayers[layerName];
			var urllegend = layer.getFullRequestString();
			urllegend=urllegend.replace('LAYERS','LAYER');
			urllegend=urllegend.replace('REQUEST=GetMap','REQUEST=GetLegendGraphic');
			if(tabLayersReproj[layerName] != "") {
			urllegend = urllegend.replace('http://sigore.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[layerName]);
			urllegend = urllegend.replace('http://sigore2.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[layerName]);
			urllegend = urllegend.replace('http://sigore3.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[layerName]);
			urllegend = urllegend.replace('http://sigore4.observatoire-environnement.org/cgi-bin/mapserv5?map=/var/www/html/biodiversite/biodiversite.map',tabLayersWmsLink[layerName]);
			}
	
		   //new jalila
			//function setSource(response) {
				//OpenLayers.Util.getElement('source').innerHTML += response.responseText;
			//}
			/*var inner = OpenLayers.Util.getElement('legend').innerHTML;
			OpenLayers.Util.getElement('legend').innerHTML += "<img class='img_legend' id='"+layerName+"_leg' src='"+urllegend+"' alt'' />";
			OpenLayers.loadURL('http://sigore.observatoire-environnement.org/appFiles/source.php?layer='+layerName+'', '', this, setSource); 
			if(OpenLayers.Util.getElement('legend').innerHTML != '') {
				document.getElementById("baseLegend").style.display = 'block';
				document.getElementById("BaseSource").style.display = 'block';	
			}*/
			// fin new
			
			var inner = OpenLayers.Util.getElement('legend').innerHTML;
			OpenLayers.Util.getElement('legend').innerHTML += "<img class='img_legend' id='"+layerName+"_leg' src='"+urllegend+"' alt'' />";
			if(OpenLayers.Util.getElement('legend').innerHTML != '') {
				document.getElementById("baseLegend").style.display = 'block';			
			} 
	EstCoche[layerName] = "1";
		
	}
	myPermalink.updateLink();
}

