// 
// cookies
//
var Cookies = {
        init: function () {
                var allCookies = document.cookie.split('; ');
                for (var i=0;i<allCookies.length;i++) {
                        var cookiePair = allCookies[i].split('=');
                        this[cookiePair[0]] = cookiePair[1];
                }
        },
        create: 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=/";
                this[name] = value;
        },
        read: function (name) {
        		return this[name];
        },
        erase: function (name) {
                this.create(name,'',-1);
                this[name] = undefined;
        }
};
Cookies.init();

//
// Mesures
//
var Mesures = {};

Mesures._idSession="UNKOWNBYCLIENT";

Mesures.getCurrentTimeMillis = function() {
	return new Date().getTime();
}

Mesures.setIdSession = function(idSess) {
	if(idSess != "null") {
		Mesures._idSession = idSess;
	}
}

Mesures.setBaseURL = function(baseURL) {
	if(baseURL != "null") {
		Mesures._baseURL = baseURL;
	}
}

Mesures.getIdSession = function() {
   return Mesures._idSession;
}

Mesures.generateIdRequest = function() {
	return Mesures._idSession + Mesures.getCurrentTimeMillis();
}

Mesures.onSubmitRequest = function() {
	var idRequest = Mesures.generateIdRequest();
	Cookies.create("mesuresIdReq",idRequest,"");
}

// onload : compatibilite avec le javascript select.js qui definit lui aussi le handler onload (pour IE)
var onloadCurrentHandler = window.onload;

Mesures.onPageLoaded = function() {

	// traitement eventuellement prevu par select.js ou un autre script
	if(onloadCurrentHandler != null && onloadCurrentHandler != "") {
		onloadCurrentHandler();
	}

	// notre traitement
	var idReq = Cookies.read("mesuresIdReq");
	if(idReq == null || idReq.length < 13) return;

	var duree = Mesures.computeTimeFromSubmission(idReq);
	if(duree == "") return;

	// vidage du cookie identifiant de requete
	Cookies.erase("mesuresIdReq");

	Mesures.sendMesure(idReq, null, duree); 
}

Mesures.sendMesure = function(idReq, idTrace, duree) {

	var imbidon = new Image();
	var src="";
	if (Mesures._baseURL) {
		src+=Mesures._baseURL;
	}
	
	if (idReq == "null") {
		idReq = Mesures.generateIdRequest();
	}
	
	src+="MesuresNavigateurServlet?idReq="+ escape(idReq) + "&duree=" + duree;
	if (idTrace) {
		src+= "&idTrace=" + idTrace;
	}
	
	imbidon.src=src;
}

Mesures.computeTimeFromSubmission = function(idReq) {
	var tsSub = idReq.substring(idReq.length - 13, idReq.length);
	return Mesures.getCurrentTimeMillis() - tsSub;
}


