1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
function nullConverter(url) {
	return url;
}

/**
 * TinyMCE initialisation template.
 * $ variables are replaced by string search & replace.  It's pretty crude.
 */
// Prevents "Error: 'tinyMCE' is undefined" error in IE7 on Newsletter Recipient import.
if((typeof tinyMCE != 'undefined')) {
	tinyMCE.init({
		mode : "none",
		language: "$Lang",
		width: "100%",
		height: "450",
		auto_resize : false,
		max_height: "50",
		theme : "advanced",
		content_css : "cms/css/editor.css, $ContentCSS",
		body_class : 'typography',
		document_base_url: "$BaseURL",
		urlconverter_callback : "nullConverter",
		
		setupcontent_callback : "sapphiremce_setupcontent",
		cleanup_callback : "sapphiremce_cleanup",
		
		theme_advanced_layout_manager: "SimpleLayout",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",
		theme_advanced_toolbar_parent : "right",
		plugins : "media,contextmenu,table,emotions,paste,../../tinymce_ssbuttons,../../tinymce_advcode,spellchecker,fullscreen",	
		blockquote_clear_tag : "p",
		table_inline_editing : true,
		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,forecolor,separator,bullist,numlist,outdent,indent,blockquote,hr,charmap,separator,fullscreen",
		theme_advanced_buttons2 : "undo,redo,separator,cut,copy,paste,pastetext,pasteword,spellchecker,separator,ssimage,sslink,unlink,anchor,separator,advcode,search,replace,selectall,visualaid,separator,tablecontrols",
		theme_advanced_buttons3 : "",
		spellchecker_languages : "$SpellcheckLangs",
		
		template_templates : [
		    { title : "Three column", src : "assets/snippet.html", description : "A simple 3 column layout"},
		],

		safari_warning : false,
		relative_urls : true,
		verify_html : true,
		use_native_selects : true // fancy selects are bug as of SS 2.3.0
	});
}

Behaviour.register({
    'textarea.htmleditor' : {
        initialize : function() {
            tinyMCE.execCommand("mceAddControl", true, this.id);
            this.isChanged = function() {
                return tinyMCE.getInstanceById(this.id).isDirty();
            }
            this.resetChanged = function() {
                inst = tinyMCE.getInstanceById(this.id);
                inst.startContent = tinymce.trim(inst.getContent({format : 'raw', no_events : 1}));
            }
        }
    }
})