/* auteur: Jean-Benoît Murat *//* Date de création: 07/10/2004 *//*     Fonctions de contrôle de champs de formulaires coté client   *///Diverses expressions réguličres utiles// Expressions réguličres de test de longueurvar regExpEmpty=/^$/g;					// Accepte une chaine videvar regExp4Chars=/^[\w\x80-\xFF '"]{4,}$/g;			// Accepte une chaine d'au moins 4 carctčres alphanumeriques (pour un mot de passe par exemple).var regExp3Chars=/^[\w\x80-\xFF '"]{3,}$/g;			// Accepte une chaine d'au moins 4 carctčres alphanumeriques (pour un mot de passe par exemple).// Expressions réguličres de test de type de caractčrevar regExpAlphanumeric=/[0-9a-zA-Z]+/g;			// Accepte une chaine alphanumériquevar regExpAlphanumericWithWhitespace=/[0-9a-zA-Z ]+/g;	// Accepte une chaine alphanumérique + ' 'var regExpAlphabetic=/[a-zA-Z]+/g;			// Accepte une chaine alphabétiquevar regExpNumeric=/[0-9]+/g;				// Accepte une chaine numérique// Expressions réguličres de test de typevar regExpInt=/^[0-9]+$/g;				// Accepte une chaine de type 'int'var regExpDouble=/^[-+]?[0-9]+(\.[0-9]+)?$/g;		// Accepte une chaine de type 'double'var regExpFloat=/^[-+]?[0-9]+(\.[0-9]+)?([eE][-+]?[0-9]+)?$/g;	// Accepte une chaine de type 'float'var regExpTime=/^([01][0-9]|2[0123])\:([012345][0-9])(\:([012345][0-9])(.([0-9]{3})+)?)?$/g;		 // Accepte une chaine de type 'time'. Ex : 12:51 ou 21:45:35.654var regExpFrenchDate=/^(0[1-9]|[12][0-9]|3[01])[\- \/\.](0[1-9]|1[012])[\- \/\.](19|20)\d\d$/g;  // date au format jj/mm/aaaa ou jj-mm-aaaa ou jj mm aaaa ou jj.mm.aaaa avec aaaa compris entre 1900 et 2099.var regExpEnglishDate=/^(19|20)\d\d[\- \/\.](0[1-9]|1[012])[\- \/\.](0[1-9]|[12][0-9]|3[01])$/g; // idem ci-dessus mais format anglais (Ex : aaaa/mm/jj)var regExpBoolean=/^true|false$/g;			// Accepte une chaine de type 'boolean'// Expressions réguličres de test de types administratifs françaisvar regExpCodePostal=/^([A-Z]+[A-Z]?\-)?[0-9]{1,2} ?[0-9]{3}$/g;							// Accepte une chaine de type 'code postal'. Ex : F-33370 ou 33 370 ou 33370 ou F-1 370var regExpTelephoneFixe=/^(01|02|03|04|05)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'fixe'. Ex : 01.34.12.52.30 ou 0134125230var regExpTelephonePortable=/^(06)[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;			// Accepte un numero de téléphone de type 'portable'.var regExpTelephoneNational=/^(0[1234568])[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;		// Accepte un numero de téléphone de type 'national' y compris numéros en '08'.var regExpTelephoneInternational=/^(\(\+[0-9]{2}\))[ \.\-]?[0-9][ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{2}$/g;// Accepte un numero de téléphone de type 'international'. Ex : (+33) 1 34 12 52 30var regExpAlphabeticMinuscule=/[a-z]+/g;	// Accepte une chaine alphabétique en minusculesvar regExpAlphabeticMajuscule=/[A-Z]+/g;	// Accepte une chaine alphabétique en majusculesvar regExpNumeric=/[0-9]+/g;	 // Accepte une chaine numériquevar regExpNumeroSecuriteSociale=/^[12][ \.\-]?[0-9]{2}[ \.\-]?(0[1-9]|[1][0-2])[ \.\-]?([0-9]{2}|2A|2B)[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{2}$/g; // Accepte un numero de sécurité sociale français. Ex : 1 85 34 33 354 450 45var regExpTVAIntracommunautaire=/^[A-Z]{2}[ \.\-]?[0-9]{2}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;		// Accepte un numero de TVA Intra-communautaire. Ex : FR 02 254 254 254var regExpNumeroSiren=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}$/g;							// Accepte un numero SIREN. Ex : 254 254 254var regExpNumeroSiret=/^[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{3}[ \.\-]?[0-9]{5}$/g;					// Accepte un numero SIRET. Ex : 254 254 254 12345var regExpCodeApe=/^[0-9]{2}[ \.\-]?[0-9]{1} ?[a-zA-Z]$/g;								// Accepte un code APE. Ex : 25.4Z// Expressions réguličres de test de types liés ŕ internetvar regExpEmailAdress=/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g;										// Accepte une adresse email. Ex : toto@toto.comvar regExpIpAdress=/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g;	// Accepte une adresse ip. Ex : 192.168.0.1var regExpDomainName=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$/g;													// Accepte un nom de domaine. Ex : toto.comvar regExpUrl=/^(((ht|f)tp(s?))\:\/\/)?(([a-zA-Z0-9]+([@\-\.]?[a-zA-Z0-9]+)*)(\:[a-zA-Z0-9\-\.]+)?@)?(www.|ftp.|[a-zA-Z]+.)?[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,})(\:[0-9]+)?\/?/g;			// Accepte une url ftp, http ou https, avec ou sans login/mot de passe, avec ou sans numero de port. Ex : http://www.toto.com, ftp://toto:toto@ftp.toto.com:21/var regExpHexColor=/^#[0-9A-Fa-f]{6}$/g; // Accepte une couleur hexadécimale//Les deux fonction suivantes servent ŕ identifier si une chaine de caractčre est compatible ou non avec une expression réguličre passée en paramčtrefunction matchRegularExpression(valeur, regularExpression){	var resultat = valeur.match(regularExpression);	if(resultat!=null && resultat.length==1) return true;	else return false;}function doesntMatchRegularExpression(valeur, regularExpression){	if(matchRegularExpression(valeur, regularExpression)) return false;	else return true;}/*les fonctions de contrôle suivantes prennent toutes comme argument la valeur de l'attribut "value" d'un champ de formulaire de type "text" ou "password"*/function isEmpty(valeur){	return matchRegularExpression(valeur, regExpEmpty);}function isNotEmpty(valeur){	return doesntMatchRegularExpression(valeur, regExpEmpty);}function isNot4CharsLength(valeur){	return doesntMatchRegularExpression(valeur, regExp4Chars);}function isNot3CharsLength(valeur){	return doesntMatchRegularExpression(valeur, regExp3Chars);}function isNotAlphanumeric(valeur){	return doesntMatchRegularExpression(valeur, regExpAlphanumeric);}function isNotAlphanumericWithWhitespace(valeur){	return doesntMatchRegularExpression(valeur, regExpAlphanumericWithWhitespace);}function isNotAlphabetic(valeur){	return doesntMatchRegularExpression(valeur, regExpAlphabetic);}function isNotNumeric(valeur){	return doesntMatchRegularExpression(valeur, regExpNumeric);}function isNotInt(valeur){	return doesntMatchRegularExpression(valeur, regExpInt);}function isNotDouble(valeur){	return doesntMatchRegularExpression(valeur, regExpDouble);}function isNotFloat(valeur){	return doesntMatchRegularExpression(valeur, regExpInt);}function isNotBoolean(valeur){	return doesntMatchRegularExpression(valeur, regExpBoolean);}function isNotTime(valeur){	return doesntMatchRegularExpression(valeur, regExpTime);}function isNotDate(valeur, mode){	switch (mode)	{		case "fr" : 			return doesntMatchRegularExpression(valeur, regExpFrenchDate);			break;		case "en" :			return doesntMatchRegularExpression(valeur, regExpEnglishDate);			break;		default : 			return doesntMatchRegularExpression(valeur, regExpFrenchDate);			break;	}}function isNotCodePostal(valeur){	return doesntMatchRegularExpression(valeur, regExpCodePostal);}function isNotTelephone(valeur, mode){	switch (mode)	{		case "fixe" : 			return doesntMatchRegularExpression(valeur, regExpTelephoneFixe);			break;		case "port" :			return doesntMatchRegularExpression(valeur, regExpTelephonePortable);			break;		case "nati" :			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);			break;		case "inte" :			return doesntMatchRegularExpression(valeur, regExpTelephoneInternational);			break;		default : 			return doesntMatchRegularExpression(valeur, regExpTelephoneNational);			break;	}}function isNotNumeroSecuriteSociale(valeur){	return doesntMatchRegularExpression(valeur, regExpNumeroSecuriteSociale);}function isNotTVAIntracommunautaire(valeur){	return doesntMatchRegularExpression(valeur, regExpTVAIntracommunautaire);}function isNotNumeroSiren(valeur){	return doesntMatchRegularExpression(valeur, regExpNumeroSiren);}function isNotNumeroSiret(valeur){	return doesntMatchRegularExpression(valeur, regExpNumeroSiret);}function isNotCodeApe(valeur){	return doesntMatchRegularExpression(valeur, regExpCodeApe);}function isNotEmailAdress(valeur){	return doesntMatchRegularExpression(valeur, regExpEmailAdress);}function isNotIpAdress(valeur){	return doesntMatchRegularExpression(valeur, regExpIpAdress);}function isNotDomainName(valeur){	return doesntMatchRegularExpression(valeur, regExpDomainName);}function isNotUrl(valeur){	return doesntMatchRegularExpression(valeur, regExpUrl);}function isNotHexColor(valeur){	return doesntMatchRegularExpression(valeur, regExpHexColor);}/*les fonctions suivantes retournent le nombre de caractčres spécifiques contenus dans la chaine "valeur"function NombreCaracteresNumériques(valeur){var nb= 0;var resultat = valeur.match(regExpNumeric);if(resultat)for(i=0;i<resultat.length;++i)nb+=((resultat[i]).length);return(nb);}function NombreCaracteresAlphabeticMinuscule(valeur){var nb= 0;var resultat = valeur.match(regExpAlphabeticMinuscule);if(resultat)for(i=0;i<resultat.length;++i)nb+=((resultat[i]).length);return(nb);}function NombreCaracteresAlphabeticMajuscule(valeur){var nb= 0;var resultat = valeur.match(regExpAlphabeticMajuscule);if(resultat)for(i=0;i<resultat.length;++i)nb+=((resultat[i]).length);return(nb);}*/function validate_subscribe()		{			vld = document.subscribe; 			tgamertag = document.subscribe.gamertag;			tpassword = document.subscribe.password;			tcpassword = document.subscribe.cpassword;			temail = document.subscribe.email;			tprenom = document.subscribe.prenom;			tnom = document.subscribe.nom;						/*tconditions = document.subscribe.conditions;*/			/*alert("Veuillez inscrire votre" + pprenom.value);				pprenom.focus();				return false;*/									if (isEmpty(tgamertag.value)) {				alert("Veuillez inscrire votre GAMERTAG");				tgamertag.focus();				return false;			}			if (isNot4CharsLength(tgamertag.value)) {				alert("Votre GAMERTAG doit comprendre au moins 4 caractères, veuillez inscrire votre GAMERTAG");				tgamertag.focus();				return false;			}			if (isEmpty(tpassword.value)) {				alert("Veuillez inscrire votre PASSWORD");				tpassword.focus();				return false;			}			if (isNot4CharsLength(tpassword.value)) {				alert("Votre Mot de Passe doit comprendre au moins 4 caractères, veuillez inscrire votre Mot de Passe");				tpassword.focus();				return false;				}			if (isEmpty(tcpassword.value)) {				alert("Veuillez confirmer votre MOT DE PASSE");				tcpassword.focus();				return false;			}			if (tpassword.value != tcpassword.value){				alert("Votre Mot de Passe et sa confirmation ne sont pas identiques. Veuillez les retaper");				tpassword.value="";				tcpassword.value="";				tpassword.focus();				return false;			}						if (isEmpty(temail.value)) {				alert("Veuillez inscrire votre E-MAIL");				temail.focus();				return false;			}			if (isNotEmailAdress(temail.value)) {				alert("E-MAIL non valide, veuillez inscrire votre E-MAIL");				temail.focus();				return false;			}			if (isEmpty(tprenom.value)) {				alert("Veuillez inscrire votre PRENOM");				tprenom.focus();				return false;			}			if (isEmpty(tnom.value)) {				alert("Veuillez inscrire votre NOM");				tnom.focus();				return false;			}			/*if (isEmpty(tteam.value)) {				alert("Veuillez inscrire le nom de votre TEAM");				tteam.focus();				return false;			}			if (isEmpty(tdiminutif.value)) {				alert("Veuillez inscrire le DIMINUTIF de votre TEAM");				tdiminutif.focus();				return false;			}			if (isNotUrl(twebsite.value) && twebsite.value != "http://") {				alert("Cet URL n'est pas valide, si votre clan n'a pas de site, laissez tel que");				twebsite.value = "http://";				twebsite.focus();				return false;			}						if (isEmpty(tplayers.value) || tplayers.value == "joueur1, joueur2, etc... joueur16") {				alert("Veuillez inscrire les GAMERTAGS des joueurs");				tplayers.focus();				return false;			}*/									/*if (tconditions.checked==false){				alert("Vous devez accepter les conditions d'utilisation pour vous vous inscrire");				tconditions.focus();				return false;			} */								}function validate_mail_lost()		{			vld = document.send_pass; 			temail = document.send_pass.email;						if (isEmpty(temail.value)) {				alert("Veuillez inscrire votre E-MAIL");				temail.focus();				return false;			}			if (isNotEmailAdress(temail.value)) {				alert("E-MAIL non valide, veuillez inscrire votre E-MAIL");				temail.focus();				return false;			}					}function validate_connexion()		{						vld = document.connect; 			tgamertag = document.connect.gtag;			tpassword = document.connect.pass;						if (isEmpty(tgamertag.value)) {				alert("Veuillez inscrire votre GAMERTAG");				tgamertag.focus();				return false;			}			if (isNot4CharsLength(tgamertag.value)) {				alert("Votre GAMERTAG doit comprendre au moins 4 caractères, veuillez inscrire votre GAMERTAG");				tgamertag.focus();				return false;			}			if (isEmpty(tpassword.value)) {				alert("Veuillez inscrire votre PASSWORD");				tpassword.focus();				return false;			}			if (isNot4CharsLength(tpassword.value)) {				alert("Votre Mot de Passe doit comprendre au moins 4 caractères, veuillez inscrire votre Mot de Passe");				tpassword.focus();				return false;				}}