//gestion d'etat des champs
//TODO : trouver un methode pour parametrer les deux methods.
function fieldState(objField,bool){
	var strErrorColor = "#FFE9EA";
	var strNormalColor = "#FFF";
	if(bool){
		objField.focus();
		if(objField.style)
			objField.style.backgroundColor = strErrorColor;
	}else{
		if(objField.style)
			objField.style.backgroundColor = strNormalColor;
	}
}

//helper fonction : Suppression des espaces
function trimString(str) {
	str=str.replace(/\s/ig,'');
	return str;
}

//verifier qu'un textbox etait remplir
function notEmpty(objField, strFieldMssg){
	var strTemp = objField.value;
	strTemp = trimString(strTemp);
	if(strTemp=="" || strTemp.length==0){
		alert(strFieldMssg);
		fieldState(objField,true);
		return false;
	}else{
		fieldState(objField,false);
		return true;
	}
}

//verifier que les valeurs de deux textboxs sont equal
function notEqual(objField_A,objField_B, strFieldMssg){
	var strTemp_A = objField_A.value;
	strTemp_A = trimString(strTemp_A);
	var strTemp_B = objField_B.value;
	strTemp_B = trimString(strTemp_B);
	if(strTemp_A != strTemp_B){
		alert(strFieldMssg);
		fieldState(objField_B,true);
		return false;
	}else{
		fieldState(objField_B,false);
		return true;
	}
}

//verifier qu'un au moins un value etait selectionner dans un selectbox
function notSelected(objField, strFieldMssg){
	var tmpValue = objField.selectedIndex;
	if(tmpValue == "-1" || tmpValue == "0" || tmpValue == null){
		alert(strFieldMssg);
		fieldState(objField,true);
		return false;
	}else{
		fieldState(objField,false);
		return true;
	}
}

//verifier qu'un champ email est valide
function isEmail(objField, strFieldMssg){
	var strTemp = trimString(objField.value);
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,50}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(strTemp) && reg2.test(strTemp)) { // if syntax is valid
		fieldState(objField,false);
		return true;
	}else{
		alert(strFieldMssg);
		fieldState(objField,true);
		return false;
	}
}

//verifier le longuer mininum d'un texte 
function isValidMinLength(objField, strFieldMssg, minLength){
	var strTemp = trimString(objField.value);
	if(strTemp.length >= parseInt(minLength)){
		fieldState(objField,false);
		return true;
	}else{
		alert(strFieldMssg);
		fieldState(objField,true);
		return false;
	}
}

//verifier le longuer maxinum d'un texte
function isValidMaxLength(objField, strFieldMssg, maxLength){
	var strTemp = trimString(objField.value);
	if(strTemp.length <= parseInt(maxLength)){
		fieldState(objField,false);
		return true;
	}else{
		alert(strFieldMssg);
		fieldState(objField,true);
		return false;
	}
}

//verifier qu'un valeur est numérique
function isValidNumber(objField, strFieldMssg){
	var strTemp = trimString(objField.value);
	if(!isNaN(strTemp)){
		fieldState(objField,false);
		return true;
	}else{
		alert(strFieldMssg);
		fieldState(objField,true);
		return false;
	}		
}

//verifier qu'un au moins un checkbox etait selectionner dans un checkbox array
/*
TODO : a tester
function notChecked(objField, strFieldMssg){
	var len = objField.length;
	var i = 0;
	var bool = false;
	while(i < len){
		if(objField[i].checked){
			bool = true;
			break;
		}
		i++;
	}
	if(!bool){
		alert(strFieldMssg);
		fieldState(objField[0],true);
		return false;
	}else{
		fieldState(objField[0],false);
		return true;
	}
}
*/
