// Fonction de validation d'un commentaire (saisie de caractères + longueur du champ)
function validerCommentaire() {

 	// Cas où l'utilisateur a validé le formulaire en remplissant le champ du commentaire
  	if( document.getElementById( 'formCommentez' ).commentaire.value != "" ) {

  		// Cas où l'utilisateur a saisi un commentaire trop court
  		if( document.getElementById( 'formCommentez' ).commentaire.value.length < 20 ) {

  			alert( 'Vous avez saisi ' +document.getElementById( 'formCommentez' ).commentaire.value.length +' caractères pour votre commentaire alors qu\'il doit avoir une longueur de 20 caractères au minimum.\nVeuillez compléter votre commentaire avant de le soumettre à nouveau.' );
  			return false;

  		}
  		else if( document.getElementById( 'formCommentez' ).commentaire.value.length > 500 ) {

  			alert( 'Vous avez saisi ' +document.getElementById( 'formCommentez' ).commentaire.value.length +' caractères pour votre commentaire alors qu\'il doit avoir une longueur de 500 caractères au maximum.\nVeuillez réduire votre commentaire avant de le soumettre à nouveau.' );
  			return false;

  		}

		// Cas où le commentaire est valide et qu'on peut soumettre le formulaire
		document.getElementById( 'formCommentez' ).submit();
		return true;

  	}
	else {

		alert( 'Attention, pour poster un commentaire, vous devez remplir le champ correspondant.' );
		return false;

	}

}


// Fonction de validation d'un sondage (saisie d'une proposition)
function validerSondage() {

	// Initialisations
	var formulaireOk = false;
	var position = 0;

	// Parcours de tous les éléments du formulaire
	while( position < document.getElementById( 'formSondage' ).length ) {

		// Cas où une case est cochée
        if( document.getElementById( 'formSondage' ).elements[position].checked ) {

			formulaireOk = true;
			break;

		}

		position++;

	}

	// Cas où une case du formulaire a bien été cochée
	if( formulaireOk == true ) {

		return true;

	}
	else {

		alert( 'Attention, vous devez choisir une proposition pour voter.' );
		return false;

	}

}


// Fonction de validation d'un questionnaire pour les mots fléchés
function validerMotsFleches() {

	// Cas où tous les champs du questionnaire ont bien été remplis
	if( ( document.getElementById( 'formMotsFleches' ).reponse.value != "" ) && ( document.getElementById( 'formMotsFleches' ).nom.value != "" ) && ( document.getElementById( 'formMotsFleches' ).prenom.value != "" ) && ( document.getElementById( 'formMotsFleches' ).adresse.value != "" ) && ( document.getElementById( 'formMotsFleches' ).code_postal.value != "" ) && ( document.getElementById( 'formMotsFleches' ).ville.value != "" ) && ( document.getElementById( 'formMotsFleches' ).email.value != "" ) ) {
		document.getElementById("boutonValide").innerHTML = "Veuillez Patienter...";
		return true;

	}
	else {

		alert( 'Attention, vous devez remplir tous les champs du questionnaire pour valider votre réponse.' );
		return false;

	}

}


// Fonction de validation d'un test de profil (saisie d'une proposition)
function validerTest() {

	// Initialisations
	var formulaireOk = false;
	var position = 0;

	// Parcours de tous les éléments du formulaire
	while( position < document.getElementById( 'quizz_question_form' ).length ) {

		// Cas où une case est cochée
        if( document.getElementById( 'quizz_question_form' ).elements[position].checked ) {

			formulaireOk = true;
			break;

		}

		position++;

	}

	// Cas où une case du formulaire a bien été cochée
	if( formulaireOk == true ) {

		// Cas où le commentaire est valide et qu'on peut soumettre le formulaire
		document.getElementById( 'quizz_question_form' ).submit();
		return true;

	}
	else {

		alert( 'Attention, vous devez choisir une proposition pour passer à la question suivante.' );
		return false;

	}

}


// Fonction de validation d'un élément de navigation des tests (sélection d'un élément)
function validerNavigationTest() {

	// Cas où aucun élément n'a été sélectionné
	if( document.getElementById( 'formNavigationTest' ).testslisting.value ) {

		// Cas où on peut soumettre le formulaire
		document.getElementById( 'formNavigationTest' ).submit();
	}
	else {

		alert( 'Vous devez choisir une rubrique avant de valider votre choix.' );
		return false;

	}

}


