Index: /ether_statistics/Statistics.ipr
===================================================================
--- /ether_statistics/Statistics.ipr	(revision 683)
+++ /ether_statistics/Statistics.ipr	(revision 684)
@@ -5,7 +5,22 @@
   </component>
   <component name="ArtifactManager">
-    <artifact type="exploded-war" build-on-make="true" name="statistics">
-      <output-path>$PROJECT_DIR$/web</output-path>
-      <root id="root" />
+    <artifact type="war" build-on-make="true" name="statistics">
+      <output-path>$PROJECT_DIR$/out/artifacts/statistics</output-path>
+      <root id="archive" name="statistics.war">
+        <element id="directory" name="WEB-INF">
+          <element id="directory" name="classes">
+            <element id="module-output" name="Common" />
+            <element id="module-output" name="Domain" />
+            <element id="module-output" name="Persistence" />
+            <element id="module-output" name="Service" />
+            <element id="module-output" name="Web" />
+          </element>
+          <element id="directory" name="lib">
+            <element id="library" level="project" name="lib_spring" />
+            <element id="library" level="project" name="lib_hibernate" />
+          </element>
+        </element>
+        <element id="javaee-facet-resources" facet="Web/web/Web" />
+      </root>
     </artifact>
   </component>
Index: /ether_statistics/common/implementation/log4j.xml
===================================================================
--- /ether_statistics/common/implementation/log4j.xml	(revision 683)
+++ /ether_statistics/common/implementation/log4j.xml	(revision 684)
@@ -23,27 +23,27 @@
  
     <!-- library loggers -->
-    <logger name="oracle.jdbc" additivity="false">
-        <level value="info"/>
+    <!--<logger name="oracle.jdbc" additivity="false">-->
+        <!--<level value="info"/>-->
         <!--<appender-ref ref="file"/>-->
         <!--<appender-ref ref="console"/>-->
-    </logger>
+    <!--</logger>-->
 
-    <logger name="oracle.ons" additivity="false">
-        <level value="debug"/>
+    <!--<logger name="oracle.ons" additivity="false">-->
+        <!--<level value="debug"/>-->
         <!--<appender-ref ref="file"/>-->
         <!--<appender-ref ref="console"/>-->
-    </logger>
+    <!--</logger>-->
 
-    <logger name="org.hibernate">
-        <level value="trace"/>
+    <!--<logger name="org.hibernate">-->
+        <!--<level value="trace"/>-->
         <!--<appender-ref ref="file"/>-->
         <!--<appender-ref ref="consoleHibernate"/>-->
-    </logger>
+    <!--</logger>-->
 
-    <logger name="com.ether">
-        <level value="trace"/>
+    <!--<logger name="com.ether">-->
+        <!--<level value="trace"/>-->
         <!--<appender-ref ref="file"/>-->
         <!--<appender-ref ref="console"/>-->
-    </logger>
+    <!--</logger>-->
 
 <!--    <logger name="org.hibernate.persister.entity" additivity="false">-->
@@ -65,16 +65,16 @@
 <!--    </logger>-->
 
-    <logger name="net.sf.cglib" additivity="false">
-        <level value="warn"/>
+    <!--<logger name="net.sf.cglib" additivity="false">-->
+        <!--<level value="warn"/>-->
         <!--<appender-ref ref="file"/>-->
         <!--<appender-ref ref="console"/>-->
-    </logger>
+    <!--</logger>-->
 
     <!-- root logger -->
-    <root>
-        <level value="warn"/>
+    <!--<root>-->
+        <!--<level value="warn"/>-->
         <!--<appender-ref ref="console"/>-->
         <!--<appender-ref ref="file"/>-->
-    </root>
+    <!--</root>-->
 
 </log4j:configuration>
Index: /ether_statistics/web/project/credits_en.jsp
===================================================================
--- /ether_statistics/web/project/credits_en.jsp	(revision 683)
+++ /ether_statistics/web/project/credits_en.jsp	(revision 684)
@@ -11,8 +11,3 @@
     Images used for this web site mostly belong to the CNRS and ETHER pictures library.<BR/>
     They are properties to CNRS and ETHER. Any copies, complete or partial, can not be done without their consent.
-    <BR/><BR/>
-
-    <div class="title2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Others</div>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Visualization tools : <a href="http://wijmo.com/">Wijmo</a>
-    <BR/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(free download).
 </div>
Index: /ether_statistics/web/project/credits_fr.jsp
===================================================================
--- /ether_statistics/web/project/credits_fr.jsp	(revision 683)
+++ /ether_statistics/web/project/credits_fr.jsp	(revision 684)
@@ -11,8 +11,3 @@
     Les images utilisÃ©es pour la rÃ©alisation de ce site web proviennent, <BR/>pour la plupart, de la photothÃšque du CNRS et du fond de ETHER.<BR/>
     Elles sont la propriÃ©tÃ© du CNRS et de ETHER. Toute copie, totale <BR/> ou partielle, ne peut se faire sans leur accord.
-    <BR/><BR/>
-
-    <div class="title2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Autres</div>
-    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Outils de visualisation : <a href="http://wijmo.com/">Wijmo</a>
-    <BR/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(en tÃ©lÃ©chargement gratuit).
 </div>
