//Les des messages d'erreur par défaut.
//Ces variables JS devront être surchargées suivant la langue sélectionnée sur le serveur par la JSP
//qui devra les afficher.
var mandatoryfieldsErrorLabel = "Veuillez compl&eacute;ter les champs obligatoires";
var wrongmailErrorLabel = "Email incorrect";
var shortpasswordErrorLabel = "Mot de passe trop court";
var confirmpasswordErrorLabel = "Erreur dans la saisie de confirmation du mot de passe";
var phonenumberErrorLabel = "Erreur dans la saisie du num&eacute;ro de t&eacute;l&eacute;phone";
var faxnumberErrorLabel = "Erreur dans la saisie du num&eacute;ro de fax";

// 
function authControl() {
	if(_('login').value.length == 0 || _('password').value.length == 0) {
		cleanContent('AUTH-ERROR');
		_('AUTH-ERROR').appendChild(d.createTextNode(messageError));
		return f;
	}
	return t;
}

// CONTROLE DES FORMULAIRES
function contactControl(mailId,lgMdp,MdpIdem,telNb,faxNb,buttRadio) {
	var indice = true;
	// il faut nettoyer MAIL-ERROR sur chaque submit en cas de validation multiple
	cleanContent('MAIL-ERROR');
	for (var i=0 ; i<ctrlElementsValues.length ; i++) {
		var exclam = "error-"+ctrlElementsValues[i];
		// il faut nettoyer ici et pas seulement si le champ est vide car si l'utilisateur met une valeur et en oublie d'autres, sur le deuxième submit, le ! sera toujours là...
		cleanContent(exclam);
		if(d.getElementById(ctrlElementsValues[i]) != null) {
			if(d.getElementById(ctrlElementsValues[i]).value.length == 0 || d.getElementById(ctrlElementsValues[i]).value == "0") {
				d.getElementById(exclam).appendChild(d.createTextNode("!"));
				indice = false;
			}
		}
	}
	if(indice === false) {
		// tu n'as besoin de remplir avec le message final qu'à la fin de la fonction, pas à chaque passage de la boucle
		d.getElementById('MAIL-ERROR').innerHTML = "! " + mandatoryfieldsErrorLabel + "\n";
	}
	// partie contrôle mail
	if(d.getElementById(mailId)) {
		if(d.getElementById(mailId).value.length != 0) {
			if(!isMail(mailId)) {
				d.getElementById('MAIL-ERROR').innerHTML = "! " + wrongmailErrorLabel + "\n";
				d.getElementById("error-"+mailId).appendChild(d.createTextNode("!"));
				d.getElementById(mailId).select();
				indice = false;
			}
		}
	}
	// partie contrôle longueur mot de passe
	if(d.getElementById(lgMdp)) {
		if(d.getElementById(lgMdp).value.length != 0) {
			if(d.getElementById(lgMdp).value.length < 6) {
				d.getElementById('MAIL-ERROR').innerHTML = "! " + shortpasswordErrorLabel + "\n";
				d.getElementById("error-"+lgMdp).appendChild(d.createTextNode("!"));
					d.getElementById(lgMdp).select();
				indice = false;
			}
		}
	}
	// partie contrôle 2 fois le même MdP
	if(d.getElementById(MdpIdem)) {
		if(d.getElementById(lgMdp).value.length != 0 && d.getElementById(MdpIdem).value.length != 0) {
				if(d.getElementById(lgMdp).value != d.getElementById(MdpIdem).value) {
					d.getElementById('MAIL-ERROR').innerHTML = "! " + confirmpasswordErrorLabel + "\n";
					d.getElementById("error-"+MdpIdem).appendChild(d.createTextNode("!"));
					d.getElementById(MdpIdem).select();
					indice = false;
				}
			}
	}
	// partie contrôle numéros de tel et fax
	if(d.getElementById(telNb)) {			
		cleanContent("error-"+telNb);
		if(d.getElementById(telNb).value.length != 0) {
			var reg = /^(\+)[0-9]{0,3}(?:[ _.-]?([0-9]{1,3}))+$/;
			var val1 = d.getElementById(telNb).value;
			if(!reg.test(val1)) {
				d.getElementById('MAIL-ERROR').innerHTML = "! " + phonenumberErrorLabel + "\n";
				d.getElementById("error-"+telNb).appendChild(d.createTextNode("!"));
				d.getElementById(telNb).select();
				indice = false;
			}
		}
	}
	if(d.getElementById(faxNb)) {		
		cleanContent("error-"+faxNb);
		if(d.getElementById(faxNb).value.length != 0) {
			var reg = /^(\+)[0-9]{0,3}(?:[ _.-]?([0-9]{1,3}))+$/;
			var val2 = d.getElementById(faxNb).value;
			if(!reg.test(val2)) {
				d.getElementById('MAIL-ERROR').innerHTML = "! " + faxnumberErrorLabel + "\n";
				d.getElementById("error-"+faxNb).appendChild(d.createTextNode("!"));
				d.getElementById(faxNb).select();
				indice = false;
			}
		}
	}
	return indice; // qui sera true ou false
}

// fonction contrôle de la construction de l'email
function isMail(obj) {
	var exp=/^[a-z0-9][a-z0-9\._-]+@[a-z0-9]{1}[a-z0-9\._-]+\.([a-z]{2,})$/i;
	return (exp.test(_(obj).value)) ? t : f;
}

// fonction contrôle du nombre de caractère du textarea
function limitCharact(textarea, max) {
	var exceptKey = new Array(37,38,39,40,16,46,8); //37,38,39,40 = les flèches ; 16 = shift ; 46 = delete/suppr ; 8 = backspace ;
	if(navigator.appVersion != "5.0 (Windows; fr)") {
		if(!exceptKey.inArray(event.keyCode)) {
			if(textarea.value.length >= max) {
				// substring ne retient comme valeur pour textarea que les 180 premiers caractères (il démarre du premier caractère tapé (0) et s'arrête à la valeur 'max')
				textarea.value = textarea.value.substring(0,max);
			}
		}
	} else {
		if(textarea.value.length >= max) {
				textarea.value = textarea.value.substring(0,max);
			}
	}
		var reste = max - textarea.value.length;
		document.getElementById('remainCharact').innerHTML = reste;
}
