
        /* Version 1.1
         * Author: Moxiecode Systems
     * Slightly modified by Thierry Bézecourt, October 2005 (fixed the regexps)
     * modified further by Zoid Technologies, May 2006 to integrate with the development version of bbsengine.
         */

        var tinyMCE_on = false;

        function custom_save(element_id, html, body) {
                if (tinyMCE_on == true)
                        return convertFromMCEToBBCode(html);
        }

    function custom_setupcontent(element_id, body, doc) {
        body.innerHTML = convertFromBBCodeToMCE(body.innerHTML)
        return;
    }

        function convertFromMCEToBBCode(source) {

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

                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,"[link:$1]$2[/link]");
                source = source.replace(/<a.*?href=\'(.*?)\'.*?>(.*?)<\/a>/gi,"[link:$1]$2[/link]");

        source = source.replace(/<div style="text-align: (left|right|center)">([\s\S]+?)<\/div>/gi,"[$1]$2[/$1]");
        source = source.replace(/<p style="text-align: (left|right|center)">([\s\S]+?)<\/p>/gi,"[$1]$2[/$1]");

        source = source.replace(/<pre>([\s\S]+?)<\/pre>/gi, "[pre]$1[/pre]");

        source = source.replace(/<h([1-6])>([\s\S]+?)<\/h[1-6]>/gi, "[h$1]$2[/h$1]");

        source = source.replace(/<strike>([\s\S]+?)<\/strike>/gi, "[strike]$1[/strike]");

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

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

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

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

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

                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(/\[i\]/gi,"<em>");
                source = source.replace(/\[\/i\]/gi,"</em>");

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

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

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

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

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

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

        source = source.replace(/\[(left|right|center)\]([\s\S]+?)\[\/(left|right|center)\]/gi, "<div style=\"text-align: $1;\">$2</div>");

        source = source.replace(/\[pre\]([\s\S]+?)\[\/pre\]/gi, "<pre>$1</pre>");

        source = source.replace(/\[h([1-6])\]([\s\S]+?)\[\/h[1-6]\]/gi, "<h$1>$2</h$1>");

        source = source.replace(/\[link:([\s\S]+?)\]([\s\S]+?)\[\/link]/gi, "<a href=\"$1\">$2</a>");

//              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(/\[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(id) {
	        if (tinyMCE_on == true) {
	            // if mce is on, we toggle it off and convert to BBCode
	            tinyMCE.execCommand("mceRemoveControl", false, id);
	            // document.getElementById(id).value = convertFromMCEToBBCode(document.getElementById(id).value);
	            // document.getElementById(id).value = MCEToPlain(document.getElementById(id).value);
	            tinyMCE_on = false;
	            return;
	        } else {
	            // if mce is off, we toggle it on and convert to HTML code
	            // document.getElementById(id).value = convertFromBBCodeToMCE(document.getElementById(id).value);            
	            //  PlainToMCE(document.getElementById(id).value);            
		source = document.getElementById(id).value;
                source = source.replace(/\n/gi,"<br>");
		document.getElementById(id).value = source;
	            tinyMCE.execCommand("mceAddControl", true, id);
	           	tinyMCE_on = true;
      	     return;
	        }
        }

        function submitForm(the_form) {
                TinyMCESaving();
                return process_form(the_form);
        }
/*
function dynamicLoadTinyMCE() {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = "./tinymce/jscripts/tiny_mce/tiny_mce_src.js";
    document.getElementsByTagName('head')[0].appendChild(script);
}
*/


