Have you considered dynamically loading and unloading tinyMCE instances based on the user input?
I've put together an example here (with a drop down) which demo's 3 different Tiny MCE versions with varying buttons. There would be a much nicer / cleaner way to do this - it's a crude example to demo the concept (and showing it working)
http://fiddle.tinymce.com/fVeaab/2
Full code:
<script type="text/javascript">
function loadTinyMce(type) {
var toolbar
if(type!==null) {
switch(type) {
case "a":
toolbar = "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";
break;
case "b":
toolbar = "insertfile undo redo | styleselect | bold italic";
break;
case "c":
toolbar = "bullist numlist outdent indent | link image";
break;
}
//Kill current (Probably better way to do this)
destroy();
//Run setup function with a custom set of toolbars
setup(toolbar);
}
}
function setup(toolbarOptions) {
tinymce.init({
selector: "textarea",
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media table contextmenu paste"
],
toolbar: toolbarOptions
});
}
function destroy() {
tinymce.remove();
}
</script>
<select onchange="loadTinyMce(this.value);">
<option value="">Choose</option>
<option value="a">Example A</option>
<option value="b">Example B</option>
<option value="c">Example C</option>
</select>
<Br><Br>
<textarea name="content" id="content"></textarea>