Index: /ether_statistics/web/project/statistics-script_sauv.jsp
===================================================================
--- /ether_statistics/web/project/statistics-script_sauv.jsp	(revision 684)
+++ /ether_statistics/web/project/statistics-script_sauv.jsp	(revision 684)
@@ -0,0 +1,766 @@
+<%@ page import="com.ether.WebHelper" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
+
+<script type="text/javascript">
+
+var InterfaceStatistics = Class.create( {
+    initialize: function()
+    {
+        /** *********** CONTAINERS *********** **/
+        this.parent = $( "#containerMiddle" );
+        this.containerMenu = $( "#menuLogo" );
+        this.containerErrors = $( "#errors" );
+
+        /** *********** VARIABLES *********** **/
+        this.language = '<spring:message code="language"/>';
+        this.webmaster = "<%=WebHelper.getProperty(request, "mail.webmaster")%>";
+        this.jSONUser = <%=WebHelper.getJSONUser( request )%> ? <%=WebHelper.getJSONUser( request )%> : false;
+        this.logoSizeSmall = 30;
+        this.logoSizeBig = 50;
+
+        this.projectsArray = [
+            {id:"ETHER", img:"logo_Ether_50.jpg", top:"-16px", left:"125px"},
+            {id:"NDACC", img:"logo_Ndacc_50.jpg", top:"1.66667px", left:"46.3334px"},
+            {id:"ECCAD", img:"logo_ECCAD_50.gif", top:"39.3333px", left:"109.333px"},
+            {id:"IASI", img:"logo_iasi_50.jpg", top:"-78.6667px", left:"77.6666px"},
+            {id:"GOSAT", img:"logo_gosat_50.jpg", top:"-0.333328px", left:"200.667px"},
+            {id:"IAGOS", img:"logo_Iagos_50.jpg", top:"36px", left:"138px"},
+            {id:"TROPICO", img:"logo_tropico_50.jpg", top:"-74px", left:"45px"},
+            {id:"MEGAPOLI", img:"logo_Megapoli_50.png", top:"-74.3333px", left:"15.3333px"},
+            {id:"MIMOSA", img:"logo_mimosa_50.png", top:"-45.6667px", left:"76.3334px"},
+            {id:"REPROBUS", img:"logo_reprobus_50.png", top:"-48px", left:"161.667px"},
+            {id:"GEISA", img:"logo_geisa_50.jpg", top:"22px", left:"167.667px"},
+            {id:"TAPAS", img:"logo_tapas_50.png", top:"58.3333px", left:"125px"},
+            {id:"OUTREACH", img:"logo_acomida_50.jpg", top:"-77.3333px", left:"225px"},
+            {id:"OMER7A", img:"logo_omer7A_50.jpg", top:"22.6667px", left:"76.3334px"},
+            {id:"GIRAFE", img:"logo_girafe_50.JPG", top:"-79.6667px", left:"192.333px"},
+            {id:"ARLETTY", img:"logo_arletty_50.jpg", top:"-79px", left:"161.667px"}
+        ];
+        this.widthInitMentionsOrCredits = $( "#mentions" ).width();
+
+        this.xArray = ["2010-10", "2010-11", "2010-12", "2011-01", "2011-02"];
+        this.yArray = [0, 10, 30, 50, 100];
+
+        this.bindButtons();
+        this.createMenuLogo();
+
+        $( document ).ready( jQuery.proxy( function()
+        {
+            $( ".containerToDrag" ).draggable();
+            // Menu
+            this.animateMenuLogos();
+            this.bindMenuLogos();
+            this.createRightSlide();
+
+            if( !this.jSONUser )
+                this.onClickHelp();
+            else
+                this.handleLogin();
+        }, this ) );
+    },
+
+
+    // CREATES AND BINDS ********************************************************
+    bindButtons: function()
+    {
+        $( "#home_button" ).bind( "dblclick", this.onClickHome );
+        $( "#language_button" ).bind( "dblclick", jQuery.proxy( this.onClickLanguage, this ) );
+        $( "#mail_button" ).bind( "dblclick", jQuery.proxy( this.onClickMail, this ) );
+        $( "#help" ).bind( "click", jQuery.proxy( this.onClickHelp, this ) );
+        $( "#credits" ).bind( "dblclick", jQuery.proxy( this.onClickCredits, this ) );
+        $( "#mentions" ).bind( "dblclick", jQuery.proxy( this.onClickMentions, this ) );
+        $( "#login_button" ).bind( "click", jQuery.proxy( this.onClickLogin, this ) );
+        $( "#logout_button" ).bind( "dblclick", jQuery.proxy( this.onClickLogout, this ) );
+    },
+
+    createMenuLogo: function()
+    {
+        var initTop = this.projectsArray[0].top;
+        var initLeft = this.projectsArray[0].left;
+
+        jQuery.each( this.projectsArray, jQuery.proxy( function( i, logo )
+        {
+            var divLogo = $( document.createElement( "div" ) );
+            divLogo.addClass( "divLogo containerToDrag" );
+            divLogo.attr( {id:logo.id, style:"position:absolute; top:" + initTop + "; left:" + initLeft} );
+            divLogo.html( '<img id="img_' + logo.id + '"src="resources/images/' + logo.img + '" width="' + this.logoSizeSmall + 'px" height="' + this.logoSizeSmall + 'px"/>' );
+            this.containerMenu.append( divLogo );
+        }, this ) );
+    },
+
+    createAllSlides: function()
+    {
+        this.leftTopSlide = new DragSlide( {id:"leftTop", parent:this.parent, width:"170", height:"200", top:"140px", left:"53px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+
+        this.leftMiddleSlide = new DragSlide( {id:"leftMiddleSlide", parent:this.parent, width:"170", height:"100", top:"355px", left:"53px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+        this.leftMiddleSlide.setTitle( '<spring:message code="statistics.data"/>' );
+
+        this.leftBottomSlide = new DragSlide( {id:"leftBottomSlide", parent:this.parent, width:"170", height:"100", top:"470px", left:"53px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+        this.leftBottomSlide.setTitle( '<spring:message code="statistics.duration"/>' );
+
+        this.middleSlide = new DragSlide( {id:"middle", parent:this.parent, width:"430", height:"430", top:"140px", left:"245px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+
+        this.rightSlide = new DragSlide( {id:"right", parent:this.parent, width:"200", height:"270", top:"210px", left:"698px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+
+        this.loginSlide = new DragSlide( {id:"loginRight", parent:this.parent, width:"200", height:"25", top:"170px", left:"697px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+    },
+
+    createRightSlide: function()
+    {
+        this.rightSlide = new DragSlide( {id:"right", parent:this.parent, width:"200", height:"270", top:"210px", left:"698px",
+            specificClass:"containerStatistics", specificTitleClass:"containerStatisticsTitle", specificContentClass:"containerStatisticsContent"} );
+    },
+
+    // REQUESTS ********************************************************
+    requestChangeLocale: function()
+    {
+        $.ajax( {
+            url: "project?methodName=setLocale&language=<spring:message code="label.language.value.to.switch"/>",
+            success:function()
+            {
+                location.reload();
+            },
+            error: jQuery.proxy( this.showErrors, [this] )
+        } );
+    },
+
+    requestLogin: function()
+    {
+        var login = $( "#loginValue" ).val();
+        var pwd = $( "#pwdValue" ).val();
+        $.ajax( {
+            url: "project?methodName=login&login=" + login + "&pwd=" + pwd,
+            dataType: 'json', // Info needed since jquery.1.7 !!
+            success:jQuery.proxy( this.handleLogin, this ),
+            error: jQuery.proxy( this.showErrors, [this, "489px", "566px"] )
+        } );
+    },
+
+    requestLogout: function()
+    {
+        $.ajax( {
+            url: "project?methodName=logout",
+            dataType: 'json', // Info needed since jquery.1.7 !!
+            success:jQuery.proxy( this.handleLogout, this ),
+            error: jQuery.proxy( this.showErrors, [this] )
+        } );
+    },
+
+    requestDataByLogo: function()
+    {
+        if( !this.selectedLogo && !this.selectedLogo.id )
+            return;
+
+        $.ajax( {
+            url: "statistic?methodName=searchMainStatisticsByProject&name=" + this.selectedLogo.id,
+            success:jQuery.proxy( this.handleDataByLogo, this ),
+            error: jQuery.proxy( this.showLoginError, this )
+        } );
+    },
+
+    // HANDLES ********************************************************
+    handleDataByLogo: function( result )
+    {
+        this.changeLeftTopSlide();
+        this.changeLeftMiddleSlide();
+        this.changeLeftBottomSlide();
+        this.displayVisit();
+    },
+
+    handleLogin: function( result )
+    {
+        this.containerErrors.empty();
+        this.containerErrors.css( "visibility", "hidden" );
+
+        if( result )
+            this.jSONUser = result.jSONUser;
+
+        $( "#loginValue" ).val( "" );
+        $( "#pwdValue" ).val( "" );
+        $( "#login_text" ).css( "visibility", "hidden" );
+        $( "#login" ).animate( {
+            top:'47px',
+            left:'126px'
+        }, 2000, function()
+        {
+        } );
+
+        $( "#login_bg" ).animate( {
+            opacity: 1,
+            height:'60px',
+            width:'67px'
+        }, 2000, function()
+        {
+        } );
+
+        $( "#login_img" ).animate( {
+            top:'25px',
+            left: '16px',
+            width: '0',
+            height: '0'
+        }, 2000, jQuery.proxy( function()
+        {
+            // Slides
+            this.parent.empty();
+            this.createAllSlides();
+            this.changeRightSlide();
+
+            // User
+            if( this.jSONUser.name )
+                this.loginSlide.setTitle( this.jSONUser.name );
+            else
+                this.loginSlide.setTitle( '<spring:message code="label.unknown"/>' );
+            $( "#logout_button" ).css( "visibility", "visible" );
+
+            // Logo
+            this.selectedLogo = $( "#ETHER" )[0];
+            this.isSelectedLogoEther = true;
+            this.onClickLogo();
+        }, this ) );
+    },
+
+    handleLogout: function()
+    {
+        this.jSONUser = false;
+        this.parent.empty();
+        this.createRightSlide();
+        this.onClickHelp();
+
+        $( "#logout_button" ).css( "visibility", "hidden" );
+        $( "#login" ).css( { zIndex:1 } ).animate( {
+            top:'79px',
+            left:'88px'
+        }, 2000, function()
+        {
+        } );
+
+        $( "#login_bg" ).animate( {
+            opacity: 0.85,
+            height:'500px',
+            width:'500px'
+        }, 2000, function()
+        {
+            $( "#login_text" ).css( "visibility", "visible" );
+        } );
+
+        $( "#login_img" ).animate( {
+            top:'103px',
+            left: '148px',
+            width: '30px',
+            height: '30px'
+        }, 2000, function()
+        {
+        } );
+    },
+
+    // EVENTS ********************************************************
+    onClickHome: function()
+    {
+        location.reload();
+    },
+
+    onClickLanguage: function()
+    {
+        this.requestChangeLocale();
+    },
+
+    onClickMail: function()
+    {
+        document.location.href = "mailto:" + this.webmaster + "?subject=[STATISTICS]";
+    },
+
+    onClickMentions: function()
+    {
+        if( this.widthInitMentionsOrCredits == $( "#mentions" ).width() )
+            this.enlargeCreditsOrMentions( $( "#mentions" ), $( "#mentions_bg" ), $( "#mentions_text" ), $( "#mentions_title" ), "project/mentions_" + this.language + ".jsp" );
+        else
+            this.reduceCreditsOrMentions( $( "#mentions" ), $( "#mentions_bg" ), $( "#mentions_text" ), $( "#mentions_title" ), "project/mentions_" + this.language + ".jsp" );
+    },
+
+    onClickCredits: function()
+    {
+        if( this.widthInitMentionsOrCredits == $( "#credits" ).width() )
+            this.enlargeCreditsOrMentions( $( "#credits" ), $( "#credits_bg" ), $( "#credits_text" ), $( "#credits_title" ), "project/credits_" + this.language + ".jsp" );
+        else
+            this.reduceCreditsOrMentions( $( "#credits" ), $( "#credits_bg" ), $( "#credits_text" ), $( "#credits_title" ), "project/credits_" + this.language + ".jsp" );
+    },
+
+    onClickHelp: function()
+    {
+        this.rightSlide.setTitle( '<spring:message code="label.help"/>' );
+        this.rightSlide.setContent( "<spring:message code='label.help.content'/>" );
+        if( this.jSONUser )
+            var backHelpButton = new Button( {value:"<spring:message code="label.display.actions"/>", parent:this.rightSlide.getDivContent(), className: "small positive back_button", onClick:jQuery.proxy( this.changeRightSlide, this )} );
+    },
+
+    onClickLogin: function()
+    {
+        this.containerErrors.empty();
+        this.containerErrors.css( "visibility", "hidden" );
+        this.requestLogin();
+    },
+
+    onClickLogout: function()
+    {
+        this.requestLogout();
+    },
+
+    onClickLogo: function()
+    {
+        this.isSelectedLogoEther = (this.selectedLogo == $( "#ETHER" )[0]);
+
+        if( this.jSONUser )
+            this.requestDataByLogo();
+        else
+        {
+            this.showErrors( "<spring:message code="error.connection.need"/>" );
+            this.containerErrors.css( {top:"489px", left:"566px"} );
+            this.containerErrors.css( "visibility", "visible" );
+        }
+    },
+
+    onClickPrint: function()
+    {
+        var printContent = new PrintContent();
+        printContent.addContent( $( "#title" ).clone() );
+        printContent.addContent( this.leftTopSlide.getDivContainer().clone().animate( {'marginLeft' : "+=80px"} ) );
+        printContent.addContent( this.leftMiddleSlide.getDivContainer().clone().animate( {'marginLeft' : "+=80px"} ) );
+        printContent.addContent( this.leftBottomSlide.getDivContainer().clone().animate( {'marginLeft' : "+=80px"} ) );
+        printContent.addContent( this.middleSlide.getDivContainer().clone().animate( {'marginLeft' : "+=120px"} ) );
+        printContent.displayPrintPreview();
+    },
+
+    // OTHERS ********************************************************
+    showErrors: function( result )
+    {
+        var context = this[0] ? this[0] : this;
+        var topValue = this[1] ? this[1] : false;
+        var leftValue = this[2] ? this[2] : false;
+        context.containerErrors.show();
+        if( result.responseText && interfaceTexts[result.responseText] )
+            context.containerErrors.html( interfaceTexts[result.responseText] );
+        else if( result.responseText )
+            context.containerErrors.html( result.responseText );
+        else
+            context.containerErrors.html( result );
+        if( topValue && leftValue )
+            context.containerErrors.css( {top: topValue, left: leftValue} );
+        context.containerErrors.css( "visibility", "visible" );
+    },
+
+    showLoginError: function( result )
+    {
+        this.onClickLogout();
+        this.onClickLogo();
+    },
+
+    reduceCreditsOrMentions: function( div, div_bg, div_text, div_title )
+    {
+        div.css( { zIndex:0 } );
+        div_text.css( "visibility", "hidden" );
+        div.animate( {
+            left: '+=500',
+            top: '+=500'
+        }, 2000, function()
+        {
+        } );
+        div_bg.animate( {
+            opacity: 1,
+            height:'42px',
+            width:this.widthInitMentionsOrCredits + 'px',
+            zIndex:'0'
+        }, 2000, function()
+        {
+            div_title.css( "visibility", "visible" );
+        } );
+    },
+
+    enlargeCreditsOrMentions: function( div, div_bg, div_text, div_title, pageToLoad )
+    {
+        div_title.css( "visibility", "hidden" );
+        div.css( { zIndex:1 } );
+        div.animate( {
+            left: '-=500',
+            top: '-=500'
+        }, 2000, function()
+        {
+        } );
+
+        div_bg.animate( {
+            opacity: 0.95,
+            height:'500px',
+            width:'500px'
+        }, 2000, function()
+        {
+            div_text.css( "visibility", "visible" );
+            div_text.load( pageToLoad );
+        } );
+    },
+
+    animateMenuLogos: function()
+    {
+        jQuery.each( this.projectsArray, jQuery.proxy( function( i, logo )
+        {
+            $( "#" + logo.id ).animate( {
+                top:logo.top,
+                left:logo.left
+            }, 5000, function()
+            {
+            } );
+        }, this ) );
+    },
+
+    bindMenuLogos: function()
+    {
+        var gap = (this.logoSizeBig - this.logoSizeSmall) / 2;
+        var logoSizeBig = this.logoSizeBig + "px";
+        var logoSizeSmall = this.logoSizeSmall + "px";
+        var gridimage;
+
+        $( '.divLogo' ).mouseover( function( element )
+        {
+            gridimage = $( this ).find( 'img' ); //Define target as a variable
+            gridimage.stop().animate( {
+                width: logoSizeBig,
+                height: logoSizeBig
+            }, 150 );
+            $( this ).animate( {
+                top: "-=10px",
+                left: "-=10px"
+            }, 150 );
+        } );
+
+        $( '.divLogo' ).mouseout( function( element )
+        {
+            $( this ).animate( {
+                top: "+=10px",
+                left: "+=10px"
+            }, 150 );
+            gridimage.stop().animate( {
+                width: logoSizeSmall,
+                height:logoSizeSmall
+            }, 150 );
+        } );
+
+        $( '.divLogo' ).dblclick( jQuery.proxy( function( element )
+        {
+            this.selectedLogo = element.currentTarget;
+            this.onClickLogo();
+        }, this ) );
+    },
+
+    changeLeftTopSlide: function()
+    {
+        this.leftTopSlide.setTitle( '<spring:message code="title"/> : ' + this.selectedLogo.id );
+        this.leftTopSlide.setContent(
+                "<spring:message code="statistics.online"/> : 2006/05/08<BR/>" +
+                        "<span class='text1'><spring:message code="statistics.since"/> : 2009/05/08<BR/><BR/></span>" +
+                        "<spring:message code="statistics.user.registered"/> : 1500<BR/>" +
+                        "<spring:message code="statistics.visit"/> : 150<BR/>" );
+    },
+
+    changeLeftMiddleSlide: function()
+    {
+        this.leftMiddleSlide.setContent( "<spring:message code="statistics.data.download"/> : 15001<BR/><spring:message code="statistics.data.download.size"/> : 50To<BR/>" );
+    },
+
+    changeLeftBottomSlide: function()
+    {
+        this.leftBottomSlide.setContent( "<spring:message code="statistics.duration.total"/> : 15001''<BR/><spring:message code="statistics.duration.average"/> : 50''<BR/>" );
+    },
+
+    changeRightSlide: function()
+    {
+        this.rightSlide.setTitle( '<spring:message code="label.actions"/>' );
+        this.rightSlide.getDivContent().empty();
+        new Button( {value:"<spring:message code="statistics.visit"/>", parent:this.rightSlide.getDivContent(), className: "positive action_button", onClick:jQuery.proxy( this.displayVisit, this )} );
+        new Button( {value:"<spring:message code="statistics.user.registered"/>", parent:this.rightSlide.getDivContent(), className: "positive action_button", onClick:jQuery.proxy( this.displayRegisteredUserEvolution, this )} );
+        new Button( {value:"<spring:message code="statistics.user.connected"/>", parent:this.rightSlide.getDivContent(), className: "positive action_button", onClick:jQuery.proxy( this.displayConnectedUserEvolution, this )} );
+        new Button( {value:"<spring:message code="statistics.data.download"/>", parent:this.rightSlide.getDivContent(), className: "positive action_button", onClick:jQuery.proxy( this.displayDownload, this )} );
+        new Button( {value:"<spring:message code="statistics.map.distribution"/>", parent:this.rightSlide.getDivContent(), className: "positive action_button", onClick:jQuery.proxy( this.displayMapDistribution, this )} );
+        new Button( {value:"AWSTATS", parent:this.rightSlide.getDivContent(), className: "positive action_button", onClick:jQuery.proxy( this.displayAwstatsStatistics, this )} );
+        new Button( {value:"<spring:message code="label.print"/>", parent:this.rightSlide.getDivContent(), className: "blue export_button print-preview", onClick:jQuery.proxy( this.onClickPrint, this )} );
+    },
+
+    changeMiddleSlide: function( titleEvolution, titleDistribution )
+    {
+        if( this.isSelectedLogoEther )
+            this.middleSlide.setTitle( '<spring:message code="statistics.evolution.distribution"/> : ' + this.selectedLogo.id );
+        else
+            this.middleSlide.setTitle( '<spring:message code="statistics.evolution"/> : ' + this.selectedLogo.id );
+        this.middleSlide.getDivContent().empty();
+
+        var linechart = $( document.createElement( "div" ) );
+        linechart.addClass( "ui-widget ui-widget-content ui-corner-all statisticsEther" );
+        linechart.attr( {id:"wijlinechart"} );
+        this.middleSlide.getDivContent().append( linechart );
+
+        var donut = $( document.createElement( "div" ) );
+        donut.addClass( "ui-widget ui-widget-content ui-corner-all statisticsEther" );
+        donut.attr( {id:"wijpiechart"} );
+        this.middleSlide.getDivContent().append( donut );
+
+        this.createLinechart( titleEvolution );
+        if( this.isSelectedLogoEther )
+            this.createDonut( titleDistribution );
+    },
+
+    changeMiddleSlideForMap: function()
+    {
+        this.middleSlide.setTitle( '<spring:message code="statistics.map.distribution"/> : ' + this.selectedLogo.id );
+        this.middleSlide.getDivContent().empty();
+    },
+
+
+    // STATISTICS ********************************************************
+    createDonut: function( title )
+    {
+        $( "#wijpiechart" ).wijpiechart( {
+            height: 210,
+            width: 400,
+            radius: 140,
+            legend: { visible: true },
+            hint: {
+                content: function ()
+                {
+                    return this.data.label + " : " + Globalize.format( this.value / this.total, "p2" );
+                }
+            },
+            header: {
+                text: title
+            },
+            seriesList: [
+                {
+                    label: "MacBook Pro",
+                    legendEntry: true,
+                    data: 46.78,
+                    offset: 0
+                },
+                {
+                    label: "iMac",
+                    legendEntry: true,
+                    data: 23.18,
+                    offset: 0
+                },
+                {
+                    label: "MacBook",
+                    legendEntry: true,
+                    data: 20.25,
+                    offset: 0
+                },
+                {
+                    label: "Mac Pro",
+                    legendEntry: true,
+                    data: 5.41,
+                    offset: 0
+                },
+                {
+                    label: "Mac mini",
+                    legendEntry: true,
+                    data: 3.44,
+                    offset: 0
+                }
+            ],
+            seriesStyles: [
+                {
+                    fill: "180-rgb(195,255,0)-rgb(175,229,0)", stroke: "rgb(175,229,0)", "stroke-width": 1.5
+                },
+                {
+                    fill: "90-rgb(142,222,67)-rgb(127,199,60)", stroke: "rgb(127,199,60)", "stroke-width": 1.5
+                },
+                {
+                    fill: "90-rgb(106,171,167)-rgb(95,153,150)", stroke: "rgb(95,153,150)", "stroke-width": 1.5
+                },
+                {
+                    fill: "90-rgb(70,106,133)-rgb(62,95,119)", stroke: "rgb(62,95,119)", "stroke-width": 1.5
+                },
+                {
+                    fill: "90-rgb(166,166,166)-rgb(149,149,149)", stroke: "rgb(149,149,149)", "stroke-width": 1.5
+                }
+            ]
+        } );
+    },
+
+    createLinechart: function( title )
+    {
+        $( "#wijlinechart" ).wijlinechart( {
+            height: 200,
+            width: 400,
+            axis: {
+                y: {
+                    origin: 0
+                }
+            },
+            showChartLabels: false,
+            header: {
+                text: title
+            },
+            hint: {
+                content: function ()
+                {
+                    return this.data.lineSeries.label + '\n' + this.x + '\n' + this.y + '';
+                },
+                contentStyle: { "font-size": 10 },
+                offsetY: -10
+            },
+            legend: {
+                visible: false
+            },
+            seriesList: [
+                {
+                    label: "",
+                    legendEntry: true,
+                    data: {
+                        x: this.xArray,
+                        y: this.yArray
+                    },
+                    markers: {
+                        visible: true,
+                        type: "circle"
+                    }
+                }
+            ]
+        } );
+    },
+
+    displayVisit: function()
+    {
+        this.changeMiddleSlide( '<spring:message code="statistics.evolution.visit"/>', '<spring:message code="statistics.distribution.visit"/>' );
+    },
+
+    displayRegisteredUserEvolution: function()
+    {
+        this.changeMiddleSlide( '<spring:message code="statistics.evolution.user.registered"/>', '<spring:message code="statistics.distribution.user.registered"/>' );
+    },
+
+    displayConnectedUserEvolution: function()
+    {
+        this.changeMiddleSlide( '<spring:message code="statistics.evolution.user.connected"/>', '<spring:message code="statistics.distribution.user.connected"/>' );
+    },
+
+    displayDownload: function()
+    {
+        this.changeMiddleSlide( '<spring:message code="statistics.evolution.download"/>', '<spring:message code="statistics.distribution.download"/>' );
+    },
+
+    displayMapDistribution: function()
+    {
+        this.changeMiddleSlideForMap();
+    },
+
+    displayAwstatsStatistics: function()
+    {
+
+        //        var url = 'http://www.pole-ether.fr/cgi-bin/awstats/awstats.pl?config=tapas';
+        var url = "/statistics/project/credits_en.jsp";
+//        var url = "http://localhost/cgi-bin/awstats/awstats.pl?config=megapoli";
+
+//        var jqxhr = jQuery.get( url, function()
+//        {
+//        } )
+//                .success( function( data )
+//        {
+//            $( '#bob' ).html( data );
+//        } )
+//                .error( function( data )
+//        {
+//            alert( "error" );
+//        } )
+//                .complete( function( data )
+//        {
+//        } );
+
+        $( "#divDialog" ).load( url );
+
+
+//        var $dialog = $( '<div></div>' )
+//                .html( "http://www.pole-ether.fr/cgi-bin/awstats/awstats.pl?config=tapas" )
+//                .dialog( {
+//                             autoOpen: false,
+//                             title: "paf",
+//                             height: 50,
+//                             width: 400
+//                         } );
+//        $dialog.dialog( 'open' );
+
+//        $( '<div>' ).dialog( {
+//            modal: true,
+//            open: function ()
+//            {
+//                $( this ).load( 'http://www.google.fr' );
+//            },
+//            height: 400,
+//            width: 400,
+//            title: 'Dynamically Loaded Page'
+//        } );
+
+//        $( "#divDialog" ).dialog( {
+//            height: 400,
+//            width: 500,
+//            modal: true
+//        } );
+//        $( "#divDialog" ).dialog( "option", "title", "paf" );
+//        $( "#divDialog" ).dialog( "option", "resizable", false );
+//        $( "#divDialog" ).dialog( "option", "buttons", {
+//            "Close": function()
+//            {
+//                $( this ).dialog( "close" );
+//                $( this ).dialog( "destroy" );
+//            }
+//        } );
+//        $( "#divDialog" ).load( "http://localhost:8080" );
+//        $( "#divDialog" ).load( "project/credits_en.jsp" );
+
+//        $( "#middle" ).load( 'http://www.google.fr' );
+//        var $dialog = $( '<div></div>' )
+//                .load( 'http://www.google.fr' )
+//                .dialog( {
+//                             autoOpen: true,
+//                             title: "hop",
+//                             height: 400,
+//                             width: 750
+//                         } );
+//        $dialog.dialog( 'open' );
+
+//        $( '#report' ).dialog( {
+//            autoOpen: true,
+//            bgiframe: true,
+//            resizable: true,
+//            modal: false,
+//            width: 500,
+//            title: 'Signaler un problÃšme'
+//        } );
+//
+//        $( '#report' ).dialog( 'option', 'buttons', {
+//            'Signaler': function()
+//            {
+//                $( this ).dialog( 'close' );
+//            },
+//            'Fermer': function()
+//            {
+//                $( this ).dialog( 'close' );
+//            }
+//        } );
+////        $( '#report' ).load( "http://www.pole-ether.fr/cgi-bin/awstats/awstats.pl?config=tapas" ).dialog( 'open' );
+//        $( '#report' ).load( "http://www.google.fr" ).dialog( 'open' );
+
+//        $.load( "http://www.pole-ether.fr/cgi-bin/awstats/awstats.pl?config=tapas" ).dialog( {modal:true} );
+//        var printContent = new PrintContent();
+//
+//        printContent.addContent( $( "#title" ).clone() );
+//        printContent.addContent( this.leftTopSlide.getDivContainer().clone().animate( {'marginLeft' : "+=80px"} ) );
+//        printContent.addContent( this.leftMiddleSlide.getDivContainer().clone().animate( {'marginLeft' : "+=80px"} ) );
+//        printContent.addContent( this.leftBottomSlide.getDivContainer().clone().animate( {'marginLeft' : "+=80px"} ) );
+//        printContent.addContent( this.middleSlide.getDivContainer().clone().animate( {'marginLeft' : "+=120px"} ) );
+//        printContent.displayPrintPreview();
+    }
+
+} );
+
+</script>
Index: /ether_statistics/web/project/statistics.jsp
===================================================================
--- /ether_statistics/web/project/statistics.jsp	(revision 683)
+++ /ether_statistics/web/project/statistics.jsp	(revision 684)
@@ -15,10 +15,14 @@
     <ether:htmlCss cssFile="button"/>
     <%-- WIJMO --%>
-    <ether:htmlCss cssFile="Wijmo/rocket/jquery-wijmo"/>
-    <ether:htmlCss cssFile="Wijmo/jquery.wijmo-complete.all.2.0.0.min"/>
+    <%--<ether:htmlCss cssFile="Wijmo/rocket/jquery-wijmo"/>--%>
+    <%--<ether:htmlCss cssFile="Wijmo/jquery.wijmo-complete.all.2.0.0.min"/>--%>
 
     <ether:htmlCss cssFile="ether"/>
     <ether:htmlCss cssFile="statistics"/>
     <ether:htmlCss cssFile="printContent"/>
+
+    <ether:htmlJs jsFile="library/jquery-1.4.2.min"/>
+    <ether:htmlJs jsFile="library/jquery.class"/>
+    <ether:htmlJs jsFile="library/jquery.protify-0.3"/>
 
     <ether:htmlJs jsFile="library/jquery-1.8.2.min"/>
@@ -32,6 +36,6 @@
 
     <%-- WIJMO --%>
-    <ether:htmlJs jsFile="Wijmo.2.2.2/Wijmo-Open/js/jquery.wijmo-open.all.2.2.2.min"/>
-    <ether:htmlJs jsFile="Wijmo.2.2.2/Wijmo-Complete/js/jquery.wijmo-complete.all.2.2.2.min"/>
+    <%--<ether:htmlJs jsFile="Wijmo.2.2.2/Wijmo-Open/js/jquery.wijmo-open.all.2.2.2.min"/>--%>
+    <%--<ether:htmlJs jsFile="Wijmo.2.2.2/Wijmo-Complete/js/jquery.wijmo-complete.all.2.2.2.min"/>--%>
 
     <ether:htmlJsp jspFile="statistics-script"/>
Index: /ether_statistics/web/resources/css/statistics.css
===================================================================
--- /ether_statistics/web/resources/css/statistics.css	(revision 683)
+++ /ether_statistics/web/resources/css/statistics.css	(revision 684)
@@ -157,6 +157,6 @@
 #copy {
     position: absolute;
-    top: 497px;
-    left: 812px;
+    top: 513px;
+    left: 861px;
 }
 
@@ -175,18 +175,18 @@
 #help {
     position: absolute;
-    top: 247px;
-    left: 375px;
+    top: 255px;
+    left: 400px;
 }
 
 #credits {
     position: absolute;
-    top: 524px;
-    left: 695px;
+    top: 543px;
+    left: 752px;
 }
 
 #mentions {
     position: absolute;
-    top: 543px;
-    left: 725px;
+    top: 561px;
+    left: 779px;
 }
 
@@ -242,9 +242,27 @@
 }
 
-#loginRight {
+#loginMiddle {
     color: white;
 }
 
-#loginRight .containerStatisticsTitle {
+#loginMiddle .containerStatisticsTitle {
+    text-align: center;
+}
+
+#awstats {
+    position: absolute;
+}
+
+#awstats .containerStatisticsTitle {
+    background: -moz-linear-gradient(#F5F5F5, #DFF4FF) repeat scroll 0 0 transparent;
+    background: -ms-linear-gradient(#F5F5F5, #DFF4FF) repeat scroll 0 0 transparent; /*For IE10*/
+    background: -webkit-linear-gradient(#F5F5F5, #DFF4FF) repeat scroll 0 0 transparent; /*For IE10*/
+    filter: progid:DXImageTransform.Microsoft.gradient(GradientType = 0, startColorstr = '#F5F5F5', endColorstr = 'DFF4FF'); /*For IE7-8-9*/
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+    background-color: #F5F5F5;
+    border: 1px solid #336699;
+    color: #336699;
     text-align: center;
 }
@@ -285,9 +303,9 @@
 .action_button {
     width: 95%;
-    margin: 3px;
+    margin: 2px;
 }
 
 .export_button {
     float: right;
-    margin: 20px 6px 0 0;
-}
+    margin: 5px 6px 0 0;
+}
Index: /ether_statistics/web/resources/js/classesForJQuery/DragSlide.js
===================================================================
--- /ether_statistics/web/resources/js/classesForJQuery/DragSlide.js	(revision 683)
+++ /ether_statistics/web/resources/js/classesForJQuery/DragSlide.js	(revision 684)
@@ -28,4 +28,6 @@
         this.contentPageSlide = objectParameter.contentPageSlide ? objectParameter.contentPageSlide : false;
         this.isIndexToChange = objectParameter.isIndexToChange ? objectParameter.isIndexToChange : false;
+        // By default, we activate the double click to enlarge or reduce the slide
+        this.activeDbClick = !objectParameter.activeDbClick;
 
         this.divContainer = $( document.createElement( "div" ) );
@@ -54,5 +56,6 @@
         this.divContainer.resizable();
 //        this.divContainer.dblclick();
-        this.divTitle.dblclick( jQuery.proxy( this.onDbClickTitle, this ) );
+        if( this.activeDbClick )
+            this.divTitle.dblclick( jQuery.proxy( this.onDbClickTitle, this ) );
         this.divContainer.resize( jQuery.proxy( this.onResizeContainer, this ) );
     },
Index: /ether_statistics/web/src/messages_en.properties
===================================================================
--- /ether_statistics/web/src/messages_en.properties	(revision 683)
+++ /ether_statistics/web/src/messages_en.properties	(revision 684)
@@ -18,4 +18,5 @@
 label.print=Print
 label.unknown=Unknown
+label.awstats=Launch Awstats
 
 statistics.online=Online since
@@ -31,4 +32,11 @@
 statistics.duration.total=Total
 statistics.duration.average=Average
+statistics.domain=Domains / Countries
+statistics.summary=Summary
+statistics.monthly=Monthly history
+statistics.daily=Days of month
+statistics.daysofweek=Days of week
+statistics.hours=Hours
+statistics.visit.duration=Visits duration
 
 statistics.evolution=Statistics evolution
Index: /ether_statistics/web/src/messages_fr.properties
===================================================================
--- /ether_statistics/web/src/messages_fr.properties	(revision 683)
+++ /ether_statistics/web/src/messages_fr.properties	(revision 684)
@@ -18,4 +18,5 @@
 label.print=Imprimer
 label.unknown=Inconnu
+label.awstats=Lancer Awstats
 
 statistics.online=En ligne depuis le
@@ -31,4 +32,12 @@
 statistics.duration.total=Totale
 statistics.duration.average=Moyenne
+statistics.domain=Domaines / Pays
+statistics.summary=RÃ©sumÃ©
+statistics.monthly=Historique mensuel
+statistics.daily=Jours du mois
+statistics.daysofweek=Jours de la semaine
+statistics.hours=Heures
+statistics.visit.duration=DurÃ©e des visites
+
 
 statistics.evolution=Evolution des statistiques
Index: /ether_statistics/web/src/statistics.properties
===================================================================
--- /ether_statistics/web/src/statistics.properties	(revision 683)
+++ /ether_statistics/web/src/statistics.properties	(revision 684)
@@ -1,2 +1,18 @@
 mail.host=mailhost.ipsl.jussieu.fr
 mail.webmaster=vmipsl@ipsl.jussieu.fr
+# LOCAL
+#url.pages="/statistics/project/mentions_en.jsp"
+#url.domains="/statistics/project/credits_en.jsp"
+#url.downloads="/statistics/project/credits_fr.jsp"
+
+# PROD
+url.summary="/cgi-bin/awstats/awstats.pl?output=displaysummary&config="
+url.monthly="/cgi-bin/awstats/awstats.pl?output=displaymonthly&config="
+url.daily="/cgi-bin/awstats/awstats.pl?output=displaydaily&config="
+url.daysofweek="/cgi-bin/awstats/awstats.pl?output=displaydaysofweek&config="
+url.hours="/cgi-bin/awstats/awstats.pl?output=displayhours&config="
+url.sessions="/cgi-bin/awstats/awstats.pl?output=displaysessions&config="
+url.visited.pages="/cgi-bin/awstats/awstats.pl?output=urldetail&config="
+url.domains="/cgi-bin/awstats/awstats.pl?output=alldomains&config="
+url.downloads="/cgi-bin/awstats/awstats.pl?output=downloads&config="
+
