function addBlankAuthor(dPage,iLength)
{
	dPage.write("<tr>");
	dPage.write("<td width=\"10%\" border=\"0\" align=\"left\" height=\""+iLength+"\">");
	dPage.write("&nbsp;");
	dPage.write("</td>");
	dPage.write("<td width=\"40%\" height=\""+iLength+"\">");
	dPage.write("&nbsp;");
	dPage.write("</td>");
	dPage.write("<td width=\"20%\" height=\""+iLength+"\">");
	dPage.write("&nbsp;");
	dPage.write("</td>");
	dPage.write("<td width=\"30%\" align=\"bottom\" height=\""+iLength+"\">");
	dPage.write("&nbsp;");
	dPage.write("</td>");
	dPage.write("</tr>");
}

function addAuthor(dPage,sBack,sAuthorName,sPage,sGenre,sChange,dChangeDate,sReviewOne,sReviewOneURL,sReviewTwo,sReviewTwoURL,sReviewThree,sReviewThreeURL,sReviewFour,sReviewFourURL,sReviewFive,sReviewFiveURL)
{
//evaluate the changes
	if (sChange==undefined)
	{
		sChange="";
	}
	else
	{
		var i;
		var iYear=dChangeDate.substring(6,12);
		var iMonth=dChangeDate.substring(3,5);
		var iDay=dChangeDate.substring(0,2);
		var dNow=Date();
		var dChange=new Date(iYear,iMonth-1,iDay,0,0,0)
		i=DateDiff("d", dChange, dNow);
		if (i>60)
		{
			sChange="";
		}
	}
	if (sGenre==undefined)
	{
		sGenre="";
	}
	dPage.write("<tr>");
	dPage.write("<td width=\"10%\" border=\"0\" align=\"left\">");
	dPage.write("<span class=\"genre\">");
	if (sGenre!="")
	{
		dPage.write("("+sGenre+")");
	}
	else
	{
		dPage.write("&nbsp;");
	}
	dPage.write("</span>");
	dPage.write("</td>");
	dPage.write("<td width=\"40%\">");
	dPage.write("<a href=\""+sPage+"\">&nbsp;&nbsp;"+sAuthorName+"</a>");
	dPage.write("</td>");
	dPage.write("<td width=\"20%\">");
	
	if (sChange!="")
	{
		dPage.write("<span class=\"new\">"+sChange+"</span>");
	}
	else
	{
		dPage.write("<span class=\"genre\">&nbsp;</span>");
	}
	dPage.write("</td>");
	dPage.write("<td width=\"30%\" align=\"bottom\">");
	
	if (sReviewOne!=undefined)
	{
	dPage.write("<span class=\"genre\">Reviews</span>&nbsp;");
	dPage.write("<a href=\""+sReviewOneURL+"\" class=\"pic\" border=\"0\">");
	dPage.write("<img src=\""+sBack+"images/one.jpg\" alt=\""+sReviewOne+"\" border=\"0\" height=\"15\" width=\"25\" />");
	dPage.write("</a>");
		if (sReviewTwo!=undefined)
		{
		dPage.write("<a href=\""+sReviewTwoURL+"\" class=\"pic\" border=\"0\">");
		dPage.write("<img src=\""+sBack+"images/two.jpg\" alt=\""+sReviewTwo+"\" border=\"0\" height=\"15\" width=\"25\" />");
		dPage.write("</a>");
		}
		if (sReviewThree!=undefined)
		{
		dPage.write("<a href=\""+sReviewThreeURL+"\" class=\"pic\" border=\"0\">");
		dPage.write("<img src=\""+sBack+"images/three.jpg\" alt=\""+sReviewThree+"\" border=\"0\" height=\"15\" width=\"25\" />");
		dPage.write("</a>");
		}
		if (sReviewFour!=undefined)
		{
		dPage.write("<a href=\""+sReviewFourURL+"\" class=\"pic\" border=\"0\">");
		dPage.write("<img src=\""+sBack+"images/four.jpg\" alt=\""+sReviewFour+"\" border=\"0\" height=\"15\" width=\"25\" />");
		dPage.write("</a>");
		}
		if (sReviewFive!=undefined)
		{
		dPage.write("<a href=\""+sReviewFiveURL+"\" class=\"pic\" border=\"0\">");
		dPage.write("<img src=\""+sBack+"images/five.jpg\" alt=\""+sReviewFive+"\" border=\"0\" height=\"15\" width=\"25\" />");
		dPage.write("</a>");
		}
	}
	else
	{
		dPage.write("&nbsp;");
	}
	dPage.write("</td>");
	dPage.write("</tr>");
}

//DateDiff
function DateDiff(interval, start, end)
{
var iOut = 0, rounding=true;
var bufferA = Date.parse(start);
var bufferB = Date.parse(end );

// check that the start parameter is a valid Date.
if ( isNaN (bufferA) || isNaN (bufferB) )
{
return 0;
}
// check that an interval parameter was not numeric.
if ( interval.charAt == 'undefined' )
{
// the user specified an incorrect interval, handle the error.
return 0;
}
var number = bufferB-bufferA;

// what kind of add to do?
switch (interval.charAt(0))
{
case 'd': case 'D':
iOut = parseInt(number / 86400000)+parseInt((number %
86400000)/43200001);
break ;
case 'h': case 'H':
iOut = parseInt(number / 3600000 )+parseInt((number %
3600000)/1800001);
break ;
case 'm': case 'M':
iOut = parseInt(number / 60000 )+parseInt((number % 60000)/30001);
break ;
case 's': case 'S':
iOut = parseInt(number / 1000 )+parseInt((number % 1000)/501);
break ;
default:
// If we get to here then the interval parameter
// didn't meet the d,h,m,s criteria. Handle
// the error.
return 0;
}
return iOut ;
}
