var jck_navdetect = '';
var jck_osdetect  = '';

function detect_navigator(){
	if(navigator.appName.indexOf('Netscape') != -1){
		jck_navdetect = 'ns';
	} else if (navigator.appName.indexOf('Microsoft') != -1){
		jck_navdetect = "ms";
	}
}

function detect_os(){
	if (navigator.appVersion.indexOf("Win")!=-1) jck_osdetect="Windows";
	if (navigator.appVersion.indexOf("Mac")!=-1) jck_osdetect="MacOS";
	if (navigator.appVersion.indexOf("X11")!=-1) jck_osdetect="UNIX";
	if (navigator.appVersion.indexOf("Linux")!=-1) jck_osdetect="Linux";
}

detect_navigator();
detect_os();

function getXhr(xhr,elem){
	if( xhr.responseXML.getElementsByTagName(elem)[0].firstChild ){
		// return xhr.responseXML.getElementsByTagName(elem)[0].firstChild.nodeValue.toString();
		return decodeURI(xhr.responseXML.getElementsByTagName(elem)[0].firstChild.nodeValue.toString());
	} else {
		return "";
	}
}
function getXmlFirstChild(xhr,elem,ended){
	if( xhr.responseXML.getElementsByTagName(elem)[0].firstChild ){
		var begin = "";
		if( arguments.length == 4 ){
			begin = arguments[3];
		}
		return begin +decodeURI(xhr.responseXML.getElementsByTagName(elem)[0].firstChild.nodeValue.toString())+ended;
	}
	return "";
}

function getXmlFirstChild2(xhr,elem){
	if( xhr.responseXML.getElementsByTagName(elem)[0].firstChild ){
		var pattern = "%str";
		if( arguments.length==3 ){
			var pattern = arguments[2];
		}
		return pattern.replace(/%str/g,unescape(xhr.responseXML.getElementsByTagName(elem)[0].firstChild.nodeValue));
	}
	return "";
}

function getNodeValue(node,elem){
	if( node.getElementsByTagName(elem)[0].firstChild ){
		var pattern = "%str";
		if( arguments.length==3 ){
			var pattern = arguments[2];
		}
		return pattern.replace(/%str/g,unescape(node.getElementsByTagName(elem)[0].firstChild.nodeValue));
	}
	return "";
}

function testIt(str){
	alert(str.replace(/%str/,"POUET"));
	
}
function ctn(str){
	return document.createTextNode(str);
}

function addSlashes(str){
	var out = "";

	for( var i=0; i<str.length; i++ ){
		if( str.substr(i,1) == "'" ){
			out += "\\";
		}

		out += str.substr(i,1);
	}

	return out;
}

function removeElement(id){
   var Node = document.getElementById(id);
   Node.parentNode.removeChild(Node);
}



getFrenchDate = function(mysqlDate) {
	if(mysqlDate.length){
		//var months = new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
		var dec = mysqlDate.split("-");
		var day = parseInt(dec[2],10)+"";
		if(day.length == 1){
			day = "0"+day;
		}
		var month = parseInt(dec[1],10)+"";
		if(month.length == 1){
			month = "0"+month;
		}
		var year = dec[0];
		return day+"/" +month +"/" +year;
	}
	return "";
}



/* ********************************************* SURCHARGE de la CLASSE ARRAY */

/** Cette méthode renvoie le premier index trouvé pour la valeur 'searchValue'
 * @param	searchValue		Object
 * @aythor	Stéphane<stephane@oceany.com>
 * @since 	Tue Dec 18 11:57:48 CET 2007 @498 /Internet Time/
 */
Array.prototype.getIndexOfValue = function(searchValue){
	var r = null;
	for(var i in this){
		if( this[i]==searchValue ){
			r = i;
		}
	}
	return r;
}

Date.nombreJours = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

