// JavaScript Document

function validerForm(formulaire){
	var tabInput = document.getElementsByTagName('input');
	for(i=0;i<tabInput.length;i++){
		if(tabInput[i].type=='text'){
			if(tabInput[i].attributes['class'].value=='texteNonVide'){
				if(tabInput[i].value==''){
					alert(tabInput[i].attributes['defaultvalue'].value+' doit être non vide');
					tabInput[i].focus();
					return false;
				}
				if(tabInput[i].value==tabInput[i].attributes['defaultvalue'].value){
					alert(tabInput[i].attributes['defaultvalue'].value+' doit être différent de "'+tabInput[i].attributes['defaultvalue'].value+'"');
					tabInput[i].focus();
					return false;
				}
			}
			if(tabInput[i].attributes['class'].value=='mail'){
				var regexMail = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/;
				if((tabInput[i].value!='') && (tabInput[i].value!=tabInput[i].attributes['defaultvalue'].value) && (!tabInput[i].value.match(regexMail))){					
					alert("Votre adresse email n'est pas valide");
					tabInput[i].focus();
					return false;
				}
			}
			if(tabInput[i].attributes['class'].value=='tel'){
				if((tabInput[i].value!='') && (tabInput[i].value!=tabInput[i].attributes['defaultvalue'].value)){
					if(tabInput[i].value.length!=10){
						alert(tabInput[i].attributes['defaultvalue'].value+" doit contenir 10 chiffres");
						tabInput[i].focus();
						return false;
					}
					if(tabInput[i].value.charAt(0) != "0"){
						alert(tabInput[i].attributes['defaultvalue'].value+" doit commencer par 0");
						tabInput[i].focus();
						return false;
					}
					for(j=0;j<tabInput[i].value.length;j++){
						if(tabInput[i].value.charAt(i) < "0" || tabInput[i].value.charAt(i) > "9"){
							test = -1;
							if(test == -1) {
								alert(tabInput[i].attributes['defaultvalue'].value+" doit contenir uniquement des chiffres");
								tabInput[i].focus();
								return false;
							}
						}
					}
				}
			}
			if(tabInput[i].attributes['class'].value=='cp'){
				if((tabInput[i].value!='') && (tabInput[i].value!=tabInput[i].attributes['defaultvalue'].value)){
					if(tabInput[i].value.length!=5){
						alert(tabInput[i].attributes['defaultvalue'].value+" doit contenir 5 chiffres");
						tabInput[i].focus();
						return false;
					}
					for(j=0;j<tabInput[i].value.length;j++){
						if(tabInput[i].value.charAt(j) < "0" || tabInput[i].value.charAt(j) > "9"){
							test = -1;
							if(test == -1) {
								alert(tabInput[i].attributes['defaultvalue'].value+" doit contenir uniquement des chiffres");
								tabInput[i].focus();
								return false;
							}
						}
					}
				}
			}
			if(tabInput[i].attributes['class'].value=='cpNonVide'){
				if(tabInput[i].value==''){
					alert(tabInput[i].attributes['defaultvalue'].value+' doit être non vide');
					tabInput[i].focus();
					return false;
				}
				if(tabInput[i].value==tabInput[i].attributes['defaultvalue'].value){
					alert(tabInput[i].attributes['defaultvalue'].value+' doit être différent de "'+tabInput[i].attributes['defaultvalue'].value+'"');
					tabInput[i].focus();
					return false;
				}
				if(tabInput[i].value.length!=5){
					alert(tabInput[i].attributes['defaultvalue'].value+" doit contenir 5 chiffres");
					tabInput[i].focus();
					return false;
				}
				for(j=0;j<tabInput[i].value.length;j++){
					if(tabInput[i].value.charAt(j) < "0" || tabInput[i].value.charAt(j) > "9"){
						test = -1;
						if(test == -1) {
							alert(tabInput[i].attributes['defaultvalue'].value+" doit contenir uniquement des chiffres");
							tabInput[i].focus();
							return false;
						}
					}
				}
			}
			if(tabInput[i].attributes['class'].value=='dateNonVide'){
				if(tabInput[i].value==''){
					alert(tabInput[i].attributes['defaultvalue'].value+' doit être non vide');
					tabInput[i].focus();
					return false;
				}
				if(tabInput[i].value==tabInput[i].attributes['defaultvalue'].value){
					alert(tabInput[i].attributes['defaultvalue'].value+' doit être différent de "'+tabInput[i].attributes['defaultvalue'].value+'"');
					tabInput[i].focus();
					return false;
				}
				var regexDate = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
				if(!tabInput[i].value.match(regexDate)){					
					alert("Votre date de naissance n'est pas valide");
					tabInput[i].focus();
					return false;
				}
			}
			
		} 
	} 
	
	return true;
}

