// Boucle de validation

function listecochegenre(recherche) {  
	var strtable = new Array("genre");
	var stritem = document.forms['recherche'].liste_valeur_genre.value.split(" ");
	var i=0;
	var j=0;   
	var termine=false;
	for (i=0; i<=stritem.length-1; i++) {
//		alert(stritem.length-1);
		//alert(stritem[i]);
		if ((document.getElementById("genre"+stritem[i]).checked) == false) {  // tant que les cases ne sont pas cochées, on continue
//			alert("non");
		}
		else { 
//			alert("oui");
//		alert(stritem[i]);
		}
	}
	return true;
}


function cochegenre(recherche) {  
	var strtable = new Array("genre");
	var stritem = document.forms['recherche'].liste_valeur_genre.value.split(" ");
	var i=0;
	var j=0;   
	var termine=false;
	while(i<=strtable.length-1 && termine==false) {  
		while(j<=stritem.length-1 && termine==false) {  
			if ((document.getElementById(strtable[i]+stritem[j]).checked) == false) {  // tant que les cases ne sont pas cochées, on continue
				j++;
			}
			else { // une cache au moins est cochée doncon s'arrête et on va vérifier que si sur la case autres, alors il faut lancer controle comme quoi qqchose a été écrit dans le champ input
				if ((stritem[j]) == 'autres') { // on est sur la case autres
					var str = recherche.autresgenre.value;
					var re = /.+/;
					if(!str.match(re)) { // la valeur n'est pas renseignée donc on va envoyer message comme quoi le remplir
						alert("Veuillez renseigner les champs obligatoires.");
						setTimeout("focusElement('recherche','autresgenre')", 0);
						return false;
					} else { // la valeur est rensignée donc pas de pb
						return true;
					}
				} else { // une autre case est cochée (autre que celle qui s'appelle autres)
					var str = recherche.autresgenre.value; // on met en variable si la case autres ets cohée ou pas
					var re = /.+/;
					if(!str.match(re)) { // la valeur n'est pas renseignée
						if ((document.getElementById("genreautres").checked) == false) { // la case est cochée mais ya du texte dans le champ input donc ok
							termine=true;
						} else { // la case est cochée mais ya pas de texte dans le champ inupt donc message avertissement...
							alert("Veuillez renseigner les champs obligatoires.");
							setTimeout("focusElement('recherche','autresgenre')", 0);
							return false;
						}
					} else { // la valeur est renseignée donc ok
						return true;
					}
				}
			}
		}
		i++;
	}
	if(termine==false) { // on n'est passé dans termine=true donc on met à false
		alert("Veuillez choisir au moins un genre");
		setTimeout("focusElement('recherche','genreabstrait')", 0);
		return false;
	}
	else {
		return true;
	}
}

function cochetype(recherche) {  
	var strtable = new Array("type");
	var stritem = document.forms['recherche'].liste_valeur_type.value.split(" ");
	var i=0;
	var j=0;   
	var termine=false;
	while(i<=strtable.length-1 && termine==false) {  
		while(j<=stritem.length-1 && termine==false) {  
			if ((document.getElementById(strtable[i]+stritem[j]).checked) == false) {  // tant que les cases ne sont pas cochées, on continue
				j++;
			}
			else { // une cache au moins est cochée doncon s'arrête et on va vérifier que si sur la case autres, alors il faut lancer controle comme quoi qqchose a été écrit dans le champ input
				if ((stritem[j]) == 'autres') { // on est sur la case autres
					var str = recherche.autrestype.value;
					var re = /.+/;
					if(!str.match(re)) { // la valeur n'est pas renseignée donc on va envoyer message comme quoi le remplir
						alert("Veuillez renseigner les champs obligatoires.");
						setTimeout("focusElement('recherche','autrestype')", 0);
						return false;
					} else { // la valeur est rensignée donc pas de pb
						return true;
					}
				} else { // une autre case est cochée (autre que celle qui s'appelle autres)
					var str = recherche.autrestype.value; // on met en variable si la case autres ets cohée ou pas
					var re = /.+/;
					if(!str.match(re)) { // la valeur n'est pas renseignée
						if ((document.getElementById("typeautres").checked) == false) { // la case est cochée mais ya du texte dans le champ input donc ok
							termine=true;
						} else { // la case est cochée mais ya pas de texte dans le champ inupt donc message avertissement...
							alert("Veuillez renseigner les champs obligatoires.");
							setTimeout("focusElement('recherche','autrestype')", 0);
							return false;
						}
					} else { // la valeur est renseignée donc ok
						return true;
					}
				}
			}
		}
		i++;
	}
	if(termine==false) { // on n'est passé dans termine=true donc on met à false
		alert("Veuillez choisir au moins un type");
		setTimeout("focusElement('recherche','typeartpostal')", 0);
		return false;
	}
	else {
		return true;
	}
}

