/*  Exodus Cookie Functions
	Requires: YACS (Yet Another Cookie Script)
	
	Copyright (c) 2001 - 2003  All Rights Reserved Worldwide
	Exodus Enterprise Systems - West Chester, PA

	These functions may be used freely as long as the above copyright is attached.
*/

/* Site Cookie Format
// Description					Pos	ID
// Cookie Version				0	_eC_Ver				(number)
// Site Name					1	_eC_Name			(string)
// # of Visits					2	_eC_Visits			(number)
// # of Page Views				3	_eC_Pages			(number)
// Date of First Visit			4	_eC_FirstVisit		(date)
// Date of Last Visit			5	_eC_LastVisit		(date)
// Date Joined Mailing List		6	_eC_Mail			(date)
// Last Page Viewed				7	_eC_ExitPage		http
// Referring Site				8	_eC_Referrer		http
// Allow Popups					9	_eC_Popup			(boolean)
// Registration Date			10	_eC_Register		(date)
// Registration Name			11	_eC_RegName			(string)
*/

// Cookie Global Variables
var siteCookie = "";
var _eC_Ver = 1.20;
var _eC_Name = "10x";
var _eC_Visits = _eC_Pages = 0;
var _eC_FirstVisit = _eC_LastVisit = _eC_Mail = new Date(1970,1,1);
var _eC_ExitPage = document.URL;
var _eC_Referrer = "" + document.referrer;
var _eC_Register = new Date(1970,1,1);
var _eC_RegName = "";
var _eC_Expiry = "/+90D";
var _eC_Popup = true;
var newVisitor = false;

// Write out the cookie to the client system
function writeCookie(aCookie)	{
	aCookie.set("value=Cookie_Version->_eC_Ver,Site_Name->_eC_Name,Visit_Count->_eC_Visits,Visit_Pages->_eC_Pages,First_Date->_eC_FirstVisit,Last_Date->_eC_LastVisit,Mail_Date->_eC_Mail,Last_Page->_eC_ExitPage,Refer_Site->_eC_Referrer,Popup_Ok->_eC_Popup,Reg_Date->_eC_Register,Reg_Name->_eC_RegName","expire="+_eC_Expiry);
	if(debug)
		inspectObj(aCookie);
}

// Read the cookie from the client system
function readCookie(aCookie)	{
	_eC_Name = aCookie.values.Site_Name;
	_eC_Visits = aCookie.values.Visit_Count;
	_eC_Pages = aCookie.values.Visit_Pages;
	_eC_FirstVisit = aCookie.values.First_Date;
	_eC_LastVisit = aCookie.values.Last_Date;
	_eC_Mail = aCookie.values.Mail_Date;
	_eC_ExitPage = aCookie.values.Last_Page;
	_eC_RegName = aCookie.values.Reg_Name;
	_eC_Register = aCookie.values.Reg_Date;
	_eC_Popup = aCookie.values.Popup_Ok;
}

// Initialize the cookie, resetting everything to zero
function initCookie(aCookie)	{
	_eC_Visits = _eC_Pages = 1;
	_eC_FirstVisit = _eC_LastVisit = new Date();
	writeCookie(aCookie);
}


// Update the cookie with current information
function updateCookie(aCookie)	{
	readCookie(aCookie);
	versionCookie(aCookie);
	checkVisits(aCookie);
	_eC_LastVisit = new Date();
	writeCookie(aCookie);
}

// Check the number of visits made by the visitor
function checkVisits(aCookie)	{
	if(_eC_Referrer == "")	{
		_eC_Visits++;
	}
	_eC_Pages++
}

// Check the version of the cookie, reinitialize if necessary
function versionCookie(aCookie)	{
	if(_eC_Ver != aCookie.values.Cookie_Version)	{
		aCookie.del();
		siteCookie = new Cookie(_eC_Name);
		writeCookie(siteCookie);
	}
}

// If cookies are accepted, create one or update existing one
function cookieTracker()	{
	if(accept())	{
		siteCookie = new Cookie(_eC_Name);
		((siteCookie.exist()) ? updateCookie(siteCookie) : initCookie(siteCookie));
	}
}

// Verify registration
function isRegistered(aCookie)	{
	return (_eC_Register != new Date(1970,1,1));
}