Index: /ether_megapoli/trunk/common/implementation/com/ether/ParameterConstants.java
===================================================================
--- /ether_megapoli/trunk/common/implementation/com/ether/ParameterConstants.java	(revision 216)
+++ /ether_megapoli/trunk/common/implementation/com/ether/ParameterConstants.java	(revision 217)
@@ -3,4 +3,7 @@
 public abstract class ParameterConstants
 {
+    public static final String PARAMETER_RESULT = "result";
+    public static final String PARAMETER_OK = "ok";
+    public static final String PARAMETER_NOT_OK = "nok";
     public static final String PARAMETER_ID = "id";
     public static final String PARAMETER_DATE = "date";
Index: /ether_megapoli/trunk/web/src/ApplicationResources.properties
===================================================================
--- /ether_megapoli/trunk/web/src/ApplicationResources.properties	(revision 216)
+++ /ether_megapoli/trunk/web/src/ApplicationResources.properties	(revision 217)
@@ -478,4 +478,6 @@
 data.visualization.axeType.2DPoints=2D (points)
 data.authentification.text=Veuillez vous identifier en cliquant sur 'Acc\u00E8s aux donn\u00E9es' afin d'acc\u00E9der aux zones prot\u00E9g\u00E9es de ce site.
+data.access.extract.process.short=L'extraction des donn\u00E9es est en cours...<br/>Vous allez recevoir un e-mail pour r\u00E9cup\u00E9rer le(s) fichier(s) g\u00E9n\u00E9r\u00E9s.
+data.access.extract.process.error=Erreur de t\u00E9l\u00E9chargement. <BR>Veuillez essayer de corriger les erreurs suivantes ou contacter l'administrateur en indiquant les erreurs rencontr\u00E9es.
 
 simulation.visualization=Des simulations
Index: /ether_megapoli/trunk/web/src/ApplicationResources_en.properties
===================================================================
--- /ether_megapoli/trunk/web/src/ApplicationResources_en.properties	(revision 216)
+++ /ether_megapoli/trunk/web/src/ApplicationResources_en.properties	(revision 217)
@@ -478,4 +478,6 @@
 
 data.authentification.text=Please login by click on 'Access to data' to access the protected areas of this website.
+data.access.extract.process.short=The downloading is in progress. You will receive an e-mail to get back the generated data file(s).
+data.access.extract.process.error=Download error. <BR>Please try to correct the following errors or contact the administrator with the detected errors.
 
 simulation.visualization=Simulations
Index: /ether_megapoli/trunk/web/src/com/ether/Controller.java
===================================================================
--- /ether_megapoli/trunk/web/src/com/ether/Controller.java	(revision 216)
+++ /ether_megapoli/trunk/web/src/com/ether/Controller.java	(revision 217)
@@ -73,11 +73,30 @@
     }
 
-    @ControllerMethod(view = VIEW_DOWNLOAD_OK, loginMandatory = true)
-    public Map<String, Object> downloadData( @ParamName(ParameterConstants.PARAMETER_DATE_BEGIN) final String dateBegin,
-                                             @ParamName(ParameterConstants.PARAMETER_DATE_END) final String dateEnd,
-                                             @ParamName(ParameterConstants.PARAMETER_PFID_PID_LIST) final String pIdPIdArrayString,
-                                             @NotNull final Personne personne )
+    /** *********************************************************** **/
+    /** *********************** CALLS ***************************** **/
+    /**
+     * ********************************************************** *
+     */
+    @ControllerMethod(jsonResult = true)
+    public JSONObject searchParametersByPlateform( @Mandatory @ParamName(ParameterConstants.PARAMETER_ID) final Integer plateformId )
+            throws ServiceException, EtherException
+    {
+        final List<Parametre> parametersByPlateform = _etherService.getParametersByPlateformId( plateformId );
+
+        final JSONObject result = new JSONObject();
+        result.put( ParameterConstants.PARAMETER_PARAMETERS, getJsonHelper().toJSON( parametersByPlateform ) );
+        return result;
+    }
+
+
+    @ControllerMethod(jsonResult = true, loginMandatory = true)
+    public JSONObject downloadData( @ParamName(ParameterConstants.PARAMETER_DATE_BEGIN) final String dateBegin,
+                                    @ParamName(ParameterConstants.PARAMETER_DATE_END) final String dateEnd,
+                                    @ParamName(ParameterConstants.PARAMETER_PFID_PID_LIST) final String pIdPIdArrayString,
+                                    @NotNull final Personne personne )
             throws ServiceException, WebException
     {
+        final JSONObject result = new JSONObject();
+
         final List<Pair<String, String>> pfIdPIdList = EtherHelper.extractpfIdPIdListFromString( pIdPIdArrayString, String.class, String.class );
         if( null == pfIdPIdList )
@@ -121,23 +140,9 @@
         catch( Exception e )
         {
-            e.printStackTrace();
-        }
-
-        return new HashMap<String, Object>();
-    }
-
-    /** *********************************************************** **/
-    /** *********************** CALLS ***************************** **/
-    /**
-     * ********************************************************** *
-     */
-    @ControllerMethod(jsonResult = true)
-    public JSONObject searchParametersByPlateform( @Mandatory @ParamName(ParameterConstants.PARAMETER_ID) final Integer plateformId )
-            throws ServiceException, EtherException
-    {
-        final List<Parametre> parametersByPlateform = _etherService.getParametersByPlateformId( plateformId );
-
-        final JSONObject result = new JSONObject();
-        result.put( ParameterConstants.PARAMETER_PARAMETERS, getJsonHelper().toJSON( parametersByPlateform ) );
+            result.put( ParameterConstants.PARAMETER_RESULT, ParameterConstants.PARAMETER_NOT_OK );
+            return result;
+        }
+
+        result.put( ParameterConstants.PARAMETER_RESULT, ParameterConstants.PARAMETER_OK );
         return result;
     }
