<!-- 
// -----------------------------------------------------------
// 											http://www.antares-sa.fr 
// -----------------------------------------------------------
// Fichier      :  fct_tools.js
// Description  :  librairie de fonctions utiles en javascript
// Date         :  juillet 2002
// -----------------------------------------------------------
// Prototypes	:
//		... assure le controle des type [ 'NUM', 'ALNUM', 'DEC', 'HEXA', 'DATE', 'HOUR' ]
//		function check					controle de type
//		...								
//		function 	trim				supression des espaces (début et fin de chaîne)
//		function 	fullTrim			supression des espaces (début, milieu et fin de chaîne)
//		function 	dotToComa		remplace un point par une virgule
//		function 	replace			remplace une chaine de caractere par une autre dans une expression
//		function 	UCase				Conversion en majuscule
//		functions	SetMaxChar et GetCurrentCharCount	2 fonctions permettant de limiter la taille d'un champ textarea
//		function		getConfirm		Demande une confirmation (par defaut la suppression)
//		function 	ctrlTypMail		controle de validite d'une adresse mail
// 	function 	oblig				controle zone obligatoire (enleve les espaces)
// 	function 	obligSimple		controle zone obligatoire (n'enleve pas les espaces)
//		function 	ctrlTypCharDebut	Controle de type caractere avec début de la chaine
//		function 	ctrlTypIntBorne	controle de type integer utilisant une borne max ou min
//		function 	isNumeric		controle de type integer (valeur passée en parametre)
//		function		getDayOfWeek	retourne le jour de la semaine avec obj en parametre
//		function		getDayOfWeek_jma	retourne le jour de la semaine avec j, m et a en parametre
// -----------------------------------------------------------
// Utilisation	:
//		cf. templatetools.htm
// -----------------------------------------------------------
// Librairies requises (et dans l'ordre svp) : 
//		cst_tool.js
//		fct_browsercheck.js
//		fct_hidetools.js
// -----------------------------------------------------------

// --------------------------------------------------
// controle de type --> fonction d'appel
function check(FormName,Format) {
	FormName.value = trim(FormName.value);
	if (FormName.value.length > 0) {
		if (checkField(FormName,Format)) {
			if (is.ie) {
				FormName.style.backgroundColor = bgColNormal;
			}
		}
		else {
			window.alert("Format incorrect !\nRecommencez s.v.p.");
			FormName.value = "";
			if (is.ie) {
				FormName.style.backgroundColor = bgColFormatErr;
			}
			FormName.focus();
		}
	}
	else {
		if (is.ie) {
			FormName.style.backgroundColor = bgColNormal;
		}
	}
} // function check
	
// ------------------------------------------------------------------------------
// supression des espaces 
function trim(chaine) { 
	while (chaine.substring(0,1) == ' ') 	// espaces au debut 
		chaine = chaine.substring(1, chaine.length);
	while (chaine.substring(chaine.length-1,chaine.length) == ' ')	// espaces a la fin 
		chaine = chaine.substring(0, chaine.length-1);
	return chaine;
} 

// ------------------------------------------------------------------------------
// supression des espaces (début, milieu et fin de chaîne)
function fullTrim(string) {
	if(string!='') {return string.replace(/\s/gi,"");} else {return string;}
}

// ------------------------------------------------------------------------------
// remplace un point par une virgule
function dotToComa(obj) {
	var expr = obj.value;
	if(expr!='') {obj.value = expr.replace(/\./gi,",");}
}

// ------------------------------------------------------------------------------
// remplace une chaine de caractere par une autre dans une expression
function replace(obj, find, replaceWith) {
	var expr = obj.value;
	while (expr.indexOf(find)>-1) {
		pos= expr.indexOf(find);
		expr = "" + (expr.substring(0, pos) + replaceWith + expr.substring((pos + find.length), expr.length));
	}
	obj.value = expr;
}

// ------------------------------------------------------------------------------
// Conversion en majuscule
function UCase(obj) {
	obj.value = obj.value.toUpperCase();
}

// ------------------------------------------------------------------------------
// 2 fonctions permettant de limiter la taille d'un champ textarea
// Initialisation du nbre max de caracteres et du nb de caracteres deja saisis
function SetMaxChar(CurrentObject, max, nb) {
	if ((nb == 0) || (nb == '')) nb="NL";
	if (nb != "NL") {
		max.value=nb;
		str = "Nombre de caractères maximal : " + nb;
		str = str + " / Nombre de caractères utilisé : " + CurrentObject.value.length ;
	}
	else {
		max.value="illimité";
		str = "Nombre de caractères maximal : illimité / Nombre de caractères utilisé : " + CurrentObject.value.length;
	}
	self.status=str;
}

// comptage des caracteres saisie
function GetCurrentCharCount(CurrentObject,max) {
	str = "Nombre de caractères maximal : " + max.value;
	str = str + " / Nombre de caractères actuel : " + CurrentObject.value.length;
	if ((CurrentObject.value.length > max.value)&&(max.value != "0")) {
		str = CurrentObject.value;
		CurrentObject.value = str.slice(0, max.value);
		str = "Nombre de caractères maximal : " + max.value;
		str = str + " / Nombre de caractères actuel : " + CurrentObject.value.length;
	}
	self.status=str;
}

