/*******************************************************************************

	bread_crumb（パンくず生成） クラス var1.0 (20080121)

	powered  by  http://www.ishinotec.com 
	scripted by KKK


	メソッド
	
		bread_crumb.onload("innerHTMLに入れるID", "セパレータ", "〜/で表示されるファイル名");

		例）bread_crumb.onload("bread", "&gt;", "index.html");
		例) 現在のページ http://www.hoge.com/page1/page2/index.html
		
		<head>
			<script src="bread_crumb.js"></script>
			<script src="sitemap.js"></script>
		</head>
		<body>
			<ul id="bread"></ul>
		</body>

		// 出力
		<ul id="bread">
			<li><a href="/index.html">HOME</a></li>
			<li>&gt;</li>
			<li><a href="/page1/index.html">PAGE1</a></li>
			<li>&gt;</li>
			<li>PAGE2</li>※自身のページはリンクにならない
		</ul>
		
		※sitemap.jsが別途必要

	sitemap.js（サイトマップ）の記述方法
	
	sitemap.js内の文字は現在のURLを小文字に変換するため
	オブジェクト名も小文字で記述すること

		例）/index.html
		    /page1/index.html
		    /page1/page2/index.html

		// 1.フォルダー単位でオブジェクトを生成
		var Root = new Object();
		Root.page1 = new Object();
		Root.page1.page2 = new Object();
		
		// 2.ページ名を記述(index.htmlの場合はindexとする)
		
		Root.index = "HOME";
		Root.page1.index = "PAGE1";
		Root.page1.page2.index = "PAGE2";
		
		※フォルダー内にindex.htmlしか存在しない場合は以下の記述も許可
		Root.page1.page2 = "PAGE2";

	※その他


*******************************************************************************/

var bread_crumb = {

	nowObject : null,
	nowPath   : "",
	targetID  : "",
	separator : "",
	index     : "",

	init      : function(){

		if(!window.location.host){
			alert("local host");
			return;
		}
		
		var elm = document.getElementById(bread_crumb.targetID);
		if(!elm){
			alert("The " + bread_crumb.targetID + " is not found.");
			return;
		}

		try{
			Root;
		}catch(e){
			alert("The RootObject is not found.");
			return;
		}

		var url = window.location.pathname.toLowerCase();
		var dir = url.split("\/");
		var len = dir.length;
		var count = 0;

		if(len != 0){
			if(dir[len-1].match(/\./)){
				dir.pop();
			};
		}
		
		for(var i = 0 ; i < dir.length ; i++){
			var key = dir[i];
			if(key != ""){
				count++;
			}
		}

		var str = bread_crumb.createLink(Root,"",true);

		for(var i = 0 ; i < dir.length; i++){
			var key = dir[i];
			if(key){
				try{
					var linkage = (i == dir.length-1);
					str += "<li>" + bread_crumb.separator + "</li>" + bread_crumb.createLink(bread_crumb.nowObject[key],key,!linkage);
				}catch(e){
					alert("The "+ key + " is not found.");
				};
			};
		}
		elm.innerHTML = str;
	},

	createLink : function (object,keyName,linkage){

		var ret;
		var txt;
	
		bread_crumb.nowPath += keyName + "/";

		if(typeof(object) == "string"){
			txt = object;
		}else{
			txt = object[keyName];
			bread_crumb.nowObject = object;
		}

		if(txt == undefined){
			txt = object["index"];
		}
		if(txt == undefined){
			alert("no_data!");
		}
		if(linkage){
			ret = '<li><a href="' + bread_crumb.nowPath + bread_crumb.index + '">' + txt + '</a></li>';
		}else{
			ret = '<li>' + txt + '</li>';
		}
		return ret;
	},

	onload     : function(targetID,separator,defaultPage){
		bread_crumb.targetID  = targetID;
		bread_crumb.separator = separator;
		bread_crumb.index     = defaultPage;
		if(window.attachEvent){
			window.attachEvent("onload", bread_crumb.init);
		}else if(window.addEventListener){
			window.addEventListener("load", bread_crumb.init, true);
		}else {
			return;
		}
	}

}

bread_crumb.onload("bread_crumb", "&gt;", "index.html");



