  $(document).ready(function() {


    $.validator.addMethod("nospaces", function(value, element) {
      return check_regexp(value, new RegExp(/^[A-Za-z0-9\-]*$/));
    }, "No pongas espacios o signos raros en tu nombre usuario. Solo letras y numeros.");

  var dateerror = false;
  var validator = $("#user_form").validate({
    rules: {
      "user[login]": {
        required: true,
        minlength: 5,
        nospaces: true,
        remote: $("#user_validation_link").attr('value')
      },
    "user[password]": {
      required: true,
      minlength: 5
    },
    "user[password_confirmation]": {
      required: true,
      minlength: 4,
      equalTo: "#user_password"
    },
    "user[email]": {
      required: true,
      email: true,
      minlength: 4,
      remote: $("#user_validation_link").attr('value')
    },
    "user[gender]": {
      required: true
    },
    "user[country_id]": {
      required: true
    },
    "user[city]": {
      required: true
    },    
    "date[day]": "required",
    "date[year]": "required",
    "date[month]": "required",
    "user[terms_accepted]": {
      required: true
    }
    },

    messages: {
      "user[login]": {
        required: "Porfavor ingresa un nombre de usuario",
        minlength: jQuery.format("Ingresa al menos {0} characters"),
        remote: jQuery.format("{0} ya esta regsitrado, toma otro nombre")
      },
      "user[password]": {
        required: "Pon tu contraseña",
        rangelength: jQuery.format("Enter at least {0} characters")
      },
      "user[password_confirmation]": {
        required: "Pon la misma contraseña que arriba.",
        equalTo: "Pon la misma contraseña que arriba."
      },
      "user[email]": {
        required: "Pon tu correo",
        email: "Pon un correo valido.",
        remote: jQuery.format("{0} ya esta regsitrado, toma otro email")
      },
      "user[gender]": {
        required: "Eres mujer o hombre?"
      },
      "user[country_id]": {
        required: "En que Pais vives?"
      },
      "city": {
        required: "Pon el nombre de tu ciudad o pueblo. No vamos a mostrar el nombre de tu ciudad en tu perfil."
      },
      "user[terms_accepted]": {
        required: "Debes estar de acuerdo con los terminos de uso."
      },
      "date[day]": {
        required: "¿Cual es el dia de tu cumpleaños?"
      },
      "date[month]": {
        required: "¿Cual es el mes de tu cumpleaños?"
      },
      "date[year]": {
        required: "¿Cual es el año de tu cumpleaños?"
      }
    
    },

    errorPlacement: function(error, element) {
           if(element.attr('id') == "user_terms_accepted"){
             error.appendTo("#termserrors");
           }
           else if(element.attr('id') == "date_day" || element.attr('id') == "date_month" || element.attr('id') == "date_year" && dateerror == false) {
                   error.appendTo("#dateerrors");
                   // alert("now");
                   // dateerror = true;
           } else {
                   error.insertAfter(element);
           }
       },
       
      submitHandler: function(form) {
          $("#loading_facebox").show();
          $("#new_user_button").attr("disabled", true);
          $(form).ajaxSubmit({ 
              success: function(response){
                eval(response);
              }
           });
      }



  });

  });