function cochemateriau(recherche) {  
	var strtable = new Array("materiau");
	var stritem = document.forms['recherche'].liste_valeur_materiau.value.split(" ");
	var i=0;
	var j=0;   
	var termine=false;
	while(i<=strtable.length-1 && termine==false) {  
		while(j<=stritem.length-1 && termine==false) {  
			if ((document.getElementById(strtable[i]+stritem[j]).checked) == false) {  // tant que les cases ne sont pas cochées, on continue
				j++;
			}
			else { // une cache au moins est cochée doncon s'arrête et on va vérifier que si sur la case autres, alors il faut lancer controle comme quoi qqchose a été écrit dans le champ input
				if ((stritem[j]) == 'autres') { // on est sur la case autres
					var str = recherche.autresmateriau.value;
					var re = /.+/;
					if(!str.match(re)) { // la valeur n'est pas renseignée donc on va envoyer message comme quoi le remplir
						alert("Veuillez renseigner les champs obligatoires.");
						setTimeout("focusElement('recherche','autresmateriau')", 0);
						return false;
					} else { // la valeur est rensignée donc pas de pb
						return true;
					}
				} else { // une autre case est cochée (autre que celle qui s'appelle autres)
					var str = recherche.autresmateriau.value; // on met en variable si la case autres ets cohée ou pas
					var re = /.+/;
					if(!str.match(re)) { // la valeur n'est pas renseignée
						if ((document.getElementById("materiauautres").checked) == false) { // la case est cochée mais ya du texte dans le champ input donc ok
							termine=true;
						} else { // la case est cochée mais ya pas de texte dans le champ inupt donc message avertissement...
							alert("Veuillez renseigner les champs obligatoires.");
							setTimeout("focusElement('recherche','autresmateriau')", 0);
							return false;
						}
					} else { // la valeur est renseignée donc ok
						return true;
					}
				}
			}
		}
		i++;
	}
	if(termine==false) { // on n'est passé dans termine=true donc on met à false
		alert("Veuillez choisir au moins un matériau");
		setTimeout("focusElement('recherche','materiauacier')", 0);
		return false;
	}
	else {
		return true;
	}
}

// Vérifie si un champ a bien été renseigné
function isNotEmpty(elem) {
	var str = elem.value;
	var re = /.+/;
	if(!str.match(re)) { // la valeur n'est pas renseignée donc on met à false
		alert("Veuillez renseigner les champs obligatoires.");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	} else {
		return true;
	}
}

// Vérifie si l'adresse e-mail est valide
function isMailAddr(elem) {
	var str = elem.value;
	var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if (!str.match(re)) { // l'adresse mail est invalide donc false
		alert("Veuillez vérifier le format de votre adresse e-mail.");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	} else {
		return true;
	}
}

// Vérifie si les premiers caractères du site web sont sans http://
function ishttp(elem) {
	var str = elem.value;
	var exp = new RegExp("(^ht|^htt|^http|^http:|^http:/|^http://|^//)","gi");
	if (exp.test(str)) { // il y a des débuts de nom de site avec http donc false
		alert("Merci d'indiquer l'adresse du site web sans les mentions http:// sous la forme nomdedomaine.tld");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	}
    return true;
}

// Vérifie si les 2 premiers chiffres du champ codepostal sont 75,77,78,91,92,93,94,95
function isPariscodepostal(elem) {
	var str = elem.value;
	var exp = new RegExp("(^75|^77|^78|^91|^92|^93|^94|^95)","gi");
	if (!exp.test(str)) { // il y a un début de code-postal avec des départements hors ile de france donc false
		alert("Le code postal que vous avez spécifié est en dehors de l'Ile de France...");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	}
	return true;
}

// Vérifie si les champs téléphone ne contiennent que des chiffres
function isNumbertelephone(elem) {
	var str = elem.value;
	var re = /.+/;
	if(str.match(re)) { // la valeur est renseignée donc on controle...
//		alert("passe dans controle chiffres téléphone");
		var str = elem.value;
//		alert(str);
		var re = /^[-]?\d*\.?\d*$/;
		str = str.toString();
		if (!str.match(re)) { // il y a des lettres dans champ numérique donc false
			alert("Veuillez respecter le format de numéro de téléphone à savoir 10 chiffres (ne pas mettre de lettres)...");
			setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
			return false;
		}
		return true; // pas de lettres dans champ numérique donc true
	}
	return true; // la valeur n'est pas renseignée donc true par défaut
}

