--- /dev/null
+// tout un tas d'améliorations de JavaScript ;)
+
+
+/**
+ * Pour chaque propriété de l'objet execute f(p, v) ou p est le nom de la propriété et v sa valeur.
+ * Ne parcours pas les propriétés des prototypes.
+ * FIXME : Normalement : Object.prototype.each = function(f) mais non supporté par jquery
+ */
+//Object.prototype.each = function(f) {
+var objectEach = function(o, f) {
+ for (var k in o) {
+ if (o.hasOwnProperty(k)) {
+ f(k, o[k]);
+ }
+ }
+};
+
+var objectMemberCount = function(o) {
+ var nb = 0;
+ for (var k in o) {
+ if (o.hasOwnProperty(k)) {
+ nb += 1;
+ }
+ }
+ return nb;
+};
+
+Array.prototype.each = function(f) {
+ for (var i = 0; i < this.length; i++) {
+ f(i, this[i]);
+ }
+};
+
+Array.prototype.map = function(f) {
+ for (var i = 0; i < this.length; i++) {
+ this[i] = f(this[i])
+ }
+};
+
+String.prototype.trim = function() {
+ return jQuery.trim(this) // anciennement : this.replace(/^\s+|\s+$/g, "");
+}
+
+String.prototype.ltrim = function() {
+ return this.replace(/^\s+/, "");
+}
+
+String.prototype.rtrim = function() {
+ return this.replace(/\s+$/, "");
+}
+
+
+/**
+ * Voir : http://www.coolpage.com/developer/javascript/Correct%20OOP%20for%20Javascript.html
+ *
+ * Exemple :
+ *
+ * function Mammal(name) {
+ * this.name = name;
+ * }
+ *
+ * Cat.Inherits(Mammal);
+ * function Cat(name) {
+ * this.Super(Mammal, name);
+ * }
+ */
+/*Object.prototype.Super = function(parent) {
+ if(arguments.length > 1) {
+ parent.apply( this, Array.prototype.slice.call( arguments, 1 ) );
+ } else {
+ parent.call( this );
+ }
+}
+Function.prototype.Inherits = function(parent) {
+ this.prototype = new parent();
+ this.prototype.constructor = this;
+}*/