E_NOLOGIN_ERROR = 256;
E_SESSION_ERROR = 257;
E_SESSION_TIMEOUT_ERROR = 258;
//===============================================================================
// 概　要：varExpr1がnullの場合にはvarExpr2を戻し、varExpr1がNULLでない場合にはvarExpr1を戻す
// 引　数：varExpr1:検査対象データ
// 　　　：varExpr2:検査対象データがNULLのときに戻すデータ
// 　　　：ZeroStrIsNull:長さ0の文字列をNULLと同等に扱うかを表すフラグ(省略時は同等に扱わない)
// 戻り値：概要の通り
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __NVL(varExpr1, varExpr2, ZeroStrIsNull /* = false */) {
	var expr1;
	if (typeof varExpr1 == 'string') {
		expr1 = varExpr1;
	} else if (varExpr1 == null) {
		expr1 = null;
	} else if (varExpr1.data != undefined) {
		expr1 = varExpr1.data;
	} else if (varExpr1.value != undefined) {
		expr1 = varExpr1.value;
	} else {
		expr1 = varExpr1;
	}
//		expr1 = Try.these(
//			function() {return varExpr1.data;},
//			function() {return varExpr1.value;}
//		);
//	}
	if (ZeroStrIsNull == undefined) ZeroStrIsNull = false;	// ZeroStrIsNull が省略されていたらfalseとする
	// 検査対象データがNULLの場合
	if (expr1 == null) {
		return varExpr2;
	} else {
		if (ZeroStrIsNull && expr1 == '') {
			return varExpr2;
		} else {
			return expr1;
		}
	}
}

//===============================================================================
// 概　要：押されたキ－コードを返す
// 引　数：e:eventオブジェクト
// 戻り値：概要の通り
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __getKeyCode(e) {
	if (document.all) {
	    if (event.type == "keypress") {
		    return event.keyCode;
	    } else {
	        //alert(event.keyCode);
	        if (event.keyCode >= 96 && event.keyCode <= 105) {  // テンキーの0-9
	            return event.keyCode - 48;
	        } else if (event.keyCode == 106 || (event.ShiftKey && event.keyCode == 186)) { // '*'
	            return 42;
	        } else if (event.keyCode == 107 || (event.ShiftKey && event.keyCode == 187)) { // '+'
	            return 43;
	        } else if (event.keyCode == 109 || event.keyCode == 189) { // '-'
	            return 45;
	        } else if (event.keyCode == 110 || event.keyCode == 190) { // '.'
	            return 46;
	        } else if (event.keyCode == 111 || event.keyCode == 191) { // '/'
	            return 47;
	        } else {
	            return event.keyCode;
	        }
	    }
	} else if (document.getElementById) {
		//return (e.keyCode != 0) ? e.keyCode : e.charCode;
		if (e.keyCode != 0) {
		    if (e.keyCode == 46) {  // Del(onkeypressでは.はcharCode46、DelはkeyCode46なので念のため)
			    return 190;
		    } else {
			    return e.keyCode;
		    }
		} else {
			return e.charCode;
		}
	} else if (document.layers) {
		return e.which;
	}
}

//===============================================================================
// 概　要：テキストフィールドで数値(-,0～9,.)以外の入力をキャンセルする
// 　　　：テキストフィールドのOnKeyPressイベントで使用する
// 引　数：e:イベントオブジェクト(Mozilla用)
// 戻り値：数値ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __onlyNum(e) {
	//e = (e) ? e : ((window.event) ? e : null);
	if (e) {
		e = e;
	} else if (window.event) {
		e = window.event;
	} else {
		e = null;
	}
	if (e) {
		var KC = __getKeyCode(e);
		if (((KC < 48) || (KC > 57)) && (KC != 45) && (KC != 46) && (KC != 8) && (KC != 9) && (KC != 35) && (KC != 36) && (KC != 37) && (KC != 39) && (KC != 190)){	// 45:- 46:. 8:bs 9:tab 35:end 36:home 37:l-arrow 39:r-arrow 190:Del
			e.returnValue = false;
			return false;
		}
	}
	return true;
}
//===============================================================================
// 概　要：テキストフィールドで正の整数値(0～9)以外の入力をキャンセルする
// 　　　：テキストフィールドのOnKeyPressイベントで使用する
// 引　数：e:イベントオブジェクト(Mozilla用)
// 戻り値：数値ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __onlyPlusInt(e) {
	//e = (e) ? e : ((window.event) ? e : null);
	if (e) {
		e = e;
	} else if (window.event) {
		e = window.event;
	} else {
		e = null;
	}
	if (e) {
		var KC = __getKeyCode(e);
		if (((KC < 48) || (KC > 57)) && (KC != 8) && (KC != 9) && (KC != 13) && (KC != 35) && (KC != 36) && (KC != 37) && (KC != 39) && (KC != 190)){	// 8:bs 9:tab 13:enter 35:end 36:home 37:l-arrow 39:r-arrow 190:Del
			e.returnValue = false;
			return false;
		}
	}
	return true;
}

