function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' .\n'; }
  } if (errors) alert('Remplisser les champs suivant:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

    function champ_verrouille(champ,valeur) {
           // Remarque : en HTML 4.0, il existe un attribut "read-only" pour la
           //            balise <INPUT TYPE=text> qui interdira de modifier un champ
           //            mais ce que je fais ci-dessous est beaucoup plus sûr !!!
      // alert ("Ce champ de peut pas être modifié !") ;
      document.formgite.elements[champ.name].value = valeur ;   // on remet "valeur" initiale dans champ
    }
	
	    function test_champ(champ) {
      expr_reg = /^\d*$/ ;
      // Ci-dessus : expression régulière qui match 0,1 ou plusieurs chiffres ;
      // de cette façon on vérifie que l'utilisateur entre bien un nombre entier
      if ( expr_reg.test(champ.value) ) {
        // c'est bien un nombre entier
        calcul_form() ;
      } else {
        // ce n'est pas un nombre entier
        alert ("Ce n'est par un nombre entier !") ;
        document.formgite.elements[champ.name].value = "" ;   // on efface la valeur entrée erronée
        calcul_form() ;
      }
    }
    
    function calcul_form() {
      // le with ci-dessous permet d'abréger "document.forms.form1.p1.value" en "p1.value"
      with (document.forms.formgite) {
        p1.value = q1.value * pu1.value * jour1.value ;
        p2.value = q2.value * pu2.value * jour2.value;
        p3.value = q3.value * pu3.value * jour3.value;
		p4.value = q4.value * pu4.value * jour4.value;
        p5.value = q5.value * pu5.value * jour5.value;
        p6.value = q6.value * pu6.value * jour6.value;
		p7.value = q7.value * pu7.value * jour7.value;
        p8.value = q8.value * pu8.value * jour8.value;
        p9.value = q9.value * pu9.value * jour9.value;
		p10.value = q10.value * pu10.value * jour10.value;
        p11.value = q11.value * pu11.value * jour11.value;
        p12.value = q12.value * pu12.value * jour12.value;
		p13.value = q13.value * pu13.value ;
        p14.value = q14.value * pu14.value ;
        p15.value = q15.value * pu15.value ;
		p16.value = q16.value * pu16.value ;
        p17.value = q17.value * pu17.value ;
        p18.value = q18.value * pu18.value ;
		p19.value = q19.value * pu19.value ;
        p20.value = q20.value * pu20.value ;
        p21.value = q21.value * pu21.value ;
        p22.value = q22.value * pu22.value ;
        p23.value = q23.value * pu23.value ;
		p24.value = q24.value * pu24.value ;
        p25.value = q25.value * pu25.value ;
        p26.value = q26.value * pu26.value ;
		var ttl01 = cumul1.value;
        var ttl02 = cumul2.value = p1.value *1 + p2.value *1 + p3.value *1 + p4.value *1 + p5.value *1 + p6.value *1 + p7.value *1 + p8.value *1 + p9.value *1 + p10.value *1 + p11.value *1 + p12.value *1;
		var ttl03 = cumul3.value = p13.value *1 + p14.value *1 + p15.value *1 + p16.value *1 + p17.value *1 + p18.value *1 + p19.value *1 + p20.value *1;
	    var ttl04 = cumul4.value = p21.value *1 + p22.value *1 + p23.value *1 + p24.value *1 + p25.value *1 + p26.value *1;
		total.value = ttl01 *1 + ttl02 *1 + ttl03 *1 + ttl04 *1; 
		   
		   // Ai mis les *1 ci-dessus afin que les + fassent une somme arithmétique
           // et non pas une concaténation de chaînes de caractères
      }
    }
	
	function ieExecWB( intOLEcmd, intOLEparam ) { 
     var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; 
      document.body.insertAdjacentHTML('beforeEnd', WebBrowser); 
      if (!intOLEparam || intOLEparam < -1 || intOLEparam > 1 ) { 
      intOLEparam = 1; 
    } 
     WebBrowser1.ExecWB( intOLEcmd, intOLEparam ); 
     WebBrowser1.outerHTML = ""; 
};

MM_reloadPage(true);

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_popupMsg(msg) { //v1.0
  alert(msg);
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function bissextile(annee) {
if (annee%4==0 && annee %100!=0 || annee%400==0) return true; else return false
}

function nb_01_01(date){
nb_mois=new Array(13);
nb_mois=[,0,31,59,90,120,151,181,212,243,273,304,334];
j=eval(date[0]) ; m=eval(date[1]) ; a=eval(date[2]);
nb=nb_mois[m]+j-1 ;
if (bissextile(a) && m>2) nb++;
return nb;
}

function nb_jour_annee(a1,a2){
n=0;
if (a1==a2) n=0 ; else
for (i=a1; i<a2; i++) {n += 365; if (bissextile(i)) n++}
return n;
}

function nb_jour(date1,date2){
a1=eval(date1[2]) ; a2=eval(date2[2]) ; 
nb=nb_jour_annee(date1[2],date2[2]) - nb_01_01(date1) + nb_01_01(date2);
document.form.reponse.value=nb
}

function annee_bissextile(annee)
{if (annee%4==0 && annee %100!=0 || annee%400==0) document.bissext.reponse.value="est bissextile"; else document.bissext.reponse.value="n'est pas bissextile"}