Index: /geisa/.idea/libraries/lib.xml
===================================================================
--- /geisa/.idea/libraries/lib.xml	(revision 673)
+++ /geisa/.idea/libraries/lib.xml	(revision 674)
@@ -57,4 +57,5 @@
       <root url="jar://$PROJECT_DIR$/web/WEB-INF/lib/mysql-connector-java-5.1.21-bin.jar!/" />
       <root url="jar://$PROJECT_DIR$/web/WEB-INF/lib/hibernate-c3p0-4.1.7.Final.jar!/" />
+      <root url="jar://$PROJECT_DIR$/web/WEB-INF/lib/c3p0-0.9.1.jar!/" />
     </CLASSES>
     <JAVADOC />
Index: /geisa/persistence/implementation/com/ether/dao/IsotopeG03DAOImpl.java
===================================================================
--- /geisa/persistence/implementation/com/ether/dao/IsotopeG03DAOImpl.java	(revision 673)
+++ /geisa/persistence/implementation/com/ether/dao/IsotopeG03DAOImpl.java	(revision 674)
@@ -15,4 +15,5 @@
 import java.util.List;
 import java.util.Set;
+
 
 /**
Index: /geisa/persistence/implementation/hibernate.cfg.xml
===================================================================
--- /geisa/persistence/implementation/hibernate.cfg.xml	(revision 673)
+++ /geisa/persistence/implementation/hibernate.cfg.xml	(revision 674)
@@ -20,30 +20,44 @@
                 <!--<prop key="hibernate.connection.username">postgres</prop>-->
                 <!--<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>-->
+                <!--<prop key="hibernate.generate_statistics">true</prop>-->
+                <!--<prop key="hibernate.connection.url">jdbc:mysql://localhost/geisa?autoReconnect=true</prop>-->
+
+
+                <!--<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
+                <prop key="hibernate.connection.url">jdbc:mysql://localhost/geisa</prop> -->
+                <!-- en local-->
+               <!--  <prop key="hibernate.connection.username">root</prop>-->
+                <!-- sur naboo -->
+                <!--<prop key="hibernate.connection.username">geisa</prop>-->
+               <!-- <prop key="hibernate.connection.password">geisa11</prop>
+                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
+                <prop key="hibernate.show_sql">true</prop> -->
+
+
+                <!-- configuration pool via c3p0-->
+               <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
                 <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
-                <!--<prop key="hibernate.connection.url">jdbc:mysql://localhost/geisa?autoReconnect=true</prop>-->
-                 <prop key="hibernate.connection.url">jdbc:mysql://localhost/geisa</prop>
+                <prop key="hibernate.connection.url">jdbc:mysql://localhost/geisa</prop>
+
                 <!-- en local-->
                 <prop key="hibernate.connection.username">root</prop>
                 <!-- sur naboo -->
-                 <!--<prop key="hibernate.connection.username">geisa</prop> -->
+                <!--<prop key="hibernate.connection.username">geisa</prop>-->
                 <prop key="hibernate.connection.password">geisa11</prop>
                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                 <prop key="hibernate.show_sql">true</prop>
-                <!--<prop key="hibernate.generate_statistics">true</prop>-->
+                <prop key="hibernate.c3p0.acquire_increment">1</prop><!-- Determines how many connections at a time c3p0 will try to acquire when the pool is exhausted-->
+                <prop key="hibernate.c3p0.idle_test_period">100</prop>  <!--seconds =idle time in seconds before a connection is automatically validated-->
+                <prop key="hibernate.c3p0.max_size">100</prop> <!--Taille maximale du pool-->
+                <prop key="hibernate.c3p0.min_size">10</prop> <!--Taille minimale du pool -->
+                <prop key="hibernate.c3p0.timeout">0</prop><!-- seconds / 0 never expire-->
+                <prop key="hibernate.c3p0.max_statements">0</prop><!--  Taille du cache de statements de C3P0. 0 = dÃ©sactive le cache -->
 
-                <!-- configuration pool via c3p0-->
-
-
-               <!--  <prop key="hibernate.c3p0.acquire_increment">1</prop>
-                <prop key="hibernate.c3p0.idle_test_period">100</prop> seconds -->
-               <!--  <prop key="hibernate.c3p0.max_size">100</prop> Taille maximale du pool -->
-               <!--  <prop key="hibernate.c3p0.min_size">10</prop> Taille minimale du pool -->
-               <!--  <prop key="hibernate.c3p0.timeout">0</prop> seconds / 0 =jamais-->
-               <!--  <prop key="hibernate.c3p0.max_statements">0</prop> Taille du cache de statements de C3P0. 0 = dÃ©sactive le cache -->
-               <!--  <prop key="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>-->
 
             </props>
         </property>
+
 	</bean>
+
 
 	<bean id="transactionManager"
Index: /geisa/web/initGeisa.jsp
===================================================================
--- /geisa/web/initGeisa.jsp	(revision 673)
+++ /geisa/web/initGeisa.jsp	(revision 674)
@@ -166,4 +166,23 @@
 
         <script type="text/javascript">
+            //tester le navigateur
+            var ua = navigator.userAgent,
+                    index,
+                    navigateur,
+                    version;
+            //dans le cas d'internet explorer
+            if((index = ua.indexOf('MSIE'))>=0) {
+                version = ua.match(/MSIE ([0-9]+(?:\.[0-9]+)*)/)[1];
+                var premierCaractere = version.charAt(0);
+            }
+           // Pour les versions d'Internet Explorer < 9   l'interface ne fonctionne pas
+            if  ( premierCaractere  < 9 )
+            {
+            alert("this tool does not work for Internet Explorer versions less than 9. You can use Internet Explorer from version 9 or other browser like firefox, google chrome");
+            }
+
+
+
+
             var initTexts = $A( "" );
 
Index: /geisa/web/initGeisa_script.jsp
===================================================================
--- /geisa/web/initGeisa_script.jsp	(revision 673)
+++ /geisa/web/initGeisa_script.jsp	(revision 674)
@@ -9,25 +9,9 @@
 
 
-//permet de deselectionner la molecule quand on deselectionne un isotope (toutes les options sauf lst)
-/*function decliquemol( name )
- {
-
- var inputs = document.getElementsByTagName( 'input' );
- var count = inputs.length;
- for( i = 0; i < count; i++ )
- {
- input = inputs.item( i );
- if( input.type == 'checkbox' && input.id == (name + '-all') && input.checked == true )
- {
- input.checked = false;
- }
- }
- } */
-
-
 var InterfaceInit = Class.create( {
 
             initialize: function()
             {
+
                 /** *********** CONTAINERS *********** **/
                 this.containerFormSpectralRangeLower = $( "#spectralRangeLower" );
@@ -516,9 +500,5 @@
 
                 //Titre
-                //var titleSpectralRangeLower = document.createTextNode("Upper Bound :");
-               // document.getElementById("spectralRangeLower").appendChild(titleSpectralRangeLower);
                 document.getElementById("spectralRangeLower").innerHTML = "Lower value, cm<sup>-1</sup> : ";
-                //var titleSpectralRangeUpper = document.createTextNode("Upper Bound :");
-               // document.getElementById("spectralRangeUpper").appendChild(titleSpectralRangeUpper);
                 document.getElementById("spectralRangeUpper").innerHTML = "Upper value, cm<sup>-1</sup> : ";
                 document.getElementById("samplingStep").innerHTML = "<br>Sampling step : ";
@@ -526,5 +506,4 @@
                 var inputSpectralRangeLower = $( document.createElement( "input" ) );
                 inputSpectralRangeLower.attr( {id:"rangeLower", class:"styleInputs"} );
-                inputSpectralRangeLower.val(0);
                 //pour mettre Ã  jour le menu dÃ©roulant des transitions
                 inputSpectralRangeLower.bind( 'blur', this, jQuery.proxy( this.requestTransition, this ));
@@ -533,5 +512,4 @@
                 var inputSpectralRangeUpper = $( document.createElement( "input" ) );
                 inputSpectralRangeUpper.attr( {id:"rangeUpper"} );
-                inputSpectralRangeUpper.val(35877.030506);
                 //pour mettre Ã  jour le menu dÃ©roulant des transitions lorsque l'on change la valeur du spectral range
                 inputSpectralRangeUpper.bind( 'blur', this, jQuery.proxy( this.requestTransition, this ));
@@ -544,11 +522,6 @@
                  //Zone texte Intensity
                 //Titre
-                //var titleIntensityLower = document.createTextNode("Lower Bound :");
-                //document.getElementById("intensityLower").appendChild(titleIntensityLower);
-                //var titleIntensityUpper = document.createTextNode("Upper Bound :");
-                //document.getElementById("intensityUpper").appendChild(titleIntensityUpper);
                   document.getElementById("intensityLower").innerHTML = "Lower value, cm/mol. : "
                   document.getElementById("intensityUpper").innerHTML = "Upper value, cm/mol. : "
-
                 //zone texte    IntensityLower
                 var inputIntensityLower = $( document.createElement( "input" ) );
@@ -582,17 +555,4 @@
                 this.selectTraceAxeY1.add( 'R', "Temperature of the air pressure shift ", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
                 this.selectTraceAxeY1.selectFirst( false );
-               //  this.selectTraceAxeY1 = $( document.createElement( "select" ) );
-               // this.selectTraceAxeY1.attr( {id:"selectAxeY1" } );
-                //this.selectTraceAxeY1.css("width", "100px");
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"B", text:"Intensity"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "B" ])));
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"C", text:"Air broadening pressure halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "C" ])));
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"D", text:"Energy of the lower transition level"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "D" ])));
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"F", text:"Temperature of the air broadening halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "F" ])));
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"N", text:"Self broadening pressure halfwidth (HWHM)"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "N" ])));
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"O", text:"Air pressure shift of the line transition"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "O" ])));
-               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"R", text:"Temperature of the air pressure shift"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "R" ])));
-               // $("#axeY1").append(this.selectTraceAxeY1);
-
-
 
                 // Create menu deroulant  type de graphe
@@ -613,13 +573,4 @@
                 this.selectNbCourbes.add( 'ci', "Separated isotopologues : same graph", jQuery.proxy(this.onClickSelectNbCourbes, this ) );
                 this.selectNbCourbes.selectFirst( false );
-                // this.selectNbCourbes = $( document.createElement( "select" ) );
-                //this.selectNbCourbes.attr( {id:"selectNbCourbes"} );
-               // this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"ca", text:"One curve for all selection"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "ca" ])));
-                //this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"cm", text:"One curve for each molecule selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "cm" ])));
-                //this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"ci", text:"One curve for each isotopologue selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "ci" ])));
-               // this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"gm", text:"One graph for each molecule selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "gm" ])));
-                //this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"gi", text:"One graph for each isotopologue selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "gi" ])));
-                //$("#nbCourbes").append(this.selectNbCourbes);
-
 
                 // Create menu deroulant  type d'Ã©chelle linÃ©aire ou logarithmique  pour le choix y1
@@ -635,13 +586,4 @@
                 this.selectScaleY1.add( '-log_scale', "Logarithmic" );
                 this.selectScaleY1.selectFirst( false );
-                //this.selectScaleY1 = $( document.createElement( "select" ) );
-               // this.selectScaleY1.attr( {id:"selectScaleY1"} );
-               // var optSelectScaleY1 = $( document.createElement( "option" ) );
-               // optSelectScaleY1.attr( {value:"l", text:"Linear"} );
-               // this.selectScaleY1.append(optSelectScaleY1);
-               // var optSelectScaleY1 = $( document.createElement( "option" ) );
-                //optSelectScaleY1.attr( {value:"-log_scale", text:"Logarithmic"} );
-               // this.selectScaleY1.append(optSelectScaleY1);
-               // $("#scaleY1").append(this.selectScaleY1);
 
 
@@ -662,13 +604,4 @@
                 this.selectTypeTraceY1.add( 'lp', "Lines and Dots" );
                 this.selectTypeTraceY1.selectFirst( false );
-                //this.selectTypeTraceY1 = $( document.createElement( "select" ) );
-                //this.selectTypeTraceY1.attr( {id:"selectTypePlotY1"} );
-                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"l", text:"Lines"} ));
-                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"p", text:"Dots"} ));
-                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"i", text:"Peaks"} ));
-                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"lp", text:"Lines and Dots"} ));
-                //$("#typePlotY1").append(this.selectTypeTraceY1);
-
-
 
 
@@ -684,14 +617,5 @@
                 var titleTransitionUpper = document.createTextNode("Upper state : ");
                 document.getElementById("transitionUpper").appendChild(titleTransitionUpper);
-
-
-                // Create menu deroulant  transition upper
-//                var paramSelectTransitionUpper = new Object();
-//                paramSelectTransitionUpper.id = "transition1";
-//                paramSelectTransitionUpper.parent = $("#transitionUpper");
-//                this.selectTransitionUpper = new Select( paramSelectTransitionUpper );
-//                this.selectTransitionUpper.add( '-1', "Select a molecule" );
-//                this.selectTransitionUpper.selectFirst( false );
-
+                 //titre  menu deroulant  transition upper
                 this.selectTransitionUpper = $( document.createElement( "select" ) );
                 this.selectTransitionUpper.attr( {id:"transition1"} );
@@ -700,6 +624,4 @@
                 var optTransitionUpper = $( document.createElement( "option" ) );
                 optTransitionUpper.attr( {value:"-1", text:"Select a molecule"} );
-                //var  transitionsLower ="000";
-                // opt2.bind( 'click', jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]));
                 this.selectTransitionUpper.append(optTransitionUpper);
                 $("#transitionUpper").append(this.selectTransitionUpper);
@@ -709,12 +631,5 @@
                 var titleTransitionLower = document.createTextNode("Lower state : ");
                 document.getElementById("transitionLower").appendChild(titleTransitionLower);
-
                 // Create menu deroulant  transition lower
-//                var paramSelectTransitionLower = new Object();
-//                paramSelectTransitionLower.id = "transition2";
-//                paramSelectTransitionLower.parent = $("#transitionLower");
-//                this.selectTransitionLower = new Select( paramSelectTransitionLower );
-//                this.selectTransitionLower.add( '-1', "Select a molecule");
-//                this.selectTransitionLower.selectFirst( false );
                 this.selectTransitionLower = $( document.createElement( "select" ) );
                 this.selectTransitionLower.attr( {id:"transition2"} );
@@ -727,38 +642,4 @@
                 //bouton reset pour les transition
                 var resetButton = new Button( {value:"Reset", parent:$( "#transitionReset" ), id:"buttonReset", className: "gray_button", onClick:jQuery.proxy( this.requestTransition, this )} );
-
-
-//                //menu dÃ©roulant  js   en javascript    sans passer par le modele
-//                var select = document.createElement('select');
-//                select.id = "transiEssai";
-//                select.name ="transiEssai";
-//
-//                var opt = document.createElement('option');
-//                opt.setAttribute('value','id1');
-//                var theText = document.createTextNode("id1");
-//                opt.appendChild(theText);
-//                select.appendChild(opt);
-//
-//                var opt = document.createElement('option');
-//                opt.setAttribute('value','id2');
-//                var theText = document.createTextNode("id2");
-//                opt.appendChild(theText);
-//
-//                //opt.onclick=jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]);
-//                    select.appendChild(opt);
-//                    document.getElementById("transitionLower").appendChild(select);
-
-
-                //menu dÃ©roulant en jquery    sans passer par le modele
-//                this.select2 = $( document.createElement( "select" ) );
-//                this.select2.attr( {id:"transiEssai2", name:"transiEssai2"} );
-//                var opt2 = $( document.createElement( "option" ) );
-//                opt2.attr( {value:"id3", text:"zzz"} );
-//                //var  transitionsLower ="000";
-//                // opt2.bind( 'click', jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]));
-//                this.select2.append(opt2);
-//                $("#transitionLower").append(this.select2);
-
-
 
 
@@ -793,15 +674,4 @@
                 this.selectTraceAxeY2.add( 'R', "Temperature of the air pressure shift ", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
                 this.selectTraceAxeY2.selectFirst( false );
-                //this.selectTraceAxeY2 = $( document.createElement( "select" ) );
-                //this.selectTraceAxeY2.attr( {id:"selectAxeY2"} );
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"no", text:"None"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "no" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"B", text:"Intensity"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "B" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"C", text:"Air broadening pressure halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "C" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"D", text:"Energy of the lower transition level"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "D" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"F", text:"Temperature of the air broadening halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "F" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"N", text:"Self broadening pressure halfwidth (HWHM)"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "N" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"O", text:"Air pressure shift of the line transition"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "O" ])));
-                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"R", text:"Temperature of the air pressure shift"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "R" ])));
-                //$("#axeY2").append(this.selectTraceAxeY2);
 
 
@@ -821,18 +691,4 @@
                 document.getElementById("scaleY2Titre").className = "notActiveText";
                 this.selectScaleY2.disable();
-
-
-                //this.selectScaleY2 = $( document.createElement( "select" ) );
-                //this.selectScaleY2.attr( {id:"selectScaleY2"} );
-                //var optSelectScaleY2 = $( document.createElement( "option" ) );
-                //optSelectScaleY2.attr( {value:"l", text:"Linear"} );
-               // this.selectScaleY2.append(optSelectScaleY2);
-               // var optSelectScaleY2 = $( document.createElement( "option" ) );
-               // optSelectScaleY2.attr( {value:"-log_scale2", text:"Logarithmic"} );
-                //this.selectScaleY2.append(optSelectScaleY2);
-                //$("#scaleY2").append(this.selectScaleY2);
-                //est inactif par defaut car selectTraceAxeY2 est positionne a none par defaut
-                //document.getElementById("scaleY2Titre").className = "notActiveText";
-                //document.getElementById("selectScaleY2" ).disabled=true;
 
 
@@ -854,15 +710,4 @@
                 document.getElementById("typePlotY2Titre").className = "notActiveText";
                 this.selectTypeTraceY2.disable();
