//--------- Fonction qui teste si le champ est vide ou non
function chaineVide(chaine) {
	var vide = true;
	var longueur = chaine.length;
	
	for (var i = 0; i < longueur; i++) {
		if (chaine.charAt(i) != " ") vide = false;
	}
	return vide;
}

//--------- Fonction qui teste que dans le contenu du champs field il n'y a que les caractères qui sont dans chaineCaracteres
function chaineValide(field, message) {
	var chaine = field.value;
	var valide = true;
	
	if (!chaineVide(chaine)) {
		var chaineCaracteres = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-' ";
		var longueur = chaine.length;
		for (var i = 0; i < longueur; i++) {
			if (chaineCaracteres.indexOf(chaine.charAt(i)) == -1) valide = false;
		}
	}
	
	if (!valide) {
		alert("Les données enregistrées concernant\n" + message + " ne sont pas conformes,\nveuillez recommencer s'il vous plaît.");
	}
}


//--------- Fonction qui teste que dans le contenu du champs field il n'y a que des chiffres
function entierValide(field, message) {
	var chaine = field;
	var valide = true;
	if (!chaineVide(chaine)) {
		var chaineCaracteres = "0123456789";
		var longueur = chaine.length;
		for (var i = 0; i < longueur; i++) {
			if (chaineCaracteres.indexOf(chaine.charAt(i)) == -1) valide = false;
		}
	}
	
	return valide;
	//if (!valide) {
	//	alert("Les données enregistrées concernant\n" + message + " ne sont pas conformes,\nveuillez recommencer s'il vous plaît.");
	//}
}

//--------- Fonction qui teste que dans le contenu du champs field il n'y a que des chiffres et que sa longueur est 4 ou 5
function codePostalValide(chaine) {
		
	var valide = true;
	var longueur = chaine.length;
	
	if (!chaineVide(chaine)) {
		if (longueur >= 4) {
			var chaineCaracteres = " 0123456789";
			for (var i = 0; i < longueur; i++) {
				if (chaineCaracteres.indexOf(chaine.charAt(i)) == -1) valide = false;
			}
		}
		else {
			valide = false;
		}
	}
	
	return valide;
	//if (!valide) {
	//	alert("Les données enregistrées concernant\nle code postal ne sont pas conformes,\nveuillez recommencer s'il vous plaît.");
	//}
}


//--------- Fonction qui teste que dans la chaîne il n'y a que les caractères "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'- "
function chaineNormale(chaine) {
	var normale = true;
	var longueur = chaine.length;
	for (var i = 0; i < longueur; i++) {
		if ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'- ".indexOf(chaine.charAt(i)) == -1) normale = false;
	}
	return normale;
}


//--------- Fonction qui teste la validation d'une date
function dateValide(jours, mois, annee) {
	var valide = true;
	var intjours = parseInt(jours, 10);
	var intmois = parseInt(mois, 10);
	var intannee = parseInt(annee, 10);
	
		
	var mydate =jours + mois + annee;
	var longueur = mydate.length;
	var chaineCaracteres = " 0123456789";
	for (var i = 0; i < longueur; i++) {
		if (chaineCaracteres.indexOf(mydate.charAt(i)) == -1) valide = false;
	}
	
	if(jours.length==0) valide = false;
	if(mois.length==0) valide = false;
	if(annee.length!=4) valide = false;

	if (intmois < 1 || intmois > 12) {
		valide = false;
	}
	else
	{
		if (intmois == 1 || intmois == 3 || intmois == 5 || intmois == 7 || intmois == 8 || intmois == 10 || intmois == 12) {
			if (intjours < 1 || intjours > 31) {
				valide = false;
			}
		}
		else if (intmois == 2) {
			if (intannee % 4 == 0) {
				
				if (intjours < 1 || intjours > 29) {
					valide = false;
				}
			}
			else {
				if (intjours < 1 || intjours > 28) {
					valide = false;
				}
			}
		}
		else if (intmois == 4 || intmois == 6 || intmois == 9 || intmois == 11) {
			if (intjours < 1 || intjours > 30) {
				valide = false;
			}
		}
	}
	return valide;
}


//--------- Fonction qui teste le format du numéro de téléphone
//--------- Les caractères acceptés sont " 0123456789-.()+"
function formatTelephone(chaine) {
	var bonformat = true;
	var longueur = chaine.length;
	for (var i = 0; i < longueur; i++) {
		if (isNaN(chaine.charAt(i)) && chaine.charAt(i) != " " && chaine.charAt(i) != "." && chaine.charAt(i) != "-" && chaine.charAt(i) != "(" && chaine.charAt(i) != ")" && chaine.charAt(i) != "+") bonformat = false;
	}
	return bonformat;
}