// ------------------------------------------------------------------------------
//	Demande une confirmation (par defaut la suppression)
	function getConfirm(msg)	{
		if (msg=='') msg = 'Etes-vous sûr(e) de vouloir supprimer ?';
		if (confirm(msg))
		{return true;
		}
	 else 
		{return false;
		}
}

// ------------------------------------------------------------------------------
// Controle de validite d'une adresse mail
function ctrlTypMail(obj) {
	var It = true;
	var mail = obj.value;
	obj.value = trim(mail);
	if(obj.value=="") {
		if(is.ie){
			obj.style.backgroundColor = bgColNormal;
		}
	}
	else {
	   if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) { // (controle du '.' et du '@')
			if(is.ie){
				obj.style.backgroundColor = bgColNormal;
			}
		} 
		else {
			alert("Mail invalide !");
			obj.value = "";
			if(is.ie){
				obj.style.backgroundColor = bgColFormatErr;
			}
			obj.focus();
			It = false;
		}
	}
	return It;
} // function ctrlTypMail

// --------------------------------------------------
//  Controle de zone obligatoire (enleve les espaces)
function oblig (champs , message) {
	champs.value = trim(champs.value);
	return obligSimple (champs, message);
}

// --------------------------------------------------
// Controle de zone obligatoire simple  (n'enleve pas les espaces)
function obligSimple (champs, message ) {
  if (champs.value == "") {
        alert(message);
        return false;
  }
	return true;
}

// ------------------------------------------------------------------------------
//  Controle de type caractere avec début de la chaine
function ctrlTypCharDebut (obj , stringDebut) {
	var It = true;
	var c;
	obj.value = trim(obj.value);
	if (obj.value.length > 0) {		
		for (var x = 0; x < obj.value.length; x++)
			if (It) {
				c = obj.value.charAt(x);
				It = (  (AlphaChars.indexOf(c) != -1) || (NumChars.indexOf(c) != -1) );
			}
		// teste si obj.value commence par stringDebut
		It = (obj.value.substring(0,stringDebut.length).toUpperCase() == stringDebut.toUpperCase());
	
			if (It == false) {
				if (is.ie) {
					obj.style.backgroundColor = bgColFormatErr;
				}
				alert('Ce champ doit débuter par ' + stringDebut + ".");
				obj.value = stringDebut;
				obj.focus();
			}
	      else {
				if (is.ie) {
		      	obj.style.backgroundColor = bgColNormal;
				}
			}
	}
	else {
		if (is.ie) {	
			obj.style.backgroundColor = bgColNormal;}
		}
	return It;
} // function ctrlTypCharDebut

// --------------------------------------------------
//  Controle de type integer utilisant une borne max ou min
function ctrlTypIntBorne (obj,borne,isMax) {
	var It = true;
	obj.value = trim(obj.value);
	if (obj.value.length > 0) {		
		if(ctrlTypInt(obj)) {
			// validation de la valeur saisie entre les borne Max si isMas vrai Min sinon
			if ((isMax == true)&&(parseInt(obj.value) > parseInt(borne)))  {
					alert('La valeur saisie ne peut être supérieure à ' + borne.toString());
					obj.value = "";
					if (is.ie) {
						obj.style.backgroundColor = bgColFormatErr;
					}
					obj.focus();
					It = false;
			}
			if ((isMax == false)&&(parseInt(obj.value) < parseInt(borne))) {
					alert('La valeur saisie ne peut être inférieure à ' + borne.toString());
					obj.value = "";
					if (is.ie) {
						obj.style.backgroundColor = bgColFormatErr;
					}
					obj.focus();
					It = false;
			}
		}
		else {
			window.alert("Format incorrect !\nRecommencez s.v.p.");
			obj.value = "";
			if (is.ie) {
				obj.style.backgroundColor = bgColFormatErr;
			}
			obj.focus();
			It = false;
		}
	}
	if (It) {
		if (is.ie) {
			obj.style.backgroundColor = bgColNormal;
		}
	}
	return It;
} // function ctrlTypIntBorne

// --------------------------------------------------
// controle de type entier (valeur passée en parametre et non l'objet)
function isNumeric(Data) {
	var It = true;
	var c;
	for (var x = 0; x < Data.length; x++)
		if (It) {
			c = Data.charAt(x);
			It = ( NumChars.indexOf(c) != -1);
		}
	return It;
}

// --------------------------------------------------
// retourne le jour de la semaine

// avec le format qui doit être jj/mm/aa
function getDayOfWeek(D) { 
	var DateData = D.value;
	if(ctrlTypDate(D)) {
		j = DateData.substring(0,2);
		m = DateData.substring(3,5);
		a = DateData.substring(6,8);
		return jour[getNumberDayOfWeek(j,m,a)%7];
	}
}

// avec le j , m et a en parametres
function getDayOfWeek_jma(J,M,A) {
	return jour[getNumberDayOfWeek(J,M,A)%7];
}

//-->
