$().ready(function() {
          // validate the comment form when it is submitted
          $("#signupForm").validate();
          
          // validate signup form on keyup and submit
          $("#rezerwacja").validate({
               rules: {
                    firstname: "required",
                    lastname: "required",
                    username: {
                         required: true,
                         minlength: 2
                    },
                    name: {
                         required: true,
                         minlength: 3
                    },
                    phone: {
                         required: true,
                         digits: true,
                         minlength: 9,
                    },
                    cars: {
                         required: true,
                         digits: true,
                         minlength: 1
                    },
                    pers: {
                         required: true,
                         digits: true,
                         minlength: 1
                    },
                    from_h: {
                         max: 24
                    },
                    from_m: {
                         max: 60
                    },
                    to_h: {
                         max: 24
                    },
                    to_m: {
                         max: 60
                    },
                    password: {
                         required: true,
                         minlength: 5
                    },
                    confirm_password: {
                         required: true,
                         minlength: 5,
                         equalTo: "#password"
                    },
                    email: {
                         email: true
                    },
                    topic: {
                         required: "#newsletter:checked",
                         minlength: 2
                    },
                    agree: "required"
               },
               messages: {
                    firstname: "Please enter your firstname",
                    lastname: "Please enter your lastname",
                    username: {
                         required: "Please enter a username",
                         minlength: "Your username must consist of at least 2 characters"
                    },
                    phone: {
                         required: "Wprowadź numer telefonu.",
                         digits: "Tylko cyfry",
                         minlength: "Numer powinien zawierać minimum 9 cyfr.",
                    },
                    name: {
                         required: "Wprowadź imię i nazwisko.",
                         minlength: "Wprowadź przynajmniej 3 znaki",
                    },
                    cars: {
                         required: "Wprowadź liczbę samochodów.",
                         digits: "Tylko cyfry.",
                    },
                    from_h: {
                         max: "Wprowadz godzinę przyjazdu"
                    },
                    from_m: {
                         max: "Wprowadz minuty przyjazdu"
                    },
                    to_h: {
                         max: "Wprowadz godzinę przylotu"
                    },
                    to_m: {
                         max: "Wprowadz minuty przylotu"
                    },
                    pers: {
                         required: "Wprowadź liczbę osób.",
                         digits: "Tylko cyfry.",
                    },
                    password: {
                         required: "Please provide a password",
                         minlength: "Your password must be at least 5 characters long"
                    },
                    confirm_password: {
                         required: "Please provide a password",
                         minlength: "Your password must be at least 5 characters long",
                         equalTo: "Please enter the same password as above"
                    },
                    email: "Wprowadź poprawny adres e-mail",
                    agree: "Please accept our policy"
               }
          });
          
          // propose username by combining first- and lastname
          $("#username").focus(function() {
               var firstname = $("#firstname").val();
               var lastname = $("#lastname").val();
               if(firstname && lastname && !this.value) {
                    this.value = firstname + "." + lastname;
               }
          });
          
          //code to hide topic selection, disable for demo
          var newsletter = $("#newsletter");
          // newsletter topics are optional, hide at first
          var inital = newsletter.is(":checked");
          var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
          var topicInputs = topics.find("input").attr("disabled", !inital);
          // show when newsletter is checked
          newsletter.click(function() {
               topics[this.checked ? "removeClass" : "addClass"]("gray");
               topicInputs.attr("disabled", !this.checked);
          });
     });
