$(document).ready(function(){
	var validrules = {
        nameFirst: "required",
        nameLast: "required",
        password: {
            required: true,
            minlength: 4
        },
        passwordConfirm: {
            required: true,
            minlength: 4,
            equalTo: "#password"
        },
        email: {
            required: true,
            email: true,
			remote: {
				url: "/get/user/",
				type: "get"
			}
        },
        emailConfirm: {
            required: true,
            equalTo: "#email"
        },
		dob: {
			required: true,
			dateISO: true
		},
        address: "required",
        city: "required",
		state: "required",
        zip: "required",
		country: "required",
        gender: "required"
    };
	var validmessages = {
        nameFirst: {
			required: "Enter your First Name"
		},
        nameLast: {
			required: "Enter your Last Name"
		},
        email: {
            required: "Please Enter a valid Email Address",
			email: "Please Enter a valid Email Address",
			remote: $.format("{0} is already taken, if you forgot your password use the forgot password link on top")
        },
        emailConfirm: {
            required: "Repeat your email",
            equalTo: "Enter the same email as above"
        },
        password: {
            required: "Provide a password",
            rangelength: $.format("Enter at least {0} characters")
        },
        passwordConfirm: {
            required: "Repeat your password",
            minlength: $.format("Enter at least {0} characters"),
            equalTo: "Enter the same password as above"
        },
		dob: {
			required: "Please Select a Date",
			dateISO: "You did not provide a valid date"
		},
        address: "Enter your Address",
        city: "Enter Your City",
        state: "Enter Your State",
        zip: "Enter Your Zip Code",
        country: "What Country Are you From?",
        gender: "Please Select your Gender"
    };
	var onValidateError = function(error, element){
        if ($(element).is("select")) {
            $(element).parent().parent().parent().children(".errorLabel").prepend(error);
            $(element).parent().parent().parent().children(".errorLabel").show();
        } else {
			if($(element).attr('name') == "dob"){
				$(element).parent().parent().parent().parent().children(".errorLabel").prepend(error);
				$(element).parent().parent().parent().parent().children(".errorLabel").show();
			}else{
				$(element).parent().parent().parent().children(".errorLabel").prepend(error);
				$(element).parent().parent().parent().children(".errorLabel").show();
			}
        }
    }
	var onValidateSuccess = function(label){
        $(label).parent().parent().children(".errorLabel").hide();
    }
	var validatePackage = {
		rules: validrules,
        messages: validmessages,
        errorPlacement: onValidateError,
        success: onValidateSuccess
	}
    var validator = $("#signup").validate(validatePackage);
	$("#dob").datepicker({
		changeMonth: true,
		changeYear: true,
		showStatus: true,
		yearRange: '1920:1997',
		dateFormat: 'yy-mm-dd',
		onSelect: function(date) {
			$('#dob').val(date);
	    }
    });
    $("select[name='country']").change(function(){
		var cid = $(this).attr('value');
		$.get('/get/utils?cid='+cid, function(data){
			$('#state').attr('disabled', 'false');
			$('#state').parent().html(data)
        });
	});
	var populateinistate = function(){
		$.get('/get/utils?cid=US', function(data){
			$('#state').attr('disabled', 'false');
			$('#state').parent().html(data)
        });
	}
	populateinistate();
});
