tinyMCEConf = {
	mode : "specific_textareas",
	language : "nl",
	theme : "advanced",
	textarea_trigger : "htmlarea",
	entity_encoding : "raw",
	cleanup_on_startup : true,
	force_br_newlines : false,
	force_p_newlines : true,
	convert_newlines_to_brs : false,
	relative_urls : false,
	remove_script_host : false,
	theme_advanced_buttons1 : "underline,bold,italic,|,cut,copy,paste,|,undo,redo,|,hr,image",
	theme_advanced_buttons2 : "formatselect,|,charmap,removeformat,cleanup,|,anchor,link,unlink,|,code",
	theme_advanced_buttons3 : "",
	invalid_elements : "font,span,div,strike,sub,sup,blockquote",
	theme_advanced_blockformats : "p,h2,h3",
	extended_valid_elements : "table[width|cellspacing|cellpadding|class],tr[class],td[colspan|rowspan|width|class],tbody",
	safari_warning : false,
	plugins : "inlinepopups",
	file_browser_callback : "windmillTinyMCE.filebrowser",
	onchange_callback : "windmillTinyMCE.onchange",
	handle_event_callback : "windmillTinyMCE.event"
}
 
if(window.tinyMCEsiteSpecificConf) {
	for(property in tinyMCEsiteSpecificConf) {
		tinyMCEConf[property] = tinyMCEsiteSpecificConf[property];
	}
}

tinyMCE.init(tinyMCEConf);

/**
 * windmillTinyMCE
 *
 * Handles all tinyMCE callback's
 *
 * @since Mon Jul 9 2007
 * @author Giso Stallenberg
 **/
var windmillTinyMCE = {
	/**
	 * filebrowser
	 *
	 * The function that handle's tinyMCE's file_browser_callback's
	 *
	 * @since Mon Jul 9 2007
	 * @access public
	 * @param string field_id
	 * @param string url
	 * @param string type
	 * @param window insertWindow
	 * @return void
	 **/
	filebrowser: function(field_id, url, type, insertWindow) {
		var resultCallback = function(url) {
			if (insertWindow.document) {
				insertWindow.document.getElementById(field_id).value = url;
			}
		}
		var value = insertWindow.document.getElementById(field_id).value;
		var cwd = value.substring(-1, value.lastIndexOf("/") ).replace("/var/filemanagement", "");
		cwd = cwd || "";
		
		filemanager.showEditor(cwd, resultCallback);
	},

	/**
	 * onchange
	 *
	 * A function called each time the onchange_callback of tinyMCE fires
	 * Tries to call the function registered with Wmcms as tinyMCEUpdate function
	 *
	 * @since Mon Jul 9 2007
	 * @access public
	 * @param tinyMCE tinyMCEInstance
	 * @return void
	 **/
	onchange: function(tinyMCEInstance) {
		if (typeof(Wmcms.tinyMCEUpdate) == "function") {
			Wmcms.tinyMCEUpdate(tinyMCEInstance);
		}
	},

	/**
	 * event
	 *
	 * A function called each time the handle_event_callback of tinyMCE fires
	 * If the editors content changed tries to call the function registered with Wmcms as tinyMCEUpdate function
	 *
	 * @since Mon Jul 9 2007
	 * @access public
	 * @param Event event
	 * @return boolean
	 **/
	event: function(event) {
		var editor = tinyMCE.selectedInstance;

		if (editor) {
			if (editor.getBody().innerHTML == windmillTinyMCE._oldContent) {
				return true;
			}
			windmillTinyMCE._oldContent = editor.getBody().innerHTML
			windmillTinyMCE.onchange(editor);
		}
		return true;
	},

	/**
	 * _oldContent
	 *
	 * Variable holding the last content before windmillTinyMCE.event was called
	 *
	 * @since Mon Jul 9 2007
	 * @access protected
	 * @var string
	 **/
	_oldContent : ""
}

