if (typeof dc == "undefined")
{
	var dc = new Object();
}
dc = {
	begin: function ()
	{
		this.trackID = this.getID()
		this.browser = this.searchString(this.dataBrowser) || "unknown";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "unknown";
		this.osPlatform = this.searchString(this.dataPlatform) || "unknown";
		this.osSystem = this.searchString(this.dataSystem) || "unknown";
		this.screenW = screen.width;
		this.screenH = screen.height;
		this.windowW = this.getWindowSize()[0];
		this.windowH = this.getWindowSize()[1];
		this.prevPage = this.getReferrer();
		this.theImg =  this.getImage();
	},
	
	readCookie: function()
	{
		var tmp = "";
		var cookies = document.cookie.split(";");
		for (var i = 0; i < cookies.length; i++)
		{
			var cookieCrumbs = cookies[i].split("=");
			var cookieName = cookieCrumbs[0];
			cookieName = (cookieName.replace(/^\W+/,'')).replace(/\W+$/,'')
			var cookieValue = cookieCrumbs[1];
			if (cookieName == "dc")
			{
				return unescape(cookieValue);
			}
		}
		return false;
	},
	
	setCookie: function()
	{
		var key = "";
		var asciiChar = "";
		for (var i=30; i>0; i--)
		{
			do
			{
				asciiChar = String.fromCharCode(32 + Math.floor(Math.random() * (126 - 32 + 1)));
			}
			while (asciiChar == '/' || asciiChar == ' ');
			key += asciiChar;
		}
		var expDate = new Date();
		var later = expDate.getTime() + ((365 * 100) * 24 * 60 * 60 * 1000);
		expDate.setTime(later);
		var site = document.domain;
		if (site.substring(0,4) == "www.")
		{
			site = site.substring(4,site.length);
		}
		document.cookie = "dc=" + escape(key) + ";expires=" + expDate.toGMTString() + site + ";path=/" + ";domain=";
	},
	
	getID: function()
	{
		var id = this.readCookie();
		if (id == false)
		{
			this.setCookie();
			id = this.readCookie()
			if (id == false)
			{
				return "Unset";
			}
		}
		return id;
	},
	
	searchString: function (data)
	{
		for (var i=0;i<data.length;i++)
		{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString)
			{
				if (dataString.indexOf(data[i].subString) != -1) 
				{
					return data[i].identity;
				}
			}
			else if (dataProp)
			{
				return data[i].identity;
			}
		}
	},
	
	searchVersion: function (dataString)
	{
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1)
		{
			return;
		}
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	
	getWindowSize: function()
	{
		var size = [0, 0];
		if (typeof window.innerWidth != 'undefined')
		{
			size = [
				window.innerWidth,
				window.innerHeight
			];
		}
		else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
		{
			size = [
				document.documentElement.clientWidth,
				document.documentElement.clientHeight
			];
		}
		else
		{
			size = [
				document.getElementsByTagName('body')[0].clientWidth,
				document.getElementsByTagName('body')[0].clientHeight
			];
		}
		return size;
	},
	
	getReferrer: function()
	{	
		var r = "";
		if (document.referrer && document.referrer!="")
		{
			r = document.referrer;
			/*r = r.replace(/&/g,"_am_");*/
			/*r = r.replace(/=/g,"_eq_");*/
			/*r = r.replace(/\+/g,"_pl_");*/
			r = r.replace(/\//g,"_sl_");
		}
		if (r == "")
		{
			r = "null";
		}
		return r;
	},
	
	getImage: function()
	{
		var img = new Image(1,1);
		img.src = "http://www.direct-logic.com/dc2/" + escape(this.trackID) + "/" + escape(this.browser) + "/" + escape(this.version) + "/" + escape(this.osPlatform) + "/" + escape(this.osSystem) + "/" + escape(this.screenW) + "/" + escape(this.screenH) + "/" + escape(this.windowW) + "/" + escape(this.windowH) + "/" + escape(this.prevPage) + "/dc.gif";
	},
	
	
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Flock",
			versionSearch: "Flock/",
			identity: "Flock"
		},
		{
			string: navigator.userAgent,
			subString: "Maxthon",
			versionSearch: "MSIE",
			identity: "Maxthon"
		},
		{
			string: navigator.userAgent,
			subString: "America Online Browser",
			identity: "America Online Browser"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "hotjava",
			identity: "HotJava"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "webtv",
			identity: "WebTV"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{ 	/* for newer Netscapes (6+)*/
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		/*{
			string: navigator.userAgent,
			subString: "Avant Browser",
			identity: "Avant Browser"
		},*/
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Internet Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 	/* for older Netscapes (4-)*/
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataPlatform: [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "x11",
			identity: "Unix"
		}
	],
	dataSystem: [
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "win95",
			identity: "Windows 95"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "windows 95",
			identity: "Windows 95"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "windows 3.1",
			identity: "Windows 3.1"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "win 9x 4.90",identity: "Windows ME"},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "windows nt 5.0",
			identity: "Windows 2000"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "windows nt 5.1",
			identity: "Windows XP"
		},
		{	/* unreliable */
			string: navigator.userAgent.toLowerCase(),
			subString: "win98",
			identity: "Windows 98"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "winnt",
			identity: "Windows NT"
		},
		{
			string: navigator.userAgent.toLowerCase(),subString: "os/2",
			identity: "IBM Operating System/2"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "68k",
			identity: "Mac 68000"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "68000",
			identity: " "
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "ppc",
			identity: "Mac PowerPC"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "powerpc",
			identity: "Mac PowerPC"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "os x",
			identity: "Mac OS X"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "sunos",
			identity: "Sun OS"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "i86",
			identity: "Sun i86"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "irix",
			identity: "SGI IRIX"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "hp-ux",
			identity: "HP UX"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "aix",
			identity: "IBM AIX"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "sco",
			identity: "SCO"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "unix_sv",
			identity: "unixware"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "ncr",
			identity: "is_mpras"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "reliantunix",
			identity: "ReliantUnix"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "sinix",
			identity: "Sinix"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "freebsd",
			identity: "FreeBSD"
		},
		{
			string: navigator.userAgent.toLowerCase(),
			subString: "bsd",
			identity: "BSD"
		}
	]
};
dc.begin();