$(document).ready( function() {
	
	$.validator.setDefaults( {
		
		submitHandler: function(form) {
			
			if($(form).hasClass('settings') && 
				$(form).find('option:selected[value=3]').length && 
				!confirm('Weet je zeker dat je de deelnemer(s) wilt verwijderen?')
			) return; // ...
			
			if($(form).hasClass('reset') && 
				!confirm('Weet je zeker dat je de bierlijst en/of bierchat wilt resetten?\n\nDe daarbijhorende data zal dan verloren gaan!')
			) return; // ...
			
			form.submit();
			
		}
		
	} );
	
	$.validator.addMethod(
		
		'regex',
		
		function(value, element, regexp) {
			
			var check = false;
			var re = new RegExp(regexp);
			
			return this.optional(element) || re.test(value);
			
		},
		
		'Check format'
		
	);
	
	/*
	$.validator.addMethod(
		
		'tmp',
		
		function(value, element) {
			alert('tmp');
		},
		
		'tmp'
		
	);
	*/
	
	var validator = $('#form').validate( {
		
		debug: false,
		
		errorContainer: $('.form-error'),
		
		errorElement: 'em',
		
		errorPlacement: function(error, element) {
			
			error.prependTo(element.parents('.formfield'));
			
		},
		
		showErrors: function() {
			
			this.defaultShowErrors();
			
			if(!$('.formfield em').not(':empty, :hidden').length) 
				$('.form-error').hide();
			
		},
		
		rules: {
			lijst_name: {
				required: true,
				minlength: 3,
				maxlength: 30
			},
			address: {
				required: true,
				regex: /^[a-z][a-z-]{1,14}[a-z]$/
			},
			email: {
				required: true,
				email: true
			},
			conditions: {
				required: true
			},
			name: {
				required: true,
				maxlength: 10
			},
			mobile: {
				regex: /^(06\d{8})?$/
			},
			password: {
				minlength: 8
			},
			password_confirm: {
				equalTo: '#password'
			},
			order_id: {
				required: true
			},
			tick_id: {
				required: true
			},
			reset_id: {
				required: true
			},
			user_id: {
				required: true
			},
			producer_id: {
				required: true
			},
			product_id: {
				required: true
			},
			amount: {
				required: true,
				regex: /^[1-9]([0-9]+)?$/
			},
			price_unit: {
				required: true,
				regex: /^[0-9]+(\.[0-9]{2})?$/
			}
		},
		
		messages: {
			lijst_name: {
				required: 'Vul een Bierlijst naam in',
				minlength: 'De naam moet uit minimaal 3 tekens bestaan',
				maxlength: 'De naam mag uit maximaal 30 tekens bestaan'
			},
			address: {
				required: 'Vul een webadres in',
				regex: 'Vul een geldig webadres adres in'
			},
			email: {
				required: 'Vul een emailadres in',
				email: 'Vul een geldig emailadres in'
			},
			conditions: {
				required: 'Accepteer de voorwaarden als je wilt registreren'
			},
			name: {
				required: 'Vul een (bij)naam in',
				maxlength: 'Vul een geldige (bij)naam in'
			},
			mobile: {
				regex: 'Vul een geldig mobiel nummer in'
			},
			password: {
				required: 'Vul een wachtwoord in',
				minlength: 'Vul een geldig wachtwoord in'
			},
			password_confirm: {
				equalTo: 'Herhaal het wachtwoord'
			},
			order_id: {
				required: 'Kies een sorteer optie'
			},
			tick_id: {
				required: 'Kies een streep optie'
			},
			reset_id: {
				required: 'Kies een reset optie'
			},
			user_id: {
				required: 'Kies een deelnemer'
			},
			producer_id: {
				required: 'Kies het merk'
			},
			product_id: {
				required: 'Kies het product'
			},
			amount: {
				required: 'Voer het aantal in',
				regex: 'Vul een geldig aantal in'
			},
			price_unit: {
				required: 'Voer de prijs in',
				regex: 'Vul een geldige prijs in'
			}
		}
		
	} );
	
	$('#form .submit').click( function() {
		$('#form').submit();
	} );
	
	$('#form input[type=text], #form input[type=password]').keypress( function(e) {
		
		if((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) 
			$('#form').submit();
		
	} );  
	
	$('#form .cancel').click( function() {
		
		// validator.resetForm();
		
		document.location.href = '/';
		
		return false;
		
	} );
	
	/*
	$("#form").delegate('change', 'select.tmp', function() {
		
		alert($(this).attr('name'));
		
	} );
	*/
	
} );
