// {{{ Page initialization
var baseurl = $.plURL('search/');
-var address_types = new Array('country', 'administrative_area_level_1', 'administrative_area_level_2', 'locality', 'sublocality');
+var address_types = new Array('country', 'administrative_area_level_1', 'administrative_area_level_2', 'locality', 'postal_code');
var address_types_count = address_types.length;
function load_advanced_search(request)
$('.autocomplete').change(function() { $(this).removeClass('hidden_valid'); });
if (request['country']) {
- $("[name='country']").parent().load(baseurl + 'list/country', function() {
- $("select[name='country']").attr('value', request['country']);
- });
setAddress(0, 1, new Array(request['country'],
request['administrative_area_level_1'],
request['administrative_area_level_2'],
request['locality'],
- request['sublocality'])
+ request['postal_code'])
);
} else {
for (var i = 1; i < address_types_count; ++i) {
$('.delete_address_component').click(function() {
var field_name = $(this).attr('href');
var hide = false;
+ var remove = false;
for (var i = 1; i < address_types_count; ++i) {
if (field_name == address_types[i]) {
hide = true;
}
if (hide) {
- delete_address_component(address_types[i]);
+ if (field_name != address_types[i]) {
+ remove = true;
+ }
+ delete_address_component(address_types[i], remove);
}
}
var next_type = address_types[j];
var next_list = next_type + '_list';
- if (j == 3) {
- $('tr#locality_text').hide()
- $("select[name='locality_text']").attr('value', '');
- }
-
$('#' + next_list).load(baseurl + 'list/' + next_type, { previous:prev_type, value:values[i] }, function() {
if ($("select[name='" + next_type + "']").children("option").size() > 1) {
$("tr#" + next_type).show();
$("select[name='" + next_type + "']").attr('value', values[j]);
+ if (next_type == 'locality') {
+ $('tr#locality_text').hide();
+ $("select[name='locality_text']").attr('value', '');
+ }
if (j < address_types_count) {
setAddress(j, j + 1, values);
}
}
for (var j = i + 1; j < address_types_count; ++j) {
- delete_address_component(address_types[j]);
+ delete_address_component(address_types[j], true);
}
if (value != '' && i < address_types_count) {
}
}
-function delete_address_component(field_name)
+function delete_address_component(field_name, remove)
{
- $('tr#' + field_name).hide();
- $('#' + field_name + '_list').html('');
- $("input[name='" + field_name + "']").val('');
+ if (remove || field_name == 'locality') {
+ $('tr#' + field_name).hide();
+ $('#' + field_name + '_list').html('');
- if (field_name == 'locality') {
- $("select[name='locality_text']").attr('value', '');
- $('tr#locality_text').show();
+ if (field_name == 'locality') {
+ $("input[name='locality_text']").val('');
+ $('tr#locality_text').show();
+ }
+ } else {
+ $("select[name='" + field_name + "']").val('');
+ $("input[name='" + field_name + "']").val('');
}
}