/**
 * @package PHP style Trim function for Javascript
 * @version 1.0.1
 * @author Robin van Baalen
 * 
 * CHANGELOG:
 * 
 * 1.0.1	- Fixed the empty string bug
 * 1.0		- First release
 * 
 * Original source: phpjs.org's Trim() function. 
 * Website: http://phpjs.org/functions/trim:566
 * 
 */

String.prototype.trim = function(charlist) {
    
    if (typeof charlist == "undefined") {
        whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
    } 
    else {
        // preg_quote custom list
        charlist += '';
        whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');    
    }
    
    l = this.length;
    for (i = 0; i < l; i++) {
        if (whitespace.indexOf(this.charAt(i)) === -1) {            
            var str = this.substring(i);
            break;
        }
    }

    if(typeof str == "undefined"){
	var str = "";
    }
    
    l = str.length;
    for (i = l - 1; i >= 0; i--) {
        if (whitespace.indexOf(str.charAt(i)) === -1) {
            str = str.substring(0, i + 1);
            break;        
        }
    }
    
    return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
    
};
