function update_page(address_root, postcode)
{
var ajax = new ajax_file;
ajax.asynchronous = true;
ajax.initialize();
ajax.get_content(
address_root + "modules/postcode/result.php"
, "postcode=" + encodeURIComponent(postcode)
, "update_address(my_response)"
);
}
function update_address(my_response)
{
var data = JSON.decode(my_response);
var error_container = $$('#address_finder_error');
var address_building = $$("#input_select_building select");
var address_building_options = '';
var address_building_details = '';
var hidden_premises_inputs = $$('#hidden_premises');
var address_street = $$('#input_text_street input');
var address_town = $$('#input_text_city input');
var address_county = $$('#input_text_county input');
var address_building_name_container = $$("#input_text_house_name");
var address_building_number_container = $$("#input_text_house_number");
//Clear error message if present
if(error_container.get('text') != '')
{
error_container.set('text', '');
}
//Show error
if(data.error)
{
error_container.set('text', data.error);
//Set select to default option plus 'other' in case postcode is not in database
address_building.set('html', '');
hidden_premises_inputs.set('html', '');
//Clear values
address_street.set('value', '');
address_town.set('value', '');
address_county.set('value', '');
}
//Set address
else if(data)
{
address_building_options += '';
for(var key in data.premises)
{
if($type(key * 1) == "number")
{
//Create select options
address_building_options += '';
//Create hidden inputs so values can be used on the site
if(data.premises[key].organisation != '' && data.premises[key].building != '')
{
address_building_details += '';
}
else if(data.premises[key].organisation != '')
{
address_building_details += '';
}
else if(data.premises[key].building != '')
{
address_building_details += '';
}
else
{
address_building_details += '';
}
address_building_details += '';
}
}
//Add in other option in case address is not returned
address_building_options += '';
//Set values
address_building.set('html', address_building_options);
hidden_premises_inputs.set('html', address_building_details);
address_street.set('value', data.street);
address_town.set('value', data.town);
address_county.set('value', data.county);
}
//Hide House Name and number in case they are visible (this is possible)
address_building_name_container.setStyle('display','none');
address_building_number_container.setStyle('display','none');
}
function set_building_details()
{
var address_building = $$("#input_select_building select");
var address_building_name_container = $$("#input_text_house_name");
var address_building_name = $$("#text_house_name");
var address_building_number_container = $$("#input_text_house_number");
var address_building_number = $$("#text_house_number");
var premises_id = address_building.get('value');
var building = '';
var number = '';
//If 'Other' is selected, show house name and number
if(premises_id == 'other')
{
address_building_name_container.setStyle('display','block');
address_building_number_container.setStyle('display','block');
}
//If not default option
else if(premises_id != '')
{
building = $$('#premises_' + premises_id + '_building').get('value');
number = $$('#premises_' + premises_id + '_number').get('value');
address_building_name_container.setStyle('display','none');
address_building_number_container.setStyle('display','none');
}
//If default option
else
{
address_building_name_container.setStyle('display','none');
address_building_number_container.setStyle('display','none');
}
address_building_name.set('value', building);
address_building_number.set('value', number);
}
//Stop form submitting on keypress of 'Return'/'Enter' in postcode
var keyDown = function(event){
if(event.key == 'enter')
{
return false;
}
};
window.addEvent('domready', function() {
$$('#text_post_code').addEvent('keydown', keyDown);
});