/*******************************************************
********************************************************
* Vérification des champs
********************************************************
*******************************************************/
// I - Champs obligatoires
//Déclaration des tableaux javascript contenant la liste des champs obligatoires
var requiredDDL = new Array();
var requiredDateBox = new Array();
var requiredTextBox = new Array();
var requiredFileUpload = new Array();
var requiredTextBoxMaj = new Array();
var requiredTextBoxUrl = new Array();
var requiredTextBoxDate = new Array();
var requiredTextBoxMail = new Array();
var requiredTextBoxText = new Array();
var requiredTextBoxTime = new Array();
var requiredTextBoxNumber = new Array();
var requiredDDLAutoComplete = new Array();


//Fonction de vérification du contenu des formulaires
function isValidForm(form){
	var formName = form.name;
	var requiredOk = true;
	var formatTextOk = true;
	var formatNumberOk = true;
	var formatDateOk = true;
	var formatTimeOk = true;
	var formatMailOk = true;
	var formatUrlOk = true;
	var formatMajOk = true;
	var i;
	//hideAlertErr();
	
	if($('DDLAutoCompleteOpen').value == '0'){
		//Vérification des champs textbox
		if(requiredTextBox[formName]){
			i = 0;
			while(requiredTextBox[formName][i]){
				$(requiredTextBox[formName][i]).className = "tb";
				if($(requiredTextBox[formName][i]).value == ""){
					//alert(requiredTextBox[formName][i]);
					requiredOk = false;
					//alert('TB' + $(requiredTextBox[formName][i]).name);
					$(requiredTextBox[formName][i]).className = "tbErreur";
					if($('textbox' + requiredTextBox[formName][i] + '_divPart')){unLock(requiredTextBox[formName][i]);}
				}
				i++;
			}
		}
		
		// Vérification des champs FileUpload
		if ( requiredFileUpload[formName] ) 
		{
			i = 0;
			while(requiredFileUpload[formName][i])
			{
				$(requiredFileUpload[formName][i]).className = "tb";
				if ($(requiredFileUpload[formName][i]).value == "")
				{
					requiredOk = false;
					//alert('FU');
					$(requiredFileUpload[formName][i]).className = "tbErreur";					
				}
				i++;
			}
		}
		
		//Vérification des champs datebox
		if(requiredDateBox[formName]){
			i = 0;
			while(requiredDateBox[formName][i]){
				$(requiredDateBox[formName][i]).className = "tb";
				if($(requiredDateBox[formName][i]).value == ""){
					//alert(requiredDateBox[formName][i]);
					requiredOk = false;
					//alert('DT');
					$(requiredDateBox[formName][i]).className = "tbErreur";
				}
				i++;
			}
		}
		
		//Vérification des champs DDLAutoComplete
		if(requiredDDLAutoComplete[formName]){
			i = 0;
			while(requiredDDLAutoComplete[formName][i]){
				$(requiredDDLAutoComplete[formName][i]).className = "tbAutoComplete";
				if($(requiredDDLAutoComplete[formName][i]).value == "" || $(requiredDDLAutoComplete[formName][i]).value == "*"){
					//alert(requiredDDLAutoComplete[formName][i]);
					requiredOk = false;
					//alert('DDLA');
					$(requiredDDLAutoComplete[formName][i]).className = "tbAutoCompleteErreur";
					if($('textbox' + requiredDDLAutoComplete[formName][i] + '_divPart')){unLock(requiredDDLAutoComplete[formName][i]);}
				}
				i++;
			}
		}
		
		//Vérification des champs DDL
		if(requiredDDL[formName]){
			i = 0;
			while(requiredDDL[formName][i]){
				$(requiredDDL[formName][i]).className = "ddl";
				if($(requiredDDL[formName][i]).value == 0){
					//alert(requiredDDL[formName][i]);
					requiredOk = false;
					//alert('DDL' + $(requiredDDL[formName][i]).name);
					$(requiredDDL[formName][i]).className = "ddlErreur";
					if($('textbox' + requiredDDL[formName][i] + '_divPart')){unLock(requiredDDL[formName][i]);}
				}
				i++;
			}
		}
		
		if(!requiredOk){
			messageErreur('generique_erreur_champs_obligatoires');
		} else {
			
			//Vérification des champs texte numériques
			if(requiredTextBoxNumber[formName]){
				i = 0;
				while(requiredTextBoxNumber[formName][i]){
					$(requiredTextBoxNumber[formName][i]).className = "tb";
					if($(requiredTextBoxNumber[formName][i]).value != ""){
						if (isNaN(StrToDbl($(requiredTextBoxNumber[formName][i]).value))) {
							$(requiredTextBoxNumber[formName][i]).className = "tbErreur";
							formatNumberOk = false;
						}
					}
					i++;
				}
			}
			if (!formatNumberOk) {
				messageErreur('generique_erreur_champs_numerique');
			}
			
			//Vérification des champs texte date
			if(requiredTextBoxDate[formName]){
				i = 0;
				while(requiredTextBoxDate[formName][i]){
					$(requiredTextBoxDate[formName][i]).className = "tb";
					if($(requiredTextBoxDate[formName][i]).value != ""){
						if (!isDate($(requiredTextBoxDate[formName][i]).value)) {
							$(requiredTextBoxDate[formName][i]).className = "tbErreur";
							formatDateOk = false;
						}
					}
					i++;
				}
			}
			if (!formatDateOk) {
				messageErreur('generique_erreur_champs_date');
			}
			
			//Vérification des champs texte text
			if(requiredTextBoxText[formName]){
				i = 0;
				while(requiredTextBoxText[formName][i]){
					$(requiredTextBoxText[formName][i]).className = "tb";
					if($(requiredTextBoxText[formName][i]).value != ""){
						if (!isText($(requiredTextBoxText[formName][i]).value)) {
							$(requiredTextBoxText[formName][i]).className = "tbErreur";
							formatTextOk = false;
						}
					}
					i++;
				}
			}
			if (!formatTextOk) {
				messageErreur('generique_erreur_champs_text');
				//showAlertErr('formatText', '');
			}
			
			//Vérification des champs texte time
			if(requiredTextBoxTime[formName]){
				i = 0;
				while(requiredTextBoxTime[formName][i]){
					$(requiredTextBoxTime[formName][i]).className = "tb";
					if($(requiredTextBoxTime[formName][i]).value != ""){
						if (!isTime($(requiredTextBoxTime[formName][i]).value)) {
							$(requiredTextBoxTime[formName][i]).className = "tbErreur";
							formatTimeOk = false;
						}
					}
					i++;
				}
			}
			if (!formatDateOk) {
				messageErreur('generique_erreur_champs_time');
				//showAlertErr('formatTime', '');
			}
			
			//Vérification des champs texte mail
			if(requiredTextBoxMail[formName]){
				i = 0;
				while(requiredTextBoxMail[formName][i]){
					$(requiredTextBoxMail[formName][i]).className = "tb";
					if($(requiredTextBoxMail[formName][i]).value != ""){
						if (!isMail($(requiredTextBoxMail[formName][i]).value)) {
							$(requiredTextBoxMail[formName][i]).className = "tbErreur";
							formatMailOk = false;
						}
					}
					i++;
				}
			}
			if (!formatMailOk) {
				messageErreur('generique_erreur_champs_mail');
				//showAlertErr('formatMail', '');
			}
			
			//Vérification des champs texte url
			if(requiredTextBoxUrl[formName]){
				i = 0;
				while(requiredTextBoxUrl[formName][i]){
					$(requiredTextBoxUrl[formName][i]).className = "tb";
					if($(requiredTextBoxUrl[formName][i]).value != ""){
						if (!isUrl($(requiredTextBoxUrl[formName][i]).value)) {
							$(requiredTextBoxUrl[formName][i]).className = "tbErreur";
							formatUrlOk = false;
						}
					}
					i++;
				}
			}
			if (!formatUrlOk) {
				messageErreur('generique_erreur_champs_url');
				//showAlertErr('formatUrl', '');
			}
			
			//Vérification des champs texte en majuscule
			if(requiredTextBoxMaj[formName]){
				i = 0;
				while(requiredTextBoxMaj[formName][i]){
					$(requiredTextBoxMaj[formName][i]).className = "tb";
					if($(requiredTextBoxMaj[formName][i]).value != ""){
						if (!isMAJ($(requiredTextBoxMaj[formName][i]).value)) {
							$(requiredTextBoxMaj[formName][i]).className = "tbErreur";
							formatMajOk = false;
						}
					}
					i++;
				}
			}
			if (!formatMajOk) {
				messageErreur('generique_erreur_champs_maj');
				//showAlertErr('formatMaj', '');
			}
		}
		
		if(requiredOk && formatNumberOk && formatDateOk && formatTimeOk && formatTextOk && formatMailOk && formatUrlOk && formatMajOk){
			if(isValidSemiRequiredForm(form)){
				return true;
			} else {
				return false;
			}
			
		} else {
			return false;
		}
	} else {
		return false;
	}
}

