
// navi.js


function initTree() {
	
	//alert(__NaviContents['naviA'][0][3]);
	
	// URLから表示ページのページ名を取得
	var page = pageName(document.URL);

	// ブース毎に処理を行う
	$H(__NaviContents).keys().each(function(key) {
		
		// 表示ページがこのブースに含まれるかチェック
		var thisPage = isIncludePage(key, page);
		// ブースタイトルの表示クラスを設定
		var titleClassName = (thisPage ? (key + 'h') : key);
		
		//alert(__NaviContents[key]);
		
		// ブースタイトル行のHTMLを生成
		var colTitle = "<tr><td align='center' class='" + titleClassName + "'>"
								 //+ "<img src='images/spacer.gif' width='1' height='5' border='0' alt=''><br>"
								 + "<a href='" + __NaviContents[key][1] + "'></a>"
								 + "</td></tr>";
		// 各コンテンツ用の行HTML
		var colItem = "";
		// ナビ挿入先
		var targetPos = "tree";
		
		if (thisPage) {
			// 表示ページがこのブース内に含まれている時
			targetPos = "toptree";
			// 各コンテンツ用の行HTMLを生成
			colItem = "<tr id='" + key + 'c' + "'>"
							+ "<td bgcolor='#E3E5E6'>"
							+ "<table border='0' width='170' cellspacing='8' cellpadding='0'>";

			//alert($A(__NaviContents[key][0]));
			
			// 各行を生成
			$A(__NaviContents[key][0]).each(function(navi) {
				//alert(navi[0]);
				var html  = sprintf(htmlFormat,  navi[0]);
				var image = sprintf(imageFormat, navi[0]);
				var item = "<tr><td valign='top'>"
								 + "<img src='" + image + "' border='0' width='20' height='15' alt='1'></td>"
								 + "<td><a href='" + html + "'>" + navi[1] + "</a></td></tr>";
				colItem += item;
			});
			colItem += "</table></td></tr>";
		}
		// 各ナビ項目を追加
		new Insertion.Bottom(targetPos, colTitle);
		new Insertion.Bottom(targetPos, colItem);
	});
	
	//alert($("tree").innerHTML);
	
	// 表示ページのタイトルを強調表示する
	var targetTag = null;
	$A($("toptree").getElementsByTagName('a')).each(function(atag) {
		if (pageName(Element.readAttribute(atag, "href")) == page) {
			targetTag = atag;
		}
	});
	if (targetTag != null) {
		targetTag.style.fontWeight = 'bold';
	}
	
	// ローカルナビゲーションの設定
	if ($("boothTitle")) {
		$("boothTitle").innerHTML = getNowBoothTitle(page);
	}
	if ($("prevNavi")) {
		var prev = getPrevPage(page);
		if (prev != "") {
			$("prevNavi").style.display = 'inline';
			$("prev").href = prev;
		}
	}
	if ($("nextNavi")) {
		var next = getNextPage(page);
		if (next != "") {
			$("nextNavi").style.display = 'inline';
			$("next").href = next;
		}
	}
}

function pageName(org) {
	var parts = org.replace(/\\/g, '/').split('/');
	return parts[parts.length-1];
}

function isIncludePage(key, page) {
	var ret = false;
	$A(__NaviContents[key][0]).each(function(navi) {
		var html  = sprintf(htmlFormat,  navi[0]);
		ret |= (pageName(html) == page);
	});
	ret |= (__NaviContents[key][1] == page);
	return ret;
}

function getNowBoothTitle(page) {
	var title = "";
	$H(__NaviContents).keys().each(function(key) {
		if (isIncludePage(key, page)) {
			title = __NaviContents[key][2];
			throw $break;
		}
	});
	return title;
}
function getPrevPage(page) {
	var prev = "";
	var breaked = false;
	$H(__NaviContents).keys().each(function(key) {
		$A(__NaviContents[key][0]).each(function(navi) {
			var html = sprintf(htmlFormat,  navi[0]);
			if (pageName(html) == page) {
				breaked = true;
				throw $break;
			}
			prev = pageName(html);
		});
		if (breaked) throw $break;
	});
	return prev;
}
function getNextPage(page) {
	var next = "";
	var breaked = false;
	$H(__NaviContents).keys().reverse().each(function(key) {
		$A(__NaviContents[key][0].reverse()).each(function(navi) {
			var html = sprintf(htmlFormat,  navi[0]);
			if (pageName(html) == page) {
				breaked = true;
				throw $break;
			}
			next = pageName(html);
		});
		if (breaked) throw $break;
	});
	return next;
}


/*
function openTree(obj) {
	
	var className = new String(Element.classNames(parent(obj, 1)[0]));

	// ★表示ページを含むブースもopen/closeできるようにする場合
	//if (className.substr(className.length - 1) == 'h') {
	//	className = className.substr(0, className.length - 1);
	//}
	
	if (className.substr(className.length - 1) != 'h') {
		// open/close
		if ($(className + "c").style.display == 'none') {
			closeAll();
			$(className + "c").style.display = 'block';
		} else {
			$(className + "c").style.display = 'none';
		}
	}
	return false;
}


function closeAll() {
	var naviList = ['naviA', 'naviB', 'naviC', 'naviD', 'naviE'];
	$A(naviList).each(function(naviName) {
		var navi = $('tree').getElementsByClassName(naviName + 'h');
		if (navi.length == 0) {
			$(naviName + 'c').style.display = 'none';
		}
	});
}
*/



