/*
// Net Focus, Inc.
// RTS (Remote Tracking System)
*/

var _rts_url = "http://www.netfocusinc.com/track/";

var _rts = {

	trackVisit: function(args) {
		
		//alert("Tracking Visit to " + window.location + " for " + args.site_key);
		
		// Ensure the visitor has a visitor_key
		var visitor_key;
		if( visitor_key = _rts_get_visitor_key() ) {
			//alert("Existing visitor_key = " + visitor_key);
		} else {
			visitor_key = _rts_set_visitor_key(args.key_prefix);
			//alert("New visitor_key = " + visitor_key);
		}
		
		// Bundle parameters for our request
		var params = {
			site_key: args.site_key,
			visitor_key: visitor_key,
			url: window.location.href,
			referrer: document.referrer
		};
		
		// Send tracking request
		jQuery.ajax({
			url: _rts_url + "visit.php",
			dataType: "script",
			data: params
		});
		
	},
	
	trackClick: function(args) {
	
		//alert("Tracking Click for " + args.site_key);
		
		// Ensure the visitor has a visitor_key
		var visitor_key;
		if( visitor_key = _rts_get_visitor_key() ) {
			//alert("Existing visitor_key = " + visitor_key);
		} else {
			visitor_key = _rts_set_visitor_key(args.key_prefix);
			//alert("New visitor_key = " + visitor_key);
		}
		
		// Generate a unique click_key
		var click_key = _rts_generate_click_key(args.key_prefix);
		//alert("New click_key = " + click_key);
		
		// Bundle parameters for our request
		var params = {
			site_key: args.site_key,
			visitor_key: visitor_key,
			click_key: click_key,
			link_key: args.link_key,
			referrer: document.referrer
		};
		
		// Send tracking request
		jQuery.ajax({
			url: _rts_url + "click.php",
			dataType: "script",
			data: params
		});
		
		return click_key;
		
	}

};

function _rts_get_visitor_key() {

	var c_name = "visitor_key";
	
	if (document.cookie.length>0) {
	  c_start=document.cookie.indexOf(c_name + "=");
	  
	  if (c_start != -1) {
	    c_start = c_start + c_name.length+1;
	    c_end = document.cookie.indexOf(";", c_start);
	    if (c_end == -1) c_end = document.cookie.length;
	    return unescape(document.cookie.substring(c_start,c_end));
	  }
	  
  }
	return false;
	
}

function _rts_set_visitor_key(prefix) {

	var c_name = "visitor_key";
	var value = prefix + _rts_utc_string() + _rts_unique_id(4);
	
	var today = new Date();
	var expires = new Date();
	expires.setDate(today.getDate() + 365);
	
	// Save the visitor_key in a cookie
	document.cookie = c_name + "=" + escape(value) + ";expires=" + expires.toUTCString() + ";path=/";

	return value;
}

function _rts_generate_click_key(prefix) {

	return prefix + _rts_utc_string() + _rts_unique_id(4);
}

function _rts_utc_string()
{
	var today = new Date();
	var year = today.getUTCFullYear();
	var month = today.getUTCMonth() + 1; if(month <  10) month = "0" + month;
	var day = today.getUTCDate(); if(day < 10) day = "0" + day;
	var hours = today.getUTCHours(); if(hours < 10) hours = "0" + hours;
	var minutes = today.getUTCMinutes(); if(minutes < 10) minutes = "0" + minutes;
	var seconds = today.getUTCSeconds(); if(seconds < 10) seconds = "0" + seconds;
	
	return year + month + day + hours + minutes + seconds;
}

// create a "uniqueid" of length characters
function _rts_unique_id(length) {

  var s = [], itoh = '0123456789ABCDEF';
 
  // Make array of random hex digits
  for (var i = 0; i < length; i++) s[i] = Math.floor(Math.random()*0x10);
 
  // Convert to hex chars
  for (var i = 0; i < length; i++) s[i] = itoh[s[i]];
 
  return s.join('');
}
	

