//<script>
//--------------------------------------------------------------------------------------------------
// KsGMap - マップ・ナビゲーション　プラグイン　　Ver1.01
// http://www.ksgmap.jp/
// Copyright(c) 2005 Ksc
//--------------------------------------------------------------------------------------------------

//プラグインを登録
KsGMapEX.addPlugIn( "mapNavi" );
//コールバックを追加
KsGMapEX.addCallback( KsGMapInit			, KsGMapPlugIn_mapNavi_init			);		//KsGMap初期化
KsGMapEX.addCallback( KsGMapDataImportXML	, KsGMapPlugIn_mapNavi_importXML	);		//XMLファイルからデータをインポート
//グローバル関数定義
var ksgmapplugin_mapNavi_html		= "";
//マップ・ナビゲーション定義
var KsGMapPlugIn_mapNavi = new function(){
	this.id			= "";
	this.map		= new Array();
	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
	this.template		= new Object;
	this.template.outer	= "<select id=\"ksgmsp--mapNavi-select\" onchange=\"KsGMapPlugIn_mapNavi_change( this.value );\">%html%</select>";
	this.template.inner	= "<option value=\"%href%\">%title%</option>";

	this.innerMySelf	= "<option id=\"ksgmsp--mapNavi-listItem--mySelf\" value=\"-\" selected>%title%</option>";

	this.titleReplace_pattern		= "^.+\-\s*";
	this.titleReplace_replacement	= "";
	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
}
//□マップ・ナビゲーション - 初期化
function KsGMapPlugIn_mapNavi_init(){
	var obj = KsGMapPlugIn_mapNavi;

	obj.id = ksgmapplugin_mapNavi_html;
	if( obj.id ){ KsGMapPlugIn_mapNavi_create(); }
}
//□マップ・ナビゲーション - 変更
function KsGMapPlugIn_mapNavi_change( map_href ){
	if( !map_href || !KsGMapPlugIn_mapNavi.map[ map_href ] ){ return ; }

	//各種初期化
	ksgmap_focus_category = KsGMapPlugIn_mapNavi.map[ map_href ].defaultCategory;;
	ksgmap_category = new Array();  ksgmap_item = new Array();  KsGMapPlugIn_mapNavi.map = new Array();  ksgmap_template = new Array();
	if( ksgmap_category_all ){ KsGMapDataCategory( "_all" , ksgmap_category_all_label ); }	//すべて表示の追加
	if( ksgmap_category_map ){ KsGMapDataCategory( "_map" , ksgmap_category_map_label.replace( "%item_name%" , ksgmap_item_name ) ); }	//マップ内の%item_name%を表示
	if( ksgmap__ua.Opera && ksgmap_html_itemNavi ){ document.getElementById( ksgmap_html_itemNavi ).scrollTop = 0; }	//Operaの場合、スクロールを戻さないと上が途切れる

	KsGMapMap.infoBar.display( KsGMapMap.infoBar.message.waitLoading , 0 );	//情報バーにメッセージ表示

	//ファイルの読み込み
	ksgmap_import_current_file = map_href;
	KsGMapCommon.XML.include( ksgmap_import_path + ksgmap_import_current_file , function( xmlDoc ){
		KsGMapDataImportXML( xmlDoc );	//データのインポート処理

		if( !ksgmap_category[ ksgmap_focus_category ] ){ ksgmap_focus_category = ""; }

		if( !KsGMapSearch.status ){		//非検索状態
			KsGMapCategoryNavi.create();		//カテゴリナビゲーションの設置
			KsGMapItemNavi.clear();			//アイテムナビをクリア
		} else {							//検索状態（ナビ生成は検索機能が行う）
			KsGMapSearch.search();
		}

		if( ksgmap_focus_category ){ ksgmap_category[ ksgmap_focus_category ].change(); }	//デフォルトカテゴリが存在する場合、そのカテゴリに移動

		KsGMapPlugIn_mapNavi_create();		//マップナビゲーションを作り直す

		KsGMapMap.infoBar.clear();	//情報ウィンドウをクリア
	} );
}
//□マップ・ナビゲーション - 設置
function KsGMapPlugIn_mapNavi_create(){
	var obj = KsGMapPlugIn_mapNavi;
	if( !obj.id ){ return; }

	var replace_list = new Array();	
	var reg = new RegExp( obj.titleReplace_pattern );	//タイトル置換用正規表現
	replace_list[ "title" ] = ksgmap__title.replace( reg , obj.titleReplace_replacement );
	var html = KsGMapCommon.String.convTemplate( obj.innerMySelf , replace_list );	//自分自身
	//各関連
	for( var map_href in KsGMapPlugIn_mapNavi.map ){
		if( map_href == "clear" ){ continue; }

		replace_list[ "href" ] = map_href;  replace_list[ "title" ] = KsGMapPlugIn_mapNavi.map[ map_href ].title.replace( reg , obj.titleReplace_replacement );;
		html += KsGMapCommon.String.convTemplate( obj.template.inner , replace_list );		//置換して追加
	}
	//マップナビ全体
	var replace_list = new Array();
	replace_list[ "html" ] = html;
	document.getElementById( obj.id ).innerHTML = KsGMapCommon.String.convTemplate( obj.template.outer , replace_list );
}
//□マップ・ナビゲーション - XMLファイルをインポート
function KsGMapPlugIn_mapNavi_importXML( xmlDoc ){
	var temp_xmlData = xmlDoc.documentElement.getElementsByTagName( "relation" );	//カテゴリタグ
	for( var i = 0 ; i < temp_xmlData.length ; i++ ){	//すべてのデータタグからデータを取得
		var data = KsGMapCommon.XML.convAttributesToArray( temp_xmlData[ i ] );	//属性を配列に入れ替える
		KsGMapPlugIn_mapNavi.map[ data[ "href" ] ] = { title : data[ "title" ] , href : data[ "href" ] , defaultCategory : data[ "defaultcategory" ] };
	}
}
//--------------------------------------------------------------------------------------------------

