/**
 * Class of Java Script for OSBe/ASBe<p>
 * 
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/17 a.saka 新規作成
 * @version 06/02/14 a.saka UcBrowser(),UcLocation()クラスの作成
 * @version 06/02/26 a.saka UcAjax()の追加（未完成）
 * @version 06/03/07 a.saka UcComboBox() 項目の追加位置を最後から選択項目の後に変更
 * @version 06/03/11 a.saka _isShow()のバグ修正
 * @version 06/08/16 a.saka _getElement()で複数のIDが検索された時の対策 _setClassName(),_show()..._getTop()
 * @version 06/08/17 a.saka undefinedの定義方法を変更 "undefined"をundefinedに変更
 * @version 06/08/31 a.saka UcComboBox追加項目を先頭に追加するオプションを追加
 * @version 06/08/31 a.saka UcDocumentクラスに_getWidth(),_setWidth()の追加
 * @version 06/08/31 a.saka UcWindowクラスに_getWidth(),_getHeight()の追加
 * @version 06/09/02 a.saka UcDocumentクラスに_getHeight(),_setHeight()の追加
 * @version 06/09/15 a.saka UcComboBox追加項目を先頭に追加するオプションを先頭の定数で切替
 * @version 06/09/15 a.saka Jsp上のJavascriptと変数名が重なる可能性がある為、変数iをvar定義
 * @version 06/09/15 a.saka osbe29class.jsを複写しUcComboBox_ADDITIONAL_POSITION = "ahead"に
 * @version 06/10/02 a.saka UcComboBox追加項目を最後に追加するオプション'last'を追加
 * @version 07/10/11 t.saka エラーメッセージに各関数名付加
 * @version 07/10/11 t.saka 関数「isExist」作成
 * @version 08/12/04 t.saka 関数「include」作成
*/

//   ↓ 06/09/15 a.saka add
/* **********************************************
 * * 処理オプション
 * **********************************************
*/
// ***** UcComboBox_ADDITIONAL_POSITION *****
//    UcComboBoxに項目を追加する位置の選択
//          back:選択位置の次へ、選択されていないばあいは最後へ追加
//			ahead:選択位置の前へ、選択されていないばあいは最初へ追加
//			top:常に先頭へ追加
//var UcComboBox_ADDITIONAL_POSITION = "back";
var UcComboBox_ADDITIONAL_POSITION = "ahead";
//var UcComboBox_ADDITIONAL_POSITION = "top";
//   ↑ 06/09/15 a.saka add

var browser = new UcBrowser();
var doc = new UcDocument();

/**
 * *************************************
 * * UcForamat class ==UcForamat==
 * *************************************
 * 	数値、文字列のフォーマット編集用クラス。
 *  <p>
 * @author (C)2006-2006 UI System Co,.Ltd. All right reserved.
 * @version 06/08/23 a.saka 新規作成
 */
function UcFormat() {
	/**
	* コンストラクタ
	* @return	this
	*/

	/**
 	* 数値の３桁カンマ編集(小数点、負数対応）
       	* <p>
       	* @param str : 数値の文字列表現
	* @return カンマ編集された文字列
       	*/
	UcFormat.prototype.printf = _printf;
	function _printf(str) {

		var strNum = "" + str; 					// 確実に文字列型に変換する。例では "95839285734.3245"
    		var pos = strNum.indexOf("."); 				// 小数点の位置を0オリジンで求める。例では 11
    		if (pos < 0) { 						// 小数点が見つからなかった時
        		pos = strNum.length; 				// 仮想的な小数点の位置とする
    		}
    		var strDest = strNum.substring(pos, strNum.length); 	// 小数点の桁と小数点より右側の文字列。例では ".3245"
			var i;					//       06/09/15 a.saka add
    		for (var i = 0; i < pos; i++) { 			// (10 ^ i) の位について
        		var strKeta = strNum.substring(pos - 1 - i, pos - 1 - i + 1); 	// (10 ^ i) の位のひとつの桁の数字。例では "4", "3", "7", "5", "8", "2", "9", "3", "8", "5", "9" の順になる。
        		if (strKeta < "0" || strKeta > "9") { 		// 数字以外のもの(符合など)が見つかった
            			strDest = strNum.substring(0, pos - i) + strDest; 		// 残りを全部付加する
            			break;
        		}
        		if (i > 0 && i % 3 == 0) { 			// 3 桁ごと、ただし初回は除く
            			strDest = "," + strDest; 		// カンマを付加する
        		}
        		strDest = strKeta + strDest; 			// 数字を一桁追加する。
    		}
    		return strDest; 					// 例では "95,839,285,734.3245"

	}

	return this;

}

/**
 * *************************************
 * * Browser manager class ==UcBrowser==
 * *************************************
 * 	Browserを管理するクラス。
 *  <p>
 * @author (C)2005-2006 UI System Co,.Ltd. All right reserved.
 * @version 06/02/14 a.saka 新規作成
 */
function UcBrowser() {
	/**
	* コンストラクタ
	* @return	this
	*/

	/**
    	 * ブラウザの種類判定。オペラか？
	 *	_isOpera
         * <p>
         * @return true:Opera、false:Opera以外
         */
	UcBrowser.prototype.isOpera = _isOpera;
	function _isOpera() {
		return window.opera;
	}

	/**
    	 * ブラウザの種類判定。IEか？
	 *	_isIE
         * <p>
         * @return true:IE、false:IE以外
         */
	UcBrowser.prototype.isIE = _isIE;
	function _isIE() {
		return document.all;
	}

	/**
    	 * ブラウザの種類判定。Firefox？
	 *	_isFirefox
         * <p>
         * @return true:Firefox、false:Firefox以外
         */
	UcBrowser.prototype.isFirefox = _isFirefox;
	function _isFirefox() {
		return document.getElementById;
	}

	/**
    	 * ブラウザの種類判定。NS6以降？
	 *	_isN6
         * <p>
         * @return true:N6、false:N6以外
         */
	UcBrowser.prototype.isN6 = _isN6;
	function _isN6() {
		if (document.all) {
			false;
		} else {
			return document.getElementById;
		}
	}

	/**
    	 * ブラウザの種類判定。NS4？
	 *	_isN4
         * <p>
         * @return true:N4、false:N4以外
         */
	UcBrowser.prototype.isN4 = _isN4;
	function _isN4() {
		return document.layers;
	}

	return this;

}

