/*------------------------------------------------------------------------------------------------*/
//parseur simple pour un texte XML 
//entrée : 	- texte XML
//		- balise dont ont veut recuperer le contenu 
//retour:	-contenu de la balise 

	function parser(text,balise)
	{
	var reponse = clean(text);
		try
		{
		return reponse.getElementsByTagName(balise)[0].firstChild.nodeValue;
		}catch(e)
		{
		return "";
		}
	}
	
	function go(c){
		if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
	}

	function clean(d){
	var bal=d.getElementsByTagName('*');

		for(i=0;i<bal.length;i++){
			a=bal[i].previousSibling;
			if(a && a.nodeType==3)
			go(a);
			b=bal[i].nextSibling;
			if(b && b.nodeType==3)
			go(b);
		}
		return d;
	} 

/*------------------------------------------------------------------------------------------------*/
//fonction pour créer l'object XHR
	function createXHR()
	{
        var xhr = null; 
		if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
		else if(window.ActiveXObject){ // Internet Explorer 
			try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
		}
		else { // XMLHttpRequest non supporté par le navigateur 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
		} 
    return xhr
	}
	
/*------------------------------------------------------------------------------------------------*/	
//fonction pour ecrire dans une div 
//entrée: 	-texte et 
//		-ID de la div
	function ecrire_div(iddiv,texte)
    {
		document.getElementById(iddiv).innerHTML = texte;
    }
	
	/*------------------------------------------------------------------------------------------------*/	
	
//Pour vérifier qu'un mail est valide, il suffit de tester la présence de @ et du point.
   function verifiermail(mail) {
      if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
         return true
      } else {
         return false
      }
   }
   
 //verifie si un nombre
   function CheckNombre(nb) {
	// retourne vrai si c'est un nombre et false sinon
	return !(isNaN(nb));
}

//alterne deux images
function imgSwap(oImg)
{
   var strOver  = "_on"    // image to be used with mouse over
   var strOff = "_off"     // normal image
   var strImg = oImg.src
   if (strImg.indexOf(strOver) != -1) 
      oImg.src = strImg.replace(strOver,strOff)
   else
      oImg.src = strImg.replace(strOff,strOver)
}

//nettoie les caracteres inutiles
function trim (str, charlist) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: mdsjack (http://www.mdsjack.bo.it)
    // +   improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
    // +      input by: Erkekjetter
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: DxGx
    // +   improved by: Steven Levithan (http://blog.stevenlevithan.com)
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // *     example 1: trim('    Kevin van Zonneveld    ');
    // *     returns 1: 'Kevin van Zonneveld'
    // *     example 2: trim('Hello World', 'Hdle');
    // *     returns 2: 'o Wor'
    // *     example 3: trim(16, 1);
    // *     returns 3: 6
 
    var whitespace, l = 0, i = 0;
    str += '';
    
    if (!charlist) {
        // default list
        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
    } else {
        // preg_quote custom list
        charlist += '';
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
    }
    
    l = str.length;
    for (i = 0; i < l; i++) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(i);
            break;
        }
    }
    
    l = str.length;
    for (i = l - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    
    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}
/* changer la valeur d'un select------------------------*/
function Select_Value_Set(SelectName, Value) {
	eval('SelectObject = document.' + SelectName + ';');
	for(index = 0;  index < SelectObject.length; index++) {
		if(SelectObject[index].value == Value)
			SelectObject.selectedIndex = index;	
	}
}
//----------------------------------------------------------------------//
//----------desactive les champs texte et select d'un formulaire-------//
function desactiver_champs(laform) {
	
	if(laform) {
		var champs = laform.getElementsByTagName("input");
		var lesselects = laform.getElementsByTagName("select");
		
		for(var i=0, n=champs.length; i<n; i++) {
			if(champs[i].getAttribute("type")!="button"){				
				champs[i].disabled=true;
			}
		}
		
		for(var i=0, n=lesselects.length; i<n; i++) {
			if(lesselects[i].getAttribute("type")!="button"){
				lesselects[i].disabled=true;
			}
		}
	}
}

//----------active les champs texte et select d'un formulaire-------//
function activer_champs(laform) {
	
	if(laform) {
		var champs = laform.getElementsByTagName("input");
		var lesselects = laform.getElementsByTagName("select");
		
		for(var i=0, n=champs.length; i<n; i++) {
			if(champs[i].getAttribute("type")!="button"){				
				champs[i].disabled=false;
			}
		}
		
		for(var i=0, n=lesselects.length; i<n; i++) {
			if(lesselects[i].getAttribute("type")!="button"){
				lesselects[i].disabled=false;
			}
		}
	}
}
//----------Compare deux date FR separées par "-" -------//
function comparerDates(LeParam1,LeParam2){
	var a=LeParam1.split('-');
	var b=LeParam2.split('-');
	
	var date1=parseInt(a[2]+a[1]+a[0]);
	var date2=parseInt(b[2]+b[1]+b[0]);

	if(date1<=date2)
	return true;
	else
	return false;
}
//----------limite le champs dans un text area -------//
function limiter_text_area(objet,max)
{
	if(objet.value.length>max)
	{
	alert("le max est : "+max+" caractères");
	objet.value=objet.value.substr(0, max-1);
	}
}

function rawurldecode(str) {
    // Decodes URL-encodes string  
    // 
    // version: 904.317
    // discuss at: http://phpjs.org/functions/rawurldecode
    // +   original by: Brett Zamir (http://brettz9.blogspot.com)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brettz9.blogspot.com)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: rawurldecode('Kevin+van+Zonneveld%21');
    // *     returns 1: 'Kevin+van+Zonneveld!'
    // *     example 2: rawurldecode('http%3A%2F%2Fkevin.vanzonneveld.net%2F');
    // *     returns 2: 'http://kevin.vanzonneveld.net/'
    // *     example 3: rawurldecode('http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a');
    // *     returns 3: 'http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a'
    // *     example 4: rawurldecode('-22%97bc%2Fbc');
    // *     returns 4: '-22—bc/bc'
    var histogram = {};
    var ret = str.toString(); 

    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };

    // The histogram is identical to the one in urlencode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';

    for (replace in histogram) {
        search = histogram[replace]; // Switch order when decoding
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }

    // End with decodeURIComponent, which most resembles PHP's encoding functions
    ret = ret.replace(/%([a-fA-F][0-9a-fA-F])/g, function (all, hex) {return String.fromCharCode('0x'+hex);}); // These Latin-B have the same values in Unicode, so we can convert them like this
    ret = decodeURIComponent(ret);

    return ret;
}

function EcrireCookie(nom, valeur)
{
var argv=EcrireCookie.arguments;
var argc=EcrireCookie.arguments.length;
var expires=(argc > 2) ? argv[2] : null;
var path=(argc > 3) ? argv[3] : null;
var domain=(argc > 4) ? argv[4] : null;
var secure=(argc > 5) ? argv[5] : false;
document.cookie=nom+"="+escape(valeur)+
((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
((path==null) ? "" : ("; path="+path))+
((domain==null) ? "" : ("; domain="+domain))+
((secure==true) ? "; secure" : "");
}

function getCookieVal(offset)
{
var endstr=document.cookie.indexOf (";", offset);
if (endstr==-1) endstr=document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function LireCookie(nom)
{
var arg=nom+"=";
var alen=arg.length;
var clen=document.cookie.length;
var i=0;
while (i<clen)
{
var j=i+alen;
if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
i=document.cookie.indexOf(" ",i)+1;
if (i==0) break;

}
return null;
}
