if (typeof QQ === "undefined") {
  var QQ = {};
} 
QQ.String = function(){

  return {
  	br2nl: function (str){
		  return str.replace(/<br>/g,"\r\n").replace(/<BR>/g,"\r\n");
	  },
		// why <br> and not <br />?
  	nl2br: function (str){
			return str.replace(/\r\n/g,"<br>").replace(/\r/g,"<br>").replace(/\n/g,"<br>");
		},
  	trim: function (str){
  		return str.replace(/^\s+/,'').replace (/\s+$/,'');
  	},
  	urlEncode: function (str){
  		return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
  	},
		evalJSON: function (jsonString){
			return eval("("+jsonString+")");
		}
  };
}();
