/*
  Forms of the application are : 
    - registerForm, loginForm, createProAccountForm
    - refisterProForm
    - alertForm
    
    - registerAppliForm
    - register
*/

var items_fr = new Array();
items_fr["name"]    = "votre nom";
items_fr["object"]  = "l'objet";
items_fr["date_1"]    = "la 1ière date";
items_fr["checkPass"] = "le mot de passe";    //fictive, not in a form
items_fr["message"]   = "le message";
items_fr["email"]     = "d'email";
items_fr["myEmail"]   = "votre email";
items_fr["firstname"] = "votre prénom";
items_fr["password"]  = "le mot de passe";
items_fr["password_2"]= "le 2e mot de passe";
items_fr["email_1"]     = "l'email du 1ier destinataire";
items_fr["prettyName"]  = "de titre pour le fichier";
items_fr["file"] = "de fichier. Cliquez sur le bouton Parcourir pour en ajouter un.";
items_fr["comment"] = "de commentaire";
items_fr["pseudo"] = "de pseudo";
items_fr["confirm"]     = "la confirmation";
items_fr["title"] = "de titre";
items_fr["agreement"] = "les conditions générales d'utilisation"
items_fr["company"] = "le nom de votre société"

var items_en = new Array();
items_en["name"]    = "your name";
items_en["object"]  = "the object";
items_en["date_1"]    = "the first date";
items_en["checkPass"] = "the password";    //fictive, not in a form
items_en["message"]   = "the message";
items_en["email"]     = "an email";
items_en["myEmail"]   = "your email";
items_en["firstname"] = "your firstname";
items_en["password"]  = "the password";
items_en["password_2"]= "the second password";
items_en["email_1"]     = "the email of your first friend";
items_en["prettyName"]  = "a title for the file";
items_en["file"] = "de fichier. Cliquez sur le bouton Parcourir pour en ajouter un.";
items_en["comment"] = "a comment";
items_en["pseudo"]  = "a pseudo";
items_en["confirm"] = "the confirmation";
items_en["title"] = "a title";
items_en["agreement"] = "the general usage conditions"
items_en["company"] = "the name of your company"

var items = new Array();
items["fr"] = items_fr;
items["en"] = items_en;

var errorsLabels_fr = new Array();
errorsLabels_fr["ERROR_ON_PASSWORD"] = "Le mot de passe est incorrect !";
errorsLabels_fr["ERROR_NOT_SAME_PASSWORD"] = "Les deux mots de passe ne sont pas identiques !";
errorsLabels_fr["ERROR_SAME_NAME"] = "Il existe un répondant du même nom (ajoutez par exemple un numéro à votre nom) !";
errorsLabels_fr["ERROR_ACCOUNT_CREATION"] = "Il existe déjà un compte pour cet email !";
errorsLabels_fr["ERROR_MAIL_ACCOUNT_CREATION"] = "Votre demande de compte a bien été enregistrée mais il est survenu un problème lors de l'envoi de mail. Merci de nous contacter.";
errorsLabels_fr["ERROR_MAIL_NOT_ADDED"] = "Vous devez valider l'email que vous avez saisi avec la touche 'Entrée' ou en cliquant sur le +";
errorsLabels_fr["ERROR_NO_MAIL"] = "Vous devez saisir au moins un email de destinataire";
errorsLabels_fr["ERROR_MAIL_COMMENT"] = "Vous avez déjà commenté ce diapMe il y a peu. Attendez un peu !";
errorsLabels_fr["ERROR_PROCESS_RUNNING"] = "Les données envoyées sont en cours de traitement. Attendez un peu !";
errorsLabels_fr["UNDEFINED_ERROR"] = "Une erreur non déterminée s'est produite.";
errorsLabels_fr["ERROR_PRO_REQUEST"] = "Une erreur s'est produite lors de l'enregistrement de votre demande. Veuillez réessayer ultérieurement.";

var errorsLabels_en = new Array();
errorsLabels_fr["ERROR_NO_MAIL"] = "You must at least fill one friend's email";
errorsLabels_fr["UNDEFINED_ERROR"] = "An undefined error has happened";

var errorsLabels = new Array();
errorsLabels["fr"] = errorsLabels_fr;
errorsLabels["en"] = errorsLabels_en;