//===============================================================================
// 概　要：テキストフィールドで郵便番号用文字(-,0～9)以外の入力をキャンセルする
// 　　　：テキストフィールドのOnKeyPressイベントで使用する
// 引　数：e:イベントオブジェクト(Mozilla用)
// 戻り値：数値ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __onlyZip(e) {
	//e = (e) ? e : ((window.event) ? e : null);
	if (e) {
		e = e;
	} else if (window.event) {
		e = window.event;
	} else {
		e = null;
	}
	if (e) {
		var KC = __getKeyCode(e);
		if (((KC < 48) || (KC > 57)) && (KC != 45) && (KC != 8) && (KC != 9) && (KC != 35) && (KC != 36) && (KC != 37) && (KC != 39) && (KC != 190)){	// 45:- 8:bs 9:tab 35:end 36:home 37:l-arrow 39:r-arrow 190:Del
			e.returnValue = false;
			return false;
		}
	}
	return true;
}

//===============================================================================
// 概　要：テキストフィールドで日付用文字(-,/,.,0～9)以外の入力をキャンセルする
// 　　　：テキストフィールドのOnKeyPressイベントで使用する
// 引　数：e:イベントオブジェクト(Mozilla用)
// 戻り値：数値ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __onlyDate(e) {
	//e = (e) ? e : ((window.event) ? e : null);
	if (e) {
		e = e;
	} else if (window.event) {
		e = window.event;
	} else {
		e = null;
	}
	if (e) {
		var KC = __getKeyCode(e);
		if (((KC < 48) || (KC > 57)) && (KC != 45) && (KC != 46) && (KC != 47) && (KC != 8) && (KC != 9) && (KC != 35) && (KC != 36) && (KC != 37) && (KC != 39) && (KC != 190)){	// 45:- 46:. 8:bs 9:tab 35:end 36:home 37:l-arrow 39:r-arrow 190:Del
			e.returnValue = false;
			return false;
		}
	}
	return true;
}

//===============================================================================
// 概　要：渡された文字列が日付として有効かチェックする
// 　　　：テキストフィールドのOnKeyPressイベントで使用する
// 引　数：str: チェック対象文字列
// 戻り値：有効ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __IsValidDate(str) {
	var yyyy,mm,dd,strdata1, strdata2, strdata3, strdata4;

	strdata1 = str.match(/^(\d\d\d\d)\/(\d\d)\/(\d\d)$/);
	strdata2 = str.match(/^(\d\d\d\d)\/(\d\d)\/(\d)$/);
	strdata3 = str.match(/^(\d\d\d\d)\/(\d)\/(\d\d)$/);
	strdata4 = str.match(/^(\d\d\d\d)\/(\d)\/(\d)$/);
	if (!strdata1 && !strdata2 && !strdata3 && !strdata4) return false;

	yyyy = eval(RegExp.$1);
	mm = eval(RegExp.$2);
	dd = eval(RegExp.$3);

	if ((mm < 1) || (mm > 12)) return false;
	if ((dd < 1) || (dd > 31)) return false;

    if ((mm == 1) || (mm == 3) || (mm == 5) || (mm == 7) || (mm == 8) || (mm == 10) || (mm == 12)) {
		if ((dd < 1) || (dd > 31)) return false;
	} else {
		if ((dd < 1) || (dd > 30)) return false;
	}
    if (mm == 2) {
		if ((yyyy % 400 == 0) || ((yyyy % 4 == 0) && (yyyy % 100 != 0))) {
			if (dd > 29) return false;
		} else {
			if (dd > 28) return false;
		}
    }
	return true;
}
//===============================================================================
// 概　要：渡された文字列がメールアドレスとして有効かチェックする
// 　　　：
// 引　数：str: チェック対象文字列
// 戻り値：有効ならtrue、そうでなければfalse
// 作成者：
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __IsValidEMail(str) {
	if (str.match(/^\S+@\S+\.\S+$/)) return true;
	return false;
}
//===============================================================================
// 概　要：渡された文字列がパスワードとして有効かチェックする
// 　　　：
// 引　数：str: チェック対象文字列
// 戻り値：有効ならtrue、そうでなければfalse
// 作成者：
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __IsValidPwd(str) {
	if (str.match(/[^A-Za-z0-9\-_]+/)) return false;
	return true;
}
//===============================================================================
// 概　要：渡された値が数値ならtrue、そうでなければfalseを返す
// 　　　：オブジェクトが渡された場合、そのvalueプロパティの値を評価する
// 引　数：fld:valueプロパティを持つオブジェクトもしくは文字列
// 戻り値：数値ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __IsNum(fld) {
	var rg = new RegExp('^-?[0-9]+\.?[0-9]*$','g');
	var str = __NVL(fld, '');
	if (str) {
		mt = str.match(rg);
		if (!mt) {
			return false;
		}
	}
	return true;
}

