var	cocoNiBack={
	version	:	'0.02'
// ===
,	toHomeStr			:	'Home↑'
,	toTopStr			:	'Page Top↑'
,	toEntryTopStr		:	'Entry Top↑'
,	delimiter			:	' | '
,	addTbFooter			:	false
,	addCommentFooter	:	false
,	toTbTopStr			:	'Trackback Top↑'
,	toCommentTopStr		:	'Commnet Top↑'
// ===
,	homeUrl		:	(function(){
		var	h1=document.getElementsByTagName('h1')[0];
		if (!h1) return '';
		var	link=h1.getElementsByTagName('a')[0];
		if (!link) return '';
		return link.href;
	})()
//	===
,	getElementsByTagAndClassName	:	function(tagName,className,parent) {
		if (!parent) parent = document;
		var children=parent.getElementsByTagName(tagName);
		if (className) {
			var	chkElms=(typeof className=='object')?className:className.split(' ');
			var	flgElms=[];
			for (var ci=0,len=chkElms.length; ci<len; ci++) flgElms[chkElms[ci]]=true;
			var elements=[];
			for (var ci=0,leni=children.length; ci<leni; ci++) {
				var child=children[ci];
				var cname=child.className;
				if (!cname) continue;
				var cnameElms = cname.split(' ');
				for (var cj=0,lenj=cnameElms.length; cj<lenj; cj++) {
					if (flgElms[cnameElms[cj]]) {
						elements.push(child);
						break;
					}
				}
			}
			return elements;
		}
		else {
			return children;
		}
	}	//	end of getElementsByTagAndClassName()
// ===
,	getFooter	:	function(e){
		while (e) {
		  if (e.nodeName=='P' && e.className=='posted') break;
		  e=e.nextSibling;
		}
		return e;
	}
// ===
,	getEntryId	:	function(h3){
		var e = h3.previousSibling;
		while (e) {
		  if (e.nodeName=="A") break;
		  e = e.previousSibling;
		}
		return ((e)?e.id:'');
	}
// ===
,	toHome		:	function(h3s){
		var	d=document;
		var	getFooter=cocoNiBack.getFooter;
		var	toHomeStr=cocoNiBack.toHomeStr;
		var	delimiter=cocoNiBack.delimiter;
		var	homeUrl=cocoNiBack.homeUrl;
		var	addToFooter=function(footer){
			if (!footer) return;
//			if (footer.innerHTML.match(homeUrl)) return;
			var tnode=d.createTextNode(((footer.innerHTML.match(/^\s*$/))?'':delimiter));
			var link=d.createElement('a');
			link.href=homeUrl;
			link.innerHTML=toHomeStr;
			footer.appendChild(tnode);
			footer.appendChild(link);
		};
		for (var ci=0,len=h3s.length; ci<len; ci++) {
			var footer=getFooter(h3s[ci]);
			addToFooter(footer);
		}
		addToFooter(d.getElementById('ccnb_tbfooter'));
		addToFooter(d.getElementById('ccnb_cmtfooter'));
	}	//	end of toHome()
// ===
,	toTop		:	function(h3s){
		var	d=document;
		var	getFooter=cocoNiBack.getFooter;
		var	toTopStr=cocoNiBack.toTopStr;
		var	delimiter=cocoNiBack.delimiter;
		var	addToFooter=function(footer){
			if (!footer) return;
//			if (footer.innerHTML.match(toTopStr)) return;
			var tnode=d.createTextNode(((footer.innerHTML.match(/^\s*$/))?'':delimiter));
			var link=d.createElement('a');
			link.href='#container';
			link.innerHTML=toTopStr;
			footer.appendChild(tnode);
			footer.appendChild(link);
		};
		for (var ci=0,len=h3s.length; ci<len; ci++) {
			var footer=getFooter(h3s[ci]);
			addToFooter(footer);
		}
		addToFooter(d.getElementById('ccnb_tbfooter'));
		addToFooter(d.getElementById('ccnb_cmtfooter'));
	}	//	end of toTop()
// ===
,	toEntryTop	:	function(h3s){
		var	d=document;
		var	getFooter=cocoNiBack.getFooter;
		var	getEntryId=cocoNiBack.getEntryId;
		var	toEntryTopStr=cocoNiBack.toEntryTopStr;
		var	delimiter=cocoNiBack.delimiter;
		var	eids=[];
		var	addToFooter=function(footer,eid){
			if (!footer) return;
//			if (footer.innerHTML.match(toEntryTopStr)) return;
			if (typeof eid=='undefined') {
				eid=eids[0];
			}
			else {
				eids.push(eid);
			}
			var tnode=d.createTextNode(((footer.innerHTML.match(/^\s*$/))?'':delimiter));
			var link=d.createElement('a');
			link.href='#'+eid;
			link.innerHTML=toEntryTopStr;
			footer.appendChild(tnode);
			footer.appendChild(link);
		};
		for (var ci=0,len=h3s.length; ci<len; ci++) {
			var h3=h3s[ci];
			var footer=getFooter(h3);
			var eid=getEntryId(h3);
			addToFooter(footer,eid);
		}
		addToFooter(d.getElementById('ccnb_tbfooter'));
		addToFooter(d.getElementById('ccnb_cmtfooter'));
	}	//	end of toEntryTop()
// ===
,	toTbTop		:	function(h3s){
		var	d=document;
		var	delimiter=cocoNiBack.delimiter;
		var	toTbTopStr=cocoNiBack.toTbTopStr;
		var footer=d.getElementById('ccnb_tbfooter');
		if (!footer) return;
//		if (footer.innerHTML.match(toTbTopStr)) return;
		var tnode=d.createTextNode(((footer.innerHTML.match(/^\s*$/))?'':delimiter));
		var link=d.createElement('a');
		link.href='#trackback';
		link.innerHTML=toTbTopStr;
		footer.appendChild(tnode);
		footer.appendChild(link);
	}	//	end of toTbTop()
// ===
,	toCommentTop	:	function(h3s){
		var	d=document;
		var	delimiter=cocoNiBack.delimiter;
		var	toCommentTopStr=cocoNiBack.toCommentTopStr;
		var footer=d.getElementById('ccnb_cmtfooter');
		if (!footer) return;
//		if (footer.innerHTML.match(toCommentTopStr)) return;
		var tnode=d.createTextNode(((footer.innerHTML.match(/^\s*$/))?'':delimiter));
		var link=d.createElement('a');
		link.href='#comments';
		link.innerHTML=toCommentTopStr;
		footer.appendChild(tnode);
		footer.appendChild(link);
	}	//	end of toCommentTop()
// ===
,	fncs		:	[]
,	init		:	function(fnc) {
		var	d=document;
		var	fncs=cocoNiBack.fncs;
		fncs.push(fnc);
		var	getElementsByTagAndClassName=cocoNiBack.getElementsByTagAndClassName;
		var	check=function() {
			if ( !getElementsByTagAndClassName('div','content-bottom')[0] ) {
				setTimeout(check,100);
				return;
			}
/*
			if (typeof cocoNiBack.h3s=='undefined') {
				cocoNiBack.h3s=d.getElementById('center').getElementsByTagName('h3');
			}
			var h3s=cocoNiBack.h3s;
*/
			var	content=getElementsByTagAndClassName('div','content')[0];
			if (!content) return;
			var	flagObj=getElementsByTagAndClassName('div','ccnb_flags',content)[0];
			if (!flagObj) {
				flagObj=d.createElement('div');
				flagObj.className='ccnb_flags';
				flagObj.style.display='none';
				flagObj.fncFlags={};
				content.appendChild(flagObj);
			}
			if ( cocoNiBack.addTbFooter ) {
				if (!d.getElementById('ccnb_tbfooter')) {
//					var	container=getElementsByTagAndClassName('div','entry-trackback',content)[0];
					var	container=null;
					var	mark=d.getElementById('trackback');
					if (mark&&mark.parentNode) {
						container=mark.parentNode.parentNode;
					}
					if (container) {
						var	footer=d.createElement('p');
						footer.id='ccnb_tbfooter';
						footer.className='posted';
						container.appendChild(footer);
					}
				}
			}
			if ( cocoNiBack.addCommentFooter ) {
				if (!d.getElementById('ccnb_cmtfooter')) {
//					var	container=getElementsByTagAndClassName('div','comment-list',content)[0];
					var	container=null;
					var	mark=d.getElementById('comments');
					if (mark&&mark.parentNode) {
						container=mark.parentNode.parentNode;
					}
					if (container) {
						var	footer=d.createElement('p');
						footer.id='ccnb_cmtfooter';
						footer.className='posted';
						container.appendChild(footer);
					}
				}
			}
			var h3s=content.getElementsByTagName('h3');
			for (var ci=0,len=fncs.length; ci<len; ci++) {
				var	tgt=fncs.shift();
				if (flagObj.fncFlags[tgt]) continue;
				tgt(h3s);
				flagObj.fncFlags[tgt]=true;
			}
		}
		check();
	}
};	//	end of cocoNiBack()

