function addressLookup(number, postcode) {
    if (number == null) {
        number = $('.addressfinder-number').val();
    }
    if (postcode == null) {
        postcode = $('.addressfinder-postcode').val();
    }

    if (postcode.length == 0) {
        alert("You must enter a post code");
        return;
    }
    $("#addressTable").removeClass("auto");
    $("#addressTable").addClass("search");
    var _url = ROOT_URL + "webservices/addressfinderxml.aspx?number=" + number + "&postcode=" + postcode;
    //prompt("",_url);
    $.get(_url, 
        function(data) {
            _addressLookupConfirmation(parseXmlResponse(data));
        }
    );
    return false;
}

var _debug = false; 
function debug(text) {
    if (_debug) {
        alert(text);
    }
}
function _addressLookupConfirmation(response) {  
    debug("should show address dialog now"); 
    var executedScript = false;
    var script = null;
	try {
	    if (response.script != null && response.script.length > 0) {
	        debug("Executing " + response.script);
	        eval(response.script);
	        executedScript = true;
	    }   
	} catch (ex) {
	    debug("error executing script " + ex.message);
	}    
	if (executedScript) {
	    return;
	}
	debug("Loading html");
    _showAddressLookup();	
    
	$("#addresslookupcontent").html(response.html);  
}

function _showAddressLookup() {
    debug("Show address lookup");
    toggleAddressEditting(true);
    if (isMsie6) {
        document.body.className = "noselects";   
        //document.body.addClassName("noselects");
    }
    $("#addresslookup").center().show();
}
function _closeAddressLookup() {
    $("#addresslookup").hide();
    if (isMsie6) {
        document.body.className = "";    
    }
}
function closeAddressLookup() {
    $("#addresslookup").fadeOut("slow", _closeAddressLookup);
}

function selectAddress(line1, line2, line3, city, region, postcode) {
    $.$(pageId + "line1Tb").value = line1;
    $.$(pageId + "line2Tb").value = line2;
    $.$(pageId + "line3Tb").value = line3;
    $.$(pageId + "townTb").value = city;
    $.$(pageId + "regionTb").value = region;
    $.$(pageId + "postCodeTb").value = postcode;
    $("#addressTable").removeClass("search");
    toggleAddressEditting(false);
    closeAddressLookup();
}

var madeFindButtonTransparent = false;

function toggleAddressEditting(auto) {
    var removeCss = auto ? "manual" : "auto";
    var addCss = auto ? "auto" : "manual";
    $("#addressTable").removeClass("search").removeClass(removeCss).addClass(addCss);
}

function initAddressLookup() {
    try {
        toggleCountry($.$(pageId + "countryDdl"));
    } catch (ex) {
        alert(ex.message);
    }
    /* if the main address fields are filled in, then allow manual editting */
    if (($.$(pageId + "line1Tb").value.length + $.$(pageId + "townTb").value.length + $.$(pageId + "postCodeTb").value.length) > 0) {
        toggleAddressEditting(false);
    }
}

function toggleCountry(ddl) {
    $.$("postcodetd").className = "";
    var isUK = ddl.options[ddl.selectedIndex].value == "UK";
    if (!isUK) {
        $("#addressTable").removeClass("uk").addClass("nonuk");
        toggleAddressEditting(false);
        try {
            ctl00_ctl00_PageContent_MainContent_reqPostCode.evaluationfunction = function(val) {
                return true;
            }
        } catch (ex) {
        }
    } else {
        $("#addressTable").removeClass("nonuk").addClass("uk");    
        try {
            ctl00_ctl00_PageContent_MainContent_reqPostCode.evaluationfunction = RequiredFieldValidatorEvaluateIsValid;
        } catch (ex) {
        }
    }

    
}

