var time      		= new Date();
var starttime 		= time.getTime();
var loadedobjects	= "";
var asScheme 		= (("https:" == document.location.protocol) ? "https://" : "http://");
var rootdomain		= window.location.hostname;
var spanalyticsAccount = 'MTUxODN8fHxhYXJoZWFk';
var BrowserDetect = {
		init: function () {
			this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
			this.version = this.searchVersion(navigator.userAgent)
				|| this.searchVersion(navigator.appVersion)
				|| "an unknown version";
			this.OS = this.searchString(this.dataOS) || "an unknown OS";
		},
		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));
		},
		dataBrowser: [
			{
				string: navigator.userAgent,
				subString: "Chrome",
				identity: "Chrome"
			},
			{ 	string: navigator.userAgent,
				subString: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari",
				versionSearch: "Version"
			},
			{
				prop: window.opera,
				identity: "Opera"
			},
			{
				string: navigator.vendor,
				subString: "iCab",
				identity: "iCab"
			},
			{
				string: navigator.vendor,
				subString: "KDE",
				identity: "Konqueror"
			},
			{
				string: navigator.userAgent,
				subString: "Firefox",
				identity: "Firefox"
			},
			{
				string: navigator.userAgent,
				subString: "SeaMonkey",
				identity: "SeaMonkey"
			},
			{
				string: navigator.vendor,
				subString: "Camino",
				identity: "Camino"
			},
			{		// for newer Netscapes (6+)
				string: navigator.userAgent,
				subString: "Netscape",
				identity: "Netscape"
			},
			{
				string: navigator.userAgent,
				subString: "MSIE",
				identity: "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"
			}
		],
		dataOS : [
			{
				string: navigator.platform,
				subString: "Win",
				identity: "Windows"
			},
			{
				string: navigator.platform,
				subString: "Mac",
				identity: "Mac"
			},
			{
				   string: navigator.userAgent,
				   subString: "iPhone",
				   identity: "iPhone/iPod"
		    },
			{
				string: navigator.platform,
				subString: "Linux",
				identity: "Linux"
			}
		]

	};
// Cookie Toolbox Javascript
// copyright 4th September 2002, by Stephen Chapman, Felgall Pty Ltd
// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.
// For instructions on how to use these functions see "A Cookie Toolbox"
// in the Javascript section of our site at http://www.felgall.com/
var dbug = 0; function d_a(ary) {var beg = next_entry(ary) - 1; for (var i = beg ; i > -1; i--) {ary[i] = null;}} function init_array() {if (dbug) alert('init_cookie');  var ary = new Array(null); return ary;} function set_cookie(name,value,expires) {if (dbug) alert('set_cookie'); if (!expires) expires = new Date();
document.cookie = name + '=' + escape(value) + '; expires=' + expires.toGMTString() + '; path=/';} function get_cookie(name) {if (dbug) alert('get_cookie'); var dcookie = document.cookie; var cname = name + "="; var clen = dcookie.length; var cbegin = 0; while (cbegin < clen) {var vbegin = cbegin + cname.length;
if (dcookie.substring(cbegin, vbegin) == cname) {var vend = dcookie.indexOf (";", vbegin); if (vend == -1) vend = clen; return unescape(dcookie.substring(vbegin, vend));} cbegin = dcookie.indexOf(" ", cbegin) + 1; if (cbegin == 0) break;} return null;} function del_cookie(name) {if (dbug) alert('del_cookie');
document.cookie = name + '=' + '; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/';} function get_array(name, ary) {if (dbug) alert('get_array'); d_a(ary); var ent = get_cookie(name); if (ent) {i = 1; while (ent.indexOf('^') != '-1') {ary[i] = ent.substring(0,ent.indexOf('^')); i++;
ent = ent.substring(ent.indexOf('^')+1, ent.length);}}} function set_array(name, ary, expires) {if (dbug) alert('set_array'); var value = ''; for (var i = 1; ary[i]; i++) {value += ary[i] + '^';} set_cookie(name, value, expires);} function del_entry(name, ary, pos, expires) {if (dbug) alert('del_entry');
var value = ''; get_array(name, ary); for (var i = 1; i < pos; i++) {value += ary[i] + '^';} for (var j = pos + 1; ary[j]; j++) {value += ary[j] + '^';} set_cookie(name, value, expires);} function next_entry(ary) {if (dbug) alert('next_entry'); var j = 0; for (var i = 1; ary[i]; i++) {j = i} return j + 1;}
function debug_on() {dbug = 1;} function debug_off() {dbug = 0;} function dump_cookies() {if (document.cookie == '') document.write('No Cookies Found'); else {thisCookie = document.cookie.split('; '); for (i=0; i<thisCookie.length; i++) {document.write(thisCookie[i] + '<br \/>');}}}

