// http://javascript.about.com/library/blshuffle.htm Array.prototype.shuffle = function() { var s = []; while (this.length) s.push(this.splice(Math.random() * this.length, 1)); while (s.length) this.push(s.pop()); return this; }; Array.prototype.indexOf = function( element ) { for( var i in this ) { if( this[i] == element ) return i; } return -1; }; String.prototype.copy = function() { return this.substring( 0, this.length ); }; String.prototype.trim = function( ext ) { var chars = [ " ", "\t", "\n", "\r" ]; var s = this.copy(); if( arguments.length > 0 ){ for( var i in ext ){ chars.push( ext[i] ); } } while( chars.indexOf( s.charAt( 0 ) ) != -1 ){ s = s.substring( 1, s.length ); } while( chars.indexOf( s.charAt( s.length-1 ) ) != -1 ){ s = s.substring( 0, s.length-1 ); } return s; };