//===============================================================================
// 概　要：渡された値が全角のみならtrue、そうでなければfalseを返す
// 　　　：オブジェクトが渡された場合、そのvalueプロパティの値を評価する
// 引　数：fld:valueプロパティを持つオブジェクトもしくは文字列
// 戻り値：すべて全角ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __IsZenkaku(fld) {
	var str = __NVL(fld, '');
	for (var i = 0; i < str.length; ++i) {
		var c = str.charCodeAt(i);
		//  半角カタカナは不許可
		if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) {
			return false;
		}
	}
	return true;
}

//===============================================================================
// 概　要：渡された値が半角のみならtrue、そうでなければfalseを返す
// 　　　：オブジェクトが渡された場合、そのvalueプロパティの値を評価する
// 引　数：fld:valueプロパティを持つオブジェクトもしくは文字列
// 戻り値：すべて全角ならtrue、そうでなければfalse
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __IsHankaku(fld) {
	var str = __NVL(fld, '');
	for (var i = 0; i < str.length; ++i) {
		var c = str.charCodeAt(i);
		//  半角カタカナは不許可
		if (c >= 256 || (c >= 0xff61 && c <= 0xff9f)) {
			return false;
		}
	}
	return true;
}
//===============================================================================
// 概　要：全角数字→半角数字に変換
// 引　数：str:変換対象の文字列
// 戻り値：全角数字を半角数字に置換した文字列
// 作成者：takeda kazuho <takeda@deepnet.co.jp>
// 作成日：2007/04/20
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __zenToHanNum(str){
    var zen = new Array("１","２","３","４","５","６","７","８","９","０");
    var han = new Array(1,2,3,4,5,6,7,8,9,0);
	while(str.match(/[０-９]/)){
		for(i = 0; i < zen.length; i++){
			str = str.replace(zen[i], han[i]);
		}
	}
	return str;
}
//===============================================================================
// 概　要：渡された値のバイト数を返す
// 　　　：オブジェクトが渡された場合、そのvalueプロパティの値を評価する
// 引　数：fld:valueプロパティを持つオブジェクトもしくは文字列
// 戻り値：文字列のバイト数
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __getByteCount(fld) {
	var str = __NVL(fld, '');
	var count = 0;
	for ( var i = 0; i < str.length; ++i ) {
		var sub = str.substring(i, i + 1);
		//全角の場合２バイト追加。
		if (__IsZenkaku(sub)) {
			count += 2;
		} else {
			count += 1;
		}
	}
	return count;
}

