DAY = 24 * 60 * 60 * 1000;
WEEK = 7 * DAY;
DEFAULT_DAYS = 4 * WEEK;
EXPIRES = DEFAULT_DAYS * 4;
ACCESS_TIME = "access_time=";
//NEW_MARK = " <IMG SRC=\"new.gif\" ALT=\"*\">NEW<IMG SRC=\"new.gif\" ALT=\"*\"> ";
NEW_MARK = " <BIG><TRONG>*NEW*</STRONG></BIG> ";

diff_pl_js = 0;
today = 0;
access = 0;

function getDefaultDays ()
{
	return (DEFAULT_DAYS / DAY);
}

function setDefaultDays (new_default)
{
	DEFAULT_DAYS = new_default * DAY;
}

function calibrateDate (doc, update_sec_pl)
{
	update_sec_js = new Date(doc.lastModified);
//	diff_pl_js = update_sec_pl*1000 - update_sec_js;
// 1970.01.01.00:00 is start point in JavaScript and Perl.
	diff_pl_js = 0;
}

function getJsDate (sec_pl)
{
//perl ...sec, JavaScript ...msec.
	jdt = new Date(sec_pl*1000 - diff_pl_js);
//	window.alert(sec_pl+"jdt: "+jdt.toGMTString());
	return (jdt);
}

function saveAccessDate(doc)
{
	tt = today.getTime();
	exp = new Date(tt + EXPIRES);
	ck = ACCESS_TIME + tt + "; expires=" + exp.toGMTString();
//	window.alert("SAVE: "+ck);
	doc.cookie = ck;
}

function loadAccessDate(doc)
{
	ck = doc.cookie;
//	window.alert("LOADED: "+ck);
	if (!ck || ck == "")
		return (new Date(today.getTime() - DEFAULT_DAYS));

	from_ix = ck.indexOf(ACCESS_TIME);
	if (from_ix == -1)
		return (new Date(today.getTime() - DEFAULT_DAYS));
	to_ix = ck.indexOf(";", from_ix);
	if (to_ix == -1)
		to_ix = ck.length;
	a_t = ck.substring(from_ix + ACCESS_TIME.length, to_ix + 1);
//	window.alert(a_t+" lne = "+(from_ix+ACCESS_TIME.length)+
//	" to_ix + 1= "+(to_ix + 1));
	a_t_d = new Date(a_t-0);
//	window.alert("a_t: "+a_t+" a_t_d: "+a_t_d.toGMTString());
	return (a_t_d);
}

function initDate(doc, update_sec_pl)
{
	calibrateDate(doc, update_sec_pl);
	today = new Date();
	access = loadAccessDate(doc);
	saveAccessDate(doc);
}

function getUpdateDateString(doc, sec_pl)
{
	udt = getJsDate(sec_pl-0);
//	window.alert(udt);
	tstr = udt.toLocaleString();
	if (udt.getTime() >= access.getTime()
		|| udt.getTime() >= today.getTime() - DEFAULT_DAYS)
		return (tstr + NEW_MARK);
	else
  		return (tstr);
}
        
