///
$(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"
]);
}
});
});