//Cette fonction s'assure qu'un caractère appartenant à un champ donné est un nombre
//=======================
function isDigit(Nbr){
	if (( parseInt(Nbr) >=0 ) &&  (parseInt(Nbr) <= 9 )){
		return true;
	}
	return false;
}




//Cette fonction s'assure que ce qu 'un entier de longueur maximale maxLgth  est ecrit dans le champ.
//=======================
function evalNbrMax(elt, maxLgth){
var Nbr = "";
    if (elt.value.length <= maxLgth){	
	if( elt.value.length != 0 ){
		for( i= 0 ; i < elt.value.length ; i++){
			if( isDigit(elt.value.charAt(i))){
				Nbr += 	elt.value.charAt(i);
			}else{
				alert("Entrer seulement un nombre");
				elt.value = "";	elt.focus(); return false
			}
		}

	} 
	return true;
   }else{
	alert("La longueur maximale est "+maxLgth);
	elt.value = ""; elt.focus();	return false;
   }	
}





//cette fonction s'assure qu'un champ(elt) n'est pas vide .
function evalEmpty(elt)
{
 if (elt.value.length ==0) {
  alert("Champ Obligatoire");
  elt.focus();
  return false;
}

else
 return true;

}



var whitespace = " \t\n\r";

function replaceAll (s, fromStr, toStr)
{
	var new_s = s;
	for (i = 0; i < 100 && new_s.indexOf (fromStr) != -1; i++)
	{
		new_s = new_s.replace (fromStr, toStr);
	}
	return new_s;
}


function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isWhitespace (s)

{   var i;

	if (isEmpty(s)) return true;


    for (i = 0; i < s.length; i++)
    {   
	var c = s.charAt(i);

	if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}
//validation des emails
function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return defaultEmptyOK();
       else return (isEmail.arguments[1] == true);
   
    if (isWhitespace(s)) return EmailAlert();
    
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return EmailAlert();
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return EmailAlert();
    else return true;
}
function EmailAlert(){
    
   document.form1.email.select();
   alert('format email invalide');
   return false;
}
function defaultEmptyOK(){
    
   //alert('The email cannot be empty');
   //return false;
return;
}


//force le traitement d'un nombre entier ou decimal
function ForceNumber(objField, FieldName)
{
	var strField = new String(objField.value);
	var strFormatArray;

	if (isWhitespace(strField)) return true;

	var i = 0;

	for (i = 0; i < strField.length; i++)
		if ( strField.charAt(i) != '.' & (strField.charAt(i) < '0' || strField.charAt(i) > '9')) {
			alert(FieldName + ' must be a valid numeric entry.  Please do not use commas or dollar signs or any non-numeric symbols');			objField.focus();
			objField.focus()
			objField.select()
			return false;
		}
	
	if (strField.indexOf(".") != -1)
	{
		strFormatArray = strField.split(".");
		

		if (strFormatArray.length != 2) 
		{
			alert("" + FieldName + " is not a valid decimal value")
			
			objField.focus()
			
			objField.select()
			return false;
		}
	}

	return true;
}


//trim a droite
function RTrim(strTrim)
{
	var str = new String(strTrim);
	var i = 0;
	var c = '';
	var endpos = 0

	for (i = str.length; i >= 0 && endpos == 0; i = i - 1) {
		c = str.charAt(i);
		if (whitespace.indexOf(c) == -1)
			endpos = i;
	}

	return str.substring(0,endpos+1);
}
//prend les length premiers caracteres de la chaine
function Left(str, length)
{
var objStr = String(str);
return objStr.substring(0, length);
}
//prend les length  caracteres de droite a gauche de la chaine
function Right(str, length)
{
var objStr = String(str);
var rlength = objStr.length - length;
return objStr.substr(rlength);
}


//format decimal de la facon:number(requiredLength-position,requiredLength)
function ForceDecimal(objField, FieldName, position, requiredLength)
{
	var current = objField.value; 
	var strField = new String(objField.value);
	var realLength = strField.length;
	var decimal = current.indexOf(".");
	var realpart = requiredLength - position;
	var real = 0;
	
	if (ForceNumber(objField, FieldName))
	{
		if(decimal != -1)
		{
			realLength--;
			real = realLength - decimal;
		}
		else 
			decimal = realLength;

		if (  (decimal > realpart) | (real > position) )
		{ 
			if (position == 0 & decimal !=-1)
				alert("" + FieldName + "Field must have the format : Number(" + realpart + ") ");
			else
				alert("" + FieldName + "Field must have the format : Number(" + realpart + ", " + position + ") " );

			
				objField.focus();
				objField.select();
			
			return false;
		}
		return true;
	}
	else
		return false;
}