function grabElement(element) {
	if (return_element = document.getElementById(element)) {
		return return_element;
	} else {
		return null;	
	}
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function spanalyticsEncode(input) {
   var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function spanalyticsDecode(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);
   return output;
}

function getQueryVariable(variable) {
	var query = window.location.search.substring(1);
	vars = query.split("&");
	for (var i=0;i<vars.length;i++) {
		var pair = vars[i].split("=");
		if (pair[0] == variable) {
			return pair[1];
		}
	} 
	return false;
}

function dospanalytics(event) {
	thisCookieInfo = new Array();
	if (!get_array("spanalytics",thisCookieInfo)) {
		BrowserDetect.init();
		if (screen.width && screen.height) {
			thisRez = screen.width + "x" + screen.height;	
		} else {
			thisRez = "unknown";
		}
		var timeToKeep = 86400000; 
		var skExpires = new Date();
		skExpires.setTime(skExpires.getTime() + timeToKeep);
		thisBrowser = BrowserDetect.browser;
		thisBrowserVersion = BrowserDetect.version;
		thisBrowserOS = BrowserDetect.OS;
		thisIPAddress = '38.107.179.236';
		spanalyticsCookie = new Array();
		spanalyticsCookie[0] = thisBrowser;
		spanalyticsCookie[1] = thisBrowserVersion;
		spanalyticsCookie[2] = thisBrowserOS;
		spanalyticsCookie[3] = screen.width;
		spanalyticsCookie[4] = screen.height;
		spanalyticsCookie[5] = thisIPAddress;
		set_array("spanalytics",spanalyticsCookie,skExpires);
	} else {
		thisRez = thisCookieInfo[3] + "x" + thisCookieInfo[4];
		thisIPAddress = thisCookieInfo[5];
		thisBrowser = thisCookieInfo[0];
		thisBrowserVersion = thisCookieInfo[1];
		thisBrowserOS = thisCookieInfo[2];
	}
	if (event=='visit') {
		if (document.referrer) {
			var thisReferrer = document.referrer;
		} else {
			var thisReferrer = 'Direct';		
		}
		time          = new Date();
		endtime       = time.getTime();
		if (endtime == starttime)
			{downloadtime = 0}
		else
			{downloadtime = (endtime - starttime)/1000;}		
		var imageUrl = 'http://www.artspan.com/analytics/ska?r=' + spanalyticsEncode(thisReferrer) + '&' + 'i=' + spanalyticsEncode(thisIPAddress) + '&' + 'a=' + spanalyticsAccount + '&' + 'b=' + spanalyticsEncode(thisBrowser+"|||"+thisBrowserVersion+"|||"+thisBrowserOS) + '&' + 'z=' + spanalyticsEncode(thisRez) + '&' + 't=' + downloadtime;
		sendInfo = newImage(imageUrl);
	} else if (event=="skping") {
		time          = new Date();
		rightnow      = time.getTime();
		var imageUrl = 'http://www.artspan.com/analytics/ska?r=c2twaW5n' + '&' + 'i=' + spanalyticsEncode(thisIPAddress) + '&' + 'a=' + spanalyticsAccount + '&' + 'b=' + spanalyticsEncode(thisBrowser+"|||"+thisBrowserVersion+"|||"+thisBrowserOS) + '&' + 'z=' + spanalyticsEncode(thisRez) + '&' + 'stamp=' + rightnow;
		recordPing = newImage(imageUrl);
	} else {
		if (event=="exit") {
			var thisReferrer = "Exited Page";
		} else {
			var thisReferrer = "Exited To: " + event;			
		}
		var imageUrl = 'http://www.artspan.com/analytics/ska?r=' + spanalyticsEncode(thisReferrer) + '&' + 'i=' + spanalyticsEncode(thisIPAddress) + '&' + 'a=' + spanalyticsAccount + '&' + 'b=' + spanalyticsEncode(thisBrowser+"|||"+thisBrowserVersion+"|||"+thisBrowserOS) + '&' + 'z=' + spanalyticsEncode(thisRez);
		recordExit = newImage(imageUrl);
	}
}

function addListener(element, type, expression, bubbling) {
	bubbling = bubbling || false;
	if(window.addEventListener)    { // Standard
		element.addEventListener(type, expression, bubbling);
		return true;
	} else if(window.attachEvent) { // IE
		element.attachEvent('on' + type, expression);
		return true;
	} else return false;
}

function itHappened(evt){
	var tg = (window.event) ? evt.srcElement : evt.target;
	if(tg.nodeName == 'A'){
		if(tg.href.indexOf(location.host) == -1){
			try{ dospanalytics(tg.href); }
			catch(err){ 
				//Error
			}
		}
	} else {
		//try{ dospanalytics('exit'); }
		//catch(err){ 
			//Error
		//}
	}
}

function recordAPing() {
	dospanalytics('skping');
    setTimeout("recordAPing()", 10000);
}

function initspanalytics() {
	dospanalytics('visit');
	addListener(document, 'click', itHappened);
	if (bodyTag = document.getElementsByTagName('body')[0]) {
		addListener(bodyTag, 'unload', itHappened);	
	}
    //setTimeout("recordAPing()", 10000);
}


if (spanalyticsAccount.length>0) {
	initspanalytics();
}