-                //this.selectTypeTraceY2 = $( document.createElement( "select" ) );
-                //this.selectTypeTraceY2.attr( {id:"selectTypePlotY2"} );
-                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"l", text:"Lines"} ));
-                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"p", text:"Dots"} ));
-                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"i", text:"Peaks"} ));
-                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"lp", text:"Lines and Dots"} ));
-                //$("#typePlotY2").append(this.selectTypeTraceY2);
-                //est inactif par defaut car selectTraceAxeY2 est positionne a none par defaut
-               // document.getElementById("typePlotY2Titre").className = "notActiveText";
-               // document.getElementById("selectTypePlotY2" ).disabled=true;
-
 
 
@@ -882,7 +727,5 @@
 
 
-                //this.resetEssai = $( document.createElement( "input" ) );
-                //this.resetEssai.attr( {type:"reset", name:"reset"} );
-                //$("#boutonSubmit").append(this.resetEssai);
+
             },
 
@@ -901,7 +744,5 @@
                 var table = $(document.createElement("table"));
                 container.append(table);
-                // var tr = $(document.createElement("tr"));
-                // tr.attr({valign: "top"});
-                // table.append(tr);
+
                 var i=0;
                 //nombre de molecules par ligne
@@ -909,7 +750,5 @@
                 //taille du tableau
                 //alert("l" +moleculesArray.length);
