/***********************************************************************************
*********************  L I S T E  D E S  F O N C T I O N S  ***********************
***********************************************************************************
TestCaractere(spChaine)
RTrim(spChaine)
LTrim(spChaine)
Trim(spChaine)
Right(spChaine, npNbrCaracteres)
Left(spChaine, npNbrCaracteres)
InsDansChaine(spChaine, npDebut, spChaineIns)
RetDeChaine(spChaine, npDebut, npNbrCaracteres)
TrimHTML(spChaine)
HTMLDecode(spChaine)
GetNomFichierSansExt(spFichier)
GetNomFichierAvecExt(spFichier)
GetExtension(spFichier)
CropElement(spID, npLargeur)
ArrondiPrix(npPrix)
***********************************************************************************/
function TestCaractere(spChaine){
	var olResultat = true;
	var slCarInterdit = "\`\%\*\,\?\;\:\!\#\$\£\(\)\~\/\\\'\=\+\{\}\[\]|^\"\"\<\>";	
	var slCar
	for (var i=0; i < spChaine.length; i++) {
    	slCar = spChaine.substring(i,i+1);
    	if (slCarInterdit.indexOf(slCar)!=(-1)){;
        	olResultat = false;
      	}
	}
	if(spChaine == "liste"){
		return slCarInterdit;
	}else{
		return olResultat;
	}
}
function ArrondiPrix(npPrix)
 {
 	var slPrix = new String();
 	slPrix = Math.floor(npPrix) + ",";
 	var nlCentime = new Number();
	nlCentime = Math.round((npPrix - Math.floor(npPrix)) * 100);
 	if (nlCentime > 9) { slPrix = slPrix + nlCentime; } else { slPrix = slPrix + "0" + nlCentime; };
	
	return slPrix;
 }

function RTrim(spChaine){
    return(spChaine.replace(/^[\s\n]*/,""));
}
 
function LTrim(spChaine){
    return(spChaine.replace(/[\s\n]*$/, ""));
}
 
function Trim(spChaine){
    return(RTrim(LTrim(spChaine)));
}

function Right(spChaine, npNbrCaracteres){
	if(npNbrCaracteres < spChaine.length)
	{
		return spChaine.substr(spChaine.length - npNbrCaracteres, npNbrCaracteres);
	}else{
		return spChaine;
	}
}

function Left(spChaine, npNbrCaracteres){
	if(npNbrCaracteres < spChaine.length)
	{
		return spChaine.substr(0, npNbrCaracteres);
	}else{
		return spChaine;
	}
}

function LPad(spSource, spCar, npNbrCar){
	for(var i=String(spSource).length;i<npNbrCar;i++) {spSource = String(spCar) + spSource;}
	return spSource;
}

function RPad(spSource, spCar, npNbrCar){
	for(var i=String(spSource).length;i<npNbrCar;i++) {spSource = spSource + String(spCar);}
	return spSource;
}

function TrimHTML(spChaine){
	var slChaine = spChaine;
	
	slChaine = slChaine.replace(/<\/(h[1-6]|p|li|blockquote)>/gi, "\n");
	slChaine = slChaine.replace(/(<([^>]+)>)/ig,"");
	slChaine = slChaine.replace("&nbsp;", " ");
	
	return slChaine;
}