// Fonction de validation d'une entrée dans l'agenda (saisie des champs + validité de la date)
function validerAgenda() {

	// Cas où tous les champs obligatoires du formulaire ont bien été remplis
	if( ( document.getElementById( 'formEventInternaute' ).title.value != "" ) && ( document.getElementById( 'formEventInternaute' ).from_time.value != "" ) ) {

		var date = document.getElementById( 'formEventInternaute' ).from_time.value;

		// Récupération des différents éléments de la date
		var tabDate = date.split( "/" );

		// Cas où 3 éléments ne constituent pas la date ou qu'il ne s'agit pas de nombr entiers
   		if( ( tabDate.length != 3 ) || isNaN( parseInt( tabDate[0] ) ) || isNaN( parseInt( tabDate[1] ) ) || isNaN( parseInt( tabDate[2] ) ) ) {

   			alert( 'Attention, vous devez saisir une date valide au format JJ/MM/AAAA pour valider votre évènement.' );
   			return false;

   		}

		// Génération d'une date étalon par Javascript pour tester la validité de la date
		var dateRef = new Date( eval( tabDate[2] ), eval( tabDate[1] ) -1, eval( tabDate[0] ) );
		var annee = dateRef.getYear();

		// Correction de la valeur de l'année quand elle est sur 2 chiffres avec certains navigateurs
		if( ( Math.abs( annee ) +"" ) .length < 4 ) {

			annee = annee + 1900;

		}

		// Cas où la comparaison entre la date étalon et la date saisie est correcte
		if( ( dateRef.getDate() == eval( tabDate[0] ) ) && ( dateRef.getMonth() == eval( tabDate[1] ) -1 ) && ( annee == eval( tabDate[2] ) ) ) {

			return true;

		}
		else {

			alert( 'Attention, vous devez saisir une date valide pour valider votre évènement.' );
   			return false;

		}

	}
	else {

		alert( 'Attention, vous devez remplir les champs titre et date pour valider votre évènement.' );
		return false;

	}

}


function validerNotation() {

	note_article = 0;

		for (i=1; i<=10; i++)
		{
			obj_id = "note_" + i;
			obj = document.getElementById(obj_id);
			if (obj.className == "rect_on") note_article = i;
		}
		document.getElementById( 'formNotez' ).note.value = note_article;
        document.getElementById( 'formNotez' ).submit();

		return true;

}


function validerNotation2(node_id) {

	note_article = 0;

		for (i=1; i<=10; i++)
		{
			obj_id = node_id + "_" + i;
			obj = document.getElementById(obj_id);
			if (obj.className == "rect_on") note_article = i;
		}
		document.getElementById( node_id ).note.value = note_article;
        document.getElementById( node_id ).submit();

		return true;

}

function verifierFormulaire()
    {
	var nomRecette=document.getElementById("searched_recipe_name");
	var diff_1_Recette=document.getElementById("searched_recipe_difficulty_lv_01");
	var diff_2_Recette=document.getElementById("searched_recipe_difficulty_lv_02");
	var diff_3_Recette=document.getElementById("searched_recipe_difficulty_lv_03");
	var budget_1_Recette=document.getElementById("searched_recipe_budget_lv_01");
	var budget_2_Recette=document.getElementById("searched_recipe_budget_lv_02");
	var budget_3_Recette=document.getElementById("searched_recipe_budget_lv_03");

	if (!(budget_1_Recette.checked || budget_2_Recette.checked || budget_3_Recette.checked || diff_1_Recette.checked || diff_2_Recette.checked || diff_3_Recette.checked || (document.getElementById( 'search_cooking_recipe_form' ).elements[1].value != "" )))
		{
		alert("Vous devez selectionner un budget, une difficulté ou entrer un mot clé");
		return false;
		}
	else
	   	return true;
}

// Fonction de validation d'une recette lectrice reporter
function validerRecette() {
	// Verification des champs obligatoire
	if(
		(document.getElementById( 'formRecette' ).titre.value && document.getElementById( 'formRecette' ).autorisation.value)
		&&
		(!document.getElementById('formRecette').temps_de_preparation.value || !isNaN(document.getElementById('formRecette').temps_de_preparation.value))
		&&
		(!document.getElementById('formRecette').temps_de_cuisson.value || !isNaN(document.getElementById('formRecette').temps_de_cuisson.value))
		&&
		(!document.getElementById('formRecette').pour.value || !isNaN(document.getElementById('formRecette').pour.value))
	 )
	 {
 	 	alert("temps preparation correct");
		// On peut soumettre le forumlaire
		document.getElementById( 'formRecette' ).submit();
	}
	else {
		alert( 'Un champ obligatoire est manquant ou au moins un des champs numériques est erroné.' );
		return false;

	}

}