var debug = false;


/// Create new ecommerce object and initalize to default values.
function ECommerceObject()
{
	var o = new Object();
	o.vaction = "";
	o.vprice = "";
	o.vtransactionid = "";
	o.vcode = "";
	o.vgroup = "";
	o.vcampaignname = "";

	return o;
}

// vaction, vprice, vtransactionid, vcode, vgroup, vcampaignname
//Track statistics for given id.
function stat(id, vurl, vtitle, vsection, ocommerce, httpstatuscode)
{
	if (id == undefined)
	{
		//Do nothing.
		return;
	}
	
	//Check for empty data:
	if (!vurl) vurl = "";
	if (!vtitle) vtitle = "";
	if (!vsection) vsection = "";

	if (ocommerce == null)
	{
		/// Clear everything:
		vaction = "";
		vprice = "";
		vtransactionid = "";
		vcode = "";
		vgroup = "";
		vcampaignname = "";
	} else {

		vaction = ocommerce.vaction;
		vprice = ocommerce.vprice;
		vtransactionid = ocommerce.vtransactionid;
		vcode = ocommerce.vcode;
		vgroup = ocommerce.vgroup;
		vcampaignname = ocommerce.vcampaignname;
			
		if (!vaction) vaction = "";
		if (!vprice) vprice = "";
		if (!vtransactionid) vtransactionid = "";
		if (!vcode) vcode = "";
		if (!vgroup) vgroup = "";
		if (!vcampaignname) vcampaignname = "";
	}


	
	//Total url:
	var url = "";

	var n=navigator;
	var d=document;
	var v=parseInt(n.appVersion);
	var s=screen;
	var sw = 0; 
	var sh = 0; 
	var sd = 0;
	var ref = "";
	var lang = "";
	var cookies = false;
	var platform = "";
	var isie = n.appVersion.indexOf("MSIE") > 0;
	var fv = 0; //flash version
	var domain = d.domain;
	var httpstatus = 200; /// 200 OK.

	/// Check if statuscode is set:
	/// todo, verify server side:
	if (httpstatuscode != null && httpstatuscode.length == 3)
	{
		httpstatus = httpstatuscode;
	}

	/// Determine protocol and target:
	var proto = "http" +(document.URL.indexOf('https:')==0?'s':'');
	var target = proto + "://192.168.0.3/rielee-stats/track.php?";

	if (!debug)
	{

		target = proto + "://www.rielee.com/track.php?";
	}

	var iplugins = 0;

	/// Standard stuff:
	var b = navigator.javaEnabled();

	if (v>3)
	{
		sw = s.width;
		sh = s.height;
		sd = s.pixelDepth;
	}
	
	/// Determine referrer:
	if (document || top)
	{
		ref = (parent==self?document.referrer:top.document.referrer);
	}

	
	//If we are IE, use a different version:
	var IE = parseInt(n.appVersion.substring(n.appVersion.indexOf("MSIE")+5,n.appVersion.indexOf("MSIE")+6));
	if (n.appVersion.indexOf("MSIE") > 0)
	{
		v = IE;
	}

	/// Determine language:
	if (navigator.appName=="Netscape")
	{
		/// Netscape code
		lang = navigator.language;

		if (v > 2)
		{
			 /// Get Netscape plugins
			iplugins = getplugins(1);

			fv = getflashversion(1); //flash version;		
		}

	} else {

		/// Other code.
		lang = navigator.userLanguage;
		
		/// Is it IE?
		
		sd = s.colorDepth;

		if (n.appVersion.indexOf('Win') > -1 && (v > 4) && n.userAgent.indexOf('Opera')<0)
		{
			iplugins = getplugins(0);	//IE plugins.

			fv = getflashversion(0); //flash version;
		}
	}

	//Timezone detection:
	var od = new Date();
	var timezone = (od.getTimezoneOffset() / 60);
	//Change sign if IE3:
	if (isie && v < 4) timezone = -timezone;

	/// Platform (OS):
	platform = navigator.platform;
	cookies = navigator.cookieEnabled;
	
	//Language:
	var ul = (isie==1)?n.userLanguage:n.language;

	if (b == true) 
		b = 1;
	else b = 0;
	if (cookies == true) 
		cookies = 1;
	else cookies = 0;


	//Create url:
	url += target;
	url += "id="  + id ;
	url += "&sw=" + sw + "&sh=" + sh + "&sd=" + sd;
	url += "&java=" + b + "&co=" + cookies + "&pl=" + platform;
	url += "&plugins=" + iplugins;
	url += "&fv=" + fv;
	url += "&nav=" + v;
	url += "&ref=" + safeescape(ref);
	url += "&ns=1";	//Javascript enabled.
	url += "&tm=" + safeescape(timezone);	//Timezone, in hours offset from GMT.
	url += "&ul=" + safeescape(ul);			//userlanguage.
	url += "&title=" + safeescape(d.title);
	url += "&vurl=" + escape(vurl);
	url += "&vtitle=" + escape(vtitle);
	url += "&vsection=" + escape(vsection);
	url += "&vaction=" + escape(vaction);
	url += "&vprice=" + escape(vprice);
	url += "&vtransactionid=" + escape(vtransactionid);
	url += "&vcode=" + escape(vcode);
	url += "&vgroup=" + escape(vgroup);
	url += "&vcampaignname=" + escape(vcampaignname);
	url += "&dn=" + escape(domain);
	url += "&httpstatus=" + escape(httpstatus); ///new 30-11-2007

//	alert(url);
//d.write(url);
	if (!debug)
	{
		d.write('<img style="display:none;" width="10" height="10" src="'+url+'" alt="Stats"></a>');
	} else {
		d.write('<img style="display:none;" width="1" height="1" src="'+url+'" alt="Stats"></a>');
	}
}



