/// $(function() { ListingEditor.register('physicalAddress', { fields: { "Building": "building_name", "Street Number": "street_number", "Street Name": "street_name", "Suburb/Town": "location_name", "City": "area_name", "Postcode": "hidden:street_address_postcode", "National": "checkbox:national" }, show: function(callback) { var context = this; var editor = $$("div.editor"); $("

Edit Street Address

").appendTo(editor); editor.append(EditorFormatter.fieldTable(this.fields)); editor.append(EditorFormatter.dialogButtons(function() { EditorFormatter.saveData(editor); Geocoder.refresh(); ModalPopup.hide(); $('#physicalAddress').effect('highlight', {}, 200); if (callback) callback(); }, function () { ModalPopup.hide(); })); function autoDump(){ var street_name_field = editor.find("input[name='street_name']"); parts = street_name_field.val().split(','); if (parts.length > 1){ street_name_field.val(parts[0]); editor.find("input[name='location_name']").val($.trim(parts[1] || '')); editor.find("input[name='area_name']").val($.trim(parts[2] || '')); } } editor.find("input[name='street_name']").autocomplete('/areas/autocomplete', {autoFill: true, maxItemsToShow: 10, delay: 100, extraParams: {match: 'street', region: editor.find("input[name='region_name']").val()}, onItemSelect: autoDump}).keydown(function(e){ if (e.keyCode == 13){ editor.find("input[name='location_name']").focus(); this.autocompleter.hideResults(); } }); editor.find("input[name='location_name']").autocomplete('/areas/autocomplete', {autoFill: true, maxItemsToShow: 10, delay: 100, extraParams: {match: 'location'}}).keydown(function(e){ if (e.keyCode == 13){ editor.find("input[name='area_name']").focus(); this.autocompleter.hideResults(); } }); editor.find("input[name='area_name']").autocomplete('/areas/autocomplete', {autoFill: true, maxItemsToShow: 10, delay: 100, extraParams: {match: 'district'}}).keydown(function(e){ if (e.keyCode == 13){ editor.find("input[name='region_name']").focus(); this.autocompleter.hideResults(); } }); editor.find("input[name='region_name']").autocomplete('/areas/autocomplete', {autoFill: true, maxItemsToShow: 10, delay: 100, extraParams: {match: 'region'}}); EditorFormatter.applyData(editor); ModalPopup.show(editor); }, refresh: function() { var el = $('#physicalAddress'); EditorFormatter.setInfo(el, [ "building_name", "street_number|street_name", "location_name", "area_name|street_address_postcode" ]); } }); });