//# All Rights Reserved, Copyright (c) RouteWell
//################################################################################
//# システム名    ：メール配信システム
//# サブシステム名：ＷＥＢアプリケーション
//# プログラム名  ：Ajax共通関数定義
//# プログラムID  ：ajax_common.js
//# 担当者        ：RouteWell) 下平
//# 作成日        ：2009.05.19
//# 機能概要      ：
//# 動作形態      ：
//# 処理サイクル  ：
//################################################################################
//# 変更履歴  版数：変更日    ：変更者
//#
//# 変更内容      ：
//################################################################################

//----- 要素をＩＤで取得

function $(tagId) {
	return document.getElementById(tagId);
}

//----- XMLHttpRequestオブジェクト生成

function createXMLHttpRequest(cbFunc) {

	var XMLhttpObject = null;

	try {
		XMLhttpObject = new XMLHttpRequest();					// マイクロソフト以外の有効ブラウザ
											// Google Chrome,Firefox,Safari,Netscape
	} catch(e) {
		try {
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");		// マイクロソフト IE6以上
		} catch(e) {
			try {
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP"); // マイクロソフト IE6 未満
			} catch(e) {
				return null;						// マイクロソフト以外の無効ブラウザ
											// OPERA etc
			}
		}
	}

	if (XMLhttpObject) {
		XMLhttpObject.onreadystatechange = cbFunc;
	}

	return XMLhttpObject;
}

//-----	ブラウザ判別

function getBrowserName()
{
    var aName  = navigator.appName.toUpperCase();
    var uName  = navigator.userAgent.toUpperCase();
    if (aName.indexOf("NETSCAPE") >= 0)       return "Netscape";
    if (aName.indexOf("MICROSOFT") >= 0)      return "Explorer";
    return "";
}
//　ブラウザバージョン取得
function getBrowserVersion()
{
	var browser = getBrowserName();
	var version = 0;
	var s = 0;
	var e = 0;
	var appVer  = navigator.appVersion;
	if (browser == "Netscape")
	{
		s = appVer.indexOf(" ",0);
		version = eval(appVer.substring(0,s));
		if (version >= 5) version++;
	}
	if (browser == "Explorer")
	{
		appVer  = navigator.userAgent;
		s = appVer.indexOf("MSIE ",0) + 5;
		e = appVer.indexOf(";",s);
		version = eval(appVer.substring(s,e));
	}
	return version;
}
//　Macintosh           　->  MacOS
//　Windows95/98/NT/2000  ->　Windows
//　UNIX                  ->　UNIX
function getOSType()
{
    var RetCode = "";
    var uAgent  = navigator.userAgent.toUpperCase();
    if (uAgent.indexOf("MAC") >= 0)           RetCode = "MacOS";
    if (uAgent.indexOf("WIN") >= 0)           RetCode = "Windows";
    if (uAgent.indexOf("X11") >= 0)           RetCode = "UNIX";
    return RetCode;
}

//----- Generic 

function Request_HTTP(flg,argmnt,scrpt) {

        var rnd_str     = Math.random();        // キャッシュ対策
        var arg  = "";

        httpObj = createXMLHttpRequest(Response_HTTP);
        if(httpObj) {

                // OPEN

		if(flg == "ASYNC") {	// ASYNC
                	httpObj.open("POST",
                	        scrpt,
                	        true);
		} else {	// SYNC
                	httpObj.open("POST",
                	        scrpt,
                	        false);
		}	

                // Request Header

                httpObj.setRequestHeader("Content-Type" ,"application/x-www-form-urlencoded");

                // Send

                arg     = "arg=" + argmnt + "__:__" + rnd_str;
                httpObj.send(arg);
        }

}

function Response_HTTP() {   //----- RESPONSE受信


        if ((httpObj.readyState == 4) && (httpObj.status == 200)) {     //正常受信
		HTTP_RET	= false;
                var     msg     = httpObj.responseText;
                var     msg_ar  = msg.split("__:__");
                switch(msg_ar[0]) {
                        case "0":       // 正常系
				for(i=0;i<cnt_Disp_Div;i++) {
					$($(Disp_Div[i]).id).innerHTML	= msg_ar[i+1];
					Disp_Div[i]	= "";
				}	
				cnt_Disp_Div	= 0;
				HTTP_RET	= true;
                                break;
			case "1":
				HTTP_RET	= false;
				Err_Inf	= msg_ar[1];
				break;
                        default:        // APエラー
				HTTP_RET	= false;
                                alert("システムエラーが発生しました。："+msg_ar[0]);
                }
        }
}


