var isMozilla = navigator.userAgent.indexOf('Mozilla') != -1 && parseInt(navigator.appVersion.substring(0,1)) >= 5;
var isIE = navigator.userAgent.indexOf('MSIE') != -1;
<!--
function ilFautRemplir(nomDuChamp){
	alert('Il faut remplir le champ nommé :' + nomDuChamp);
	return false;
}


function doitEtreUnNombre(nomDuChamp){
	alert('Le champ nommé "' + nomDuChamp + '" doit contenir un nombre');
	return false;
}


function popupall(myurl,myname,myscroll,mytool,myresize,mywidth,myheight)
{
	var myLeft = (screen.width) - (mywidth + 200) //apparaît à 100 pixels du bord gauche

	// URL  |  nom de la fenêtre : même nom --> même popup  |  chaîne de caractère avec les paramètres
	FixedWindow=window.open( myurl, myname, "left=" + myLeft + ",scrollbars=" + myscroll + ",toolbar=" + mytool + ",location=0,directories=0,statusbar=0,menubar=0,resizable=" + myresize + ",screenY=30,top=30,width=" + mywidth + ",height=" + myheight );
	//FixedWindow=window.open( myurl, myname, "left=" + myLeft + ",scrollbars=yes,toolbar=yes,location=0,directories=0,statusbar=0,menubar=0,resizable=" + myresize + ",screenY=30,top=30,width=" + mywidth + ",height=" + myheight );
	FixedWindow.focus();
}
function infoBulleKyrandeAlt(idElement) {
  bulle = new infoBulle();
  bulle.enableAlt = true;
  bulle.decY  = 31;
  bulle.decX  = 4;
  bulle.setTo(document.getElementById(idElement),"");
}
function infoBulleKyrande(idElement) {
  bulle = new infoBulle();
  bulle.decY  = 31;
  bulle.decX  = 4;
  bulle.setTo(document.getElementById(idElement),"");
}
function checkEmail(email)
{
	var returnCode = true;
	var atPos
	var dotPos

	// on cherche le caractère @ qui doit être présent.
	atPos = email.indexOf("@");

	if(atPos < 1){
		returnCode = false;
	} else{
		// on cherche le point qui doit être présent.
		dotPos = email.indexOf(".", atPos);

		if((dotPos - atPos) < 2) returnCode = false;
		// il faut au moins 2 caractères après le point (.be, .fr, .com --> OK,  mais .a, .b --> KO)

		if((email.length - dotPos) < 3) returnCode= false;
	}

	if(returnCode==false) alert("L'adresse e-mail que vous avez rentrée ne semble pas correcte");

	return returnCode;
}
//-->
/**
 *  fonction permettant d'empecher l'utilisateur de taper
 *  autre chose qu'un entier
 *  @param objet l'objet de type text (passage avec this)
*/
function valideInt(objet){
	supprimeCaractereInvalide(objet, /[\d]/g);
}
//-->
/**
 *  fonction permettant d'empecher l'utilisateur de taper
 *  autre chose qu'un entier
 *  @param objet l'objet de type text (passage avec this)
*/
function valideFloat(objet){
	supprimeCaractereInvalide(objet, /[\d\|.]/g);

}
/**
 *  fonction permettant d'empecher l'utilisateur de taper
 *  n'importe quoi dans une zone de saisie libre
 *  remplace les caractères invalide par rien avec gestion de la position du curseur
 *  @param objet l'objet de type text (passage avec this)
 *  @param testregex l'expression régulière qui va permettre de tester la chaine et d'eliminer remplacer les
 *                   occurences fausses.
 */
function supprimeCaractereInvalide(objet, testregex){
	if(testKeyCode()){
		var position = positionCurseur(objet);
		var result = supprimeCaractereInvalidePourString(objet.value, testregex);
		if(result.length < objet.value.length){
			position = position - (objet.value.length - result.length);
		}
		objet.value = result;

		positionneCurseur(objet, position);
	}
}

/**
 *  fonction permettant d'empecher l'utilisateur de taper
 *  n'importe quoi dans une zone de saisie libre
 *  remplace les caractères invalides par rien
 *  @param string
 *  @param testregex l'expression régulière qui va permettre de tester la chaine et d'eliminer remplacer les
 *                   occurences fausses.
 */
function supprimeCaractereInvalidePourString(string, testregex){

	var resultat = string.match(testregex);
	string = '';
	if(resultat){
 		 for(i=0;i<resultat.length;++i){
  		 	string += resultat[i];
  		 }
  	}

  	return string;

}
/**
 *  fonction déterminant la position du curseur dans un portion de texte editable
 *  @param objet l'objet de type text
*/
function positionCurseur(objet){

	if(objet.isTextEdit){

	  //ajoute 1 au maxLength pour pouvoir récuperer la position quand le curseur est a la fin
	  //sinon on a une position avec -1

	  var maxLengthReel = objet.maxLength;
	  objet.maxLength = maxLengthReel + 1;

	  objet.selection = document.selection.createRange();
	  carRecherche = "~";
      copieTexte = objet.value;
      objet.selection.text = carRecherche;
      no = objet.value.search(carRecherche);

      objet.value = copieTexte;
      objet.maxLength = maxLengthReel

      return no;
     }
}


/**
 *  fonction qui positionne le curseur a l'indexPosition
 *	Ne fonctionne que sous IE
 *  @param objet l'objet de type text
 *  @param indexPosition position final du curseur depuis le debut de la zone de saisie
 */
function positionneCurseur(objet, indexPosition){
	if(objet.isTextEdit){
		var rng = document.selection.createRange();
		rng.expand('textedit');
		rng.moveStart('character', indexPosition);
		rng.moveEnd('character', -(objet.value.length-indexPosition));
		rng.select();
	}
}


/**
 * test si la touche appuyer est soit une des touches flèches
 * soit la touche effecer ou la touche supprime
 *
 *
 */
function testKeyCode(){
	var touche;
	if (isMozilla) {
		touche = this.which;
	} else {
		touche = window.event.keyCode;
	}
	if(touche == 37 || touche == 38 || touche == 39 || touche == 40 || touche == 46 || touche == 8){
		return false;
	}else{
		return true;
	}
}
function calendarKyrande(value, anchor,pattern) {
	var cal = new CalendarPopup();
	cal.select(value,anchor,pattern);
}

function alert(text) {
	// Replace the break TAGs with nothing.
	var re = new RegExp ('\n', 'gi') ;
	var newstr = text.replace(re, '<br>') ;
	document.getElementById("error").innerHTML = newstr;
}
 function showHide(idElement) {
   //on cache ou décache le sous-tableau
   var object = document.getElementById(idElement);

    if(object.style.display==""||object.style.display=="none"){

        if(navigator.appName == "Microsoft Internet Explorer"){
          //ie ne respecte pas encore une fois la norme...
          object.style.display="block";

        }else{

          object.style.display="table-row-group";

        }
    }else{

          object.style.display="none";

    }
}

function show(idElement) {
   //on cache ou décache le sous-tableau
   var object = document.getElementById(idElement);

    if(navigator.appName == "Microsoft Internet Explorer"){
      //ie ne respecte pas encore une fois la norme...
      object.style.display="block";

    }else{

      object.style.display="table-row-group";

    }
}

function hide(idElement) {
   //on cache ou décache le sous-tableau
   var object = document.getElementById(idElement);

   object.style.display="none";

}

function getRadioValue(radioName) {
 var collection;
 collection = document.getElementsByName(radioName);
 for (i=0;i<collection.length;i++) {
    if (collection[i].checked)
       return(collection[i].value);
  }
}

