function initLoyalty(clientID, hash, path) {
	externalTracker.setPath(path);
	externalTracker.parseURL();
	if(externalTracker.emailID != null) {
		externalTracker.storeData();
	}
}
externalTracker = {};
externalTracker.storeData = function() {
	var image = new Image(1,1);	
	var url = this.url;
	url = url.replace(/#.+/, "");
	url = encode64(url);
	var address = this.path + 'site/action/extimages/u/'+url+'/e/'+this.emailID+'/c/'+this.clientID+'/'+ 't/' + this.templateID + '/' + 'k/' + this.key + '/' + this.imageName;		
	image.src = address;	
}
externalTracker.setPath = function(path) {
	this.path = path;
}
externalTracker.parseURL = function() {
	this.url = self.location + '';
	this.imageName = 't_k.gif';
	var hash = document.location.hash;
	if(hash == "") {
		externalTracker.loadProfile();
		return false;
	}
	hash = hash.substr(1);
	hash = hash.split('_');
	this.emailID = hash[0];
	this.clientID = hash[1];
	this.templateID = hash[2];
	this.key = hash[3];
	this.saveProfile();
}
externalTracker.saveProfile = function() {
	var profile = this.emailID + '_' + this.clientID + "_" + this.templateID + '_' + this.key;
	this.createCookie('profile',profile,365)
}
externalTracker.loadProfile = function() {
	var profile = this.readCookie('profile');
	if(profile == null) {
		return false;
	}
	profile = profile.split('_');
	this.emailID = profile[0];
	this.clientID = profile[1];
	this.templateID = profile[2];
	this.key = profile[3];
	
}
externalTracker.createCookie = function(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
externalTracker.readCookie = function(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
externalTracker.eraseCookie = function(name) {
	this.createCookie(name,"",-1);
}
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   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;
}