-                // parseInt : partie entiÃšre
-                // var res =  parseInt(8/3);
-                //alert("res="+res);
+
 
                 $.each(moleculesArray, jQuery.proxy( function(index, moleculeElement )
@@ -996,10 +835,8 @@
             {
                 //temps en ms pour obtenir un nom unique de rÃ©pertoire
-                //this.dateTime = new Date().getTime();
                 var dateTime = new Date().getTime();
                 this.NomRepFileOut = "graph"+dateTime+"/";
 
-//                var verification = this.verifyBob();
-//                if(verification)
+
                 // appel ajax
 
@@ -1236,11 +1073,6 @@
                 //exemple de requete avec transition
                 //./all -filein line_GEISA2009_bin -moleisot h2o:161 -wavenb_min 1 -wavenb_max 1000 -database_name "GEISA2011" -vib_ident_lower '[000]'
-                //var TransitionUpper ="-vib_ident_upper '[ "+this.selectTransitionUpper.getValue()+" ]'";
                 var transitionUpper=document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value;
-                //Enlever les espaces blancs
-               // TransitionUp= TransitionUp.replace(/ /g,"");
-               //var TransitionUpper ="-vib_ident_upper ["+TransitionUp+"]";
-                // var transitionUpper = "["+transitionUp+"]";
-               // alert ("transitionUpper"+transitionUpper);
+
                 //certaine transitions ont plusieurs espaces Ã  droite qui ne sont pas conservÃ©s   (ex ch4 et C2HD)
                 //si la longueur de la chaine de caracteres n'est pas 25 on rajoute le nobre d'espace nÃ©cessaire pour arriver Ã  25
@@ -1254,34 +1086,20 @@
                 }
 
-                //alert("transitionUpper.length"+transitionUpper.length);
-                //transitionUpper=transitionUpper+" ";
-                //alert("transitionUpper.length"+transitionUpper.length);
-
-                // var TransitionLower ="-vib_ident_lower '[ "+this.selectTransitionLower.getValue()+" ]'";
+
                   var transitionLower=document.getElementById('transition2').options[document.getElementById('transition2').selectedIndex].value;
-                //  TransitionLo= TransitionLo.replace(/ /g,"");
-                 // var TransitionLower ="-vib_ident_lower ["+TransitionLo+"]";
-                //var transitionLower ="["+transitionLo+"]";
 
                 //certaine transitions ont plusieurs espaces Ã  droite qui ne sont pas conservÃ©s   (ex ch4 et C2HD)
                 //si la longueur de la chaine de caracteres n'est pas 25 on rajoute le nobre d'espace nÃ©cessaire pour arriver Ã  25
                 var nb=0;
-                nb=25-transitionUpper.length
+                nb=25-transitionLower.length
                 if (nb != 0)
                 {
                     for (i = 1; i <= nb; i++) {
-                       transitionUpper=transitionUpper+" ";
+                       transitionLower=transitionLower+" ";
                     }
                 }
 
                  //pas de transition sÃ©lectionnÃ©e
-                // if (( this.selectTransitionUpper.getValue()== -1) ||  (this.selectTransitionUpper.getValue() == "transition" ))
-                // {
-                // TransitionUpper ="";
-                // }
-                // if (( this.selectTransitionLower.getValue()== -1) ||  (this.selectTransitionLower.getValue() == "transition" ))
-                // {
-                // TransitionLower ="";
-                // }
+
                 if (( document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value == -1) ||  (document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value == "transition" ))
                 {
@@ -1305,5 +1123,4 @@
                  var sel = document.getElementById('transition1');
                  var idupper = sel.options[sel.selectedIndex].value;
-                  //alert("idupper"+idupper);
 
                 //Intensity range
@@ -1357,7 +1174,4 @@
                 //sÃ©lection du premier choix pour l'axe des Y
                  var field="-field "+this.selectTraceAxeY1.getValue();
-                //   var field="-field "+document.getElementById('selectAxeY1').options[document.getElementById('selectAxeY1').selectedIndex].value;
-
-
 
 
@@ -1371,12 +1185,5 @@
                     var logScale = ""
                 }
-               // if  (document.getElementById('selectScaleY1').options[document.getElementById('selectScaleY1').selectedIndex].value == '-log_scale' && document.getElementById("selectScaleY1" ).disabled == false)
-               // {
-               //     var logScale = document.getElementById('selectScaleY1').options[document.getElementById('selectScaleY1').selectedIndex].value;
-                //}
-                //else
-               // {
-               //     var logScale = ""
-               // }
+
 
 
@@ -1388,5 +1195,4 @@
                 //sÃ©lection ou non d'un 2eme choix pour l'axe des Y   (pas de valeur pour ce champ si choix none ou si l'option n'est pas activÃ©e)
                 if  (this.selectTraceAxeY2.getValue() == 'no' ||  this.selectTraceAxeY2.isDisable == true)
-                //if  (document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value == 'no' ||  document.getElementById("selectAxeY2" ).disabled == true)
                 {
                     var field2 = "";
@@ -1400,5 +1206,4 @@
                 //sÃ©lection du type d'Ã©chelle pour le parametre Y2 (il y a une valeur pour ce champ que si logaritmic est choisi et si l'option est activÃ©e)
                 if  (this.selectScaleY2.getValue() == '-log_scale2' && this.selectScaleY2.isDisable == false)
-               //  if  (document.getElementById('selectScaleY2').options[document.getElementById('selectScaleY2').selectedIndex].value == '-log_scale2' && document.getElementById("selectScaleY2" ).disabled == false)
                 {
                     var logScale2 =this.selectScaleY2.getValue();
@@ -1413,5 +1218,4 @@
                 //sÃ©lection du type de tracÃ© pour Y2  (pas de valeur  si l'option n'est pas activÃ©e)
                 if  ( this.selectTypeTraceY2.isDisable == true)
-               // if  ( document.getElementById("selectTypePlotY2" ).disabled == true)
                 {
                     var lineType2 = "";
@@ -1420,5 +1224,4 @@
                 {
                     var lineType2 = "-line_type2 "+this.selectTypeTraceY2.getValue();
-                    // var lineType2 = "-line_type2 "+document.getElementById('selectTypePlotY2').options[document.getElementById('selectTypePlotY2').selectedIndex].value;
                 }
 
@@ -1431,11 +1234,8 @@
 
                 //construction de la requÃªte Fortran
-               // var parameters = "&fortranRequest="+paramBase+" "+isotopesSelectedName+" "+rangeLower+" "+rangeUpper+" "+TransitionUpper+" "+TransitionLower+" "+intensityLower+" "+intensityUpper+" "+
-                                      // meanValue+" "+nbCourbes+" "+field+" "+logScale+" "+lineType+" "+field2+" "+logScale2+" "+lineType2;
 
                 var parameters = "&fortranRequest="+paramBase+" "+isotopesSelectedName+" "+rangeLower+" "+rangeUpper+" "+samplingStep+" "+intensityLower+" "+intensityUpper+" "+
                                        meanValue+" "+nbCourbes+" "+field+" "+logScale+" "+lineType+" "+field2+" "+logScale2+" "+lineType2;
 
-                 //alert ("parameters"+parameters);
 
                 //remplacement de espace par "EEE" pour que le shell script ne voit qu'un seul argument en entrÃ©e
@@ -1453,6 +1253,4 @@
                 //en cas de succes appel de la fonction "handleGeisa"
                 $.ajax( {
-                            //url: "project?methodName=createUserRequest&"+parameters+"&nbGraph="+ this.nbGraph,
-                            //url: "project?methodName=createUserRequest&"+parameters+"&transitionUpper="+ transitionUpper+"&transitionLower="+ transitionLower+"&nbGraph="+ this.nbGraph,
                             url: "project?methodName=createUserRequest&"+parameters+"&transitionUpper="+ transitionUpper+"&transitionLower="+ transitionLower+"&nbGraph="+ this.nbGraph+"&nomFichier="+this.nomFichier+"&NomRepFileOut="+this.NomRepFileOut,
                             success:jQuery.proxy( this.handleGeisa, this )
@@ -1500,7 +1298,4 @@
                 if (nbMolecules > 1)
                 {
-
-                    //this.selectTransitionLower.disable();
-                    //this.selectTransitionUpper.disable();
                     //ajoute une classe Ã  celle dÃ©jÃ  existante de transitionUpper
                     $("#transitionUpper").addClass("notActiveText");
@@ -1509,6 +1304,4 @@
                 else
                 {
-                    //this.selectTransitionLower.enable();
-                    //this.selectTransitionUpper.enable();
                     $("#transitionUpper").removeClass("notActiveText");
                     $("#transitionLower").removeClass("notActiveText");
@@ -1519,8 +1312,5 @@
                 if (nbMolecules == 1 )
                 {
-//                    $.ajax( {
-//                                url: "project?methodName=getTransitionByIsotopeName&isotopesSelectedName="+isotopesSelectedName+"&GeisaSelectedDatabase="+GeisaSelectedDatabase+"&spectralRangeLower="+spectralRangeLower+"&spectralRangeUpper="+spectralRangeUpper,
-//                                success:jQuery.proxy( this.handleRequestTransition, this )
-//                            } );
+
 
                     $.ajax( {
@@ -1540,7 +1330,5 @@
                     if (nbMolecules == 0 )
                     {
-                        //this.selectTransitionLower.add('-1', "Select a molecule");
                         this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"Select a molecule", selected:"selected"} ));
-                        //this.selectTransitionUpper.add('-1', "Select a molecule");
                         this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"Select a molecule", selected:"selected"} ));
                         //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
@@ -1551,7 +1339,6 @@
                     if (nbMolecules > 1 )
                     {
-                        //this.selectTransitionLower.add('-1', "Select a molecule");
+
                         this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"", selected:"selected", disabled:"disabled"} ));
-                        //this.selectTransitionUpper.add('-1', "Select a molecule");
                         this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"", selected:"selected", disabled:"disabled"} ));
                         //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
@@ -1713,16 +1500,15 @@
                  var transitionsUpper = jQuery.parseJSON( result ).transitionsUpper;
 
-                 //pour vider les menus dÃ©roulant des transitions prÃ©cÃ©dentes
-                 // this.selectTransitionLower.clear();
+                //pour vider les menus dÃ©roulant des transitions prÃ©cÃ©dentes
+                // this.selectTransitionLower.clear();
                 document.getElementById("transition2").length=0;
                 //this.selectTransitionUpper.clear();
                 document.getElementById("transition1").length=0;
+
                 // this.selectTransitionLower.add('transition', "Choose a transition");
                 this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
-
                 // this.selectTransitionUpper.add('transition', "Choose a transition");
                 this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
-
-                 //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
+                //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
                 // this.selectTransitionLower.selectFirst();
                 // this.selectTransitionUpper.selectFirst();
@@ -1754,6 +1540,6 @@
                 document.getElementById("transition1").length=0;
 
-               this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"errorRequest", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
-               this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"errorRequest", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+               this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"requestError", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+               this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"requestError", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
 
             },
@@ -2127,16 +1913,39 @@
             OnclickVerifTransition : function()
             {
+                //si l'utilisateur change les valeurs de spectral range et clique directement sur le menu dÃ©roulant des transitions
+                //le menu dÃ©roulant ne se met pas Ã  jour avant de faire la vÃ©rification
+                this.containerFormSpectralRangeLower.blur();
+                this.containerFormSpectralRangeUpper.blur();
+
+
+
+
                 //si il n'y a qu'un Ã©lÃ©ment dans les menu dÃ©roulant transition upper et lower et que la valeur est "transition"
                 //cas oÃ¹ la requete utilisateur est correct mais il n'y a pas de transition pour cette molecule t ce domaine spectral
                 if (document.getElementById('transition1').length==1 && document.getElementById('transition1').options[0].value=="transition" && document.getElementById('transition2').length==1 && document.getElementById('transition2').options[0].value=="transition")
                 {
-                 alert("Change isotopologues selection or spectral range values to obtain transition values");
+                   // document.getElementById( "transitionUpper" ).style.display = "none";
+                   // document.getElementById( "transitionLower" ).style.display = "none";
+                    this.selectTransitionUpper.blur();
+                    this.selectTransitionLower.blur();
+                    alert("Change isotopologues selection or spectral range values to obtain transition values");
+
+                    //document.getElementById( "transitionUpper" ).style.display = "";
+                    //document.getElementById( "transitionLower" ).style.display = "";
                 }
                 //si il n'y a qu'un Ã©lÃ©ment dans les menu dÃ©roulant transition upper et lower et que la valeur est "transition"
                 //cas oÃ¹ la requete est fausse = les valeurs du domaine spectral sont fausses
-                if (document.getElementById('transition1').length==1 && document.getElementById('transition1').options[0].value=="errorRequest" && document.getElementById('transition2').length==1 && document.getElementById('transition2').options[0].value=="errorRequest")
-                {
+                if (document.getElementById('transition1').length==1 && document.getElementById('transition1').options[0].value=="requestError" && document.getElementById('transition2').length==1 && document.getElementById('transition2').options[0].value=="requestError")
+                {
+                    this.selectTransitionUpper.blur();
+                    this.selectTransitionLower.blur();
+                 //document.getElementById( "transitionUpper" ).style.display = "none";
+                // document.getElementById( "transitionLower" ).style.display = "none";
                  alert("Change spectral range values to obtain transition values");
-                }
+                // document.getElementById( "transitionUpper" ).style.display = "";
+                // document.getElementById( "transitionLower" ).style.display = "";
+                }
+
+
             },
 
Index: /geisa/web/initGeisa_script_OLD.jsp
===================================================================
--- /geisa/web/initGeisa_script_OLD.jsp	(revision 674)
+++ /geisa/web/initGeisa_script_OLD.jsp	(revision 674)
@@ -0,0 +1,2485 @@
+<%@ page import="com.ether.Controller" %>
+<%@ page import="com.ether.IsotopeG03" %>
+<%@ page import="com.ether.IsotopeIasiG03" %>
+<%@ page import="com.ether.IsotopeG09" %>
+<%@ page import="com.ether.IsotopeIasiG09" %>
+
+<script type="text/javascript">
+
+
+
+//permet de deselectionner la molecule quand on deselectionne un isotope (toutes les options sauf lst)
+/*function decliquemol( name )
+ {
+
+ var inputs = document.getElementsByTagName( 'input' );
+ var count = inputs.length;
+ for( i = 0; i < count; i++ )
+ {
+ input = inputs.item( i );
+ if( input.type == 'checkbox' && input.id == (name + '-all') && input.checked == true )
+ {
+ input.checked = false;
+ }
+ }
+ } */
+
+
+var InterfaceInit = Class.create( {
+
+            initialize: function()
+            {
+                /** *********** CONTAINERS *********** **/
+                this.containerFormSpectralRangeLower = $( "#spectralRangeLower" );
+                this.containerFormSpectralRangeUpper = $( "#spectralRangeUpper" );
+                this.containerFormIntensityLower = $( "#intensityLower" );
+                this.containerFormIntensityUpper = $( "#intensityUpper" );
+                this.containerFormMeanValue1 = $( "#meanValue1" );
+                this.containerDownload = $( "#downloadContainer" );
+                this.containerLoading = $( "#loading" );
+                this.containerTabs = $("#tabs");
+
+                /** *********** VARIABLE *********** **/
+                //on va chercher les chemin dÃ©clarÃ© dans le controller
+                this.pathProcess = "<%=Controller.PATH_PROCESS%>";
+                this.LongPathImages = "<%=Controller.LONG_PATH_IMAGES%>";
+
+                <%--this.pathImg = <%=Controller.PATH_IMAGES%>;--%>
+
+                this.initializeMolecules();
+                this.createForm();
+
+                var downloadButton = new Button( {value:"Download", parent:$( "#downloadContainer" ), id:"button_submit_2", className: "red_button", classNameText:"red_button_text", onClick:jQuery.proxy( this.onClickDownload, this )} );
+
+                var ntab = new Tab( {value:"pif", parent:this.containerTabs, numTab: 1, id:"tab_test1", className: "tab_class", onClick:jQuery.proxy( this.onClickTab, this )} );
+                ntab.active();
+            },
+
+            initializeMolecules: function()
+            {
+                this.arrayGeisa2011 = new Array();
+                this.arrayGeisa2003 = new Array();
+                this.arrayGeisaIasi2011 = new Array();
+                this.arrayGeisaIasi2003 = new Array();
+
+                var molecule = new Object();
+                molecule.id="h2o";
+                molecule.name="H<sub>2</sub>O";
+                molecule.isotopesArray = ["161", "162", "171", "181", "182", "172"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="co2";
+                molecule.name="CO<sub>2</sub>";
+                molecule.isotopesArray = ["626", "627", "628", "636", "637", "638", "728", "828", "838"];
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="o3";
+                molecule.name="O<sub>3</sub>";
+                molecule.isotopesArray = ["666", "668", "686", "667", "676"];
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="n2o";
+                molecule.name="N<sub>2</sub>O";
+                molecule.isotopesArray = ["446", "447", "448", "456","458", "546", "548", "556"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="n2o";
+                molecule.name="N<sub>2</sub>O";
+                molecule.isotopesArray = ["446", "447", "448", "456", "546"];
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="co";
+                molecule.name="CO";
+                molecule.isotopesArray = ["26", "36", "28", "27", "38", "37"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch4";
+                molecule.name="CH<sub>4</sub>";
+                molecule.isotopesArray = ["211", "311"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch4";
+                molecule.name="CH<sub>4</sub>";
+                molecule.isotopesArray = ["211", "311", "212", "312"];
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch4";
+                molecule.name="CH<sub>4</sub>";
+                molecule.isotopesArray = ["211", "311", "212"];
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="o2";
+                molecule.name="O<sub>2</sub>";
+                molecule.isotopesArray = ["66", "67", "68"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="o2";
+                molecule.name="O<sub>2</sub>";
+                molecule.isotopesArray = ["66"];
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="no";
+                molecule.name="NO";
+                molecule.isotopesArray = ["46", "48", "56"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="so2";
+                molecule.name="SO<sub>2</sub>";
+                molecule.isotopesArray = ["626", "646"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="no2";
+                molecule.name="NO<sub>2</sub>";
+                molecule.isotopesArray = ["646"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="nh3";
+                molecule.name="NH<sub>3</sub>";
+                molecule.isotopesArray = ["411", "511" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ph3";
+                molecule.name="PH<sub>3</sub>";
+                molecule.isotopesArray = ["131" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hno3";
+                molecule.name="HNO<sub>3</sub>";
+                molecule.isotopesArray = ["146" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="oh";
+                molecule.name="OH";
+                molecule.isotopesArray = ["61", "62", "81" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hf";
+                molecule.name="HF";
+                molecule.isotopesArray = ["19" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hcl";
+                molecule.name="HCL";
+                molecule.isotopesArray = ["15", "17" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hbr";
+                molecule.name="HBR";
+                molecule.isotopesArray = ["11", "19" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hi";
+                molecule.name="HI";
+                molecule.isotopesArray = ["17" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="clo";
+                molecule.name="ClO";
+                molecule.isotopesArray = ["56", "76" ];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ocs";
+                molecule.name="OCS";
+                molecule.isotopesArray = ["622", "624", "632", "623", "822", "634"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="h2co";
+                molecule.name="H<sub>2</sub>CO";
+                molecule.isotopesArray = ["126", "128", "136"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="h2co";
+                molecule.name="H<sub>2</sub>CO";
+                molecule.isotopesArray = ["126"];
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c2h6";
+                molecule.name="C<sub>2</sub>H<sub>6</sub>";
+                molecule.isotopesArray = ["226", "236"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch3d";
+                molecule.name="CH<sub>3</sub>D";
+                molecule.isotopesArray = ["212", "312"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch3d";
+                molecule.name="CH<sub>3</sub>D";
+                molecule.isotopesArray = ["212"];
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c2h2";
+                molecule.name="C<sub>2</sub>H<sub>2</sub>";
+                molecule.isotopesArray = ["221", "231"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c2h4";
+                molecule.name="C<sub>2</sub>H<sub>4</sub>";
+                molecule.isotopesArray = ["211", "311"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="geh4";
+                molecule.name="GeH<sub>4</sub>";
+                molecule.isotopesArray = ["411"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hcn";
+                molecule.name="HCN";
+                molecule.isotopesArray = ["124", "125", "134", "224"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hcn";
+                molecule.name="HCN";
+                molecule.isotopesArray = ["124", "125", "134"];
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c3h8";
+                molecule.name="C<sub>3</sub>H<sub>8</sub>";
+                molecule.isotopesArray = ["221"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c2n2";
+                molecule.name="C<sub>2</sub>N<sub>2</sub>";
+                molecule.isotopesArray = ["224"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c4h2";
+                molecule.name="C<sub>4</sub>H<sub>2</sub>";
+                molecule.isotopesArray = ["211"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hc3n";
+                molecule.name="HC<sub>3</sub>N";
+                molecule.isotopesArray = ["124"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hocl";
+                molecule.name="HOCl";
+                molecule.isotopesArray = ["165", "167"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="n2";
+                molecule.name="N<sub>2</sub>";
+                molecule.isotopesArray = ["44"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+                this.arrayGeisaIasi2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch3cl";
+                molecule.name="CH<sub>3</sub>Cl";
+                molecule.isotopesArray = ["215", "217"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="h2o2";
+                molecule.name="H<sub>2</sub>O<sub>2</sub>";
+                molecule.isotopesArray = ["166"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="h2s";
+                molecule.name="H<sub>2</sub>S";
+                molecule.isotopesArray = ["121", "141", "131"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hcooh";
+                molecule.name="HCOOH";
+                molecule.isotopesArray = ["261"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="cof2";
+                molecule.name="COF<sub>2</sub>";
+                molecule.isotopesArray = ["269"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="sf6";
+                molecule.name="SF<sub>6</sub>";
+                molecule.isotopesArray = ["29"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c3h4";
+                molecule.name="C<sub>3</sub>H<sub>4</sub>";
+                molecule.isotopesArray = ["341"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ho2";
+                molecule.name="HO<sub>2</sub>";
+                molecule.isotopesArray = ["166"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="clono2";
+                molecule.name="ClONO<sub>2</sub>";
+                molecule.isotopesArray = ["564", "764"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisa2003.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch3br";
+                molecule.name="CH<sub>3</sub>Br";
+                molecule.isotopesArray = ["79", "81"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch3oh";
+                molecule.name="CH<sub>3</sub>OH";
+                molecule.isotopesArray = ["216"];
+                this.arrayGeisa2011.push(molecule);
+                this.arrayGeisaIasi2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="noplus";
+                molecule.name="NO<sup>+</sup>";
+                molecule.isotopesArray = ["46"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="hnc";
+                molecule.name="HNC";
+                molecule.isotopesArray = ["142"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c6h6";
+                molecule.name="C<sub>6</sub>H<sub>6</sub>";
+                molecule.isotopesArray = ["266"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="c2hd";
+                molecule.name="C<sub>2</sub>HD";
+                molecule.isotopesArray = ["122"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="cf4";
+                molecule.name="CF<sub>4</sub>";
+                molecule.isotopesArray = ["291"];
+                this.arrayGeisa2011.push(molecule);
+
+                var molecule = new Object();
+                molecule.id="ch3cn";
+                molecule.name="CH<sub>3</sub>CN";
+                molecule.isotopesArray = ["234"];
+                this.arrayGeisa2011.push(molecule);
+
+
+            },
+
+// CREATES ********************************************************
+            createForm: function()
+            {
+                //Titre de la page
+                var titlePage = document.createTextNode("Graphic vizualisation of the  GEISA  database");
+                document.getElementById("titlePage").appendChild(titlePage);
+
+                // Create menu deroulant  choix de la base
+                var paramDatabase = new Object();
+                paramDatabase.id = "selectDatabase";
+                paramDatabase.parent = $("#database1");
+                this.selectDatabase = new Select( paramDatabase );
+                this.selectDatabase.add( 'GEISA2011', "GEISA 2011", jQuery.proxy(this.onClickSelectDatabase, this), '<%=IsotopeG09.class%>' );
+                this.selectDatabase.add( 'GEISAIASI2011', "GEISA-IASI 2011", jQuery.proxy(this.onClickSelectDatabase, this), '<%=IsotopeIasiG09.class%>' );
+                this.selectDatabase.add( 'GEISA2003', "GEISA 2003", jQuery.proxy(this.onClickSelectDatabase, this), '<%=IsotopeG03.class%>' );
+                this.selectDatabase.add( 'GEISAIASI2003', "GEISA-IASI 2003", jQuery.proxy(this.onClickSelectDatabase, this), '<%=IsotopeIasiG03.class%>' );
+                this.selectDatabase.selectFirst( false );
+                 var bob = this.selectDatabase.getValues();
+
+
+                //crÃ©ation du bloc des molÃ©cules
+                this.createMolecules($('#BDD-GEISA2011'), this.arrayGeisa2011, "GEISA2011");
+                this.createMolecules($('#BDD-GEISA2003'), this.arrayGeisa2003, "GEISA2003");
+                this.createMolecules($('#BDD-GEISAIASI2011'), this.arrayGeisaIasi2011, "GEISAIASI2011");
+                this.createMolecules($('#BDD-GEISAIASI2003'), this.arrayGeisaIasi2003, "GEISAIASI2003");
+
+                //bouton selection-deselection toutes les molÃ©cules et isotopes
+                this.selectButton = new Button( {value:"Select all isotopologues", parent:$( "#selectAndShow" ), id:"buttonSelect", className: "gray_button", onClick:jQuery.proxy( this.selectAll, this )} );
+                //bouton montrer-cacher les isotopes
+                this.showButton = new Button( {value:"View all isotopologues", parent:$( "#selectAndShow" ), id:"buttonShow", className: "gray_button", onClick:jQuery.proxy( this.viewAll, this )} );
+
+
+
+                //Zone texte  SpectralRange
+                //Titre gÃ©nÃ©ral (qui changera en fonction de la base geisa choisie)
+                document.getElementById('spectralRangeTitre').innerHTML = "";
+                document.getElementById('spectralRangeTitre').innerHTML = "Choosing the spectral range (0 to 35877.030506 cm<sup>-1</sup>) :";
+
+                //Titre
+                //var titleSpectralRangeLower = document.createTextNode("Upper Bound :");
+               // document.getElementById("spectralRangeLower").appendChild(titleSpectralRangeLower);
+                document.getElementById("spectralRangeLower").innerHTML = "Lower value, cm<sup>-1</sup> : ";
+                //var titleSpectralRangeUpper = document.createTextNode("Upper Bound :");
+               // document.getElementById("spectralRangeUpper").appendChild(titleSpectralRangeUpper);
+                document.getElementById("spectralRangeUpper").innerHTML = "Upper value, cm<sup>-1</sup> : ";
+                document.getElementById("samplingStep").innerHTML = "<br>Sampling step : ";
+                //zone texte  SpectralRangeLower
+                var inputSpectralRangeLower = $( document.createElement( "input" ) );
+                inputSpectralRangeLower.attr( {id:"rangeLower", class:"styleInputs"} );
+                //inputSpectralRangeLower.val(0);
+                //pour mettre Ã  jour le menu dÃ©roulant des transitions
+                inputSpectralRangeLower.bind( 'blur', this, jQuery.proxy( this.requestTransition, this ));
+                this.containerFormSpectralRangeLower.append( inputSpectralRangeLower );
+                //zone texte   SpectralRangeUpper
+                var inputSpectralRangeUpper = $( document.createElement( "input" ) );
+                inputSpectralRangeUpper.attr( {id:"rangeUpper"} );
+                //inputSpectralRangeUpper.val(35877.030506);
+                //pour mettre Ã  jour le menu dÃ©roulant des transitions lorsque l'on change la valeur du spectral range
+                inputSpectralRangeUpper.bind( 'blur', this, jQuery.proxy( this.requestTransition, this ));
+                this.containerFormSpectralRangeUpper.append( inputSpectralRangeUpper );
+                //zone texte   Sampling step
+                var inputSamplingStep = $( document.createElement( "input" ) );
+                inputSamplingStep.attr( {id:"sampStep", size:6} );
+                $("#samplingStep").append( inputSamplingStep );
+
+                 //Zone texte Intensity
+                //Titre
+                //var titleIntensityLower = document.createTextNode("Lower Bound :");
+                //document.getElementById("intensityLower").appendChild(titleIntensityLower);
+                //var titleIntensityUpper = document.createTextNode("Upper Bound :");
+                //document.getElementById("intensityUpper").appendChild(titleIntensityUpper);
+                  document.getElementById("intensityLower").innerHTML = "Lower value, cm/mol. : "
+                  document.getElementById("intensityUpper").innerHTML = "Upper value, cm/mol. : "
+
+                //zone texte    IntensityLower
+                var inputIntensityLower = $( document.createElement( "input" ) );
+                inputIntensityLower.attr( {id:"intensityLo", class:"styleInputs"} );
+                inputIntensityLower.val(0);
+                this.containerFormIntensityLower.append( inputIntensityLower );
+                //zone texte    IntensityUpper
+                var inputIntensityUpper = $( document.createElement( "input" ) );
+                inputIntensityUpper.attr( {id:"intensityUp"} );
+                inputIntensityUpper.val(1e-16);
+                this.containerFormIntensityUpper.append( inputIntensityUpper );
+
+
+                // Create menu deroulant  1er choix axe des y
+                //Titre
+                var titleAxeY1 = document.createTextNode("Select parameter (left Y-axis)");
+                document.getElementById("axeY1").appendChild(titleAxeY1);
+                var spaceBr = document.createElement ("br");
+                document.getElementById("axeY1").appendChild(spaceBr);
+                //menu dÃ©roulant
+                var paramSelectAxeY1 = new Object();
+                paramSelectAxeY1.id = "selectAxeY1";
+                paramSelectAxeY1.parent = $("#axeY1");
+                this.selectTraceAxeY1 = new Select( paramSelectAxeY1 );
+                this.selectTraceAxeY1.add( 'B', "Intensity", jQuery.proxy(this.onClickSelectTraceAxeY1, this ));
+                this.selectTraceAxeY1.add( 'C', "Air broadening pressure halfwidth", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                this.selectTraceAxeY1.add( 'D', "Energy of the lower transition level", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                this.selectTraceAxeY1.add( 'F', "Temperature of the air broadening halfwidth ", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                this.selectTraceAxeY1.add( 'N', "Self broadening pressure halfwidth (HWHM)", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                this.selectTraceAxeY1.add( 'O', "Air pressure shift of the line transition", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                this.selectTraceAxeY1.add( 'R', "Temperature of the air pressure shift ", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                this.selectTraceAxeY1.selectFirst( false );
+               //  this.selectTraceAxeY1 = $( document.createElement( "select" ) );
+               // this.selectTraceAxeY1.attr( {id:"selectAxeY1" } );
+                //this.selectTraceAxeY1.css("width", "100px");
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"B", text:"Intensity"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "B" ])));
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"C", text:"Air broadening pressure halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "C" ])));
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"D", text:"Energy of the lower transition level"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "D" ])));
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"F", text:"Temperature of the air broadening halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "F" ])));
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"N", text:"Self broadening pressure halfwidth (HWHM)"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "N" ])));
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"O", text:"Air pressure shift of the line transition"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "O" ])));
+               // this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"R", text:"Temperature of the air pressure shift"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "R" ])));
+               // $("#axeY1").append(this.selectTraceAxeY1);
+
+
+
+                // Create menu deroulant  type de graphe
+                 //Titre
+                var titleTypeTrace = document.createTextNode("Type of graph");
+                document.getElementById("nbCourbes").appendChild(titleTypeTrace);
+                var spaceBr = document.createElement ("br");
+                document.getElementById("nbCourbes").appendChild(spaceBr);
+                //menu dÃ©roulant
+                var paramNbCourbes = new Object();
+                paramNbCourbes.id = "selectNbCourbes";
+                paramNbCourbes.parent = $("#nbCourbes");
+                this.selectNbCourbes = new Select( paramNbCourbes );
+                this.selectNbCourbes.add( 'ca', "One curve for all selection", jQuery.proxy(this.onClickSelectNbCourbes, this ) );
+                this.selectNbCourbes.add( 'cm', "Separated molecules : same graph", jQuery.proxy(this.onClickSelectNbCourbes, this ) );
+                this.selectNbCourbes.add( 'gm', "Separated molecules : different graphs", jQuery.proxy(this.onClickSelectNbCourbes, this ) );
+                this.selectNbCourbes.add( 'gi', "Separated isotopologues : different graphs", jQuery.proxy(this.onClickSelectNbCourbes, this ) );
+                this.selectNbCourbes.add( 'ci', "Separated isotopologues : same graph", jQuery.proxy(this.onClickSelectNbCourbes, this ) );
+                this.selectNbCourbes.selectFirst( false );
+                // this.selectNbCourbes = $( document.createElement( "select" ) );
+                //this.selectNbCourbes.attr( {id:"selectNbCourbes"} );
+               // this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"ca", text:"One curve for all selection"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "ca" ])));
+                //this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"cm", text:"One curve for each molecule selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "cm" ])));
+                //this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"ci", text:"One curve for each isotopologue selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "ci" ])));
+               // this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"gm", text:"One graph for each molecule selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "gm" ])));
+                //this.selectNbCourbes.append($( document.createElement( "option" ) ).attr( {value:"gi", text:"One graph for each isotopologue selected"} ).bind( 'click', jQuery.proxy(this.onClickSelectNbCourbes, [this, "gi" ])));
+                //$("#nbCourbes").append(this.selectNbCourbes);
+
+
+                // Create menu deroulant  type d'Ã©chelle linÃ©aire ou logarithmique  pour le choix y1
+                //Titre
+                var titleScaleY1 = document.createTextNode("Select the type of Scale (if intensity is choosen)");
+                document.getElementById("scaleY1Titre").appendChild(titleScaleY1);
+                //menu dÃ©roulant
+                var paramSelectScaleY1 = new Object();
+                paramSelectScaleY1.id = "selectScaleY1";
+                paramSelectScaleY1.parent = $("#scaleY1");
+                this.selectScaleY1 = new Select( paramSelectScaleY1 );
+                this.selectScaleY1.add( 'l', "Linear" );
+                this.selectScaleY1.add( '-log_scale', "Logarithmic" );
+                this.selectScaleY1.selectFirst( false );
+                //this.selectScaleY1 = $( document.createElement( "select" ) );
+               // this.selectScaleY1.attr( {id:"selectScaleY1"} );
+               // var optSelectScaleY1 = $( document.createElement( "option" ) );
+               // optSelectScaleY1.attr( {value:"l", text:"Linear"} );
+               // this.selectScaleY1.append(optSelectScaleY1);
+               // var optSelectScaleY1 = $( document.createElement( "option" ) );
+                //optSelectScaleY1.attr( {value:"-log_scale", text:"Logarithmic"} );
+               // this.selectScaleY1.append(optSelectScaleY1);
+               // $("#scaleY1").append(this.selectScaleY1);
+
+
+                // Create menu deroulant  style de tracer   Y1
+                //Titre
+                var titleTypeTrace = document.createTextNode("Select the type of plot");
+                document.getElementById("typePlotY1").appendChild(titleTypeTrace);
+                var spaceBr = document.createElement ("br");
+                document.getElementById("typePlotY1").appendChild(spaceBr);
+                //menu dÃ©roulant
+                var paramSelectTypeTraceY1 = new Object();
+                paramSelectTypeTraceY1.id = "selectTypePlotY1";
+                paramSelectTypeTraceY1.parent = $("#typePlotY1");
+                this.selectTypeTraceY1 = new Select( paramSelectTypeTraceY1 );
+                this.selectTypeTraceY1.add( 'l', "Lines" );
+                this.selectTypeTraceY1.add( 'p', "Dots" );
+                this.selectTypeTraceY1.add( 'i', "Peaks" );
+                this.selectTypeTraceY1.add( 'lp', "Lines and Dots" );
+                this.selectTypeTraceY1.selectFirst( false );
+                //this.selectTypeTraceY1 = $( document.createElement( "select" ) );
+                //this.selectTypeTraceY1.attr( {id:"selectTypePlotY1"} );
+                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"l", text:"Lines"} ));
+                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"p", text:"Dots"} ));
+                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"i", text:"Peaks"} ));
+                //this.selectTypeTraceY1.append($( document.createElement( "option" ) ).attr( {value:"lp", text:"Lines and Dots"} ));
+                //$("#typePlotY1").append(this.selectTypeTraceY1);
+
+
+
+
+                //lien pour montrer ou cacher le bloc "advanced options"
+                var showHide = $(document.createElement("a"));
+                showHide.html("Show advanced options");
+                showHide.attr( {id:"aShowHide", class:"fieldsetGeneralTitle"} );
+                showHide.bind( 'click', this, jQuery.proxy( this.onClickShowAdvancedOptions));
+                $("#showAdvancedOptions").append(showHide);
+
+
+                //titre  menu deroulant  transition upper
+                var titleTransitionUpper = document.createTextNode("Upper state : ");
+                document.getElementById("transitionUpper").appendChild(titleTransitionUpper);
+
+
+                // Create menu deroulant  transition upper
+//                var paramSelectTransitionUpper = new Object();
+//                paramSelectTransitionUpper.id = "transition1";
+//                paramSelectTransitionUpper.parent = $("#transitionUpper");
+//                this.selectTransitionUpper = new Select( paramSelectTransitionUpper );
+//                this.selectTransitionUpper.add( '-1', "Select a molecule" );
+//                this.selectTransitionUpper.selectFirst( false );
+
+                this.selectTransitionUpper = $( document.createElement( "select" ) );
+                this.selectTransitionUpper.attr( {id:"transition1"} );
+                //fonction sur le menu dÃ©roulant (des qu'on clique dessus) et non sur chacune des options
+                this.selectTransitionUpper.bind( 'click', jQuery.proxy(this.OnclickVerifTransition, this));
+                var optTransitionUpper = $( document.createElement( "option" ) );
+                optTransitionUpper.attr( {value:"-1", text:"Select a molecule"} );
+                //var  transitionsLower ="000";
+                // opt2.bind( 'click', jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]));
+                this.selectTransitionUpper.append(optTransitionUpper);
+                $("#transitionUpper").append(this.selectTransitionUpper);
+
+
+                //titre  menu deroulant  transition lower
+                var titleTransitionLower = document.createTextNode("Lower state : ");
+                document.getElementById("transitionLower").appendChild(titleTransitionLower);
+
+                // Create menu deroulant  transition lower
+//                var paramSelectTransitionLower = new Object();
+//                paramSelectTransitionLower.id = "transition2";
+//                paramSelectTransitionLower.parent = $("#transitionLower");
+//                this.selectTransitionLower = new Select( paramSelectTransitionLower );
+//                this.selectTransitionLower.add( '-1', "Select a molecule");
+//                this.selectTransitionLower.selectFirst( false );
+                this.selectTransitionLower = $( document.createElement( "select" ) );
+                this.selectTransitionLower.attr( {id:"transition2"} );
+                this.selectTransitionLower.bind( 'click', jQuery.proxy(this.OnclickVerifTransition, this));
+                var optTransitionLower = $( document.createElement( "option" ) );
+                optTransitionLower.attr( {value:"-1", text:"Select a molecule"} );
+                this.selectTransitionLower.append(optTransitionLower);
+                $("#transitionLower").append(this.selectTransitionLower);
+
+                //bouton reset pour les transition
+                var resetButton = new Button( {value:"Reset", parent:$( "#transitionReset" ), id:"buttonReset", className: "gray_button", onClick:jQuery.proxy( this.requestTransition, this )} );
+
+
+//                //menu dÃ©roulant  js   en javascript    sans passer par le modele
+//                var select = document.createElement('select');
+//                select.id = "transiEssai";
+//                select.name ="transiEssai";
+//
+//                var opt = document.createElement('option');
+//                opt.setAttribute('value','id1');
+//                var theText = document.createTextNode("id1");
+//                opt.appendChild(theText);
+//                select.appendChild(opt);
+//
+//                var opt = document.createElement('option');
+//                opt.setAttribute('value','id2');
+//                var theText = document.createTextNode("id2");
+//                opt.appendChild(theText);
+//
+//                //opt.onclick=jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]);
+//                    select.appendChild(opt);
+//                    document.getElementById("transitionLower").appendChild(select);
+
+
+                //menu dÃ©roulant en jquery    sans passer par le modele
+//                this.select2 = $( document.createElement( "select" ) );
+//                this.select2.attr( {id:"transiEssai2", name:"transiEssai2"} );
+//                var opt2 = $( document.createElement( "option" ) );
+//                opt2.attr( {value:"id3", text:"zzz"} );
+//                //var  transitionsLower ="000";
+//                // opt2.bind( 'click', jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]));
+//                this.select2.append(opt2);
+//                $("#transitionLower").append(this.select2);
+
+
+
+
+                //Zone text Mean Value
+                //Titre
+                var titleMeanValue = document.createTextNode("Step : ");
+                document.getElementById("meanValue1").appendChild(titleMeanValue);
+                //champ input
+                var inputMeanValue = $( document.createElement( "input" ) );
+                inputMeanValue.attr( {id:"meanValue2", size:6} );
+                inputMeanValue.val(0);
+                this.containerFormMeanValue1.append( inputMeanValue );
+                inputMeanValue.bind( 'blur', this, jQuery.proxy( this.onBlurInputMeanValue, this ));
+
+
+                // Create menu deroulant  2eme choix axe des y
+                //Titre
+                var titleAxeY2 = document.createTextNode("Select secondary parameter (right Y-axis)");
+                document.getElementById("axeY2Titre").appendChild(titleAxeY2);
+                //menu dÃ©roulant
+                var paramSelectAxeY2 = new Object();
+                paramSelectAxeY2.id = "selectAxeY2";
+                paramSelectAxeY2.parent = $("#axeY2");
+                this.selectTraceAxeY2 = new Select( paramSelectAxeY2 );
+                this.selectTraceAxeY2.add( 'no', "None", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'B', "Intensity", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'C', "Air broadening pressure halfwidth", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'D', "Energy of the lower transition level", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'F', "Temperature of the air broadening halfwidth ", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'N', "Self broadening pressure halfwidth (HWHM)", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'O', "Air pressure shift of the line transition", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.add( 'R', "Temperature of the air pressure shift ", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                this.selectTraceAxeY2.selectFirst( false );
+                //this.selectTraceAxeY2 = $( document.createElement( "select" ) );
+                //this.selectTraceAxeY2.attr( {id:"selectAxeY2"} );
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"no", text:"None"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "no" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"B", text:"Intensity"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "B" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"C", text:"Air broadening pressure halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "C" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"D", text:"Energy of the lower transition level"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "D" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"F", text:"Temperature of the air broadening halfwidth"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "F" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"N", text:"Self broadening pressure halfwidth (HWHM)"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "N" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"O", text:"Air pressure shift of the line transition"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "O" ])));
+                //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"R", text:"Temperature of the air pressure shift"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "R" ])));
+                //$("#axeY2").append(this.selectTraceAxeY2);
+
+
+                // Create menu deroulant  type d'Ã©chelle linÃ©aire ou logarithmique  pour le choix y2
+                //Titre
+                var titleScaleY2 = document.createTextNode("Select the type of Scale (if intensity is choosen)");
+                document.getElementById("scaleY2Titre").appendChild(titleScaleY2);
+                //menu dÃ©roulant
+                var paramSelectScaleY2 = new Object();
+                paramSelectScaleY2.id = "SelectScaleY2";
+                paramSelectScaleY2.parent = $("#scaleY2");
+                this.selectScaleY2 = new Select( paramSelectScaleY2 );
+                this.selectScaleY2.add( 'l', "Linear" );
+                this.selectScaleY2.add( '-log_scale2', "Logarithmic" );
+                this.selectScaleY2.selectFirst( false );
+                //est inactif par defaut car selectTraceAxeY2 est positionne a none par defaut
+                document.getElementById("scaleY2Titre").className = "notActiveText";
+                this.selectScaleY2.disable();
+
+
+                //this.selectScaleY2 = $( document.createElement( "select" ) );
+                //this.selectScaleY2.attr( {id:"selectScaleY2"} );
+                //var optSelectScaleY2 = $( document.createElement( "option" ) );
+                //optSelectScaleY2.attr( {value:"l", text:"Linear"} );
+               // this.selectScaleY2.append(optSelectScaleY2);
+               // var optSelectScaleY2 = $( document.createElement( "option" ) );
+               // optSelectScaleY2.attr( {value:"-log_scale2", text:"Logarithmic"} );
+                //this.selectScaleY2.append(optSelectScaleY2);
+                //$("#scaleY2").append(this.selectScaleY2);
+                //est inactif par defaut car selectTraceAxeY2 est positionne a none par defaut
+                //document.getElementById("scaleY2Titre").className = "notActiveText";
+                //document.getElementById("selectScaleY2" ).disabled=true;
+
+
+                // Create menu deroulant  style de tracer       Y2
+                //Titre
+                var titleTypeTrace = document.createTextNode("Select the type of plot");
+                document.getElementById("typePlotY2Titre").appendChild(titleTypeTrace);
+                //menu dÃ©roulant
+                var paramSelectTypeTraceY2 = new Object();
+                paramSelectTypeTraceY2.id = "selectTypePlotY2";
+                paramSelectTypeTraceY2.parent = $("#typePlotY2");
+                this.selectTypeTraceY2 = new Select( paramSelectTypeTraceY2 );
+                this.selectTypeTraceY2.add( 'l', "Lines" );
+                this.selectTypeTraceY2.add( 'p', "Dots" );
+                this.selectTypeTraceY2.add( 'i', "Peaks" );
+                this.selectTypeTraceY2.add( 'lp', "Lines and Dots" );
+                this.selectTypeTraceY2.selectFirst( false );
+                //est inactif par defaut car selectTraceAxeY2 est positionne a none par defaut
+                document.getElementById("typePlotY2Titre").className = "notActiveText";
+                this.selectTypeTraceY2.disable();
+                //this.selectTypeTraceY2 = $( document.createElement( "select" ) );
+                //this.selectTypeTraceY2.attr( {id:"selectTypePlotY2"} );
+                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"l", text:"Lines"} ));
+                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"p", text:"Dots"} ));
+                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"i", text:"Peaks"} ));
+                //this.selectTypeTraceY2.append($( document.createElement( "option" ) ).attr( {value:"lp", text:"Lines and Dots"} ));
+                //$("#typePlotY2").append(this.selectTypeTraceY2);
+                //est inactif par defaut car selectTraceAxeY2 est positionne a none par defaut
+               // document.getElementById("typePlotY2Titre").className = "notActiveText";
+               // document.getElementById("selectTypePlotY2" ).disabled=true;
+
+
+
+                //crÃ©ation de l'image d'attente
+                var param = new Object();
+               param.id = "loadingForGraphics";
+               param.parent = this.containerLoading;
+               this.loadingGraphics = new Loading( param );
+              // this.loadingGraphics.display();
+               //this.loadingGraphics.hide();
+
+
+                // var submitButton = new Button( {value:"Submit", parent:$( "#boutonSubmit" ), id:"button_submit_3", className: "red_button", classNameText:"red_button_text", onClick:jQuery.proxy( this.onClickSubmit, this )} );
+                var submitButton = new Button( {value:"Submit", parent:$( "#boutonSubmit" ), id:"button_submit_3", className: "positive", onClick:jQuery.proxy( this.onClickSubmit, this )} );
+                 //bouton reset pour toute la page
+                var resetPageButton = new Button( {value:"Reset", parent:$( "#boutonSubmit" ), id:"buttonReset", className: "gray_button", onClick:jQuery.proxy( this.resetPage, this )} );
+
+
+                //this.resetEssai = $( document.createElement( "input" ) );
+                //this.resetEssai.attr( {type:"reset", name:"reset"} );
+                //$("#boutonSubmit").append(this.resetEssai);
+            },
+
+
+
+
+            /**
+             * This method creates the case to check for the moles
+             * create cases Ã  cocher pour les molÃ©cules
+             * @param container
+             * @param moleculesArray
+             */
+                //createMolecules: function(container, moleculesArray)
+            createMolecules: function(container, moleculesArray, BddVersion)
+            {
+                var table = $(document.createElement("table"));
+                container.append(table);
+                // var tr = $(document.createElement("tr"));
+                // tr.attr({valign: "top"});
+                // table.append(tr);
+                var i=0;
+                //nombre de molecules par ligne
+                var l=11;
+                //taille du tableau
+                //alert("l" +moleculesArray.length);
+                // parseInt : partie entiÃšre
+                // var res =  parseInt(8/3);
+                //alert("res="+res);
+
+                $.each(moleculesArray, jQuery.proxy( function(index, moleculeElement )
+                {
+
+
+                    //this.tr et non var tr pour que tr existe encore Ã  la sortie du if
+                    if ( index == (i*l))
+                    {
+                        //alert(index);
+                        this.tr = $(document.createElement("tr"));
+                        this.tr.attr({valign: "top"});
+                        table.append(this.tr);
+                        i=i+1;
+
+                    }
+                    var td = $(document.createElement("td"));
+                    this.tr.append(td);
+
+                    var span= $(document.createElement("span"));
+                    span.addClass("molecule");
+                    td.append(span);
+
+                    var input = $(document.createElement("input"));
+                    input.attr({type:"checkbox", id:"all-"+moleculeElement.id+"-"+BddVersion});
+                    input.bind( 'click', this, jQuery.proxy( this.cliquetout, [this, moleculeElement.id, BddVersion ] ));
+                    span.append(input);
+
+                    var a = $(document.createElement("a"));
+                    a.html("<b>"+moleculeElement.name+"</b>");
+
+                    a.bind( 'click', this, jQuery.proxy( this.visibilite, [this,"Cache-"+ moleculeElement.id] ));
+                    span.append(a);
+
+                    var div= $(document.createElement("div"));
+                    div.addClass("divViolet");
+                    div.attr({id:"Cache-"+moleculeElement.id, style: "display:none"});
+                    td.append(div);
+
+                    var spanIsotopes= $(document.createElement("span"));
+                    spanIsotopes.addClass("isotope");
+                    spanIsotopes.attr({id:moleculeElement.id+"Isotope"+BddVersion});
+                    div.append(spanIsotopes);
+
+
+                    this.createIsotopes($("#"+moleculeElement.id+"Isotope"+BddVersion), moleculeElement.isotopesArray, moleculeElement.id, BddVersion);
+
+
+                }, this) );
+
+
+            },
+
+            createIsotopes: function(container, isotopesArray, moleculeElement, BddVersion )
+            {
+
+
+                $.each(isotopesArray, jQuery.proxy( function( index, isotopeElement )
+                {
+                    container.append("&nbsp;&nbsp;&nbsp;");
+                    var inputIsotopes = $(document.createElement("input"));
+                    inputIsotopes.attr({type:"checkbox", id:"chk-"+moleculeElement+"_"+isotopeElement+"-"+BddVersion, name:"moles", value:moleculeElement+"_"+isotopeElement});
+                    inputIsotopes.bind( 'click', this, jQuery.proxy( this.cliqueIsotope, [this, moleculeElement+"_"+isotopeElement, moleculeElement, BddVersion ] ));
+                    container.append(inputIsotopes);
+                    container.append(isotopeElement);
+                    var br = $(document.createElement("br"));
+                    container.append(br);
+
+                }, this) );
+            },
+
+            // <table><tr><td>
+            // <span class="molecule"><input type=checkbox id=all-ch3cn-GEISA2011 onclick="cliquetout('this, ch3cn, GEISA2011');">
+            //          <a href="javascript:visibilite('this, Cache-ch3cn');"><B>CH<sub>3</sub>CN</a></B>
+            // </span>
+            // <div class="divViolet" id="Cache-ch3cn" style="display:none;">
+            //          <span class="isotope" id="ch3cnIsotopeGEISA2011">&nbsp;&nbsp;&nbsp;<input type=checkbox id=chk-ch3cn_234-GEISA2011 name=moles value=ch3cn_234 onclick="cliqueIsotope('this, ch3cn_234, GEISA2011');">234<br></span>
+            // </div>
+            // </td></tr></table>
+
+// REQUESTS ********************************************************
+            //rÃ©cupÃ©ration de toutes les valeurs choisies par l'utilisateur et transformation de ces valeurs pour les inclure dans la requÃªte fortran
+            requestGeisa: function()
+            {
+                //temps en ms pour obtenir un nom unique de rÃ©pertoire
+                //this.dateTime = new Date().getTime();
+                var dateTime = new Date().getTime();
+                this.NomRepFileOut = "graph"+dateTime+"/";
+
+//                var verification = this.verifyBob();
+//                if(verification)
+                // appel ajax
+
+                 //sÃ©lection du fichier binaire de la base geisa sÃ©lectionnÃ©e
+                var paramBase = "";
+                switch (this.selectDatabase.getValue()) {
+                    case 'GEISA2003':
+                        paramBase = " -dirin "+this.pathProcess+" -dirout "+this.LongPathImages+this.NomRepFileOut+" -filein "+this.pathProcess+"line_GEISA2003_asc_gs03_v1.0 -input_format asc -database_name GEISA2003 -database_type gs03 -type_out png";
+                        break;
+                    case 'GEISA2011':
+                        paramBase = " -dirin "+this.pathProcess+" -dirout "+this.LongPathImages+this.NomRepFileOut+" -filein "+this.pathProcess+"line_GEISA2009_bin -database_name GEISA2011 -database_type gs08 -type_out png";
+                        break;
+                    case 'GEISAIASI2003':
+                        paramBase = " -dirin "+this.pathProcess+" -dirout "+this.LongPathImages+this.NomRepFileOut+" -filein "+this.pathProcess+"line_GEISAIASI2003_asc_gsi03_v1.0 -input_format asc -database_name GEISAIASI2003 -database_type gsi03 -type_out png";
+                        break;
+                    case 'GEISAIASI2011':
+                        paramBase = " -dirin "+this.pathProcess+" -dirout "+this.LongPathImages+this.NomRepFileOut+" -filein "+this.pathProcess+"line_GEISAIASI2011_bin_gsi08_v1.0 -database_name GEISAIASI2011 -database_type gsi08 -type_out png";
+                        break;
+                }
+
+
+                //molÃ©cules
+                //rÃ©cupÃ©ration des molÃ©cules sÃ©lectionnÃ©es
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var isotopesSelectedName ="";
+              //  alert(this.selectDatabase.getValue());
+                var i=0;
+                this.nbIsotopes = 0;
+                this.nbMolecules = 0;
+                this.nbGraph = 0;
+                for( i = 0; i < count; i++ )
+                {
+                    var input = inputs.item( i );
+                    //ne prendre que les isotopes sÃ©lectionnÃ©s dans la base de donnÃ©es sÃ©lectionnÃ©e  (rechercher des id du type :  "chk-ch3cn-GEISA-11")
+                    if( input.type == 'checkbox' && input.checked == true && input.id.indexOf("chk-")!= -1 && input.id.indexOf(this.selectDatabase.getValue())!= -1)
+                    {
+                        //nombre d'isotopes sÃ©lectionnÃ©s
+                        this.nbIsotopes =  this.nbIsotopes + 1;
+
+                        var molN=input.value;
+                        var molN1=molN.replace("_", ":");
+                        // exemple : -moleisot h2o:161 -moleisot h2o:162 -moleisot co2:626 -moleisot co2:627 -moleisot o3:666 -moleisot o3:668
+                        isotopesSelectedName = isotopesSelectedName+"-moleisot "+molN1+" ";
+                    }
+                    //rÃ©cupÃ©ration du nombre de molÃ©cules sÃ©lectionnÃ©es
+                    if( input.type == 'checkbox' && input.checked == true && input.id.indexOf("all-")!= -1 && input.id.indexOf(this.selectDatabase.getValue())!= -1)
+                    {
+                        //nombre d'isotopes sÃ©lectionnÃ©s
+                        this.nbMolecules =  this.nbMolecules + 1;
+                    }
+                }
+
+
+                //averti l'utilisateur qu'il faut au moins sÃ©lectionner un isotope
+                if (this.nbIsotopes ==  0) {
+                    alert("Error : no molecule or isotopoloque was selected");
+                    return;
+                }
+
+
+
+                //sÃ©lection du nombre de courbes ou de graphs
+
+                var nbCourbes = "";
+
+                switch (this.selectNbCourbes.getValue()) {
+                //sswitch (document.getElementById('selectNbCourbes').options[document.getElementById('selectNbCourbes').selectedIndex].value) {
+                    case 'cm':
+                        nbCourbes = "-separate_mol -same_graph ";
+                        this.nbGraph = 1;
+                        this.nbCourbe =  this.nbMolecules;
+                        if (this.nbCourbe > 8) {
+                            alert("Too much molecules selected to draw one curve for each molecule selected");
+                            return;
+                        }
+                        break;
+                    case 'ci':
+                        nbCourbes = "-separate_iso -same_graph ";
+                        this.nbGraph = 1;
+                        this.nbCourbe =  this.nbIsotopes;
+                        if (this.nbCourbe > 8) {
+                            alert("Too much isotopologues selected to draw one curve for each isotopologues selected");
+                            return;
+                        }
+                        break;
+                    case 'gm':
+                        nbCourbes = "-separate_mol ";
+                        this.nbGraph = this.nbMolecules;
+                        if (this.nbGraph > 20) {
+                            alert("Too much molecules selected to draw one graph for each molecules selected");
+                            return;
+                        }
+                        break;
+                    case 'gi':
+                        nbCourbes = "-separate_iso ";
+                        this.nbGraph = this.nbIsotopes;
+                        if (this.nbGraph > 20) {
+                            alert("Too much isotopologues selected to draw one graph for each isotopologues selected");
+                            return;
+                        }
+                        break;
+                    default:
+                        nbCourbes = "";
+                        this.nbGraph = 1;
+                        break;
+                }
+
+
+                //Spectral range
+                var rangeLower="-wavenb_min "+$("#rangeLower").val();
+                var rangeUpper="-wavenb_max "+$("#rangeUpper").val();
+
+                //controle des valeurs entrÃ©es par l'utilisateur
+
+                switch (this.selectDatabase.getValue()) {
+                    case 'GEISA2003':
+                        //isNaN = n'est pas un nombre
+                        if(isNaN(parseInt(($("#rangeLower").val()))) == true ||   parseInt($("#rangeLower").val()) < 0  || parseInt($("#rangeLower").val()) > 35877.030506)
+                        {
+                            alert("Error: Invalid value for lower spectral range area. The value must be between 0 and 35877.030506");
+                            return;
+                        }
+
+                        if(isNaN(parseInt(($("#rangeUpper").val()))) == true ||   parseInt( $("#rangeUpper").val()) == 0 || parseInt( $("#rangeUpper").val()) < 0  || parseInt($("#rangeUpper").val()) > 35877.030506)
+                        {
+                            alert("Error: Invalid value for upper spectral range area. The value must be between 0 and 35877.030506");
+                            return;
+                        }
+
+                        break;
+                    case 'GEISA2011':
+                        //isNaN = n'est pas un nombre
+                        if(isNaN(parseInt(($("#rangeLower").val()))) == true ||   parseInt($("#rangeLower").val()) < 0  || parseInt($("#rangeLower").val()) > 35877.030506)
+                        {
+                            alert("Error: Invalid value for lower spectral range area. The value must be between 0 and 35877.030506");
+                            return;
+                        }
+
+                        if(isNaN(parseInt(($("#rangeUpper").val()))) == true ||   parseInt( $("#rangeUpper").val()) == 0 || parseInt( $("#rangeUpper").val()) < 0  || parseInt($("#rangeUpper").val()) > 35877.030506)
+                        {
+                            alert("Error: Invalid value for upper spectral range area. The value must be between 0 and 35877.030506");
+                            return;
+                        }
+                        break;
+                    case 'GEISAIASI2003':
+                        //isNaN = n'est pas un nombre
+                        if(isNaN(parseInt(($("#rangeLower").val()))) == true ||   parseInt($("#rangeLower").val()) < 0 || parseInt($("#rangeLower").val()) < 599.000793 || parseInt($("#rangeLower").val()) > 3000.998767)
+                        {
+                            alert("Error: Invalid value for lower spectral range area. The value must be between 599.000793 and 3000.998767");
+                            return;
+                        }
+
+                        if(isNaN(parseInt(($("#rangeUpper").val()))) == true ||   parseInt( $("#rangeUpper").val()) == 0 || parseInt( $("#rangeUpper").val()) < 0  ||  parseInt($("#rangeUpper").val()) < 599.000793 || parseInt($("#rangeUpper").val()) > 3000.998767)
+                        {
+                            alert("Error: Invalid value for upper spectral range area. The value must be between 599.000793 and 3000.998767");
+                            return;
+                        }
+                        break;
+                    case 'GEISAIASI2011':
+                        //isNaN = n'est pas un nombre
+                        if(isNaN(parseInt(($("#rangeLower").val()))) == true ||   parseInt($("#rangeLower").val()) < 0 || parseInt($("#rangeLower").val()) < 599.000793 || parseInt($("#rangeLower").val()) > 3000.998767)
+                        {
+                            alert("Error: Invalid value for lower spectral range area. The value must be between 599.000793 and 3000.998767");
+                            return;
+                        }
+
+                        if(isNaN(parseInt(($("#rangeUpper").val()))) == true ||   parseInt( $("#rangeUpper").val()) == 0 || parseInt( $("#rangeUpper").val()) < 0  ||  parseInt($("#rangeUpper").val()) < 599.000793 || parseInt($("#rangeUpper").val()) > 3000.998767)
+                        {
+                            alert("Error: Invalid value for upper spectral range area. The value must be between 599.000793 and 3000.998767");
+                            return;
+                        }
+                        break;
+                }
+
+
+                if ($("#rangeLower").val() == ""  )
+                {
+                    rangeLower="";
+                }
+
+                if ($("#rangeUpper").val() == ""  )
+                {
+                    rangeUpper="";
+                }
+                if( parseInt($("#rangeLower").val())  > parseInt($("#rangeUpper").val()) )
+                {
+                    alert("Error: lower spectral range area is superior to upper spectral range area ");
+                    return;
+                }
+
+
+
+                //Sampling step
+                if( $("#sampStep").val() > 0 )
+                {
+                    var samplingStep="-band "+$("#sampStep").val();
+                    //calcul du nombre de graphs gÃ©nÃ©rÃ©s par l'option  Sampling step
+                    this.nbGraphSamplingStep = (parseFloat($("#rangeUpper").val()) - parseFloat($("#rangeLower").val())) / parseFloat($("#sampStep").val());
+                    //calcul du nombre de graphs total Ã  tracer   (nbr de graph gÃ©nÃ©rÃ©s par "type of graph" * nbr de graph gÃ©nÃ©rÃ© par "Sampling Step")
+                       //test pour voir si    "nbGraphSamplingStep" est un entier
+                       if ((this.nbGraphSamplingStep - parseInt(this.nbGraphSamplingStep)) == 0)
+                       {
+                        this.nbGraph=(this.nbGraph)*(this.nbGraphSamplingStep);
+                       }
+                       else
+                       {
+                        // si  "nbGraphSamplingStep" n'est pas un entier prendre le nbre entier suivant
+                        this.nbGraph=this.nbGraph*(parseInt(this.nbGraphSamplingStep)+1);
+                       }
+                }
+
+                if(isNaN($("#sampStep").val()) == true ||   parseInt($("#sampStep").val()) < 0 )
+                {
+                    alert("Error: Invalid value for sampling step");
+                    return;
+                }
+
+                if( $("#sampStep").val() == 0 )
+                {
+                    var samplingStep="";
+                }
+
+                //test sur le nombre de graphs gÃ©nÃ©rÃ©s
+                if (this.nbGraph > 20)
+                {
+                    alert("Too many graphics will be drawn ("+this.nbGraph+"). Please change the value of the sampling step or change the value of the type of graph.");
+                    return;
+                }
+
+
+
+                //Transitions  to do
+                //exemple de requete avec transition
+                //./all -filein line_GEISA2009_bin -moleisot h2o:161 -wavenb_min 1 -wavenb_max 1000 -database_name "GEISA2011" -vib_ident_lower '[000]'
+                //var TransitionUpper ="-vib_ident_upper '[ "+this.selectTransitionUpper.getValue()+" ]'";
+                var transitionUpper=document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value;
+                //Enlever les espaces blancs
+               // TransitionUp= TransitionUp.replace(/ /g,"");
+               //var TransitionUpper ="-vib_ident_upper ["+TransitionUp+"]";
+                // var transitionUpper = "["+transitionUp+"]";
+               // alert ("transitionUpper"+transitionUpper);
+                //certaine transitions ont plusieurs espaces Ã  droite qui ne sont pas conservÃ©s   (ex ch4 et C2HD)
+                //si la longueur de la chaine de caracteres n'est pas 25 on rajoute le nobre d'espace nÃ©cessaire pour arriver Ã  25
+                var nb=0;
+                nb=25-transitionUpper.length
+                if (nb != 0)
+                {
+                    for (i = 1; i <= nb; i++) {
+                       transitionUpper=transitionUpper+" ";
+                    }
+                }
+
+                //alert("transitionUpper.length"+transitionUpper.length);
+                //transitionUpper=transitionUpper+" ";
+                //alert("transitionUpper.length"+transitionUpper.length);
+
+                // var TransitionLower ="-vib_ident_lower '[ "+this.selectTransitionLower.getValue()+" ]'";
+                  var transitionLower=document.getElementById('transition2').options[document.getElementById('transition2').selectedIndex].value;
+                //  TransitionLo= TransitionLo.replace(/ /g,"");
+                 // var TransitionLower ="-vib_ident_lower ["+TransitionLo+"]";
+                //var transitionLower ="["+transitionLo+"]";
+
+                //certaine transitions ont plusieurs espaces Ã  droite qui ne sont pas conservÃ©s   (ex ch4 et C2HD)
+                //si la longueur de la chaine de caracteres n'est pas 25 on rajoute le nobre d'espace nÃ©cessaire pour arriver Ã  25
+                var nb=0;
+                nb=25-transitionUpper.length
+                if (nb != 0)
+                {
+                    for (i = 1; i <= nb; i++) {
+                       transitionUpper=transitionUpper+" ";
+                    }
+                }
+
+                 //pas de transition sÃ©lectionnÃ©e
+                // if (( this.selectTransitionUpper.getValue()== -1) ||  (this.selectTransitionUpper.getValue() == "transition" ))
+                // {
+                // TransitionUpper ="";
+                // }
+                // if (( this.selectTransitionLower.getValue()== -1) ||  (this.selectTransitionLower.getValue() == "transition" ))
+                // {
+                // TransitionLower ="";
+                // }
+                if (( document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value == -1) ||  (document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value == "transition" ))
+                {
+                    transitionUpper ="no";
+                }
+                if (( document.getElementById('transition2').options[document.getElementById('transition2').selectedIndex].value == -1) ||  (document.getElementById('transition2').options[document.getElementById('transition2').selectedIndex].value == "transition" ))
+                {
+                    transitionLower ="no";
+                }
+
+                if ( document.getElementById('transition1').options[document.getElementById('transition1').selectedIndex].value == "")
+                {
+                    transitionUpper ="noValue";
+                }
+
+                if ( document.getElementById('transition2').options[document.getElementById('transition2').selectedIndex].value == "")
+                {
+                    transitionLower ="noValue";
+                }
+
+                 var sel = document.getElementById('transition1');
+                 var idupper = sel.options[sel.selectedIndex].value;
+                  //alert("idupper"+idupper);
+
+                //Intensity range
+                var intensityLower="-int_min "+$("#intensityLo").val();
+                var intensityUpper="-int_max "+$("#intensityUp").val();
+
+                //controle des valeurs entrÃ©es par l'utilisateur
+                 if(isNaN($("#intensityLo").val()) == true ||   $("#intensityLo").val() < 0  )
+                {
+                    alert("Error: Invalid value for lower intensity range area. The value must be between 0 and 1E-16");
+                    return;
+                }
+                if ($("#intensityLo").val() == ""  )
+                {
+                    intensityLower="";
+                }
+                if(isNaN($("#intensityUp").val()) == true ||   $("#intensityUp").val() < 0  )
+                {
+                    alert("Error: Invalid value for upper intensity range area. The value must be between 0 and 1E-16");
+                    return;
+                }
+                if ($("#intensityUp").val() == ""  )
+                {
+                    intensityUpper="";
+                }
+
+                //to do javascript ne sait comparer des exponenciels
+              // if( $("#intensityLo").val()  > $("#intensityUp").val() )
+
+               // {
+               //     alert("Error: lower intensity range area is superior to upper intensity range area ");
+               //     return;
+               // }
+
+
+                //Valeur de mean value
+                var meanValue = "-step "+$("#meanValue2").val();
+                //controle des valeurs entrÃ©es par l'utilisateur
+                //Si ce n'est pas un nombre ou si il est nÃ©gatif  ou si mean value est supÃ©rieur ou Ã©gal Ã  l'interval spectral
+                if(isNaN($("#meanValue2").val()) == true ||   $("#meanValue2").val() < 0 ||   $("#meanValue2").val() >= (parseFloat($("#rangeUpper").val()) - parseFloat($("#rangeLower").val())) )
+                {
+                    alert("Error: Invalid value for Average calculation area");
+                    return;
+                }
+                //si aucune valeur
+                if ($("#meanValue2").val() == ""  )
+                {
+                    meanValue="";
+                }
+
+                //sÃ©lection du premier choix pour l'axe des Y
+                 var field="-field "+this.selectTraceAxeY1.getValue();
+                //   var field="-field "+document.getElementById('selectAxeY1').options[document.getElementById('selectAxeY1').selectedIndex].value;
+
+
+
+
+                 //sÃ©lection du type d'Ã©chelle pour le parametre Y1 (il y a une valeur pour ce champ que si logaritmic est choisi et si l'option est activÃ©e)
+                if  (this.selectScaleY1.getValue() == '-log_scale' && this.selectScaleY1.isDisable == false)
+                {
+                    var logScale = this.selectScaleY1.getValue();
+                }
+                else
+                {
+                    var logScale = ""
+                }
+               // if  (document.getElementById('selectScaleY1').options[document.getElementById('selectScaleY1').selectedIndex].value == '-log_scale' && document.getElementById("selectScaleY1" ).disabled == false)
+               // {
+               //     var logScale = document.getElementById('selectScaleY1').options[document.getElementById('selectScaleY1').selectedIndex].value;
+                //}
+                //else
+               // {
+               //     var logScale = ""
+               // }
+
+
+                //sÃ©lection du type de tracÃ© pour Y1
+                var lineType="-line_type "+this.selectTypeTraceY1.getValue();
+                //var lineType="-line_type "+document.getElementById('selectTypePlotY1').options[document.getElementById('selectTypePlotY1').selectedIndex].value;
+
+
+                //sÃ©lection ou non d'un 2eme choix pour l'axe des Y   (pas de valeur pour ce champ si choix none ou si l'option n'est pas activÃ©e)
+                if  (this.selectTraceAxeY2.getValue() == 'no' ||  this.selectTraceAxeY2.isDisable == true)
+                //if  (document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value == 'no' ||  document.getElementById("selectAxeY2" ).disabled == true)
+                {
+                    var field2 = "";
+                }
+                else
+                {
+                    var field2 = "-field2 "+this.selectTraceAxeY2.getValue();
+                    //var field2 = "-field2 "+document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value;
+                }
+
+                //sÃ©lection du type d'Ã©chelle pour le parametre Y2 (il y a une valeur pour ce champ que si logaritmic est choisi et si l'option est activÃ©e)
+                if  (this.selectScaleY2.getValue() == '-log_scale2' && this.selectScaleY2.isDisable == false)
+               //  if  (document.getElementById('selectScaleY2').options[document.getElementById('selectScaleY2').selectedIndex].value == '-log_scale2' && document.getElementById("selectScaleY2" ).disabled == false)
+                {
+                    var logScale2 =this.selectScaleY2.getValue();
+                    //  var logScale2 = document.getElementById('selectScaleY2').options[document.getElementById('selectScaleY2').selectedIndex].value;
+                }
+                else
+                {
+                    var logScale2 = "";
+                }
+
+
+                //sÃ©lection du type de tracÃ© pour Y2  (pas de valeur  si l'option n'est pas activÃ©e)
+                if  ( this.selectTypeTraceY2.isDisable == true)
+               // if  ( document.getElementById("selectTypePlotY2" ).disabled == true)
+                {
+                    var lineType2 = "";
+                }
+                else
+                {
+                    var lineType2 = "-line_type2 "+this.selectTypeTraceY2.getValue();
+                    // var lineType2 = "-line_type2 "+document.getElementById('selectTypePlotY2').options[document.getElementById('selectTypePlotY2').selectedIndex].value;
+                }
+
+
+                //ouverture de la div de l'image d'attente
+                this.loadingGraphics.display();
+
+
+
+
+                //construction de la requÃªte Fortran
+               // var parameters = "&fortranRequest="+paramBase+" "+isotopesSelectedName+" "+rangeLower+" "+rangeUpper+" "+TransitionUpper+" "+TransitionLower+" "+intensityLower+" "+intensityUpper+" "+
+                                      // meanValue+" "+nbCourbes+" "+field+" "+logScale+" "+lineType+" "+field2+" "+logScale2+" "+lineType2;
+
+                var parameters = "&fortranRequest="+paramBase+" "+isotopesSelectedName+" "+rangeLower+" "+rangeUpper+" "+samplingStep+" "+intensityLower+" "+intensityUpper+" "+
+                                       meanValue+" "+nbCourbes+" "+field+" "+logScale+" "+lineType+" "+field2+" "+logScale2+" "+lineType2;
+
+                 //alert ("parameters"+parameters);
+
+                //remplacement de espace par "EEE" pour que le shell script ne voit qu'un seul argument en entrÃ©e
+                parameters=parameters.replace(/ /g,"kkk");
+                transitionUpper=transitionUpper.replace(/ /g,"kkk");
+                //le + est interprÃ©tÃ© comme un espace (plus sera retransformÃ© en + dans le shell)
+                transitionUpper=transitionUpper.replace(/\+/g,"plus");
+                transitionLower=transitionLower.replace(/ /g,"kkk");
+                transitionLower=transitionLower.replace(/\+/g,"plus");
+
+
+                //construction du nom du fichier  (exemple  GEISA2011-0_100)
+                this.nomFichier=this.selectDatabase.getValue()+"-"+$("#rangeLower").val()+"_"+$("#rangeUpper").val();
+                //envoie de la requÃªte au controller
+                //en cas de succes appel de la fonction "handleGeisa"
+                $.ajax( {
+                            //url: "project?methodName=createUserRequest&"+parameters+"&nbGraph="+ this.nbGraph,
+                            //url: "project?methodName=createUserRequest&"+parameters+"&transitionUpper="+ transitionUpper+"&transitionLower="+ transitionLower+"&nbGraph="+ this.nbGraph,
+                            url: "project?methodName=createUserRequest&"+parameters+"&transitionUpper="+ transitionUpper+"&transitionLower="+ transitionLower+"&nbGraph="+ this.nbGraph+"&nomFichier="+this.nomFichier+"&NomRepFileOut="+this.NomRepFileOut,
+                            success:jQuery.proxy( this.handleGeisa, this )
+                        } );
+            },
+
+
+            //requÃªte pour interrogation de la base de donnÃ©es des transitions
+            requestTransition: function()
+            {
+
+                var  nbMolecules=0;
+
+                //RÃ©cupÃ©ration du spectral range
+                var spectralRangeLower = $("#rangeLower").val();
+                var spectralRangeUpper = $("#rangeUpper").val();
+
+                //RÃ©cupÃ©ration des isotopes sÃ©lectionnÃ©s
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var isotopesSelectedNameArray = new Array();
+                var i=0;
+
+                for( i = 0; i < count; i++ )
+                {
+                    var input = inputs.item( i );
+                    //ne prendre que les isotopes sÃ©lectionnÃ©s dans la base de donnÃ©es sÃ©lectionnÃ©e  (rechercher des id du type :  "chk-ch3cn-GEISA-11")
+                    if( input.type == 'checkbox' && input.checked == true && input.id.indexOf("chk-")!= -1 && input.id.indexOf(this.selectDatabase.getValue())!= -1)
+                    {
+                        var molN=input.value;
+                        var molN1=molN.replace("_", ":");
+                        //tous les isotopes sÃ©lectionnÃ©s sont placÃ©s dans un tableau
+                        isotopesSelectedNameArray.push(molN1);
+                    }
+
+                    //rÃ©cupÃ©ration du nombre de molÃ©cules sÃ©lectionnÃ©es
+                    if( input.type == 'checkbox' && input.checked == true && input.id.indexOf("all-")!= -1 && input.id.indexOf(this.selectDatabase.getValue())!= -1)
+                    {
+                       nbMolecules =  nbMolecules + 1;
+                    }
+
+                }
+                //alert ("nbMolecules"+nbMolecules);
+                //si le nombre de molÃ©cule sÃ©lectionnÃ©es est supÃ©rieure Ã  1 les menus des transition sont inactifs
+                if (nbMolecules > 1)
+                {
+
+                    //this.selectTransitionLower.disable();
+                    //this.selectTransitionUpper.disable();
+                    //ajoute une classe Ã  celle dÃ©jÃ  existante de transitionUpper
+                    $("#transitionUpper").addClass("notActiveText");
+                    $("#transitionLower").addClass("notActiveText");
+                }
+                else
+                {
+                    //this.selectTransitionLower.enable();
+                    //this.selectTransitionUpper.enable();
+                    $("#transitionUpper").removeClass("notActiveText");
+                    $("#transitionLower").removeClass("notActiveText");
+                }
+
+
+                //On ne fait appel Ã  la BDD des transitions    et si au plus 1 molÃ©cule est sÃ©lectionnÃ©e
+                if (nbMolecules == 1 )
+                {
+//                    $.ajax( {
+//                                url: "project?methodName=getTransitionByIsotopeName&isotopesSelectedName="+isotopesSelectedName+"&GeisaSelectedDatabase="+GeisaSelectedDatabase+"&spectralRangeLower="+spectralRangeLower+"&spectralRangeUpper="+spectralRangeUpper,
+//                                success:jQuery.proxy( this.handleRequestTransition, this )
+//                            } );
+
+                    $.ajax( {
+                                url: "project?methodName=getTransitionByIsotopeName&isotopesSelectedNameArray="+isotopesSelectedNameArray+"&geisaSelectedDatabase="+this.selectDatabase.getValue2()+"&spectralRangeLower="+spectralRangeLower+"&spectralRangeUpper="+spectralRangeUpper,
+                                success:jQuery.proxy( this.handleRequestTransition, this ),
+                                error: jQuery.proxy( this.handleErrorRequestTransition, this )
+                            } );
+
+                }
+                else
+                {
+                    //pour rÃ©initialiser le menu dÃ©roulant si aucune ou plusieurs molÃ©cules sont sÃ©lectionnÃ©es
+                    document.getElementById("transition2").length=0;
+                    //this.selectTransitionUpper.clear();
+                    document.getElementById("transition1").length=0;
+
+                    if (nbMolecules == 0 )
+                    {
+                        //this.selectTransitionLower.add('-1', "Select a molecule");
+                        this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"Select a molecule", selected:"selected"} ));
+                        //this.selectTransitionUpper.add('-1', "Select a molecule");
+                        this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"Select a molecule", selected:"selected"} ));
+                        //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
+                        //this.selectTransitionLower.selectFirst();
+                        //this.selectTransitionUpper.selectFirst();
+                    }
+
+                    if (nbMolecules > 1 )
+                    {
+                        //this.selectTransitionLower.add('-1', "Select a molecule");
+                        this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"", selected:"selected", disabled:"disabled"} ));
+                        //this.selectTransitionUpper.add('-1', "Select a molecule");
+                        this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"", selected:"selected", disabled:"disabled"} ));
+                        //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
+                        //this.selectTransitionLower.selectFirst();
+                        //this.selectTransitionUpper.selectFirst();
+                        //ajoute une classe Ã  celle dÃ©jÃ  existante de transitionUpper
+                        $("#transitionUpper").addClass("notActiveText");
+                        $("#transitionLower").addClass("notActiveText");
+                    }
+                }
+            },
+
+
+
+
+            //requÃªte pour interrogation de la base de donnÃ©es des transitions en fonction d'une transition lower
+            requestTransitionByTransitionLower: function()
+            {
+                var context  = this[0];
+                //exemple transitionLower="                      000" : il y a 25 caractÃšres dans chaque transition
+                 context.transitionLower = this[1];
+
+                //RÃ©cupÃ©ration de la Base Geisa sÃ©lectionnÃ©e
+                var GeisaSelectedDatabase = context.selectDatabase.getValue();
+
+                //RÃ©cupÃ©ration du spectral range
+                var spectralRangeLower = $("#rangeLower").val();
+                var spectralRangeUpper = $("#rangeUpper").val();
+
+                //RÃ©cupÃ©ration des isotopes sÃ©lectionnÃ©s
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var isotopesSelectedNameArray = new Array();
+                var i=0;
+
+                for( i = 0; i < count; i++ )
+                {
+                    var input = inputs.item( i );
+                    //ne prendre que les isotopes sÃ©lectionnÃ©s dans la base de donnÃ©es sÃ©lectionnÃ©e  (rechercher des id du type :  "chk-ch3cn-GEISA-11")
+                    if( input.type == 'checkbox' && input.checked == true && input.id.indexOf("chk-")!= -1 && input.id.indexOf(context.selectDatabase.getValue())!= -1)
+                    {
+                        var molN=input.value;
+                        var molN1=molN.replace("_", ":");
+                        //tous les isotopes sÃ©lectionnÃ©s sont placÃ©s dans un tableau
+                        isotopesSelectedNameArray.push(molN1);
+                    }
+
+                }
+
+                 //le passage de javascript Ã  java par ajax transforme les + en espace donc transformation des + en plus et dans le controller on fait l'inverse
+                 var transitionLowerReplaced = context.transitionLower.replace(/\+/g,"plus");
+
+                //Appel Ã  la BDD
+
+                $.ajax( {
+                            url: "project?methodName=getTransitionByIsotopeNameByTransitionLower&isotopesSelectedNameArray="+isotopesSelectedNameArray+"&geisaSelectedDatabase="+context.selectDatabase.getValue2()+"&spectralRangeLower="+spectralRangeLower+"&spectralRangeUpper="+spectralRangeUpper+"&transitionLower="+transitionLowerReplaced,
+                            success:jQuery.proxy( context.handleRequestTransitionByTransitionLower, context)
+                        } );
+
+
+
+            },
+
+
+            //requÃªte pour interrogation de la base de donnÃ©es des transitions en fonction d'une transition upper
+            requestTransitionByTransitionUpper: function()
+            {
+                var context  = this[0];
+                //exemple transitionLower="                      000" : il y a 25 caractÃšres dans chaque transition
+                 context.transitionUpper = this[1];
+
+                //RÃ©cupÃ©ration de la Base Geisa sÃ©lectionnÃ©e
+                var GeisaSelectedDatabase = context.selectDatabase.getValue();
+
+                //RÃ©cupÃ©ration du spectral range
+                var spectralRangeLower = $("#rangeLower").val();
+                var spectralRangeUpper = $("#rangeUpper").val();
+
+                //RÃ©cupÃ©ration des isotopes sÃ©lectionnÃ©s
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var isotopesSelectedNameArray = new Array();
+                var i=0;
+
+                for( i = 0; i < count; i++ )
+                {
+                    var input = inputs.item( i );
+                    //ne prendre que les isotopes sÃ©lectionnÃ©s dans la base de donnÃ©es sÃ©lectionnÃ©e  (rechercher des id du type :  "chk-ch3cn-GEISA-11")
+                    if( input.type == 'checkbox' && input.checked == true && input.id.indexOf("chk-")!= -1 && input.id.indexOf(context.selectDatabase.getValue())!= -1)
+                    {
+                        var molN=input.value;
+                        var molN1=molN.replace("_", ":");
+                        //tous les isotopes sÃ©lectionnÃ©s sont placÃ©s dans un tableau
+                        isotopesSelectedNameArray.push(molN1);
+                    }
+
+                }
+                //le passage de javascript Ã  java par ajax transforme les + en espace donc transformation des + en plus et dans le controller on fait l'inverse
+                var transitionUpperReplaced = context.transitionUpper.replace(/\+/g,"plus");
+
+                //Appel Ã  la BDD
+                $.ajax( {
+                            url: "project?methodName=getTransitionByIsotopeNameByTransitionUpper&isotopesSelectedNameArray="+isotopesSelectedNameArray+"&geisaSelectedDatabase="+context.selectDatabase.getValue2()+"&spectralRangeLower="+spectralRangeLower+"&spectralRangeUpper="+spectralRangeUpper+"&transitionUpper="+transitionUpperReplaced,
+                            success:jQuery.proxy( context.handleRequestTransitionByTransitionUpper, context)
+                        } );
+
+
+
+            },
+
+
+
+//            requestTransition: function()
+//            {
+//                $.ajax( {
+//                            url: "project?methodName=transition&transitionValue="+ this.selectTransitionUpper.getValue(),
+//                            success:jQuery.proxy( this.handleRequestTransition, this )
+//                        } );
+//            },
+
+            // HANDLES ******************************************************** = retours ajax
+            //affichage sur l'interface
+
+            handleGeisa: function( result )
+            {
+
+                 //nom du rÃ©pertoire : exemple de retour de valeur du controleur
+                //this.nb = jQuery.parseJSON( result ).nb;
+                //this.NomRepFileOut = jQuery.parseJSON( result ).NomRepFileOut;
+
+                //chemin court de l'image
+                this.pathImg = "<%=Controller.PATH_IMAGES%>"+this.NomRepFileOut;
+
+
+                //Pour tracer le bon nombre de graphe et de bouton download
+                var i=1;
+                var content="";
+                //bouton  "Download All"  si il y a plus d'un graph
+                if (this.nbGraph > 1)
+                {
+                    content = "<a href=project?methodName=downloadFile&fileName=" +this.NomRepFileOut + "GEISA.tar&fileNameToDisplay=GEISA.tar><button class='dataProtocolDownloadButton'>Download All</button></a>";
+                }
+                //tracer chaque graphe avec son bouton  download associÃ©
+                for (i=1; i<this.nbGraph+1; i++) {
+                    //content = content + '<img src=' + this.pathImg + "graph" + this.nb +"-"+i+ ".png"+ ' /><a href="project?methodName=downloadFile&fileName='  + "graph" + this.nb+"-"+i + ".png"+ '"><button class="dataProtocolDownloadButton">Download</button></a>';
+                    content = content +'<img src=' + this.pathImg + this.nomFichier +"-"+i+ ".png"+ ' /><a href="project?methodName=downloadFile&fileName=' +this.NomRepFileOut + this.nomFichier+"-"+i + ".png&fileNameToDisplay="+this.nomFichier+"-"+i + ".png"+ '"><button class="dataProtocolDownloadButton">Download</button></a>';
+                }
+
+                this.displayWindow(content);
+            },
+
+
+            handleRequestTransition: function( result )
+            {
+
+
+//                var transitions = jQuery.parseJSON( result ).transitions;
+                 var transitionsLower = jQuery.parseJSON( result ).transitionsLower;
+                 var transitionsUpper = jQuery.parseJSON( result ).transitionsUpper;
+
+                 //pour vider les menus dÃ©roulant des transitions prÃ©cÃ©dentes
+                 // this.selectTransitionLower.clear();
+                document.getElementById("transition2").length=0;
+                //this.selectTransitionUpper.clear();
+                document.getElementById("transition1").length=0;
+                // this.selectTransitionLower.add('transition', "Choose a transition");
+                this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+
+                // this.selectTransitionUpper.add('transition', "Choose a transition");
+                this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+
+                 //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
+                // this.selectTransitionLower.selectFirst();
+                // this.selectTransitionUpper.selectFirst();
+
+
+                $.each(transitionsLower, jQuery.proxy( function(index, transitionsLower )
+                {
+                   //  this.selectTransitionLower.add(transitionsLower, transitionsLower,jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ]));
+
+
+                    this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:transitionsLower, text:transitionsLower} ).bind( 'click', jQuery.proxy(this.requestTransitionByTransitionLower, [this, transitionsLower ])));
+
+                }, this));
+
+                $.each(transitionsUpper, jQuery.proxy( function(index, transitionsUpper )
+                {
+                    //this.selectTransitionUpper.add(transitionsUpper, transitionsUpper,jQuery.proxy(this.requestTransitionByTransitionUpper, [this, transitionsUpper ]));
+                    this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:transitionsUpper, text:transitionsUpper} ).bind( 'click', jQuery.proxy(this.requestTransitionByTransitionUpper, [this, transitionsUpper ])));
+
+                }, this));
+
+            },
+
+            //en cas d'erreur dans la requÃªte des transitions ( pas de valeur ou caractÃšres Ã  la place de nombres dans champ spectral)
+            handleErrorRequestTransition :  function()
+            {
+             //pour vider les menus dÃ©roulant des transitions prÃ©cÃ©dentes
+                document.getElementById("transition2").length=0;
+                document.getElementById("transition1").length=0;
+
+               this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"requestError", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+               this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"requestError", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+
+            },
+
+            handleRequestTransitionByTransitionLower : function( result )
+            {
+                //alert("transitionLower"+this.transitionLower);
+                var transitionsUpperBis = jQuery.parseJSON( result ).transitionsUpperBis;
+                //alert("transitionsUpper"+transitionsUpper);
+
+                //pour vider les menus dÃ©roulant des transitions prÃ©cÃ©dentes
+               // this.selectTransitionLower.clear();
+                document.getElementById("transition2").length=0;
+                //this.selectTransitionUpper.clear();
+                document.getElementById("transition1").length=0;
+               // while(0 < document.getElementById("transition1").length)
+               // {
+               //     document.getElementById("transition1").options[0] = null;
+               // }
+
+
+                //this.selectTransitionLower.add(this.transitionLower, this.transitionLower);
+                this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled"} ));
+                this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:this.transitionLower, text:this.transitionLower,  selected:"selected"} ));
+                //this.selectTransitionUpper.add('transition', "Choose a transition");
+                //rajout du text "Choose a transition" selectionnÃ© en premier mais on ne peut pas cliquer dessus
+                this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+
+
+                //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
+                //this.selectTransitionLower.selectFirst();
+                //this.selectTransitionUpper.selectFirst();
+
+
+
+                $.each(transitionsUpperBis, jQuery.proxy( function(index, transitionsUpperBis )
+                {
+                   // this.selectTransitionUpper.add(transitionsUpper, transitionsUpper);
+                     this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:transitionsUpperBis, text:transitionsUpperBis} ));
+
+                }, this));
+
+            },
+
+
+            handleRequestTransitionByTransitionUpper : function( result )
+            {
+               // alert("transitionUpper"+this.transitionUpper);
+                var transitionsLowerBis = jQuery.parseJSON( result ).transitionsLowerBis;
+                //alert("transitionsLower"+transitionsLower);
+
+                //pour vider les menus dÃ©roulant des transitions prÃ©cÃ©dentes
+               // this.selectTransitionLower.clear();
+                document.getElementById("transition2").length=0;
+                //this.selectTransitionUpper.clear();
+                document.getElementById("transition1").length=0;
+
+               // this.selectTransitionLower.add('transition', "Choose a transition");
+                this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled", selected:"selected"} ));
+
+               // this.selectTransitionUpper.add(this.transitionUpper, this.transitionUpper);
+                this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"transition", text:"Choose a transition", disabled:"disabled"} ));
+                this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:this.transitionUpper, text:this.transitionUpper,  selected:"selected"} ));
+
+
+                //pour forcer Ã  afficher le premier Ã©lÃ©ment (et non le premier Ã©lÃ©ment prÃ©cÃ©dent)
+                //this.selectTransitionLower.selectFirst();
+                //this.selectTransitionUpper.selectFirst();
+
+
+
+                $.each(transitionsLowerBis, jQuery.proxy( function(index, transitionsLowerBis )
+                {
+                    //this.selectTransitionLower.add(transitionsLower, transitionsLower);
+                    this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:transitionsLowerBis, text:transitionsLowerBis} ));
+                }, this));
+
+            },
+            // EVENTS ********************************************************
+            //
+
+
+
+
+            //affichage de la valeur du spectral range et affichage du bloc des molecules en fonction de la base de donnees selectionnee
+            onClickSelectDatabase: function(value)
+            {
+
+                if  ('GEISA2011' == value)
+                {
+                    document.getElementById('spectralRangeTitre').innerHTML = "";
+                    document.getElementById('spectralRangeTitre').innerHTML = "Choosing the spectral range (0 to 35877.030506 cm<sup>-1</sup>) :";
+                    //$("#rangeLower").val(0);
+                    //$("#rangeUpper").val(35877.030506);
+                    //$("#rangeLower").val("");
+                    //$("#rangeUpper").val("");
+
+                    document.getElementById( "BDD-GEISA2011" ).style.display = "";
+                    document.getElementById( "BDD-GEISAIASI2011" ).style.display = "none";
+                    document.getElementById( "BDD-GEISA2003" ).style.display = "none";
+                    document.getElementById( "BDD-GEISAIASI2003" ).style.display = "none";
+                }
+
+                if  ('GEISAIASI2011' == value)
+                {
+                    document.getElementById('spectralRangeTitre').innerHTML = "";
+                    document.getElementById('spectralRangeTitre').innerHTML = "Choosing spectral range (599.000793 to 3000.998767 cm<sup>-1</sup>) :";
+                    //$("#rangeLower").val(599.000793);
+                    //$("#rangeUpper").val(3000.998767);
+                    //$("#rangeLower").val("");
+                    //$("#rangeUpper").val("");
+
+                    document.getElementById( "BDD-GEISA2011" ).style.display = "none";
+                    document.getElementById( "BDD-GEISAIASI2011" ).style.display = "";
+                    document.getElementById( "BDD-GEISA2003" ).style.display = "none";
+                    document.getElementById( "BDD-GEISAIASI2003" ).style.display = "none";
+                }
+
+                if  ('GEISA2003' == value)
+                {
+                    document.getElementById('spectralRangeTitre').innerHTML = "";
+                    document.getElementById('spectralRangeTitre').innerHTML = "Choosing the spectral range (0 to 35877.030506 cm<sup>-1</sup>) :";
+                    //$("#rangeLower").val(0);
+                    //$("#rangeUpper").val(35877.030506);
+                    //$("#rangeLower").val("");
+                   // $("#rangeUpper").val("");
+
+                    document.getElementById( "BDD-GEISA2011" ).style.display = "none";
+                    document.getElementById( "BDD-GEISAIASI2011" ).style.display = "none";
+                    document.getElementById( "BDD-GEISA2003" ).style.display = "";
+                    document.getElementById( "BDD-GEISAIASI2003" ).style.display = "none";
+                }
+                if  ('GEISAIASI2003' == value)
+                {
+                    document.getElementById('spectralRangeTitre').innerHTML = "";
+                    document.getElementById('spectralRangeTitre').innerHTML = "Choosing spectral range (599.000793 to 3000.998767 cm<sup>-1</sup>) :";
+                    //$("#rangeLower").val(599.000793);
+                    // $("#rangeUpper").val(3000.998767);
+                    //$("#rangeLower").val("");
+                   // $("#rangeUpper").val("");
+
+                    document.getElementById( "BDD-GEISA2011" ).style.display = "none";
+                    document.getElementById( "BDD-GEISAIASI2011" ).style.display = "none";
+                    document.getElementById( "BDD-GEISA2003" ).style.display = "none";
+                    document.getElementById( "BDD-GEISAIASI2003" ).style.display = "";
+                }
+
+                //mettre a jour le menu dÃ©roulant des transitions en fonction des isotopes sÃ©lectionnÃ©s, de la longueur d'onde et de la base geisa
+                this.requestTransition();
+            },
+
+            //Pour sÃ©lectionner-desÃ©lectionner tous les isotopes
+            selectAll: function()
+            {
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var i=0;
+
+
+                if( this.selectButton.getValue() == 'Select all isotopologues')
+                {
+                    for( i = 0; i < count; i++ )
+                    {
+                        var  input = inputs.item( i );
+                        if( input.type == 'checkbox' )
+                        {
+                            input.checked = true;
+                        }
+                    }
+                    this.selectButton.setValue("Unselect all isotopologues");
+
+                }
+                else
+                {
+                    for( i = 0; i < count; i++ )
+                    {
+                        var  input = inputs.item( i );
+                        if( input.type == 'checkbox' )
+                        {
+                            input.checked = false;
+                        }
+                    }
+                    this.selectButton.setValue("Select all isotopologues");
+                }
+
+              //mettre a jour le menu dÃ©roulant des transitions en fonction des isotopes sÃ©lectionnÃ©s, de la longueur d'onde et de la base geisa
+                this.requestTransition();
+
+            },
+
+            //Pour montrer-cacher tous les isotopes
+            viewAll: function()
+            {
+                var divs = document.getElementsByTagName( 'div' );
+                var count = divs.length;
+                var i = 0;
+                if( this.showButton.getValue() == 'View all isotopologues')
+                {
+                    for( i = 0; i < count; i++ )
+                    {
+                        //ouvrir que les div dont l'id contient la chaine Cache
+                        if (divs.item(i).id.indexOf("Cache") != -1) {
+                            divs.item(i).style.display = "" ;
+                        }
+                    }
+                    this.showButton.setValue("Hide all isotopologues");
+                }
+                else
+                {
+                    for( i = 0; i < count; i++ )
+                    {
+                        //fermer que les div dont l'id contient la chaine Cache
+                        if (divs.item(i).id.indexOf("Cache") != -1) {
+                            divs.item(i).style.display = "none" ;
+                        }
+                    }
+                    this.showButton.setValue("View all isotopologues");
+                }
+            },
+
+            //Actions dÃ©clenchÃ©es quand on clique sur le nom d'une molÃ©cule
+            cliquetout: function()
+            {
+                var context = this[0];
+                // exemple :moleculeName = ch3ch
+                var moleculeName = this[1];
+                var bddVersion = this[2];
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var i=0;
+                for( i = 0; i < count; i++ )
+                {
+                    var  input = inputs.item( i );
+                    //cliquer toutes les molÃ©cules et isotopes du meme nom dans toutes les bases
+                    //if( input.type == 'checkbox' && ( input.id == ('chk-' + name + '-GEISA-11') || input.id == ('chk-' + name + '-GEISA-03') || input.id == ('chk-' + name + '-GEISA-IASI-11') || input.id == ('chk-' + name + '-GEISA-IASI-03')
+                    // || input.id == (name + '-all-GEISA-03') || input.id == (name + '-all-GEISA-11') || input.id == (name + '-all-GEISA-IASI-03') || input.id == (name + '-all-GEISA-IASI-11')))
+
+                    if( input.type == 'checkbox' && ( input.id.indexOf('chk-' + moleculeName + '_') != -1 || input.id.indexOf('all-'+moleculeName+'-')!= -1 ))
+
+                    {
+                        input.checked = document.getElementById( 'all-'+ moleculeName + '-' + bddVersion ).checked;
+                    }
+                }
+                //mettre a jour le menu dÃ©roulant des transitions en fonction des isotopes sÃ©lectionnÃ©s, de la longueur d'onde et de la base geisa
+                context.requestTransition();
+            },
+
+            //actions dÃ©clenchÃ©es quand on clique sur un isotope
+            cliqueIsotope: function()
+            {
+                var context = this[0];
+                //exemple isotopeName = ch3cn_134
+                var isotopeName = this[1];
+                // exemple  moleculeName= ch3cn
+                var moleculeName = this[2];
+                var bddVersion = this[3];
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var i = 0;
+                for( i = 0; i < count; i++ )
+                {
+                    input = inputs.item( i );
+
+                    //id=chk-ch3cn_234-GEISA2011
+                    //cliquer ou decliquer le meme isotope dans toutes les bases
+                    if( input.type == 'checkbox' &&  input.id.indexOf('chk-' + isotopeName) != -1)
+                    {
+                        input.checked = document.getElementById( 'chk-' + isotopeName + '-' + bddVersion ).checked;
+
+                    }
+                     // id=all-ch3cn-GEISA2011
+                    //pour dÃ©cocher la case de la molecule quand on dÃ©coche un isotope
+                   // if( input.type == 'checkbox' && input.id.indexOf('all-'+ moleculeName) != -1 && input.checked == true )
+                    // {
+                    //     input.checked = false;
+                    // }
+                }
+
+
+                //pour cocher molecule quand on clique sur un isotope et dÃ©cocher molÃ©cule quand tous les isotopes de la molÃ©cule sont dÃ©cochÃ©s
+                var nbIsotopeSelected=0;
+                var input = "";
+                var j=0;
+                var k=0;
+
+                //tableau contenant toutes les valeurs du menu dÃ©roulant  "choosing Database"
+                var databaseValues=context.selectDatabase.getValues();
+                //taille du menu dÃ©roulant
+                var nbdatabaseValues=context.selectDatabase.getSize();
+
+                //pour chaque base faire ...
+                for( j = 0; j < nbdatabaseValues ; j++ )
+                {
+                    var nbIsotopeSelected=0;
+                    //calcul du nombre d'isotopes sÃ©lectionnÃ©s pour une molÃ©cule prÃ©cise  et une base de donnÃ©es
+                    for( k = 0; k < count; k++ )
+                    {
+                        input = inputs.item( k );
+                        if( input.type == 'checkbox' &&  input.id.indexOf('chk-'+moleculeName+'_') != -1  && input.id.indexOf(databaseValues[j]) != -1 && input.checked == true )
+                        {
+                            nbIsotopeSelected=nbIsotopeSelected+1;
+                        }
+
+                    }
+                    //si aucun isotope est sÃ©lectionnÃ© et que la molÃ©cule existe dans cette base alors on dÃ©coche la molÃ©cule
+                    if ( nbIsotopeSelected == 0 && document.getElementById('all-'+ moleculeName+'-'+databaseValues[j]))
+                    {
+                        document.getElementById('all-'+ moleculeName+'-'+databaseValues[j]).checked=false;
+                    }
+                    //si au moins unisotope est sÃ©lectionnÃ© et que la molÃ©cule existe dans cette base alors on coche la molÃ©cule
+                    if ( nbIsotopeSelected > 0 && document.getElementById('all-'+ moleculeName+'-'+databaseValues[j]))
+                    {
+                        document.getElementById('all-'+ moleculeName+'-'+databaseValues[j]).checked=true;
+                    }
+                }
+
+
+                //mettre a jour le menu dÃ©roulant des transitions en fonction des isotopes sÃ©lectionnÃ©s, de la longueur d'onde et de la base geisa
+                context.requestTransition();
+
+            },
+
+
+
+            //pour cacher ou voir les isotopes d'une molecule
+            visibilite: function(  )
+            {
+                var context = this[0];
+                var thingId = this[1];
+                var divs = document.getElementsByTagName( 'div' );
+                var count = divs.length;
+                var i = 0;
+                for( i = 0; i < count; i++ )
+                {
+                    var div = divs.item( i );
+
+
+                    if  (  div.id ==   thingId)
+                    {
+                        if( div.style.display == "none" )
+                        {
+                            div.style.display = "";
+                        }
+                        else
+                        {
+                            div.style.display = "none";
+                        }
+                    }
+                }
+            },
+
+             //Faire apparatre ou disparaitre le bloc "advanced options" quand on clique sur le lien "show advanced options"
+             onClickShowAdvancedOptions: function()
+            {
+                //document.getElementById( "advancedOptions" ).style.display = "none";
+                  if( document.getElementById( "advancedOptions" ).style.display == "none" )
+                        {
+                            document.getElementById( "advancedOptions" ).style.display = "";
+                            document.getElementById( "aShowHide" ).innerHTML = "";
+                            document.getElementById( "aShowHide" ).innerHTML = "Hide advanced options";
+                        }
+                        else
+                        {
+                            document.getElementById( "advancedOptions" ).style.display = "none";
+                            document.getElementById( "aShowHide" ).innerHTML = "";
+                            document.getElementById( "aShowHide" ).innerHTML = "Show advanced options";
+                        }
+            },
+
+            //si aucun transition n'a Ã©tÃ© trouvÃ©e
+            OnclickVerifTransition : function()
+            {
+                //si l'utilisateur cahnge les valeurs de spectral range et clique directement sur le menu dÃ©roulant des transitions
+                //requestTransition met le menu dÃ©roulant Ã  jour avec les nouvelle valeurs de spectral range avant de fair la vÃ©rification
+                this.requestTransition();
+
+                //si il n'y a qu'un Ã©lÃ©ment dans les menu dÃ©roulant transition upper et lower et que la valeur est "transition"
+                //cas oÃ¹ la requete utilisateur est correct mais il n'y a pas de transition pour cette molecule t ce domaine spectral
+                if (document.getElementById('transition1').length==1 && document.getElementById('transition1').options[0].value=="transition" && document.getElementById('transition2').length==1 && document.getElementById('transition2').options[0].value=="transition")
+                {
+
+                    alert("Change isotopologues selection or spectral range values to obtain transition values");
+                }
+                //si il n'y a qu'un Ã©lÃ©ment dans les menu dÃ©roulant transition upper et lower et que la valeur est "transition"
+                //cas oÃ¹ la requete est fausse = les valeurs du domaine spectral sont fausses
+                if (document.getElementById('transition1').length==1 && document.getElementById('transition1').options[0].value=="requestError" && document.getElementById('transition2').length==1 && document.getElementById('transition2').options[0].value=="requestError")
+                {
+
+                 alert("Change spectral range values to obtain transition values");
+                }
+            },
+
+            onBlurInputMeanValue: function()
+            {
+                //si step est sup a 0,   ajout d'une ligne Z aux parametres Y1 et y2  si elle n'est pas dÃ©jÃ  prÃ©sente
+                // !this.selectTraceAxeY1.content('Z') indique que "Z" n'exite pas dans le menu dÃ©roulant  selectTraceAxeY1
+                if  ($("#meanValue2").val() > 0 && !this.selectTraceAxeY1.content('Z'))
+               //  if  ($("#meanValue2").val() > 0 && document.getElementById('selectAxeY1').options[document.getElementById('selectAxeY1').selectedIndex].value != "Z")
+                {
+
+                    this.selectTraceAxeY1.add( 'Z', "Number of lines ", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                    this.selectTraceAxeY2.add( 'Z', "Number of lines ", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                    //this.selectTraceAxeY1.append($( document.createElement( "option" ) ).attr( {value:"Z", text:"Number of lines"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY1, [this, "Z" ])));
+                    //this.selectTraceAxeY2.append($( document.createElement( "option" ) ).attr( {value:"Z", text:"Number of lines"} ).bind( 'click', jQuery.proxy(this.onClickSelectTraceAxeY2, [this, "Z" ])));
+                }
+                //si step = a 0     et autres valeurs (a faire) , retrait de la ligne Z aux parametres Y1 et y2
+                if  ($("#meanValue2").val() == 0)
+                {
+                    this.selectTraceAxeY1.remove( 'Z', "Number of lines ", jQuery.proxy(this.onClickSelectTraceAxeY1, this ) );
+                    this.selectTraceAxeY2.remove( 'Z', "Number of lines ", jQuery.proxy(this.onClickSelectTraceAxeY2, this ) );
+                    //Selection par defaut du 1er element (pour que  "Number of lines"  ne soit plus selectionne par defaut si il n'existe plus)
+                    this.selectTraceAxeY1.selectFirst();
+                    this.selectTraceAxeY2.selectFirst();
+                                     }
+            },
+
+            onClickSelectNbCourbes: function(value)
+            {
+              var context  = this[0];
+              var optionVal = this[1];
+
+               //si plusieurs courbes choisis pour les isotopes et ou molecules, les choix pour Y2 sont inactifs
+                if  ('cm' == value || 'ci' == value)
+                //if  ('cm' == optionVal || 'ci' == optionVal)
+                {
+                    //transformer le texte en gris
+                    document.getElementById("axeY2Titre").className = "notActiveText";
+                    document.getElementById("scaleY2Titre").className = "notActiveText";
+                    document.getElementById("typePlotY2Titre").className = "notActiveText";
+                    //pour rendre le menu dÃ©roulant inactif
+                    this.selectTraceAxeY2.disable();
+                    this.selectScaleY2.disable();
+                    this.selectTypeTraceY2.disable();
+                    //document.getElementById("selectAxeY2" ).disabled=true;
+                    //document.getElementById("selectScaleY2" ).disabled=true;
+                    //document.getElementById("selectTypePlotY2" ).disabled=true;
+
+                }
+                //si une seule courbe choisie pour les isotopes et ou molecules, les choix pour Y2 sont actifs
+                if  ('ca' == value || 'gm' == value || 'gi' == value)
+                //if  ('ca' == optionVal || 'gm' == optionVal || 'gi' == optionVal)
+                {
+                    //remet le texte en couleur active
+                    document.getElementById("axeY2Titre").className = "activeText";
+                    //rendre actif l'echelle que si l'intensite est choisie dans les parametres
+                    if (this.selectTraceAxeY2.getValue() == 'B')
+                    {
+                        document.getElementById("scaleY2Titre").className = "activeText";
+                    }
+                    //rendre actif le type de plot si ce n'est pas la valeur none qui est choisie
+                    if (this.selectTraceAxeY2.getValue() != 'no')
+                    {
+                        document.getElementById("typePlotY2Titre").className = "activeText";
+                    }
+                    //pour rendre les menu dÃ©roulant actifs
+                    this.selectTraceAxeY2.enable();
+                    //rendre actif l'echelle que si l'intensite est choisie dans les parametres
+                    if (this.selectTraceAxeY2.getValue() == 'B')
+                    {
+                        this.selectScaleY2.enable();
+                    }
+                    //rendre actif le type de plot si ce n'est pas la valeur none qui est choisie
+                    if (this.selectTraceAxeY2.getValue() != 'no')
+                    {
+                        this.selectTypeTraceY2.enable();
+                    }
+
+                    //remet le texte en couleur active
+                   // document.getElementById("axeY2Titre").className = "activeText";
+                    //pour rendre les menu dÃ©roulant actifs
+                   // document.getElementById("selectAxeY2" ).disabled=false;
+                    //rendre actif l'echelle que si l'intensite est choisie dans les parametres
+                   // if (document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value == 'B')
+                   // {
+                   //     document.getElementById("scaleY2Titre").className = "activeText";
+                    //    document.getElementById("selectScaleY2" ).disabled=false;
+                    //}
+                    //rendre actif le type de plot si ce n'est pas la valeur none qui est choisie
+                   // if (document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value != 'no')
+                    //{
+                    //    document.getElementById("typePlotY2Titre").className = "activeText";
+                    //    document.getElementById("selectTypePlotY2" ).disabled=false;
+                    //}
+                }
+
+
+            },
+
+
+            onClickSelectTraceAxeY1: function(value)
+            {
+                //si intensite n'est pas choisi pour Y1, le type d'Ã©chelle est inactif
+                if  (this.selectTraceAxeY1.getValue() != 'B')
+               // if  ( document.getElementById('selectAxeY1').options[document.getElementById('selectAxeY1').selectedIndex].value != 'B')
+                {
+                    //transformer le texte en gris
+                    document.getElementById("scaleY1Titre").className = "notActiveText";
+                    //pour rendre le menu dÃ©roulant inactif
+                    this.selectScaleY1.disable();
+                   //  document.getElementById("selectScaleY1" ).disabled=true;
+                }
+                //si intensite est  choisi pour Y1, le type d'Ã©chelle est actif
+                if  (this.selectTraceAxeY1.getValue() == 'B')
+                //if  ( document.getElementById('selectAxeY1').options[document.getElementById('selectAxeY1').selectedIndex].value == 'B')
+                {
+                    //transformer le texte en gris
+                    document.getElementById("scaleY1Titre").className = "activeText";
+                    //pour rendre le menu dÃ©roulant inactif
+                    this.selectScaleY1.enable();
+                   // document.getElementById("selectScaleY1" ).disabled=false;
+                }
+            },
+
+            onClickSelectTraceAxeY2: function(value)
+            {
+                //si intensite n'est pas choisi pour Y2, le type d'Ã©chelle est inactif
+                if  (this.selectTraceAxeY2.getValue() != 'B')
+                 //if  ( document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value != 'B')
+                {
+                    //transformer le texte en gris
+                    document.getElementById("scaleY2Titre").className = "notActiveText";
+                    //pour rendre le menu dÃ©roulant inactif
+                    this.selectScaleY2.disable();
+                    //document.getElementById("selectScaleY2" ).disabled=true;
+                }
+                //si intensite est  choisi pour Y2, le type d'Ã©chelle est actif
+                if  (this.selectTraceAxeY2.getValue() == 'B')
+               //if  ( document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value == 'B')
+                {
+                    //transformer le texte en foncÃ©
+                    document.getElementById("scaleY2Titre").className = "activeText";
+                    //pour rendre le menu dÃ©roulant actif
+                    this.selectScaleY2.enable();
+                    //document.getElementById("selectScaleY2" ).disabled=false;
+                }
+                //si aucun parametre est  choisi pour Y2, le type de plot est inactif
+                if  (this.selectTraceAxeY2.getValue() == 'no')
+                //if  ( document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value == 'no')
+                {
+                    //transformer le texte en gris
+                    document.getElementById("typePlotY2Titre").className = "notActiveText";
+                    //pour rendre le menu dÃ©roulant inactif
+                   this.selectTypeTraceY2.disable();
+                    // document.getElementById("selectTypePlotY2" ).disabled=true;
+                }
+                //si un parametre est  choisi pour Y2, le type de plot est actif
+               if  (this.selectTraceAxeY2.getValue() != 'no')
+                // if  ( document.getElementById('selectAxeY2').options[document.getElementById('selectAxeY2').selectedIndex].value != 'no')
+                {
+                    //transformer le texte en foncÃ©
+                    document.getElementById("typePlotY2Titre").className = "activeText";
+                    //pour rendre le menu dÃ©roulant actif
+                    this.selectTypeTraceY2.enable();
+                   //document.getElementById("selectTypePlotY2" ).disabled=false;
+                }
+
+            },
+
+            //bouton reset de toute la page  (rechargement de la page)
+            resetPage: function()
+            {
+                //location.reload(); //pas appliquÃ©e car supprime la fenÃªtre graphique
+
+                //reset du choix de la base de donnÃ©es
+                // selectFirst : affiche le premier Ã©lÃ©ment de la liste
+                //true : active la fonction associÃ©e au bouton
+                //this.selectDatabase.selectFirst( true );
+
+                //cacher tous les isotopes
+                var divs = document.getElementsByTagName( 'div' );
+                var count = divs.length;
+                var i = 0;
+
+                for( i = 0; i < count; i++ )
+                {
+                    //fermer que les div dont l'id contient la chaine Cache
+                    if (divs.item(i).id.indexOf("Cache") != -1) {
+                        divs.item(i).style.display = "none" ;
+                    }
+                }
+                this.showButton.setValue("View all isotopologues");
+
+                //dÃ©selectionner tous les isotopes
+                var inputs = document.getElementsByTagName( 'input' );
+                var count = inputs.length;
+                var i=0;
+
+                for( i = 0; i < count; i++ )
+                {
+                    var  input = inputs.item( i );
+                    if( input.type == 'checkbox' )
+                    {
+                        input.checked = false;
+                    }
+                }
+                this.selectButton.setValue("Select all isotopologues");
+
+                //spectral range
+                //$("#rangeLower").val(0);
+                //$("#rangeUpper").val(35877.030506);
+                $("#rangeLower").val("");
+                $("#rangeUpper").val("");
+                $("#sampStep").val("");
+
+                //intensity range
+                $("#intensityLo").val(0);
+                $("#intensityUp").val(1e-16);
+
+                this.selectNbCourbes.selectFirst( true );
+
+                this.selectTraceAxeY1.selectFirst( true );
+                this.selectScaleY1.selectFirst( true );
+                this.selectTypeTraceY1.selectFirst( true );
+
+                document.getElementById("transition1").length=0;
+                document.getElementById("transition2").length=0;
+                this.selectTransitionLower.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"Select a molecule", selected:"selected"} ));
+                this.selectTransitionUpper.append($( document.createElement( "option" ) ).attr( {value:"-1", text:"Select a molecule", selected:"selected"} ));
+                $("#transitionUpper").removeClass("notActiveText");
+                $("#transitionLower").removeClass("notActiveText");
+
+
+                $("#meanValue2").val("");
+
+                this.selectTraceAxeY2.selectFirst( true );
+                this.selectScaleY2.selectFirst( true );
+                this.selectTypeTraceY2.selectFirst( true );
+
+            },
+
+            onClickSubmit: function()
+            {
+                this.requestGeisa();
+            },
+
+            onClickTab: function()
+            {
+                alert("paf");
+            },
+
+            displayWindow: function(content)
+            {
+                //fermeture de la div de l'image d'attente
+                this.loadingGraphics.hide();
+
+                // var content = '<img src=' + this.pathImg + ' /><a href="project?methodName=downloadFile&fileName='  + this.nameImg + '"><button class="dataProtocolDownloadButton">Download</button></a>';
+
+                //alert(content);
+                var $dialog = $( '<div></div>' )
+
+                        .html( content )
+
+                        .dialog( {
+                            autoOpen: false,
+                            title: "GEISA : spectroscopic database",
+                            //buttons: { "Close": function() { $(this).dialog("close"); }, "Min": function() { $(this).dialog({ height: 20, width:350  }); },"Max": function() { $(this).dialog({ height: 560, width:700  }); }  },
+                            buttons:{
+                                "close":{
+                                    id:'close',
+                                    text:'Close',
+                                    height:'30px',
+                                    width:'53px',
+                                    title :'to close the window',
+                                    click: function() { $(this).dialog("close"); },
+                                },
+                                "min" :{
+                                    id:'Min',
+                                    text:'-',
+                                    height:'30px',
+                                    width:'30px',
+                                    title :'to reduce the window',
+                                    click: function() { $(this).dialog({ height:18, width:350  }); },
+                                },
+                                "max" :{
+                                    id:'Max',
+                                    text:'+',
+                                    height:'30px',
+                                    width:'30px',
+                                    title :'to enlarge the window ',
+                                    click: function() { $(this).dialog({ height: 640, width:700  }); },
+                                },
+                            },
+
+                            //minHeight: 500,
+                            // minWidth: 660,
+                            height: 640,
+                            width:700,
+                            //Exemple de  valeurs possible pour position : "middle", "top",  [200, 100]
+                            position: "middle"
+                        } );
+                $dialog.dialog( 'open' );
+            },
+
+            // displayWindow: function(coordinate)
+            //{
+            //var content = '<img src=' + this.pathImg + ' /><a href="project?methodName=downloadFile&fileName=bib.txt"><button class="dataProtocolDownloadButton">Download</button></a>';
+            // var content = '<img src=' + this.pathImg + ' /><a href="project?methodName=downloadFile&fileName='  + this.nameImg + '"><button class="dataProtocolDownloadButton">Download</button></a>';
+
+            //alert(content);
+            // var $dialog = $( '<div></div>' )
+            // .html( content + content1 )
+
+            // .dialog( {
+            //    autoOpen: false,
+            //    title: "GEISA : spectroscopic database",
+            //    minHeight: 500,
+            //    minWidth: 660,
+
+            //coordonnee y y
+            //   position:coordinate
+
+            // } );
+            // $dialog.dialog( 'open' )
+            //},
+
+
+            onClickDownload: function()
+            {
+                document.location.href = "project?methodName=downloadFile&fileName=bib.txt";
+            }
+
+
+        } );
+
+
+</script>
+
+
+
