$("#application").change( function() {
  switch($("#application").val()){
	case 'builder':
		$("#builders_remodelers_only").removeClass('hidden');
		$("#builders_only").removeClass('hidden');
		$("#remodelers_only").addClass('hidden');
		break;
	case 'remodeler':
		$("#builders_remodelers_only").removeClass('hidden');
		$("#remodelers_only").removeClass('hidden');
		$("#builders_only").addClass('hidden');
		break;
	case 'developer':
		$("#builders_remodelers_only").addClass('hidden');
		$("#builders_only").addClass('hidden');
		$("#remodelers_only").addClass('hidden');
		break;
  }
});

$("#time_in_business").change( function(element) {
	if( $("#time_in_business").val() == 0){
		$("#previous_experience_container").removeClass('hidden');
	}
	else{
		$("#previous_experience_container").addClass('hidden');
	}
});

$("input[name='other_business']").click( function(element) {
	if( $("#other_business_no").attr('checked') == true){
		$("#other_business_container").addClass('hidden');
	}
	if( $("#other_business_yes").attr('checked') == true){
		$("#other_business_container").removeClass('hidden');
	}
});

$("input[name='suspended']").click( function(element) {
	if( $("#suspended_no").attr('checked') == true){
		$("#suspended_container").addClass('hidden');
	}
	if( $("#suspended_yes").attr('checked') == true){
		$("#suspended_container").removeClass('hidden');
	}
});

$("input[name='legal']").click( function(element) {
	if( $("#legal_no").attr('checked') == true){
		$("#legal_container").addClass('hidden');
	}
	if( $("#legal_yes").attr('checked') == true){
		$("#legal_container").removeClass('hidden');
	}
});

$("#billing_option").change( function() {
  switch($("#billing_option").val()){
	case 'invoice':
		$("#credit_card").addClass('hidden');
		$("#cc_first_name").removeClass('required');
		$("#cc_last_name").removeClass('required');
		$("#cc_address").removeClass('required');
		$("#cc_city").removeClass('required');
		$("#cc_state").removeClass('required');
		$("#cc_zip").removeClass('required');
		$("#cc_number").removeClass('required');
		$("#cc_cvs").removeClass('required');
		$("#cc_exp_month").removeClass('required');
		$("#cc_exp_year").removeClass('required');		
		break;
	case 'credit_card':
		$("#credit_card").removeClass('hidden');
		$("#cc_first_name").addClass('required');
		$("#cc_last_name").addClass('required');
		$("#cc_address").addClass('required');
		$("#cc_city").addClass('required');
		$("#cc_state").addClass('required');
		$("#cc_zip").addClass('required');
		$("#cc_number").addClass('required');
		$("#cc_cvs").addClass('required');
		$("#cc_exp_month").addClass('required');
		$("#cc_exp_year").addClass('required');
		break;
  }
});


jQuery.validator.addMethod("phoneUS", function(phone_number, element) {
    phone_number = phone_number.replace(/\s+/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");


$().ready(function() {
	$("#brd_form").validate({
		  rules: {
			official_position_2: {
			  required: function(element) {
				return $("#official_name_2").val() != '';
			  }
			},
			official_name_2: {
			  required: function(element) {
				return $("#official_position_2").val() != '';
			  }
			},
			warranty_national_specify: {
			  required: function(element) {
				return $("#warranty_type_national").attr('checked') == true;
			  }
			},
			warranty_national_reg_num: {
			  required: function(element) {
				return $("#warranty_type_national").attr('checked') == true;
			  }
			},
			contractor_license_number: {
				required: function(element) {
					return $("#application").val() != 'developer';
				}
			},
			license_exp_date: {
				required: function(element) {
					return $("#application").val() != 'developer';
				}
			},
			name_on_license: {
				required: function(element) {
					return $("#application").val() != 'developer';
				}
			},
			first_permit_date: {
				required: function(element) {
					return $("#application").val() != 'developer';
				}
			},
			warranty_type: {
				required: function(element) {
					return $("#application").val() != 'developer';
				}
			},
			previous_experience: {
				required: function(element) {
					return $("#time_in_business").val() == 0;
				}
			},
			other_business_details: {
				required: function(element) {
					return $("#other_business_yes").attr('checked') == true;
				}
			},
			suspended_details: {
				required: function(element) {
					return $("#suspended_yes").attr('checked') == true;
				}
			},
			legal_details: {
				required: function(element) {
					return $("#legal_yes").attr('checked') == true;
				}
			}
		  }
	});

});
