function controlVide(input){
  // fonction renvoyant true si l'input passé en paramètre
  // est vide false sinon  
  if (input.value == ""){
    return true;
  } else {
    return false;
  }
}

function verif_date(date)
{
var regex = new RegExp("[/-]");
var date = date.split(regex);
var nbJours = new Array('',31,28,31,30,31,30,31,31,30,31,30,31);
var result = true;

if ( date['2']%4 == 0 && date['2']%100 > 0 || date['2']%400 == 0 )
nbJours['2'] = 29;

if( isNaN(date['2']) )
result=false;

if ( isNaN(date['1']) || date['1'] > 12 || date['1'] < 1 )
result=false;

if ( isNaN(date['0']) || date['0'] > nbJours[Math.round(date['1'])] || date['0'] < 1 )
result=false;

return result;
}

function printElem(elem,text){ 
  // fonction affichant le texte text dans l'élément d'id elem 
  // (fonction prévue pour les div)
  document.getElementById(elem).innerHTML = text;
}

function controlForm(formulaire) {
  // fonction controlant le contenu du formulaire passé en paramètre
  
  // on suppose qu'il n'y a pas d'erreur
  error = 0;
  
  // controle du mail et/ou du téléphone
  if ((controlVide(document.formulaire.email)) && (controlVide(document.formulaire.tel))){
    printElem('errorEmail','Vous devez au moins saisir un numéro de téléphone ou un Email');
	error++;
  } else {
    printElem('errorEmail','');
  }
    
  // controle du libelle
  if (controlVide(document.formulaire.libelle)){
    printElem('errorLibelle','Le champ libellé ne peut pas être vide');
	error++;
  } else {
    printElem('errorLibelle','');
  }
  
  // controle de la date de début
  if (!verif_date(document.formulaire.jdeb.value+'/'+
                  document.formulaire.mdeb.value+'/'+
			      document.formulaire.adeb.value)){
    printElem('errorDateDeb','La date de début n\'est pas correcte');
	error++;
  } else {
    printElem('errorDateDeb','');
  } 
  
  // controle de la date de fin
  if (!verif_date(document.formulaire.jfin.value+'/'+
                  document.formulaire.mfin.value+'/'+
			      document.formulaire.afin.value)){
    printElem('errorDateFin','La date de fin n\'est pas correcte');
	error++;
  } else {
    printElem('errorDateFin','');
  } 
  
  // controle du type d'évènement
  if (controlVide(document.formulaire.litype) && controlVide(document.formulaire.type)){
    printElem('errorType','Veuillez choisir ou saisir un type d\'évènement');
	error++;
  } else {
    printElem('errorType','');
  }
  
  // controle sur les tarifs
    // on ne controle que si on a un tarif payant
	if (document.formulaire.typetarif.value == 'Payant'){
	  // controle du tarif adulte
        if (controlVide(document.formulaire.tarifadulte)){
          printElem('errorTarifAdulte','Le champ tarif adulte ne peut pas être vide');
	      error++;
        } else {
          printElem('errorTarifAdulte','');
        }	  
		
	  // controle du tarif enfant
        if (controlVide(document.formulaire.tarifenfant)){
          printElem('errorTarifEnfant','Le champ tarif enfant ne peut pas être vide');
	      error++;
        } else {
          printElem('errorTarifEnfant','');
        }	
	} else {
	  // sinon on vide les messages d'erreur concernant les tarifs
	  printElem('errorTarifAdulte','');
	  printElem('errorTarifEnfant','');
	}
  
  // controle de la description de l'évènement
  if (controlVide(document.formulaire.infoevent)){
    printElem('errorInfoEvent','Le champ d\'information sur l\'évènement ne peut pas être vide');
	error++;
  } else {
    printElem('errorInfoEvent','');
  } 
  
  // si on a pas d'erreur on envoi le formulaire
  if (error == 0){
    return true;
  } else {
    // sinon on affiche des la div headError un message pour signaler qu'il y a des erreurs
    printElem('headError','<center><img src="./event07/img/warning.png"><h2>Il y a des erreurs dans le formulaire</h2></center>');	
    return false;
  }
}

function askConfirm(text) {
  if(confirm(text)){
    return true;
  } else {
    return false;
  }
}