// Vérifie si le champ codepostal ne contient que des chiffres
function isNumbercodepostal(elem) {
	var str = elem.value;
	var re = /^[-]?\d*\.?\d*$/;
	str = str.toString();
	if (!str.match(re)) { // il y a des lettres dans le champ code_postal donc false
		alert("Veuillez respecter le format de code postal sur 5 chiffres (2 chiffres pour le département et 3 chiffres pour la commune).");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	}
	return true;
}

// Vérifie si un champ ne contient que des chiffres
function isNumber(elem) {
	var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        alert("Veuillez respecter le format de date de naissance suivant : '05031970' pour '5 mars 1970'.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
    return true;
}

// Vérifie si un champ téléphonique contient 10 caractères
function isLen10(elem) {
	var str = elem.value;
	var re = /.+/;
	if(str.match(re)) { // la valeur est renseignée donc on controle...
//		alert("passe dans controle taille téléphone");
		var str2 = elem.value;
		var re2 = /\b.{10}\b/;
		if (!str2.match(re2)) { // la taille ne fait pas 10 chiffres donc false
			alert("Veuillez respecter le format de numéro de téléphone à savoir 10 chiffres...");
			setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
			return false;
		}
		return true; // la taille fait 10 chiffres donc true
	}
	return true; // la valeur n'est pas renseignée donc true par défaut
}

// Vérifie si un champ codepostal contient 5 caractères
function isLen5(elem) {
	var str = elem.value;
	var re = /\b.{5}\b/;
	if (!str.match(re)) { // la taille ne fait pas 5 chiffres donc false
		alert("Veuillez respecter le format de code postal sur 5 chiffres (2 chiffres pour le département et 3 chiffres pour la commune).");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	} else {
		return true; // la taille fait 10 chiffres donc true
	}
}

// Vérifie si un champ contient 8 caractères
function isLen8(elem) {
	var str = elem.value;
	var re = /\b.{8}\b/;
	if (!str.match(re)) {
		alert("Veuillez respecter le format de date de naissance suivant : '05031970' pour '5 mars 1970'.");
		setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
		return false;
	} else {
		return true;
	}
}

function ishttpvalide(elem) {
	var str = elem.value;
	var re = /.+/;
	if(str.match(re)) { // la valeur est renseignée donc on controle...
		// on passe la donnée saisie par le visiteur en variable pour plus de facilités
		adresse = document.recherche.siteweb.value;
		taille = document.recherche.siteweb.value.length;
		// on créé 3 variables pour valider au fur et à mesure le login, le domaine et l'extension qui constituent l'adresse e-mail
		validelog = false;
		validedom = false;
		valideext = false;
		// on extrait le 'login' qui se situe avant l'arobace
		arob = adresse.lastIndexOf("http://");
		login = adresse.substring(arob,taille);
		// on extrait l'extension qui se situe à partir du dernier point
		pointfinal = adresse.lastIndexOf(".");
		extension = adresse.substring(pointfinal,taille);
		// on extrait le domaine qui se trouve entre l'arobace et le dernier point
		domaine = adresse.substring(arob+1,pointfinal);
		// un login a toujours plus de 2 caractères, on fait le test
		if ( arob > -1 ) {
			validehttp = true;
		}
		else {
			validehttp = false;
		}
		// un login a toujours plus de 2 caractères, on fait le test
		if ( login.length > 10 ) {
			validelog = true;
		}
		else {
			validelog = false;
		}
		// un domaine a toujours plus de 1 caractère, on fait le test
		if ( domaine.length > 1 ) {
			validedom = true;
		}
		else {
			validedom = false;
		}
		// une extension a toujours 2 ou 3 caractères, on fait le test
		if ( pointfinal > -1 ) {
			valideext = true;
		}
		else {
			valideext = false;
		}
		// on vérifie que nos trois variables sont vraies pour accepter la soumission du formulaire
		if ( validelog == true && validedom == true && valideext == true && validehttp == true ) {
			return true;
		}
		else {
			alert('site web invalide...\nsyntaxe à utiliser sous la forme:\nhttp://nomdedomaine.extension ou http://www.nomdedomaine.extension');
			setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
			return false;
		}
	}
	return true; // la valeur n'est pas renseignée donc true par défaut
}

// Positionne le curseur dans un champ donné
function focusElement(formName, elemName) {
	var elem = document.forms[formName].elements[elemName];
	elem.focus();
	elem.select();
}

// Positionne le curseur dans un champ donné
function focusElement2() {
	var elem = document.forms[recherche].elements[description];
	elem.focus();
	elem.select();
}