/**
 * *************************************
 * * UcDragAndMove class ==UcDragAndMove==
 * *************************************
 * 	ドラッグAndドロップ制御クラス。
 *  <p>
 * @author (C)2005-2006 UI System Co,.Ltd. All right reserved.
 * @version 06/02/26 a.saka 新規作成
 */
function UcDragAndMove(id,targetDoc) {
	/**
	* コンストラクタ
	* @param        id : オブジェクトのID
	* @param        targetDoc : ドキュメント
	* @return	this
	*/

	this.targetObj = null;
	this.offsetX;
	this.offsetY;
	this.onDrag = false;

	var element = doc.getElement(id,targetDoc);
	if (element==null || element==undefined) {
		alert("*Error [UcDragAndMove] 要素" + id + "がありません");
		return;
	}
	this.targetObj = element;

	/**
     	* Drag
	*	_drag
     	* <p>
     	* @param  e      
   	*/
	UcDragAndMove.prototype.drag = _drag;
	function _drag(e){
		this.onDrag = true;
		if (browser.isIE()) {
			// IE
			this.offsetX = event.offsetX;
      			this.offsetY = event.offsetY;
		} else if(browser.isN4()) {
			// NN4
		      	this.offsetX = e.layerX;
      			this.offsetY = e.layerY;
		} else {
			// NN6,firefox
			this.offsetX = e.pageX - parseInt(targetObj.style.left);
      			this.offsetY = e.pageY - parseInt(targetObj.style.top);
		}
		return false;
	}

	/**
     	* Move
	*	_move
     	* <p>
     	* @param  e
   	*/
	UcDragAndMove.prototype.move = _move;
	function _move(e){
//   		if (this.targetObj==null) {
//      			return true;
//	   	}
//		if (this.onDrag==false) {
//      			return true;
//		}
//		if (browser.isIE()) {
//			// IE
//			document.all["CaptionFloating"].style.left = document.all["CaptionFloating"].style.left + 100

//			document.all["CaptionFloating"].style.left = event.clientX - this.offsetX + document.body.scrollLeft;
//			document.all["CaptionFloating"].style.top  = event.clientY - this.offsetY + document.body.scrollTop;
//		      	this.targetObj.style.left = event.clientX - this.offsetX + document.body.scrollLeft;
//     			this.targetObj.style.top = event.clientY - this.offsetY + document.body.scrollTop;

//		if (document.layers) {
//			document.layers["Layer" + this.name].height(height);
//			document.layers["Layer" + this.name].width(width);
//			document.layers["Layer" + this.name].moveTo(x1,y1);
//		} else if (document.all) {
//			document.all["Layer" + this.name].style.height  = height;
//			document.all["Layer" + this.name].style.width  = width;
//			document.all["Layer" + this.name].style.left = x1;
//			document.all["Layer" + this.name].style.top  = y1;
//		}



//		} else if(browser.isN4()) {
//			// NN4
//		      	this.targetObj.pageX = e.pageX - this.offsetX;
//      			this.targetObj.pageY = e.pageY - this.offsetY;
//		} else {
//			// NN6,firefox
//			this.targetObj.style.left = e.pageX - this.offsetX;
//     			this.targetObj.style.top = e.pageY - this.offsetY;
//		}

		return false;
	}

	/**
     	* Up
	*	_up
     	* <p>
     	* @param  e
   	*/
	UcDragAndMove.prototype.up = _up;
	function _up(e){
		this.onDrag = false;
	}

	return this;

}

/**
 * *************************************
 * * UcWindow class ==UcWindow==
 * *************************************
 * 	window
 *  <p>
 * @author (C)2005-2006 UI System Co,.Ltd. All right reserved.
 * @version 06/02/26 a.saka 
 */
function UcWindow() {
	/**
	* @return	this
	*/

	/**
	*	_scroll
     	* <p>
     	* @param  x  
     	* @param  y 
        * @param  move 
        * @param  speed 
   	*/
	UcWindow.prototype.scroll = _scroll;
	function _scroll(x,y,move,speed){
		window.scrollBy(x, y); 
	}

	/**
     	* ウインドウの横幅の取得。
	*	_getWidth
     	* <p>
     	* @return 横幅。
     	*/
	UcWindow.prototype.getWidth = _getWidth;
	function _getWidth() {
		if (browser.isIE()) {
			return document.body.clientWidth;
		} else  {
			alert("*Error [getWidth] サポートしていないブラウザです");
			return null;
		}
	}

	/**
     	* ウインドウの高さの取得。
	*	_getHeight
     	* <p>
     	* @return 高さ。
     	*/
	UcWindow.prototype.getHeight = _getHeight;
	function _getHeight() {
		if (browser.isIE()) {
			return document.body.clientHeight;
		} else  {
			alert("*Error [getHeight] サポートしていないブラウザです");
			return null;
		}
	}

	/**
     	* ウインドウのトップ位置の取得。
	*	_getTop
     	* <p>
        * @param  doc  ドキュメント。
     	* @return トップ位置。
     	*/
	UcWindow.prototype.getTop = _getTop;
	function _getTop(doc) {
		if (browser.isIE()) {
			if (doc==undefined) {
				return document.body.scrollTop;
			} else {
//				return doc.body.scrollTop;
				return document.body.scrollTop;

			}
		} else  {
			alert("*Error [getTop] サポートしていないブラウザです");
			return null;
		}
	}

	/**
     	* ウインドウのレフト位置の取得。
	*	_getLeft
     	* <p>
        * @param  doc  ドキュメント。
     	* @return レフト位置。
     	*/
	UcWindow.prototype.getLeft = _getLeft;
	function _getLeft(doc) {
		if (browser.isIE()) {
			if (doc==undefined) {
				return document.body.scrollLeft;
			} else {
				return doc.body.scrollLeft;
			}
		} else  {
			alert("*Error [getLeft] サポートしていないブラウザです");
			return null;
		}
	}

	return this;
}

