$(document).ready(function(){
    $("#autofind").click(function(){
		$("div#address").hide();
        if (checkPostCode(this.form.postcode)) {
            $("div#address_list").removeClass().addClass("list_waiting").html("Retrieving data...").show();
            $.post("/retrieve/postcode/", { postcode: $(this.form.postcode).val() }, function(data){
                $("div#address_list").removeClass().addClass("list").html(data);
            });            
        }
    });
	if (document.forms.quote_form.address.value=='')
	{
		$("div#address").hide();
	}
});

<!--
function checkPostCode(field) {
//check postcode format is valid
    test = field.value;
    size = test.length
    //Change to uppercase
    test = test.toUpperCase();
    //Strip leading spaces
    while (test.slice(0,1) == " ") {
        test = test.substr(1,size-1);size = test.length
    }
    //Strip trailing spaces
    while(test.slice(size-1,size)== " ") {
        test = test.substr(0,size-1);size = test.length
    }
    //write back to form field
    field.value = test;
    //Code length rule
    if (size < 6 || size > 8) {
        alert("Wrong postcode lenght");
        field.focus();
        return false;
    }
    //leftmost character must be alpha character rule
    if (!(isNaN(test.charAt(0)))) { 
        alert("Postcode cannot start with a number");
        field.focus();
        return false;
    }
    //first character of inward code must be numeric rule
    if (isNaN(test.charAt(size-3))) {
        alert("Wrong postcode format - alpha character in wrong position");
        field.focus();
        return false;
    }
    //second character of inward code must be alpha rule
    if (!(isNaN(test.charAt(size-2)))) {
        alert("Wrong postcode format - number in wrong position");
        field.focus();
        return false;
    }
    //third character of inward code must be alpha rule
    if (!(isNaN(test.charAt(size-1)))) {
        alert("Wrong postcode format - number in wrong position");
        field.focus();
        return false;
    }
    //space in position length-3 rule
    if (!(test.charAt(size-4) == " ")){
        alert("Wrong postcode format - no space or space in wrong position");
        field.focus();
        return false;
    }
    count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
    //only one space rule
    if (count1 != count2){
        alert("Wrong postcode format - only one space allowed");
        field.focus();
        return false;
    }
    return true;
}

function setAddr(addr1, addr2, city, county, lat, lng) {
	$("div#address_list").hide();
    frm = document.forms.quote_form;
	frm.address.value = addr1 + '\n' + addr2 + '\n' + city + '\n' + county;
	frm.addressCity.value = city;
    $("div#address").show();
}
