$(document).ready(function(){
	jQuery.validator.setDefaults({success: "valid"});
	$('#country').change(
		function(){
			var val = $('#country option:selected').val();
			$.get('ajax.php?action=regions&cid='+val,
				function(d){
					$('#regions').html(d);
				});	
		});
		
	jQuery.validator.addMethod("phone", function(phone_number, element) {
	    phone_number = phone_number.replace(/[\(\)\.\-\+\ ]/g, '');
		return this.optional(element) || phone_number.length > 9 &&
			phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/);
	}, "Please specify a valid phone number");

	$("#profile").validate({
		submitHandler:function(form){
			if(!errors){
				$('#li').animate({height:'show'});
				var values = $('#profile').serialize();
				var account = $("input[@name='account']:checked").val();
				$('html, body').animate({scrollTop:0}, 'fast');
				$("#response").html('');
				$('#form-container').animate({height:'hide'},
					function (){
						$('#loader').fadeIn(
							function(){
								if(account == 2){
										$.getJSON('register.php', values,
											function(d){
												$('#loader').fadeOut(
													function(){
														$("#response").html(d.msg);
														$('#response').animate({height:'show'});
														$('#li').animate({height:'hide'});
													});
											});
									} else {
										$.get('register.php', values,
											function(d){
												$("#form-container").show();
												$("#loader").hide();
												$("#form-container").html(d);
											},'script');
									}
							});
					});
				} else {
					Functions.validate('name');
					Functions.validate('email');
					Functions.validate('phone');
					$('#errored').html('Please fix errors');
				}
			
		},
		rules: {
			name: {
				required: true,
				minlength: 3
			},
			email: {
				required: true,
				email: true
			},
			phone: {
				required: true,
				phone: true
			},
			pwd: {
				required: true
			},
			cpwd: {
				required: true,
				equalTo: "#pwd"
			},
			address: {
				required: true
			},
			city: {
				required: true
			},
			zip: {
				required: true
			}
		}
	});
});
