	
	var urlCgiPhp2 = urlData+"?type=wms&action=";
	
	// Init variables
	var map = null; // map object
	var currentZone = null;
	var config = null;
	var moveControl, zoomControl, clickNiveauWMSControl, selectNiveauWMSControl, selectNiveauWFSControl = null;
	var niveau = 1;	// niveau 1 ou 2
	var currentMode = "move";
	var lastCurrentMode = null;
	var wmsFondCarteRaster, wmsPrelevements = null; // layers WMS
	var wfsPrelevements, wfsSitesNucleaires_8000k, wfsSitesNucleaires_4000k, wfsSitesNucleaires_1000k, wfsSitesNucleaires_500k = null; // layers  WFS
	var compartiments = new Array(4); // liste des compartiments
	var dataOpen2 = false;
	var dataHide2 = false;			
	var multiselect = false;	
	var currentClickFeature = null;
	var isInitForms = false;	
	var isLoadingWMS = false;
	var isLoadingWFS = false;	
	var timeoutMultiSelect = null;	
	var styleMapSitesNucleaires = null;
	var sfPopup = null;
	var isMouseDown = false;
	var needRefresh = true;
	
	// Init valeurs selectionnees
	var currentValueOrganisme   = "";
	var currentValueDepartement = "";
	var currentValueCommune     = "";					
	var currentValueMilieu      = "";					
	var currentValueNature      = "";					
	var currentValueEspece      = "";					
	var currentValueRadion      = "";
	var currentValueDatedeb     = "";
	var currentValueDatefin     = "";
	var currentValueSd          = "";
	
	var viewTypeSiteNucleaire = new Array(7);
	viewTypeSiteNucleaire[0] = true;
	viewTypeSiteNucleaire[1] = true;
	viewTypeSiteNucleaire[2] = true;
	viewTypeSiteNucleaire[3] = true;
	viewTypeSiteNucleaire[4] = true;
	viewTypeSiteNucleaire[5] = true;
	viewTypeSiteNucleaire[6] = true;	
	
    var elementBtnZoom, elementBtnMove, elementBtnSelect;
    
	var currentValueMilieuPopup  = null;
	var currentValueNaturePopup  = null; 
	var currentValueRadionPopup  = null; 
	var currentValueLNatPopup    = null;
	var currentValueCUnitePopup  = null;
	var currentValueLUnitePopup  = null;
	var currentValueLRadionPopup = null; 
	var currentValueNbGeomPopup  = null;  
	
	var extImg = ".gif";
	var iconSiteNucleaire = new Array(7);
	iconSiteNucleaire["1"] = urlMarker+"site_minier"+extImg;
	iconSiteNucleaire["2"] = urlMarker+"fabrication"+extImg;			
	iconSiteNucleaire["3"] = urlMarker+"centrale_nucleaire"+extImg;
	iconSiteNucleaire["4"] = urlMarker+"traitement_maintenance"+extImg;		
	iconSiteNucleaire["5"] = urlMarker+"entreposage_stockage"+extImg;
	iconSiteNucleaire["6"] = urlMarker+"etude_et_recherche"+extImg;
	iconSiteNucleaire["7"] = urlMarker+"defense"+extImg;		

	
	/**
	 * Initialiser 
	 */
	function init() {

		// mettre curseur sablier
		$("body").css("cursor", "progress");
	
		// init accordion
		$("#controls").accordion({
			active: 1,
			header: "h3",
			//autoHeight: false,
			change: function(event, ui) {	
				var onglet = 0;
				for(var i=0;i<$(".onglet").length;i++){
					if ($(".onglet").eq(i).is(":visible")){
						onglet=i;
						$(".onglet").eq(i).css("overflow", "hidden").css("display", "block").css("height", 350);
					}	
				}	
				// initialiser le formulaire avancée lors de son affichage
				if(isInitForms==false && onglet == 2){
					isInitForms = true;
					initForms();
				}
			}
		});	
		
		// Anti bug Firefox à l'initialisation de l'onglet "recherche assistée"
		$(".selected .onglet").css("overflow", "hidden").css("display", "block").css("height", 350);
		$("#controls h3.ui-accordion-header").hover(
			function(){	
				if(!$(this).hasClass("selected")){
					if($(this).prev().hasClass("infobulle")){
						$(this).prev().show();
					}	
				}	
			},
			function(){			
				if($(this).prev().hasClass("infobulle")){
					$(this).prev().hide();
				}	
			}
		).click(function(){
			//$(this).next().slideToggle();
		});
		$("#controls2 h3.ui-accordion-header").hover(
			function(){	
				if(!$(this).hasClass("selected")){
					if($(this).prev().prev().hasClass("infobulle")){
						$(this).prev().prev().show();
					}	
				}	
			},
			function(){			
				if($(this).prev().prev().hasClass("infobulle")){
					$(this).prev().prev().hide();
				}	
			}
		);
		// initialisation de la popup d'aide 
		$("#help").dialog({
			resizable: false,
			draggable: false,
			autoOpen: false,
			bgiframe: true,
			height: 566,
			width: 715,
			modal: true,
			buttons: {
				Ok: function() {
					$(this).dialog('close');
				}
			},open: function(event, ui) { 
				var left = $("#contain-left").get(0).offsetLeft;
				$(this).parents(".ui-dialog").eq(0).css('top', 209).css('left', left);
				$(this).height(474);
				$(this).prev(".ui-dialog-titlebar").eq(0).css('cursor', 'auto');
				if(jQuery.browser.msie && jQuery.browser.version == "6.0")
					$("#select_zone").css("visibility", "hidden");
				$(this).width('');
			},resize: function(event, ui) { 
				$(this).width('');
			},resizeStop: function(event, ui) { 
				$(this).width('');
			},close: function(event, ui){
				if(jQuery.browser.msie && jQuery.browser.version == "6.0")
					$("#select_zone").css("visibility", "visible");
			}	
		});

		$("#videoBackground").dialog({
			modal: true,
			bgiframe: true,
			modal: true,
			width: 715,
			height: 566,
			resizable: false,
			draggable: false,
			autoOpen: false,
			open: function(event, ui) { 
			var left = $("#contain-left").get(0).offsetLeft;
			$(this).parents(".ui-dialog").eq(0).css('top', 209).css('left', left);
			$(this).prev(".ui-dialog-titlebar").eq(0).css('cursor', 'auto').css('left', 0);
			if(jQuery.browser.msie){
				playVideo('guide.swf' ,715 ,541 ,'on' ,'on');
			}else{
				playVideo('guide.swf' ,715 ,540 ,'on' ,'on');	
			}
			if(jQuery.browser.msie && jQuery.browser.version == "6.0"){
				$("#select_zone").css("visibility", "hidden");
			}
			$(this).width('');
			},close: function(event, ui){
				if(jQuery.browser.msie && jQuery.browser.version == "6.0"){
					$("#select_zone").css("visibility", "visible");
				}
			}	
		});	
		
		$(".lien_visite_guidee").click(function(){
			$("#videoBackground").dialog('open');
			//return false pour stopper l'évenement et éviter le scroll de la page 
			return false;
		});	
		// initialisation de la du boutton aide 
		$("#openHelp").click(function(){
			$("#help").dialog('open');
		});		
		
		
		// init map
		var defaultZone = "metropole"; // carte par défaut
		createMap(defaultZone);

		// init selection d'une autre map
 		var element = $("#select_zone");
		element.empty();
		for( zone in mapsConfig ){
			var config = mapsConfig[zone];
			var newoption = createOption(zone,config.name);
			element.append(newoption,null);  
		}
		element.change( function(){
			changeMap(this.value);
		});
		
		
		$("#button_move").hover(function(){
			desactiveControls();
		},function(){
			activeControls();	
		});
		
		$("#button_select").hover(function(){
			desactiveControls();
		},function(){
			activeControls();	
		});
		
		$("#button_zoom").hover(function(){
			desactiveControls();
		},function(){
			activeControls();	
		});
		
/*		
		//TEST
		var geoms = "0101000020E6100000355EBA490C0212C03333333333334840,0101000020E610000060E5D022DBF911C0A01A2FDD24264840,0101000020E610000060E5D022DBF911C0713D0AD7A3304840,0101000020E6100000D9CEF753E3A511C046B6F3FDD4384840,0101000020E6100000BE9F1A2FDDA411C046B6F3FDD4384840,0101000020E61000002FDD2406819511C0D7A3703D0A374840,0101000020E61000002DB29DEFA7C60FC0931804560E2D4840,0101000020E61000008D976E1283C00FC014AE47E17A344840,0101000020E6100000A01A2FDD24060FC0B0726891ED2C4840,0101000020E610000096438B6CE7FB0EC0931804560E2D4840,0101000020E610000060E5D022DBF90EC0931804560E2D4840,0101000020E610000060E5D022DBF90EC077BE9F1A2F2D4840,0101000020E61000002B8716D9CEF70EC0931804560E2D4840,0101000020E6100000F6285C8FC2F50EC0B0726891ED2C4840,0101000020E610000017D9CEF753E30EC03D0AD7A3702D4840,0101000020E610000037894160E5D00EC0AE47E17A142E4840,0101000020E6100000022B8716D9CE0EC0AE47E17A142E4840,0101000020E6100000CDCCCCCCCCCC0EC0CBA145B6F32D4840,0101000020E6100000F853E3A59BC40EC0E7FBA9F1D22D4840,0101000020E61000005839B4C876BE0EC079E92631082C4840,0101000020E610000025068195438B0EC025068195432B4840"
		//var geoms = "0101000020E61000001F85EB51B81EFBBFAAF1D24D62104840";
		showData(false, geoms, currentValueOrganisme, currentValueDepartement, currentValueCommune, currentValueMilieu, currentValueNature, currentValueEspece, currentValueRadion, currentValueDatedeb, currentValueDatefin, currentValueSd);
*/		
	}


	/**
	 * Change the map, destroy the existing one, create a new one, re-init the toolbar
	 * 
	 * @param zone {String} the zone to create map for (ie. 'metropole', 'guadeloupe')
	 * @param zone {Boolean} true if lists must be refresh (default: false)
	 */
	function changeMap(zone, refreshListes) {

		// disable forms during load
		disableCheckboxSitesNucleaires();
		
		// reset current state
		currentValueOrganisme   = "";
		currentValueDepartement = "";
		currentValueCommune     = "";					
		currentValueMilieu      = "";					
		currentValueNature      = "";					
		currentValueEspece      = "";					
		currentValueRadion      = "";
		currentValueDatedeb     = "";
		currentValueDatefin     = "";
		currentValueSd          = "";		
		
		// Init le formulaire de recherche simple et la legende
        $("#check_atmospherique").attr("checked", "checked");
        $("#check_aquatique").attr("checked", "checked");
        $("#check_biologique").attr("checked", "checked");
        $("#check_mineral").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_1").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_2").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_3").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_4").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_5").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_6").attr("checked", "checked");
        $("#check_coucheSitesNucleaires_7").attr("checked", "checked");
        
        if( refreshListes != false ){    
        	
        	// Init formulaires de recherche avancee
	        var defaultValue = "";
	        $("#select_organisme_input").val(defaultValue);
	        $("#select_organisme_input_hidden").val(defaultValue);        
	        $("#select_departement_input").val(defaultValue);
	        $("#select_departement_input_hidden").val(defaultValue);
	        $("#select_commune_input").val(defaultValue);
	        $("#select_commune_input_hidden").val(defaultValue); 
	        $("#select_milieu_input").val(defaultValue);
	        $("#select_milieu_input_hidden").val(defaultValue);  
	        $("#select_nature_input").val(defaultValue);   
	        $("#select_nature_input_hidden").val(defaultValue);  
	        $("#select_espece_input").val(defaultValue);   
	        $("#select_espece_input_hidden").val(defaultValue);        
	        $("#select_radion_input").val(defaultValue);   
	        $("#select_radion_input_hidden").val(defaultValue);  
	        defaultValue = "Tous"; 
	        ajaxInitSelect("#select_organisme", urlData, "type=list&action=organisme", defaultValue);          
	        ajaxInitSelect("#select_departement", urlData, "type=list&action=departement", defaultValue);    
	        ajaxInitSelect("#select_commune", urlData, "type=list&action=commune", defaultValue);
	        ajaxInitSelect("#select_milieu", urlData, "type=list&action=milieu", defaultValue);
	        ajaxInitSelect("#select_nature", urlData, "type=list&action=nature", defaultValue);
	        ajaxInitSelect("#select_espece", urlData, "type=list&action=espece", defaultValue);
	        ajaxInitSelect("#select_radion", urlData, "type=list&action=radion", defaultValue);
	        $("#datepicker_datedeb").val("");
	        $("#datepicker_datefin").val("");
        }

        // methode pour IE (avec destroy() et couches WFS => gros ralentissement sur la destruction du selectFeatureWFS) 
		if( jQuery.browser.msie ){

			// effacer les listerners
		    if(map.eventListeners) {
	            map.events.un(map.eventListeners);
	            map.eventListeners = null;
	        }
	        map.events.destroy();
	        //map.events = null;			
			
			map.div.innerHTML = '<div id="mapinfos"></div>';
			map = null;
			
		}else{
			map.destroy();
		}	

		// init new map		
		createMap(zone);  
	}
	

	function enableWait(couche){
		
		// maj etat a vrai
		eval("isLoading"+couche+"=true");
		
		// MAJ etat de chargement de la couche a vrai	
		map.div.style.cursor = "progress";
		
		// Afficher le message d'attente
		if( isLoadingWMS == true || isLoadingWFS == true ){
			switchMode("loading");
			/*$("#verrou-carte").show();
			$("#img_verrou-carte").show();*/
		}
	}
	
	function disableWait(couche){
		
		// MAJ etat de chargement de la couche a faux	
		eval("isLoading"+couche+"=false");
		
		// Masquer le message d'attente
		if( isLoadingWMS == false && isLoadingWFS == false ){
			// remettre curseur par default (sur #map)
			$("body").css("cursor", "auto");
			map.div.style.cursor = "default";
			// si le dernier etat n'est pas loading
			if( lastCurrentMode != "loading" ){
				switchMode(lastCurrentMode);
			}
			/*$("#verrou-carte").hide();
			$("#img_verrou-carte").hide();			*/
		}		
	}	


	/**
	 * Creation la carte avec OpenLayers
	 */
	function createMap(zone) {

		// forcer curseur d'attente (sablier)
		$("body").css("cursor", "progress");	
	
		currentZone = zone;	 
		 
		config = mapsConfig[zone];
	 
		// init compartiments
 		compartiments["aerosol,dosamb,gaz"] = true;			// compartiment atmospherique
 		compartiments["eau"] = true;						// compartiment aquatique 
		compartiments["bio"] = true;						// compartiment biologique
 		compartiments["sol"] = true;						// compartiment mineral	
			
		// init params
		var params = getCompartimentsParams();	 		
	
	    // Nbr tentative de reload en cas d'erreur
	    OpenLayers.IMAGE_RELOAD_ATTEMPTS = 0;
	    

	    // Classe PanZoomBarCustom : Control PanZoomBar standard modifie
		OpenLayers.Control.PanZoomBarCustom = OpenLayers.Class(OpenLayers.Control.PanZoomBar, {
			
		    CLASS_NAME: "OpenLayers.Control.PanZoomBarCustom",
		    	
		    /**
		    * Method: draw 
		    *
		    * Parameters:
		    * px - {<OpenLayers.Pixel>} 
		    */
		    draw: function(px) {
		        // initialize our internal div
		        OpenLayers.Control.prototype.draw.apply(this, arguments);
		        px = this.position.clone();

		        // place the controls
		        this.buttons = [];

		        var sz = new OpenLayers.Size(18,18);
		        var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y);
		        var wposition = sz.w;

		        if (this.zoomWorldIcon) {
		            centered = new OpenLayers.Pixel(px.x+sz.w, px.y);
		        }

		        this._addButton("panup", "north-mini.png", centered, sz);
		        px.y = centered.y+sz.h;
		        this._addButton("panleft", "west-mini.png", px, sz);
		        if (this.zoomWorldIcon) {
		            this._addButton("zoomworld", "zoom-world-mini.png", px.add(sz.w, 0), sz);
		            
		            wposition *= 2;
		        }
		        this._addButton("panright", "east-mini.png", px.add(wposition, 0), sz);
		        this._addButton("pandown", "south-mini.png", centered.add(0, sz.h*2), sz);
		        
		        //------------CUSTOM RNM-------------
		        tmpCentered = centered.add(-3, sz.h*3+5);
		        centered = centered.add( 0, sz.h+8);
		        //-----------------------------------
		        
		        this._addButton("zoomin", "zoom-plus-mini.png", centered.add(0, sz.h*3+5), sz);
		        centered = this._addZoomBar(centered.add(0, sz.h*4 + 5));
		        this._addButton("zoomout", "zoom-minus-mini.png", centered, sz);
		        
		        //------------CUSTOM RNM-------------
		        var szCustom = new OpenLayers.Size(24,22);
		        // create new buttons
		        var btnZoom   = this._addButton("switchMode_zoom",   "../theme/default/img/blank.gif", tmpCentered, szCustom);		        
		        var btnMove   = this._addButton("switchMode_move",   "../theme/default/img/blank.gif", centered.add(-3, szCustom.h), szCustom);
		        var btnSelect = this._addButton("switchMode_select", "../theme/default/img/blank.gif", centered.add(-3, szCustom.h*2+5), szCustom);
		        // add event to buttons
		        OpenLayers.Event.observe(btnZoom,   "mousedown", OpenLayers.Function.bindAsEventListener(this.buttonDownCustom, btnZoom  ));
		        OpenLayers.Event.observe(btnMove,   "mousedown", OpenLayers.Function.bindAsEventListener(this.buttonDownCustom, btnMove  ));
		        OpenLayers.Event.observe(btnSelect, "mousedown", OpenLayers.Function.bindAsEventListener(this.buttonDownCustom, btnSelect));
		        // select images
		        elementBtnZoom   = $("#"+btnZoom.id.replace(/\./g,"\\.")+" img");
		        elementBtnMove   = $("#"+btnMove.id.replace(/\./g,"\\.")+" img");
		        elementBtnSelect = $("#"+btnSelect.id.replace(/\./g,"\\.")+" img");
		        // add class to images
		        elementBtnZoom.addClass("olBtnZoom");
		        elementBtnMove.addClass("olBtnMove");
		        elementBtnSelect.addClass("olBtnSelect");
		        // add title to images
		        elementBtnZoom.attr("title", "Activer le zoom par s\351lection d'une zone sur la carte");
		        elementBtnMove.attr("title", "Activer le d\351placement sur la carte");
		        elementBtnSelect.attr("title", "Activer la s\351lection de plusieurs points sur la carte");
		        //-----------------------------------
	 
		        return this.div;
		    },
		    
		    
		    /**
		     * Method: buttonDownCustom
		     *
		     * Parameters:
		     * evt - {Event} 
		     */
		    buttonDownCustom: function (evt) {
		        if (!OpenLayers.Event.isLeftClick(evt)) {
		            return;
		        }
		        // switch event
		        switch (this.action) {
		            case "switchMode_zoom":
		            	switchMode("zoom");
		                break;
		            case "switchMode_move":
		            	switchMode("move");
		            	break;
		            case "switchMode_select":
		            	switchMode("select");
		            	break;		            	
		        }
		        OpenLayers.Event.stop(evt);
		    }
		});
	    
		
		if( !jQuery.browser.msie || moveControl == null){
			moveControl = new OpenLayers.Control.Navigation({zoomWheelEnabled: true});
		}
		if( !jQuery.browser.msie || zoomControl == null){
			zoomControl = new OpenLayers.Control.ZoomBox();
		}
		panZoomBarControl = new OpenLayers.Control.PanZoomBarCustom({zoomWorldIcon: true});

		// Zone de restriction de deplacement sur la carte par defaut
		if( config.restrictedExtent == null || config.restrictedExtent == undefined ){
			config.restrictedExtent = config.extent;
		}
		
		var options = {
		    projection: new OpenLayers.Projection(config.srs),	    
		    units: 'm',
        	restrictedExtent: config.restrictedExtent,		    
        	maxExtent: config.maxextent,
        	resolutions: config.resolutions,
            controls: [
				panZoomBarControl,
				moveControl,
				zoomControl,
				//new OpenLayers.Control.LayerSwitcher({ascending: true}),
				new OpenLayers.Control.ScaleLine()
				//new OpenLayers.Control.KeyboardDefaults()
			]
		};
	                       
		map = new OpenLayers.Map('map', options);

		// mettre curseur sablier (sur #map)
		map.div.style.cursor = "progress";

		
		//---------- creation des styles de points ---------- 

		// create a styleMap with a custom default symbolizer
		var styleMapPrelevement = new OpenLayers.StyleMap({
			graphicWidth: 15,
            graphicHeight: 15
		});

		var selectStyle = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
		selectStyle.strokeWidth = 1;
		selectStyle.strokeColor = "#FFA034";
		selectStyle.fillColor = "#FAFAFA";
		selectStyle.pointRadius = 8;
		selectStyle.fillOpacity = 1;
		
        var extImg = ".gif";
            
		// create a lookup table with different symbolizers for compartiment
		var lookup = {
				
                "aerosol,bio,dosamb,gaz,sol" : {externalGraphic: urlMarker+"air_biol_terre"+extImg},
				"aerosol,bio,dosamb,sol"     : {externalGraphic: urlMarker+"air_biol_terre"+extImg},
                "aerosol,bio,gaz,sol"        : {externalGraphic: urlMarker+"air_biol_terre"+extImg},
				"bio,dosamb,gaz,sol"         : {externalGraphic: urlMarker+"air_biol_terre"+extImg},
                "aerosol,bio,sol"            : {externalGraphic: urlMarker+"air_biol_terre"+extImg},
				"bio,dosamb,sol"             : {externalGraphic: urlMarker+"air_biol_terre"+extImg},
                "bio,gaz,sol"                : {externalGraphic: urlMarker+"air_biol_terre"+extImg},		            
            
                "aerosol,bio,dosamb,gaz" : {externalGraphic: urlMarker+"air_biol"+extImg},
				"aerosol,bio,dosamb"     : {externalGraphic: urlMarker+"air_biol"+extImg},
                "aerosol,bio,gaz"        : {externalGraphic: urlMarker+"air_biol"+extImg},
				"bio,dosamb,gaz"         : {externalGraphic: urlMarker+"air_biol"+extImg},
                "aerosol,bio"            : {externalGraphic: urlMarker+"air_biol"+extImg},
				"bio,dosamb"             : {externalGraphic: urlMarker+"air_biol"+extImg},
                "bio,gaz"                : {externalGraphic: urlMarker+"air_biol"+extImg},		            
            
                "aerosol,dosamb,gaz,sol" : {externalGraphic: urlMarker+"air_terre"+extImg},
				"aerosol,dosamb,sol"     : {externalGraphic: urlMarker+"air_terre"+extImg},
                "aerosol,gaz,sol"        : {externalGraphic: urlMarker+"air_terre"+extImg},
				"dosamb,gaz,sol"         : {externalGraphic: urlMarker+"air_terre"+extImg},
                "aerosol,sol"            : {externalGraphic: urlMarker+"air_terre"+extImg},
				"dosamb,sol"             : {externalGraphic: urlMarker+"air_terre"+extImg},
                "gaz,sol"                : {externalGraphic: urlMarker+"air_terre"+extImg},		            
            
                "aerosol,bio,dosamb,eau,gaz" : {externalGraphic: urlMarker+"eau_air_biol"+extImg},
				"aerosol,bio,dosamb,eau"     : {externalGraphic: urlMarker+"eau_air_biol"+extImg},
                "aerosol,bio,eau,gaz"        : {externalGraphic: urlMarker+"eau_air_biol"+extImg},
				"bio,dosamb,eau,gaz"         : {externalGraphic: urlMarker+"eau_air_biol"+extImg},
                "aerosol,bio,eau"            : {externalGraphic: urlMarker+"eau_air_biol"+extImg},
				"bio,dosamb,eau"             : {externalGraphic: urlMarker+"eau_air_biol"+extImg},
                "bio,eau,gaz"                : {externalGraphic: urlMarker+"eau_air_biol"+extImg},		            
            
                "aerosol,dosamb,eau,gaz,sol" : {externalGraphic: urlMarker+"eau_air_terre"+extImg},
				"aerosol,dosamb,eau,sol"     : {externalGraphic: urlMarker+"eau_air_terre"+extImg},
                "aerosol,eau,gaz,sol"        : {externalGraphic: urlMarker+"eau_air_terre"+extImg},
				"dosamb,eau,gaz,sol"         : {externalGraphic: urlMarker+"eau_air_terre"+extImg},
                "aerosol,eau,sol"            : {externalGraphic: urlMarker+"eau_air_terre"+extImg},
				"dosamb,eau,sol"             : {externalGraphic: urlMarker+"eau_air_terre"+extImg},
                "eau,gaz,sol"                : {externalGraphic: urlMarker+"eau_air_terre"+extImg},		            
            
                "aerosol,dosamb,eau,gaz" : {externalGraphic: urlMarker+"eau_air"+extImg},
				"aerosol,dosamb,eau"     : {externalGraphic: urlMarker+"eau_air"+extImg},
                "aerosol,eau,gaz"        : {externalGraphic: urlMarker+"eau_air"+extImg},
				"dosamb,eau,gaz"         : {externalGraphic: urlMarker+"eau_air"+extImg},
                "aerosol,eau"            : {externalGraphic: urlMarker+"eau_air"+extImg},
				"dosamb,eau"             : {externalGraphic: urlMarker+"eau_air"+extImg},
                "eau,gaz"                : {externalGraphic: urlMarker+"eau_air"+extImg},		            
                
                "bio,sol"             : {externalGraphic: urlMarker+"biol_terre"+extImg},
                
                "bio,eau,sol"        : {externalGraphic: urlMarker+"eau_biol_terre"+extImg},
                
                "bio,eau"            : {externalGraphic: urlMarker+"eau_biol"+extImg},
                
                "eau,sol"            : {externalGraphic: urlMarker+"eau_terre"+extImg},
                
                "eau"                : {externalGraphic: urlMarker+"eau"+extImg},
                
                "sol"                : {externalGraphic: urlMarker+"terre"+extImg},
                
                "bio"                : {externalGraphic: urlMarker+"biol"+extImg}, 
                               
                "aerosol,dosamb,gaz" : {externalGraphic: urlMarker+"air"+extImg},
				"aerosol,dosamb"     : {externalGraphic: urlMarker+"air"+extImg},
                "aerosol,gaz"        : {externalGraphic: urlMarker+"air"+extImg},
				"dosamb,gaz"         : {externalGraphic: urlMarker+"air"+extImg},
                "aerosol"            : {externalGraphic: urlMarker+"air"+extImg},
				"dosamb"             : {externalGraphic: urlMarker+"air"+extImg},
                "gaz"                : {externalGraphic: urlMarker+"air"+extImg},				    								                
				
                "aerosol,bio,dosamb,eau,gaz,sol" : {externalGraphic: urlMarker+"tous"+extImg},
				"aerosol,bio,dosamb,eau,sol"     : {externalGraphic: urlMarker+"tous"+extImg},
                "aerosol,bio,eau,gaz,sol"        : {externalGraphic: urlMarker+"tous"+extImg},
				"bio,dosamb,eau,gaz,sol"         : {externalGraphic: urlMarker+"tous"+extImg},
                "aerosol,bio,eau,sol"            : {externalGraphic: urlMarker+"tous"+extImg},
				"bio,dosamb,eau,sol"             : {externalGraphic: urlMarker+"tous"+extImg},
                "bio,eau,gaz,sol"                : {externalGraphic: urlMarker+"tous"+extImg}
		}
		
		// add rules from the above lookup table, with the keyes mapped to  the "type" property of the features, for the "default" intent
		styleMapPrelevement.addUniqueValueRules("default", "list_ccompart", lookup);		

		styleMapSitesNucleaires = new OpenLayers.StyleMap({
			fillOpacity: 0.8,
			graphicWidth: 21,
            graphicHeight: 20
		});	
		var lookup2 = {
				"1" : {externalGraphic: iconSiteNucleaire["1"]},
				"2" : {externalGraphic: iconSiteNucleaire["2"]},				
				"3" : {externalGraphic: iconSiteNucleaire["3"]},
				"4" : {externalGraphic: iconSiteNucleaire["4"]},				
				"5" : {externalGraphic: iconSiteNucleaire["5"]},
				"6" : {externalGraphic: iconSiteNucleaire["6"]},
                "7" : {externalGraphic: iconSiteNucleaire["7"]}		
		}
		styleMapSitesNucleaires.addUniqueValueRules("default", "type", lookup2);			
		
	//---------- creation des layers ---------- 
		
		// Layer WMS fond de carte (IGN)
		wmsFondCarteRaster  = new OpenLayers.Layer.WMS(
			config.name,
			config.mapfile,	
			{
				srs: config.srs,
				layers: config.layers
			},
			{
				isBaseLayer: true,
				singleTile: true,
				ratio: 1,
				buffer: 0,
       			opacity: 0.7
			}		
		);
		wmsPrelevements  = new OpenLayers.Layer.WMS(
			"prélèvements",
		   	urlCgiPhp2+"prelevements",			
			{
				srs: config.srs,
				layers: "prelev"
				,format: 'image/png'
			},
			{
				isBaseLayer: false,
				singleTile: true,
				ratio: 1,
				buffer: 0,
				transparent: true,
				alpha: true
				,width: 500
				,height: 500
			}		
		);
	
		// Layer WFS Sites Nucleaires
		wfsSitesNucleaires_8000k = initWfsSitesNucleaires("8000",0,0,"1,2,3,4,5,6,7");		
		wfsSitesNucleaires_4000k = initWfsSitesNucleaires("4000",1,1,"1,2,3,4,5,6,7");
		wfsSitesNucleaires_1000k = initWfsSitesNucleaires("1000",2,2,"1,2,3,4,5,6,7");
		wfsSitesNucleaires_500k  = initWfsSitesNucleaires("500", 3,3,"1,2,3,4,5,6,7");
		wfsSitesNucleaires_250k  = initWfsSitesNucleaires("250", 4,4,"1,2,3,4,5,6,7");
		wfsSitesNucleaires_100k  = initWfsSitesNucleaires("100", 5,7,"1,2,3,4,5,6,7");
        
        
		// Layer WFS prelevements
