$(document).ready(function(){
	
	function submitForm(){
		
		var data = '';
		$('#roadshow_comp_form input, #roadshow_comp_form select').each(function(e){
			var value = $(this).val().replace(/^\s+|\s+$/g,"");
			if( $(this).attr('type') == 'radio' ){
				data += $(this).attr('checked') != false ? '&' + $(this).attr('name') + '=' + value : '';
			} else if( $(this).attr('type') == 'checkbox' ){
				data += $(this).attr('checked') != false ? '&' + $(this).attr('name') + '=on' : '&' + $(this).attr('name') + '=';
			} else if( value != '' ) {
				data += "&" + $(this).attr('name') + "=" + value;
			}
		});

		$.ajax({
			type: "POST",
			url: "/ajax/roadshow_comp_de.php",
			data: "?" + data,
			success: function(msg){
				$('#roadshow_comp_form').html(msg);
			},
			error: function(msg) {
				$('#roadshow_comp_form').prepend('<p class="error">Sorry, there was an error. Please try again.</p>');
			}
		});
		return false;
	}

	$.validator.addMethod("dateofbirth", function(value, element) {
		var valid = 'true';
		$(element).parent().children('select').each(function(){
			if( $(this).val() == '' ) { valid = 'false' };
		});
		if( valid != 'true' ) { return false; };
		return true;
	}, "Bitte tragen Sie Ihr Geburtsdatum ein.");

	$("#roadshow_comp_form").validate({
		groups: {
			dateofbirth: "dob_day dob_month dob_year"
		},
		rules: {
			first_name: "required",
			last_name: "required",
			dob_day: "dateofbirth",
			email: {
				required: true,
				email: true
			},
			gender: "required",
			address_1: "required",
			address_2: "required",
			postcode: "required",
			city: "required"
		},
		messages: {
			first_name: "Bitte tragen Sie Ihren Vornamen ein.",
			last_name: "Bitte tragen Sie Ihren Nachnamen ein.",
			email: "Bitte tragen Sie eine g&uuml;ltige Emailadresse ein.",
			gender: "Please select your gender",
			address_1: "Bitte tragen Sie den Stra&szlig;ennamen ein.",
			address_2: "Bitte tragen Sie Ihre Hausnr. ein.",
			postcode: "Bitte tragen Sie die Postleitzahl ein.",
			city: "Bitte tragen Sie Ihren Wohnort ein."
		},
		errorElement: "span",
		errorPlacement: function(error, element) {
			if( element.attr("id") == 'dob_day' || element.attr("id") == 'dob_month' || element.attr("id") == 'dob_year' ) {
				error.insertBefore( $('#dob_day').parent() );
			} else {
				error.insertBefore( element.parent() );
			}
		},
		highlight: function(element, errorClass) {
			$(element).addClass('hasError');
		},
		unhighlight: function(element, errorClass) {
			$(element).removeClass('hasError');
		},
		success: function(label) {
			label.remove();
		},
		onclick: false,
		onfocusout: false,
		onkeyup: false,
		submitHandler: function(form){
			submitForm();	
		}
	});
	
});