//--------- Fonction qui teste le format de l'adresse email
function formatEmail(chaine) {

	var bonformat = true;
	var longueur = chaine.length;
	
    if (chaine.indexOf("@") == -1 || chaine.charAt(0) == "@" || chaine.charAt(0) == "." || chaine.charAt(longueur - 1) == "@" || chaine.charAt(longueur - 1) == "." || chaine.indexOf("@@") != -1 || chaine.indexOf("..") != -1) {
		bonformat = false;
	}
	
	var nbArobas = 0
	for (var i = 0; i < longueur; i++) {
		if (chaine.charAt(i) == "@") nbArobas++;
	}
	if (nbArobas > 1) bonformat = false;
	
	return bonformat;
}

function JSC_isEmail_String(str) {
	
	if (str.indexOf("'")!=-1)                                                   // "'" refusé
		return false;
	if (str.indexOf(" ")!=-1)                                                   // " " refusé
		return false;
	if (str.indexOf('"')!=-1)                                                   // '"' refusé
		return false;
	if (str.indexOf("#")!=-1)                                                   // "#" refusé
		return false;
	if (str.indexOf("(")!=-1)                                                   // "(" refusé
		return false;
	if (str.indexOf(")")!=-1)                                                   // ")" refusé
		return false;
	if (str.indexOf("/")!=-1)                                                   // "/" refusé
		return false;
	if (str.indexOf("\\")!=-1)                                                  // "\" refusé
		return false;
	if (str.indexOf("?")!=-1)                                                   // "?" refusé
		return false;
	if (str.indexOf(":")!=-1)                                                   // ":" refusé
		return false;
	if (str.indexOf(";")!=-1)                                                   // ";" refusé
		return false;
	if (str.indexOf("+")!=-1)                                                   // "+" refusé
		return false;
	if (str.indexOf("=")!=-1)                                                   // "=" refusé
		return false;
	if (str.indexOf("<")!=-1)                                                   // "<" refusé
		return false;
	if (str.indexOf(">")!=-1)                                                   // ">" refusé
		return false;
	if (str.indexOf("*")!=-1)                                                   // "*" refusé
		return false;
	if (str.indexOf("%")!=-1)                                                   // "%" refusé
		return false;
	if (str.indexOf("&")!=-1)                                                   // "&" refusé
		return false;
		
	if (str.indexOf(".@")!=-1)                                                  // "*.@*" refusé
		return false;
	if (str.indexOf("@.")!=-1)                                                  // "*@.*" refusé
		return false;
	if (".@".indexOf(str.charAt(0))!=-1)                                        // "@*" et ".*" refusés
		return false;
	if (".@".indexOf(str.charAt(str.length-1))!=-1)                             // "*@" et "*." refusés
		return false;
	if (str.search(/@.*@/g)!=-1)                                                // "*@*@*" et "*@@*" refusés
		return false;
	if (str.indexOf("..")!=-1)                                                  // "*..*" refusé
		return false;
	if (str.search(/@.*\./g)==-1)                                               // On refuse s'il n'y a pas de point à droite de "@"
		return false;
	if (str.length>4+str.lastIndexOf("."))                                      // On refuse les extensions de plus de 3 caractères
		return false;
	return true;
}

//--------- Fonction qui teste le format de l'adresse email
function formatURL(chaine) {
	var bonformat = true;
	var longueur = chaine.length;
	
    if  ( chaine.indexOf("http://") == -1 || chaine.indexOf(".") == -1) {
		bonformat = false;
	}
	return bonformat;
}

//--------- Fonction qui teste le format PDF
function formatPDF(chaine) {
	var bonformat = true;
	var longueur = chaine.length;
	if (chaine.substring(longueur-4,longueur) != ".pdf") {
		bonformat = false;
	}
	return bonformat;
}
//--------- Fonction qui teste le format gif / jpeg : .gif,.jpeg,.jpeg
function formatPDF(chaine) {
	var bonformat = true;
	var longueur = chaine.length;
	if ((chaine.substring(longueur-4,longueur) != ".gif") &&(chaine.substring(longueur-5,longueur) != ".jpeg") && (chaine.substring(longueur-4,longueur) != ".jpg") ) {
		bonformat = false;
	}
	return bonformat;
}
