// 【更新履歴】
// 2011/07/28 
// JSMenu.html内のファイル名指定を絶対パスで指定できるように改良→異なるフォルダにあるファイルも混在可能になった。

//<![CDATA[
function getMenu() {
	// ローカルファイルをブラウザ表示する時には、フォルダ区切りが"\"になるので、判断して切り換える
	if(document.URL.indexOf("\\", 0) != -1) {
		conv=document.URL.split("\\");
	}
	else {
		conv=document.URL.split("/");
	}
//	alert("conv="+conv);
	// htmlwkにresponseTextを格納
	htmlwk = this.request.responseText;
	if(conv[conv.length-1].match(/#.*/)) {
		// #付きの場合はそれ以降省く
//		alert("#付き。conv[conv.length-1].match(/#.*/)=" + conv[conv.length-1].match(/#.*/));
//		alert(conv[conv.length-1]);
		conv[conv.length-1] = conv[conv.length-1].replace(/#.*/, "");
//		alert(conv[conv.length-1]);
	}
	if(conv[conv.length-1]==null) {
		// ファイル名がフォルダ名で終わっている場合、"index.html"を補完
		myRE = new RegExp("<A href=\"" + "index.html" + ".*<\\/A>");
	}
	else {
		// 
		myRE = new RegExp("<A href=\".*" + conv[conv.length-1] + ".*<\\/A>");
	}
//	alert(myRE);
	myRE2 = new RegExp("\">.*<\\/A>");
//	alert(myRE2);
//	alert(htmlwk);
//	alert(myRE);
	hreftext = htmlwk.match(myRE);
//	alert("hreftext=" + hreftext);
	// hreftextから<A>タグを削除する処理
//	alert("myRE2=" + myRE2);
	hreftext = hreftext.toString();		// toStringで文字列にキャスト(?)しないとmatchできないので。
	hreftext = hreftext.match(myRE2);
//	alert("hreftext=" + hreftext);
	hreftext = hreftext.toString();
//	alert("length=" + hreftext.length);
	hreftext = hreftext.substring(2, hreftext.length-4);
//	alert("hreftext=" + hreftext);
//	hreftext.replace(myRE2, hreftext);
//	replace(hreftext, "")
	document.getElementById(this.divId).innerHTML = htmlwk.replace(myRE, hreftext);
}

function getHpbSiteMenu(menuURL, divId) {
	var loader=new hpb.ContentLoader(menuURL, divId, getMenu);
}

var hpb=new Object();
	hpb.ContentLoader=function(url, divId, onload) {
	this.url = url;
	this.divId=divId;
	this.request=null;
	this.onload=onload;
	this.onerror=this.defaultError;
	this.loadSiteMenu(url);
}
hpb.ContentLoader.prototype={
	loadSiteMenu:function(url){
		if(window.ActiveXObject) {
			// IE
			try {
				this.request = new ActiveXObject ("Msxml2.XMLHTTP");
			} catch(e) {
				this.request = new ActiveXObject ("Microsoft.XMLHTTP");
			}
		} else 
		if(window.XMLHttpRequest) {
			// non-IE
			this.request = new XMLHttpRequest();
		}		if(this.request) {
			try{
				var loader=this;
				this.request.onreadystatechange=function(){
					loader.onReadyState.call(loader);
				}
				this.request.open('GET',url+"?cache="+(new Date()).getTime(), true);
				this.request.send(null);
			}catch( err) {
				this.onerror.call(this);
			}
		}
	},
	onReadyState:function(){
		var request = this.request;
		var readyState = request.readyState;
		if(readyState==4){
			var httpStatus=request.status;
			if(httpStatus==200 || httpStatus == 0) {
				this.onload.call(this);
			}else{
				this.onerror.call(this);
			}
		}
	},
	
	defaultError:function() {
		alert("エラー発生。divID="+this.divId);
	}
}


//	2012/01/16ネタ帳用に使っていたコードをこちらに統合
function setCookie(key, val) {
	limitDate = new Date();
	//有効期限(2週間)
	limitDate.setTime(limitDate.getTime() + (24 * 60 * 60 * 30 * 1000));
	tmp = key + '=' + escape(val) + '; ';
	tmp += 'path=/; ';
	tmp += 'expires=' + limitDate.toGMTString() + '; ';
	document.cookie = tmp;
}


function getCookie(key){
	var tmp = document.cookie + ';';
	var index1 = tmp.indexOf(key, 0);
	if(index1 != -1){
		tmp = tmp.substring(index1,tmp.length);
		var index2 = tmp.indexOf('=',0) + 1;
		var index3 = tmp.indexOf(';',index2);
		return(unescape(tmp.substring(index2,index3)));
	}
	return('');
}


function deleteCookie(key) {
	var limitDate = new Date();
	limitDate.setYear(limitDate.getYear() - 1);
	var tmp = key + '=; ';
	tmp += 'path=/; ';
	tmp += 'expires=' + limitDate.toGMTString() + '; ';
	document.cookie = tmp;
}


function ToggleMode() {
	var cmode=getCookie('kiji_junban');
	if(cmode == 'old') {
		cmode = 'new';
	}
	else {
		cmode = 'old';
	}
	setCookie('kiji_junban', cmode);
	location.reload();
}
//]]>

