	$(document).ready(function () {
	
		$("input[type='text']").focus(function () {
			var rowField = $(this).parent().parent();
			$(rowField).css({backgroundColor: '#CCC'});
		});
	
		$("input[type='text']").blur(function () {
			var rowField = $(this).parent().parent();
			$(rowField).css({backgroundColor: '#FFF'});
			var label = $(rowField).find('label');
			if ($(label).hasClass('required') && 
				$.trim($(this).attr('value')) != '') {
				$(this).find(".instructions").show();
				$(this).find(".requiredmsg").remove();
			}
		});


	
		$("input[id='text']").blur(function () {
			var rowField = $(this).parent().parent();
			$(rowField).css({backgroundColor: '#FFF'});
			var label = $(rowField).find('label');
			if ($(label).hasClass('required') && 
				$.trim($(this).attr('value')) != '') {
				$(this).find(".instructions").show();
				$(this).find(".requiredmsg").remove();
			}
		});
	
		$("input[id='homeaddress-same']").change(function () {
		
			var same = $(this).attr('checked');

			$("#businessaddress .inputs input").each(function () {

				var idname = $(this).attr('id').replace('businessaddress-','');
				var element = $("#homeaddress-"+idname);

				if (same) {
					$(element).attr('value',$(this).attr('value'));
				} else {
					$(element).attr('value','');
				}
			});

		});
	
	});



	// prepare the form when the DOM is ready 
	$(document).ready(function() { 

	    var options = { 
	        //target:        '#output1',   // target element(s) to be updated with server response 
	        beforeSubmit:  validate,  // pre-submit callback 
	        success:       showResponse  // post-submit callback 
	 
	        // other available options: 
	        //url:       url         // override for form's 'action' attribute 
	        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
	        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
	        //clearForm: true        // clear all form fields after successful submit 
	        //resetForm: true        // reset the form after successful submit 
 
	        // $.ajax options can be used here too, for example: 
	        //timeout:   3000 
	    }; 
 
	    // bind form using 'ajaxForm' 
	    $('#registration').ajaxForm(options); 

	}); 
 
	// pre-submit callback  

	var errorski = "ERRORS";

	function validate(formData, jqForm, options) { 
		var valid = true;
		if (!generalValidate()) { valid = false; }
		if (!validatePersonal()) { valid = false; }
		if (!validateBusiness()) { valid = false; }
		if (!validateHome()) { valid = false; }
		if (!validateLicense()) { valid = false; }
		if (!validateDemographic()) { valid = false; }
		if (!validateCommittee()) { valid = false; }
		if (!validateDatabase()) { valid = false; }
		if (!validateMembership()) { valid = false; }
		if (!validateCertification()) { valid = false; }
		return valid;
	} 

	function generalValidate() {
		var valid = true;
		var fieldsets = $("#registration fieldset");
		$(fieldsets).each(function () { 
			var legend = $(this).find("legend");
			var inputs = $(this).find(".inputs");
			$(legend).removeClass('errors');
			$(inputs).each(function () {
				var label = $(this).find("label");
				var field = $(this).find("input, select, textarea");
				$(this).find(".requiredmsg").remove();
				if ($(label).hasClass('required') && 
					$.trim($(field).attr('value')) == '') {
					$(this).find(".instructions").hide();
					$(this).append('<div class="requiredmsg">' + $.trim($(label).text()) + ' Required!</div>');
					$(legend).addClass('errors');
					valid = false;
				} else {
					$(this).find(".instructions").show();
				}
			});
		});
		return valid;
	}

	function validatePersonal () {
		return true;
	}

	function validateBusiness () {
	}

	function validateHome () {
	}

	function validateLicense () {
	}

	function validateDemographic () {
	}

	function validateCommittee () {
		alert('validateCommittee');
		if ($("input:checked").attr('value') == 'Yes'
			&& $("input[name='committee-type']:checked").size() == 0) {
			alert('must select committe type');
			return false;
		}
	}

	function validateDatabase () {
	}

	function validateMembership () {
	}

	function validateCertification () {
	}


	// post-submit callback 
	function showResponse(responseText, statusText)  {
		if (statusText == "success") {
			updateFormSuccess();
		} else {
			alert('showResponse - '+statusText);
		}
	}
	
	//change the HTML for the form on SUCCESS
	function updateFormSuccess() {
		$("form *")
			.fadeOut();
		$("form")
			.append("The form has been successfully submitted.  Your membership is awaiting review.")
			.addClass('success');
	}

