var Mint = new Object();
Mint.save = function() 
{
	var now		= new Date();
	var debug	= false; // this is set by php 
	var path	= 'http://www.mindgarden.de/mint/?record' + ((debug)?'&debug':'') + '&key=343433393130494d343832315348514d';
	
	// Loop through the different plug-ins to assemble the query string
	for (var developer in this) 
	{
		for (var plugin in this[developer]) 
		{
			if (this[developer][plugin] && this[developer][plugin].onsave) 
			{
				path += this[developer][plugin].onsave();
			};
		};
	};
	// Slap the current time on there to prevent caching on subsequent page views in a few browsers
	path += '&'+now.getTime();
	
	// Redirect to the debug page
	if (debug) { window.location.href = path; return; };
	
	if (document.write) { document.write('<img src="'+path+'" alt="" style="position: absolute; left: -9999px;" onload="this.parentNode.removeChild(this);" />'); }
	else
	{
		// Record this visit; uses XMLHttpRequest to play nice with pages served as application/xhtml+xml
		// Causes a security issue when served from a sub or other domain
		var data = false;
		/*@cc_on @*/
		/*@if (@_jscript_version >= 5)
		try { data = new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch (e) { try { data = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { data = false; } }
		@end @*/
		if (!data && typeof XMLHttpRequest!='undefined') { data = new XMLHttpRequest(); }
		if (data) { data.open("GET", path, true); data.send(null); }
	};
};
if (!Mint.SI) { Mint.SI = new Object(); }
Mint.SI.Referrer = 
{
	onsave	: function() 
	{
		if (typeof Mint_SI_DocumentTitle=='undefined') { Mint_SI_DocumentTitle = document.title; }
		var referer		= (window.decodeURI)?window.decodeURI(document.referrer):document.referrer;
		var resource	= (window.decodeURI)?window.decodeURI(document.URL):document.URL;
		return '&referer=' + escape(referer) + '&resource=' + escape(resource) + '&resource_title=' + escape(Mint_SI_DocumentTitle);
	}
};
// incredibly funky onload add-event scripting, for all browsers

		 if(typeof window.addEventListener != 'undefined')
		 {
		 	//.. gecko, safari, konqueror and standard
		 	window.addEventListener('load', outclicks_init, false);
		 }
		 else if(typeof document.addEventListener != 'undefined')
		 {
		 	//.. opera 7
		 	document.addEventListener('load', outclicks_init, false);
		 }
		 else if(typeof window.attachEvent != 'undefined')
		 {
		 	//.. win/ie
		 	window.attachEvent('onload', outclicks_init);
		 }

		 //** remove this condition to degrade older browsers
		 else
		 {
		 	//.. mac/ie5 and anything else that gets this far

		 	//if there's an existing onload function
		 	if(typeof window.onload == 'function')
		 	{
		 		//store it
		 		var existing = onload;

		 		//add new onload handler
		 		window.onload = function()
		 		{
		 			//call existing onload function
		 			existing();

		 			//call outclicks_init onload function
		 			outclicks_init();
		 		};
		 	}
		 	else
		 	{
		 		//setup onload function
		 		window.onload = outclicks_init;
		 	}
		 }
function outclicks_init () {
	 olinks = document.getElementsByTagName('a');
	 this_domain = 'mindgarden.de';
	 links2 = 0;
	
	 for (i=0; i < olinks.length; i++) {
		link = olinks[i].href.replace("www.","");
		// if it is on-domain or a js link, don't record.
		if(link.match(eval('/^(http(s)?:\\/\\/)?'+this_domain+'/')) || olinks[i].href.indexOf('javascript:') != -1) 
			continue;
		olinks[i].onclick = trackOutclicks;

	 }

}


function esc (str) {
	if (typeof encodeURIComponent == 'undefined')
		return escape(str);
	else
		return encodeURIComponent(str);
}

