//
//	JavaScript ノード展開情報管理オブジェクト
//
//	機能
//
//  展開情報を保持し、操作します。

	/////////////////////////////////////////////
	// ノード展開情報管理オブジェクト定義
	/////////////////////////////////////////////
	function OpenListManager() {
		this.OpenList = new Array(0);
		// 展開情報保持用リスト

		// 展開情報追加メソッド
		// 展開情報をリストに追加します
		// すでに含まれているIDの場合は、何もしません
		function m_addOpenInfo( strID ) {
			// 空文字なら何もしない
			if( strID == "" ) {
				return;
			}
			if( !this.contain(strID) ) {
				this.OpenList[this.OpenList.length] = strID;
			}
		}

		// 展開情報削除メソッド
		// 展開情報をリストから削除します
		// 削除対象がない場合は何もしません
		function m_delOpenInfo( strID ) {
			// 新しいリスト作成
			var newList = new Array(0);
			for( var i = 0; i < this.OpenList.length; i++ ) {
				// 削除したいID以外を新しいリストに追加
				if( this.OpenList[i] != strID ) {

					newList[newList.length] = this.OpenList[i];
				}
			}

			this.OpenList = newList;
		}

		// 展開情報存在チェックメソッド
		// 展開情報リストに指定されたIDが含まれているかどうか判断します
		function m_contain( strID ) {
			var listLength = this.OpenList.length;
			for( var i = 0; i < listLength; i++ ) {
				var strIDTemp = this.OpenList[i];
				if( strIDTemp == strID ) {
					return true;
				}
			}
			return false;
		}

		// 現在保持しているリストを直列化して返します
		function m_serialize() {
			return this.OpenList.join(",");
		}

		// 渡されたリストで置き換えます
		function m_chageList( newList ) {
			this.OpenList = newList.split(",");
		}

		// 初期化メソッド
		function m_init() {
			this.OpenList = new Array(0);
		}

		OpenListManager.prototype.addOpenInfo = m_addOpenInfo;
		OpenListManager.prototype.delOpenInfo = m_delOpenInfo;
		OpenListManager.prototype.contain = m_contain;
		OpenListManager.prototype.serialize = m_serialize;
		OpenListManager.prototype.chageList = m_chageList;
		OpenListManager.prototype.init = m_init;

		return this;
	}