/**
 * *************************************
 * * UcLocation class ==UcLocation==
 * *************************************
 * 	locationのクロスブラウザ用クラス。
 *  <p>
 * @author (C)2005-2006 UI System Co,.Ltd. All right reserved.
 * @version 06/02/14 a.saka 新規作成
 */
function UcLocation() {
	/**
	* コンストラクタ
	* @return	this
	*/

	/**
 	* location.hrefのクロスブラウザ対応
       	* <p>
       	* @param url : ｕｒｌ
       	*/
	UcLocation.prototype.href = _href;
	function _href(url) {
		if (browser.isFirefox) {
			location.href = url;
		} else {
			location.href(url);
		}
	}

	return this;

}

/**
 * *************************************
 * * Cookie manager class =UcCookie=
 * *************************************
 * 	Cookieの操作を管理するクラス。
 *  <p>
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/18 a.saka 新規作成
 */
function UcCookie() {

	/**
	* コンストラクタ
	* @return	this
    */

	/**
    * Cookie値のオフセットによる取得
	*	_getVal
    * <p>
    * @param  offset データの開始位置のオフセット値
    * @return データ値
    */
	UcCookie.prototype.getVal = _getVal;
	function _getVal(offset) {
		var endstr = document.cookie.indexOf (";", offset);
		if (endstr == -1) {
			endstr = document.cookie.length;
		}
		return unescape(document.cookie.substring(offset, endstr));
	}
	
	/**
    * Cookie値のキーによる取得。
	*	_get
    * <p>
    * @param  name クッキーのキー
    * @param  defaultValue 省略時に戻すデータ
    * @return データ値。値がない場合null
    */
	UcCookie.prototype.get = _get;
	function _get(name,defaultValue) {
		if (defaultValue==null || defaultValue==undefined) {
			defaultValue="";	
		}
		var arg = name.toLowerCase() + "=";
		var alen = arg.length;
		var clen = document.cookie.length;
		var i = 0;
		while (i < clen) {
			var j = i + alen;
			if (document.cookie.substring(i, j) == arg) {
				var sValue = _getVal(j);
				if ( sValue == null || sValue == undefined ) {
					sValue = defaultValue	
				}
				return sValue;
			}
			i = document.cookie.indexOf(" ", i) + 1;
			if (i == 0) break;
		}
		return defaultValue;
	}

	/**
    * Cookie値の値の設定。
	*	_set
    * <p>
    * @param  name  クッキーのキー
	* @param  value クッキーのデータ
	* @param  expires 有効期間。
	*             	null:空白の時、３０日を仮定
	*		数字の時、秒として処理。0の時保存しない
	*		上記以外のとき、日時が指定されているものとみなす
	*			形式は、Wdy,DD-Mon-YYYY hh:mm:ss GMT
	* @param path	クッキーが有効になるパス。「/」が指定されると常に有効。
	* @param domain クッキーを送信するドメインを制限する時指定。デフォルトは	*		クッキー応答を生成したサーバ。
	* @param secure この値を指定するとホストとの経路が安全なときのみ
	*			送られます。通常SSLの時。
     	*/
	UcCookie.prototype.set = _set;
	function _set(name, value, expires, path, domain, secure) {
		xDate = new Date();
		if (expires == null) {
			xDate.setDate(xDate.getDate() + 30);
			sDate = xDate.toGMTString();
		} else if (expires=="") {
			xDate.setDate(xDate.getDate() + 30);
			sDate = xDate.toGMTString();
		} else if (isNaN(expires)) {
			sDate = expires;
		} else {
			xDate.setTime(xDate.getTime() + eval(expires)*1000 );
			sDate = xDate.toGMTString();
		}
		document.cookie = name.toLowerCase() + "=" + escape (value) +
			"; expires=" + sDate +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
	}

	/**
    * Cookie値のキーと項目名による取得。
	*	_getItem
    * <p>
    * @param  name クッキーのキー
    * @param  itemName クッキーの中の項目名
    * @param  defaultValue 省略時に戻すデータ
    * @return データ値。値がない場合null
    */
	UcCookie.prototype.getItem = _getItem;
	function _getItem(name,itemName,defaultValue) {
		if (defaultValue==null || defaultValue==undefined) {
			defaultValue="";	
		}
		//クッキー全体の取得
		var sCookieValue = _get(name,defaultValue);

		if (sCookieValue==defaultValue) {
			return sCookieValue;
		}
		var sStartSep = "/-" + itemName.toLowerCase() + "*";
		var sEndSep = "-/";	//アイテムの区切り文字（終了）

		var iIndStart = sCookieValue.indexOf(sStartSep);
		if (iIndStart == -1){
			return "";
		} else {
			var iIndEnd = sCookieValue.indexOf(sEndSep,iIndStart);
			var iStartLen = sStartSep.length;
			var sCookieItem = sCookieValue.substring(iIndStart + iStartLen,iIndEnd);
			return sCookieItem;
		}
	}

	/**
    * Cookie値のキーと項目名による値の設定。
	*	_setItem
    * <p>
    * @param  name  クッキーのキー
    * @param  itemName クッキーの中の項目名
	* @param  value クッキーのデータ
	* @param  expires 有効期間。
	*             	null:空白の時、３０日を仮定
	*		数字の時、秒として処理。0の時保存しない
	*		上記以外のとき、日時が指定されているものとみなす
	*			形式は、Wdy,DD-Mon-YYYY hh:mm:ss GMT
	* @param path	クッキーが有効になるパス。「/」が指定されると常に有効。
	* @param domain クッキーを送信するドメインを制限する時指定。デフォルトは	
	*						クッキー応答を生成したサーバ。
	* @param secure この値を指定するとホストとの経路が安全なときのみ
	*			送られます。通常SSLの時。
    */
	UcCookie.prototype.setItem = _setItem;
	function _setItem(name, itemName, value, expires, path, domain, secure) {
		if (itemName == ""){
	    	return;
	    }
		itemName = itemName.toLowerCase();
	    //既存のクッキーの中に名前が存在するか否か
	    var sStartSep = "/-";	//アイテムの区切り文字（開始）
	    var sEndSep = "-/";		//アイテムの区切り文字（終了）
		var sCookieValue = _get(name);
		if ( sCookieValue == null || sCookieValue == undefined ) {
			sCookieValue = "";
		}
		var sTmp = "";
		var sitemName = sStartSep + itemName + "*";
		var iIndKey = sCookieValue.indexOf(sitemName);
	    if(iIndKey != -1){
	    	//存在する場合
	        var iIndStart = iIndKey + sitemName.length;
	        var iIndEnd = sCookieValue.indexOf(sEndSep,iIndStart);
	        var sBeforeSTR = sCookieValue.substring(0,iIndStart);
	        var sAfterSTR = sCookieValue.substring(iIndEnd,sCookieValue.length);
	        sTmp = sBeforeSTR + value + sAfterSTR;
		} else {
	    	//存在しない場合
	        //後ろに付加
	        sTmp = sStartSep + itemName + "*" + value + sEndSep;
	        sTmp = sCookieValue + sTmp;
	    }
		_set(name, sTmp, expires, path, domain, secure);
	}

	/**
    * Cookie値の削除。
	*	_del
    * <p>
    * @param name  クッキーのキー
	* @param path	クッキーが有効になるパス。「/」が指定されると常に有効。
	* @param domain クッキーを送信するドメインを制限する時指定。デフォルトは	*		クッキー応答を生成したサーバ。
     	*/
	UcCookie.prototype.del = _del;
	function _del(name,path,domain) {
		if (_get(name)) {
			document.cookie = name.toLowerCase() + "=" +
				((path) ? "; path=" + path : "") +
				((domain) ? "; domain=" + domain : "") +
				"; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
	}

	return this;

}

/**
 * *************************************
 * * Radio button manager class =UcRadioButton=
 * *************************************
 * 	Radio buttonの操作を管理するクラス。
 *  <p>
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/18 a.saka 新規作成
 */
function UcRadioButton(obj) {

	/**
	* コンストラクタ
	* @param  obj ラジオボタンのオブジェクト
	* @return	this
     	*/
	if ( obj == null ) {
		alert("オブジェクトが指定されていません");
		return this;
	}
	this.obj = obj;

	/**
     	* 値の取得。
	*	_getValue
     	* <p>
     	* @return データ値。チェックされていない場合、null
     	*/
	UcRadioButton.prototype.getValue = _getValue;
	function _getValue() {
		var i;
		for (i=0;i<obj.length;i++){
			if (obj[i].checked){
				return obj[i].value;
			}
		}
		return null;
	}

	/**
     	* 値の設定。
	*	_setValue
     	* <p>
     	* @param 設定するデータ値。
     	*/
	UcRadioButton.prototype.setValue = _setValue;
	function _setValue(value) {
		var i;
		for (i=0;i<obj.length;i++){
			if (obj[i].value == value){
				obj[i].checked = true;
			}
		}
	}

	/**
     	* チェックされているインデックスの取得。
	*	_getIndex
     	* <p>
     	* @return インデックス。チェックされていない場合、-1l
     	*/
	UcRadioButton.prototype.getIndex = _getIndex;
	function _getIndex() {
		var i;
		for (i=0;i<obj.length;i++){
			if (obj[i].checked){
				return i;
			}
		}
		return -1;
	}

	/**
     	* ラジオボタンの値をクッキーに設定。
	*	_setCookie
     	* <p>
     	* @param...UcCookieクラスのsetメソッドと同じ(valueを除く）
     	*/
	UcRadioButton.prototype.setCookieItem = _setCookieItem;
	function _setCookieItem(name, itemname, expires, path) {
		var cookie = new UcCookie();
		cookie.setItem(name,itemname,_getValue(),expires, path);
	}

	return this;

}

/**
 * *************************************
 * * Combo box/List box manager class =UcComboBox=
 * *************************************
 * 	Combo box/List Boxの操作を管理するクラス。（複数値選択対応）
 *  <p>
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/18 a.saka 新規作成
 * @version 06/03/07 a.saka 項目の追加位置を最後から選択項目の後に変更
 * @version 06/08/31 a.saka 項目の追加位置を決めるオプションの追加
 */
function UcComboBox(obj,psAdditionalPosition) {

	/**
	* コンストラクタ
	* @param  obj コンボボックスのオブジェクト
	* @param  psAdditionalPosition 
	*          back:選択位置の次へ、選択されていないばあいは最後へ追加
	*          ahead:選択位置の前へ、選択されていないばあいは最初へ追加
	*          top:常に先頭へ追加
        *          last:常に最後へ追加
	* @return	this
	*/
	if ( obj == null ) {
		alert("オブジェクトが指定されていません");
		return this;
	}
	this.obj = obj;
//   ↓ 06/09/15 a.saka rep
	this.strAdditionalPosition = UcComboBox_ADDITIONAL_POSITION;
	if (psAdditionalPosition==undefined) {
	} else {
		this.strAdditionalPosition = psAdditionalPosition;
	}
//   ↑ 06/09/15 a.saka rep

	/**
	 * コンボボックスの項目数を返す
	 * _length
	 * <p>
	*/
	UcComboBox.prototype.length = _length;
	function _length(){
		return obj.length;
	}
	/**
     * すべてのオプションを選択する
     * _selectAllOptions
     * <p>
	*/
	UcComboBox.prototype.selectAllOptions = _selectAllOptions;
	function _selectAllOptions(){
		var vOption = obj.options;
		var i;
		for (i = 0; i < vOption.length;i++) {
			vOption[i].selected = true;
		} 
	}

	/**
	 * リストボックスに他のリストボックスで選択された項目を追加する
	 *	_addOptions
	 * <p>
	 *	@param	fromList : 複写元のリストボックス
	 *	@param  action : all=全件選択
	 */
	UcComboBox.prototype.addOptions = _addOptions;
	function _addOptions(fromListBox,action){
		var vFromOptions = fromListBox.options;
		var vToOptions = obj.options;
		var i;
		for( i = 0 ; i < vFromOptions.length ; i ++ ){
			var Sel = vFromOptions[i];
			// 追加する要素の選択
			if (action != 'all' ) {
				if( ! Sel.selected || ! Sel.value ) continue;
			}
			var f = false;
			var List = vToOptions.length;
			// 同じ要素が既にある場合、追加しない
			for( j = 0 ; j < List ; j ++ ){
				if( vToOptions[j].value == Sel.value )
				{
					f = true;
					break;
				}
			}
			if( f ) continue;
			// 要素の追加
			var vOption = document.createElement( "OPTION" );
			vOption.value = Sel.value;
			vOption.text = Sel.text;
			vOption.selected = true;
			obj.add(vOption,List );
		}
	}
	/**
	 * リストボックスに指定の値項目を追加する
	 *	_addOptionsValue
	 * <p>
	 *	@param	psValue : 追加する値
	 *	@param	psShow : 表示値
	 */
	UcComboBox.prototype.addOptionsValue = _addOptionsValue;
	function _addOptionsValue(psValue,psShow){
		var vToOptions = obj.options;
		var List = vToOptions.length;
		//   ↓ 06/03/07 a.saka add
		//対象にvalue、show共に空データがあった場合削除する
		var i;
		for( i = 0 ; i < List ; i ++ ){
			if(vToOptions[i].value =="" && vToOptions[i].text ==""){
				vToOptions.remove(i);
				continue;
			}
		}
		//選択位置の取得、同じ要素の有無
		List = vToOptions.length;
		var isExist = false;			// true:同じ要素がある
		var nSelectedTop = -1;			// 最初の選択
		var nSelectedBottom = -1;		// 最終の選択
		var i;
		for( i = 0 ; i < List ; i ++ ){
			if (vToOptions[i].selected == true) {
				if (nSelectedTop==-1) {
					nSelectedTop = i;
				}
				nSelectedBottom = i;
			};
			if( vToOptions[i].value == psValue )
			{
				isExist = true;
			}
		}
		//   ↑ 06/03/07 a.saka add
		
		// 同じ要素が既にある場合、追加しない
		if(isExist){
		} else {
			// 要素の追加
			var vOption = document.createElement( "OPTION" );
			vOption.value = psValue;
			vOption.text = psShow;
			vOption.selected = true;
//   ↓ 06/09/15 a.saka add
			if (this.strAdditionalPosition=="top") {
				// 常に先頭へ追加
				obj.add(vOption,0);
			} else if(this.strAdditionalPosition=="last") {				//   ↓ 06/10/02 a.saka add
				obj.add(vOption,List );
			} else if(this.strAdditionalPosition=="back") {
				// 選択位置の次へ、選択されていないばあいは最後へ追加
				if (nSelectedBottom==-1) {			//       06/03/07 a.saka add
					obj.add(vOption,List );
				} else {							//   ↓ 06/03/07 a.saka add
					obj.add(vOption,++nSelectedBottom);
				}
			} else {
				// 選択位置の前へ、選択されていないばあいは最初へ追加
				if (nSelectedTop==-1) {
					obj.add(vOption,0);
				} else {					//   ↓ 06/03/07 a.saka add
					obj.add(vOption,nSelectedTop);
				}
			}
//   ↑ 06/09/15 a.saka add
//   ↓06/09/15  a.saka del
//			if (this.bAddToHead == true) {				//   ↓ 06/08/31 a.saka add
//				// 常に先頭へ追加
//				obj.add(vOption,0);
//			} else {						//   ↑ 06/08/31 a.saka add
//				if (nSelectedBottom==-1) {			//       06/03/07 a.saka add
//					obj.add(vOption,List );
//				} else {					//   ↓ 06/03/07 a.saka add
//					obj.add(vOption,++nSelectedBottom);
//				}
//			}							//       06/08/31 a.saka add
//   ↑ 06/09/15 a.saka del
		}
	}

	/**
     	* 値の設定。
	*	_setValue
     	* <p>
     	* @param value:データ値。
     	*/
	UcComboBox.prototype.setValue = _setValue;
	function _setValue(value) {
		var options = obj.options;
		var i;
		for (i=0;i<options.length;i++){
			if (options[i].value==value){
				options[i].selected=true;
			}
		}
	}

	/**
     	* 位置による値の設定。
	*	_setValueByPosition
     	* <p>
     	* @param position:位置。０〜
     	*/
	UcComboBox.prototype.setValueByPosition = _setValueByPosition;
	function _setValueByPosition(position) {
		var options = obj.options;
		if (position < options.length) {
			options[position].selected=true;
		}
	}

	/**
     	* 値の取得。
	*	_getValue
     	* <p>
     	* @return データ値。
     	*/
	UcComboBox.prototype.getValue = _getValue;
	function _getValue() {
		var options = obj.options;
		var i;
		for (i=0;i<options.length;i++){
			if (options[i].selected){
				return options[i].value;
			}
		}
		return null;
	}

	/**
	 * 選択された要素を削除します。
	 *	_delOptions
	 * <p>
	 */
	UcComboBox.prototype.delOptions = _delOptions;
	function _delOptions(){
		var Del = obj.options;
		var i;
		for( i = 0 ; i < Del.length ; i ++ ){
			if( Del[i].selected )
			{
				Del.remove( i ); i -= 1;
			}
		}
	
	}

	/**
	 * 全ての要素を削除します。
	 *	_delAllOptions
	 * <p>
	 */
	UcComboBox.prototype.delAllOptions = _delAllOptions;
	function _delAllOptions(){
		var Del = obj.options;
		var i;
		for( i = 0 ; i < Del.length ; i ++ ){
			Del.remove( i ); i -= 1;
		}
	
	}

	/**
	 * 入力不可にします。
	 *	_disable
	 * <p>
	 */
	UcComboBox.prototype.disable = _disable;
	function _disable(){
		obj.disabled = true;
		obj.style.background = COLOR_NORMAL_BGCOLOR;
	}

	/**
	 * 入力可にします。
	 *	_enable
	 * <p>
	 */
	UcComboBox.prototype.enable = _enable;
	function _enable(){
		obj.disabled = false;
		obj.style.background = COLOR_NORMAL;
	}

	/**
     * リストボックスの全要素をリスト形式で取得します。
	 *	_getAllValues
     * <p>
	*/
	UcComboBox.prototype.getAllValues = _getAllValues;
	function _getAllValues(){
		var vOption = obj.options;
		var strList = new String();
		strList = "";
		var i;
		for (i = 0; i < vOption.length;i++) {
			if (strList!="") {
				strList = strList + ",";
			}
			strList = strList + vOption[i].value;
		}
		return strList; 
	}


	/**
     * リストボックスの行を上に移動します。
	 *	_up
     * <p>
	*/
	UcComboBox.prototype.up = _up;
	function _up(){
		var i;
		for( i = 0 ; i < obj.length ; i ++ ){
			if( obj[i].selected ){
				if( i <= 0 ) { 
					break; 
				}
				var sel = obj[i];
				var list = document.createElement( "OPTION" );
				list.value = sel.value;
				list.text = sel.text
				list.selected = true;
				obj.remove( i );
				obj.add( list, i - 1 );
			}
		}
	}

	/**
     * リストボックスの行を下に移動します。
	 *	_down
     * <p>
	*/
	UcComboBox.prototype.down = _down;
	function _down(){
		var i;
		for( i = obj.length - 1 ; i >= 0 ; i -- ){
			if( obj[i].selected ){
				if( i >= obj.length - 1 ) { 
					break; 
				}
				var sel = obj[i];
				var list = document.createElement( "OPTION" );
				list.value = sel.value;
				list.text = sel.text
				list.selected = true;
				obj.remove( i );
				obj.add( list, i + 1 );
			}
		}
	}

	return this;

}

/**
 * *************************************
 * * Document manager class =UcDocument=
 * *************************************
 * 	Htmlドキュメントの操作を管理するクラス。
 *  <p>
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/19 a.saka 新規作成
 */
function UcDocument() {

	/**
	* コンストラクタ
	* @return	this
   	*/

	/**
     * ドキュメントのclassNameを設定する。
	 *	_setClassName
     * <p>
     * @param  id    Htmlドキュメントの要素のID
	 * @param  doc   ドキュメント（省略可）  ex:parent.document	
	*/
	UcDocument.prototype.setClassName = _setClassName;
	function _setClassName(id,name,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [setClassName] 要素" + id + "がありません");
			return;
		}
		if (elements.length==undefined) {
			elements.className=name;
		} else {
			var i;
			for(var i=0; i<elements.length; i++){
  				var element = elements[i];
				element.className=name;
			}
		}
	}

	/**
	 * ドキュメントの要素が存在するか否か。
	 *	_exist
	 * <p>
	 * @param  id    Htmlドキュメントの要素のID
	 * @param  doc   ドキュメント（省略可）  ex:parent.document
	 * @return true:存在する、false:存在しない
	*/
	UcDocument.prototype.isExist = _isExist;
	function _isExist(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			return false;
		} else {
			return true;
		}
	}
	/**
	 * ドキュメントの要素を表示する。
	 *	_show
	 * <p>
	 * @param  id    Htmlドキュメントの要素のID
	 * @param  doc   ドキュメント（省略可）  ex:parent.document
	 * @param  display  displayの要素 none,block,inline
	*/
	UcDocument.prototype.show = _show;
	function _show(id,doc,display){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [show] 要素" + id + "がありません");
			return;
		}
		var strDisplay;
		if (display==undefined) {
			strDisplay = "block";
		} else {
			strDisplay = display;
		}

		if (elements.length==undefined) {
			elements.style.display=strDisplay;
		} else {
			var i;
			for(var i=0; i<elements.length; i++){
  				var element = elements[i];
				element.style.display=strDisplay;
			}
		}
	}

	/**
	 * ドキュメントの要素を表示されているかを判定する。
	 *	_isShow
    	 * <p>
    	 * @param  id    Htmlドキュメントの要素のID
	 * @param  doc   ドキュメント（省略可）  ex:parent.document
	 * @return true:表示、false:非表示	
	*/
	UcDocument.prototype.isShow = _isShow;
	function _isShow(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [isShow] 要素" + id + "がありません");
			return;
		}
		if (elements.length==undefined) {
			if (elements.style.visible=="show") {
				return true;
			} else if (elements.style.display=="block") {
				return true;
			} else {
				return false;
			}
		} else {
			// エレメントが複数の時、ひとつでも表示されていると真になる
			var i;
			for(var i=0; i<elements.length; i++){
  				var element = elements[i];
				if (element.style.visible=="show") {
					return true;
				} else if (element.style.display=="block") {
					return true;
				} else {
					return false;
				}
			}
		}
	}

	/**
     * ドキュメントの要素を非表示にする。
	 *	_hide
     * <p>
     * @param  id    Htmlドキュメントの要素のID
	 * @param  doc   ドキュメント（省略可）  ex:parent.document	
	*/
	UcDocument.prototype.hide = _hide;
	function _hide(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [hide] 要素" + id + "がありません");
			return;
		}
		try {
			if (elements.length==undefined) {
				elements.style.display="none";
			} else {
				var i;
				for(var i=0; i<elements.length; i++){
  					var element = elements[i];
					element.style.display="none";
				}
			}
		} catch (e) {
			alert("[_hide]エラーが発生しました");
			return;
		}
	}

	/**
     	* ドキュメントの要素のバックグラウンドカラーの設定。
	*	_setBackgroundColor
     	* <p>
     	* @param  id    Htmlドキュメントの要素のID
	* @param  color セットするバックグラウンドカラー
	* @param  doc   ドキュメント（省略可）  ex:parent.document	
     	*/
	UcDocument.prototype.setBackgroundColor = _setBackgroundColor;
	function _setBackgroundColor(id,color,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [setBackgroundColor] 要素" + id + "がありません");
			return;
		}
		if (elements.length==undefined) {
			elements.style.backgroundColor=color;
		} else {
			var i;
			for(var i=0; i<elements.length; i++){
  				var element = elements[i];
				element.style.backgroundColor=color;
			}
		}
	}

	/**
     	* ドキュメントの要素の内容を設定。
	*	_setText
     	* <p>
     	* @param  id    Htmlドキュメントの要素のID
	* @param  text  セットするテキストデータ
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
     	*/
	UcDocument.prototype.setText = _setText;
	function _setText(id,text,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [setText] 要素" + id + "がありません");
			return;
		}
		if (elements.length==undefined) {
			elements.innerHTML=text;
		} else {
			var i;
			for(var i=0; i<elements.length; i++){
  				var element = elements[i];
				element.innerHTML=text;
			}
		}
	}

	/**
     	* ドキュメントの要素の内容を取得。
	*	_getText
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
	* @return String  要素のテキストデータ
   	*/
	UcDocument.prototype.getText = _getText;
	function _getText(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [getText] 要素" + id + "がありません");
			return "";
		}
		var strReturn = "";
		if (elements.length==undefined) {
			strReturn = elements.innerHTML;
		} else {
			var i;
			for(var i=0; i<elements.length; i++){
  				var element = elements[i];
				strReturn = strReturn + element.innerHTML;
			}
		}
		return	strReturn;
	}

	/**
     	* ドキュメントの要素の幅を設定。
	*	_setWidth
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  width   要素の幅
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
   	*/
	UcDocument.prototype.setWidth = _setWidth;
	function _setWidth(id,width,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [setWidth] 要素" + id + "がありません");
			return "";
		}
		if (elements.length==undefined) {
			elements.width = width;
		} else {
			alert("*Error [setWidth] 要素" + id + "が複数あります");
		}
	}

	/**
     	* ドキュメントの要素の幅を取得。
	*	_getWidth
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
	* @return 要素の幅
   	*/
	UcDocument.prototype.getWidth = _getWidth;
	function _getWidth(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [getWidth] 要素" + id + "がありません");
			return "";
		}
		if (elements.length==undefined) {
			return	elements.width;
		} else {
			alert("*Error [getWidth] 要素" + id + "が複数あります");
			return "";
		}
	}

	/**
     	* ドキュメントの要素の高さを設定。
	*	_setHeight
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  height  要素の高さ
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
   	*/
	UcDocument.prototype.setHeight = _setHeight;
	function _setHeight(id,height,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [setHeight] 要素" + id + "がありません");
			return "";
		}
		if (elements.length==undefined) {
			elements.height = height;
		} else {
			alert("*Error [setHeight] 要素" + id + "が複数あります");
		}
	}

	/**
     	* ドキュメントの要素の高さを取得。
	*	_getHeight
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
	* @return 要素の高さ
   	*/
	UcDocument.prototype.getHeight = _getHeight;
	function _getHeight(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [getHeight] 要素" + id + "がありません");
			return "";
		}
		if (elements.length==undefined) {
			return	elements.height;
		} else {
			alert("*Error [getHeight] 要素" + id + "が複数あります");
			return "";
		}
	}

	/**
	* ドキュメント要素のLeft座標を取得する
	*	_getLeft
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
	* @return 要素のLeft座標
	*/
	UcDocument.prototype.getLeft = _getLeft;
	function _getLeft(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [getLeft] 要素" + id + "がありません");
			return "";
		}
		if (elements.length==undefined) {
			if (browser.isIE()) {
				// IE
			      	return elements.style.left;
			} else if(browser.isN4()) {
				// NN4
		      		return elements.pageX;
			} else {
				// NN6,firefox
		      		return elements.style.left;
			}
		} else {
			alert("*Error [getLeft] 要素" + id + "が複数あります");
			return "";
		}
	}

	/**
	* ドキュメント要素のTop座標を取得する
	*	_getTop
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
	* @return  要素のTop座標
	*/
	UcDocument.prototype.getTop = _getTop;
	function _getTop(id,doc){
		var elements = _getElement(id,doc);
		if (elements==null) {
			alert("*Error [getTop] 要素" + id + "がありません");
			return "";
		}

		if (elements.length==undefined) {
			if (browser.isIE()) {
				alert("a010");
				// IE
			      	return elements.style.top;
			} else if(browser.isN4()) {
				// NN4
		      		return elements.pageY;
			} else {
				// NN6 or firefox
		      		return elements.style.top;
			}
		} else {
			alert("*Error [getTop] 要素" + id + "が複数あります");
			return "";
		}
	}

	/**
     	* ドキュメントの要素の検索。
	*	_getElement
     	* <p>
     	* @param  id      Htmlドキュメントの要素のID
	* @param  doc	  ドキュメント（省略可）  ex:parent.document	
	* @return Object  Html要素
   	*/
	UcDocument.prototype.getElement = _getElement;
	function _getElement(id,doc){

		var elements = new Object();
		if (doc == undefined || doc == null) { 
			if(document.all){
				elements = document.all(id);
			} else if(document.getElementById){
				elements = document.getElementById(id);
			}
		} else {
			if(doc.all){
				elements = doc.all(id);
			} else if(doc.getElementById){
				elements = doc.getElementById(id);
			}
		}
		return elements;
	}

	return this;
}

