// Convertit une unite en pixel en une autre unite(cm, em, ex)
$.fn.toUnit = function (unit, settings) {
    settings = jQuery.extend({
        scope: 'body'
    }, settings);
    var that = parseInt(this[0], 10);
    var scopeTest = jQuery('<div style="display: none; width: 10000' + unit + '; padding:0; border:0;"></div>').appendTo(settings.scope);
    var scopeVal = scopeTest.width() / 10000;
    scopeTest.remove();
    return (that / scopeVal).toFixed(8);
};

jQuery.extend({
        unparam : function(params){
                var objResult = {};

                $.each(params.split("&"), function(){
                	var prm=this.split("=");

                	var mult = this.split("[]");
                	if (mult.length > 1) {
                		if (!objResult[mult[0]]) objResult[mult[0]] = new Array();
                		objResult[mult[0]].push(prm[1]);
                	} else if (prm[0] != '')	{
                		objResult[prm[0]] = prm[1];
                	}
                });
                return objResult;
        }
});

/* Augmenter / Diminuer la taille de la police */
var content;
var collec, i;
var initSize = 0;
var oldSize = '';
var pos;
var sizeInited = 0;
function setSize(size, id)
	{
	$('.' + id).each(function() { setSizeByObject(size, $(this)[0]); });
	}

function setSizeByObject(size, content)
	{
	oldSize = content.style.fontSize;
	if (oldSize == '') oldSize = '100%';
	pos = oldSize.indexOf('%');
	oldSize = oldSize.substring(0,pos)*1;
	size = size*1;
	if (((oldSize > 80) && (size < -1)) || ((oldSize < 200) && (size > 1))) 
		size = oldSize+size;
	else size = oldSize;
	content.style.fontSize = size + '%';
	}

function protected_mail(email)
	{
	email = email.replace(/!SPAM!/gi, "@");
	email = email.replace(/,/gi, ";");
	var fen = window.open("mailto:"+email);
	fen.close();
	}


// Script d'ajustement de tableaux
function ajuste_image(img1, img2)
	{
	obj1 = document.getElementById('ajusteimg_ext_' + img1);
	obj2 = document.getElementById('ajusteimg_ext_' + img2);
	if (document.getElementById('ajusteimg_' + img1) != null && document.getElementById('ajusteimg_' + img2) != null)
		{
		y1 = obj1.offsetTop;
		y2 = obj2.offsetTop;
		newheight = Math.abs(y1-y2) + 1;
		if (y1>y2)
			document.getElementById('ajusteimg_' + img2).height=newheight;
		else
			document.getElementById('ajusteimg_' + img1).height=newheight;
		}
	}


// Scripts pour la galerie
var newWin = null;
function closeWin()
	{
	if (newWin != null)
		{
		if(!newWin.closed)
		newWin.close();
		}
	}

