function valeurVide(Valeur) {
	if (Valeur!=null) {
		return (Valeur.replace(/\s/gi,'')=='');
	} 
	else {
		return false;
	}
}

function valideFormulaire() {
	nbErreur = 0;
	focusChamp = null;
	msgControle = '';
	for (var i=0; i<champsControles.length; i++) {
		var variable = champsControles[i][0];
		var nom = champsControles[i][1];
		var controle = champsControles[i][2];
		var equal = champsControles[i][3];
		var valeur = $("#"+variable).attr("value");
		$("#"+variable).css("border", "");
		//alert(variable); return false;
		switch (controle) {
			case "texteNonVide":
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				} 
				break;
			case "texteRicheNonVide":
				valeur = CKEDITOR.instances[variable].getData();
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				} 
				break;
			case "chiffreNonVide":
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				} 
				else {
					valeur = valeur.replace(",",".");
					var chiffreCheck = /^([0-9]*)([,\.][0-9]+)?$/;
					if ( ! chiffreCheck.test(valeur) ) {
						stockeErreur(variable, nom+" non valide [chiffre demandé]");
					}
				}
				break;
			case "chiffreNonVideNonNul":
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				} 
				else {
					valeur = valeur.replace(",",".");
					var chiffreCheck = new RegExp("^[0-9]+\.?[0-9]*$","gi");
					if ( ! chiffreCheck.test(valeur) || parseInt(valeur, 10) == 0) {
						stockeErreur(variable, nom+" non valide [chiffre non nul demandé]");
					}
				}
				break;
			case "chiffre":
				valeur = valeur.replace(",",".");
				var chiffreCheck = new RegExp("^[0-9]+\.?[0-9]*$","gi");
				if ( ! valeurVide(valeur) && ! chiffreCheck.test(valeur) ) {
					stockeErreur(variable, nom+" non valide [chiffre demandé]");
				}
				break;
			case "pourcentage":
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				} 
				else {
					valeur = valeur.replace(",",".");
					var chiffreCheck = new RegExp("^[0-9]{1,3}\.?[0-9]{1,2}$","gi");
					if ( ! chiffreCheck.test(valeur) ) {
						stockeErreur(variable, nom+" non valide [chiffre demandé]");
					}
					else {
						if (valeur >100){
							stockeErreur(variable, nom+" non valide [> 100]");
						}
					}
				}
				break;
			case "codePostalNonVide":
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				}
				else {
					var cpCheck = new RegExp("^[0-9]{5}$","gi");
					if ( ! cpCheck.test(valeur) ) {
						stockeErreur(variable, nom+" non valide [5 chiffres demandés]");
					}
				}
				break;
			case "telephone":
				break;
			case "equal":
				if (!valeurVide(valeur)) {
					if (valeur != $("#"+equal).val()) {
						stockeErreur(variable, nom+" différent de sa confirmation ");
					}
				}
				break;
			case "dateNonVide":
				if (valeurVide(valeur)) {
					stockeErreur(variable, nom+" obligatoire");
				} 
				else {
					var chiffreCheck = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$","gi");
					if ( ! chiffreCheck.test(valeur) ) {
						stockeErreur(variable, nom+" non valide [date demandée au format JJ/MM/AAAA]");
					}
				}
				break;
			case "comboNonVide":
				if (!$("#"+variable).val()) {
					stockeErreur(variable, nom+" obligatoire [sélectionnez au moins un élément]");
				}
				break;
			default:
		}		
	}
	if (focusChamp != null) {
		var msgFinal = msg_formNonValide;
		if (nbErreur > 1) msgFinal+= msg_plusieursErreurs;
		else msgFinal+= msg_uneErreur;
		afficheErreur(msgFinal+"\n"+msgControle+"\n"+msg_conclusion);
		$("#"+focusChamp).focus();
		return false;
	} 
	else {
		return true;
	}
}


// rajoute un picto aux champs pour informer sur leur contenu (obligatoire, code postal, téléphone etc...)
function identifieChampsControles(){
	for (var i=0; i<champsControles.length; i++) {
		var variable = champsControles[i][0];
		var nom = champsControles[i][1];
		var controle = champsControles[i][2];
		
		var alt = "";
		var src = "";
		
		switch (controle){
			case "texteNonVide":
				src = "obligatoire.png";
				alt = "Champ obligatoire";
				break;
			case "texteRicheNonVide":
				src = "obligatoire.png";
				alt = "Champ obligatoire";
				break;
			case "chiffreNonVide":
				src = "obligatoire.png";
				alt = "Champ obligatoire composé uniquement de chiffres";
				break;
			case "chiffreNonVideNonNul":
				src = "obligatoire.png";
				alt = "Champ obligatoire composé uniquement de chiffres et non nul ";
				break;
			case "chiffre":
				src = "question.png";
				alt = "Champ composé uniquement de chiffres";
				break;
			case "pourcentage":
				src = "obligatoire.png";
				alt = "Champ obligatoire composé uniquement de chiffres et inférieur à 100";
				break;
			case "codePostalNonVide":
				src = "obligatoire.png";
				alt = "Champ obligatoire composé de 5 chiffres"; 
				break;
			case "dateNonVide":
				src = "obligatoire.png";
				alt = "Champ obligatoire au format français JJ/MM/AAAA";
				break;
			case "comboNonVide":
				src = "obligatoire.png";
				alt = "Choisissez au moins un élément dans la liste";
				break;
			case "telephone":
				break;
			default:
		}
		var $img = $("<img/>");
		$img.attr("src", adminImg+src)
			.attr("alt", alt)
			.attr("title", alt)
			.show();
		$("#"+variable+"_titre").after($img);
	}
}

// rajoute un picto aux champs pour informer sur la possibilité de les remplir ou pas
function identifieChampsInfos(){
	for (var i=0; i<champsInfos.length; i++) {
		var variable = champsInfos[i][0];
		var info = champsInfos[i][1];
		
		var alt = "";
		var src = "";

		switch (info){
			case "intervalleComplet":
				src = "help2.png";
				alt = "Laissez vide pour afficher tout le temps, sinon ne sera affiché qu'entre les deux dates";
				break;
			case "periodicite":
				src = "help2.png";
				alt = "% des horaires par semaine";
				break;
			case "ajoutVille":
				src = "help2.png";
				alt = "Si la ville n'existe pas, il faut la rajouter en cliquant sur le '+'";
				break;
			case "selectionMultiple":
				src = "help2.png";
				alt = "Vous pouvez en sélectionner plusieurs en maintenant la touche Ctrl appuyée et en cliquant sur les éléments désirés";
				break;
			case "téléphone":
				src = "help2.png";
				alt = "Format XX XX XX XX XX (sera reformaté derrière)";
				break;
			case "pieceJointe":
				src = "help2.png";
				alt = "Cochez pour joinde la pièce jointe / décochez sinon";
				break;			
		}
		var $img = $("<img/>");
		$img.attr("src", adminImg+src)
			.attr("alt", alt)
			.attr("title", alt)
			.show();
		$("#"+variable+"_titre").after($img);
	}
}




