// グローバル変数の定義
var httpObj;			//HTTP通信用オブジェクト
var timerId;			//HTTP通信用タイマーオブジェクト
var timeout_sec = 10;	//HTTPタイムアウト秒数

//引数に与えられたURLにHTTPリクエストを行い、指定された関数を実行
function httpPostRequest(target_url,post_data,functionReference){
	try{
		// オブジェクト生成（XMLとして）
		if(window.XMLHttpRequest){
			httpObj = new XMLHttpRequest();
		}
		// オブジェクト生成（ActiveXとして）
		else if (window.ActiveXObject) {
			httpObj = new ActiveXObject("Microsoft.XMLHTTP");
		}
		// もう無理
		else {
			httpObj = false;
		}
	}
	catch(e) {
		httpObj = false;
	}
	
	//エラー発生（オブジェクト生成失敗）時
	if (!httpObj) {
		httpObjGenerateFail();
	}
	
	// タイマーをセット
	timerId = setInterval('timeoutCheck()',1000);
	
	//送信準備
	httpObj.open("POST",target_url,true);
	//httpObj.setRequestHeader( "Content-Type", "text/xml; charset=utf8" ); 
	httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	//送信結果受信時のコールバック処理
	httpObj.onreadystatechange = function() {
		// 準備OK時
		if (httpObj.readyState == 4){
			//タイマークリア
			clearInterval(timerId);
			//データ受信完了時
			if (httpObj.status == 200) {
				functionReference(httpObj.responseXML);
			}
			else {
				alert(httpObj.status + ':' + httpObj.statusText);
				return false;
			}
		}
	}
	//送信実行
	httpObj.send(post_data);
}

//XMLオブジェクト生成失敗時
function httpObjGenerateFail(){}
//HTTPタイムアウト処理
function timeoutCheck(){}







// 郵便番号から住所検索(バックグラウンド)
function vSetAddressFromZipCode(oObj) {
	// バックで動かすPHPを指定
	var target_url = "../mainte/zip.php";
	// POSTする値を作成
	var post_data = "";
	post_data += "zip=" + oObj.value;

	// お気に入り登録処理を呼び出し
	httpPostRequest(target_url,post_data,vSetAddressFromZipCodeEnd);
}

//お気に入り登録完了時のイベント処理
function vSetAddressFromZipCodeEnd(sXml) {
	//受信したデータを解析
	var aAddress = sXml.getElementsByTagName("item");

	var oParam = aAddress[0].firstChild;
	var sPref = "";
	var sCity = "";
	var sTown = "";
	if (oParam.firstChild  != null) {
		// 県名
		sPref = oParam.firstChild.nodeValue;
		oParam = oParam.nextSibling;
	}
	if (oParam.firstChild  != null) {
		// 市
		sCity = oParam.firstChild.nodeValue;
		oParam = oParam.nextSibling;
	}
	if (oParam.firstChild  != null) {
		// 町
		sTown = oParam.firstChild.nodeValue;
	}

	//パラメータを解析
	var oAdd = document.getElementById('address');
	oAdd.value = "" + sPref + "" + sCity + "" + sTown + "";
}





