PTRACKER = {
	
	futureDate : function(nHours) {
	    var expire = null;
	    if (nHours==null || nHours==0) {
	        expire = null;
	    }
	    else {
	        var today = new Date();
	        var expire = new Date();
	        expire.setTime(today.getTime() + 3600000*nHours);
	    }
	    return expire;
	},	
	
	setCookie : function(name, value, path, domain, secure, nHours) {
	  var expires = PTRACKER.futureDate(nHours);
	  var curCookie = name + "=" + escape(value) +
	      ((path) ? "; path=" + path : "") +
	      ((domain) ? "; domain=" + domain : "") +
	      ((expires) ? "; expires="+ expires : "") +
	      ((secure) ? "; secure" : "");
	  document.cookie = curCookie;
	},

	getCookie : function(name) {
	  var dc = document.cookie;
	  var prefix = name + "=";
	  var begin = dc.indexOf("; " + prefix);
	  if (begin == -1) {
	    begin = dc.indexOf(prefix);
	    if (begin != 0) return null;
	  } else {
	    begin += 2;
	  }
	  var end = document.cookie.indexOf(";", begin);
	  if (end == -1) {
	    end = dc.length;
	  }
	  return unescape(dc.substring(begin + prefix.length, end));
	},

	report : function( https, params ) {
	    var protocol = (https ? "https" : "http");
	    document.write( "<img src=\""+ protocol +":\/\/t1.homecottages.co.uk/c.png?"+ Math.random() + params +"\"></img>" );
	},

	isHttps : function() {
	    var rx = /(http[s]?)/
	    var res = rx.exec( document.URL )
	    if( res == null || res[1] == "http" ) {
	        return false;
	    }
	    else {
	        return true;
	    }
	},	
	
	// if global trkref is set then add it as a parameter to overide any derived trkref in url or from domain
	trackNewSession : function( https ) {
	    var params = "&referrer="+ escape(document.referrer) +"&url="+ escape( document.URL ) +"&useragent="+ escape(navigator.userAgent);
	    PTRACKER.report( PTRACKER.isHttps(), params );
	},

	run : function() { 
		var rx = /http[s]?:\/\/([^:|^\/]+)/;
		var res = rx.exec( document.referrer );
		if( res == null || res[1] != document.domain ) {
		    if( PTRACKER.getCookie( "PTrk" ) == null ) {
		        PTRACKER.trackNewSession();
		    }
		}
		PTRACKER.setCookie( "PTrk", "tracked", "/", document.domain, false, 3 );
	},
	
	trackList : function( ordered_sv_ids ) {
		var params = "&list="+ escape( ordered_sv_ids )+"&url="+ escape( document.URL );
		PTRACKER.report( PTRACKER.isHttps(), params );
	},
	
	trackBrochure : function( id ) {
		var params = "&brochure="+ escape( id ) +"&url="+ escape( document.URL );
		PTRACKER.report( PTRACKER.isHttps(), params );
	},
	
	trackHandover : function( id ) {
		var params = "&handover="+ escape( id ) +"&url="+ escape( document.URL );
		PTRACKER.report( PTRACKER.isHttps(), params );
	},
	
	trackError : function( statusCode ) {
		var params = "&error="+ escape( statusCode ) +"&url="+ escape( document.URL );
		PTRACKER.report( PTRACKER.isHttps(), params );
	},
	
	trackSearch : function( query ) {
		var params = "&search="+ escape( query ) +"&url="+ escape( document.URL );
		PTRACKER.report( PTRACKER.isHttps(), params );
	}	
	
};
