(function(){
var	w=window,d=w.document;
w.cocoShowPrev = {
//	===
	Version : "0.01b"

//	===
,	htmlSwitchOpen	:	'<img src="http://furyu.tea-nifty.com/script/arrowdown.gif" width="16" height="16" style="position:relative;top:4px;padding:0px 2px 0px 4px;border-width:0px;" />'
,	switchTitle		:	'この場で見る'
,	cmStr			:	'コメント'
,	tbStr			:	'トラックバック'
,	scrollOffset	:	64
,	replaceNav		:	true
,	prevStr			:	'&laquo; 前の記事'
,	nextStr			:	'次の記事 &raquo;'
,	onload			:	function(){
		if (typeof cocoCView!='undefined') {
			cocoCView.addSwitches();
		}
	}

//	===
,	checkTopPage				:	function() {
		if (location.href.match(/\/backnumbers\//)) return false;
		var	head=d.getElementsByTagName('head')[0];
		if (!head) return false;
		var	links=head.getElementsByTagName('link')
		for (var ci=0,len=links.length; ci<len; ci++) {
			if (links[ci].rel=='start') {
				return false;
			}
		}
		return true;
	}	//	checkTopPage()

//	===
,	checkPageKind	:	function() {
		var	path='';
		if ( location.href.match(/#path=(.*)/) ) {
			path=RegExp.$1;
		}
		else {
			path=location.href.replace(/[?#].*/,'').replace(new RegExp('http://'+document.domain,'g'),'');
		}
		if ( path.match(/\/backnumbers\/([^\/]*)\//) ) {
			var	kind=RegExp.$1;
			if (kind=='bn') return 'backnumber';
			return 'category-backnumber';
		}
		if ( path.match(/^\/$/) || path.match(/^\/index.html$/) || path.match(/^\/\w+\/$/) || path.match(/^\/\w+\/index.html$/) ) return 'toppage' ;
		if ( path.match(/^\/\w+\/[\d]{4}\/[\d]{2}\/(.*)/) ) {
			var	str=RegExp.$1;
			if ( str=='' || str=='index.html' ) return 'monthly' ;
			if ( str.match(/^[\d]{2}\//) ) return 'daily' ;
			return 'individual' ;
		}
		if ( path.match(/^\/\w+\/[\d]{4}\/week\d+\/(.*)/) ) {
			var	str=RegExp.$1;
			if ( str=='' || str=='index.html' ) return 'weekly' ;
		}
		if ( path.match(/^\/\w+\/\w+\/(.*)/) ) {
			var	str=RegExp.$1;
			if ( str=='' || str=='index.html' ) return 'category' ;
		}
		return 'unknown' ;
	}	//	end of checkPageKind()
	
//	===
,	setEventHandler				:	(function(){
		if (w.addEventListener) {
			return function(obj,evt,handler){obj.addEventListener(evt,handler,false)};
		}
		else if (w.attachEvent) {
			return function(obj,evt,handler){obj.attachEvent('on'+evt,handler)};
		}
		else {
			return function(obj,evt,handler){var org=obj['on'+evt];obj['on'+evt]=function(){if(typeof org=='function')org();handler()}};
		}
	})()	//	end of setEventHandler()

//	===
,	getElementsByTagAndClassName	:	function(tagName,className,parent) {
		if (!parent) parent=d;
		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()
//	===
,	getObjectTop	:	function(obj) {
		var	val=0;
		for(;;) {
			if(!obj||!obj.style) break;
			var	opos=obj.style.position;
			obj.style.position='absolute';
			val=obj.offsetTop;
			obj.style.position=opos;
			break ;
		}
		return val;
	}	//	 end of getObjectTop()
//	===
,	getObjectLeft	:	function(obj) {
		var	val=0;
		for(;;) {
			if(!obj||!obj.style) break;
			var	opos=obj.style.position;
			obj.style.position='absolute';
			val=obj.offsetLeft;
			obj.style.position=opos;
			break ;
		}
		return val;
	}	//	 end of getObjectLeft()
//	===
,	getMouseTop		:	function(e) {
		if ( navigator.userAgent.match(/msie/i) ) {
			return ( ( d.compatMode=='CSS1Compat' ) ? e.clientY+d.documentElement.scrollTop : e.clientY+d.body.scrollTop ) ;
		}
		else if ( typeof e.pageY != 'undefined' ) {
			return e.pageY ;
		}
		else {
			return 0 ;
		}
	}	//	 end of getMouseTop()
//	===
,	getMouseLeft	:	function(e) {
		if ( navigator.userAgent.match(/msie/i) ) {
			return ( ( d.compatMode=='CSS1Compat' ) ? e.clientX+d.documentElement.scrollLeft : e.clientX+d.body.scrollLeft ) ;
		}
		else if ( typeof e.pageX != 'undefined' ) {
			return e.pageX ;
		}
		else {
			return 0 ;
		}
	}	//	end of getMouseLeft()
//	===
,	init_main	:	function(pagekind) {
		var	ret=false;
		for (;;) {
			var	getElementsByTagAndClassName=this.getElementsByTagAndClassName;
			var	cb=getElementsByTagAndClassName('div','content-bottom')[0];
			if (!cb) break;
			
			var	getXmlHttpObj=(function(){
				if ( typeof ActiveXObject != "undefined" ) {
					var	msXml=['Msxml2.XMLHTTP','Microsoft.XMLHTTP'],ci,len;
					for (ci=0,len=msXml.length; ci<len; ci++) {
						with ({msXml:msXml[ci]}) {
							try {
								new ActiveXObject(msXml);
								return function() {return new ActiveXObject(msXml)};
							}
							catch (e) {}
						}
					}
					return function(){return null};
				}
				else if ( typeof XMLHttpRequest != "undefined" ) {
					return function(){return new XMLHttpRequest()};
				}
				else {
					return function(){return null};
				}
			})();	//	end of getXmlHttpObj()
			
			var	getEntryContent=(function(){
				var	tmp=d.createElement('div');
				var	xh=getXmlHttpObj();
				if (!xh) return function(){return null};
				return function(url) {
					xh.open('GET',url,false);
					xh.send('') ;
//					tmp.innerHTML='dummy'+xh.responseText;
					tmp.innerHTML='dummy'+xh.responseText.replace(/<script(.|[\r\n])+?<\/script>/mgi,'');
					return getElementsByTagAndClassName('div','content',tmp)[0];
				};
			})();	//	end of getEntryContent()
		
			var	check=cb.previousSibling,prevLink=null,baseContent=null;
			while (check) {
				if (check.className=='content') {
					baseContent=check;
					var	newnav=null;
					switch (pagekind) {
						case	'backnumber'	:
						case	'weekly'		:
						case	'monthly'		:
						case	'daily'			:
							var	permalinks=getElementsByTagAndClassName('a','permalink',baseContent);
							var	lastplink=permalinks[permalinks.length-1];
							if (lastplink) {
								var	content=getEntryContent(lastplink.href);
								newnav=getElementsByTagAndClassName('div','entry-nav',content)[0];
							}
							break;
						case	'individual'	:
							var	topnav=getElementsByTagAndClassName('div','entry-nav',baseContent)[0];
							if (topnav) newnav=topnav.cloneNode(true);
							break;
					}
					if (newnav) {
						baseContent.appendChild(newnav);
					}
					check=baseContent.lastChild;
					while (check) {
						if (check.className=='entry-nav') {
							prevLink=check.getElementsByTagName('a')[0];
							break;
						}
						check=check.previousSibling;
					}
					if (!prevLink&&pagekind=='toppage') {
						var	recent=d.getElementById('recent-entries');
						if (recent) {
							var	alink=recent.getElementsByTagName('a')[0];
							if (alink) {
								prevLink=alink.cloneNode(true);
								var	para=d.createElement('p');
								para.align='right';
								para.appendChild(prevLink);
								var	newnav=d.createElement('div');
								newnav.className='entry-nav';
								newnav.appendChild(para);
								baseContent.appendChild(newnav);
							}
						}
					}
					break;
				}
				else if (check.className=='entry-bottom') {
					break;
				}
				check=check.previousSibling;
			}
			if (!prevLink) break;
			
			ret=true;
			
			var	setEventHandler=this.setEventHandler;
			
			var	tmp=d.createElement('div');
			
			var	stripTags=function(txt){return txt.replace(/<\/?[^>]+>/gi,'')};
			
			var	regLaquo=new RegExp(String.fromCharCode(0xab)+'\\s*');
			var	regRaquo=new RegExp('\\s*'+String.fromCharCode(0xbb));
			function	replaceLink(linkContainer,link) {
				if (!this.replaceNav) return;
				var	links=linkContainer.getElementsByTagName('a');
				if (link) {
					link.title=stripTags(link.innerHTML.replace(regLaquo,''));
					link.innerHTML=this.prevStr;
					if (2<links.length) {
						links[2].title=stripTags(links[2].innerHTML.replace(regRaquo,''));
						links[2].innerHTML=this.nextStr;
					}
				}
				else {
					if (1<links.length) {
						links[1].title=stripTags(links[1].innerHTML.replace(regRaquo,''));
						links[1].innerHTML=this.nextStr;
					}
				}
			}
			function	addButton(link) {
				var	href=link.href;
				var	container=d.createElement('span');
				container.className='ccsp_container';
				container.innerHTML=this.htmlSwitchOpen;
				container.style.cursor='pointer';
				container.title=this.switchTitle;
				
				function	showEntry() {
//					container.style.display='none';
//					link.parentNode.style.display='none';
					link.parentNode.style.visibility='hidden';
/*
					var	xh=this.getXmlHttpObj();
					if (!xh) return;
					xh.open('GET',href,false);
					xh.send('') ;
					tmp.innerHTML='dummy'+xh.responseText;
					var	content=getElementsByTagAndClassName('div','content',tmp)[0];
*/
					var	content=getEntryContent(href);
					if (!content) return;
					var	nav=getElementsByTagAndClassName('div','entry-nav',content)[0];
					if (!nav) return;
					var	recentposts=getElementsByTagAndClassName('div','entry-recent-posts',content);
					for (var ci=0,len=recentposts.length; ci<len; ci++) {
						recentposts[ci].parentNode.removeChild(recentposts[ci]);
					}
					var	post=getElementsByTagAndClassName('p','posted',content)[0];
					if (post) {
						post.parentNode.removeChild(post);
						var	cmdiv=getElementsByTagAndClassName('div','entry-comment',content)[0];
						var	tbdiv=getElementsByTagAndClassName('div','entry-trackback',content)[0];
						if (cmdiv) {
							cmdiv.parentNode.removeChild(cmdiv);
							var	cmlinks=getElementsByTagAndClassName('div','comment-content',cmdiv);
							var	sep=d.createElement('span');
							sep.className='separator';
							sep.innerHTML='|';
							var	cmlink=d.createElement('a');
							cmlink.href=href+'#comments';
							cmlink.className='comment';
							cmlink.innerHTML=this.cmStr+' ('+cmlinks.length+') ';
							post.appendChild(sep);
							post.appendChild(d.createTextNode(' '));
							post.appendChild(cmlink);
						}
						if (tbdiv) {
							tbdiv.parentNode.removeChild(tbdiv);
							var	tblinks=getElementsByTagAndClassName('div','trackback-content',tbdiv);
							var	sep=d.createElement('span');
							sep.className='separator';
							sep.innerHTML='|';
							var	tblink=d.createElement('a');
							tblink.href=href+'#trackback';
							tblink.className='trackback';
							tblink.innerHTML=this.tbStr+' ('+tblinks.length+') ';
							post.appendChild(sep);
							post.appendChild(d.createTextNode(' '));
							post.appendChild(tblink);
						}
					}
					var	tgtobj=nav.nextSibling;
					while (tgtobj) {
						baseContent.appendChild(tgtobj);
						if (tgtobj.className=='entry-bottom') break;
						tgtobj=nav.nextSibling;
					}
					if (post) {
						baseContent.appendChild(post);
					}
					var	tgtlink=nav.getElementsByTagName('a')[0];
					if (!tgtlink||!tgtlink.href.match(/\/\d{4}\/\d{2}\//)) {
						replaceLink.call(this,nav,null);
					}
					else {
						replaceLink.call(this,tgtlink.parentNode,tgtlink);
						addButton.call(this,tgtlink);
					}
					baseContent.appendChild(nav);
					w.scrollBy(0,this.scrollOffset);
					if (typeof this.onload=='function') {
						this.onload();
					}
				}
				setEventHandler(container,'click',function(){
					showEntry.call(cocoShowPrev);
				});
				link.parentNode.insertBefore(container,link.nextSibling);
			}
			replaceLink.call(this,prevLink.parentNode,prevLink);
			addButton.call(this,prevLink);
			break;
		}
		return ret;
	}	//	end of init_main()

//	===
,	init	:	function() {
/*
		if (!this.checkTopPage()) {
			return;
		}
*/
		var	pagekind=this.checkPageKind();
w.pagekind=pagekind;
		switch (pagekind) {
			case	'toppage'		:
			case	'backnumber'	:
			case	'weekly'		:
			case	'monthly'		:
			case	'daily'			:
			case	'individual'	:
				break;
			default					:
				return;
		}
		if (!this.init_main(pagekind)) {
			this.setEventHandler(w,'load',function(){
				cocoShowPrev.init_main(pagekind);
			});
		}
	}
};	//	end of cocoShowPrev Object
})();

// === for Hot Start
if ( typeof hsCCSP != "undefined" ) {
(function(){
	cocoShowPrev.init();
})();
}
else {
try{(function(){var	n='cocoShowPrev',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){};
}