function HTMLDecode(spChaine){
	var i
	var slEncode
	var alEncode
	var alDecode
	
	slEncode += "&Aacute;|&aacute;|&Acirc;|&acirc;|&acute;|&AElig;|&aelig;|&Agrave;|&agrave;|&alefsym;|&Alpha;|&alpha;|&amp;|&and;|&ang;|&Aring;|&aring;|&asymp;|&Atilde;|&atilde;|&Auml;|&auml;";
	slEncode += "|&bdquo;|&Beta;|&beta;|&brvbar;|&bull;|&cap;|&Ccedil;|&ccedil;|&cedil;|&cent;|&Chi;|&chi;|&circ;|&clubs;|&cong;|&copy;|&crarr;|&cup;|&curren;"
	slEncode += "|&dagger;|&Dagger;|&darr;|&dArr;|&deg;|&Delta;|&delta;|&diams;|&divide;"
	slEncode += "|&Eacute;|&eacute;|&Ecirc;|&ecirc;|&Egrave;|&egrave;|&empty;|&emsp;|&ensp;|&Epsilon;|&epsilon;|&equiv;|&Eta;|&eta;|&ETH;|&eth;|&Euml;|&euml;|&euro;|&exist;"
	slEncode += "|&fnof;|&forall;|&frac12;|&frac14;|&frac34;|&frasl;|&Gamma;|&gamma;|&ge;|&gt;|&harr;|&hArr;|&hearts;|&hellip;"
	slEncode += "|&Iacute;|&iacute;|&Icirc;|&icirc;|&iexcl;|&Igrave;|&igrave;|&image;|&infin;|&int;|&Iota;|&iota;|&iquest;|&isin;|&Iuml;|&iuml;"
	slEncode += "|&Kappa;|&kappa;|&Lambda;|&lambda;|&lang;|&laquo;|&larr;|&lArr;|&lceil;|&ldquo;|&le;|&lfloor;|&lowast;|&loz;|&lrm;|&lsaquo;|&lsquo;|&lt;"
	slEncode += "|&macr;|&mdash;|&micro;|&middot;|&minus;|&Mu;|&mu;|&nabla;|&ndash;|&ne;|&ni;|&not;|&notin;|&nsub;|&Ntilde;|&ntilde;|&Nu;|&nu;"
	slEncode += "|&Oacute;|&oacute;|&Ocirc;|&ocirc;|&OElig;|&oelig;|&Ograve;|&ograve;|&oline;|&Omega;|&omega;|&Omicron;|&omicron;|&oplus;|&or;|&ordf;|&ordm;|&Oslash;|&oslash;|&Otilde;|&otilde;|&otimes;|&Ouml;|&ouml;"
	slEncode += "|&para;|&part;|&permil;|&perp;|&Phi;|&phi;|&Pi;|&pi;|&piv;|&plusmn;|&pound;|&prime;|&Prime;|&prod;|&prop;|&Psi;|&psi;|&quot;"
	slEncode += "|&radic;|&rang;|&raquo;|&rarr;|&rArr;|&rceil;|&rdquo;|&real;|&reg;|&rfloor;|&Rho;|&rho;|&rlm;|&rsaquo;|&rsquo;"
	slEncode += "|&sbquo;|&Scaron;|&scaron;|&sdot;|&sect;|&shy;|&Sigma;|&sigma;|&sigmaf;|&sim;|&spades;|&sub;|&sube;|&sum;|&sup;|&sup1;|&sup2;|&sup3;|&supe;|&szlig;"
	slEncode += "|&Tau;|&tau;|&there4;|&Theta;|&theta;|&thetasym;|&thinsp;|&THORN;|&thorn;|&tilde;|&times;|&trade;"
	slEncode += "|&Uacute;|&uacute;|&uarr;|&uArr;|&Ucirc;|&ucirc;|&Ugrave;|&ugrave;|&uml;|&upsih;|&Upsilon;|&upsilon;|&Uuml;|&uuml;"
	slEncode += "|&weierp;|&Xi;|&xi;|&Yacute;|&yacute;|&yen;|&yuml;|&Yuml;|&Zeta;|&zeta;"
	alEncode = slEncode.split("|");
	
	alDecode=new Array("Á","á","Â","â","´","Æ","æ","À","à","?","?","?","&","?","?","Å","å","?","Ã","ã","Ä","ä","„","?","?","¦","•","?","Ç","ç","¸","¢","?","?","ˆ","?","?","©","?","?","¤","†","‡","?","?","°","?","?","?","÷","É","é","Ê","ê","È","è","?","?","?","?","?","?","?","?","Ð","ð","Ë","ë","€","?","ƒ","?","½","¼","¾","?","?","?","?",">","?","?","?","…","Í","í","Î","î","¡","Ì","ì","I","?","?","?","?","¿","?","Ï","ï","?","?","?","?","?","«","?","?","?","“","?","?","?","?","?","‹","‘","<","¯","—","µ","·","-","?","?","?"," ","–","?","?","¬","?","?","Ñ","ñ","?","?","Ó","ó","Ô","ô","Œ","œ","Ò","ò","?","?","?","?","?","?","?","ª","º","Ø","ø","Õ","õ","?","Ö","ö","¶","?","‰","?","?","?","?","?","?","±","£","?","?","?","?","?","?","?","?","»","?","?","?","”","R","®","?","?","?","?","›","’","‚","Š","š","?","§","­","?","?","?","?","?","?","?","?","?","¹","²","³","?","ß","?","?","?","?","?","?","?","Þ","þ","˜","×","™","Ú","ú","?","?","Û","û","Ù","ù","¨","?","?","?","Ü","ü","?","?","?","Ý","ý","¥","ÿ","Ÿ","?","?");
	
	for(i=0;i<alDecode.length;i++){
		spChaine = spChaine.replace(new RegExp(alEncode[i], "g"), alDecode[i]);
	}
		
	return spChaine;
}