@@ -196,4 +201,6 @@
         dataForm.setListeCoords( dataForm.getLatMin() + "," + dataForm.getLatMax() + "," + dataForm.getLonMin() + "," + dataForm.getLonMax() );
         dataForm.setListeDates( dataForm.getDateDeb() + "," + dataForm.getDateFin() );
+        dataForm.setOutput( FORMAT_DEFAULT );
+        dataForm.setCompression( COMPRESSION_DEFAULT );
 
         return dataForm;
Index: /ether_megapoli/trunk/web/visualization/visu_parameter_by_pf-script.jsp
===================================================================
--- /ether_megapoli/trunk/web/visualization/visu_parameter_by_pf-script.jsp	(revision 216)
+++ /ether_megapoli/trunk/web/visualization/visu_parameter_by_pf-script.jsp	(revision 217)
@@ -127,4 +127,13 @@
     },
 
+    requestDownload: function()
+    {
+        var urlObject = this.createUrl();
+        new Ajax.Request( "?methodName=downloadData&" + urlObject.parameters,
+        {
+            onSuccess:this.handleDownload.bind( this )
+        } );
+    },
+
     // HANDLES ********************************************************
     handleParametersBySelectedPlateform: function( result )
@@ -132,4 +141,23 @@
         this.jsonParameters = result.responseText.evalJSON().parameters;
         this.displayParameters();
+    },
+
+    handleDownload: function( result )
+    {
+        var stateResult = result.responseText.evalJSON().result;
+
+        var downloadWindow = new Window( {className: "dialog", zIndex: 100, resizable: true, draggable:true, wiredDrag: true, showEffect:Effect.BlindDown, hideEffect: Effect.SwitchOff } );
+        downloadWindow.setTitle( interfaceTexts["data.access.extract3"] );
+        if( stateResult == "ok" )
+        {
+            downloadWindow.getContent().innerHTML = '<div class="textExamplesTD">' + interfaceTexts["data.access.extract.process.short"] + '</div>';
+            downloadWindow.setSize( 350, 50 );
+        }
+        else
+        {
+            downloadWindow.getContent().innerHTML = '<div class="textExamplesTD">' + interfaceTexts["data.access.extract.process.error"] + '</div>';
+            downloadWindow.setSize( 350, 60 );
+        }
+        downloadWindow.show();
     },
 
@@ -310,8 +338,5 @@
         }
         else
-        {
-            var urlObject = this.createUrl();
-            window.location.href = "?methodName=downloadData&" + urlObject.parameters;
-        }
+            this.requestDownload();
     },
 
Index: /ether_megapoli/trunk/web/visualization/visu_parameter_by_pf.jsp
===================================================================
--- /ether_megapoli/trunk/web/visualization/visu_parameter_by_pf.jsp	(revision 216)
+++ /ether_megapoli/trunk/web/visualization/visu_parameter_by_pf.jsp	(revision 217)
@@ -97,6 +97,7 @@
                     <div id="containerOptionPlotsSelect" class="span-10"></div>
                     <div id="containerOptionPlotsButtons" class="span-10">
-                        <img src="/megapoli/resources/icons/help.gif" id="toolTipPlots" height="19px" width="17px" class="toolTipPlots" onclick="javascript:onClickHelp();">
-                   </div>
+                        <img src="/megapoli/resources/icons/help.gif" id="toolTipPlots" height="19px" width="17px"
+                             class="toolTipPlots" onclick="javascript:onClickHelp();">
+                    </div>
                 </div>
 
@@ -143,4 +144,8 @@
             interfaceTexts["data.authentification.text"] = "<bean:message key="data.authentification.text"/>";
 
+            interfaceTexts["data.access.extract3"] = "<bean:message key="data.access.extract3"/>";
+            interfaceTexts["data.access.extract.process.short"] = "<bean:message key="data.access.extract.process.short"/>";
+            interfaceTexts["data.access.extract.process.error"] = "<bean:message key="data.access.extract.process.error"/>";
+
             var interfaceVisualization = new InterfaceVisualization( ${plateforms}, ${axeTypesForFixedPlateforms}, ${axeTypesForMobilePlateforms} );
         </script>
