//********************* Test du Champ s'il est vide ********************
function vide(s)
{
 if(s=="")
  { return true; }
}
//********************* Test de la taille du champ **********************
function taille(s,t)
{
 if(s.length>t)
  { return true; }
}
//********************* Caracteres speciaux **************************
function carasp(s, b)
  {  
    var i;
    for (i = 0; i < s.length; i++)
    {   
      var c = s.charAt(i);
      if (b.indexOf(c) == -1) return false;
    }
    return true;
  }
//************************** Verification de l'adresse E-mail ************************************
 function Email1(s)
       {
           var i=0;
           var cpt=0;
           var sLength = s.length;
           while (i < sLength)
           { 
             if (s.charAt(i)=="@") {cpt++;}
           i++;
            }
            
             if (cpt==1) return false;
           else   return true;
        }
 function Email2(s)
       {
         var sLength = s.length;
         if ((s.charAt(sLength-4)==".") || (s.charAt(sLength-3)==".")) return false;
            else return true;
       }
/********************************** Test sur pwd=pwd2 ********************************/

function confpwd(s1,s2)
{
 if ( s1 != s2 )
  {
   return(true);
  }
}

/********************************** Test sur la date *********************************/

function tdate(s)
{
if(!carasp(s,"0123456789/")||s.length<10) return true;
  else if((s.charAt(2)!="/")||(s.charAt(5)!="/")) return true;
          else return false;
}


/************************************ ajouter un praragraphe **************************/
function fct_pragraphe()
{
document.forms[fct_pragraphe.arguments[0]].elements[fct_pragraphe.arguments[1]].focus();
valeur=document.forms[fct_pragraphe.arguments[0]].elements[fct_pragraphe.arguments[1]].value;
document.forms[fct_pragraphe.arguments[0]].elements[fct_pragraphe.arguments[1]].value=valeur+"\n<p>\n";
document.forms[fct_pragraphe.arguments[0]].elements[fct_pragraphe.arguments[1]].focus();
}
/************************************ ajouter un retour à la ligne **************************/

function fct_ligne()
{
document.forms[fct_ligne.arguments[0]].elements[fct_ligne.arguments[1]].focus();
valeur=document.forms[fct_ligne.arguments[0]].elements[fct_ligne.arguments[1]].value;
document.forms[fct_ligne.arguments[0]].elements[fct_ligne.arguments[1]].value=valeur+"\n<br>\n";
document.forms[fct_ligne.arguments[0]].elements[fct_ligne.arguments[1]].focus();
}
 /****************************//////////////////////////
function fct_email(a){
if ( a.indexOf(".")==-1 ||  a.indexOf("@")==-1 ||  a.lastIndexOf(".")<a.length-5 || a.lastIndexOf(".")>=a.length-2)
return true
else
return false
}

// la date 
/*function fct_date(a){

if(!carasp(a, '0123456789/') || a.length>10  || (a.indexOf("/")!=2 && a.indexOf("/")!=1)|| (a.lastIndexOf("/")!=5 &&a.lastIndexOf("/")!=4 &&a.lastIndexOf("/")!=3 ))
return true ;

else

return false;
}*/
// le nombre
function fct_nombre(a){
if (isNaN(a))
return true;
else
return false;
}
function fct_retour(){
history.back();
}
function fct_fichier(a){
if (a.length<3||(a.lastIndexOf(".")!=a.length-3 && a.lastIndexOf(".")!=a.length-4 && a.lastIndexOf(".")!=a.length-5)|| a.lastIndexOf(".")==-1 )
   return true ;
else
return false
}
//**************************************************************************************************
//**************************************************************************************************
// fct_pasplus permet d'enlever le focus à une textearea quand le nombre de caractere est plus que un 
// nombre y a determinéé
// f num de formulaire
// n num d'element 
function fct_pasplus(f,n,y){
var numform;
var numelement;
var nombre_caractere;
    numform=fct_pasplus.arguments[0];
	numelement=fct_pasplus.arguments[1];
	nombre_caractere=(fct_pasplus.arguments[2]-1);
if(document.forms[numform].elements[numelement].value.length > nombre_caractere)
  {
   document.forms[numform].elements[numelement].blur();
   alert('Seulement'+y+' caractères');
  }

}

