function ajaxRequest(type) {
	//zipフィールドにフォーカスがない場合、blurイベントを強制的に動かす
	//Field.focus('zip1');
	//Field.focus('btn_zip');

	//郵便番号が7桁でない場合
	var zip = $F('zip1') + $F('zip2');
	if( type == 'zip' && zip.length != 7 ) {
		responseMessage('半角数字7桁(3桁+4桁)で入力してください。', 'zip1', true);
		return;
	}

	var php_script = {'zip':'./get_zip.php', 'mail':'./mail_send.php'};

	var url = php_script[type];

	//リクエストパラメータの形成
	var params = '';
	switch( type ) {
		case 'zip':
			params += 'zip=' + zip;
			break;
		case 'mail':
			params += '';
			break;
	}

new Ajax.Request (
	url, 
		{
			method: 'post', 
			parameters: params, 

			onFailure: function(res) {
				responseMessage('Ajax 通信エラー(' + res.status + ')', 'zip1', true);
				return;
			},

			onSuccess: function(res) {
				switch( type ) {
					case 'zip':
						zip_complete(res);
						break;
					case 'mail':
						mail_complete(res);
						responseMessage('MAIL_OK', 'mail', false);
						break;
					default:
						break;
				}
				return;
			}
		}
);

}

function zip_complete(res) {
	// 取得できなかった場合
	if( res.responseText == '' ) {
		$('addr').value = '';
		responseMessage('該当住所なし', 'pref', true);
		return;
	} else {
		// 以前のメッセージを削除
		if( $('advice-pref') ) {
			Element.remove('advice-pref');
		}
		if( $('advice-zip') ) {
			Element.remove('advice-zip');
		}
	}

	// JSONデータをパース
	var data = eval("(" + res.responseText + ")");

	// 住所文字列を生成
	var pref = data.address.prefecture;
	var address = data.address.city + data.address.town;

	// 「以下に掲載がない場合」が含まれる場合、削除
	address = address.replace(/以下に掲載がない場合/, '');

	// 取得した住所をセット
	$('addr').value = address; 
	$('pref').value = pref; 
}

function zip_failure(res) {
}

function mail_complete(res) {
	alert(res.responseText);
}
function mail_failure(res) {
}

function resetMessage() {
	// メッセージを削除
	if( $('advice-zip1') ) {
		Element.remove('advice-zip1');
	}
	if( $('advice-pref') ) {
		Element.remove('advice-pref');
	}
}

function responseMessage(result_msg, elm_name, clear) {

	// 以前のメッセージを削除
	if( $('advice-' + elm_name) ) {
		Element.remove('advice-' + elm_name);
	}

	if( clear ) {
		$('addr').value = ""; 
		$('pref').value = ""; 
	}

	new Insertion.Before($(elm_name), '<div class="validation-advice" id="advice-' + elm_name + '">' + result_msg + '</div>');
	//new Insertion.After($(elm_name), '<div class="validation-advice" id="advice-' + elm_name + '">' + result_msg + '</div>');
}

