var ListURL = topURL+"list.html";
//var ListURL = topURL+"test.html";
var	DayPageFName = 'index.html';
var	CategoryPageFName = 'index.html';
var	FromDate = '2003/10/15';
var	ToDate = '9999/99/99';
var	CategoryUUID = '';
var CTGName= new Array("monologue","Fanks!","Freaks!","Ivory","attic","book","gallery");
var CTGUUID= new Array("C1102119464", "C1149388394", "C1418850375", "C1518233791", "C1926314703", "C1365960969", "C55408286");

//topstoryID = new Array ();
//topstoryID[0] = "E191776466";	/* monologue */
//topstoryID[1] = "E167899909";	/* Fanks */
//topstoryID[2] = "E705209330";	/* Freaks */
//topstoryID[3] = "E810523626";	/* attic */
//topstoryID[4] = "E1408076008";	/* book */
//topstoryID[5] = "E1856297832";	/* gallery */
//
///* 禁止UUIDの場合に、recent entries として数えない */
///* 各カテゴリのトップストーリを対象として設置 */
//function checkUUID(uid) {
//	for(j=0;j<topstoryID.length;j++) {
//		if ( uid ==  topstoryID[j]) {
//			return (false);
//		}
//	}
//	return (true);
//}

var RecentEntry = new Array(); /* UUID の配列 */

function getIBlogRecEntryArray() {
	var k; /* RecentEntry の配列番号. 番号が若い方が新しいエントリ */
	var j=0; /* 読み込んだ EntryUUID の配列番号 */
	var i;
	var flagswap = 0; 
	var max = 15; 
	for (k=0; k<max; k++) { 
		RecentEntry[k] = EntryUUID[j++];
		i = k;
		while (i>0) {
			if (Entry[RecentEntry[i]].m_Date == Entry[RecentEntry[i-1]].m_Date ) {
				if (Entry[RecentEntry[i]].m_Time > Entry[RecentEntry[i-1]].m_Time ) {  /* m_Time が大きい方が新しいエントリ */
					swapBlogEntry(i, i-1);
					i--;
				} 
			}else {
				break;
			}
		} 
	}

}
function swapBlogEntry (numa, numb) { /* numa, numb は 交換する RecentEntry の配列番号 */
	var TempEntry;
	TempEntry = RecentEntry[numa];
	RecentEntry[numa] = RecentEntry[numb];
	RecentEntry[numb] = TempEntry;
}

function getIBlogRecEntry(ptn) { 
	var dispnum = 10;
	var Date;
	var CTG;
	var Title;
	var pattern = ptn;

	getIBlogRecEntryArray();

	if (pattern == 0) { 	/* on site bar*/
		document.write('<table class="recside">');
	} else if (pattern == 1) { 	/* on top */
		document.write('<table class="rectop">');
	} 
	for (i =0; i < dispnum; i++) {
//		if (checkUUID(RecentEntry[i])) {
			Date = Entry[RecentEntry[i]].m_Date.match(/\d{2}\/\d{2}$/);
			CTG = iBlogURL+Entry[RecentEntry[i]].m_CategoryUUID+'/';
			if (pattern == 1) { /* on top */
				document.write ('<tr><td class="r-days-top">'+Date+'</td>');
				document.write('<td class="r-ctg"><a href="'+CTG+'index.html">');
				getCategoryName(Entry[RecentEntry[i]].m_CategoryUUID);
				/*document.write('</a></td>');
				document.write('<tr><td> </td><td> - <a href="'); */
				document.write('</a></td><td><a href="'); 
			} else if (pattern == 0) { /* on site bar*/
				document.write ('<tr><td class="r-days">'+Date+'</td>');
				document.write('<td class="rside-td"><a href="');
			}
			document.write(CTG+RecentEntry[i]+'/index.html');
			document.write('">');
			document.write(Entry[RecentEntry[i]].m_Title);
			document.write('</a></td></tr>\n');
//		} else {
//			dispnum++; 
//		} 
	}
	document.write ('</table>');
}

