jQuery(function($){

	$('#business_lookup').click(function (event) {

		event.preventDefault();
		
		$(this).hide();
		
		businessLookupFeedback('');
		
		$(this).after('<span class="business_lookup">Loading...</span>');
		
		$.ajax({
			url: '/javascripts/find_business.json',
			data: {phone_number: $('#business_phone_number').val()},
			dataType: 'json',
			type: 'get',
			success: businessLookupSuccess,
			error: businessLookupError
		});

	}).show();
	
	function businessLookupDoneLoading () {
	
		$('#business_lookup').show().next().remove();
	
	}
	
	function businessLookupSuccess (data) {
	
		businessLookupDoneLoading();
		
		var $name = $('#business_name');
		var $address = $('#business_address');
		var $city = $('#business_city');
		var $zipCode = $('#business_zip_code');
		var $state = $('#business_state');
	
		if ($name.val() || $address.val() || $city.val() || $zipCode.val() || $state.val()) {
		
			// Prompt user to overwrite previously entered data
			if (!confirm('Are you sure you want to overwrite the fields you already filled out?')) return false;
		
		}

		// Insert data		
		$name.val(data.name);
		$address.val(data.address);
		$city.val(data.city);
		$zipCode.val(data.zip_code);
		$state.find('[value=' + data.state + ']').attr('selected', 'selected').siblings().removeAttr('selected');
		
		businessLookupFeedback('Success!');
		
	}
	
	function businessLookupError (data) {

		businessLookupDoneLoading();
		
		try {
		
			var error = eval('(' + data.responseText + ')').error;
		
		} catch (err) {
		
			var error = 'Internal error';
		
		}
		
		businessLookupFeedback(error);
	
	}
	
	function businessLookupFeedback (message) {
		
		if (!$('#business_lookup_feedback').length) 
			$('#business_lookup').after('<span id="business_lookup_feedback" />')
	
		$('#business_lookup_feedback').text(message);
	
	}

});
