/**
* Here we can add useful functionality to javascript itself.  Which is nice.
*
*/
Ext.applyIf(Array.prototype, {
    
	/**
	* Similar to php's "in_array" function, but easier to use:
	* 
	*		var myArray = [4,67,'bob','toenail man', 55.6, 'cherry'];
	*		if ( myArray.contains('bob') ) {
	*			alert("yay");
	*		}
	*
	* @return bool
	*/
    contains: function(v){
       for (var i = 0, len = this.length; i < len; i++){
 	      if(this[i] == v) {
                return true;
              }
       }
       return false;
    },
    
    /**
     * 
     */
    array_keys: function() {
    	
    	var tmp_arr = {}, cnt = 0;
        
        for ( key in this ){
        	tmp_arr[cnt] = key;
            cnt++;
        }
        
        return tmp_arr;
    }
});

/**
 * Lets give the string object some useful functions.
 */
Ext.applyIf(String.prototype, {
    
	ucfirst: function(){
		str = this;
		str += '';
	    var f = str.charAt(0).toUpperCase();
	    return f + str.substr(1, str.length-1);
    },
    
    ucwords: function() {
    	str = this;
    	return (str+'').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase ( ); } );
    },
    
    /**
     * Split a string by string
     * 		example 1: explode(' ', 'Kevin van Zonneveld');
     *     	returns 1: {0: 'Kevin', 1: 'van', 2: 'Zonneveld'}
     *    	example 2: explode('=', 'a=bc=d', 2);
     *     	returns 2: ['a', 'bc=d']
     */
    explode:	function( delimiter ) {
    
    	var emptyArray = { 0: '' };
        
        if ( delimiter === '' || delimiter === false || delimiter === null ) {
            return false;
        }
     
        if ( typeof delimiter == 'function' || typeof delimiter == 'object' ) {
            return emptyArray;
        }
     
        if ( delimiter === true ) {
            delimiter = '1';
        }
        
        return this.toString().split(delimiter.toString());
    }
});