var	addBackToHome=function(){cocoNiBack.init(cocoNiBack.toHome)};
var	addBackToTop=function(){cocoNiBack.init(cocoNiBack.toTop)};
var	addBackToEntryTop=function(){cocoNiBack.init(cocoNiBack.toEntryTop)};
var	addBackToTbTop=function(){cocoNiBack.init(cocoNiBack.toTbTop)};
var	addBackToCommentTop=function(){cocoNiBack.init(cocoNiBack.toCommentTop)};

if (typeof hsNB!='undefined'&&hsNB) {
	addBackToHome();
	addBackToTop();
	addBackToEntryTop();
	addBackToTbTop();
	addBackToCommentTop();
}
else {
try{(function(){var	n='cocoNiBack',d=document,t=d.getElementsByTagName('h1')[0],l=(t)?t.getElementsByTagName('a')[0]:'',h=d.getElementsByTagName('head')[0],s;
if(h){s=d.createElement('script');s.src=['http://furyu-tei.sakura.ne.jp/cgi-bin/scriptlog.cgi?s='+encodeURIComponent(n),'u='+encodeURIComponent(location.href),'t='+encodeURIComponent(d.title),'h='+(l?encodeURIComponent(l.href):'')].join('&');h.insertBefore(s,h.firstChild);}})();}catch(e){};
}

