// ---------------------------------------------------------------------------------------------------------
// Fonction de remplacement de TOUS les caractères d'une chaîne par une autre
// PS: 'replace' ne remplace que la 1ère occurence
function replaceAll(sStr, sSearch, sReplace) {
	var iPos =-1;
	for(;;) {
		iPos = sStr.indexOf(sSearch);
		if (iPos == -1) {
			return sStr;
		} // END IF
		sStr = sStr.replace(sSearch, sReplace);
	} // END FOR infinite
	return ''; // Necessay for Netscape 4.03
} // END FUNCTION replaceAll -------------------------------------------------------------------------------

function QueLeMemeChiffre(chaine) {
	var Ok = true;
	if (chaine.length == 0) {
		Ok = false;
	} else {
		var memoChar = chaine.charAt(0);
		for (i=1; i<chaine.length && Ok; i++) {
			if (chaine.charAt(i) != memoChar) { Ok = false; }
		}
	}
	return Ok;
}
function QueDesChiffres(chaine) {
	var Alphabet = "0123456789";
	var Ok = true;
	if (chaine.length == 0) { Ok = false; }
	else { for(i=0;i<chaine.length && Ok;i++)
		if (Alphabet.indexOf(chaine.charAt(i)) == -1) { Ok = false; }
	}
	return Ok;
}
function QueDesLettresVille(chaine) {
	var Alphabet = " -abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ";
	var Ok = true;
	if (chaine.length == 0) { Ok=false; }
	else { for(i=0;i<chaine.length && Ok;i++)
		if (Alphabet.indexOf(chaine.charAt(i)) == -1) { Ok = false; }
	}
	return Ok;
}
function FormatCouponVille(chaine) {
	var aposAll = /'/g;
	var bqAll = /`/g;
	var qAll = /´/g;
	//var spaceAll = / /g;
	var result = chaine.toUpperCase().replace(aposAll, " ").replace(bqAll, " ").replace(qAll, " ");
	result = replaceAll(result, "  ", " ");
	return result;
}
function ControleTelephone(chaine) {
	var Alphabet = " 0123456789";
	var Ok = true;
	if (chaine.length == 0) { Ok=false; }
	else { for(i=0;i<chaine.length && Ok;i++)
		if (Alphabet.indexOf(chaine.charAt(i)) == -1) { Ok = false; }
	}
	return Ok;
}
function ControleSaisieCouponCivilite(formulaire, ret) {
	if ( !ret) {
		if (formulaire.Civilite_ID[formulaire.Civilite_ID.selectedIndex].value == ""
		 || formulaire.Civilite_ID[formulaire.Civilite_ID.selectedIndex].value == 0) {
			alert("Vous avez oublié définir votre CIVILITE !");
			formulaire.Civilite_ID.focus();
			return false;
		}
	}
	return true;
}
function ControleSaisieCouponNom(formulaire, ret) {
	if ( !ret) {
		if (formulaire.Nom.value.length == 0) {
			alert("Vous avez oublié de définir votre NOM !");
			formulaire.Nom.focus();
			return false;
		}
	}
	if (formulaire.Nom.value.length > 20) {
		alert("Vous avez défini un NOM trop long (il ne doit pas faire plus de 20 caractères) !");
		formulaire.Nom.focus();
		return false;
	}
	return true;
}
function ControleSaisieCouponPrenom(formulaire, ret) {
	if ( !ret) {
		if (formulaire.Prenom.value.length == 0) {
			alert("Vous avez oublié de définir votre PRENOM !");
			formulaire.Prenom.focus();
			return false;
		}
	}
	if (formulaire.Prenom.value.length > 20) {
		alert("Vous avez défini un PRENOM trop long (il ne doit pas faire plus de 20 caractères) !");
		formulaire.Prenom.focus();
		return false;
	}
	return true;
}
function ControleSaisieCouponNaissance(formulaire, ret) {
	if ( !ret) {
		if (formulaire.dateBirth.value.length == 0) {
			alert("Vous avez oublié de définir votre DATE DE NAISSANCE !");
			formulaire.dateBirth.focus();
			return false;
		}
	}
	if (formulaire.dateBirth.value.length != 10) {
		alert("Rentrez une DATE DE NAISSANCE sous la forme jj/mm/aaaa");
		formulaire.dateBirth.focus();
		return false;
	}
	var anneeN = formulaire.dateBirth.value.substr(6, 10);
	var annee = eval(anneeN);
	var aujourdhui = new Date();
	var aujourdhuiAnnee = aujourdhui.getYear();
	// Cas de Netscape
	if (navigator.appName.indexOf("Netscape")>=0) {
		aujourdhuiAnnee += 1900;
	}
	if (annee<=1900 || annee>=(aujourdhuiAnnee-16)) {
		alert("Rentrez une DATE DE NAISSANCE avec une ANNEE COHERENTE (sous la forme jj/mm/aaaa)");
		formulaire.dateBirth.focus();
		return false;
	}
	return true;
}
function ControleSaisieCouponAdresse(formulaire, ret) {
	if ( !ret) {
		if (formulaire.Adresse.value == "") {
			alert("Vous avez oublié de définir votre ADRESSE !");
			formulaire.Adresse.focus();
			return false;
		}
		if (formulaire.Adresse.value.length > 250) {
			alert("Vous avez défini une ADRESSE trop longue (elle ne doit pas faire plus de 250 caractères) !");
			formulaire.Adresse.focus();
			return false;
		}
	}
	return true;
}
function ControleSaisieCouponCP(formulaire, ret) {
	if ( !ret) {
		if (formulaire.CP.value == "") {
			alert("Vous avez oublier de définir votre CODE POSTAL !")
			formulaire.CP.focus();
			return false;
		}
		if (formulaire.CP.value != "") {
			if (   formulaire.Pays_ID[formulaire.Pays_ID.selectedIndex].value == 1 
			    && QueLeMemeChiffre(formulaire.CP.value)) {
				alert("Le CODE POSTAL n'est pas défini correctement pour ce pays !");
				formulaire.CP.focus();
				return false; 
			}
		}
		if (formulaire.Pays_ID[formulaire.Pays_ID.selectedIndex].value == 1) {
			if (formulaire.CP.value.length != 0 && formulaire.CP.value.length != 5) {
				alert("Vous avez défini un CODE POSTAL incorrect (il doit faire 5 caractères) !");
				formulaire.CP.focus();
				return false;
			}
		} else {
			if (formulaire.CP.value.length !=0 && formulaire.CP.value.length < 4) {
				alert("Vous avez défini un CODE POSTAL trop court (il ne doit pas au moins 4 caractères) !");
				formulaire.CP.focus();
				return false;
			}
		}
	}
	if (formulaire.CP.value.length > 5) {
		alert("Vous avez défini un CODE POSTAL trop long (il ne doit pas faire plus de 5 caractères) !");
		formulaire.CP.focus();
		return false; 
	}
	return true;
}
function ControleSaisieCouponVille(formulaire, ret) {
	if (formulaire.Ville.value != "") {
		if ( !QueDesLettresVille(formulaire.Ville.value)) {
			alert("La VILLE n'est pas définie correctement !");
			formulaire.Ville.focus();
			return false; 
		}
	}
	if ( !ret) {
		if (formulaire.Ville.value == "") {
			alert("Vous avez oublié de définir votre VILLE !")
			formulaire.Ville.focus();
			return false;
		}
	}
	if (formulaire.Ville.value.length > 30) {
		alert("Vous avez défini une VILLE trop longue (elle ne doit pas faire plus de 30 caractères) !");
		formulaire.Ville.focus();
		return false;
	}
	return true;
}
function ControleSaisieCouponTel1(formulaire, ret) {
	// Téléphone 1
	if (formulaire.Tel1.value != "") {
		if ( !QueDesChiffres(formulaire.Tel1.value)) {
			alert("Le TELEPHONE n'est pas défini correctement (que des chiffres sans espace) !");
			formulaire.Tel1.focus();
			return false; 
		}
		// Cas d'un téléphone français
		if (formulaire.Pays_ID[formulaire.Pays_ID.selectedIndex].value == 1) {
			if (formulaire.Tel1.value.length != 10) {
				alert("Vous avez défini un TELEPHONE français incorrect (il doit faire 10 caractères) !");			
				formulaire.Tel1.focus();
				return false; 
			}
			var debTel = formulaire.Tel1.value.substr(0, 2);
			if ( !ret) {
				if (formulaire.TypeTel1[formulaire.TypeTel1.selectedIndex].value == ""
				 || formulaire.TypeTel1[formulaire.TypeTel1.selectedIndex].value == 0) {
					alert("Vous devez définir le champ TYPE DE TELEPHONE ...");
					formulaire.TypeTel1.focus();
					return false; 
				}
			}
			if (formulaire.TypeTel1[formulaire.TypeTel1.selectedIndex].value == 2) {
				if (debTel != '06') {
					alert("Vous avez défini un TELEPHONE PORTABLE français incorrect !");			
					formulaire.Tel1.focus();
					return false; 
				}
			} else {
				if (   debTel != '01' && debTel != '02' && debTel != '03'
				    && debTel != '04' && debTel != '05' && debTel != '06'
					&& debTel != '07' && debTel != '08' && debTel != '09') {
					alert("Vous avez défini un TELEPHONE français incorrect !");			
					formulaire.Tel1.focus();
					return false; 
				}
			}
		}
	}
	if (formulaire.Tel1.value.length > 20) {
		alert("Vous avez défini un TELEPHONE trop long (il ne doit pas faire plus de 20 caractères) !");
		formulaire.Tel1.focus();
		return false; 
	}
	return true;
}
function ControleSaisieCouponTel2(formulaire, ret) {
	// Téléphone 2
	if (formulaire.Tel2.value != "") {
		if ( !QueDesChiffres(formulaire.Tel2.value)) {
			alert("Le TELEPHONE n'est pas défini correctement (que des chiffre sans espace) !");
			formulaire.Tel2.focus();
			return false; 
		}
		// Cas d'un téléphone français
		if (formulaire.Pays_ID[formulaire.Pays_ID.selectedIndex].value == 1) {
			if (formulaire.Tel2.value.length != 10) {
				alert("Vous avez défini un TELEPHONE français incorrect (il doit faire 10 caractères) !");			
				formulaire.Tel2.focus();
				return false; 
			}
			var debTel = formulaire.Tel2.value.substr(0, 2);
			if ( !ret) {
				if (formulaire.TypeTel2[formulaire.TypeTel2.selectedIndex].value == ""
				 || formulaire.TypeTel2[formulaire.TypeTel2.selectedIndex].value == 0) {
					alert("Vous devez définir le champ TYPE DE TELEPHONE ...");
					formulaire.TypeTel2.focus();
					return false; 
				}
			}
			if (formulaire.TypeTel2[formulaire.TypeTel2.selectedIndex].value == 2) {
				if (debTel != '06') {
					alert("Vous avez défini un TELEPHONE PORTABLE français incorrect !");			
					formulaire.Tel2.focus();
					return false; 
				}
			} else {
				if (   debTel != '01' && debTel != '02' && debTel != '03'
				    && debTel != '04' && debTel != '05' && debTel != '06'
					&& debTel != '07' && debTel != '08' && debTel != '09') {
					alert("Vous avez défini un TELEPHONE français incorrect !");			
					formulaire.Tel2.focus();
					return false; 
				}
			}
		}
	}
	if (formulaire.Tel2.value.length > 20) {
		alert("Vous avez défini un TELEPHONE trop long (il ne doit pas faire plus de 20 caractères) !");
		formulaire.Tel2.focus();
		return false; 
	}
	return true;
}
function ControleSaisieCouponSituation(formulaire, ret) {
	if ( !ret) {
		if (formulaire.Situation_ID[formulaire.Situation_ID.selectedIndex].value == ""
		 || formulaire.Situation_ID[formulaire.Situation_ID.selectedIndex].value == 0) {
			alert("Vous devez définir le champ SITUATION ...");
			formulaire.Situation_ID.focus();
			return false;
		}
	}
	return true;
}
function ControleSaisieCouponNiveauEtude(formulaire, ret) {
	if ( !ret) {
		if (formulaire.NiveauEtude_ID[formulaire.NiveauEtude_ID.selectedIndex].value == ""
		 || formulaire.NiveauEtude_ID[formulaire.NiveauEtude_ID.selectedIndex].value == 0) {
			alert("Vous devez définir le champ NIVEAU D'ETUDE ...");
			formulaire.NiveauEtude_ID.focus();
			return false;
		}
	}
	return true;
}
function ControleSaisieCouponSourceMedia(formulaire, ret) {
	if ( !ret) {
		if (formulaire.SourceMedia0_ID.selectedIndex == 0 || formulaire.FSourceMedia_ID == null || formulaire.FSourceMedia_ID[formulaire.FSourceMedia_ID.selectedIndex].value == ""
		 || formulaire.FSourceMedia_ID[formulaire.FSourceMedia_ID.selectedIndex].value == 0) {
			alert("Vous devez définir le champ MEDIA ...");
			return false;
		}
	}
	return true;
}
function ControleSaisieCouponEMail(formulaire, ret) {
	/*if (formulaire.EMail.value.length == 0) {
		alert("Vous avez oublié de définir l'ADRESSE MAIL !");
		formulaire.EMail.focus();
		return false;
	}
	if (formulaire.EMail.value.length > 100) {
		alert("Vous avez défini une ADRESSE MAIL trop longue (elle ne doit pas faire plus de 100 caractères) !");
		formulaire.EMail.focus();
		return false;
	}*/
	return true;
}
function ControleSaisieCouponParticularite(formulaire, ret) {
	if (formulaire.Particularite.value.length > 250) {
		alert("Vous avez défini des PARTICULARITES, PRECISIONS trop longues (ce champ ne doit pas faire plus de 250 caractères) !");
		formulaire.Particularite.focus();
		return false;
	}
	return true;
}
function getDateFromFormatDateFrench(valeur) {
    if (valeur=='') {
		return '';
    } else {
    	return new Date(valeur.substring(6,10), valeur.substring(3,5), valeur.substring(0,2));
	}
}
///////////////////////////////////////
// Validation Formulaire Demande Doc //
///////////////////////////////////////
function ControleSaisieCoupon(formulaire) {
	var ret;
	// Civilité
	ret = ControleSaisieCouponCivilite(formulaire, false);
	if ( !ret) return false;
	// Nom
	ret = ControleSaisieCouponNom(formulaire, false);
	if ( !ret) return false;
	// Prénom
	ret = ControleSaisieCouponPrenom(formulaire, false);
	if ( !ret) return false;
	// Date de naissance
	ret = ControleSaisieCouponNaissance(formulaire, false);
	if ( !ret) return false;
	// Adresse
	ret = ControleSaisieCouponAdresse(formulaire, false);
	if ( !ret) return false;
	// Code Postal
	ret = ControleSaisieCouponCP(formulaire, false);
	if ( !ret) return false;
	// Ville
	ret = ControleSaisieCouponVille(formulaire, false);
	if ( !ret) return false;
	// Téléphones (1 et 2)
	if (formulaire.Tel1.value == "" && formulaire.Tel2.value == "") {
		alert("Vous devez remplir un champ TELEPHONE ...");
		formulaire.Tel1.focus();
		return false;
	} else {
		ret = ControleSaisieCouponTel1(formulaire, false);
		if ( !ret) return false;
		ret = ControleSaisieCouponTel2(formulaire, false);
		if ( !ret) return false;
	}
	// e-mail
	ret = ControleSaisieCouponEMail(formulaire, false);
	if ( !ret) return false;
	// Situation
	ret = ControleSaisieCouponSituation(formulaire, false);
	if ( !ret) return false;
	// Niveau d'étude
	ret = ControleSaisieCouponNiveauEtude(formulaire, false);
	if ( !ret) return false;
	// Formations (1, 2)
	if (   (formulaire.Formation_ID1[formulaire.Formation_ID1.selectedIndex].value == ""
	     || formulaire.Formation_ID1[formulaire.Formation_ID1.selectedIndex].value == 0)
		&& (formulaire.Formation_ID2[formulaire.Formation_ID2.selectedIndex].value == ""
	     || formulaire.Formation_ID2[formulaire.Formation_ID2.selectedIndex].value == 0) ) {
		alert("Vous devez définir un champ FORMATION ...");
		formulaire.Formation_ID1_focus();
		return false;
	}
	if (formulaire.Formation_ID1[formulaire.Formation_ID1.selectedIndex].value != "") {
		if (formulaire.Formation_ID1.selectedIndex == formulaire.Formation_ID2.selectedIndex && formulaire.Formation_ID1[formulaire.Formation_ID1.selectedIndex].value != "" && formulaire.Formation_ID1[formulaire.Formation_ID1.selectedIndex].value != 0) {
			alert("Vous avez défini 2 fois la MEME FORMATION");
			formulaire.Formation_ID1.focus();
			return false;
		}
	}
	// Source Média
	ret = ControleSaisieCouponSourceMedia(formulaire, false);
	if ( !ret) return false;
	// Particularité
	ret = ControleSaisieCouponParticularite(formulaire, false);
	if ( !ret) return false;
	
	return true;
}
