/* IE Fix : Replace &thinsp; with &nbsp; */
(function(){if(!/*@cc_on!@*/0) return;document.body.innerHTML = document.body.innerHTML.replace(/ /mg,"&nbsp;");})();

(function(){
  
  /* Fields highlight */
  $("#name, #email, #message")
    .focus(function() {
      $(this).parent().addClass("focused");
    })
    .blur(function() {
      $(this).parent().removeClass("focused");
    });
  
  /* Errors */
  var errors = {
    name: 'Vous devez renseigner le champ "Nom".',
    email: 'Vous devez renseigner le champ "Mail".',
    emailValidation: "L’adresse email saisie n’est pas valide."
  };
  
  function getErrorElt(msg) {
    return $('<strong class="error">' + msg + '</strong>').attr("title", msg);
  }
  
  var $name = $("#name");
  var $email = $("#email");
  
  // Name error elt
  if ($name.next().is(".error")) {
    $name.data("emptyError", $name.next());
  } else {
    $name.data("emptyError", getErrorElt(errors["name"]) );
  }
  
  // Email error elts
  if ($email.next().is(".error-empty")) {
    $email.data("emptyError", $email.next());
  } else {
    $email.data("emptyError", getErrorElt(errors["email"]) );
  }
  
  if ($email.next().is(".error-email")) {
    $email.data("emailError", $email.next());
  } else {
    $email.data("emailError", getErrorElt(errors["emailValidation"]) );
  }
  
  // Valid elts
  $name.data("valid", $('<strong class="valid"></strong>'));
  $email.data("valid", $('<strong class="valid"></strong>'));
  
  // Name clear errors
  $name.bind("clearErrors", function(){
    
  });
  
  // Name events
  $name
    .bind("clearErrors", function(){
      $name.parent().removeClass("error");
      $name.data("emptyError").remove();
      $name.data("valid").insertAfter($name);
    })
    .bind("emptyError", function(){
      $name.parent().addClass("error");
      $name.data("valid").remove();
      $name.data("emptyError").insertAfter($name);
    })
    
    .blur(function(){
      if ($name.val() === "") {
        $name.trigger("emptyError");
      } else {
        $name.trigger("clearErrors");
      }
    });
  
  // Email events
  $email
    .bind("clearErrors", function(){
      $email.parent().removeClass("error");
      $email.data("emptyError").remove();
      $email.data("emailError").remove();
      $email.data("valid").insertAfter($email);
    })
    .bind("emptyError", function(){
      $email.parent().addClass("error");
      $email.data("valid").remove();
      $email.data("emailError").remove();
      $email.data("emptyError").insertAfter($email);
    })
    .bind("emailError", function(){
      $email.parent().addClass("error");
      $email.data("valid").remove();
      $email.data("emptyError").remove();
      $email.data("emailError").insertAfter($email);
    })
    
    .blur(function(){
      if ($email.val() === "") {
        $email.trigger("emptyError");
      } else {
        $.post("mailtest.php", { email: $email.val() },
            function(data){
              if (data === "1") {
                $email.trigger("clearErrors");
              } else {
                $email.trigger("emailError");
              }
            });
      }
    });
})();