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); });