// HTTP通信用、共通関数

function createXMLHttpRequest()
{
	var XMLhttpObject = null;
  try {
    XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
      XMLhttpObject = false;
    }
  }
  if (!XMLhttpObject && typeof XMLHttpRequest!='undefined') {
    XMLhttpObject = new XMLHttpRequest();
  }
	return XMLhttpObject;
}

function commServer(programURL, sendData, funcObj, win, sync){
	var result;
	var httpFlag = true;
	var httpObj = createXMLHttpRequest();
	
	if(funcObj == "undefined") funcObj = loadResult;
	if(win == "undefined") win = "result";
	if(sync == "undefined") sync = true;
	
	if (! httpObj || httpObj.readyState == 1 || httpObj.readyState == 2 || httpObj.readyState == 3){
		alert("HTTP通信確立エラー");
		httpFlag = false;
	}
	if(!httpFlag){
		alert("HTTP通信確立エラー");
		return false;
	}
	httpObj.open("POST",programURL,sync);
	
	//ブラウザ判定
	var ua = navigator.userAgent;
	var safari	= ua.indexOf("Safari")!=-1;
	var konqueror = ua.indexOf("Konqueror")!=-1;
	var mozes	 = ((a=navigator.userAgent.split("Gecko/")[1] )?a.split(" ")[0]:0) >= 20011128;
	//受信処理
	//operaはonreadystatechangeに多重レスバグがあるのでonloadが安全
	//Moz,FireFoxはoj.readyState==3でも受信するので通常はonloadが安全
	//Win ieではonloadは動作しない
	//Konquerorはonloadが不安定
	if(window.opera || safari || mozes){
		httpObj.onload = function()
		{
				funcObj(httpObj, win);
		}
	}else{
		httpObj.onreadystatechange = function()
		{
			if (httpObj.readyState == 4 && httpObj.status == 200){
				funcObj(httpObj, win);
			}
		}
	}
	httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	httpObj.send(encodeURI(sendData));	
}

function loadResult(httpObj, win){
	document.getElementById(win).innerHTML = httpObj.responseText;
}