//===============================================================================
// 概　要：クライアントエリアの幅と高さを返す
// 引　数：なし
// 戻り値：幅(Width)と高さ(Height)を要素に持つArrayオブジェクト
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __getWindowSize() {
	var winSize = new Array();

	// IE以外
	if ((!document.all && (document.layers || document.getElementById)) || navigator.userAgent.indexOf("Opera") >= 0) {
		winSize["Width"] = window.innerWidth;
		winSize["Height"] = window.innerHeight;
		}
	// WinIE6-StandardMode
	else if (document.getElementById && (document.compatMode=='CSS1Compat')) {
		winSize["Width"] = document.documentElement.clientWidth;
		winSize["Height"] = document.documentElement.clientHeight;
		}
	// OtherIE
	else if (document.all) {
		winSize["Width"] = document.body.clientWidth;
		winSize["Height"] = document.body.clientHeight;
		}
	// Other
	else {
		winSize["Width"] = 1024;
		winSize["Height"] = 768;
	}
	return winSize;
}
//===============================================================================
// 概　要：渡された数値を表す文字列に3桁ごとカンマを入れて返す
// 引　数：数値を表す文字列
// 戻り値：3桁ごとカンマを入れた文字列
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __formatNumber(str) {
	var result = String(str);
	if (result.length == 0) return '';
	result = result.replace(/\,/g,"");
	result = result.match(/./g).reverse().join("");
	result = result.replace(/(\d{3})/g,"$1,");
	result = result.match(/./g).reverse().join("").replace(/^,/,"");
	return result;
}
//===============================================================================
// 概　要：渡された数値に指定桁数になるよう前ゼロを付けて返す
// 引　数：num:数値
// 　　　：len:桁数
// 戻り値：指定桁数になるよう前ゼロを付けられた文字列
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __zeroFormat(num, len){
    var tmp = "" + num;
    while(tmp.length < len){
        tmp = "0" + tmp;
    }
    return tmp;
}
function addMonths(dt, n) {
    var newdt = new Date(dt.getFullYear(), dt.getMonth(), dt.getDate(), dt.getHours(), dt.getMinutes(), dt.getSeconds());
    var orgDD = dt.getDate();
    newdt.setMonth(dt.getMonth() + n);
    var newMM = newdt.getMonth();
    if (newdt.getDate() != dt.getDate()) {
        while (newdt.getDate() < orgDD && newdt.getMonth() == newMM) {
            newdt.setDate(newdt.getDate() - 1);
        }
    }
    return newdt;
}
/*
function __addMonth(dt, num){
    if (num >= 1 ){
        dd.setMonth(dd.getMonth() num);
   }
        

}
function __isLeep(dt){
    var y = dt.getFullYear();
    if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) {
        return true;
    } else { 
        return false;
    }
}
*/
//===============================================================================
// 概　要：渡されたDateオブジェクトの月の最終日を取得
// 引　数：Dateオブジェクト, セパレータ(省略時"/")
// 戻り値：yyyy/mm/dd形式にフォーマットした文字列
// 備　考：__isLeep()が必要
// 作成者：kazuho takeda <takeda@deepnet.co.jp>
// 作成日：2007/02/22
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __getLastDay(dt){
    var mm = dt.getMonth() + 1;
    var dd = dt.getDate();

    var em = 0;

    //月末作成
    if (mm == 1 || mm == 3 || mm == 5 || mm == 7 || mm == 8 || mm == 9 || mm == 10 || mm == 12){
        em = 31;
    } else if(mm = 2) {
        if (__isLeep(dt)){
            em = 29;
        } else {
            em = 28;
        }
        em = 30;
    }
}
//===============================================================================
// 概　要：渡されたDateオブジェクトをyyyy/mm/dd形式にフォーマットして返す
// 引　数：Dateオブジェクト, セパレータ(省略時"/")
// 戻り値：yyyy/mm/dd形式にフォーマットした文字列
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：takeda kazuho <takeda@deepent.co.jp>
// 更新日：2007/03/19
//===============================================================================
function __formatDate(dt, sep, withtime, timesep) {
    if (sep == undefined) sep = "/";
    if (withtime == undefined) withtime = false;
    if (timesep == undefined) timesep = ":";

    yy = dt.getYear();
    mm = dt.getMonth() + 1;
    dd = dt.getDate();
    if (yy < 2000) { yy += 1900; }
    if (mm < 10) { mm = "0" + mm; }
    if (dd < 10) { dd = "0" + dd; }

    retval = yy + sep + mm + sep + dd;
    if (withtime) {
        hh = dt.getHours();  
        mi = dt.getMinutes(); 
        
        retval += " " + hh + timesep + mi;
    }
	return retval;
}
//===============================================================================
// 概　要：渡された文字列のエスケープされたHTMLマークアップを解除して返す
// 　　　：基本的にprototype.jsのunescapeHTMLと同じだが、本関数は\r、\nをunescapeしない
// 　　　：(要prototype.js)
// 引　数：エスケープを解除する文字列
// 戻り値：エスケープを解除した文字列
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __unescapeHTML(str) {
	var result = String(str);
	if (result.length == 0) return '';
	result = result.replace(/\r/g, '\\r');
	result = result.replace(/\n/g, '\\n');
	result = result.unescapeHTML();
	result = result.replace(/\\r/g, '\r');
	result = result.replace(/\\n/g, '\n');
	return result;
}