function InsDansChaine(spChaine, npDebut, spChaineIns){
	if(npDebut <= spChaine.length){
		spChaine = spChaine.substring(0, npDebut) + spChaineIns + spChaine.substring(npDebut, spChaine.length);
	}
	
	return spChaine;
}

function RetDeChaine(spChaine, npDebut, npNbrCaracteres){
	if (npDebut <= spChaine.length){
		spChaine = spChaine.substring(0,npDebut) + spChaine.substring(npDebut+npNbrCaracteres,spChaine.length);
	}
	
	return spChaine;
}

function GetNomFichier(spFichier){
	var slNomFichier = spFichier.lastIndexOf('\\', spFichier.length - 1);
	if (slNomFichier <= 0)
		slNomFichier = spFichier.lastIndexOf('/', spFichier.length - 1); 
	slNomFichier = spFichier.substr(slNomFichier + 1);
	slNomFichier = slNomFichier.substr(0, slNomFichier.lastIndexOf('.', slNomFichier.length));
	return slNomFichier;
}

function GetNomFichierSansExt(spFichier){
	var slNomFichier = spFichier.lastIndexOf('\\', spFichier.length - 1);
	if (slNomFichier <= 0)
		slNomFichier = spFichier.lastIndexOf('/', spFichier.length - 1); 
	slNomFichier = spFichier.substr(slNomFichier + 1);
	slNomFichier = slNomFichier.substr(0, slNomFichier.lastIndexOf('.', slNomFichier.length)).toLowerCase();
	return slNomFichier;
}

function GetNomFichierAvecExt(spFichier){
	return spFichier.substr(spFichier.lastIndexOf('\\', spFichier.length)+1).toLowerCase();
}

function GetExtension(spFichier){
	return spFichier.substr(spFichier.lastIndexOf('.', spFichier.length)+1).toLowerCase();
}

function GetNomFichierSecure(spFichier){
	var slNomFichier = spFichier;

	if (spFichier != ""){
		slNomFichier = slNomFichier.replace("\\", "/");
		if (slNomFichier.lastIndexOf("f=") > 0){
			slNomFichier = slNomFichier.substr(slNomFichier.lastIndexOf("f=")+2, slNomFichier.indexOf("l=")-5-slNomFichier.lastIndexOf("f=")+2);
		}else{
			slNomFichier = spFichier;		
		}
	}

	return slNomFichier;
}

function CropElement(spID, npLargeur){
	var nlLargeurElem = 0;
	var nlFraction = 0;
	var nlNbrCaracteres = 0;
	var slContenu = "";
	var llChange = false;
	var llTerminer = false;
		
	npLargeur -= 10;
	
	if(Elem(spID) != null){
			
		Elem(spID).innerHTML = '<span style="float:left;" id="SpanDim' + spID + '">' + Elem(spID).innerHTML + '</span>'	
		nlLargeurElem = Elem("SpanDim" + spID).offsetWidth;
				
		if(nlLargeurElem > npLargeur){
			nlFraction = npLargeur / nlLargeurElem;
			
			nlNbrCaracteres = Math.round(Elem("SpanDim" + spID).innerHTML.length * nlFraction);
						
			slContenu = Elem("SpanDim" + spID).innerHTML;
			
			do{
				Elem("SpanDim" + spID).innerHTML = Left(slContenu, nlNbrCaracteres);
								
				if(Elem("SpanDim" + spID).offsetWidth > npLargeur){
					nlNbrCaracteres--;
					if(llChange){
						Elem("SpanDim" + spID).innerHTML = Left(slContenu, nlNbrCaracteres);
						llTerminer = true;
					}
				}else if(Elem("SpanDim" + spID).offsetWidth < npLargeur){
					nlNbrCaracteres++;
					llChange = true;
				}else{
					llTerminer = true;
				}
			}while(!llTerminer)
			
			Elem("SpanDim" + spID).innerHTML += "..."
		}
	}
}
