/**
* ローカルナビ表示
* 2009/10/31 ver.1.00 新規作成
* @version 1.00
*/

/**
* ローカルナビクラス
* @access public
*/
function LocalNavigation() {
	this.arrId = new Array();
	this.arrMatchingPart4URL = new Array();
	this.arrStartString4Change = new Array();
	this.arrEndString4Change = new Array();
	this.strLocalNavigationIdValue = "local_navi"; //ローカルナビ全体を囲むタグにつけるIDの値
}

/**
* ローカルナビクラスのプロトタイプ
*/
LocalNavigation.prototype = {
	/**
	* 表示処理
	* @access public
	* @return void
	*/
	display : function() {
		var objTopNode = document.getElementById(this.strLocalNavigationIdValue);
		if(objTopNode != null) {
			this.__recursion(objTopNode);
		} else {
			alert("LocalNavigation: The tag whose value of id is '" + this.strLocalNavigationIdValue + "' is not found.");
		}
	},

	/**
	* 再起処理
	* @access private
	* @param object objNode ノード
	* @return void
	*/
	 __recursion : function(objNode) {
		for(var i=0; i<objNode.childNodes.length; i++) {
			var objNode2 = objNode.childNodes[i];
			try {
				var strId = objNode2.getAttribute("id");
				var isMatched = false;
				for(var k=0; k<this.arrId.length; k++) {
					if(strId == this.arrId[k]) {
						var strHTML = objNode2.innerHTML;
						if(location.href.indexOf(this.arrMatchingPart4URL[k], 0) > 0) {
							strHTML = strHTML.replace(/<a\b.*?>/i, this.arrStartString4Change[k]);
							strHTML = strHTML.replace(/<\/a>/i, this.arrEndString4Change[k]);
						}
						objNode2.innerHTML = strHTML;
						isMatched = true;
						break;
					}
				}
				if(!isMatched) {
					if(objNode2.hasChildNodes()) {
						this.__recursion(objNode2);
					}
				}
			} catch(e) {
			}
		}
	},

	/**
	* パラメータのセット
	* @access public
	* @param string strId               ID属性の値
	* @param string strMatchingPart4URL 対象URLの一部
	* @param string strStartString4Change    <A>タグの開始タグの置換後文字列
	* @param string strEndString4Change      <A>タグの終了タグの置換後文字列
	* @return void
	*/
	addParameter : function(strId, strMatchingPart4URL, strStartString4Change, strEndString4Change) {
		this.arrId.push(strId);
		this.arrMatchingPart4URL.push(strMatchingPart4URL);
		this.arrStartString4Change.push(strStartString4Change);
		this.arrEndString4Change.push(strEndString4Change);
	},
	
	/**
	* ローカルナビゲーションのIDの設定
	* @access public
	* @param string strIdName ID属性の値
	* @return void
	*/
	setLocalNavigationIdValue : function(strIdValue) {
		this.strLocalNavigationIdValue = strIdValue;
	}
};
