
	/* Version 1.2
	 * Author: Moxiecode Systems
	 * Slightly modified by Thierry B�zecourt, October 2005 (fixed the regexps)
	 * further modified by Thomas Seifert, June 2007 (added regexps for Phorum)
	 */

	var tinyMCE_on = false;



	function TinyMCESaving() {
		if (tinyMCE_on == true)
			document.post_form.body.value = convertFromMCEToBBCode(tinyMCE.getContent());
	}

	function convertFromMCEToBBCode(source) {

		// example: <strong> to [b]
		source = source.replace(/<\/strong>/gi,"[/b]");
		source = source.replace(/<strong>/gi,"[b]");

		source = source.replace(/<sub>/gi,"[sub]");
		source = source.replace(/<\/sub>/gi,"[/sub]");

		source = source.replace(/<sup>/gi,"[sup]");
		source = source.replace(/<\/sup>/gi,"[/sup]");

		source = source.replace(/<strike>/gi,"[s]");
		source = source.replace(/<\/strike>/gi,"[/s]");

        source = source.replace(/<hr class=\"100%\" size=\"2\" \/>/gi,"[hr]");

		source = source.replace(/<\/em>/gi,"[/i]");
		source = source.replace(/<em>/gi,"[i]");

		source = source.replace(/<\/u>/gi,"[/u]");
		source = source.replace(/<u>/gi,"[u]");

		source = source.replace(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
		source = source.replace(/<a.*?href=\'(.*?)\'.*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");

		source = source.replace(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
		source = source.replace(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
		source = source.replace(/<font.*?size=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][size=$1]$2[/size][/code]");
		source = source.replace(/<font.*?size=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][size=$1]$2[/size][/quote]");

		source = source.replace(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");
		source = source.replace(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");
		source = source.replace(/<font.*?class=\"codeStyle\".*?size=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][size=$1]$2[/size][/code]");
		source = source.replace(/<font.*?class=\"quoteStyle\".*?size=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][size=$1]$2[/size][/quote]");

		source = source.replace(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");
		source = source.replace(/<font.*?size=\"(.*?)\".*?>(.*?)<\/font>/gi,"[size=$1em]$2[/size]");
		source = source.replace(/<font>(.*?)<\/font>/gi,"$1");
		source = source.replace(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");
		source = source.replace(/<img.*?src=\'(.*?)\'.*?\/>/gi,"[img]$1[/img]");

		source = source.replace(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");
		source = source.replace(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");

		source = source.replace(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");
		source = source.replace(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");

		source = source.replace(/<em class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][i]$1[/i][/code]");
		source = source.replace(/<em class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][i]$1[/i][/quote]");

		source = source.replace(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");
		source = source.replace(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");

		source = source.replace(/<br \/>/gi,"\n");
		source = source.replace(/<br\/>/gi,"\n");
		source = source.replace(/<br>/gi,"\n");

		source = source.replace(/&nbsp;/gi," ");
		source = source.replace(/&quot;/gi,"\"");
		source = source.replace(/&lt;/gi,"<");
		source = source.replace(/&gt;/gi,">");
		source = source.replace(/&amp;/gi,"&");

		source = source.replace(/<!--(.*?)-->/g, "");
		source = source.replace(/<.*?>/g, "")

		return source;
	}

	function convertFromBBCodeToMCE(source) {
		// example: [b] to <strong>
		source = source.replace(/&/gi,"&amp;");
		source = source.replace(/\"/gi,"&quot;");
		source = source.replace(/</gi,"&lt;");
		source = source.replace(/>/gi,"&gt;");

		source = source.replace(/\n/gi,"<br />");

		source = source.replace(/\[b\]/gi,"<strong>");
		source = source.replace(/\[\/b\]/gi,"</strong>");

		source = source.replace(/\[sup\]/gi,"<sup>");
		source = source.replace(/\[\/sup\]/gi,"</sup>");

		source = source.replace(/\[sub\]/gi,"<sub>");
		source = source.replace(/\[\/sub\]/gi,"</sub>");

		source = source.replace(/\[hr\]/gi,"<hr width=\"100%\" size=\"2\" />");

		source = source.replace(/\[s\]/gi,"<strike>");
		source = source.replace(/\[\/s\]/gi,"</strike>");

		source = source.replace(/\[i\]/gi,"<em>");
		source = source.replace(/\[\/i\]/gi,"</em>");

		source = source.replace(/\[u\]/gi,"<u>");
		source = source.replace(/\[\/u\]/gi,"</u>");

		source = source.replace(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");
		source = source.replace(/\[url=(.*?)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");
		source = source.replace(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");

		source = source.replace(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");
		source = source.replace(/\[size=(.*?)(em){0,1}\](.*?)\[\/size\]/gi,"<font size=\"$1\">$3</font>");

		source = source.replace(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span>&nbsp;");
		source = source.replace(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span>&nbsp;");

		return source;
	}

	function toggleTinyMCE() {
		if (tinyMCE_on == true) {
			// if mce is on, we toggle it off and convert to BBCode
			tinyMCE.execCommand("mceRemoveControl", false, "body");
			document.post_form.body.value = convertFromMCEToBBCode(document.post_form.body.value);
			tinyMCE_on = false;
			return;
		} else {
			// if mce is off, we toggle it on and convert to HTML code
			document.post_form.body.value = convertFromBBCodeToMCE(document.post_form.body.value);
			tinyMCE.execCommand("mceAddControl", false, "body");
			tinyMCE_on = true;
			return;
		}
	}

	function tinymce_submitForm(evt) {
		TinyMCESaving();
		the_form = document.getElementById('post-form');
		return true;
	}
