/* -*- coding: utf-8 -*- */
var last_postcode = '';

function addressSearch() {
    if ($('address_search_error')) {
        removeElement($('address_search_error'));
    }
    var postcode = $('f_postcode_1').value + $('f_postcode_2').value;
    if (postcode == last_postcode) {
        return;
    }
    last_postcode = postcode;
    var url = plugin_url + 'findaddr.php?postcode=' + postcode;
    var d = loadJSONDoc(url);
    d.addCallback(function(json) {
            if (json.error) {
                var msg = P('この郵便番号に一致する住所は見つかりません。');
                addElementClass(msg, 'error');
                msg.id = 'address_search_error';
                var pos = $('address_search').nextSibling.nextSibling.nextSibling.nextSibling;
                insertSiblingNodesBefore(pos, msg);
                Highlight(msg);
                return;
            }
    
            var options = $('f_pref').options;
            for (var i = 0; i < options.length; i++) {
                if (options[i].value == json.pref) {
                    options[i].selected = true;
                } else {
                    options[i].selected = false;
                }
            }
            $('f_addr_1').value = json.city + json.addr;
            Highlight($('f_pref'));
            Highlight($('f_addr_1'));
        });
    d.addErrback(function(e) {
            alert('住所の取得に失敗しました。');
        });
}

connect(window, 'onload', function() {
        if ($('address_search')) {
            connect($('address_search'), 'onclick', addressSearch);
        }
    });