function ListUpList () {
	
/* 今日の 日付を取得 */
	dd = new Date();
	yy = dd.getYear();
	mm = dd.getMonth() + 1;
	dd = dd.getDate();
	if (yy < 2000) { yy += 1900; }
/* オマケ  -s */
/*	if (mm < 10) { mmm = "0" + mm; } else {mmm = mm;}
	if (dd < 10) { ddd = "0" + dd; } else {ddd = dd;}
	document.write("Today : "+ yy + "/" + mmm + "/" + ddd+"<br />");
*/
/* オマケ  -e */

/* FromDate = '2003/10/15' から、今日までの月ごとのリスト作成*/
	document.write ('<div class="list_form">',
							'<form action="index.html" method="get" onsubmit="return ValidateListEntryForm(this);">',
							'<select name="FromDate">\n');
	m = 10;	// 2003/10/15
	for(y=2003;y<=yy;y++) {
		for(;m<=12;m++) {
			if (m<10) {
				mmm = "0"+m;
			} else {
				mmm = m;
			}
			document.write ('<option value="'+y+'/'+mmm+'/00">'+y+'/'+mmm+'</option>\n');
			if(m==mm) {
				if (y==yy) {
					break;
				}
			}
		}
		m = 1;
	}
	document.write ('</select>から');
							
	document.write ('<select name="ToDate">\n');						
	m = mm;	// today's month
	for(y = yy ; y >= 2003 ; y-- ) {
		for (; m > 0 ; m--) {
			if (m < 10) {
				mmm = "0" + m;
			}else {
				mmm = m;
			}
			document.write('<option value="'+y+'/'+mmm+'/32">'+y+'/'+mmm+'</option>\n');
			if (m == 10) {
				if (y == 2003) {
					break;
				}
			}
		}
		m = 12;
	}
	document.write ('</select>までの<br />');
	WriteCTGSelect();
	document.write ('のエントリの一覧を<input type="submit" value="表示する" tabindex="5" accesskey="d" />\n',
							'</form>\n',
							'</div>\n');
}

function WriteCTGSelect() {
	var categoryPairs = new Array(
							"C1102119464","monologue",
							"C1149388394","Fanks!",
							"C1418850375","Freaks!",
							"C1518233791","Ivory",
							"C1926314703","attic",
							"C1365960969","book",
							"C55408286","gallery"
	);
	var	i;

	document.write(
		'<select name="CategoryUUID">\n',
		'	<option value="">All categories</option>\n'
	);
	for (i = 0; i < categoryPairs.length; i += 2) {
		document.write(
			'	<option value="'+categoryPairs[i]+'">'+categoryPairs[i+1]+'</option>\n'
		);
	}
	document.write(
		'</select>\n'
	);
}
function DispTodaysBox() {
/* 今日の 日付を取得 */
	dd = new Date();
	yy = dd.getYear();
	mm = dd.getMonth() + 1;
	dd = dd.getDate();
	if (yy < 2000) { yy += 1900; }
	if (mm < 10) { mm = "0"+mm; }
	document.write('<input type="text" name="ToDate" value="'+yy+'/'+mm+'/'+dd+'" size="10" maxlength="10" tabindex="2" accesskey="t" /> より前の<br />');
}

function Query2Condition() {
	var	query = location.search.substr(1).split('&');
	var	i;
//	document.write('query.length='+query.length+'<br />');
	for (i = 0; i < query.length; i++) {
		query[i] = unescape(query[i]);
		if (query[i].match(/^FromDate=(\d{4}\/\d{1,2}\/\d{1,2})$/)) {
			FromDate = RegExp.$1;
//			document.write ('FromDate='+FromDate+'<br />');
		}
		else if (query[i].match(/^ToDate=(\d{4}\/\d{1,2}\/\d{1,2})$/)) {
			ToDate = RegExp.$1;
//			document.write ('ToDate='+ToDate+'<br />');
		}
		else if (query[i].match(/^CategoryUUID=(C\d+)$/)) {
			CategoryUUID = RegExp.$1;
//			document.write ('CategoryUUID='+CategoryUUID+'<br />');
		}
	}
}

