function init_tinyMCE(useFormgen) {
	var formgenButton = "";
	var formgenElements = "";
	var replace = "";
	var newDocument = "";

	if (useFormgen) {
		formgenButton = "formgen,";
		formgenElements = "a[name|href|target|title|onclick],"
			+ "input[type|name|id|tabindex|title|size|value|maxlength|checked],"
			+ "option[value|selected|defaultSelected],"
			+ "select[class|disabled|id|lang|multiple|name|size|style|tabindex|title],"
			+ "textarea[name|id|tabindex|title|cols|rows|value]";
	}
	if (tinyMCE.isMSIE) {
		//these buttons don't work correctly in Firefox
		replace = "replace,";
		newDocument = "newdocument,separator,";
	}
	tinyMCE.init({
		mode : "exact",
		plugins : "table,advimage,preview,flash,searchreplace,contextmenu,paste,iespell,fullscreen,doclib,formgen",
		//save_callback : "customSave",
		//insertimage_callback : "openImageLibrary",
		//insertlink_callback : "buildLinkWindow",
		//insertdocument_callback : "openDocumentLibrary",  //no longer supported in version 2
		//insertformelement_callback : "openFormCreator",  //no longer supported in version 2
		debug : false,
		height: 350,
		//width: 400,
                convert_urls : false,
		urlconvertor_callback : "customURLCleanup",
		force_p_newlines : false,
		force_br_newlines : true,
		extended_valid_elements : formgenElements,
		theme_advanced_layout_manager : "RowLayout",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_containers : "top1,top2,top3,mceEditor",
		theme_advanced_containers_default_class : "mceToolbarTop",
		theme_advanced_containers_default_align : "left",
		theme_advanced_container_top1 : "bold,italic,underline,strikethrough,separator,bullist,numlist,separator,outdent,indent,separator,fontselect,fontsizeselect,justifyleft,justifycenter,justifyright",
		theme_advanced_container_top2 : "undo,redo,separator,removeformat,tablecontrols,separator,sub,sup,charmap,separator,forecolor,backcolor",
//remove flash icon until we can implement file browser...
//		theme_advanced_container_top3 : "cut,copy,paste,separator," + newDocument + "search," + replace + "separator,iespell,preview,cleanup,code,separtor,link,unlink,separator,visualaid,hr,anchor,flash,image,doclib," + formgenButton + "separator,fullscreen"
		theme_advanced_container_top3 : "cut,copy,paste,separator," + newDocument + "search," + replace + "separator,iespell,preview,cleanup,code,separtor,link,unlink,separator,visualaid,hr,anchor,image,doclib," + formgenButton + "separator,fullscreen"
});
}

function customURLCleanup(url, node, on_save) {
	//first, do default action that happens if urlconvertor_callback is not defined in init
	url = tinyMCE.convertURL(url, node, on_save);  
	url = url.replace(/[^:]\/\/+/, "/");  //get rid of doubled-up / (//) that don't follow a colon
	return url;
	//following code not needed -- updater/link_builder.js->saveLink() fixed to strip existing urltype values before prepending new urltype
	////rest of function deals with stuff like:   "http://http://file://..." and retains last part, e.g.:  file://...
	//var pattern = /(.+:\/\/)+(.+:\/\/)/; 
	//url.search(pattern); //this line necessary because RegExp.lastParen seems to be evaluated before the replace operation on /pattern/
	//return url.replace(pattern, RegExp.lastParen);
}

function customSave(formTargetElementId, htm, getBody)
{   //callback from tinyMCE.triggerSave() saves tinyMCE instance -> div label -> hidden text control 
    if (formTargetElementId == "lbl_page_text")
        saveDiv("page_text", htm);
    if (formTargetElementId == "lbl_footer_txt")
        saveDiv("field_footer_txt", htm);
    if (formTargetElementId == "lbl_right_text")
        saveDiv("field_right_text", htm);
    if (formTargetElementId == "lbl_item_detail")
        saveDiv("item_detail", htm);
    if (formTargetElementId == "lbl_lower_text")
        saveDiv("field_lower_text", htm);
}