function getplugins(mode)
{
	var o = 0;
	//Return plugins:
	

	if (mode == 0) //IE
	{
		//IE only:
		var pl = new Array("D27CDB6E-AE6D-11CF-96B8-444553540000","2A202491-F00D-11CF-87CC-0020AFEECF20","23064720-C4F8-11D1-994D-00C04F98BBC9","","","","90A7533D-88FE-11D0-9DBE-0000C0411FC3","9381D8F2-0288-11D0-9501-00AA00B911A5","22D6F312-B0F6-11D0-94AB-0080C74C7E95");

		if(!document.body) document.write('<body>');
		
		var body = document.body;
		body.addBehavior("#default#clientcaps");
		
		var b = 1;
		for(var i=0; i <pl.length;++i)
		{

			if(pl[i]) 
			{	
				if(body.isComponentInstalled("{"+pl[i]+"}","componentid"))
				{
					o |= b;
				}


			}

				b = b *2;
		}
		
		return o;

	} else {

		//Netscape version
		//adobe reader toevoegen (array ff echoen)
		var plugins = navigator.plugins;
		var pl = new Array("Shockwave Flash","Shockwave for Director","RealPlayer","QuickTime","VivoActive","LiveAudio","VRML","Dynamic HTML Binding","Windows Media Services");
		var b = 1;
		for(var j=0;j < pl.length;++j)
		{
			for(var i=0;i< plugins.length;++i)
			{
				//alert(plugins[i].name);
				if(plugins[i].name.indexOf(pl[j])>=0)
				{
					o|= b;
				}

			}

				b = b*2;
		}
		return o;
	}
}

function getflashversion(mode)
{
	var version = -1;
	var latestflash = 12;

	if (mode == 1) //firefox
	{
			//Todo: filter beta and release numbers!
			var plugins = navigator.plugins;
			for (var i=0; i < plugins.length; i++)
			{
				if (plugins[i].name.indexOf('Shockwave Flash') != -1)
				{
					version = plugins[i].description.split('Shockwave Flash ')[1];
					
					///Strip release value: We just want the major version.
					version = version.split(' ')[0];
					break;
				}
		

			}

			//alert(version);

	} else {
		
		///Other browsers:
		for (var i = latestflash; i > 1; i--)
		{
			try {
				var oflash=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+i+"');");
				if (oflash)
				{
					version = i + '.0'; 
					break;
				}
			} catch(e) {}

		
		}
	}
	return version;
}

function safeescape(url)
{
	if(window.encodeURIComponent)
		return encodeURIComponent(url);
	else 
		return escape(url);

}