/*	Textfield-filter.js
**	
**	Ensemble de fonction servant à la validation du contenu des champs
**	de text, des enqu�tes de satisfaction.
*/

/*
** Cette méthode est appelée lorsqu'une vérification sur un 
** champ de texte est nécessaire
**
**	@param value : valeur à vérifier.
**	@param divName : nom du div à modifier pour l'affichage.
**
*/
function checkValidity(value, divName, type){

	if (type == '1'){
		checkEmail(value, divName);
	}
	else if (type == '2'){
		checkPhone(value, divName);
	}
	else if (type == '3'){
		checkAlpha(value, divName);
	}
	else if (type == '4'){
		checkDate(value, divName);
	}
	else {
		alert('TextInput SubType Invalid !');
	}

}


/*
**	checkEmail(email, divName)
**	@param email : ce param doit correspondre à un email valide.
**	@param divName : nom du div à modifier pour l'affichage.
*/
function checkEmail(email, divName) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

	updateDiv( divName, !filter.test(email) );
}

/*
**	checkAlpha(text, divName)
**	@param text : cette choix doit correspondre à un email valide.
**	@param divName : nom du div à modifier pour l'affichage.
*/
function checkAlpha(text, divName) {
	//var filter = /^([a-zA-Z\- ])+$/;
	var filter = /^([^0123456789\#=+\\\$\*\%\|\(\[\)\]\{\}\?\!\,\;\:\.\/\@\£])+$/;
	
	updateDiv( divName, !filter.test(text) );
}

/*
**	checkPhone(text, divName)
**	@param text : cette choix doit correspondre à un numero de téléphone valide.
**	@param divName : nom du div à modifier pour l'affichage.
*/
function checkPhone(text, divName) {
	var filter = /^([0-9\-\+\(\)\ ]){5}([0-9\-\+\(\)])+$/;
	
	updateDiv( divName, !filter.test(text) );
}

/*
** checkDate(text, divName)
** @param text : ce champs doit correspondre à une date valide.
** @param divName : nom du div à modifier pour l'affichage.
*/
function checkDate(text, divName) {
	var filter = /^[0-3][0-9]\/[0-1][0-9]\/[2][0-9][0-9][0-9]$/;
	
	
	updateDiv( divName, !filter.test(text) );
}


/**
 * 
 * 
 * 
 * @param divName name of div
 * @param value Boolean
 * @return
 */
function updateDiv( divName, value )
{
	check[divName] = false;
	
	var divError = document.getElementById(divName + "error");
	var divGood = document.getElementById(divName + "good");

	if (value) {
		divGood.style.display = "none";		
		divError.style.display = "block";
	}
	else {
		divError.style.display = "none";		
		divGood.style.display = "block";
		check[divName] = true;
	}
}
