-/* Import theme specific language pack */\r
-tinyMCE.importThemeLanguagePack('advanced');\r
-\r
-var TinyMCE_AdvancedTheme = {\r
- // Private theme fields\r
- _defColors : "000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",\r
- _autoImportCSSClasses : true,\r
- _resizer : {},\r
- _buttons : [\r
- // Control id, button img, button title, command, user_interface, value\r
- ['bold', '{$lang_bold_img}', 'lang_bold_desc', 'Bold'],\r
- ['italic', '{$lang_italic_img}', 'lang_italic_desc', 'Italic'],\r
- ['underline', '{$lang_underline_img}', 'lang_underline_desc', 'Underline'],\r
- ['strikethrough', 'strikethrough.gif', 'lang_striketrough_desc', 'Strikethrough'],\r
- ['justifyleft', 'justifyleft.gif', 'lang_justifyleft_desc', 'JustifyLeft'],\r
- ['justifycenter', 'justifycenter.gif', 'lang_justifycenter_desc', 'JustifyCenter'],\r
- ['justifyright', 'justifyright.gif', 'lang_justifyright_desc', 'JustifyRight'],\r
- ['justifyfull', 'justifyfull.gif', 'lang_justifyfull_desc', 'JustifyFull'],\r
- ['bullist', 'bullist.gif', 'lang_bullist_desc', 'InsertUnorderedList'],\r
- ['numlist', 'numlist.gif', 'lang_numlist_desc', 'InsertOrderedList'],\r
- ['outdent', 'outdent.gif', 'lang_outdent_desc', 'Outdent'],\r
- ['indent', 'indent.gif', 'lang_indent_desc', 'Indent'],\r
- ['cut', 'cut.gif', 'lang_cut_desc', 'Cut'],\r
- ['copy', 'copy.gif', 'lang_copy_desc', 'Copy'],\r
- ['paste', 'paste.gif', 'lang_paste_desc', 'Paste'],\r
- ['undo', 'undo.gif', 'lang_undo_desc', 'Undo'],\r
- ['redo', 'redo.gif', 'lang_redo_desc', 'Redo'],\r
- ['link', 'link.gif', 'lang_link_desc', 'mceLink', true],\r
- ['unlink', 'unlink.gif', 'lang_unlink_desc', 'unlink'],\r
- ['image', 'image.gif', 'lang_image_desc', 'mceImage', true],\r
- ['cleanup', 'cleanup.gif', 'lang_cleanup_desc', 'mceCleanup'],\r
- ['help', 'help.gif', 'lang_help_desc', 'mceHelp'],\r
- ['code', 'code.gif', 'lang_theme_code_desc', 'mceCodeEditor'],\r
- ['hr', 'hr.gif', 'lang_theme_hr_desc', 'inserthorizontalrule'],\r
- ['removeformat', 'removeformat.gif', 'lang_theme_removeformat_desc', 'removeformat'],\r
- ['sub', 'sub.gif', 'lang_theme_sub_desc', 'subscript'],\r
- ['sup', 'sup.gif', 'lang_theme_sup_desc', 'superscript'],\r
- ['forecolor', 'forecolor.gif', 'lang_theme_forecolor_desc', 'forecolor', true],\r
- ['forecolorpicker', 'forecolor.gif', 'lang_theme_forecolor_desc', 'forecolorpicker', true],\r
- ['backcolor', 'backcolor.gif', 'lang_theme_backcolor_desc', 'HiliteColor', true],\r
- ['backcolorpicker', 'backcolor.gif', 'lang_theme_backcolor_desc', 'backcolorpicker', true],\r
- ['charmap', 'charmap.gif', 'lang_theme_charmap_desc', 'mceCharMap'],\r
- ['visualaid', 'visualaid.gif', 'lang_theme_visualaid_desc', 'mceToggleVisualAid'],\r
- ['anchor', 'anchor.gif', 'lang_theme_anchor_desc', 'mceInsertAnchor'],\r
- ['newdocument', 'newdocument.gif', 'lang_newdocument_desc', 'mceNewDocument']\r
- ],\r
-\r
- _buttonMap : 'anchor,backcolor,bold,bullist,charmap,cleanup,code,copy,cut,forecolor,help,hr,image,indent,italic,justifycenter,justifyfull,justifyleft,justifyright,link,newdocument,numlist,outdent,paste,redo,removeformat,strikethrough,sub,sup,underline,undo,unlink,visualaid,advhr,ltr,rtl,emotions,flash,fullpage,fullscreen,iespell,insertdate,inserttime,pastetext,pasteword,selectall,preview,print,save,replace,search,table,cell_props,delete_col,delete_row,col_after,col_before,row_after,row_before,merge_cells,row_props,split_cells,delete_table',\r
-\r
- /**\r
- * Returns HTML code for the specificed control.\r
- */\r
- getControlHTML : function(button_name) {\r
- var i, x, but;\r
-\r
- // Lookup button in button list\r
- for (i=0; i<TinyMCE_AdvancedTheme._buttons.length; i++) {\r
- but = TinyMCE_AdvancedTheme._buttons[i];\r
-\r
- if (but[0] == button_name && (button_name == "forecolor" || button_name == "backcolor"))\r
- return tinyMCE.getMenuButtonHTML(but[0], but[2], '{$themeurl}/images/' + but[1], but[3] + "Menu", but[3], (but.length > 4 ? but[4] : false), (but.length > 5 ? but[5] : null));\r
-\r
- if (but[0] == button_name)\r
- return tinyMCE.getButtonHTML(but[0], but[2], '{$themeurl}/images/' + but[1], but[3], (but.length > 4 ? but[4] : false), (but.length > 5 ? but[5] : null));\r
- }\r
-\r
- // Custom controlls other than buttons\r
- switch (button_name) {\r
- case "formatselect":\r
- var html = '<select id="{$editor_id}_formatSelect" name="{$editor_id}_formatSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FormatBlock\',false,this.options[this.selectedIndex].value);" class="mceSelectList">';\r
- var formats = tinyMCE.getParam("theme_advanced_blockformats", "p,address,pre,h1,h2,h3,h4,h5,h6", true).split(',');\r
- var lookup = [\r
- ['p', '{$lang_theme_paragraph}'],\r
- ['address', '{$lang_theme_address}'],\r
- ['pre', '{$lang_theme_pre}'],\r
- ['h1', '{$lang_theme_h1}'],\r
- ['h2', '{$lang_theme_h2}'],\r
- ['h3', '{$lang_theme_h3}'],\r
- ['h4', '{$lang_theme_h4}'],\r
- ['h5', '{$lang_theme_h5}'],\r
- ['h6', '{$lang_theme_h6}'],\r
- ['div', '{$lang_theme_div}'],\r
- ['blockquote', '{$lang_theme_blockquote}'],\r
- ['code', '{$lang_theme_code}'],\r
- ['dt', '{$lang_theme_dt}'],\r
- ['dd', '{$lang_theme_dd}'],\r
- ['samp', '{$lang_theme_samp}']\r
- ];\r
-\r
- html += '<option value="">{$lang_theme_block}</option>';\r
-\r
- // Build format select\r
- for (var i=0; i<formats.length; i++) {\r
- for (var x=0; x<lookup.length; x++) {\r
- if (formats[i] == lookup[x][0])\r
- html += '<option value="<' + lookup[x][0] + '>">' + lookup[x][1] + '</option>';\r
- }\r
- }\r
-\r
- html += '</select>';\r
-\r
- return html;\r
-\r
- case "styleselect":\r
- return '<select id="{$editor_id}_styleSelect" onmousedown="tinyMCE.themes.advanced._setupCSSClasses(\'{$editor_id}\');" name="{$editor_id}_styleSelect" onfocus="tinyMCE.addSelectAccessibility(event,this,window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSetCSSClass\',false,this.options[this.selectedIndex].value);" class="mceSelectList">{$style_select_options}</select>';\r
-\r
- case "fontselect":\r
- var fontHTML = '<select id="{$editor_id}_fontNameSelect" name="{$editor_id}_fontNameSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontName\',false,this.options[this.selectedIndex].value);" class="mceSelectList"><option value="">{$lang_theme_fontdefault}</option>';\r
- var iFonts = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';\r
- var nFonts = 'Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sand;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats';\r
- var fonts = tinyMCE.getParam("theme_advanced_fonts", nFonts).split(';');\r
- for (i=0; i<fonts.length; i++) {\r
- if (fonts[i] != '') {\r
- var parts = fonts[i].split('=');\r
- fontHTML += '<option value="' + parts[1] + '">' + parts[0] + '</option>';\r
+(function(tinymce) {\r
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;\r
+\r
+ // Tell it to load theme specific language pack(s)\r
+ tinymce.ThemeManager.requireLangPack('advanced');\r
+\r
+ tinymce.create('tinymce.themes.AdvancedTheme', {\r
+ sizes : [8, 10, 12, 14, 18, 24, 36],\r
+\r
+ // Control name lookup, format: title, command\r
+ controls : {\r
+ bold : ['bold_desc', 'Bold'],\r
+ italic : ['italic_desc', 'Italic'],\r
+ underline : ['underline_desc', 'Underline'],\r
+ strikethrough : ['striketrough_desc', 'Strikethrough'],\r
+ justifyleft : ['justifyleft_desc', 'JustifyLeft'],\r
+ justifycenter : ['justifycenter_desc', 'JustifyCenter'],\r
+ justifyright : ['justifyright_desc', 'JustifyRight'],\r
+ justifyfull : ['justifyfull_desc', 'JustifyFull'],\r
+ bullist : ['bullist_desc', 'InsertUnorderedList'],\r
+ numlist : ['numlist_desc', 'InsertOrderedList'],\r
+ outdent : ['outdent_desc', 'Outdent'],\r
+ indent : ['indent_desc', 'Indent'],\r
+ cut : ['cut_desc', 'Cut'],\r
+ copy : ['copy_desc', 'Copy'],\r
+ paste : ['paste_desc', 'Paste'],\r
+ undo : ['undo_desc', 'Undo'],\r
+ redo : ['redo_desc', 'Redo'],\r
+ link : ['link_desc', 'mceLink'],\r
+ unlink : ['unlink_desc', 'unlink'],\r
+ image : ['image_desc', 'mceImage'],\r
+ cleanup : ['cleanup_desc', 'mceCleanup'],\r
+ help : ['help_desc', 'mceHelp'],\r
+ code : ['code_desc', 'mceCodeEditor'],\r
+ hr : ['hr_desc', 'InsertHorizontalRule'],\r
+ removeformat : ['removeformat_desc', 'RemoveFormat'],\r
+ sub : ['sub_desc', 'subscript'],\r
+ sup : ['sup_desc', 'superscript'],\r
+ forecolor : ['forecolor_desc', 'ForeColor'],\r
+ forecolorpicker : ['forecolor_desc', 'mceForeColor'],\r
+ backcolor : ['backcolor_desc', 'HiliteColor'],\r
+ backcolorpicker : ['backcolor_desc', 'mceBackColor'],\r
+ charmap : ['charmap_desc', 'mceCharMap'],\r
+ visualaid : ['visualaid_desc', 'mceToggleVisualAid'],\r
+ anchor : ['anchor_desc', 'mceInsertAnchor'],\r
+ newdocument : ['newdocument_desc', 'mceNewDocument'],\r
+ blockquote : ['blockquote_desc', 'mceBlockQuote']\r
+ },\r
+\r
+ stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],\r
+\r
+ init : function(ed, url) {\r
+ var t = this, s, v, o;\r
+ \r
+ t.editor = ed;\r
+ t.url = url;\r
+ t.onResolveName = new tinymce.util.Dispatcher(this);\r
+\r
+ ed.forcedHighContrastMode = ed.settings.detect_highcontrast && t._isHighContrast();\r
+ ed.settings.skin = ed.forcedHighContrastMode ? 'highcontrast' : ed.settings.skin;\r
+\r
+ // Default settings\r
+ t.settings = s = extend({\r
+ theme_advanced_path : true,\r
+ theme_advanced_toolbar_location : 'bottom',\r
+ theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",\r
+ theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",\r
+ theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",\r
+ theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",\r
+ theme_advanced_toolbar_align : "center",\r
+ theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",\r
+ theme_advanced_more_colors : 1,\r
+ theme_advanced_row_height : 23,\r
+ theme_advanced_resize_horizontal : 1,\r
+ theme_advanced_resizing_use_cookie : 1,\r
+ theme_advanced_font_sizes : "1,2,3,4,5,6,7",\r
+ theme_advanced_font_selector : "span",\r
+ theme_advanced_show_current_color: 0,\r
+ readonly : ed.settings.readonly\r
+ }, ed.settings);\r
+\r
+ // Setup default font_size_style_values\r
+ if (!s.font_size_style_values)\r
+ s.font_size_style_values = "8pt,10pt,12pt,14pt,18pt,24pt,36pt";\r
+\r
+ if (tinymce.is(s.theme_advanced_font_sizes, 'string')) {\r
+ s.font_size_style_values = tinymce.explode(s.font_size_style_values);\r
+ s.font_size_classes = tinymce.explode(s.font_size_classes || '');\r
+\r
+ // Parse string value\r
+ o = {};\r
+ ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes;\r
+ each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) {\r
+ var cl;\r
+\r
+ if (k == v && v >= 1 && v <= 7) {\r
+ k = v + ' (' + t.sizes[v - 1] + 'pt)';\r
+ cl = s.font_size_classes[v - 1];\r
+ v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt');\r