function popupCentrer(page, largeur, hauteur, close, options)
	{
	if (close == 1) closeWin();
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	  
	newWin = window.open(page,"popup","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	newWin.document.close();
	newWin.focus();
	}

function popupCentrerId(page, idp, largeur, hauteur, options)
	{
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	
	newWin = window.open(page, "page"+idp,"top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
	newWin.document.close();
	newWin.focus();
	}
	
var ok = 0;

function stripslashes(ch)
	{
	return ch.replace (/(\\)([\\\'\"])/g, "$2")
	}
	
function MM_preloadImages() 
	{ //v3.0
  	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
	}

function MM_swapImgRestore() 
	{ //v3.0
  	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	}

function MM_findObj(n, d) 
	{ //v3.0
  	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
	}
	
	
function MM_swapImage() 
	{ //v3.0
  	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
	}

var _minus=new Image();
var _plus=new Image();
_minus.src="../../_images/preset/puces/minus.gif";
_plus.src="../../_images/preset/puces/plus.gif";
    
function show_hide(imageid,id) 
	{
      	if(imageid != null)	var image=document.getElementById(imageid);
      	
      	var objet=document.getElementById(id);
      	if (objet.style.display=='none') 
      		{
	        if(image)	image.src=_minus.src;
	        objet.style.display='block';
      		}
      	else 
      		{
        	if(image)	image.src=_plus.src;
        	objet.style.display='none';
      		}
    	}
    	
function show_plus(id) 
	{
	if($('#' + id).is(':hidden'))	$('#' + id).show();
	else				$('#' + id).hide();
    	}
	
// Script de bbcode
var imageTag 		= false;
var theSelection 	= false;

var clientPC 	= navigator.userAgent.toLowerCase();
var clientVer 	= parseInt(navigator.appVersion);

var is_ie 	= ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav 	= ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz 	= 0;

var is_win 	= ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac 	= (clientPC.indexOf("mac")!=-1);

bbcode = new Array();
bbtags = new Array('b[',']b','i[',']i','u[',']u','cy[',']cy','cb[',']cb','cg[',']cg','cp[',']cp','[l] ','','[',']mail:','[',']url:http://','[',']article:','[',']glossaire:','l[',']l','[',']img:http://','qt[',']qt');
imageTag = false;

function getarraysize(thearray) {
	for (i = 0; i < thearray.length; i++) {
		if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
			return i;
		}
	return thearray.length;
}

function arraypush(thearray,value) {
	thearray[ getarraysize(thearray) ] = value;
}

function arraypop(thearray) {
	thearraysize = getarraysize(thearray);
	retval = thearray[thearraysize - 1];
	delete thearray[thearraysize - 1];
	return retval;
}

function bbstyle(bbnumber, seltxtarea) {
	var txtarea = document.getElementById(seltxtarea);

	txtarea.focus();
	donotinsert = false;
	theSelection = false;
	bblast = 0;

	if (bbnumber == -1) { 
		while (bbcode[0]) {
			butnumber = arraypop(bbcode) - 1;
			txtarea.value += bbtags[butnumber + 1];
			if(typeof(document.post) != "undefined")
				{
				buttext = eval('document.post.addbbcode' + butnumber + '.value');
				eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
				}
		}
		imageTag = false;
		txtarea.focus();
		return;
	}

	if ((clientVer >= 4) && is_ie && is_win)
	{
		theSelection = document.selection.createRange().text; // Get text selection
		if (theSelection) {
			document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
			txtarea.focus();
			theSelection = '';
			return;
		}
	}
	else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
	{	
		mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
		return;
	}

	for (i = 0; i < bbcode.length; i++) {
		if (bbcode[i] == bbnumber+1) {
			bblast = i;
			donotinsert = true;
		}
	}

	if (donotinsert) {	
		while (bbcode[bblast]) {
				butnumber = arraypop(bbcode) - 1;
				txtarea.value += bbtags[butnumber + 1];
				if(typeof(document.post) != "undefined")
					{
					buttext = eval('document.post.addbbcode' + butnumber + '.value');
					eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
					}
				imageTag = false;
			}
			txtarea.focus();
			return;
	} else { 

		if (imageTag && (bbnumber != 14)) {		// Close image tag before adding another
			txtarea.value += bbtags[15];
			lastValue = arraypop(bbcode) - 1;	// Remove the close image tag from the list
			document.post.addbbcode14.value = "Img";	// Return button back to normal state
			imageTag = false;
		}

		txtarea.value += bbtags[bbnumber];
		if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
		arraypush(bbcode,bbnumber+1);
		txtarea.focus();
		return;
	}
	storeCaret(txtarea);
}

function mozWrap(txtarea, open, close)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd == 1 || selEnd == 2)
		selEnd = selLength;

	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	txtarea.value = s1 + open + s2 + close + s3;
	return;
}

function storeCaret(textEl) {
	if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}	

function js_in_array(the_needle, the_haystack){
	var the_hay = the_haystack.toString();
	if(the_hay == ''){
	    return false;
	}
	var the_pattern = new RegExp(the_needle, 'g');
	var matched = the_pattern.test(the_haystack);
	return matched;
}

var obj_ajax;
var oldbg_ajax;
	
// Ouvre une requete Ajax et renvoie le resultat
// Si paramPost != null => method Post
// paramPost de la forme "nomparam1=valeurparam1&nomparam2=valeurparam2"
function file(fichier, paramPost)
	{
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) { // IE
		try {
			xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else
		return(false);
	
	if (paramPost == null)
		{
		xhr_object.open('GET', fichier, false);
		xhr_object.send(null);
		}
	else
		{
		xhr_object.open('POST', fichier, false);
		xhr_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr_object.send(paramPost);			
		}
	if(xhr_object.readyState == 4) return(xhr_object.responseText);
	else return(false);
	}

// Recharge le resultat d'une requete ajax dans un conteneur
function recharge(div_a_recharger, lien_pour_recharger, js_after, paramPost)
	{
	var texte = file(lien_pour_recharger, paramPost);
	texte = texte.replace(/<(\/)*noscript>/gi, "");
	
	if(div_a_recharger != '')	document.getElementById(div_a_recharger).innerHTML = texte;
	if(js_after!='')	eval(js_after);

	eval_script_after(texte);
	} 

function recharge_async(div_a_recharger, lien_pour_recharger, paramPost, js_after)
	{
	var xhr_object = null;
	
	if(window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if(window.ActiveXObject) { // IE
		try {
			xhr_object = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else
		return(false);
		
	if (paramPost == null)
		{
		xhr_object.onreadystatechange = function () { if ( xhr_object.readyState == 4)   { if (div_a_recharger != "" && document.getElementById(div_a_recharger)) document.getElementById(div_a_recharger).innerHTML= xhr_object.responseText; eval_script_after(xhr_object.responseText); if(js_after!='')	eval(js_after);}};
		xhr_object.open('GET', lien_pour_recharger, true);
		xhr_object.send(null);
		}
	else
		{
		xhr_object.onreadystatechange = function () { if ( xhr_object.readyState == 4)   { if (div_a_recharger != "" && document.getElementById(div_a_recharger)) document.getElementById(div_a_recharger).innerHTML= xhr_object.responseText; eval_script_after(xhr_object.responseText); if(js_after!='')	eval(js_after);}};
		xhr_object.open('POST', lien_pour_recharger, true);
		xhr_object.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr_object.send(paramPost);			
		}
		
	return true;
	}	
	
function eval_script_after(texte)
	{
	// Js dans le code retourné (<script id=\"script_after\"...)
	if (texte && texte != "")
		{
		var html_js_after = "";
		
		var TabMyResult  = texte.split(/<script id=["']script_after["'] type=["']text\/javascript["']>/);		
		if (TabMyResult.length > 1)	var TabMyResult2 	= TabMyResult[1].split("</script>");
		if (TabMyResult2!= null && TabMyResult2.length > 1)	html_js_after = TabMyResult2[0];

		if (html_js_after == "")
			{
			var reg = new RegExp("<script id=[\"']script_after[\"'] type=[\"']text/javascript[\"']>(.*)</script>", "g");
			html_js_after = texte.replace(reg, "$1");
			if (html_js_after == texte)	html_js_after = "";
			}
				
		if (html_js_after != '')	eval(html_js_after);	
		}
	}
	
// Permet d'afficher l'image ajax_loader pendant le rechargement Ajax du panier
function loading_ajax(val, div)
	{
	var id_div = document.getElementById(div);
	
	if(id_div)
		{
		if(val==0)
			window.setTimeout(function() 
				{
				if (!is_ie)	
					{
					id_div.style.filter = "alpha(opacity=100)";
					id_div.style.opacity = "1";
					}
				id_div.style.background = 'none'; 
				}, 1000);
		else
			{
			id_div.style.background = "url(/_images/icones/loading_front.gif) center no-repeat";
			if (!is_ie)	
				{
				id_div.style.filter = "alpha(opacity=40)";
				id_div.style.opacity = "0.4";
				}
			}
		}
	}
	
function findPosX(obj) {
	    var curleft = 0;
	    if (obj && obj.offsetParent) {
		    while (obj.offsetParent) {
			    curleft += obj.offsetLeft;
			    obj = obj.offsetParent;
		    }
	    } else if (obj && obj.x) curleft += obj.x;
	    return curleft;
}


       
function findPosY(obj){
	    var curtop = 0;
	    if (obj && obj.offsetParent) {
		    while (obj.offsetParent) {
			    curtop += obj.offsetTop;
			    obj = obj.offsetParent;
		    }
	    } else if (obj && obj.y) curtop += obj.y;
	    return curtop;
}

function change_tab (obj, id_param)
	{
	var content_tab, pos;
	var lis = document.getElementById("tabs_" + id_param).getElementsByTagName('li');
	for (var i=0; i<lis.length; i++)
		{
		if (obj == lis[i].firstChild)	pos = i;
		lis[i].className = lis[i].className.replace("selected", "");
		content_tab = document.getElementById("content_tabs_" + id_param + "_" + i);
		if (content_tab)	content_tab.style.display = 'none';
		}
	
	obj.parentNode.className = 'selected';
	content_tab = document.getElementById("content_tabs_" + id_param + "_" + pos);
	if (content_tab)	content_tab.style.display = '';
	obj.blur();
	}
	
function make_print_object(objet, id_wz, id_form, sha)
	{
	var inputs = document.getElementById(id_form).getElementsByTagName('input');
	var textareas = document.getElementById(id_form).getElementsByTagName('textarea');
	var selects = document.getElementById(id_form).getElementsByTagName('select');
	
	if (sha)	id_wz = sha1Hash(id_wz);
	
	for(var i=0;i<inputs.length;i++)
		{
		if(inputs[i].type != "hidden")
			{
			inputs[i].onclick = function() {
							if(!document.getElementById('fingerprint_' + objet))
								{
								var print = document.createElement('input');
								print.id = 'fingerprint_' + objet;
								print.name = 'fingerprint';
								print.value = id_wz;
								print.type = 'hidden';
									
								this.parentNode.appendChild(print);
								}
							};
			}
		}
	
	for(var i=0;i<textareas.length;i++)
		{
		textareas[i].onclick = function() {
						if(!document.getElementById('fingerprint_' + objet))
							{
							var print = document.createElement('input');
							print.id = 'fingerprint_' + objet;
							print.name = 'fingerprint';
							print.value = id_wz;
							print.type = 'hidden';
								
							this.parentNode.appendChild(print);
							}
						};
		}
		
	for(var i=0;i<selects.length;i++)
		{
		selects[i].onclick = function() {
						if(!document.getElementById('fingerprint_' + objet))
							{
							var print = document.createElement('input');
							print.id = 'fingerprint_' + objet;
							print.name = 'fingerprint';
							print.value = id_wz;
							print.type = 'hidden';
								
							this.parentNode.appendChild(print);
							}
						};
		}
	}

function utf8_encode ( string ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
    
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";
    var start, end;
 
    start = end = 0;
    for (var n = 0; n < string.length; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;
 
        if (c1 < 128) {
            end++;
        } else if((c1 > 127) && (c1 < 2048)) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc != null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }
    
    if (end > start) {
        utftext += string.substring(start, string.length);
    }
 
    return utftext;
}

function sha1Hash(msg)
{
    // constants [4.2.1]
    var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];


    // PREPROCESSING 
    msg = utf8_encode(msg);
    msg += String.fromCharCode(0x80); // add trailing '1' bit to string [5.1.1]


    // convert string msg into 512-bit/16-integer blocks arrays of ints [5.2.1]
    var l = Math.ceil(msg.length/4) + 2;  // long enough to contain msg plus 2-word length
    var N = Math.ceil(l/16);              // in N 16-int blocks
    var M = new Array(N);
    for (var i=0; i<N; i++) {
        M[i] = new Array(16);
        for (var j=0; j<16; j++) {  // encode 4 chars per integer, big-endian encoding
            M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) | 
                      (msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
        }
    }
    // add length (in bits) into final pair of 32-bit integers (big-endian) [5.1.1]
    M[N-1][14] = ((msg.length-1) >>> 30) * 8;
    M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;


    // set initial hash value [5.3.1]
    var H0 = 0x67452301;
    var H1 = 0xefcdab89;
    var H2 = 0x98badcfe;
    var H3 = 0x10325476;
    var H4 = 0xc3d2e1f0;


    // HASH COMPUTATION [6.1.2]


    var W = new Array(80); var a, b, c, d, e;
    for (var i=0; i<N; i++) {


        // 1 - prepare message schedule 'W'
        for (var t=0;  t<16; t++) W[t] = M[i][t];
        for (var t=16; t<80; t++) W[t] = ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);


        // 2 - initialise five working variables a, b, c, d, e with previous hash value
        a = H0; b = H1; c = H2; d = H3; e = H4;


        // 3 - main loop
        for (var t=0; t<80; t++) {
            var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
            var T = (ROTL(a,5) + f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
            e = d;
            d = c;
            c = ROTL(b, 30);
            b = a;
            a = T;
        }


        // 4 - compute the new intermediate hash value
        H0 = (H0+a) & 0xffffffff;  // note 'addition modulo 2^32'
        H1 = (H1+b) & 0xffffffff; 
        H2 = (H2+c) & 0xffffffff; 
        H3 = (H3+d) & 0xffffffff; 
        H4 = (H4+e) & 0xffffffff;
    }

    return H0.toHexStr() + H1.toHexStr() + H2.toHexStr() + H3.toHexStr() + H4.toHexStr();
}

function f(s, x, y, z) 
	{
	switch (s) 
		{
		case 0: return (x & y) ^ (~x & z);
		case 1: return x ^ y ^ z;
		case 2: return (x & y) ^ (x & z) ^ (y & z);
		case 3: return x ^ y ^ z;
		}
	}


//
// rotate left (circular left shift) value x by n positions [3.2.5]
//
function ROTL(x, n)
	{
	return (x<<n) | (x>>>(32-n));
	}

Number.prototype.toHexStr = function()
	{
	var s="", v;
	for (var i=7; i>=0; i--) { v = (this>>>(i*4)) & 0xf; s += v.toString(16); }
	return s;
	}
	
// Fonctions utiles aux formulaires
function getPostValues(id_form, noEncodeUri)
	{
	var i, nom, val;

	var tmp = "";
	var formu 	= document.getElementById(id_form);	
	var inputs 	= formu.getElementsByTagName("input");	
	
	for (i=0; i<inputs.length; i++)
		{
		nom = inputs[i].name;
		val = inputs[i].value;
		typ = inputs[i].type;
		
		if (nom != "")
			{
			if (typ == "radio" || typ == "checkbox")
				{
				if (inputs[i].checked == true)	tmp+= "&" + nom + "=" + val;
				}
			else	
				{
				if(!noEncodeUri && typ != "hidden")	val = encodeURIComponent(val);
				tmp+= "&" + nom + "=" + val;
				}
			}
		}

	var selects 	= formu.getElementsByTagName("select");	
	for (i=0; i<selects.length; i++)
		{
		nom = selects[i].name;
		val = selects[i].value;
		if (!noEncodeUri)	val = encodeURIComponent(val);
		if (nom != "")	{ tmp+= "&" + nom + "=" + val;}
		}

	var textareas 	= formu.getElementsByTagName("textarea");	
	for (i=0; i<textareas.length; i++)
		{
		nom = textareas[i].name;
		val = textareas[i].value;
		if (!noEncodeUri)	val = encodeURIComponent(val);
		if (nom != "")	{ tmp+= "&" + nom + "=" + val;}
		}

	return tmp;
	}
	
function updateDuree(auto, langue)
	{
	if(auto == 1)
		{
		updateDuree(0, langue);
		intervalDuree = window.setInterval(function() { updateDuree(0, langue); }, 60000);
		}
	else
		{
		var currentStamp = Math.round((new Date()).getTime()/1000);  
		var spans = document.getElementsByTagName('span');
		var time = "";
		
		for(i=0;i<spans.length;i++)
			{
			if(spans[i].className.match('timestamp_'))
				{
				stamp = parseInt(spans[i].className.replace(/timestamp_([0-9]*)/, "$1"));
				
				diff = parseInt(currentStamp - stamp);
				minutes = parseInt(diff/60);
				
				if(minutes > 0)
					{
					if(minutes == 1)	time = minutes + " " + date_duree_min;
					else
						{
						if(minutes >= 60)
							{
							hours = parseInt(minutes/60);
							lib = (hours == 1 ? date_duree_hour : date_duree_hours);
							
							time = hours + " " + lib;
							}
						else
							time = minutes + " " + date_duree_mins;
						}
					
					if(langue == "fr" || langue == "es")	spans[i].innerHTML = date_duree_lib + " " + time;
					else					spans[i].innerHTML = time + " " + date_duree_lib;
					}
				}
			}
		}
	}
	
function getCookie (name) {
         if (name && name != "" && document.cookie) { // Le cookie est-il valide ?
                  index = document.cookie.indexOf( name);
                  if ( index != -1) {
                           nDeb = (document.cookie.indexOf( "=", index) + 1);
                           nFin = document.cookie.indexOf( ";", index);
                           if (nFin == -1) {nFin = document.cookie.length;}
                           return unescape(document.cookie.substring(nDeb, nFin));
                  }
         }
         return null;
}

function setCookie ( name, value, expires, path, domain, secure) {
         szCookie = name + "=" + escape (value) +
                  ((expires) ? "; expires=" + expires.toGMTString() : "") +
                  ((path) ? "; path=" + path : "") +
                  ((domain) ? "; domain=" + domain : "") +
                  ((secure) ? "; secure" : "");
                  document.cookie = szCookie;
}

function deleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = getCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

// Load la css dans le head a partir des info contenu dans div_id (div cache) 
function load_css(div_id)
	{	
	var css_rule_container = document.getElementById(div_id);
	
	if(css_rule_container)
		{
        var rawsheet = css_rule_container.innerHTML;
        
		var newcss = document.createElement("style");
		newcss.type = "text/css";
		newcss.media = "all";
		document.getElementsByTagName("head")[0].appendChild(newcss);
		
		var cssrules = rawsheet.split("}");
		newcss = document.styleSheets[0];
		if(newcss.rules) 
			{ //IE
			for(i=cssrules.length-2;i>=0;i--) 
				{
				newrule = cssrules[i].split("{");
				newcss.addRule(newrule[0],newrule[1])
				}
			}
		else if(newcss.cssRules) 
			{ //Firefox etc
			for(i=cssrules.length-1;i>=0;i--) 
				{
				if (!/\s$/.test(cssrules[i])) newcss.insertRule(cssrules[i]+"}",0);
				}
			}
        css_rule_container.parentNode.removeChild(css_rule_container);
		}
	}

function addslashes(str) 
	{
	str = str.replace(/\\/g, '\\\\');
	str = str.replace(/\'/g, '\\\'');
	str = str.replace(/\"/g, '\\"');
	str = str.replace(/\0/g, '\\0');
	return str;
	}