/**
 * *************************************
 * * Ajax manager class =UcAjax=
 * *************************************
 * 	Ajaxを管理するクラス。
 *  <p>
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/19 a.saka 新規作成
 */
function UcAjax() {

	/**
	* コンストラクタ
	* @return	this
     	*/

	this.ajax = false;
	this.responseText = "";
	// IE以外
	if (window.XMLHttpRequest) {
		ajax = new XMLHttpRequest();
	// IE用
	} else if (window.ActiveXObject) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	/**
     	* サーバからデータを取得。
	*	_requestData
     	* <p>
     	* @param  serverURL    サーバのurl
     	*/
	UcAjax.prototype.requestData = _requestData;
	function _requestData(serverURL){
		ajax.open("GET",serverURL);
		ajax.onreadystatechange = function() {
//			if (ajax.readyState == 4 && ajax.status == 200) {
				responseText = ajax.responseText;
//			} else {
//				responseText = null;
//			}
		}
		ajax.send(null);
	}

	/**
     	* サーバから取得したデータを戻す。
	*	_getData
     	* <p>
     	* @return  直前にサーバから取得したデータを戻す
     	*/
	UcAjax.prototype.getData = _getData;
	function _getData(){
		return responseText;
	}

	return this;
}

/**
 * ***************************************
 * * TreeList manager class =UcTreeList=
 * ***************************************
 * 	リストによるTreeを作成、制御するクラス。
 *  <p>
 *  ツリービューの開始：<ul>タグで指定し、idにリストビューの識別しを指定
 *       (ex). <ul id="tree_view_name"> 
 *  リストノードの指定：<li>と<ul>を組み合わせて指定。
 *       (ex). <li>ノードのタイトル
 *					<ul class="viewNode">
 *                      （ここにノードや項目を指定）
 *					</ul>
 *				</li>
 *  リスト項目の指定：<li>で指定
 *       (ex). <li>リストのタイトル</li>
 * @author (C)2005-2005 UI System Co,.Ltd. All right reserved.
 * @version 05/11/20 a.saka 新規作成
 */
