$(document).ready(function() {
	
	$.validator.addMethod("alphaDash",
		function(value, element) {
			var ptrn = new RegExp("^[\\w-]+$");
			return ptrn.test(value);
		},
		"Username-ul poate sa contina doar cifre, litere, underscore, si liniute."
	);

	$.validator.addMethod("county",
		function(value, element) {
			return (value != 0);
		},
		"Alegeti Resedinta."
	);

	$.validator.addMethod("bday",
		function(value, element) {
			if (document.reg_form.bday_day.options[document.reg_form.bday_day.selectedIndex].value == 0
				|| document.reg_form.bday_month.options[document.reg_form.bday_month.selectedIndex].value == 0
				|| document.reg_form.bday_year.options[document.reg_form.bday_year.selectedIndex].value == 0
			) {
				return false;
			}
			return true;
		},
		"Specificati Data nasterii."
	);

	$.validator.addMethod("check",
		function(value, element) {
			return (element.checked);
		},
		"Trebuie sa fiti de acord cu termenii si conditiile site-ului."
	);

	
    var validator = $("#reg_form").validate({

        rules: {
            username: {
                required: true,
				minlength: 4,
				maxlength: 20,
				alphaDash: true,
                //remote: "register/validate.html?v=username"
				remote: "register/validate/?v=username"
            },
            email: {
                required: true,
                email: true,
                //remote: "register/validate.html?v=email"
				remote: "register/validate/?v=email"
            },
            password: {
				required: true,
				minlength: 4,
                maxlength: 20
			},
			passwordc: {
				required: true,
				equalTo: "#password"
			},
			firstname: {
				required: true,
				minlength: 2,
                maxlength: 50
			},
			lastname: {
				required: true,
				minlength: 2,
                maxlength: 50
			},
			county: {
				county: true
			},
			bday_year: {
				bday: true
			},
			term_and_cond: {
				check: true
			}
        },

        messages: {
            username: {
                required: "Completati Username-ul.",
				minlength: "Minim 4 caractere.",
                maxlength: "Maxim 20 de caractere.",
                remote: jQuery.format("{0} este deja ocupata.")
            },
            email: {
                required: "Introduceti o adresa de email valida.",
                email: "Introduceti o adresa de email valida.",
                remote: jQuery.format("{0} este deja ocupata.")
            },
            password: {
				required: "Completati Parola.",
				minlength: "Minim 4 caractere.",
                maxlength: "Maxim 20 de caractere."
			},
			passwordc: {
				required: "Completati Parola de confirmare.",
				equalTo: "Parola de confirmare trebuie sa coincida cu Parola."
			},
			firstname: {
				required: "Completati Prenumele.",
				minlength: "Minim 2 caractere.",
                maxlength: "Maxim 50 de caractere."
			},
			lastname: {
				required: "Completati Numele.",
				minlength: "Minim 2 caractere.",
                maxlength: "Maxim 50 de caractere."
			},
			county: {
				required: "Completati Resedinta."
			}
        },

        // the errorPlacement has to take the layout into account
        errorPlacement: function(error, element) {
            error.appendTo( element.parent().parent().next() );
        }
    });
});
