<!--
//==============================================
//	@File : lib_nodevo_frm.js
//	@Date : 08/08/2007  à partir du validate.js de Christhophe PETIT
//	@Auteur : D.CAMUS <dcamus@nodevo.com>
//	@Copyright : Nodevo 2007
//	@Version : 1.0
//	----------------------------
//	Librairie de gestion de formulaire
//	----------------------------
//	Comprends	:
//		- frm_checkValidField
//		- frm_checkRequiredField
//		- frm_checkValidFormat
//		- frm_goToField
//		- frm_autoFormatField
//		- frm_changeFieldToFormat
//		- frm_selectDelAllItem
//		- frm_selectDelItem
//		- frm_selectDelItemSelected
//		- frm_selectAllSelect
//		- frm_selectAddItem
//		- frm_selectGotItem
//		- frm_selectInitVal
//		- frm_radioInitVal
//		- frm_radioIsCheckedVal
//		- frm_checkBox_checkAll
//		- frm_checkBoxIsCheckedVal
//==============================================

//	Modifs : 



//-------------------------------------------------------------------------------
//	frm_checkValidField	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------


function frm_checkValidField(objField, typeField, min, max, msg) {
	var isValid = false;
	
	switch (typeField){
		case "STRING" :	isValid = txt_isString(objField.value, min, max);
		break;
		case "INTEGER" :	isValid = txt_isInteger(objField.value, min, max);
		break;
		case "CENT" :	isValid = (objField.value == "100%");
		break;
		case "NUMERIC" :	
			isValid = txt_isString(objField.value, min, max);
			if (isValid) isValid = txt_isNumeric(objField.value, min, max);
		break;
		case "DATE" :		
		frm_changeFieldToFormatDATE(objField);
		isValid = txt_isDate(objField.value, min, max);
		break;
		case "PRC" :		
		//frm_changeFieldToFormatDATE(objField);
		isValid = txt_isNumeric(objField.value, min, max);
		
		break;
		case "EMAIL" :		
		objField.value = objField.value.toLowerCase();
		isValid = txt_isEmail(objField.value);
		break;
		case "HTTPSITE" :	
			objField.value = objField.value.toLowerCase();
			frm_changeFieldToFormatURL(objField);
			isValid = txt_isURL(objField.value);
		break;
		case "FTPSITE" :	isValid = txt_isURL(objField.value);
		break;
		case "SIRET" :	
			isValid = txt_isString(objField.value, min, max);
			if (isValid) isValid = txt_isSiret(objField.value.substr(0,9), objField.value.substr(9,5));											
		break;
		case "SIREN":
			isValid = txt_isString(objField.value, min, max);
			if (isValid) isValid = txt_isSiret(objField.value.substr(0,9), '');											
		break;
		case "TEL" :	
			frm_changeFieldToFormatTEL(objField);
			isValid = txt_isTel(objField.value);
		break;		
		default :			isValid = txt_isString(objField.value, min, max);
		break;
	}	

	return isValid;
}

//-------------------------------------------------------------------------------
//	frm_checkValidFormat	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_checkValidFormat(objField, strFormat, msg) {
	var isValid = txt_isWellFormated(objField.value, strFormat)
	
	if (!isValid) {
		frm_goToField(objField);
		alert(msg);
	}
	
	return isValid;
}

//-------------------------------------------------------------------------------
//	frm_checkRequiredField	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_checkRequiredField(objField, msg) {
	if (objField.value == "") {
		//frm_goToField(objField);
		
		return false;
	}
	return true;
}


//-------------------------------------------------------------------------------
//	frm_goToField	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_goToField(objField) {
	
	objField.focus();

	if (objField.type == "text" || objField.type == "textarea" || objField.type == "file") {
		if (objField.value != "")
			objField.select();
	}
}

//-------------------------------------------------------------------------------
//	frm_autoFormatField	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_autoFormatField(objField, strFormat) {
	objField.format = strFormat;
	objField.onchange = frm_changeFieldToFormat;
}

//-------------------------------------------------------------------------------
//	frm_changeFieldToFormat	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_changeFieldToFormat() {
	this.value = txt_formatString(this.value, this.format)
}



//-------------------------------------------------------------------------------
//	frm_changeFieldToFormatTEL	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	Force le champs au format sur 10 positions : 01 00 00 00 00
//	Création	:	14/08/2007, DCA
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_changeFieldToFormatTEL(objField) {
	var val = objField.value;
	val = val.replace(/(\.)|( )|(\-)|(\\)|(\/)|(_)|(,)/g,"");
	if (val.length == 10)
		objField.value = val.substr(0,2) + " " +  val.substr(2,2) + " " +  val.substr(4,2) + " " +  val.substr(6,2) + " " +  val.substr(8,2);
}



//-------------------------------------------------------------------------------
//	frm_changeFieldToFormatDATE	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	Force le champs au format sur 10 positions : JJ-MM-AAAA
//	Création	:	14/08/2007, DCA
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_changeFieldToFormatDATE(objField) {
	var val = objField.value;
	val = val.replace(/(\.)|( )|(\-)|(\\)|(\/)|(_)|(,)/g,"");
	if (val.length == 8)
		objField.value = val.substr(0,2) + "-" +  val.substr(2,2) + "-" +  val.substr(4,4);
	if (val.length == 6)
		objField.value = val.substr(0,2) + "-" +  val.substr(2,2) + "-20" +  val.substr(4,2);		
}


