// adcs.js: Adducer Data Collector Script
// Copyright (C) 2006-2010 3ft9 Ltd
var __adducer_server       = 'uk1';
var __adducer_cookiedomain = '';
var __adducer_statimg      = new Array();
var __adducer_statidx      = 0;
var __adducer_requested    = 0;
var __adducer_override     = '';
var __adducer_page         = '';

// FUNCTIONS \\

function __adducer_tracklinks()
{
	if (document.layers)
	{
		for (var c = 0; c < document.links.length; c++)
		{
			document.links[c].onmousedown= function() { return __adducer_trackclick(this); };
		}
	}
	else
	{
		for (var c = 0; c < document.links.length; c++)
		{
			document.links[c].onmouseup= function() { return __adducer_trackclick(this); };
		}
	}
}

// Does the actual stat post by creating an in-memory image
function __adducer_record(url, onStat)
{
	__adducer_statimg[__adducer_statidx] = new Image();

	__adducer_statimg[__adducer_statidx].src = location.protocol + '//' + __adducer_server + '.adducer.net/r?' + url;

	if ((onStat) && (onStat != ''))
	{
		__adducer_statimg[__adducer_statidx].onStat = onStat;
		__adducer_statimg[__adducer_statidx].onload = function() { __adducer_hold(this.onStat) ; };
	}

	__adducer_statidx++;
}

function __adducer_hold(onStat)
{
	eval(onStat);
}

function __adducer_idgen()
{
	var vals = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
	var key  = "";
	var last = -1;
	var idx  = -1;

	for (var i = 0; i < 8; i++)
	{
		while (last == idx)
			idx = Math.floor( Math.random() * 16 );

		last = idx;

		key += vals[ idx ];
	}

	var x = 0;

	if (screen)
		x = (screen.width + screen.height) / screen.colorDepth;

	if (x == 0)
		x = Math.random() * 65536;

	x = Math.floor( x % 256 );

	key += '_' + vals[ Math.floor(x / 16) ] + vals[ x % 16 ];


	var s = new Date();
	x = s.getTime() % 16777216;
	x = x.toString();

	while (x.length < 8)
		x = '0' + x;

	key += '_' + x;

	return key;
}

function __adducer_flash()
{
	var f = "-";
	var n = navigator;
	if (n.plugins && n.plugins.length)
	{
		for (var ii = 0; ii < n.plugins.length; ii++)
		{
			if (n.plugins[ii].name.indexOf('Shockwave Flash') != -1)
			{
				f = n.plugins[ii].description.split('Shockwave Flash ')[1];
				break;
			}
		}
	}
	else if (window.ActiveXObject)
	{
		for (var ii = 10; ii >= 2; ii--)
		{
			try
			{
				var fl = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + ii + "');");
				if (fl)
				{
					f = ii + '.0';
					break;
				}
			}
			catch(e) {}
		}
	}
	return f;
}

function __adducer_getid()
{
	var s = new Date();

	if (navigator.userAgent.indexOf('Mac') >= 0 && s.getTimezoneOffset() >= 720)
		s.setTime (s.getTime() - 1440*60*1000);

	var cookieString = document.cookie.toString();

	var __adducer_session = "";

	if (cookieString.indexOf("__adducerid") == -1)
	{
		__adducer_session = __adducer_idgen();

		var domStr = "";

		if ( __adducer_cookiedomain != "" )
		{
			domStr = "domain="+ __adducer_cookiedomain +";";
		}

		document.cookie = "__adducerid="+__adducer_session+";expires=Mon, 14-Jan-2038 00:00:00 GMT;"+domStr+"path=/;";
	}

	cookieString = document.cookie.toString();

	if(cookieString.length < 1)
	{
		__adducer_session = '';
	}
	else
	{
		if (cookieString.indexOf(';') == -1)
			cookieString = cookieString.replace(/__adducer/g, ';__adducer'); // NS6 issue

		var start = cookieString.indexOf("__adducerid=") + 12;
		var end = cookieString.indexOf(";",start);

		if (end == -1)
		end = cookieString.length;
		__adducer_session = unescape(cookieString.substring(start,end));
	}

	return __adducer_session;
}

function __adducer_trackclick( link )
{
	var url = link.href;

	var parts = __adducer_DownloadExtensions.split(' ');

	var match = false;

	for (var i = 0; i < parts.length; i++)
	{
		if ((!parts[i]) || (parts[i] == "")) continue;

		if (url.indexOf( parts[ i ] ) != -1)
		{
			match = true;
			break;
		}
	}

	if ((match == false) && (url.indexOf( location.host ) != -1))
	{
		return true;
	}

	var imgURL = "v=1&id=" + __adducer_getid() + "&lnk=" + escape(url)+"&rnd=" + new Date().getTime();

	__adducer_XIMG(imgURL);

	var endAt = new Date().getTime() + 250;
	var rightNow;

	while(true)
	{
		rightNow = new Date();
		if (rightNow.getTime() >= endAt)
			break;
	}

	return true;
}

// Track a page (set __adducer_AltURL to record a different page URL than the one in window.location)
function __adducer_stat(urlAppend)
{
	// Only allow one hit to be recorded per request
	//if (__adducer_requested != 0)
	//	return;

	if (__adducer_override != '')
		__adducer_page = __adducer_override;
	else
		__adducer_page = window.location;

	if (urlAppend) __adducer_page += urlAppend;

	var imgURL = "v=1&id=" + __adducer_getid() + "&url=" + escape(__adducer_page) +
				"&ref=" + escape(document.referrer) +
				"&lng=" + ((!document.all || navigator.userAgent.match('Opera')) ?
				navigator.language : navigator.userLanguage) +
				"&tz=" + (Math.round(new Date('dec 1, 2002').getTimezoneOffset()/60)*-1) +
				"&fl=" + __adducer_flash();

	if (screen)
	{
		imgURL += "&scr=" + escape(screen.width + "x" + screen.height + "x" + screen.colorDepth);
	}
	else if (self.java)
	{
		var j = java.awt.Toolkit.getDefaultToolkit();
		var s = j.getScreenSize();
		imgURL += "&src=" + s.width + "x" + s.height;
	}

	imgURL += "&rnd=" + new Date().getTime();

	__adducer_record(imgURL);

	__adducer_requested = 1;
}

// DO THE DEFAULT WORK \\
__adducer_stat();

