(function() {  
  var SIMP = {
    init: function() {
			SIMP.setCookie('SIMPCanCook', 1, 1);
      document.writeln('<script type="text/javascript" src="' + SIMP.url() + '"></script>');
			if (!SIMP.getCookie('SIMPUnique')) {
				SIMP.setCookie('SIMPUnique', 1, 365*10);
			}
    },
    url: function() {
      var url = SIMP.$('statsinmypants_tracker').src + "?";
      url += "visit[referer]=" + SIMP.referer() + "&";
      url += "visit[user_agent]=" + SIMP.userAgent() + "&";
      url += "visit[resource_title]=" + SIMP.resourceTitle() + "&";
      url += "visit[resource]=" + SIMP.resource() + "&";
      url += "visit[viewport_width]=" + SIMP.viewport().width + "&";
      url += "visit[viewport_height]=" + SIMP.viewport().height + "&";
      url += "visit[screen_width]=" + screen.width + "&";
      url += "visit[screen_height]=" + screen.height + "&";
			url += "visit[special]=" + SIMP.cookie() + "&";
      url += "timestamp=" + SIMP.timestamp() + "&";
      url += "record=true&";
      return url;
    },
  	referer: function() {
  		var referer = '';
  		try { referer = top.document.referrer; } catch(e1) { try { referer = parent.document.referrer; } catch(e2) { referer = ''; } }
  		if (referer == '') { referer = document.referrer; }
  		return SIMP.escape(referer);
  	},
  	userAgent:      function()    { return SIMP.escape(navigator.userAgent); },
  	resourceTitle:  function()    { return (document.title && document.title != "") ? SIMP.escape(document.title) : ''; },
    resource:       function()    { return SIMP.escape(document.location.href); },
  	timestamp:      function()    { return new Date().getTime() / 1000.0; },  
  	escape:         function(str) { return (typeof(encodeURIComponent) == 'function') ? encodeURIComponent(str) : escape(str); },
  	viewport:       function()    { 
  	  var width  = window.innerWidth || (window.document.documentElement.clientWidth || window.document.body.clientWidth);
  	  var height = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);
  	  return {'width':width, 'height':height} 
  	},
		cookie: function() { 
			if (!SIMP.getCookie('SIMPCanCook')) { return 0; }
			return !SIMP.getCookie('SIMPUnique') ? 1 : 0; 
		},
		setCookie: function(name, value, seconds) {
			value = escape(value);
			if(seconds) {
				d = new Date();
				d.setTime(d.getTime() + (seconds * 1000));
				expiry = '; expires=' + d.toGMTString();
			} else {
				expiry = '';
			}
			document.cookie = name + "=" + value + expiry + "; path=/";
		},
		getCookie: function(name){
			nameEQ = name + "=";
			ca = document.cookie.split(';');
			for(i = 0; i < ca.length; i++){
				c = ca[i];
				while(c.charAt(0) == ' ')
				c = c.substring(1,c.length);
				if(c.indexOf(nameEQ) == 0)
				return unescape(c.substring(nameEQ.length,c.length));
			}
			return null
		},
  	$: function(id)  { if (document.getElementById) { return document.getElementById(id); } return null; }
  }
  SIMP.init();
})();