compile insert RTI_BBC2HTML
function BBC2HTML(S) {
     if (S===undefined) {
        return "";
     }
     
	var smileyList = {smile: [[':smile:',':-\\)',':\\)'], 'smile'], bigsmile: [[':biggrin:',':-D',':D'],'big grin'], vsad:[[':vsad:',':-\\(\\('],'very sad'], sad:[[':sad:',':-\\('],'sad'], wink:[[':wink:',';-\\)'],'wink'], vshocked:[[':surprised:',':-o'],'shocked'], tongue:[[':tongue:',':-\\!'],'tongue'], cool:[[':cool:'], 'cool!'], mad:[[':mad:'],'mad!'], sconf:[[':confused:'], 'confused'], paranoid:[[':paranoid:'],'paranoid'], question:[[':question:'],'question?'], thumbup:[[':thumbsup:'],'Yes!'], thumbdown:[[':thumbsdown:'], 'No!']};
     S = smileyParse(S);
	if (S.indexOf('[') < 0) return S;
	
	function X(p, f) {return new RegExp(p, f)}
	function D(s) {return rD.exec(s)}
	function R(s) {return s.replace(rB, P)}
	function A(s, p) {for (var i in p) s = s.replace(X(i, 'g'), p[i]); return s;}
		function P($0, $1, $2, $3) {
		  if ($3 && $3.indexOf('[') > -1) $3 = R($3);
		  switch ($1) {
			case 'url':case 'anchor':case 'email': return ''+ $3 +'';
			case 'img': var d = D($2); return '';
			case 'flash':case 'youtube': var d = D($2)||[0, 425, 366]; return '';
			case 'float': return ''+ $3 +'';
			case 'left':case 'right':case 'center':case 'justify': return '
', '
![' + smileyList[i][1] + '](../images/smilies/' + i + '.gif) ');
//		   }
//	   }
      re = new RegExp(":smile:", "g");
      origStr = origStr.replace(re, '
');
//		   }
//	   }
      re = new RegExp(":smile:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-\\)", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-\\)", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":\\)", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":\\)", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":biggrin:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":biggrin:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-D", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-D", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":D", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":D", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":vsad:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":vsad:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-\\(\\(", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-\\(\\(", "g");
      origStr = origStr.replace(re, ' ');
	  
      re = new RegExp(":sad:", "g");
      origStr = origStr.replace(re, '
');
	  
      re = new RegExp(":sad:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-\\(", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-\\(", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":\\(", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":\\(", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":wink:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":wink:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(";-\\)", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(";-\\)", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(";\\)", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(";\\)", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":surprised:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":surprised:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-o", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-o", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":o", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":o", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-O", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-O", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":O", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":O", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":tongue:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":tongue:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":-\\!", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":-\\!", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":\\!", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":\\!", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":cool:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":cool:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":mad:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":mad:", "g");
      origStr = origStr.replace(re, ' ');
	  
      re = new RegExp(":confused:", "g");
      origStr = origStr.replace(re, '
');
	  
      re = new RegExp(":confused:", "g");
      origStr = origStr.replace(re, ' ');
	  
      re = new RegExp(":paranoid:", "g");
      origStr = origStr.replace(re, '
');
	  
      re = new RegExp(":paranoid:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":question:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":question:", "g");
      origStr = origStr.replace(re, ' ');
      re = new RegExp(":thumbsup:", "g");
      origStr = origStr.replace(re, '
');
      re = new RegExp(":thumbsup:", "g");
      origStr = origStr.replace(re, ' ');
	  
      re = new RegExp(":thumbsdown:", "g");
      origStr = origStr.replace(re, '
');
	  
      re = new RegExp(":thumbsdown:", "g");
      origStr = origStr.replace(re, ' ');
	  return origStr;
    }
	
	for (var i in C) I['\\[('+ i +')]((?:.|[\r\n])*?)\\[/\\1]'] = function($0, $1, $2) {var p1 = $1, p2 = $2, rslt; if (p1 == "code") {p2 = p2.replace(/
');
	  return origStr;
    }
	
	for (var i in C) I['\\[('+ i +')]((?:.|[\r\n])*?)\\[/\\1]'] = function($0, $1, $2) {var p1 = $1, p2 = $2, rslt; if (p1 == "code") {p2 = p2.replace(/'}; B['\\[/quote]'] = '
'; B['\\[/code]'] = ''; B['\\[pre]'] = '
'; B['\\[/pre]'] = ''; return R(A(A(S, I), B)); }