function UcTreeList(aViewIds) {

	/**
	* コンストラクタ
	* @param   treeName    ツリー名
	* @return  		this
   	*/
	var viewIds = aViewIds;
	var viewNodeClass = "viewNode";

	/**
	 * 初期処理。
	 *	_init
     * <p>
     */
	UcTreeList.prototype.init = _init;
	function _init(allExpands){
		var i;
		for (i=0;i<viewIds.length;i++){
			var objTreeView;
			objTreeView = document.getElementById(viewIds[i]);
			item_lists = objTreeView.getElementsByTagName("li");
			for (j=0;j<item_lists.length;j++){
				if(document.all && document.getElementById){
					item_lists.item(j).onclick = this.ctrlView;
				} else if(document.getElementById){
					item_lists.item(j).addEventListener("click", this.ctrlView, false);
				}
			}
		}

		if(document.hasChildNodes){
			node_lists = document.getElementsByTagName("ul");
			for (i=0;i<node_lists.length;i++){
				if(node_lists.item(i).getAttribute("class")==viewNodeClass || 
						node_lists.item(i).getAttribute("className")==viewNodeClass){
					if ( allExpands == true ) {
						node_lists.item(i).style.display="block";
					} else {
						node_lists.item(i).style.display="none";
					}
				}
			}
		}
	
	}

	/**
	 * TreeView イベント制御。
	 *	_ctrlView
     * <p>
     */
	UcTreeList.prototype.ctrlView = _ctrlView;
	function _ctrlView(evt){
		var parent_tree_menu = this;
		if(parent_tree_menu.getElementsByTagName('ul').item(0)){
			var child_menu = parent_tree_menu.getElementsByTagName('ul');
				if (child_menu.item(0).style.display == 'block'){
					child_menu.item(0).style.display = 'none';
					var i;
					for(i=0;i<child_menu.length;i++){
						if(child_menu.item(i).getAttribute("class") == viewNodeClass || 
									child_menu.item(i).getAttribute("className") == viewNodeClass){
							child_menu.item(i).style.display = 'none';
						}
					}
				}else{
					child_menu.item(0).style.display = 'block';
				}
		}
		if(document.all && document.getElementById){
			event.cancelBubble=true;
		}else if(document.getElementById){
 			evt.stopPropagation();
  			evt.preventDefault();
		}
	}
	
	return this;
}

	//######################
	//### 指定ファイルのインクルード
	//### <p>html、jsp等のインクルードを行なう。htmlからも使用可能。
	//### @param filename・・・インクルード対象のパス
	//### @param afterfunc・・・インクルード実行後に実行する関数
	function include(filename, afterfunc) {
		include.seq = (include.seq)? include.seq + 1: 1;
		var id = new Date().getTime() + "-" + include.seq;
		var inc = document.createElement("iframe");

		inc.id = "inc-" + id;
		inc.src = filename;
		inc.style.display = "none";
		document.write("<span id=\"" + id + "\"></span>");

		var incfunc = function() {
		var s = (function() {

			var suffix = (n = filename.lastIndexOf(".")) >= 0 ? ((m = filename.lastIndexOf("?")) >= 0 ? filename.substring(n,m): filename.substring(n)) : "default";
			if (suffix == ".html") return inc.contentWindow.document.body.innerHTML;
			if (suffix == ".htm") return inc.contentWindow.document.body.innerHTML;
			if (suffix == ".jsp") return inc.contentWindow.document.body.innerHTML;
			if (suffix == ".txt") return inc.contentWindow.document.body.firstChild.innerHTML;
			if (suffix == "default") return inc.contentWindow.document.body.innerHTML;
		})();

		var span = document.getElementById(id);

		var insertBeforeHTML = function(htmlStr, refNode) {
		if (document.createRange) {
			var range = document.createRange();
			range.setStartBefore(refNode);
			refNode.parentNode.insertBefore(range.createContextualFragment(htmlStr), refNode);
		} else {
			refNode.insertAdjacentHTML('BeforeBegin', htmlStr);
		}
		};

		insertBeforeHTML(s.split("&gt;").join(">").split("&lt;").join("<"), span);
		document.body.removeChild(inc);
		span.parentNode.removeChild(span);
		if (afterfunc) afterfunc();
		};

		if (window.attachEvent) {
			window.attachEvent('onload', 
			function() {
				document.body.appendChild(inc); 
				inc.onreadystatechange = function() { if (this.readyState == "complete") incfunc(); };
			});
		}
		else {
			document.body.appendChild(inc);
			inc.onload = incfunc;
		}
	}
	//######################
	//### 指定DIVへのJSPのロード
	//### @param psDivName	読み込みを行なうDIVの名称
	//### @param psUrl	ロードするファイルのURL
	function loadJsp(psDivName,psUrl){
		var sTagName = YAHOO.util.Dom.get(psDivName).tagName;
		if (sTagName == "IFRAME"){
			YAHOO.util.Dom.get(psDivName).src = psUrl;
		} else {
			cbFunc = {
				success:function(httpObj){
					YAHOO.util.Dom.get(psDivName).innerHTML = httpObj.responseText;
				},
				 failure:function(httpObj){
					YAHOO.util.Dom.get(psDivName).innerHTML = "エラー";
				}
			}
			YAHOO.util.Connect.asyncRequest("get", psUrl, cbFunc, null);
		}
	}


