var Mint = new Object();
Mint.save = function()
{
var now = new Date();
var debug = false; // this is set by php
if (window.location.hash == '#Mint:Debug') { debug = true; };
var path = 'http://brooklynrail.org/mint/?record' + ((debug)?'&debug&errors':'') + '&key=4b4a684a3746596a4437375036324c76343179424c3531316846';
// 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('
'); }
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);
}
};
if(typeof window.addEventListener != 'undefined')
window.addEventListener('load', outclicks_init, false);
else if(typeof document.addEventListener != 'undefined')
document.addEventListener('load', outclicks_init, false);
else if(typeof window.attachEvent != 'undefined')
window.attachEvent('onload', outclicks_init);
else
{
if(typeof window.onload == 'function')
{
var existing = onload;
window.onload = function()
{
existing();
outclicks_init();
};
}
else
{
window.onload = outclicks_init;
}
}
function oc_addEvent(elm, evType, fn, useCapture) {
if (elm.addEventListener) {
elm.addEventListener(evType, fn, useCapture);
return true;
}
else if (elm.attachEvent) {
var r = elm.attachEvent('on' + evType, fn);
return r;
}
else {
elm['on' + evType] = fn;
}
}
function outclicks_init () {
olinks = document.getElementsByTagName('a');
this_domain = 'test.brooklynrail.org';
for (i=0; i < olinks.length; i++) {
link = olinks[i].href;
// if it is off-domain and not a link, add listener
if(oc_get_domain(link) != this_domain && link.indexOf('javascript:') == -1) {
// hopefully that will do
oc_addEvent(olinks[i], "click", trackOutclicks);
}
}
}
function oc_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;
}
function esc (str) {
if (typeof encodeURIComponent == 'undefined')
return escape(str);
else
return encodeURIComponent(str);
}
function trackOutclicks (e) {
e = (e) ? e : ((window.event) ? window.event : "");
if(e){
var elem = (e.target) ? e.target : e.srcElement;
var path = '/mint/pepper/andrewsutherland/outclicks/data.php';
path += "?outclick="+esc(elem.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 += '';
}
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.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 = ' \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();
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;
}
};
Mint.save();