/*		
		wfsPrelevements = new OpenLayers.Layer.Vector(
	    	"prelevements (3k)", {
			    strategies:[ new OpenLayers.Strategy.BBOX() ], 	    		
			    protocol: new OpenLayers.Protocol.HTTP({
	            url:  urlCgiPhp+"prelevements3k",
	            format: new OpenLayers.Format.GML(),
	            params: {
	                format: "WFS",
	                service: "WFS",
	                request: "GetFeature",
	                srs: config.srs,
	                version : "1.1.0",
	                typename : "prelev"
	       		}
	        }),
	        styleMap: styleMapPrelevement,
			maxResolution: config.resolutions[config.levelMaxResolutionsWFSPrelevStation],
			minResolution: 0          
	    });		
*/		
	   	wfsPrelevements = new OpenLayers.Layer.WFS( 
	   		"prelevements (3k)",
	   		urlCgiPhp+"prelevements3k",
			{
				srs: config.srs,
				typename: "prelev",
				version: "1.1.0"
			},
	        {
				styleMap: styleMapPrelevement,
	        	extractAttributes: true,
				maxResolution: config.resolutions[config.levelMaxResolutionsWFSPrelevStation],
				minResolution: 0
	        }                                                                             
	    );       

		// Initialisation du niveau par defaut
		if(config.levelMaxResolutionsWMSPrelevStation==null && config.levelMinResolutionsWMSPrelevStation==null ){
			// Cas DOM-TOM : pas de niveau 1
			niveau = 2;
		}else{
			// Cas Metropole : niveaux 1 et 2
			niveau = 1;
		}

		//ajouts de layers a la carte
		map.addLayers([
			 wmsFondCarteRaster
			,wmsPrelevements
			,wfsPrelevements
			,wfsSitesNucleaires_8000k
			,wfsSitesNucleaires_4000k
			,wfsSitesNucleaires_1000k
			,wfsSitesNucleaires_500k
			,wfsSitesNucleaires_250k
			,wfsSitesNucleaires_100k			
		]);	

		// Gestion du rafraichissement du infos de la carte et du message d'attente	
		wmsPrelevements.events.register('loadstart', null, function(){enableWait("WMS")} );		
		wmsPrelevements.events.register('loadend', null, function(){disableWait("WMS")} );
		wmsPrelevements.events.register('moveend', null, refreshInfos);	
		wfsPrelevements.events.register('loadstart', null, function(){enableWait("WFS")} );	
		wfsPrelevements.events.register('loadend', null, function(){disableWait("WFS")} );
		
		// Overview Map		
		if( config.overview ){

	     	// create an overview map control with the default options
			var overviewMapOptions = {
			    units: 'm',
			    maxExtent: config.extent,
			    restrictedExtent: config.extent,		    			
				numZoomLevels: 1
			};     	
	        var overview = new OpenLayers.Control.OverviewMap({
	        	size: new OpenLayers.Size(140,100),
	        	mapOptions: overviewMapOptions
	        });
	        map.addControl(overview);
	        
			// expand the overview map control => overview open at start
	        overview.maximizeControl();  
        }
        
		// Gestion de l'etat de la souris
		//var isMouseDown = false;
		$("#map").mousedown(function(){ isMouseDown = true; });
		$("#map").mouseup(function(){
			isMouseDown = false;
			// Simuler ClickFeature pour selectNiveauWFSControl
			if( currentMode=="select" && currentClickFeature != null ){
				selectNiveauWFSControl.unselectAll();
				selectNiveauWFSControl.select(currentClickFeature);
			}
		});		
		
		var popup = null;
		var selectPoint = null;
		var zIndexSelectPoint = null;

		var optionsNiveauWFS = {		
			hover: true,
			box: true, // implique multiple=true
			clickout: true,
	
			onSelect: function(feature) {

				window.clearTimeout(timeoutMultiSelect);
				map.div.style.cursor = "progress";
				timeoutMultiSelect = window.setTimeout("onSelectMulti(wfsPrelevements)", 500);
			},
			overFeature: function(feature) {
				// Si pas de zoom/selection par box en cours (drag mouse)
				if( !isMouseDown ){
					// Modifier curseur
					map.div.style.cursor = "pointer";
					// Simuler ClickFeature
					currentClickFeature = feature;
				}
			},
			
			outFeature: function(feature) {
				// Restaurer curseur
				map.div.style.cursor = "default";
				// Simuler ClickFeature
				currentClickFeature = null;
			},
			selectStyle: selectStyle
		};
		selectNiveauWFSControl = new OpenLayers.Control.SelectFeature(wfsPrelevements, optionsNiveauWFS);
		map.addControl(selectNiveauWFSControl);
		
		function selectFeatureWMS(position){
																																		
			map.div.style.cursor = "progress";
			
			// convert to url string	
			if (currentValueRadion.lastIndexOf("*plus*") != -1){
				valueRadion = escape(currentValueRadion).replace('*plus*','%2B');
			}else{	
				valueRadion = escape(currentValueRadion).replace(/\+/g,'%2B');		
			}				
			
			var epsg = config.srs.replace("EPSG:","");
		
			if( map.getResolution() > config.resolutions[config.levelMinResolutionsWMSPrelevDept]){
				
				alert("S\351lection impossible pour ce niveau de zoom.");
				map.div.style.cursor = "default";
				
			}else{
				if(position.CLASS_NAME == "OpenLayers.Bounds" ){
						
					// selection to bbox
					var lbPixel = new OpenLayers.Pixel(position.left,position.bottom);
					var rtPixel = new OpenLayers.Pixel(position.right,position.top);
					var lbLonLat = map.getLonLatFromPixel(lbPixel);
					var rtLonLat = map.getLonLatFromPixel(rtPixel);	
					var bbox = lbLonLat.lon+","+lbLonLat.lat+","+rtLonLat.lon+","+rtLonLat.lat;

					var params = "type=list&action=geom&bbox="+bbox+"&epsg="+epsg+"&organisme="+currentValueOrganisme+"&departement="+currentValueDepartement+"&commune="+currentValueCommune+"&milieu="+currentValueMilieu+"&nature="+currentValueNature+"&espece="+currentValueEspece+"&radion="+valueRadion+"&datedeb="+currentValueDatedeb+"&datefin="+currentValueDatefin+"&sd="+currentValueSd;
					
					$.getJSON(
						urlData, 
						params, 
						function(result) {
							
							map.div.style.cursor = "default";
							
							// Conversion JSON vers Objet JS
							var geom = result.results.geom;
							var gid = result.results.gid;
							
							// empecher le refresh du compteur de prelevement
							needRefresh = false;
							
							// refresh de la couche
							wmsPrelevements.mergeNewParams( {
								"GID" : gid
							});
							
							// si resultat, afficher le tableau
							if( geom != null && geom !=""){
								showData(false,geom, currentValueOrganisme, currentValueDepartement, currentValueCommune, currentValueMilieu, currentValueNature, currentValueEspece, currentValueRadion, currentValueDatedeb, currentValueDatefin, currentValueSd);
							}
						}
					);	
					
				}else
				if( position.CLASS_NAME == "OpenLayers.Pixel" ){					
					
					var pointLonLat = map.getLonLatFromPixel(position);
					var tolerance = map.getResolution()*10;
					var point = pointLonLat.lon+","+pointLonLat.lat;
					
					var params = "type=list&action=geom&point="+point+"&tolerance="+tolerance+"&epsg="+epsg+"&organisme="+currentValueOrganisme+"&departement="+currentValueDepartement+"&commune="+currentValueCommune+"&milieu="+currentValueMilieu+"&nature="+currentValueNature+"&espece="+currentValueEspece+"&radion="+valueRadion+"&datedeb="+currentValueDatedeb+"&datefin="+currentValueDatefin+"&sd="+currentValueSd;
					
					$.getJSON(
						urlData, 
						params, 
						function(result) {
							
							map.div.style.cursor = "default";
							
							// Conversion JSON vers Objet JS
							var geom = result.results.geom;
							var gid = result.results.gid;								
							
							// empecher le refresh du compteur de prelevement
							needRefresh = false;
							
							// refresh de la couche							
							wmsPrelevements.mergeNewParams( {
								"GID" : gid
							});								
							
							// si resultat, afficher le tableau							
							if( geom != null && geom !=""){
								showData(false,geom, currentValueOrganisme, currentValueDepartement, currentValueCommune, currentValueMilieu, currentValueNature, currentValueEspece, currentValueRadion, currentValueDatedeb, currentValueDatefin, currentValueSd);
							}
						}
					);							
				}
			}
		}			

		var optionsNiveauWMS = {
			box: true,
			selectBox: function(position) {
				selectFeatureWMS(position);
			}
		};
		selectNiveauWMSControl = new OpenLayers.Control.SelectFeature(wfsPrelevements, optionsNiveauWMS);
		map.addControl(selectNiveauWMSControl);
		

		// Classe Control click
		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
                    }, this.handlerOptions
                );
            }, 

            onClick: function(e) {
            	//alert(e.target);
            	selectFeatureWMS(e.xy);
            }
        });
		clickNiveauWMSControl = new OpenLayers.Control.Click();
		map.addControl(clickNiveauWMSControl);

		
		// Gestion de l'evenement "Changement de layer" pour activer/desactiver la selection box-multiple
		// (openlayers ne peut gerer qu'une seule selection box-multiple a la fois)
		this.map.events.register("changelayer", this, function(evt) {

			if( wfsPrelevements.calculateInRange() == true ){
				niveau = 2;
			}else{
				niveau = 1;
			}

			if( currentMode == "select" ){
				// refresh control
				switchMode(currentMode);
			}		
		});
		
		
		// Afficher message d'attente 
		/*$("#verrou-carte").show();
		$("#img_verrou-carte").show();*/
		
		// gestion des Popups
		initPopupWfs();

		// Initialisation du zoom		
		map.zoomToMaxExtent();	
		
		// empecher le "unload destroy" sous IE		
		if( jQuery.browser.msie ){	
			map.unloadDestroy = null;
		}

		// gestion du bouton "fermer popup"
		$("#data #datadragbox #datadragbox-btn-close").hover (
			function (){
				$(this).addClass("btn-close-over");
			},
			function (){
				$(this).removeClass("btn-close-over");
			}			
		);
		$("#data #datadragbox #datadragbox-btn-close").click (
			function (){
				$("#tabs ul li:eq(1)").addClass("ui-tabs-disabled");
				//$("#tabs ul li:eq(2)").hide();
				
				$("#data").addClass("hidden");
				$("#select_zone").show();
				$("#select_organisme").show();
				$("#select_departement").show();
				$("#select_commune").show();
				$("#select_milieu").show();
				$("#select_nature").show();
				$("#select_espece").show();
				$("#select_radion").show();
				$("#recherche_carte img").css('z-index', 0);
				
				resetTabs2();
			}
		);

		$("#data #datadragbox #datadragbox-btn-minimize").hover (
			function (){
				$(this).addClass("btn-minimize-over");
			},
			function (){
				$(this).removeClass("btn-minimize-over");
			}
		);
		$("#data #datadragbox #datadragbox-btn-minimize").click (
			function (){
				$("#select_zone").show();
				$("#select_organisme").show();
				$("#select_departement").show();
				$("#select_commune").show();
				$("#select_milieu").show();
				$("#select_nature").show();
				$("#select_espece").show();
				$("#select_radion").show();
				$("#recherche_carte img").css('z-index', 0);

				$("#data").addClass("hidden");
				$("#dataMinimized").removeClass("hidden");
			}
		);

		$("#dataMinimized #dataMinimized-btn-close").hover (
			function (){
				$(this).addClass("btn-close-over");
			},
			function (){
				$(this).removeClass("btn-close-over");
			}			
		);
		$("#dataMinimized #dataMinimized-btn-close").click (
			function (){
				$("#tabs ul li:eq(1)").addClass("ui-tabs-disabled");
				$("#tabs ul li:eq(2)").hide();

				$("#dataMinimized").addClass("hidden");

				resetTabs2();
			}
		);

		$("#dataMinimized #dataMinimized-btn-maximize").hover (
			function (){
				$(this).addClass("btn-maximize-over");
			},
			function (){
				$(this).removeClass("btn-maximize-over");
			}
		);
		$("#dataMinimized #dataMinimized-btn-maximize").click (
			function (){
				$("#select_zone").hide();
				$("#select_organisme").hide();
				$("#select_departement").hide();
				$("#select_commune").hide();
				$("#select_milieu").hide();
				$("#select_nature").hide();
				$("#select_espece").hide();
				$("#select_radion").hide();
				$("#recherche_carte img").css('z-index', -1);

				$("#datadragbox").css({top: "0px"});
				$("#datadragbox").css({left: "0px"});
				$("#data").removeClass("hidden");
				$("#dataMinimized").addClass("hidden");
			}
		);
				
	}
	
	
	function initPopupWfs(){

		var optionsPopup = {		
			hover: true,
			overFeature: function(feature) {

				if( !isMouseDown ){

					var content  = null;
					
					if( feature.layer == wfsSitesNucleaires_8000k
					 || feature.layer == wfsSitesNucleaires_4000k
					 || feature.layer == wfsSitesNucleaires_1000k
					 || feature.layer == wfsSitesNucleaires_500k
					 || feature.layer == wfsSitesNucleaires_250k
					 || feature.layer == wfsSitesNucleaires_100k					 
					 ){
					
						content = 	"	<table>"+
									"	   <tr>"+
									"	     <td>"+
									"	       <div><span class='label'>Nom : </span>" + feature.attributes.libelle + "</div>"+
									"          <div style='height: 5px;'><!-- line space --></div>"+
									"	       <div><span class='label'>Description : </span>" + feature.attributes.description + "</div>"+
									"	     </td>"+
									"	     <td>"+
									"          <img class='icon' src='"+iconSiteNucleaire[feature.attributes.type]+"' width='50px' height='47px' />"+									
									"	     </td>"+
									"	   </tr>"+
									"	 </table>";									

					}else
					if( feature.layer == wfsPrelevements ){
					
						content =   "<div style='font-size: 1.1em;'>"+
									"	<strong>Producteur(s) : </strong><em>" + feature.attributes.list_lprod + "</em><br />" +
									"	<strong>Nature(s) : </strong><em>" + feature.attributes.list_lnat + "</em><br />" +
									"	<strong>Nb de mesures : </strong><em>" + feature.attributes.nbmesure + "</em>" +							  	
									"</div>"; 
					}
					
					if( content != null ){
							
						// Effacer Popup (avec un WHILE pour anti-bug roulette + popup)
						while( $('#wfsPopup').length > 0 ){
							$("#wfsPopup").remove();
						}

						// Creer popup
						var coord = feature.geometry.getBounds().getCenterLonLat();
						popup = new OpenLayers.Popup.FramedCloud("wfsPopup",coord,null,content,null,false,null);
						popup.panMapIfOutOfView = false;
						popup.keepInMap = true;
						map.addPopup(popup); 

						// Decaler la popup du point selectionné (pour le mouse hover)
						var topPositionPopup = $("#wfsPopup").css("top").replace("px","");
						if( popup.relativePosition == "bl" || popup.relativePosition == "br" ){
							topPositionPopup = topPositionPopup * 1 + 10;
						}else{
							topPositionPopup = topPositionPopup * 1 - 10;
						}
						$("#wfsPopup").css("top", topPositionPopup+"px" )
						
						// Masquer la fleche de la popup de type FramedCloud
						var topBorder    = $("#wfsPopup_FrameDecorationDiv_0");
						var bottomBorder = $("#wfsPopup_FrameDecorationDiv_2");
						var arrowBorder  = $("#wfsPopup_FrameDecorationDiv_4");				
						var maxWidthBorder = Math.max(topBorder.css("width").replace("px",""),bottomBorder.css("width").replace("px",""));
						topBorder.css("width",maxWidthBorder+"px");
						bottomBorder.css("width",maxWidthBorder+"px");				
						arrowBorder.hide();
						
					}
				}
			},
			
			outFeature: function(feature) {

				// Effacer Popup (avec un WHILE pour anti-bug roulette + popup)
				while( $('#wfsPopup').length > 0 ){
					$("#wfsPopup").remove();
				}
			}			
			
		};
		
		var layers = [   
      		wfsSitesNucleaires_8000k, 
      		wfsSitesNucleaires_4000k,
      		wfsSitesNucleaires_1000k, 
      		wfsSitesNucleaires_500k,
      		wfsSitesNucleaires_250k, 
      		wfsSitesNucleaires_100k,       		
      		wfsPrelevements];
		
		sfPopup = new OpenLayers.Control.SelectFeature(layers, optionsPopup);
		map.addControl(sfPopup);
		sfPopup.activate();		
	}
	

	function onSelectMulti(layer){

		map.div.style.cursor = "default";		
		
		var sf = layer.selectedFeatures;
		var nbSf = sf.length;
		var ids = "";
		var the_geoms = "";
		var	separator = "";		
		
		for (i=0; i<nbSf; i++){
			// concat ids
			the_geoms = the_geoms + separator + sf[i].attributes.geom;			
			separator = "," 		
		}

		multiselect = ( nbSf > 1 );
		showData(false,the_geoms, currentValueOrganisme, currentValueDepartement, currentValueCommune, currentValueMilieu, currentValueNature, currentValueEspece, currentValueRadion, currentValueDatedeb, currentValueDatefin, currentValueSd);
	}	
	
	
	function showData(bis, the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd){

		// masquer le tableau minimisé, si déjà ouvert
		$("#dataMinimized").addClass("hidden");
		
		// init tabs
		$("#tabs").tabs('destroy');
		initTabs();
		
		// bloquer les onglets et masquer le contenu des onglets
		$("#tabs").data('disabled.tabs', [0, 1, 2, 3]);
		$("#tabs .ui-tabs-panel").hide();
		
		if (valueRadion.lastIndexOf("*plus*") != -1){
			valueRadion = escape(valueRadion).replace('*plus*','%2B');
		}else{	
			valueRadion = escape(valueRadion).replace(/\+/g,'%2B');		
		}
		
		// init GET params
		var niveau;
		if( !bis ){
			niveau = "niveau1";
		}else{
			currentValueMilieuPopup  = valueMilieu;
			currentValueNaturePopup  = valueNature;			
			niveau = "niveau1bis";
		}			
		var params = "?action="+niveau+"&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature+"&espece="+valueEspece+"&radion="+valueRadion+"&datedeb="+valueDatedeb+"&datefin="+valueDatefin+"&sd="+valueSd;
		
		// remonter le scroll sur le tableau
		window.scrollTo(0,180);
		
		// masquer les <select> (anti bug IE)
		if( jQuery.browser.msie ){		
			$("#select_zone").hide();
			$("#select_organisme").hide();
			$("#select_departement").hide();
			$("#select_commune").hide();
			$("#select_milieu").hide();
			$("#select_nature").hide();
			$("#select_espece").hide();
			$("#select_radion").hide();
			$("#recherche_carte img").css('z-index', -1);
		}

		// forcer nouveau flexgrid
		document.getElementById("data1").innerHTML =  '<table id="griddata1" style="display: none;"></table>';
		
		// init colonne du tableau de donnees
		var colModel;
		if( !bis ){
			rp = 50;
			colModel = [{display: 'Nature des pr&eacute;l&egrave;vements', name : 'lnat',         width : 693, sortable : true, align: 'left'  },
			            {display: 'Nb de producteurs',                     name : 'nbproducteur', width : 110, sortable : true, align: 'center'},
			            {display: 'Nb de mesures',                         name : 'nbmesure',     width : 110, sortable : true, align: 'center'}];
		}else{	
			rp = 10;
			colModel = [{display: 'Nature des pr&eacute;l&egrave;vements', name : 'lnat',         width : 341, sortable : true, align: 'left'  },
						{display: 'Mesures disponibles',                   name : 'lradion',      width : 340, sortable : true, align: 'left'  },
						{display: 'Nb de producteurs',                     name : 'nbproducteur', width : 110,  sortable : true, align: 'center'},
						{display: 'Nb de mesures',                         name : 'nbmesure',     width : 110,  sortable : true, align: 'center'}];
		}
		
		// Creer tableau de donnees
		$("#griddata1").flexigrid({
			url: urlData+params,
			geom: the_geoms,	
			dataType: 'xml',
			sortorder: 'asc',
			colModel : colModel,
			usepager: true,
			title: 'Points de pr&eacute;l&egrave;vement',				
			useRp: true,
			rp: rp,
			showTableToggleBtn: false,
			//showToggleBtn: false, // genere bug IE
			striped: true,
			width: 968, /* 980 - 6*2  /* #datadragbox.height - border_width x 2 */ 
			//width: "auto",
			height: 450, /* 590 - 140 (constant) = 590-20-6*2-80-28 /* #datadragbox.height - datadragbox_title.height - border_width x 2 - ConstantHeightFlexigrid (=80) - - ConstantHeightTabs (=28) */
			//height: "auto",
			resizable: false,
			onSuccess: function(){

				$("#griddata1 .deploy-compart").parent().mouseover (
					function (){						
						$(this).css("cursor","pointer");
					}
				);	

				$("#griddata1 .deploy-compart").parent().click (
					function (){

						//$(this).parents().addClass('trSelected');
						
						var sub = $(this).children(".deploy-compart").attr("sub");
						var trElement = $("#griddata1 tr:has(.deploy-compart-"+sub+")");
						
						// changer etat
						if( trElement.attr("hide") == "true" ){
							// deplier
							trElement.attr("hide","false");
							trElement.show();	

						}else{
							// replier
							trElement.attr("hide","true");
							trElement.hide();						
						}
					}
				);
			
			}
		});
		
		// ajouter le lien de navigation entre les tableaux
		if(!bis){
			addLinksNav(the_geoms, 1);
		}else{
			addLinksNav(the_geoms, 2);			
		}
		
		// afficher la zone d'affichage des données
		$("#data").removeClass("hidden");		
	}
	
	
	function showDataBis( the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd){
		showData(true, the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd);
	}
	
	
	function showData2(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, nbgeom){

		// masquer niveau1/1bis
		minimizeData("#data1");
		
		// init tabs
		$("#tabs").tabs('destroy');
		initTabs();
		
		// si plusieurs positions (cad plusieurs "geom") ne pas afficher le graph
		if ( nbgeom < 2){
			$("#tabs").data('disabled.tabs', []);
			$("#tabs").tabs('select', 1);			
			$(".pReload").eq(1).trigger("click");
		}else{
			$("#tabs").tabs('select', 0);
			$("#tabs").data('disabled.tabs', [1]);				
		}			
		
		// debloquer les onglets et afficher le contenu des onglets
		$("#tabs").data('disabled.tabs', []);

		// save value
		currentValueMilieuPopup  = valueMilieu;
		currentValueNaturePopup  = valueNature; 
		currentValueRadionPopup  = valueRadion; 
		currentValueLNatPopup    = lnature;
		currentValueCUnitePopup  = cunite;
		currentValueLUnitePopup  = lunite;
		currentValueLRadionPopup = lradion; 
		currentValueNbGeomPopup  = nbgeom;	
		
		// convert to url string
		valueRadion = escape(valueRadion).replace(/\+/g,'%2B');
		
		// init URL du lien CSV
		$("#linkCsv").unbind();
		$("#formCsv").attr('action', urlData+'?action=csvNiveau2&organisme='+valueOrganisme+'&departement='+valueDepartement+'&commune='+valueCommune+'&milieu='+valueMilieu+'&nature='+valueNature+'&espece='+valueEspece+'&radion='+valueRadion+'&datedeb='+valueDatedeb+'&datefin='+valueDatefin+'&sd='+valueSd+'&unite='+cunite);
		$("#formCsv #the_geom").val(the_geoms);
		$("#linkCsv").click(function(){

			$("#formCsv").submit();

		});
		// init GET params
		var params = "?action=niveau2&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature+"&espece="+valueEspece+"&radion="+valueRadion+"&datedeb="+valueDatedeb+"&datefin="+valueDatefin+"&sd="+valueSd+"&unite="+cunite;

		// forcer nouveau flexgrid
		document.getElementById("data2").innerHTML =  '<table id="griddata2" style="display: none;"></table>';
			
	
		// Creer tableau de donnees
		$("#griddata2").flexigrid({
			url: urlData+params,
			geom: the_geoms,							
			dataType: 'xml',
			sortorder: 'desc',				
			colModel : [
				{display: 'Date',  				name : 'ddebmesure', width : 60,  sortable : true, align: 'center'},
				{display: 'R&eacute;sultat',    name : 'nvaleur',    width : 70,  sortable : true, align: 'center'},
				{display: 'Incertitude', 		name : 'nincert',    width : 70,  sortable : true, align: 'center'},
				{display: 'Organisme',   		name : 'corga',      width : 80,  sortable : true, align: 'left'},
				{display: 'Communes',   		name : 'nom_comm',   width : 170, sortable : true, align: 'left'},
				{display: 'Point de pr&eacute;l&egrave;vements', name : 'lptprel', width : 140, sortable : true, align: 'left'},					
				{display: 'Esp&egrave;ces',   	name : 'lespcm',  	 width : 170, sortable : true, align: 'left'},
				{display: 'Commentaires',   	name : 'lcommi',     width : 89,  sortable : true, align: 'center'}											
				],				
			usepager: true,
			title: 'R&eacute;sultat de votre recherche',
			useRp: true,
			rp: 15,
			showTableToggleBtn: false,
			//showToggleBtn: false, // genere bug IE
			striped: true,					
			width: 964,
			//width: "auto",
			height: 360, //417,
			resizable: false,
			onSuccess: function(){
				$("#griddata2 tr").each(function(i){
					var divCom = $("#griddata2 tr").eq(i).find("td").eq(7).find("div");
					var commentaire = divCom.html();

					if( commentaire != "" && commentaire != "&nbsp;" ){
						divCom.html('<img src="squelettes/img/_contenu/commentaire.png" />');
						divCom.css("padding-bottom",0);
						$(this).attr("title",commentaire);
						$(this).tooltip({
							 cssClass:"toolTip",
							 delay : 1,   // time in milliseconds that you must leave the mouse over the link until the tooltip appears
							 duration : 1,  //time in milliseconds that the tooltip will stay visible after you remove the mouse over the link
							 xOffset : 25,
							 yOffset : 25,
							 opacity : 0,
							 fadeDuration: 1
						}); 
					}	
				});

				var titleGrid = "<div id=\"maRecherche\">"+
								"  <span class='label'>Nature&nbsp;de&nbsp;pr&eacute;l&egrave;vement&nbsp;:&nbsp;</span>"+lnature+"	"+
								"  <br/>"+			
								"  <span class='label'>Mesure&nbsp;et&nbsp;unit&eacute;&nbsp;:&nbsp;</span>"+lradion+"&nbsp;en&nbsp;"+lunite+"</td>"+
				 				"</div>";		
								
				$("#maRecherche").remove();				
				$("#data2 .hDiv").before(titleGrid);
			}
		});
	
		// enable de l'onglet compartiment car nature sélectionnee
		$(".compartiment:visible").hide();
		$("#compartiment_"+valueMilieu).show();

		// ajouter le lien de navigation entre les tableaux		
		addLinksNav(the_geoms, 3);
		
		// afficher le graph
		showGraph(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, "", "", nbgeom);
		
	}	
	
	
	function showGraph(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, debut, fin, nbgeom){
		
		resetTabs2();
		
		// convert to url string
		valueRadion = escape(valueRadion).replace(/\+/g,'%2B');

		// init GET params
		var params = "?action=graph&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature+"&espece="+valueEspece+"&radion="+valueRadion+"&datedeb="+valueDatedeb+"&datefin="+valueDatefin+"&sd="+valueSd+"&unite="+cunite;
		params += "&rp=1000000000";
		params += "&datedebgraph="+debut;		
		params += "&datefingraph="+fin;
		params += "&title="+lnature+'||'+lradion+'||'+lunite;			
		params = params.replace(/\&/g,'%26');
		params = params.replace(/\+/g,'%252B'); // + => %2b => %25 2b
		
		// define if more than one "geom"
		var multigeom = (nbgeom > 1);

		if( multiselect == true || multigeom == true){
			$("#graph").empty();
			$("#graphOptions").empty();
			$("#graph").append("La repr&eacute;sentation par graphique n'est pas disponible pour une s&eacute;lection de plusieurs points de pr&eacute;l&egrave;vements.")
			
		}else{

			var titre = {
					nature : " ",
					radion : " ",
					unite : " ",
					commune	:" "
				}
				addTitleGraph(titre);			
			
			// add zone : legende + datepickers
			$('#tabs-2').append('<table id="graphOptions"><tr><td id="td-legende"><!-- legende --></td><td id="td-commentaire"><!-- legende --></td><td id="td-datepickers"><!-- datepickers --></td></tr></table>');
			
			// add dates form
			addDatesForm(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, debut, fin, nbgeom);
			
			
			// add flash graph
			var url = urlData+params;
			swfobject.embedSWF(urlSWFGraph, "graph", "95%", "100%", "9.0.0", "expressInstall.swf", {"data-file": url, "data-id": the_geoms, "loading": "Chargement, veuillez patienter ..."});
		}
		
	}
	
	function addTitleGraph(titre){

		var titleGraph = "<table>"+
						 "  <tr>"+
						 "    <td width='40%' class='title'>R&eacute;sultat&nbsp;de&nbsp;votre&nbsp;recherche</td>"+
						 "    <td width='60%'><span class='label'>Nature&nbsp;de&nbsp;pr&eacute;l&egrave;vement&nbsp;:&nbsp;</span>"+titre.nature+"</td>"+
						 "  </tr>"+
						 "  <tr>"+
						 "    <td></td>"+						 
						 "    <td><span class='label'>Mesure&nbsp;et&nbsp;unit&eacute;&nbsp;:&nbsp;</span>"+titre.radion+"&nbsp;en&nbsp;"+titre.unite+"</td>"+
						 "  </tr>";
		if( titre.commune != null && titre.commune != "" ){
		   titleGraph += "  <tr>"+
						 "    <td></td>"+							 
						 "    <td><span class='label'>Lieu&nbsp;de&nbsp;pr&eacute;l&egrave;vement&nbsp;:&nbsp;</span>"+titre.commune+"</td>"+
						 "  </tr>";
		}
		titleGraph    += "</table>";						 

		$("#graphTitle").empty();
		$("#graphTitle").append(titleGraph);
	}
	
	function addLegendGraph(producteurs, commentaire ){

		// legende
		$('#tabs-2 #graphOptions #td-legende').empty();	
		var legendeGraph = "<div id='legende'><h4 class='titre'>LEGENDE</h4><table>";
		for( index in producteurs ){
			var producteur = producteurs[index];
			if( producteur.marker != undefined ){
				legendeGraph += "<tr><th><img src='squelettes/img/" + producteur.marker + producteur.colour.replace("#","-") + ".png' alt='" + producteur.prod +"'></th><td>" + producteur.prod +"</td></tr>";
			}
		}
		legendeGraph += "<tr><th><img src='squelettes/img/cercle-plein.png'></th><td>Cercle plein : valeur significative</td></tr>";
		legendeGraph += "<tr><th><img src='squelettes/img/cercle-creux.png'></th><td>Cercle creux : valeur &lt; au seuil de d&eacute;cision</td></tr>";
		legendeGraph += "</table></div>";
		$('#tabs-2 #graphOptions #td-legende').html(legendeGraph);
		
		// commentaire
		if( commentaire == null ){ commentaire = ""; }
		$('#tabs-2 #graphOptions #td-commentaire').empty();		
		var commentaireGraph = "<div id='commentaire'>"+
							   "  <h4 class='titre'>QUELQUES&nbsp;REPERES&nbsp;...</h4>"+
							   "  <div class='contenu'><div>"+commentaire+"</div></div>"+
							   "</div>";	
		$('#tabs-2 #graphOptions #td-commentaire').html(commentaireGraph);	
		
		//$("#datadragbox").height('');
	}
	
	function addDatesForm(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, debut, fin, nbgeom){

		var formHtml =  '<form id="chooseDateForm" action="#" name="chooseDateForm" style="border:none">'+
						'  <h4 class="titre">AFFINER&nbsp;LA&nbsp;RECHERCHE&nbsp;SUR&nbsp;UNE&nbsp;PERIODE</h4>'+
						'  <table class="listeDatePicker">'+
						'    <tr><th>D&eacute;but&nbsp;:</th><td><input id="datepicker_datedeb_2" class="date-pick" type="text" value="'+ debut +'"/><a class="dp-choose-date" href="#" ></a></td></tr>'+
						'    <tr><th>Fin&nbsp;:</th><td><input id="datepicker_datefin_2" class="date-pick" type="text" value="'+ fin +'"/><a class="dp-choose-date" href="#" ></a></td></tr>'+
						'    <tr><td colspan="2" class="td-btn"><input id="datepicker_btn" class="date-btn" type="button" value="Valider"/></td></tr>'+
						'  </table>'+
						'</form>';
						//'<div id="inlineDatepicker"></div>';
		
		$('#tabs-2 #graphOptions #td-datepickers').html(formHtml);
	
		// masquer datepicker durant drag&drop
		$("#datadragbox").click(
			function (){
				$("#datepicker_datedeb_2").dpClose();
				$("#datepicker_datefin_2").dpClose();
			}
		);
		
		// init input date debut		
		$('#datepicker_datedeb_2').datePicker(/*{elementSortie : '#inlineDatepicker'}*/);
		$('#datepicker_datedeb_2').dpSetStartDate('01/01/2000');
		$('#datepicker_datedeb_2').dpSetOffset(0, 0);
		$('#datepicker_datedeb_2 + .dp-choose-date').click(		
			function (){				
				window.scrollBy(0,200);
			}
		);
		
		// init input date fin
		$('#datepicker_datefin_2').datePicker(/*{elementSortie : '#inlineDatepicker'}*/);
		$('#datepicker_datefin_2').dpSetStartDate('01/01/2000');
		$('#datepicker_datefin_2').dpSetOffset(0, 0);
		$('#datepicker_datefin_2 + .dp-choose-date').click(		
			function (){				
				window.scrollBy(0,200);
			}
		);
		
		
		$("#datepicker_datedeb_2").change( function(){
			// get value		
			var valueDatedeb = this.value;
			var valueDatefin = $("#datepicker_datefin_2").val();			
			// control date
			if ( isValidDate(valueDatedeb)==false ){
				alert("La date de d\351but n'est pas valide");
				this.value = "";
				window.setTimeout(function(){ $("#datepicker_datedeb_2").focus(); }, 100);
			}else{
				if ( isValidDate(valueDatefin) ){
					dateDebut = createDate(valueDatedeb);
					dateFin = createDate(valueDatefin);
					dateCourante = new Date();
					if( dateDebut != null && dateFin != null && dateDebut > dateFin ){
						alert("La date de d\351but doit \352tre inf\351rieure ou \351gale \340 la date de fin");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datedeb_2").focus(); }, 100);
					}else
					if( dateDebut != null && dateDebut > dateCourante ){
						alert("La date de d\351but doit \352tre inf\351rieure ou \351gale \340 la date du jour");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datedeb_2").focus(); }, 100);
					}
				}
			}
		});
		$("#datepicker_datefin_2").change( function(){
			// get value
			var valueDatedeb = $("#datepicker_datedeb_2").val();				
			var valueDatefin = this.value;
			// control date
			if ( isValidDate(valueDatefin)==false ){
				alert("La date de fin n'est pas valide");
				this.value = "";
				window.setTimeout(function(){ $("#datepicker_datefin_2").focus(); }, 100);
			}else{
				if ( isValidDate(valueDatedeb) ){
					dateDebut = createDate(valueDatedeb);
					dateFin = createDate(valueDatefin);
					dateCourante = new Date();
					if( dateDebut != null && dateFin != null && dateDebut > dateFin ){
						alert("La date de fin doit \352tre sup\351rieure ou \351gale \340 la date de d\351but");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datefin_2").focus(); }, 100);
					}else
					if( dateFin != null && dateFin > dateCourante ){
						alert("La date de fin doit \352tre inf\351rieure ou \351gale \340 la date du jour");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datefin_2").focus(); }, 100);
					}
				}
			}
		});
					
		// event bouton : appeler requete
		$("#datepicker_btn").click( function(){
			valueDatedeb = $("#datepicker_datedeb_2")[0].value;
			valueDatefin = $("#datepicker_datefin_2")[0].value;
			//sendDates();
			
			//var graphHeight= $("#graph").height();
			resetTabs2();
			showGraph(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, debut, fin, nbgeom);
			//$("#graph").height(graphHeight);
		});
	}

	function resetTabs2(){
		// effacer contenu de l'onglet
		$('#tabs-2').empty();
		$('#tabs-2').append("<div id='graphTitle'></div><div id='graphZone'><div id='graph'><a href=\"http://www.adobe.com/fr/products/flashplayer\">Flash Player est n&eacute;cessaire, pour le t&eacute;l&eacute;charger, cliquez ici.</a></div></div>");
	}
	
	