var mandatory = new Array();
mandatory["alertForm_contact"] = new Array("message","email");
mandatory["alertForm_abuse"] = new Array("message","email");
mandatory["alertForm_viral"]   = new Array("message", "email_1", "email");
mandatory["loginForm"] = new Array("email", "password");
mandatory["registerAppliForm"] = new Array("email");
mandatory["registerForm"] = new Array("firstname", "password", "password_2", "agreement");
mandatory["addVideoForm"] = new Array("prettyName", "file");
mandatory["addAudioForm"] = new Array("prettyName", "file");
mandatory["addCommentU"] = new Array("pseudo", "comment");
mandatory["addCommentP"] = new Array();
mandatory["changePassword"] = new Array("password", "password_2");
mandatory["unregister"] = new Array("confirm");
mandatory["personalDataForm"] = new Array("firstname", "email");
mandatory["newDiapmeForm"] = new Array("title"); 
mandatory["invitationPublish"] = new Array("myEmail");
mandatory["newEmail"] = new Array("email");   //onClick
mandatory["createProAccountForm"] = new Array("email", "password", "name", "firstname");

var labelsDictionary_fr = new Array();
labelsDictionary_fr["YOUR_EMAIL_INVALID"] = "Votre email n'est pas valide.";
labelsDictionary_fr["THIS_EMAIL_INVALID"] = "Cet email n'est pas valide.";
labelsDictionary_fr["EMAIL_1_INVALID"] = "L'email 1 n'est pas valide.";
labelsDictionary_fr["EMAIL_2_INVALID"] = "L'email 2 n'est pas valide.";
labelsDictionary_fr["EMAIL_3_INVALID"] = "L'email 3 n'est pas valide.";
labelsDictionary_fr["EMAIL_4_INVALID"] = "L'email 4 n'est pas valide.";
labelsDictionary_fr["EMAIL_5_INVALID"] = "L'email 5 n'est pas valide.";

var labelsDictionary_en = new Array();
labelsDictionary_en["YOUR_EMAIL_INVALID"] = "Your email is not valid.";
labelsDictionary_en["THIS_EMAIL_INVALID"] = "This email is not valid.";
labelsDictionary_en["EMAIL_1_INVALID"] = "The email 1 is not valid.";
labelsDictionary_en["EMAIL_2_INVALID"] = "The email 2 is not valid.";
labelsDictionary_en["EMAIL_3_INVALID"] = "The email 3 is not valid.";
labelsDictionary_en["EMAIL_4_INVALID"] = "The email 4 is not valid.";
labelsDictionary_en["EMAIL_5_INVALID"] = "The email 5 is not valid.";

var labelsDictionary = new Array();
labelsDictionary["fr"] = labelsDictionary_fr;
labelsDictionary["en"] = labelsDictionary_en;

var format = new Array();
format["invitationPublish"] = new Array( ["myEmail",EMAIL, "YOUR_EMAIL_INVALID"] );
format["newEmail"] = new Array( ["email",EMAIL, "THIS_EMAIL_INVALID"] );

format["alertForm_contact"] = new Array( ["email",EMAIL, "YOUR_EMAIL_INVALID"] );
format["alertForm_abuse"] = new Array( ["email",EMAIL, "YOUR_EMAIL_INVALID"] );
format["addCommentP"] = new Array( ["email",EMAIL, "THIS_EMAIL_INVALID"] );
format["addCommentU"] = new Array( ["email",EMAIL, "THIS_EMAIL_INVALID"] );

format["alertForm_viral"] = new Array( ["email",EMAIL, "YOUR_EMAIL_INVALID"], 
      ["email_1",EMAIL, "EMAIL_1_INVALID"], ["email_2",EMAIL, "EMAIL_2_INVALID"], ["email_3",EMAIL, "EMAIL_3_INVALID"],
      ["email_4",EMAIL, "EMAIL_4_INVALID"], ["email_5",EMAIL, "EMAIL_5_INVALID"] );