function fct_date(a){
	 
   var Expression="^[0-9]{1,2}[/]{1}[0-9]{1,2}[/]{1}([0-9]{2}$|[0-9]{4}$)";
   var Verif=new RegExp("\/" ,"g");
   var ExpressionDate=new RegExp(Expression, "g");
  if(!ExpressionDate.test(a))
      {  return true}
	  
  else 
  {// debut else
    var tableau=a.split(Verif);
	var annee=parseInt(tableau[2]); 
	var mois=parseInt(tableau[1]);
	var jour=parseInt(tableau[0]);
	if( mois>12 ||  jour <1 ||  jour>31|| jour<1 || annee<1){return true;}
	annee=(annee<10)?annee+2000:annee;
	annee=(annee>10&&annee<100)?1900+annee:annee;
	
//Est-ce que l'année est divisible par 4 et pas 
    vingtNeuf =((annee % 4 ==0 && annee % 100 !=0) || (annee % 400 ==0))?true:false;
	
	if(mois==2 && vingtNeuf &&jour>29){return true;}
	if(mois==2 &&!vingtNeuf&&jour>28){return true;}
   
	
	// moi paire inferieur à 8
	   if(mois%2==0 && mois<8 && jour>30){ return true ;  
	   }
	   
	// moi impaire superieur au moi 8
	 if(mois%2!=0 && mois>8 && jour>30){  return true ; 
	 }

  }// fin else
   return false;
  }
  
 /************************************************************************************************************* Script pour infobulle  
Pour l'ajout dans les pages: 
onmouseover="montre('Le site comme cela etaits defini dans l\'archetecture du site par le comiter du projet');" onmouseout="cache();"


*****/
  var xOffset=6
var yOffset=5    

var affiche = false; // La variable i nous dit si le bloc est visible ou non
var w3c=document.getElementById && !document.all;
var ie=document.all;

if (ie||w3c) {
  var laBulle
}

function ietruebody(){  // retourne le bon corps...
  return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function deplacer(e) {
  if(affiche){
    var curX = (w3c) ? e.pageX : event.x + ietruebody().scrollLeft;
    var curY = (w3c) ? e.pageY : event.y + ietruebody().scrollTop;

    var winwidth = ie && !window.opera ? ietruebody().clientWidth : window.innerWidth - 20;
    var winheight = ie && !window.opera ? ietruebody().clientHeight : window.innerHeight - 20;

    var rightedge = ie && !window.opera ? winwidth - event.clientX - xOffset : winwidth - e.clientX - xOffset;
    var bottomedge = ie && !window.opera ? winheight - event.clientY - yOffset : winheight - e.clientY - yOffset;

    var leftedge = (xOffset < 0) ? xOffset*(-1) : -1000

    // modifier la largeur de l'objet s'il est trop grand...
    if(laBulle.offsetWidth > winwidth / 3){
      laBulle.style.width = winwidth / 3
    }

    // si la largeur horizontale n'est pas assez grande pour l'info bulle
    if(rightedge < laBulle.offsetWidth){
      // bouge la position horizontale de sa largeur à gauche
      laBulle.style.left = curX - laBulle.offsetWidth + "px"
    } else {
      if(curX < leftedge){
        laBulle.style.left = "5px"
      } else{
        // la position horizontale de la souris
        laBulle.style.left = curX + xOffset + "px"
      }
    }

    // même chose avec la verticale
    if(bottomedge < laBulle.offsetHeight){
      laBulle.style.top = curY - laBulle.offsetHeight - yOffset + "px"
    } else {
      laBulle.style.top = curY + yOffset + "px"
    }
  }
}
function montre(text) {
  if (w3c||ie){
    laBulle = document.all ? document.all["bulle"] : document.getElementById ? document.getElementById("bulle") : ""
    laBulle.innerHTML = text; // fixe le texte dans l'infobulle
    laBulle.style.visibility = "visible"; // Si il est cachée (la verif n'est qu'une securité) on le rend visible.
    affiche = true;
  }
}
function cache() {
  if (w3c||ie){
    affiche = false
    laBulle.style.visibility="hidden" // avoid the IE6 cache optimisation with hidden blocks
    laBulle.style.top = '-1000px'
    laBulle.style.backgroundColor = ''
    laBulle.style.width = ''
  }
}

document.onmousemove = deplacer; // des que la souris bouge, on appelle la fonction move pour mettre a jour la position de la bulle.
// fin script info bulle