var	alistBaseId = 'articleListScreen' ;
var	alistSkipLTT = false ;
var	alistPauseLTT = false ;
var	alistCocologURL = 'https://app.cocolog-nifty.com/' ;

var	classLTT = alistBaseId + 'LTT' ;

/*
var	lttCssStr = '.' + classLTT + ' ' ;
document.writeln('<style type="text/css">');
document.writeln('<!--') ;
document.writeln(lttCssStr+'a {text-decoration: none;}') ;
document.writeln(lttCssStr+'a:link {color: white;}') ;
document.writeln(lttCssStr+'a:visited {color: white;}') ;
document.writeln(lttCssStr+'a:active {color: white;}') ;
document.writeln(lttCssStr+'a:hover {color: white;}') ;
document.writeln('-->');
document.writeln('</style>') ;
*/

// --- for Hot Start
if ( typeof hsLTT != "undefined" ) {
	var	opts = new Array() ;
	for ( var ci=0; ci < hsLTT.length; ci++ ) {
		opts[opts.length] = ( hsLTT.charAt(ci) == '0' ) ? false : true ;
	}
	if ( opts[3] ) {
		alistCocologURL = 'https://app.f.cocolog-nifty.com/' ;
	}
	showArticleList( opts[0], opts[1], opts[2] ) ;
}

function	changeNum2KanSuuji( num )
{
	var	kanSuuji = '零壱弐参四五六七八九' ;
	var	kanKurai = '一拾百千萬拾百千億拾百千兆拾百千京拾百千' ;
	
	num = Math.floor( eval(num) ) ;
	
	if ( num < 10 ) return kanSuuji.charAt(num) ;
	
	var	kanStr = '' ;
	var	tempNum = num ;
	for ( var ci=1; tempNum && ci < kanKurai.length; ci++ ) {
		var	surplus = tempNum % 10 ;
		if ( surplus ) {
			if ( 1 < ci ) kanStr = kanKurai.charAt(ci-1) + kanStr ;
			if ( surplus != 1 || !((ci-1)%4) ) {
				kanStr = kanSuuji.charAt(surplus) + kanStr ;
			}
		}
		tempNum = Math.floor( tempNum / 10 ) ;
		if ( !(ci%4) && !(tempNum%10) && (tempNum%10000) ) {
			kanStr = kanKurai.charAt(ci) + kanStr ;
		}
	}
	if ( 0 < tempNum ) return num ;
	
	return kanStr ;
	
}	//	end of changeNum2KanSuuji()


function	showTextLTT( win, tgtId, num, text, link, callBack )
{
	if ( isNaN(num) ) num = 0 ;
	
	var	charScreen = document.getElementById( tgtId ) ;
	if ( !charScreen ) return ;
	
	var	textScreen = charScreen.nextSibling ;
	textScreen.style.display = "none" ;
	textScreen.innerHTML = "" ;
	charScreen.innerHTML = "" ;
	charScreen.style.display = "block" ;
	
	var	px = 0 ;
	
	var	_prtStrOnCharScreen = function ( str )
	{
		if ( charScreen.tagName == "INPUT" ) {
			charScreen.value = str ;
		}
		else {
			charScreen.innerHTML = str ;
		}
		
	}	//	end of _prtStrOnCharScreen()
	
	var	showText = function ()
	{
		charScreen = document.getElementById( tgtId ) ;
		if ( !charScreen ) return ;
		
		_prtStrOnCharScreen( "" ) ;
		charScreen.style.display = "none" ;
		
		var	textScreen = charScreen.nextSibling ;
		
		textScreen.innerHTML = [
			'<a style="color:white;text-decoration:none;" href="' + link + '">'
		,	'<dl style="margin:0px;padding:0px;">'
		,	'<dt style="margin:0px;padding:4px 16px 4px 16px;font-size:smaller">第' + changeNum2KanSuuji(num) + '話</dt>'
		,	'<dd style="margin:0px;padding:4px 64px 4px 64px;">' + text + '</dd>'
		,	'</dl>'
		,	'</a>'
		].join('') ;
		
		textScreen.style.display = "block" ;
		
		if ( typeof callBack == "function" ) callBack() ;
	
	}	//	end of showText()
	
	var	showScreen = function ()
	{
		if ( alistSkipLTT ) {
			showText() ;
			return ;
		}
		charScreen = document.getElementById( tgtId ) ;
		if ( !charScreen ) return ;
		
		_prtStrOnCharScreen( text.substr( px, 1 ) ) ;
		px ++ ;
		if ( px < text.length ) {
			setTimeout( showScreen, 150 ) ;
		}
		else {
			setTimeout( showText, 150 ) ;
		}
	
	}	//	end of showScreen() ;
	
	setTimeout( showScreen, 0 ) ;
	
	return true ;
	
}	//	end of showTextLTT()


