var addresses = Array();		

function addressChange(id) {			
	var addressType = id.substring(26);		
	
	var addressId = $('#' + id).val();		
	if (addressId == '') {
		if (addressType == 'b') {
			$('#b_address').val('');
			$('#b_address_2').val('');				
			
			if (addresses[0].street) {
				$('#additional_values_3').val(addresses[0].street);
			}
			
			if (addresses[0].city) {
				$('#b_city').val(addresses[0].city);
			}
			
			if (addresses[0].county) {
				$('#b_state option').removeAttr('selected');
				$('#b_state').children().each(function() {
					if ($(this).html().indexOf(addresses[0].county) != -1) {
						$(this).attr('selected', 'selected');
					}
				});						
			}
					
		} else if (addressType == 's') {
			$('#s_address').val('');
			$('#s_address_2').val('');
			
			if (addresses[0].street) {
				$('#additional_values_4').val(addresses[0].street);
			}
			
			if (addresses[0].city) {
				$('#s_city').val(addresses[0].city);
			}
			
			if (addresses[0].county) {
				$('#s_state option').removeAttr('selected');
				$('#s_state').children().each(function() {
					if ($(this).html().indexOf(addresses[0].county) != -1) {
						$(this).attr('selected', 'selected');
					}
				});						
			}						
		}
	} else {				
		if (addressType == 'b') {
			$('#b_address').val(addresses[addressId].address1);
			$('#b_address_2').val(addresses[addressId].address2);
			$('#additional_values_3').val(addresses[addressId].street);
			$('#b_city').val(addresses[addressId].city);
			$('#b_state option').removeAttr('selected');
			$('#b_state').children().each(function() {
				if ($(this).html().indexOf(addresses[addressId].county) != -1) {
					$(this).attr('selected', 'selected');
				}
			});
		} else if (addressType == 's') {
			$('#s_address').val(addresses[addressId].address1);
			$('#s_address_2').val(addresses[addressId].address2);
			$('#additional_values_4').val(addresses[addressId].street);
			$('#s_city').val(addresses[addressId].city);
			$('#s_state option').removeAttr('selected');
			$('#s_state').children().each(function() {
				if ($(this).html().indexOf(addresses[addressId].county) != -1) {
					$(this).attr('selected', 'selected');
				}
			});					
		}
	}			
}

$(function() {
	$('.postcode-lookup').click(function() {
		var postcode = $(this).prev().val();
		var addressesRow = $(this).parent().parent().next();
		var errorRow = addressesRow.next();				
		var addressesSelect = addressesRow.find('select');
		$.getJSON('postcode_lookup.php', {'postcode': postcode}, function(data) {
			if (data.error) {
				addressesRow.hide();
				addressesSelect.empty();					
				
				errorRow.find('.error-message').html(data.error);
				errorRow.show();
			} else {
				addresses = data;
				errorRow.hide();
				
				addressesSelect.empty();
				
				var content = '';
				content += '<option value="">Select an address or enter manually...</option>';
				$.each(data, function(index, address) {
					content += '<option value="' + index + '">' + address.address1 + '</option>';
				});
				
				addressesSelect.html(content);

				addressesRow.show();
				
				addressChange(addressesSelect.attr('id'));
			}
		});
	});
	
	$('.postcode-lookup-addresses').change(function() {
		var id = $(this).attr('id');
		addressChange(id);
	});
});