function trackOutclicks() {
	var path = 'http://www.mindgarden.de/mint/pepper/andrewsutherland/outclicks/data.php';

	path += "?outclick="+esc(this.href);
	path += "&from_title="+esc(document.title);
	path += "&from="+esc(self.location);

	// old browsers
	if (typeof encodeURIComponent == 'undefined') {
			// when user clicks a site, then back, then clicks another, don't retrack their hits
			// don't worry, it confuses me too
			c = document.getElementById('outClickTracker');
			if (c) c.parentNode.removeChild(c);
			document.body.innerHTML += '<script src="'+path+'" language="javascript" id="outClickTracker"></script>';
	}
	else {

		var data = false;
		/*@cc_on @*/
		/*@if (@_jscript_version >= 5)
		try { data = new ActiveXObject("Msxml2.XMLHTTP"); } 
		catch (e) { try { data = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { data = false; } }
		@end @*/
		if (!data && typeof XMLHttpRequest!='undefined') data = new XMLHttpRequest();
		if (data) data.open("GET", path, false); data.send(null);
		
	}


}
if (!Mint.SI) { Mint.SI = new Object(); }
Mint.SI.WindowWidth = 
{
	onsave	: function() 
	{
		var width = -1;
		if (window.innerWidth)
		{
			width = window.innerWidth;
		}
		else if (document.getElementsByTagName)
		{
			var html = document.getElementsByTagName('html');
			if (html[0].offsetWidth)
			{
				width = html[0].offsetWidth;
			}
		}
		return '&window_width=' + width;
	}
};
if (!Mint.SI) { Mint.SI = new Object(); }
Mint.SI.UserAgent007 = 
{
	flashVersion		: 0,
	resolution			: '0x0',
	detectFlashVersion	: function () 
	{
		var m =16;
		var ua = navigator.userAgent.toLowerCase();
		if (navigator.plugins && navigator.plugins.length) 
		{
			var p = navigator.plugins['Shockwave Flash'];
			if (typeof p == 'object') 
			{
				for (var i=m;i>=3;i--) 
				{
					if (p.description && p.description.indexOf(' ' + i + '.') != -1) { this.flashVersion = i; break; }
				}
			}
		}
		else if (ua.indexOf("msie") != -1 && ua.indexOf("win")!=-1 && parseInt(navigator.appVersion) >= 4 && ua.indexOf("16bit")==-1) 
		{
			var vb = '<scr' + 'ipt language="VBScript"\> \nOn Error Resume Next \nDim obFlash \nFor i = ' + m + ' To 3 Step -1 \n   Set obFlash = CreateObject("ShockwaveFlash.ShockwaveFlash." & i) \n   If IsObject(obFlash) Then \n      Mint.SI.UserAgent007.flashVersion = i \n      Exit For \n   End If \nNext \n<'+'/scr' + 'ipt\> \n';
			document.write(vb);
		}
		else if (ua.indexOf("webtv/2.5") != -1) this.flashVersion = 3;
		else if (ua.indexOf("webtv") != -1) this.flashVersion = 2;
		return this.flashVersion;
	},
	onsave				: function() 
	{
		this.resolution = screen.width+'x'+screen.height;
		return '&resolution=' + this.resolution + '&flash_version=' + this.flashVersion;
	}
};
Mint.SI.UserAgent007.detectFlashVersion();


var ol_extensions = 'zip,pdf,rar,mpg,mp3,mov,jpg,gif';
var ol_download_script = '/mint/pepper/orderedlist/downloads/download.php';

var is_download = 0;

function getExtension(value) {
  return value.substring(value.lastIndexOf('.') + 1,value.length);
}

function isdefined( variable) {
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function ol_get_domain(str) {
	if (str.substr(0,7) == 'http://') str = str.substr(7);
	if (str.substr(0,8) == 'https://') str = str.substr(8);
	str = str.substr(0,str.indexOf('/'));
	str = str.replace('www.','');
	return str;
}

if (!isdefined('addLoadEvent')) {
	function addLoadEvent(func) {
		var oldonload = window.onload;
		if (typeof window.onload != 'function') {
			window.onload = func;
		} else {
			window.onload = function() {
				oldonload();
				func();
			}
		}
	}
}

function activateDownloads() {
	ext_list = ol_extensions.split(',');
	var e=document.getElementsByTagName("a");
	for(var i=0;i<e.length;i++) {
		for (var j = 0; j <ext_list.length; j++) {
			if (getExtension(e[i].href) == ext_list[j]) {
				if (ol_get_domain(e[i].href) == ol_get_domain(document.URL)) {
						e[i].onMouseOver = function() { thelink = this.href; target = unescape(thelink.substr(thelink.indexOf('='))); window.status = 'Download: ' + target; }
						e[i].onMouseOut = function() { window.status = ''; } 
						e[i].href = ol_download_script + '?file=' + escape(e[i].href);
				}
			}
		}
	}
}

addLoadEvent(activateDownloads);
Mint.save();