function	makeArticleListWindow( id )
{
	var	win = document.getElementById( id ) ;
	if ( win ) {
		return win ;
	}
/*
	var	center = document.getElementById('center') ;
//	if ( !center ) return null ;
	if ( !center ) {
		center = document.getElementById('alpha') ;
		if ( !center ) {
			center = document ;
		}
	}
*/
	var	checkId = [ 'center', 'beta-inner', 'beta', 'alpha-inner', 'alpha', 'main' ] ;
	var	center = "" ;
	for ( var ci=0; ci < checkId.length; ci++ ) {
		center = document.getElementById(checkId[ci]) ;
		if ( center ) break ;
	}
	if ( !center ) {
		center = document ;
	}
	var	divs = center.getElementsByTagName('div') ;
	var	content = "" ;

	for ( var ci=0; ci < divs.length; ci++ ) {
		if ( divs[ci].className == 'content' || divs[ci].className == 'center_box' ) {
			if ( content == "" ) {
				content = divs[ci] ;
			}
			else {
				content = center ;
				break ;
			}
		}
	}
//	if ( divs.length <= ci ) return null ;
//	if ( content == "" ) return null ;
	if ( content == "" ) content = center ;
	
	win = document.createElement('div') ;
	win.display = "none" ;
	win.id = id ;
	win.className = id ;
	
	var	tmpObj = content.firstChild ;
	while ( tmpObj && tmpObj.nodeType != 1 ) tmpObj=tmpObj.nextSibling ;
	if ( tmpObj && tmpObj.className == 'entry-nav' ) {
		content.insertBefore( win, tmpObj.nextSibling ) ;
	}
	else {
		content.insertBefore( win, content.firstChild ) ;
	}
	return win ;

}	//	end of makeArticleListWindow()


