//Verifie si la touche qui vient d'être tapée est valide, en fonction du type de verification
function ValidKeySaisie(event,type_verif)
{
	var allowed_keys = GetValidKeys(type_verif);
	
	return ValidKey(event,allowed_keys);
}

//Verifie si une chaine est valide, en fonction du type de verification
function ValidKeyAfter(valeur,type_verif)
{
	var allowed_keys = GetValidKeys(type_verif);
	
	for(i=0; i < valeur.length; i++)
	{
		if(allowed_keys.indexOf(valeur.charAt(i)) == -1)
		{
			return false;
		}
	}
	
	return true;
}

//Retourne les caracères autorisées en fonction du type de verification
function GetValidKeys(type_verif)
{
	var ValidKeys = "";
	
	if(type_verif == "Numeric") ValidKeys = "0123456789";
	else if(type_verif == "AlphaMin") ValidKeys = "abcdefghijklmnopqrstuvwxyz";
	else if(type_verif == "AlphaMaj") ValidKeys = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	else if(type_verif == "Alpha") ValidKeys = GetValidKeys("AlphaMin") + GetValidKeys("AlphaMaj");
	else if(type_verif == "AlphaNumeric") ValidKeys = GetValidKeys("Alpha") + GetValidKeys("Numeric");
	else if(type_verif == "Hexa") ValidKeys = GetValidKeys("Numeric") + "ABCDEF";
	else if(type_verif == "HexaColor") ValidKeys = GetValidKeys("Numeric") + "#ABCDEF";
	else if(type_verif == "Pseudo") ValidKeys = GetValidKeys("AlphaNumeric") + "-_.";
	else if(type_verif == "PseudoInterdit") ValidKeys = GetValidKeys("Pseudo") + "*";
	else if(type_verif == "Password") ValidKeys = GetValidKeys("Pseudo") + "*!?[]()&~#{}=+@:,;";
	else if(type_verif == "IP") ValidKeys = GetValidKeys("Numeric") + ".";
	else if(type_verif == "NumericList") ValidKeys = GetValidKeys("Numeric") + ",";
	else if(type_verif == "Mail") ValidKeys = GetValidKeys("AlphaMin") + GetValidKeys("Numeric") + "-_.@";
	else if(type_verif == "MailUser") ValidKeys = GetValidKeys("AlphaMin") + GetValidKeys("Numeric") + "-_.";
	else if(type_verif == "CodeSecu") ValidKeys = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
	else if(type_verif == "CodeSecuMinMaj") ValidKeys = "23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjklmnpqrstuvwxyz";
	else ValidKeys = "";
	
	return ValidKeys;
}

//Verifie que la touche tapée est bien autorisée
function ValidKey(evenement,allowed_keys)
{
	//on recupere la touche enfoncée selon le navigateur
	var touche = window.event ? evenement.keyCode : evenement.which;

	//on autorise que les touches du tableau, ainsi que le code 8 = efface arriere, et 0 pour les fleches et le suppr sur certains navigateurs
	if(allowed_keys.indexOf(String.fromCharCode(touche)) != -1 || touche == 8 || touche == 0) return true;
	
	//sinon on refuse la touche
	else return false;
}

//Verifie si un email est correct
function CheckMail(email)
{	
	var reg = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/
	return (reg.exec(email)!=null);
}

function CheckIP(ip)
{
	var reg = /^([0-9]{1,3}\.){3}[0-9]{1,3}$/
	return (reg.exec(ip)!=null);
}
