whole_func_string: function(s) {
  			s = tinymce.trim(s);
  
  			function rep(re, str) {
  				s = s.replace(re, str);
  			};
  
  			// example: [b] to <strong>
  			rep(/\n/gi,"<br />");
  			rep(/\[b\]/gi,"<strong>");
  			rep(/\[\/b\]/gi,"</strong>");
  			rep(/\[i\]/gi,"<em>");
  			rep(/\[\/i\]/gi,"</em>");
  			rep(/\[u\]/gi,"<u>");
  			rep(/\[\/u\]/gi,"</u>");
  			rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
  			rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
  			rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
  			rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
  			rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");
  			rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");
  
  			return s; 
  		}
func_code_string: function(s) {
  			s = tinymce.trim(s);
  
  			function rep(re, str) {
  				s = s.replace(re, str);
  			};
  
  			// example: [b] to <strong>
  			rep(/\n/gi,"<br />");
  			rep(/\[b\]/gi,"<strong>");
  			rep(/\[\/b\]/gi,"</strong>");
  			rep(/\[i\]/gi,"<em>");
  			rep(/\[\/i\]/gi,"</em>");
  			rep(/\[u\]/gi,"<u>");
  			rep(/\[\/u\]/gi,"</u>");
  			rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
  			rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
  			rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
  			rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
  			rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");
  			rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");
  
  			return s; 
  		}
func_documentation_string: BBCode -> HTML from PunBB dialect