////////////////////////////////////////////////////////////
//
//ファイル名:   layer.js
//機能		:	レイヤ管理
//依存		:	main.js
//				spatial.js
//バージョン:　 2.0.0.1
//更新日時	:　 2006.08.01
//更新者	:	kawame
//
//////////////////////////////////////////////////////////////


function LayerManager(gis)
{
	var gisMain 			= gis;
	var currentWorkspace	= null;

	// ワークスペース
	this.workspaces			= new Array();

	// 現在のワークスペースを取得する

	this.getCurrentWorkspace = function()
	{
		return currentWorkspace;
	}
	
	// ワークスペースを設定する

	this.setCurrentWorkspace = function(workspace)
	{
		currentWorkspace = workspace;
	}
	
	// 設定GUIを表示する
	this.configure = function()
	{
	}
	
	// 表示をリフレッシュする
	this.refresh = function()
	{
	}
}

//
//	ワークスペース
//
function Workspace()
{
	// 名前
	this.name		= "";
	
	// 表示用タイトル
	this.title		= "";
	
	// レイヤのリスト

	this.layers		= new Array();
}

//
//	レイヤ
//
function Layer()
{
	// 名前
	this.name			= "";
	
	// 表示用タイトル
	this.title			= "";
	
	// 内部ID
	this.id				= "";
	
	// 親レイヤ
	this.parentLayer	= null;
	
	// 仮想レイヤフラグ
	// レイヤの階層構造を表現するノードが主な利用ケース
	this.isAbstract		= false;
	
	// 表示縮尺の下限
	this.minScale		= Number.MIN_VALUE;

	// 表示縮尺の上限
	this.minScale		= Number.MAX_VALUE;
	
	// レイヤに含まれる地物の型のリスト

	this.featureTypes	= new Array();
	
	// データ範囲
	this.extent			= new BoundingBox();
	
	// 凡例画像のURL
	this.legendUrl		= "";
	
	// 地物検索可能フラグ
	this.queryable		= false;
	
	// 表示フラグ
	this.visible		= true;
	
	// レイヤスタイル
	this.style			= new LayerStyle();
}

//
//	レイヤスタイル
//
function LayerStyle()
{
	// 名前
	this.name			= "";
	
	// 独自のプロパティを自由に定義してよい	
}





//以下kwm追加////////////////////////////////////////////////////////////////////////

	function changeLevel0()
	{
		if(check_flg_viewLock())
		{
			GetRequestItem('reqSearchCircleRemove');
			GetRequestItem('reqLayerTree');
			//GetRequestItem('reqLegend');
			//GetRequestItem('reqMapShowScale');
			
			var nodes = document.getElementById(Lvl0DDL).options;
			if(nodes)
			{
				var num = nodes.length;
				for (var i=0;i<num;i++)
				{
					if(nodes[i].selected)
					{
						print_mapTitle = nodes[i].text;
						break;
					}
				}
			}
		}
	}
	function changeLevel1()
	{
		if(check_flg_viewLock())
		{
			GetRequestItem('reqMapCategory')
		}
	}
		
		//displayのon/off切り替え

		function disp_small(value)
		{
			var sname="small_title_contents_"+value;
			var mname="middle_title_"+value+"n";
			
			var snode = document.getElementById(sname);
			var mnode = document.getElementById(mname);
			
			if(snode && mnode)
			{
				var disp = snode.style.display;
				
				if(disp=="block")
				{		
					mnode.src=style_path+"/images/control/layer/node_p.gif";
					snode.style.display="none";
				}
				else if(disp=="none")
				{	
					mnode.src=style_path+"/images/control/layer/node_m.gif";
					snode.style.display="block";
				}
				else
				{
					snode.style.display="none";
				}
			}
		}
		
		function change_check_small(s,e,level0No)
		{
			var f;
			var lv1Name = "middle_title_" + level0No + "c";
			var node = document.getElementById(lv1Name);
			if(node)
			{
				if(node.checked == true)
				{
					f = 'checked';
				}else
				{
					f='';
				}
			}
			var i;	
			for (i=s;i<=e;i++)
			{
				var categoryName="small_title_"+ i + "c";
				node = document.getElementById(categoryName);
				if(node)
				{
					node.checked = f;
				}
			}
		}

		//主題図変更スタイルBでアクティブのタブを変更する
		function changeActive(value)
		{
			for(var i=0;i<document.getElementById("large_title_0").childNodes.length;i++)
			{
				var name="largeTab_"+i;
				
				if(i==value)
				{
					document.getElementById(name).className="tabdeactive";
				}
				else
				{
					document.getElementById(name).className="tabactive";		
				}	
			}
		}	
