/**
 * Configuration du tag pour un client
 */
var bir_id = 2;
var bir_ignore = ['referencement-2000.com', 'brioude-internet.fr',
'referencement2000.com', 'brioude-internet.com', 'ref2000.com',
'brioude-referencement.com'];
var bir_id2 = "83294-1";
/**
 * Configuration interne ne rien toucher
 */
var bir_no_trac = ["bi_tracked", "ectrans", "xtor", "cpc_bi"];
var bir_serveur = false;
var bir_serveurRoi = false;
var bir_debug_mode = false;
var bir_roi = 1;
var bir_doc = document;
var bir_referer = bir_doc.referrer;
var bir_loc = bir_doc.location;
var bir_protocol = bir_loc.protocol;
var bir_conf = false;
var bir_lock = false;
var bir_method = false;
var bir_trackUrl = false;
var bir_regiekw = "regiekw";
var bir_regie = "regie";
var bir_type = "typeclic";
var bir_crypt = "btid";
var bir_write_mode = "link";
var bir_delay_write = false;
var bi_ref = '';
var bi_comment = '';
var bi_price = '';
var bir_version = 5.3310;

if (bir_id2 && bir_id2!= "0") {
	var gaJsHost = (("https:" == document.location.protocol)
			? "https://ssl."
			: "http://www.");
	document
			.write(unescape("%3Cscript src='"
					+ gaJsHost
					+ "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
}
/**
 * Ajouter le tag de trafic
 */
function add_tag_trafic(_bir_id) {
	if (bir_lock) {
		return false;
	}
	if (bir_id2 && bir_id2!= "0") {
		var pageTracker = _gat._getTracker("UA-" + bir_id2);
		pageTracker._trackPageview();
	}
	var cfg = bir_getConfig(bir_loc);
	if (!cfg.type) {
		bir_conf = "no type clic";
		return false;
	}
	if (!bir_isAllowed()) {
		return false;
	}
	if (_bir_id) {
		bir_id = _bir_id;
	}
	bir_set_track_server(cfg.type);

	bir_url = bir_protocol + "//" + bir_serveur + "?id=" + bir_id;
	bir_url += "&thereferer=" + escape(bir_referer);
	bir_url += "&page=" + escape(cfg.url);
	bir_url += "&roi=" + bir_roi;
	bir_url += "&typeclic=" + cfg.type;

	if (cfg.regiekw) {
		bir_url += "&regiekw=" + escape(cfg.regiekw);
	}
	if (cfg.regie) {
		bir_url += "&regie=" + cfg.regie;
	}
	if (bir_debug_mode)
		bir_url += "&birtest=true";
	bir_conf = cfg.type;
	bir_insertTag(bir_url);

	bir_lock = true;
	bir_method = "add_tag_trafic()";
	bir_setCookie("bir_visite", bir_referer + bir_loc + bir_id, 15 * 60);
}
/**
 * Ajoute le tag de ROI pose un cookie d'une duree de 5 mn avec un id unique du
 * roi si le client retente la commande dans ce délai il sera ignoré
 * @see http://www.google.com/support/googleanalytics/bin/answer.py?answer=55528&hl=en doc du tag
 */
function add_tag_roi(_bir_id) {
	if (bir_id2 && bir_id2!= "0") {
		var pageTracker = _gat._getTracker("UA-" + bir_id2);
		pageTracker._trackPageview();
		pageTracker._addTrans(bi_ref, bi_comment, bi_price);
		pageTracker._trackTrans();
	}
	if (_bir_id) {
		bir_id = _bir_id;
	}
	bir_set_track_server();

	bir_roi_uniqueid = bi_ref + bi_comment + bi_price + bir_id;
	if (bir_getCookie("bir_roi_uniqueid") == bir_roi_uniqueid) {
		bir_conf = "roi doublon";
		return false;
	}

	bir_url = bir_protocol + "//" + bir_serveurRoi + "?id=" + bir_id;
	bir_url += "&reference=" + escape(bi_ref);
	bir_url += "&comment=" + escape(bi_comment);
	bir_url += "&price=" + escape(bi_price);
	bir_url += "&page=" + escape(bir_loc);
	if (bir_debug_mode) {
		bir_url += "&birtest=true";
	}
	bir_conf = "roi";
	bir_insertTag(bir_url);

	bir_method = "add_tag_roi()";
	bir_lock = true;
	bir_setCookie("bir_roi_uniqueid", bir_roi_uniqueid, 5 * 60);
}
/**
 * declenche un ROI depuis un clic javascript
 */
function bir_js_roi(ref, comment, price) {
	if (!price) {
		price = bi_price;
	}
	if (!ref) {
		ref = bi_ref;
	}
	if (!comment) {
		comment = bi_comment;
	}
	bir_delay_write = true;
	bir_write_mode = "script";
	bi_price = price;
	bi_comment = comment;
	bi_ref = ref;
	add_tag_roi();
	bir_method = false;
	bir_lock = false;
	return true;
}
/**
 * fixe les serveurs de tracking
 */
function bir_set_track_server(typ) {
	if (typ == "ref") {
		bir_serveur = "t" + bir_id + ".trafiz.net/css.php";
	} else {
		bir_serveur = "t" + bir_id + ".trafiz.net/cpc.php";
	}
	bir_serveurRoi = "t" + bir_id + ".trafiz.net/roi.php";
}
/**
 * Insere le tag dans la page
 */
function bir_insertTag(bir_url) {
	bir_url += "&out=" + bir_write_mode;
	switch (bir_write_mode) {
		case "script" :
			var bir_css = '<script id="bir_css" language="javascript" type="text/javascript" src="'
					+ bir_url + '" ></script>';
			break;
		case "img" :
			var bir_css = '<img id="bir_css" src="' + bir_url
					+ '" style="display:none" />';
			break;
		default :
			var bir_css = '<link rel="stylesheet" id="bir_css" type="text/css" href="'
					+ bir_url + '" />';
			break;
	}
	if (bir_delay_write) {
		var ar = document.getElementsByTagName("HEAD");
		if (ar) {
			var bir_tag = document.createElement("script");
			bir_tag.id = "bir_css";
			bir_tag.type = "text/javascript";
			bir_tag.src =  bir_url;
			ar[0].appendChild(bir_tag);
		}
	} else {
		document.write(bir_css);
	}
	bir_trackUrl = bir_url;
	if (bir_debug_mode)
		bir_showDebug();
}
/**
 * Verifie si l'on met le tracking o s'il y a un referer o si le referer est
 * autorise o si l'utilisateur n'est pas deja venu o si l'utilisateur ne vient
 * pas du cpc
 */
function bir_isAllowed() {
	if (!bir_referer) {
		bir_conf = "noreferer";
		return false;
	}
	if (bir_getHost(bir_referer) == bir_loc.hostname) {
		bir_conf = "internal";
		return false;
	}
	if (bir_getCookie("bir_visite") == bir_referer + bir_loc) {
		bir_conf = "visited";
		return false;
	}
	_bir_cpcReg = bir_no_trac.join("|");
	_bir_ignoreReg = new RegExp("(" + _bir_cpcReg + ")", "i");
	if (_bir_ignoreReg.exec(bir_loc)) {
		bir_conf = "cpc";
		return false;
	}
	_bir_urls = bir_ignore.join("|");
	_bir_ignoreReg = new RegExp('^https*\:\/\/(?:[a-z0-9-]+\.)?(' + _bir_urls
					+ ')', "i");
	if (_bir_ignoreReg.exec(bir_referer)) {
		bir_conf = "internal";
		return false;
	}
	_bir_gogImg = new RegExp("http\:\/\/images.google.fr\/", "i");
	if (_bir_gogImg.exec(bir_referer)) {
		_bir_gogImg = new RegExp("%3Fq%3D(.*?)%26", "i");
		var match = _bir_gogImg.exec(bir_referer);
		var q = unescape(match[1]);
		bir_referer += "&q=" + q;
	}
	return true;
}
/**
 * Recupere la configuration CPC ou ref
 */
function bir_getConfig() {
	try {
		var sUrl = bir_loc.toString();
	} catch (e) {
		var sUrl = bir_loc;
	}
	if (sUrl.indexOf(bir_regiekw) == -1 && sUrl.indexOf(bir_regie) == -1
			&& sUrl.indexOf(bir_crypt) == -1) {
		return {
			type : 'ref',
			url : sUrl
		};
	}
	var ar = sUrl.split("?");
	var urlAr = ar[1].split("&");
	var queryParams = {};
	var queryOk = [];
	var queryI = 0;
	var decode = false;
	for (var i = 0; i < urlAr.length; i++) {
		var param = urlAr[i].split("=");
		if (!param[1]) {
			param[1] = false;
		}
		if (param.length > 2) { // Fusionne les parametres de la clef
			for (var j = 2; j < param.length; j++) {
				if (param[j] == "")
					param[j] = "=";
				param[1] += param[j];
			}
		}
		switch (param[0]) {
			case bir_crypt :
				decode = param[1];
				break;
			case bir_regiekw :
				queryParams.regiekw = param[1];
				break;
			case bir_regie :
				queryParams.regie = param[1];
				break;
			case bir_type :
				queryParams.type = param[1];
				break;
			default :
				queryOk[queryI++] = param[0] + "=" + param[1];
				break;
		}
	}
	if (decode != false) {
		decode = bir_dec(decode);
		queryParams.regie = decode.r;
		queryParams.regiekw = unescape(decode.k);
		queryParams.type = decode.t;
	}
	queryParams.url = ar[0];
	if (queryOk.length) {
		queryParams.url += "?" + queryOk.join("&");
	}
	bir_loc = queryParams.url;
	if (!queryParams.type) {
		if (queryParams.regiekw) {
			queryParams.type = "cpc";
		} else {
			return false;
		}
	}
	return queryParams;
}
/**
 * Recherche le host dans une adresse
 */
function bir_getHost(sUrl) {
	aUrl = sUrl.split("/");
	sUrl = aUrl[2];
	return sUrl;
}
/**
 * Lis le cookie nomme name
 */
function bir_getCookie(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 false;
}
/**
 * Cree un cookie et le sauve
 */
function bir_setCookie(name, value, sec) {
	if (sec) {
		var date = new Date();
		date.setTime(date.getTime() + (sec * 1000));
		var expires = ";expires=" + date.toGMTString();
	} else {
		var expires = "";
	}
	document.cookie = name + "=" + value + expires + ";path=/";
}
/**
 * Affiche les informations de debug
 */
function bir_showDebug() {
	_bir_sep = (bir_debug_mode == "html") ? "<br>" : "\n";
	bir_cssExist = (document.getElementById("bir_css")) ? "oui" : "non";
	bir_cookie = (bir_getCookie("bir_visite")) ? "oui" : "non";
	bir_debug = "Configuration : " + bir_conf + _bir_sep;
	bir_debug += "Serveur : " + bir_serveur + _bir_sep;
	bir_debug += "Serveur roi : " + bir_serveurRoi + _bir_sep;
	bir_debug += "Page courante : " + bir_loc + _bir_sep;
	bir_debug += "Referer : " + bir_referer + _bir_sep;
	bir_debug += "Host : " + bir_loc.hostname + _bir_sep;
	bir_debug += "Referer ignores : " + bir_ignore.join(", ") + _bir_sep;
	bir_debug += "Cookie : " + bir_cookie + _bir_sep;
	bir_debug += "Url de tracking : " + bir_trackUrl + _bir_sep;
	bir_debug += "CSS mise en place : " + bir_cssExist;
	if (bir_debug_mode == "html") {
		var bir_debug_div = document.createElement("div");
		bir_debug_div.innerHTML = bir_debug;
		var ar = document.getElementsByTagName("BODY");
		ar[0].appendChild(bir_debug_div);
	} else {
		alert(bir_debug);
	}
	return bir_debug;
}
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
/**
 * Decode le Base 64
 */
function bir_dec(input) {
	var output = "";
	var chr1, chr2, chr3;
	var enc1, enc2, enc3, enc4;
	var i = 0;

	// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

	do {
		enc1 = keyStr.indexOf(input.charAt(i++));
		enc2 = keyStr.indexOf(input.charAt(i++));
		enc3 = keyStr.indexOf(input.charAt(i++));
		enc4 = keyStr.indexOf(input.charAt(i++));

		chr1 = (enc1 << 2) | (enc2 >> 4);
		chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		chr3 = ((enc3 & 3) << 6) | enc4;

		output = output + String.fromCharCode(chr1);

		if (enc3 != 64) {
			output = output + String.fromCharCode(chr2);
		}
		if (enc4 != 64) {
			output = output + String.fromCharCode(chr3);
		}
	} while (i < input.length);
	try {
		return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(output.replace(
						/"(\\.|[^"\\])*"/g, '')))
				&& eval('(' + output + ')');
	} catch (e) {
		return false;
	}

	return output;
}
/**
 * Verifie que le tag est bien mis apres 5 seconde
 */
setTimeout("if(bir_method) {eval(bir_method);}", 5000);