﻿/*****Parametres*****/
//Le nom du paramètres de id client
var tracking_param="idprob"; 
//Le nom du cookie
var cookie_name= "probance_cookie_eboutic";
//cookie timeout 
var cookie_timoute = 365; 
//url du listener
var listener="t1.probance.com/webtrax/listener.action"; 
//Site id
var siteid="5Uc5zaHTtubYPbw";

/*Parser des parametres dans l'url*/
var getparams = function(url)
{
	var params = { }; 

	if (url.indexOf("?") == -1) return params; 

	paramarray = (url.split("?")[1]).split("&"); 
	for(i=0;i<paramarray.length;i++)
	{
		next = paramarray[i].split("=");
		params[next[0]] = next[1]; 
	}
	return params; 
}

var deleteparam = function(url, param)
{
	if (url.indexOf("?") == -1) return url; 
	
	result=url.split("?")[0];
	
	paramarray = (url.split("?")[1]).split("&");
	count = 0;  
	for(i=0;i<paramarray.length;i++)
	{
		 
		if (paramarray[i].split("=")[0] != param)
		{
			if ( count==0 ) result = result + "?";
			result = result + paramarray[i];
			count++;  
		}
	}
	return result; 
}

function getProtocol(url)
{
	proto = url.split(":")[0];
	if (proto == null || proto == "")
	{
		proto = "http"; 
	}
	return proto;  
}
/*Encoder*/
var Base64 = {
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
 
	// public method for encoding
	encode : function (input) {
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
 
		input = Base64._utf8_encode(input);
 
		while (i < input.length) {
 
			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 +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
 
		}
 
		return output;
	},
	
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	}
}
 
/*Gestion des cookies*/
function saveCookie(name, value, jours)
{
	if (jours)
	{ 
     	var date = new Date();
		date.setTime(date.getTime()+(jours*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else expires = ""; 

	document.cookie = name + "=" + escape(value) + expires+"; path=/";
}

function loadCookie(name)
{
	deb = document.cookie.indexOf( name + "=" );
	if (deb >= 0) 
	{
		deb += name.length + 1; 
		fin = document.cookie.indexOf(";",deb);
		if (fin < 0) fin = document.cookie.length; 
		return unescape(document.cookie.substring(deb,fin)); 
	}
	return null; 
}
/*Random string*/
function randomString(){ return String((new Date()).getTime()).replace(/\D/gi,'') }

/*Sending request*/
function track(request)
{
	informer = document.getElementById("tag_informer_3"); 	
	if (informer != null)
	{
		informer.src = request + "&r=" + randomString(); 
	}
}

/*Begin*/
/*Step1*/
var url = document.location+""; 
var params = getparams(url);
var protocol = getProtocol(url) + "://";  

var request = "";
var tracking_value = null;
if ( params[tracking_param] != null)
{
	tracking_value =  params[tracking_param]; 
	saveCookie(cookie_name, tracking_value, cookie_timoute) ;
}
/*Step2*/
if (tracking_value == null)
{
	tracking_value = loadCookie(cookie_name); 
}
/*Step3*/
if (tracking_value != null)
{
	document.write("<img id='tag_informer_3' src='' style='display:none;'/>");	
	url = deleteparam( url ,tracking_param );
	request = protocol + listener + "?id="+tracking_value + "&purl=" + Base64.encode(url) + "&site=" + siteid; 
	track(request);
}
/*End*/