format["loginForm"] = new Array( ["email",EMAIL, "THIS_EMAIL_INVALID"] );
format["registerAppliForm"] = new Array( ["email",EMAIL, "THIS_EMAIL_INVALID"] );
format["personalDataForm"] = new Array( ["email",EMAIL, "YOUR_EMAIL_INVALI"],
          ["birthYear", INTEGER, "Votre année de naissance n'est pas valide."]    );
format["createProAccountForm"] = new Array( ["email",EMAIL, "THIS_EMAIL_INVALID"] );        

var specificFunction = new Array();
specificFunction["registerForm"] = checkSamePassword;
specificFunction["changePassword"] = checkSamePassword;
specificFunction["invitationPublish"] = checkPublicationMail;
specificFunction["addCommentP"] = checkCommentForm;
specificFunction["uploadcontent"] = checkUploadForm;


//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
//  Specific functions
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

function checkSamePassword(theForm, language, errorDiv)
//=====================================================
{
  var val1 = theForm["password"].value;
  var val2 =  theForm["password_2"].value;
  if( val1 != val2 )
  {
    displayError( errorsLabels[language]["ERROR_NOT_SAME_PASSWORD"] , errorDiv);
    theForm["password"].focus();
    return false;
  }
  return true;
}

function checkPublicationMail(theForm, language, errorDiv)
//========================================================
{
  var theEmail = trimAll(theForm.email.value);
  if( theEmail != "" )
  {
    displayError( errorsLabels[language]["ERROR_MAIL_NOT_ADDED"] , "errorMessageMail");
    theForm.email.focus();
    return false;
  }
  return true;
}

function checkCommentForm(theForm, language, errorDiv) {
//=======================================================

    if (trimAll(theForm["pseudo"].value) == '' && !theForm["pseudo"].disabled) {
      displayError(ERROR_NO_PSEUDO,errorDiv)
      return false
    }
    if (trimAll(theForm["comment"].value) == '' && !theForm["comment"].disabled) {
      displayError(ERROR_NO_COMMENT,errorDiv)
      return false
    }
    if (trimAll(theForm["email"].value) == '' && !theForm["email"].disabled) {
      displayError(ERROR_NO_EMAIL,errorDiv)
      return false
    }
    
    if (theForm["email"].value.search(regex[EMAIL]) == -1 && !theForm["email"].disabled) {
      displayError(ERROR_BAD_EMAIL,errorDiv)
      return false
    }
 
  return true;

}

function checkUploadForm(theForm, language, errorDiv)
//===================================================
{
  var isError = false;
  var filesNum = 0;
  clearError(errorDiv)
  clearError(errorDiv+'1');
  clearError(errorDiv+'2');
  clearError(errorDiv+'3');
  clearError(errorDiv+'4');
  clearError(errorDiv+'5');
  
  for (var i = 1; i < 6; i++) {
    if (trimAll(theForm["file_"+i].value) != '') {
      filesNum++;
    }
  }
  
  if (trimAll(theForm["prettyName_1"].value) == '' && theForm["file_1"].value != '') {
      displayError(noText[language]+' '+items[language]["prettyName"],errorDiv+'1')
      isError = true;
  }
  if (trimAll(theForm["prettyName_2"].value) == '' && theForm["file_2"].value != '') {
      displayError(noText[language]+' '+items[language]["prettyName"],errorDiv+'2')
      isError = true;
  }
  if (trimAll(theForm["prettyName_3"].value) == '' && theForm["file_3"].value != '') {
      displayError(noText[language]+' '+items[language]["prettyName"],errorDiv+'3')
      isError = true;
  }
  if (trimAll(theForm["prettyName_4"].value) == '' && theForm["file_4"].value != '') {
      displayError(noText[language]+' '+items[language]["prettyName"],errorDiv+'4')
      isError = true;
  }
  if (trimAll(theForm["prettyName_5"].value) == '' && theForm["file_5"].value != '') {
      displayError(noText[language]+' '+items[language]["prettyName"],errorDiv+'5')
      isError = true;
  }
  if(filesNum == 0) {
    displayError(ERROR_NO_FILES, errorDiv);
    return false;
  }
  
  if (isError == true)
    return false;
  
  if (filesNum > 1)
    return confirm('Vous avez demandé le téléchargement de plusieurs fichiers. Cette opération peut être longue (plusieurs minutes). Voulez-vous continuer ?')
  
  return true;
}