Date.getHumanTime = function(mysqlDate) {
	var months = new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
	var dec = mysqlDate.split("-");
	var day = parseInt(dec[2],10);
	var month = parseInt(dec[1],10)-1;
	var year = dec[0];
	return day+" " +months[month] +" " +year;
}

Date.getFrenchTime = function(mysqlDate) {
	//var months = new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
	var dec = mysqlDate.split("-");
	var day = parseInt(dec[2],10);
	var month = parseInt(dec[1],10)-1;
	var year = dec[0];
	return day+" " +month +" " +year;
}


Date.setBisextilYear = function(year){
	if( !(year%4) && ((year%100)||!(year%400)) ){
	 	Date.nombreJours[1] = 29;
	} else {
		Date.nombreJours[1] = 28;
	}
}

function array_search_multidimensionnel(tabDistrib,champRecherche,valeurRecherche){
	/***
	 * Retourne la clé de la valeur recherche pour le champs recherché
	 * Ex : tabDistrib = new Array("0"=>new Array("type" => distributeur,nom => "Ulysse31"),"1"=>new Array("type" => distributeur,nom => "Ulysse32"))
	 * array_search_multidimensionnel(tabDistrib,"nom","Ulysse31")
	 * Retourne 0
	 */
	
	
	for(i=0;i<tabDistrib.length;i++){
		//On regarde pour le champs recherché
		if(tabDistrib[i][champRecherche] == valeurRecherche){
			var key = i;
			return key;
		}
	}
	return false;
		
}

/* ****************************************************** SURCHARGE de NUMBER */

/** Cette méthode renvois le chiffre formaté pour l'affichage
 * @param	Number	decimal		Nombre de chiffre après la virgule
 * @param	String	separateur	Caractère de séparation pour les milliers
 * @author	Stéphane<stephane@oceany.com>	(source toutjavascript.com)
 * @since	Fri Jan 11 09:43:30 CET 2008 @405 /Internet Time/
**/
Number.prototype.afficherAbs = function(decimal,separateur){
	var deci=Math.round( Math.pow(10,decimal)*(Math.abs(this)-Math.floor(Math.abs(this)))) ; 
	var val=Math.floor(Math.abs(this));
	if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(Math.abs(this)); deci=0;}
	var val_format=val+"";
	var nb=val_format.length;
	for (var i=1;i<4;i++) {
		if (val>=Math.pow(10,(3*i))) {
			val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
		}
	}
	if (decimal>0) {
		var decim=""; 
		for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
		deci=decim+deci.toString();
		val_format=val_format+"."+deci;
	}
	if (parseFloat(this)<0) {val_format="-"+val_format;}
	return val_format;
}



// La meme qu'au dessus mais sans les Math.abs
Number.prototype.afficher = function(decimal,separateur){
	var deci=Math.round( Math.pow(10,decimal)*(this-Math.floor(this)));
	if(this>=0){
		var val=Math.floor(this);
	}else{
		var val=Math.ceil(this);
	}
	if ((decimal==0)||(deci==Math.pow(10,decimal))) {
		val=Math.floor(this); deci=0;
	}
	var val_format=val+"";
	var nb=val_format.length;
	for (var i=1;i<4;i++) {
		if (val>=Math.pow(10,(3*i))) {
			val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
		}
	}
	if (decimal>0) {
		var decim=""; 
		for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
		deci=decim+deci.toString();
		val_format=val_format+"."+deci;
	}
	return val_format;
}


Number.prototype.arrondi = function(decimal){
	var deci=Math.round( Math.pow(10,decimal)*(this-Math.floor(this))) ; 
	var val=Math.floor(this);
	if ((decimal==0)||(deci==Math.pow(10,decimal))) {val=Math.floor(this); deci=0;}
	
	var val_format=val+"";
	
	if (decimal>0) {
		var decim=""; 
		for (var j=0;j<(decimal-deci.toString().length);j++) {decim+="0";}
		deci=decim+deci.toString();
		val_format=val_format+"."+deci;
	}
	
	return val_format;
}

 