//LES AJOUTS
//Cette fonction permet d'alimenter le tableau qui liste les textbox obligatoires
function addRequiredTextBox(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBox[formName])
			requiredTextBox[formName] = new Array();
		requiredTextBox[formName][requiredTextBox[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les fileUpload obligatoires
function addRequiredFileUpload(controlName) 
{
	if ($(controlName).form)
	{
		var formName = $(controlName).form.name;
		if ( !requiredFileUpload[formName] )
			requiredFileUpload[formName] = new Array();
		requiredFileUpload[formName][requiredFileUpload[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les datebox obligatoires
function addRequiredDateBox(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredDateBox[formName]) requiredDateBox[formName] = new Array();
		requiredDateBox[formName][requiredDateBox[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les DDLAutoComplete obligatoires
function addRequiredDDLAutoComplete(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredDDLAutoComplete[formName]) requiredDDLAutoComplete[formName] = new Array();
		requiredDDLAutoComplete[formName][requiredDDLAutoComplete[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les DDL obligatoires
function addRequiredDDL(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name; 
		if(!requiredDDL[formName]) requiredDDL[formName] = new Array();
		requiredDDL[formName][requiredDDL[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox text
function addRequiredTextBoxText(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxText[formName]) requiredTextBoxText[formName] = new Array();
		requiredTextBoxText[formName][requiredTextBoxText[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox numériques
function addRequiredTextBoxNumber(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxNumber[formName]) requiredTextBoxNumber[formName] = new Array();
		requiredTextBoxNumber[formName][requiredTextBoxNumber[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox mail
function addRequiredTextBoxMail(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxMail[formName]) requiredTextBoxMail[formName] = new Array();
		requiredTextBoxMail[formName][requiredTextBoxMail[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox url
function addRequiredTextBoxUrl(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxUrl[formName]) requiredTextBoxUrl[formName] = new Array();
		requiredTextBoxUrl[formName][requiredTextBoxUrl[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox date
function addRequiredTextBoxDate(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxDate[formName]) requiredTextBoxDate[formName] = new Array();
		requiredTextBoxDate[formName][requiredTextBoxDate[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox en majuscules
function addRequiredTextBoxMaj(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxMaj[formName]) requiredTextBoxMaj[formName] = new Array();
		requiredTextBoxMaj[formName][requiredTextBoxMaj[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les textbox time
function addRequiredTextBoxTime(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!requiredTextBoxTime[formName]) requiredTextBoxTime[formName] = new Array();
		requiredTextBoxTime[formName][requiredTextBoxTime[formName].length] = controlName;
	}
}

//LES SUPPRESSIONS
//Cette fonction permet d'enlever des elements du tableau qui liste les textbox obligatoires
function remRequiredTextBox(controlName){
	var temoin = true;
	$(controlName).className = "tb";
	if($(controlName).form){
		if(requiredTextBox[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredTextBox[$(controlName).form.name][i]){
					if(requiredTextBox[$(controlName).form.name][i] == controlName){
						requiredTextBox[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les datebox obligatoires
function remRequiredDateBox(controlName){
	var temoin = true;
	$(controlName).className = "tb";
	if($(controlName).form){
		if(requiredDateBox[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredDateBox[$(controlName).form.name][i]){
					if(requiredDateBox[$(controlName).form.name][i] == controlName){
						requiredDateBox[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les ddl autocomplete obligatoires
function remRequiredDDLAutoComplete(controlName){
	var temoin = true;
	$(controlName).className = "tbAutoComplete";
	if($(controlName).form){
		if(requiredDDLAutoComplete[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredDDLAutoComplete[$(controlName).form.name][i]){
					if(requiredDDLAutoComplete[$(controlName).form.name][i] == controlName){
						requiredDDLAutoComplete[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}

//Cette fonction permet d'enlever des elements du tableau qui liste les ddl obligatoires
function remRequiredDDL(controlName){
	var temoin = true;
	$(controlName).className = "ddl";
	if($(controlName).form){
		if(requiredDDL[$(controlName).form.name]){
			while(temoin){
				var i = 0;
				temoin = false;
				while(requiredDDL[$(controlName).form.name][i]){
					if(requiredDDL[$(controlName).form.name][i] == controlName){
						requiredDDL[$(controlName).form.name].splice(i,1);
						temoin = true;
					}
					i++;
				}
			}
		}
	}
}

//Vérification du format d'une date
function isDate(dateStr) {
	if (dateStr == "") {
		return true; // date is valid
	} else {
		var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
		var matchArray = dateStr.match(datePat); // is the format ok?
	
		if (matchArray == null) {
			return false;
		}
	
		day = matchArray[1];
		month = matchArray[3];
		year = matchArray[5];
	
		if (month < 1 || month > 12) { // check month range
			return false;
		}
		if (day < 1 || day > 31) {
			return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
			return false;
		}
		if (month == 2) { // check for february 29th
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			if (day > 29 || (day==29 && !isleap)) {
				return false;
			}
		}
		return true; // date is valid
	}
}

//Vérification du format d'une heure
function isTime(timeStr) {
	var timePat = /^(\d{1,2})(:)(\d{1,2})$/;
	var matchArray = timeStr.match(timePat); // is the format ok?

	if (matchArray == null) {
		return false;
	} else {
		if (timeStr.split(':')[0] >= 24
				|| timeStr.split(':')[1] >= 60) {
			return false;
		}
	}
	return true; // time is valid
}

//Vérification du format d'un mail
function isMail(email) {
    /*var verifMail = /([a-z0-9]+([-_]?[a-z0-9]+)*.)*[a-z0-9]+([-_]?[a-z0-9]+)*@([a-z0-9]+([-_]?[a-z0-9]+)*.)+[a-z]{2,4}/gi;
    if (verifMail.exec(email) == null) {
        return false;
    }
    return true;*/
    arrMail = email.split('@');
    if (arrMail.length != 2 || arrMail[0].length == 0) {
        return false;
    } else {
        arrMailDomaine = arrMail[1].split('.');
        if (arrMailDomaine.length <= 1 || arrMailDomaine[0].length == 0 || arrMailDomaine[1].length == 0) {
            return false;
        }
    }
    return true;
}

//Vérification du format d'une url
function isUrl(url) {
	var verif = /(http):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	if (verif.exec(url) == null) {
		return false;
	}
	return true;
}

//$motif_url=("^^http://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*)?(.[a-zA-Z0-9]{1,4})?$");
//Vérification du format d'une chaine de caractère en majuscule sans accent
function isMAJ(chaine) {
	var test = '';
	var ok = true;
	for (i = 0 ; i < chaine.length ; i++ )
	{
		ok = ok && (65 <= chaine.charCodeAt(i)) && (chaine.charCodeAt(i) <= 90);
		//test = test + ' ;; ' +  chaine[i] + ':' + chaine.charCodeAt(i)  ; 
	}
	//alert(chaine + ' :: long ' + chaine.length + ' :: valid ' + ok + ' : valeurs '+ test);
	return ok;
}

//Vérification du format d'une chaine de caractère sans chevrons (<, >)
function isText(chaine) {
	var ok = true;
	for (i = 0 ; i < chaine.length ; i++ ) {
		ok = ok && (chaine.charAt(i) != '<') && (chaine.charAt(i) != '>');
	}
	return ok;
}













































//II - Champs semi-obligatoires
//Déclaration des tableaux javascript contenant la liste des champs obligatoires
var semiRequiredDDL = new Array();
var semiRequiredDateBox = new Array();
var semiRequiredTextBox = new Array();
var semiRequiredFileUpload = new Array();
var semiRequiredDDLAutoComplete = new Array();

//Fonction de vérification du contenu des formulaires
function isValidSemiRequiredForm(form){
	var formName = form.name;
	var semiRequiredOk = true;
	var i;
	
	//Vérification des champs textbox
	if(semiRequiredTextBox[formName]){
		i = 0;
		while(semiRequiredTextBox[formName][i]){
			$(semiRequiredTextBox[formName][i]).className = "tb";
			if($(semiRequiredTextBox[formName][i]).value == ""){
				semiRequiredOk = false;
				$(semiRequiredTextBox[formName][i]).className = "tbSemiErreur";
			}
			i++;
		}
	}
	
	// Vérification des champs FileUpload
	if ( semiRequiredFileUpload[formName] ) 
	{
		i = 0;
		while(semiRequiredFileUpload[formName][i])
		{
			$(semiRequiredFileUpload[formName][i]).className = "tb";
			if ($(semiRequiredFileUpload[formName][i]).value == "")
			{
				semiRequiredOk = false;
				$(semiRequiredFileUpload[formName][i]).className = "tbSemiErreur";					
			}
			i++;
		}
	}
	
	//Vérification des champs datebox
	if(semiRequiredDateBox[formName]){
		i = 0;
		while(semiRequiredDateBox[formName][i]){
			$(semiRequiredDateBox[formName][i]).className = "tb";
			if($(semiRequiredDateBox[formName][i]).value == ""){
				semiRequiredOk = false;
				$(semiRequiredDateBox[formName][i]).className = "tbSemiErreur";
			}
			i++;
		}
	}
	
	//Vérification des champs DDLAutoComplete
	if(semiRequiredDDLAutoComplete[formName]){
		i = 0;
		while(semiRequiredDDLAutoComplete[formName][i]){
			$(semiRequiredDDLAutoComplete[formName][i]).className = "tbAutoComplete";
			if($(semiRequiredDDLAutoComplete[formName][i]).value == "" || $(semiRequiredDDLAutoComplete[formName][i]).value == "*"){
				semiRequiredOk = false;
				$(semiRequiredDDLAutoComplete[formName][i]).className = "tbAutoCompleteSemiErreur";
			}
			i++;
		}
	}
	
	//Vérification des champs DDL
	if(semiRequiredDDL[formName]){
		i = 0;
		while(semiRequiredDDL[formName][i]){
			$(semiRequiredDDL[formName][i]).className = "ddl";
			if($(semiRequiredDDL[formName][i]).value == 0){
				semiRequiredOk = false;
				$(semiRequiredDDL[formName][i]).className = "ddlSemiErreur";
			}
			i++;
		}
	}
	
	if(!semiRequiredOk){
		messageConfirmOKAnnuler('generique_champs_semi_obligatoires', formName, '', 0);
		return false;
	}
	
	return true;
}

//LES AJOUTS
//Cette fonction permet d'alimenter le tableau qui liste les textbox semi-obligatoires
function addSemiRequiredTextBox(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!semiRequiredTextBox[formName])
			semiRequiredTextBox[formName] = new Array();
		semiRequiredTextBox[formName][semiRequiredTextBox[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les fileUpload obligatoires
function addSemiRequiredFileUpload(controlName) 
{
	if ($(controlName).form)
	{
		var formName = $(controlName).form.name;
		if ( !semiRequiredFileUpload[formName] )
			semiRequiredFileUpload[formName] = new Array();
		semiRequiredFileUpload[formName][semiRequiredFileUpload[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les datebox obligatoires
function addSemiRequiredDateBox(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!semiRequiredDateBox[formName]) semiRequiredDateBox[formName] = new Array();
		semiRequiredDateBox[formName][semiRequiredDateBox[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les DDLAutoComplete obligatoires
function addSemiRequiredDDLAutoComplete(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name;
		if(!semiRequiredDDLAutoComplete[formName]) semiRequiredDDLAutoComplete[formName] = new Array();
		semiRequiredDDLAutoComplete[formName][semiRequiredDDLAutoComplete[formName].length] = controlName;
	}
}

//Cette fonction permet d'alimenter le tableau qui liste les DDL obligatoires
function addSemiRequiredDDL(controlName){
	if($(controlName).form){
		var formName = $(controlName).form.name; 
		if(!semiRequiredDDL[formName]) semiRequiredDDL[formName] = new Array();
		semiRequiredDDL[formName][semiRequiredDDL[formName].length] = controlName;
	}
}

/*****************************************************************
 * Fonctions de formatage
 ******************************************************************/
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function getFileName(strPath){
	return strPath.substring(strPath.lastIndexOf('/') + 1, strPath.length);
}


function DblToStr(value){
	var retour = null;
	if(value != null){
		value = value.toString();
		if(value != ''){
			retour = value.replace('.',',');
			var retourFinal = '';
			var index = retour.len;
			var tmpCnt = 0;
			
			if(retour.lastIndexOf(',') > 0){
				//Nombre décimal
				index = retour.lastIndexOf(',');
				while(index >= 0){
					retourFinal = retour.charAt(index) + retourFinal;
					tmpCnt++;
					if(tmpCnt == 4 && index > 0){
						retourFinal = ' ' + retourFinal;
						tmpCnt = 0;
					}
					index--;
				}
				if(retour.lastIndexOf(',') > 0){
					retourFinal = retourFinal + retour.substring(retour.lastIndexOf(',') + 1); 
				}
				retour = retourFinal;
			}
		}
	}
	if(retour.lastIndexOf(',') < 0){
		retour += ',00';
	}
	return retour;
}

function StrToDbl(value){
	var retour = null;
	var negatif = false;
	
	if(value != null){
		if(value.length > 0){
			if(value.substring(0,1) == '-'){
				value = value.replace('-', '');
				negatif = true;
			}
		}
		value = value.toString();
		
		if(value != ''){
			retour = value.replace(',','.');
			retour = retour.replace(' ', '');
		} else {
			retour = '';
		}
		retour = retour.replace(/^\s+/g,'').replace(/\s+$/g,'');
		if(!isNumeric(retour)){retour = '0.00';}
		retour = parseFloat(retour);
		if(negatif){
			retour = retour * -1;
		}
	}
	
	return retour;
}

function IntToStr(value){
	var retour = parseInt(value);
	return retour;
}

function strToHour(value) {
	var hour = value;
	// Séparateurs connus : "h" ou ":"
	hour = hour.replace('h', ':');
	arrHour = hour.split(':'); 
	if (arrHour.length == 2) {
		// Il y a un séparateur connu
		arrHour[0] = '00' + arrHour[0];
		arrHour[0] = arrHour[0].substring(arrHour[0].length - 2, arrHour[0].length);
		arrHour[1] = '00' + arrHour[1];
		arrHour[1] = arrHour[1].substring(arrHour[1].length - 2, arrHour[1].length);
		hour = arrHour[0] + ':' + arrHour[1]; 
	} else {
		if (arrHour.length > 2) {
			// Il y a plusieurs séparateurs connus : suppression des séparateurs
			hour = hour.replace(':', '');
		} 
		// Il n'y a pas (ou plus) de séparateur connu
		hour = ('0000' + hour);
		hour = hour.substring(hour.length - 4, hour.length);
		hour = hour.substring(0,2) + ':' + hour.substring(2,4);
	}
	return hour;
}

function no_accent (my_string) {
	var new_string = "";
	var pattern_accent = new Array("À", "Á", "Â", "Ã", "Ä", "Å", "à", "á", "â", "ã", "ä", "å", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "ò", "ó", "ô", "õ", "ö", "ø", "È", "É", "Ê", "Ë", "é", "è", "ê", "ë", "Ç", "ç", "Ì", "Í", "Î", "Ï", "ì", "í", "î", "ï", "Ù", "Ú", "Û", "Ü", "ù", "ú", "û", "ü", "ÿ", "Ñ", "ñ");
	var pattern_replace_accent = new Array("A", "A", "A", "A", "A", "A", "a", "a", "a", "a", "a", "a", "O", "O", "O", "O", "O", "O", "o", "o", "o", "o", "o", "o", "E", "E", "E", "E", "e", "e", "e", "e", "C", "c", "I", "I", "I", "I", "i", "i", "i", "i", "U", "U", "U", "U", "u", "u", "u", "u", "y", "N", "n");
	
	if (my_string && my_string!= "") {
		new_string = preg_replace (pattern_accent, pattern_replace_accent, my_string);
	}
	return new_string;
}

function preg_replace (array_pattern, array_pattern_replace, my_string)  {
	var new_string = String (my_string);
	for (i=0; i<array_pattern.length; i++) {
		var reg_exp= RegExp(array_pattern[i], "gi");
		var val_to_replace = array_pattern_replace[i];
		new_string = new_string.replace (reg_exp, val_to_replace);
	}
	return new_string;
}


