$(document).ready(function() {
	function createElement(element,elemType,className) {
		var classAttr

		classAttr = element.next("" + elemType + "." + className + "").attr("className")
		// do we need to add an element
		if ( !classAttr ) {
			$('<' + elemType + '></' + elemType + '>').addClass(className).insertAfter(element.parent().children("input:last, select:last"))
		}
	};

	// validate signup form on keyup and submit
	$("form[@name=Register_Form]").validate({
		/*errorElement: "em",
		errorContainer: $("#warning, #summary"),
		errorPlacement: function(error, element) {
			createElement(element,"span","error")
			error.appendTo( element.next("span.error") );
		},*/
		rules: {
			Email: {
				required: true,
				email: true
			},
			Password: {
				required: true,
				minlength: 6
			},
			PasswordConfirm: {
				required: true,
				minlength: 6,
				equalTo: "#Password"
			},
			SecretQuestion: "required",
			SecretAnswer: "required",
			MemberType: "required",
			Membership: "required",
			Terms: "required"
		},
		messages: {
			Email: {
				required: "An email address must be entered",
				email: "This field needs to be a valid email address"
			},
			Password: {
				required: "You must enter a password for your account",
				minlength: "The minimum length for your password is 6 characters"
			},
			PasswordConfirm: {
				required: "You must confirm your password",
				minlength: "The minimum length for your password is 6 characters",
				equalTo: "Your Password confirmation must be the same as your selected password"
			},
			SecretQuestion: "You must select a secret question",
			SecretAnswer: "You must supply an answer to your secret question",
			MemberType: "Please select whether you are a musician or a band",
			Membership: "Please select which membership type you require",
			Terms: "You must agree to our terms and conditions before registering"
		}
	});

	// Band form link click
	$(".band_form_link").click(function() {
		$("#BState").rules("add", "required")
		$("#BSuburb").rules("add", "required")
		$("#BRegion").rules("add", "required")
		$("#BName").rules("add", "required")
		$("#BFirstName").rules("add", "required")
		$("#BLastName").rules("add", "required")

		$("#MState").rules("remove")
		$("#MSuburb").rules("remove")
		$("#MRegion").rules("remove")
		$("#MName").rules("remove")
		$("#MFirstName").rules("remove")
		$("#MLastName").rules("remove")

		$(".MemberType").val($(".band-id").val())
	});

	// Musician form link click
	$(".musician_form_link").click(function() {
		$("#MState").rules("add", "required")
		$("#MSuburb").rules("add", "required")
		$("#MRegion").rules("add", "required")
		$("#MName").rules("add", "required")
		$("#MFirstName").rules("add", "required")
		$("#MLastName").rules("add", "required")

		$("#BState").rules("remove")
		$("#BSuburb").rules("remove")
		$("#BRegion").rules("remove")
		$("#BName").rules("remove")
		$("#BFirstName").rules("remove")
		$("#BLastName").rules("remove")

		$(".MemberType").val($(".musician-id").val())
	});
});