//	
//	function showDataBis( the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd){
//		
//		$("#tabs").tabs( 'destroy' );
//		initTabs();		
//		//$("#tabs").hide();
//		$("#tabs").data('disabled.tabs', [0, 1, 2, 3]);
//
//		
//		currentValueMilieuPopup  = valueMilieu;
//		currentValueNaturePopup  = valueNature;
//		
//		// convert to url string
//		valueRadion = escape(valueRadion).replace(/\+/g,'%2B');
//		
//		// init GET params
//		var params = "?action=niveau1bis&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature+"&espece="+valueEspece+"&radion="+valueRadion+"&datedeb="+valueDatedeb+"&datefin="+valueDatefin+"&sd="+valueSd;
///*			
//		$("#data").removeClass("hidden");
//
//		dataHide2 = true;
//
//		$("#data2").addClass('hidden');  // anti bug IE : ne pas utiliser .hide()
//		
//		maximizeData("#data1");		
//		$("#data2 .bDiv").hide();
//*/
//		
//		
//		$("#data").removeClass("hidden");
//		//$("#tabs ul li:eq(2)").hide();
//		
//		dataHide2 = true;
//		
//		$("#dataMinimized").addClass('hidden');
//		$("#data2").addClass('hidden');  // anti bug IE : ne pas utiliser .hide()
//		$("#graph").addClass('hidden');
//		$("#tabs").tabs('select', 0);
//		
//		maximizeData("#data1");		
//		$("#data2 .bDiv").hide();
//		
//		// forcer nouveau flexgrid
//		document.getElementById("data1").innerHTML =  '<table id="griddata1" style="display: none;"></table>';
//
//		// init tableu
//		$("#data1").show();			
//		// Creer tableau de donnees
//		$("#griddata1").flexigrid({
//			url: urlData+params,
//			geom: the_geoms,					
//			dataType: 'xml',
//			sortorder: 'asc',
//			colModel : [
//				{display: 'Nature des pr&eacute;l&egrave;vements', name : 'lnat',         width : 365, sortable : true, align: 'left'},
//				{display: 'Mesures disponibles',                   name : 'lradion',      width : 365, sortable : true, align: 'left'},
//				{display: 'Nb de producteurs',                     name : 'nbproducteur', width : 91, sortable : true, align: 'center'},
//				{display: 'Nb de mesures',                         name : 'nbmesure',     width : 80, sortable : true, align: 'center', hide: false}
//				],
//			usepager: true,
//			title: 'Points de pr&eacute;l&egrave;vement',				
//			useRp: true,
//			rp: 15,
//			showTableToggleBtn: true,
//			striped: true,					
//			width: 982,
//			height: 417,
//			resizable: false				
//		});
//		/*
//		$("#data1 .flexigrid").width('100%');
//		$("#data1 .flexigrid").height('');
//
//		if (bDiv1Height != 0) {
//			$("#data1 .bDiv").height(bDiv1Height);
//		}*/
//
//		$("#data1").height("");
//		$("#data2").height('');
//		$("#data1 .flexigrid").width('100%');
//		$("#data1 .flexigrid").height('');
//		$("#tabs").width("100%");
//		
//		$("#tabs").height(27); 	 	   
//		$("#data2").height('');
//		$("#data1").height(''); 
//		
//		if(jQuery.browser.msie && jQuery.browser.version == "7.0"){
//			if(rech_av == true){
//				$("#datadragbox").height(417);
//				$("#datadragbox").width(982);
//				rech_av = false;
//			}
//		}
//		if(dataDragBoxHeight!=0){
//			$("#datadragbox").height(dataDragBoxHeight);
//			$("#data1 .bDiv").height(dataDragBoxHeight-137);
//		}else{
//			$("#datadragbox").height('');	
//		}				
//
//
//		$("#data1 .ptogtitle").hide();		
//		majSize();
//		addLinksNav(the_geoms, 2);
//	}
	
