/*-----------------------------------------------------------------------------
List Entries JavaScript - No HaloScan Version
$Id: ListEntryNoHalo.js,v 1.3 2004/08/16 06:18:43 okamura Exp $
Copyright (C) 2003 OKAMURA Yuji, All right reserved.
-----------------------------------------------------------------------------*/
var	DayPageFName = 'index.html';
var	CategoryPageFName = 'index.html';

var	FromDate = '0000/00/00';
var	ToDate = '9999/99/99';
var	CategoryUUID = '';

function Query2Condition() {
	var	query = location.search.substr(1).split('&');
	var	i;

	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;
		}
		else if (query[i].match(/^ToDate=(\d{4}\/\d{1,2}\/\d{1,2})$/)) {
			ToDate = RegExp.$1;
		}
		else if (query[i].match(/^CategoryUUID=(C\d+)$/)) {
			CategoryUUID = RegExp.$1;
		}
	}
}

function ListCondition(entryUUID) {
	return Entry[entryUUID].m_Date >= FromDate && Entry[entryUUID].m_Date < ToDate && (CategoryUUID == '' || Entry[entryUUID].m_CategoryUUID == CategoryUUID);
}

function CompEntryByOrder(e1, e2) {
	if (e1 == e2) return 0;

	{
		var	d1, d2;

		d1 = Entry[e1].m_Date;
		d2 = Entry[e2].m_Date;
		if (d1 < d2) return 1;
		if (d2 > d1) return -1;
	}

	var	i;

	for (i = 0; i < entryUUIDsList.length; i++) {
		if (entryUUIDsList[i] == e1) return -1;
		if (entryUUIDsList[i] == e2) return 1;
	}

	return undef;
}

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

	if (entryUUIDsList) {
		EntryUUID.sort(CompEntryByOrder);
	}

	if (CategoryUUID == '') {
		document.write(
			'<table width="100%" border="1" cellspacing="2" cellpadding="2" summary="エントリ一覧">\n',
			'	<caption>'+FromDate+' から '+ToDate+' までのエントリ</caption>\n',
			'	<thead>\n',
			'		<tr>\n',
			'			<th>投稿日付</th>\n',
			'			<th>カテゴリ</th>\n',
			'			<th>タイトル</th>\n',
			'		</tr>\n',
			'	</thead>\n',
			'	<tbody>\n'
		);
	}
	else {
		document.write(
			'<table width="100%" border="1" cellspacing="2" cellpadding="2" summary="エントリ一覧">\n',
			'	<caption>カテゴリ '
		);
		getCategoryName(CategoryUUID);
		document.write(
			' の '+FromDate+' から '+ToDate+' までのエントリ</caption>\n',
			'	<thead>\n',
			'		<tr>\n',
			'			<th>投稿日付</th>\n',
			'			<th>カテゴリ</th>\n',
			'			<th>タイトル</th>\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>\n',
				'				'+Entry[EntryUUID[i]].m_Date+'\n',
				'			</td>\n',
				'			<td>\n',
				'				<a href="'+Entry[EntryUUID[i]].m_CategoryUUID+'/'+CategoryPageFName+'">'
			);
			getCategoryName(Entry[EntryUUID[i]].m_CategoryUUID);
			document.write(
				'</a>\n',
				'			</td>\n',
				'			<td>\n',
				'				<a href="'+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="3" style="text-align: center;">\n',
			'				条件に合致するエントリは見つかりませんでした。\n',
			'			</td>\n',
			'		</tr>\n'
		);
	}

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