// IFRAMEのファイル名
var IFR_FILE = "../js/_ifr_adrsearch.php" ;

// 読み込み用のIFRAMEを書き出す
document.write ( '<iframe src='+IFR_FILE+' name="address_search" width=0 height=0 frameborder=0 borderwidth=0></iframe>' ) ;

/* 住所検索関数 */
form_dat = new Object();
function getAddress ( f_name, f_zip1, f_zip2, f_country, f_address) {

	// 郵便番号入力フォームの数チェック
	var mode = false ;

	// エラーメッセージ件数
	var errorMsg = new Array();

	// 郵便番号を取得する
	f_zip1 = f_name.elements[f_zip1].value ;
	if ( f_zip2 ) { f_zip2 = f_name.elements[f_zip2].value ; mode = true ; }

	// 出力先であるフォーム名を保存する
	form_dat.form = f_name ;
	form_dat.country = f_country ;
	form_dat.address = f_address ;

	/* シングルモード */
	if( mode == false ) {
		// ハイフンが含まれていたら除去
		f_zip1 = f_zip1.replace( "-" , "" ) ;
		// 空白が含まれていたら除去
		f_zip1 = f_zip1.replace( " " , "" ) ;
		var tmp = String(f_zip1) ;

		// 文字列が含まれていないか
		if ( isNaN(f_zip1) ) errorMsg.push("郵便番号に間違いがあります") ;
		// 3桁と7桁以外ではないか
		if ( tmp.length != 3 && tmp.length != 7 ) errorMsg.push("桁数が足りないか、オーバーしています") ;
		// 3桁の場合、4桁のゼロを追加する
		if ( tmp.length == 3 ) f_zip1 = String(f_zip1) + "0000" ;

	/* ダブルモード */
	} else {
		var tmp = String(f_zip1) ;
		// 右辺が空の場合、左辺は3桁入力されているか
		if ( !f_zip2 && tmp.length != 3 ) errorMsg.push("正確に入力されていません") ;
		// 右辺が空で左辺が3桁入力されている場合は、右辺をゼロで埋める
		if ( !f_zip2 && tmp.length == 3 ) f_zip2 = "0000" ;
		tmp += String(f_zip2) ;
		// 文字列が含まれていないか
		if ( isNaN(tmp) ) errorMsg.push("半角数字で入力してください") ;
		// 右辺が入力されいる場合、左辺を含めて7桁か
		if ( f_zip2 && tmp.length != 7 ) errorMsg.push("正確に入力されていません") ;
	}

	// エラーメッセージの出力する
	if ( errorMsg.length > 0 ) {
		alert ( errorMsg[0] ) ;
	// しない場合は処理を継続
	} else {
		// 最終的な郵便番号を作成
		if ( mode == true ) var zip_master = String(f_zip1) + String(f_zip2) ;
		if ( mode == false ) var zip_master = String(f_zip1) ;
		// IFRAMEに郵便番号を送る
		this.address_search.location.href = IFR_FILE+"?zip="+zip_master ;
	}

}

/* 住所取得関数 */
function putAddress( $country , $address ) {
	var $i;

	if ( !$country && !$address ) {
		alert("住所を取得できませんでした") ;
	} else {

		// シングルか、ダブルモードか
		var mode = ( form_dat.country && !form_dat.address ) ? false : true ;
		// シングルモード
		if ( mode == false ) {
			form_dat.form.elements[form_dat.country].value = $country + $address ;
		// ダブルモード
		} else {
			// 都道府県選択はセレクトボックスか？
			if ( form_dat.form.elements[form_dat.country].type == "select-one" ) {
				// セレクトボックスならば、参照番号を検索
				for ( $i = 0 ; $i < form_dat.form.elements[form_dat.country].options.length ; $i++ )
				{
					if ( form_dat.form.elements[form_dat.country].options[$i].value == $country )
					{
						form_dat.form.elements[form_dat.country].options[$i].selected = $i;
						break;
					}
				}
			} else {
				form_dat.form.elements[form_dat.country].value = $country ;
			}
			form_dat.form.elements[form_dat.address].value = $address ;
		}
	}
}