//===============================================================================
// 概　要：渡されたフルパスファイル名からファイル名部分を取り出して返す
// 引　数：フルパスファイル名
// 戻り値：パス部分を取り除いたファイル名
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function __basename(path) {
	var str = path.replace(/.*\//, '');
	return str.replace(/.*\\/, '');
}

//===============================================================================
// 概　要：Ajaxが確実に動作しそうなブラウザを判定する
// 引　数：なし
// 戻り値：動作可能なブラウザtrue、else false
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//
// sample：if(!IsAjaxBrowser()){ location.href='nonajax.htm' }
// sample：oj = new IsAjaxBrowser();if(oj.bw.safari){ /* Safari code */ }
//
// Enable list
//   WinIE 5.5+
//   Konqueror 3.4+
//   AppleWebKit系(Safari,OmniWeb,Shiira) 412+
//   Mozilla系(Firefox,Netscape,Galeon,Epiphany,K-Meleon,Sylera) 20011128+
//   Opera 9+
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function IsAjaxBrowser() {
    var a,ua = navigator.userAgent;
    this.bw= { 
      safari    : ((a=ua.split('AppleWebKit/')[1])?(a.split('(')[0]).split('.')[0]:0)>=412 ,
      konqueror : ((a=ua.split('Konqueror/')[1])?a.split(';')[0]:0)>=3.4 ,
      mozes     : ((a=ua.split('Gecko/')[1])?a.split(" ")[0]:0) >= 20011128 ,
      opera     : (!!window.opera) && (document.body.style.opacity=="") ,
      msie      : (!!window.ActiveXObject)?(!!(new ActiveXObject("Microsoft.XMLHTTP"))):false 
    }
    return (this.bw.safari||this.bw.konqueror||this.bw.mozes||this.bw.opera||this.bw.msie)
}

//===============================================================================
// 概　要：指定されたコンボボックスのリストをクリアする
// 引　数：コンボボックスオブジェクト
// 戻り値：なし
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function clearAllComboItem( comboObj ) {
    comboObj.options.length = 0;
}

//===============================================================================
// 概　要：指定されたコンボボックスにリストを追加する
// 引　数：コンボボックスオブジェクト, value値, 表示値
// 戻り値：なし
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function addComboItem( comboObj, value, text ) {
    var idx = comboObj.options.length;
    comboObj.options[idx] = new Option(text, value);
}

//===============================================================================
// 概　要：指定されたコンボボックスの指定された値のアイテムを選択状態にする
// 引　数：コンボボックスオブジェクト, 選択するvalue値
// 戻り値：なし
// 作成者：kazunori takahashi <kaz@nextfuture.co.jp>
// 作成日：2006/02/06
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function selectComboItem( comboObj, value ) {
    for( var i = 0; i < comboObj.options.length; i++ ) {
        if (comboObj.options[i].value == value) {
            comboObj.selectedIndex = i;
            return;
        }
    }
}
//===============================================================================
// 概　要：フォーム上にある全てのチェックボックスの状態を変更する
// 引　数：targetForm 対象のチェックボックスを含むフォーム
// 　　　：flag true or false
// 戻り値：なし
// 作成者：takeda kazuho <takeda@deepnet.co.jp>
// 作成日：
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function allCheck(targetForm, flag){
    for(var i = 0; i < targetForm.length - 1; i++){
        if(targetForm.elements[i].type == "checkbox"){
            targetForm.elements[i].checked = flag;
        }
    }
}
//===============================================================================
// 概　要：チェックされているチェックボックスの数を数える
// 引　数：targetForm 対象のチェックボックスを含むフォーム
// 戻り値：チェックされているチェックボックスの数
// 作成者：takeda kazuho <takeda@deepnet.co.jp>
// 作成日：
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function getCheckCount(targetForm){
    var count=0;
    for(var i = 0; i < targetForm.length - 1; i++){
        if(targetForm.elements[i].type == "checkbox"){
            if (targetForm.elements[i].checked){
                count += 1;
            }
        }
    }
    return count;
}
//===============================================================================
// 概　要：ラジオボタンの値をセットする
// 引　数：
// 戻り値：なし
// 作成者：
// 作成日：
//-------------------------------------------------------------------------------
// 更新者：
// 更新日：
//===============================================================================
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
function encodeNumericEntity(value) {
	var ret = '';
	var c;
	
	for (var i=0; i<value.length; i++) {
		c = value.charAt(i);
		c = c.charCodeAt(0);
		if (Math.random()<0.5) c = 'x'+ c.toString(16);
		c = '&#'+ c + ';'
		ret += c;
	}

	return ret;
}
function onBtnDown(obj) {
    if (!$(obj)) return;
    $(obj).style.left = (parseInt($(obj).style.left)-0+1)+"px";
    $(obj).style.top = (parseInt($(obj).style.top)-0+1)+"px";
}
function onBtnUp(obj, top, left) {
    if (!$(obj)) return;
    if (top==undefined) top = 0;
    if (left==undefined) left = 0;
    $(obj).style.left = left+"px";
    $(obj).style.top = top+"px";
}
function onBtnMouseOut(obj, top, left) {
    onBtnUp(obj, top, left);
}