function	showArticleList( ltt, serial, up )
{
	var	id = alistBaseId ;
	var	win = makeArticleListWindow( id ) ;
	if ( !win ) return ;
	
	win.innerHTML = "" ;
	win.display = "block" ;
	
	var	content = win.parentNode ;
	var	h3s = content.getElementsByTagName('h3') ;
	if ( h3s.length <= 0 ) h3s = content.getElementsByTagName('h2') ;
	var	links = content.getElementsByTagName('a') ;
	
	var	plinks = new Array() ;
	var	marks = new Array() ;
	var	aids = new Array() ;
	for ( var ci=0; ci < links.length; ci++ ) {
		if ( links[ci].className == "permalink" ) {
			plinks[plinks.length] = links[ci].href ;
		}
		else if ( links[ci].title == "permalink" || links[ci].title == "固定リンク" ) {
			plinks[plinks.length] = links[ci].href ;
		}
		else if ( links[ci].innerHTML == "permalink" || links[ci].innerHTML == "固定リンク" || links[ci].innerHTML.match("記事本文") ) {
			plinks[plinks.length] = links[ci].href ;
		}
		else if ( links[ci].id ) {
/*
			 for ( var tmpObj=links[ci].nextSibling; tmpObj; tmpObj=tmpObj.nextSibling ) {
				if ( tmpObj.nodeType != 1 ) continue ;
				if ( tmpObj.tagName == "H3" || tmpObj.className == 'title' || tmpObj.className == 'entry-title' || tmpObj.className == 'enrty-title' ) {
					marks[marks.length] = location.href.replace(/#a[0-9]+/,'') + '#' + links[ci].id ;
					aids[aids.length] = links[ci].id.replace(/[^0-9]/g, '') ;
					break ;
				}
			}
*/
			if ( links[ci].id.match( /^a[0-9]+$/ ) && !links[ci].href ) {
				marks[marks.length] = location.href.replace('#ccq','@ccq').split('#')[0].replace('@ccq','#ccq') + '#' + links[ci].id ;
				aids[aids.length] = links[ci].id.replace(/[^0-9]/g, '') ;
			}
		}
	}
	if ( aids.length <= 0 ) {
		var	inputs = content.getElementsByTagName('input') ;
		for ( var ci=0; ci < inputs.length; ci++ ) {
			if ( inputs[ci].name == "entry_id" ) {
				var	tmpNum = marks.length ;
				if ( h3s[tmpNum] ) {
					var	mark = document.createElement('a') ;
					mark.id = 'a' + inputs[tmpNum].value ;
					h3s[tmpNum].parentNode.insertBefore( mark, h3s[tmpNum] ) ;
				}
				marks[tmpNum] = location.href.replace('#ccq','@ccq').split('#')[0].replace('@ccq','#ccq') + '#a' + inputs[tmpNum].value ;
				aids[aids.length] = inputs[ci].value ;
			}
		}
	}
	if ( aids.length <= 0 ) {
		var	divs = content.getElementsByTagName('div') ;
		for ( var ci=0; ci < divs.length; ci++ ) {
			if ( divs[ci].className == "entry" && divs[ci].id ) {
				var	aid = divs[ci].id.replace( /^entry-/, '' ) ;
				if ( aid != divs[ci].id ) {
					var	tmpNum = marks.length ;
					if ( h3s[tmpNum] ) {
						var	mark = document.createElement('a') ;
						mark.id = 'a' + aid ;
						h3s[tmpNum].parentNode.insertBefore( mark, h3s[tmpNum] ) ;
					}
					marks[tmpNum] = location.href.replace('#ccq','@ccq').split('#')[0].replace('@ccq','#ccq') + '#a' + aid ;
					aids[aids.length] = aid ;
				}
			}
		}
	}
//	if ( h3s.length != plinks.length )
	if ( plinks.length <= 0 )
	{
		if ( h3s.length == 1 ) {
			plinks[plinks.length] = location.href.replace('#ccq','@ccq').split('#')[0].replace('@ccq','#ccq') ;
		}
		else {
			alert( 'this page is not supported (h3s.length:' + h3s.length + ' plinks.length:' + plinks.length + ')' ) ;
			return ;
		}
	}
	if ( h3s.length < plinks.length ) {
		var	sub = plinks.length-h3s.length ;
		for ( var ci=0; ci < sub; ci++ ) {
			plinks.pop() ;
		}
	}
	if ( typeof alistBlogId != "undefined" && !document.getElementById('alistEdit'+aids[0]) ) {
		for ( var ci=0; ci < plinks.length; ci++ ) {
			if ( !marks[ci] ) continue ;
			var	editLink = document.createElement('a') ;
			editLink.id = 'alistEdit'+aids[ci] ;
			editLink.href = alistCocologURL + 't/app/weblog/post?__mode=edit_entry&id=' + aids[ci].replace(/^0+/,'') + '&blog_id=' + alistBlogId ;
			editLink.title = "記事を編集(管理者用)" ;
			editLink.innerHTML = "[編集]" ;
			editLink.style.fontSize = "10px" ;
			h3s[ci].parentNode.insertBefore( editLink, h3s[ci] ) ;
		}
	}
	var	divTop = document.createElement('div') ;
	divTop.className = "entry-top" ;
	win.appendChild( divTop ) ;
	
	var	divList = document.createElement('div') ;
//	var	listHtml = '<ol type="1" start"1" style="list-style-type:decimal;margin-left:16px;padding-left:0px;text-align:left;"></ol>' ;
	var	listHtml = '<ul style="list-style-type:none;margin-left:16px;padding-left:0px;text-align:left;"></ul>' ;
	divList.innerHTML = listHtml ;
	
//	win.appendChild( divList ) ;

	var	existEntry = false ;
	var	bgClass = "" ;
	var	titleClass = "" ;
	var	divs = content.getElementsByTagName('div') ;
	for ( var ci=0; ci < divs.length; ci++ ) {
		if ( divs[ci].className == 'entry' ) existEntry = true ;
		if ( bgClass == "" && divs[ci].className.match( /^entry.*-bg$/ ) ) bgClass = divs[ci].className ;
//		if ( bgClass == "" && divs[ci].className == 'entry-bg' ) bgClass = divs[ci].className ;
//		if ( titleClass == "" && ( divs[ci].className == 'entry-title' || divs[ci].className == 'enrty-title' ) ) titleClass = divs[ci].className ;
		if ( titleClass == "" && ( divs[ci].className == 'title' || divs[ci].className == 'entry-title' || divs[ci].className == 'enrty-title' ) ) titleClass = divs[ci].className ;
	}
	if ( existEntry ) {
		var	divEntry = document.createElement('div') ;
		divEntry.className = "entry" ;
		divEntry.appendChild( divList ) ;
		
		if ( bgClass == "" ) {
			win.appendChild( divEntry ) ;
		}
		else {
			var	divBg = document.createElement('div') ;
			divBg.className = bgClass ;
			divBg.appendChild( divEntry ) ;
			win.appendChild( divBg ) ;
		}
		var	divBottom = document.createElement('div') ;
		divBottom.className = "entry-body-bottom" ;
		win.appendChild( divBottom ) ;
	}
	else {
		if ( bgClass == "" ) {
			win.appendChild( divList ) ;
		}
		else {
			var	divBg = document.createElement('div') ;
			divBg.className = bgClass ;
			divBg.appendChild( divList ) ;
			win.appendChild( divBg ) ;
		}
	}
	var	alist = divList.firstChild ;
	
	if ( !ltt ) {
		divList.style.display = "none" ;
		for ( var ci=0; ci < plinks.length; ci++ ) {
			var	li = document.createElement('li') ;
			li.style.marginLeft = "0px" ;
			li.style.paddingLeft = "0px" ;
			var	markStr = ( marks[ci] ) ? '<a href="' + marks[ci] + '" title="ページ内移動">[ID:' + aids[ci] + ']</a>' : '' ;
			var	editStr = ( marks[ci] && typeof alistBlogId != "undefined" ) ? '<a href="' + alistCocologURL + 't/app/weblog/post?__mode=edit_entry&id=' + aids[ci].replace(/^0+/,'') + '&blog_id=' + alistBlogId + '" title="記事を編集(管理者用)">■</a>' : '■' ;
			li.innerHTML = [
				'<table border="0"><tbody style="vertical-align:top;line-height:110%;text-align:left;"><tr>'
//			,	'<td>' + editStr + '&nbsp;' + markStr + '&nbsp;</td>'
			,	'<td>' + editStr + '</td><td>&nbsp;' + markStr + '&nbsp;</td>'
			,	'<td><a href="' + plinks[ci] + '" title="個別ページへ">' + h3s[ci].innerHTML.replace(/<\/?[^>]+>/ig, '') + '</a></td>'
			,	'</tr></tbody></table>'
			].join('') ;
			alist.appendChild( li ) ;
		}
		var	pageTitle = document.createElement('h2') ;
		pageTitle.innerHTML = document.title ;
		var	indexTitle = document.createElement('h3') ;
		indexTitle.innerHTML = 'ページ内目次 ' + '<span style="color:green; font-size:10px;">(' + plinks.length + '件)</span>' ;
		if ( titleClass == "" ) {
			divList.insertBefore( pageTitle, alist ) ;
			divList.insertBefore( indexTitle, alist ) ;
		}
		else {
			var	divTitle = document.createElement('div') ;
			divTitle.className = titleClass ;
			divTitle.appendChild(pageTitle) ;
			divTitle.appendChild(indexTitle) ;
			divList.insertBefore( divTitle, alist ) ;
		}
		divList.style.display = "block" ;
		// --- for 'cocoQLink.js'
		if ( typeof makeQuickLink == "function" && _myScreenFirstCall_ == false ) makeQuickLink( content ) ;
		return ;
	}
	
	var	tgtId = win.id + (new Date).getTime() ;
	
	var	callNum = ( up == true ) ? plinks.length-1 : 0 ;
	
	var	callShowTextLTT = function() { alert("dummy") ; } ;
	
	var	waitTID = 0 ;
	
	var	waitSeconds = function()
	{
		var	li = document.createElement('li') ;
		li.style.marginLeft = "0px" ;
		li.style.paddingLeft = "0px" ;
		var	markStr = ( marks[callNum] ) ? '<a href="' + marks[callNum] + '">[ID:' + aids[callNum] + ']</a>' : '' ;
		var	editStr = ( marks[callNum] && typeof alistBlogId != "undefined" ) ? '<a href="' + alistCocologURL + 't/app/weblog/post?__mode=edit_entry&id=' + aids[callNum].replace(/^0+/,'') + '&blog_id=' + alistBlogId + '" title="記事を編集(管理者用)">■</a>' : '■' ;
		li.innerHTML = [
			'<table border="0"><tbody style="vertical-align:top;line-height:110%;text-align:left;"><tr>'
		,	'<td>' + editStr + '&nbsp;' + markStr + '&nbsp;</td>'
		,	'<td><a href="' + plinks[callNum] + '">' + h3s[callNum].innerHTML.replace(/<\/?[^>]+>/ig, '') + '</a></td>'
		,	'</tr></tbody></table>'
		].join('') ;
		
		if ( up == true ) {
			alist.insertBefore( li, alist.firstChild ) ;
			callNum -- ;
			var	endflg = ( callNum < 0 ) ? true : false ;
		}
		else {
			alist.appendChild( li ) ;
			callNum ++ ;
			var	endflg = ( plinks.length <= callNum ) ? true : false ;
		}
		if ( !alistPauseLTT ) {
			if ( endflg == false ) {
				waitTID = setTimeout( callShowTextLTT, 5000 ) ;
			}
			else {
				waitTID = setTimeout( 'showArticleList(false)', 5000 ) ;
			}
		}
		// --- for 'cocoQLink.js'
		if ( typeof makeQuickLink == "function" && _myScreenFirstCall_ == false ) makeQuickLink( content ) ;
		
	}	//	end of waitSeconds()
	
	var	pauseLTT = function()
	{
		alistSkipLTT = true ;
		
		alistPauseLTT = !alistPauseLTT ;
		
		var	pauseButton = document.getElementById( alistBaseId + "Pause" ) ;
		
		if ( pauseButton ) {
			pauseButton.style.borderStyle = ( alistPauseLTT ) ? 'groove' : 'ridge' ;
			pauseButton.style.backgroundColor = ( alistPauseLTT ) ? 'silver' : 'white' ;
		}
		if ( waitTID ) {
			clearTimeout( waitTID ) ;
			waitTID = 0 ;
		}
		if ( !alistPauseLTT ) {
			if ( ( up == true && callNum < 0 ) || ( up == false && plinks.length <= callNum ) ) {
				showArticleList(false) ;
			}
			else {
				callShowTextLTT() ;
			}
		}
	}	//	end of pauseLTT()
	
	var	skipLTT = function()
	{
		if ( alistPauseLTT ) {
			pauseLTT() ;
			return ;
		}
		alistSkipLTT = true ;
		
		if ( !waitTID ) return ;
		
		clearTimeout( waitTID ) ;
		waitTID = 0 ;
		if ( ( up == true && callNum < 0 ) || ( up == false && plinks.length <= callNum ) ) {
			showArticleList(false) ;
		}
		else {
			callShowTextLTT() ;
		}
	
	}	//	end of skipLTT()
	
	var	callShowTextLTT_1st = true ;
	
	callShowTextLTT = function()
	{
		waitTID = 0 ;
		alistSkipLTT = false ;
		alistPauseLTT = false ;
		
		if( callShowTextLTT_1st == true ) {
			callShowTextLTT_1st = false ;
			
			var	skip = document.createElement('form') ;
			skip.style.margin = '0px' ;
			skip.style.padding = '0px' ;
			skip.style.textAlign = 'left' ;
			
			var	stopButton = document.createElement('input') ;
			stopButton.style.marginBottom = '2px' ;
			stopButton.style.padding = '0px' ;
			stopButton.style.fontFamily = 'ＭＳ ゴシック,monospace' ;
			stopButton.style.fontSize = '10px' ;
			stopButton.style.lineHeight = '100%' ;
			stopButton.style.textAlign = 'center' ;
			stopButton.style.color = 'black' ;
			stopButton.style.backgroundColor = 'white' ;
			stopButton.style.borderColor = 'white' ;
			stopButton.style.borderWidth = '2px' ;
			stopButton.style.borderStyle = 'ridge' ;
			stopButton.type = "button" ;
			stopButton.title = "Stop" ;
			stopButton.value = "■" ;
			stopButton.onclick = function() { showArticleList(false) ; } ;
			skip.appendChild( stopButton ) ;
			
			var	pauseButton = document.createElement('input') ;
			pauseButton.id = alistBaseId + "Pause" ;
			pauseButton.style.marginLeft = '4px' ;
			pauseButton.style.marginBottom = '2px' ;
			pauseButton.style.padding = '0px' ;
			pauseButton.style.fontFamily = 'ＭＳ ゴシック,monospace' ;
			pauseButton.style.fontSize = '10px' ;
			pauseButton.style.lineHeight = '100%' ;
			pauseButton.style.textAlign = 'center' ;
			pauseButton.style.color = 'black' ;
			pauseButton.style.backgroundColor = 'white' ;
			pauseButton.style.borderColor = 'white' ;
			pauseButton.style.borderWidth = '2px' ;
			pauseButton.style.borderStyle = 'ridge' ;
			pauseButton.type = "button" ;
			pauseButton.title = "Pause" ;
			pauseButton.value = "||" ;
			pauseButton.onclick = pauseLTT ;
			skip.appendChild( pauseButton ) ;
			
			var	skipButton = document.createElement('input') ;
			skipButton.style.marginLeft = '4px' ;
			skipButton.style.marginBottom = '2px' ;
			skipButton.style.padding = '0px' ;
			skipButton.style.fontFamily = 'ＭＳ ゴシック,monospace' ;
			skipButton.style.fontSize = '10px' ;
			skipButton.style.lineHeight = '100%' ;
			skipButton.style.textAlign = 'center' ;
			skipButton.style.color = 'black' ;
			skipButton.style.backgroundColor = 'white' ;
			skipButton.style.borderColor = 'white' ;
			skipButton.style.borderWidth = '2px' ;
			skipButton.style.borderStyle = 'ridge' ;
			skipButton.type = "button" ;
			skipButton.title = "Skip" ;
			skipButton.value = ">>" ;
			skipButton.onclick = skipLTT ;
			skip.appendChild( skipButton ) ;
			
			charScreen = document.createElement('div') ;
			charScreen.id = tgtId ;
			charScreen.className = classLTT ;
			charScreen.style.width= "95%" ;
			charScreen.style.margin= "0px 0px 0px 0px" ;
			charScreen.style.borderStyle = "none" ;
			charScreen.style.textAlign= "center" ;
			charScreen.style.padding= "8px 16px 0px 16px" ;
			charScreen.style.color = "white" ;
			charScreen.style.backgroundColor = "black" ;
			charScreen.style.fontSize = "256px" ;
			charScreen.style.lineHeight = "110%" ;
			charScreen.style.fontWeight = "bolder" ;
			charScreen.style.fontFamily = "ＭＳ Ｐ明朝" ;
		
			var	textScreen = document.createElement('div') ;
			textScreen.style.display = "none" ;
			textScreen.className = classLTT ;
			textScreen.style.width= "98%" ;
			textScreen.style.margin= "0px 0px 0px 0px" ;
			textScreen.style.borderStyle = "none" ;
			textScreen.style.textAlign= "left" ;
			textScreen.style.padding= "4px 8px 4px 8px" ;
			textScreen.style.color = "white" ;
			textScreen.style.backgroundColor = "black" ;
			textScreen.style.fontSize = "48px" ;
			textScreen.style.lineHeight = "110%" ;
			textScreen.style.fontWeight = "bolder" ;
			textScreen.style.fontFamily = "ＭＳ Ｐ明朝" ;
			
			win.insertBefore( textScreen, win.firstChild ) ;
			win.insertBefore( charScreen, win.firstChild ) ;
			win.insertBefore( skip, win.firstChild ) ;
		}
		else {
			charScreen = document.getElementById( tgtId ) ;
			if ( !charScreen ) return ;
		}
		if ( serial ) {
			var	num = ( aids[callNum] ) ? aids[callNum].replace(/^0+/,'') : callNum + 1 ;
		}
		else {
			var	num = callNum + 1 ;
		}
		showTextLTT( win, tgtId, num, h3s[callNum].innerHTML.replace(/<\/?[^>]+>/ig, ''), plinks[callNum], waitSeconds ) ;
		
	}	//	end of callShowTextLTT()
	
	setTimeout( callShowTextLTT, 0 ) ;
	
}	//	end of showArticleList()
