// ---------------------------------------------------------------- //
//  ajax で郵便番号検索を行う関数です。
// ---------------------------------------------------------------- //

var lastZip = "";

// 公開側会員情報用
function getUserAddress( hnbs_form, f_postal_cd, f_prefecture_id, f_town, f_area, flg) {
    var jklform = new JKL.Form( hnbs_form );
    var zip = jklform.getValue( f_postal_cd );
    var flg2 = 0;
    if ( zip.length >= 7 && flg == flg2 ) {
        flg2 = 1;
        lastZip = zip;
        var http1 = newXMLHttpRequest();

        if ( ! http1 ) return false;
        var url = 'cmnUserIndex.php?act=cmn_user_MemberManage_ZipSearch&sel_id=' + escape(zip);
        // GET メソッド、URL 指定、非同期(=true)
        http1.open('GET', url, true);
        // 無名関数をハンドラとする
        http1.onreadystatechange = function () {
            handle_setAddress ( http1, jklform, f_prefecture_id, f_town, f_area);
        };
        http1.send(null);
    }
    flg2 = 0;
    return true;
}

// ---------------------------------------------------------------- //
//  newXMLHttpRequest ---- XMLHttpRequest オブジェクトの生成
// ---------------------------------------------------------------- //

function newXMLHttpRequest () {
    if ( typeof ActiveXObject!="undefined" ) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else if ( typeof XMLHttpRequest!="undefined" ) {
        return new XMLHttpRequest();
    } else{
        return null;
    }
}

// ---------------------------------------------------------------- //
//  ajax 通信完了後に呼び出されるハンドラ
// ---------------------------------------------------------------- //
//  0 = uninitialized
//  1 = loading
//  2 = loaded
//  3 = interactive
//  4 = complete
// ---------------------------------------------------------------- //

var lastAddr = "";
function handle_setAddress( http1, jklform, f_prefecture_id, f_town, f_area ) {

    if (http1.readyState == 4 && http1.status == 200) {

        var newJpref = "";
        var newPrefCD  = "";
        var newAddr = "";

        var resXML = http1.responseXML;

        if ( resXML.documentElement ) {
            var f_prefecture_id_value = resXML.documentElement.getElementsByTagName('f_prefecture_id');
            var f_town_value = resXML.documentElement.getElementsByTagName('f_town')
            var f_area_value = resXML.documentElement.getElementsByTagName('f_area')
            var jtown  = "";
            var jarea = "";

            if ( f_prefecture_id_value[0]  != null ) {
                newPrefCD  = 	f_prefecture_id_value[0].firstChild.data;
            }

            if ( f_town_value[0]  != null ) {
                jtown = f_town_value[0].firstChild.data;
            }

            if ( f_area_value[0]  != null ) {
                jarea = f_area_value[0].firstChild.data;
            }
            newTown = jtown;
            newArea = jarea;
        }
        // 現在の住所を取り出す
        var oldAddr = jklform.getValue( f_town );
        var oldArea = jklform.getValue( f_area );
        //if ( newPrefCD && oldAddr == lastAddr ) {

            // 都道府県名でマッチングする
            //jklform.setValue( f_prefecture_id, newPrefCD );
            // 都道府県コードでマッチングする
             jklform.setValue( f_prefecture_id, newPrefCD );
            // 住所を記入する
            jklform.setValue( f_town, newTown );
            jklform.setValue( f_area, newArea );
            lastAddr = newTown;
            lastArea = newArea;
        //}
    }
}

// ---------------------------------------------------------------- //
