//*******************************************************************************
//	lib_frm.js	(V.2.2)
//*******************************************************************************
//	Description	:	gestion de formulaire
//	Création	:	02/10/2001, DD à partir du validate.js de Christhophe PETIT
//	Dern. modif	:	
//		25/04/2005 DD	: ajout de "frm_checkBoxIsCheckedVal"
//		07/06/2005 DD	: ajout de "frm_selectDelItemSelected"
//		04/09/2006 FBN	: ajout de "frm_Clignoter(zone, delai)"
//		08/11/2006 DCA	: revision du systeme de clignotement (permet d'arreter, et de 
//										synchroniser tous les clignotements d'une page).
//	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
//*******************************************************************************

var lib_frm = true;
//if (isNan(lib_txt)) alert("'lib_frm.js' nécessite 'lib_txt.js' !");


//-------------------------------------------------------------------------------
//	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 "NUMERIC" :	isValid = txt_isNumeric(objField.value, min, max);
		break;
		case "DATE" :		isValid = txt_isDate(objField.value, min, max);
		break;
		case "EMAIL" :		isValid = txt_isEmail(objField.value);
							if (isValid) isValid = txt_isString(objField.value, min, max);
		break;
		case "HTTPSITE" :	isValid = txt_isHttpSite(objField.value);
							if (isValid) isValid = txt_isString(objField.value, min, max);
		break;
		case "FTPSITE" :	isValid = txt_isFtpSite(objField.value);
							if (isValid) isValid = txt_isString(objField.value, min, max);
		break;
		default :			isValid = txt_isString(objField.value, min, max);
		break;
	}	

	if (!isValid) {
		frm_goToField(objField);
		alert(msg);
	}
	
	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);
		alert(msg);
		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_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;
}
//------------------------------------------------------------------------------------------
//	fonctions de clignotement
//------------------------------------------------------------------------------------------
//	Description	:	frm_LancerClignotement() lance le clignotement d'un ou plusieurs elements stockés 
//							dans lstZoneClignotante.
//					    	frm_StopClignotement() permet d'arreter tous les clignotements
//	Création	:	08/11/2006, DCA
//	Dern. modif	:		
//------------------------------------------------------------------------------------------
var lstZoneClignotante = "";
var ids = ""

function frm_ClignoterZones() {
	var tbZones = lstZoneClignotante.split(",");
	var x, obj;
	for(x=0; x < tbZones.length; x ++)
		if (tbZones[x] != "") {
			obj = eval(tbZones[x]);
			with (obj.style)
				visibility == 'visible' ? visibility = 'hidden' : visibility = 'visible';		
		}
}

function frm_StopClignoterZones() {
	var tbZones = lstZoneClignotante.split(",");
	var x, obj;
	for(x=0; x < tbZones.length; x ++)
		if (tbZones[x] != "") {
			obj = eval(tbZones[x]);
			obj.style.visibility = 'visible';			
		}
}



function frm_LancerClignotement(delai) {
	frm_StopClignotement();
	if (lstZoneClignotante != "") {
		if (ids != "") ids +=","
		ids += window.setInterval("frm_ClignoterZones()", delai);
	}
	
}

function frm_StopClignotement() {
	var tbId = ids.split(",");
	var x;
	for(x=0; x < tbId.length; x ++)
		if (tbId[x] != "") 
			window.clearInterval(tbId[x]);
	ids = "";
	frm_StopClignoterZones();
}