function ListCondition(entryUUID) {
/* document.write ('FromDate='+FromDate+'<br />');
	document.write ('ToDate='+ToDate+'<br />');
	document.write ('CategoryUUID='+CategoryUUID+'<br />');
	document.write('Entry[entryUUID].m_Date='+Entry[entryUUID].m_Date+'<br />');
	if (Entry[entryUUID].m_Date >= FromDate) {document.write("1");}
		if (Entry[entryUUID].m_Date < ToDate) {document.write("2");}
		if (CategoryUUID == '' ) {document.write("3");}
		if (Entry[entryUUID].m_CategoryUUID == CategoryUUID) {document.write("4");}
	document.write('<br/>');
*/
	
	return Entry[entryUUID].m_Date >= FromDate && Entry[entryUUID].m_Date < ToDate && (CategoryUUID == '' || Entry[entryUUID].m_CategoryUUID == CategoryUUID);
}

function ListEntry() {
	var i = 0;
	var	listed = false;

	if (CategoryUUID == '') {
		document.write(
			'<table class="list_table" summary="エントリ一覧">\n',
			'	<caption>All Entries of All Categories</caption>\n',
			'	<thead>\n',
			'		<tr>\n',
			'			<td style="width:80px;border-bottom:1px solid #666666;">Date</td>\n',
			'			<td style="width:100px;border-bottom:1px solid #666666;">Category</td>\n',
			'			<td style="border-bottom:1px solid #666666;">Title</td>\n',
			'		</tr>\n',
			'	</thead>\n',
			'	<tbody>\n'
		);
	} else {
		document.write(
			'<table class="list_table" summary="エントリ一覧">\n',
			'	<caption>Category :  <a href="'+iBlogURL+Entry[EntryUUID[i]].m_CategoryUUID+'/'+CategoryPageFName+'">'
		);

		getCategoryName(CategoryUUID);
		document.write(
			'</a></caption>\n',
			'	<thead>\n',
			'		<tr>\n',
			'			<td style="width:80px;border-bottom:1px solid #666666;">Date</td>\n',
			'			<td style="border-bottom:1px solid #666666;">Title</td>\n',
			'		</tr>\n',
			'	</thead>\n',
			'	<tbody>\n'
		);

	}
	for (i = 0; i < EntryUUID.length; i++) {
		if (ListCondition(EntryUUID[i])) {
			listed = true;
			document.write(
				'		<tr>\n',
				'			<td class="list_date">\n',
				'				'+Entry[EntryUUID[i]].m_Date+'\n',
				'			</td>\n'
			); 
			if (CategoryUUID == '') {
				document.write(
					'			<td class="list_ctg">\n',
					'				<a href="'+iBlogURL+Entry[EntryUUID[i]].m_CategoryUUID+'/'+CategoryPageFName+'">'
				);
				getCategoryName(Entry[EntryUUID[i]].m_CategoryUUID);
				document.write(
					'</a>\n',
					'			</td>\n'
				);
			}
			document.write(
				'			<td class="list_title">\n',
				'				<a href="'+iBlogURL+Entry[EntryUUID[i]].m_CategoryUUID+'/'+EntryUUID[i]+'/'+DayPageFName+'">'+Entry[EntryUUID[i]].m_Title+'</a>\n',
				'			</td>\n',
				'		</tr>\n'
			);

		}
	}

	if (!listed) {
		document.write(
			'		<tr>\n',
			'			<td colspan="4" class="list_title">\n',
			'				条件に合致するエントリは見つかりませんでした。\n',
			'			</td>\n',
			'		</tr>\n'
		);
	}

	document.write(
		'	</tbody>\n',
		'</table>\n'
	);
}