function vider(input){
  if(input.value==input.attributes['defaultvalue'].value){
    input.value="";
  }
}

function Choix(formulaire) {
i = formulaire.Boite1.selectedIndex;

/*
Comme toujours, on débute ce javascript par la création d'une fonction. Ici elle recevra en argument le formulaire que l'on va nommer formulaire (oui je sais je suis original).
Nous créons une variable i qui contiendra le numero d'ordre de l'élément sélectionné de la première boite à liste. Ceci est obtenu en utilisant la propriété SelectedIndex de l'objet select (qui, ici, a pour nom Boite1) précédé du nom du formulaire (pour l'exemple, formulaire.
*/

if (i == 0) {
  for (i=0;i<3;i++) {
    formulaire.Boite2.options[i].text="";
    }
  return;
  }

/*
Nous ouvrons une condition if pour être sur qu'aucun élément n'est encore selectioné (variable i vaut 0), puis une petite boucle for incrémentant i de 0 à 3 (ben oui on a 3 éléments...).
Dans cette boucle nous allons écrire du texte, enfin on va plutôt écrire du vide (""), dans chaque objet option indéxé par i (de 0 à 3).
Ceci est obtenu en utilisant la propriété text de l'objet option. Notre syntaxe est donc : NomDuFormulaire.NomdelaBoiteaListe.options[index].text="mon texte"
Puis il nous suffit de retourner le tout avec l'instruction return
*/

switch (i) {
case 1 : var txt = new Array ('Page 1.1','Page 1.2','Page 1.3'); var val = '8.31'; break;
case 2 : var txt = new Array ('Page 2.1','Page 2.2','Page 2.3'); var val = '0'; break;
case 3 : var txt = new Array ('Page 3.1','Page 3.2','Page 3.3'); var val = '8.31'; break;
}

/*
Nous utilisons ici l'instruction switch (qui permet d'évaluer le contenu d'une variable et de la comparer à des constantes, si une des constante est trouvée le jeu d'instruction est executé.
Il ne nous reste plus qu'à définir nos variables. Pour cela on utilise : case ValeurATester : expression.
Donc suivant la valeur de i on crée un nouveau tableau txt avec l'opérateur spécial new contenant les éléments a afficher.
Puis enfin on ajoute l'instruction break qui met fin à l'instructions switch.
*/

formulaire.Boite2.options[0].text="--- Choisissez une Page ---";
for (i=0;i<3;i++) {
  formulaire.Boite2.options[i+1].text=txt[i];
  formulaire.SMIC.value=val;
 }
}

/*
Il ne nous reste plus qu'à finir notre fonction en écrivant nos élements dans la seconde boite.
On commence donc par mettre du texte pour le premier option, je ne reviens pas sur la technique pour le faire, elle est expliqué plus haut.
Ensuite nous ouvrons une boucle for de 0 à 3 (toujours 3 éléments) et on écrit dans chaque option, pour chaque valeur de i+1 (ben oui le 0 c'est le texte qui dit de choisir) le texte correspondant du tableau txt.
*/