//	function showData2(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, nbgeom){
//		
//		$("#tabs").show();
//		initTabs();
//		$("#tabs").data('disabled.tabs', []);
//
//		currentValueMilieuPopup  = valueMilieu;
//		currentValueNaturePopup  = valueNature; 
//		currentValueRadionPopup  = valueRadion; 
//		currentValueLNatPopup    = lnature;
//		currentValueCUnitePopup  = cunite;
//		currentValueLUnitePopup  = lunite;
//		currentValueLRadionPopup = lradion; 
//		currentValueNbGeomPopup  = nbgeom;	
//		
//
//		$("#linkCsv").attr('href', urlData+'?action=csvNiveau2&organisme='+valueOrganisme+'&departement='+valueDepartement+'&commune='+valueCommune+'&milieu='+valueMilieu+'&nature='+valueNature+'&espece='+valueEspece+'&radion='+valueRadion+'&datedeb='+valueDatedeb+'&datefin='+valueDatefin+'&sd='+valueSd+'&unite='+cunite+'&the_geom='+the_geoms);
//		
//		$("#tabs ul img").width('').height('');
//		
//		// convert to url string
//		valueRadion = escape(valueRadion).replace(/\+/g,'%2B');
//		
//		// init GET params
//		var params = "?action=niveau2&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature+"&espece="+valueEspece+"&radion="+valueRadion+"&datedeb="+valueDatedeb+"&datefin="+valueDatefin+"&sd="+valueSd+"&unite="+cunite;
//		
//		if($("#data2 .flexigrid").hasClass("hideBody")){
//			var refreshHeight = $("#data1 .flexigrid").height();
//		}else{
//			var refreshHeight = $("#data2 .flexigrid").height();
//		}
//		
//		var size = $("#data1").height();
//		$("#data2").removeClass('hidden');
//		$("#graph").removeClass('hidden');		
//		
//		minimizeData("#data1");
//		maximizeData("#data2");
//		$("#data2").height(size);
//		$("#data1").height(27);
//		$("#data2 .bDiv").show();
//		
//		// anti-bug CSS Firefox
//		$("#data2 table").removeClass('hidden');
//		
//		// titre tableau
//		//var title = 'Mesures <span style="color: #007f8a;font-weight: normal;">(<strong>Nature :</strong> '+lnature+', <strong>Radionucl&eacute;ide : </strong>'+lradion+', <strong>Unit&eacute; : </strong>'+lunite+')</span>';				
//		var title = "R&eacute;sultat de votre recherche";
//		if( dataOpen2 == true ){
//			if(dataHide2){
//				dataHide2 = false;
//				$("#data2").show();	
//			}		
//			// MAJ tableau de donnees
//			$("#griddata2").flexOptions({
//				url: urlData+params,
//				newp: 1,
//				geom: the_geoms	,
//				onSuccess: function(){
//				$("#griddata2 tr").each(function(i){
//					var divCom = $("#griddata2 tr").eq(i).find("td").eq(7).find("div");
//					var commentaire = divCom.html();
//					if( commentaire != "" && commentaire != "&nbsp;" ){
//						divCom.html('<img src="squelettes/img/_contenu/commentaire.png" />');
//						divCom.css("padding-bottom",0);
//						$(this).attr("title",commentaire);
//						$(this).tooltip({
//							 cssClass:"toolTip",
//							 delay : 1,   // time in milliseconds that you must leave the mouse over the link until the tooltip appears
//							 duration : 1,  //time in milliseconds that the tooltip will stay visible after you remove the mouse over the link
//							 xOffset : 25,
//							 yOffset : 25,
//							 opacity : 0,
//							 fadeDuration: 1
//						}); 
//					}	
//				});
//				$("#griddata2").prepend("<tr id=\"maRecherche\"><td colspan=\"8\">Nature : "+lnature+"<br/>Radionucl&eacute;ide : "+lradion+"<br/>Unit&eacute; : "+lunite+"</td></tr>");
//
//			}
//			}).flexReload();
//			if(dataDragBoxHeight != 0)
//				$("#datadragbox").height(dataDragBoxHeight);
//				
//			$(".flexigrid").height('');
//			$("#data2").height('');	
//			$("#data2 .bDiv").height($("#datadragbox").height()-164);	
//
//			
//		}else{
//
//			$("#data2").show();	
//		
//			dataOpen2 = true;
//			// Creer tableau de donnees
//			$("#griddata2").flexigrid({
//				url: urlData+params,
//				geom: the_geoms,							
//				dataType: 'xml',
//				sortorder: 'desc',				
//				colModel : [
//					{display: 'Date',  				name : 'ddebmesure', width : 55,  sortable : true, align: 'center'},
//					{display: 'R&eacute;sultat',    name : 'nvaleur',    width : 70,  sortable : true, align: 'center'},
//					{display: 'Incertitude', 		name : 'nincert',    width : 60,  sortable : true, align: 'center'},
//					{display: 'Organisme',   		name : 'corga',      width : 90,  sortable : true, align: 'left'},
//					{display: 'Communes',   		name : 'nom_comm',   width : 184, sortable : true, align: 'left'},
//					{display: 'Point de pr&eacute;l&egrave;vements',   	name : 'lptprel',  	 width : 140, sortable : true, align: 'left'},					
//					{display: 'Esp&egrave;ces',   	name : 'lespcm',  	 width : 184, sortable : true, align: 'left'},
//					{display: 'Commentaires',   	name : 'lcommi',     width : 70,  sortable : true, align: 'center'}											
//					],				
//				usepager: true,
//				title: title,				
//				useRp: true,
//				rp: 15,
//				showTableToggleBtn: true,
//				striped: true,					
//				width: 982,
//				height: 417,
//				resizable: false,
//				onSuccess: function(){
//					$("#griddata2 tr").each(function(i){
//						var divCom = $("#griddata2 tr").eq(i).find("td").eq(7).find("div");
//						var commentaire = divCom.html();
//
//						if( commentaire != "" && commentaire != "&nbsp;" ){
//							divCom.html('<img src="squelettes/img/_contenu/commentaire.png" />');
//							divCom.css("padding-bottom",0);
//							$(this).attr("title",commentaire);
//							$(this).tooltip({
//								 cssClass:"toolTip",
//								 delay : 1,   // time in milliseconds that you must leave the mouse over the link until the tooltip appears
//								 duration : 1,  //time in milliseconds that the tooltip will stay visible after you remove the mouse over the link
//								 xOffset : 25,
//								 yOffset : 25,
//								 opacity : 0,
//								 fadeDuration: 1
//							}); 
//						}	
//					});
//					$("#griddata2").prepend("<tr id=\"maRecherche\"><td colspan=\"8\">Nature : "+lnature+"<br/>Radionucl&eacute;ide : "+lradion+"<br/>Unit&eacute; : "+lunite+"</td></tr>");
//				}
//			});
//			$("#data2 .flexigrid").width('100%');
//			$("#data2 .flexigrid").height('');
//			if (bDiv1Height != 0) {
//				$("#data2").height('');
//				$("#data2 .bDiv").height(bDiv1Height-26);
//			}
//			$("#datadragbox").height(dataDragBoxHeight);
//		}
//		
//		$("#griddata2").prepend("<tr id=\"maRecherche\"><td colspan=\"8\" style=\"color: white;font-weight: bold;\">"+title+"</td></tr>");
//
//		//enable de l'onglet compartiment car nature sélectionné
//		$(".compartiment:visible").hide();
//		$("#compartiment_"+valueMilieu).show();
//		//$("#tabs ul li:eq(2)").show();
//		
//		$("#data2 .ptogtitle").hide();
//		$("#data2 .ptogtitle").click (
//			function (){
//				if( $(this).hasClass("vsble") ){
//					
//					$("#graph").addClass('hidden');
//					$("#tabs").tabs('select', 0);				
//					
//					// anti-bug CSS Firefox
//					$("#data2 table").addClass('hidden');
//					
//					// if #data2 is minimize
//					maximizeData("#data1");
//					$("#data1").height(data2Height);
//					$("#data1 .bDiv").height(dataDragBoxHeight-165);
//					$("#data1 .flexigrid").height('');
//					$("#data2").height(27);
//					$("#tabs").height('');
//					$("#tabs-1").height('');
//					$("#data2 .bDiv").hide();
//				}else{
//					
//					data1Height = $("#data1").height();
//					
//					$("#graph").removeClass('hidden');	
//					
//					$("#data2 table").removeClass('hidden');
//					
//					// if #data2 is maximize
//					minimizeData("#data1");	
//					$("#data2").height('');
//					$("#data1").height(27);
//					$("#data2 .flexigrid").height('');
//					$("#data2 .bDiv").height(dataDragBoxHeight-165);
//					$("#data2 .bDiv").show();	
//				}
//
//			}
//		);	
//		
//		majSize();
//		
//		addLinksNav(the_geoms, 3);
//		
//		showGraph(the_geoms, valueOrganisme, valueDepartement, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd, lnature, cunite, lunite, lradion, "", "", nbgeom);
//		if ( nbgeom < 2){
//			$("#tabs ul li:eq(1)").removeClass("ui-tabs-disabled");
//			$("#tabs").tabs('select', 1);			
//			$("#datadragbox").height('');
//			$(".pReload").eq(1).trigger("click");
//		}else{
//			$("#tabs").tabs('select', 0);
//			$("#tabs ul li:eq(1)").addClass("ui-tabs-disabled");			
//		}	
//	}
	
	
	function minimizeData(idData){	
			
		$(idData+" .flexigrid").addClass('hideBody');
		//$(idData+" .ptogtitle").addClass('vsble');
	}
	
	function maximizeData(idData){
		
		$(idData+" .flexigrid").removeClass('hideBody');
		//$(idData+" .ptogtitle").removeClass('vsble');
	}	
	
	
	function addLinksNav(the_geoms, currentStep){
		
		var jsBack = null;
		var jsNext = null;
		
		if( currentStep == 1 ){
			
			//precedent => disable
			
			//suivant	=> disable / showData(true, current+memory)
//			if( currentValueNaturePopup != null ){
//				jsNext = 'showData(true, \''+the_geoms+'\', \''+currentValueOrganisme+'\', \''+currentValueDepartement+'\', \''+currentValueCommune+'\', \''+currentValueMilieuPopup+'\', \''+currentValueNaturePopup+'\', \''+currentValueEspece+'\', \''+currentValueRadion+'\', \''+currentValueDatedeb+'\', \''+currentValueDatefin+'\', \''+currentValueSd+'\')';
//			}			
			
		}else
		if( currentStep == 2 ){		
		
			//precedent => showData(current)
			jsBack = function(){
						showData(false, the_geoms, currentValueOrganisme, currentValueDepartement, currentValueCommune, currentValueMilieu, currentValueNature, currentValueEspece, currentValueRadion, currentValueDatedeb, currentValueDatefin, currentValueSd);
					 };
					 
			//suivant	=> disable / showData2(current+memory)
//			if( currentValueRadionPopup != null ){
//				jsNext = 'showData2(\''+the_geoms+'\', \''+currentValueOrganisme+'\', \''+currentValueDepartement+'\', \''+currentValueCommune+'\', \''+currentValueMilieuPopup+'\', \''+currentValueNaturePopup+'\', \''+currentValueEspece+'\', \''+currentValueRadionPopup+'\', \''+currentValueDatedeb+'\', \''+currentValueDatefin+'\', \''+currentValueSd+'\', \''+currentValueLNatPopup+'\', \''+currentValueCUnitePopup+'\', \''+currentValueLUnitePopup+'\', \''+currentValueLRadionPopup+'\',  \''+currentValueNbGeomPopup+'\')';
//			}
			
		}else
		if( currentStep == 3 ){			
			//precedent => showData(true, current+memory)
			jsBack = function(){
				$("#data2 .ptogtitle").trigger("click");
				
				showData(true, the_geoms, currentValueOrganisme, currentValueDepartement, currentValueCommune, currentValueMilieuPopup, currentValueNaturePopup, currentValueEspece, currentValueRadion, currentValueDatedeb, currentValueDatefin, currentValueSd);				
				
				//addLinksNav(the_geoms, 2);
			 };
			
			//suivant	=> disable	
		}
			
		$("#data1 #linksNav").remove();
		$("#data1 .ftitle").after('<div id="linksNav"></div>');
		if( jsBack != null ){
			$("#data1 #linksNav").append('<span id="linkNavBack"><a href="#" title="Retour &agrave; l\'&eacute;tape pr&eacute;c&eacute;dente"><strong style="font-size: 14px; font-family: Arial Unicode MS,Arial,sans-serif">&laquo;</strong>&nbsp;Etape&nbsp;pr&eacute;c&eacute;dente</a></span>');
			$("#data1 #linksNav #linkNavBack").click(jsBack);
		}
//		if( jsBack != null && jsNext != null ){
//			$("#data1 #linksNav").append('&nbsp;&nbsp;');
//		}
//		if( jsNext != null ){
//			$("#data1 #linksNav").append('<span id="linkNavNext"><a href="#" onclick="javascript:'+jsNext+'">Etape&nbsp;suivante&nbsp;&gt;&gt;</a></span>');		
//		}
		
	}
	
	

	function coucheSelect(input){
	
		// masquer/afficher la couche selectionnee
		if( input.value == "SitesNucleaires_1"
		||  input.value == "SitesNucleaires_2"
		||  input.value == "SitesNucleaires_3"
		||  input.value == "SitesNucleaires_4"				
		||  input.value == "SitesNucleaires_5"
		||  input.value == "SitesNucleaires_6"
		||  input.value == "SitesNucleaires_7"				
		){
			
			// disable forms during load
			disableCheckboxSitesNucleaires();			
			
			// get index
			var index = input.value.replace("SitesNucleaires_","") - 1;
			
			// set state
			viewTypeSiteNucleaire[index] = input.checked;
			
			// generate filter
			var type = "";
			var i = 0;
			var max = viewTypeSiteNucleaire.length - 1;
			var separator = "";
			for( i=0; i<=max; i++ ){
				if( viewTypeSiteNucleaire[i] ){
					type += separator + (i+1) ;
					separator = ",";
				}
			}			

			// update layer
			wfsSitesNucleaires_8000k.destroy(); // destroy implique le remove
			wfsSitesNucleaires_8000k = initWfsSitesNucleaires("8000",0,0,type);
			map.addLayer(wfsSitesNucleaires_8000k);
			wfsSitesNucleaires_8000k.redraw();

			wfsSitesNucleaires_4000k.destroy(); // destroy implique le remove
			wfsSitesNucleaires_4000k = initWfsSitesNucleaires("4000",1,1,type);
			map.addLayer(wfsSitesNucleaires_4000k);
			wfsSitesNucleaires_4000k.redraw();

			wfsSitesNucleaires_1000k.destroy(); // destroy implique le remove
			wfsSitesNucleaires_1000k = initWfsSitesNucleaires("1000",2,2,type);
			map.addLayer(wfsSitesNucleaires_1000k);
			wfsSitesNucleaires_1000k.redraw();				

			wfsSitesNucleaires_500k.destroy(); // destroy implique le remove
			wfsSitesNucleaires_500k = initWfsSitesNucleaires("500",3,3,type);
			map.addLayer(wfsSitesNucleaires_500k);
			wfsSitesNucleaires_500k.redraw();

			wfsSitesNucleaires_250k.destroy(); // destroy implique le remove
			wfsSitesNucleaires_250k = initWfsSitesNucleaires("250",4,4,type);			
			map.addLayer(wfsSitesNucleaires_250k);
			wfsSitesNucleaires_250k.redraw();				

			wfsSitesNucleaires_100k.destroy(); // destroy implique le remove
			wfsSitesNucleaires_100k = initWfsSitesNucleaires("100",5,7,type);			
			map.addLayer(wfsSitesNucleaires_100k);
			wfsSitesNucleaires_100k.redraw();	
			
			// refresh Popup
			sfPopup.destroy();
			initPopupWfs();			
		}	
	}
	
	
	function initWfsSitesNucleaires(layer,levelMax,levelMin,type){		
		
		var bbox = config.maxextent.toBBOX();
		
	    var wfsSitesNucleaires = new OpenLayers.Layer.Vector(
	    	"Sites Nucleaires ("+layer+"k)", {
	    	strategies:[ new OpenLayers.Strategy.Fixed() ], 
	        protocol: new OpenLayers.Protocol.HTTP({
	            //url: urlMapfile+"sitesnucleaires_utf8.map",
	        	url: urlCgiPhp+"sitesnucleaires",
	            format: new OpenLayers.Format.GML(),
	            params: {
	                format: "WFS",
	                service: "WFS",
	                request: "GetFeature",
	                srs: config.srs,
	                version : "1.1.0",
	                typename : "sitesnucleaires",
	                TYPE: type,
	                LEVEL: layer, 
	                bbox: bbox
	       		}
	        }),
	        styleMap: styleMapSitesNucleaires,
	        maxResolution: config.resolutions[levelMax],
			minResolution: config.resolutions[levelMin]            
	    });
	    
	    wfsSitesNucleaires.events.register('loadend', null, enableCheckboxSitesNucleaires );		    
		    
	    return wfsSitesNucleaires;
	}
	
	function enableCheckboxSitesNucleaires(){
		var i;
		for( i=1; i<=7; i++ ){
			$("#check_coucheSitesNucleaires_"+i).attr("disabled", false);
		}
	}
	
	function disableCheckboxSitesNucleaires(){
		var i;
		for( i=1; i<=7; i++ ){
			$("#check_coucheSitesNucleaires_"+i).attr("disabled", true);
		}
	}	

	
	function compartimentSelect(input){
	
		// reset current state
		currentValueOrganisme   = "";
		currentValueDepartement = "";
		currentValueCommune     = "";					
		currentValueMilieu      = "";					
		currentValueNature      = "";					
		currentValueEspece      = "";					
		currentValueRadion      = "";
		currentValueDatedeb     = "";
		currentValueDatefin     = "";
		currentValueSd          = "";	
		
		// save state compartiments
		compartiments[input.value] = input.checked;
		
		// init params
		params = getCompartimentsParams();

		if( params != "all" ){
			currentValueMilieu = params;
		}
		
		// refresh wfs with new compartiments
		wfsPrelevements.mergeNewParams( {
			"simple" :        "true",
			"compartiments" : params,
			"organisme" :     "",
			"departement" :   "",
			"commune" :       "",
			"milieu" :        "",
			"nature" :        "",
			"espece" :        "",
			"radion" :        "",
			"datedeb" :       "",
			"datefin" :       "",
			"sd" :            ""
		});	

		wmsPrelevements.mergeNewParams( {
			"simple" :        "true",
			"compartiments" : params,
			"organisme" :     "",
			"departement" :   "",
			"commune" :       "",
			"milieu" :        "",
			"nature" :        "",
			"espece" :        "",
			"radion" :        "",
			"datedeb" :       "",
			"datefin" :       "",
			"sd" :            ""
		});		
	}
	
	
	function getCompartimentsParams(){
	
		var value = "";
		var separator = "";
		var all = true;
		
		for ( i in compartiments) {
			if( compartiments[i] == true ){
				// append to value
				value = value + separator +i;
				separator = ",";
			}else{
				all = false;
			}
		}
		
		if( all == true ){
			return "all";
		}else{
			return value;
		}
	}

	function switchMode(mode){
		
		// if no change
		if( currentMode == mode){
			return true;
		}

		lastCurrentMode = currentMode;
		currentMode = mode;

		// antibug IE6
		elementBtnZoom.attr("style",   elementBtnZoom.attr("style").replace("FILTER:","NOFILTER:") );
        elementBtnMove.attr("style",   elementBtnMove.attr("style").replace("FILTER:","NOFILTER:") );
        elementBtnSelect.attr("style", elementBtnSelect.attr("style").replace("FILTER:","NOFILTER:") );        
		
        // switch state mode
		if( mode == "zoom"){
			// switch button
			elementBtnZoom.addClass("olBtnZoomActive");			
			elementBtnMove.removeClass("olBtnMoveActive");
			elementBtnSelect.removeClass("olBtnSelectActive");

			// swith control		
			moveControl.activate(); // on laisse active pour le zoom roulette
			zoomControl.activate();
			clickNiveauWMSControl.deactivate();
			selectNiveauWMSControl.deactivate();
			selectNiveauWFSControl.deactivate();	
		}else        
		if( mode == "move"){
			// switch button
			elementBtnZoom.removeClass("olBtnZoomActive");			
			elementBtnMove.addClass("olBtnMoveActive");
			elementBtnSelect.removeClass("olBtnSelectActive");

			// swith control		
			moveControl.activate();
			zoomControl.deactivate();
			clickNiveauWMSControl.activate();
			selectNiveauWMSControl.deactivate();
			selectNiveauWFSControl.deactivate();
		}else
		if( mode == "select"){
			// switch button
			elementBtnZoom.removeClass("olBtnZoomActive");			
			elementBtnMove.removeClass("olBtnMoveActive");
			elementBtnSelect.addClass("olBtnSelectActive");

			// swith control		
			moveControl.activate(); // on laisse active pour le zoom roulette
			zoomControl.deactivate();
			clickNiveauWMSControl.deactivate();
			if( niveau == 1 ){
				selectNiveauWMSControl.activate();
				selectNiveauWFSControl.deactivate();
			}else
			if( niveau == 2 ){
				selectNiveauWMSControl.deactivate();				
				selectNiveauWFSControl.activate();
			}	
		}
		if( mode == "loading"){
			
			// switch button
			elementBtnZoom.removeClass("olBtnZoomActive");			
			elementBtnMove.removeClass("olBtnMoveActive");
			elementBtnSelect.removeClass("olBtnSelectActive");
			
			// swith control		
			moveControl.deactivate();
			zoomControl.deactivate();
			clickNiveauWMSControl.deactivate();
			selectNiveauWMSControl.deactivate();
			selectNiveauWFSControl.deactivate();
		}
	}
		
	// Init load status
	var loadingSelect = new Array(7); // liste des select	
	loadingSelect["#select_organisme"]   = 0;
	loadingSelect["#select_departement"] = 0;
	loadingSelect["#select_commune"]     = 0;
	loadingSelect["#select_milieu"]      = 0;
	loadingSelect["#select_nature"]      = 0;
	loadingSelect["#select_espece"]      = 0;
	loadingSelect["#select_radion"]      = 0;	

	function initForms() {

		// Init datepickers
		$('#datepicker_datedeb').datePicker();
		//$('#datepicker_datedeb').dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_LEFT);
		$('#datepicker_datedeb').dpSetStartDate('01/01/2000');
		$('#datepicker_datedeb').dpSetPosition(1,1);
		if(jQuery.browser.msie){
			$('#datepicker_datedeb').dpSetOffset(-15, 90);
		}
		
		$('#datepicker_datefin').datePicker();
		$('#datepicker_datefin').dpSetStartDate('01/01/2000');
		$('#datepicker_datefin').dpSetPosition(1,1);
		if(jQuery.browser.msie){
			$('#datepicker_datefin').dpSetOffset(-15, 90);
		}		
		
		// Init listes
		defaultValue = "Tous";	
		ajaxInitSelect("#select_organisme", urlData, "type=list&action=organisme", defaultValue);
		ajaxInitSelect("#select_departement", urlData, "type=list&action=departement", defaultValue);	
		ajaxInitSelect("#select_commune", urlData, "type=list&action=commune", defaultValue);
		ajaxInitSelect("#select_milieu", urlData, "type=list&action=milieu", defaultValue);
		ajaxInitSelect("#select_nature", urlData, "type=list&action=nature", defaultValue);
		ajaxInitSelect("#select_espece", urlData, "type=list&action=espece", defaultValue);
		ajaxInitSelect("#select_radion", urlData, "type=list&action=radion", defaultValue);								
		
		// Init valeurs selectionnees
		var valueOrganisme = "";
		var valueDepartement = "";
		var valueDepartement2 = "";	//TODO remplacer iddept par labeldept comme identifiant unique	
		var valueCommune = "";					
		var valueMilieu  = "";					
		var valueNature  = "";					
		var valueEspece  = "";					
		var valueRadion  = "";
		var valueDatedeb = "";
		var valueDatefin = "";
		var valueSd      = "";							

		// Init events cascade

		$("#select_organisme").change( function(){
			// get value
			valueOrganisme = $("#select_organisme_input_hidden").val();

			// load cascade
			ajaxInitSelect("#select_departement", urlData, "type=list&action=departement&organisme="+valueOrganisme, defaultValue);
			
		});				
		$("#select_departement").change( function(){
			// get value
			valueDepartement = $("#select_departement_input_hidden").val();
			valueDepartement2 = $("#select_departement_container #"+valueDepartement).html();
			
			// load cascade
			ajaxInitSelect("#select_commune", urlData, "type=list&action=commune&organisme="+valueOrganisme+"&departement="+valueDepartement, defaultValue);
			
		});
		$("#select_commune").change( function(){
			// get value
			valueCommune = $("#select_commune_input_hidden").val();		
	
			// load cascade
			ajaxInitSelect("#select_milieu", urlData, "type=list&action=milieu&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune, defaultValue);
			
		});			 
		$("#select_milieu").change( function(){
			// get value
			valueMilieu= $("#select_milieu_input_hidden").val();	
	
			// load cascade
			ajaxInitSelect("#select_nature", urlData, "type=list&action=nature&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu, defaultValue);
			
		});
		$("#select_nature").change( function(){
			// get value
			valueNature= $("#select_nature_input_hidden").val();
	
			// load cascade
			ajaxInitSelect("#select_espece", urlData, "type=list&action=espece&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature, defaultValue);
			
		});
		$("#select_espece").change( function(){
			// get value		
			valueEspece= $("#select_espece_input_hidden").val();	
	
			// load cascade
			ajaxInitSelect("#select_radion", urlData, "type=list&action=radion&organisme="+valueOrganisme+"&departement="+valueDepartement+"&commune="+valueCommune+"&milieu="+valueMilieu+"&nature="+valueNature+"&espece="+valueEspece, defaultValue);
			
		});
		$("#select_espece").change( function(){
			// get value		
			valueRadion= $("#select_radion_input_hidden").val();			
		});

		$("#button_carte").click( function(){
		
			// get current state			
			valueOrganisme   = $("#select_organisme_input_hidden").val();
			valueDepartement = $("#select_departement_input_hidden").val();
			valueCommune     = $("#select_commune_input_hidden").val();				
			valueMilieu      = $("#select_milieu_input_hidden").val();				
			valueNature      = $("#select_nature_input_hidden").val();					
			valueEspece      = $("#select_espece_input_hidden").val();					
			valueRadion      = $("#select_radion_input_hidden").val();
			valueDatedeb     = $("#datepicker_datedeb")[0].value;
			valueDatefin     = $("#datepicker_datefin")[0].value;	
			
			// save current state
			currentValueOrganisme   = valueOrganisme;
			currentValueDepartement = valueDepartement;
			currentValueCommune     = valueCommune;					
			currentValueMilieu      = valueMilieu;					
			currentValueNature      = valueNature;					
			currentValueEspece      = valueEspece;					
			currentValueRadion      = valueRadion;
			currentValueDatedeb     = valueDatedeb;
			currentValueDatefin     = valueDatefin;
			currentValueSd          = valueSd;				
			
			// convert to url string			
			if (valueRadion.lastIndexOf("*plus*") != -1){
				valueRadion = escape(valueRadion).replace('*plus*','+');
			}else{	
				valueRadion = escape(valueRadion).replace(/\+/g,'%2B');		
			}			
			
			// update map
			updateMap(valueOrganisme,valueDepartement,valueDepartement2,valueCommune,valueMilieu,valueNature,valueEspece,valueRadion,valueDatedeb,valueDatefin,valueSd);
		});
		
		$("#button_tableau").click( function(){
			
			valueOrganisme =   $("#select_organisme_input_hidden").val();
			valueDepartement = $("#select_departement_input_hidden").val();
			valueCommune =     $("#select_commune_input_hidden").val();				
			valueMilieu =      $("#select_milieu_input_hidden").val();				
			valueNature =      $("#select_nature_input_hidden").val();					
			valueEspece =      $("#select_espece_input_hidden").val();					
			valueRadion =      $("#select_radion_input_hidden").val();
			valueDatedeb =     $("#datepicker_datedeb")[0].value;
			valueDatefin =     $("#datepicker_datefin")[0].value;
	
			// save current state
			currentValueOrganisme   = valueOrganisme;
			currentValueDepartement = valueDepartement;
			currentValueCommune     = valueCommune;					
			currentValueMilieu      = valueMilieu;					
			currentValueNature      = valueNature;					
			currentValueEspece      = valueEspece;					
			currentValueRadion      = valueRadion;
			currentValueDatedeb     = valueDatedeb;
			currentValueDatefin     = valueDatefin;
			currentValueSd          = valueSd;				
			
			showData(false, null,valueOrganisme,valueDepartement,valueCommune,valueMilieu,valueNature,valueEspece,valueRadion,valueDatedeb,valueDatefin,valueSd);
		});	
								 
		// Other events on form
		$("#datepicker_datedeb").change( function(){
			// get value		
			var valueDatedeb = this.value;
			var valueDatefin = $("#datepicker_datefin").val();
			// control date
			if ( isValidDate(valueDatedeb)==false ){
				alert("La date de d\351but n'est pas valide");
				this.value = "";
				window.setTimeout(function(){ $("#datepicker_datedeb").focus(); }, 100);
			}else{
				if ( isValidDate(valueDatefin) ){
					dateDebut = createDate(valueDatedeb);
					dateFin = createDate(valueDatefin);
					dateCourante = new Date();
					if( dateDebut != null && dateFin != null && dateDebut > dateFin ){
						alert("La date de d\351but doit \352tre inf\351rieure ou \351gale \340 la date de fin");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datedeb").focus(); }, 100);
					}else
					if( dateDebut != null && dateDebut > dateCourante ){
						alert("La date de d\351but doit \352tre inf\351rieure ou \351gale \340 la date du jour");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datedeb").focus(); }, 100);
					}
				}
			}
		});
		
		$("#datepicker_datefin").change( function(){
			// get value		
			var valueDatedeb = $("#datepicker_datedeb").val();			
			var valueDatefin = this.value;
			// control date
			if ( isValidDate(valueDatefin)==false ){
				alert("La date de fin n'est pas valide");
				this.value = "";
				window.setTimeout(function(){ $("#datepicker_datefin").focus(); }, 100);
			}else{
				if ( isValidDate(valueDatedeb) ){
					dateDebut = createDate(valueDatedeb);
					dateFin = createDate(valueDatefin);
					dateCourante = new Date();
					if( dateDebut != null && dateFin != null && dateDebut > dateFin ){
						alert("La date de fin doit \352tre sup\351rieure ou \351gale \340 la date de d\351but");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datefin").focus(); }, 100);
					}else
					if( dateFin != null && dateFin > dateCourante ){
						alert("La date de fin doit \352tre inf\351rieure ou \351gale \340 la date du jour");				
						this.value = "";
						window.setTimeout(function(){ $("#datepicker_datefin").focus(); }, 100);
					}
				}
			}
		});		
/*		
		$("#check_sd").change( function(){
			// get value		
			valueSd = this.checked;
		});
*/		
	}
	

	/**
	 * Fonction qui verifie qu'une date est valide
	 * @param date au format chaine (jj/mm/aaaa)
	 * @return Retourne vrai si la date est valide
	 */	
	function isValidDate(jjmmaaaa) {
		
		if ( jjmmaaaa==null || jjmmaaaa=="" || jjmmaaaa=="undefined" ){
			return true;
		}
		
		jjmmaaaa = jjmmaaaa.split("/");
		
		if (jjmmaaaa.length != 3){
			return false;
		}
		
		var jj   = jjmmaaaa[0];
		var mm   = jjmmaaaa[1];
		var aaaa = jjmmaaaa[2];
		
		if (jj=="" || mm=="" || aaaa=="" ||
			jj.length > 2 || mm.length > 2 || aaaa.length > 4 ||
			isNaN(parseInt(jj)) || isNaN(parseInt(mm)) || isNaN(parseInt(aaaa))
		){
			return false;
		}
		
		// Creation de la date correspondante (nb: les mois = 0 à 11)
		var newDate = new Date(eval(aaaa),eval(mm)-1,eval(jj));
		
		// Mise de l'année sur 4 chiffres (si sur 2 chiffres)
		var annee = newDate.getYear();
		if ((Math.abs(annee)+"").length < 4){
			annee = annee + 1900;
		}
		
		// Vérification de la date générée
		return (
				(newDate.getDate() == eval(jj))
				&& (newDate.getMonth() == eval(mm-1))
				&& (annee == eval(aaaa) )
		) ; 
	}


	/**
	 * 
	 * Fonction qui format une date String en Date
	 * @param date au format chaine (jj/mm/aaaa)
	 * @return Retourne un objet Date
	 */
	function createDate(jjmmaaaa) {
		
		if (jjmmaaaa==null|| jjmmaaaa=="" || jjmmaaaa=="undefined"){
			return null;
		}
		
		jjmmaaaa = jjmmaaaa.split("/");
		
		if (jjmmaaaa.length != 3){
			return false;
		}
		
		var jj   = jjmmaaaa[0];
		var mm   = jjmmaaaa[1];
		var aaaa = jjmmaaaa[2];
		
		if (jj=="" || mm=="" || aaaa=="" ||
			jj.length > 2 || mm.length > 2 || aaaa.length > 4 ||
			isNaN(parseInt(jj)) || isNaN(parseInt(mm)) || isNaN(parseInt(aaaa))
		){
			return false;
		}
		
		// Creation de la date correspondante (nb: les mois = 0 à 11)
		var newDate = new Date(eval(aaaa),eval(mm)-1,eval(jj));
		
		// Mise de l'année sur 4 chiffres (si sur 2 chiffres)
		var annee = newDate.getYear();
		if ((Math.abs(annee)+"").length < 4){
			annee = annee + 1900;
		}
		
		// Vérification de la date générée
		if ( newDate.getDate() == eval(jj) && newDate.getMonth() == eval(mm-1) && annee == eval(aaaa) ){
			return newDate;
		}else{
			return false;
		}
	}

	
	/**
	 * init an element <select> whith elements <option>
	 * @selectId Id of element <select>
	 * @url Url for Ajax request
	 * @params (optional) Parameters for Ajax request (eg. param=1...&param2=...)
	 * @defaultValue (optional) Default value
	 */
	 function ajaxInitSelect(selectId, url, params, defaultValue) {

		var element = $(selectId);
		element.addClass("disabled");
		
		// mark as last loading
		var randomKey = Math.random();		
		loadingSelect[selectId] = randomKey;

		if( url != null ){
			var valCourante = $(selectId+"_input_hidden").val();		
			var conserverValCourante = false;
			$.getJSON(
				url, 
				params, 
				function(result) {
	
					// check if it's the last loading
					if( loadingSelect[selectId] == randomKey ){	
					
						// foreach result add an <option> in select
						var results = result.results

						$(selectId+"_container").empty();	
						//alert($(selectId+"_input").val());					
						var test = "";
						

						var ul ="<ul>";
							ul+="<li class=\"selected\" onclick=\"javascript: selectValue(this,'"+selectId+"');\" onmouseover=\"javascript: selectOver(this);\" onmouseout=\"javascript: selectOut(this);\" style=\"border-top: none;\">"+defaultValue+"</li>";
						for( key in results ){
							var o = results[key];
							var id = o.id;
							if(id == valCourante){
								defaultValue = o.name.substring(0,14);
								conserverValCourante = true;
							}
							id = id.replace(/\+/g,'*plus*'); 
							ul += "<li id=\""+id+"\" onclick=\"javascript: selectValue(this,'"+selectId+"');\" onmouseover=\"javascript: selectOver(this);\" onmouseout=\"javascript: selectOut(this);\">"+o.name+"</li>";
							test += "[\""+id+"\",\""+o.name+"\"],"
						}
						ul += "</ul>";
						$(selectId+"_container").append(ul);
						element.removeClass("disabled");
						$(selectId+"_input").val(defaultValue);
						if( !conserverValCourante )
							$(selectId+"_input_hidden").val('');

					}
				} 
			); 
			
		}else{
			element.removeClass("disabled");
		}	
	
		// trigger change for cascade next
		element.trigger("change");	
	}
	
	 
	function createOption(value, text) {
		return '<option value="'+value+'"><img src="images/load.gif" />'+text+'</option>';
	}

	
	function updateMap(valueOrganisme, valueDepartement, valueDepartement2, valueCommune, valueMilieu, valueNature, valueEspece, valueRadion, valueDatedeb, valueDatefin, valueSd){

		// Si selection d'un departement ou d'une commune, zoomer dessus
		if( (valueDepartement2!=null && valueDepartement2!="") || (valueCommune!=null && valueCommune!="") ){
			
			if( valueDepartement2!=null && valueDepartement2!="" ){
				// effacer le numero de departement dans le libelle (ex. "FINISTERE (29)" => "FINISTERE")
				valueDepartement2 = valueDepartement2.replace(/^(.)(.)(.)?-/,'');
			}
			
			// Init zone a afficher et sa projection
			var srs  = "";
			var zone = "";	
			if( valueDepartement2 == "GUADELOUPE" ||
				valueDepartement2 == "MARTINIQUE" ||
				valueDepartement2 == "GUYANE" ||
				valueDepartement2 == "LA REUNION" ||
				valueDepartement2 == "MAYOTTE" ||
				valueDepartement2 == "NOUVELLE CALEDONIE" ||
				valueDepartement2 == "POLYNESIE" ||
				valueDepartement2 == "SAINT PIERRE ET MIQUELON" ){
				
				// DOM/TOM
				for( idMapsConfig in mapsConfig ){
					mapConfig = mapsConfig[idMapsConfig];
					if( mapsConfig[idMapsConfig].select == valueDepartement2 ){
						srs = mapConfig.srs;
						zone = idMapsConfig;
					}
				}
				
			}else{
				// METROPOLE (par defaut)
				srs = mapsConfig["metropole"].srs;	
				zone = "metropole";
			}
			
			// Format projection
			srs = srs.replace("EPSG:","");
			
			// Changer de carte (si necessaire)
			if( currentZone != zone){
				$("#select_zone").val(zone);
				changeMap(zone, false);
			}
			
			// Init params URL
			if( valueCommune!=null && valueCommune!="" ){
				var params = "type=geo&action=commune&commune="+valueCommune+"&srid="+srs;
			}else{
				var params = "type=geo&action=departement&departement="+valueDepartement2+"&srid="+srs;
			}
			
			// Charger la position Geo de la zone et zoomer dessus
			$.getJSON(
				urlData, 
				params, 
				function(result) {
					// Conversion JSON vers Objet JS
					var bounds = eval(result.results);
					// Zoom sur la zone (si metropole)
					if( zone == "metropole" ){
						// zoomer sur la zone
						map.zoomToExtent(bounds);
						// forcer le zoom au niveau 2 (si zoom trop haut)
						if( map.getZoom() < 2 ){
							map.setCenter(bounds.getCenterLonLat(),2);
						}
					}
				}
			);					
		}else{
		
			// si aucun département et aucune commune sélectionné, alors recentrer sur la France.
			if( currentZone == "metropole" ){
				map.zoomTo(0);
			}
		}
			
		// refresh wfs with new params
		wfsPrelevements.mergeNewParams( {
			"simple" :        "false",		
			"compartiments" : "",			
			"organisme" :     valueOrganisme,
			"departement" :   valueDepartement,
			"commune" :       valueCommune,
			"milieu" :        valueMilieu,
			"nature" :        valueNature,
			"espece" :        valueEspece,
			"radion" :        valueRadion,
			"datedeb" :       valueDatedeb,
			"datefin" :       valueDatefin,
			"sd" :            valueSd		
		});

		wmsPrelevements.mergeNewParams( {
			"simple" :        "false",			
			"compartiments" : "",		
			"organisme" :     valueOrganisme,
			"departement" :   valueDepartement,
			"commune" :       valueCommune,
			"milieu" :        valueMilieu,
			"nature" :        valueNature,
			"espece" :        valueEspece,
			"radion" :        valueRadion,
			"datedeb" :       valueDatedeb,
			"datefin" :       valueDatefin,
			"sd" :            valueSd		
		});
			
	}	

	
	function refreshInfos(evt){

		// Effacer Popup (avec un WHILE pour anti-bug roulette + popup)
		while( $('#wfsPopup').length > 0 ){
			$("#wfsPopup").remove();
		}
		
		if( needRefresh ){
			
			// masquer texte d'info le temps du refresh
			$("#mapinfos").hide();
			
			var valueRadion = escape(currentValueRadion).replace('*plus*','%2B');		
	
			var wfs = null;
			var nbMesures = 0;		
			var infos = "Sur ce territoire, {s0} repr&eacute;sent&eacute;e{s1} <span class='nb'>{0}</span> mesure{s1}";
	
			//if( niveau == 1 && evt.type == "moveend" ){
			if( evt.type == "moveend" ){	
					
				if( map.getExtent() != null ){
					
					var bbox = map.getExtent().toBBOX();
					var epsg = config.srs.replace("EPSG:","");
					
					var params = "type=wms&action=count&bbox="+bbox+"&epsg="+epsg+"&organisme="+currentValueOrganisme+"&departement="+currentValueDepartement+"&commune="+currentValueCommune+"&milieu="+currentValueMilieu+"&nature="+currentValueNature+"&espece="+currentValueEspece+"&radion="+valueRadion+"&datedeb="+currentValueDatedeb+"&datefin="+currentValueDatefin+"&sd="+currentValueSd;
						
					$.getJSON(
						urlData, 
						params, 
						function(result) {
	
							nbMesures = result.results;
							
							// initialisation des chiffres
							infos = infos.replace("{0}",nbMesures);
	
							// gestion du pluriel
							if( nbMesures > 1 ) {
								infos = infos.replace("{s0}","sont");
								reg = new RegExp("({s1})","g");
								infos = infos.replace(reg,"s");
							} else {
								infos = infos.replace("{s0}","est");
								reg = new RegExp("({s1})","g");
								infos = infos.replace(reg,"");
							}
	
							// afficher et rafraichir info
							$("#mapinfos").show();
							$("#mapinfos").html(infos);
	
						}
					);	
				}
			}
		}else{
			needRefresh = true;
		}
	}


	function initTabs(){
		
		$("#tabs").tabs();
	}
	
//	//var_dump equivalent
//	for( i in feature ){
//    	alert(i + ":"+feature[i]);
//	}