//-------------------------------------------------------------------------------
//	frm_changeFieldToFormatURL	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	14/08/2007, DCA
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_changeFieldToFormatURL(objField) {
	var val = objField.value;
	var reg=/(ftp|http|https)/;
	if (val.length > 0)
		if (reg.exec(val)==null) objField.value = "http://" + val
}




//-------------------------------------------------------------------------------
//	frm_selectDelAllItem	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectDelAllItem(objField){
	for (i=objField.options.length-1; i>=0; i--)
		objField.options[i]=null;
}	

//-------------------------------------------------------------------------------
//	frm_selectDelItemSelected	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	07/06/2005, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectDelItemSelected(objField){
	for (i=objField.options.length-1; i>=0; i--) {
		if (objField.options[i].selected)
			objField.options[i]=null;
	}
}	

//-------------------------------------------------------------------------------
//	frm_selectAllSelect	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	09/05/2006, FB
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectAllSelect(objField){
	for (i=objField.options.length-1; i>=0; i--) {
		objField.options[i].selected=true;
	}
}	

//-------------------------------------------------------------------------------
//	frm_selectAddItem	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectAddItem(objField, caption, val){
	var op1 = new Option(caption, val, false, false);
	objField.options[objField.options.length] = op1;
}	

//-------------------------------------------------------------------------------
//	frm_selectDelItem	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	09/05/2006, FB
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectDelItem(objField, val){
	for (i=objField.options.length-1; i>=0; i--) {
		if (objField.options[i].value == val)
			objField.options[i]=null;
	}
}	

//-------------------------------------------------------------------------------
//	frm_selectGotItem	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectGotItem(objField, val){
	var found = false;
	var i = 0;

	while (i<objField.length && !found){
		if (objField.options[i].value == val) found = true;
		i++;
	}
	
	return found;
}

//-------------------------------------------------------------------------------
//	frm_selectInitVal	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_selectInitVal(objField, val) {
	var i = 0;
	var fin = false;
	
	while (i<objField.length && !fin) {
		if (objField.options[i].value == val){
			objField.options[i].selected = true;
			fin = true;
		}
		i++;
	}
}

//-------------------------------------------------------------------------------
//	frm_radioInitVal	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_radioInitVal(objField, val) {
	var i = 0;
	var fin = false;
	
	while (i<objField.length && !fin) {
		if (objField[i].value == val){
			objField[i].checked = true;
			fin = true;
		}
		i++;
	}
}

//-------------------------------------------------------------------------------
//	frm_radioIsCheckedVal	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	02/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_radioIsCheckedVal(objField, val) {
	var i = 0;
	var fin = false;
	
	while (i<objField.length && !fin) {
		if (objField[i].value == val && objField[i].checked) fin = true;
		i++;
	}
	
	return fin;
}

//-------------------------------------------------------------------------------
//	frm_checkBox_checkAll	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	10/10/2001, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_checkBox_checkAll(objField, val) {
	var i = 0;
	if (isNaN(objField.length))
			objField.checked = val;
	
	while (i < objField.length) {
			objField[i].checked = val;
		i++;
	}
}

//-------------------------------------------------------------------------------
//	frm_checkBoxIsCheckedVal	(V.1.0.0)
//-------------------------------------------------------------------------------
//	Description	:	
//	Création	:	25/04/2005, DD
//	Dern. modif	:		
//-------------------------------------------------------------------------------
function frm_checkBoxIsCheckedVal(objField, val) {
	var i = 0;
	var fin = false;
	
	while (i<objField.length && !fin) {
		if (objField[i].value == val && objField[i].checked) fin = true;
		i++;
	}
	
	return fin;
}





// DCA - 11/08/2007 - NFormHTML (control percent) Nodevo 2007
function frm_loadPercentValues(ctrl) {
//DCA - 11/08/2007
	var Objs = document.getElementById(ctrl).value.split(';');
	for(z=0;z < Objs.length;z = z + 1) {
		
		objSelect = document.getElementById(Objs[z]);
		frm_selectDelAllItem(objSelect);
		for (j=0; j <= 10; j = j + 1)
			frm_selectAddItem(objSelect,(j*10) + '%',j);			
	}
}  

function frm_updatePercentValues(obj,ctrl) {
//DCA - 11/08/2007
	var objSelect; var objSelectValue;
	var ObjUpdated = obj; var SumValues = 0;
	var Objs = document.getElementById(ctrl).value.split(';');		
	for(z=0;z < Objs.length;z = z + 1) 
		SumValues =parseInt(document.getElementById(Objs[z]).value) + parseInt(SumValues);
	
	for(z=0;z < Objs.length;z = z + 1) {
		objSelect = document.getElementById(Objs[z]);
		objSelectValue = objSelect.value;
		frm_selectDelAllItem(objSelect);
		for (j=0; j <= (10 - parseInt(SumValues) + parseInt(objSelectValue)); j = j + 1) 
			frm_selectAddItem(objSelect,(j*10) + '%',j);			
		frm_selectInitVal(objSelect,objSelectValue);			
	}
	var idtotal = ctrl.replace("_perc_","_total");
	
	document.getElementById(idtotal).value= (SumValues *10) + "%" ;
}
// EOS