/*****************************************************************************
'*                                                                           *
'* Fichier     : scripts/libString.js                                        *
'* Application : Portail                                                     *
'* Société     : DoubleTrade                                                 *
'* Copyright   : (c) 2007 DoubleTrade                                        *
'* Auteur      : Sébastien Nussbaumer                                        *
'* Créé le     : 06 décembre 2002                                            *
'* Date Modif  : Raison Modif                                                *
'*                                                                           *
'* Description :                                                             *
'* Ce fichier javascript rajout des méthodes à l'interface de l'object String*
'* Ces méthodes permettent une manipulation plus aisée des strings.          *
'*                                                                           *
'****************************************************************************/


// la méthode trim renvoie la String débarasée des espaces se trouvant
// au début et à la fin
//  ex : var str = new String(" Une chaine  ");
//       alert(str.trim());  // affiche "Une chaine"      
function String_trim() {
	return this.replace(/^\s*(\b.*\b|)\s*$/, "$1");
}

// la méthode replaceComaByDot renvoie la String avec toutes les
// virgules remplacées par des points
// ex : var str = new String("1,5");
//      alert(str.replaceComaByDot());  // affiche "1.5"
function String_replaceComaByDot() {
	var x = this;
	for (var i=0; i<x.length; i++) {
		if (x.charAt(i) == ",") {
			x = x.substring (0,i) + "." + x.substring(i+1, x.length);
		}
	}
	return x;
}

// La méthode toFloat renvoie un float représentant la valeur
// numérique de la chaine. La différence par rapport à parseFloat
// est que cette méthode accepte les points ET les virgules comme
// séparteur partie entière/partie décimale
// Elle renvoie NaN si la conversion vers char n'a pas réussi ou
// le premier argument s'il est spécifié
//  ex : var str = new String("1,5")
//       alert("2 x 1,5 = " + (2*str.toFloat())); // affiche "2 x 1,5 = 3"
function String_toFloat() {
	var rval = parseFloat(this.replaceComaByDot());
	if (arguments.length >= 1 && (rval != rval)) {
		rval = arguments[0];
	}
	return rval;
}


if (isProtoOkFor("String")) {
	addMethodToClass("String", "trim"            , "String_trim");
	addMethodToClass("String", "replaceComaByDot", "String_replaceComaByDot");
	addMethodToClass("String", "toFloat"         , "String_toFloat");
}

