/* FORM ROWS */
.form-row { overflow:hidden; padding:8px 12px; font-size:11px; border-bottom:1px solid #eee; }
+.form-row div {overflow: auto;}
.form-row img { vertical-align:middle; }
.form-row input[type=text] { vertical-align:middle; width: 300px; }
.form-row textarea { width: 300px; height: 180px; }
->append($help_text);
} else {
return $this->errors($errors) .
- Tag::div(array('class' => 'form-row'),
- Tag::div()
- ->raw($boundField->renderLabel())
- ->raw(' ')
+ Tag::div(array('class' => 'form-row'))
+ ->raw($boundField->renderLabel())
+ ->append(Tag::div()
->raw($boundField->renderWidget())
->append($help_text));
}
+++ /dev/null
-tinyMCE.addI18n({en:{\r
-common:{\r
-edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",\r
-apply:"Apply",\r
-insert:"Insert",\r
-update:"Update",\r
-cancel:"Cancel",\r
-close:"Close",\r
-browse:"Browse",\r
-class_name:"Class",\r
-not_set:"-- Not set --",\r
-clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",\r
-clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",\r
-popup_blocked:"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.",\r
-invalid_data:"Error: Invalid values entered, these are marked in red.",\r
-more_colors:"More colors"\r
-},\r
-contextmenu:{\r
-align:"Alignment",\r
-left:"Left",\r
-center:"Center",\r
-right:"Right",\r
-full:"Full"\r
-},\r
-insertdatetime:{\r
-date_fmt:"%Y-%m-%d",\r
-time_fmt:"%H:%M:%S",\r
-insertdate_desc:"Insert date",\r
-inserttime_desc:"Insert time",\r
-months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
-months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
-day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
-day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
-},\r
-print:{\r
-print_desc:"Print"\r
-},\r
-preview:{\r
-preview_desc:"Preview"\r
-},\r
-directionality:{\r
-ltr_desc:"Direction left to right",\r
-rtl_desc:"Direction right to left"\r
-},\r
-layer:{\r
-insertlayer_desc:"Insert new layer",\r
-forward_desc:"Move forward",\r
-backward_desc:"Move backward",\r
-absolute_desc:"Toggle absolute positioning",\r
-content:"New layer..."\r
-},\r
-save:{\r
-save_desc:"Save",\r
-cancel_desc:"Cancel all changes"\r
-},\r
-nonbreaking:{\r
-nonbreaking_desc:"Insert non-breaking space character"\r
-},\r
-iespell:{\r
-iespell_desc:"Run spell checking",\r
-download:"ieSpell not detected. Do you want to install it now?"\r
-},\r
-advhr:{\r
-advhr_desc:"Horizontal rule"\r
-},\r
-emotions:{\r
-emotions_desc:"Emotions"\r
-},\r
-searchreplace:{\r
-search_desc:"Find",\r
-replace_desc:"Find/Replace"\r
-},\r
-advimage:{\r
-image_desc:"Insert/edit image"\r
-},\r
-advlink:{\r
-link_desc:"Insert/edit link"\r
-},\r
-xhtmlxtras:{\r
-cite_desc:"Citation",\r
-abbr_desc:"Abbreviation",\r
-acronym_desc:"Acronym",\r
-del_desc:"Deletion",\r
-ins_desc:"Insertion",\r
-attribs_desc:"Insert/Edit Attributes"\r
-},\r
-style:{\r
-desc:"Edit CSS Style"\r
-},\r
-paste:{\r
-paste_text_desc:"Paste as Plain Text",\r
-paste_word_desc:"Paste from Word",\r
-selectall_desc:"Select All"\r
-},\r
-paste_dlg:{\r
-text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
-text_linebreaks:"Keep linebreaks",\r
-word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
-},\r
-table:{\r
-desc:"Inserts a new table",\r
-row_before_desc:"Insert row before",\r
-row_after_desc:"Insert row after",\r
-delete_row_desc:"Delete row",\r
-col_before_desc:"Insert column before",\r
-col_after_desc:"Insert column after",\r
-delete_col_desc:"Remove column",\r
-split_cells_desc:"Split merged table cells",\r
-merge_cells_desc:"Merge table cells",\r
-row_desc:"Table row properties",\r
-cell_desc:"Table cell properties",\r
-props_desc:"Table properties",\r
-paste_row_before_desc:"Paste table row before",\r
-paste_row_after_desc:"Paste table row after",\r
-cut_row_desc:"Cut table row",\r
-copy_row_desc:"Copy table row",\r
-del:"Delete table",\r
-row:"Row",\r
-col:"Column",\r
-cell:"Cell"\r
-},\r
-autosave:{\r
-unload_msg:"The changes you made will be lost if you navigate away from this page."\r
-},\r
-fullscreen:{\r
-desc:"Toggle fullscreen mode"\r
-},\r
-media:{\r
-desc:"Insert / edit embedded media",\r
-edit:"Edit embedded media"\r
-},\r
-fullpage:{\r
-desc:"Document properties"\r
-},\r
-template:{\r
-desc:"Insert predefined template content"\r
-},\r
-visualchars:{\r
-desc:"Visual control characters on/off."\r
-},\r
-spellchecker:{\r
-desc:"Toggle spellchecker",\r
-menu:"Spellchecker settings",\r
-ignore_word:"Ignore word",\r
-ignore_words:"Ignore all",\r
-langs:"Languages",\r
-wait:"Please wait...",\r
-sug:"Suggestions",\r
-no_sug:"No suggestions",\r
-no_mpell:"No misspellings found."\r
-},\r
-pagebreak:{\r
-desc:"Insert page break."\r
-}}});
\ No newline at end of file
+++ /dev/null
-input.radio {border:1px none #000; background:transparent; vertical-align:middle;}\r
-.panel_wrapper div.current {height:80px;}\r
-#width {width:50px; vertical-align:middle;}\r
-#width2 {width:50px; vertical-align:middle;}\r
-#size {width:100px;}\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.AdvancedHRPlugin',{init:function(ed,url){ed.addCommand('mceAdvancedHr',function(){ed.windowManager.open({file:url+'/rule.htm',width:250+parseInt(ed.getLang('advhr.delta_width',0)),height:160+parseInt(ed.getLang('advhr.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('advhr',{title:'advhr.advhr_desc',cmd:'mceAdvancedHr'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('advhr',n.nodeName=='HR');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='HR')ed.selection.select(e);});},getInfo:function(){return{longname:'Advanced HR',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advhr',tinymce.plugins.AdvancedHRPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.AdvancedHRPlugin', {\r
- init : function(ed, url) {\r
- // Register commands\r
- ed.addCommand('mceAdvancedHr', function() {\r
- ed.windowManager.open({\r
- file : url + '/rule.htm',\r
- width : 250 + parseInt(ed.getLang('advhr.delta_width', 0)),\r
- height : 160 + parseInt(ed.getLang('advhr.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('advhr', {\r
- title : 'advhr.advhr_desc',\r
- cmd : 'mceAdvancedHr'\r
- });\r
-\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- cm.setActive('advhr', n.nodeName == 'HR');\r
- });\r
-\r
- ed.onClick.add(function(ed, e) {\r
- e = e.target;\r
-\r
- if (e.nodeName === 'HR')\r
- ed.selection.select(e);\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Advanced HR',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advhr',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('advhr', tinymce.plugins.AdvancedHRPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-var AdvHRDialog = {\r
- init : function(ed) {\r
- var dom = ed.dom, f = document.forms[0], n = ed.selection.getNode(), w;\r
-\r
- w = dom.getAttrib(n, 'width');\r
- f.width.value = w ? parseInt(w) : (dom.getStyle('width') || '');\r
- f.size.value = dom.getAttrib(n, 'size') || parseInt(dom.getStyle('height')) || '';\r
- f.noshade.checked = !!dom.getAttrib(n, 'noshade') || !!dom.getStyle('border-width');\r
- selectByValue(f, 'width2', w.indexOf('%') != -1 ? '%' : 'px');\r
- },\r
-\r
- update : function() {\r
- var ed = tinyMCEPopup.editor, h, f = document.forms[0], st = '';\r
-\r
- h = '<hr';\r
-\r
- if (f.size.value) {\r
- h += ' size="' + f.size.value + '"';\r
- st += ' height:' + f.size.value + 'px;';\r
- }\r
-\r
- if (f.width.value) {\r
- h += ' width="' + f.width.value + (f.width2.value == '%' ? '%' : '') + '"';\r
- st += ' width:' + f.width.value + (f.width2.value == '%' ? '%' : 'px') + ';';\r
- }\r
-\r
- if (f.noshade.checked) {\r
- h += ' noshade="noshade"';\r
- st += ' border-width: 1px; border-style: solid; border-color: #CCCCCC; color: #ffffff;';\r
- }\r
-\r
- if (ed.settings.inline_styles)\r
- h += ' style="' + tinymce.trim(st) + '"';\r
-\r
- h += ' />';\r
-\r
- ed.execCommand("mceInsertContent", false, h);\r
- tinyMCEPopup.close();\r
- }\r
-};\r
-\r
-tinyMCEPopup.requireLangPack();\r
-tinyMCEPopup.onInit.add(AdvHRDialog.init, AdvHRDialog);\r
+++ /dev/null
-tinyMCE.addI18n('en.advhr_dlg',{\r
-width:"Width",\r
-size:"Height",\r
-noshade:"No shadow"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advhr.advhr_desc}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/rule.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <link href="css/advhr.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body>\r
-<form onsubmit="AdvHRDialog.update();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advhr.advhr_desc}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="width">{#advhr_dlg.width}</label></td>\r
- <td nowrap="nowrap">\r
- <input id="width" name="width" type="text" value="" class="mceFocus" />\r
- <select name="width2" id="width2">\r
- <option value="">px</option>\r
- <option value="%">%</option>\r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td><label for="size">{#advhr_dlg.size}</label></td>\r
- <td><select id="size" name="size">\r
- <option value="">Normal</option>\r
- <option value="1">1</option>\r
- <option value="2">2</option>\r
- <option value="3">3</option>\r
- <option value="4">4</option>\r
- <option value="5">5</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td><label for="noshade">{#advhr_dlg.noshade}</label></td>\r
- <td><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>\r
- </tr>\r
- </table>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-#src_list, #over_list, #out_list {width:280px;}\r
-.mceActionPanel {margin-top:7px;}\r
-.alignPreview {border:1px solid #000; width:140px; height:140px; overflow:hidden; padding:5px;}\r
-.checkbox {border:0;}\r
-.panel_wrapper div.current {height:305px;}\r
-#prev {margin:0; border:1px solid #000; width:428px; height:150px; overflow:auto;}\r
-#align, #classlist {width:150px;}\r
-#width, #height {vertical-align:middle; width:50px; text-align:center;}\r
-#vspace, #hspace, #border {vertical-align:middle; width:30px; text-align:center;}\r
-#class_list {width:180px;}\r
-input {width: 280px;}\r
-#constrain, #onmousemovecheck {width:auto;}\r
-#id, #dir, #lang, #usemap, #longdesc {width:200px;}\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.AdvancedImagePlugin',{init:function(ed,url){ed.addCommand('mceAdvImage',function(){if(ed.dom.getAttrib(ed.selection.getNode(),'class').indexOf('mceItem')!=-1)return;ed.windowManager.open({file:url+'/image.htm',width:480+parseInt(ed.getLang('advimage.delta_width',0)),height:385+parseInt(ed.getLang('advimage.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('image',{title:'advimage.image_desc',cmd:'mceAdvImage'});},getInfo:function(){return{longname:'Advanced image',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advimage',tinymce.plugins.AdvancedImagePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 677 2008-03-07 13:52:41Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.AdvancedImagePlugin', {\r
- init : function(ed, url) {\r
- // Register commands\r
- ed.addCommand('mceAdvImage', function() {\r
- // Internal image object like a flash placeholder\r
- if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
- return;\r
-\r
- ed.windowManager.open({\r
- file : url + '/image.htm',\r
- width : 480 + parseInt(ed.getLang('advimage.delta_width', 0)),\r
- height : 385 + parseInt(ed.getLang('advimage.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('image', {\r
- title : 'advimage.image_desc',\r
- cmd : 'mceAdvImage'\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Advanced image',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('advimage', tinymce.plugins.AdvancedImagePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advimage_dlg.dialog_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/validate.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/image.js"></script>\r
- <link href="css/advimage.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="advimage" style="display: none">\r
- <form onsubmit="ImageDialog.insert();return false;" action="#"> \r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advimage_dlg.tab_general}</a></span></li>\r
- <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#advimage_dlg.tab_appearance}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advimage_dlg.tab_advanced}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#advimage_dlg.general}</legend>\r
-\r
- <table class="properties">\r
- <tr>\r
- <td class="column1"><label id="srclabel" for="src">{#advimage_dlg.src}</label></td>\r
- <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">\r
- <tr> \r
- <td><input name="src" type="text" id="src" value="" class="mceFocus" onchange="ImageDialog.showPreviewImage(this.value);" /></td> \r
- <td id="srcbrowsercontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td><label for="src_list">{#advimage_dlg.image_list}</label></td>\r
- <td><select id="src_list" name="src_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;document.getElementById('title').value=this.options[this.selectedIndex].text;ImageDialog.showPreviewImage(this.options[this.selectedIndex].value);"></select></td>\r
- </tr>\r
- <tr> \r
- <td class="column1"><label id="altlabel" for="alt">{#advimage_dlg.alt}</label></td> \r
- <td colspan="2"><input id="alt" name="alt" type="text" value="" /></td> \r
- </tr> \r
- <tr> \r
- <td class="column1"><label id="titlelabel" for="title">{#advimage_dlg.title}</label></td> \r
- <td colspan="2"><input id="title" name="title" type="text" value="" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#advimage_dlg.preview}</legend>\r
- <div id="prev"></div>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="appearance_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advimage_dlg.tab_appearance}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr> \r
- <td class="column1"><label id="alignlabel" for="align">{#advimage_dlg.align}</label></td> \r
- <td><select id="align" name="align" onchange="ImageDialog.updateStyle('align');ImageDialog.changeAppearance();"> \r
- <option value="">{#not_set}</option> \r
- <option value="baseline">{#advimage_dlg.align_baseline}</option>\r
- <option value="top">{#advimage_dlg.align_top}</option>\r
- <option value="middle">{#advimage_dlg.align_middle}</option>\r
- <option value="bottom">{#advimage_dlg.align_bottom}</option>\r
- <option value="text-top">{#advimage_dlg.align_texttop}</option>\r
- <option value="text-bottom">{#advimage_dlg.align_textbottom}</option>\r
- <option value="left">{#advimage_dlg.align_left}</option>\r
- <option value="right">{#advimage_dlg.align_right}</option>\r
- </select> \r
- </td>\r
- <td rowspan="6" valign="top">\r
- <div class="alignPreview">\r
- <img id="alignSampleImg" src="img/sample.gif" alt="{#advimage_dlg.example_img}" />\r
- Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam\r
- nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum\r
- edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam\r
- erat volutpat.\r
- </div>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="widthlabel" for="width">{#advimage_dlg.dimensions}</label></td>\r
- <td nowrap="nowrap">\r
- <input name="width" type="text" id="width" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeHeight();" /> x \r
- <input name="height" type="text" id="height" value="" size="5" maxlength="5" class="size" onchange="ImageDialog.changeWidth();" /> px\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td> </td>\r
- <td><table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>\r
- <td><label id="constrainlabel" for="constrain">{#advimage_dlg.constrain_proportions}</label></td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="vspacelabel" for="vspace">{#advimage_dlg.vspace}</label></td> \r
- <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('vspace');ImageDialog.changeAppearance();" />\r
- </td>\r
- </tr>\r
-\r
- <tr> \r
- <td class="column1"><label id="hspacelabel" for="hspace">{#advimage_dlg.hspace}</label></td> \r
- <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('hspace');ImageDialog.changeAppearance();" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="borderlabel" for="border">{#advimage_dlg.border}</label></td> \r
- <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" class="number" onchange="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" onblur="ImageDialog.updateStyle('border');ImageDialog.changeAppearance();" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label for="class_list">{#class_name}</label></td>\r
- <td colspan="2"><select id="class_list" name="class_list" class="mceEditableSelect"></select></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="stylelabel" for="style">{#advimage_dlg.style}</label></td> \r
- <td colspan="2"><input id="style" name="style" type="text" value="" onchange="ImageDialog.changeAppearance();" /></td> \r
- </tr>\r
-\r
- <!-- <tr>\r
- <td class="column1"><label id="classeslabel" for="classes">{#advimage_dlg.classes}</label></td> \r
- <td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td> \r
- </tr> -->\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advimage_dlg.swap_image}</legend>\r
-\r
- <input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="ImageDialog.setSwapImage(this.checked);" />\r
- <label id="onmousemovechecklabel" for="onmousemovecheck">{#advimage_dlg.alt_image}</label>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
- <tr>\r
- <td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{#advimage_dlg.mouseover}</label></td> \r
- <td><table border="0" cellspacing="0" cellpadding="0"> \r
- <tr> \r
- <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td> \r
- <td id="onmouseoversrccontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td><label for="over_list">{#advimage_dlg.image_list}</label></td>\r
- <td><select id="over_list" name="over_list" onchange="document.getElementById('onmouseoversrc').value=this.options[this.selectedIndex].value;"></select></td>\r
- </tr>\r
- <tr> \r
- <td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{#advimage_dlg.mouseout}</label></td> \r
- <td class="column2"><table border="0" cellspacing="0" cellpadding="0"> \r
- <tr> \r
- <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td> \r
- <td id="onmouseoutsrccontainer"> </td>\r
- </tr> \r
- </table></td> \r
- </tr>\r
- <tr>\r
- <td><label for="out_list">{#advimage_dlg.image_list}</label></td>\r
- <td><select id="out_list" name="out_list" onchange="document.getElementById('onmouseoutsrc').value=this.options[this.selectedIndex].value;"></select></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#advimage_dlg.misc}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label id="idlabel" for="id">{#advimage_dlg.id}</label></td> \r
- <td><input id="id" name="id" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="dirlabel" for="dir">{#advimage_dlg.langdir}</label></td> \r
- <td>\r
- <select id="dir" name="dir" onchange="ImageDialog.changeAppearance();"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#advimage_dlg.ltr}</option> \r
- <option value="rtl">{#advimage_dlg.rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="langlabel" for="lang">{#advimage_dlg.langcode}</label></td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" />\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="usemaplabel" for="usemap">{#advimage_dlg.map}</label></td> \r
- <td>\r
- <input id="usemap" name="usemap" type="text" value="" />\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="longdesclabel" for="longdesc">{#advimage_dlg.long_desc}</label></td>\r
- <td><table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input id="longdesc" name="longdesc" type="text" value="" /></td>\r
- <td id="longdesccontainer"> </td>\r
- </tr>\r
- </table></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body> \r
-</html> \r
+++ /dev/null
-var ImageDialog = {\r
- preInit : function() {\r
- var url;\r
-\r
- tinyMCEPopup.requireLangPack();\r
-\r
- if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
- },\r
-\r
- init : function(ed) {\r
- var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, dom = ed.dom, n = ed.selection.getNode();\r
-\r
- tinyMCEPopup.resizeToInnerSize();\r
- this.fillClassList('class_list');\r
- this.fillFileList('src_list', 'tinyMCEImageList');\r
- this.fillFileList('over_list', 'tinyMCEImageList');\r
- this.fillFileList('out_list', 'tinyMCEImageList');\r
- TinyMCE_EditableSelects.init();\r
-\r
- if (n.nodeName == 'IMG') {\r
- nl.src.value = dom.getAttrib(n, 'src');\r
- nl.width.value = dom.getAttrib(n, 'width');\r
- nl.height.value = dom.getAttrib(n, 'height');\r
- nl.alt.value = dom.getAttrib(n, 'alt');\r
- nl.title.value = dom.getAttrib(n, 'title');\r
- nl.vspace.value = this.getAttrib(n, 'vspace');\r
- nl.hspace.value = this.getAttrib(n, 'hspace');\r
- nl.border.value = this.getAttrib(n, 'border');\r
- selectByValue(f, 'align', this.getAttrib(n, 'align'));\r
- selectByValue(f, 'class_list', dom.getAttrib(n, 'class'), true, true);\r
- nl.style.value = dom.getAttrib(n, 'style');\r
- nl.id.value = dom.getAttrib(n, 'id');\r
- nl.dir.value = dom.getAttrib(n, 'dir');\r
- nl.lang.value = dom.getAttrib(n, 'lang');\r
- nl.usemap.value = dom.getAttrib(n, 'usemap');\r
- nl.longdesc.value = dom.getAttrib(n, 'longdesc');\r
- nl.insert.value = ed.getLang('update');\r
-\r
- if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseover')))\r
- nl.onmouseoversrc.value = dom.getAttrib(n, 'onmouseover').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
-\r
- if (/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/.test(dom.getAttrib(n, 'onmouseout')))\r
- nl.onmouseoutsrc.value = dom.getAttrib(n, 'onmouseout').replace(/^\s*this.src\s*=\s*\'([^\']+)\';?\s*$/, '$1');\r
-\r
- if (ed.settings.inline_styles) {\r
- // Move attribs to styles\r
- if (dom.getAttrib(n, 'align'))\r
- this.updateStyle('align');\r
-\r
- if (dom.getAttrib(n, 'hspace'))\r
- this.updateStyle('hspace');\r
-\r
- if (dom.getAttrib(n, 'border'))\r
- this.updateStyle('border');\r
-\r
- if (dom.getAttrib(n, 'vspace'))\r
- this.updateStyle('vspace');\r
- }\r
- }\r
-\r
- // Setup browse button\r
- document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
- if (isVisible('srcbrowser'))\r
- document.getElementById('src').style.width = '260px';\r
-\r
- // Setup browse button\r
- document.getElementById('onmouseoversrccontainer').innerHTML = getBrowserHTML('overbrowser','onmouseoversrc','image','theme_advanced_image');\r
- if (isVisible('overbrowser'))\r
- document.getElementById('onmouseoversrc').style.width = '260px';\r
-\r
- // Setup browse button\r
- document.getElementById('onmouseoutsrccontainer').innerHTML = getBrowserHTML('outbrowser','onmouseoutsrc','image','theme_advanced_image');\r
- if (isVisible('outbrowser'))\r
- document.getElementById('onmouseoutsrc').style.width = '260px';\r
-\r
- // If option enabled default contrain proportions to checked\r
- if (ed.getParam("advimage_constrain_proportions", true))\r
- f.constrain.checked = true;\r
-\r
- // Check swap image if valid data\r
- if (nl.onmouseoversrc.value || nl.onmouseoutsrc.value)\r
- this.setSwapImage(true);\r
- else\r
- this.setSwapImage(false);\r
-\r
- this.changeAppearance();\r
- this.showPreviewImage(nl.src.value, 1);\r
- },\r
-\r
- insert : function(file, title) {\r
- var ed = tinyMCEPopup.editor, t = this, f = document.forms[0];\r
-\r
- if (f.src.value === '') {\r
- if (ed.selection.getNode().nodeName == 'IMG') {\r
- ed.dom.remove(ed.selection.getNode());\r
- ed.execCommand('mceRepaint');\r
- }\r
-\r
- tinyMCEPopup.close();\r
- return;\r
- }\r
-\r
- if (tinyMCEPopup.getParam("accessibility_warnings", 1)) {\r
- if (!f.alt.value) {\r
- tinyMCEPopup.confirm(tinyMCEPopup.getLang('advimage_dlg.missing_alt'), function(s) {\r
- if (s)\r
- t.insertAndClose();\r
- });\r
-\r
- return;\r
- }\r
- }\r
-\r
- t.insertAndClose();\r
- },\r
-\r
- insertAndClose : function() {\r
- var ed = tinyMCEPopup.editor, f = document.forms[0], nl = f.elements, v, args = {}, el;\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- // Fixes crash in Safari\r
- if (tinymce.isWebKit)\r
- ed.getWin().focus();\r
-\r
- if (!ed.settings.inline_styles) {\r
- args = {\r
- vspace : nl.vspace.value,\r
- hspace : nl.hspace.value,\r
- border : nl.border.value,\r
- align : getSelectValue(f, 'align')\r
- };\r
- } else {\r
- // Remove deprecated values\r
- args = {\r
- vspace : '',\r
- hspace : '',\r
- border : '',\r
- align : ''\r
- };\r
- }\r
-\r
- tinymce.extend(args, {\r
- src : nl.src.value,\r
- width : nl.width.value,\r
- height : nl.height.value,\r
- alt : nl.alt.value,\r
- title : nl.title.value,\r
- 'class' : getSelectValue(f, 'class_list'),\r
- style : nl.style.value,\r
- id : nl.id.value,\r
- dir : nl.dir.value,\r
- lang : nl.lang.value,\r
- usemap : nl.usemap.value,\r
- longdesc : nl.longdesc.value\r
- });\r
-\r
- args.onmouseover = args.onmouseout = '';\r
-\r
- if (f.onmousemovecheck.checked) {\r
- if (nl.onmouseoversrc.value)\r
- args.onmouseover = "this.src='" + nl.onmouseoversrc.value + "';";\r
-\r
- if (nl.onmouseoutsrc.value)\r
- args.onmouseout = "this.src='" + nl.onmouseoutsrc.value + "';";\r
- }\r
-\r
- el = ed.selection.getNode();\r
-\r
- if (el && el.nodeName == 'IMG') {\r
- ed.dom.setAttribs(el, args);\r
- } else {\r
- ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});\r
- ed.dom.setAttribs('__mce_tmp', args);\r
- ed.dom.setAttrib('__mce_tmp', 'id', '');\r
- ed.undoManager.add();\r
- }\r
-\r
- tinyMCEPopup.close();\r
- },\r
-\r
- getAttrib : function(e, at) {\r
- var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
-\r
- if (ed.settings.inline_styles) {\r
- switch (at) {\r
- case 'align':\r
- if (v = dom.getStyle(e, 'float'))\r
- return v;\r
-\r
- if (v = dom.getStyle(e, 'vertical-align'))\r
- return v;\r
-\r
- break;\r
-\r
- case 'hspace':\r
- v = dom.getStyle(e, 'margin-left')\r
- v2 = dom.getStyle(e, 'margin-right');\r
-\r
- if (v && v == v2)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
-\r
- case 'vspace':\r
- v = dom.getStyle(e, 'margin-top')\r
- v2 = dom.getStyle(e, 'margin-bottom');\r
- if (v && v == v2)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
-\r
- case 'border':\r
- v = 0;\r
-\r
- tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
- sv = dom.getStyle(e, 'border-' + sv + '-width');\r
-\r
- // False or not the same as prev\r
- if (!sv || (sv != v && v !== 0)) {\r
- v = 0;\r
- return false;\r
- }\r
-\r
- if (sv)\r
- v = sv;\r
- });\r
-\r
- if (v)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
- }\r
- }\r
-\r
- if (v = dom.getAttrib(e, at))\r
- return v;\r
-\r
- return '';\r
- },\r
-\r
- setSwapImage : function(st) {\r
- var f = document.forms[0];\r
-\r
- f.onmousemovecheck.checked = st;\r
- setBrowserDisabled('overbrowser', !st);\r
- setBrowserDisabled('outbrowser', !st);\r
-\r
- if (f.over_list)\r
- f.over_list.disabled = !st;\r
-\r
- if (f.out_list)\r
- f.out_list.disabled = !st;\r
-\r
- f.onmouseoversrc.disabled = !st;\r
- f.onmouseoutsrc.disabled = !st;\r
- },\r
-\r
- fillClassList : function(id) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
- if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
- cl = [];\r
-\r
- tinymce.each(v.split(';'), function(v) {\r
- var p = v.split('=');\r
-\r
- cl.push({'title' : p[0], 'class' : p[1]});\r
- });\r
- } else\r
- cl = tinyMCEPopup.editor.dom.getClasses();\r
-\r
- if (cl.length > 0) {\r
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
-\r
- tinymce.each(cl, function(o) {\r
- lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
- });\r
- } else\r
- dom.remove(dom.getParent(id, 'tr'));\r
- },\r
-\r
- fillFileList : function(id, l) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
- l = window[l];\r
-\r
- if (l && l.length > 0) {\r
- lst.options[lst.options.length] = new Option('', '');\r
-\r
- tinymce.each(l, function(o) {\r
- lst.options[lst.options.length] = new Option(o[0], o[1]);\r
- });\r
- } else\r
- dom.remove(dom.getParent(id, 'tr'));\r
- },\r
-\r
- resetImageData : function() {\r
- var f = document.forms[0];\r
-\r
- f.elements.width.value = f.elements.height.value = '';\r
- },\r
-\r
- updateImageData : function(img, st) {\r
- var f = document.forms[0];\r
-\r
- if (!st) {\r
- f.elements.width.value = img.width;\r
- f.elements.height.value = img.height;\r
- }\r
-\r
- this.preloadImg = img;\r
- },\r
-\r
- changeAppearance : function() {\r
- var ed = tinyMCEPopup.editor, f = document.forms[0], img = document.getElementById('alignSampleImg');\r
-\r
- if (img) {\r
- if (ed.getParam('inline_styles')) {\r
- ed.dom.setAttrib(img, 'style', f.style.value);\r
- } else {\r
- img.align = f.align.value;\r
- img.border = f.border.value;\r
- img.hspace = f.hspace.value;\r
- img.vspace = f.vspace.value;\r
- }\r
- }\r
- },\r
-\r
- changeHeight : function() {\r
- var f = document.forms[0], tp, t = this;\r
-\r
- if (!f.constrain.checked || !t.preloadImg) {\r
- return;\r
- }\r
-\r
- if (f.width.value == "" || f.height.value == "")\r
- return;\r
-\r
- tp = (parseInt(f.width.value) / parseInt(t.preloadImg.width)) * t.preloadImg.height;\r
- f.height.value = tp.toFixed(0);\r
- },\r
-\r
- changeWidth : function() {\r
- var f = document.forms[0], tp, t = this;\r
-\r
- if (!f.constrain.checked || !t.preloadImg) {\r
- return;\r
- }\r
-\r
- if (f.width.value == "" || f.height.value == "")\r
- return;\r
-\r
- tp = (parseInt(f.height.value) / parseInt(t.preloadImg.height)) * t.preloadImg.width;\r
- f.width.value = tp.toFixed(0);\r
- },\r
-\r
- updateStyle : function(ty) {\r
- var dom = tinyMCEPopup.dom, st, v, f = document.forms[0], img = dom.create('img', {style : dom.get('style').value});\r
-\r
- if (tinyMCEPopup.editor.settings.inline_styles) {\r
- // Handle align\r
- if (ty == 'align') {\r
- dom.setStyle(img, 'float', '');\r
- dom.setStyle(img, 'vertical-align', '');\r
-\r
- v = getSelectValue(f, 'align');\r
- if (v) {\r
- if (v == 'left' || v == 'right')\r
- dom.setStyle(img, 'float', v);\r
- else\r
- img.style.verticalAlign = v;\r
- }\r
- }\r
-\r
- // Handle border\r
- if (ty == 'border') {\r
- dom.setStyle(img, 'border', '');\r
-\r
- v = f.border.value;\r
- if (v || v == '0') {\r
- if (v == '0')\r
- img.style.border = '0';\r
- else\r
- img.style.border = v + 'px solid black';\r
- }\r
- }\r
-\r
- // Handle hspace\r
- if (ty == 'hspace') {\r
- dom.setStyle(img, 'marginLeft', '');\r
- dom.setStyle(img, 'marginRight', '');\r
-\r
- v = f.hspace.value;\r
- if (v) {\r
- img.style.marginLeft = v + 'px';\r
- img.style.marginRight = v + 'px';\r
- }\r
- }\r
-\r
- // Handle vspace\r
- if (ty == 'vspace') {\r
- dom.setStyle(img, 'marginTop', '');\r
- dom.setStyle(img, 'marginBottom', '');\r
-\r
- v = f.vspace.value;\r
- if (v) {\r
- img.style.marginTop = v + 'px';\r
- img.style.marginBottom = v + 'px';\r
- }\r
- }\r
-\r
- // Merge\r
- dom.get('style').value = dom.serializeStyle(dom.parseStyle(img.style.cssText));\r
- }\r
- },\r
-\r
- changeMouseMove : function() {\r
- },\r
-\r
- showPreviewImage : function(u, st) {\r
- if (!u) {\r
- tinyMCEPopup.dom.setHTML('prev', '');\r
- return;\r
- }\r
-\r
- if (!st && tinyMCEPopup.getParam("advimage_update_dimensions_onchange", true))\r
- this.resetImageData();\r
-\r
- u = tinyMCEPopup.editor.documentBaseURI.toAbsolute(u);\r
-\r
- if (!st)\r
- tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this);" onerror="ImageDialog.resetImageData();" />');\r
- else\r
- tinyMCEPopup.dom.setHTML('prev', '<img id="previewImg" src="' + u + '" border="0" onload="ImageDialog.updateImageData(this, 1);" />');\r
- }\r
-};\r
-\r
-ImageDialog.preInit();\r
-tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
+++ /dev/null
-tinyMCE.addI18n('en.advimage_dlg',{\r
-tab_general:"General",\r
-tab_appearance:"Appearance",\r
-tab_advanced:"Advanced",\r
-general:"General",\r
-title:"Title",\r
-preview:"Preview",\r
-constrain_proportions:"Constrain proportions",\r
-langdir:"Language direction",\r
-langcode:"Language code",\r
-long_desc:"Long description link",\r
-style:"Style",\r
-classes:"Classes",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-id:"Id",\r
-map:"Image map",\r
-swap_image:"Swap image",\r
-alt_image:"Alternative image",\r
-mouseover:"for mouse over",\r
-mouseout:"for mouse out",\r
-misc:"Miscellaneous",\r
-example_img:"Appearance preview image",\r
-missing_alt:"Are you sure you want to continue without including an Image Description? Without it the image may not be accessible to some users with disabilities, or to those using a text browser, or browsing the Web with images turned off.",\r
-dialog_title:"Insert/edit image",\r
-src:"Image URL",\r
-alt:"Image description",\r
-list:"Image list",\r
-border:"Border",\r
-dimensions:"Dimensions",\r
-vspace:"Vertical space",\r
-hspace:"Horizontal space",\r
-align:"Alignment",\r
-align_baseline:"Baseline",\r
-align_top:"Top",\r
-align_middle:"Middle",\r
-align_bottom:"Bottom",\r
-align_texttop:"Text top",\r
-align_textbottom:"Text bottom",\r
-align_left:"Left",\r
-align_right:"Right",\r
-image_list:"Image list"\r
-});
\ No newline at end of file
+++ /dev/null
-.mceLinkList, .mceAnchorList, #targetlist {width:280px;}\r
-.mceActionPanel {margin-top:7px;}\r
-.panel_wrapper div.current {height:320px;}\r
-#classlist, #title, #href {width:280px;}\r
-#popupurl, #popupname {width:200px;}\r
-#popupwidth, #popupheight, #popupleft, #popuptop {width:30px;vertical-align:middle;text-align:center;}\r
-#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {width:200px;}\r
-#events_panel input {width:200px;}\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.AdvancedLinkPlugin',{init:function(ed,url){this.editor=ed;ed.addCommand('mceAdvLink',function(){var se=ed.selection;if(se.isCollapsed()&&!ed.dom.getParent(se.getNode(),'A'))return;ed.windowManager.open({file:url+'/link.htm',width:480+parseInt(ed.getLang('advlink.delta_width',0)),height:400+parseInt(ed.getLang('advlink.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('link',{title:'advlink.link_desc',cmd:'mceAdvLink'});ed.addShortcut('ctrl+k','advlink.advlink_desc','mceAdvLink');ed.onNodeChange.add(function(ed,cm,n,co){cm.setDisabled('link',co&&n.nodeName!='A');cm.setActive('link',n.nodeName=='A'&&!n.name);});},getInfo:function(){return{longname:'Advanced link',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('advlink',tinymce.plugins.AdvancedLinkPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 539 2008-01-14 19:08:58Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.AdvancedLinkPlugin', {\r
- init : function(ed, url) {\r
- this.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceAdvLink', function() {\r
- var se = ed.selection;\r
-\r
- // No selection and not in link\r
- if (se.isCollapsed() && !ed.dom.getParent(se.getNode(), 'A'))\r
- return;\r
-\r
- ed.windowManager.open({\r
- file : url + '/link.htm',\r
- width : 480 + parseInt(ed.getLang('advlink.delta_width', 0)),\r
- height : 400 + parseInt(ed.getLang('advlink.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('link', {\r
- title : 'advlink.link_desc',\r
- cmd : 'mceAdvLink'\r
- });\r
-\r
- ed.addShortcut('ctrl+k', 'advlink.advlink_desc', 'mceAdvLink');\r
-\r
- ed.onNodeChange.add(function(ed, cm, n, co) {\r
- cm.setDisabled('link', co && n.nodeName != 'A');\r
- cm.setActive('link', n.nodeName == 'A' && !n.name);\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Advanced link',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advlink',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('advlink', tinymce.plugins.AdvancedLinkPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-/* Functions for the advlink plugin popup */\r
-\r
-tinyMCEPopup.requireLangPack();\r
-\r
-var templates = {\r
- "window.open" : "window.open('${url}','${target}','${options}')"\r
-};\r
-\r
-function preinit() {\r
- var url;\r
-\r
- if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-}\r
-\r
-function changeClass() {\r
- var f = document.forms[0];\r
-\r
- f.classes.value = getSelectValue(f, 'classlist');\r
-}\r
-\r
-function init() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- var formObj = document.forms[0];\r
- var inst = tinyMCEPopup.editor;\r
- var elm = inst.selection.getNode();\r
- var action = "insert";\r
- var html;\r
-\r
- document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','advlink');\r
- document.getElementById('popupurlbrowsercontainer').innerHTML = getBrowserHTML('popupurlbrowser','popupurl','file','advlink');\r
- document.getElementById('linklisthrefcontainer').innerHTML = getLinkListHTML('linklisthref','href');\r
- document.getElementById('anchorlistcontainer').innerHTML = getAnchorListHTML('anchorlist','href');\r
- document.getElementById('targetlistcontainer').innerHTML = getTargetListHTML('targetlist','target');\r
-\r
- // Link list\r
- html = getLinkListHTML('linklisthref','href');\r
- if (html == "")\r
- document.getElementById("linklisthrefrow").style.display = 'none';\r
- else\r
- document.getElementById("linklisthrefcontainer").innerHTML = html;\r
-\r
- // Resize some elements\r
- if (isVisible('hrefbrowser'))\r
- document.getElementById('href').style.width = '260px';\r
-\r
- if (isVisible('popupurlbrowser'))\r
- document.getElementById('popupurl').style.width = '180px';\r
-\r
- elm = inst.dom.getParent(elm, "A");\r
- if (elm != null && elm.nodeName == "A")\r
- action = "update";\r
-\r
- formObj.insert.value = tinyMCEPopup.getLang(action, 'Insert', true); \r
-\r
- setPopupControlsDisabled(true);\r
-\r
- if (action == "update") {\r
- var href = inst.dom.getAttrib(elm, 'href');\r
- var onclick = inst.dom.getAttrib(elm, 'onclick');\r
-\r
- // Setup form data\r
- setFormValue('href', href);\r
- setFormValue('title', inst.dom.getAttrib(elm, 'title'));\r
- setFormValue('id', inst.dom.getAttrib(elm, 'id'));\r
- setFormValue('style', inst.dom.getAttrib(elm, "style"));\r
- setFormValue('rel', inst.dom.getAttrib(elm, 'rel'));\r
- setFormValue('rev', inst.dom.getAttrib(elm, 'rev'));\r
- setFormValue('charset', inst.dom.getAttrib(elm, 'charset'));\r
- setFormValue('hreflang', inst.dom.getAttrib(elm, 'hreflang'));\r
- setFormValue('dir', inst.dom.getAttrib(elm, 'dir'));\r
- setFormValue('lang', inst.dom.getAttrib(elm, 'lang'));\r
- setFormValue('tabindex', inst.dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
- setFormValue('accesskey', inst.dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
- setFormValue('type', inst.dom.getAttrib(elm, 'type'));\r
- setFormValue('onfocus', inst.dom.getAttrib(elm, 'onfocus'));\r
- setFormValue('onblur', inst.dom.getAttrib(elm, 'onblur'));\r
- setFormValue('onclick', onclick);\r
- setFormValue('ondblclick', inst.dom.getAttrib(elm, 'ondblclick'));\r
- setFormValue('onmousedown', inst.dom.getAttrib(elm, 'onmousedown'));\r
- setFormValue('onmouseup', inst.dom.getAttrib(elm, 'onmouseup'));\r
- setFormValue('onmouseover', inst.dom.getAttrib(elm, 'onmouseover'));\r
- setFormValue('onmousemove', inst.dom.getAttrib(elm, 'onmousemove'));\r
- setFormValue('onmouseout', inst.dom.getAttrib(elm, 'onmouseout'));\r
- setFormValue('onkeypress', inst.dom.getAttrib(elm, 'onkeypress'));\r
- setFormValue('onkeydown', inst.dom.getAttrib(elm, 'onkeydown'));\r
- setFormValue('onkeyup', inst.dom.getAttrib(elm, 'onkeyup'));\r
- setFormValue('target', inst.dom.getAttrib(elm, 'target'));\r
- setFormValue('classes', inst.dom.getAttrib(elm, 'class'));\r
-\r
- // Parse onclick data\r
- if (onclick != null && onclick.indexOf('window.open') != -1)\r
- parseWindowOpen(onclick);\r
- else\r
- parseFunction(onclick);\r
-\r
- // Select by the values\r
- selectByValue(formObj, 'dir', inst.dom.getAttrib(elm, 'dir'));\r
- selectByValue(formObj, 'rel', inst.dom.getAttrib(elm, 'rel'));\r
- selectByValue(formObj, 'rev', inst.dom.getAttrib(elm, 'rev'));\r
- selectByValue(formObj, 'linklisthref', href);\r
-\r
- if (href.charAt(0) == '#')\r
- selectByValue(formObj, 'anchorlist', href);\r
-\r
- addClassesToList('classlist', 'advlink_styles');\r
-\r
- selectByValue(formObj, 'classlist', inst.dom.getAttrib(elm, 'class'), true);\r
- selectByValue(formObj, 'targetlist', inst.dom.getAttrib(elm, 'target'), true);\r
- } else\r
- addClassesToList('classlist', 'advlink_styles');\r
-}\r
-\r
-function checkPrefix(n) {\r
- if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_email')))\r
- n.value = 'mailto:' + n.value;\r
-\r
- if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advlink_dlg.is_external')))\r
- n.value = 'http://' + n.value;\r
-}\r
-\r
-function setFormValue(name, value) {\r
- document.forms[0].elements[name].value = value;\r
-}\r
-\r
-function parseWindowOpen(onclick) {\r
- var formObj = document.forms[0];\r
-\r
- // Preprocess center code\r
- if (onclick.indexOf('return false;') != -1) {\r
- formObj.popupreturn.checked = true;\r
- onclick = onclick.replace('return false;', '');\r
- } else\r
- formObj.popupreturn.checked = false;\r
-\r
- var onClickData = parseLink(onclick);\r
-\r
- if (onClickData != null) {\r
- formObj.ispopup.checked = true;\r
- setPopupControlsDisabled(false);\r
-\r
- var onClickWindowOptions = parseOptions(onClickData['options']);\r
- var url = onClickData['url'];\r
-\r
- formObj.popupname.value = onClickData['target'];\r
- formObj.popupurl.value = url;\r
- formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');\r
- formObj.popupheight.value = getOption(onClickWindowOptions, 'height');\r
-\r
- formObj.popupleft.value = getOption(onClickWindowOptions, 'left');\r
- formObj.popuptop.value = getOption(onClickWindowOptions, 'top');\r
-\r
- if (formObj.popupleft.value.indexOf('screen') != -1)\r
- formObj.popupleft.value = "c";\r
-\r
- if (formObj.popuptop.value.indexOf('screen') != -1)\r
- formObj.popuptop.value = "c";\r
-\r
- formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";\r
- formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";\r
- formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";\r
- formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";\r
- formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";\r
- formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";\r
- formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";\r
-\r
- buildOnClick();\r
- }\r
-}\r
-\r
-function parseFunction(onclick) {\r
- var formObj = document.forms[0];\r
- var onClickData = parseLink(onclick);\r
-\r
- // TODO: Add stuff here\r
-}\r
-\r
-function getOption(opts, name) {\r
- return typeof(opts[name]) == "undefined" ? "" : opts[name];\r
-}\r
-\r
-function setPopupControlsDisabled(state) {\r
- var formObj = document.forms[0];\r
-\r
- formObj.popupname.disabled = state;\r
- formObj.popupurl.disabled = state;\r
- formObj.popupwidth.disabled = state;\r
- formObj.popupheight.disabled = state;\r
- formObj.popupleft.disabled = state;\r
- formObj.popuptop.disabled = state;\r
- formObj.popuplocation.disabled = state;\r
- formObj.popupscrollbars.disabled = state;\r
- formObj.popupmenubar.disabled = state;\r
- formObj.popupresizable.disabled = state;\r
- formObj.popuptoolbar.disabled = state;\r
- formObj.popupstatus.disabled = state;\r
- formObj.popupreturn.disabled = state;\r
- formObj.popupdependent.disabled = state;\r
-\r
- setBrowserDisabled('popupurlbrowser', state);\r
-}\r
-\r
-function parseLink(link) {\r
- link = link.replace(new RegExp(''', 'g'), "'");\r
-\r
- var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");\r
-\r
- // Is function name a template function\r
- var template = templates[fnName];\r
- if (template) {\r
- // Build regexp\r
- var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));\r
- var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";\r
- var replaceStr = "";\r
- for (var i=0; i<variableNames.length; i++) {\r
- // Is string value\r
- if (variableNames[i].indexOf("'${") != -1)\r
- regExp += "'(.*)'";\r
- else // Number value\r
- regExp += "([0-9]*)";\r
-\r
- replaceStr += "$" + (i+1);\r
-\r
- // Cleanup variable name\r
- variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");\r
-\r
- if (i != variableNames.length-1) {\r
- regExp += "\\s*,\\s*";\r
- replaceStr += "<delim>";\r
- } else\r
- regExp += ".*";\r
- }\r
-\r
- regExp += "\\);?";\r
-\r
- // Build variable array\r
- var variables = [];\r
- variables["_function"] = fnName;\r
- var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');\r
- for (var i=0; i<variableNames.length; i++)\r
- variables[variableNames[i]] = variableValues[i];\r
-\r
- return variables;\r
- }\r
-\r
- return null;\r
-}\r
-\r
-function parseOptions(opts) {\r
- if (opts == null || opts == "")\r
- return [];\r
-\r
- // Cleanup the options\r
- opts = opts.toLowerCase();\r
- opts = opts.replace(/;/g, ",");\r
- opts = opts.replace(/[^0-9a-z=,]/g, "");\r
-\r
- var optionChunks = opts.split(',');\r
- var options = [];\r
-\r
- for (var i=0; i<optionChunks.length; i++) {\r
- var parts = optionChunks[i].split('=');\r
-\r
- if (parts.length == 2)\r
- options[parts[0]] = parts[1];\r
- }\r
-\r
- return options;\r
-}\r
-\r
-function buildOnClick() {\r
- var formObj = document.forms[0];\r
-\r
- if (!formObj.ispopup.checked) {\r
- formObj.onclick.value = "";\r
- return;\r
- }\r
-\r
- var onclick = "window.open('";\r
- var url = formObj.popupurl.value;\r
-\r
- onclick += url + "','";\r
- onclick += formObj.popupname.value + "','";\r
-\r
- if (formObj.popuplocation.checked)\r
- onclick += "location=yes,";\r
-\r
- if (formObj.popupscrollbars.checked)\r
- onclick += "scrollbars=yes,";\r
-\r
- if (formObj.popupmenubar.checked)\r
- onclick += "menubar=yes,";\r
-\r
- if (formObj.popupresizable.checked)\r
- onclick += "resizable=yes,";\r
-\r
- if (formObj.popuptoolbar.checked)\r
- onclick += "toolbar=yes,";\r
-\r
- if (formObj.popupstatus.checked)\r
- onclick += "status=yes,";\r
-\r
- if (formObj.popupdependent.checked)\r
- onclick += "dependent=yes,";\r
-\r
- if (formObj.popupwidth.value != "")\r
- onclick += "width=" + formObj.popupwidth.value + ",";\r
-\r
- if (formObj.popupheight.value != "")\r
- onclick += "height=" + formObj.popupheight.value + ",";\r
-\r
- if (formObj.popupleft.value != "") {\r
- if (formObj.popupleft.value != "c")\r
- onclick += "left=" + formObj.popupleft.value + ",";\r
- else\r
- onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";\r
- }\r
-\r
- if (formObj.popuptop.value != "") {\r
- if (formObj.popuptop.value != "c")\r
- onclick += "top=" + formObj.popuptop.value + ",";\r
- else\r
- onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";\r
- }\r
-\r
- if (onclick.charAt(onclick.length-1) == ',')\r
- onclick = onclick.substring(0, onclick.length-1);\r
-\r
- onclick += "');";\r
-\r
- if (formObj.popupreturn.checked)\r
- onclick += "return false;";\r
-\r
- // tinyMCE.debug(onclick);\r
-\r
- formObj.onclick.value = onclick;\r
-\r
- if (formObj.href.value == "")\r
- formObj.href.value = url;\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
- var formObj = document.forms[0];\r
- var valueElm = formObj.elements[attrib.toLowerCase()];\r
- var dom = tinyMCEPopup.editor.dom;\r
-\r
- if (typeof(value) == "undefined" || value == null) {\r
- value = "";\r
-\r
- if (valueElm)\r
- value = valueElm.value;\r
- }\r
-\r
- // Clean up the style\r
- if (attrib == 'style')\r
- value = dom.serializeStyle(dom.parseStyle(value));\r
-\r
- dom.setAttrib(elm, attrib, value);\r
-}\r
-\r
-function getAnchorListHTML(id, target) {\r
- var inst = tinyMCEPopup.editor;\r
- var nodes = inst.dom.select('a.mceItemAnchor,img.mceItemAnchor'), name, i;\r
- var html = "";\r
-\r
- html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" o2nfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';\r
- html += 'this.options[this.selectedIndex].value;">';\r
- html += '<option value="">---</option>';\r
-\r
- for (i=0; i<nodes.length; i++) {\r
- if ((name = inst.dom.getAttrib(nodes[i], "name")) != "")\r
- html += '<option value="#' + name + '">' + name + '</option>';\r
- }\r
-\r
- html += '</select>';\r
-\r
- return html;\r
-}\r
-\r
-function insertAction() {\r
- var inst = tinyMCEPopup.editor;\r
- var elm, elementArray, i;\r
-\r
- elm = inst.selection.getNode();\r
- checkPrefix(document.forms[0].href);\r
-\r
- elm = inst.dom.getParent(elm, "A");\r
-\r
- // Remove element if there is no href\r
- if (!document.forms[0].href.value) {\r
- tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
- i = inst.selection.getBookmark();\r
- inst.dom.remove(elm, 1);\r
- inst.selection.moveToBookmark(i);\r
- tinyMCEPopup.execCommand("mceEndUndoLevel");\r
- tinyMCEPopup.close();\r
- return;\r
- }\r
-\r
- tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
-\r
- // Create new anchor elements\r
- if (elm == null) {\r
- tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
-\r
- elementArray = tinymce.grep(inst.dom.select("a"), function(n) {return inst.dom.getAttrib(n, 'href') == '#mce_temp_url#';});\r
- for (i=0; i<elementArray.length; i++)\r
- setAllAttribs(elm = elementArray[i]);\r
- } else\r
- setAllAttribs(elm);\r
-\r
- // Don't move caret if selection was image\r
- if (elm.childNodes.length != 1 || elm.firstChild.nodeName != 'IMG') {\r
- inst.focus();\r
- inst.selection.select(elm);\r
- inst.selection.collapse(0);\r
- tinyMCEPopup.storeSelection();\r
- }\r
-\r
- tinyMCEPopup.execCommand("mceEndUndoLevel");\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function setAllAttribs(elm) {\r
- var formObj = document.forms[0];\r
- var href = formObj.href.value;\r
- var target = getSelectValue(formObj, 'targetlist');\r
-\r
- setAttrib(elm, 'href', href);\r
- setAttrib(elm, 'title');\r
- setAttrib(elm, 'target', target == '_self' ? '' : target);\r
- setAttrib(elm, 'id');\r
- setAttrib(elm, 'style');\r
- setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));\r
- setAttrib(elm, 'rel');\r
- setAttrib(elm, 'rev');\r
- setAttrib(elm, 'charset');\r
- setAttrib(elm, 'hreflang');\r
- setAttrib(elm, 'dir');\r
- setAttrib(elm, 'lang');\r
- setAttrib(elm, 'tabindex');\r
- setAttrib(elm, 'accesskey');\r
- setAttrib(elm, 'type');\r
- setAttrib(elm, 'onfocus');\r
- setAttrib(elm, 'onblur');\r
- setAttrib(elm, 'onclick');\r
- setAttrib(elm, 'ondblclick');\r
- setAttrib(elm, 'onmousedown');\r
- setAttrib(elm, 'onmouseup');\r
- setAttrib(elm, 'onmouseover');\r
- setAttrib(elm, 'onmousemove');\r
- setAttrib(elm, 'onmouseout');\r
- setAttrib(elm, 'onkeypress');\r
- setAttrib(elm, 'onkeydown');\r
- setAttrib(elm, 'onkeyup');\r
-\r
- // Refresh in old MSIE\r
- if (tinyMCE.isMSIE5)\r
- elm.outerHTML = elm.outerHTML;\r
-}\r
-\r
-function getSelectValue(form_obj, field_name) {\r
- var elm = form_obj.elements[field_name];\r
-\r
- if (!elm || elm.options == null || elm.selectedIndex == -1)\r
- return "";\r
-\r
- return elm.options[elm.selectedIndex].value;\r
-}\r
-\r
-function getLinkListHTML(elm_id, target_form_element, onchange_func) {\r
- if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)\r
- return "";\r
-\r
- var html = "";\r
-\r
- html += '<select id="' + elm_id + '" name="' + elm_id + '"';\r
- html += ' class="mceLinkList" onfoc2us="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
- html += 'this.options[this.selectedIndex].value;';\r
-\r
- if (typeof(onchange_func) != "undefined")\r
- html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';\r
-\r
- html += '"><option value="">---</option>';\r
-\r
- for (var i=0; i<tinyMCELinkList.length; i++)\r
- html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';\r
-\r
- html += '</select>';\r
-\r
- return html;\r
-\r
- // tinyMCE.debug('-- image list start --', html, '-- image list end --');\r
-}\r
-\r
-function getTargetListHTML(elm_id, target_form_element) {\r
- var targets = tinyMCEPopup.getParam('theme_advanced_link_targets', '').split(';');\r
- var html = '';\r
-\r
- html += '<select id="' + elm_id + '" name="' + elm_id + '" onf2ocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
- html += 'this.options[this.selectedIndex].value;">';\r
- html += '<option value="_self">' + tinyMCEPopup.getLang('advlink_dlg.target_same') + '</option>';\r
- html += '<option value="_blank">' + tinyMCEPopup.getLang('advlink_dlg.target_blank') + ' (_blank)</option>';\r
- html += '<option value="_parent">' + tinyMCEPopup.getLang('advlink_dlg.target_parent') + ' (_parent)</option>';\r
- html += '<option value="_top">' + tinyMCEPopup.getLang('advlink_dlg.target_top') + ' (_top)</option>';\r
-\r
- for (var i=0; i<targets.length; i++) {\r
- var key, value;\r
-\r
- if (targets[i] == "")\r
- continue;\r
-\r
- key = targets[i].split('=')[0];\r
- value = targets[i].split('=')[1];\r
-\r
- html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';\r
- }\r
-\r
- html += '</select>';\r
-\r
- return html;\r
-}\r
-\r
-// While loading\r
-preinit();\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCE.addI18n('en.advlink_dlg',{\r
-title:"Insert/edit link",\r
-url:"Link URL",\r
-target:"Target",\r
-titlefield:"Title",\r
-is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
-is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
-list:"Link list",\r
-general_tab:"General",\r
-popup_tab:"Popup",\r
-events_tab:"Events",\r
-advanced_tab:"Advanced",\r
-general_props:"General properties",\r
-popup_props:"Popup properties",\r
-event_props:"Events",\r
-advanced_props:"Advanced properties",\r
-popup_opts:"Options",\r
-anchor_names:"Anchors",\r
-target_same:"Open in this window / frame",\r
-target_parent:"Open in parent window / frame",\r
-target_top:"Open in top frame (replaces all frames)",\r
-target_blank:"Open in new window",\r
-popup:"Javascript popup",\r
-popup_url:"Popup URL",\r
-popup_name:"Window name",\r
-popup_return:"Insert 'return false'",\r
-popup_scrollbars:"Show scrollbars",\r
-popup_statusbar:"Show status bar",\r
-popup_toolbar:"Show toolbars",\r
-popup_menubar:"Show menu bar",\r
-popup_location:"Show location bar",\r
-popup_resizable:"Make window resizable",\r
-popup_dependent:"Dependent (Mozilla/Firefox only)",\r
-popup_size:"Size",\r
-popup_position:"Position (X/Y)",\r
-id:"Id",\r
-style:"Style",\r
-classes:"Classes",\r
-target_name:"Target name",\r
-langdir:"Language direction",\r
-target_langcode:"Target language",\r
-langcode:"Language code",\r
-encoding:"Target character encoding",\r
-mime:"Target MIME type",\r
-rel:"Relationship page to target",\r
-rev:"Relationship target to page",\r
-tabindex:"Tabindex",\r
-accesskey:"Accesskey",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-link_list:"Link list"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advlink_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/validate.js"></script>\r
- <script type="text/javascript" src="js/advlink.js"></script>\r
- <link href="css/advlink.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="advlink" style="display: none">\r
- <form onsubmit="insertAction();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advlink_dlg.general_tab}</a></span></li>\r
- <li id="popup_tab"><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{#advlink_dlg.popup_tab}</a></span></li>\r
- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#advlink_dlg.events_tab}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#advlink_dlg.advanced_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#advlink_dlg.general_props}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td nowrap="nowrap"><label id="hreflabel" for="href">{#advlink_dlg.url}</label></td>\r
- <td><table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input id="href" name="href" type="text" class="mceFocus" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>\r
- <td id="hrefbrowsercontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr id="linklisthrefrow">\r
- <td class="column1"><label for="linklisthref">{#advlink_dlg.list}</label></td>\r
- <td colspan="2" id="linklisthrefcontainer"> </td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="anchorlist">{#advlink_dlg.anchor_names}</label></td>\r
- <td colspan="2" id="anchorlistcontainer"> </td>\r
- </tr>\r
- <tr>\r
- <td><label id="targetlistlabel" for="targetlist">{#advlink_dlg.target}</label></td>\r
- <td id="targetlistcontainer"> </td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label id="titlelabel" for="title">{#advlink_dlg.titlefield}</label></td>\r
- <td><input id="title" name="title" type="text" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td><label id="classlabel" for="classlist">{#class_name}</label></td>\r
- <td>\r
- <select id="classlist" name="classlist" onchange="changeClass();">\r
- <option value="" selected>{#not_set}</option>\r
- </select>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="popup_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advlink_dlg.popup_props}</legend>\r
-\r
- <input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />\r
- <label id="ispopuplabel" for="ispopup">{#advlink_dlg.popup}</label>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td nowrap="nowrap"><label for="popupurl">{#advlink_dlg.popup_url}</label> </td>\r
- <td>\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>\r
- <td id="popupurlbrowsercontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="popupname">{#advlink_dlg.popup_name}</label> </td>\r
- <td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label>{#advlink_dlg.popup_size}</label> </td>\r
- <td nowrap="nowrap">\r
- <input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x\r
- <input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px\r
- </td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap" id="labelleft"><label>{#advlink_dlg.popup_position}</label> </td>\r
- <td nowrap="nowrap">\r
- <input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> / \r
- <input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)\r
- </td>\r
- </tr>\r
- </table>\r
-\r
- <fieldset>\r
- <legend>{#advlink_dlg.popup_opts}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{#advlink_dlg.popup_location}</label></td>\r
- <td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{#advlink_dlg.popup_scrollbars}</label></td>\r
- </tr>\r
- <tr>\r
- <td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{#advlink_dlg.popup_menubar}</label></td>\r
- <td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{#advlink_dlg.popup_resizable}</label></td>\r
- </tr>\r
- <tr>\r
- <td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{#advlink_dlg.popup_toolbar}</label></td>\r
- <td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{#advlink_dlg.popup_dependent}</label></td>\r
- </tr>\r
- <tr>\r
- <td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>\r
- <td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{#advlink_dlg.popup_statusbar}</label></td>\r
- <td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" checked="checked" /></td>\r
- <td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{#advlink_dlg.popup_return}</label></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advlink_dlg.advanced_props}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="column1"><label id="idlabel" for="id">{#advlink_dlg.id}</label></td> \r
- <td><input id="id" name="id" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label id="stylelabel" for="style">{#advlink_dlg.style}</label></td>\r
- <td><input type="text" id="style" name="style" value="" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="classeslabel" for="classes">{#advlink_dlg.classes}</label></td>\r
- <td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="targetlabel" for="target">{#advlink_dlg.target_name}</label></td>\r
- <td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="dirlabel" for="dir">{#advlink_dlg.langdir}</label></td> \r
- <td>\r
- <select id="dir" name="dir"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#advlink_dlg.ltr}</option> \r
- <option value="rtl">{#advlink_dlg.rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label id="hreflanglabel" for="hreflang">{#advlink_dlg.target_langcode}</label></td>\r
- <td><input type="text" id="hreflang" name="hreflang" value="" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="langlabel" for="lang">{#advlink_dlg.langcode}</label></td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" />\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label id="charsetlabel" for="charset">{#advlink_dlg.encoding}</label></td>\r
- <td><input type="text" id="charset" name="charset" value="" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="typelabel" for="type">{#advlink_dlg.mime}</label></td>\r
- <td><input type="text" id="type" name="type" value="" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="rellabel" for="rel">{#advlink_dlg.rel}</label></td>\r
- <td><select id="rel" name="rel"> \r
- <option value="">{#not_set}</option> \r
- <option value="lightbox">Lightbox</option> \r
- <option value="alternate">Alternate</option> \r
- <option value="designates">Designates</option> \r
- <option value="stylesheet">Stylesheet</option> \r
- <option value="start">Start</option> \r
- <option value="next">Next</option> \r
- <option value="prev">Prev</option> \r
- <option value="contents">Contents</option> \r
- <option value="index">Index</option> \r
- <option value="glossary">Glossary</option> \r
- <option value="copyright">Copyright</option> \r
- <option value="chapter">Chapter</option> \r
- <option value="subsection">Subsection</option> \r
- <option value="appendix">Appendix</option> \r
- <option value="help">Help</option> \r
- <option value="bookmark">Bookmark</option>\r
- <option value="nofollow">No Follow</option>\r
- <option value="tag">Tag</option>\r
- </select> \r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="revlabel" for="rev">{#advlink_dlg.rev}</label></td>\r
- <td><select id="rev" name="rev"> \r
- <option value="">{#not_set}</option> \r
- <option value="alternate">Alternate</option> \r
- <option value="designates">Designates</option> \r
- <option value="stylesheet">Stylesheet</option> \r
- <option value="start">Start</option> \r
- <option value="next">Next</option> \r
- <option value="prev">Prev</option> \r
- <option value="contents">Contents</option> \r
- <option value="index">Index</option> \r
- <option value="glossary">Glossary</option> \r
- <option value="copyright">Copyright</option> \r
- <option value="chapter">Chapter</option> \r
- <option value="subsection">Subsection</option> \r
- <option value="appendix">Appendix</option> \r
- <option value="help">Help</option> \r
- <option value="bookmark">Bookmark</option> \r
- </select> \r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="tabindexlabel" for="tabindex">{#advlink_dlg.tabindex}</label></td>\r
- <td><input type="text" id="tabindex" name="tabindex" value="" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="accesskeylabel" for="accesskey">{#advlink_dlg.accesskey}</label></td>\r
- <td><input type="text" id="accesskey" name="accesskey" value="" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advlink_dlg.event_props}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="column1"><label for="onfocus">onfocus</label></td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onblur">onblur</label></td> \r
- <td><input id="onblur" name="onblur" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onclick">onclick</label></td> \r
- <td><input id="onclick" name="onclick" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="ondblclick">ondblclick</label></td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onmousedown">onmousedown</label></td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onmouseup">onmouseup</label></td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onmouseover">onmouseover</label></td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onmousemove">onmousemove</label></td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onmouseout">onmouseout</label></td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onkeypress">onkeypress</label></td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onkeydown">onkeydown</label></td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="onkeyup">onkeyup</label></td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.AutoSavePlugin',{init:function(ed,url){var t=this;t.editor=ed;window.onbeforeunload=tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;},getInfo:function(){return{longname:'Auto save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',version:tinymce.majorVersion+"."+tinymce.minorVersion};},'static':{_beforeUnloadHandler:function(){var msg;tinymce.each(tinyMCE.editors,function(ed){if(ed.getParam("fullscreen_is_enabled"))return;if(ed.isDirty()){msg=ed.getLang("autosave.unload_msg");return false;}});return msg;}}});tinymce.PluginManager.add('autosave',tinymce.plugins.AutoSavePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.AutoSavePlugin', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- window.onbeforeunload = tinymce.plugins.AutoSavePlugin._beforeUnloadHandler;\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Auto save',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autosave',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private plugin internal methods\r
-\r
- 'static' : {\r
- _beforeUnloadHandler : function() {\r
- var msg;\r
-\r
- tinymce.each(tinyMCE.editors, function(ed) {\r
- if (ed.getParam("fullscreen_is_enabled"))\r
- return;\r
-\r
- if (ed.isDirty()) {\r
- msg = ed.getLang("autosave.unload_msg");\r
- return false;\r
- }\r
- });\r
-\r
- return msg;\r
- }\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('autosave', tinymce.plugins.AutoSavePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.BBCodePlugin',{init:function(ed,url){var t=this,dialect=ed.getParam('bbcode_dialect','punbb').toLowerCase();ed.onBeforeSetContent.add(function(ed,o){o.content=t['_'+dialect+'_bbcode2html'](o.content);});ed.onPostProcess.add(function(ed,o){if(o.set)o.content=t['_'+dialect+'_bbcode2html'](o.content);if(o.get)o.content=t['_'+dialect+'_html2bbcode'](o.content);});},getInfo:function(){return{longname:'BBCode Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_punbb_html2bbcode:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");rep(/<font>(.*?)<\/font>/gi,"$1");rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");rep(/<\/(strong|b)>/gi,"[/b]");rep(/<(strong|b)>/gi,"[b]");rep(/<\/(em|i)>/gi,"[/i]");rep(/<(em|i)>/gi,"[i]");rep(/<\/u>/gi,"[/u]");rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");rep(/<u>/gi,"[u]");rep(/<blockquote[^>]*>/gi,"[quote]");rep(/<\/blockquote>/gi,"[/quote]");rep(/<br \/>/gi,"\n");rep(/<br\/>/gi,"\n");rep(/<br>/gi,"\n");rep(/<p>/gi,"");rep(/<\/p>/gi,"\n");rep(/ /gi," ");rep(/"/gi,"\"");rep(/</gi,"<");rep(/>/gi,">");rep(/&/gi,"&");return s;},_punbb_bbcode2html:function(s){s=tinymce.trim(s);function rep(re,str){s=s.replace(re,str);};rep(/\n/gi,"<br />");rep(/\[b\]/gi,"<strong>");rep(/\[\/b\]/gi,"</strong>");rep(/\[i\]/gi,"<em>");rep(/\[\/i\]/gi,"</em>");rep(/\[u\]/gi,"<u>");rep(/\[\/u\]/gi,"</u>");rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");return s;}});tinymce.PluginManager.add('bbcode',tinymce.plugins.BBCodePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.BBCodePlugin', {\r
- init : function(ed, url) {\r
- var t = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase();\r
-\r
- ed.onBeforeSetContent.add(function(ed, o) {\r
- o.content = t['_' + dialect + '_bbcode2html'](o.content);\r
- });\r
-\r
- ed.onPostProcess.add(function(ed, o) {\r
- if (o.set)\r
- o.content = t['_' + dialect + '_bbcode2html'](o.content);\r
-\r
- if (o.get)\r
- o.content = t['_' + dialect + '_html2bbcode'](o.content);\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'BBCode Plugin',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/bbcode',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- // HTML -> BBCode in PunBB dialect\r
- _punbb_html2bbcode : function(s) {\r
- s = tinymce.trim(s);\r
-\r
- function rep(re, str) {\r
- s = s.replace(re, str);\r
- };\r
-\r
- // example: <strong> to [b]\r
- rep(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");\r
- rep(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");\r
- rep(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");\r
- rep(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]");\r
- rep(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]");\r
- rep(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]");\r
- rep(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]");\r
- rep(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]");\r
- rep(/<font>(.*?)<\/font>/gi,"$1");\r
- rep(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]");\r
- rep(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]");\r
- rep(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]");\r
- rep(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]");\r
- rep(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]");\r
- rep(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]");\r
- rep(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]");\r
- rep(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]");\r
- rep(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]");\r
- rep(/<\/(strong|b)>/gi,"[/b]");\r
- rep(/<(strong|b)>/gi,"[b]");\r
- rep(/<\/(em|i)>/gi,"[/i]");\r
- rep(/<(em|i)>/gi,"[i]");\r
- rep(/<\/u>/gi,"[/u]");\r
- rep(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]");\r
- rep(/<u>/gi,"[u]");\r
- rep(/<blockquote[^>]*>/gi,"[quote]");\r
- rep(/<\/blockquote>/gi,"[/quote]");\r
- rep(/<br \/>/gi,"\n");\r
- rep(/<br\/>/gi,"\n");\r
- rep(/<br>/gi,"\n");\r
- rep(/<p>/gi,"");\r
- rep(/<\/p>/gi,"\n");\r
- rep(/ /gi," ");\r
- rep(/"/gi,"\"");\r
- rep(/</gi,"<");\r
- rep(/>/gi,">");\r
- rep(/&/gi,"&");\r
-\r
- return s; \r
- },\r
-\r
- // BBCode -> HTML from PunBB dialect\r
- _punbb_bbcode2html : function(s) {\r
- s = tinymce.trim(s);\r
-\r
- function rep(re, str) {\r
- s = s.replace(re, str);\r
- };\r
-\r
- // example: [b] to <strong>\r
- rep(/\n/gi,"<br />");\r
- rep(/\[b\]/gi,"<strong>");\r
- rep(/\[\/b\]/gi,"</strong>");\r
- rep(/\[i\]/gi,"<em>");\r
- rep(/\[\/i\]/gi,"</em>");\r
- rep(/\[u\]/gi,"<u>");\r
- rep(/\[\/u\]/gi,"</u>");\r
- rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,"<a href=\"$1\">$2</a>");\r
- rep(/\[url\](.*?)\[\/url\]/gi,"<a href=\"$1\">$1</a>");\r
- rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");\r
- rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"<font color=\"$1\">$2</font>");\r
- rep(/\[code\](.*?)\[\/code\]/gi,"<span class=\"codeStyle\">$1</span> ");\r
- rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"<span class=\"quoteStyle\">$1</span> ");\r
-\r
- return s; \r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.Compat2x',{getInfo:function(){return{longname:'Compat2x',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};}});(function(){tinymce.extend(tinyMCE,{addToLang:function(p,l){each(l,function(v,k){tinyMCE.i18n[(tinyMCE.settings.language||'en')+'.'+(p?p+'_':'')+k]=v;});},getInstanceById:function(n){return this.get(n);}});})();(function(){var EditorManager=tinymce.EditorManager;tinyMCE.instances={};tinyMCE.plugins={};tinymce.PluginManager.onAdd.add(function(pm,n,p){tinyMCE.plugins[n]=p;});tinyMCE.majorVersion=tinymce.majorVersion;tinyMCE.minorVersion=tinymce.minorVersion;tinyMCE.releaseDate=tinymce.releaseDate;tinyMCE.baseURL=tinymce.baseURL;tinyMCE.isIE=tinyMCE.isMSIE=tinymce.isIE||tinymce.isOpera;tinyMCE.isMSIE5=tinymce.isIE;tinyMCE.isMSIE5_0=tinymce.isIE;tinyMCE.isMSIE7=tinymce.isIE;tinyMCE.isGecko=tinymce.isGecko;tinyMCE.isSafari=tinymce.isWebKit;tinyMCE.isOpera=tinymce.isOpera;tinyMCE.isMac=false;tinyMCE.isNS7=false;tinyMCE.isNS71=false;tinyMCE.compat=true;TinyMCE_Engine=tinyMCE;tinymce.extend(tinyMCE,{getParam:function(n,dv){return this.activeEditor.getParam(n,dv);},addEvent:function(e,na,f,sc){tinymce.dom.Event.add(e,na,f,sc||this);},getControlHTML:function(n){return EditorManager.activeEditor.controlManager.createControl(n);},loadCSS:function(u){tinymce.DOM.loadCSS(u);},importCSS:function(doc,u){if(doc==document)this.loadCSS(u);else new tinymce.dom.DOMUtils(doc).loadCSS(u);},log:function(){console.debug.apply(console,arguments);},getLang:function(n,dv){var v=EditorManager.activeEditor.getLang(n.replace(/^lang_/g,''),dv);if(/^[0-9\-.]+$/g.test(v))return parseInt(v);return v;},isInstance:function(o){return o!=null&&typeof(o)=="object"&&o.execCommand;},triggerNodeChange:function(){EditorManager.activeEditor.nodeChanged();},regexpReplace:function(in_str,reg_exp,replace_str,opts){var re;if(in_str==null)return in_str;if(typeof(opts)=="undefined")opts='g';re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);},trim:function(s){return tinymce.trim(s);},xmlEncode:function(s){return tinymce.DOM.encode(s);},explode:function(s,d){var o=[];tinymce.each(s.split(d),function(v){if(v!='')o.push(v);});return o;},switchClass:function(id,cls){var b;if(/^mceButton/.test(cls)){b=EditorManager.activeEditor.controlManager.get(id);if(!b)return;switch(cls){case"mceButtonNormal":b.setDisabled(false);b.setActive(false);return;case"mceButtonDisabled":b.setDisabled(true);return;case"mceButtonSelected":b.setActive(true);b.setDisabled(false);return;}}},addCSSClass:function(e,n,b){return tinymce.DOM.addClass(e,n,b);},hasCSSClass:function(e,n){return tinymce.DOM.hasClass(e,n);},removeCSSClass:function(e,n){return tinymce.DOM.removeClass(e,n);},getCSSClasses:function(){var cl=EditorManager.activeEditor.dom.getClasses(),o=[];each(cl,function(c){o.push(c['class']);});return o;},setWindowArg:function(n,v){EditorManager.activeEditor.windowManager.params[n]=v;},getWindowArg:function(n,dv){var wm=EditorManager.activeEditor.windowManager,v;v=wm.getParam(n);if(v==='')return'';return v||wm.getFeature(n)||dv;},getParentNode:function(n,f){return this._getDOM().getParent(n,f);},selectElements:function(n,na,f){var i,a=[],nl,x;for(x=0,na=na.split(',');x<na.length;x++)for(i=0,nl=n.getElementsByTagName(na[x]);i<nl.length;i++)(!f||f(nl[i]))&&a.push(nl[i]);return a;},getNodeTree:function(n,na,t,nn){return this.selectNodes(n,function(n){return(!t||n.nodeType==t)&&(!nn||n.nodeName==nn);},na?na:[]);},getAttrib:function(e,n,dv){return this._getDOM().getAttrib(e,n,dv);},setAttrib:function(e,n,v){return this._getDOM().setAttrib(e,n,v);},getElementsByAttributeValue:function(n,e,a,v){var i,nl=n.getElementsByTagName(e),o=[];for(i=0;i<nl.length;i++){if(tinyMCE.getAttrib(nl[i],a).indexOf(v)!=-1)o[o.length]=nl[i];}return o;},selectNodes:function(n,f,a){var i;if(!a)a=[];if(f(n))a[a.length]=n;if(n.hasChildNodes()){for(i=0;i<n.childNodes.length;i++)tinyMCE.selectNodes(n.childNodes[i],f,a);}return a;},getContent:function(){return EditorManager.activeEditor.getContent();},getParentElement:function(n,na,f){if(na)na=new RegExp('^('+na.toUpperCase().replace(/,/g,'|')+')$','g');return this._getDOM().getParent(n,function(n){return n.nodeType==1&&(!na||na.test(n.nodeName))&&(!f||f(n));},this.activeEditor.getBody());},importPluginLanguagePack:function(n){tinymce.PluginManager.requireLangPack(n);},getButtonHTML:function(cn,lang,img,c,u,v){var ed=EditorManager.activeEditor;img=img.replace(/\{\$pluginurl\}/g,tinyMCE.pluginURL);img=img.replace(/\{\$themeurl\}/g,tinyMCE.themeURL);lang=lang.replace(/^lang_/g,'');return ed.controlManager.createButton(cn,{title:lang,command:c,ui:u,value:v,scope:this,'class':'compat',image:img});},addSelectAccessibility:function(e,s,w){if(!s._isAccessible){s.onkeydown=tinyMCE.accessibleEventHandler;s.onblur=tinyMCE.accessibleEventHandler;s._isAccessible=true;s._win=w;}return false;},accessibleEventHandler:function(e){var elm,win=this._win;e=tinymce.isIE?win.event:e;elm=tinymce.isIE?e.srcElement:e.target;if(e.type=="blur"){if(elm.oldonchange){elm.onchange=elm.oldonchange;elm.oldonchange=null;}return true;}if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13||e.keyCode==32){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);return false;}return true;},cancelEvent:function(e){return tinymce.dom.Event.cancel(e);},handleVisualAid:function(e){EditorManager.activeEditor.addVisual(e);},getAbsPosition:function(n,r){return tinymce.DOM.getPos(n,r);},cleanupEventStr:function(s){s=""+s;s=s.replace('function anonymous()\n{\n','');s=s.replace('\n}','');s=s.replace(/^return true;/gi,'');return s;},getVisualAidClass:function(s){return s;},parseStyle:function(s){return this._getDOM().parseStyle(s);},serializeStyle:function(s){return this._getDOM().serializeStyle(s);},openWindow:function(tpl,args){var ed=EditorManager.activeEditor,o={},n;for(n in tpl)o[n]=tpl[n];tpl=o;args=args||{};tpl.url=new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);tpl.inline=tpl.inline||args.inline;ed.windowManager.open(tpl,args);},closeWindow:function(win){EditorManager.activeEditor.windowManager.close(win);},getOuterHTML:function(e){return tinymce.DOM.getOuterHTML(e);},setOuterHTML:function(e,h,d){return tinymce.DOM.setOuterHTML(e,h,d);},hasPlugin:function(n){return tinymce.PluginManager.get(n)!=null;},_setEventsEnabled:function(){},addPlugin:function(pn,f){var t=this;function PluginWrapper(ed){tinyMCE.selectedInstance=ed;ed.onInit.add(function(){t.settings=ed.settings;t.settings['base_href']=tinyMCE.documentBasePath;tinyMCE.settings=t.settings;tinyMCE.documentBasePath=ed.documentBasePath;if(f.initInstance)f.initInstance(ed);ed.contentDocument=ed.getDoc();ed.contentWindow=ed.getWin();ed.undoRedo=ed.undoManager;ed.startContent=ed.getContent({format:'raw'});tinyMCE.instances[ed.id]=ed;tinyMCE.loadedFiles=[];});ed.onActivate.add(function(){tinyMCE.settings=ed.settings;tinyMCE.selectedInstance=ed;});if(f.handleNodeChange){ed.onNodeChange.add(function(ed,cm,n){f.handleNodeChange(ed.id,n,0,0,false,!ed.selection.isCollapsed());});}if(f.onChange){ed.onChange.add(function(ed,n){return f.onChange(ed);});}if(f.cleanup){ed.onGetContent.add(function(){});}this.getInfo=function(){return f.getInfo();};this.createControl=function(n){tinyMCE.pluginURL=tinymce.baseURL+'/plugins/'+pn;tinyMCE.themeURL=tinymce.baseURL+'/themes/'+tinyMCE.activeEditor.settings.theme;if(f.getControlHTML)return f.getControlHTML(n);return null;};this.execCommand=function(cmd,ui,val){if(f.execCommand)return f.execCommand(ed.id,ed.getBody(),cmd,ui,val);return false;};};tinymce.PluginManager.add(pn,PluginWrapper);},_getDOM:function(){return tinyMCE.activeEditor?tinyMCE.activeEditor.dom:tinymce.DOM;},convertRelativeToAbsoluteURL:function(b,u){return new tinymce.util.URI(b).toAbsolute(u);},convertAbsoluteURLToRelativeURL:function(b,u){return new tinymce.util.URI(b).toRelative(u);}});tinymce.extend(tinymce.Editor.prototype,{getFocusElement:function(){return this.selection.getNode();},getData:function(n){if(!this.data)this.data=[];if(!this.data[n])this.data[n]=[];return this.data[n];},hasPlugin:function(n){return this.plugins[n]!=null;},getContainerWin:function(){return window;},getHTML:function(raw){return this.getContent({format:raw?'raw':'html'});},setHTML:function(h){this.setContent(h);},getSel:function(){return this.selection.getSel();},getRng:function(){return this.selection.getRng();},isHidden:function(){var s;if(!tinymce.isGecko)return false;s=this.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},translate:function(s){var c=this.settings.language,o;if(!s)return s;o=tinymce.EditorManager.i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{#'+b+'}';});o=o.replace(/{\$lang_([^}]+)\}/g,function(a,b){return tinymce.EditorManager.i18n[c+'.'+b]||'{$lang_'+b+'}';});return o;},repaint:function(){this.execCommand('mceRepaint');}});tinymce.extend(tinymce.dom.Selection.prototype,{getSelectedText:function(){return this.getContent({format:'text'});},getSelectedHTML:function(){return this.getContent({format:'html'});},getFocusElement:function(){return this.getNode();},selectNode:function(node,collapse,select_text_node,to_start){var t=this;t.select(node,select_text_node||0);if(!is(collapse))collapse=true;if(collapse){if(!is(to_start))to_start=true;t.collapse(to_start);}}});}).call(this);tinymce.PluginManager.add('compat2x',tinymce.plugins.Compat2x);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;\r
-\r
- tinymce.create('tinymce.plugins.Compat2x', {\r
- getInfo : function() {\r
- return {\r
- longname : 'Compat2x',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/compat2x',\r
- version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
- };\r
- }\r
- });\r
-\r
- (function() {\r
- // Extend tinyMCE/EditorManager\r
- tinymce.extend(tinyMCE, {\r
- addToLang : function(p, l) {\r
- each(l, function(v, k) {\r
- tinyMCE.i18n[(tinyMCE.settings.language || 'en') + '.' + (p ? p + '_' : '') + k] = v;\r
- });\r
- },\r
-\r
- getInstanceById : function(n) {\r
- return this.get(n);\r
- }\r
- });\r
- })();\r
-\r
- (function() {\r
- var EditorManager = tinymce.EditorManager;\r
-\r
- tinyMCE.instances = {};\r
- tinyMCE.plugins = {};\r
- tinymce.PluginManager.onAdd.add(function(pm, n, p) {\r
- tinyMCE.plugins[n] = p;\r
- });\r
-\r
- tinyMCE.majorVersion = tinymce.majorVersion;\r
- tinyMCE.minorVersion = tinymce.minorVersion;\r
- tinyMCE.releaseDate = tinymce.releaseDate;\r
- tinyMCE.baseURL = tinymce.baseURL;\r
- tinyMCE.isIE = tinyMCE.isMSIE = tinymce.isIE || tinymce.isOpera;\r
- tinyMCE.isMSIE5 = tinymce.isIE;\r
- tinyMCE.isMSIE5_0 = tinymce.isIE;\r
- tinyMCE.isMSIE7 = tinymce.isIE;\r
- tinyMCE.isGecko = tinymce.isGecko;\r
- tinyMCE.isSafari = tinymce.isWebKit;\r
- tinyMCE.isOpera = tinymce.isOpera;\r
- tinyMCE.isMac = false;\r
- tinyMCE.isNS7 = false;\r
- tinyMCE.isNS71 = false;\r
- tinyMCE.compat = true;\r
-\r
- // Extend tinyMCE class\r
- TinyMCE_Engine = tinyMCE;\r
- tinymce.extend(tinyMCE, {\r
- getParam : function(n, dv) {\r
- return this.activeEditor.getParam(n, dv);\r
- },\r
-\r
- addEvent : function(e, na, f, sc) {\r
- tinymce.dom.Event.add(e, na, f, sc || this);\r
- },\r
-\r
- getControlHTML : function(n) {\r
- return EditorManager.activeEditor.controlManager.createControl(n);\r
- },\r
-\r
- loadCSS : function(u) {\r
- tinymce.DOM.loadCSS(u);\r
- },\r
-\r
- importCSS : function(doc, u) {\r
- if (doc == document)\r
- this.loadCSS(u);\r
- else\r
- new tinymce.dom.DOMUtils(doc).loadCSS(u);\r
- },\r
-\r
- log : function() {\r
- console.debug.apply(console, arguments);\r
- },\r
-\r
- getLang : function(n, dv) {\r
- var v = EditorManager.activeEditor.getLang(n.replace(/^lang_/g, ''), dv);\r
-\r
- // Is number\r
- if (/^[0-9\-.]+$/g.test(v))\r
- return parseInt(v);\r
-\r
- return v;\r
- },\r
-\r
- isInstance : function(o) {\r
- return o != null && typeof(o) == "object" && o.execCommand;\r
- },\r
-\r
- triggerNodeChange : function() {\r
- EditorManager.activeEditor.nodeChanged();\r
- },\r
-\r
- regexpReplace : function(in_str, reg_exp, replace_str, opts) {\r
- var re;\r
-\r
- if (in_str == null)\r
- return in_str;\r
-\r
- if (typeof(opts) == "undefined")\r
- opts = 'g';\r
-\r
- re = new RegExp(reg_exp, opts);\r
-\r
- return in_str.replace(re, replace_str);\r
- },\r
-\r
- trim : function(s) {\r
- return tinymce.trim(s);\r
- },\r
-\r
- xmlEncode : function(s) {\r
- return tinymce.DOM.encode(s);\r
- },\r
-\r
- explode : function(s, d) {\r
- var o = [];\r
-\r
- tinymce.each(s.split(d), function(v) {\r
- if (v != '')\r
- o.push(v);\r
- });\r
-\r
- return o;\r
- },\r
-\r
- switchClass : function(id, cls) {\r
- var b;\r
-\r
- if (/^mceButton/.test(cls)) {\r
- b = EditorManager.activeEditor.controlManager.get(id);\r
-\r
- if (!b)\r
- return;\r
-\r
- switch (cls) {\r
- case "mceButtonNormal":\r
- b.setDisabled(false);\r
- b.setActive(false);\r
- return;\r
-\r
- case "mceButtonDisabled":\r
- b.setDisabled(true);\r
- return;\r
-\r
- case "mceButtonSelected":\r
- b.setActive(true);\r
- b.setDisabled(false);\r
- return;\r
- }\r
- }\r
- },\r
-\r
- addCSSClass : function(e, n, b) {\r
- return tinymce.DOM.addClass(e, n, b);\r
- },\r
-\r
- hasCSSClass : function(e, n) {\r
- return tinymce.DOM.hasClass(e, n);\r
- },\r
-\r
- removeCSSClass : function(e, n) {\r
- return tinymce.DOM.removeClass(e, n);\r
- },\r
-\r
- getCSSClasses : function() {\r
- var cl = EditorManager.activeEditor.dom.getClasses(), o = [];\r
-\r
- each(cl, function(c) {\r
- o.push(c['class']);\r
- });\r
-\r
- return o;\r
- },\r
-\r
- setWindowArg : function(n, v) {\r
- EditorManager.activeEditor.windowManager.params[n] = v;\r
- },\r
-\r
- getWindowArg : function(n, dv) {\r
- var wm = EditorManager.activeEditor.windowManager, v;\r
-\r
- v = wm.getParam(n);\r
- if (v === '')\r
- return '';\r
-\r
- return v || wm.getFeature(n) || dv;\r
- },\r
-\r
- getParentNode : function(n, f) {\r
- return this._getDOM().getParent(n, f);\r
- },\r
-\r
- selectElements : function(n, na, f) {\r
- var i, a = [], nl, x;\r
-\r
- for (x=0, na = na.split(','); x<na.length; x++)\r
- for (i=0, nl = n.getElementsByTagName(na[x]); i<nl.length; i++)\r
- (!f || f(nl[i])) && a.push(nl[i]);\r
-\r
- return a;\r
- },\r
-\r
- getNodeTree : function(n, na, t, nn) {\r
- return this.selectNodes(n, function(n) {\r
- return (!t || n.nodeType == t) && (!nn || n.nodeName == nn);\r
- }, na ? na : []);\r
- },\r
-\r
- getAttrib : function(e, n, dv) {\r
- return this._getDOM().getAttrib(e, n, dv);\r
- },\r
-\r
- setAttrib : function(e, n, v) {\r
- return this._getDOM().setAttrib(e, n, v);\r
- },\r
-\r
- getElementsByAttributeValue : function(n, e, a, v) {\r
- var i, nl = n.getElementsByTagName(e), o = [];\r
-\r
- for (i=0; i<nl.length; i++) {\r
- if (tinyMCE.getAttrib(nl[i], a).indexOf(v) != -1)\r
- o[o.length] = nl[i];\r
- }\r
-\r
- return o;\r
- },\r
-\r
- selectNodes : function(n, f, a) {\r
- var i;\r
-\r
- if (!a)\r
- a = [];\r
-\r
- if (f(n))\r
- a[a.length] = n;\r
-\r
- if (n.hasChildNodes()) {\r
- for (i=0; i<n.childNodes.length; i++)\r
- tinyMCE.selectNodes(n.childNodes[i], f, a);\r
- }\r
-\r
- return a;\r
- },\r
-\r
- getContent : function() {\r
- return EditorManager.activeEditor.getContent();\r
- },\r
-\r
- getParentElement : function(n, na, f) {\r
- if (na)\r
- na = new RegExp('^(' + na.toUpperCase().replace(/,/g, '|') + ')$', 'g');\r
-\r
- return this._getDOM().getParent(n, function(n) {\r
- return n.nodeType == 1 && (!na || na.test(n.nodeName)) && (!f || f(n));\r
- }, this.activeEditor.getBody());\r
- },\r
-\r
- importPluginLanguagePack : function(n) {\r
- tinymce.PluginManager.requireLangPack(n);\r
- },\r
-\r
- getButtonHTML : function(cn, lang, img, c, u, v) {\r
- var ed = EditorManager.activeEditor;\r
-\r
- img = img.replace(/\{\$pluginurl\}/g, tinyMCE.pluginURL);\r
- img = img.replace(/\{\$themeurl\}/g, tinyMCE.themeURL);\r
- lang = lang.replace(/^lang_/g, '');\r
-\r
- return ed.controlManager.createButton(cn, {\r
- title : lang,\r
- command : c,\r
- ui : u,\r
- value : v,\r
- scope : this,\r
- 'class' : 'compat',\r
- image : img\r
- });\r
- },\r
-\r
- addSelectAccessibility : function(e, s, w) {\r
- // Add event handlers \r
- if (!s._isAccessible) {\r
- s.onkeydown = tinyMCE.accessibleEventHandler;\r
- s.onblur = tinyMCE.accessibleEventHandler;\r
- s._isAccessible = true;\r
- s._win = w;\r
- }\r
-\r
- return false;\r
- },\r
-\r
- accessibleEventHandler : function(e) {\r
- var elm, win = this._win;\r
-\r
- e = tinymce.isIE ? win.event : e;\r
- elm = tinymce.isIE ? e.srcElement : e.target;\r
-\r
- // Unpiggyback onchange on blur\r
- if (e.type == "blur") {\r
- if (elm.oldonchange) {\r
- elm.onchange = elm.oldonchange;\r
- elm.oldonchange = null;\r
- }\r
-\r
- return true;\r
- }\r
-\r
- // Piggyback onchange\r
- if (elm.nodeName == "SELECT" && !elm.oldonchange) {\r
- elm.oldonchange = elm.onchange;\r
- elm.onchange = null;\r
- }\r
-\r
- // Execute onchange and remove piggyback\r
- if (e.keyCode == 13 || e.keyCode == 32) {\r
- elm.onchange = elm.oldonchange;\r
- elm.onchange();\r
- elm.oldonchange = null;\r
-\r
- tinyMCE.cancelEvent(e);\r
- return false;\r
- }\r
-\r
- return true;\r
- },\r
-\r
- cancelEvent : function(e) {\r
- return tinymce.dom.Event.cancel(e);\r
- },\r
-\r
- handleVisualAid : function(e) {\r
- EditorManager.activeEditor.addVisual(e);\r
- },\r
-\r
- getAbsPosition : function(n, r) {\r
- return tinymce.DOM.getPos(n, r);\r
- },\r
-\r
- cleanupEventStr : function(s) {\r
- s = "" + s;\r
- s = s.replace('function anonymous()\n{\n', '');\r
- s = s.replace('\n}', '');\r
- s = s.replace(/^return true;/gi, ''); // Remove event blocker\r
-\r
- return s;\r
- },\r
-\r
- getVisualAidClass : function(s) {\r
- // TODO: Implement\r
- return s;\r
- },\r
-\r
- parseStyle : function(s) {\r
- return this._getDOM().parseStyle(s);\r
- },\r
-\r
- serializeStyle : function(s) {\r
- return this._getDOM().serializeStyle(s);\r
- },\r
-\r
- openWindow : function(tpl, args) {\r
- var ed = EditorManager.activeEditor, o = {}, n;\r
-\r
- // Convert name/value array to object\r
- for (n in tpl)\r
- o[n] = tpl[n];\r
-\r
- tpl = o;\r
-\r
- args = args || {};\r
- tpl.url = new tinymce.util.URI(tinymce.ThemeManager.themeURLs[ed.settings.theme]).toAbsolute(tpl.file);\r
- tpl.inline = tpl.inline || args.inline;\r
-\r
- ed.windowManager.open(tpl, args);\r
- },\r
-\r
- closeWindow : function(win) {\r
- EditorManager.activeEditor.windowManager.close(win);\r
- },\r
-\r
- getOuterHTML : function(e) {\r
- return tinymce.DOM.getOuterHTML(e);\r
- },\r
-\r
- setOuterHTML : function(e, h, d) {\r
- return tinymce.DOM.setOuterHTML(e, h, d);\r
- },\r
-\r
- hasPlugin : function(n) {\r
- return tinymce.PluginManager.get(n) != null;\r
- },\r
-\r
- _setEventsEnabled : function() {\r
- // Ignore it!!\r
- },\r
-\r
- addPlugin : function(pn, f) {\r
- var t = this;\r
-\r
- function PluginWrapper(ed) {\r
- tinyMCE.selectedInstance = ed;\r
-\r
- ed.onInit.add(function() {\r
- t.settings = ed.settings;\r
- t.settings['base_href'] = tinyMCE.documentBasePath;\r
- tinyMCE.settings = t.settings;\r
- tinyMCE.documentBasePath = ed.documentBasePath;\r
- //ed.formElement = DOM.get(ed.id);\r
-\r
- if (f.initInstance)\r
- f.initInstance(ed);\r
-\r
- ed.contentDocument = ed.getDoc();\r
- ed.contentWindow = ed.getWin();\r
- ed.undoRedo = ed.undoManager;\r
- ed.startContent = ed.getContent({format : 'raw'});\r
-\r
- tinyMCE.instances[ed.id] = ed;\r
- tinyMCE.loadedFiles = [];\r
- });\r
-\r
- ed.onActivate.add(function() {\r
- tinyMCE.settings = ed.settings;\r
- tinyMCE.selectedInstance = ed;\r
- });\r
-\r
- /* if (f.removeInstance) {\r
- ed.onDestroy.add(function() {\r
- return f.removeInstance(ed.id);\r
- });\r
- }*/\r
-\r
- if (f.handleNodeChange) {\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- f.handleNodeChange(ed.id, n, 0, 0, false, !ed.selection.isCollapsed());\r
- });\r
- }\r
-\r
- if (f.onChange) {\r
- ed.onChange.add(function(ed, n) {\r
- return f.onChange(ed);\r
- });\r
- }\r
-\r
- if (f.cleanup) {\r
- ed.onGetContent.add(function() {\r
- //f.cleanup(type, content, inst);\r
- });\r
- }\r
-\r
- this.getInfo = function() {\r
- return f.getInfo();\r
- };\r
-\r
- this.createControl = function(n) {\r
- tinyMCE.pluginURL = tinymce.baseURL + '/plugins/' + pn;\r
- tinyMCE.themeURL = tinymce.baseURL + '/themes/' + tinyMCE.activeEditor.settings.theme;\r
-\r
- if (f.getControlHTML)\r
- return f.getControlHTML(n);\r
-\r
- return null;\r
- };\r
-\r
- this.execCommand = function(cmd, ui, val) {\r
- if (f.execCommand)\r
- return f.execCommand(ed.id, ed.getBody(), cmd, ui, val);\r
-\r
- return false;\r
- };\r
- };\r
-\r
- tinymce.PluginManager.add(pn, PluginWrapper);\r
- },\r
-\r
- _getDOM : function() {\r
- return tinyMCE.activeEditor ? tinyMCE.activeEditor.dom : tinymce.DOM;\r
- },\r
-\r
- convertRelativeToAbsoluteURL : function(b, u) {\r
- return new tinymce.util.URI(b).toAbsolute(u);\r
- },\r
-\r
- convertAbsoluteURLToRelativeURL : function(b, u) {\r
- return new tinymce.util.URI(b).toRelative(u);\r
- }\r
- });\r
-\r
- // Extend Editor class\r
- tinymce.extend(tinymce.Editor.prototype, {\r
- getFocusElement : function() {\r
- return this.selection.getNode();\r
- },\r
-\r
- getData : function(n) {\r
- if (!this.data)\r
- this.data = [];\r
-\r
- if (!this.data[n])\r
- this.data[n] = [];\r
-\r
- return this.data[n];\r
- },\r
-\r
- hasPlugin : function(n) {\r
- return this.plugins[n] != null;\r
- },\r
-\r
- getContainerWin : function() {\r
- return window;\r
- },\r
-\r
- getHTML : function(raw) {\r
- return this.getContent({ format : raw ? 'raw' : 'html'});\r
- },\r
-\r
- setHTML : function(h) {\r
- this.setContent(h);\r
- },\r
-\r
- getSel : function() {\r
- return this.selection.getSel();\r
- },\r
-\r
- getRng : function() {\r
- return this.selection.getRng();\r
- },\r
-\r
- isHidden : function() {\r
- var s;\r
-\r
- if (!tinymce.isGecko)\r
- return false;\r
-\r
- s = this.getSel();\r
-\r
- // Weird, wheres that cursor selection?\r
- return (!s || !s.rangeCount || s.rangeCount == 0);\r
- },\r
-\r
- translate : function(s) {\r
- var c = this.settings.language, o;\r
-\r
- if (!s)\r
- return s;\r
-\r
- o = tinymce.EditorManager.i18n[c + '.' + s] || s.replace(/{\#([^}]+)\}/g, function(a, b) {\r
- return tinymce.EditorManager.i18n[c + '.' + b] || '{#' + b + '}';\r
- });\r
-\r
- o = o.replace(/{\$lang_([^}]+)\}/g, function(a, b) {\r
- return tinymce.EditorManager.i18n[c + '.' + b] || '{$lang_' + b + '}';\r
- });\r
-\r
- return o;\r
- },\r
-\r
- repaint : function() {\r
- this.execCommand('mceRepaint');\r
- }\r
- });\r
-\r
- // Extend selection\r
- tinymce.extend(tinymce.dom.Selection.prototype, {\r
- getSelectedText : function() {\r
- return this.getContent({format : 'text'});\r
- },\r
-\r
- getSelectedHTML : function() {\r
- return this.getContent({format : 'html'});\r
- },\r
-\r
- getFocusElement : function() {\r
- return this.getNode();\r
- },\r
-\r
- selectNode : function(node, collapse, select_text_node, to_start) {\r
- var t = this;\r
-\r
- t.select(node, select_text_node || 0);\r
-\r
- if (!is(collapse))\r
- collapse = true;\r
-\r
- if (collapse) {\r
- if (!is(to_start))\r
- to_start = true;\r
-\r
- t.collapse(to_start);\r
- }\r
- }\r
- });\r
- }).call(this);\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('compat2x', tinymce.plugins.Compat2x);\r
-})();\r
-\r
+++ /dev/null
-(function(){var Event=tinymce.dom.Event,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.ContextMenu',{init:function(ed){var t=this;t.editor=ed;t.onContextMenu=new tinymce.util.Dispatcher(this);ed.onContextMenu.add(function(ed,e){if(!e.ctrlKey){t._getMenu(ed).showMenu(e.clientX,e.clientY);Event.add(ed.getDoc(),'click',hide);Event.cancel(e);}});function hide(){if(t._menu){t._menu.removeAll();t._menu.destroy();Event.remove(ed.getDoc(),'click',hide);}};ed.onMouseDown.add(hide);ed.onKeyDown.add(hide);},getInfo:function(){return{longname:'Contextmenu',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getMenu:function(ed){var t=this,m=t._menu,se=ed.selection,col=se.isCollapsed(),el=se.getNode()||ed.getBody(),am,p1,p2;if(m){m.removeAll();m.destroy();}p1=DOM.getPos(ed.getContentAreaContainer());p2=DOM.getPos(ed.getContainer());m=ed.controlManager.createDropMenu('contextmenu',{offset_x:p1.x+ed.getParam('contextmenu_offset_x',0),offset_y:p1.y+ed.getParam('contextmenu_offset_y',0),constrain:1});t._menu=m;m.add({title:'advanced.cut_desc',icon:'cut',cmd:'Cut'}).setDisabled(col);m.add({title:'advanced.copy_desc',icon:'copy',cmd:'Copy'}).setDisabled(col);m.add({title:'advanced.paste_desc',icon:'paste',cmd:'Paste'});if((el.nodeName=='A'&&!ed.dom.getAttrib(el,'name'))||!col){m.addSeparator();m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});}m.addSeparator();m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();am=m.addMenu({title:'contextmenu.align'});am.add({title:'contextmenu.left',icon:'justifyleft',cmd:'JustifyLeft'});am.add({title:'contextmenu.center',icon:'justifycenter',cmd:'JustifyCenter'});am.add({title:'contextmenu.right',icon:'justifyright',cmd:'JustifyRight'});am.add({title:'contextmenu.full',icon:'justifyfull',cmd:'JustifyFull'});t.onContextMenu.dispatch(t,m,el,col);return m;}});tinymce.PluginManager.add('contextmenu',tinymce.plugins.ContextMenu);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 848 2008-05-15 11:54:40Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;\r
-\r
- tinymce.create('tinymce.plugins.ContextMenu', {\r
- init : function(ed) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
- t.onContextMenu = new tinymce.util.Dispatcher(this);\r
-\r
- ed.onContextMenu.add(function(ed, e) {\r
- if (!e.ctrlKey) {\r
- t._getMenu(ed).showMenu(e.clientX, e.clientY);\r
- Event.add(ed.getDoc(), 'click', hide);\r
- Event.cancel(e);\r
- }\r
- });\r
-\r
- function hide() {\r
- if (t._menu) {\r
- t._menu.removeAll();\r
- t._menu.destroy();\r
- Event.remove(ed.getDoc(), 'click', hide);\r
- }\r
- };\r
-\r
- ed.onMouseDown.add(hide);\r
- ed.onKeyDown.add(hide);\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Contextmenu',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- _getMenu : function(ed) {\r
- var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p1, p2;\r
-\r
- if (m) {\r
- m.removeAll();\r
- m.destroy();\r
- }\r
-\r
- p1 = DOM.getPos(ed.getContentAreaContainer());\r
- p2 = DOM.getPos(ed.getContainer());\r
-\r
- m = ed.controlManager.createDropMenu('contextmenu', {\r
- offset_x : p1.x + ed.getParam('contextmenu_offset_x', 0),\r
- offset_y : p1.y + ed.getParam('contextmenu_offset_y', 0),\r
- constrain : 1\r
- });\r
-\r
- t._menu = m;\r
-\r
- m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);\r
- m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);\r
- m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'});\r
-\r
- if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {\r
- m.addSeparator();\r
- m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});\r
- m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});\r
- }\r
-\r
- m.addSeparator();\r
- m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});\r
-\r
- m.addSeparator();\r
- am = m.addMenu({title : 'contextmenu.align'});\r
- am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});\r
- am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});\r
- am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});\r
- am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});\r
-\r
- t.onContextMenu.dispatch(t, m, el, col);\r
-\r
- return m;\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu);\r
-})();
\ No newline at end of file
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Directionality',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceDirectionLTR',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="ltr")ed.dom.setAttrib(e,"dir","ltr");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addCommand('mceDirectionRTL',function(){var e=ed.dom.getParent(ed.selection.getNode(),ed.dom.isBlock);if(e){if(ed.dom.getAttrib(e,"dir")!="rtl")ed.dom.setAttrib(e,"dir","rtl");else ed.dom.setAttrib(e,"dir","");}ed.nodeChanged();});ed.addButton('ltr',{title:'directionality.ltr_desc',cmd:'mceDirectionLTR'});ed.addButton('rtl',{title:'directionality.rtl_desc',cmd:'mceDirectionRTL'});ed.onNodeChange.add(t._nodeChange,t);},getInfo:function(){return{longname:'Directionality',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var dom=ed.dom,dir;n=dom.getParent(n,dom.isBlock);if(!n){cm.setDisabled('ltr',1);cm.setDisabled('rtl',1);return;}dir=dom.getAttrib(n,'dir');cm.setActive('ltr',dir=="ltr");cm.setDisabled('ltr',0);cm.setActive('rtl',dir=="rtl");cm.setDisabled('rtl',0);}});tinymce.PluginManager.add('directionality',tinymce.plugins.Directionality);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.Directionality', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- ed.addCommand('mceDirectionLTR', function() {\r
- var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
-\r
- if (e) {\r
- if (ed.dom.getAttrib(e, "dir") != "ltr")\r
- ed.dom.setAttrib(e, "dir", "ltr");\r
- else\r
- ed.dom.setAttrib(e, "dir", "");\r
- }\r
-\r
- ed.nodeChanged();\r
- });\r
-\r
- ed.addCommand('mceDirectionRTL', function() {\r
- var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);\r
-\r
- if (e) {\r
- if (ed.dom.getAttrib(e, "dir") != "rtl")\r
- ed.dom.setAttrib(e, "dir", "rtl");\r
- else\r
- ed.dom.setAttrib(e, "dir", "");\r
- }\r
-\r
- ed.nodeChanged();\r
- });\r
-\r
- ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});\r
- ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});\r
-\r
- ed.onNodeChange.add(t._nodeChange, t);\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Directionality',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _nodeChange : function(ed, cm, n) {\r
- var dom = ed.dom, dir;\r
-\r
- n = dom.getParent(n, dom.isBlock);\r
- if (!n) {\r
- cm.setDisabled('ltr', 1);\r
- cm.setDisabled('rtl', 1);\r
- return;\r
- }\r
-\r
- dir = dom.getAttrib(n, 'dir');\r
- cm.setActive('ltr', dir == "ltr");\r
- cm.setDisabled('ltr', 0);\r
- cm.setActive('rtl', dir == "rtl");\r
- cm.setDisabled('rtl', 0);\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);\r
-})();
\ No newline at end of file
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.EmotionsPlugin',{init:function(ed,url){ed.addCommand('mceEmotion',function(){ed.windowManager.open({file:url+'/emotions.htm',width:250+parseInt(ed.getLang('emotions.delta_width',0)),height:160+parseInt(ed.getLang('emotions.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('emotions',{title:'emotions.emotions_desc',cmd:'mceEmotion'});},getInfo:function(){return{longname:'Emotions',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('emotions',tinymce.plugins.EmotionsPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.EmotionsPlugin', {\r
- init : function(ed, url) {\r
- // Register commands\r
- ed.addCommand('mceEmotion', function() {\r
- ed.windowManager.open({\r
- file : url + '/emotions.htm',\r
- width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),\r
- height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Emotions',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#emotions_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/emotions.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
- <div align="center">\r
- <div class="title">{#emotions_dlg.title}:<br /><br /></div>\r
-\r
- <table border="0" cellspacing="0" cellpadding="4">\r
- <tr>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-cool.gif','emotions_dlg.cool');"><img src="img/smiley-cool.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cool}" title="{#emotions_dlg.cool}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-cry.gif','emotions_dlg.cry');"><img src="img/smiley-cry.gif" width="18" height="18" border="0" alt="{#emotions_dlg.cry}" title="{#emotions_dlg.cry}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-embarassed.gif','emotions_dlg.embarassed');"><img src="img/smiley-embarassed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.embarassed}" title="{#emotions_dlg.embarassed}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-foot-in-mouth.gif','emotions_dlg.foot_in_mouth');"><img src="img/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.foot_in_mouth}" title="{#emotions_dlg.foot_in_mouth}" /></a></td>\r
- </tr>\r
- <tr>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-frown.gif','emotions_dlg.frown');"><img src="img/smiley-frown.gif" width="18" height="18" border="0" alt="{#emotions_dlg.frown}" title="{#emotions_dlg.frown}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-innocent.gif','emotions_dlg.innocent');"><img src="img/smiley-innocent.gif" width="18" height="18" border="0" alt="{#emotions_dlg.innocent}" title="{#emotions_dlg.innocent}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-kiss.gif','emotions_dlg.kiss');"><img src="img/smiley-kiss.gif" width="18" height="18" border="0" alt="{#emotions_dlg.kiss}" title="{#emotions_dlg.kiss}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-laughing.gif','emotions_dlg.laughing');"><img src="img/smiley-laughing.gif" width="18" height="18" border="0" alt="{#emotions_dlg.laughing}" title="{#emotions_dlg.laughing}" /></a></td>\r
- </tr>\r
- <tr>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-money-mouth.gif','emotions_dlg.money_mouth');"><img src="img/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{#emotions_dlg.money_mouth}" title="{#emotions_dlg.money_mouth}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-sealed.gif','emotions_dlg.sealed');"><img src="img/smiley-sealed.gif" width="18" height="18" border="0" alt="{#emotions_dlg.sealed}" title="{#emotions_dlg.sealed}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-smile.gif','emotions_dlg.smile');"><img src="img/smiley-smile.gif" width="18" height="18" border="0" alt="{#emotions_dlg.smile}" title="{#emotions_dlg.smile}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-surprised.gif','emotions_dlg.surprised');"><img src="img/smiley-surprised.gif" width="18" height="18" border="0" alt="{#emotions_dlg.surprised}" title="{#emotions_dlg.surprised}" /></a></td>\r
- </tr>\r
- <tr>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-tongue-out.gif','emotions_dlg.tongue_out');"><img src="img/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{#emotions_dlg.tongue-out}" title="{#emotions_dlg.tongue_out}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-undecided.gif','emotions_dlg.undecided');"><img src="img/smiley-undecided.gif" width="18" height="18" border="0" alt="{#emotions_dlg.undecided}" title="{#emotions_dlg.undecided}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-wink.gif','emotions_dlg.wink');"><img src="img/smiley-wink.gif" width="18" height="18" border="0" alt="{#emotions_dlg.wink}" title="{#emotions_dlg.wink}" /></a></td>\r
- <td><a href="javascript:EmotionsDialog.insert('smiley-yell.gif','emotions_dlg.yell');"><img src="img/smiley-yell.gif" width="18" height="18" border="0" alt="{#emotions_dlg.yell}" title="{#emotions_dlg.yell}" /></a></td>\r
- </tr>\r
- </table>\r
- </div>\r
-</body>\r
-</html>\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var EmotionsDialog = {\r
- init : function(ed) {\r
- tinyMCEPopup.resizeToInnerSize();\r
- },\r
-\r
- insert : function(file, title) {\r
- var ed = tinyMCEPopup.editor, dom = ed.dom;\r
-\r
- tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {\r
- src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,\r
- alt : ed.getLang(title),\r
- title : ed.getLang(title),\r
- border : 0\r
- }));\r
-\r
- tinyMCEPopup.close();\r
- }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);\r
+++ /dev/null
-tinyMCE.addI18n('en.emotions_dlg',{\r
-title:"Insert emotion",\r
-desc:"Emotions",\r
-cool:"Cool",\r
-cry:"Cry",\r
-embarassed:"Embarassed",\r
-foot_in_mouth:"Foot in mouth",\r
-frown:"Frown",\r
-innocent:"Innocent",\r
-kiss:"Kiss",\r
-laughing:"Laughing",\r
-money_mouth:"Money mouth",\r
-sealed:"Sealed",\r
-smile:"Smile",\r
-surprised:"Surprised",\r
-tongue_out:"Tongue out",\r
-undecided:"Undecided",\r
-wink:"Wink",\r
-yell:"Yell"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#example_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/dialog.js"></script>\r
-</head>\r
-<body>\r
-\r
-<form onsubmit="ExampleDialog.insert();return false;" action="#">\r
- <p>Here is a example dialog.</p>\r
- <p>Selected text: <input id="someval" name="someval" type="text" class="text" /></p>\r
- <p>Custom arg: <input id="somearg" name="somearg" type="text" class="text" /></p>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="button" id="insert" name="insert" value="{#insert}" onclick="ExampleDialog.insert();" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.PluginManager.requireLangPack('example');tinymce.create('tinymce.plugins.ExamplePlugin',{init:function(ed,url){ed.addCommand('mceExample',function(){ed.windowManager.open({file:url+'/dialog.htm',width:320+parseInt(ed.getLang('example.delta_width',0)),height:120+parseInt(ed.getLang('example.delta_height',0)),inline:1},{plugin_url:url,some_custom_arg:'custom arg'});});ed.addButton('example',{title:'example.desc',cmd:'mceExample',image:url+'/img/example.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('example',n.nodeName=='IMG');});},createControl:function(n,cm){return null;},getInfo:function(){return{longname:'Example plugin',author:'Some author',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',version:"1.0"};}});tinymce.PluginManager.add('example',tinymce.plugins.ExamplePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- // Load plugin specific language pack\r
- tinymce.PluginManager.requireLangPack('example');\r
-\r
- tinymce.create('tinymce.plugins.ExamplePlugin', {\r
- /**\r
- * Initializes the plugin, this will be executed after the plugin has been created.\r
- * This call is done before the editor instance has finished it's initialization so use the onInit event\r
- * of the editor instance to intercept that event.\r
- *\r
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.\r
- * @param {string} url Absolute URL to where the plugin is located.\r
- */\r
- init : function(ed, url) {\r
- // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');\r
- ed.addCommand('mceExample', function() {\r
- ed.windowManager.open({\r
- file : url + '/dialog.htm',\r
- width : 320 + parseInt(ed.getLang('example.delta_width', 0)),\r
- height : 120 + parseInt(ed.getLang('example.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url, // Plugin absolute URL\r
- some_custom_arg : 'custom arg' // Custom argument\r
- });\r
- });\r
-\r
- // Register example button\r
- ed.addButton('example', {\r
- title : 'example.desc',\r
- cmd : 'mceExample',\r
- image : url + '/img/example.gif'\r
- });\r
-\r
- // Add a node change handler, selects the button in the UI when a image is selected\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- cm.setActive('example', n.nodeName == 'IMG');\r
- });\r
- },\r
-\r
- /**\r
- * Creates control instances based in the incomming name. This method is normally not\r
- * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons\r
- * but you sometimes need to create more complex controls like listboxes, split buttons etc then this\r
- * method can be used to create those.\r
- *\r
- * @param {String} n Name of the control to create.\r
- * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.\r
- * @return {tinymce.ui.Control} New control instance or null if no control was created.\r
- */\r
- createControl : function(n, cm) {\r
- return null;\r
- },\r
-\r
- /**\r
- * Returns information about the plugin as a name/value array.\r
- * The current keys are longname, author, authorurl, infourl and version.\r
- *\r
- * @return {Object} Name/value array containing information about the plugin.\r
- */\r
- getInfo : function() {\r
- return {\r
- longname : 'Example plugin',\r
- author : 'Some author',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',\r
- version : "1.0"\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var ExampleDialog = {\r
- init : function() {\r
- var f = document.forms[0];\r
-\r
- // Get the selected contents as text and place it in the input\r
- f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});\r
- f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');\r
- },\r
-\r
- insert : function() {\r
- // Insert the contents from the input into the document\r
- tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);\r
- tinyMCEPopup.close();\r
- }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);\r
+++ /dev/null
-tinyMCE.addI18n('en.example',{\r
- desc : 'This is just a template button'\r
-});\r
+++ /dev/null
-tinyMCE.addI18n('en.example_dlg',{\r
- title : 'This is just a example title'\r
-});\r
+++ /dev/null
-/* Hide the advanced tab */\r
-#advanced_tab {\r
- display: none;\r
-}\r
-\r
-#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright {\r
- width: 280px;\r
-}\r
-\r
-#doctype, #docencoding {\r
- width: 200px;\r
-}\r
-\r
-#langcode {\r
- width: 30px;\r
-}\r
-\r
-#bgimage {\r
- width: 220px; \r
-}\r
-\r
-#fontface {\r
- width: 240px;\r
-}\r
-\r
-#leftmargin, #rightmargin, #topmargin, #bottommargin {\r
- width: 50px;\r
-}\r
-\r
-.panel_wrapper div.current {\r
- height: 400px;\r
-}\r
-\r
-#stylesheet, #style {\r
- width: 240px;\r
-}\r
-\r
-/* Head list classes */\r
-\r
-.headlistwrapper {\r
- width: 100%;\r
-}\r
-\r
-.addbutton, .removebutton, .moveupbutton, .movedownbutton {\r
- border-top: 1px solid;\r
- border-left: 1px solid;\r
- border-bottom: 1px solid;\r
- border-right: 1px solid;\r
- border-color: #F0F0EE;\r
- cursor: default;\r
- display: block;\r
- width: 20px;\r
- height: 20px;\r
-}\r
-\r
-#doctypes {\r
- width: 200px;\r
-}\r
-\r
-.addbutton:hover, .removebutton:hover, .moveupbutton:hover, .movedownbutton:hover {\r
- border: 1px solid #0A246A;\r
- background-color: #B6BDD2;\r
-}\r
-\r
-.addbutton {\r
- background-image: url('../images/add.gif');\r
- float: left;\r
- margin-right: 3px;\r
-}\r
-\r
-.removebutton {\r
- background-image: url('../images/remove.gif');\r
- float: left;\r
-}\r
-\r
-.moveupbutton {\r
- background-image: url('../images/move_up.gif');\r
- float: left;\r
- margin-right: 3px;\r
-}\r
-\r
-.movedownbutton {\r
- background-image: url('../images/move_down.gif');\r
- float: left;\r
-}\r
-\r
-.selected {\r
- border: 1px solid #0A246A;\r
- background-color: #B6BDD2;\r
-}\r
-\r
-.toolbar {\r
- width: 100%;\r
-}\r
-\r
-#headlist {\r
- width: 100%;\r
- margin-top: 3px;\r
- font-size: 11px;\r
-}\r
-\r
-#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element {\r
- display: none;\r
-}\r
-\r
-#addmenu {\r
- position: absolute;\r
- border: 1px solid gray;\r
- display: none;\r
- z-index: 100;\r
- background-color: white;\r
-}\r
-\r
-#addmenu a {\r
- display: block;\r
- width: 100%;\r
- line-height: 20px;\r
- text-decoration: none;\r
- background-color: white;\r
-}\r
-\r
-#addmenu a:hover {\r
- background-color: #B6BDD2;\r
- color: black;\r
-}\r
-\r
-#addmenu span {\r
- padding-left: 10px;\r
- padding-right: 10px;\r
-}\r
-\r
-#updateElementPanel {\r
- display: none;\r
-}\r
-\r
-#script_element .panel_wrapper div.current {\r
- height: 108px;\r
-}\r
-\r
-#style_element .panel_wrapper div.current {\r
- height: 108px;\r
-}\r
-\r
-#link_element .panel_wrapper div.current {\r
- height: 140px;\r
-}\r
-\r
-#element_script_value {\r
- width: 100%;\r
- height: 100px;\r
-}\r
-\r
-#element_comment_value {\r
- width: 100%;\r
- height: 120px;\r
-}\r
-\r
-#element_style_value {\r
- width: 100%;\r
- height: 100px;\r
-}\r
-\r
-#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title {\r
- width: 250px;\r
-}\r
-\r
-.updateElementButton {\r
- margin-top: 3px;\r
-}\r
-\r
-/* MSIE specific styles */\r
-\r
-* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton {\r
- width: 22px;\r
- height: 22px;\r
-}\r
-\r
-textarea {\r
- height: 55px;\r
-}\r
-\r
-.panel_wrapper div.current {height:420px;}
\ No newline at end of file
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.FullPagePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceFullPageProperties',function(){ed.windowManager.open({file:url+'/fullpage.htm',width:430+parseInt(ed.getLang('fullpage.delta_width',0)),height:495+parseInt(ed.getLang('fullpage.delta_height',0)),inline:1},{plugin_url:url,head_html:t.head});});ed.addButton('fullpage',{title:'fullpage.desc',cmd:'mceFullPageProperties'});ed.onBeforeSetContent.add(t._setContent,t);ed.onSetContent.add(t._setBodyAttribs,t);ed.onGetContent.add(t._getContent,t);},getInfo:function(){return{longname:'Fullpage',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_setBodyAttribs:function(ed,o){var bdattr,i,len,kv,k,v,t,attr=this.head.match(/body(.*?)>/i);if(attr&&attr[1]){bdattr=attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);for(i=0,len=bdattr.length;i<len;i++){kv=bdattr[i].split('=');k=kv[0].replace(/\s/,'');v=kv[1];if(v){v=v.replace(/^\s+/,'').replace(/\s+$/,'');t=v.match(/^["'](.*)["']$/);if(t)v=t[1];}else v=k;ed.dom.setAttrib(ed.getBody(),'style',v);}}},_createSerializer:function(){return new tinymce.dom.Serializer({dom:this.editor.dom,apply_source_formatting:true});},_setContent:function(ed,o){var t=this,sp,ep,c=o.content,v,st='';c=c.replace(/<(\/?)BODY/gi,'<$1body');sp=c.indexOf('<body');if(sp!=-1){sp=c.indexOf('>',sp);t.head=c.substring(0,sp+1);ep=c.indexOf('</body',sp);if(ep==-1)ep=c.indexOf('</body',ep);o.content=c.substring(sp+1,ep);t.foot=c.substring(ep);function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase();})};t.head=low(t.head);t.foot=low(t.foot);}else{t.head='';if(ed.getParam('fullpage_default_xml_pi'))t.head+='<?xml version="1.0" encoding="'+ed.getParam('fullpage_default_encoding','ISO-8859-1')+'" ?>\n';t.head+=ed.getParam('fullpage_default_doctype','<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');t.head+='\n<html>\n<head>\n<title>'+ed.getParam('fullpage_default_title','Untitled document')+'</title>\n';if(v=ed.getParam('fullpage_default_encoding'))t.head+='<meta http-equiv="Content-Type" content="'+v+'" />\n';if(v=ed.getParam('fullpage_default_font_family'))st+='font-family: '+v+';';if(v=ed.getParam('fullpage_default_font_size'))st+='font-size: '+v+';';if(v=ed.getParam('fullpage_default_text_color'))st+='color: '+v+';';t.head+='</head>\n<body'+(st?' style="'+st+'"':'')+'>\n';t.foot='\n</body>\n</html>';}},_getContent:function(ed,o){var t=this;o.content=tinymce.trim(t.head)+'\n'+tinymce.trim(o.content)+'\n'+tinymce.trim(t.foot);}});tinymce.PluginManager.add('fullpage',tinymce.plugins.FullPagePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 827 2008-04-29 15:02:42Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.FullPagePlugin', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceFullPageProperties', function() {\r
- ed.windowManager.open({\r
- file : url + '/fullpage.htm',\r
- width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)),\r
- height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url,\r
- head_html : t.head\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'});\r
-\r
- ed.onBeforeSetContent.add(t._setContent, t);\r
- ed.onSetContent.add(t._setBodyAttribs, t);\r
- ed.onGetContent.add(t._getContent, t);\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Fullpage',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private plugin internal methods\r
-\r
- _setBodyAttribs : function(ed, o) {\r
- var bdattr, i, len, kv, k, v, t, attr = this.head.match(/body(.*?)>/i);\r
-\r
- if (attr && attr[1]) {\r
- bdattr = attr[1].match(/\s*(\w+\s*=\s*".*?"|\w+\s*=\s*'.*?'|\w+\s*=\s*\w+|\w+)\s*/g);\r
-\r
- for(i = 0, len = bdattr.length; i < len; i++) {\r
- kv = bdattr[i].split('=');\r
- k = kv[0].replace(/\s/,'');\r
- v = kv[1];\r
-\r
- if (v) {\r
- v = v.replace(/^\s+/,'').replace(/\s+$/,'');\r
- t = v.match(/^["'](.*)["']$/);\r
-\r
- if (t)\r
- v = t[1];\r
- } else\r
- v = k;\r
-\r
- ed.dom.setAttrib(ed.getBody(), 'style', v);\r
- }\r
- }\r
- },\r
-\r
- _createSerializer : function() {\r
- return new tinymce.dom.Serializer({\r
- dom : this.editor.dom,\r
- apply_source_formatting : true\r
- });\r
- },\r
-\r
- _setContent : function(ed, o) {\r
- var t = this, sp, ep, c = o.content, v, st = '';\r
-\r
- // Parse out head, body and footer\r
- c = c.replace(/<(\/?)BODY/gi, '<$1body');\r
- sp = c.indexOf('<body');\r
-\r
- if (sp != -1) {\r
- sp = c.indexOf('>', sp);\r
- t.head = c.substring(0, sp + 1);\r
-\r
- ep = c.indexOf('</body', sp);\r
- if (ep == -1)\r
- ep = c.indexOf('</body', ep);\r
-\r
- o.content = c.substring(sp + 1, ep);\r
- t.foot = c.substring(ep);\r
-\r
- function low(s) {\r
- return s.replace(/<\/?[A-Z]+/g, function(a) {\r
- return a.toLowerCase();\r
- })\r
- };\r
-\r
- t.head = low(t.head);\r
- t.foot = low(t.foot);\r
- } else {\r
- t.head = '';\r
- if (ed.getParam('fullpage_default_xml_pi'))\r
- t.head += '<?xml version="1.0" encoding="' + ed.getParam('fullpage_default_encoding', 'ISO-8859-1') + '" ?>\n';\r
-\r
- t.head += ed.getParam('fullpage_default_doctype', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">');\r
- t.head += '\n<html>\n<head>\n<title>' + ed.getParam('fullpage_default_title', 'Untitled document') + '</title>\n';\r
-\r
- if (v = ed.getParam('fullpage_default_encoding'))\r
- t.head += '<meta http-equiv="Content-Type" content="' + v + '" />\n';\r
-\r
- if (v = ed.getParam('fullpage_default_font_family'))\r
- st += 'font-family: ' + v + ';';\r
-\r
- if (v = ed.getParam('fullpage_default_font_size'))\r
- st += 'font-size: ' + v + ';';\r
-\r
- if (v = ed.getParam('fullpage_default_text_color'))\r
- st += 'color: ' + v + ';';\r
-\r
- t.head += '</head>\n<body' + (st ? ' style="' + st + '"' : '') + '>\n';\r
- t.foot = '\n</body>\n</html>';\r
- }\r
- },\r
-\r
- _getContent : function(ed, o) {\r
- var t = this;\r
-\r
- o.content = tinymce.trim(t.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(t.foot);\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#fullpage_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="js/fullpage.js"></script>\r
- <link href="css/fullpage.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="advlink" style="display: none">\r
- <form onsubmit="updateAction();return false;" name="fullpage" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="meta_tab" class="current"><span><a href="javascript:mcTabs.displayTab('meta_tab','meta_panel');" onmousedown="return false;">{#fullpage_dlg.meta_tab}</a></span></li>\r
- <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{#fullpage_dlg.appearance_tab}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="meta_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#fullpage_dlg.meta_props}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td nowrap="nowrap"><label for="metatitle">{#fullpage_dlg.meta_title}</label> </td>\r
- <td><input type="text" id="metatitle" name="metatitle" value="" class="mceFocus" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="metakeywords">{#fullpage_dlg.meta_keywords}</label> </td>\r
- <td><textarea id="metakeywords" name="metakeywords" rows="4"></textarea></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="metadescription">{#fullpage_dlg.meta_description}</label> </td>\r
- <td><textarea id="metadescription" name="metadescription" rows="4"></textarea></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="metaauthor">{#fullpage_dlg.author}</label> </td>\r
- <td><input type="text" id="metaauthor" name="metaauthor" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="metacopyright">{#fullpage_dlg.copyright}</label> </td>\r
- <td><input type="text" id="metacopyright" name="metacopyright" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="metarobots">{#fullpage_dlg.meta_robots}</label> </td>\r
- <td>\r
- <select id="metarobots" name="metarobots">\r
- <option value="">{#not_set}</option> \r
- <option value="index,follow">{#fullpage_dlg.meta_index_follow}</option>\r
- <option value="index,nofollow">{#fullpage_dlg.meta_index_nofollow}</option>\r
- <option value="noindex,follow">{#fullpage_dlg.meta_noindex_follow}</option>\r
- <option value="noindex,nofollow">{#fullpage_dlg.meta_noindex_nofollow}</option>\r
- </select>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#fullpage_dlg.langprops}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="docencoding">{#fullpage_dlg.encoding}</label></td> \r
- <td>\r
- <select id="docencoding" name="docencoding"> \r
- <option value="">{#not_set}</option>\r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="doctypes">{#fullpage_dlg.doctypes}</label> </td>\r
- <td>\r
- <select id="doctypes" name="doctypes">\r
- <option value="">{#not_set}</option>\r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="langcode">{#fullpage_dlg.langcode}</label> </td>\r
- <td><input type="text" id="langcode" name="langcode" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="langdir">{#fullpage_dlg.langdir}</label></td> \r
- <td>\r
- <select id="langdir" name="langdir"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#fullpage_dlg.ltr}</option> \r
- <option value="rtl">{#fullpage_dlg.rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="xml_pi">{#fullpage_dlg.xml_pi}</label> </td>\r
- <td><input type="checkbox" id="xml_pi" name="xml_pi" class="checkbox" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="appearance_panel" class="panel">\r
- <fieldset>\r
- <legend>{#fullpage_dlg.appearance_textprops}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="fontface">{#fullpage_dlg.fontface}</label></td> \r
- <td>\r
- <select id="fontface" name="fontface" onchange="changedStyleField(this);">\r
- <option value="">{#not_set}</option>\r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="fontsize">{#fullpage_dlg.fontsize}</label></td> \r
- <td>\r
- <select id="fontsize" name="fontsize" onchange="changedStyleField(this);">\r
- <option value="">{#not_set}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="textcolor">{#fullpage_dlg.textcolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="textcolor" name="textcolor" type="text" value="" size="9" onchange="updateColor('textcolor_pick','textcolor');changedStyleField(this);" /></td>\r
- <td id="textcolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#fullpage_dlg.appearance_bgprops}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="bgimage">{#fullpage_dlg.bgimage}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bgimage" name="bgimage" type="text" value="" onchange="changedStyleField(this);" /></td>\r
- <td id="bgimage_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="bgcolor">{#fullpage_dlg.bgcolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedStyleField(this);" /></td>\r
- <td id="bgcolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#fullpage_dlg.appearance_marginprops}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="leftmargin">{#fullpage_dlg.left_margin}</label></td> \r
- <td><input id="leftmargin" name="leftmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
- <td class="column1"><label for="rightmargin">{#fullpage_dlg.right_margin}</label></td> \r
- <td><input id="rightmargin" name="rightmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="topmargin">{#fullpage_dlg.top_margin}</label></td> \r
- <td><input id="topmargin" name="topmargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
- <td class="column1"><label for="bottommargin">{#fullpage_dlg.bottom_margin}</label></td> \r
- <td><input id="bottommargin" name="bottommargin" type="text" value="" onchange="changedStyleField(this);" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#fullpage_dlg.appearance_linkprops}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="link_color">{#fullpage_dlg.link_color}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="link_color" name="link_color" type="text" value="" size="9" onchange="updateColor('link_color_pick','link_color');changedStyleField(this);" /></td>\r
- <td id="link_color_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td class="column1"><label for="visited_color">{#fullpage_dlg.visited_color}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="visited_color" name="visited_color" type="text" value="" size="9" onchange="updateColor('visited_color_pick','visited_color');changedStyleField(this);" /></td>\r
- <td id="visited_color_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="active_color">{#fullpage_dlg.active_color}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="active_color" name="active_color" type="text" value="" size="9" onchange="updateColor('active_color_pick','active_color');changedStyleField(this);" /></td>\r
- <td id="active_color_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td> </td>\r
- <td> </td>\r
-\r
-<!-- <td class="column1"><label for="hover_color">{#fullpage_dlg.hover_color}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="hover_color" name="hover_color" type="text" value="" size="9" onchange="changedStyleField(this);" /></td>\r
- <td id="hover_color_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> -->\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#fullpage_dlg.appearance_style}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="stylesheet">{#fullpage_dlg.stylesheet}</label></td> \r
- <td><table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="stylesheet" name="stylesheet" type="text" value="" /></td>\r
- <td id="stylesheet_browsercontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="style">{#fullpage_dlg.style}</label></td> \r
- <td><input id="style" name="style" type="text" value="" onchange="changedStyleField(this);" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <div id="addmenu">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr><td><a href="javascript:addHeadElm('title');" onmousedown="return false;"><span>{#fullpage_dlg.add_title}</span></a></td></tr>\r
- <tr><td><a href="javascript:addHeadElm('meta');" onmousedown="return false;"><span>{#fullpage_dlg.add_meta}</span></a></td></tr>\r
- <tr><td><a href="javascript:addHeadElm('script');" onmousedown="return false;"><span>{#fullpage_dlg.add_script}</span></a></td></tr>\r
- <tr><td><a href="javascript:addHeadElm('style');" onmousedown="return false;"><span>{#fullpage_dlg.add_style}</span></a></td></tr>\r
- <tr><td><a href="javascript:addHeadElm('link');" onmousedown="return false;"><span>{#fullpage_dlg.add_link}</span></a></td></tr>\r
- <tr><td><a href="javascript:addHeadElm('base');" onmousedown="return false;"><span>{#fullpage_dlg.add_base}</span></a></td></tr>\r
- <tr><td><a href="javascript:addHeadElm('comment');" onmousedown="return false;"><span>{#fullpage_dlg.add_comment}</span></a></td></tr>\r
- </table>\r
- </div>\r
-\r
- <fieldset>\r
- <legend>{#fullpage_dlg.head_elements}</legend>\r
-\r
- <div class="headlistwrapper">\r
- <div class="toolbar">\r
- <div style="float: left">\r
- <a id="addbutton" href="javascript:showAddMenu();" onmousedown="return false;" class="addbutton" title="{#fullpage_dlg.add}"></a>\r
- <a href="#" onmousedown="return false;" class="removebutton" title="{#fullpage_dlg.remove}"></a>\r
- </div>\r
- <div style="float: right">\r
- <a href="#" onmousedown="return false;" class="moveupbutton" title="{#fullpage_dlg.moveup}"></a>\r
- <a href="#" onmousedown="return false;" class="movedownbutton" title="{#fullpage_dlg.movedown}"></a>\r
- </div>\r
- <br style="clear: both" />\r
- </div>\r
- <select id="headlist" size="26" onchange="updateHeadElm(this.options[this.selectedIndex].value);">\r
- <option value="title_0"><title>Some title bla bla bla</title></option>\r
- <option value="meta_1"><meta name="keywords">Some bla bla bla</meta></option>\r
- <option value="meta_2"><meta name="description">Some bla bla bla bla bla bla bla bla bla</meta></option>\r
- <option value="script_3"><script language="javascript">...</script></option>\r
- <option value="style_4"><style>...</style></option>\r
- <option value="base_5"><base href="." /></option>\r
- <option value="comment_6"><!-- ... --></option>\r
- <option value="link_7"><link href="." /></option>\r
- </select>\r
- </div>\r
- </fieldset>\r
-\r
- <fieldset id="meta_element">\r
- <legend>{#fullpage_dlg.meta_element}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_meta_type">{#fullpage_dlg.type}</label></td> \r
- <td><select id="element_meta_type">\r
- <option value="name">name</option>\r
- <option value="http-equiv">http-equiv</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_meta_name">{#fullpage_dlg.name}</label></td> \r
- <td><input id="element_meta_name" name="element_meta_name" type="text" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_meta_content">{#fullpage_dlg.content}</label></td> \r
- <td><input id="element_meta_content" name="element_meta_content" type="text" value="" /></td>\r
- </tr>\r
- </table>\r
-\r
- <input type="button" id="meta_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
-\r
- <fieldset id="title_element">\r
- <legend>{#fullpage_dlg.title_element}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_title">{#fullpage_dlg.meta_title}</label></td> \r
- <td><input id="element_title" name="element_title" type="text" value="" /></td>\r
- </tr>\r
- </table>\r
-\r
- <input type="button" id="title_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
-\r
- <fieldset id="script_element">\r
- <legend>{#fullpage_dlg.script_element}</legend>\r
-\r
- <div class="tabs">\r
- <ul>\r
- <li id="script_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('script_props_tab','script_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>\r
- <li id="script_value_tab"><span><a href="javascript:mcTabs.displayTab('script_value_tab','script_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <br style="clear: both" />\r
-\r
- <div class="panel_wrapper">\r
- <div id="script_props_panel" class="panel current">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_script_type">{#fullpage_dlg.type}</label></td> \r
- <td><select id="element_script_type">\r
- <option value="text/javascript">text/javascript</option>\r
- <option value="text/jscript">text/jscript</option>\r
- <option value="text/vbscript">text/vbscript</option>\r
- <option value="text/vbs">text/vbs</option>\r
- <option value="text/ecmascript">text/ecmascript</option>\r
- <option value="text/xml">text/xml</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_script_src">{#fullpage_dlg.src}</label></td> \r
- <td><table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="element_script_src" name="element_script_src" type="text" value="" /></td>\r
- <td id="script_src_pickcontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_script_charset">{#fullpage_dlg.charset}</label></td> \r
- <td><select id="element_script_charset"><option value="">{#not_set}</option></select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_script_defer">{#fullpage_dlg.defer}</label></td> \r
- <td><input type="checkbox" id="element_script_defer" name="element_script_defer" class="checkbox" /></td>\r
- </tr>\r
- </table>\r
- </div>\r
-\r
- <div id="script_value_panel" class="panel">\r
- <textarea id="element_script_value"></textarea>\r
- </div>\r
- </div>\r
-\r
- <input type="button" id="script_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
-\r
- <fieldset id="style_element">\r
- <legend>{#fullpage_dlg.style_element}</legend>\r
-\r
- <div class="tabs">\r
- <ul>\r
- <li id="style_props_tab" class="current"><span><a href="javascript:mcTabs.displayTab('style_props_tab','style_props_panel');" onmousedown="return false;">{#fullpage_dlg.properties}</a></span></li>\r
- <li id="style_value_tab"><span><a href="javascript:mcTabs.displayTab('style_value_tab','style_value_panel');" onmousedown="return false;">{#fullpage_dlg.value}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <br style="clear: both" />\r
-\r
- <div class="panel_wrapper">\r
- <div id="style_props_panel" class="panel current">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_style_type">{#fullpage_dlg.type}</label></td> \r
- <td><select id="element_style_type">\r
- <option value="text/css">text/css</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_style_media">{#fullpage_dlg.media}</label></td> \r
- <td><select id="element_style_media"></select></td>\r
- </tr>\r
- </table>\r
- </div>\r
-\r
- <div id="style_value_panel" class="panel">\r
- <textarea id="element_style_value"></textarea>\r
- </div>\r
- </div>\r
-\r
- <input type="button" id="style_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
-\r
- <fieldset id="base_element">\r
- <legend>{#fullpage_dlg.base_element}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_base_href">{#fullpage_dlg.href}</label></td> \r
- <td><input id="element_base_href" name="element_base_href" type="text" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_base_target">{#fullpage_dlg.target}</label></td> \r
- <td><input id="element_base_target" name="element_base_target" type="text" value="" /></td>\r
- </tr>\r
- </table>\r
-\r
- <input type="button" id="base_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
-\r
- <fieldset id="link_element">\r
- <legend>{#fullpage_dlg.link_element}</legend>\r
-\r
- <div class="tabs">\r
- <ul>\r
- <li id="link_general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('link_general_tab','link_general_panel');" onmousedown="return false;">{#fullpage_dlg.general_props}</a></span></li>\r
- <li id="link_advanced_tab"><span><a href="javascript:mcTabs.displayTab('link_advanced_tab','link_advanced_panel');" onmousedown="return false;">{#fullpage_dlg.advanced_props}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <br style="clear: both" />\r
-\r
- <div class="panel_wrapper">\r
- <div id="link_general_panel" class="panel current">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_link_href">{#fullpage_dlg.href}</label></td> \r
- <td><table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="element_link_href" name="element_link_href" type="text" value="" /></td>\r
- <td id="link_href_pickcontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_link_title">{#fullpage_dlg.meta_title}</label></td> \r
- <td><input id="element_link_title" name="element_link_title" type="text" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_link_type">{#fullpage_dlg.type}</label></td> \r
- <td><select id="element_link_type" name="element_link_type">\r
- <option value="text/css">text/css</option>\r
- <option value="text/javascript">text/javascript</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_link_media">{#fullpage_dlg.media}</label></td> \r
- <td><select id="element_link_media" name="element_link_media"></select></td>\r
- </tr>\r
- <tr>\r
- <td><label for="element_style_rel">{#fullpage_dlg.rel}</label></td>\r
- <td><select id="element_style_rel" name="element_style_rel"> \r
- <option value="">{#not_set}</option> \r
- <option value="stylesheet">Stylesheet</option>\r
- <option value="alternate">Alternate</option>\r
- <option value="designates">Designates</option>\r
- <option value="start">Start</option>\r
- <option value="next">Next</option>\r
- <option value="prev">Prev</option>\r
- <option value="contents">Contents</option>\r
- <option value="index">Index</option>\r
- <option value="glossary">Glossary</option>\r
- <option value="copyright">Copyright</option>\r
- <option value="chapter">Chapter</option>\r
- <option value="subsection">Subsection</option>\r
- <option value="appendix">Appendix</option>\r
- <option value="help">Help</option>\r
- <option value="bookmark">Bookmark</option>\r
- </select> \r
- </td>\r
- </tr>\r
- </table>\r
- </div>\r
-\r
- <div id="link_advanced_panel" class="panel">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td class="column1"><label for="element_link_charset">{#fullpage_dlg.charset}</label></td> \r
- <td><select id="element_link_charset"><option value="">{#not_set}</option></select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_link_hreflang">{#fullpage_dlg.hreflang}</label></td> \r
- <td><input id="element_link_hreflang" name="element_link_hreflang" type="text" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="element_link_target">{#fullpage_dlg.target}</label></td> \r
- <td><input id="element_link_target" name="element_link_target" type="text" value="" /></td>\r
- </tr>\r
- <tr>\r
- <td><label for="element_style_rev">{#fullpage_dlg.rev}</label></td>\r
- <td><select id="element_style_rev" name="element_style_rev"> \r
- <option value="">{#not_set}</option> \r
- <option value="alternate">Alternate</option> \r
- <option value="designates">Designates</option> \r
- <option value="stylesheet">Stylesheet</option> \r
- <option value="start">Start</option> \r
- <option value="next">Next</option> \r
- <option value="prev">Prev</option> \r
- <option value="contents">Contents</option> \r
- <option value="index">Index</option> \r
- <option value="glossary">Glossary</option> \r
- <option value="copyright">Copyright</option> \r
- <option value="chapter">Chapter</option> \r
- <option value="subsection">Subsection</option> \r
- <option value="appendix">Appendix</option> \r
- <option value="help">Help</option> \r
- <option value="bookmark">Bookmark</option> \r
- </select> \r
- </td>\r
- </tr>\r
- </table>\r
- </div>\r
- </div>\r
-\r
- <input type="button" id="link_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
-\r
- <fieldset id="comment_element">\r
- <legend>{#fullpage_dlg.comment_element}</legend>\r
-\r
- <textarea id="element_comment_value"></textarea>\r
-\r
- <input type="button" id="comment_updateelement" class="updateElementButton" name="update" value="{#update}" onclick="updateElement();" />\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="update" value="{#update}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var doc;\r
-\r
-var defaultDocTypes = \r
- 'XHTML 1.0 Transitional=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">,' +\r
- 'XHTML 1.0 Frameset=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">,' +\r
- 'XHTML 1.0 Strict=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">,' +\r
- 'XHTML 1.1=<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">,' +\r
- 'HTML 4.01 Transitional=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,' +\r
- 'HTML 4.01 Strict=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">,' +\r
- 'HTML 4.01 Frameset=<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">';\r
-\r
-var defaultEncodings = \r
- 'Western european (iso-8859-1)=iso-8859-1,' +\r
- 'Central European (iso-8859-2)=iso-8859-2,' +\r
- 'Unicode (UTF-8)=utf-8,' +\r
- 'Chinese traditional (Big5)=big5,' +\r
- 'Cyrillic (iso-8859-5)=iso-8859-5,' +\r
- 'Japanese (iso-2022-jp)=iso-2022-jp,' +\r
- 'Greek (iso-8859-7)=iso-8859-7,' +\r
- 'Korean (iso-2022-kr)=iso-2022-kr,' +\r
- 'ASCII (us-ascii)=us-ascii';\r
-\r
-var defaultMediaTypes = \r
- 'all=all,' +\r
- 'screen=screen,' +\r
- 'print=print,' +\r
- 'tty=tty,' +\r
- 'tv=tv,' +\r
- 'projection=projection,' +\r
- 'handheld=handheld,' +\r
- 'braille=braille,' +\r
- 'aural=aural';\r
-\r
-var defaultFontNames = '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 defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';\r
-\r
-function init() {\r
- var f = document.forms['fullpage'], el = f.elements, e, i, p, doctypes, encodings, mediaTypes, fonts, ed = tinyMCEPopup.editor, dom = tinyMCEPopup.dom, style;\r
-\r
- // Setup doctype select box\r
- doctypes = ed.getParam("fullpage_doctypes", defaultDocTypes).split(',');\r
- for (i=0; i<doctypes.length; i++) {\r
- p = doctypes[i].split('=');\r
-\r
- if (p.length > 1)\r
- addSelectValue(f, 'doctypes', p[0], p[1]);\r
- }\r
-\r
- // Setup fonts select box\r
- fonts = ed.getParam("fullpage_fonts", defaultFontNames).split(';');\r
- for (i=0; i<fonts.length; i++) {\r
- p = fonts[i].split('=');\r
-\r
- if (p.length > 1)\r
- addSelectValue(f, 'fontface', p[0], p[1]);\r
- }\r
-\r
- // Setup fontsize select box\r
- fonts = ed.getParam("fullpage_fontsizes", defaultFontSizes).split(',');\r
- for (i=0; i<fonts.length; i++)\r
- addSelectValue(f, 'fontsize', fonts[i], fonts[i]);\r
-\r
- // Setup mediatype select boxs\r
- mediaTypes = ed.getParam("fullpage_media_types", defaultMediaTypes).split(',');\r
- for (i=0; i<mediaTypes.length; i++) {\r
- p = mediaTypes[i].split('=');\r
-\r
- if (p.length > 1) {\r
- addSelectValue(f, 'element_style_media', p[0], p[1]);\r
- addSelectValue(f, 'element_link_media', p[0], p[1]);\r
- }\r
- }\r
-\r
- // Setup encodings select box\r
- encodings = ed.getParam("fullpage_encodings", defaultEncodings).split(',');\r
- for (i=0; i<encodings.length; i++) {\r
- p = encodings[i].split('=');\r
-\r
- if (p.length > 1) {\r
- addSelectValue(f, 'docencoding', p[0], p[1]);\r
- addSelectValue(f, 'element_script_charset', p[0], p[1]);\r
- addSelectValue(f, 'element_link_charset', p[0], p[1]);\r
- }\r
- }\r
-\r
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
- document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');\r
- //document.getElementById('hover_color_pickcontainer').innerHTML = getColorPickerHTML('hover_color_pick','hover_color');\r
- document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');\r
- document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');\r
- document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');\r
- document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');\r
- document.getElementById('link_href_pickcontainer').innerHTML = getBrowserHTML('link_href_browser','element_link_href','file','fullpage');\r
- document.getElementById('script_src_pickcontainer').innerHTML = getBrowserHTML('script_src_browser','element_script_src','file','fullpage');\r
- document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');\r
-\r
- // Resize some elements\r
- if (isVisible('stylesheetbrowser'))\r
- document.getElementById('stylesheet').style.width = '220px';\r
-\r
- if (isVisible('link_href_browser'))\r
- document.getElementById('element_link_href').style.width = '230px';\r
-\r
- if (isVisible('bgimage_browser'))\r
- document.getElementById('bgimage').style.width = '210px';\r
-\r
- // Add iframe\r
- dom.add(document.body, 'iframe', {id : 'documentIframe', src : 'javascript:""', style : {display : 'none'}});\r
- doc = dom.get('documentIframe').contentWindow.document;\r
- h = tinyMCEPopup.getWindowArg('head_html');\r
-\r
- // Preprocess the HTML disable scripts and urls\r
- h = h.replace(/<script>/gi, '<script type="text/javascript">');\r
- h = h.replace(/type=([\"\'])?/gi, 'type=$1-mce-');\r
- h = h.replace(/(src=|href=)/g, 'mce_$1');\r
-\r
- // Write in the content in the iframe\r
- doc.write(h + '</body></html>');\r
- doc.close();\r
-\r
- // Parse xml and doctype\r
- xmlVer = getReItem(/<\?\s*?xml.*?version\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);\r
- xmlEnc = getReItem(/<\?\s*?xml.*?encoding\s*?=\s*?"(.*?)".*?\?>/gi, h, 1);\r
- docType = getReItem(/<\!DOCTYPE.*?>/gi, h, 0);\r
- f.langcode.value = getReItem(/lang="(.*?)"/gi, h, 1);\r
-\r
- // Parse title\r
- if (e = doc.getElementsByTagName('title')[0])\r
- el.metatitle.value = e.textContent || e.text;\r
-\r
- // Parse meta\r
- tinymce.each(doc.getElementsByTagName('meta'), function(n) {\r
- var na = (n.getAttribute('name', 2) || '').toLowerCase(), va = n.getAttribute('content', 2), eq = n.getAttribute('httpEquiv', 2) || '';\r
-\r
- e = el['meta' + na];\r
-\r
- if (na == 'robots') {\r
- selectByValue(f, 'metarobots', tinymce.trim(va), true, true);\r
- return;\r
- }\r
-\r
- switch (eq.toLowerCase()) {\r
- case "content-type":\r
- tmp = getReItem(/charset\s*=\s*(.*)\s*/gi, va, 1);\r
-\r
- // Override XML encoding\r
- if (tmp != "")\r
- xmlEnc = tmp;\r
-\r
- return;\r
- }\r
-\r
- if (e)\r
- e.value = va;\r
- });\r
-\r
- selectByValue(f, 'doctypes', docType, true, true);\r
- selectByValue(f, 'docencoding', xmlEnc, true, true);\r
- selectByValue(f, 'langdir', doc.body.getAttribute('dir', 2) || '', true, true);\r
-\r
- if (xmlVer != '')\r
- el.xml_pi.checked = true;\r
-\r
- // Parse appearance\r
-\r
- // Parse primary stylesheet\r
- tinymce.each(doc.getElementsByTagName("link"), function(l) {\r
- var m = l.getAttribute('media', 2) || '', t = l.getAttribute('type', 2) || '';\r
-\r
- if (t == "-mce-text/css" && (m == "" || m == "screen" || m == "all") && (l.getAttribute('rel', 2) || '') == "stylesheet") {\r
- f.stylesheet.value = l.getAttribute('mce_href', 2) || '';\r
- return false;\r
- }\r
- });\r
-\r
- // Get from style elements\r
- tinymce.each(doc.getElementsByTagName("style"), function(st) {\r
- var tmp = parseStyleElement(st);\r
-\r
- for (x=0; x<tmp.length; x++) {\r
- if (tmp[x].rule.indexOf('a:visited') != -1 && tmp[x].data['color'])\r
- f.visited_color.value = tmp[x].data['color'];\r
-\r
- if (tmp[x].rule.indexOf('a:link') != -1 && tmp[x].data['color'])\r
- f.link_color.value = tmp[x].data['color'];\r
-\r
- if (tmp[x].rule.indexOf('a:active') != -1 && tmp[x].data['color'])\r
- f.active_color.value = tmp[x].data['color'];\r
- }\r
- });\r
-\r
- f.textcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "text");\r
- f.active_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "alink");\r
- f.link_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "link");\r
- f.visited_color.value = tinyMCEPopup.dom.getAttrib(doc.body, "vlink");\r
- f.bgcolor.value = tinyMCEPopup.dom.getAttrib(doc.body, "bgcolor");\r
- f.bgimage.value = tinyMCEPopup.dom.getAttrib(doc.body, "background");\r
-\r
- // Get from style info\r
- style = tinyMCEPopup.dom.parseStyle(tinyMCEPopup.dom.getAttrib(doc.body, 'style'));\r
-\r
- if (style['font-family'])\r
- selectByValue(f, 'fontface', style['font-family'], true, true);\r
- else\r
- selectByValue(f, 'fontface', ed.getParam("fullpage_default_fontface", ""), true, true);\r
-\r
- if (style['font-size'])\r
- selectByValue(f, 'fontsize', style['font-size'], true, true);\r
- else\r
- selectByValue(f, 'fontsize', ed.getParam("fullpage_default_fontsize", ""), true, true);\r
-\r
- if (style['color'])\r
- f.textcolor.value = convertRGBToHex(style['color']);\r
-\r
- if (style['background-image'])\r
- f.bgimage.value = style['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-\r
- if (style['background-color'])\r
- f.bgcolor.value = style['background-color'];\r
-\r
- if (style['margin']) {\r
- tmp = style['margin'].replace(/[^0-9 ]/g, '');\r
- tmp = tmp.split(/ +/);\r
- f.topmargin.value = tmp.length > 0 ? tmp[0] : '';\r
- f.rightmargin.value = tmp.length > 1 ? tmp[1] : tmp[0];\r
- f.bottommargin.value = tmp.length > 2 ? tmp[2] : tmp[0];\r
- f.leftmargin.value = tmp.length > 3 ? tmp[3] : tmp[0];\r
- }\r
-\r
- if (style['margin-left'])\r
- f.leftmargin.value = style['margin-left'].replace(/[^0-9]/g, '');\r
-\r
- if (style['margin-right'])\r
- f.rightmargin.value = style['margin-right'].replace(/[^0-9]/g, '');\r
-\r
- if (style['margin-top'])\r
- f.topmargin.value = style['margin-top'].replace(/[^0-9]/g, '');\r
-\r
- if (style['margin-bottom'])\r
- f.bottommargin.value = style['margin-bottom'].replace(/[^0-9]/g, '');\r
-\r
- f.style.value = tinyMCEPopup.dom.serializeStyle(style);\r
-\r
- // Update colors\r
- updateColor('textcolor_pick', 'textcolor');\r
- updateColor('bgcolor_pick', 'bgcolor');\r
- updateColor('visited_color_pick', 'visited_color');\r
- updateColor('active_color_pick', 'active_color');\r
- updateColor('link_color_pick', 'link_color');\r
-}\r
-\r
-function getReItem(r, s, i) {\r
- var c = r.exec(s);\r
-\r
- if (c && c.length > i)\r
- return c[i];\r
-\r
- return '';\r
-}\r
-\r
-function updateAction() {\r
- var f = document.forms[0], nl, i, h, v, s, head, html, l, tmp, addlink = true, ser;\r
-\r
- head = doc.getElementsByTagName('head')[0];\r
-\r
- // Fix scripts without a type\r
- nl = doc.getElementsByTagName('script');\r
- for (i=0; i<nl.length; i++) {\r
- if (tinyMCEPopup.dom.getAttrib(nl[i], 'mce_type') == '')\r
- nl[i].setAttribute('mce_type', 'text/javascript');\r
- }\r
-\r
- // Get primary stylesheet\r
- nl = doc.getElementsByTagName("link");\r
- for (i=0; i<nl.length; i++) {\r
- l = nl[i];\r
-\r
- tmp = tinyMCEPopup.dom.getAttrib(l, 'media');\r
-\r
- if (tinyMCEPopup.dom.getAttrib(l, 'mce_type') == "text/css" && (tmp == "" || tmp == "screen" || tmp == "all") && tinyMCEPopup.dom.getAttrib(l, 'rel') == "stylesheet") {\r
- addlink = false;\r
-\r
- if (f.stylesheet.value == '')\r
- l.parentNode.removeChild(l);\r
- else\r
- l.setAttribute('mce_href', f.stylesheet.value);\r
-\r
- break;\r
- }\r
- }\r
-\r
- // Add new link\r
- if (f.stylesheet.value != '') {\r
- l = doc.createElement('link');\r
-\r
- l.setAttribute('type', 'text/css');\r
- l.setAttribute('mce_href', f.stylesheet.value);\r
- l.setAttribute('rel', 'stylesheet');\r
-\r
- head.appendChild(l);\r
- }\r
-\r
- setMeta(head, 'keywords', f.metakeywords.value);\r
- setMeta(head, 'description', f.metadescription.value);\r
- setMeta(head, 'author', f.metaauthor.value);\r
- setMeta(head, 'copyright', f.metacopyright.value);\r
- setMeta(head, 'robots', getSelectValue(f, 'metarobots'));\r
- setMeta(head, 'Content-Type', getSelectValue(f, 'docencoding'));\r
-\r
- doc.body.dir = getSelectValue(f, 'langdir');\r
- doc.body.style.cssText = f.style.value;\r
-\r
- doc.body.setAttribute('vLink', f.visited_color.value);\r
- doc.body.setAttribute('link', f.link_color.value);\r
- doc.body.setAttribute('text', f.textcolor.value);\r
- doc.body.setAttribute('aLink', f.active_color.value);\r
-\r
- doc.body.style.fontFamily = getSelectValue(f, 'fontface');\r
- doc.body.style.fontSize = getSelectValue(f, 'fontsize');\r
- doc.body.style.backgroundColor = f.bgcolor.value;\r
-\r
- if (f.leftmargin.value != '')\r
- doc.body.style.marginLeft = f.leftmargin.value + 'px';\r
-\r
- if (f.rightmargin.value != '')\r
- doc.body.style.marginRight = f.rightmargin.value + 'px';\r
-\r
- if (f.bottommargin.value != '')\r
- doc.body.style.marginBottom = f.bottommargin.value + 'px';\r
-\r
- if (f.topmargin.value != '')\r
- doc.body.style.marginTop = f.topmargin.value + 'px';\r
-\r
- html = doc.getElementsByTagName('html')[0];\r
- html.setAttribute('lang', f.langcode.value);\r
- html.setAttribute('xml:lang', f.langcode.value);\r
-\r
- if (f.bgimage.value != '')\r
- doc.body.style.backgroundImage = "url('" + f.bgimage.value + "')";\r
- else\r
- doc.body.style.backgroundImage = '';\r
-\r
- ser = tinyMCEPopup.editor.plugins.fullpage._createSerializer();\r
- ser.setRules('-title,meta[http-equiv|name|content],base[href|target],link[href|rel|type|title|media],style[type],script[type|language|src],html[lang|xml::lang|xmlns],body[style|dir|vlink|link|text|alink],head');\r
-\r
- h = ser.serialize(doc.documentElement);\r
- h = h.substring(0, h.lastIndexOf('</body>'));\r
-\r
- if (h.indexOf('<title>') == -1)\r
- h = h.replace(/<head.*?>/, '$&\n' + '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');\r
- else\r
- h = h.replace(/<title>(.*?)<\/title>/, '<title>' + tinyMCEPopup.dom.encode(f.metatitle.value) + '</title>');\r
-\r
- if ((v = getSelectValue(f, 'doctypes')) != '')\r
- h = v + '\n' + h;\r
-\r
- if (f.xml_pi.checked) {\r
- s = '<?xml version="1.0"';\r
-\r
- if ((v = getSelectValue(f, 'docencoding')) != '')\r
- s += ' encoding="' + v + '"';\r
-\r
- s += '?>\n';\r
- h = s + h;\r
- }\r
-\r
- h = h.replace(/type=\"\-mce\-/gi, 'type="');\r
-\r
- tinyMCEPopup.editor.plugins.fullpage.head = h;\r
- tinyMCEPopup.editor.plugins.fullpage._setBodyAttribs(tinyMCEPopup.editor, {});\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function changedStyleField(field) {\r
-}\r
-\r
-function setMeta(he, k, v) {\r
- var nl, i, m;\r
-\r
- nl = he.getElementsByTagName('meta');\r
- for (i=0; i<nl.length; i++) {\r
- if (k == 'Content-Type' && tinyMCEPopup.dom.getAttrib(nl[i], 'http-equiv') == k) {\r
- if (v == '')\r
- nl[i].parentNode.removeChild(nl[i]);\r
- else\r
- nl[i].setAttribute('content', "text/html; charset=" + v);\r
-\r
- return;\r
- }\r
-\r
- if (tinyMCEPopup.dom.getAttrib(nl[i], 'name') == k) {\r
- if (v == '')\r
- nl[i].parentNode.removeChild(nl[i]);\r
- else\r
- nl[i].setAttribute('content', v);\r
- return;\r
- }\r
- }\r
-\r
- if (v == '')\r
- return;\r
-\r
- m = doc.createElement('meta');\r
-\r
- if (k == 'Content-Type')\r
- m.httpEquiv = k;\r
- else\r
- m.setAttribute('name', k);\r
-\r
- m.setAttribute('content', v);\r
- he.appendChild(m);\r
-}\r
-\r
-function parseStyleElement(e) {\r
- var v = e.innerHTML;\r
- var p, i, r;\r
-\r
- v = v.replace(/<!--/gi, '');\r
- v = v.replace(/-->/gi, '');\r
- v = v.replace(/[\n\r]/gi, '');\r
- v = v.replace(/\s+/gi, ' ');\r
-\r
- r = [];\r
- p = v.split(/{|}/);\r
-\r
- for (i=0; i<p.length; i+=2) {\r
- if (p[i] != "")\r
- r[r.length] = {rule : tinymce.trim(p[i]), data : tinyMCEPopup.dom.parseStyle(p[i+1])};\r
- }\r
-\r
- return r;\r
-}\r
-\r
-function serializeStyleElement(d) {\r
- var i, s, st;\r
-\r
- s = '<!--\n';\r
-\r
- for (i=0; i<d.length; i++) {\r
- s += d[i].rule + ' {\n';\r
-\r
- st = tinyMCE.serializeStyle(d[i].data);\r
-\r
- if (st != '')\r
- st += ';';\r
-\r
- s += st.replace(/;/g, ';\n');\r
- s += '}\n';\r
-\r
- if (i != d.length - 1)\r
- s += '\n';\r
- }\r
-\r
- s += '\n-->';\r
-\r
- return s;\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCE.addI18n('en.fullpage_dlg',{\r
-title:"Document properties",\r
-meta_tab:"General",\r
-appearance_tab:"Appearance",\r
-advanced_tab:"Advanced",\r
-meta_props:"Meta information",\r
-langprops:"Language and encoding",\r
-meta_title:"Title",\r
-meta_keywords:"Keywords",\r
-meta_description:"Description",\r
-meta_robots:"Robots",\r
-doctypes:"Doctype",\r
-langcode:"Language code",\r
-langdir:"Language direction",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-xml_pi:"XML declaration",\r
-encoding:"Character encoding",\r
-appearance_bgprops:"Background properties",\r
-appearance_marginprops:"Body margins",\r
-appearance_linkprops:"Link colors",\r
-appearance_textprops:"Text properties",\r
-bgcolor:"Background color",\r
-bgimage:"Background image",\r
-left_margin:"Left margin",\r
-right_margin:"Right margin",\r
-top_margin:"Top margin",\r
-bottom_margin:"Bottom margin",\r
-text_color:"Text color",\r
-font_size:"Font size",\r
-font_face:"Font face",\r
-link_color:"Link color",\r
-hover_color:"Hover color",\r
-visited_color:"Visited color",\r
-active_color:"Active color",\r
-textcolor:"Color",\r
-fontsize:"Font size",\r
-fontface:"Font family",\r
-meta_index_follow:"Index and follow the links",\r
-meta_index_nofollow:"Index and don't follow the links",\r
-meta_noindex_follow:"Do not index but follow the links",\r
-meta_noindex_nofollow:"Do not index and don\'t follow the links",\r
-appearance_style:"Stylesheet and style properties",\r
-stylesheet:"Stylesheet",\r
-style:"Style",\r
-author:"Author",\r
-copyright:"Copyright",\r
-add:"Add new element",\r
-remove:"Remove selected element",\r
-moveup:"Move selected element up",\r
-movedown:"Move selected element down",\r
-head_elements:"Head elements",\r
-info:"Information",\r
-add_title:"Title element",\r
-add_meta:"Meta element",\r
-add_script:"Script element",\r
-add_style:"Style element",\r
-add_link:"Link element",\r
-add_base:"Base element",\r
-add_comment:"Comment node",\r
-title_element:"Title element",\r
-script_element:"Script element",\r
-style_element:"Style element",\r
-base_element:"Base element",\r
-link_element:"Link element",\r
-meta_element:"Meta element",\r
-comment_element:"Comment",\r
-src:"Src",\r
-language:"Language",\r
-href:"Href",\r
-target:"Target",\r
-type:"Type",\r
-charset:"Charset",\r
-defer:"Defer",\r
-media:"Media",\r
-properties:"Properties",\r
-name:"Name",\r
-value:"Value",\r
-content:"Content",\r
-rel:"Rel",\r
-rev:"Rev",\r
-hreflang:"Href lang",\r
-general_props:"General",\r
-advanced_props:"Advanced"\r
-});
\ No newline at end of file
+++ /dev/null
-(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.plugins.FullScreenPlugin',{init:function(ed,url){var t=this,s={},vp;t.editor=ed;ed.addCommand('mceFullScreen',function(){var win,de=DOM.doc.documentElement;if(ed.getParam('fullscreen_is_enabled')){if(ed.getParam('fullscreen_new_window'))closeFullscreen();else{DOM.win.setTimeout(function(){tinymce.dom.Event.remove(DOM.win,'resize',t.resizeFunc);tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format:'raw'}),{format:'raw'});tinyMCE.remove(ed);DOM.remove('mce_fullscreen_container');de.style.overflow=ed.getParam('fullscreen_html_overflow');DOM.setStyle(DOM.doc.body,'overflow',ed.getParam('fullscreen_overflow'));DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'),ed.getParam('fullscreen_scrolly'));tinyMCE.settings=tinyMCE.oldSettings;},10);}return;}if(ed.getParam('fullscreen_new_window')){win=DOM.win.open(url+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{win.resizeTo(screen.availWidth,screen.availHeight);}catch(e){}}else{tinyMCE.oldSettings=tinyMCE.settings;s.fullscreen_overflow=DOM.getStyle(DOM.doc.body,'overflow',1)||'auto';s.fullscreen_html_overflow=DOM.getStyle(de,'overflow',1);vp=DOM.getViewPort();s.fullscreen_scrollx=vp.x;s.fullscreen_scrolly=vp.y;if(tinymce.isOpera&&s.fullscreen_overflow=='visible')s.fullscreen_overflow='auto';if(tinymce.isIE&&s.fullscreen_overflow=='scroll')s.fullscreen_overflow='auto';if(s.fullscreen_overflow=='0px')s.fullscreen_overflow='';DOM.setStyle(DOM.doc.body,'overflow','hidden');de.style.overflow='hidden';vp=DOM.getViewPort();DOM.win.scrollTo(0,0);if(tinymce.isIE)vp.h-=1;n=DOM.add(DOM.doc.body,'div',{id:'mce_fullscreen_container',style:'position:'+(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel)?'absolute':'fixed')+';top:0;left:0;width:'+vp.w+'px;height:'+vp.h+'px;z-index:200000;'});DOM.add(n,'div',{id:'mce_fullscreen'});tinymce.each(ed.settings,function(v,n){s[n]=v;});s.id='mce_fullscreen';s.width=n.clientWidth;s.height=n.clientHeight-15;s.fullscreen_is_enabled=true;s.fullscreen_editor_id=ed.id;s.theme_advanced_resizing=false;s.save_onsavecallback=function(){ed.setContent(tinyMCE.get(s.id).getContent({format:'raw'}),{format:'raw'});ed.execCommand('mceSave');};tinymce.each(ed.getParam('fullscreen_settings'),function(v,k){s[k]=v;});if(s.theme_advanced_toolbar_location==='external')s.theme_advanced_toolbar_location='top';t.fullscreenEditor=new tinymce.Editor('mce_fullscreen',s);t.fullscreenEditor.onInit.add(function(){t.fullscreenEditor.setContent(ed.getContent());t.fullscreenEditor.focus();});t.fullscreenEditor.render();tinyMCE.add(t.fullscreenEditor);t.fullscreenElement=new tinymce.dom.Element('mce_fullscreen_container');t.fullscreenElement.update();t.resizeFunc=tinymce.dom.Event.add(DOM.win,'resize',function(){var vp=tinymce.DOM.getViewPort();t.fullscreenEditor.theme.resizeTo(vp.w,vp.h);});}});ed.addButton('fullscreen',{title:'fullscreen.desc',cmd:'mceFullScreen'});ed.onNodeChange.add(function(ed,cm){cm.setActive('fullscreen',ed.getParam('fullscreen_is_enabled'));});},getInfo:function(){return{longname:'Fullscreen',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('fullscreen',tinymce.plugins.FullScreenPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 885 2008-06-22 19:23:20Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var DOM = tinymce.DOM;\r
-\r
- tinymce.create('tinymce.plugins.FullScreenPlugin', {\r
- init : function(ed, url) {\r
- var t = this, s = {}, vp;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceFullScreen', function() {\r
- var win, de = DOM.doc.documentElement;\r
-\r
- if (ed.getParam('fullscreen_is_enabled')) {\r
- if (ed.getParam('fullscreen_new_window'))\r
- closeFullscreen(); // Call to close in new window\r
- else {\r
- DOM.win.setTimeout(function() {\r
- tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);\r
- tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent({format : 'raw'}), {format : 'raw'});\r
- tinyMCE.remove(ed);\r
- DOM.remove('mce_fullscreen_container');\r
- de.style.overflow = ed.getParam('fullscreen_html_overflow');\r
- DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));\r
- DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));\r
- tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings\r
- }, 10);\r
- }\r
-\r
- return;\r
- }\r
-\r
- if (ed.getParam('fullscreen_new_window')) {\r
- win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);\r
- try {\r
- win.resizeTo(screen.availWidth, screen.availHeight);\r
- } catch (e) {\r
- // Ignore\r
- }\r
- } else {\r
- tinyMCE.oldSettings = tinyMCE.settings; // Store old settings\r
- s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';\r
- s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);\r
- vp = DOM.getViewPort();\r
- s.fullscreen_scrollx = vp.x;\r
- s.fullscreen_scrolly = vp.y;\r
-\r
- // Fixes an Opera bug where the scrollbars doesn't reappear\r
- if (tinymce.isOpera && s.fullscreen_overflow == 'visible')\r
- s.fullscreen_overflow = 'auto';\r
-\r
- // Fixes an IE bug where horizontal scrollbars would appear\r
- if (tinymce.isIE && s.fullscreen_overflow == 'scroll')\r
- s.fullscreen_overflow = 'auto';\r
-\r
- if (s.fullscreen_overflow == '0px')\r
- s.fullscreen_overflow = '';\r
-\r
- DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');\r
- de.style.overflow = 'hidden'; //Fix for IE6/7\r
- vp = DOM.getViewPort();\r
- DOM.win.scrollTo(0, 0);\r
-\r
- if (tinymce.isIE)\r
- vp.h -= 1;\r
-\r
- n = DOM.add(DOM.doc.body, 'div', {id : 'mce_fullscreen_container', style : 'position:' + (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel) ? 'absolute' : 'fixed') + ';top:0;left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});\r
- DOM.add(n, 'div', {id : 'mce_fullscreen'});\r
-\r
- tinymce.each(ed.settings, function(v, n) {\r
- s[n] = v;\r
- });\r
-\r
- s.id = 'mce_fullscreen';\r
- s.width = n.clientWidth;\r
- s.height = n.clientHeight - 15;\r
- s.fullscreen_is_enabled = true;\r
- s.fullscreen_editor_id = ed.id;\r
- s.theme_advanced_resizing = false;\r
- s.save_onsavecallback = function() {\r
- ed.setContent(tinyMCE.get(s.id).getContent({format : 'raw'}), {format : 'raw'});\r
- ed.execCommand('mceSave');\r
- };\r
-\r
- tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {\r
- s[k] = v;\r
- });\r
-\r
- if (s.theme_advanced_toolbar_location === 'external')\r
- s.theme_advanced_toolbar_location = 'top';\r
-\r
- t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);\r
- t.fullscreenEditor.onInit.add(function() {\r
- t.fullscreenEditor.setContent(ed.getContent());\r
- t.fullscreenEditor.focus();\r
- });\r
-\r
- t.fullscreenEditor.render();\r
- tinyMCE.add(t.fullscreenEditor);\r
-\r
- t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');\r
- t.fullscreenElement.update();\r
- //document.body.overflow = 'hidden';\r
-\r
- t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {\r
- var vp = tinymce.DOM.getViewPort();\r
-\r
- t.fullscreenEditor.theme.resizeTo(vp.w, vp.h);\r
- });\r
- }\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});\r
-\r
- ed.onNodeChange.add(function(ed, cm) {\r
- cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Fullscreen',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title></title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
- <script type="text/javascript" src="../../tiny_mce.js"></script>\r
- <script type="text/javascript">\r
- function patchCallback(settings, key) {\r
- if (settings[key])\r
- settings[key] = "window.opener." + settings[key];\r
- }\r
-\r
- var settings = {}, paSe = window.opener.tinyMCE.activeEditor.settings, oeID = window.opener.tinyMCE.activeEditor.id;\r
-\r
- // Clone array\r
- for (var n in paSe)\r
- settings[n] = paSe[n];\r
-\r
- // Override options for fullscreen\r
- for (var n in paSe.fullscreen_settings)\r
- settings[n] = paSe.fullscreen_settings[n];\r
-\r
- // Patch callbacks, make them point to window.opener\r
- patchCallback(settings, 'urlconverter_callback');\r
- patchCallback(settings, 'insertlink_callback');\r
- patchCallback(settings, 'insertimage_callback');\r
- patchCallback(settings, 'setupcontent_callback');\r
- patchCallback(settings, 'save_callback');\r
- patchCallback(settings, 'onchange_callback');\r
- patchCallback(settings, 'init_instance_callback');\r
- patchCallback(settings, 'file_browser_callback');\r
- patchCallback(settings, 'cleanup_callback');\r
- patchCallback(settings, 'execcommand_callback');\r
- patchCallback(settings, 'oninit');\r
-\r
- // Set options\r
- delete settings.id;\r
- settings['mode'] = 'exact';\r
- settings['elements'] = 'fullscreenarea';\r
- settings['add_unload_trigger'] = false;\r
- settings['ask'] = false;\r
- settings['document_base_url'] = window.opener.tinyMCE.activeEditor.documentBaseURI.getURI();\r
- settings['fullscreen_is_enabled'] = true;\r
- settings['fullscreen_editor_id'] = oeID;\r
- settings['theme_advanced_resizing'] = false;\r
- settings['strict_loading_mode'] = true;\r
-\r
- settings.save_onsavecallback = function() {\r
- window.opener.tinyMCE.get(oeID).setContent(tinyMCE.get('fullscreenarea').getContent({format : 'raw'}), {format : 'raw'});\r
- window.opener.tinyMCE.get(oeID).execCommand('mceSave');\r
- window.close();\r
- };\r
-\r
- function unloadHandler(e) {\r
- moveContent();\r
- }\r
-\r
- function moveContent() {\r
- window.opener.tinyMCE.get(oeID).setContent(tinyMCE.activeEditor.getContent());\r
- }\r
-\r
- function closeFullscreen() {\r
- moveContent();\r
- window.close();\r
- }\r
-\r
- function doParentSubmit() {\r
- moveContent();\r
-\r
- if (window.opener.tinyMCE.selectedInstance.formElement.form)\r
- window.opener.tinyMCE.selectedInstance.formElement.form.submit();\r
-\r
- window.close();\r
-\r
- return false;\r
- }\r
-\r
- function render() {\r
- var e = document.getElementById('fullscreenarea'), vp, ed, ow, oh, dom = tinymce.DOM;\r
-\r
- e.value = window.opener.tinyMCE.get(oeID).getContent();\r
-\r
- vp = dom.getViewPort();\r
- settings.width = vp.w;\r
- settings.height = vp.h - 15;\r
-\r
- tinymce.dom.Event.add(window, 'resize', function() {\r
- var vp = dom.getViewPort();\r
-\r
- tinyMCE.activeEditor.theme.resizeTo(vp.w, vp.h);\r
- });\r
-\r
- tinyMCE.init(settings);\r
- }\r
-\r
- // Add onunload\r
- tinymce.dom.Event.add(window, "beforeunload", unloadHandler);\r
- </script>\r
- <base target="_self" />\r
-</head>\r
-<body style="margin:0;overflow:hidden;width:100%;height:100%" scrolling="no" scroll="no">\r
-<form onsubmit="doParentSubmit();">\r
-<textarea id="fullscreenarea" style="width:100%; height:100%"></textarea>\r
-</form>\r
-\r
-<script type="text/javascript">\r
- render();\r
-</script>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.IESpell',{init:function(ed,url){var t=this,sp;if(!tinymce.isIE)return;t.editor=ed;ed.addCommand('mceIESpell',function(){try{sp=new ActiveXObject("ieSpell.ieSpellExtension");sp.CheckDocumentNode(ed.getDoc().documentElement);}catch(e){if(e.number==-2146827859){ed.windowManager.confirm(ed.getLang("iespell.download"),function(s){if(s)window.open('http://www.iespell.com/download.php','ieSpellDownload','');});}else ed.windowManager.alert("Error Loading ieSpell: Exception "+e.number);}});ed.addButton('iespell',{title:'iespell.iespell_desc',cmd:'mceIESpell'});},getInfo:function(){return{longname:'IESpell (IE Only)',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('iespell',tinymce.plugins.IESpell);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.IESpell', {\r
- init : function(ed, url) {\r
- var t = this, sp;\r
-\r
- if (!tinymce.isIE)\r
- return;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceIESpell', function() {\r
- try {\r
- sp = new ActiveXObject("ieSpell.ieSpellExtension");\r
- sp.CheckDocumentNode(ed.getDoc().documentElement);\r
- } catch (e) {\r
- if (e.number == -2146827859) {\r
- ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) {\r
- if (s)\r
- window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');\r
- });\r
- } else\r
- ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number);\r
- }\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'});\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'IESpell (IE Only)',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell);\r
-})();
\ No newline at end of file
+++ /dev/null
-.all {\r
- width:100%;\r
- height:100%;\r
-}\r
-html, body { height:99%; }\r
-html, body, td, th {\r
- padding:0px;\r
- margin:0px;\r
- vertical-align:top;\r
- font-family:Verdana,Arial,Helvetica,sans-serif;\r
- font-size:10px;\r
-}\r
-img { border:none; }\r
-\r
-.header {\r
- height:50px;\r
-}\r
-\r
-.header .path {\r
- margin-bottom:3px;\r
- padding:2px;\r
- font-size:14px;\r
- border-left: #888 solid 1px;\r
- border-top: #888 solid 1px;\r
- border-right: #ccc solid 1px;\r
- border-bottom: #ccc solid 1px;\r
-}\r
-.header .path a {\r
- background: transparent url(../images/arrow.gif) left center no-repeat;\r
- padding: 2px 10px 3px 15px;\r
- text-decoration:none;\r
-}\r
-.header .path a:hover { background-color:#cfe1fc; }\r
-\r
-.header img { vertical-align:middle; }\r
-.header .path .first { background:none; padding:0px 10px 0px 0px; }\r
-\r
-.panel { background:#468da0 url(../images/back/back.gif) top repeat-x; height:32px; }\r
-.p1 { background:transparent url(../images/back/left.gif) left no-repeat; height:32px; }\r
-.p2 { background:transparent url(../images/back/right.gif) right no-repeat; height:32px; }\r
-.panel .btns a {\r
- color: white;\r
- height:32px;\r
- text-decoration:none;\r
- margin:0 5px 0 10px;\r
-}\r
-.panel .btns img { vertical-align:middle; }\r
-\r
-.left {\r
- border-right:1px solid #ddd;\r
- width:150px;\r
-}\r
-\r
-.content {\r
- \r
-}\r
-\r
-h1.blue_header {\r
- font-size:16px;\r
- font-weight:normal;\r
- color:#6FA8DC;\r
- margin-bottom:10px;\r
-}\r
-\r
-.folder {\r
- background: transparent url(../images/folder.gif) left center no-repeat;\r
- margin: 1px 10px 1px 5px;\r
- padding:1px;\r
- height:16px;\r
- font-size:12px;\r
-}\r
-\r
-.folder a {\r
- padding:0 0 0 20px;\r
- text-decoration:none;\r
- outline: none;\r
-}\r
-\r
-\r
-.item {\r
- width:120px;\r
- height:150px;\r
- margin:5px 0 0 5px;\r
- float:left;\r
- overflow:hidden;\r
-}\r
-.item:hover { background-color:#deecff; }\r
-.item img { width:100px; height:100px; margin:10px; }\r
-.item .labels { color:#0a4d76; text-align:center; }\r
-.item_ {\r
- background-color:#cfe1fc;\r
-}\r
-.item_:hover {\r
- background-color:#bfd9ff;\r
-}\r
-\r
-.upload {\r
- background:transparent url(../images/upload_back.gif) top repeat-x;\r
- text-align: center;\r
-}\r
-.upload input {\r
- font-size: 20px;\r
- font-family: serif;\r
- margin: 10px 0 10px 0;\r
- width: 150px;\r
-}\r
-\r
-#mainfield {\r
- width:530px;\r
- height:475px;\r
- overflow:scroll;\r
-}\r
-\r
-\r
-\r
-/* Fancy */\r
-#demo-status\r
-{\r
- /*background-color: #F9F7ED;*/\r
- padding: 10px 15px;\r
- width: 420px;\r
-}\r
- \r
-#demo-status fieldset\r
-{\r
- padding: 0.5em 1em;\r
- border: none;\r
-}\r
- \r
-#demo-status legend\r
-{\r
- display: block;\r
- font: 1.2em bold Verdana, Geneva, Arial, Helvetica, sans-serif;\r
-}\r
- \r
-#demo-status .progress\r
-{\r
- background: white url(../images/progress.gif) no-repeat;\r
- background-position: +50% 0;\r
- margin-right: 0.5em;\r
-}\r
- \r
-#demo-status .progress-text\r
-{\r
- font-size: 0.9em;\r
- font-weight: bold;\r
-}\r
- \r
-#demo-list\r
-{\r
- list-style: none;\r
- width: 450px;\r
- /*overflow: auto;*/\r
- margin: 0;\r
-}\r
- \r
-#demo-list li.file\r
-{\r
- border-bottom: 1px solid #eee;\r
- /*overflow: auto;*/\r
- background: url(../images/file.png) no-repeat 4px 4px;\r
-}\r
-#demo-list li.file.file-uploading\r
-{\r
- background-image: url(../images/uploading.png);\r
- background-color: #D9DDE9;\r
-}\r
-#demo-list li.file.file-success\r
-{\r
- background-image: url(../images/success.png);\r
-}\r
-#demo-list li.file.file-failed\r
-{\r
- background-image: url(../images/failed.png);\r
-}\r
- \r
-#demo-list li.file .file-name\r
-{\r
- font-size: 1.2em;\r
- margin-left: 44px;\r
- display: block;\r
- line-height: 40px;\r
- height: 40px;\r
- font-weight: bold;\r
-}\r
-#demo-list li.file .file-size\r
-{\r
- line-height: 20px;\r
- float: right;\r
-}\r
-#demo-list li.file .file-info\r
-{\r
- display: block;\r
- margin-left: 44px;\r
-}\r
-#demo-list li.file .file-remove\r
-{\r
- clear: right;\r
- float: right;\r
- line-height: 20px;\r
-}\r
-.overall-title {\r
- font-size: 16px;\r
- margin: 0 0 3px 5px;\r
-}\r
-.current-title {\r
- font-size: 16px;\r
- margin: 8px 0 3px 5px;\r
-}\r
-.current-text {\r
- position: absolute;\r
- right:10px;\r
- top: 65px;\r
- width:320px;\r
- font-size: 15px;\r
-}
\ No newline at end of file
+++ /dev/null
-[ViewState]\r
-Mode=\r
-Vid=\r
-FolderType=NotSpecified\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Images',{init:function(ed,url){ed.addCommand('mceImages',function(){ed.windowManager.open({file:url+'/images.htm',width:700,height:550,inline:1},{plugin_url:url})});ed.addButton('images',{title:'images.desc',cmd:'mceImages',image:url+'/images/icon.gif'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('images',n.nodeName=='IMG')})},getInfo:function(){return{longname:'Images',author:'Antonov Andrey',authorurl:'http://dustweb.ru/',infourl:'http://dustweb.ru/log/projects/tinymce_images/',version:"1.0"}}});tinymce.PluginManager.add('images',tinymce.plugins.Images)})();
\ No newline at end of file
+++ /dev/null
-(function() {\r
- tinymce.create('tinymce.plugins.Images', {\r
- init : function(ed, url) {\r
- ed.addCommand('mceImages', function() {\r
- ed.windowManager.open({\r
- file : url + '/images.htm',\r
- width : 700,\r
- height : 550,\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
- \r
- ed.addButton('images', {\r
- title : 'images.desc',\r
- cmd : 'mceImages',\r
- image : url + '/images/icon.gif'\r
- });\r
- \r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- cm.setActive('images', n.nodeName == 'IMG');\r
- });\r
- },\r
- \r
- getInfo : function() {\r
- return {\r
- longname : 'Images',\r
- author : 'Antonov Andrey',\r
- authorurl : 'http://dustweb.ru/',\r
- infourl : 'http://dustweb.ru/log/projects/tinymce_images/',\r
- version : "1.0"\r
- };\r
- }\r
- });\r
- \r
- tinymce.PluginManager.add('images', tinymce.plugins.Images);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#images_dlg.fancy_title}</title>\r
- <link href="css/default.css" rel="stylesheet" type="text/css"/>\r
- \r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/mootools.js"></script>\r
- <script type="text/javascript" src="js/Swiff.Uploader.js"></script>\r
- <script type="text/javascript" src="js/Fx.ProgressBar.js"></script>\r
- <script type="text/javascript" src="js/FancyUpload2.js"></script>\r
- <script type="text/javascript">\r
-\r
-function getURLParam(strParamName) {\r
- var strReturn = "";\r
- var strHref = window.location.href;\r
- if ( strHref.indexOf("?") > -1 ){\r
- var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();\r
- var aQueryString = strQueryString.split("&");\r
- for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){\r
- if (\r
-aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){\r
- var aParam = aQueryString[iParam].split("=");\r
- strReturn = aParam[1];\r
- break;\r
- }\r
- }\r
- }\r
- return unescape(strReturn);\r
-}\r
-\r
-\r
-var allcookies = document.cookie;\r
-var pos = allcookies.indexOf("PHPSESSID=");\r
-if(pos != -1) {\r
- var start = pos + 10;\r
- var end = allcookies.indexOf(";", start);\r
- if(end == -1) end = allcookies.length;\r
- var value = allcookies.substring(start, end);\r
- value = unescape(value);\r
-}\r
-\r
-var urlregexp = /([\s\S]*)\/fancy\.htm\?/im;\r
-var urlmatch = urlregexp.exec(window.location.href);\r
-var urlpart = urlmatch[1];\r
-\r
-window.addEvent('load', function() {\r
- var swiffy = new FancyUpload2($('demo-status'), $('demo-list'), {\r
- 'url': urlpart + '/server_connector/files_conn.php?uri=' + getURLParam('uri') + '&PHPSESSID=' + value + '&lng=' + tinyMCEPopup.editor.settings.language,\r
- 'fieldName': 'photoupload',\r
- 'path': 'js/Swiff.Uploader.swf'\r
- });\r
- /**\r
- * Various interactions\r
- */\r
- $('link-2').addEvent('click', function() {\r
- swiffy.browse({'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'});\r
- return false;\r
- });\r
- $('link-22').addEvent('click', function() {\r
- swiffy.browse({'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'});\r
- return false;\r
- });\r
- $('link-3').addEvent('click', function() {\r
- swiffy.removeFile();\r
- return false;\r
- });\r
- $('link-4').addEvent('click', function() {\r
- swiffy.upload();\r
- return false;\r
- });\r
-});\r
-</script>\r
- <base target="_self"/>\r
-</head>\r
-<body> \r
-\r
-<div class="panel" style="margin:5px;">\r
- <div class="p1">\r
- <div class="p2">\r
- <div class="btns">\r
- <a href="#" onclick="document.location = 'images.htm?uri=' + getURLParam('uri'); return false;"><img src="images/back/larr.gif" width="16" height="32" alt="{#images_dlg.fancy_back_alt}" /> {#images_dlg.fancy_back}</a>\r
- <a href="#" id="link-2"><img src="images/back/browse.gif" width="16" height="32" alt="{#images_dlg.fancy_browse}" /> {#images_dlg.fancy_browse}</a>\r
- <a href="#" id="link-4"><img src="images/back/ok.gif" width="16" height="32" alt="{#images_dlg.fancy_begin_upload}"/> {#images_dlg.fancy_upload_files}</a>\r
- <a href="#" id="link-3"><img src="images/back/clean.gif" width="13" height="32" alt="{#images_dlg.fancy_clear}"/> {#images_dlg.fancy_clear}</a>\r
- </div>\r
- </div>\r
- </div>\r
-</div>\r
-\r
-<form action="/admin/files" method="post" enctype="multipart/form-data" id="form-demo">\r
- <div id="demo-browse" style="display:block; padding:12px 0 0 22px; font-size:16px;"><a style="color:black; text-decoration: none;" href="#" id="link-22">{#images_dlg.fancy_begin_upload_files}</a></div>\r
- <div id="demo-status" style="display:none;">\r
- <div>\r
- <div class="overall-title">{#images_dlg.fancy_general_status}</div>\r
- <img src="images/bar.gif" class="progress overall-progress" />\r
- </div>\r
- <div>\r
- <div class="current-title">{#images_dlg.fancy_file_status}</div>\r
- <img src="images/bar.gif" class="progress current-progress" />\r
- </div>\r
- <div class="current-text"></div>\r
- </div>\r
- \r
- <ul id="demo-list"></ul>\r
- \r
-</form>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
- <head>\r
- <title>{#images_dlg.title}</title>\r
- <link href="css/default.css" rel="stylesheet" type="text/css"/>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/images.js"></script>\r
- \r
- <script type="text/javascript" src="js/mootools.js"></script>\r
- \r
- <base target="_self" />\r
- <script src="js/JsHttpRequest.js" type="text/javascript"></script>\r
- </head>\r
- <body style="display:none;" onKeyDown="setCtrl(event)" onKeyUp="resetCtrl()">\r
- \r
- <div style="display: none;">\r
- <div id="l1">{#images_dlg.del_sel_folder}</div>\r
- <div id="l2">{#images_dlg.sel_files_for_del}</div>\r
- <div id="l3">{#images_dlg.files_to_del}</div>\r
- <div id="l4">{#images_dlg.delete_str}</div>\r
- </div>\r
- \r
-<script type="text/javascript">\r
-function getURLParam(strParamName) {\r
- var strReturn = "";\r
- var strHref = window.location.href;\r
- if ( strHref.indexOf("?") > -1 ){\r
- var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();\r
- var aQueryString = strQueryString.split("&");\r
- for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){\r
- if (\r
-aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){\r
- var aParam = aQueryString[iParam].split("=");\r
- strReturn = aParam[1];\r
- break;\r
- }\r
- }\r
- }\r
- return unescape(strReturn);\r
-}\r
-\r
-\r
-var current = '';\r
-var current_file = new Array();\r
-var i=0;\r
-\r
-function activateItem(obj,src) {\r
- \r
- if(ctrlState==1) {\r
- obj.className = 'item item_';\r
- current = obj.childNodes[1].src;\r
- \r
- if(current_file.indexOf(src)==-1) current_file.push(src);\r
- \r
- } else {\r
- \r
- current_file = [src];\r
- \r
- var list = obj.parentNode.childNodes;\r
- for(var i=0; i<list.length; i++) {\r
- list[i].className = 'item';\r
- }\r
- \r
- obj.className = 'item item_';\r
- current = obj.childNodes[1].src;\r
- }\r
-}\r
-\r
-var current_dir = '';\r
-function activateDir(obj, dir) {\r
- var list = obj.parentNode.parentNode.childNodes;\r
- \r
- for(var i=0; i<list.length; i++) {\r
- list[i].style.backgroundColor = 'transparent';\r
- }\r
- \r
- obj.parentNode.style.backgroundColor = '#BFD9FF';\r
- current_dir = dir;\r
-}\r
-\r
-var themiraclevar = '';\r
-function changeFolder(uri) {\r
- JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->ChangeDir', 'uri': uri, 'lng': tinyMCEPopup.editor.settings.language },\r
- function(result, errors) {\r
- \r
- if (result) {\r
- document.getElementById('leftpanel').innerHTML = result['leftpanel']; \r
- document.getElementById('addressbar').innerHTML = result['addressbar'];\r
- document.getElementById('mainfield').innerHTML = result['mainfield'];\r
- themiraclevar = result['uri'];\r
- current_file = new Array();\r
- current_dir = '';\r
- }\r
- },\r
- true \r
- );\r
-}\r
-\r
-var new_folder_state = false;\r
-function createFolder() {\r
- if(new_folder_state == false) {\r
- $('leftpanel').innerHTML = $('leftpanel').innerHTML + '<div class="folder"><form onsubmit="submitFolder(); return false;" style="margin-left:20px;"><input type="text" name="new_folder" onblur="submitFolder();" id="new_folder" /></form></div>';\r
- new_folder_state = true;\r
- $('new_folder').focus();\r
- } else {\r
- $('new_folder').focus();\r
- }\r
-}\r
-\r
-function submitFolder() {\r
- JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->MakeFolder', 'uri': themiraclevar, 'name': $('new_folder').value, 'lng': tinyMCEPopup.editor.settings.language },\r
- function(result, errors) {\r
- \r
- if (result) {\r
- if(!result['error']) {\r
- new_folder_state = false;\r
- changeFolder(themiraclevar);\r
- } else {\r
- alert(result['error']);\r
- }\r
- }\r
- },\r
- true \r
- );\r
-}\r
-\r
-function deleteFile() {\r
-\r
- if (current_file.length==0 && current_dir != '') {\r
- if (!confirm(document.getElementById('l1').innerHTML)) return false;\r
- \r
- JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->DelDir', 'dir': current_dir, 'lng': tinyMCEPopup.editor.settings.language },\r
- function(result, errors) {\r
- if (result) {\r
- if(!result['error']) {\r
- changeFolder(themiraclevar);\r
- } else {\r
- alert(result['error']);\r
- }\r
- }\r
- },\r
- true \r
- );\r
- \r
- \r
- return true;\r
- }\r
-\r
- \r
- if(current_file.length == 0) { alert(document.getElementById('l2').innerHTML); return false; }\r
-\r
- if (!confirm(document.getElementById('l3').innerHTML+': ' + current_file.length+ '. '+document.getElementById('l4').innerHTML+'?')) return false;\r
-\r
- JsHttpRequest.query('server_connector/ajax.php', { 'm': 'tinyimages->DelFile', 'src': current_file, 'lng': tinyMCEPopup.editor.settings.language },\r
- function(result, errors) {\r
- if (result) {\r
- if(!result['error']) {\r
- changeFolder(themiraclevar);\r
- } else {\r
- alert(result['error']);\r
- }\r
- }\r
- },\r
- true \r
- );\r
-}\r
-\r
-function uploadImagesBtn() {\r
- document.location = 'fancy.htm?uri='+ themiraclevar;\r
-}\r
-\r
-function addImage(obj,path,width) {\r
- ImagesDialog.insert(path, obj.childNodes[0].alt, width);\r
-}\r
-\r
-\r
-ctrlState = 0;\r
-function setCtrl(tmp) {\r
- var isIE = navigator.appName.indexOf("Microsoft") != -1;\r
- if(isIE) {\r
- if(!window.event) window.event=tmp;\r
- tmp=window.event.keyCode;\r
- } else {\r
- event=tmp;\r
- tmp=event.keyCode;\r
- }\r
- if(tmp==17) ctrlState = 1;\r
-}\r
-\r
-function resetCtrl() { ctrlState = 0; }\r
-\r
-\r
-\r
-if(window.opera) document.onkeydown=setCtrl;\r
-\r
-if(window.opera) document.onkeyup=resetCtrl;\r
-</script>\r
- <table class="all" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td class="header">\r
- <div class="path" id="addressbar">\r
- <!-- Àäðåñíàÿ ñòðîêà -->\r
- </div>\r
- <div class="panel">\r
- <div class="p1">\r
- <div class="p2">\r
- <div class="btns">\r
- <a href="#" onclick="createFolder(); return false;"><img src="images/back/new_folder.gif" width="16" height="32" alt="{#images_dlg.create_new_fld}"/> {#images_dlg.create_fld}</a><a href="#" onclick="uploadImagesBtn(); return false;"><img src="images/back/files.gif" width="19" height="32" alt="{#images_dlg.upload_files}" /> {#images_dlg.upload_files}</a><a href="#" onclick="deleteFile(); return false;"><img src="images/back/del_file.gif" width="16" height="32" alt="{#images_dlg.delete_file}"/> {#images_dlg.delete_file}</a>\r
- </div>\r
- </div>\r
- </div>\r
- </div>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td valign="top">\r
- <table cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td class="left" width="150" id="leftpanel" style="padding-top:15px;">\r
- <!-- Ñïèñîê ïàïîê â òåêóùåé äèðåêòîðèè -->\r
- </td>\r
- <td>\r
- <div id="mainfield">\r
-\r
- </div>\r
- </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- \r
- \r
- <script type="text/javascript">\r
- changeFolder(getURLParam('uri'));\r
- </script>\r
- \r
- </body>\r
-</html>\r
+++ /dev/null
-/**\r
- * FancyUpload - Flash meets Ajax for simply working uploads\r
- *\r
- * @version 2.0 beta 2\r
- *\r
- * @license MIT License\r
- *\r
- * @author Harald Kirschner <mail [at] digitarald [dot] de>\r
- * @copyright Authors\r
- */\r
-\r
-if(tinyMCEPopup.editor.settings.language != 'ru'){\r
-var FancyUpload2 = new Class({\r
-\r
- Extends: Swiff.Uploader,\r
-\r
- options: {\r
- createElement: null,\r
- updateElement: null,\r
- removeElement: null\r
- },\r
-\r
- initialize: function(status, list, options) {\r
- this.status = $(status);\r
- this.list = $(list);\r
-\r
- this.files = [];\r
-\r
- this.overallTitle = this.status.getElement('.overall-title');\r
- this.currentTitle = this.status.getElement('.current-title');\r
- this.currentText = this.status.getElement('.current-text');\r
-\r
- var progress = this.status.getElement('.overall-progress');\r
- this.overallProgress = new Fx.ProgressBar(progress, {\r
- text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
- });\r
- progress = this.status.getElement('.current-progress')\r
- this.currentProgress = new Fx.ProgressBar(progress, {\r
- text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
- });\r
-\r
- this.parent(options);\r
- },\r
-\r
- onLoad: function() {\r
- this.log('Uploader ready!');\r
- },\r
-\r
- onBeforeOpen: function(file) {\r
- this.log('Initialize upload for "{name}".', file);\r
- },\r
-\r
- onOpen: function(file, overall) {\r
- this.log('Starting upload "{name}".', file);\r
- file = this.getFile(file);\r
- file.element.addClass('file-uploading');\r
- this.currentProgress.cancel().set(0);\r
- this.currentTitle.set('html', 'File Progress "{name}"'.substitute(file) );\r
- },\r
-\r
- onProgress: function(file, current, overall) {\r
- this.overallProgress.start(overall.bytesLoaded, overall.bytesTotal);\r
- var units = Date.parseIntervals(current.timeLeft || 0), timeLeft = [];\r
- for (var unit in units) timeLeft.push(units[unit] + ' ' + unit);\r
- this.currentText.set('html', 'Upload with {rate}/s. Est. time left: {timeLeft}'.substitute({\r
- rate: (current.rate) ? this.sizeToKB(current.rate) : '- B',\r
- timeLeft: timeLeft.join(', ')\r
- }));\r
- this.currentProgress.start(current.bytesLoaded, current.bytesTotal);\r
- },\r
-\r
- onSelect: function(file, index, length) {\r
- this.log('Checked in file ' + index + '/' + length + ' "' + file.name + '" with ' + file.size + ' bytes.');\r
- },\r
-\r
- onAllSelect: function(files, current, overall) {\r
- $('demo-status').style.display = 'block';\r
- $('demo-browse').style.display = 'none';\r
- this.log('Added ' + files.length + ' files, now we have (' + current.bytesTotal + ' bytes).', arguments);\r
- this.overallTitle.set('html', 'Overall Progress ({size})'.substitute({size: this.sizeToKB(current.bytesTotal)}));\r
- files.each(function(file) {\r
- this.createFileElement(file);\r
- this.files.push(file);\r
- }, this);\r
- this.status.removeClass('status-browsing');\r
- },\r
-\r
- onComplete: function(file, response) {\r
- this.log('Completed upload "' + file.name + '".', arguments);\r
- this.currentText.set('html', 'Upload complete!');\r
- this.currentProgress.start(100);\r
- file = this.getFile(file);\r
- file.element.removeClass('file-uploading');\r
- var json = $H(JSON.decode(response, true));\r
- if (json.get('result') == 'success') {\r
- file.element.addClass('file-success');\r
- file.info.set('html', json.get('size'));\r
- } else {\r
- file.element.addClass('file-failed');\r
- file.info.set('html', json.get('error') || response);\r
- }\r
- },\r
-\r
- onError: function(file, error, info) {\r
- this.log('Upload "' + file.name + '" failed. "{1}": "{2}".', arguments);\r
- file = this.finishFile(file);\r
- file.element.addClass('file-failed');\r
- file.info.set('html', '<strong>' + error + '</strong><br />' + info);\r
- },\r
-\r
- onCancel: function() {\r
- this.log('Filebrowser cancelled.', arguments);\r
- this.status.removeClass('file-browsing');\r
- },\r
-\r
- onAllComplete: function(current) {\r
- this.log('Completed all files, ' + current.bytesTotal + ' bytes.', arguments);\r
- this.overallTitle.set('html', 'Overall Progress (' + this.sizeToKB(current.bytesTotal) + ')');\r
- this.overallProgress.start(100);\r
- this.status.removeClass('file-uploading');\r
- },\r
-\r
- browse: function(fileList) {\r
- var ret = this.parent(fileList);\r
- if (ret !== true){\r
- this.log('Browse in progress.');\r
- if (ret) alert(ret);\r
- } else {\r
- this.log('Browse started.');\r
- this.status.addClass('file-browsing');\r
- }\r
- },\r
-\r
- upload: function(options) {\r
- var ret = this.parent(options);\r
- if (ret !== true) {\r
- this.log('Upload in progress or nothing to upload.');\r
- if (ret) alert(ret);\r
- } else {\r
- this.log('Upload started.');\r
- this.status.addClass('file-uploading');\r
- this.overallProgress.set(0);\r
- }\r
- },\r
-\r
- removeFile: function(file) {\r
- if (!file) {\r
- this.files.each(this.removeFileElement, this);\r
- this.files.empty();\r
- } else {\r
- if (!file.element) file = this.getFile(file);\r
- this.files.erase(file);\r
- this.removeFileElement(file);\r
- }\r
- this.parent(file);\r
- },\r
-\r
- getFile: function(file) {\r
- var ret = null;\r
- this.files.some(function(value) {\r
- if ((value.name != file.name) || (value.size != file.size)) return false;\r
- ret = value;\r
- return true;\r
- });\r
- return ret;\r
- },\r
-\r
- removeFileElement: function(file) {\r
- file.element.fade('out').retrieve('tween').chain(Element.destroy.bind(Element, file.element));\r
- },\r
-\r
- finishFile: function(file) {\r
- file = this.getFile(file);\r
- file.element.removeClass('file-uploading');\r
- file.finished = true;\r
- return file;\r
- },\r
-\r
- createFileElement: function(file) {\r
- file.info = new Element('span', {'class': 'file-info'});\r
- file.element = new Element('li', {'class': 'file'}).adopt(\r
- new Element('span', {'class': 'file-size', 'html': this.sizeToKB(file.size)}),\r
- new Element('a', {\r
- 'class': 'file-remove',\r
- 'href': '#',\r
- 'html': 'Remove',\r
- 'events': {\r
- 'click': function() {\r
- this.removeFile(file);\r
- return false;\r
- }.bind(this)\r
- }\r
- }),\r
- new Element('span', {'class': 'file-name', 'html': file.name}),\r
- file.info\r
- ).inject(this.list);\r
- },\r
-\r
- sizeToKB: function(size) {\r
- var unit = 'B';\r
- if ((size / 1048576) > 1) {\r
- unit = 'MB';\r
- size /= 1048576;\r
- } else if ((size / 1024) > 1) {\r
- unit = 'kB';\r
- size /= 1024;\r
- }\r
- return size.round(1) + ' ' + unit;\r
- },\r
-\r
- log: function(text, args) {\r
- if (window.console) console.log(text.substitute(args || {}));\r
- }\r
-\r
-});\r
-\r
-Date.parseIntervals = function(sec, max) {\r
- var units = {}, conv = Date.durations, count = 0;\r
- for (var unit in conv) {\r
- var value = Math.floor(sec / conv[unit]);\r
- if (value) {\r
- units[unit] = value;\r
- if ((max && max <= ++count) || !(sec -= value * conv[unit])) break;\r
- }\r
- }\r
- return units;\r
-};\r
-\r
-Date.intervals = {y: 31556926, mo: 2629743.83, d: 86400, h: 3600, mi: 60, s: 1, ms: 0.001};\r
-}\r
-else {\r
-var FancyUpload2 = new Class({\r
-\r
- Extends: Swiff.Uploader,\r
-\r
- options: {\r
- createElement: null,\r
- updateElement: null,\r
- removeElement: null\r
- },\r
-\r
- initialize: function(status, list, options) {\r
- this.status = $(status);\r
- this.list = $(list);\r
-\r
- this.files = [];\r
-\r
- this.overallTitle = this.status.getElement('.overall-title');\r
- this.currentTitle = this.status.getElement('.current-title');\r
- this.currentText = this.status.getElement('.current-text');\r
-\r
- var progress = this.status.getElement('.overall-progress');\r
- this.overallProgress = new Fx.ProgressBar(progress, {\r
- text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
- });\r
- progress = this.status.getElement('.current-progress')\r
- this.currentProgress = new Fx.ProgressBar(progress, {\r
- text: new Element('span', {'class': 'progress-text'}).inject(progress, 'after')\r
- });\r
-\r
- this.parent(options);\r
- },\r
-\r
- onLoad: function() {\r
- this.log('Uploader ready!');\r
- },\r
-\r
- onBeforeOpen: function(file) {\r
- this.log('Initialize upload for "{name}".', file);\r
- },\r
-\r
- onOpen: function(file, overall) {\r
- this.log('Starting upload "{name}".', file);\r
- file = this.getFile(file);\r
- file.element.addClass('file-uploading');\r
- this.currentProgress.cancel().set(0);\r
- this.currentTitle.set('html', 'Ñòàòóñ ôàéëà "{name}"'.substitute(file) );\r
- },\r
-\r
- onProgress: function(file, current, overall) {\r
- this.overallProgress.start(overall.bytesLoaded, overall.bytesTotal);\r
- var units = Date.parseIntervals(current.timeLeft || 0), timeLeft = [];\r
- for (var unit in units) timeLeft.push(units[unit] + ' ' + unit);\r
- this.currentText.set('html', 'Ñêîðîñòü çàãðóçêè {rate}/ñ. '.substitute({\r
- rate: (current.rate) ? this.sizeToKB(current.rate) : '- B',\r
- timeLeft: timeLeft.join(', ')\r
- }));\r
- this.currentProgress.start(current.bytesLoaded, current.bytesTotal);\r
- },\r
-\r
- onSelect: function(file, index, length) {\r
- this.log('Checked in file ' + index + '/' + length + ' "' + file.name + '" with ' + file.size + ' bytes.');\r
- },\r
-\r
- onAllSelect: function(files, current, overall) {\r
- $('demo-status').style.display = 'block';\r
- $('demo-browse').style.display = 'none';\r
- this.log('Added ' + files.length + ' files, now we have (' + current.bytesTotal + ' bytes).', arguments);\r
- this.overallTitle.set('html', 'Îáùèé ñòàòóñ ({size})'.substitute({size: this.sizeToKB(current.bytesTotal)}));\r
- files.each(function(file) {\r
- this.createFileElement(file);\r
- this.files.push(file);\r
- }, this);\r
- this.status.removeClass('status-browsing');\r
- },\r
-\r
- onComplete: function(file, response) {\r
- this.log('Completed upload "' + file.name + '".', arguments);\r
- this.currentText.set('html', 'Çàãðóçêà çàâåðøåíà!');\r
- this.currentProgress.start(100);\r
- file = this.getFile(file);\r
- file.element.removeClass('file-uploading');\r
- var json = $H(JSON.decode(response, true));\r
- if (json.get('result') == 'success') {\r
- file.element.addClass('file-success');\r
- file.info.set('html', json.get('size'));\r
- } else {\r
- file.element.addClass('file-failed');\r
- file.info.set('html', json.get('error') || response);\r
- }\r
- },\r
-\r
- onError: function(file, error, info) {\r
- this.log('Çàãðóçêà "' + file.name + '" íå óäàëàñü. "{1}": "{2}".', arguments);\r
- file = this.finishFile(file);\r
- file.element.addClass('file-failed');\r
- file.info.set('html', '<strong>' + error + '</strong><br />' + info);\r
- },\r
-\r
- onCancel: function() {\r
- this.log('Filebrowser cancelled.', arguments);\r
- this.status.removeClass('file-browsing');\r
- },\r
-\r
- onAllComplete: function(current) {\r
- this.log('Completed all files, ' + current.bytesTotal + ' bytes.', arguments);\r
- this.overallTitle.set('html', 'Îáùèé ñòàòóñ (' + this.sizeToKB(current.bytesTotal) + ')');\r
- this.overallProgress.start(100);\r
- this.status.removeClass('file-uploading');\r
- },\r
-\r
- browse: function(fileList) {\r
- var ret = this.parent(fileList);\r
- if (ret !== true){\r
- this.log('Browse in progress.');\r
- if (ret) alert(ret);\r
- } else {\r
- this.log('Browse started.');\r
- this.status.addClass('file-browsing');\r
- }\r
- },\r
-\r
- upload: function(options) {\r
- var ret = this.parent(options);\r
- if (ret !== true) {\r
- this.log('Upload in progress or nothing to upload.');\r
- if (ret) alert(ret);\r
- } else {\r
- this.log('Upload started.');\r
- this.status.addClass('file-uploading');\r
- this.overallProgress.set(0);\r
- }\r
- },\r
-\r
- removeFile: function(file) {\r
- if (!file) {\r
- this.files.each(this.removeFileElement, this);\r
- this.files.empty();\r
- } else {\r
- if (!file.element) file = this.getFile(file);\r
- this.files.erase(file);\r
- this.removeFileElement(file);\r
- }\r
- this.parent(file);\r
- },\r
-\r
- getFile: function(file) {\r
- var ret = null;\r
- this.files.some(function(value) {\r
- if ((value.name != file.name) || (value.size != file.size)) return false;\r
- ret = value;\r
- return true;\r
- });\r
- return ret;\r
- },\r
-\r
- removeFileElement: function(file) {\r
- file.element.fade('out').retrieve('tween').chain(Element.destroy.bind(Element, file.element));\r
- },\r
-\r
- finishFile: function(file) {\r
- file = this.getFile(file);\r
- file.element.removeClass('file-uploading');\r
- file.finished = true;\r
- return file;\r
- },\r
-\r
- createFileElement: function(file) {\r
- file.info = new Element('span', {'class': 'file-info'});\r
- file.element = new Element('li', {'class': 'file'}).adopt(\r
- new Element('span', {'class': 'file-size', 'html': this.sizeToKB(file.size)}),\r
- new Element('a', {\r
- 'class': 'file-remove',\r
- 'href': '#',\r
- 'html': 'Óáðàòü',\r
- 'events': {\r
- 'click': function() {\r
- this.removeFile(file);\r
- return false;\r
- }.bind(this)\r
- }\r
- }),\r
- new Element('span', {'class': 'file-name', 'html': file.name}),\r
- file.info\r
- ).inject(this.list);\r
- },\r
-\r
- sizeToKB: function(size) {\r
- var unit = 'B';\r
- if ((size / 1048576) > 1) {\r
- unit = 'MB';\r
- size /= 1048576;\r
- } else if ((size / 1024) > 1) {\r
- unit = 'kB';\r
- size /= 1024;\r
- }\r
- return size.round(1) + ' ' + unit;\r
- },\r
-\r
- log: function(text, args) {\r
- if (window.console) console.log(text.substitute(args || {}));\r
- }\r
-\r
-});\r
-\r
-Date.parseIntervals = function(sec, max) {\r
- var units = {}, conv = Date.durations, count = 0;\r
- for (var unit in conv) {\r
- var value = Math.floor(sec / conv[unit]);\r
- if (value) {\r
- units[unit] = value;\r
- if ((max && max <= ++count) || !(sec -= value * conv[unit])) break;\r
- }\r
- }\r
- return units;\r
-};\r
-\r
-Date.intervals = {y: 31556926, mo: 2629743.83, d: 86400, h: 3600, mi: 60, s: 1, ms: 0.001};\r
-}
\ No newline at end of file
+++ /dev/null
-/**\r
- * FancyUpload - Flash meets Ajax for simply working uploads\r
- *\r
- * @version 1.0\r
- *\r
- * @license MIT License\r
- *\r
- * @author Harald Kirschner <mail [at] digitarald [dot] de>\r
- * @copyright Authors\r
- */\r
-\r
-Fx.ProgressBar = new Class({\r
-\r
- Extends: Fx,\r
-\r
- options: {\r
- text: null,\r
- transition: Fx.Transitions.Circ.easeOut,\r
- link: 'cancel'\r
- },\r
-\r
- initialize: function(element, options) {\r
- this.element = $(element);\r
- this.parent(options);\r
- this.text = $(this.options.text);\r
- this.set(0);\r
- },\r
-\r
- start: function(to, total) {\r
- return this.parent(this.now, (arguments.length == 1) ? to.limit(0, 100) : to / total * 100);\r
- },\r
-\r
- set: function(to) {\r
- this.now = to;\r
- this.element.setStyle('backgroundPosition', (100 - to) + '% 0px');\r
- if (this.text) this.text.set('text', Math.round(to) + '%');\r
- return this;\r
- }\r
-\r
-});
\ No newline at end of file
+++ /dev/null
-/**\r
- * JsHttpRequest: JavaScript "AJAX" data loader\r
- * Minimized version: see debug directory for the complete one.\r
- *\r
- * @license LGPL\r
- * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/\r
- * @version 5.x $Id$\r
- */\r
-function JsHttpRequest(){\r
-var t=this;\r
-t.onreadystatechange=null;\r
-t.readyState=0;\r
-t.responseText=null;\r
-t.responseXML=null;\r
-t.status=200;\r
-t.statusText="OK";\r
-t.responseJS=null;\r
-t.caching=false;\r
-t.loader=null;\r
-t.session_name="PHPSESSID";\r
-t._ldObj=null;\r
-t._reqHeaders=[];\r
-t._openArgs=null;\r
-t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check JsHttpRequest.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%"};\r
-t.abort=function(){\r
-with(this){\r
-if(_ldObj&&_ldObj.abort){\r
-_ldObj.abort();\r
-}\r
-_cleanup();\r
-if(readyState==0){\r
-return;\r
-}\r
-if(readyState==1&&!_ldObj){\r
-readyState=0;\r
-return;\r
-}\r
-_changeReadyState(4,true);\r
-}\r
-};\r
-t.open=function(_2,_3,_4,_5,_6){\r
-with(this){\r
-if(_3.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){\r
-this.loader=RegExp.$2?RegExp.$2:null;\r
-_2=RegExp.$3;\r
-_3=RegExp.$4;\r
-}\r
-try{\r
-if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){\r
-_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1);\r
-}\r
-}\r
-catch(e){\r
-}\r
-_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""};\r
-_ldObj=null;\r
-_changeReadyState(1,true);\r
-return true;\r
-}\r
-};\r
-t.send=function(_7){\r
-if(!this.readyState){\r
-return;\r
-}\r
-this._changeReadyState(1,true);\r
-this._ldObj=null;\r
-var _8=[];\r
-var _9=[];\r
-if(!this._hash2query(_7,null,_8,_9)){\r
-return;\r
-}\r
-var _a=null;\r
-if(this.caching&&!_9.length){\r
-_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;\r
-var _b=JsHttpRequest.CACHE[_a];\r
-if(_b){\r
-this._dataReady(_b[0],_b[1]);\r
-return false;\r
-}\r
-}\r
-var _c=(this.loader||"").toLowerCase();\r
-if(_c&&!JsHttpRequest.LOADERS[_c]){\r
-return this._error("unk_loader",_c);\r
-}\r
-var _d=[];\r
-var _e=JsHttpRequest.LOADERS;\r
-for(var _f in _e){\r
-var ldr=_e[_f].loader;\r
-if(!ldr){\r
-continue;\r
-}\r
-if(_c&&_f!=_c){\r
-continue;\r
-}\r
-var _11=new ldr(this);\r
-JsHttpRequest.extend(_11,this._openArgs);\r
-JsHttpRequest.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+JsHttpRequest.COUNT++,hash:_a,span:null});\r
-var _12=_11.load();\r
-if(!_12){\r
-this._ldObj=_11;\r
-JsHttpRequest.PENDING[_11.id]=this;\r
-return true;\r
-}\r
-if(!_c){\r
-_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);\r
-}else{\r
-return this._error(_12);\r
-}\r
-}\r
-return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");\r
-};\r
-t.getAllResponseHeaders=function(){\r
-with(this){\r
-return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[];\r
-}\r
-};\r
-t.getResponseHeader=function(_13){\r
-with(this){\r
-return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader(_13):null;\r
-}\r
-};\r
-t.setRequestHeader=function(_14,_15){\r
-with(this){\r
-_reqHeaders[_reqHeaders.length]=[_14,_15];\r
-}\r
-};\r
-t._dataReady=function(_16,js){\r
-with(this){\r
-if(caching&&_ldObj){\r
-JsHttpRequest.CACHE[_ldObj.hash]=[_16,js];\r
-}\r
-responseText=responseXML=_16;\r
-responseJS=js;\r
-if(js!==null){\r
-status=200;\r
-statusText="OK";\r
-}else{\r
-status=500;\r
-statusText="Internal Server Error";\r
-}\r
-_changeReadyState(2);\r
-_changeReadyState(3);\r
-_changeReadyState(4);\r
-_cleanup();\r
-}\r
-};\r
-t._l=function(_18){\r
-var i=0,p=0,msg=this._errors[_18[0]];\r
-while((p=msg.indexOf("%",p))>=0){\r
-var a=_18[++i]+"";\r
-msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length);\r
-p+=1+a.length;\r
-}\r
-return msg;\r
-};\r
-t._error=function(msg){\r
-msg=this._l(typeof (msg)=="string"?arguments:msg);\r
-msg="JsHttpRequest: "+msg;\r
-if(!window.Error){\r
-throw msg;\r
-}else{\r
-if((new Error(1,"test")).description=="test"){\r
-throw new Error(1,msg);\r
-}else{\r
-throw new Error(msg);\r
-}\r
-}\r
-};\r
-t._hash2query=function(_1e,_1f,_20,_21){\r
-if(_1f==null){\r
-_1f="";\r
-}\r
-if((""+typeof (_1e)).toLowerCase()=="object"){\r
-var _22=false;\r
-if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){\r
-_1e={form:_1e};\r
-}\r
-for(var k in _1e){\r
-var v=_1e[k];\r
-if(v instanceof Function){\r
-continue;\r
-}\r
-var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k);\r
-var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName;\r
-if(_26){\r
-var tn=v.tagName.toUpperCase();\r
-if(tn=="FORM"){\r
-_22=true;\r
-}else{\r
-if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){\r
-}else{\r
-return this._error("inv_form_el",(v.name||""),v.tagName);\r
-}\r
-}\r
-_21[_21.length]={name:_25,e:v};\r
-}else{\r
-if(v instanceof Object){\r
-this._hash2query(v,_25,_20,_21);\r
-}else{\r
-if(v===null){\r
-continue;\r
-}\r
-if(v===true){\r
-v=1;\r
-}\r
-if(v===false){\r
-v="";\r
-}\r
-_20[_20.length]=_25+"="+this.escape(""+v);\r
-}\r
-}\r
-if(_22&&_21.length>1){\r
-return this._error("must_be_single_el");\r
-}\r
-}\r
-}else{\r
-_20[_20.length]=_1e;\r
-}\r
-return true;\r
-};\r
-t._cleanup=function(){\r
-var _28=this._ldObj;\r
-if(!_28){\r
-return;\r
-}\r
-JsHttpRequest.PENDING[_28.id]=false;\r
-var _29=_28.span;\r
-if(!_29){\r
-return;\r
-}\r
-_28.span=null;\r
-var _2a=function(){\r
-_29.parentNode.removeChild(_29);\r
-};\r
-JsHttpRequest.setTimeout(_2a,50);\r
-};\r
-t._changeReadyState=function(s,_2c){\r
-with(this){\r
-if(_2c){\r
-status=statusText=responseJS=null;\r
-responseText="";\r
-}\r
-readyState=s;\r
-if(onreadystatechange){\r
-onreadystatechange();\r
-}\r
-}\r
-};\r
-t.escape=function(s){\r
-return escape(s).replace(new RegExp("\\+","g"),"%2B");\r
-};\r
-}\r
-JsHttpRequest.COUNT=0;\r
-JsHttpRequest.MAX_URL_LEN=2000;\r
-JsHttpRequest.CACHE={};\r
-JsHttpRequest.PENDING={};\r
-JsHttpRequest.LOADERS={};\r
-JsHttpRequest._dummy=function(){\r
-};\r
-JsHttpRequest.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout};\r
-JsHttpRequest.setTimeout=function(_2e,dt){\r
-window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.s;\r
-if(typeof (_2e)=="string"){\r
-id=window.JsHttpRequest_tmp(_2e,dt);\r
-}else{\r
-var id=null;\r
-var _31=function(){\r
-_2e();\r
-delete JsHttpRequest.TIMEOUTS[id];\r
-};\r
-id=window.JsHttpRequest_tmp(_31,dt);\r
-JsHttpRequest.TIMEOUTS[id]=_31;\r
-}\r
-window.JsHttpRequest_tmp=null;\r
-return id;\r
-};\r
-JsHttpRequest.clearTimeout=function(id){\r
-window.JsHttpRequest_tmp=JsHttpRequest.TIMEOUTS.c;\r
-delete JsHttpRequest.TIMEOUTS[id];\r
-var r=window.JsHttpRequest_tmp(id);\r
-window.JsHttpRequest_tmp=null;\r
-return r;\r
-};\r
-JsHttpRequest.query=function(url,_35,_36,_37){\r
-var req=new this();\r
-req.caching=!_37;\r
-req.onreadystatechange=function(){\r
-if(req.readyState==4){\r
-_36(req.responseJS,req.responseText);\r
-}\r
-};\r
-req.open(null,url,true);\r
-req.send(_35);\r
-};\r
-JsHttpRequest.dataReady=function(d){\r
-var th=this.PENDING[d.id];\r
-delete this.PENDING[d.id];\r
-if(th){\r
-th._dataReady(d.text,d.js);\r
-}else{\r
-if(th!==false){\r
-throw "dataReady(): unknown pending id: "+d.id;\r
-}\r
-}\r
-};\r
-JsHttpRequest.extend=function(_3b,src){\r
-for(var k in src){\r
-_3b[k]=src[k];\r
-}\r
-};\r
-JsHttpRequest.LOADERS.xml={loader:function(req){\r
-JsHttpRequest.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"});\r
-this.load=function(){\r
-if(this.queryElem.length){\r
-return ["xml_no_form_upl"];\r
-}\r
-if(this.url.match(new RegExp("^([a-z]+://[^\\/]+)(.*)","i"))){\r
-if(RegExp.$1.toLowerCase()!=document.location.protocol+"//"+document.location.hostname.toLowerCase()){\r
-return ["xml_no_diffdom",RegExp.$1];\r
-}\r
-}\r
-var xr=null;\r
-if(window.XMLHttpRequest){\r
-try{\r
-xr=new XMLHttpRequest();\r
-}\r
-catch(e){\r
-}\r
-}else{\r
-if(window.ActiveXObject){\r
-try{\r
-xr=new ActiveXObject("Microsoft.XMLHTTP");\r
-}\r
-catch(e){\r
-}\r
-if(!xr){\r
-try{\r
-xr=new ActiveXObject("Msxml2.XMLHTTP");\r
-}\r
-catch(e){\r
-}\r
-}\r
-}\r
-}\r
-if(!xr){\r
-return ["xml_no"];\r
-}\r
-var _40=window.ActiveXObject||xr.setRequestHeader;\r
-if(!this.method){\r
-this.method=_40&&this.queryText.length?"POST":"GET";\r
-}\r
-if(this.method=="GET"){\r
-if(this.queryText){\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;\r
-}\r
-this.queryText="";\r
-if(this.url.length>JsHttpRequest.MAX_URL_LEN){\r
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];\r
-}\r
-}else{\r
-if(this.method=="POST"&&!_40){\r
-return ["xml_no_headers"];\r
-}\r
-}\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+(req.caching?"0":this.id)+"-xml";\r
-var id=this.id;\r
-xr.onreadystatechange=function(){\r
-if(xr.readyState!=4){\r
-return;\r
-}\r
-xr.onreadystatechange=JsHttpRequest._dummy;\r
-req.status=null;\r
-try{\r
-req.status=xr.status;\r
-req.responseText=xr.responseText;\r
-}\r
-catch(e){\r
-}\r
-if(!req.status){\r
-return;\r
-}\r
-try{\r
-eval("JsHttpRequest._tmp = function(id) { var d = "+req.responseText+"; d.id = id; JsHttpRequest.dataReady(d); }");\r
-}\r
-catch(e){\r
-return req._error("js_invalid",req.responseText);\r
-}\r
-JsHttpRequest._tmp(id);\r
-JsHttpRequest._tmp=null;\r
-};\r
-xr.open(this.method,this.url,true,this.username,this.password);\r
-if(_40){\r
-for(var i=0;i<req._reqHeaders.length;i++){\r
-xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]);\r
-}\r
-xr.setRequestHeader("Content-Type","application/octet-stream");\r
-}\r
-xr.send(this.queryText);\r
-this.span=null;\r
-this.xr=xr;\r
-return null;\r
-};\r
-this.getAllResponseHeaders=function(){\r
-return this.xr.getAllResponseHeaders();\r
-};\r
-this.getResponseHeader=function(_43){\r
-return this.xr.getResponseHeader(_43);\r
-};\r
-this.abort=function(){\r
-this.xr.abort();\r
-this.xr=null;\r
-};\r
-}};\r
-JsHttpRequest.LOADERS.script={loader:function(req){\r
-JsHttpRequest.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"});\r
-this.load=function(){\r
-if(this.queryText){\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;\r
-}\r
-this.url+=(this.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+this.id+"-"+"script";\r
-this.queryText="";\r
-if(!this.method){\r
-this.method="GET";\r
-}\r
-if(this.method!=="GET"){\r
-return ["script_only_get"];\r
-}\r
-if(this.queryElem.length){\r
-return ["script_no_form"];\r
-}\r
-if(this.url.length>JsHttpRequest.MAX_URL_LEN){\r
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];\r
-}\r
-var th=this,d=document,s=null,b=d.body;\r
-if(!window.opera){\r
-this.span=s=d.createElement("SCRIPT");\r
-var _49=function(){\r
-s.language="JavaScript";\r
-if(s.setAttribute){\r
-s.setAttribute("src",th.url);\r
-}else{\r
-s.src=th.url;\r
-}\r
-b.insertBefore(s,b.lastChild);\r
-};\r
-}else{\r
-this.span=s=d.createElement("SPAN");\r
-s.style.display="none";\r
-b.insertBefore(s,b.lastChild);\r
-s.innerHTML="Workaround for IE.<s"+"cript></"+"script>";\r
-var _49=function(){\r
-s=s.getElementsByTagName("SCRIPT")[0];\r
-s.language="JavaScript";\r
-if(s.setAttribute){\r
-s.setAttribute("src",th.url);\r
-}else{\r
-s.src=th.url;\r
-}\r
-};\r
-}\r
-JsHttpRequest.setTimeout(_49,10);\r
-return null;\r
-};\r
-}};\r
-JsHttpRequest.LOADERS.form={loader:function(req){\r
-JsHttpRequest.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."});\r
-this.load=function(){\r
-var th=this;\r
-if(!th.method){\r
-th.method="POST";\r
-}\r
-th.url+=(th.url.indexOf("?")>=0?"&":"?")+"JsHttpRequest="+th.id+"-"+"form";\r
-if(th.method=="GET"){\r
-if(th.queryText){\r
-th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText;\r
-}\r
-if(th.url.length>JsHttpRequest.MAX_URL_LEN){\r
-return ["url_too_long",JsHttpRequest.MAX_URL_LEN];\r
-}\r
-var p=th.url.split("?",2);\r
-th.url=p[0];\r
-th.queryText=p[1]||"";\r
-}\r
-var _4d=null;\r
-var _4e=false;\r
-if(th.queryElem.length){\r
-if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){\r
-_4d=th.queryElem[0].e;\r
-_4e=true;\r
-th.queryElem=[];\r
-}else{\r
-_4d=th.queryElem[0].e.form;\r
-for(var i=0;i<th.queryElem.length;i++){\r
-var e=th.queryElem[i].e;\r
-if(!e.form){\r
-return ["form_el_not_belong",e.name];\r
-}\r
-if(e.form!=_4d){\r
-return ["form_el_belong_diff",e.name];\r
-}\r
-}\r
-}\r
-if(th.method=="POST"){\r
-var _51="multipart/form-data";\r
-var _52=(_4d.attributes.encType&&_4d.attributes.encType.nodeValue)||(_4d.attributes.enctype&&_4d.attributes.enctype.value)||_4d.enctype;\r
-if(_52!=_51){\r
-return ["form_el_inv_enctype",_51,_52];\r
-}\r
-}\r
-}\r
-var d=_4d&&(_4d.ownerDocument||_4d.document)||document;\r
-var _54="jshr_i_"+th.id;\r
-var s=th.span=d.createElement("DIV");\r
-s.style.position="absolute";\r
-s.style.display="none";\r
-s.style.visibility="hidden";\r
-s.innerHTML=(_4d?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_54+"\" id=\""+_54+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>";\r
-if(!_4d){\r
-_4d=th.span.firstChild;\r
-}\r
-d.body.insertBefore(s,d.body.lastChild);\r
-var _56=function(e,_58){\r
-var sv=[];\r
-var _5a=e;\r
-if(e.mergeAttributes){\r
-var _5a=d.createElement("form");\r
-_5a.mergeAttributes(e,false);\r
-}\r
-for(var i=0;i<_58.length;i++){\r
-var k=_58[i][0],v=_58[i][1];\r
-sv[sv.length]=[k,_5a.getAttribute(k)];\r
-_5a.setAttribute(k,v);\r
-}\r
-if(e.mergeAttributes){\r
-e.mergeAttributes(_5a,false);\r
-}\r
-return sv;\r
-};\r
-var _5e=function(){\r
-top.JsHttpRequestGlobal=JsHttpRequest;\r
-var _5f=[];\r
-if(!_4e){\r
-for(var i=0,n=_4d.elements.length;i<n;i++){\r
-_5f[i]=_4d.elements[i].name;\r
-_4d.elements[i].name="";\r
-}\r
-}\r
-var qt=th.queryText.split("&");\r
-for(var i=qt.length-1;i>=0;i--){\r
-var _63=qt[i].split("=",2);\r
-var e=d.createElement("INPUT");\r
-e.type="hidden";\r
-e.name=unescape(_63[0]);\r
-e.value=_63[1]!=null?unescape(_63[1]):"";\r
-_4d.appendChild(e);\r
-}\r
-for(var i=0;i<th.queryElem.length;i++){\r
-th.queryElem[i].e.name=th.queryElem[i].name;\r
-}\r
-var sv=_56(_4d,[["action",th.url],["method",th.method],["onsubmit",null],["target",_54]]);\r
-_4d.submit();\r
-_56(_4d,sv);\r
-for(var i=0;i<qt.length;i++){\r
-_4d.lastChild.parentNode.removeChild(_4d.lastChild);\r
-}\r
-if(!_4e){\r
-for(var i=0,n=_4d.elements.length;i<n;i++){\r
-_4d.elements[i].name=_5f[i];\r
-}\r
-}\r
-};\r
-JsHttpRequest.setTimeout(_5e,100);\r
-return null;\r
-};\r
-}};\r
-\r
+++ /dev/null
-/**\r
- * Swiff.Uploader - Flash FileReference Control\r
- *\r
- * @version 1.1\r
- *\r
- * @license MIT License\r
- *\r
- * @author Harald Kirschner <mail [at] digitarald [dot] de>\r
- * @copyright Authors\r
- */\r
-\r
-Swiff.Uploader = new Class({\r
-\r
- Extends: Swiff,\r
-\r
- Implements: Events,\r
-\r
- options: {\r
- path: 'Swiff.Uploader.swf',\r
- multiple: true,\r
- queued: true,\r
- typeFilter: null,\r
- url: null,\r
- method: 'post',\r
- data: null,\r
- fieldName: 'Filedata',\r
- callBacks: null\r
- },\r
-\r
- initialize: function(options){\r
- if (Browser.Plugins.Flash.version < 9) return false;\r
- this.setOptions(options);\r
-\r
- var callBacks = this.options.callBacks || this;\r
- if (callBacks.onLoad) this.addEvent('onLoad', callBacks.onLoad);\r
-\r
- var prepare = {}, self = this;\r
- ['onSelect', 'onAllSelect', 'onCancel', 'onBeforeOpen', 'onOpen', 'onProgress', 'onComplete', 'onError', 'onAllComplete'].each(function(index) {\r
- var fn = (callBacks[index]) ? callBacks[index] : $empty;\r
- prepare[index] = function() {\r
- return fn.apply(self, arguments);\r
- };\r
- }, this);\r
-\r
- prepare.onLoad = this.load.create({delay: 10, bind: this});\r
- this.options.callBacks = prepare;\r
-\r
- var path = this.options.path;\r
- if (!path.contains('?')) path += '?noCache=' + $time(); // quick fix\r
-\r
- delete this.options.params.wMode;\r
- this.parent(path);\r
-\r
- if (!this.options.container) document.body.appendChild(this.object);\r
- return this;\r
- },\r
-\r
- load: function(){\r
- this.remote('register', this.instance, this.options.multiple, this.options.queued);\r
- this.fireEvent('onLoad');\r
- },\r
-\r
- /*\r
- Method: browse\r
- Open the file browser.\r
- */\r
-\r
- browse: function(typeFilter){\r
- return this.remote('browse', $pick(typeFilter, this.options.typeFilter));\r
- },\r
-\r
- /*\r
- Method: upload\r
- Starts the upload of all selected files.\r
- */\r
-\r
- upload: function(options){\r
- var current = this.options;\r
- options = $extend({data: current.data, url: current.url, method: current.method, fieldName: current.fieldName}, options);\r
- if ($type(options.data) == 'element') options.data = $(options.data).toQueryString();\r
- return this.remote('upload', options);\r
- },\r
-\r
- /*\r
- Method: removeFile\r
- For multiple uploads cancels and removes the given file from queue.\r
-\r
- Arguments:\r
- name - (string) Filename\r
- name - (string) Filesize in byte\r
- */\r
-\r
- removeFile: function(file){\r
- if (file) file = {name: file.name, size: file.size};\r
- return this.remote('removeFile', file);\r
- },\r
-\r
- /*\r
- Method: getFileList\r
- Returns one Array with with arrays containing name and size of the file.\r
-\r
- Returns:\r
- (array) An array with files\r
- */\r
-\r
- getFileList: function(){\r
- return this.remote('getFileList');\r
- }\r
-\r
-});\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var ImagesDialog = {\r
- init : function(ed) {\r
- tinyMCEPopup.resizeToInnerSize();\r
- },\r
-\r
- insert : function(file, title, width) {\r
- var ed = tinyMCEPopup.editor, dom = ed.dom;\r
-\r
- tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {\r
- src : file,\r
- alt : title,\r
- title : title,\r
- width : width,\r
- /*height : 0,*/\r
- border : 0\r
- }));\r
-\r
- tinyMCEPopup.close();\r
- }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(ImagesDialog.init, ImagesDialog);
\ No newline at end of file
+++ /dev/null
-/*\r
-Script: Core.js\r
- MooTools - My Object Oriented JavaScript Tools.\r
-\r
-License:\r
- MIT-style license.\r
-\r
-Copyright:\r
- Copyright (c) 2006-2007 [Valerio Proietti](http://mad4milk.net/).\r
-\r
-Code & Documentation:\r
- [The MooTools production team](http://mootools.net/developers/).\r
-\r
-Inspiration:\r
- - Class implementation inspired by [Base.js](http://dean.edwards.name/weblog/2006/03/base/) Copyright (c) 2006 Dean Edwards, [GNU Lesser General Public License](http://opensource.org/licenses/lgpl-license.php)\r
- - Some functionality inspired by [Prototype.js](http://prototypejs.org) Copyright (c) 2005-2007 Sam Stephenson, [MIT License](http://opensource.org/licenses/mit-license.php)\r
-*/\r
-\r
-var MooTools = {\r
- 'version': '1.2dev',\r
- 'build': '%build%'\r
-};\r
- \r
-var Native = function(options){\r
- options = options || {};\r
-\r
- var afterImplement = options.afterImplement || function(){};\r
- var generics = options.generics;\r
- generics = (generics !== false);\r
- var legacy = options.legacy;\r
- var initialize = options.initialize;\r
- var protect = options.protect;\r
- var name = options.name;\r
-\r
- var object = initialize || legacy;\r
-\r
- object.constructor = Native;\r
- object.$family = {name: 'native'};\r
- if (legacy && initialize) object.prototype = legacy.prototype;\r
- object.prototype.constructor = object;\r
-\r
- if (name){\r
- var family = name.toLowerCase();\r
- object.prototype.$family = {name: family};\r
- Native.typize(object, family);\r
- }\r
-\r
- var add = function(obj, name, method, force){\r
- if (!protect || force || !obj.prototype[name]) obj.prototype[name] = method;\r
- if (generics) Native.genericize(obj, name, protect);\r
- afterImplement.call(obj, name, method);\r
- return obj;\r
- };\r
- \r
- object.implement = function(a1, a2, a3){\r
- if (typeof a1 == 'string') return add(this, a1, a2, a3);\r
- for (var p in a1) add(this, p, a1[p], a2);\r
- return this;\r
- };\r
- \r
- object.alias = function(a1, a2, a3){\r
- if (typeof a1 == 'string'){\r
- a1 = this.prototype[a1];\r
- if (a1) add(this, a2, a1, a3);\r
- } else {\r
- for (var a in a1) this.alias(a, a1[a], a2);\r
- }\r
- return this;\r
- };\r
-\r
- return object;\r
-};\r
-\r
-Native.implement = function(objects, properties){\r
- for (var i = 0, l = objects.length; i < l; i++) objects[i].implement(properties);\r
-};\r
-\r
-Native.genericize = function(object, property, check){\r
- if ((!check || !object[property]) && typeof object.prototype[property] == 'function') object[property] = function(){\r
- var args = Array.prototype.slice.call(arguments);\r
- return object.prototype[property].apply(args.shift(), args);\r
- };\r
-};\r
-\r
-Native.typize = function(object, family){\r
- if (!object.type) object.type = function(item){\r
- return ($type(item) === family);\r
- };\r
-};\r
-\r
-Native.alias = function(objects, a1, a2, a3){\r
- for (var i = 0, j = objects.length; i < j; i++) objects[i].alias(a1, a2, a3);\r
-};\r
-\r
-(function(objects){\r
- for (var name in objects) Native.typize(objects[name], name.toLowerCase());\r
-})({'Boolean': Boolean, 'Native': Native, 'Object': Object});\r
-\r
-(function(objects){\r
- for (var name in objects) new Native({name: name, initialize: objects[name], protect: true});\r
-})({'String': String, 'Function': Function, 'Number': Number, 'Array': Array, 'RegExp': RegExp, 'Date': Date});\r
-\r
-(function(object, methods){\r
- for (var i = 0, l = methods.length; i < l; i++) Native.genericize(object, methods[i], true);\r
- return arguments.callee;\r
-})\r
-(Array, ['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'concat', 'join', 'slice', 'toString', 'valueOf', 'indexOf', 'lastIndexOf'])\r
-(String, ['charAt', 'charCodeAt', 'concat', 'indexOf', 'lastIndexOf', 'match', 'replace', 'search', 'slice', 'split', 'substr', 'substring', 'toLowerCase', 'toUpperCase', 'valueOf']);\r
-\r
-function $chk(obj){\r
- return !!(obj || obj === 0);\r
-};\r
-\r
-function $clear(timer){\r
- clearTimeout(timer);\r
- clearInterval(timer);\r
- return null;\r
-};\r
-\r
-function $defined(obj){\r
- return (obj != undefined);\r
-};\r
-\r
-function $empty(){};\r
-\r
-function $arguments(i){\r
- return function(){\r
- return arguments[i];\r
- };\r
-};\r
-\r
-function $lambda(value){\r
- return (typeof value == 'function') ? value : function(){\r
- return value;\r
- };\r
-};\r
-\r
-function $extend(original, extended){\r
- for (var key in (extended || {})) original[key] = extended[key];\r
- return original;\r
-};\r
-\r
-function $unlink(object){\r
- var unlinked = null;\r
- \r
- switch ($type(object)){\r
- case 'object':\r
- unlinked = {};\r
- for (var p in object) unlinked[p] = $unlink(object[p]);\r
- break;\r
- case 'hash':\r
- unlinked = $unlink(object.getClean());\r
- break;\r
- case 'array':\r
- unlinked = [];\r
- for (var i = 0, l = object.length; i < l; i++) unlinked[i] = $unlink(object[i]);\r
- break;\r
- default: return object;\r
- }\r
- \r
- return unlinked;\r
-};\r
-\r
-function $merge(){\r
- var mix = {};\r
- for (var i = 0, l = arguments.length; i < l; i++){\r
- var object = arguments[i];\r
- if ($type(object) != 'object') continue;\r
- for (var key in object){\r
- var op = object[key], mp = mix[key];\r
- mix[key] = (mp && $type(op) == 'object' && $type(mp) == 'object') ? $merge(mp, op) : $unlink(op);\r
- }\r
- }\r
- return mix;\r
-};\r
-\r
-function $pick(){\r
- for (var i = 0, l = arguments.length; i < l; i++){\r
- if (arguments[i] != undefined) return arguments[i];\r
- }\r
- return null;\r
-};\r
-\r
-function $random(min, max){\r
- return Math.floor(Math.random() * (max - min + 1) + min);\r
-};\r
-\r
-function $splat(obj){\r
- var type = $type(obj);\r
- return (type) ? ((type != 'array' && type != 'arguments') ? [obj] : obj) : [];\r
-};\r
-\r
-var $time = Date.now || function(){\r
- return new Date().getTime();\r
-};\r
-\r
-function $try(){\r
- for (var i = 0, l = arguments.length; i < l; i++){\r
- try {\r
- return arguments[i]();\r
- } catch(e){}\r
- }\r
- return null;\r
-};\r
-\r
-function $type(obj){\r
- if (obj == undefined) return false;\r
- if (obj.$family) return (obj.$family.name == 'number' && !isFinite(obj)) ? false : obj.$family.name;\r
- if (obj.nodeName){\r
- switch (obj.nodeType){\r
- case 1: return 'element';\r
- case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';\r
- }\r
- } else if (typeof obj.length == 'number'){\r
- if (obj.callee) return 'arguments';\r
- else if (obj.item) return 'collection';\r
- }\r
- return typeof obj;\r
-};\r
-\r
-var Hash = new Native({\r
-\r
- name: 'Hash',\r
-\r
- initialize: function(object){\r
- if ($type(object) == 'hash') object = $unlink(object.getClean());\r
- for (var key in object) this[key] = object[key];\r
- return this;\r
- }\r
-\r
-});\r
-\r
-Hash.implement({\r
- \r
- getLength: function(){\r
- var length = 0;\r
- for (var key in this){\r
- if (this.hasOwnProperty(key)) length++;\r
- }\r
- return length;\r
- },\r
-\r
- forEach: function(fn, bind){\r
- for (var key in this){\r
- if (this.hasOwnProperty(key)) fn.call(bind, this[key], key, this);\r
- }\r
- },\r
- \r
- getClean: function(){\r
- var clean = {};\r
- for (var key in this){\r
- if (this.hasOwnProperty(key)) clean[key] = this[key];\r
- }\r
- return clean;\r
- }\r
-\r
-});\r
-\r
-Hash.alias('forEach', 'each');\r
-\r
-function $H(object){\r
- return new Hash(object);\r
-};\r
-\r
-Array.implement({\r
-\r
- forEach: function(fn, bind){\r
- for (var i = 0, l = this.length; i < l; i++) fn.call(bind, this[i], i, this);\r
- }\r
-\r
-});\r
-\r
-Array.alias('forEach', 'each');\r
-\r
-function $A(iterable){\r
- if (iterable.item){\r
- var array = [];\r
- for (var i = 0, l = iterable.length; i < l; i++) array[i] = iterable[i];\r
- return array;\r
- }\r
- return Array.prototype.slice.call(iterable);\r
-};\r
-\r
-function $each(iterable, fn, bind){\r
- var type = $type(iterable);\r
- ((type == 'arguments' || type == 'collection' || type == 'array') ? Array : Hash).each(iterable, fn, bind);\r
-};\r
-/*\r
-Script: Browser.js\r
- The Browser Core. Contains Browser initialization, Window and Document, and the Browser Hash.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Browser = new Hash({\r
- Engine: {name: 'unknown', version: ''},\r
- Platform: {name: (navigator.platform.match(/mac|win|linux/i) || ['other'])[0].toLowerCase()},\r
- Features: {xpath: !!(document.evaluate), air: !!(window.runtime)},\r
- Plugins: {}\r
-});\r
-\r
-if (window.opera) Browser.Engine = {name: 'presto', version: (document.getElementsByClassName) ? 950 : 925};\r
-else if (window.ActiveXObject) Browser.Engine = {name: 'trident', version: (window.XMLHttpRequest) ? 5 : 4};\r
-else if (!navigator.taintEnabled) Browser.Engine = {name: 'webkit', version: (Browser.Features.xpath) ? 420 : 419};\r
-else if (document.getBoxObjectFor != null) Browser.Engine = {name: 'gecko', version: (document.getElementsByClassName) ? 19 : 18};\r
-Browser.Engine[Browser.Engine.name] = Browser.Engine[Browser.Engine.name + Browser.Engine.version] = true;\r
-\r
-if (window.orientation != undefined) Browser.Platform.name = 'ipod';\r
-\r
-Browser.Platform[Browser.Platform.name] = true;\r
-\r
-Browser.Request = function(){\r
- return $try(function(){\r
- return new XMLHttpRequest();\r
- }, function(){\r
- return new ActiveXObject('MSXML2.XMLHTTP');\r
- });\r
-};\r
-\r
-Browser.Features.xhr = !!(Browser.Request());\r
-\r
-Browser.Plugins.Flash = (function(){\r
- var version = ($try(function(){\r
- return navigator.plugins['Shockwave Flash'].description;\r
- }, function(){\r
- return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');\r
- }) || '0 r0').match(/\d+/g);\r
- return {version: parseInt(version[0] || 0 + '.' + version[1] || 0), build: parseInt(version[2] || 0)};\r
-})();\r
-\r
-function $exec(text){\r
- if (!text) return text;\r
- if (window.execScript){\r
- window.execScript(text);\r
- } else {\r
- var script = document.createElement('script');\r
- script.setAttribute('type', 'text/javascript');\r
- script.text = text;\r
- document.head.appendChild(script);\r
- document.head.removeChild(script);\r
- }\r
- return text;\r
-};\r
-\r
-Native.UID = 1;\r
-\r
-var $uid = (Browser.Engine.trident) ? function(item){\r
- return (item.uid || (item.uid = [Native.UID++]))[0];\r
-} : function(item){\r
- return item.uid || (item.uid = Native.UID++);\r
-};\r
-\r
-var Window = new Native({\r
-\r
- name: 'Window',\r
-\r
- legacy: (Browser.Engine.trident) ? null: window.Window,\r
-\r
- initialize: function(win){\r
- $uid(win);\r
- if (!win.Element){\r
- win.Element = $empty;\r
- if (Browser.Engine.webkit) win.document.createElement("iframe"); //fixes safari 2\r
- win.Element.prototype = (Browser.Engine.webkit) ? window["[[DOMElement.prototype]]"] : {};\r
- }\r
- return $extend(win, Window.Prototype);\r
- },\r
-\r
- afterImplement: function(property, value){\r
- window[property] = Window.Prototype[property] = value;\r
- }\r
-\r
-});\r
-\r
-Window.Prototype = {$family: {name: 'window'}};\r
-\r
-new Window(window);\r
-\r
-var Document = new Native({\r
-\r
- name: 'Document',\r
-\r
- legacy: (Browser.Engine.trident) ? null: window.Document,\r
-\r
- initialize: function(doc){\r
- $uid(doc);\r
- doc.head = doc.getElementsByTagName('head')[0];\r
- doc.html = doc.getElementsByTagName('html')[0];\r
- doc.window = doc.defaultView || doc.parentWindow;\r
- if (Browser.Engine.trident4) $try(function(){\r
- doc.execCommand("BackgroundImageCache", false, true);\r
- });\r
- return $extend(doc, Document.Prototype);\r
- },\r
-\r
- afterImplement: function(property, value){\r
- document[property] = Document.Prototype[property] = value;\r
- }\r
-\r
-});\r
-\r
-Document.Prototype = {$family: {name: 'document'}};\r
-\r
-new Document(document);/*\r
-Script: Array.js\r
- Contains Array Prototypes like copy, each, contains, and remove.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Array.implement({\r
-\r
- every: function(fn, bind){\r
- for (var i = 0, l = this.length; i < l; i++){\r
- if (!fn.call(bind, this[i], i, this)) return false;\r
- }\r
- return true;\r
- },\r
-\r
- filter: function(fn, bind){\r
- var results = [];\r
- for (var i = 0, l = this.length; i < l; i++){\r
- if (fn.call(bind, this[i], i, this)) results.push(this[i]);\r
- }\r
- return results;\r
- },\r
- \r
- clean: function() {\r
- return this.filter($defined);\r
- },\r
-\r
- indexOf: function(item, from){\r
- var len = this.length;\r
- for (var i = (from < 0) ? Math.max(0, len + from) : from || 0; i < len; i++){\r
- if (this[i] === item) return i;\r
- }\r
- return -1;\r
- },\r
-\r
- map: function(fn, bind){\r
- var results = [];\r
- for (var i = 0, l = this.length; i < l; i++) results[i] = fn.call(bind, this[i], i, this);\r
- return results;\r
- },\r
-\r
- some: function(fn, bind){\r
- for (var i = 0, l = this.length; i < l; i++){\r
- if (fn.call(bind, this[i], i, this)) return true;\r
- }\r
- return false;\r
- },\r
-\r
- associate: function(keys){\r
- var obj = {}, length = Math.min(this.length, keys.length);\r
- for (var i = 0; i < length; i++) obj[keys[i]] = this[i];\r
- return obj;\r
- },\r
-\r
- link: function(object){\r
- var result = {};\r
- for (var i = 0, l = this.length; i < l; i++){\r
- for (var key in object){\r
- if (object[key](this[i])){\r
- result[key] = this[i];\r
- delete object[key];\r
- break;\r
- }\r
- }\r
- }\r
- return result;\r
- },\r
-\r
- contains: function(item, from){\r
- return this.indexOf(item, from) != -1;\r
- },\r
-\r
- extend: function(array){\r
- for (var i = 0, j = array.length; i < j; i++) this.push(array[i]);\r
- return this;\r
- },\r
-\r
- getLast: function(){\r
- return (this.length) ? this[this.length - 1] : null;\r
- },\r
-\r
- getRandom: function(){\r
- return (this.length) ? this[$random(0, this.length - 1)] : null;\r
- },\r
-\r
- include: function(item){\r
- if (!this.contains(item)) this.push(item);\r
- return this;\r
- },\r
-\r
- combine: function(array){\r
- for (var i = 0, l = array.length; i < l; i++) this.include(array[i]);\r
- return this;\r
- },\r
-\r
- erase: function(item){\r
- for (var i = this.length; i--; i){\r
- if (this[i] === item) this.splice(i, 1);\r
- }\r
- return this;\r
- },\r
-\r
- empty: function(){\r
- this.length = 0;\r
- return this;\r
- },\r
-\r
- flatten: function(){\r
- var array = [];\r
- for (var i = 0, l = this.length; i < l; i++){\r
- var type = $type(this[i]);\r
- if (!type) continue;\r
- array = array.concat((type == 'array' || type == 'collection' || type == 'arguments') ? Array.flatten(this[i]) : this[i]);\r
- }\r
- return array;\r
- },\r
-\r
- hexToRgb: function(array){\r
- if (this.length != 3) return null;\r
- var rgb = this.map(function(value){\r
- if (value.length == 1) value += value;\r
- return value.toInt(16);\r
- });\r
- return (array) ? rgb : 'rgb(' + rgb + ')';\r
- },\r
-\r
- rgbToHex: function(array){\r
- if (this.length < 3) return null;\r
- if (this.length == 4 && this[3] == 0 && !array) return 'transparent';\r
- var hex = [];\r
- for (var i = 0; i < 3; i++){\r
- var bit = (this[i] - 0).toString(16);\r
- hex.push((bit.length == 1) ? '0' + bit : bit);\r
- }\r
- return (array) ? hex : '#' + hex.join('');\r
- }\r
-\r
-});/*\r
-Script: Function.js\r
- Contains Function Prototypes like create, bind, pass, and delay.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Function.implement({\r
-\r
- extend: function(properties){\r
- for (var property in properties) this[property] = properties[property];\r
- return this;\r
- },\r
-\r
- create: function(options){\r
- var self = this;\r
- options = options || {};\r
- return function(event){\r
- var args = options.arguments;\r
- args = (args != undefined) ? $splat(args) : Array.slice(arguments, (options.event) ? 1 : 0);\r
- if (options.event) args = [event || window.event].extend(args);\r
- var returns = function(){\r
- return self.apply(options.bind || null, args);\r
- };\r
- if (options.delay) return setTimeout(returns, options.delay);\r
- if (options.periodical) return setInterval(returns, options.periodical);\r
- if (options.attempt) return $try(returns);\r
- return returns();\r
- };\r
- },\r
-\r
- pass: function(args, bind){\r
- return this.create({arguments: args, bind: bind});\r
- },\r
-\r
- attempt: function(args, bind){\r
- return this.create({arguments: args, bind: bind, attempt: true})();\r
- },\r
-\r
- bind: function(bind, args){\r
- return this.create({bind: bind, arguments: args});\r
- },\r
-\r
- bindWithEvent: function(bind, args){\r
- return this.create({bind: bind, event: true, arguments: args});\r
- },\r
-\r
- delay: function(delay, bind, args){\r
- return this.create({delay: delay, bind: bind, arguments: args})();\r
- },\r
-\r
- periodical: function(interval, bind, args){\r
- return this.create({periodical: interval, bind: bind, arguments: args})();\r
- },\r
-\r
- run: function(args, bind){\r
- return this.apply(bind, $splat(args));\r
- }\r
-\r
-});/*\r
-Script: Number.js\r
- Contains Number Prototypes like limit, round, times, and ceil.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Number.implement({\r
-\r
- limit: function(min, max){\r
- return Math.min(max, Math.max(min, this));\r
- },\r
-\r
- round: function(precision){\r
- precision = Math.pow(10, precision || 0);\r
- return Math.round(this * precision) / precision;\r
- },\r
-\r
- times: function(fn, bind){\r
- for (var i = 0; i < this; i++) fn.call(bind, i, this);\r
- },\r
-\r
- toFloat: function(){\r
- return parseFloat(this);\r
- },\r
-\r
- toInt: function(base){\r
- return parseInt(this, base || 10);\r
- }\r
-\r
-});\r
-\r
-Number.alias('times', 'each');\r
-\r
-(function(math){\r
- var methods = {};\r
- math.each(function(name){\r
- if (!Number[name]) methods[name] = function(){\r
- return Math[name].apply(null, [this].concat($A(arguments)));\r
- };\r
- });\r
- Number.implement(methods);\r
-})(['abs', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'exp', 'floor', 'log', 'max', 'min', 'pow', 'sin', 'sqrt', 'tan']);/*\r
-Script: String.js\r
- Contains String Prototypes like camelCase, capitalize, test, and toInt.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-String.implement({\r
-\r
- test: function(regex, params){\r
- return ((typeof regex == 'string') ? new RegExp(regex, params) : regex).test(this);\r
- },\r
-\r
- contains: function(string, separator){\r
- return (separator) ? (separator + this + separator).indexOf(separator + string + separator) > -1 : this.indexOf(string) > -1;\r
- },\r
-\r
- trim: function(){\r
- return this.replace(/^\s+|\s+$/g, '');\r
- },\r
-\r
- clean: function(){\r
- return this.replace(/\s+/g, ' ').trim();\r
- },\r
-\r
- camelCase: function(){\r
- return this.replace(/-\D/g, function(match){\r
- return match.charAt(1).toUpperCase();\r
- });\r
- },\r
-\r
- hyphenate: function(){\r
- return this.replace(/[A-Z]/g, function(match){\r
- return ('-' + match.charAt(0).toLowerCase());\r
- });\r
- },\r
-\r
- capitalize: function(){\r
- return this.replace(/\b[a-z]/g, function(match){\r
- return match.toUpperCase();\r
- });\r
- },\r
-\r
- escapeRegExp: function(){\r
- return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');\r
- },\r
-\r
- toInt: function(base){\r
- return parseInt(this, base || 10);\r
- },\r
-\r
- toFloat: function(){\r
- return parseFloat(this);\r
- },\r
-\r
- hexToRgb: function(array){\r
- var hex = this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);\r
- return (hex) ? hex.slice(1).hexToRgb(array) : null;\r
- },\r
-\r
- rgbToHex: function(array){\r
- var rgb = this.match(/\d{1,3}/g);\r
- return (rgb) ? rgb.rgbToHex(array) : null;\r
- },\r
-\r
- stripScripts: function(option){\r
- var scripts = '';\r
- var text = this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){\r
- scripts += arguments[1] + '\n';\r
- return '';\r
- });\r
- if (option === true) $exec(scripts);\r
- else if ($type(option) == 'function') option(scripts, text);\r
- return text;\r
- },\r
-\r
- substitute: function(object, regexp){\r
- return this.replace(regexp || (/\\?\{([^}]+)\}/g), function(match, name){\r
- if (match.charAt(0) == '\\') return match.slice(1);\r
- return (object[name] != undefined) ? object[name] : '';\r
- });\r
- }\r
-\r
-});/*\r
-Script: Hash.js\r
- Contains Hash Prototypes. Provides a means for overcoming the JavaScript practical impossibility of extending native Objects.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Hash.implement({\r
-\r
- has: Object.prototype.hasOwnProperty,\r
-\r
- keyOf: function(value){\r
- for (var key in this){\r
- if (this.hasOwnProperty(key) && this[key] === value) return key;\r
- }\r
- return null;\r
- },\r
-\r
- hasValue: function(value){\r
- return (Hash.keyOf(this, value) !== null);\r
- },\r
-\r
- extend: function(properties){\r
- Hash.each(properties, function(value, key){\r
- Hash.set(this, key, value);\r
- }, this);\r
- return this;\r
- },\r
-\r
- combine: function(properties){\r
- Hash.each(properties, function(value, key){\r
- Hash.include(this, key, value);\r
- }, this);\r
- return this;\r
- },\r
-\r
- erase: function(key){\r
- if (this.hasOwnProperty(key)) delete this[key];\r
- return this;\r
- },\r
-\r
- get: function(key){\r
- return (this.hasOwnProperty(key)) ? this[key] : null;\r
- },\r
-\r
- set: function(key, value){\r
- if (!this[key] || this.hasOwnProperty(key)) this[key] = value;\r
- return this;\r
- },\r
-\r
- empty: function(){\r
- Hash.each(this, function(value, key){\r
- delete this[key];\r
- }, this);\r
- return this;\r
- },\r
-\r
- include: function(key, value){\r
- var k = this[key];\r
- if (k == undefined) this[key] = value;\r
- return this;\r
- },\r
-\r
- map: function(fn, bind){\r
- var results = new Hash;\r
- Hash.each(this, function(value, key){\r
- results.set(key, fn.call(bind, value, key, this));\r
- }, this);\r
- return results;\r
- },\r
-\r
- filter: function(fn, bind){\r
- var results = new Hash;\r
- Hash.each(this, function(value, key){\r
- if (fn.call(bind, value, key, this)) results.set(key, value);\r
- }, this);\r
- return results;\r
- },\r
-\r
- every: function(fn, bind){\r
- for (var key in this){\r
- if (this.hasOwnProperty(key) && !fn.call(bind, this[key], key)) return false;\r
- }\r
- return true;\r
- },\r
-\r
- some: function(fn, bind){\r
- for (var key in this){\r
- if (this.hasOwnProperty(key) && fn.call(bind, this[key], key)) return true;\r
- }\r
- return false;\r
- },\r
-\r
- getKeys: function(){\r
- var keys = [];\r
- Hash.each(this, function(value, key){\r
- keys.push(key);\r
- });\r
- return keys;\r
- },\r
-\r
- getValues: function(){\r
- var values = [];\r
- Hash.each(this, function(value){\r
- values.push(value);\r
- });\r
- return values;\r
- },\r
- \r
- toQueryString: function(base){\r
- var queryString = [];\r
- Hash.each(this, function(value, key){\r
- if (base) key = base + '[' + key + ']';\r
- var result;\r
- switch ($type(value)){\r
- case 'object': result = Hash.toQueryString(value, key); break;\r
- case 'array':\r
- var qs = {};\r
- value.each(function(val, i){\r
- qs[i] = val;\r
- });\r
- result = Hash.toQueryString(qs, key);\r
- break;\r
- default: result = key + '=' + encodeURIComponent(value);\r
- }\r
- if (value != undefined) queryString.push(result);\r
- });\r
- \r
- return queryString.join('&');\r
- }\r
-\r
-});\r
-\r
-Hash.alias({keyOf: 'indexOf', hasValue: 'contains'});/*\r
-Script: Event.js\r
- Contains the Event Native, to make the event object completely crossbrowser.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Event = new Native({\r
-\r
- name: 'Event',\r
-\r
- initialize: function(event, win){\r
- win = win || window;\r
- var doc = win.document;\r
- event = event || win.event;\r
- if (event.$extended) return event;\r
- this.$extended = true;\r
- var type = event.type;\r
- var target = event.target || event.srcElement;\r
- while (target && target.nodeType == 3) target = target.parentNode;\r
- \r
- if (type.test(/key/)){\r
- var code = event.which || event.keyCode;\r
- var key = Event.Keys.keyOf(code);\r
- if (type == 'keydown'){\r
- var fKey = code - 111;\r
- if (fKey > 0 && fKey < 13) key = 'f' + fKey;\r
- }\r
- key = key || String.fromCharCode(code).toLowerCase();\r
- } else if (type.match(/(click|mouse|menu)/i)){\r
- doc = (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;\r
- var page = {\r
- x: event.pageX || event.clientX + doc.scrollLeft,\r
- y: event.pageY || event.clientY + doc.scrollTop\r
- };\r
- var client = {\r
- x: (event.pageX) ? event.pageX - win.pageXOffset : event.clientX,\r
- y: (event.pageY) ? event.pageY - win.pageYOffset : event.clientY\r
- };\r
- if (type.match(/DOMMouseScroll|mousewheel/)){\r
- var wheel = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;\r
- }\r
- var rightClick = (event.which == 3) || (event.button == 2);\r
- var related = null;\r
- if (type.match(/over|out/)){\r
- switch (type){\r
- case 'mouseover': related = event.relatedTarget || event.fromElement; break;\r
- case 'mouseout': related = event.relatedTarget || event.toElement;\r
- }\r
- if (!(function(){\r
- while (related && related.nodeType == 3) related = related.parentNode;\r
- return true;\r
- }).create({attempt: Browser.Engine.gecko})()) related = false;\r
- }\r
- }\r
-\r
- return $extend(this, {\r
- event: event,\r
- type: type,\r
- \r
- page: page,\r
- client: client,\r
- rightClick: rightClick,\r
- \r
- wheel: wheel,\r
- \r
- relatedTarget: related,\r
- target: target,\r
- \r
- code: code,\r
- key: key,\r
- \r
- shift: event.shiftKey,\r
- control: event.ctrlKey,\r
- alt: event.altKey,\r
- meta: event.metaKey\r
- });\r
- }\r
-\r
-});\r
-\r
-Event.Keys = new Hash({\r
- 'enter': 13,\r
- 'up': 38,\r
- 'down': 40,\r
- 'left': 37,\r
- 'right': 39,\r
- 'esc': 27,\r
- 'space': 32,\r
- 'backspace': 8,\r
- 'tab': 9,\r
- 'delete': 46\r
-});\r
-\r
-Event.implement({\r
-\r
- stop: function(){\r
- return this.stopPropagation().preventDefault();\r
- },\r
-\r
- stopPropagation: function(){\r
- if (this.event.stopPropagation) this.event.stopPropagation();\r
- else this.event.cancelBubble = true;\r
- return this;\r
- },\r
-\r
- preventDefault: function(){\r
- if (this.event.preventDefault) this.event.preventDefault();\r
- else this.event.returnValue = false;\r
- return this;\r
- }\r
-\r
-});/*\r
-Script: Class.js\r
- Contains the Class Function for easily creating, extending, and implementing reusable Classes.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Class = new Native({\r
-\r
- name: 'Class',\r
-\r
- initialize: function(properties){\r
-\r
- properties = properties || {};\r
-\r
- var klass = function(empty){\r
- \r
- for (var key in this) this[key] = $unlink(this[key]);\r
-\r
- for (var mutator in Class.Mutators){\r
- if (!this[mutator]) continue;\r
- Class.Mutators[mutator](this, this[mutator]);\r
- delete this[mutator];\r
- }\r
-\r
- this.constructor = klass;\r
- \r
- if (empty === $empty) return this;\r
- \r
- var self = (this.initialize) ? this.initialize.apply(this, arguments) : this;\r
- if (this.options && this.options.initialize) this.options.initialize.call(this);\r
-\r
- return self;\r
- };\r
-\r
- $extend(klass, this);\r
- klass.constructor = Class;\r
- klass.prototype = properties;\r
- return klass;\r
- }\r
-\r
-});\r
-\r
-Class.implement({\r
-\r
- implement: function(){\r
- Class.Mutators.Implements(this.prototype, Array.slice(arguments));\r
- return this;\r
- }\r
-\r
-});\r
-\r
-Class.Mutators = {};\r
-\r
-Class.Mutators.Implements = function(self, klasses){\r
- $splat(klasses).each(function(klass){\r
- $extend(self, ($type(klass) == 'class') ? new klass($empty) : klass);\r
- });\r
-};\r
-\r
-Class.Mutators.Extends = function(self, klass){\r
- \r
- var instance = new klass($empty);\r
- \r
- delete instance.parent;\r
- delete instance.parentOf;\r
- \r
- for (var key in instance){\r
-\r
- var current = self[key], previous = instance[key];\r
- \r
- if (current == undefined){\r
- self[key] = previous;\r
- continue;\r
- }\r
-\r
- var ctype = $type(current), ptype = $type(previous);\r
- \r
- if (ctype != ptype) continue;\r
- \r
- switch (ctype){\r
- case 'function': \r
- \r
- // opera does not support function.caller, so we replace the function code with brute force. Not pretty, but its just for opera.\r
- // if future opera versions will support function.caller, this code wont be executed anymore.\r
- // this code will be only executed if the current browser does not support function.caller (only opera).\r
- // there is also a fix for an opera bug where in the function string, parentheses around numbers are ignored, and an error is thrown.\r
- \r
- if (!arguments.callee.caller) self[key] = eval('(' + String(current).replace(/\bthis\.parent\(\s*(\))?/g, function(full, close){\r
- return 'arguments.callee._parent_.call(this' + (close || ', ');\r
- }).replace(/(\d+)\.([A-Za-z_])/g, '($1).$2') + ')');\r
- \r
- // end "opera" code\r
- \r
- self[key]._parent_ = previous;\r
- break;\r
- case 'object': self[key] = $merge(previous, current);\r
- }\r
- \r
- }\r
- \r
- self.parent = function(){\r
- return arguments.callee.caller._parent_.apply(this, arguments);\r
- };\r
- \r
- self.parentOf = function(descendant){\r
- return descendant._parent_.apply(this, Array.slice(arguments, 1));\r
- };\r
-\r
-};/*\r
-Script: Class.Extras.js\r
- Contains Utility Classes that can be implemented into your own Classes to ease the execution of many common tasks.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Chain = new Class({\r
-\r
- chain: function(){\r
- this.$chain = (this.$chain || []).extend(arguments);\r
- return this;\r
- },\r
-\r
- callChain: function(){\r
- return (this.$chain && this.$chain.length) ? this.$chain.shift().apply(this, arguments) : false;\r
- },\r
-\r
- clearChain: function(){\r
- if (this.$chain) this.$chain.empty();\r
- return this;\r
- }\r
-\r
-});\r
-\r
-var Events = new Class({\r
-\r
- addEvent: function(type, fn, internal){\r
- if (fn != $empty){\r
- this.$events = this.$events || {};\r
- this.$events[type] = this.$events[type] || [];\r
- this.$events[type].include(fn);\r
- if (internal) fn.internal = true;\r
- }\r
- return this;\r
- },\r
-\r
- addEvents: function(events){\r
- for (var type in events) this.addEvent(type, events[type]);\r
- return this;\r
- },\r
-\r
- fireEvent: function(type, args, delay){\r
- if (!this.$events || !this.$events[type]) return this;\r
- this.$events[type].each(function(fn){\r
- fn.create({'bind': this, 'delay': delay, 'arguments': args})();\r
- }, this);\r
- return this;\r
- },\r
-\r
- removeEvent: function(type, fn){\r
- if (!this.$events || !this.$events[type]) return this;\r
- if (!fn.internal) this.$events[type].erase(fn);\r
- return this;\r
- },\r
-\r
- removeEvents: function(type){\r
- for (var e in this.$events){\r
- if (type && type != e) continue;\r
- var fns = this.$events[e];\r
- for (var i = fns.length; i--; i) this.removeEvent(e, fns[i]);\r
- }\r
- return this;\r
- }\r
-\r
-});\r
-\r
-var Options = new Class({\r
-\r
- setOptions: function(){\r
- this.options = $merge.run([this.options].extend(arguments));\r
- if (!this.addEvent) return this;\r
- for (var option in this.options){\r
- if ($type(this.options[option]) != 'function' || !(/^on[A-Z]/).test(option)) continue;\r
- this.addEvent(option, this.options[option]);\r
- delete this.options[option];\r
- }\r
- return this;\r
- }\r
-\r
-});/*\r
-Script: Element.js\r
- One of the most important items in MooTools. Contains the dollar function, the dollars function, and an handful of cross-browser,\r
- time-saver methods to let you easily work with HTML Elements.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Document.implement({\r
-\r
- newElement: function(tag, props){\r
- if (Browser.Engine.trident && props){\r
- ['name', 'type', 'checked'].each(function(attribute){\r
- if (!props[attribute]) return;\r
- tag += ' ' + attribute + '="' + props[attribute] + '"';\r
- if (attribute != 'checked') delete props[attribute];\r
- });\r
- tag = '<' + tag + '>';\r
- }\r
- return $.element(this.createElement(tag)).set(props);\r
- },\r
-\r
- newTextNode: function(text){\r
- return this.createTextNode(text);\r
- },\r
-\r
- getDocument: function(){\r
- return this;\r
- },\r
-\r
- getWindow: function(){\r
- return this.defaultView || this.parentWindow;\r
- },\r
-\r
- purge: function(){\r
- var elements = this.getElementsByTagName('*');\r
- for (var i = 0, l = elements.length; i < l; i++) Browser.freeMem(elements[i]);\r
- }\r
-\r
-});\r
-\r
-var Element = new Native({\r
-\r
- name: 'Element',\r
-\r
- legacy: window.Element,\r
-\r
- initialize: function(tag, props){\r
- var konstructor = Element.Constructors.get(tag);\r
- if (konstructor) return konstructor(props);\r
- if (typeof tag == 'string') return document.newElement(tag, props);\r
- return $(tag).set(props);\r
- },\r
-\r
- afterImplement: function(key, value){\r
- if (!Array[key]) Elements.implement(key, Elements.multi(key));\r
- Element.Prototype[key] = value;\r
- }\r
-\r
-});\r
-\r
-Element.Prototype = {$family: {name: 'element'}};\r
-\r
-Element.Constructors = new Hash;\r
-\r
-var IFrame = new Native({\r
-\r
- name: 'IFrame',\r
-\r
- generics: false,\r
-\r
- initialize: function(){\r
- var params = Array.link(arguments, {properties: Object.type, iframe: $defined});\r
- var props = params.properties || {};\r
- var iframe = $(params.iframe) || false;\r
- var onload = props.onload || $empty;\r
- delete props.onload;\r
- props.id = props.name = $pick(props.id, props.name, iframe.id, iframe.name, 'IFrame_' + $time());\r
- iframe = new Element(iframe || 'iframe', props);\r
- var onFrameLoad = function(){\r
- var host = $try(function(){\r
- return iframe.contentWindow.location.host;\r
- });\r
- if (host && host == window.location.host){\r
- var win = new Window(iframe.contentWindow);\r
- var doc = new Document(iframe.contentWindow.document);\r
- $extend(win.Element.prototype, Element.Prototype);\r
- }\r
- onload.call(iframe.contentWindow, iframe.contentWindow.document);\r
- };\r
- (!window.frames[props.id]) ? iframe.addListener('load', onFrameLoad) : onFrameLoad();\r
- return iframe;\r
- }\r
-\r
-});\r
-\r
-var Elements = new Native({\r
-\r
- initialize: function(elements, options){\r
- options = $extend({ddup: true, cash: true}, options);\r
- elements = elements || [];\r
- if (options.ddup || options.cash){\r
- var uniques = {}, returned = [];\r
- for (var i = 0, l = elements.length; i < l; i++){\r
- var el = $.element(elements[i], !options.cash);\r
- if (options.ddup){\r
- if (uniques[el.uid]) continue;\r
- uniques[el.uid] = true;\r
- }\r
- returned.push(el);\r
- }\r
- elements = returned;\r
- }\r
- return (options.cash) ? $extend(elements, this) : elements;\r
- }\r
-\r
-});\r
-\r
-Elements.implement({\r
-\r
- filter: function(filter, bind){\r
- if (!filter) return this;\r
- return new Elements(Array.filter(this, (typeof filter == 'string') ? function(item){\r
- return item.match(filter);\r
- } : filter, bind));\r
- }\r
-\r
-});\r
-\r
-Elements.multi = function(property){\r
- return function(){\r
- var items = [];\r
- var elements = true;\r
- for (var i = 0, j = this.length; i < j; i++){\r
- var returns = this[i][property].apply(this[i], arguments);\r
- items.push(returns);\r
- if (elements) elements = ($type(returns) == 'element');\r
- }\r
- return (elements) ? new Elements(items) : items;\r
- };\r
-};\r
-\r
-Window.implement({\r
-\r
- $: function(el, nocash){\r
- if (el && el.$family && el.uid) return el;\r
- var type = $type(el);\r
- return ($[type]) ? $[type](el, nocash, this.document) : null;\r
- },\r
-\r
- $$: function(selector){\r
- if (arguments.length == 1 && typeof selector == 'string') return this.document.getElements(selector);\r
- var elements = [];\r
- var args = Array.flatten(arguments);\r
- for (var i = 0, l = args.length; i < l; i++){\r
- var item = args[i];\r
- switch ($type(item)){\r
- case 'element': item = [item]; break;\r
- case 'string': item = this.document.getElements(item, true); break;\r
- default: item = false;\r
- }\r
- if (item) elements.extend(item);\r
- }\r
- return new Elements(elements);\r
- },\r
-\r
- getDocument: function(){\r
- return this.document;\r
- },\r
-\r
- getWindow: function(){\r
- return this;\r
- }\r
-\r
-});\r
-\r
-$.string = function(id, nocash, doc){\r
- id = doc.getElementById(id);\r
- return (id) ? $.element(id, nocash) : null;\r
-};\r
-\r
-$.element = function(el, nocash){\r
- $uid(el);\r
- if (!nocash && !el.$family && !(/^object|embed$/i).test(el.tagName)){\r
- var proto = Element.Prototype;\r
- for (var p in proto) el[p] = proto[p];\r
- };\r
- return el;\r
-};\r
-\r
-$.object = function(obj, nocash, doc){\r
- if (obj.toElement) return $.element(obj.toElement(doc), nocash);\r
- return null;\r
-};\r
-\r
-$.textnode = $.whitespace = $.window = $.document = $arguments(0);\r
-\r
-Native.implement([Element, Document], {\r
-\r
- getElement: function(selector, nocash){\r
- return $(this.getElements(selector, true)[0] || null, nocash);\r
- },\r
-\r
- getElements: function(tags, nocash){\r
- tags = tags.split(',');\r
- var elements = [];\r
- var ddup = (tags.length > 1);\r
- tags.each(function(tag){\r
- var partial = this.getElementsByTagName(tag.trim());\r
- (ddup) ? elements.extend(partial) : elements = partial;\r
- }, this);\r
- return new Elements(elements, {ddup: ddup, cash: !nocash});\r
- }\r
-\r
-});\r
-\r
-Element.Storage = {\r
-\r
- get: function(uid){\r
- return (this[uid] || (this[uid] = {}));\r
- }\r
-\r
-};\r
-\r
-Element.Inserters = new Hash({\r
-\r
- before: function(context, element){\r
- if (element.parentNode) element.parentNode.insertBefore(context, element);\r
- },\r
-\r
- after: function(context, element){\r
- if (!element.parentNode) return;\r
- var next = element.nextSibling;\r
- (next) ? element.parentNode.insertBefore(context, next) : element.parentNode.appendChild(context);\r
- },\r
-\r
- bottom: function(context, element){\r
- element.appendChild(context);\r
- },\r
-\r
- top: function(context, element){\r
- var first = element.firstChild;\r
- (first) ? element.insertBefore(context, first) : element.appendChild(context);\r
- }\r
-\r
-});\r
-\r
-Element.Inserters.inside = Element.Inserters.bottom;\r
-\r
-Element.Inserters.each(function(value, key){\r
-\r
- var Key = key.capitalize();\r
-\r
- Element.implement('inject' + Key, function(el){\r
- value(this, $(el, true));\r
- return this;\r
- });\r
-\r
- Element.implement('grab' + Key, function(el){\r
- value($(el, true), this);\r
- return this;\r
- });\r
-\r
-});\r
-\r
-Element.implement({\r
-\r
- getDocument: function(){\r
- return this.ownerDocument;\r
- },\r
-\r
- getWindow: function(){\r
- return this.ownerDocument.getWindow();\r
- },\r
-\r
- getElementById: function(id, nocash){\r
- var el = this.ownerDocument.getElementById(id);\r
- if (!el) return null;\r
- for (var parent = el.parentNode; parent != this; parent = parent.parentNode){\r
- if (!parent) return null;\r
- }\r
- return $.element(el, nocash);\r
- },\r
-\r
- set: function(prop, value){\r
- switch ($type(prop)){\r
- case 'object':\r
- for (var p in prop) this.set(p, prop[p]);\r
- break;\r
- case 'string':\r
- var property = Element.Properties.get(prop);\r
- (property && property.set) ? property.set.apply(this, Array.slice(arguments, 1)) : this.setProperty(prop, value);\r
- }\r
- return this;\r
- },\r
-\r
- get: function(prop){\r
- var property = Element.Properties.get(prop);\r
- return (property && property.get) ? property.get.apply(this, Array.slice(arguments, 1)) : this.getProperty(prop);\r
- },\r
-\r
- erase: function(prop){\r
- var property = Element.Properties.get(prop);\r
- (property && property.erase) ? property.erase.apply(this, Array.slice(arguments, 1)) : this.removeProperty(prop);\r
- return this;\r
- },\r
-\r
- match: function(tag){\r
- return (!tag || Element.get(this, 'tag') == tag);\r
- },\r
-\r
- inject: function(el, where){\r
- Element.Inserters.get(where || 'bottom')(this, $(el, true));\r
- return this;\r
- },\r
-\r
- wraps: function(el, where){\r
- el = $(el, true);\r
- return this.replaces(el).grab(el, where);\r
- },\r
-\r
- grab: function(el, where){\r
- Element.Inserters.get(where || 'bottom')($(el, true), this);\r
- return this;\r
- },\r
-\r
- appendText: function(text, where){\r
- return this.grab(this.getDocument().newTextNode(text), where);\r
- },\r
-\r
- adopt: function(){\r
- Array.flatten(arguments).each(function(element){\r
- element = $(element, true);\r
- if (element) this.appendChild(element);\r
- }, this);\r
- return this;\r
- },\r
-\r
- dispose: function(){\r
- return (this.parentNode) ? this.parentNode.removeChild(this) : this;\r
- },\r
-\r
- clone: function(contents, keepid){\r
- switch ($type(this)){\r
- case 'element':\r
- var attributes = {};\r
- for (var j = 0, l = this.attributes.length; j < l; j++){\r
- var attribute = this.attributes[j], key = attribute.nodeName.toLowerCase();\r
- var value = (key == 'style' && this.style) ? this.style.cssText : attribute.nodeValue;\r
- if (!$chk(value) || key == 'uid' || (key == 'id' && !keepid)) continue;\r
- if (value != 'inherit' && ['string', 'number'].contains($type(value))) attributes[key] = value;\r
- }\r
- var element = new Element(this.nodeName.toLowerCase(), attributes);\r
- if (contents !== false){\r
- for (var i = 0, k = this.childNodes.length; i < k; i++){\r
- var child = Element.clone(this.childNodes[i], true, keepid);\r
- if (child) element.grab(child);\r
- }\r
- }\r
- return element;\r
- case 'textnode': return document.newTextNode(this.nodeValue);\r
- }\r
- return null;\r
- },\r
-\r
- replaces: function(el){\r
- el = $(el, true);\r
- el.parentNode.replaceChild(this, el);\r
- return this;\r
- },\r
-\r
- hasClass: function(className){\r
- return this.className.contains(className, ' ');\r
- },\r
-\r
- addClass: function(className){\r
- if (!this.hasClass(className)) this.className = (this.className + ' ' + className).clean();\r
- return this;\r
- },\r
-\r
- removeClass: function(className){\r
- this.className = this.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)'), '$1').clean();\r
- return this;\r
- },\r
-\r
- toggleClass: function(className){\r
- return this.hasClass(className) ? this.removeClass(className) : this.addClass(className);\r
- },\r
-\r
- getComputedStyle: function(property){\r
- if (this.currentStyle) return this.currentStyle[property.camelCase()];\r
- var computed = this.getWindow().getComputedStyle(this, null);\r
- return (computed) ? computed.getPropertyValue([property.hyphenate()]) : null;\r
- },\r
-\r
- empty: function(){\r
- $A(this.childNodes).each(function(node){\r
- Browser.freeMem(node);\r
- Element.empty(node);\r
- Element.dispose(node);\r
- }, this);\r
- return this;\r
- },\r
-\r
- destroy: function(){\r
- Browser.freeMem(this.empty().dispose());\r
- return null;\r
- },\r
-\r
- getSelected: function(){\r
- return new Elements($A(this.options).filter(function(option){\r
- return option.selected;\r
- }));\r
- },\r
-\r
- toQueryString: function(){\r
- var queryString = [];\r
- this.getElements('input, select, textarea').each(function(el){\r
- if (!el.name || el.disabled) return;\r
- var value = (el.tagName.toLowerCase() == 'select') ? Element.getSelected(el).map(function(opt){\r
- return opt.value;\r
- }) : ((el.type == 'radio' || el.type == 'checkbox') && !el.checked) ? null : el.value;\r
- $splat(value).each(function(val){\r
- if (val) queryString.push(el.name + '=' + encodeURIComponent(val));\r
- });\r
- });\r
- return queryString.join('&');\r
- },\r
-\r
- getProperty: function(attribute){\r
- var EA = Element.Attributes, key = EA.Props[attribute];\r
- var value = (key) ? this[key] : this.getAttribute(attribute, 2);\r
- return (EA.Bools[attribute]) ? !!value : (key) ? value : value || null;\r
- },\r
-\r
- getProperties: function(){\r
- var args = $A(arguments);\r
- return args.map(function(attr){\r
- return this.getProperty(attr);\r
- }, this).associate(args);\r
- },\r
-\r
- setProperty: function(attribute, value){\r
- var EA = Element.Attributes, key = EA.Props[attribute], hasValue = $defined(value);\r
- if (key && EA.Bools[attribute]) value = (value || !hasValue) ? true : false;\r
- else if (!hasValue) return this.removeProperty(attribute);\r
- (key) ? this[key] = value : this.setAttribute(attribute, value);\r
- return this;\r
- },\r
-\r
- setProperties: function(attributes){\r
- for (var attribute in attributes) this.setProperty(attribute, attributes[attribute]);\r
- return this;\r
- },\r
-\r
- removeProperty: function(attribute){\r
- var EA = Element.Attributes, key = EA.Props[attribute], isBool = (key && EA.Bools[attribute]);\r
- (key) ? this[key] = (isBool) ? false : '' : this.removeAttribute(attribute);\r
- return this;\r
- },\r
-\r
- removeProperties: function(){\r
- Array.each(arguments, this.removeProperty, this);\r
- return this;\r
- }\r
-\r
-});\r
-\r
-(function(){\r
-\r
-var walk = function(element, walk, start, match, all, nocash){\r
- var el = element[start || walk];\r
- var elements = [];\r
- while (el){\r
- if (el.nodeType == 1 && (!match || Element.match(el, match))){\r
- elements.push(el);\r
- if (!all) break;\r
- }\r
- el = el[walk];\r
- }\r
- return (all) ? new Elements(elements, {ddup: false, cash: !nocash}) : $(elements[0], nocash);\r
-};\r
-\r
-Element.implement({\r
-\r
- getPrevious: function(match, nocash){\r
- return walk(this, 'previousSibling', null, match, false, nocash);\r
- },\r
-\r
- getAllPrevious: function(match, nocash){\r
- return walk(this, 'previousSibling', null, match, true, nocash);\r
- },\r
-\r
- getNext: function(match, nocash){\r
- return walk(this, 'nextSibling', null, match, false, nocash);\r
- },\r
-\r
- getAllNext: function(match, nocash){\r
- return walk(this, 'nextSibling', null, match, true, nocash);\r
- },\r
-\r
- getFirst: function(match, nocash){\r
- return walk(this, 'nextSibling', 'firstChild', match, false, nocash);\r
- },\r
-\r
- getLast: function(match, nocash){\r
- return walk(this, 'previousSibling', 'lastChild', match, false, nocash);\r
- },\r
-\r
- getParent: function(match, nocash){\r
- return walk(this, 'parentNode', null, match, false, nocash);\r
- },\r
-\r
- getParents: function(match, nocash){\r
- return walk(this, 'parentNode', null, match, true, nocash);\r
- },\r
-\r
- getChildren: function(match, nocash){\r
- return walk(this, 'nextSibling', 'firstChild', match, true, nocash);\r
- },\r
-\r
- hasChild: function(el){\r
- el = $(el, true);\r
- return (!!el && $A(this.getElementsByTagName(el.tagName)).contains(el));\r
- }\r
-\r
-});\r
-\r
-})();\r
-\r
-Element.Properties = new Hash;\r
-\r
-Element.Properties.style = {\r
-\r
- set: function(style){\r
- this.style.cssText = style;\r
- },\r
-\r
- get: function(){\r
- return this.style.cssText;\r
- },\r
-\r
- erase: function(){\r
- this.style.cssText = '';\r
- }\r
-\r
-};\r
-\r
-Element.Properties.tag = {get: function(){\r
- return this.tagName.toLowerCase();\r
-}};\r
-\r
-Element.Properties.href = {get: function(){\r
- return (!this.href) ? null : this.href.replace(new RegExp('^' + document.location.protocol + '\/\/' + document.location.host), '');\r
-}};\r
-\r
-Element.Properties.html = {set: function(){\r
- return this.innerHTML = Array.flatten(arguments).join('');\r
-}};\r
-\r
-Native.implement([Element, Window, Document], {\r
-\r
- addListener: function(type, fn){\r
- if (this.addEventListener) this.addEventListener(type, fn, false);\r
- else this.attachEvent('on' + type, fn);\r
- return this;\r
- },\r
-\r
- removeListener: function(type, fn){\r
- if (this.removeEventListener) this.removeEventListener(type, fn, false);\r
- else this.detachEvent('on' + type, fn);\r
- return this;\r
- },\r
-\r
- retrieve: function(property, dflt){\r
- var storage = Element.Storage.get(this.uid);\r
- var prop = storage[property];\r
- if ($defined(dflt) && !$defined(prop)) prop = storage[property] = dflt;\r
- return $pick(prop);\r
- },\r
-\r
- store: function(property, value){\r
- var storage = Element.Storage.get(this.uid);\r
- storage[property] = value;\r
- return this;\r
- },\r
-\r
- eliminate: function(property){\r
- var storage = Element.Storage.get(this.uid);\r
- delete storage[property];\r
- return this;\r
- }\r
-\r
-});\r
-\r
-Element.Attributes = new Hash({\r
- Props: {'html': 'innerHTML', 'class': 'className', 'for': 'htmlFor', 'text': (Browser.Engine.trident) ? 'innerText' : 'textContent'},\r
- Bools: ['compact', 'nowrap', 'ismap', 'declare', 'noshade', 'checked', 'disabled', 'readonly', 'multiple', 'selected', 'noresize', 'defer'],\r
- Camels: ['value', 'accessKey', 'cellPadding', 'cellSpacing', 'colSpan', 'frameBorder', 'maxLength', 'readOnly', 'rowSpan', 'tabIndex', 'useMap']\r
-});\r
-\r
-Browser.freeMem = function(item){\r
- if (!item) return;\r
- if (Browser.Engine.trident && (/object/i).test(item.tagName)){\r
- for (var p in item){\r
- if (typeof item[p] == 'function') item[p] = $empty;\r
- }\r
- Element.dispose(item);\r
- }\r
- if (item.uid && item.removeEvents) item.removeEvents();\r
-};\r
-\r
-(function(EA){\r
-\r
- var EAB = EA.Bools, EAC = EA.Camels;\r
- EA.Bools = EAB = EAB.associate(EAB);\r
- Hash.extend(Hash.combine(EA.Props, EAB), EAC.associate(EAC.map(function(v){\r
- return v.toLowerCase();\r
- })));\r
- EA.erase('Camels');\r
-\r
-})(Element.Attributes);\r
-\r
-window.addListener('unload', function(){\r
- window.removeListener('unload', arguments.callee);\r
- document.purge();\r
- if (Browser.Engine.trident) CollectGarbage();\r
-});/*\r
-Script: Element.Event.js\r
- Contains Element methods for dealing with events, and custom Events.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Element.Properties.events = {set: function(events){\r
- this.addEvents(events);\r
-}};\r
-\r
-Native.implement([Element, Window, Document], {\r
-\r
- addEvent: function(type, fn){\r
- var events = this.retrieve('events', {});\r
- events[type] = events[type] || {'keys': [], 'values': []};\r
- if (events[type].keys.contains(fn)) return this;\r
- events[type].keys.push(fn);\r
- var realType = type, custom = Element.Events.get(type), condition = fn, self = this;\r
- if (custom){\r
- if (custom.onAdd) custom.onAdd.call(this, fn);\r
- if (custom.condition){\r
- condition = function(event){\r
- if (custom.condition.call(this, event)) return fn.call(this, event);\r
- return false;\r
- };\r
- }\r
- realType = custom.base || realType;\r
- }\r
- var defn = function(){\r
- return fn.call(self);\r
- };\r
- var nativeEvent = Element.NativeEvents[realType] || 0;\r
- if (nativeEvent){\r
- if (nativeEvent == 2){\r
- defn = function(event){\r
- event = new Event(event, self.getWindow());\r
- if (condition.call(self, event) === false) event.stop();\r
- };\r
- }\r
- this.addListener(realType, defn);\r
- }\r
- events[type].values.push(defn);\r
- return this;\r
- },\r
-\r
- removeEvent: function(type, fn){\r
- var events = this.retrieve('events');\r
- if (!events || !events[type]) return this;\r
- var pos = events[type].keys.indexOf(fn);\r
- if (pos == -1) return this;\r
- var key = events[type].keys.splice(pos, 1)[0];\r
- var value = events[type].values.splice(pos, 1)[0];\r
- var custom = Element.Events.get(type);\r
- if (custom){\r
- if (custom.onRemove) custom.onRemove.call(this, fn);\r
- type = custom.base || type;\r
- }\r
- return (Element.NativeEvents[type]) ? this.removeListener(type, value) : this;\r
- },\r
-\r
- addEvents: function(events){\r
- for (var event in events) this.addEvent(event, events[event]);\r
- return this;\r
- },\r
-\r
- removeEvents: function(type){\r
- var events = this.retrieve('events');\r
- if (!events) return this;\r
- if (!type){\r
- for (var evType in events) this.removeEvents(evType);\r
- events = null;\r
- } else if (events[type]){\r
- while (events[type].keys[0]) this.removeEvent(type, events[type].keys[0]);\r
- events[type] = null;\r
- }\r
- return this;\r
- },\r
-\r
- fireEvent: function(type, args, delay){\r
- var events = this.retrieve('events');\r
- if (!events || !events[type]) return this;\r
- events[type].keys.each(function(fn){\r
- fn.create({'bind': this, 'delay': delay, 'arguments': args})();\r
- }, this);\r
- return this;\r
- },\r
-\r
- cloneEvents: function(from, type){\r
- from = $(from);\r
- var fevents = from.retrieve('events');\r
- if (!fevents) return this;\r
- if (!type){\r
- for (var evType in fevents) this.cloneEvents(from, evType);\r
- } else if (fevents[type]){\r
- fevents[type].keys.each(function(fn){\r
- this.addEvent(type, fn);\r
- }, this);\r
- }\r
- return this;\r
- }\r
-\r
-});\r
-\r
-Element.NativeEvents = {\r
- click: 2, dblclick: 2, mouseup: 2, mousedown: 2, contextmenu: 2, //mouse buttons\r
- mousewheel: 2, DOMMouseScroll: 2, //mouse wheel\r
- mouseover: 2, mouseout: 2, mousemove: 2, selectstart: 2, selectend: 2, //mouse movement\r
- keydown: 2, keypress: 2, keyup: 2, //keyboard\r
- focus: 2, blur: 2, change: 2, reset: 2, select: 2, submit: 2, //form elements\r
- load: 1, unload: 1, beforeunload: 2, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window\r
- error: 1, abort: 1, scroll: 1 //misc\r
-};\r
-\r
-(function(){\r
-\r
-var $check = function(event){\r
- var related = event.relatedTarget;\r
- if (related == undefined) return true;\r
- if (related === false) return false;\r
- return ($type(this) != 'document' && related != this && related.prefix != 'xul' && !this.hasChild(related));\r
-};\r
-\r
-Element.Events = new Hash({\r
-\r
- mouseenter: {\r
- base: 'mouseover',\r
- condition: $check\r
- },\r
-\r
- mouseleave: {\r
- base: 'mouseout',\r
- condition: $check\r
- },\r
-\r
- mousewheel: {\r
- base: (Browser.Engine.gecko) ? 'DOMMouseScroll' : 'mousewheel'\r
- }\r
-\r
-});\r
-\r
-})();/*\r
-Script: Element.Style.js\r
- Contains methods for interacting with the styles of Elements in a fashionable way.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Element.Properties.styles = {set: function(styles){\r
- this.setStyles(styles);\r
-}};\r
-\r
-Element.Properties.opacity = {\r
-\r
- set: function(opacity, novisibility){\r
- if (!novisibility){\r
- if (opacity == 0){\r
- if (this.style.visibility != 'hidden') this.style.visibility = 'hidden';\r
- } else {\r
- if (this.style.visibility != 'visible') this.style.visibility = 'visible';\r
- }\r
- }\r
- if (!this.currentStyle || !this.currentStyle.hasLayout) this.style.zoom = 1;\r
- if (Browser.Engine.trident) this.style.filter = (opacity == 1) ? '' : 'alpha(opacity=' + opacity * 100 + ')';\r
- this.style.opacity = opacity;\r
- this.store('opacity', opacity);\r
- },\r
-\r
- get: function(){\r
- return this.retrieve('opacity', 1);\r
- }\r
-\r
-};\r
-\r
-Element.implement({\r
- \r
- setOpacity: function(value){\r
- return this.set('opacity', value, true);\r
- },\r
- \r
- getOpacity: function(){\r
- return this.get('opacity');\r
- },\r
-\r
- setStyle: function(property, value){\r
- switch (property){\r
- case 'opacity': return this.set('opacity', parseFloat(value));\r
- case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';\r
- }\r
- property = property.camelCase();\r
- if ($type(value) != 'string'){\r
- var map = (Element.Styles.get(property) || '@').split(' ');\r
- value = $splat(value).map(function(val, i){\r
- if (!map[i]) return '';\r
- return ($type(val) == 'number') ? map[i].replace('@', Math.round(val)) : val;\r
- }).join(' ');\r
- } else if (value == String(Number(value))){\r
- value = Math.round(value);\r
- }\r
- this.style[property] = value;\r
- return this;\r
- },\r
-\r
- getStyle: function(property){\r
- switch (property){\r
- case 'opacity': return this.get('opacity');\r
- case 'float': property = (Browser.Engine.trident) ? 'styleFloat' : 'cssFloat';\r
- }\r
- property = property.camelCase();\r
- var result = this.style[property];\r
- if (!$chk(result)){\r
- result = [];\r
- for (var style in Element.ShortStyles){\r
- if (property != style) continue;\r
- for (var s in Element.ShortStyles[style]) result.push(this.getStyle(s));\r
- return result.join(' ');\r
- }\r
- result = this.getComputedStyle(property);\r
- }\r
- if (result){\r
- result = String(result);\r
- var color = result.match(/rgba?\([\d\s,]+\)/);\r
- if (color) result = result.replace(color[0], color[0].rgbToHex());\r
- }\r
- if (Browser.Engine.presto || (Browser.Engine.trident && !$chk(parseInt(result)))){\r
- if (property.test(/^(height|width)$/)){\r
- var values = (property == 'width') ? ['left', 'right'] : ['top', 'bottom'], size = 0;\r
- values.each(function(value){\r
- size += this.getStyle('border-' + value + '-width').toInt() + this.getStyle('padding-' + value).toInt();\r
- }, this);\r
- return this['offset' + property.capitalize()] - size + 'px';\r
- }\r
- if (Browser.Engine.presto && String(result).test('px')) return result;\r
- if (property.test(/(border(.+)Width|margin|padding)/)) return '0px';\r
- }\r
- return result;\r
- },\r
-\r
- setStyles: function(styles){\r
- for (var style in styles) this.setStyle(style, styles[style]);\r
- return this;\r
- },\r
-\r
- getStyles: function(){\r
- var result = {};\r
- Array.each(arguments, function(key){\r
- result[key] = this.getStyle(key);\r
- }, this);\r
- return result;\r
- }\r
-\r
-});\r
-\r
-Element.Styles = new Hash({\r
- left: '@px', top: '@px', bottom: '@px', right: '@px',\r
- width: '@px', height: '@px', maxWidth: '@px', maxHeight: '@px', minWidth: '@px', minHeight: '@px',\r
- backgroundColor: 'rgb(@, @, @)', backgroundPosition: '@px @px', color: 'rgb(@, @, @)',\r
- fontSize: '@px', letterSpacing: '@px', lineHeight: '@px', clip: 'rect(@px @px @px @px)',\r
- margin: '@px @px @px @px', padding: '@px @px @px @px', border: '@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',\r
- borderWidth: '@px @px @px @px', borderStyle: '@ @ @ @', borderColor: 'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',\r
- zIndex: '@', 'zoom': '@', fontWeight: '@', textIndent: '@px', opacity: '@'\r
-});\r
-\r
-Element.ShortStyles = {margin: {}, padding: {}, border: {}, borderWidth: {}, borderStyle: {}, borderColor: {}};\r
-\r
-['Top', 'Right', 'Bottom', 'Left'].each(function(direction){\r
- var Short = Element.ShortStyles;\r
- var All = Element.Styles;\r
- ['margin', 'padding'].each(function(style){\r
- var sd = style + direction;\r
- Short[style][sd] = All[sd] = '@px';\r
- });\r
- var bd = 'border' + direction;\r
- Short.border[bd] = All[bd] = '@px @ rgb(@, @, @)';\r
- var bdw = bd + 'Width', bds = bd + 'Style', bdc = bd + 'Color';\r
- Short[bd] = {};\r
- Short.borderWidth[bdw] = Short[bd][bdw] = All[bdw] = '@px';\r
- Short.borderStyle[bds] = Short[bd][bds] = All[bds] = '@';\r
- Short.borderColor[bdc] = Short[bd][bdc] = All[bdc] = 'rgb(@, @, @)';\r
-});\r
-/*\r
-Script: Element.Dimensions.js\r
- Contains methods to work with size, scroll, or positioning of Elements and the window object.\r
-\r
-License:\r
- MIT-style license.\r
-\r
-Credits:\r
- - Element positioning based on the [qooxdoo](http://qooxdoo.org/) code and smart browser fixes, [LGPL License](http://www.gnu.org/licenses/lgpl.html).\r
- - Viewport dimensions based on [YUI](http://developer.yahoo.com/yui/) code, [BSD License](http://developer.yahoo.com/yui/license.html).\r
-*/\r
-\r
-(function(){\r
-\r
-Element.implement({\r
-\r
- scrollTo: function(x, y){\r
- if (isBody(this)){\r
- this.getWindow().scrollTo(x, y);\r
- } else {\r
- this.scrollLeft = x;\r
- this.scrollTop = y;\r
- }\r
- return this;\r
- },\r
-\r
- getSize: function(){\r
- if (isBody(this)) return this.getWindow().getSize();\r
- return {x: this.offsetWidth, y: this.offsetHeight};\r
- },\r
-\r
- getScrollSize: function(){\r
- if (isBody(this)) return this.getWindow().getScrollSize();\r
- return {x: this.scrollWidth, y: this.scrollHeight};\r
- },\r
-\r
- getScroll: function(){\r
- if (isBody(this)) return this.getWindow().getScroll();\r
- return {x: this.scrollLeft, y: this.scrollTop};\r
- },\r
-\r
- getScrolls: function(){\r
- var element = this, position = {x: 0, y: 0};\r
- while (element && !isBody(element)){\r
- position.x += element.scrollLeft;\r
- position.y += element.scrollTop;\r
- element = element.parentNode;\r
- }\r
- return position;\r
- },\r
-\r
- getOffsets: function(){\r
- var element = this, position = {x: 0, y: 0};\r
- if (isBody(this)) return position;\r
-\r
- while (element && !isBody(element)){\r
- position.x += element.offsetLeft;\r
- position.y += element.offsetTop;\r
-\r
- if (Browser.Engine.gecko){\r
- if (!borderBox(element)){\r
- position.x += leftBorder(element);\r
- position.y += topBorder(element);\r
- }\r
- var parent = element.parentNode;\r
- if (parent && styleString(parent, 'overflow') != 'visible'){\r
- position.x += leftBorder(parent);\r
- position.y += topBorder(parent);\r
- }\r
- } else if (element != this && (Browser.Engine.trident || Browser.Engine.webkit)){\r
- position.x += leftBorder(element);\r
- position.y += topBorder(element);\r
- }\r
-\r
- element = element.offsetParent;\r
- if (Browser.Engine.trident){\r
- while (element && !element.currentStyle.hasLayout) element = element.offsetParent;\r
- }\r
- }\r
- if (Browser.Engine.gecko && !borderBox(this)){\r
- position.x -= leftBorder(this);\r
- position.y -= topBorder(this);\r
- }\r
- return position;\r
- },\r
-\r
- getPosition: function(relative){\r
- if (isBody(this)) return {x: 0, y: 0};\r
- var offset = this.getOffsets(), scroll = this.getScrolls();\r
- var position = {x: offset.x - scroll.x, y: offset.y - scroll.y};\r
- var relativePosition = (relative && (relative = $(relative))) ? relative.getPosition() : {x: 0, y: 0};\r
- return {x: position.x - relativePosition.x, y: position.y - relativePosition.y};\r
- },\r
-\r
- getCoordinates: function(element){\r
- if (isBody(this)) return this.getWindow().getCoordinates();\r
- var position = this.getPosition(element), size = this.getSize();\r
- var obj = {left: position.x, top: position.y, width: size.x, height: size.y};\r
- obj.right = obj.left + obj.width;\r
- obj.bottom = obj.top + obj.height;\r
- return obj;\r
- },\r
-\r
- computePosition: function(obj){\r
- return {left: obj.x - styleNumber(this, 'margin-left'), top: obj.y - styleNumber(this, 'margin-top')};\r
- },\r
-\r
- position: function(obj){\r
- return this.setStyles(this.computePosition(obj));\r
- }\r
-\r
-});\r
-\r
-Native.implement([Document, Window], {\r
-\r
- getSize: function(){\r
- var win = this.getWindow();\r
- if (Browser.Engine.presto || Browser.Engine.webkit) return {x: win.innerWidth, y: win.innerHeight};\r
- var doc = getCompatElement(this);\r
- return {x: doc.clientWidth, y: doc.clientHeight};\r
- },\r
-\r
- getScroll: function(){\r
- var win = this.getWindow();\r
- var doc = getCompatElement(this);\r
- return {x: win.pageXOffset || doc.scrollLeft, y: win.pageYOffset || doc.scrollTop};\r
- },\r
-\r
- getScrollSize: function(){\r
- var doc = getCompatElement(this);\r
- var min = this.getSize();\r
- return {x: Math.max(doc.scrollWidth, min.x), y: Math.max(doc.scrollHeight, min.y)};\r
- },\r
-\r
- getPosition: function(){\r
- return {x: 0, y: 0};\r
- },\r
-\r
- getCoordinates: function(){\r
- var size = this.getSize();\r
- return {top: 0, left: 0, bottom: size.y, right: size.x, height: size.y, width: size.x};\r
- }\r
-\r
-});\r
-\r
-// private methods\r
-\r
-var styleString = Element.getComputedStyle;\r
-\r
-function styleNumber(element, style){\r
- return styleString(element, style).toInt() || 0;\r
-};\r
-\r
-function borderBox(element){\r
- return styleString(element, '-moz-box-sizing') == 'border-box';\r
-};\r
-\r
-function topBorder(element){\r
- return styleNumber(element, 'border-top-width');\r
-};\r
-\r
-function leftBorder(element){\r
- return styleNumber(element, 'border-left-width');\r
-};\r
-\r
-function isBody(element){\r
- return (/^(?:body|html)$/i).test(element.tagName);\r
-};\r
-\r
-function getCompatElement(element){\r
- var doc = element.getDocument();\r
- return (!doc.compatMode || doc.compatMode == 'CSS1Compat') ? doc.html : doc.body;\r
-};\r
-\r
-})();\r
-\r
-//aliases\r
-\r
-Native.implement([Window, Document, Element], {\r
-\r
- getHeight: function(){\r
- return this.getSize().y;\r
- },\r
-\r
- getWidth: function(){\r
- return this.getSize().x;\r
- },\r
-\r
- getScrollTop: function(){\r
- return this.getScroll().y;\r
- },\r
-\r
- getScrollLeft: function(){\r
- return this.getScroll().x;\r
- },\r
-\r
- getScrollHeight: function(){\r
- return this.getScrollSize().y;\r
- },\r
-\r
- getScrollWidth: function(){\r
- return this.getScrollSize().x;\r
- },\r
-\r
- getTop: function(){\r
- return this.getPosition().y;\r
- },\r
-\r
- getLeft: function(){\r
- return this.getPosition().x;\r
- }\r
-\r
-});/*\r
-Script: Selectors.js\r
- Adds advanced CSS Querying capabilities for targeting elements. Also includes pseudoselectors support.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Native.implement([Document, Element], {\r
- \r
- getElements: function(expression, nocash){\r
- expression = expression.split(',');\r
- var items, local = {};\r
- for (var i = 0, l = expression.length; i < l; i++){\r
- var selector = expression[i], elements = Selectors.Utils.search(this, selector, local);\r
- if (i != 0 && elements.item) elements = $A(elements);\r
- items = (i == 0) ? elements : (items.item) ? $A(items).concat(elements) : items.concat(elements);\r
- }\r
- return new Elements(items, {ddup: (expression.length > 1), cash: !nocash});\r
- }\r
- \r
-});\r
-\r
-Element.implement({\r
- \r
- match: function(selector){\r
- if (!selector) return true;\r
- var tagid = Selectors.Utils.parseTagAndID(selector);\r
- var tag = tagid[0], id = tagid[1];\r
- if (!Selectors.Filters.byID(this, id) || !Selectors.Filters.byTag(this, tag)) return false;\r
- var parsed = Selectors.Utils.parseSelector(selector);\r
- return (parsed) ? Selectors.Utils.filter(this, parsed, {}) : true;\r
- }\r
- \r
-});\r
-\r
-var Selectors = {Cache: {nth: {}, parsed: {}}};\r
-\r
-Selectors.RegExps = {\r
- id: (/#([\w-]+)/),\r
- tag: (/^(\w+|\*)/),\r
- quick: (/^(\w+|\*)$/),\r
- splitter: (/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),\r
- combined: (/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)["']?(.*?)["']?)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)\r
-};\r
-\r
-Selectors.Utils = {\r
- \r
- chk: function(item, uniques){\r
- if (!uniques) return true;\r
- var uid = $uid(item);\r
- if (!uniques[uid]) return uniques[uid] = true;\r
- return false;\r
- },\r
- \r
- parseNthArgument: function(argument){\r
- if (Selectors.Cache.nth[argument]) return Selectors.Cache.nth[argument];\r
- var parsed = argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);\r
- if (!parsed) return false;\r
- var inta = parseInt(parsed[1]);\r
- var a = (inta || inta === 0) ? inta : 1;\r
- var special = parsed[2] || false;\r
- var b = parseInt(parsed[3]) || 0;\r
- if (a != 0){\r
- b--;\r
- while (b < 1) b += a;\r
- while (b >= a) b -= a;\r
- } else {\r
- a = b;\r
- special = 'index';\r
- }\r
- switch (special){\r
- case 'n': parsed = {a: a, b: b, special: 'n'}; break;\r
- case 'odd': parsed = {a: 2, b: 0, special: 'n'}; break;\r
- case 'even': parsed = {a: 2, b: 1, special: 'n'}; break;\r
- case 'first': parsed = {a: 0, special: 'index'}; break;\r
- case 'last': parsed = {special: 'last-child'}; break;\r
- case 'only': parsed = {special: 'only-child'}; break;\r
- default: parsed = {a: (a - 1), special: 'index'};\r
- }\r
- \r
- return Selectors.Cache.nth[argument] = parsed;\r
- },\r
- \r
- parseSelector: function(selector){\r
- if (Selectors.Cache.parsed[selector]) return Selectors.Cache.parsed[selector];\r
- var m, parsed = {classes: [], pseudos: [], attributes: []};\r
- while ((m = Selectors.RegExps.combined.exec(selector))){\r
- var cn = m[1], an = m[2], ao = m[3], av = m[4], pn = m[5], pa = m[6];\r
- if (cn){\r
- parsed.classes.push(cn);\r
- } else if (pn){\r
- var parser = Selectors.Pseudo.get(pn);\r
- if (parser) parsed.pseudos.push({parser: parser, argument: pa});\r
- else parsed.attributes.push({name: pn, operator: '=', value: pa});\r
- } else if (an){\r
- parsed.attributes.push({name: an, operator: ao, value: av});\r
- }\r
- }\r
- if (!parsed.classes.length) delete parsed.classes;\r
- if (!parsed.attributes.length) delete parsed.attributes;\r
- if (!parsed.pseudos.length) delete parsed.pseudos;\r
- if (!parsed.classes && !parsed.attributes && !parsed.pseudos) parsed = null;\r
- return Selectors.Cache.parsed[selector] = parsed;\r
- },\r
- \r
- parseTagAndID: function(selector){\r
- var tag = selector.match(Selectors.RegExps.tag);\r
- var id = selector.match(Selectors.RegExps.id);\r
- return [(tag) ? tag[1] : '*', (id) ? id[1] : false];\r
- },\r
- \r
- filter: function(item, parsed, local){\r
- var i;\r
- if (parsed.classes){\r
- for (i = parsed.classes.length; i--; i){\r
- var cn = parsed.classes[i];\r
- if (!Selectors.Filters.byClass(item, cn)) return false;\r
- }\r
- }\r
- if (parsed.attributes){\r
- for (i = parsed.attributes.length; i--; i){\r
- var att = parsed.attributes[i];\r
- if (!Selectors.Filters.byAttribute(item, att.name, att.operator, att.value)) return false;\r
- }\r
- }\r
- if (parsed.pseudos){\r
- for (i = parsed.pseudos.length; i--; i){\r
- var psd = parsed.pseudos[i];\r
- if (!Selectors.Filters.byPseudo(item, psd.parser, psd.argument, local)) return false;\r
- }\r
- }\r
- return true;\r
- },\r
- \r
- getByTagAndID: function(ctx, tag, id){\r
- if (id){\r
- var item = ctx.getElementById(id, true);\r
- return (item && Selectors.Filters.byTag(item, tag)) ? [item] : [];\r
- } else {\r
- return ctx.getElementsByTagName(tag);\r
- }\r
- },\r
- \r
- search: function(self, expression, local){\r
- var splitters = [];\r
- \r
- var selectors = expression.trim().replace(Selectors.RegExps.splitter, function(m0, m1, m2){\r
- splitters.push(m1);\r
- return ':)' + m2;\r
- }).split(':)');\r
- \r
- var items, match, filtered, item;\r
- \r
- for (var i = 0, l = selectors.length; i < l; i++){\r
- \r
- var selector = selectors[i];\r
- \r
- if (i == 0 && Selectors.RegExps.quick.test(selector)){\r
- items = self.getElementsByTagName(selector);\r
- continue;\r
- }\r
- \r
- var splitter = splitters[i - 1];\r
- \r
- var tagid = Selectors.Utils.parseTagAndID(selector);\r
- var tag = tagid[0], id = tagid[1];\r
-\r
- if (i == 0){\r
- items = Selectors.Utils.getByTagAndID(self, tag, id);\r
- } else {\r
- var uniques = {}, found = [];\r
- for (var j = 0, k = items.length; j < k; j++) found = Selectors.Getters[splitter](found, items[j], tag, id, uniques);\r
- items = found;\r
- }\r
- \r
- var parsed = Selectors.Utils.parseSelector(selector);\r
- \r
- if (parsed){\r
- filtered = [];\r
- for (var m = 0, n = items.length; m < n; m++){\r
- item = items[m];\r
- if (Selectors.Utils.filter(item, parsed, local)) filtered.push(item);\r
- }\r
- items = filtered;\r
- }\r
- \r
- }\r
- \r
- return items;\r
- \r
- }\r
- \r
-};\r
-\r
-Selectors.Getters = {\r
- \r
- ' ': function(found, self, tag, id, uniques){\r
- var items = Selectors.Utils.getByTagAndID(self, tag, id);\r
- for (var i = 0, l = items.length; i < l; i++){\r
- var item = items[i];\r
- if (Selectors.Utils.chk(item, uniques)) found.push(item);\r
- }\r
- return found;\r
- },\r
- \r
- '>': function(found, self, tag, id, uniques){\r
- var children = Selectors.Utils.getByTagAndID(self, tag, id);\r
- for (var i = 0, l = children.length; i < l; i++){\r
- var child = children[i];\r
- if (child.parentNode == self && Selectors.Utils.chk(child, uniques)) found.push(child);\r
- }\r
- return found;\r
- },\r
- \r
- '+': function(found, self, tag, id, uniques){\r
- while ((self = self.nextSibling)){\r
- if (self.nodeType == 1){\r
- if (Selectors.Utils.chk(self, uniques) && Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);\r
- break;\r
- }\r
- }\r
- return found;\r
- },\r
- \r
- '~': function(found, self, tag, id, uniques){\r
- \r
- while ((self = self.nextSibling)){\r
- if (self.nodeType == 1){\r
- if (!Selectors.Utils.chk(self, uniques)) break;\r
- if (Selectors.Filters.byTag(self, tag) && Selectors.Filters.byID(self, id)) found.push(self);\r
- } \r
- }\r
- return found;\r
- }\r
- \r
-};\r
-\r
-Selectors.Filters = {\r
- \r
- byTag: function(self, tag){\r
- return (tag == '*' || (self.tagName && self.tagName.toLowerCase() == tag));\r
- },\r
- \r
- byID: function(self, id){\r
- return (!id || (self.id && self.id == id));\r
- },\r
- \r
- byClass: function(self, klass){\r
- return (self.className && self.className.contains(klass, ' '));\r
- },\r
- \r
- byPseudo: function(self, parser, argument, local){\r
- return parser.call(self, argument, local);\r
- },\r
- \r
- byAttribute: function(self, name, operator, value){\r
- var result = Element.prototype.getProperty.call(self, name);\r
- if (!result) return false;\r
- if (!operator || value == undefined) return true;\r
- switch (operator){\r
- case '=': return (result == value);\r
- case '*=': return (result.contains(value));\r
- case '^=': return (result.substr(0, value.length) == value);\r
- case '$=': return (result.substr(result.length - value.length) == value);\r
- case '!=': return (result != value);\r
- case '~=': return result.contains(value, ' ');\r
- case '|=': return result.contains(value, '-');\r
- }\r
- return false;\r
- }\r
- \r
-};\r
-\r
-Selectors.Pseudo = new Hash({\r
- \r
- // w3c pseudo selectors\r
- \r
- empty: function(){\r
- return !(this.innerText || this.textContent || '').length;\r
- },\r
- \r
- not: function(selector){\r
- return !Element.match(this, selector);\r
- },\r
- \r
- contains: function(text){\r
- return (this.innerText || this.textContent || '').contains(text);\r
- },\r
- \r
- 'first-child': function(){\r
- return Selectors.Pseudo.index.call(this, 0);\r
- },\r
- \r
- 'last-child': function(){\r
- var element = this;\r
- while ((element = element.nextSibling)){\r
- if (element.nodeType == 1) return false;\r
- }\r
- return true;\r
- },\r
- \r
- 'only-child': function(){\r
- var prev = this;\r
- while ((prev = prev.previousSibling)){\r
- if (prev.nodeType == 1) return false;\r
- }\r
- var next = this;\r
- while ((next = next.nextSibling)){\r
- if (next.nodeType == 1) return false;\r
- }\r
- return true;\r
- },\r
- \r
- 'nth-child': function(argument, local){\r
- argument = (argument == undefined) ? 'n' : argument;\r
- var parsed = Selectors.Utils.parseNthArgument(argument);\r
- if (parsed.special != 'n') return Selectors.Pseudo[parsed.special].call(this, parsed.a, local);\r
- var count = 0;\r
- local.positions = local.positions || {};\r
- var uid = $uid(this);\r
- if (!local.positions[uid]){\r
- var self = this;\r
- while ((self = self.previousSibling)){\r
- if (self.nodeType != 1) continue;\r
- count ++;\r
- var position = local.positions[$uid(self)];\r
- if (position != undefined){\r
- count = position + count;\r
- break;\r
- }\r
- }\r
- local.positions[uid] = count;\r
- }\r
- return (local.positions[uid] % parsed.a == parsed.b);\r
- },\r
- \r
- // custom pseudo selectors\r
- \r
- index: function(index){\r
- var element = this, count = 0;\r
- while ((element = element.previousSibling)){\r
- if (element.nodeType == 1 && ++count > index) return false;\r
- }\r
- return (count == index);\r
- },\r
- \r
- even: function(argument, local){\r
- return Selectors.Pseudo['nth-child'].call(this, '2n+1', local);\r
- },\r
-\r
- odd: function(argument, local){\r
- return Selectors.Pseudo['nth-child'].call(this, '2n', local);\r
- }\r
- \r
-});/*\r
-Script: Domready.js\r
- Contains the domready custom event.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Element.Events.domready = {\r
-\r
- onAdd: function(fn){\r
- if (Browser.loaded) fn.call(this);\r
- }\r
-\r
-};\r
-\r
-(function(){\r
- \r
- var domready = function(){\r
- if (Browser.loaded) return;\r
- Browser.loaded = true;\r
- window.fireEvent('domready');\r
- document.fireEvent('domready');\r
- };\r
- \r
- switch (Browser.Engine.name){\r
-\r
- case 'webkit': (function(){\r
- (['loaded', 'complete'].contains(document.readyState)) ? domready() : arguments.callee.delay(50);\r
- })(); break;\r
-\r
- case 'trident':\r
- var temp = document.createElement('div');\r
- (function(){\r
- ($try(function(){\r
- temp.doScroll('left');\r
- return $(temp).inject(document.body).set('html', 'temp').dispose();\r
- })) ? domready() : arguments.callee.delay(50);\r
- })();\r
- break;\r
- \r
- default:\r
- window.addEvent('load', domready);\r
- document.addEvent('DOMContentLoaded', domready);\r
-\r
- }\r
- \r
-})();/*\r
-Script: JSON.js\r
- JSON encoder and decoder.\r
-\r
-License:\r
- MIT-style license.\r
-\r
-See Also:\r
- <http://www.json.org/>\r
-*/\r
-\r
-var JSON = new Hash({\r
-\r
- encode: function(obj){\r
- switch ($type(obj)){\r
- case 'string':\r
- return '"' + obj.replace(/[\x00-\x1f\\"]/g, JSON.$replaceChars) + '"';\r
- case 'array':\r
- return '[' + String(obj.map(JSON.encode).filter($defined)) + ']';\r
- case 'object': case 'hash':\r
- var string = [];\r
- Hash.each(obj, function(value, key){\r
- var json = JSON.encode(value);\r
- if (json) string.push(JSON.encode(key) + ':' + json);\r
- });\r
- return '{' + string + '}';\r
- case 'number': case 'boolean': return String(obj);\r
- case false: return 'null';\r
- }\r
- return null;\r
- },\r
-\r
- $specialChars: {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\'},\r
-\r
- $replaceChars: function(chr){\r
- return JSON.$specialChars[chr] || '\\u00' + Math.floor(chr.charCodeAt() / 16).toString(16) + (chr.charCodeAt() % 16).toString(16);\r
- },\r
-\r
- decode: function(string, secure){\r
- if ($type(string) != 'string' || !string.length) return null;\r
- if (secure && !(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''))) return null;\r
- return eval('(' + string + ')');\r
- }\r
-\r
-});\r
-\r
-Native.implement([Hash, Array, String, Number], {\r
-\r
- toJSON: function(){\r
- return JSON.encode(this);\r
- }\r
-\r
-});\r
-/*\r
-Script: Cookie.js\r
- Class for creating, loading, and saving browser Cookies.\r
-\r
-License:\r
- MIT-style license.\r
-\r
-Credits:\r
- Based on the functions by Peter-Paul Koch (http://quirksmode.org).\r
-*/\r
-\r
-var Cookie = new Class({\r
-\r
- Implements: Options,\r
-\r
- options: {\r
- path: false,\r
- domain: false,\r
- duration: false,\r
- secure: false,\r
- document: document\r
- },\r
-\r
- initialize: function(key, options){\r
- this.key = key;\r
- this.setOptions(options);\r
- },\r
-\r
- write: function(value){\r
- value = encodeURIComponent(value);\r
- if (this.options.domain) value += '; domain=' + this.options.domain;\r
- if (this.options.path) value += '; path=' + this.options.path;\r
- if (this.options.duration){\r
- var date = new Date();\r
- date.setTime(date.getTime() + this.options.duration * 24 * 60 * 60 * 1000);\r
- value += '; expires=' + date.toGMTString();\r
- }\r
- if (this.options.secure) value += '; secure';\r
- this.options.document.cookie = this.key + '=' + value;\r
- return this;\r
- },\r
-\r
- read: function(){\r
- var value = this.options.document.cookie.match('(?:^|;)\\s*' + this.key.escapeRegExp() + '=([^;]*)');\r
- return (value) ? decodeURIComponent(value[1]) : null;\r
- },\r
-\r
- dispose: function(){\r
- new Cookie(this.key, $merge(this.options, {duration: -1})).write('');\r
- return this;\r
- }\r
-\r
-});\r
-\r
-Cookie.write = function(key, value, options){\r
- return new Cookie(key, options).write(value);\r
-};\r
-\r
-Cookie.read = function(key){\r
- return new Cookie(key).read();\r
-};\r
-\r
-Cookie.dispose = function(key, options){\r
- return new Cookie(key, options).dispose();\r
-};/*\r
-Script: Swiff.js\r
- Wrapper for embedding SWF movies. Supports (and fixes) External Interface Communication.\r
-\r
-License:\r
- MIT-style license.\r
-\r
-Credits:\r
- Flash detection & Internet Explorer + Flash Player 9 fix inspired by SWFObject.\r
-*/\r
-\r
-var Swiff = new Class({\r
-\r
- Implements: [Options],\r
-\r
- options: {\r
- id: null,\r
- height: 1,\r
- width: 1,\r
- container: null,\r
- properties: {},\r
- params: {\r
- quality: 'high',\r
- allowScriptAccess: 'always',\r
- wMode: 'transparent',\r
- swLiveConnect: true\r
- },\r
- callBacks: {},\r
- vars: {}\r
- },\r
-\r
- toElement: function(){\r
- return this.object;\r
- },\r
-\r
- initialize: function(path, options){\r
- this.instance = 'Swiff_' + $time();\r
-\r
- this.setOptions(options);\r
- options = this.options;\r
- var id = this.id = options.id || this.instance;\r
- var container = $(options.container);\r
-\r
- Swiff.CallBacks[this.instance] = {};\r
-\r
- var params = options.params, vars = options.vars, callBacks = options.callBacks;\r
- var properties = $extend({height: options.height, width: options.width}, options.properties);\r
-\r
- var self = this;\r
-\r
- for (var callBack in callBacks){\r
- Swiff.CallBacks[this.instance][callBack] = (function(option){\r
- return function(){\r
- return option.apply(self.object, arguments);\r
- };\r
- })(callBacks[callBack]);\r
- vars[callBack] = 'Swiff.CallBacks.' + this.instance + '.' + callBack;\r
- }\r
-\r
- params.flashVars = Hash.toQueryString(vars);\r
- if (Browser.Engine.trident){\r
- properties.classid = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';\r
- params.movie = path;\r
- } else {\r
- properties.type = 'application/x-shockwave-flash';\r
- properties.data = path;\r
- }\r
- var build = '<object id="' + id + '"';\r
- for (var property in properties) build += ' ' + property + '="' + properties[property] + '"';\r
- build += '>';\r
- for (var param in params){\r
- if (params[param]) build += '<param name="' + param + '" value="' + params[param] + '" />';\r
- }\r
- build += '</object>';\r
- this.object = ((container) ? container.empty() : new Element('div')).set('html', build).firstChild;\r
- },\r
-\r
- replaces: function(element){\r
- element = $(element, true);\r
- element.parentNode.replaceChild(this.toElement(), element);\r
- return this;\r
- },\r
-\r
- inject: function(element){\r
- $(element, true).appendChild(this.toElement());\r
- return this;\r
- },\r
-\r
- remote: function(){\r
- return Swiff.remote.apply(Swiff, [this.toElement()].extend(arguments));\r
- }\r
-\r
-});\r
-\r
-Swiff.CallBacks = {};\r
-\r
-Swiff.remote = function(obj, fn){\r
- var rs = obj.CallFunction('<invoke name="' + fn + '" returntype="javascript">' + __flash__argumentsToXML(arguments, 2) + '</invoke>');\r
- return eval(rs);\r
-};/*\r
-Script: Fx.js\r
- Contains the basic animation logic to be extended by all other Fx Classes.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Fx = new Class({\r
-\r
- Implements: [Chain, Events, Options],\r
-\r
- options: {\r
- /*\r
- onStart: $empty,\r
- onCancel: $empty,\r
- onComplete: $empty,\r
- */\r
- fps: 50,\r
- unit: false,\r
- duration: 500,\r
- link: 'ignore',\r
- transition: function(p){\r
- return -(Math.cos(Math.PI * p) - 1) / 2;\r
- }\r
- },\r
-\r
- initialize: function(options){\r
- this.subject = this.subject || this;\r
- this.setOptions(options);\r
- this.options.duration = Fx.Durations[this.options.duration] || this.options.duration.toInt();\r
- var wait = this.options.wait;\r
- if (wait === false) this.options.link = 'cancel';\r
- },\r
-\r
- step: function(){\r
- var time = $time();\r
- if (time < this.time + this.options.duration){\r
- var delta = this.options.transition((time - this.time) / this.options.duration);\r
- this.set(this.compute(this.from, this.to, delta));\r
- } else {\r
- this.set(this.compute(this.from, this.to, 1));\r
- this.complete();\r
- }\r
- },\r
-\r
- set: function(now){\r
- return now;\r
- },\r
-\r
- compute: function(from, to, delta){\r
- return Fx.compute(from, to, delta);\r
- },\r
-\r
- check: function(caller){\r
- if (!this.timer) return true;\r
- switch (this.options.link){\r
- case 'cancel': this.cancel(); return true;\r
- case 'chain': this.chain(caller.bind(this, Array.slice(arguments, 1))); return false;\r
- }\r
- return false;\r
- },\r
-\r
- start: function(from, to){\r
- if (!this.check(arguments.callee, from, to)) return this;\r
- this.from = from;\r
- this.to = to;\r
- this.time = 0;\r
- this.startTimer();\r
- this.onStart();\r
- return this;\r
- },\r
-\r
- complete: function(){\r
- if (this.stopTimer()) this.onComplete();\r
- return this;\r
- },\r
-\r
- cancel: function(){\r
- if (this.stopTimer()) this.onCancel();\r
- return this;\r
- },\r
-\r
- onStart: function(){\r
- this.fireEvent('onStart', this.subject);\r
- },\r
-\r
- onComplete: function(){\r
- this.fireEvent('onComplete', this.subject);\r
- if (!this.callChain()) this.fireEvent('onChainComplete', this.subject);\r
- },\r
-\r
- onCancel: function(){\r
- this.fireEvent('onCancel', this.subject).clearChain();\r
- },\r
-\r
- pause: function(){\r
- this.stopTimer();\r
- return this;\r
- },\r
-\r
- resume: function(){\r
- this.startTimer();\r
- return this;\r
- },\r
-\r
- stopTimer: function(){\r
- if (!this.timer) return false;\r
- this.time = $time() - this.time;\r
- this.timer = $clear(this.timer);\r
- return true;\r
- },\r
-\r
- startTimer: function(){\r
- if (this.timer) return false;\r
- this.time = $time() - this.time;\r
- this.timer = this.step.periodical(Math.round(1000 / this.options.fps), this);\r
- return true;\r
- }\r
-\r
-});\r
-\r
-Fx.compute = function(from, to, delta){\r
- return (to - from) * delta + from;\r
-};\r
-\r
-Fx.Durations = {'short': 250, 'normal': 500, 'long': 1000};\r
-/*\r
-Script: Fx.CSS.js\r
- Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Fx.CSS = new Class({\r
-\r
- Extends: Fx,\r
-\r
- //prepares the base from/to object\r
-\r
- prepare: function(element, property, values){\r
- values = $splat(values);\r
- var values1 = values[1];\r
- if (!$chk(values1)){\r
- values[1] = values[0];\r
- values[0] = element.getStyle(property);\r
- }\r
- var parsed = values.map(this.parse);\r
- return {from: parsed[0], to: parsed[1]};\r
- },\r
-\r
- //parses a value into an array\r
-\r
- parse: function(value){\r
- value = $lambda(value)();\r
- value = (typeof value == 'string') ? value.split(' ') : $splat(value);\r
- return value.map(function(val){\r
- val = String(val);\r
- var found = false;\r
- Fx.CSS.Parsers.each(function(parser, key){\r
- if (found) return;\r
- var parsed = parser.parse(val);\r
- if ($chk(parsed)) found = {value: parsed, parser: parser};\r
- });\r
- found = found || {value: val, parser: Fx.CSS.Parsers.String};\r
- return found;\r
- });\r
- },\r
-\r
- //computes by a from and to prepared objects, using their parsers.\r
-\r
- compute: function(from, to, delta){\r
- var computed = [];\r
- (Math.min(from.length, to.length)).times(function(i){\r
- computed.push({value: from[i].parser.compute(from[i].value, to[i].value, delta), parser: from[i].parser});\r
- });\r
- computed.$family = {name: 'fx:css:value'};\r
- return computed;\r
- },\r
-\r
- //serves the value as settable\r
-\r
- serve: function(value, unit){\r
- if ($type(value) != 'fx:css:value') value = this.parse(value);\r
- var returned = [];\r
- value.each(function(bit){\r
- returned = returned.concat(bit.parser.serve(bit.value, unit));\r
- });\r
- return returned;\r
- },\r
-\r
- //renders the change to an element\r
-\r
- render: function(element, property, value, unit){\r
- element.setStyle(property, this.serve(value, unit));\r
- },\r
-\r
- //searches inside the page css to find the values for a selector\r
-\r
- search: function(selector){\r
- if (Fx.CSS.Cache[selector]) return Fx.CSS.Cache[selector];\r
- var to = {};\r
- Array.each(document.styleSheets, function(sheet, j){\r
- var href = sheet.href;\r
- if (href && href.contains('://') && !href.contains(document.domain)) return;\r
- var rules = sheet.rules || sheet.cssRules;\r
- Array.each(rules, function(rule, i){\r
- if (!rule.style) return;\r
- var selectorText = (rule.selectorText) ? rule.selectorText.replace(/^\w+/, function(m){\r
- return m.toLowerCase();\r
- }) : null;\r
- if (!selectorText || !selectorText.test('^' + selector + '$')) return;\r
- Element.Styles.each(function(value, style){\r
- if (!rule.style[style] || Element.ShortStyles[style]) return;\r
- value = String(rule.style[style]);\r
- to[style] = (value.test(/^rgb/)) ? value.rgbToHex() : value;\r
- });\r
- });\r
- });\r
- return Fx.CSS.Cache[selector] = to;\r
- }\r
-\r
-});\r
-\r
-Fx.CSS.Cache = {};\r
-\r
-Fx.CSS.Parsers = new Hash({\r
-\r
- Color: {\r
- parse: function(value){\r
- if (value.match(/^#[0-9a-f]{3,6}$/i)) return value.hexToRgb(true);\r
- return ((value = value.match(/(\d+),\s*(\d+),\s*(\d+)/))) ? [value[1], value[2], value[3]] : false;\r
- },\r
- compute: function(from, to, delta){\r
- return from.map(function(value, i){\r
- return Math.round(Fx.compute(from[i], to[i], delta));\r
- });\r
- },\r
- serve: function(value){\r
- return value.map(Number);\r
- }\r
- },\r
-\r
- Number: {\r
- parse: parseFloat,\r
- compute: Fx.compute,\r
- serve: function(value, unit){\r
- return (unit) ? value + unit : value;\r
- }\r
- },\r
-\r
- String: {\r
- parse: $lambda(false),\r
- compute: $arguments(1),\r
- serve: $arguments(0)\r
- }\r
-\r
-});\r
-/*\r
-Script: Fx.Tween.js\r
- Formerly Fx.Style, effect to transition any CSS property for an element.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Fx.Tween = new Class({\r
-\r
- Extends: Fx.CSS,\r
-\r
- initialize: function(element, options){\r
- this.element = this.subject = $(element);\r
- this.parent(options);\r
- },\r
-\r
- set: function(property, now){\r
- if (arguments.length == 1){\r
- now = property;\r
- property = this.property || this.options.property;\r
- }\r
- this.render(this.element, property, now, this.options.unit);\r
- return this;\r
- },\r
-\r
- start: function(property, from, to){\r
- if (!this.check(arguments.callee, property, from, to)) return this;\r
- var args = Array.flatten(arguments);\r
- this.property = this.options.property || args.shift();\r
- var parsed = this.prepare(this.element, this.property, args);\r
- return this.parent(parsed.from, parsed.to);\r
- }\r
-\r
-});\r
-\r
-Element.Properties.tween = {\r
-\r
- set: function(options){\r
- var tween = this.retrieve('tween');\r
- if (tween) tween.cancel();\r
- return this.eliminate('tween').store('tween:options', $extend({link: 'cancel'}, options));\r
- },\r
-\r
- get: function(options){\r
- if (options || !this.retrieve('tween')){\r
- if (options || !this.retrieve('tween:options')) this.set('tween', options);\r
- this.store('tween', new Fx.Tween(this, this.retrieve('tween:options')));\r
- }\r
- return this.retrieve('tween');\r
- }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
- tween: function(property, from, to){\r
- this.get('tween').start(arguments);\r
- return this;\r
- },\r
-\r
- fade: function(how){\r
- var fade = this.get('tween'), o = 'opacity', toggle;\r
- how = $pick(how, 'toggle');\r
- switch (how){\r
- case 'in': fade.start(o, 1); break;\r
- case 'out': fade.start(o, 0); break;\r
- case 'show': fade.set(o, 1); break;\r
- case 'hide': fade.set(o, 0); break;\r
- case 'toggle':\r
- var flag = this.retrieve('fade:flag', this.get('opacity') == 1);\r
- fade.start(o, (flag) ? 0 : 1);\r
- this.store('fade:flag', !flag);\r
- toggle = true;\r
- break;\r
- default: fade.start(o, arguments);\r
- }\r
- if (!toggle) this.eliminate('fade:flag');\r
- return this;\r
- },\r
-\r
- highlight: function(start, end){\r
- if (!end){\r
- end = this.retrieve('highlight:original', this.getStyle('background-color'));\r
- end = (end == 'transparent') ? '#fff' : end;\r
- }\r
- var tween = this.get('tween');\r
- tween.start('background-color', start || '#ffff88', end).chain(function(){\r
- this.setStyle('background-color', this.retrieve('highlight:original'));\r
- tween.callChain();\r
- }.bind(this));\r
- return this;\r
- }\r
-\r
-});\r
-/*\r
-Script: Fx.Morph.js\r
- Formerly Fx.Styles, effect to transition any number of CSS properties for an element using an object of rules, or CSS based selector rules.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Fx.Morph = new Class({\r
-\r
- Extends: Fx.CSS,\r
-\r
- initialize: function(element, options){\r
- this.element = this.subject = $(element);\r
- this.parent(options);\r
- },\r
-\r
- set: function(now){\r
- if (typeof now == 'string') now = this.search(now);\r
- for (var p in now) this.render(this.element, p, now[p], this.options.unit);\r
- return this;\r
- },\r
-\r
- compute: function(from, to, delta){\r
- var now = {};\r
- for (var p in from) now[p] = this.parent(from[p], to[p], delta);\r
- return now;\r
- },\r
-\r
- start: function(properties){\r
- if (!this.check(arguments.callee, properties)) return this;\r
- if (typeof properties == 'string') properties = this.search(properties);\r
- var from = {}, to = {};\r
- for (var p in properties){\r
- var parsed = this.prepare(this.element, p, properties[p]);\r
- from[p] = parsed.from;\r
- to[p] = parsed.to;\r
- }\r
- return this.parent(from, to);\r
- }\r
-\r
-});\r
-\r
-Element.Properties.morph = {\r
-\r
- set: function(options){\r
- var morph = this.retrieve('morph');\r
- if (morph) morph.cancel();\r
- return this.eliminate('morph').store('morph:options', $extend({link: 'cancel'}, options));\r
- },\r
-\r
- get: function(options){\r
- if (options || !this.retrieve('morph')){\r
- if (options || !this.retrieve('morph:options')) this.set('morph', options);\r
- this.store('morph', new Fx.Morph(this, this.retrieve('morph:options')));\r
- }\r
- return this.retrieve('morph');\r
- }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
- morph: function(props){\r
- this.get('morph').start(props);\r
- return this;\r
- }\r
-\r
-});/*\r
-Script: Fx.Transitions.js\r
- Contains a set of advanced transitions to be used with any of the Fx Classes.\r
-\r
-License:\r
- MIT-style license.\r
-\r
-Credits:\r
- Easing Equations by Robert Penner, <http://www.robertpenner.com/easing/>, modified and optimized to be used with MooTools.\r
-*/\r
-\r
-(function(){\r
-\r
- var old = Fx.prototype.initialize;\r
-\r
- Fx.prototype.initialize = function(options){\r
- old.call(this, options);\r
- var trans = this.options.transition;\r
- if (typeof trans == 'string' && (trans = trans.split(':'))){\r
- var base = Fx.Transitions;\r
- base = base[trans[0]] || base[trans[0].capitalize()];\r
- if (trans[1]) base = base['ease' + trans[1].capitalize() + (trans[2] ? trans[2].capitalize() : '')];\r
- this.options.transition = base;\r
- }\r
- };\r
-\r
-})();\r
-\r
-Fx.Transition = function(transition, params){\r
- params = $splat(params);\r
- return $extend(transition, {\r
- easeIn: function(pos){\r
- return transition(pos, params);\r
- },\r
- easeOut: function(pos){\r
- return 1 - transition(1 - pos, params);\r
- },\r
- easeInOut: function(pos){\r
- return (pos <= 0.5) ? transition(2 * pos, params) / 2 : (2 - transition(2 * (1 - pos), params)) / 2;\r
- }\r
- });\r
-};\r
-\r
-Fx.Transitions = new Hash({\r
-\r
- linear: $arguments(0)\r
-\r
-});\r
-\r
-Fx.Transitions.extend = function(transitions){\r
- for (var transition in transitions) Fx.Transitions[transition] = new Fx.Transition(transitions[transition]);\r
-};\r
-\r
-Fx.Transitions.extend({\r
-\r
- Pow: function(p, x){\r
- return Math.pow(p, x[0] || 6);\r
- },\r
-\r
- Expo: function(p){\r
- return Math.pow(2, 8 * (p - 1));\r
- },\r
-\r
- Circ: function(p){\r
- return 1 - Math.sin(Math.acos(p));\r
- },\r
-\r
- Sine: function(p){\r
- return 1 - Math.sin((1 - p) * Math.PI / 2);\r
- },\r
-\r
- Back: function(p, x){\r
- x = x[0] || 1.618;\r
- return Math.pow(p, 2) * ((x + 1) * p - x);\r
- },\r
-\r
- Bounce: function(p){\r
- var value;\r
- for (var a = 0, b = 1; 1; a += b, b /= 2){\r
- if (p >= (7 - 4 * a) / 11){\r
- value = - Math.pow((11 - 6 * a - 11 * p) / 4, 2) + b * b;\r
- break;\r
- }\r
- }\r
- return value;\r
- },\r
-\r
- Elastic: function(p, x){\r
- return Math.pow(2, 10 * --p) * Math.cos(20 * p * Math.PI * (x[0] || 1) / 3);\r
- }\r
-\r
-});\r
-\r
-['Quad', 'Cubic', 'Quart', 'Quint'].each(function(transition, i){\r
- Fx.Transitions[transition] = new Fx.Transition(function(p){\r
- return Math.pow(p, [i + 2]);\r
- });\r
-});\r
-/*\r
-Script: Request.js\r
- Powerful all purpose Request Class. Uses XMLHTTPRequest.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Request = new Class({\r
-\r
- Implements: [Chain, Events, Options],\r
-\r
- options: {\r
- /*onRequest: $empty,\r
- onSuccess: $empty,\r
- onFailure: $empty,\r
- onException: $empty,*/\r
- url: '',\r
- data: '',\r
- headers: {\r
- 'X-Requested-With': 'XMLHttpRequest',\r
- 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'\r
- },\r
- async: true,\r
- method: 'post',\r
- link: 'ignore',\r
- isSuccess: null,\r
- emulation: true,\r
- urlEncoded: true,\r
- encoding: 'utf-8',\r
- evalScripts: false,\r
- evalResponse: false\r
- },\r
-\r
- initialize: function(options){\r
- this.xhr = new Browser.Request();\r
- this.setOptions(options);\r
- this.options.isSuccess = this.options.isSuccess || this.isSuccess;\r
- this.headers = new Hash(this.options.headers);\r
- },\r
-\r
- onStateChange: function(){\r
- if (this.xhr.readyState != 4 || !this.running) return;\r
- this.running = false;\r
- this.status = 0;\r
- $try(function(){\r
- this.status = this.xhr.status;\r
- }.bind(this));\r
- if (this.options.isSuccess.call(this, this.status)){\r
- this.response = {text: this.xhr.responseText, xml: this.xhr.responseXML};\r
- this.success(this.response.text, this.response.xml);\r
- } else {\r
- this.response = {text: null, xml: null};\r
- this.failure();\r
- }\r
- this.xhr.onreadystatechange = $empty;\r
- },\r
-\r
- isSuccess: function(){\r
- return ((this.status >= 200) && (this.status < 300));\r
- },\r
-\r
- processScripts: function(text){\r
- if (this.options.evalResponse || (/(ecma|java)script/).test(this.getHeader('Content-type'))) return $exec(text);\r
- return text.stripScripts(this.options.evalScripts);\r
- },\r
-\r
- success: function(text, xml){\r
- this.onSuccess(this.processScripts(text), xml);\r
- },\r
- \r
- onSuccess: function(){\r
- this.fireEvent('onComplete', arguments).fireEvent('onSuccess', arguments).callChain();\r
- },\r
- \r
- failure: function(){\r
- this.onFailure();\r
- },\r
-\r
- onFailure: function(){\r
- this.fireEvent('onComplete').fireEvent('onFailure', this.xhr);\r
- },\r
-\r
- setHeader: function(name, value){\r
- this.headers.set(name, value);\r
- return this;\r
- },\r
-\r
- getHeader: function(name){\r
- return $try(function(){\r
- return this.xhr.getResponseHeader(name);\r
- }.bind(this));\r
- },\r
-\r
- check: function(caller){\r
- if (!this.running) return true;\r
- switch (this.options.link){\r
- case 'cancel': this.cancel(); return true;\r
- case 'chain': this.chain(caller.bind(this, Array.slice(arguments, 1))); return false;\r
- }\r
- return false;\r
- },\r
-\r
- send: function(options){\r
- if (!this.check(arguments.callee, options)) return this;\r
- this.running = true;\r
-\r
- var type = $type(options);\r
- if (type == 'string' || type == 'element') options = {data: options};\r
-\r
- var old = this.options;\r
- options = $extend({data: old.data, url: old.url, method: old.method}, options);\r
- var data = options.data, url = options.url, method = options.method;\r
-\r
- switch ($type(data)){\r
- case 'element': data = $(data).toQueryString(); break;\r
- case 'object': case 'hash': data = Hash.toQueryString(data);\r
- }\r
-\r
- if (this.options.emulation && ['put', 'delete'].contains(method)){\r
- var _method = '_method=' + method;\r
- data = (data) ? _method + '&' + data : _method;\r
- method = 'post';\r
- }\r
-\r
- if (this.options.urlEncoded && method == 'post'){\r
- var encoding = (this.options.encoding) ? '; charset=' + this.options.encoding : '';\r
- this.headers.set('Content-type', 'application/x-www-form-urlencoded' + encoding);\r
- }\r
-\r
- if (data && method == 'get'){\r
- url = url + (url.contains('?') ? '&' : '?') + data;\r
- data = null;\r
- }\r
-\r
- this.xhr.open(method.toUpperCase(), url, this.options.async);\r
-\r
- this.xhr.onreadystatechange = this.onStateChange.bind(this);\r
-\r
- this.headers.each(function(value, key){\r
- if (!$try(function(){\r
- this.xhr.setRequestHeader(key, value);\r
- return true;\r
- }.bind(this))) this.fireEvent('onException', [key, value]);\r
- }, this);\r
-\r
- this.fireEvent('onRequest');\r
- this.xhr.send(data);\r
- if (!this.options.async) this.onStateChange();\r
- return this;\r
- },\r
-\r
- cancel: function(){\r
- if (!this.running) return this;\r
- this.running = false;\r
- this.xhr.abort();\r
- this.xhr.onreadystatechange = $empty;\r
- this.xhr = new Browser.Request();\r
- this.fireEvent('onCancel');\r
- return this;\r
- }\r
-\r
-});\r
-\r
-(function(){\r
-\r
-var methods = {};\r
-['get', 'post', 'GET', 'POST', 'PUT', 'DELETE'].each(function(method){\r
- methods[method] = function(){\r
- var params = Array.link(arguments, {url: String.type, data: $defined});\r
- return this.send($extend(params, {method: method.toLowerCase()}));\r
- };\r
-});\r
-\r
-Request.implement(methods);\r
-\r
-})();\r
-\r
-Element.Properties.send = {\r
- \r
- set: function(options){\r
- var send = this.retrieve('send');\r
- if (send) send.cancel();\r
- return this.eliminate('send').store('send:options', $extend({\r
- data: this, link: 'cancel', method: this.get('method') || 'post', url: this.get('action')\r
- }, options));\r
- },\r
-\r
- get: function(options){\r
- if (options || !this.retrieve('send')){\r
- if (options || !this.retrieve('send:options')) this.set('send', options);\r
- this.store('send', new Request(this.retrieve('send:options')));\r
- }\r
- return this.retrieve('send');\r
- }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
- send: function(url){\r
- var sender = this.get('send');\r
- sender.send({data: this, url: url || sender.options.url});\r
- return this;\r
- }\r
-\r
-});\r
-/*\r
-Script: Request.HTML.js\r
- Extends the basic Request Class with additional methods for interacting with HTML responses.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Request.HTML = new Class({\r
-\r
- Extends: Request,\r
-\r
- options: {\r
- update: false,\r
- evalScripts: true,\r
- filter: false\r
- },\r
-\r
- processHTML: function(text){\r
- var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);\r
- text = (match) ? match[1] : text;\r
- \r
- var container = new Element('div');\r
- \r
- return $try(function(){\r
- var root = '<root>' + text + '</root>', doc;\r
- if (Browser.Engine.trident){\r
- doc = new ActiveXObject('Microsoft.XMLDOM');\r
- doc.async = false;\r
- doc.loadXML(root);\r
- } else {\r
- doc = new DOMParser().parseFromString(root, 'text/xml');\r
- }\r
- root = doc.getElementsByTagName('root')[0];\r
- for (var i = 0, k = root.childNodes.length; i < k; i++){\r
- var child = Element.clone(root.childNodes[i], true, true);\r
- if (child) container.grab(child);\r
- }\r
- return container;\r
- }) || container.set('html', text);\r
- },\r
-\r
- success: function(text){\r
- var options = this.options, response = this.response;\r
- \r
- response.html = text.stripScripts(function(script){\r
- response.javascript = script;\r
- });\r
- \r
- var temp = this.processHTML(response.html);\r
- \r
- response.tree = temp.childNodes;\r
- response.elements = temp.getElements('*');\r
- \r
- if (options.filter) response.tree = response.elements.filter(options.filter);\r
- if (options.update) $(options.update).empty().adopt(response.tree);\r
- if (options.evalScripts) $exec(response.javascript);\r
- \r
- this.onSuccess(response.tree, response.elements, response.html, response.javascript);\r
- }\r
-\r
-});\r
-\r
-Element.Properties.load = {\r
- \r
- set: function(options){\r
- var load = this.retrieve('load');\r
- if (load) send.cancel();\r
- return this.eliminate('load').store('load:options', $extend({data: this, link: 'cancel', update: this, method: 'get'}, options));\r
- },\r
-\r
- get: function(options){\r
- if (options || ! this.retrieve('load')){\r
- if (options || !this.retrieve('load:options')) this.set('load', options);\r
- this.store('load', new Request.HTML(this.retrieve('load:options')));\r
- }\r
- return this.retrieve('load');\r
- }\r
-\r
-};\r
-\r
-Element.implement({\r
- \r
- load: function(){\r
- this.get('load').send(Array.link(arguments, {data: Object.type, url: String.type}));\r
- return this;\r
- }\r
-\r
-});\r
-/*\r
-Script: Request.JSON.js\r
- Extends the basic Request Class with additional methods for sending and receiving JSON data.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Request.JSON = new Class({\r
-\r
- Extends: Request,\r
-\r
- options: {\r
- secure: true\r
- },\r
-\r
- initialize: function(options){\r
- this.parent(options);\r
- this.headers.extend({'Accept': 'application/json', 'X-Request': 'JSON'});\r
- },\r
-\r
- success: function(text){\r
- this.response.json = JSON.decode(text, this.options.secure);\r
- this.onSuccess(this.response.json, text);\r
- }\r
-\r
-});/*\r
-Script: Fx.Slide.js\r
- Effect to slide an element in and out of view.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Fx.Slide = new Class({\r
-\r
- Extends: Fx,\r
-\r
- options: {\r
- mode: 'vertical'\r
- },\r
-\r
- initialize: function(element, options){\r
- this.addEvent('onComplete', function(){\r
- this.open = (this.wrapper['offset' + this.layout.capitalize()] != 0);\r
- if (this.open && Browser.Engine.webkit419) this.element.dispose().inject(this.wrapper);\r
- }, true);\r
- this.element = this.subject = $(element);\r
- this.parent(options);\r
- var wrapper = this.element.retrieve('wrapper');\r
- this.wrapper = wrapper || new Element('div', {\r
- styles: $extend(this.element.getStyles('margin', 'position'), {'overflow': 'hidden'})\r
- }).wraps(this.element);\r
- this.element.store('wrapper', this.wrapper).setStyle('margin', 0);\r
- this.now = [];\r
- this.open = true;\r
- },\r
-\r
- vertical: function(){\r
- this.margin = 'margin-top';\r
- this.layout = 'height';\r
- this.offset = this.element.offsetHeight;\r
- },\r
-\r
- horizontal: function(){\r
- this.margin = 'margin-left';\r
- this.layout = 'width';\r
- this.offset = this.element.offsetWidth;\r
- },\r
-\r
- set: function(now){\r
- this.element.setStyle(this.margin, now[0]);\r
- this.wrapper.setStyle(this.layout, now[1]);\r
- return this;\r
- },\r
-\r
- compute: function(from, to, delta){\r
- var now = [];\r
- (2).times(function(i){\r
- now[i] = Fx.compute(from[i], to[i], delta);\r
- });\r
- return now;\r
- },\r
-\r
- start: function(how, mode){\r
- if (!this.check(arguments.callee, how, mode)) return this;\r
- this[mode || this.options.mode]();\r
- var margin = this.element.getStyle(this.margin).toInt();\r
- var layout = this.wrapper.getStyle(this.layout).toInt();\r
- var caseIn = [[margin, layout], [0, this.offset]];\r
- var caseOut = [[margin, layout], [-this.offset, 0]];\r
- var start;\r
- switch (how){\r
- case 'in': start = caseIn; break;\r
- case 'out': start = caseOut; break;\r
- case 'toggle': start = (this.wrapper['offset' + this.layout.capitalize()] == 0) ? caseIn : caseOut;\r
- }\r
- return this.parent(start[0], start[1]);\r
- },\r
-\r
- slideIn: function(mode){\r
- return this.start('in', mode);\r
- },\r
-\r
- slideOut: function(mode){\r
- return this.start('out', mode);\r
- },\r
-\r
- hide: function(mode){\r
- this[mode || this.options.mode]();\r
- this.open = false;\r
- return this.set([-this.offset, 0]);\r
- },\r
-\r
- show: function(mode){\r
- this[mode || this.options.mode]();\r
- this.open = true;\r
- return this.set([0, this.offset]);\r
- },\r
-\r
- toggle: function(mode){\r
- return this.start('toggle', mode);\r
- }\r
-\r
-});\r
-\r
-Element.Properties.slide = {\r
-\r
- set: function(options){\r
- var slide = this.retrieve('slide');\r
- if (slide) slide.cancel();\r
- return this.eliminate('slide').store('slide:options', $extend({link: 'cancel'}, options));\r
- },\r
- \r
- get: function(options){\r
- if (options || !this.retrieve('slide')){\r
- if (options || !this.retrieve('slide:options')) this.set('slide', options);\r
- this.store('slide', new Fx.Slide(this, this.retrieve('slide:options')));\r
- }\r
- return this.retrieve('slide');\r
- }\r
-\r
-};\r
-\r
-Element.implement({\r
-\r
- slide: function(how, mode){\r
- how = how || 'toggle';\r
- var slide = this.get('slide'), toggle;\r
- switch (how){\r
- case 'hide': slide.hide(mode); break;\r
- case 'show': slide.show(mode); break;\r
- case 'toggle':\r
- var flag = this.retrieve('slide:flag', slide.open);\r
- slide[(flag) ? 'slideOut' : 'slideIn'](mode);\r
- this.store('slide:flag', !flag);\r
- toggle = true;\r
- break;\r
- default: slide.start(how, mode);\r
- }\r
- if (!toggle) this.eliminate('slide:flag');\r
- return this;\r
- }\r
-\r
-});\r
-/*\r
-Script: Fx.Scroll.js\r
- Effect to smoothly scroll any element, including the window.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Fx.Scroll = new Class({\r
-\r
- Extends: Fx,\r
-\r
- options: {\r
- offset: {'x': 0, 'y': 0},\r
- wheelStops: true\r
- },\r
-\r
- initialize: function(element, options){\r
- this.element = this.subject = $(element);\r
- this.parent(options);\r
- var cancel = this.cancel.bind(this, false);\r
-\r
- if ($type(this.element) != 'element') this.element = $(this.element.getDocument().body);\r
-\r
- var stopper = this.element;\r
-\r
- if (this.options.wheelStops){\r
- this.addEvent('onStart', function(){\r
- stopper.addEvent('mousewheel', cancel);\r
- }, true);\r
- this.addEvent('onComplete', function(){\r
- stopper.removeEvent('mousewheel', cancel);\r
- }, true);\r
- }\r
- },\r
-\r
- set: function(){\r
- var now = Array.flatten(arguments);\r
- this.element.scrollTo(now[0], now[1]);\r
- },\r
-\r
- compute: function(from, to, delta){\r
- var now = [];\r
- (2).times(function(i){\r
- now.push(Fx.compute(from[i], to[i], delta));\r
- });\r
- return now;\r
- },\r
-\r
- start: function(x, y){\r
- if (!this.check(arguments.callee, x, y)) return this;\r
- var offsetSize = this.element.getSize(), scrollSize = this.element.getScrollSize();\r
- var scroll = this.element.getScroll(), values = {x: x, y: y};\r
- for (var z in values){\r
- var max = scrollSize[z] - offsetSize[z];\r
- if ($chk(values[z])) values[z] = ($type(values[z]) == 'number') ? values[z].limit(0, max) : max;\r
- else values[z] = scroll[z];\r
- values[z] += this.options.offset[z];\r
- }\r
- return this.parent([scroll.x, scroll.y], [values.x, values.y]);\r
- },\r
-\r
- toTop: function(){\r
- return this.start(false, 0);\r
- },\r
-\r
- toLeft: function(){\r
- return this.start(0, false);\r
- },\r
-\r
- toRight: function(){\r
- return this.start('right', false);\r
- },\r
-\r
- toBottom: function(){\r
- return this.start(false, 'bottom');\r
- },\r
-\r
- toElement: function(el){\r
- var position = $(el).getPosition(this.element);\r
- return this.start(position.x, position.y);\r
- }\r
-\r
-});\r
-/*\r
-Script: Fx.Elements.js\r
- Effect to change any number of CSS properties of any number of Elements.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Fx.Elements = new Class({\r
-\r
- Extends: Fx.CSS,\r
-\r
- initialize: function(elements, options){\r
- this.elements = this.subject = $$(elements);\r
- this.parent(options);\r
- },\r
-\r
- compute: function(from, to, delta){\r
- var now = {};\r
- for (var i in from){\r
- var iFrom = from[i], iTo = to[i], iNow = now[i] = {};\r
- for (var p in iFrom) iNow[p] = this.parent(iFrom[p], iTo[p], delta);\r
- }\r
- return now;\r
- },\r
-\r
- set: function(now){\r
- for (var i in now){\r
- var iNow = now[i];\r
- for (var p in iNow) this.render(this.elements[i], p, iNow[p], this.options.unit);\r
- }\r
- return this;\r
- },\r
-\r
- start: function(obj){\r
- if (!this.check(arguments.callee, obj)) return this;\r
- var from = {}, to = {};\r
- for (var i in obj){\r
- var iProps = obj[i], iFrom = from[i] = {}, iTo = to[i] = {};\r
- for (var p in iProps){\r
- var parsed = this.prepare(this.elements[i], p, iProps[p]);\r
- iFrom[p] = parsed.from;\r
- iTo[p] = parsed.to;\r
- }\r
- }\r
- return this.parent(from, to);\r
- }\r
-\r
-});/*\r
-Script: Drag.js\r
- The base Drag Class. Can be used to drag and resize Elements using mouse events.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Drag = new Class({\r
-\r
- Implements: [Events, Options],\r
-\r
- options: {/*\r
- onBeforeStart: $empty,\r
- onStart: $empty,\r
- onDrag: $empty,\r
- onCancel: $empty,\r
- onComplete: $empty,*/\r
- snap: 6,\r
- unit: 'px',\r
- grid: false,\r
- style: true,\r
- limit: false,\r
- handle: false,\r
- invert: false,\r
- preventDefault: false,\r
- modifiers: {x: 'left', y: 'top'}\r
- },\r
-\r
- initialize: function(){\r
- var params = Array.link(arguments, {'options': Object.type, 'element': $defined});\r
- this.element = $(params.element);\r
- this.document = this.element.getDocument();\r
- this.setOptions(params.options || {});\r
- var htype = $type(this.options.handle);\r
- this.handles = (htype == 'array' || htype == 'collection') ? $$(this.options.handle) : $(this.options.handle) || this.element;\r
- this.mouse = {'now': {}, 'pos': {}};\r
- this.value = {'start': {}, 'now': {}};\r
- \r
- this.selection = (Browser.Engine.trident) ? 'selectstart' : 'mousedown';\r
- \r
- this.bound = {\r
- start: this.start.bind(this),\r
- check: this.check.bind(this),\r
- drag: this.drag.bind(this),\r
- stop: this.stop.bind(this),\r
- cancel: this.cancel.bind(this),\r
- eventStop: $lambda(false)\r
- };\r
- this.attach();\r
- },\r
-\r
- attach: function(){\r
- this.handles.addEvent('mousedown', this.bound.start);\r
- return this;\r
- },\r
-\r
- detach: function(){\r
- this.handles.removeEvent('mousedown', this.bound.start);\r
- return this;\r
- },\r
-\r
- start: function(event){\r
- if (this.options.preventDefault) event.preventDefault();\r
- this.fireEvent('onBeforeStart', this.element);\r
- this.mouse.start = event.page;\r
- var limit = this.options.limit;\r
- this.limit = {'x': [], 'y': []};\r
- for (var z in this.options.modifiers){\r
- if (!this.options.modifiers[z]) continue;\r
- if (this.options.style) this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt();\r
- else this.value.now[z] = this.element[this.options.modifiers[z]];\r
- if (this.options.invert) this.value.now[z] *= -1;\r
- this.mouse.pos[z] = event.page[z] - this.value.now[z];\r
- if (limit && limit[z]){\r
- for (var i = 2; i--; i){\r
- if ($chk(limit[z][i])) this.limit[z][i] = $lambda(limit[z][i])();\r
- }\r
- }\r
- }\r
- if ($type(this.options.grid) == 'number') this.options.grid = {'x': this.options.grid, 'y': this.options.grid};\r
- this.document.addEvents({mousemove: this.bound.check, mouseup: this.bound.cancel});\r
- this.document.addEvent(this.selection, this.bound.eventStop);\r
- },\r
-\r
- check: function(event){\r
- if (this.options.preventDefault) event.preventDefault();\r
- var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));\r
- if (distance > this.options.snap){\r
- this.cancel();\r
- this.document.addEvents({\r
- mousemove: this.bound.drag,\r
- mouseup: this.bound.stop\r
- });\r
- this.fireEvent('onStart', this.element).fireEvent('onSnap', this.element);\r
- }\r
- },\r
-\r
- drag: function(event){\r
- if (this.options.preventDefault) event.preventDefault();\r
- this.mouse.now = event.page;\r
- for (var z in this.options.modifiers){\r
- if (!this.options.modifiers[z]) continue;\r
- this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z];\r
- if (this.options.invert) this.value.now[z] *= -1;\r
- if (this.options.limit && this.limit[z]){\r
- if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){\r
- this.value.now[z] = this.limit[z][1];\r
- } else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){\r
- this.value.now[z] = this.limit[z][0];\r
- }\r
- }\r
- if (this.options.grid[z]) this.value.now[z] -= (this.value.now[z] % this.options.grid[z]);\r
- if (this.options.style) this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit);\r
- else this.element[this.options.modifiers[z]] = this.value.now[z];\r
- }\r
- this.fireEvent('onDrag', this.element);\r
- },\r
-\r
- cancel: function(event){\r
- this.document.removeEvent('mousemove', this.bound.check);\r
- this.document.removeEvent('mouseup', this.bound.cancel);\r
- if (event){\r
- this.document.removeEvent(this.selection, this.bound.eventStop);\r
- this.fireEvent('onCancel', this.element);\r
- }\r
- },\r
-\r
- stop: function(event){\r
- this.document.removeEvent(this.selection, this.bound.eventStop);\r
- this.document.removeEvent('mousemove', this.bound.drag);\r
- this.document.removeEvent('mouseup', this.bound.stop);\r
- if (event) this.fireEvent('onComplete', this.element);\r
- }\r
-\r
-});\r
-\r
-Element.implement({\r
- \r
- makeResizable: function(options){\r
- return new Drag(this, $merge({modifiers: {'x': 'width', 'y': 'height'}}, options));\r
- }\r
-\r
-});/*\r
-Script: Drag.Move.js\r
- A Drag extension that provides support for the constraining of draggables to containers and droppables.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Drag.Move = new Class({\r
-\r
- Extends: Drag,\r
-\r
- options: {\r
- droppables: [],\r
- container: false\r
- },\r
-\r
- initialize: function(element, options){\r
- this.parent(element, options);\r
- this.droppables = $$(this.options.droppables);\r
- this.container = $(this.options.container);\r
- if (this.container && $type(this.container) != 'element') this.container = $(this.container.getDocument().body);\r
- element = this.element;\r
- \r
- var current = element.getStyle('position');\r
- var position = (current != 'static') ? current : 'absolute';\r
- if (element.getStyle('left') == 'auto' || element.getStyle('top') == 'auto') element.position(element.getPosition(element.offsetParent));\r
- \r
- element.setStyle('position', position);\r
- \r
- this.addEvent('onStart', function(){\r
- this.checkDroppables();\r
- }, true);\r
- },\r
-\r
- start: function(event){\r
- if (this.container){\r
- var el = this.element, cont = this.container, ccoo = cont.getCoordinates(el.offsetParent), cps = {}, ems = {};\r
-\r
- ['top', 'right', 'bottom', 'left'].each(function(pad){\r
- cps[pad] = cont.getStyle('padding-' + pad).toInt();\r
- ems[pad] = el.getStyle('margin-' + pad).toInt();\r
- }, this);\r
-\r
- var width = el.offsetWidth + ems.left + ems.right, height = el.offsetHeight + ems.top + ems.bottom;\r
- var x = [ccoo.left + cps.left, ccoo.right - cps.right - width];\r
- var y = [ccoo.top + cps.top, ccoo.bottom - cps.bottom - height];\r
-\r
- this.options.limit = {x: x, y: y};\r
- }\r
- this.parent(event);\r
- },\r
-\r
- checkAgainst: function(el){\r
- el = el.getCoordinates();\r
- var now = this.mouse.now;\r
- return (now.x > el.left && now.x < el.right && now.y < el.bottom && now.y > el.top);\r
- },\r
-\r
- checkDroppables: function(){\r
- var overed = this.droppables.filter(this.checkAgainst, this).getLast();\r
- if (this.overed != overed){\r
- if (this.overed) this.fireEvent('onLeave', [this.element, this.overed]);\r
- if (overed){\r
- this.overed = overed;\r
- this.fireEvent('onEnter', [this.element, overed]);\r
- } else {\r
- this.overed = null;\r
- }\r
- }\r
- },\r
-\r
- drag: function(event){\r
- this.parent(event);\r
- if (this.droppables.length) this.checkDroppables();\r
- },\r
-\r
- stop: function(event){\r
- this.checkDroppables();\r
- this.fireEvent('onDrop', [this.element, this.overed]);\r
- this.overed = null;\r
- return this.parent(event);\r
- }\r
-\r
-});\r
-\r
-Element.implement({\r
-\r
- makeDraggable: function(options){\r
- return new Drag.Move(this, options);\r
- }\r
-\r
-});\r
-/*\r
-Script: Color.js\r
- Class for creating and manipulating colors in JavaScript. Supports HSB -> RGB Conversions and vice versa.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Color = new Native({\r
- \r
- initialize: function(color, type){\r
- if (arguments.length >= 3){\r
- type = "rgb"; color = Array.slice(arguments, 0, 3);\r
- } else if (typeof color == 'string'){\r
- if (color.match(/rgb/)) color = color.rgbToHex().hexToRgb(true);\r
- else if (color.match(/hsb/)) color = color.hsbToRgb();\r
- else color = color.hexToRgb(true);\r
- }\r
- type = type || 'rgb';\r
- switch (type){\r
- case 'hsb':\r
- var old = color;\r
- color = color.hsbToRgb();\r
- color.hsb = old;\r
- break;\r
- case 'hex': color = color.hexToRgb(true); break;\r
- }\r
- color.rgb = color.slice(0, 3);\r
- color.hsb = color.hsb || color.rgbToHsb();\r
- color.hex = color.rgbToHex();\r
- return $extend(color, this);\r
- }\r
-\r
-});\r
-\r
-Color.implement({\r
-\r
- mix: function(){\r
- var colors = Array.slice(arguments);\r
- var alpha = ($type(colors.getLast()) == 'number') ? colors.pop() : 50;\r
- var rgb = this.slice();\r
- colors.each(function(color){\r
- color = new Color(color);\r
- for (var i = 0; i < 3; i++) rgb[i] = Math.round((rgb[i] / 100 * (100 - alpha)) + (color[i] / 100 * alpha));\r
- });\r
- return new Color(rgb, 'rgb');\r
- },\r
-\r
- invert: function(){\r
- return new Color(this.map(function(value){\r
- return 255 - value;\r
- }));\r
- },\r
-\r
- setHue: function(value){\r
- return new Color([value, this.hsb[1], this.hsb[2]], 'hsb');\r
- },\r
-\r
- setSaturation: function(percent){\r
- return new Color([this.hsb[0], percent, this.hsb[2]], 'hsb');\r
- },\r
-\r
- setBrightness: function(percent){\r
- return new Color([this.hsb[0], this.hsb[1], percent], 'hsb');\r
- }\r
-\r
-});\r
-\r
-function $RGB(r, g, b){\r
- return new Color([r, g, b], 'rgb');\r
-};\r
-\r
-function $HSB(h, s, b){\r
- return new Color([h, s, b], 'hsb');\r
-};\r
-\r
-function $HEX(hex){\r
- return new Color(hex, 'hex');\r
-};\r
-\r
-Array.implement({\r
-\r
- rgbToHsb: function(){\r
- var red = this[0], green = this[1], blue = this[2];\r
- var hue, saturation, brightness;\r
- var max = Math.max(red, green, blue), min = Math.min(red, green, blue);\r
- var delta = max - min;\r
- brightness = max / 255;\r
- saturation = (max != 0) ? delta / max : 0;\r
- if (saturation == 0){\r
- hue = 0;\r
- } else {\r
- var rr = (max - red) / delta;\r
- var gr = (max - green) / delta;\r
- var br = (max - blue) / delta;\r
- if (red == max) hue = br - gr;\r
- else if (green == max) hue = 2 + rr - br;\r
- else hue = 4 + gr - rr;\r
- hue /= 6;\r
- if (hue < 0) hue++;\r
- }\r
- return [Math.round(hue * 360), Math.round(saturation * 100), Math.round(brightness * 100)];\r
- },\r
-\r
- hsbToRgb: function(){\r
- var br = Math.round(this[2] / 100 * 255);\r
- if (this[1] == 0){\r
- return [br, br, br];\r
- } else {\r
- var hue = this[0] % 360;\r
- var f = hue % 60;\r
- var p = Math.round((this[2] * (100 - this[1])) / 10000 * 255);\r
- var q = Math.round((this[2] * (6000 - this[1] * f)) / 600000 * 255);\r
- var t = Math.round((this[2] * (6000 - this[1] * (60 - f))) / 600000 * 255);\r
- switch (Math.floor(hue / 60)){\r
- case 0: return [br, t, p];\r
- case 1: return [q, br, p];\r
- case 2: return [p, br, t];\r
- case 3: return [p, q, br];\r
- case 4: return [t, p, br];\r
- case 5: return [br, p, q];\r
- }\r
- }\r
- return false;\r
- }\r
-\r
-});\r
-\r
-String.implement({\r
-\r
- rgbToHsb: function(){\r
- var rgb = this.match(/\d{1,3}/g);\r
- return (rgb) ? hsb.rgbToHsb() : null;\r
- },\r
- \r
- hsbToRgb: function(){\r
- var hsb = this.match(/\d{1,3}/g);\r
- return (hsb) ? hsb.hsbToRgb() : null;\r
- }\r
-\r
-});\r
-/*\r
-Script: Group.js\r
- Class for monitoring collections of events\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Group = new Class({\r
-\r
- initialize: function(){\r
- this.instances = Array.flatten(arguments);\r
- this.events = {};\r
- this.checker = {};\r
- },\r
-\r
- addEvent: function(type, fn){\r
- this.checker[type] = this.checker[type] || {};\r
- this.events[type] = this.events[type] || [];\r
- if (this.events[type].contains(fn)) return false;\r
- else this.events[type].push(fn);\r
- this.instances.each(function(instance, i){\r
- instance.addEvent(type, this.check.bind(this, [type, instance, i]));\r
- }, this);\r
- return this;\r
- },\r
-\r
- check: function(type, instance, i){\r
- this.checker[type][i] = true;\r
- var every = this.instances.every(function(current, j){\r
- return this.checker[type][j] || false;\r
- }, this);\r
- if (!every) return;\r
- this.checker[type] = {};\r
- this.events[type].each(function(event){\r
- event.call(this, this.instances, instance);\r
- }, this);\r
- }\r
-\r
-});\r
-/*\r
-Script: Hash.Cookie.js\r
- Class for creating, reading, and deleting Cookies in JSON format.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-Hash.Cookie = new Class({\r
-\r
- Extends: Cookie,\r
-\r
- options: {\r
- autoSave: true\r
- },\r
-\r
- initialize: function(name, options){\r
- this.parent(name, options);\r
- this.load();\r
- },\r
-\r
- save: function(){\r
- var value = JSON.encode(this.hash);\r
- if (!value || value.length > 4096) return false; //cookie would be truncated!\r
- if (value == '{}') this.dispose();\r
- else this.write(value);\r
- return true;\r
- },\r
-\r
- load: function(){\r
- this.hash = new Hash(JSON.decode(this.read(), true));\r
- return this;\r
- }\r
-\r
-});\r
-\r
-Hash.Cookie.implement((function(){\r
- \r
- var methods = {};\r
- \r
- Hash.each(Hash.prototype, function(method, name){\r
- methods[name] = function(){\r
- var value = method.apply(this.hash, arguments);\r
- if (this.options.autoSave) this.save();\r
- return value;\r
- };\r
- });\r
- \r
- return methods;\r
- \r
-})());/*\r
-Script: Sortables.js\r
- Class for creating a drag and drop sorting interface for lists of items.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Sortables = new Class({\r
-\r
- Implements: [Events, Options],\r
-\r
- options: {/*\r
- onSort: $empty,\r
- onStart: $empty,\r
- onComplete: $empty,*/\r
- snap: 4,\r
- opacity: 1,\r
- clone: false,\r
- revert: false,\r
- handle: false,\r
- constrain: false\r
- },\r
-\r
- initialize: function(lists, options){\r
- this.setOptions(options);\r
- this.elements = [];\r
- this.lists = [];\r
- this.idle = true;\r
- \r
- this.addLists($$($(lists) || lists));\r
- if (!this.options.clone) this.options.revert = false;\r
- if (this.options.revert) this.effect = new Fx.Morph(null, $merge({duration: 250, link: 'cancel'}, this.options.revert));\r
- },\r
-\r
- attach: function(){\r
- this.addLists(this.lists);\r
- return this;\r
- },\r
-\r
- detach: function(){\r
- this.lists = this.removeLists(this.lists);\r
- return this;\r
- },\r
-\r
- addItems: function(){\r
- Array.flatten(arguments).each(function(element){\r
- this.elements.push(element);\r
- var start = element.retrieve('sortables:start', this.start.bindWithEvent(this, element));\r
- (this.options.handle ? element.getElement(this.options.handle) || element : element).addEvent('mousedown', start);\r
- }, this);\r
- return this;\r
- },\r
-\r
- addLists: function(){\r
- Array.flatten(arguments).each(function(list){\r
- this.lists.push(list);\r
- this.addItems(list.getChildren());\r
- }, this);\r
- return this;\r
- },\r
-\r
- removeItems: function(){\r
- var elements = [];\r
- Array.flatten(arguments).each(function(element){\r
- elements.push(element);\r
- this.elements.erase(element);\r
- var start = element.retrieve('sortables:start');\r
- (this.options.handle ? element.getElement(this.options.handle) || element : element).removeEvent('mousedown', start);\r
- }, this);\r
- return $$(elements);\r
- },\r
-\r
- removeLists: function(){\r
- var lists = [];\r
- Array.flatten(arguments).each(function(list){\r
- lists.push(list);\r
- this.lists.erase(list);\r
- this.removeItems(list.getChildren());\r
- }, this);\r
- return $$(lists);\r
- },\r
-\r
- getClone: function(event, element){\r
- if (!this.options.clone) return new Element('div').inject(document.body);\r
- if ($type(this.options.clone) == 'function') return this.options.clone.call(this, event, element, this.list);\r
- return element.clone(true).setStyles({\r
- 'margin': '0px',\r
- 'position': 'absolute',\r
- 'visibility': 'hidden',\r
- 'width': element.getStyle('width')\r
- }).inject(this.list).position(element.getPosition(element.offsetParent));\r
- },\r
-\r
- getDroppables: function(){\r
- var droppables = this.list.getChildren();\r
- if (!this.options.constrain) droppables = this.lists.concat(droppables).erase(this.list);\r
- return droppables.erase(this.clone).erase(this.element);\r
- },\r
-\r
- insert: function(dragging, element){\r
- var where = 'inside';\r
- if (this.lists.contains(element)){\r
- this.list = element;\r
- this.drag.droppables = this.getDroppables();\r
- } else {\r
- where = this.element.getAllPrevious().contains(element) ? 'before' : 'after';\r
- }\r
- this.element.inject(element, where);\r
- this.fireEvent('onSort', [this.element, this.clone]);\r
- },\r
-\r
- start: function(event, element){\r
- if (!this.idle) return;\r
- this.idle = false;\r
- this.element = element;\r
- this.opacity = element.get('opacity');\r
- this.list = element.getParent();\r
- this.clone = this.getClone(event, element);\r
- \r
- this.drag = new Drag.Move(this.clone, {\r
- snap: this.options.snap,\r
- container: this.options.constrain && this.element.getParent(),\r
- droppables: this.getDroppables(),\r
- onSnap: function(){\r
- event.stop();\r
- this.clone.setStyle('visibility', 'visible');\r
- this.element.set('opacity', this.options.opacity || 0);\r
- this.fireEvent('onStart', [this.element, this.clone]);\r
- }.bind(this),\r
- onEnter: this.insert.bind(this),\r
- onCancel: this.reset.bind(this),\r
- onComplete: this.end.bind(this)\r
- });\r
- \r
- this.clone.inject(this.element, 'before');\r
- this.drag.start(event);\r
- },\r
-\r
- end: function(){\r
- this.drag.detach();\r
- this.element.set('opacity', this.opacity);\r
- if (this.effect){\r
- var dim = this.element.getStyles('width', 'height');\r
- var pos = this.clone.computePosition(this.element.getPosition(this.clone.offsetParent));\r
- this.effect.element = this.clone;\r
- this.effect.start({\r
- top: pos.top,\r
- left: pos.left,\r
- width: dim.width,\r
- height: dim.height,\r
- opacity: 0.25\r
- }).chain(this.reset.bind(this));\r
- } else {\r
- this.reset();\r
- }\r
- },\r
-\r
- reset: function(){\r
- this.idle = true;\r
- this.clone.destroy();\r
- this.fireEvent('onComplete', this.element);\r
- },\r
-\r
- serialize: function(){\r
- var params = Array.link(arguments, {modifier: Function.type, index: $defined});\r
- var serial = this.lists.map(function(list){\r
- return list.getChildren().map(params.modifier || function(element){\r
- return element.get('id');\r
- }, this);\r
- }, this);\r
- \r
- var index = params.index;\r
- if (this.lists.length == 1) index = 0;\r
- return $chk(index) && index >= 0 && index < this.lists.length ? serial[index] : serial;\r
- }\r
-\r
-});/*\r
-Script: Tips.js\r
- Class for creating nice tips that follow the mouse cursor when hovering an element.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Tips = new Class({\r
-\r
- Implements: [Events, Options],\r
-\r
- options: {\r
- onShow: function(tip){\r
- tip.setStyle('visibility', 'visible');\r
- },\r
- onHide: function(tip){\r
- tip.setStyle('visibility', 'hidden');\r
- },\r
- showDelay: 100,\r
- hideDelay: 100,\r
- className: null,\r
- offsets: {x: 16, y: 16},\r
- fixed: false\r
- },\r
-\r
- initialize: function(){\r
- var params = Array.link(arguments, {options: Object.type, elements: $defined});\r
- this.setOptions(params.options || null);\r
- \r
- this.tip = new Element('div').inject(document.body);\r
- \r
- if (this.options.className) this.tip.addClass(this.options.className);\r
- \r
- var top = new Element('div', {'class': 'tip-top'}).inject(this.tip);\r
- this.container = new Element('div', {'class': 'tip'}).inject(this.tip);\r
- var bottom = new Element('div', {'class': 'tip-bottom'}).inject(this.tip);\r
-\r
- this.tip.setStyles({position: 'absolute', top: 0, left: 0, visibility: 'hidden'});\r
- \r
- if (params.elements) this.attach(params.elements);\r
- },\r
- \r
- attach: function(elements){\r
- $$(elements).each(function(element){\r
- var title = element.retrieve('tip:title', element.get('title'));\r
- var text = element.retrieve('tip:text', element.get('rel') || element.get('href'));\r
- var enter = element.retrieve('tip:enter', this.elementEnter.bindWithEvent(this, element));\r
- var leave = element.retrieve('tip:leave', this.elementLeave.bindWithEvent(this, element));\r
- element.addEvents({mouseenter: enter, mouseleave: leave});\r
- if (!this.options.fixed){\r
- var move = element.retrieve('tip:move', this.elementMove.bindWithEvent(this, element));\r
- element.addEvent('mousemove', move);\r
- }\r
- element.store('tip:native', element.get('title'));\r
- element.erase('title');\r
- }, this);\r
- return this;\r
- },\r
- \r
- detach: function(elements){\r
- $$(elements).each(function(element){\r
- element.removeEvent('mouseenter', element.retrieve('tip:enter') || $empty);\r
- element.removeEvent('mouseleave', element.retrieve('tip:leave') || $empty);\r
- element.removeEvent('mousemove', element.retrieve('tip:move') || $empty);\r
- element.eliminate('tip:enter').eliminate('tip:leave').eliminate('tip:move');\r
- var original = element.retrieve('tip:native');\r
- if (original) element.set('title', original);\r
- });\r
- return this;\r
- },\r
- \r
- elementEnter: function(event, element){\r
- \r
- $A(this.container.childNodes).each(Element.dispose);\r
- \r
- var title = element.retrieve('tip:title');\r
- \r
- if (title){\r
- this.titleElement = new Element('div', {'class': 'tip-title'}).inject(this.container);\r
- this.fill(this.titleElement, title);\r
- }\r
- \r
- var text = element.retrieve('tip:text');\r
- if (text){\r
- this.textElement = new Element('div', {'class': 'tip-text'}).inject(this.container);\r
- this.fill(this.textElement, text);\r
- }\r
- \r
- this.timer = $clear(this.timer);\r
- this.timer = this.show.delay(this.options.showDelay, this);\r
-\r
- this.position((!this.options.fixed) ? event : {page: element.getPosition()});\r
- },\r
- \r
- elementLeave: function(event){\r
- $clear(this.timer);\r
- this.timer = this.hide.delay(this.options.hideDelay, this);\r
- },\r
- \r
- elementMove: function(event){\r
- this.position(event);\r
- },\r
- \r
- position: function(event){\r
- var size = window.getSize(), scroll = window.getScroll();\r
- var tip = {x: this.tip.offsetWidth, y: this.tip.offsetHeight};\r
- var props = {x: 'left', y: 'top'};\r
- for (var z in props){\r
- var pos = event.page[z] + this.options.offsets[z];\r
- if ((pos + tip[z] - scroll[z]) > size[z]) pos = event.page[z] - this.options.offsets[z] - tip[z];\r
- this.tip.setStyle(props[z], pos);\r
- }\r
- },\r
- \r
- fill: function(element, contents){\r
- (typeof contents == 'string') ? element.set('html', contents) : element.adopt(contents);\r
- },\r
-\r
- show: function(){\r
- this.fireEvent('onShow', this.tip);\r
- },\r
-\r
- hide: function(){\r
- this.fireEvent('onHide', this.tip);\r
- }\r
-\r
-});/*\r
-Script: SmoothScroll.js\r
- Class for creating a smooth scrolling effect to all internal links on the page.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var SmoothScroll = new Class({\r
-\r
- Extends: Fx.Scroll,\r
-\r
- initialize: function(options, context){\r
- context = context || document;\r
- var doc = context.getDocument(), win = context.getWindow();\r
- this.parent(doc, options);\r
- this.links = (this.options.links) ? $$(this.options.links) : $$(doc.links);\r
- var location = win.location.href.match(/^[^#]*/)[0] + '#';\r
- this.links.each(function(link){\r
- if (link.href.indexOf(location) != 0) return;\r
- var anchor = link.href.substr(location.length);\r
- if (anchor && $(anchor)) this.useLink(link, anchor);\r
- }, this);\r
- if (!Browser.Engine.webkit419) this.addEvent('onComplete', function(){\r
- win.location.hash = this.anchor;\r
- }, true);\r
- },\r
-\r
- useLink: function(link, anchor){\r
- link.addEvent('click', function(event){\r
- this.anchor = anchor;\r
- this.toElement(anchor);\r
- event.stop();\r
- }.bind(this));\r
- }\r
-\r
-});/*\r
-Script: Slider.js\r
- Class for creating horizontal and vertical slider controls.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Slider = new Class({\r
-\r
- Implements: [Events, Options],\r
-\r
- options: {/*\r
- onChange: $empty,\r
- onComplete: $empty,*/\r
- onTick: function(position){\r
- if(this.options.snap) position = this.toPosition(this.step);\r
- this.knob.setStyle(this.property, position);\r
- },\r
- snap: false,\r
- offset: 0,\r
- range: false,\r
- wheel: false,\r
- steps: 100,\r
- mode: 'horizontal'\r
- },\r
-\r
- initialize: function(element, knob, options){\r
- this.setOptions(options);\r
- this.element = $(element);\r
- this.knob = $(knob);\r
- this.previousChange = this.previousEnd = this.step = -1;\r
- this.element.addEvent('mousedown', this.clickedElement.bind(this));\r
- if (this.options.wheel) this.element.addEvent('mousewheel', this.scrolledElement.bindWithEvent(this));\r
- var offset, limit = {}, modifiers = {'x': false, 'y': false};\r
- switch (this.options.mode){\r
- case 'vertical':\r
- this.axis = 'y';\r
- this.property = 'top';\r
- offset = 'offsetHeight';\r
- break;\r
- case 'horizontal':\r
- this.axis = 'x';\r
- this.property = 'left';\r
- offset = 'offsetWidth';\r
- }\r
- this.half = this.knob[offset] / 2;\r
- this.full = this.element[offset] - this.knob[offset] + (this.options.offset * 2);\r
- this.min = $chk(this.options.range[0]) ? this.options.range[0] : 0;\r
- this.max = $chk(this.options.range[1]) ? this.options.range[1] : this.options.steps;\r
- this.range = this.max - this.min;\r
- this.steps = this.options.steps || this.full;\r
- this.stepSize = Math.abs(this.range) / this.steps;\r
- this.stepWidth = this.stepSize * this.full / Math.abs(this.range) ;\r
- \r
- this.knob.setStyle('position', 'relative').setStyle(this.property, - this.options.offset);\r
- modifiers[this.axis] = this.property;\r
- limit[this.axis] = [- this.options.offset, this.full - this.options.offset];\r
- this.drag = new Drag(this.knob, {\r
- snap: 0,\r
- limit: limit,\r
- modifiers: modifiers,\r
- onDrag: this.draggedKnob.bind(this),\r
- onStart: this.draggedKnob.bind(this),\r
- onComplete: function(){\r
- this.draggedKnob();\r
- this.end();\r
- }.bind(this)\r
- });\r
- if (this.options.snap) {\r
- this.drag.options.grid = Math.ceil(this.stepWidth);\r
- this.drag.options.limit[this.axis][1] = this.full;\r
- }\r
- },\r
-\r
- set: function(step){\r
- if (!((this.range > 0) ^ (step < this.min))) step = this.min;\r
- if (!((this.range > 0) ^ (step > this.max))) step = this.max;\r
- \r
- this.step = Math.round(step);\r
- this.checkStep();\r
- this.end();\r
- this.fireEvent('onTick', this.toPosition(this.step));\r
- return this;\r
- },\r
-\r
- clickedElement: function(event){\r
- var dir = this.range < 0 ? -1 : 1;\r
- var position = event.page[this.axis] - this.element.getPosition()[this.axis] - this.half;\r
- position = position.limit(-this.options.offset, this.full -this.options.offset);\r
- \r
- this.step = Math.round(this.min + dir * this.toStep(position));\r
- this.checkStep();\r
- this.end();\r
- this.fireEvent('onTick', position);\r
- },\r
- \r
- scrolledElement: function(event){\r
- var mode = (this.options.mode == 'horizontal') ? (event.wheel < 0) : (event.wheel > 0);\r
- this.set(mode ? this.step - this.stepSize : this.step + this.stepSize);\r
- event.stop();\r
- },\r
-\r
- draggedKnob: function(){\r
- var dir = this.range < 0 ? -1 : 1;\r
- var position = this.drag.value.now[this.axis];\r
- position = position.limit(-this.options.offset, this.full -this.options.offset);\r
- this.step = Math.round(this.min + dir * this.toStep(position));\r
- this.checkStep();\r
- },\r
-\r
- checkStep: function(){\r
- if (this.previousChange != this.step){\r
- this.previousChange = this.step;\r
- this.fireEvent('onChange', this.step);\r
- }\r
- },\r
-\r
- end: function(){\r
- if (this.previousEnd !== this.step){\r
- this.previousEnd = this.step;\r
- this.fireEvent('onComplete', this.step + '');\r
- }\r
- },\r
-\r
- toStep: function(position){\r
- var step = (position + this.options.offset) * this.stepSize / this.full * this.steps;\r
- return this.options.steps ? Math.round(step -= step % this.stepSize) : step;\r
- },\r
-\r
- toPosition: function(step){\r
- return (this.full * Math.abs(this.min - step)) / (this.steps * this.stepSize) - this.options.offset;\r
- }\r
-\r
-});/*\r
-Script: Scroller.js\r
- Class which scrolls the contents of any Element (including the window) when the mouse reaches the Element's boundaries.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Scroller = new Class({\r
-\r
- Implements: [Events, Options],\r
-\r
- options: {\r
- area: 20,\r
- velocity: 1,\r
- onChange: function(x, y){\r
- this.element.scrollTo(x, y);\r
- }\r
- },\r
-\r
- initialize: function(element, options){\r
- this.setOptions(options);\r
- this.element = $(element);\r
- this.listener = ($type(this.element) != 'element') ? $(this.element.getDocument().body) : this.element;\r
- this.timer = null;\r
- },\r
-\r
- start: function(){\r
- this.coord = this.getCoords.bind(this);\r
- this.listener.addEvent('mousemove', this.coord);\r
- },\r
-\r
- stop: function(){\r
- this.listener.removeEvent('mousemove', this.coord);\r
- this.timer = $clear(this.timer);\r
- },\r
-\r
- getCoords: function(event){\r
- this.page = (this.listener.get('tag') == 'body') ? event.client : event.page;\r
- if (!this.timer) this.timer = this.scroll.periodical(50, this);\r
- },\r
-\r
- scroll: function(){\r
- var size = this.element.getSize(), scroll = this.element.getScroll(), pos = this.element.getPosition(), change = {'x': 0, 'y': 0};\r
- for (var z in this.page){\r
- if (this.page[z] < (this.options.area + pos[z]) && scroll[z] != 0)\r
- change[z] = (this.page[z] - this.options.area - pos[z]) * this.options.velocity;\r
- else if (this.page[z] + this.options.area > (size[z] + pos[z]) && size[z] + size[z] != scroll[z])\r
- change[z] = (this.page[z] - size[z] + this.options.area - pos[z]) * this.options.velocity;\r
- }\r
- if (change.y || change.x) this.fireEvent('onChange', [scroll.x + change.x, scroll.y + change.y]);\r
- }\r
-\r
-});/*\r
-Script: Assets.js\r
- Provides methods to dynamically load JavaScript, CSS, and Image files into the document.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Asset = new Hash({\r
-\r
- javascript: function(source, properties){\r
- properties = $extend({\r
- onload: $empty,\r
- document: document,\r
- check: $lambda(true)\r
- }, properties);\r
- \r
- var script = new Element('script', {'src': source, 'type': 'text/javascript'});\r
- \r
- var load = properties.onload.bind(script), check = properties.check, doc = properties.document;\r
- delete properties.onload; delete properties.check; delete properties.document;\r
- \r
- script.addEvents({\r
- load: load,\r
- readystatechange: function(){\r
- if (['loaded', 'complete'].contains(this.readyState)) load();\r
- }\r
- }).setProperties(properties);\r
- \r
- \r
- if (Browser.Engine.webkit419) var checker = (function(){\r
- if (!$try(check)) return;\r
- $clear(checker);\r
- load();\r
- }).periodical(50);\r
- \r
- return script.inject(doc.head);\r
- },\r
-\r
- css: function(source, properties){\r
- return new Element('link', $merge({\r
- 'rel': 'stylesheet', 'media': 'screen', 'type': 'text/css', 'href': source\r
- }, properties)).inject(document.head);\r
- },\r
-\r
- image: function(source, properties){\r
- properties = $merge({\r
- 'onload': $empty,\r
- 'onabort': $empty,\r
- 'onerror': $empty\r
- }, properties);\r
- var image = new Image();\r
- var element = $(image) || new Element('img');\r
- ['load', 'abort', 'error'].each(function(name){\r
- var type = 'on' + name;\r
- var event = properties[type];\r
- delete properties[type];\r
- image[type] = function(){\r
- if (!image) return;\r
- if (!element.parentNode){\r
- element.width = image.width;\r
- element.height = image.height;\r
- }\r
- image = image.onload = image.onabort = image.onerror = null;\r
- event.delay(1, element, element);\r
- element.fireEvent(name, element, 1);\r
- };\r
- });\r
- image.src = element.src = source;\r
- if (image && image.complete) image.onload.delay(1);\r
- return element.setProperties(properties);\r
- },\r
-\r
- images: function(sources, options){\r
- options = $merge({\r
- onComplete: $empty,\r
- onProgress: $empty\r
- }, options);\r
- if (!sources.push) sources = [sources];\r
- var images = [];\r
- var counter = 0;\r
- sources.each(function(source){\r
- var img = new Asset.image(source, {\r
- 'onload': function(){\r
- options.onProgress.call(this, counter, sources.indexOf(source));\r
- counter++;\r
- if (counter == sources.length) options.onComplete();\r
- }\r
- });\r
- images.push(img);\r
- });\r
- return new Elements(images);\r
- }\r
-\r
-});/*\r
-Script: Accordion.js\r
- An Fx.Elements extension which allows you to easily create accordion type controls.\r
-\r
-License:\r
- MIT-style license.\r
-*/\r
-\r
-var Accordion = new Class({\r
-\r
- Extends: Fx.Elements,\r
-\r
- options: {/*\r
- onActive: $empty,\r
- onBackground: $empty,*/\r
- display: 0,\r
- show: false,\r
- height: true,\r
- width: false,\r
- opacity: true,\r
- fixedHeight: false,\r
- fixedWidth: false,\r
- wait: false,\r
- alwaysHide: false\r
- },\r
-\r
- initialize: function(){\r
- var params = Array.link(arguments, {'container': Element.type, 'options': Object.type, 'togglers': $defined, 'elements': $defined});\r
- this.parent(params.elements, params.options);\r
- this.togglers = $$(params.togglers);\r
- this.container = $(params.container);\r
- this.previous = -1;\r
- if (this.options.alwaysHide) this.options.wait = true;\r
- if ($chk(this.options.show)){\r
- this.options.display = false;\r
- this.previous = this.options.show;\r
- }\r
- if (this.options.start){\r
- this.options.display = false;\r
- this.options.show = false;\r
- }\r
- this.effects = {};\r
- if (this.options.opacity) this.effects.opacity = 'fullOpacity';\r
- if (this.options.width) this.effects.width = this.options.fixedWidth ? 'fullWidth' : 'offsetWidth';\r
- if (this.options.height) this.effects.height = this.options.fixedHeight ? 'fullHeight' : 'scrollHeight';\r
- for (var i = 0, l = this.togglers.length; i < l; i++) this.addSection(this.togglers[i], this.elements[i]);\r
- this.elements.each(function(el, i){\r
- if (this.options.show === i){\r
- this.fireEvent('onActive', [this.togglers[i], el]);\r
- } else {\r
- for (var fx in this.effects) el.setStyle(fx, 0);\r
- }\r
- }, this);\r
- if ($chk(this.options.display)) this.display(this.options.display);\r
- },\r
-\r
- addSection: function(toggler, element, pos){\r
- toggler = $(toggler);\r
- element = $(element);\r
- var test = this.togglers.contains(toggler);\r
- var len = this.togglers.length;\r
- this.togglers.include(toggler);\r
- this.elements.include(element);\r
- if (len && (!test || pos)){\r
- pos = $pick(pos, len - 1);\r
- toggler.inject(this.togglers[pos], 'before');\r
- element.inject(toggler, 'after');\r
- } else if (this.container && !test){\r
- toggler.inject(this.container);\r
- element.inject(this.container);\r
- }\r
- var idx = this.togglers.indexOf(toggler);\r
- toggler.addEvent('click', this.display.bind(this, idx));\r
- if (this.options.height) element.setStyles({'padding-top': 0, 'border-top': 'none', 'padding-bottom': 0, 'border-bottom': 'none'});\r
- if (this.options.width) element.setStyles({'padding-left': 0, 'border-left': 'none', 'padding-right': 0, 'border-right': 'none'});\r
- element.fullOpacity = 1;\r
- if (this.options.fixedWidth) element.fullWidth = this.options.fixedWidth;\r
- if (this.options.fixedHeight) element.fullHeight = this.options.fixedHeight;\r
- element.setStyle('overflow', 'hidden');\r
- if (!test){\r
- for (var fx in this.effects) element.setStyle(fx, 0);\r
- }\r
- return this;\r
- },\r
-\r
- display: function(index){\r
- index = ($type(index) == 'element') ? this.elements.indexOf(index) : index;\r
- if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this;\r
- this.previous = index;\r
- var obj = {};\r
- this.elements.each(function(el, i){\r
- obj[i] = {};\r
- var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0));\r
- this.fireEvent(hide ? 'onBackground' : 'onActive', [this.togglers[i], el]);\r
- for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]];\r
- }, this);\r
- return this.start(obj);\r
- }\r
-\r
-});
\ No newline at end of file
+++ /dev/null
-tinyMCE.addI18n('en.images',{\r
- desc : 'Upload and insert picture'\r
-});
\ No newline at end of file
+++ /dev/null
-tinyMCE.addI18n('en.images_dlg',{\r
-title:"Pictures",\r
-del_sel_folder:"Remove selected folder?",\r
-sel_files_for_del:"Select files for removal.\n\nYou can remove several files simultaneously by selecting it with Ctrl.",\r
-files_to_del:"Files for removal",\r
-delete_str:"Remove",\r
-create_new_fld:"Create new folder",\r
-create_fld:"Create folder",\r
-upload_files:"Upload files",\r
-delete_file:"Delete file",\r
-\r
-fancy_title:"Image uploading",\r
-fancy_back_alt:"Back to files list",\r
-fancy_back:"Back to files",\r
-fancy_browse:"Browse",\r
-fancy_begin_upload:"Start upload",\r
-fancy_upload_files:"Upload files",\r
-fancy_clear:"Clear list",\r
-fancy_begin_upload_files:"Start files upload",\r
-fancy_general_status:"General status",\r
-fancy_file_status:"File status"\r
-});
\ No newline at end of file
+++ /dev/null
-tinyMCE.addI18n('ru.images',{\r
- desc : '\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u0020\u0438\u0020\u0432\u0441\u0442\u0430\u0432\u043A\u0430\u0020\u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439'\r
-});
\ No newline at end of file
+++ /dev/null
-tinyMCE.addI18n('ru.images_dlg',{\r
-title:"\u041A\u0430\u0440\u0442\u0438\u043D\u043A\u0438",\r
-del_sel_folder:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0020\u0432\u044B\u0431\u0440\u0430\u043D\u043D\u0443\u044E\u0020\u043F\u0430\u043F\u043A\u0443?",\r
-sel_files_for_del:"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435\u0020\u0444\u0430\u0439\u043B\u044B\u0020\u0434\u043B\u044F\u0020\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F\u002E\u005C\u006E\u005C\u006E\u0414\u043B\u044F\u0020\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044F\u0020\u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u0438\u0445\u0020\u0444\u0430\u0439\u043B\u043E\u0432\u0020\u0432\u044B\u0434\u0435\u043B\u0438\u0442\u0435\u0020\u0438\u0445\u0020\u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044F\u0020\u0043\u0074\u0072\u006C\u002E",\r
-files_to_del:"\u0424\u0430\u0439\u043B\u043E\u0432\u0020\u043A\u0020\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u044E",\r
-delete_str:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C",\r
-create_new_fld:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0020\u043D\u043E\u0432\u0443\u044E\u0020\u043F\u0430\u043F\u043A\u0443",\r
-create_fld:"\u0421\u043E\u0437\u0434\u0430\u0442\u044C\u0020\u043F\u0430\u043F\u043A\u0443",\r
-upload_files:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0020\u0444\u0430\u0439\u043B\u044B",\r
-delete_file:"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\u0020\u0444\u0430\u0439\u043B",\r
-\r
-fancy_title:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u0020\u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439",\r
-fancy_back_alt:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F\u0020\u043A\u0020\u0441\u043F\u0438\u0441\u043A\u0443\u0020\u0444\u0430\u0439\u043B\u043E\u0432",\r
-fancy_back:"\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F\u0020\u043A\u0020\u0444\u0430\u0439\u043B\u0430\u043C",\r
-fancy_browse:"\u041E\u0431\u0437\u043E\u0440",\r
-fancy_begin_upload:"\u041D\u0430\u0447\u0430\u0442\u044C\u0020\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0443",\r
-fancy_upload_files:"\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0020\u0444\u0430\u0439\u043B\u044B",\r
-fancy_clear:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0020\u0441\u043F\u0438\u0441\u043E\u043A",\r
-fancy_begin_upload_files:"\u041D\u0430\u0447\u0430\u0442\u044C\u0020\u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0443\u0020\u0444\u0430\u0439\u043B\u043E\u0432",\r
-fancy_general_status:"\u041E\u0431\u0449\u0438\u0439\u0020\u0441\u0442\u0430\u0442\u0443\u0441",\r
-fancy_file_status:"\u0421\u0442\u0430\u0442\u0443\u0441\u0020\u0444\u0430\u0439\u043B\u0430"\r
-});
\ No newline at end of file
+++ /dev/null
-TinyMCE Images Plugin\r
-\r
-Ñàéò àâòîðà: http://dustweb.ru/log/projects/tinymce_images/
\ No newline at end of file
+++ /dev/null
-<?php\r
-/**\r
- * JsHttpRequest: PHP backend for JavaScript DHTML loader.\r
- * (C) Dmitry Koterov, http://en.dklab.ru\r
- *\r
- * This library is free software; you can redistribute it and/or\r
- * modify it under the terms of the GNU Lesser General Public\r
- * License as published by the Free Software Foundation; either\r
- * version 2.1 of the License, or (at your option) any later version.\r
- * See http://www.gnu.org/copyleft/lesser.html\r
- *\r
- * Do not remove this comment if you want to use the script!\r
- * Íå óäàëÿéòå äàííûé êîììåíòàðèé, åñëè âû õîòèòå èñïîëüçîâàòü ñêðèïò!\r
- *\r
- * This backend library also supports POST requests additionally to GET.\r
- *\r
- * @author Dmitry Koterov \r
- * @version 5.x $Id$\r
- */\r
-\r
-class JsHttpRequest\r
-{\r
- var $SCRIPT_ENCODING = "windows-1251";\r
- var $SCRIPT_DECODE_MODE = '';\r
- var $LOADER = null;\r
- var $ID = null; \r
- var $RESULT = null;\r
- \r
- // Internal; uniq value.\r
- var $_uniqHash;\r
- // Magic number for display_error checking.\r
- var $_magic = 14623;\r
- // Previous display_errors value.\r
- var $_prevDisplayErrors = null; \r
- // Internal: response content-type depending on loader type.\r
- var $_contentTypes = array(\r
- "script" => "text/javascript",\r
- "xml" => "text/plain", // In XMLHttpRequest mode we must return text/plain - stupid Opera 8.0. :(\r
- "form" => "text/html",\r
- "" => "text/plain", // for unknown loader\r
- );\r
- // Internal: conversion to UTF-8 JSON cancelled because of non-ascii key.\r
- var $_toUtfFailed = false;\r
- // Internal: list of characters 128...255 (for strpbrk() ASCII check).\r
- var $_nonAsciiChars = '';\r
- // Which Unicode conversion function is available?\r
- var $_unicodeConvMethod = null;\r
- // Emergency memory buffer to be freed on memory_limit error.\r
- var $_emergBuffer = null;\r
-\r
- \r
- /**\r
- * Constructor.\r
- * \r
- * Create new JsHttpRequest backend object and attach it\r
- * to script output buffer. As a result - script will always return\r
- * correct JavaScript code, even in case of fatal errors.\r
- *\r
- * QUERY_STRING is in form of: PHPSESSID=<sid>&a=aaa&b=bbb&JsHttpRequest=<id>-<loader>\r
- * where <id> is a request ID, <loader> is a loader name, <sid> - a session ID (if present), \r
- * PHPSESSID - session parameter name (by default = "PHPSESSID").\r
- * \r
- * If an object is created WITHOUT an active AJAX query, it is simply marked as\r
- * non-active. Use statuc method isActive() to check.\r
- */\r
- function JsHttpRequest($enc)\r
- {\r
- global $JsHttpRequest_Active;\r
- \r
- // To be on a safe side - do not allow to drop reference counter on ob processing.\r
- $GLOBALS['_RESULT'] =& $this->RESULT; \r
- \r
- // Parse QUERY_STRING.\r
- if (preg_match('/^(.*)(?:&|^)JsHttpRequest=(?:(\d+)-)?([^&]+)((?:&|$).*)$/s', @$_SERVER['QUERY_STRING'], $m)) {\r
- $this->ID = $m[2];\r
- $this->LOADER = strtolower($m[3]);\r
- $_SERVER['QUERY_STRING'] = preg_replace('/^&+|&+$/s', '', preg_replace('/(^|&)'.session_name().'=[^&]*&?/s', '&', $m[1] . $m[4]));\r
- unset(\r
- $_GET['JsHttpRequest'],\r
- $_REQUEST['JsHttpRequest'],\r
- $_GET[session_name()],\r
- $_POST[session_name()],\r
- $_REQUEST[session_name()]\r
- );\r
- // Detect Unicode conversion method.\r
- $this->_unicodeConvMethod = function_exists('mb_convert_encoding')? 'mb' : (function_exists('iconv')? 'iconv' : null);\r
- \r
- // Fill an emergency buffer. We erase it at the first line of OB processor\r
- // to free some memory. This memory may be used on memory_limit error.\r
- $this->_emergBuffer = str_repeat('a', 1024 * 200);\r
-\r
- // Intercept fatal errors via display_errors (seems it is the only way). \r
- $this->_uniqHash = md5('JsHttpRequest' . microtime() . getmypid());\r
- $this->_prevDisplayErrors = ini_get('display_errors');\r
- ini_set('display_errors', $this->_magic); //\r
- ini_set('error_prepend_string', $this->_uniqHash . ini_get('error_prepend_string'));\r
- ini_set('error_append_string', ini_get('error_append_string') . $this->_uniqHash);\r
-\r
- // Start OB handling early.\r
- ob_start(array(&$this, "_obHandler"));\r
- $JsHttpRequest_Active = true;\r
- \r
- // Set up the encoding.\r
- $this->setEncoding($enc);\r
- \r
- // Check if headers are already sent (see Content-Type library usage).\r
- // If true - generate a debug message and exit.\r
- $file = $line = null;\r
- $headersSent = version_compare(PHP_VERSION, "4.3.0") < 0? headers_sent() : headers_sent($file, $line);\r
- if ($headersSent) {\r
- trigger_error(\r
- "HTTP headers are already sent" . ($line !== null? " in $file on line $line" : " somewhere in the script") . ". "\r
- . "Possibly you have an extra space (or a newline) before the first line of the script or any library. "\r
- . "Please note that JsHttpRequest uses its own Content-Type header and fails if "\r
- . "this header cannot be set. See header() function documentation for more details",\r
- E_USER_ERROR\r
- );\r
- exit();\r
- }\r
- } else {\r
- $this->ID = 0;\r
- $this->LOADER = 'unknown';\r
- $JsHttpRequest_Active = false;\r
- }\r
- }\r
- \r
-\r
- /**\r
- * Static function.\r
- * Returns true if JsHttpRequest output processor is currently active.\r
- * \r
- * @return boolean True if the library is active, false otherwise.\r
- */\r
- function isActive()\r
- {\r
- return !empty($GLOBALS['JsHttpRequest_Active']);\r
- }\r
- \r
-\r
- /**\r
- * string getJsCode()\r
- * \r
- * Return JavaScript part of the library.\r
- */\r
- function getJsCode()\r
- {\r
- return file_get_contents(dirname(__FILE__) . '/JsHttpRequest.js');\r
- }\r
-\r
-\r
- /**\r
- * void setEncoding(string $encoding)\r
- * \r
- * Set an active script encoding & correct QUERY_STRING according to it.\r
- * Examples:\r
- * "windows-1251" - set plain encoding (non-windows characters, \r
- * e.g. hieroglyphs, are totally ignored)\r
- * "windows-1251 entities" - set windows encoding, BUT additionally replace:\r
- * "&" -> "&" \r
- * hieroglyph -> &#XXXX; entity\r
- */\r
- function setEncoding($enc)\r
- {\r
- // Parse an encoding.\r
- preg_match('/^(\S*)(?:\s+(\S*))$/', $enc, $p);\r
- $this->SCRIPT_ENCODING = strtolower(!empty($p[1])? $p[1] : $enc);\r
- $this->SCRIPT_DECODE_MODE = !empty($p[2])? $p[2] : '';\r
- // Manually parse QUERY_STRING because of damned Unicode's %uXXXX.\r
- $this->_correctSuperglobals();\r
- }\r
-\r
- \r
- /**\r
- * string quoteInput(string $input)\r
- * \r
- * Quote a string according to the input decoding mode.\r
- * If entities are used (see setEncoding()), no '&' character is quoted,\r
- * only '"', '>' and '<' (we presume that '&' is already quoted by\r
- * an input reader function).\r
- *\r
- * Use this function INSTEAD of htmlspecialchars() for $_GET data \r
- * in your scripts.\r
- */\r
- function quoteInput($s)\r
- {\r
- if ($this->SCRIPT_DECODE_MODE == 'entities')\r
- return str_replace(array('"', '<', '>'), array('"', '<', '>'), $s);\r
- else\r
- return htmlspecialchars($s);\r
- }\r
- \r
-\r
- /**\r
- * Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is \r
- * an analog of json_encode(), but it can work with a non-UTF8 input and does not \r
- * analyze the passed data. Output format must be fully JSON compatible.\r
- * \r
- * @param mixed $a Any structure to convert to JS.\r
- * @return string JavaScript equivalent structure.\r
- */\r
- function php2js($a=false)\r
- {\r
- if (is_null($a)) return 'null';\r
- if ($a === false) return 'false';\r
- if ($a === true) return 'true';\r
- if (is_scalar($a)) {\r
- if (is_float($a)) {\r
- // Always use "." for floats.\r
- $a = str_replace(",", ".", strval($a));\r
- }\r
- // All scalars are converted to strings to avoid indeterminism.\r
- // PHP's "1" and 1 are equal for all PHP operators, but \r
- // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,\r
- // we should get the same result in the JS frontend (string).\r
- // Character replacements for JSON.\r
- static $jsonReplaces = array(\r
- array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),\r
- array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"')\r
- );\r
- return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';\r
- }\r
- $isList = true;\r
- for ($i = 0, reset($a); $i < count($a); $i++, next($a)) {\r
- if (key($a) !== $i) { \r
- $isList = false; \r
- break; \r
- }\r
- }\r
- $result = array();\r
- if ($isList) {\r
- foreach ($a as $v) {\r
- $result[] = JsHttpRequest::php2js($v);\r
- }\r
- return '[ ' . join(', ', $result) . ' ]';\r
- } else {\r
- foreach ($a as $k => $v) {\r
- $result[] = JsHttpRequest::php2js($k) . ': ' . JsHttpRequest::php2js($v);\r
- }\r
- return '{ ' . join(', ', $result) . ' }';\r
- }\r
- }\r
- \r
- \r
- /**\r
- * Internal methods.\r
- */\r
-\r
- /**\r
- * Parse & decode QUERY_STRING.\r
- */\r
- function _correctSuperglobals()\r
- {\r
- // In case of FORM loader we may go to nirvana, everything is already parsed by PHP.\r
- if ($this->LOADER == 'form') return;\r
- \r
- // ATTENTION!!!\r
- // HTTP_RAW_POST_DATA is only accessible when Content-Type of POST request\r
- // is NOT default "application/x-www-form-urlencoded"!!!\r
- // Library frontend sets "application/octet-stream" for that purpose,\r
- // see JavaScript code. In PHP 5.2.2.HTTP_RAW_POST_DATA is not set sometimes; \r
- // in such cases - read the POST data manually from the STDIN stream.\r
- $rawPost = strcasecmp($_SERVER['REQUEST_METHOD'], 'POST') == 0? (isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : @file_get_contents("php://input")) : null;\r
- $source = array(\r
- '_GET' => !empty($_SERVER['QUERY_STRING'])? $_SERVER['QUERY_STRING'] : null, \r
- '_POST'=> $rawPost,\r
- );\r
- foreach ($source as $dst=>$src) {\r
- // First correct all 2-byte entities.\r
- $s = preg_replace('/%(?!5B)(?!5D)([0-9a-f]{2})/si', '%u00\\1', $src);\r
- // Now we can use standard parse_str() with no worry!\r
- $data = null;\r
- parse_str($s, $data);\r
- $GLOBALS[$dst] = $this->_ucs2EntitiesDecode($data);\r
- }\r
- $GLOBALS['HTTP_GET_VARS'] = $_GET; // deprecated vars\r
- $GLOBALS['HTTP_POST_VARS'] = $_POST;\r
- $_REQUEST = \r
- (isset($_COOKIE)? $_COOKIE : array()) + \r
- (isset($_POST)? $_POST : array()) + \r
- (isset($_GET)? $_GET : array());\r
- if (ini_get('register_globals')) {\r
- // TODO?\r
- }\r
- }\r
-\r
-\r
- /**\r
- * Called in case of error too!\r
- */\r
- function _obHandler($text)\r
- {\r
- unset($this->_emergBuffer); // free a piece of memory for memory_limit error\r
- unset($GLOBALS['JsHttpRequest_Active']);\r
- \r
- // Check for error & fetch a resulting data.\r
- if (preg_match("/{$this->_uniqHash}(.*?){$this->_uniqHash}/sx", $text, $m)) {\r
- if (!ini_get('display_errors') || (!$this->_prevDisplayErrors && ini_get('display_errors') == $this->_magic)) {\r
- // Display_errors:\r
- // 1. disabled manually after the library initialization, or\r
- // 2. was initially disabled and is not changed\r
- $text = str_replace($m[0], '', $text); // strip whole error message\r
- } else {\r
- $text = str_replace($this->_uniqHash, '', $text);\r
- }\r
- }\r
- if ($m && preg_match('/\bFatal error(<.*?>)?:/i', $m[1])) {\r
- // On fatal errors - force null result (generate 500 error).\r
- $this->RESULT = null;\r
- } else {\r
- // Make a resulting hash.\r
- if (!isset($this->RESULT)) {\r
- global $_RESULT;\r
- $this->RESULT = $_RESULT;\r
- }\r
- }\r
- \r
- $result = array(\r
- 'id' => $this->ID,\r
- 'js' => $this->RESULT,\r
- 'text' => $text,\r
- );\r
- $text = null;\r
- $encoding = $this->SCRIPT_ENCODING;\r
- $status = $this->RESULT !== null? 200 : 500;\r
-\r
- // Try to use very fast json_encode: 3-4 times faster than a manual encoding.\r
- if (function_exists('array_walk_recursive') && function_exists('json_encode') && $this->_unicodeConvMethod) {\r
- $this->_nonAsciiChars = join("", array_map('chr', range(128, 255)));\r
- $this->_toUtfFailed = false;\r
- $resultUtf8 = $result;\r
- array_walk_recursive($resultUtf8, array(&$this, '_toUtf8_callback'), $this->SCRIPT_ENCODING);\r
- if (!$this->_toUtfFailed) {\r
- // If some key contains non-ASCII character, convert everything manually.\r
- $text = json_encode($resultUtf8);\r
- $encoding = "UTF-8";\r
- }\r
- }\r
- \r
- // On failure, use manual encoding.\r
- if ($text === null) {\r
- $text = $this->php2js($result);\r
- }\r
-\r
- if ($this->LOADER != "xml") {\r
- // In non-XML mode we cannot use plain JSON. So - wrap with JS function call.\r
- // If top.JsHttpRequestGlobal is not defined, loading is aborted and \r
- // iframe is removed, so - do not call dataReady().\r
- $text = "" \r
- . ($this->LOADER == "form"? 'top && top.JsHttpRequestGlobal && top.JsHttpRequestGlobal' : 'JsHttpRequest') \r
- . ".dataReady(" . $text . ")\n"\r
- . "";\r
- if ($this->LOADER == "form") {\r
- $text = '<script type="text/javascript" language="JavaScript"><!--' . "\n$text" . '//--></script>';\r
- }\r
- \r
- // Always return 200 code in non-XML mode (else SCRIPT does not work in FF).\r
- // For XML mode, 500 code is okay.\r
- $status = 200;\r
- }\r
-\r
- // Status header. To be safe, display it only in error mode. In case of success \r
- // termination, do not modify the status (""HTTP/1.1 ..." header seems to be not\r
- // too cross-platform).\r
- if ($this->RESULT === null) {\r
- if (php_sapi_name() == "cgi") {\r
- header("Status: $status");\r
- } else {\r
- header("HTTP/1.1 $status");\r
- }\r
- }\r
-\r
- // In XMLHttpRequest mode we must return text/plain - damned stupid Opera 8.0. :(\r
- $ctype = !empty($this->_contentTypes[$this->LOADER])? $this->_contentTypes[$this->LOADER] : $this->_contentTypes[''];\r
- header("Content-type: $ctype; charset=$encoding");\r
-\r
- return $text;\r
- }\r
-\r
-\r
- /**\r
- * Internal function, used in array_walk_recursive() before json_encode() call.\r
- * If a key contains non-ASCII characters, this function sets $this->_toUtfFailed = true,\r
- * becaues array_walk_recursive() cannot modify array keys.\r
- */\r
- function _toUtf8_callback(&$v, $k, $fromEnc)\r
- {\r
- if ($v === null || is_bool($v)) return;\r
- if ($this->_toUtfFailed || !is_scalar($v) || strpbrk($k, $this->_nonAsciiChars) !== false) {\r
- $this->_toUtfFailed = true;\r
- } else {\r
- $v = $this->_unicodeConv($fromEnc, 'UTF-8', $v);\r
- }\r
- }\r
- \r
-\r
- /**\r
- * Decode all %uXXXX entities in string or array (recurrent).\r
- * String must not contain %XX entities - they are ignored!\r
- */\r
- function _ucs2EntitiesDecode($data)\r
- {\r
- if (is_array($data)) {\r
- $d = array();\r
- foreach ($data as $k=>$v) {\r
- $d[$this->_ucs2EntitiesDecode($k)] = $this->_ucs2EntitiesDecode($v);\r
- }\r
- return $d;\r
- } else {\r
- if (strpos($data, '%u') !== false) { // improve speed\r
- $data = preg_replace_callback('/%u([0-9A-F]{1,4})/si', array(&$this, '_ucs2EntitiesDecodeCallback'), $data);\r
- }\r
- return $data;\r
- }\r
- }\r
-\r
-\r
- /**\r
- * Decode one %uXXXX entity (RE callback).\r
- */\r
- function _ucs2EntitiesDecodeCallback($p)\r
- {\r
- $hex = $p[1];\r
- $dec = hexdec($hex);\r
- if ($dec === "38" && $this->SCRIPT_DECODE_MODE == 'entities') {\r
- // Process "&" separately in "entities" decode mode.\r
- $c = "&";\r
- } else {\r
- if ($this->_unicodeConvMethod) {\r
- $c = @$this->_unicodeConv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));\r
- } else {\r
- $c = $this->_decUcs2Decode($dec, $this->SCRIPT_ENCODING);\r
- }\r
- if (!strlen($c)) {\r
- if ($this->SCRIPT_DECODE_MODE == 'entities') {\r
- $c = '&#' . $dec . ';';\r
- } else {\r
- $c = '?';\r
- }\r
- }\r
- }\r
- return $c;\r
- }\r
-\r
-\r
- /**\r
- * Wrapper for iconv() or mb_convert_encoding() functions.\r
- * This function will generate fatal error if none of these functons available!\r
- * \r
- * @see iconv()\r
- */\r
- function _unicodeConv($fromEnc, $toEnc, $v)\r
- {\r
- if ($this->_unicodeConvMethod == 'iconv') {\r
- return iconv($fromEnc, $toEnc, $v);\r
- } \r
- return mb_convert_encoding($v, $toEnc, $fromEnc);\r
- }\r
-\r
-\r
- /**\r
- * If there is no ICONV, try to decode 1-byte characters manually\r
- * (for most popular charsets only).\r
- */\r
- \r
- /**\r
- * Convert from UCS-2BE decimal to $toEnc.\r
- */\r
- function _decUcs2Decode($code, $toEnc)\r
- {\r
- if ($code < 128) return chr($code);\r
- if (isset($this->_encTables[$toEnc])) {\r
- // TODO: possible speedup by using array_flip($this->_encTables) and later hash access in the constructor.\r
- $p = array_search($code, $this->_encTables[$toEnc]);\r
- if ($p !== false) return chr(128 + $p);\r
- }\r
- return "";\r
- }\r
- \r
-\r
- /**\r
- * UCS-2BE -> 1-byte encodings (from #128).\r
- */\r
- var $_encTables = array(\r
- 'windows-1251' => array(\r
- 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,\r
- 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,\r
- 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,\r
- 0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,\r
- 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,\r
- 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,\r
- 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,\r
- 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,\r
- 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,\r
- 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,\r
- 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,\r
- 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,\r
- 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,\r
- 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,\r
- 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,\r
- 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,\r
- ),\r
- 'koi8-r' => array(\r
- 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,\r
- 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,\r
- 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,\r
- 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,\r
- 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,\r
- 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255d, 0x255E,\r
- 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,\r
- 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,\r
- 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,\r
- 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043d, 0x043E,\r
- 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,\r
- 0x044C, 0x044B, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044A,\r
- 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,\r
- 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041d, 0x041E,\r
- 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,\r
- 0x042C, 0x042B, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042A \r
- ),\r
- );\r
-}\r
+++ /dev/null
-<?php\r
-require_once 'JsHttpRequest.php';\r
-require_once 'tinyimages.php';\r
-\r
-$JsHttpRequest =& new JsHttpRequest('windows-1251');\r
-\r
-if(!isset($_REQUEST['m'])) {\r
- $GLOBALS['_RESULT'] = array( 'error' => 'Íå çàäàí ìåòîä');\r
- exit();\r
-}\r
-list($module, $method) = explode('->',$_REQUEST['m']);\r
-if(empty($method)) {\r
- list($module, $method) = explode('-%3E',$_REQUEST['m']);\r
-}\r
-$method = 'ajax'.$method;\r
-\r
-$timgs = new tinyimages();\r
-\r
-$GLOBALS['_RESULT'] = $timgs->$method($_REQUEST);\r
-exit();
\ No newline at end of file
+++ /dev/null
-<?php\r
-//session_start();\r
-\r
-include 'tinyimages.php';\r
-\r
-$images = new tinyimages();\r
-$images->UploadFiles();\r
-?>
\ No newline at end of file
+++ /dev/null
-<?php\r
-class tinyimages {\r
- \r
- var $folder = '/media/upload/editor';\r
- \r
- function __construct() {\r
- define(DIR, $_SERVER['DOCUMENT_ROOT'].'/');\r
- \r
- // ATTENTION!\r
- // You need to check the session here, because methods of this class can be danger to security!\r
- //if(!isset($_SESSION['user']['type'])) return false;\r
- \r
- $this->folder = $this->folder;\r
- $this->restrict = $this->folder;\r
- }\r
- \r
- private function leftPanel() {\r
- $ret = array();\r
- if ($handle = opendir ( DIR.$this->folder )) {\r
- while (false !== ($file = readdir ( $handle ))) {\r
- if (is_dir(DIR.$this->folder.'/'.$file) && $file != '.') {\r
- $ret[] = array(\r
- 'path' => $file,\r
- 'name' => $file\r
- );\r
- }\r
- }\r
- closedir ($handle);\r
- }\r
- \r
- if(count($ret) > 0) {\r
- $return = '';\r
- foreach ($ret as $val) {\r
- if($val['path'] == '.thumbs') continue;\r
- if($val['path'] == '..') {\r
- $act = '';\r
- if($this->folder == $this->restrict) continue;\r
- $path = substr($this->folder,0,strrpos($this->folder,'/'));\r
- if($path == '') continue;\r
- }\r
- else { $path = $this->folder.'/'.$val['path']; $act = 'onclick="activateDir(this, \''.$path.'\'); return false;"'; }\r
- $return .= '<div class="folder"><a href="#" '.$act.' ondblclick="changeFolder(\''.$path.'\'); return false;">'.$val['name'].'</a></div>';\r
- }\r
- \r
- $name = '';\r
- \r
- return $return;\r
- }\r
- }\r
- \r
- private function addressBar() {\r
- $way = explode('/',str_replace($this->restrict, '', $this->folder));\r
- $way = array_filter($way);\r
- $ret = $link = '';\r
- foreach ($way as $val) {\r
- $link = $link.'/'.$val;\r
- $ret .= '<a href="#" onclick="changeFolder(\''.$this->restrict.$link.'\'); return false;">'.$val.'</a>';\r
- }\r
- return '<a href="#" onclick="changeFolder(\''.$this->restrict.'\'); return false;" class="first"><img src="images/folder.gif" width="16" height="16" /></a>'.$ret;\r
- }\r
- \r
- private function mainField() {\r
- $ret = array();\r
- if ($handle = opendir ( DIR.$this->folder )) {\r
- while (false !== ($file = readdir ( $handle ))) {\r
- if (is_file(DIR.$this->folder.'/'.$file)) {\r
- \r
- list($width, $height, $type, $attr) = getimagesize(DIR.$this->folder.'/'.$file);\r
- \r
- $size = number_format((filesize(DIR.$this->folder.'/'.$file)/1024),2,',',' ').' KB';\r
- \r
- $ret[] = array(\r
- 'src' => $this->folder.'/.thumbs/100x100_'.$file,\r
- 'attr' => $attr,\r
- 'path' => $this->folder.'/'.$file,\r
- 'name' => $file,\r
- 'width' => $width,\r
- 'height'=> $height,\r
- 'size' => $size\r
- );\r
- }\r
- }\r
- closedir ($handle);\r
- }\r
- \r
- \r
- if(count($ret) > 0) {\r
- $return = '';\r
- foreach ($ret as $val) {\r
- $width_for_insert = $val['width']>500?500:$val['width'];\r
- $return .= '<div class="item" ondblclick="addImage(this,\''.$val['path'].'\','.$width_for_insert.');" onclick="activateItem(this,\''.$val['path'].'\');"><img src="'.$val['src'].'" width="100" height="100" alt=" " /><div class="labels">'.$val['width'].'x'.$val['height'].'</div><div class="labels">'.$val['size'].'</div></div>';\r
- }\r
- \r
- $name = '';\r
- \r
- return $return.'<div style="clear:both;"></div>';\r
- }\r
- }\r
- \r
- function ajaxChangeDir($input) {\r
- \r
- $our_folder = $this->folder;\r
- \r
- if($input['uri'] != '') {\r
- $this->folder = $input['uri'];\r
- \r
- $realpath1 = realpath(DIR.$our_folder);\r
- $realpath2 = realpath(DIR.$input['uri']);\r
- \r
- $strlen1 = strlen($realpath1);\r
- $strlen2 = strlen($realpath2);\r
- if($strlen1 > $strlen2) { page404(); exit(); }\r
- for($i=0;$i<$strlen1;$i++) {\r
- if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
- }\r
- }elseif(isset($_SESSION['tiny_folder'])) {\r
- if($_SESSION['tiny_folder'] != '') {\r
- $this->folder = $_SESSION['tiny_folder'];\r
- }\r
- }\r
- \r
- \r
- $_SESSION['tiny_folder'] = $this->folder;\r
- return array(\r
- 'leftpanel' => $this->leftPanel(),\r
- 'addressbar' => $this->addressBar(),\r
- 'mainfield' => $this->mainField(),\r
- 'uri' => $this->folder\r
- );\r
- }\r
- \r
- \r
- \r
- function ajaxDelDir($input) {\r
- $our_folder = $this->folder;\r
- \r
- if($input['dir'] != '') {\r
- $this->folder = $input['dir'];\r
- \r
- $realpath1 = realpath(DIR.$our_folder);\r
- $realpath2 = realpath(DIR.$input['dir']);\r
- \r
- $strlen1 = strlen($realpath1);\r
- $strlen2 = strlen($realpath2);\r
- if($strlen1 > $strlen2) { page404(); exit(); }\r
- for($i=0;$i<$strlen1;$i++) {\r
- if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
- }\r
- } else { page404(); exit(); }\r
- \r
- if ($handle = opendir ( DIR.$input['dir'] )) {\r
- while (false !== ($file = readdir ( $handle ))) {\r
- if (is_file(DIR.$input['dir'].'/'.$file)) {\r
- \r
- $thumb_info = pathinfo(DIR.$input['dir'].'/'.$file);\r
- $thumb = $thumb_info['dirname'].'/.thumbs/100x100_'.$thumb_info['basename'];\r
- unlink($thumb);\r
- unlink(DIR.$input['dir'].'/'.$file);\r
- }\r
- }\r
- closedir ($handle);\r
- }\r
- \r
- if ($handle = opendir ( DIR.$input['dir'].'/.thumbs' )) {\r
- while (false !== ($file = readdir ( $handle ))) {\r
- if (is_file(DIR.$input['dir'].'/.thumbs'.'/'.$file)) {\r
- \r
- $thumb_info = pathinfo(DIR.$input['dir'].'/.thumbs'.'/'.$file);\r
- $thumb = $thumb_info['dirname'].'/.thumbs/100x100_'.$thumb_info['basename'];\r
- unlink($thumb);\r
- unlink(DIR.$input['dir'].'/.thumbs'.'/'.$file);\r
- }\r
- }\r
- closedir ($handle);\r
- }\r
- rmdir(DIR.$input['dir'].'/.thumbs');\r
- \r
- if(!rmdir(DIR.$input['dir'])) {\r
- if($input['lng']=='ru') {\r
- return array('error'=>'Îøèáêà óäàëåíèÿ ïàïêè, âîçìîæíî îíà ñîäåðæèò íå óäàëåííûå êàòàëîãè!');\r
- } else {\r
- return array('error'=>'Error delete a folder, perhaps it has not deleted directories!');\r
- }\r
- } else return array();\r
- \r
- }\r
- \r
- \r
- function ajaxDelFile($input) {\r
- \r
- $error = array();\r
- \r
- $input['src'] = array_filter($input['src']);\r
- \r
- $input['src'] = array_unique($input['src']);\r
- \r
- foreach ($input['src'] as $key=>$val) {\r
- if(!is_numeric($key)) continue;\r
- $our_folder = $this->folder;\r
- $pi = pathinfo($val);\r
- $input['uri'] = $pi['dirname'];\r
- \r
- if($input['uri'] != '') {\r
- $this->folder = $input['uri'];\r
- \r
- $realpath1 = realpath(DIR.$our_folder);\r
- $realpath2 = realpath(DIR.$input['uri']);\r
- \r
- $strlen1 = strlen($realpath1);\r
- $strlen2 = strlen($realpath2);\r
- if($strlen1 > $strlen2) { page404(); exit(); }\r
- for($i=0;$i<$strlen1;$i++) {\r
- if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
- }\r
- } else { page404(); exit(); }\r
- \r
- if(is_file(DIR.$input['src'][$key])) {\r
- $thumb_info = pathinfo(DIR.$input['src'][$key]);\r
- $thumb = $thumb_info['dirname'].'/.thumbs/100x100_'.$thumb_info['basename'];\r
- unlink($thumb);\r
- unlink(DIR.$input['src'][$key]);\r
- } else {\r
- if($input['lng']=='ru') { \r
- $error[] = 'Ôàéë '.$val.' íå íàéäåí!';\r
- } else {\r
- $error[] = 'File '.$val.' not found!';\r
- }\r
- }\r
- \r
- }\r
- \r
- if(count($error) > 0) return array('error'=>implode(', ',$error));\r
- else return array();\r
- }\r
- \r
- \r
- function UploadFiles() {\r
- $our_folder = $this->folder;\r
- \r
- if($_GET['uri'] != '') {\r
- $this->folder = $_GET['uri'];\r
- \r
- $realpath1 = realpath(DIR.$our_folder);\r
- $realpath2 = realpath(DIR.$_GET['uri']);\r
- \r
- $strlen1 = strlen($realpath1);\r
- $strlen2 = strlen($realpath2);\r
- \r
- if($strlen1 > $strlen2) { page404(); exit(); }\r
- for($i=0;$i<$strlen1;$i++) {\r
- if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
- }\r
- }\r
- \r
- $result = array();\r
-\r
- if (isset($_FILES['photoupload'])) {\r
- $file = $_FILES['photoupload']['tmp_name'];\r
- $error = false;\r
- $size = false;\r
-\r
- if (!is_uploaded_file($file) || ($_FILES['photoupload']['size'] > 2 * 1024 * 1024) ) {\r
- if($_GET['lng']=='ru') {\r
- $error = 'Ïîæàëóéñòà, çàãðóæàéòå ôàéëû íå áîëåå 2Ìá!';\r
- } else {\r
- $error = 'Please do not upload files over 2Mb!';\r
- }\r
- } else\r
- if (!$error && !($size = @getimagesize($file) ) ) {\r
- if($_GET['lng']=='ru') {\r
- $error = 'Îøèáêà, íå âåðíûé òèï ôàéëà';\r
- } else {\r
- $error = 'Error, unsupported type of file';\r
- }\r
- } else\r
- if (!$error && !in_array($size[2], array(1, 2, 3, 7, 8) ) ) {\r
- if($_GET['lng']=='ru') {\r
- $error = 'Îøèáêà òèïà ôàéëà, ðåêîìåíäóåòñÿ çàãðóæàòü ôàéëû JPEG';\r
- } else {\r
- $error = 'Error type of file, recommend upload JPEG files';\r
- }\r
- } else\r
- if (!$error && ($size[0] < 5) || ($size[1] < 5)) {\r
- if($_GET['lng']=='ru') {\r
- $error = 'Ïîæàëóéñòà, çàãðóæàéòå êàðòèíêè ðàçìåðîì áîëåå 5px.';\r
- } else {\r
- $error = 'Please upload pictures larger than 5px.';\r
- }\r
- }\r
- if ($error) {\r
- $result['result'] = 'failed';\r
- $result['error'] = $error;\r
- }\r
- else {\r
- $ext = substr($_FILES['photoupload']['name'],strrpos($_FILES['photoupload']['name'],'.')+1);\r
- $name = md5_file($_FILES['photoupload']['tmp_name']);\r
- $source = DIR.$this->folder.'/'.$name.'.'.$ext;\r
- \r
- if(!copy($_FILES['photoupload']['tmp_name'], $source)) {\r
- $result['result'] = 'error';\r
- if($_GET['lng']=='ru') {\r
- $result['error'] = 'Îøèáêà ïðè êîïèðîâàíèè ôàéëà!';\r
- } else {\r
- $result['error'] = 'Failed to copy a file!';\r
- }\r
- } else {\r
- \r
- if(!file_exists(DIR.$this->folder.'/.thumbs')) mkdir(DIR.$this->folder.'/.thumbs');\r
- $thumb = DIR.$this->folder.'/.thumbs/100x100_'.$name.'.'.$ext;\r
- \r
- //$image = new files('tinyimages');\r
- $this->Resize($source,$thumb,100,100,'back-ffffff');\r
- \r
- $result['result'] = 'success';\r
- if($_GET['lng']=='ru') {\r
- $result['size'] = "Çàãðóæåíî èçîáðàæåíèå ({$size['mime']}) ðàçìåðîì {$size[0]}px/{$size[1]}px.";\r
- } else {\r
- $result['size'] = "Uploaded image ({$size['mime']}) size {$size[0]}px/{$size[1]}px.";\r
- }\r
- }\r
- }\r
- }\r
- else {\r
- $result['result'] = 'error';\r
- if($_GET['lng']=='ru') {\r
- $result['error'] = 'Íåò ôàéëà èëè âíóòðåííÿÿ îøèáêà!';\r
- } else {\r
- $result['error'] = 'No file or an internal error!';\r
- }\r
- }\r
- if (!headers_sent() ) {\r
- header('Content-type: application/json');\r
- }\r
- \r
- foreach ($result as $key=>$val) {
- $return[$key] = iconv("windows-1251", "utf-8", $val);
- }
- \r
- \r
- header("Content-Type: text/plain; charset=UTF-8");\r
- echo json_encode($return);\r
- exit();\r
- }\r
- \r
- function ajaxMakeFolder($input) {\r
- \r
- if($input['lng']=='ru') {\r
- if(trim($input['name']) == '') return array('error' => 'Íå çàäàíî èìÿ');\r
- } else {\r
- if(trim($input['name']) == '') return array('error' => 'Not a name');\r
- }\r
- \r
- if($input['uri'] != '') {\r
- $this->folder = $input['uri'];\r
- \r
- $realpath1 = realpath(DIR.$our_folder);\r
- $realpath2 = realpath(DIR.$input['uri']);\r
- \r
- $strlen1 = strlen($realpath1);\r
- $strlen2 = strlen($realpath2);\r
- \r
- if($strlen1 > $strlen2) { page404(); exit(); }\r
- for($i=0;$i<$strlen1;$i++) {\r
- if($realpath1[$i] != $realpath2[$i]) { page404(); exit(); }\r
- }\r
- }\r
- \r
- if(mkdir(DIR.$this->folder.'/'.$input['name'])) { return array(); }\r
- else {\r
- if($input['lng']=='ru') {\r
- array('error' => 'Íå óäàëîñü ñîçäàòü ïàïêó');\r
- } else {\r
- array('error' => 'Unable to create a folder');\r
- }\r
- }\r
- }\r
- \r
- \r
- function Resize($filename, $dest, $width, $height, $pictype = "") {\r
- $format = strtolower(substr(strrchr($filename,"."),1));\r
- switch($format)\r
- {\r
- case 'gif' :\r
- $type ="gif";\r
- $img = ImageCreateFromGif($filename);\r
- break;\r
- case 'png' :\r
- $type ="png";\r
- $img = ImageCreateFromPng($filename);\r
- break;\r
- case 'jpg' :\r
- $type ="jpg";\r
- $img = ImageCreateFromJpeg($filename);\r
- break;\r
- case 'jpeg' :\r
- $type ="jpg";\r
- $img = ImageCreateFromJpeg($filename);\r
- break;\r
- default :\r
- return false;\r
- break;\r
- }\r
-\r
- list($org_width, $org_height) = getimagesize($filename);\r
- $xoffset = 0;\r
- $yoffset = 0;\r
- if ($pictype == "thumb") // To minimize destortion\r
- {\r
- if ($org_width / $width > $org_height/ $height)\r
- {\r
- $xtmp = $org_width;\r
- $xratio = 1-((($org_width/$org_height)-($width/$height))/2);\r
- $org_width = $org_width * $xratio;\r
- $xoffset = ($xtmp - $org_width)/2;\r
- }\r
- elseif ($org_height/ $height > $org_width / $width)\r
- {\r
- $ytmp = $org_height;\r
- $yratio = 1-((($width/$height)-($org_width/$org_height))/2);\r
- $org_height = $org_height * $yratio;\r
- $yoffset = ($ytmp - $org_height)/2;\r
- }\r
- //Added this else part -------------\r
- } elseif(substr($pictype,0,4) == "back") {\r
- $xtmp = $org_width/$width;\r
- $new_width = $width;\r
- $new_height = $org_height/$xtmp;\r
- if ($new_height > $org_height && $new_width > $org_width) {\r
- $new_height = $org_height;\r
- $new_width = $org_width;\r
- } elseif ($new_height > $height){\r
- $ytmp = $org_height/$height;\r
- $new_height = $height;\r
- $new_width = $org_width/$ytmp;\r
- }\r
- $width_d = round($new_width)<$width?$width:round($new_width);\r
- $height_d = round($new_height)<$height?$height:round($new_height);\r
- \r
- $width = round($new_width);\r
- $height = round($new_height);\r
- \r
- $width_diff = $width_d - $width;\r
- $height_diff = $height_d - $height;\r
- } else {\r
- $xtmp = $org_width/$width;\r
- $new_width = $width;\r
- $new_height = $org_height/$xtmp;\r
- if ($new_height > $height){\r
- $ytmp = $org_height/$height;\r
- $new_height = $height;\r
- $new_width = $org_width/$ytmp;\r
- }\r
- $width = round($new_width);\r
- $height = round($new_height);\r
- }\r
-\r
- if(substr($pictype,0,4) == "back") {\r
- $img_n=imagecreatetruecolor ($width+$width_diff, $height+$height_diff);\r
- $r = hexdec(substr($pictype,5,2));\r
- $g = hexdec(substr($pictype,7,2));\r
- $b = hexdec(substr($pictype,9,2));\r
- $back = imagecolorallocate($img_n, $r, $g, $b);\r
- imagefill($img_n, 0, 0, $back);\r
- imagecopyresampled($img_n, $img, round($width_diff/2), round($height_diff/2), $xoffset, $yoffset, $width, $height, $org_width, $org_height);\r
- } else {\r
- $img_n=imagecreatetruecolor ($width, $height);\r
- imagecopyresampled($img_n, $img, 0, 0, $xoffset, $yoffset, $width, $height, $org_width, $org_height);\r
- }\r
-\r
- if($type=="gif")\r
- {\r
- imagegif($img_n, $dest);\r
- }\r
- elseif($type=="jpg")\r
- {\r
- imagejpeg($img_n, $dest, 100);\r
- }\r
- elseif($type=="png")\r
- {\r
- imagepng($img_n, $dest);\r
- }\r
- elseif($type=="bmp")\r
- {\r
- imagewbmp($img_n, $dest);\r
- }\r
- return true;\r
- }\r
-}\r
-\r
-?>
\ No newline at end of file
+++ /dev/null
-(function(){var DOM=tinymce.DOM,Element=tinymce.dom.Element,Event=tinymce.dom.Event,each=tinymce.each,is=tinymce.is;tinymce.create('tinymce.plugins.InlinePopups',{init:function(ed,url){ed.onBeforeRenderUI.add(function(){ed.windowManager=new tinymce.InlineWindowManager(ed);DOM.loadCSS(url+'/skins/'+(ed.settings.inlinepopups_skin||'clearlooks2')+"/window.css");});},getInfo:function(){return{longname:'InlinePopups',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager',{InlineWindowManager:function(ed){var t=this;t.parent(ed);t.zIndex=300000;t.count=0;},open:function(f,p){var t=this,id,opt='',ed=t.editor,dw=0,dh=0,vp,po,mdf,clf,we,w,u;f=f||{};p=p||{};if(!f.inline)return t.parent(f,p);if(!f.type)t.bookmark=ed.selection.getBookmark('simple');id=DOM.uniqueId();vp=DOM.getViewPort();f.width=parseInt(f.width||320);f.height=parseInt(f.height||240)+(tinymce.isIE?8:0);f.min_width=parseInt(f.min_width||150);f.min_height=parseInt(f.min_height||100);f.max_width=parseInt(f.max_width||2000);f.max_height=parseInt(f.max_height||2000);f.left=f.left||Math.round(Math.max(vp.x,vp.x+(vp.w/ 2.0) - (f.width /2.0)));f.top=f.top||Math.round(Math.max(vp.y,vp.y+(vp.h/ 2.0) - (f.height /2.0)));f.movable=f.resizable=true;p.mce_width=f.width;p.mce_height=f.height;p.mce_inline=true;p.mce_window_id=id;p.mce_auto_focus=f.auto_focus;t.features=f;t.params=p;t.onOpen.dispatch(t,f,p);if(f.type){opt+=' mceModal';if(f.type)opt+=' mce'+f.type.substring(0,1).toUpperCase()+f.type.substring(1);f.resizable=false;}if(f.statusbar)opt+=' mceStatusbar';if(f.resizable)opt+=' mceResizable';if(f.minimizable)opt+=' mceMinimizable';if(f.maximizable)opt+=' mceMaximizable';if(f.movable)opt+=' mceMovable';t._addAll(DOM.doc.body,['div',{id:id,'class':ed.settings.inlinepopups_skin||'clearlooks2',style:'width:100px;height:100px'},['div',{id:id+'_wrapper','class':'mceWrapper'+opt},['div',{id:id+'_top','class':'mceTop'},['div',{'class':'mceLeft'}],['div',{'class':'mceCenter'}],['div',{'class':'mceRight'}],['span',{id:id+'_title'},f.title||'']],['div',{id:id+'_middle','class':'mceMiddle'},['div',{id:id+'_left','class':'mceLeft'}],['span',{id:id+'_content'}],['div',{id:id+'_right','class':'mceRight'}]],['div',{id:id+'_bottom','class':'mceBottom'},['div',{'class':'mceLeft'}],['div',{'class':'mceCenter'}],['div',{'class':'mceRight'}],['span',{id:id+'_status'},'Content']],['a',{'class':'mceMove',tabindex:'-1',href:'javascript:;'}],['a',{'class':'mceMin',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceMax',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceMed',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{'class':'mceClose',tabindex:'-1',href:'javascript:;',onmousedown:'return false;'}],['a',{id:id+'_resize_n','class':'mceResize mceResizeN',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_s','class':'mceResize mceResizeS',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_w','class':'mceResize mceResizeW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_e','class':'mceResize mceResizeE',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_nw','class':'mceResize mceResizeNW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_ne','class':'mceResize mceResizeNE',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_sw','class':'mceResize mceResizeSW',tabindex:'-1',href:'javascript:;'}],['a',{id:id+'_resize_se','class':'mceResize mceResizeSE',tabindex:'-1',href:'javascript:;'}]]]);DOM.setStyles(id,{top:-10000,left:-10000});if(tinymce.isGecko)DOM.setStyle(id,'overflow','auto');if(!f.type){dw+=DOM.get(id+'_left').clientWidth;dw+=DOM.get(id+'_right').clientWidth;dh+=DOM.get(id+'_top').clientHeight;dh+=DOM.get(id+'_bottom').clientHeight;}DOM.setStyles(id,{top:f.top,left:f.left,width:f.width+dw,height:f.height+dh});u=f.url||f.file;if(u){if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);}if(!f.type){DOM.add(id+'_content','iframe',{id:id+'_ifr',src:'javascript:""',frameBorder:0,style:'border:0;width:10px;height:10px'});DOM.setStyles(id+'_ifr',{width:f.width,height:f.height});DOM.setAttrib(id+'_ifr','src',u);}else{DOM.add(id+'_wrapper','a',{id:id+'_ok','class':'mceButton mceOk',href:'javascript:;',onmousedown:'return false;'},'Ok');if(f.type=='confirm')DOM.add(id+'_wrapper','a',{'class':'mceButton mceCancel',href:'javascript:;',onmousedown:'return false;'},'Cancel');DOM.add(id+'_middle','div',{'class':'mceIcon'});DOM.setHTML(id+'_content',f.content.replace('\n','<br />'));}mdf=Event.add(id,'mousedown',function(e){var n=e.target,w,vp;w=t.windows[id];t.focus(id);if(n.nodeName=='A'||n.nodeName=='a'){if(n.className=='mceMax'){w.oldPos=w.element.getXY();w.oldSize=w.element.getSize();vp=DOM.getViewPort();vp.w-=2;vp.h-=2;w.element.moveTo(vp.x,vp.y);w.element.resizeTo(vp.w,vp.h);DOM.setStyles(id+'_ifr',{width:vp.w-w.deltaWidth,height:vp.h-w.deltaHeight});DOM.addClass(id+'_wrapper','mceMaximized');}else if(n.className=='mceMed'){w.element.moveTo(w.oldPos.x,w.oldPos.y);w.element.resizeTo(w.oldSize.w,w.oldSize.h);w.iframeElement.resizeTo(w.oldSize.w-w.deltaWidth,w.oldSize.h-w.deltaHeight);DOM.removeClass(id+'_wrapper','mceMaximized');}else if(n.className=='mceMove')return t._startDrag(id,e,n.className);else if(DOM.hasClass(n,'mceResize'))return t._startDrag(id,e,n.className.substring(13));}});clf=Event.add(id,'click',function(e){var n=e.target;t.focus(id);if(n.nodeName=='A'||n.nodeName=='a'){switch(n.className){case'mceClose':t.close(null,id);return Event.cancel(e);case'mceButton mceOk':case'mceButton mceCancel':f.button_func(n.className=='mceButton mceOk');return Event.cancel(e);}}});t.windows=t.windows||{};w=t.windows[id]={id:id,mousedown_func:mdf,click_func:clf,element:new Element(id,{blocker:1,container:ed.getContainer()}),iframeElement:new Element(id+'_ifr'),features:f,deltaWidth:dw,deltaHeight:dh};w.iframeElement.on('focus',function(){t.focus(id);});if(t.count==0&&t.editor.getParam('dialog_type','modal')=='modal'){DOM.add(DOM.doc.body,'div',{id:'mceModalBlocker','class':(t.editor.settings.inlinepopups_skin||'clearlooks2')+'_modalBlocker',style:{left:vp.x,top:vp.y,zIndex:t.zIndex-1}});DOM.show('mceModalBlocker');}else DOM.setStyle('mceModalBlocker','z-index',t.zIndex-1);if(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel))DOM.setStyles('mceModalBlocker',{position:'absolute',width:vp.w-2,height:vp.h-2});t.focus(id);t._fixIELayout(id,1);if(DOM.get(id+'_ok'))DOM.get(id+'_ok').focus();t.count++;return w;},focus:function(id){var t=this,w=t.windows[id];w.zIndex=this.zIndex++;w.element.setStyle('zIndex',w.zIndex);w.element.update();id=id+'_wrapper';DOM.removeClass(t.lastId,'mceFocus');DOM.addClass(id,'mceFocus');t.lastId=id;},_addAll:function(te,ne){var i,n,t=this,dom=tinymce.DOM;if(is(ne,'string'))te.appendChild(dom.doc.createTextNode(ne));else if(ne.length){te=te.appendChild(dom.create(ne[0],ne[1]));for(i=2;i<ne.length;i++)t._addAll(te,ne[i]);}},_startDrag:function(id,se,ac){var t=this,mu,mm,d=DOM.doc,eb,w=t.windows[id],we=w.element,sp=we.getXY(),p,sz,ph,cp,vp,sx,sy,sex,sey,dx,dy,dw,dh;cp={x:0,y:0};vp=DOM.getViewPort();vp.w-=2;vp.h-=2;sex=se.screenX;sey=se.screenY;dx=dy=dw=dh=0;mu=Event.add(d,'mouseup',function(e){Event.remove(d,'mouseup',mu);Event.remove(d,'mousemove',mm);if(eb)eb.remove();we.moveBy(dx,dy);we.resizeBy(dw,dh);sz=we.getSize();DOM.setStyles(id+'_ifr',{width:sz.w-w.deltaWidth,height:sz.h-w.deltaHeight});t._fixIELayout(id,1);return Event.cancel(e);});if(ac!='Move')startMove();function startMove(){if(eb)return;t._fixIELayout(id,0);DOM.add(d.body,'div',{id:'mceEventBlocker','class':'mceEventBlocker '+(t.editor.settings.inlinepopups_skin||'clearlooks2'),style:{left:vp.x,top:vp.y,zIndex:t.zIndex+1}});if(tinymce.isIE6||(tinymce.isIE&&!DOM.boxModel))DOM.setStyles('mceEventBlocker',{position:'absolute',width:vp.w-2,height:vp.h-2});eb=new Element('mceEventBlocker');eb.update();p=we.getXY();sz=we.getSize();sx=cp.x+p.x-vp.x;sy=cp.y+p.y-vp.y;DOM.add(eb.get(),'div',{id:'mcePlaceHolder','class':'mcePlaceHolder',style:{left:sx,top:sy,width:sz.w,height:sz.h}});ph=new Element('mcePlaceHolder');};mm=Event.add(d,'mousemove',function(e){var x,y,v;startMove();x=e.screenX-sex;y=e.screenY-sey;switch(ac){case'ResizeW':dx=x;dw=0-x;break;case'ResizeE':dw=x;break;case'ResizeN':case'ResizeNW':case'ResizeNE':if(ac=="ResizeNW"){dx=x;dw=0-x;}else if(ac=="ResizeNE")dw=x;dy=y;dh=0-y;break;case'ResizeS':case'ResizeSW':case'ResizeSE':if(ac=="ResizeSW"){dx=x;dw=0-x;}else if(ac=="ResizeSE")dw=x;dh=y;break;case'mceMove':dx=x;dy=y;break;}if(dw<(v=w.features.min_width-sz.w)){if(dx!==0)dx+=dw-v;dw=v;}if(dh<(v=w.features.min_height-sz.h)){if(dy!==0)dy+=dh-v;dh=v;}dw=Math.min(dw,w.features.max_width-sz.w);dh=Math.min(dh,w.features.max_height-sz.h);dx=Math.max(dx,vp.x-(sx+vp.x));dy=Math.max(dy,vp.y-(sy+vp.y));dx=Math.min(dx,(vp.w+vp.x)-(sx+sz.w+vp.x));dy=Math.min(dy,(vp.h+vp.y)-(sy+sz.h+vp.y));if(dx+dy!==0){if(sx+dx<0)dx=0;if(sy+dy<0)dy=0;ph.moveTo(sx+dx,sy+dy);}if(dw+dh!==0)ph.resizeTo(sz.w+dw,sz.h+dh);return Event.cancel(e);});return Event.cancel(se);},resizeBy:function(dw,dh,id){var w=this.windows[id];if(w){w.element.resizeBy(dw,dh);w.iframeElement.resizeBy(dw,dh);}},close:function(win,id){var t=this,w,d=DOM.doc,ix=0,fw,id;id=t._findId(id||win);t.count--;if(t.count==0)DOM.remove('mceModalBlocker');if(!id&&win){t.parent(win);return;}if(w=t.windows[id]){t.onClose.dispatch(t);Event.remove(d,'mousedown',w.mousedownFunc);Event.remove(d,'click',w.clickFunc);Event.clear(id);Event.clear(id+'_ifr');DOM.setAttrib(id+'_ifr','src','javascript:""');w.element.remove();delete t.windows[id];each(t.windows,function(w){if(w.zIndex>ix){fw=w;ix=w.zIndex;}});if(fw)t.focus(fw.id);}},setTitle:function(w,ti){var e;w=this._findId(w);if(e=DOM.get(w+'_title'))e.innerHTML=DOM.encode(ti);},alert:function(txt,cb,s){var t=this,w;w=t.open({title:t,type:'alert',button_func:function(s){if(cb)cb.call(s||t,s);t.close(null,w.id);},content:DOM.encode(t.editor.getLang(txt,txt)),inline:1,width:400,height:130});},confirm:function(txt,cb,s){var t=this,w;w=t.open({title:t,type:'confirm',button_func:function(s){if(cb)cb.call(s||t,s);t.close(null,w.id);},content:DOM.encode(t.editor.getLang(txt,txt)),inline:1,width:400,height:130});},_findId:function(w){var t=this;if(typeof(w)=='string')return w;each(t.windows,function(wo){var ifr=DOM.get(wo.id+'_ifr');if(ifr&&w==ifr.contentWindow){w=wo.id;return false;}});return w;},_fixIELayout:function(id,s){var w,img;if(!tinymce.isIE6)return;each(['n','s','w','e','nw','ne','sw','se'],function(v){var e=DOM.get(id+'_resize_'+v);DOM.setStyles(e,{width:s?e.clientWidth:'',height:s?e.clientHeight:'',cursor:DOM.getStyle(e,'cursor',1)});DOM.setStyle(id+"_bottom",'bottom','-1px');e=0;});if(w=this.windows[id]){w.element.hide();w.element.show();each(DOM.select('div,a',id),function(e,i){if(e.currentStyle.backgroundImage!='none'){img=new Image();img.src=e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,'$1');}});DOM.get(id).style.filter='';}}});tinymce.PluginManager.add('inlinepopups',tinymce.plugins.InlinePopups);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 898 2008-07-12 15:01:39Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;\r
-\r
- tinymce.create('tinymce.plugins.InlinePopups', {\r
- init : function(ed, url) {\r
- // Replace window manager\r
- ed.onBeforeRenderUI.add(function() {\r
- ed.windowManager = new tinymce.InlineWindowManager(ed);\r
- DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css");\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'InlinePopups',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', {\r
- InlineWindowManager : function(ed) {\r
- var t = this;\r
-\r
- t.parent(ed);\r
- t.zIndex = 300000;\r
- t.count = 0;\r
- },\r
-\r
- open : function(f, p) {\r
- var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u;\r
-\r
- f = f || {};\r
- p = p || {};\r
-\r
- // Run native windows\r
- if (!f.inline)\r
- return t.parent(f, p);\r
-\r
- // Only store selection if the type is a normal window\r
- if (!f.type)\r
- t.bookmark = ed.selection.getBookmark('simple');\r
-\r
- id = DOM.uniqueId();\r
- vp = DOM.getViewPort();\r
- f.width = parseInt(f.width || 320);\r
- f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0);\r
- f.min_width = parseInt(f.min_width || 150);\r
- f.min_height = parseInt(f.min_height || 100);\r
- f.max_width = parseInt(f.max_width || 2000);\r
- f.max_height = parseInt(f.max_height || 2000);\r
- f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0)));\r
- f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0)));\r
- f.movable = f.resizable = true;\r
- p.mce_width = f.width;\r
- p.mce_height = f.height;\r
- p.mce_inline = true;\r
- p.mce_window_id = id;\r
- p.mce_auto_focus = f.auto_focus;\r
-\r
- // Transpose\r
-// po = DOM.getPos(ed.getContainer());\r
-// f.left -= po.x;\r
-// f.top -= po.y;\r
-\r
- t.features = f;\r
- t.params = p;\r
- t.onOpen.dispatch(t, f, p);\r
-\r
- if (f.type) {\r
- opt += ' mceModal';\r
-\r
- if (f.type)\r
- opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1);\r
-\r
- f.resizable = false;\r
- }\r
-\r
- if (f.statusbar)\r
- opt += ' mceStatusbar';\r
-\r
- if (f.resizable)\r
- opt += ' mceResizable';\r
-\r
- if (f.minimizable)\r
- opt += ' mceMinimizable';\r
-\r
- if (f.maximizable)\r
- opt += ' mceMaximizable';\r
-\r
- if (f.movable)\r
- opt += ' mceMovable';\r
-\r
- // Create DOM objects\r
- t._addAll(DOM.doc.body, \r
- ['div', {id : id, 'class' : ed.settings.inlinepopups_skin || 'clearlooks2', style : 'width:100px;height:100px'}, \r
- ['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},\r
- ['div', {id : id + '_top', 'class' : 'mceTop'}, \r
- ['div', {'class' : 'mceLeft'}],\r
- ['div', {'class' : 'mceCenter'}],\r
- ['div', {'class' : 'mceRight'}],\r
- ['span', {id : id + '_title'}, f.title || '']\r
- ],\r
-\r
- ['div', {id : id + '_middle', 'class' : 'mceMiddle'}, \r
- ['div', {id : id + '_left', 'class' : 'mceLeft'}],\r
- ['span', {id : id + '_content'}],\r
- ['div', {id : id + '_right', 'class' : 'mceRight'}]\r
- ],\r
-\r
- ['div', {id : id + '_bottom', 'class' : 'mceBottom'},\r
- ['div', {'class' : 'mceLeft'}],\r
- ['div', {'class' : 'mceCenter'}],\r
- ['div', {'class' : 'mceRight'}],\r
- ['span', {id : id + '_status'}, 'Content']\r
- ],\r
-\r
- ['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
- ['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
- ['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
- ['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],\r
- ['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}],\r
- ['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}]\r
- ]\r
- ]\r
- );\r
-\r
- DOM.setStyles(id, {top : -10000, left : -10000});\r
-\r
- // Fix gecko rendering bug, where the editors iframe messed with window contents\r
- if (tinymce.isGecko)\r
- DOM.setStyle(id, 'overflow', 'auto');\r
-\r
- // Measure borders\r
- if (!f.type) {\r
- dw += DOM.get(id + '_left').clientWidth;\r
- dw += DOM.get(id + '_right').clientWidth;\r
- dh += DOM.get(id + '_top').clientHeight;\r
- dh += DOM.get(id + '_bottom').clientHeight;\r
- }\r
-\r
- // Resize window\r
- DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});\r
-\r
- u = f.url || f.file;\r
- if (u) {\r
- if (tinymce.relaxedDomain)\r
- u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;\r
-\r
- u = tinymce._addVer(u);\r
- }\r
-\r
- if (!f.type) {\r
- DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});\r
- DOM.setStyles(id + '_ifr', {width : f.width, height : f.height});\r
- DOM.setAttrib(id + '_ifr', 'src', u);\r
- } else {\r
- DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok');\r
-\r
- if (f.type == 'confirm')\r
- DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel');\r
-\r
- DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'});\r
- DOM.setHTML(id + '_content', f.content.replace('\n', '<br />'));\r
- }\r
-\r
- // Register events\r
- mdf = Event.add(id, 'mousedown', function(e) {\r
- var n = e.target, w, vp;\r
-\r
- w = t.windows[id];\r
- t.focus(id);\r
-\r
- if (n.nodeName == 'A' || n.nodeName == 'a') {\r
- if (n.className == 'mceMax') {\r
- w.oldPos = w.element.getXY();\r
- w.oldSize = w.element.getSize();\r
-\r
- vp = DOM.getViewPort();\r
-\r
- // Reduce viewport size to avoid scrollbars\r
- vp.w -= 2;\r
- vp.h -= 2;\r
-\r
- w.element.moveTo(vp.x, vp.y);\r
- w.element.resizeTo(vp.w, vp.h);\r
- DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight});\r
- DOM.addClass(id + '_wrapper', 'mceMaximized');\r
- } else if (n.className == 'mceMed') {\r
- // Reset to old size\r
- w.element.moveTo(w.oldPos.x, w.oldPos.y);\r
- w.element.resizeTo(w.oldSize.w, w.oldSize.h);\r
- w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight);\r
-\r
- DOM.removeClass(id + '_wrapper', 'mceMaximized');\r
- } else if (n.className == 'mceMove')\r
- return t._startDrag(id, e, n.className);\r
- else if (DOM.hasClass(n, 'mceResize'))\r
- return t._startDrag(id, e, n.className.substring(13));\r
- }\r
- });\r
-\r
- clf = Event.add(id, 'click', function(e) {\r
- var n = e.target;\r
-\r
- t.focus(id);\r
-\r
- if (n.nodeName == 'A' || n.nodeName == 'a') {\r
- switch (n.className) {\r
- case 'mceClose':\r
- t.close(null, id);\r
- return Event.cancel(e);\r
-\r
- case 'mceButton mceOk':\r
- case 'mceButton mceCancel':\r
- f.button_func(n.className == 'mceButton mceOk');\r
- return Event.cancel(e);\r
- }\r
- }\r
- });\r
-\r
- // Add window\r
- t.windows = t.windows || {};\r
- w = t.windows[id] = {\r
- id : id,\r
- mousedown_func : mdf,\r
- click_func : clf,\r
- element : new Element(id, {blocker : 1, container : ed.getContainer()}),\r
- iframeElement : new Element(id + '_ifr'),\r
- features : f,\r
- deltaWidth : dw,\r
- deltaHeight : dh\r
- };\r
-\r
- w.iframeElement.on('focus', function() {\r
- t.focus(id);\r
- });\r
-\r
- // Setup blocker\r
- if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {\r
- DOM.add(DOM.doc.body, 'div', {\r
- id : 'mceModalBlocker',\r
- 'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',\r
- style : {left : vp.x, top : vp.y, zIndex : t.zIndex - 1}\r
- });\r
-\r
- DOM.show('mceModalBlocker'); // Reduces flicker in IE\r
- } else\r
- DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);\r
-\r
- if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))\r
- DOM.setStyles('mceModalBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});\r
-\r
- t.focus(id);\r
- t._fixIELayout(id, 1);\r
-\r
- // Focus ok button\r
- if (DOM.get(id + '_ok'))\r
- DOM.get(id + '_ok').focus();\r
-\r
- t.count++;\r
-\r
- return w;\r
- },\r
-\r
- focus : function(id) {\r
- var t = this, w = t.windows[id];\r
-\r
- w.zIndex = this.zIndex++;\r
- w.element.setStyle('zIndex', w.zIndex);\r
- w.element.update();\r
-\r
- id = id + '_wrapper';\r
- DOM.removeClass(t.lastId, 'mceFocus');\r
- DOM.addClass(id, 'mceFocus');\r
- t.lastId = id;\r
- },\r
-\r
- _addAll : function(te, ne) {\r
- var i, n, t = this, dom = tinymce.DOM;\r
-\r
- if (is(ne, 'string'))\r
- te.appendChild(dom.doc.createTextNode(ne));\r
- else if (ne.length) {\r
- te = te.appendChild(dom.create(ne[0], ne[1]));\r
-\r
- for (i=2; i<ne.length; i++)\r
- t._addAll(te, ne[i]);\r
- }\r
- },\r
-\r
- _startDrag : function(id, se, ac) {\r
- var t = this, mu, mm, d = DOM.doc, eb, w = t.windows[id], we = w.element, sp = we.getXY(), p, sz, ph, cp, vp, sx, sy, sex, sey, dx, dy, dw, dh;\r
-\r
- // Get positons and sizes\r
-// cp = DOM.getPos(t.editor.getContainer());\r
- cp = {x : 0, y : 0};\r
- vp = DOM.getViewPort();\r
-\r
- // Reduce viewport size to avoid scrollbars while dragging\r
- vp.w -= 2;\r
- vp.h -= 2;\r
-\r
- sex = se.screenX;\r
- sey = se.screenY;\r
- dx = dy = dw = dh = 0;\r
-\r
- // Handle mouse up\r
- mu = Event.add(d, 'mouseup', function(e) {\r
- Event.remove(d, 'mouseup', mu);\r
- Event.remove(d, 'mousemove', mm);\r
-\r
- if (eb)\r
- eb.remove();\r
-\r
- we.moveBy(dx, dy);\r
- we.resizeBy(dw, dh);\r
- sz = we.getSize();\r
- DOM.setStyles(id + '_ifr', {width : sz.w - w.deltaWidth, height : sz.h - w.deltaHeight});\r
- t._fixIELayout(id, 1);\r
-\r
- return Event.cancel(e);\r
- });\r
-\r
- if (ac != 'Move')\r
- startMove();\r
-\r
- function startMove() {\r
- if (eb)\r
- return;\r
-\r
- t._fixIELayout(id, 0);\r
-\r
- // Setup event blocker\r
- DOM.add(d.body, 'div', {\r
- id : 'mceEventBlocker',\r
- 'class' : 'mceEventBlocker ' + (t.editor.settings.inlinepopups_skin || 'clearlooks2'),\r
- style : {left : vp.x, top : vp.y, zIndex : t.zIndex + 1}\r
- });\r
-\r
- if (tinymce.isIE6 || (tinymce.isIE && !DOM.boxModel))\r
- DOM.setStyles('mceEventBlocker', {position : 'absolute', width : vp.w - 2, height : vp.h - 2});\r
-\r
- eb = new Element('mceEventBlocker');\r
- eb.update();\r
-\r
- // Setup placeholder\r
- p = we.getXY();\r
- sz = we.getSize();\r
- sx = cp.x + p.x - vp.x;\r
- sy = cp.y + p.y - vp.y;\r
- DOM.add(eb.get(), 'div', {id : 'mcePlaceHolder', 'class' : 'mcePlaceHolder', style : {left : sx, top : sy, width : sz.w, height : sz.h}});\r
- ph = new Element('mcePlaceHolder');\r
- };\r
-\r
- // Handle mouse move/drag\r
- mm = Event.add(d, 'mousemove', function(e) {\r
- var x, y, v;\r
-\r
- startMove();\r
-\r
- x = e.screenX - sex;\r
- y = e.screenY - sey;\r
-\r
- switch (ac) {\r
- case 'ResizeW':\r
- dx = x;\r
- dw = 0 - x;\r
- break;\r
-\r
- case 'ResizeE':\r
- dw = x;\r
- break;\r
-\r
- case 'ResizeN':\r
- case 'ResizeNW':\r
- case 'ResizeNE':\r
- if (ac == "ResizeNW") {\r
- dx = x;\r
- dw = 0 - x;\r
- } else if (ac == "ResizeNE")\r
- dw = x;\r
-\r
- dy = y;\r
- dh = 0 - y;\r
- break;\r
-\r
- case 'ResizeS':\r
- case 'ResizeSW':\r
- case 'ResizeSE':\r
- if (ac == "ResizeSW") {\r
- dx = x;\r
- dw = 0 - x;\r
- } else if (ac == "ResizeSE")\r
- dw = x;\r
-\r
- dh = y;\r
- break;\r
-\r
- case 'mceMove':\r
- dx = x;\r
- dy = y;\r
- break;\r
- }\r
-\r
- // Boundary check\r
- if (dw < (v = w.features.min_width - sz.w)) {\r
- if (dx !== 0)\r
- dx += dw - v;\r
-\r
- dw = v;\r
- }\r
- \r
- if (dh < (v = w.features.min_height - sz.h)) {\r
- if (dy !== 0)\r
- dy += dh - v;\r
-\r
- dh = v;\r
- }\r
-\r
- dw = Math.min(dw, w.features.max_width - sz.w);\r
- dh = Math.min(dh, w.features.max_height - sz.h);\r
- dx = Math.max(dx, vp.x - (sx + vp.x));\r
- dy = Math.max(dy, vp.y - (sy + vp.y));\r
- dx = Math.min(dx, (vp.w + vp.x) - (sx + sz.w + vp.x));\r
- dy = Math.min(dy, (vp.h + vp.y) - (sy + sz.h + vp.y));\r
-\r
- // Move if needed\r
- if (dx + dy !== 0) {\r
- if (sx + dx < 0)\r
- dx = 0;\r
- \r
- if (sy + dy < 0)\r
- dy = 0;\r
-\r
- ph.moveTo(sx + dx, sy + dy);\r
- }\r
-\r
- // Resize if needed\r
- if (dw + dh !== 0)\r
- ph.resizeTo(sz.w + dw, sz.h + dh);\r
-\r
- return Event.cancel(e);\r
- });\r
-\r
- return Event.cancel(se);\r
- },\r
-\r
- resizeBy : function(dw, dh, id) {\r
- var w = this.windows[id];\r
-\r
- if (w) {\r
- w.element.resizeBy(dw, dh);\r
- w.iframeElement.resizeBy(dw, dh);\r
- }\r
- },\r
-\r
- close : function(win, id) {\r
- var t = this, w, d = DOM.doc, ix = 0, fw, id;\r
-\r
- id = t._findId(id || win);\r
-\r
- t.count--;\r
-\r
- if (t.count == 0)\r
- DOM.remove('mceModalBlocker');\r
-\r
- // Probably not inline\r
- if (!id && win) {\r
- t.parent(win);\r
- return;\r
- }\r
-\r
- if (w = t.windows[id]) {\r
- t.onClose.dispatch(t);\r
- Event.remove(d, 'mousedown', w.mousedownFunc);\r
- Event.remove(d, 'click', w.clickFunc);\r
- Event.clear(id);\r
- Event.clear(id + '_ifr');\r
-\r
- DOM.setAttrib(id + '_ifr', 'src', 'javascript:""'); // Prevent leak\r
- w.element.remove();\r
- delete t.windows[id];\r
-\r
- // Find front most window and focus that\r
- each (t.windows, function(w) {\r
- if (w.zIndex > ix) {\r
- fw = w;\r
- ix = w.zIndex;\r
- }\r
- });\r
-\r
- if (fw)\r
- t.focus(fw.id);\r
- }\r
- },\r
-\r
- setTitle : function(w, ti) {\r
- var e;\r
-\r
- w = this._findId(w);\r
-\r
- if (e = DOM.get(w + '_title'))\r
- e.innerHTML = DOM.encode(ti);\r
- },\r
-\r
- alert : function(txt, cb, s) {\r
- var t = this, w;\r
-\r
- w = t.open({\r
- title : t,\r
- type : 'alert',\r
- button_func : function(s) {\r
- if (cb)\r
- cb.call(s || t, s);\r
-\r
- t.close(null, w.id);\r
- },\r
- content : DOM.encode(t.editor.getLang(txt, txt)),\r
- inline : 1,\r
- width : 400,\r
- height : 130\r
- });\r
- },\r
-\r
- confirm : function(txt, cb, s) {\r
- var t = this, w;\r
-\r
- w = t.open({\r
- title : t,\r
- type : 'confirm',\r
- button_func : function(s) {\r
- if (cb)\r
- cb.call(s || t, s);\r
-\r
- t.close(null, w.id);\r
- },\r
- content : DOM.encode(t.editor.getLang(txt, txt)),\r
- inline : 1,\r
- width : 400,\r
- height : 130\r
- });\r
- },\r
-\r
- // Internal functions\r
-\r
- _findId : function(w) {\r
- var t = this;\r
-\r
- if (typeof(w) == 'string')\r
- return w;\r
-\r
- each(t.windows, function(wo) {\r
- var ifr = DOM.get(wo.id + '_ifr');\r
-\r
- if (ifr && w == ifr.contentWindow) {\r
- w = wo.id;\r
- return false;\r
- }\r
- });\r
-\r
- return w;\r
- },\r
-\r
- _fixIELayout : function(id, s) {\r
- var w, img;\r
-\r
- if (!tinymce.isIE6)\r
- return;\r
-\r
- // Fixes the bug where hover flickers and does odd things in IE6\r
- each(['n','s','w','e','nw','ne','sw','se'], function(v) {\r
- var e = DOM.get(id + '_resize_' + v);\r
-\r
- DOM.setStyles(e, {\r
- width : s ? e.clientWidth : '',\r
- height : s ? e.clientHeight : '',\r
- cursor : DOM.getStyle(e, 'cursor', 1)\r
- });\r
-\r
- DOM.setStyle(id + "_bottom", 'bottom', '-1px');\r
-\r
- e = 0;\r
- });\r
-\r
- // Fixes graphics glitch\r
- if (w = this.windows[id]) {\r
- // Fixes rendering bug after resize\r
- w.element.hide();\r
- w.element.show();\r
-\r
- // Forced a repaint of the window\r
- //DOM.get(id).style.filter = '';\r
-\r
- // IE has a bug where images used in CSS won't get loaded\r
- // sometimes when the cache in the browser is disabled\r
- // This fix tries to solve it by loading the images using the image object\r
- each(DOM.select('div,a', id), function(e, i) {\r
- if (e.currentStyle.backgroundImage != 'none') {\r
- img = new Image();\r
- img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1');\r
- }\r
- });\r
-\r
- DOM.get(id).style.filter = '';\r
- }\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups);\r
-})();\r
-\r
+++ /dev/null
-/* Clearlooks 2 */
-
-/* Reset */
-.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
-
-/* General */
-.clearlooks2 {position:absolute; direction:ltr}
-.clearlooks2 .mceWrapper {position:static}
-.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
-.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; filter:alpha(opacity=50)}
-.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; filter:alpha(opacity=60); display:none}
-
-/* Top */
-.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}
-.clearlooks2 .mceTop .mceLeft {width:6px; background:url(img/corners.gif)}
-.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:23px; background:url(img/horizontal.gif) 12px 0; clip:rect(auto auto auto 12px)}
-.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:23px; background:url(img/corners.gif) -12px 0}
-.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:23px; font-weight:bold}
-.clearlooks2 .mceFocus .mceTop .mceLeft {background:url(img/corners.gif) -6px 0}
-.clearlooks2 .mceFocus .mceTop .mceCenter {background:url(img/horizontal.gif) 0 -23px}
-.clearlooks2 .mceFocus .mceTop .mceRight {background:url(img/corners.gif) -18px 0}
-.clearlooks2 .mceFocus .mceTop span {color:#FFF}
-
-/* Middle */
-.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0}
-.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(23px auto auto auto)}
-.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background:url(img/vertical.gif) -5px 0}
-.clearlooks2 .mceMiddle span {top:23px; left:5px; width:100%; height:100%; background:#FFF}
-.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:url(img/vertical.gif)}
-
-/* Bottom */
-.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px}
-.clearlooks2 .mceBottom {left:0; bottom:0; width:100%}
-.clearlooks2 .mceBottom div {top:0}
-.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px}
-.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:url(img/horizontal.gif) 0 -46px}
-.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0}
-.clearlooks2 .mceBottom span {display:none}
-.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:23px}
-.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0}
-.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px}
-.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0}
-.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:23px}
-
-/* Actions */
-.clearlooks2 a {width:29px; height:16px; top:3px;}
-.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0}
-.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0}
-.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0}
-.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0}
-.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px}
-.clearlooks2 .mceMovable .mceMove {display:block}
-.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px -16px}
-.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 -16px}
-.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px -16px}
-.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px -16px}
-.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
-.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
-.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 -32px}
-.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px -32px}
-.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px -32px}
-
-/* Resize */
-.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:5px; height:5px; background:url(img/horizontal.gif) no-repeat 0 -75px}
-.clearlooks2 .mceResizable .mceResize {display:block}
-.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none}
-.clearlooks2 .mceMinimizable .mceMin {display:block}
-.clearlooks2 .mceMaximizable .mceMax {display:block}
-.clearlooks2 .mceMaximized .mceMed {display:block}
-.clearlooks2 .mceMaximized .mceMax {display:none}
-.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize}
-.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize}
-.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize}
-.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;}
-.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize}
-.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize}
-.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize}
-.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize}
-
-/* Alert/Confirm */
-.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0}
-.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px}
-.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal}
-.clearlooks2 a:hover {font-weight:bold;}
-.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5}
-.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px}
-.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)}
-.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px}
-.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto}
-.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)}
\ No newline at end of file
+++ /dev/null
-<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -->\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<title>Template for dialogs</title>\r
-<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css" />\r
-</head>\r
-<body>\r
-\r
-<div class="mceEditor">\r
- <div class="clearlooks2" style="width:400px; height:100px; left:10px;">\r
- <div class="mceWrapper">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Blured</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:420px;">\r
- <div class="mceWrapper mceMovable mceFocus">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Focused</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:120px;">\r
- <div class="mceWrapper mceMovable mceFocus mceStatusbar">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:120px;">\r
- <div class="mceWrapper mceMovable mceFocus mceStatusbar mceResizable">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar, Resizable</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:230px;">\r
- <div class="mceWrapper mceMovable mceFocus mceResizable mceMaximizable">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Resizable, Maximizable</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:230px;">\r
- <div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximizable">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Blurred, Maximizable, Statusbar, Resizable</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:10px; top:340px;">\r
- <div class="mceWrapper mceMovable mceFocus mceResizable mceMaximized mceMinimizable mceMaximizable">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Maximized, Maximizable, Minimizable</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:100px; left:420px; top:340px;">\r
- <div class="mceWrapper mceMovable mceStatusbar mceResizable mceMaximized mceMinimizable mceMaximizable">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Blured</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>Content</span>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Statusbar text.</span>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceMin" href="#"></a>\r
- <a class="mceMax" href="#"></a>\r
- <a class="mceMed" href="#"></a>\r
- <a class="mceClose" href="#"></a>\r
- <a class="mceResize mceResizeN" href="#"></a>\r
- <a class="mceResize mceResizeS" href="#"></a>\r
- <a class="mceResize mceResizeW" href="#"></a>\r
- <a class="mceResize mceResizeE" href="#"></a>\r
- <a class="mceResize mceResizeNW" href="#"></a>\r
- <a class="mceResize mceResizeNE" href="#"></a>\r
- <a class="mceResize mceResizeSW" href="#"></a>\r
- <a class="mceResize mceResizeSE" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:130px; left:10px; top:450px;">\r
- <div class="mceWrapper mceMovable mceFocus mceModal mceAlert">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Alert</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- </span>\r
- <div class="mceRight"></div>\r
- <div class="mceIcon"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceButton mceOk" href="#">Ok</a>\r
- <a class="mceClose" href="#"></a>\r
- </div>\r
- </div>\r
-\r
- <div class="clearlooks2" style="width:400px; height:130px; left:420px; top:450px;">\r
- <div class="mceWrapper mceMovable mceFocus mceModal mceConfirm">\r
- <div class="mceTop">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- <span>Confirm</span>\r
- </div>\r
-\r
- <div class="mceMiddle">\r
- <div class="mceLeft"></div>\r
- <span>\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- This is a very long error message. This is a very long error message.\r
- </span>\r
- <div class="mceRight"></div>\r
- <div class="mceIcon"></div>\r
- </div>\r
-\r
- <div class="mceBottom">\r
- <div class="mceLeft"></div>\r
- <div class="mceCenter"></div>\r
- <div class="mceRight"></div>\r
- </div>\r
-\r
- <a class="mceMove" href="#"></a>\r
- <a class="mceButton mceOk" href="#">Ok</a>\r
- <a class="mceButton mceCancel" href="#">Cancel</a>\r
- <a class="mceClose" href="#"></a>\r
- </div>\r
- </div>\r
-</div>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.InsertDateTime',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertDate',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_dateFormat",ed.getLang('insertdatetime.date_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addCommand('mceInsertTime',function(){var str=t._getDateTime(new Date(),ed.getParam("plugin_insertdate_timeFormat",ed.getLang('insertdatetime.time_fmt')));ed.execCommand('mceInsertContent',false,str);});ed.addButton('insertdate',{title:'insertdatetime.insertdate_desc',cmd:'mceInsertDate'});ed.addButton('inserttime',{title:'insertdatetime.inserttime_desc',cmd:'mceInsertTime'});},getInfo:function(){return{longname:'Insert date/time',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_getDateTime:function(d,fmt){var ed=this.editor;function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value;}return value;};fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('insertdatetime',tinymce.plugins.InsertDateTime);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.InsertDateTime', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- ed.addCommand('mceInsertDate', function() {\r
- var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_dateFormat", ed.getLang('insertdatetime.date_fmt')));\r
-\r
- ed.execCommand('mceInsertContent', false, str);\r
- });\r
-\r
- ed.addCommand('mceInsertTime', function() {\r
- var str = t._getDateTime(new Date(), ed.getParam("plugin_insertdate_timeFormat", ed.getLang('insertdatetime.time_fmt')));\r
-\r
- ed.execCommand('mceInsertContent', false, str);\r
- });\r
-\r
- ed.addButton('insertdate', {title : 'insertdatetime.insertdate_desc', cmd : 'mceInsertDate'});\r
- ed.addButton('inserttime', {title : 'insertdatetime.inserttime_desc', cmd : 'mceInsertTime'});\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Insert date/time',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _getDateTime : function(d, fmt) {\r
- var ed = this.editor;\r
-\r
- function addZeros(value, len) {\r
- value = "" + value;\r
-\r
- if (value.length < len) {\r
- for (var i=0; i<(len-value.length); i++)\r
- value = "0" + value;\r
- }\r
-\r
- return value;\r
- };\r
-\r
- fmt = fmt.replace("%D", "%m/%d/%y");\r
- fmt = fmt.replace("%r", "%I:%M:%S %p");\r
- fmt = fmt.replace("%Y", "" + d.getFullYear());\r
- fmt = fmt.replace("%y", "" + d.getYear());\r
- fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
- fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
- fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
- fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
- fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
- fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
- fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
- fmt = fmt.replace("%B", "" + ed.getLang("insertdatetime.months_long").split(',')[d.getMonth()]);\r
- fmt = fmt.replace("%b", "" + ed.getLang("insertdatetime.months_short").split(',')[d.getMonth()]);\r
- fmt = fmt.replace("%A", "" + ed.getLang("insertdatetime.day_long").split(',')[d.getDay()]);\r
- fmt = fmt.replace("%a", "" + ed.getLang("insertdatetime.day_short").split(',')[d.getDay()]);\r
- fmt = fmt.replace("%%", "%");\r
-\r
- return fmt;\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('insertdatetime', tinymce.plugins.InsertDateTime);\r
-})();
\ No newline at end of file
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Layer',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceInsertLayer',t._insertLayer,t);ed.addCommand('mceMoveForward',function(){t._move(1);});ed.addCommand('mceMoveBackward',function(){t._move(-1);});ed.addCommand('mceMakeAbsolute',function(){t._toggleAbsolute();});ed.addButton('moveforward',{title:'layer.forward_desc',cmd:'mceMoveForward'});ed.addButton('movebackward',{title:'layer.backward_desc',cmd:'mceMoveBackward'});ed.addButton('absolute',{title:'layer.absolute_desc',cmd:'mceMakeAbsolute'});ed.addButton('insertlayer',{title:'layer.insertlayer_desc',cmd:'mceInsertLayer'});ed.onInit.add(function(){if(tinymce.isIE)ed.getDoc().execCommand('2D-Position',false,true);});ed.onNodeChange.add(t._nodeChange,t);ed.onVisualAid.add(t._visualAid,t);},getInfo:function(){return{longname:'Layer',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var le,p;le=this._getParentLayer(n);p=ed.dom.getParent(n,'DIV,P,IMG');if(!p){cm.setDisabled('absolute',1);cm.setDisabled('moveforward',1);cm.setDisabled('movebackward',1);}else{cm.setDisabled('absolute',0);cm.setDisabled('moveforward',!le);cm.setDisabled('movebackward',!le);cm.setActive('absolute',le&&le.style.position.toLowerCase()=="absolute");}},_visualAid:function(ed,e,s){var dom=ed.dom;tinymce.each(dom.select('div,p',e),function(e){if(/^(absolute|relative|static)$/i.test(e.style.position)){if(s)dom.addClass(e,'mceItemVisualAid');else dom.removeClass(e,'mceItemVisualAid');}});},_move:function(d){var ed=this.editor,i,z=[],le=this._getParentLayer(ed.selection.getNode()),ci=-1,fi=-1,nl;nl=[];tinymce.walk(ed.getBody(),function(n){if(n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position))nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){z[i]=nl[i].style.zIndex?parseInt(nl[i].style.zIndex):0;if(ci<0&&nl[i]==le)ci=i;}if(d<0){for(i=0;i<z.length;i++){if(z[i]<z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else{if(z[ci]>0)nl[ci].style.zIndex=z[ci]-1;}}else{for(i=0;i<z.length;i++){if(z[i]>z[ci]){fi=i;break;}}if(fi>-1){nl[ci].style.zIndex=z[fi];nl[fi].style.zIndex=z[ci];}else nl[ci].style.zIndex=z[ci]+1;}ed.execCommand('mceRepaint');},_getParentLayer:function(n){return this.editor.dom.getParent(n,function(n){return n.nodeType==1&&/^(absolute|relative|static)$/i.test(n.style.position);});},_insertLayer:function(){var ed=this.editor,p=ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(),'*'));ed.dom.add(ed.getBody(),'div',{style:{position:'absolute',left:p.x,top:(p.y>20?p.y:20),width:100,height:100},'class':'mceItemVisualAid'},ed.selection.getContent()||ed.getLang('layer.content'));},_toggleAbsolute:function(){var ed=this.editor,le=this._getParentLayer(ed.selection.getNode());if(!le)le=ed.dom.getParent(ed.selection.getNode(),'DIV,P,IMG');if(le){if(le.style.position.toLowerCase()=="absolute"){ed.dom.setStyles(le,{position:'',left:'',top:'',width:'',height:''});ed.dom.removeClass(le,'mceItemVisualAid');}else{if(le.style.left=="")le.style.left=20+'px';if(le.style.top=="")le.style.top=20+'px';if(le.style.width=="")le.style.width=le.width?(le.width+'px'):'100px';if(le.style.height=="")le.style.height=le.height?(le.height+'px'):'100px';le.style.position="absolute";ed.addVisual(ed.getBody());}ed.execCommand('mceRepaint');ed.nodeChanged();}}});tinymce.PluginManager.add('layer',tinymce.plugins.Layer);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 652 2008-02-29 13:09:46Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.Layer', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceInsertLayer', t._insertLayer, t);\r
-\r
- ed.addCommand('mceMoveForward', function() {\r
- t._move(1);\r
- });\r
-\r
- ed.addCommand('mceMoveBackward', function() {\r
- t._move(-1);\r
- });\r
-\r
- ed.addCommand('mceMakeAbsolute', function() {\r
- t._toggleAbsolute();\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});\r
- ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});\r
- ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});\r
- ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});\r
-\r
- ed.onInit.add(function() {\r
- if (tinymce.isIE)\r
- ed.getDoc().execCommand('2D-Position', false, true);\r
- });\r
-\r
- ed.onNodeChange.add(t._nodeChange, t);\r
- ed.onVisualAid.add(t._visualAid, t);\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Layer',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _nodeChange : function(ed, cm, n) {\r
- var le, p;\r
-\r
- le = this._getParentLayer(n);\r
- p = ed.dom.getParent(n, 'DIV,P,IMG');\r
-\r
- if (!p) {\r
- cm.setDisabled('absolute', 1);\r
- cm.setDisabled('moveforward', 1);\r
- cm.setDisabled('movebackward', 1);\r
- } else {\r
- cm.setDisabled('absolute', 0);\r
- cm.setDisabled('moveforward', !le);\r
- cm.setDisabled('movebackward', !le);\r
- cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");\r
- }\r
- },\r
-\r
- // Private methods\r
-\r
- _visualAid : function(ed, e, s) {\r
- var dom = ed.dom;\r
-\r
- tinymce.each(dom.select('div,p', e), function(e) {\r
- if (/^(absolute|relative|static)$/i.test(e.style.position)) {\r
- if (s)\r
- dom.addClass(e, 'mceItemVisualAid');\r
- else\r
- dom.removeClass(e, 'mceItemVisualAid'); \r
- }\r
- });\r
- },\r
-\r
- _move : function(d) {\r
- var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl;\r
-\r
- nl = [];\r
- tinymce.walk(ed.getBody(), function(n) {\r
- if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position))\r
- nl.push(n); \r
- }, 'childNodes');\r
-\r
- // Find z-indexes\r
- for (i=0; i<nl.length; i++) {\r
- z[i] = nl[i].style.zIndex ? parseInt(nl[i].style.zIndex) : 0;\r
-\r
- if (ci < 0 && nl[i] == le)\r
- ci = i;\r
- }\r
-\r
- if (d < 0) {\r
- // Move back\r
-\r
- // Try find a lower one\r
- for (i=0; i<z.length; i++) {\r
- if (z[i] < z[ci]) {\r
- fi = i;\r
- break;\r
- }\r
- }\r
-\r
- if (fi > -1) {\r
- nl[ci].style.zIndex = z[fi];\r
- nl[fi].style.zIndex = z[ci];\r
- } else {\r
- if (z[ci] > 0)\r
- nl[ci].style.zIndex = z[ci] - 1;\r
- }\r
- } else {\r
- // Move forward\r
-\r
- // Try find a higher one\r
- for (i=0; i<z.length; i++) {\r
- if (z[i] > z[ci]) {\r
- fi = i;\r
- break;\r
- }\r
- }\r
-\r
- if (fi > -1) {\r
- nl[ci].style.zIndex = z[fi];\r
- nl[fi].style.zIndex = z[ci];\r
- } else\r
- nl[ci].style.zIndex = z[ci] + 1;\r
- }\r
-\r
- ed.execCommand('mceRepaint');\r
- },\r
-\r
- _getParentLayer : function(n) {\r
- return this.editor.dom.getParent(n, function(n) {\r
- return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position);\r
- });\r
- },\r
-\r
- _insertLayer : function() {\r
- var ed = this.editor, p = ed.dom.getPos(ed.dom.getParent(ed.selection.getNode(), '*'));\r
-\r
- ed.dom.add(ed.getBody(), 'div', {\r
- style : {\r
- position : 'absolute',\r
- left : p.x,\r
- top : (p.y > 20 ? p.y : 20),\r
- width : 100,\r
- height : 100\r
- },\r
- 'class' : 'mceItemVisualAid'\r
- }, ed.selection.getContent() || ed.getLang('layer.content'));\r
- },\r
-\r
- _toggleAbsolute : function() {\r
- var ed = this.editor, le = this._getParentLayer(ed.selection.getNode());\r
-\r
- if (!le)\r
- le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG');\r
-\r
- if (le) {\r
- if (le.style.position.toLowerCase() == "absolute") {\r
- ed.dom.setStyles(le, {\r
- position : '',\r
- left : '',\r
- top : '',\r
- width : '',\r
- height : ''\r
- });\r
-\r
- ed.dom.removeClass(le, 'mceItemVisualAid');\r
- } else {\r
- if (le.style.left == "")\r
- le.style.left = 20 + 'px';\r
-\r
- if (le.style.top == "")\r
- le.style.top = 20 + 'px';\r
-\r
- if (le.style.width == "")\r
- le.style.width = le.width ? (le.width + 'px') : '100px';\r
-\r
- if (le.style.height == "")\r
- le.style.height = le.height ? (le.height + 'px') : '100px';\r
-\r
- le.style.position = "absolute";\r
- ed.addVisual(ed.getBody());\r
- }\r
-\r
- ed.execCommand('mceRepaint');\r
- ed.nodeChanged();\r
- }\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('layer', tinymce.plugins.Layer);\r
-})();
\ No newline at end of file
+++ /dev/null
-.mceItemFlash, .mceItemShockWave, .mceItemQuickTime, .mceItemWindowsMedia, .mceItemRealMedia {border:1px dotted #cc0000; background-position:center; background-repeat:no-repeat; background-color:#ffffcc;}\r
-.mceItemShockWave {background-image: url(../img/shockwave.gif);}\r
-.mceItemFlash {background-image:url(../img/flash.gif);}\r
-.mceItemQuickTime {background-image:url(../img/quicktime.gif);}\r
-.mceItemWindowsMedia {background-image:url(../img/windowsmedia.gif);}\r
-.mceItemRealMedia {background-image:url(../img/realmedia.gif);}\r
+++ /dev/null
-#id, #name, #hspace, #vspace, #class_name, #align { width: 100px }\r
-#hspace, #vspace { width: 50px }\r
-#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }\r
-#flash_base, #flash_flashvars { width: 240px }\r
-#width, #height { width: 40px }\r
-#src, #media_type { width: 250px }\r
-#class { width: 120px }\r
-#prev { margin: 0; border: 1px solid black; width: 380px; height: 230px; overflow: auto }\r
-.panel_wrapper div.current { height: 390px; overflow: auto }\r
-#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }\r
-.mceAddSelectValue { background-color: #DDDDDD }\r
-#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px }\r
-#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }\r
-#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }\r
-#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }\r
-#qt_qtsrc { width: 200px }\r
+++ /dev/null
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.MediaPlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;function isMediaElm(n){return/^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);};ed.onPreInit.add(function(){ed.serializer.addRules('param[name|value|_value]');});ed.addCommand('mceMedia',function(){ed.windowManager.open({file:url+'/media.htm',width:430+parseInt(ed.getLang('media.delta_width',0)),height:470+parseInt(ed.getLang('media.delta_height',0)),inline:1},{plugin_url:url});});ed.addButton('media',{title:'media.desc',cmd:'mceMedia'});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('media',n.nodeName=='IMG'&&isMediaElm(n));});ed.onInit.add(function(){var lo={mceItemFlash:'flash',mceItemShockWave:'shockwave',mceItemWindowsMedia:'windowsmedia',mceItemQuickTime:'quicktime',mceItemRealMedia:'realmedia'};if(ed.settings.content_css!==false)ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.name=='img'){each(lo,function(v,k){if(ed.dom.hasClass(o.node,k)){o.name=v;o.title=ed.dom.getAttrib(o.node,'title');return false;}});}});}if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){if(e.nodeName=='IMG'&&/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)){m.add({title:'media.edit',icon:'media',cmd:'mceMedia'});}});}});ed.onBeforeSetContent.add(function(ed,o){var h=o.content;h=h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi,function(a,b,c){var o=t._parse(c);return'<img class="mceItem'+b+'" title="'+ed.dom.encode(c)+'" src="'+url+'/img/trans.gif" width="'+o.width+'" height="'+o.height+'" />'});h=h.replace(/<object([^>]*)>/gi,'<span class="mceItemObject" $1>');h=h.replace(/<embed([^>]*)\/?>/gi,'<span class="mceItemEmbed" $1></span>');h=h.replace(/<embed([^>]*)>/gi,'<span class="mceItemEmbed" $1>');h=h.replace(/<\/(object)([^>]*)>/gi,'</span>');h=h.replace(/<\/embed>/gi,'');h=h.replace(/<param([^>]*)>/gi,function(a,b){return'<span '+b.replace(/value=/gi,'_value=')+' class="mceItemParam"></span>'});h=h.replace(/\/ class=\"mceItemParam\"><\/span>/gi,'class="mceItemParam"></span>');o.content=h;});ed.onSetContent.add(function(){t._spansToImgs(ed.getBody());});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;if(o.set){t._spansToImgs(o.node);each(dom.select('IMG',o.node),function(n){var p;if(isMediaElm(n)){p=t._parse(n.title);dom.setAttrib(n,'width',dom.getAttrib(n,'width',p.width||100));dom.setAttrib(n,'height',dom.getAttrib(n,'height',p.height||100));}});}if(o.get){each(dom.select('IMG',o.node),function(n){var ci,cb,mt;if(ed.getParam('media_use_script')){if(isMediaElm(n))n.className=n.className.replace(/mceItem/g,'mceTemp');return;}switch(n.className){case'mceItemFlash':ci='d27cdb6e-ae6d-11cf-96b8-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='application/x-shockwave-flash';break;case'mceItemShockWave':ci='166b1bca-3f9c-11cf-8075-444553540000';cb='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';mt='application/x-director';break;case'mceItemWindowsMedia':ci=ed.getParam('media_wmp6_compatible')?'05589fa1-c356-11ce-bf01-00aa0055595a':'6bf52a52-394a-11d3-b153-00c04f79faa6';cb='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';mt='application/x-mplayer2';break;case'mceItemQuickTime':ci='02bf25d5-8c17-4b23-bc80-d3488abddc6b';cb='http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';mt='video/quicktime';break;case'mceItemRealMedia':ci='cfcdaa03-8be4-11cf-b84b-0020afbbccfa';cb='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';mt='audio/x-pn-realaudio-plugin';break;}if(ci){dom.replace(t._buildObj({classid:ci,codebase:cb,type:mt},n),n);}});}});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/_value=/g,'value=');});if(ed.getParam('media_use_script')){function getAttr(s,n){n=new RegExp(n+'=\"([^\"]+)\"','g').exec(s);return n?ed.dom.decode(n[1]):'';};ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<img[^>]+>/g,function(im){var cl=getAttr(im,'class');if(/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)){at=t._parse(getAttr(im,'title'));at.width=getAttr(im,'width');at.height=getAttr(im,'height');im='<script type="text/javascript">write'+cl.substring(7)+'({'+t._serialize(at)+'});</script>';}return im;});});}},getInfo:function(){return{longname:'Media',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_buildObj:function(o,n){var ob,ed=this.editor,dom=ed.dom,p=this._parse(n.title);p.width=o.width=dom.getAttrib(n,'width')||100;p.height=o.height=dom.getAttrib(n,'height')||100;ob=dom.create('span',{mce_name:'object',classid:"clsid:"+o.classid,codebase:o.codebase,width:o.width,height:o.height});if(p.src)p.src=ed.convertURL(p.src,'src',n);each(p,function(v,k){if(!/^(width|height|codebase|classid)$/.test(k)){if(o.type=='application/x-mplayer2'&&k=='src')k='url';dom.add(ob,'span',{mce_name:'param',name:k,'_value':v});}});dom.add(ob,'span',tinymce.extend({mce_name:'embed',type:o.type},p));return ob;},_spansToImgs:function(p){var t=this,dom=t.editor.dom,im,ci;each(dom.select('span',p),function(n){if(dom.getAttrib(n,'class')=='mceItemObject'){ci=dom.getAttrib(n,"classid").toLowerCase().replace(/\s+/g,'');switch(ci){case'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':dom.replace(t._createImg('mceItemFlash',n),n);break;case'clsid:166b1bca-3f9c-11cf-8075-444553540000':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':case'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':case'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}return;}if(dom.getAttrib(n,'class')=='mceItemEmbed'){switch(dom.getAttrib(n,'type')){case'application/x-shockwave-flash':dom.replace(t._createImg('mceItemFlash',n),n);break;case'application/x-director':dom.replace(t._createImg('mceItemShockWave',n),n);break;case'application/x-mplayer2':dom.replace(t._createImg('mceItemWindowsMedia',n),n);break;case'video/quicktime':dom.replace(t._createImg('mceItemQuickTime',n),n);break;case'audio/x-pn-realaudio-plugin':dom.replace(t._createImg('mceItemRealMedia',n),n);break;default:dom.replace(t._createImg('mceItemFlash',n),n);}}});},_createImg:function(cl,n){var im,dom=this.editor.dom,pa={},ti='';im=dom.create('img',{src:this.url+'/img/trans.gif',width:dom.getAttrib(n,'width')||100,height:dom.getAttrib(n,'height')||100,'class':cl});each(['id','name','width','height','bgcolor','align','flashvars','src','wmode'],function(na){var v=dom.getAttrib(n,na);if(v)pa[na]=v;});each(dom.select('span',n),function(n){if(dom.hasClass(n,'mceItemParam'))pa[dom.getAttrib(n,'name')]=dom.getAttrib(n,'_value');});if(pa.movie){pa.src=pa.movie;delete pa.movie;}delete pa.width;delete pa.height;im.title=this._serialize(pa);return im;},_parse:function(s){return tinymce.util.JSON.parse('{'+s+'}');},_serialize:function(o){return tinymce.util.JSON.serialize(o).replace(/[{}]/g,'');}});tinymce.PluginManager.add('media',tinymce.plugins.MediaPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 880 2008-06-19 10:14:14Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var each = tinymce.each;\r
-\r
- tinymce.create('tinymce.plugins.MediaPlugin', {\r
- init : function(ed, url) {\r
- var t = this;\r
- \r
- t.editor = ed;\r
- t.url = url;\r
-\r
- function isMediaElm(n) {\r
- return /^(mceItemFlash|mceItemShockWave|mceItemWindowsMedia|mceItemQuickTime|mceItemRealMedia)$/.test(n.className);\r
- };\r
-\r
- ed.onPreInit.add(function() {\r
- // Force in _value parameter this extra parameter is required for older Opera versions\r
- ed.serializer.addRules('param[name|value|_value]');\r
- });\r
-\r
- // Register commands\r
- ed.addCommand('mceMedia', function() {\r
- ed.windowManager.open({\r
- file : url + '/media.htm',\r
- width : 430 + parseInt(ed.getLang('media.delta_width', 0)),\r
- height : 470 + parseInt(ed.getLang('media.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('media', {title : 'media.desc', cmd : 'mceMedia'});\r
-\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- cm.setActive('media', n.nodeName == 'IMG' && isMediaElm(n));\r
- });\r
-\r
- ed.onInit.add(function() {\r
- var lo = {\r
- mceItemFlash : 'flash',\r
- mceItemShockWave : 'shockwave',\r
- mceItemWindowsMedia : 'windowsmedia',\r
- mceItemQuickTime : 'quicktime',\r
- mceItemRealMedia : 'realmedia'\r
- };\r
-\r
- if (ed.settings.content_css !== false)\r
- ed.dom.loadCSS(url + "/css/content.css");\r
-\r
- if (ed.theme.onResolveName) {\r
- ed.theme.onResolveName.add(function(th, o) {\r
- if (o.name == 'img') {\r
- each(lo, function(v, k) {\r
- if (ed.dom.hasClass(o.node, k)) {\r
- o.name = v;\r
- o.title = ed.dom.getAttrib(o.node, 'title');\r
- return false;\r
- }\r
- });\r
- }\r
- });\r
- }\r
-\r
- if (ed && ed.plugins.contextmenu) {\r
- ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {\r
- if (e.nodeName == 'IMG' && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(e.className)) {\r
- m.add({title : 'media.edit', icon : 'media', cmd : 'mceMedia'});\r
- }\r
- });\r
- }\r
- });\r
-\r
- ed.onBeforeSetContent.add(function(ed, o) {\r
- var h = o.content;\r
-\r
- h = h.replace(/<script[^>]*>\s*write(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)\(\{([^\)]*)\}\);\s*<\/script>/gi, function(a, b, c) {\r
- var o = t._parse(c);\r
-\r
- return '<img class="mceItem' + b + '" title="' + ed.dom.encode(c) + '" src="' + url + '/img/trans.gif" width="' + o.width + '" height="' + o.height + '" />'\r
- });\r
-\r
- h = h.replace(/<object([^>]*)>/gi, '<span class="mceItemObject" $1>');\r
- h = h.replace(/<embed([^>]*)\/?>/gi, '<span class="mceItemEmbed" $1></span>');\r
- h = h.replace(/<embed([^>]*)>/gi, '<span class="mceItemEmbed" $1>');\r
- h = h.replace(/<\/(object)([^>]*)>/gi, '</span>');\r
- h = h.replace(/<\/embed>/gi, '');\r
- h = h.replace(/<param([^>]*)>/gi, function(a, b) {return '<span ' + b.replace(/value=/gi, '_value=') + ' class="mceItemParam"></span>'});\r
- h = h.replace(/\/ class=\"mceItemParam\"><\/span>/gi, 'class="mceItemParam"></span>');\r
-\r
- o.content = h;\r
- });\r
-\r
- ed.onSetContent.add(function() {\r
- t._spansToImgs(ed.getBody());\r
- });\r
-\r
- ed.onPreProcess.add(function(ed, o) {\r
- var dom = ed.dom;\r
-\r
- if (o.set) {\r
- t._spansToImgs(o.node);\r
-\r
- each(dom.select('IMG', o.node), function(n) {\r
- var p;\r
-\r
- if (isMediaElm(n)) {\r
- p = t._parse(n.title);\r
- dom.setAttrib(n, 'width', dom.getAttrib(n, 'width', p.width || 100));\r
- dom.setAttrib(n, 'height', dom.getAttrib(n, 'height', p.height || 100));\r
- }\r
- });\r
- }\r
-\r
- if (o.get) {\r
- each(dom.select('IMG', o.node), function(n) {\r
- var ci, cb, mt;\r
-\r
- if (ed.getParam('media_use_script')) {\r
- if (isMediaElm(n))\r
- n.className = n.className.replace(/mceItem/g, 'mceTemp');\r
-\r
- return;\r
- }\r
-\r
- switch (n.className) {\r
- case 'mceItemFlash':\r
- ci = 'd27cdb6e-ae6d-11cf-96b8-444553540000';\r
- cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
- mt = 'application/x-shockwave-flash';\r
- break;\r
-\r
- case 'mceItemShockWave':\r
- ci = '166b1bca-3f9c-11cf-8075-444553540000';\r
- cb = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';\r
- mt = 'application/x-director';\r
- break;\r
-\r
- case 'mceItemWindowsMedia':\r
- ci = ed.getParam('media_wmp6_compatible') ? '05589fa1-c356-11ce-bf01-00aa0055595a' : '6bf52a52-394a-11d3-b153-00c04f79faa6';\r
- cb = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
- mt = 'application/x-mplayer2';\r
- break;\r
-\r
- case 'mceItemQuickTime':\r
- ci = '02bf25d5-8c17-4b23-bc80-d3488abddc6b';\r
- cb = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';\r
- mt = 'video/quicktime';\r
- break;\r
-\r
- case 'mceItemRealMedia':\r
- ci = 'cfcdaa03-8be4-11cf-b84b-0020afbbccfa';\r
- cb = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
- mt = 'audio/x-pn-realaudio-plugin';\r
- break;\r
- }\r
-\r
- if (ci) {\r
- dom.replace(t._buildObj({\r
- classid : ci,\r
- codebase : cb,\r
- type : mt\r
- }, n), n);\r
- }\r
- });\r
- }\r
- });\r
-\r
- ed.onPostProcess.add(function(ed, o) {\r
- o.content = o.content.replace(/_value=/g, 'value=');\r
- });\r
-\r
- if (ed.getParam('media_use_script')) {\r
- function getAttr(s, n) {\r
- n = new RegExp(n + '=\"([^\"]+)\"', 'g').exec(s);\r
-\r
- return n ? ed.dom.decode(n[1]) : '';\r
- };\r
-\r
- ed.onPostProcess.add(function(ed, o) {\r
- o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
- var cl = getAttr(im, 'class');\r
-\r
- if (/^(mceTempFlash|mceTempShockWave|mceTempWindowsMedia|mceTempQuickTime|mceTempRealMedia)$/.test(cl)) {\r
- at = t._parse(getAttr(im, 'title'));\r
- at.width = getAttr(im, 'width');\r
- at.height = getAttr(im, 'height');\r
- im = '<script type="text/javascript">write' + cl.substring(7) + '({' + t._serialize(at) + '});</script>';\r
- }\r
-\r
- return im;\r
- });\r
- });\r
- }\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Media',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _buildObj : function(o, n) {\r
- var ob, ed = this.editor, dom = ed.dom, p = this._parse(n.title);\r
-\r
- p.width = o.width = dom.getAttrib(n, 'width') || 100;\r
- p.height = o.height = dom.getAttrib(n, 'height') || 100;\r
-\r
- ob = dom.create('span', {\r
- mce_name : 'object',\r
- classid : "clsid:" + o.classid,\r
- codebase : o.codebase,\r
- width : o.width,\r
- height : o.height\r
- });\r
-\r
- if (p.src)\r
- p.src = ed.convertURL(p.src, 'src', n);\r
-\r
- each (p, function(v, k) {\r
- if (!/^(width|height|codebase|classid)$/.test(k)) {\r
- // Use url instead of src in IE for Windows media\r
- if (o.type == 'application/x-mplayer2' && k == 'src')\r
- k = 'url';\r
-\r
- dom.add(ob, 'span', {mce_name : 'param', name : k, '_value' : v});\r
- }\r
- });\r
-\r
- dom.add(ob, 'span', tinymce.extend({mce_name : 'embed', type : o.type}, p));\r
-\r
- return ob;\r
- },\r
-\r
- _spansToImgs : function(p) {\r
- var t = this, dom = t.editor.dom, im, ci;\r
-\r
- each(dom.select('span', p), function(n) {\r
- // Convert object into image\r
- if (dom.getAttrib(n, 'class') == 'mceItemObject') {\r
- ci = dom.getAttrib(n, "classid").toLowerCase().replace(/\s+/g, '');\r
-\r
- switch (ci) {\r
- case 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000':\r
- dom.replace(t._createImg('mceItemFlash', n), n);\r
- break;\r
-\r
- case 'clsid:166b1bca-3f9c-11cf-8075-444553540000':\r
- dom.replace(t._createImg('mceItemShockWave', n), n);\r
- break;\r
-\r
- case 'clsid:6bf52a52-394a-11d3-b153-00c04f79faa6':\r
- case 'clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95':\r
- case 'clsid:05589fa1-c356-11ce-bf01-00aa0055595a':\r
- dom.replace(t._createImg('mceItemWindowsMedia', n), n);\r
- break;\r
-\r
- case 'clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b':\r
- dom.replace(t._createImg('mceItemQuickTime', n), n);\r
- break;\r
-\r
- case 'clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa':\r
- dom.replace(t._createImg('mceItemRealMedia', n), n);\r
- break;\r
-\r
- default:\r
- dom.replace(t._createImg('mceItemFlash', n), n);\r
- }\r
- \r
- return;\r
- }\r
-\r
- // Convert embed into image\r
- if (dom.getAttrib(n, 'class') == 'mceItemEmbed') {\r
- switch (dom.getAttrib(n, 'type')) {\r
- case 'application/x-shockwave-flash':\r
- dom.replace(t._createImg('mceItemFlash', n), n);\r
- break;\r
-\r
- case 'application/x-director':\r
- dom.replace(t._createImg('mceItemShockWave', n), n);\r
- break;\r
-\r
- case 'application/x-mplayer2':\r
- dom.replace(t._createImg('mceItemWindowsMedia', n), n);\r
- break;\r
-\r
- case 'video/quicktime':\r
- dom.replace(t._createImg('mceItemQuickTime', n), n);\r
- break;\r
-\r
- case 'audio/x-pn-realaudio-plugin':\r
- dom.replace(t._createImg('mceItemRealMedia', n), n);\r
- break;\r
-\r
- default:\r
- dom.replace(t._createImg('mceItemFlash', n), n);\r
- }\r
- } \r
- });\r
- },\r
-\r
- _createImg : function(cl, n) {\r
- var im, dom = this.editor.dom, pa = {}, ti = '';\r
-\r
- // Create image\r
- im = dom.create('img', {\r
- src : this.url + '/img/trans.gif',\r
- width : dom.getAttrib(n, 'width') || 100,\r
- height : dom.getAttrib(n, 'height') || 100,\r
- 'class' : cl\r
- });\r
-\r
- // Setup base parameters\r
- each(['id', 'name', 'width', 'height', 'bgcolor', 'align', 'flashvars', 'src', 'wmode'], function(na) {\r
- var v = dom.getAttrib(n, na);\r
-\r
- if (v)\r
- pa[na] = v;\r
- });\r
-\r
- // Add optional parameters\r
- each(dom.select('span', n), function(n) {\r
- if (dom.hasClass(n, 'mceItemParam'))\r
- pa[dom.getAttrib(n, 'name')] = dom.getAttrib(n, '_value');\r
- });\r
-\r
- // Use src not movie\r
- if (pa.movie) {\r
- pa.src = pa.movie;\r
- delete pa.movie;\r
- }\r
-\r
- delete pa.width;\r
- delete pa.height;\r
-\r
- im.title = this._serialize(pa);\r
-\r
- return im;\r
- },\r
-\r
- _parse : function(s) {\r
- return tinymce.util.JSON.parse('{' + s + '}');\r
- },\r
-\r
- _serialize : function(o) {\r
- return tinymce.util.JSON.serialize(o).replace(/[{}]/g, '');\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.\r
- */\r
-\r
-function writeFlash(p) {\r
- writeEmbed(\r
- 'D27CDB6E-AE6D-11cf-96B8-444553540000',\r
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
- 'application/x-shockwave-flash',\r
- p\r
- );\r
-}\r
-\r
-function writeShockWave(p) {\r
- writeEmbed(\r
- '166B1BCA-3F9C-11CF-8075-444553540000',\r
- 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',\r
- 'application/x-director',\r
- p\r
- );\r
-}\r
-\r
-function writeQuickTime(p) {\r
- writeEmbed(\r
- '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',\r
- 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',\r
- 'video/quicktime',\r
- p\r
- );\r
-}\r
-\r
-function writeRealMedia(p) {\r
- writeEmbed(\r
- 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',\r
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
- 'audio/x-pn-realaudio-plugin',\r
- p\r
- );\r
-}\r
-\r
-function writeWindowsMedia(p) {\r
- p.url = p.src;\r
- writeEmbed(\r
- '6BF52A52-394A-11D3-B153-00C04F79FAA6',\r
- 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',\r
- 'application/x-mplayer2',\r
- p\r
- );\r
-}\r
-\r
-function writeEmbed(cls, cb, mt, p) {\r
- var h = '', n;\r
-\r
- h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';\r
- h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';\r
- h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';\r
- h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';\r
- h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';\r
- h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';\r
- h += '>';\r
-\r
- for (n in p)\r
- h += '<param name="' + n + '" value="' + p[n] + '">';\r
-\r
- h += '<embed type="' + mt + '"';\r
-\r
- for (n in p)\r
- h += n + '="' + p[n] + '" ';\r
-\r
- h += '></embed></object>';\r
-\r
- document.write(h);\r
-}\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var oldWidth, oldHeight, ed, url;\r
-\r
-if (url = tinyMCEPopup.getParam("media_external_list_url"))\r
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
-\r
-function init() {\r
- var pl = "", f, val;\r
- var type = "flash", fe, i;\r
-\r
- ed = tinyMCEPopup.editor;\r
-\r
- tinyMCEPopup.resizeToInnerSize();\r
- f = document.forms[0]\r
-\r
- fe = ed.selection.getNode();\r
- if (/mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {\r
- pl = fe.title;\r
-\r
- switch (ed.dom.getAttrib(fe, 'class')) {\r
- case 'mceItemFlash':\r
- type = 'flash';\r
- break;\r
-\r
- case 'mceItemFlashVideo':\r
- type = 'flv';\r
- break;\r
-\r
- case 'mceItemShockWave':\r
- type = 'shockwave';\r
- break;\r
-\r
- case 'mceItemWindowsMedia':\r
- type = 'wmp';\r
- break;\r
-\r
- case 'mceItemQuickTime':\r
- type = 'qt';\r
- break;\r
-\r
- case 'mceItemRealMedia':\r
- type = 'rmp';\r
- break;\r
- }\r
-\r
- document.forms[0].insert.value = ed.getLang('update', 'Insert', true); \r
- }\r
-\r
- document.getElementById('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');\r
- document.getElementById('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','qt_qtsrc','media','media');\r
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-\r
- var html = getMediaListHTML('medialist','src','media','media');\r
- if (html == "")\r
- document.getElementById("linklistrow").style.display = 'none';\r
- else\r
- document.getElementById("linklistcontainer").innerHTML = html;\r
-\r
- // Resize some elements\r
- if (isVisible('filebrowser'))\r
- document.getElementById('src').style.width = '230px';\r
-\r
- // Setup form\r
- if (pl != "") {\r
- pl = tinyMCEPopup.editor.plugins.media._parse(pl);\r
-\r
- switch (type) {\r
- case "flash":\r
- setBool(pl, 'flash', 'play');\r
- setBool(pl, 'flash', 'loop');\r
- setBool(pl, 'flash', 'menu');\r
- setBool(pl, 'flash', 'swliveconnect');\r
- setStr(pl, 'flash', 'quality');\r
- setStr(pl, 'flash', 'scale');\r
- setStr(pl, 'flash', 'salign');\r
- setStr(pl, 'flash', 'wmode');\r
- setStr(pl, 'flash', 'base');\r
- setStr(pl, 'flash', 'flashvars');\r
- break;\r
-\r
- case "qt":\r
- setBool(pl, 'qt', 'loop');\r
- setBool(pl, 'qt', 'autoplay');\r
- setBool(pl, 'qt', 'cache');\r
- setBool(pl, 'qt', 'controller');\r
- setBool(pl, 'qt', 'correction');\r
- setBool(pl, 'qt', 'enablejavascript');\r
- setBool(pl, 'qt', 'kioskmode');\r
- setBool(pl, 'qt', 'autohref');\r
- setBool(pl, 'qt', 'playeveryframe');\r
- setBool(pl, 'qt', 'tarsetcache');\r
- setStr(pl, 'qt', 'scale');\r
- setStr(pl, 'qt', 'starttime');\r
- setStr(pl, 'qt', 'endtime');\r
- setStr(pl, 'qt', 'tarset');\r
- setStr(pl, 'qt', 'qtsrcchokespeed');\r
- setStr(pl, 'qt', 'volume');\r
- setStr(pl, 'qt', 'qtsrc');\r
- break;\r
-\r
- case "shockwave":\r
- setBool(pl, 'shockwave', 'sound');\r
- setBool(pl, 'shockwave', 'progress');\r
- setBool(pl, 'shockwave', 'autostart');\r
- setBool(pl, 'shockwave', 'swliveconnect');\r
- setStr(pl, 'shockwave', 'swvolume');\r
- setStr(pl, 'shockwave', 'swstretchstyle');\r
- setStr(pl, 'shockwave', 'swstretchhalign');\r
- setStr(pl, 'shockwave', 'swstretchvalign');\r
- break;\r
-\r
- case "wmp":\r
- setBool(pl, 'wmp', 'autostart');\r
- setBool(pl, 'wmp', 'enabled');\r
- setBool(pl, 'wmp', 'enablecontextmenu');\r
- setBool(pl, 'wmp', 'fullscreen');\r
- setBool(pl, 'wmp', 'invokeurls');\r
- setBool(pl, 'wmp', 'mute');\r
- setBool(pl, 'wmp', 'stretchtofit');\r
- setBool(pl, 'wmp', 'windowlessvideo');\r
- setStr(pl, 'wmp', 'balance');\r
- setStr(pl, 'wmp', 'baseurl');\r
- setStr(pl, 'wmp', 'captioningid');\r
- setStr(pl, 'wmp', 'currentmarker');\r
- setStr(pl, 'wmp', 'currentposition');\r
- setStr(pl, 'wmp', 'defaultframe');\r
- setStr(pl, 'wmp', 'playcount');\r
- setStr(pl, 'wmp', 'rate');\r
- setStr(pl, 'wmp', 'uimode');\r
- setStr(pl, 'wmp', 'volume');\r
- break;\r
-\r
- case "rmp":\r
- setBool(pl, 'rmp', 'autostart');\r
- setBool(pl, 'rmp', 'loop');\r
- setBool(pl, 'rmp', 'autogotourl');\r
- setBool(pl, 'rmp', 'center');\r
- setBool(pl, 'rmp', 'imagestatus');\r
- setBool(pl, 'rmp', 'maintainaspect');\r
- setBool(pl, 'rmp', 'nojava');\r
- setBool(pl, 'rmp', 'prefetch');\r
- setBool(pl, 'rmp', 'shuffle');\r
- setStr(pl, 'rmp', 'console');\r
- setStr(pl, 'rmp', 'controls');\r
- setStr(pl, 'rmp', 'numloop');\r
- setStr(pl, 'rmp', 'scriptcallbacks');\r
- break;\r
- }\r
-\r
- setStr(pl, null, 'src');\r
- setStr(pl, null, 'id');\r
- setStr(pl, null, 'name');\r
- setStr(pl, null, 'vspace');\r
- setStr(pl, null, 'hspace');\r
- setStr(pl, null, 'bgcolor');\r
- setStr(pl, null, 'align');\r
- setStr(pl, null, 'width');\r
- setStr(pl, null, 'height');\r
-\r
- if ((val = ed.dom.getAttrib(fe, "width")) != "")\r
- pl.width = f.width.value = val;\r
-\r
- if ((val = ed.dom.getAttrib(fe, "height")) != "")\r
- pl.height = f.height.value = val;\r
-\r
- oldWidth = pl.width ? parseInt(pl.width) : 0;\r
- oldHeight = pl.height ? parseInt(pl.height) : 0;\r
- } else\r
- oldWidth = oldHeight = 0;\r
-\r
- selectByValue(f, 'media_type', type);\r
- changedType(type);\r
- updateColor('bgcolor_pick', 'bgcolor');\r
-\r
- TinyMCE_EditableSelects.init();\r
- generatePreview();\r
-}\r
-\r
-function insertMedia() {\r
- var fe, f = document.forms[0], h;\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (!AutoValidator.validate(f)) {\r
- tinyMCEPopup.alert(ed.getLang('invalid_data'));\r
- return false;\r
- }\r
-\r
- f.width.value = f.width.value == "" ? 100 : f.width.value;\r
- f.height.value = f.height.value == "" ? 100 : f.height.value;\r
-\r
- fe = ed.selection.getNode();\r
- if (fe != null && /mceItem(Flash|ShockWave|WindowsMedia|QuickTime|RealMedia)/.test(ed.dom.getAttrib(fe, 'class'))) {\r
- switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
- case "flash":\r
- fe.className = "mceItemFlash";\r
- break;\r
-\r
- case "flv":\r
- fe.className = "mceItemFlashVideo";\r
- break;\r
-\r
- case "shockwave":\r
- fe.className = "mceItemShockWave";\r
- break;\r
-\r
- case "qt":\r
- fe.className = "mceItemQuickTime";\r
- break;\r
-\r
- case "wmp":\r
- fe.className = "mceItemWindowsMedia";\r
- break;\r
-\r
- case "rmp":\r
- fe.className = "mceItemRealMedia";\r
- break;\r
- }\r
-\r
- if (fe.width != f.width.value || fe.height != f.height.height)\r
- ed.execCommand('mceRepaint');\r
-\r
- fe.title = serializeParameters();\r
- fe.width = f.width.value;\r
- fe.height = f.height.value;\r
- fe.style.width = f.width.value + (f.width.value.indexOf('%') == -1 ? 'px' : '');\r
- fe.style.height = f.height.value + (f.height.value.indexOf('%') == -1 ? 'px' : '');\r
- fe.align = f.align.options[f.align.selectedIndex].value;\r
- } else {\r
- h = '<img src="' + tinyMCEPopup.getWindowArg("plugin_url") + '/img/trans.gif"' ;\r
-\r
- switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
- case "flash":\r
- h += ' class="mceItemFlash"';\r
- break;\r
-\r
- case "flv":\r
- h += ' class="mceItemFlashVideo"';\r
- break;\r
-\r
- case "shockwave":\r
- h += ' class="mceItemShockWave"';\r
- break;\r
-\r
- case "qt":\r
- h += ' class="mceItemQuickTime"';\r
- break;\r
-\r
- case "wmp":\r
- h += ' class="mceItemWindowsMedia"';\r
- break;\r
-\r
- case "rmp":\r
- h += ' class="mceItemRealMedia"';\r
- break;\r
- }\r
-\r
- h += ' title="' + serializeParameters() + '"';\r
- h += ' width="' + f.width.value + '"';\r
- h += ' height="' + f.height.value + '"';\r
- h += ' align="' + f.align.options[f.align.selectedIndex].value + '"';\r
-\r
- h += ' />';\r
-\r
- ed.execCommand('mceInsertContent', false, h);\r
- }\r
-\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function updatePreview() {\r
- var f = document.forms[0], type;\r
-\r
- f.width.value = f.width.value || '320';\r
- f.height.value = f.height.value || '240';\r
-\r
- type = getType(f.src.value);\r
- selectByValue(f, 'media_type', type);\r
- changedType(type);\r
- generatePreview();\r
-}\r
-\r
-function getMediaListHTML() {\r
- if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {\r
- var html = "";\r
-\r
- html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;updatePreview();">';\r
- html += '<option value="">---</option>';\r
-\r
- for (var i=0; i<tinyMCEMediaList.length; i++)\r
- html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';\r
-\r
- html += '</select>';\r
-\r
- return html;\r
- }\r
-\r
- return "";\r
-}\r
-\r
-function getType(v) {\r
- var fo, i, c, el, x, f = document.forms[0];\r
-\r
- fo = ed.getParam("media_types", "flash=swf;flv=flv;shockwave=dcr;qt=mov,qt,mpg,mp3,mp4,mpeg;shockwave=dcr;wmp=avi,wmv,wm,asf,asx,wmx,wvx;rmp=rm,ra,ram").split(';');\r
-\r
- // YouTube\r
- if (v.match(/watch\?v=(.+)(.*)/)) {\r
- f.width.value = '425';\r
- f.height.value = '350';\r
- f.src.value = 'http://www.youtube.com/v/' + v.match(/v=(.*)(.*)/)[0].split('=')[1];\r
- return 'flash';\r
- }\r
-\r
- // Google video\r
- if (v.indexOf('http://video.google.com/videoplay?docid=') == 0) {\r
- f.width.value = '425';\r
- f.height.value = '326';\r
- f.src.value = 'http://video.google.com/googleplayer.swf?docId=' + v.substring('http://video.google.com/videoplay?docid='.length) + '&hl=en';\r
- return 'flash';\r
- }\r
-\r
- for (i=0; i<fo.length; i++) {\r
- c = fo[i].split('=');\r
-\r
- el = c[1].split(',');\r
- for (x=0; x<el.length; x++)\r
- if (v.indexOf('.' + el[x]) != -1)\r
- return c[0];\r
- }\r
-\r
- return null;\r
-}\r
-\r
-function switchType(v) {\r
- var t = getType(v), d = document, f = d.forms[0];\r
-\r
- if (!t)\r
- return;\r
-\r
- selectByValue(d.forms[0], 'media_type', t);\r
- changedType(t);\r
-\r
- // Update qtsrc also\r
- if (t == 'qt' && f.src.value.toLowerCase().indexOf('rtsp://') != -1) {\r
- alert(ed.getLang("media_qt_stream_warn"));\r
-\r
- if (f.qt_qtsrc.value == '')\r
- f.qt_qtsrc.value = f.src.value;\r
- }\r
-}\r
-\r
-function changedType(t) {\r
- var d = document;\r
-\r
- d.getElementById('flash_options').style.display = 'none';\r
- d.getElementById('flv_options').style.display = 'none';\r
- d.getElementById('qt_options').style.display = 'none';\r
- d.getElementById('shockwave_options').style.display = 'none';\r
- d.getElementById('wmp_options').style.display = 'none';\r
- d.getElementById('rmp_options').style.display = 'none';\r
- d.getElementById(t + '_options').style.display = 'block';\r
-}\r
-\r
-function serializeParameters() {\r
- var d = document, f = d.forms[0], s = '';\r
-\r
- switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
- case "flash":\r
- s += getBool('flash', 'play', true);\r
- s += getBool('flash', 'loop', true);\r
- s += getBool('flash', 'menu', true);\r
- s += getBool('flash', 'swliveconnect', false);\r
- s += getStr('flash', 'quality');\r
- s += getStr('flash', 'scale');\r
- s += getStr('flash', 'salign');\r
- s += getStr('flash', 'wmode');\r
- s += getStr('flash', 'base');\r
- s += getStr('flash', 'flashvars');\r
- break;\r
-\r
- case "qt":\r
- s += getBool('qt', 'loop', false);\r
- s += getBool('qt', 'autoplay', true);\r
- s += getBool('qt', 'cache', false);\r
- s += getBool('qt', 'controller', true);\r
- s += getBool('qt', 'correction', false, 'none', 'full');\r
- s += getBool('qt', 'enablejavascript', false);\r
- s += getBool('qt', 'kioskmode', false);\r
- s += getBool('qt', 'autohref', false);\r
- s += getBool('qt', 'playeveryframe', false);\r
- s += getBool('qt', 'targetcache', false);\r
- s += getStr('qt', 'scale');\r
- s += getStr('qt', 'starttime');\r
- s += getStr('qt', 'endtime');\r
- s += getStr('qt', 'target');\r
- s += getStr('qt', 'qtsrcchokespeed');\r
- s += getStr('qt', 'volume');\r
- s += getStr('qt', 'qtsrc');\r
- break;\r
-\r
- case "shockwave":\r
- s += getBool('shockwave', 'sound');\r
- s += getBool('shockwave', 'progress');\r
- s += getBool('shockwave', 'autostart');\r
- s += getBool('shockwave', 'swliveconnect');\r
- s += getStr('shockwave', 'swvolume');\r
- s += getStr('shockwave', 'swstretchstyle');\r
- s += getStr('shockwave', 'swstretchhalign');\r
- s += getStr('shockwave', 'swstretchvalign');\r
- break;\r
-\r
- case "wmp":\r
- s += getBool('wmp', 'autostart', true);\r
- s += getBool('wmp', 'enabled', false);\r
- s += getBool('wmp', 'enablecontextmenu', true);\r
- s += getBool('wmp', 'fullscreen', false);\r
- s += getBool('wmp', 'invokeurls', true);\r
- s += getBool('wmp', 'mute', false);\r
- s += getBool('wmp', 'stretchtofit', false);\r
- s += getBool('wmp', 'windowlessvideo', false);\r
- s += getStr('wmp', 'balance');\r
- s += getStr('wmp', 'baseurl');\r
- s += getStr('wmp', 'captioningid');\r
- s += getStr('wmp', 'currentmarker');\r
- s += getStr('wmp', 'currentposition');\r
- s += getStr('wmp', 'defaultframe');\r
- s += getStr('wmp', 'playcount');\r
- s += getStr('wmp', 'rate');\r
- s += getStr('wmp', 'uimode');\r
- s += getStr('wmp', 'volume');\r
- break;\r
-\r
- case "rmp":\r
- s += getBool('rmp', 'autostart', false);\r
- s += getBool('rmp', 'loop', false);\r
- s += getBool('rmp', 'autogotourl', true);\r
- s += getBool('rmp', 'center', false);\r
- s += getBool('rmp', 'imagestatus', true);\r
- s += getBool('rmp', 'maintainaspect', false);\r
- s += getBool('rmp', 'nojava', false);\r
- s += getBool('rmp', 'prefetch', false);\r
- s += getBool('rmp', 'shuffle', false);\r
- s += getStr('rmp', 'console');\r
- s += getStr('rmp', 'controls');\r
- s += getStr('rmp', 'numloop');\r
- s += getStr('rmp', 'scriptcallbacks');\r
- break;\r
- }\r
-\r
- s += getStr(null, 'id');\r
- s += getStr(null, 'name');\r
- s += getStr(null, 'src');\r
- s += getStr(null, 'align');\r
- s += getStr(null, 'bgcolor');\r
- s += getInt(null, 'vspace');\r
- s += getInt(null, 'hspace');\r
- s += getStr(null, 'width');\r
- s += getStr(null, 'height');\r
-\r
- s = s.length > 0 ? s.substring(0, s.length - 1) : s;\r
-\r
- return s;\r
-}\r
-\r
-function setBool(pl, p, n) {\r
- if (typeof(pl[n]) == "undefined")\r
- return;\r
-\r
- document.forms[0].elements[p + "_" + n].checked = pl[n];\r
-}\r
-\r
-function setStr(pl, p, n) {\r
- var f = document.forms[0], e = f.elements[(p != null ? p + "_" : '') + n];\r
-\r
- if (typeof(pl[n]) == "undefined")\r
- return;\r
-\r
- if (e.type == "text")\r
- e.value = pl[n];\r
- else\r
- selectByValue(f, (p != null ? p + "_" : '') + n, pl[n]);\r
-}\r
-\r
-function getBool(p, n, d, tv, fv) {\r
- var v = document.forms[0].elements[p + "_" + n].checked;\r
-\r
- tv = typeof(tv) == 'undefined' ? 'true' : "'" + jsEncode(tv) + "'";\r
- fv = typeof(fv) == 'undefined' ? 'false' : "'" + jsEncode(fv) + "'";\r
-\r
- return (v == d) ? '' : n + (v ? ':' + tv + ',' : ':' + fv + ',');\r
-}\r
-\r
-function getStr(p, n, d) {\r
- var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];\r
- var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;\r
-\r
- if (n == 'src')\r
- v = tinyMCEPopup.editor.convertURL(v, 'src', null);\r
-\r
- return ((n == d || v == '') ? '' : n + ":'" + jsEncode(v) + "',");\r
-}\r
-\r
-function getInt(p, n, d) {\r
- var e = document.forms[0].elements[(p != null ? p + "_" : "") + n];\r
- var v = e.type == "text" ? e.value : e.options[e.selectedIndex].value;\r
-\r
- return ((n == d || v == '') ? '' : n + ":" + v.replace(/[^0-9]+/g, '') + ",");\r
-}\r
-\r
-function jsEncode(s) {\r
- s = s.replace(new RegExp('\\\\', 'g'), '\\\\');\r
- s = s.replace(new RegExp('"', 'g'), '\\"');\r
- s = s.replace(new RegExp("'", 'g'), "\\'");\r
-\r
- return s;\r
-}\r
-\r
-function generatePreview(c) {\r
- var f = document.forms[0], p = document.getElementById('prev'), h = '', cls, pl, n, type, codebase, wp, hp, nw, nh;\r
-\r
- p.innerHTML = '<!-- x --->';\r
-\r
- nw = parseInt(f.width.value);\r
- nh = parseInt(f.height.value);\r
-\r
- if (f.width.value != "" && f.height.value != "") {\r
- if (f.constrain.checked) {\r
- if (c == 'width' && oldWidth != 0) {\r
- wp = nw / oldWidth;\r
- nh = Math.round(wp * nh);\r
- f.height.value = nh;\r
- } else if (c == 'height' && oldHeight != 0) {\r
- hp = nh / oldHeight;\r
- nw = Math.round(hp * nw);\r
- f.width.value = nw;\r
- }\r
- }\r
- }\r
-\r
- if (f.width.value != "")\r
- oldWidth = nw;\r
-\r
- if (f.height.value != "")\r
- oldHeight = nh;\r
-\r
- // After constrain\r
- pl = serializeParameters();\r
-\r
- switch (f.media_type.options[f.media_type.selectedIndex].value) {\r
- case "flash":\r
- cls = 'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';\r
- codebase = 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0';\r
- type = 'application/x-shockwave-flash';\r
- break;\r
-\r
- case "shockwave":\r
- cls = 'clsid:166B1BCA-3F9C-11CF-8075-444553540000';\r
- codebase = 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0';\r
- type = 'application/x-director';\r
- break;\r
-\r
- case "qt":\r
- cls = 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B';\r
- codebase = 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0';\r
- type = 'video/quicktime';\r
- break;\r
-\r
- case "wmp":\r
- cls = ed.getParam('media_wmp6_compatible') ? 'clsid:05589FA1-C356-11CE-BF01-00AA0055595A' : 'clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6';\r
- codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
- type = 'application/x-mplayer2';\r
- break;\r
-\r
- case "rmp":\r
- cls = 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';\r
- codebase = 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701';\r
- type = 'audio/x-pn-realaudio-plugin';\r
- break;\r
- }\r
-\r
- if (pl == '') {\r
- p.innerHTML = '';\r
- return;\r
- }\r
-\r
- pl = tinyMCEPopup.editor.plugins.media._parse(pl);\r
-\r
- if (!pl.src) {\r
- p.innerHTML = '';\r
- return;\r
- }\r
-\r
- pl.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(pl.src);\r
- pl.width = !pl.width ? 100 : pl.width;\r
- pl.height = !pl.height ? 100 : pl.height;\r
- pl.id = !pl.id ? 'obj' : pl.id;\r
- pl.name = !pl.name ? 'eobj' : pl.name;\r
- pl.align = !pl.align ? '' : pl.align;\r
-\r
- // Avoid annoying warning about insecure items\r
- if (!tinymce.isIE || document.location.protocol != 'https:') {\r
- h += '<object classid="clsid:' + cls + '" codebase="' + codebase + '" width="' + pl.width + '" height="' + pl.height + '" id="' + pl.id + '" name="' + pl.name + '" align="' + pl.align + '">';\r
-\r
- for (n in pl) {\r
- h += '<param name="' + n + '" value="' + pl[n] + '">';\r
-\r
- // Add extra url parameter if it's an absolute URL\r
- if (n == 'src' && pl[n].indexOf('://') != -1)\r
- h += '<param name="url" value="' + pl[n] + '" />';\r
- }\r
- }\r
-\r
- h += '<embed type="' + type + '" ';\r
-\r
- for (n in pl)\r
- h += n + '="' + pl[n] + '" ';\r
-\r
- h += '></embed>';\r
-\r
- // Avoid annoying warning about insecure items\r
- if (!tinymce.isIE || document.location.protocol != 'https:')\r
- h += '</object>';\r
-\r
- p.innerHTML = "<!-- x --->" + h;\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCE.addI18n('en.media_dlg',{\r
-title:"Insert / edit embedded media",\r
-general:"General",\r
-advanced:"Advanced",\r
-file:"File/URL",\r
-list:"List",\r
-size:"Dimensions",\r
-preview:"Preview",\r
-constrain_proportions:"Constrain proportions",\r
-type:"Type",\r
-id:"Id",\r
-name:"Name",\r
-class_name:"Class",\r
-vspace:"V-Space",\r
-hspace:"H-Space",\r
-play:"Auto play",\r
-loop:"Loop",\r
-menu:"Show menu",\r
-quality:"Quality",\r
-scale:"Scale",\r
-align:"Align",\r
-salign:"SAlign",\r
-wmode:"WMode",\r
-bgcolor:"Background",\r
-base:"Base",\r
-flashvars:"Flashvars",\r
-liveconnect:"SWLiveConnect",\r
-autohref:"AutoHREF",\r
-cache:"Cache",\r
-hidden:"Hidden",\r
-controller:"Controller",\r
-kioskmode:"Kiosk mode",\r
-playeveryframe:"Play every frame",\r
-targetcache:"Target cache",\r
-correction:"No correction",\r
-enablejavascript:"Enable JavaScript",\r
-starttime:"Start time",\r
-endtime:"End time",\r
-href:"Href",\r
-qtsrcchokespeed:"Choke speed",\r
-target:"Target",\r
-volume:"Volume",\r
-autostart:"Auto start",\r
-enabled:"Enabled",\r
-fullscreen:"Fullscreen",\r
-invokeurls:"Invoke URLs",\r
-mute:"Mute",\r
-stretchtofit:"Stretch to fit",\r
-windowlessvideo:"Windowless video",\r
-balance:"Balance",\r
-baseurl:"Base URL",\r
-captioningid:"Captioning id",\r
-currentmarker:"Current marker",\r
-currentposition:"Current position",\r
-defaultframe:"Default frame",\r
-playcount:"Play count",\r
-rate:"Rate",\r
-uimode:"UI Mode",\r
-flash_options:"Flash options",\r
-qt_options:"Quicktime options",\r
-wmp_options:"Windows media player options",\r
-rmp_options:"Real media player options",\r
-shockwave_options:"Shockwave options",\r
-autogotourl:"Auto goto URL",\r
-center:"Center",\r
-imagestatus:"Image status",\r
-maintainaspect:"Maintain aspect",\r
-nojava:"No java",\r
-prefetch:"Prefetch",\r
-shuffle:"Shuffle",\r
-console:"Console",\r
-numloop:"Num loops",\r
-controls:"Controls",\r
-scriptcallbacks:"Script callbacks",\r
-swstretchstyle:"Stretch style",\r
-swstretchhalign:"Stretch H-Align",\r
-swstretchvalign:"Stretch V-Align",\r
-sound:"Sound",\r
-progress:"Progress",\r
-qtsrc:"QT Src",\r
-qt_stream_warn:"Streamed rtsp resources should be added to the QT Src field under the advanced tab.\nYou should also add a non streamed version to the Src field..",\r
-align_top:"Top",\r
-align_right:"Right",\r
-align_bottom:"Bottom",\r
-align_left:"Left",\r
-align_center:"Center",\r
-align_top_left:"Top left",\r
-align_top_right:"Top right",\r
-align_bottom_left:"Bottom left",\r
-align_bottom_right:"Bottom right",\r
-flv_options:"Flash video options",\r
-flv_scalemode:"Scale mode",\r
-flv_buffer:"Buffer",\r
-flv_startimage:"Start image",\r
-flv_starttime:"Start time",\r
-flv_defaultvolume:"Default volumne",\r
-flv_hiddengui:"Hidden GUI",\r
-flv_autostart:"Auto start",\r
-flv_loop:"Loop",\r
-flv_showscalemodes:"Show scale modes",\r
-flv_smoothvideo:"Smooth video",\r
-flv_jscallback:"JS Callback"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#media_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/media.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/validate.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <link href="css/media.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
- <form onsubmit="insertMedia();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');generatePreview();" onmousedown="return false;">{#media_dlg.general}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#media_dlg.advanced}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#media_dlg.general}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="media_type">{#media_dlg.type}</label></td>\r
- <td>\r
- <select id="media_type" name="media_type" onchange="changedType(this.value);generatePreview();">\r
- <option value="flash">Flash</option>\r
- <!-- <option value="flv">Flash video (FLV)</option> -->\r
- <option value="qt">Quicktime</option>\r
- <option value="shockwave">Shockwave</option>\r
- <option value="wmp">Windows Media</option>\r
- <option value="rmp">Real Media</option>\r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td><label for="src">{#media_dlg.file}</label></td>\r
- <td>\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input id="src" name="src" type="text" value="" class="mceFocus" onchange="switchType(this.value);generatePreview();" /></td>\r
- <td id="filebrowsercontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr id="linklistrow">\r
- <td><label for="linklist">{#media_dlg.list}</label></td>\r
- <td id="linklistcontainer"> </td>\r
- </tr>\r
- <tr>\r
- <td><label for="width">{#media_dlg.size}</label></td>\r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="text" id="width" name="width" value="" class="size" onchange="generatePreview('width');" /> x <input type="text" id="height" name="height" value="" class="size" onchange="generatePreview('height');" /></td>\r
- <td> <input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>\r
- <td><label id="constrainlabel" for="constrain">{#media_dlg.constrain_proportions}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset>\r
- <legend>{#media_dlg.preview}</legend>\r
- <div id="prev"></div>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <fieldset>\r
- <legend>{#media_dlg.advanced}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
- <tr>\r
- <td><label for="id">{#media_dlg.id}</label></td>\r
- <td><input type="text" id="id" name="id" onchange="generatePreview();" /></td>\r
- <td><label for="name">{#media_dlg.name}</label></td>\r
- <td><input type="text" id="name" name="name" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="align">{#media_dlg.align}</label></td>\r
- <td>\r
- <select id="align" name="align" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="top">{#media_dlg.align_top}</option>\r
- <option value="right">{#media_dlg.align_right}</option>\r
- <option value="bottom">{#media_dlg.align_bottom}</option>\r
- <option value="left">{#media_dlg.align_left}</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="bgcolor">{#media_dlg.bgcolor}</label></td>\r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');generatePreview();" /></td>\r
- <td id="bgcolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="vspace">{#media_dlg.vspace}</label></td>\r
- <td><input type="text" id="vspace" name="vspace" class="number" onchange="generatePreview();" /></td>\r
- <td><label for="hspace">{#media_dlg.hspace}</label></td>\r
- <td><input type="text" id="hspace" name="hspace" class="number" onchange="generatePreview();" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset id="flash_options">\r
- <legend>{#media_dlg.flash_options}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="flash_quality">{#media_dlg.quality}</label></td>\r
- <td>\r
- <select id="flash_quality" name="flash_quality" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="high">high</option>\r
- <option value="low">low</option>\r
- <option value="autolow">autolow</option>\r
- <option value="autohigh">autohigh</option>\r
- <option value="best">best</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="flash_scale">{#media_dlg.scale}</label></td>\r
- <td>\r
- <select id="flash_scale" name="flash_scale" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="showall">showall</option>\r
- <option value="noborder">noborder</option>\r
- <option value="exactfit">exactfit</option>\r
- <option value="noscale">noscale</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="flash_wmode">{#media_dlg.wmode}</label></td>\r
- <td>\r
- <select id="flash_wmode" name="flash_wmode" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="window">window</option>\r
- <option value="opaque">opaque</option>\r
- <option value="transparent">transparent</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="flash_salign">{#media_dlg.salign}</label></td>\r
- <td>\r
- <select id="flash_salign" name="flash_salign" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="l">{#media_dlg.align_left}</option>\r
- <option value="t">{#media_dlg.align_top}</option>\r
- <option value="r">{#media_dlg.align_right}</option>\r
- <option value="b">{#media_dlg.align_bottom}</option>\r
- <option value="tl">{#media_dlg.align_top_left}</option>\r
- <option value="tr">{#media_dlg.align_top_right}</option>\r
- <option value="bl">{#media_dlg.align_bottom_left}</option>\r
- <option value="br">{#media_dlg.align_bottom_right}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flash_play" name="flash_play" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flash_play">{#media_dlg.play}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flash_loop" name="flash_loop" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flash_loop">{#media_dlg.loop}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flash_menu" name="flash_menu" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flash_menu">{#media_dlg.menu}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flash_swliveconnect" name="flash_swliveconnect" onchange="generatePreview();" /></td>\r
- <td><label for="flash_swliveconnect">{#media_dlg.liveconnect}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
-\r
- <table>\r
- <tr>\r
- <td><label for="flash_base">{#media_dlg.base}</label></td>\r
- <td><input type="text" id="flash_base" name="flash_base" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="flash_flashvars">{#media_dlg.flashvars}</label></td>\r
- <td><input type="text" id="flash_flashvars" name="flash_flashvars" onchange="generatePreview();" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset id="flv_options">\r
- <legend>{#media_dlg.flv_options}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="flv_scalemode">{#media_dlg.flv_scalemode}</label></td>\r
- <td>\r
- <select id="flv_scalemode" name="flv_scalemode" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="none">none</option>\r
- <option value="double">double</option>\r
- <option value="full">full</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="flv_buffer">{#media_dlg.flv_buffer}</label></td>\r
- <td><input type="text" id="flv_buffer" name="flv_buffer" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="flv_startimage">{#media_dlg.flv_startimage}</label></td>\r
- <td><input type="text" id="flv_startimage" name="flv_startimage" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>\r
- <td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="flv_defaultvolume">{#media_dlg.flv_defaultvolume}</label></td>\r
- <td><input type="text" id="flv_defaultvolume" name="flv_defaultvolume" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="flv_starttime">{#media_dlg.flv_starttime}</label></td>\r
- <td><input type="text" id="flv_starttime" name="flv_starttime" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flv_hiddengui" name="flv_hiddengui" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flv_hiddengui">{#media_dlg.flv_hiddengui}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flv_autostart" name="flv_autostart" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flv_autostart">{#media_dlg.flv_autostart}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flv_loop" name="flv_loop" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flv_loop">{#media_dlg.flv_loop}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flv_showscalemodes" name="flv_showscalemodes" onchange="generatePreview();" /></td>\r
- <td><label for="flv_showscalemodes">{#media_dlg.flv_showscalemodes}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flv_smoothvideo" name="flash_flv_flv_smoothvideosmoothvideo" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="flv_smoothvideo">{#media_dlg.flv_smoothvideo}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="flv_jscallback" name="flv_jscallback" onchange="generatePreview();" /></td>\r
- <td><label for="flv_jscallback">{#media_dlg.flv_jscallback}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset id="qt_options">\r
- <legend>{#media_dlg.qt_options}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_loop" name="qt_loop" onchange="generatePreview();" /></td>\r
- <td><label for="qt_loop">{#media_dlg.loop}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_autoplay" name="qt_autoplay" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="qt_autoplay">{#media_dlg.play}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_cache" name="qt_cache" onchange="generatePreview();" /></td>\r
- <td><label for="qt_cache">{#media_dlg.cache}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_controller" name="qt_controller" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="qt_controller">{#media_dlg.controller}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_correction" name="qt_correction" onchange="generatePreview();" /></td>\r
- <td><label for="qt_correction">{#media_dlg.correction}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_enablejavascript" name="qt_enablejavascript" onchange="generatePreview();" /></td>\r
- <td><label for="qt_enablejavascript">{#media_dlg.enablejavascript}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_kioskmode" name="qt_kioskmode" onchange="generatePreview();" /></td>\r
- <td><label for="qt_kioskmode">{#media_dlg.kioskmode}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_autohref" name="qt_autohref" onchange="generatePreview();" /></td>\r
- <td><label for="qt_autohref">{#media_dlg.autohref}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_playeveryframe" name="qt_playeveryframe" onchange="generatePreview();" /></td>\r
- <td><label for="qt_playeveryframe">{#media_dlg.playeveryframe}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="qt_targetcache" name="qt_targetcache" onchange="generatePreview();" /></td>\r
- <td><label for="qt_targetcache">{#media_dlg.targetcache}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="qt_scale">{#media_dlg.scale}</label></td>\r
- <td><select id="qt_scale" name="qt_scale" class="mceEditableSelect" onchange="generatePreview();">\r
- <option value="">{#not_set}</option> \r
- <option value="tofit">tofit</option>\r
- <option value="aspect">aspect</option>\r
- </select>\r
- </td>\r
-\r
- <td colspan="2"> </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="qt_starttime">{#media_dlg.starttime}</label></td>\r
- <td><input type="text" id="qt_starttime" name="qt_starttime" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="qt_endtime">{#media_dlg.endtime}</label></td>\r
- <td><input type="text" id="qt_endtime" name="qt_endtime" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="qt_target">{#media_dlg.target}</label></td>\r
- <td><input type="text" id="qt_target" name="qt_target" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="qt_href">{#media_dlg.href}</label></td>\r
- <td><input type="text" id="qt_href" name="qt_href" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="qt_qtsrcchokespeed">{#media_dlg.qtsrcchokespeed}</label></td>\r
- <td><input type="text" id="qt_qtsrcchokespeed" name="qt_qtsrcchokespeed" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="qt_volume">{#media_dlg.volume}</label></td>\r
- <td><input type="text" id="qt_volume" name="qt_volume" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="qt_qtsrc">{#media_dlg.qtsrc}</label></td>\r
- <td colspan="4">\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input type="text" id="qt_qtsrc" name="qt_qtsrc" onchange="generatePreview();" /></td>\r
- <td id="qtsrcfilebrowsercontainer"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset id="wmp_options">\r
- <legend>{#media_dlg.wmp_options}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_autostart" name="wmp_autostart" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_autostart">{#media_dlg.autostart}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_enabled" name="wmp_enabled" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_enabled">{#media_dlg.enabled}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_enablecontextmenu" name="wmp_enablecontextmenu" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_enablecontextmenu">{#media_dlg.menu}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_fullscreen" name="wmp_fullscreen" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_fullscreen">{#media_dlg.fullscreen}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_invokeurls" name="wmp_invokeurls" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_invokeurls">{#media_dlg.invokeurls}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_mute" name="wmp_mute" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_mute">{#media_dlg.mute}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_stretchtofit" name="wmp_stretchtofit" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_stretchtofit">{#media_dlg.stretchtofit}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="wmp_windowlessvideo" name="wmp_windowlessvideo" onchange="generatePreview();" /></td>\r
- <td><label for="wmp_windowlessvideo">{#media_dlg.windowlessvideo}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="wmp_balance">{#media_dlg.balance}</label></td>\r
- <td><input type="text" id="wmp_balance" name="wmp_balance" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="wmp_baseurl">{#media_dlg.baseurl}</label></td>\r
- <td><input type="text" id="wmp_baseurl" name="wmp_baseurl" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="wmp_captioningid">{#media_dlg.captioningid}</label></td>\r
- <td><input type="text" id="wmp_captioningid" name="wmp_captioningid" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="wmp_currentmarker">{#media_dlg.currentmarker}</label></td>\r
- <td><input type="text" id="wmp_currentmarker" name="wmp_currentmarker" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="wmp_currentposition">{#media_dlg.currentposition}</label></td>\r
- <td><input type="text" id="wmp_currentposition" name="wmp_currentposition" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="wmp_defaultframe">{#media_dlg.defaultframe}</label></td>\r
- <td><input type="text" id="wmp_defaultframe" name="wmp_defaultframe" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="wmp_playcount">{#media_dlg.playcount}</label></td>\r
- <td><input type="text" id="wmp_playcount" name="wmp_playcount" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="wmp_rate">{#media_dlg.rate}</label></td>\r
- <td><input type="text" id="wmp_rate" name="wmp_rate" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="wmp_uimode">{#media_dlg.uimode}</label></td>\r
- <td><input type="text" id="wmp_uimode" name="wmp_uimode" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="wmp_volume">{#media_dlg.volume}</label></td>\r
- <td><input type="text" id="wmp_volume" name="wmp_volume" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset id="rmp_options">\r
- <legend>{#media_dlg.rmp_options}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_autostart" name="rmp_autostart" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_autostart">{#media_dlg.autostart}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_loop" name="rmp_loop" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_loop">{#media_dlg.loop}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_autogotourl" name="rmp_autogotourl" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_autogotourl">{#media_dlg.autogotourl}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_center" name="rmp_center" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_center">{#media_dlg.center}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_imagestatus" name="rmp_imagestatus" checked="checked" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_imagestatus">{#media_dlg.imagestatus}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_maintainaspect" name="rmp_maintainaspect" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_maintainaspect">{#media_dlg.maintainaspect}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_nojava" name="rmp_nojava" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_nojava">{#media_dlg.nojava}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_prefetch" name="rmp_prefetch" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_prefetch">{#media_dlg.prefetch}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="rmp_shuffle" name="rmp_shuffle" onchange="generatePreview();" /></td>\r
- <td><label for="rmp_shuffle">{#media_dlg.shuffle}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- \r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="rmp_console">{#media_dlg.console}</label></td>\r
- <td><input type="text" id="rmp_console" name="rmp_console" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="rmp_controls">{#media_dlg.controls}</label></td>\r
- <td><input type="text" id="rmp_controls" name="rmp_controls" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="rmp_numloop">{#media_dlg.numloop}</label></td>\r
- <td><input type="text" id="rmp_numloop" name="rmp_numloop" onchange="generatePreview();" /></td>\r
-\r
- <td><label for="rmp_scriptcallbacks">{#media_dlg.scriptcallbacks}</label></td>\r
- <td><input type="text" id="rmp_scriptcallbacks" name="rmp_scriptcallbacks" onchange="generatePreview();" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <fieldset id="shockwave_options">\r
- <legend>{#media_dlg.shockwave_options}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="shockwave_swstretchstyle">{#media_dlg.swstretchstyle}</label></td>\r
- <td>\r
- <select id="shockwave_swstretchstyle" name="shockwave_swstretchstyle" onchange="generatePreview();">\r
- <option value="none">{#not_set}</option>\r
- <option value="meet">Meet</option>\r
- <option value="fill">Fill</option>\r
- <option value="stage">Stage</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="shockwave_swvolume">{#media_dlg.volume}</label></td>\r
- <td><input type="text" id="shockwave_swvolume" name="shockwave_swvolume" onchange="generatePreview();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="shockwave_swstretchhalign">{#media_dlg.swstretchhalign}</label></td>\r
- <td>\r
- <select id="shockwave_swstretchhalign" name="shockwave_swstretchhalign" onchange="generatePreview();">\r
- <option value="none">{#not_set}</option>\r
- <option value="left">{#media_dlg.align_left}</option>\r
- <option value="center">{#media_dlg.align_center}</option>\r
- <option value="right">{#media_dlg.align_right}</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="shockwave_swstretchvalign">{#media_dlg.swstretchvalign}</label></td>\r
- <td>\r
- <select id="shockwave_swstretchvalign" name="shockwave_swstretchvalign" onchange="generatePreview();">\r
- <option value="none">{#not_set}</option>\r
- <option value="meet">Meet</option>\r
- <option value="fill">Fill</option>\r
- <option value="stage">Stage</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="shockwave_autostart" name="shockwave_autostart" onchange="generatePreview();" checked="checked" /></td>\r
- <td><label for="shockwave_autostart">{#media_dlg.autostart}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="shockwave_sound" name="shockwave_sound" onchange="generatePreview();" checked="checked" /></td>\r
- <td><label for="shockwave_sound">{#media_dlg.sound}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-\r
-\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="shockwave_swliveconnect" name="shockwave_swliveconnect" onchange="generatePreview();" /></td>\r
- <td><label for="shockwave_swliveconnect">{#media_dlg.liveconnect}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
-\r
- <td colspan="2">\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input type="checkbox" class="checkbox" id="shockwave_progress" name="shockwave_progress" onchange="generatePreview();" checked="checked" /></td>\r
- <td><label for="shockwave_progress">{#media_dlg.progress}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Nonbreaking',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceNonBreaking',function(){ed.execCommand('mceInsertContent',false,(ed.plugins.visualchars&&ed.plugins.visualchars.state)?'<span class="mceItemHidden mceVisualNbsp">·</span>':' ');});ed.addButton('nonbreaking',{title:'nonbreaking.nonbreaking_desc',cmd:'mceNonBreaking'});if(ed.getParam('nonbreaking_force_tab')){ed.onKeyDown.add(function(ed,e){if(tinymce.isIE&&e.keyCode==9){ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');ed.execCommand('mceNonBreaking');tinymce.dom.Event.cancel(e);}});}},getInfo:function(){return{longname:'Nonbreaking space',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('nonbreaking',tinymce.plugins.Nonbreaking);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.Nonbreaking', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceNonBreaking', function() {\r
- ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? '<span class="mceItemHidden mceVisualNbsp">·</span>' : ' ');\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});\r
-\r
- if (ed.getParam('nonbreaking_force_tab')) {\r
- ed.onKeyDown.add(function(ed, e) {\r
- if (tinymce.isIE && e.keyCode == 9) {\r
- ed.execCommand('mceNonBreaking');\r
- ed.execCommand('mceNonBreaking');\r
- ed.execCommand('mceNonBreaking');\r
- tinymce.dom.Event.cancel(e);\r
- }\r
- });\r
- }\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Nonbreaking space',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
-\r
- // Private methods\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);\r
-})();
\ No newline at end of file
+++ /dev/null
-(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.NonEditablePlugin',{init:function(ed,url){var t=this,editClass,nonEditClass;t.editor=ed;editClass=ed.getParam("noneditable_editable_class","mceEditable");nonEditClass=ed.getParam("noneditable_noneditable_class","mceNonEditable");ed.onNodeChange.addToTop(function(ed,cm,n){var sc,ec;sc=ed.dom.getParent(ed.selection.getStart(),function(n){return ed.dom.hasClass(n,nonEditClass);});ec=ed.dom.getParent(ed.selection.getEnd(),function(n){return ed.dom.hasClass(n,nonEditClass);});if(sc||ec){t._setDisabled(1);return false;}else t._setDisabled(0);});},getInfo:function(){return{longname:'Non editable elements',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_block:function(ed,e){var k=e.keyCode;if((k>32&&k<41)||(k>111&&k<124))return;return Event.cancel(e);},_setDisabled:function(s){var t=this,ed=t.editor;tinymce.each(ed.controlManager.controls,function(c){c.setDisabled(s);});if(s!==t.disabled){if(s){ed.onKeyDown.addToTop(t._block);ed.onKeyPress.addToTop(t._block);ed.onKeyUp.addToTop(t._block);ed.onPaste.addToTop(t._block);}else{ed.onKeyDown.remove(t._block);ed.onKeyPress.remove(t._block);ed.onKeyUp.remove(t._block);ed.onPaste.remove(t._block);}t.disabled=s;}}});tinymce.PluginManager.add('noneditable',tinymce.plugins.NonEditablePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 743 2008-03-23 17:47:33Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var Event = tinymce.dom.Event;\r
-\r
- tinymce.create('tinymce.plugins.NonEditablePlugin', {\r
- init : function(ed, url) {\r
- var t = this, editClass, nonEditClass;\r
-\r
- t.editor = ed;\r
- editClass = ed.getParam("noneditable_editable_class", "mceEditable");\r
- nonEditClass = ed.getParam("noneditable_noneditable_class", "mceNonEditable");\r
-\r
- ed.onNodeChange.addToTop(function(ed, cm, n) {\r
- var sc, ec;\r
-\r
- // Block if start or end is inside a non editable element\r
- sc = ed.dom.getParent(ed.selection.getStart(), function(n) {\r
- return ed.dom.hasClass(n, nonEditClass);\r
- });\r
-\r
- ec = ed.dom.getParent(ed.selection.getEnd(), function(n) {\r
- return ed.dom.hasClass(n, nonEditClass);\r
- });\r
-\r
- // Block or unblock\r
- if (sc || ec) {\r
- t._setDisabled(1);\r
- return false;\r
- } else\r
- t._setDisabled(0);\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Non editable elements',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- _block : function(ed, e) {\r
- var k = e.keyCode;\r
-\r
- // Don't block arrow keys, pg up/down, and F1-F12\r
- if ((k > 32 && k < 41) || (k > 111 && k < 124))\r
- return;\r
-\r
- return Event.cancel(e);\r
- },\r
-\r
- _setDisabled : function(s) {\r
- var t = this, ed = t.editor;\r
-\r
- tinymce.each(ed.controlManager.controls, function(c) {\r
- c.setDisabled(s);\r
- });\r
-\r
- if (s !== t.disabled) {\r
- if (s) {\r
- ed.onKeyDown.addToTop(t._block);\r
- ed.onKeyPress.addToTop(t._block);\r
- ed.onKeyUp.addToTop(t._block);\r
- ed.onPaste.addToTop(t._block);\r
- } else {\r
- ed.onKeyDown.remove(t._block);\r
- ed.onKeyPress.remove(t._block);\r
- ed.onKeyUp.remove(t._block);\r
- ed.onPaste.remove(t._block);\r
- }\r
-\r
- t.disabled = s;\r
- }\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-.mcePageBreak {display:block;border:0;width:100%;height:12px;border-top:1px dotted #ccc;margin-top:15px;background:#fff url(../img/pagebreak.gif) no-repeat center top;}
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.PageBreakPlugin',{init:function(ed,url){var pb='<img src="'+url+'/img/trans.gif" class="mcePageBreak mceItemNoResize" />',cls='mcePageBreak',sep=ed.getParam('pagebreak_separator','<!-- pagebreak -->'),pbRE;pbRE=new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return'\\'+a;}),'g');ed.addCommand('mcePageBreak',function(){ed.execCommand('mceInsertContent',0,pb);});ed.addButton('pagebreak',{title:'pagebreak.desc',cmd:cls});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+"/css/content.css");if(ed.theme.onResolveName){ed.theme.onResolveName.add(function(th,o){if(o.node.nodeName=='IMG'&&ed.dom.hasClass(o.node,cls))o.name='pagebreak';});}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='IMG'&&ed.dom.hasClass(e,cls))ed.selection.select(e);});ed.onNodeChange.add(function(ed,cm,n){cm.setActive('pagebreak',n.nodeName==='IMG'&&ed.dom.hasClass(n,cls));});ed.onBeforeSetContent.add(function(ed,o){o.content=o.content.replace(pbRE,pb);});ed.onPostProcess.add(function(ed,o){if(o.get)o.content=o.content.replace(/<img[^>]+>/g,function(im){if(im.indexOf('class="mcePageBreak')!==-1)im=sep;return im;});});},getInfo:function(){return{longname:'PageBreak',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('pagebreak',tinymce.plugins.PageBreakPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.PageBreakPlugin', {\r
- init : function(ed, url) {\r
- var pb = '<img src="' + url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;\r
-\r
- pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');\r
-\r
- // Register commands\r
- ed.addCommand('mcePageBreak', function() {\r
- ed.execCommand('mceInsertContent', 0, pb);\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});\r
-\r
- ed.onInit.add(function() {\r
- if (ed.settings.content_css !== false)\r
- ed.dom.loadCSS(url + "/css/content.css");\r
-\r
- if (ed.theme.onResolveName) {\r
- ed.theme.onResolveName.add(function(th, o) {\r
- if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))\r
- o.name = 'pagebreak';\r
- });\r
- }\r
- });\r
-\r
- ed.onClick.add(function(ed, e) {\r
- e = e.target;\r
-\r
- if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))\r
- ed.selection.select(e);\r
- });\r
-\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));\r
- });\r
-\r
- ed.onBeforeSetContent.add(function(ed, o) {\r
- o.content = o.content.replace(pbRE, pb);\r
- });\r
-\r
- ed.onPostProcess.add(function(ed, o) {\r
- if (o.get)\r
- o.content = o.content.replace(/<img[^>]+>/g, function(im) {\r
- if (im.indexOf('class="mcePageBreak') !== -1)\r
- im = sep;\r
-\r
- return im;\r
- });\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'PageBreak',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<title>blank_page</title>\r
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<link href="css/blank.css" rel="stylesheet" type="text/css" />\r
-<base target="_self" />\r
-<script type="text/javascript">\r
-function init() {\r
- if (parent.tinymce.isIE)\r
- document.body.contentEditable = true;\r
- else\r
- document.designMode = 'on';\r
-\r
- parent.initIframe(document);\r
- window.focus();\r
-}\r
-</script>\r
-</head>\r
-<body onload="init();">\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-html, body {height:98%}\r
-body {\r
-background-color: #FFFFFF;\r
-font-family: Verdana, Arial, Helvetica, sans-serif;\r
-font-size: 10px;\r
-scrollbar-3dlight-color: #F0F0EE;\r
-scrollbar-arrow-color: #676662;\r
-scrollbar-base-color: #F0F0EE;\r
-scrollbar-darkshadow-color: #DDDDDD;\r
-scrollbar-face-color: #E0E0DD;\r
-scrollbar-highlight-color: #F0F0EE;\r
-scrollbar-shadow-color: #F0F0EE;\r
-scrollbar-track-color: #F5F5F5;\r
-}\r
+++ /dev/null
-.sourceIframe {\r
- border: 1px solid #808080;\r
-}\r
+++ /dev/null
-(function(){var Event=tinymce.dom.Event;tinymce.create('tinymce.plugins.PastePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mcePasteText',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pastetext.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(clipboardData.getData("Text"),true);}else t._insertText(v.html,v.linebreaks);});ed.addCommand('mcePasteWord',function(ui,v){if(ui){if((ed.getParam('paste_use_dialog',true))||(!tinymce.isIE)){ed.windowManager.open({file:url+'/pasteword.htm',width:450,height:400,inline:1},{plugin_url:url});}else t._insertText(t._clipboardHTML());}else t._insertWordContent(v);});ed.addCommand('mceSelectAll',function(){ed.execCommand('selectall');});ed.addButton('pastetext',{title:'paste.paste_text_desc',cmd:'mcePasteText',ui:true});ed.addButton('pasteword',{title:'paste.paste_word_desc',cmd:'mcePasteWord',ui:true});ed.addButton('selectall',{title:'paste.selectall_desc',cmd:'mceSelectAll'});if(ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onPaste.add(function(ed,e){return t._handlePasteEvent(e)});}if(!tinymce.isIE&&ed.getParam("paste_auto_cleanup_on_paste",false)){ed.onKeyDown.add(function(ed,e){if(e.ctrlKey&&e.keyCode==86){window.setTimeout(function(){ed.execCommand("mcePasteText",true);},1);Event.cancel(e);}});}},getInfo:function(){return{longname:'Paste text/word',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_handlePasteEvent:function(e){var html=this._clipboardHTML(),ed=this.editor,sel=ed.selection,r;if(ed&&(r=sel.getRng())&&r.text.length>0)ed.execCommand('delete');if(html&&html.length>0)ed.execCommand('mcePasteWord',false,html);return Event.cancel(e);},_insertText:function(content,bLinebreaks){content=this.editor.dom.encode(content);if(content&&content.length>0){if(bLinebreaks){if(this.editor.getParam("paste_create_paragraphs",true)){var rl=this.editor.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);content=content.replace(/\r\n\r\n/g,'</p><p>');content=content.replace(/\r\r/g,'</p><p>');content=content.replace(/\n\n/g,'</p><p>');if((pos=content.indexOf('</p><p>'))!=-1){this.editor.execCommand("Delete");var node=this.editor.selection.getNode();var breakElms=[];do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node;}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">";}before+="<p>";content=before+content.substring(pos+7)+after;}}if(this.editor.getParam("paste_create_linebreaks",true)){content=content.replace(/\r\n/g,'<br />');content=content.replace(/\r/g,'<br />');content=content.replace(/\n/g,'<br />');}}this.editor.execCommand("mceInsertRawHTML",false,content);}},_insertWordContent:function(content){var t=this,ed=t.editor;if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','before',content);var rl=ed.getParam("paste_replace_list",'\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');for(var i=0;i<rl.length;i+=2)content=content.replace(new RegExp(rl[i],'gi'),rl[i+1]);if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>');}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");if(this.editor.getParam("paste_remove_spans",true))content=content.replace(/<\/?span[^>]*>/gi,"");if(this.editor.getParam("paste_remove_styles",true))content=content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");switch(this.editor.getParam("paste_strip_class_attributes","all")){case"all":content=content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");break;case"mso":content=content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)','gi'),"<$1$3");break;}content=content.replace(new RegExp('href="?'+this._reEscape(""+document.location)+'','gi'),'href="'+this.editor.documentBaseURI.getURI());content=content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/-- page break --\s*<p> <\/p>/gi,"");content=content.replace(/-- page break --/gi,"");if(!this.editor.getParam('force_p_newlines')){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi');}if(!tinymce.isIE&&!this.editor.getParam('force_p_newlines')){content=content.replace(/<\/?p[^>]*>/gi,"");}content=content.replace(/<\/?div[^>]*>/gi,"");if(this.editor.getParam("paste_convert_middot_lists",true)){var div=ed.dom.create("div",null,content);var className=this.editor.getParam("paste_unindented_list_class","unIndentedList");while(this._convertMiddots(div,"--list--"));while(this._convertMiddots(div,middot,className));while(this._convertMiddots(div,bull));content=div.innerHTML;}if(this.editor.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]> <\/h[1-6]>/gi,'<p> </p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b> <\/b>/gi,'<b> </b>');content=content.replace(/^( )*/gi,'');}content=content.replace(/--list--/gi,"");if(ed.getParam('paste_insert_word_content_callback'))content=ed.execCallback('paste_insert_word_content_callback','after',content);this.editor.execCommand("mceInsertContent",false,content);if(this.editor.getParam('paste_force_cleanup_wordpaste',true)){var ed=this.editor;window.setTimeout(function(){ed.execCommand("mceCleanup");},1);}}},_reEscape:function(s){var l="?.\\*[](){}+^$:";var o="";for(var i=0;i<s.length;i++){var c=s.charAt(i);if(l.indexOf(c)!=-1)o+='\\'+c;else o+=c;}return o;},_convertMiddots:function(div,search,class_name){var ed=this.editor,mdot=String.fromCharCode(183),bull=String.fromCharCode(8226);var nodes,prevul,i,p,ul,li,np,cp,li;nodes=div.getElementsByTagName("p");for(i=0;i<nodes.length;i++){p=nodes[i];if(p.innerHTML.indexOf(search)==0){ul=ed.dom.create("ul");if(class_name)ul.className=class_name;li=ed.dom.create("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');ul.appendChild(li);np=p.nextSibling;while(np){if(np.nodeType==3&&new RegExp('^\\s$','m').test(np.nodeValue)){np=np.nextSibling;continue;}if(search==mdot){if(np.nodeType==1&&new RegExp('^o(\\s+| )').test(np.innerHTML)){if(!prevul){prevul=ul;ul=ed.dom.create("ul");prevul.appendChild(ul);}np.innerHTML=np.innerHTML.replace(/^o/,'');}else{if(prevul){ul=prevul;prevul=null;}if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}}else{if(np.nodeType!=1||np.innerHTML.indexOf(search)!=0)break;}cp=np.nextSibling;li=ed.dom.create("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp;}p.parentNode.replaceChild(ul,p);return true;}}return false;},_clipboardHTML:function(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}});tinymce.PluginManager.add('paste',tinymce.plugins.PastePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 862 2008-06-02 20:09:06Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var Event = tinymce.dom.Event;\r
-\r
- tinymce.create('tinymce.plugins.PastePlugin', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed; \r
-\r
- // Register commands\r
- ed.addCommand('mcePasteText', function(ui, v) {\r
- if (ui) {\r
- if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {\r
- ed.windowManager.open({\r
- file : url + '/pastetext.htm',\r
- width : 450,\r
- height : 400,\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- } else\r
- t._insertText(clipboardData.getData("Text"), true);\r
- } else\r
- t._insertText(v.html, v.linebreaks);\r
- });\r
-\r
- ed.addCommand('mcePasteWord', function(ui, v) {\r
- if (ui) {\r
- if ((ed.getParam('paste_use_dialog', true)) || (!tinymce.isIE)) {\r
- ed.windowManager.open({\r
- file : url + '/pasteword.htm',\r
- width : 450,\r
- height : 400,\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- } else\r
- t._insertText(t._clipboardHTML());\r
- } else\r
- t._insertWordContent(v);\r
- });\r
-\r
- ed.addCommand('mceSelectAll', function() {\r
- ed.execCommand('selectall'); \r
- });\r
-\r
- // Register buttons\r
- ed.addButton('pastetext', {title : 'paste.paste_text_desc', cmd : 'mcePasteText', ui : true});\r
- ed.addButton('pasteword', {title : 'paste.paste_word_desc', cmd : 'mcePasteWord', ui : true});\r
- ed.addButton('selectall', {title : 'paste.selectall_desc', cmd : 'mceSelectAll'});\r
-\r
- if (ed.getParam("paste_auto_cleanup_on_paste", false)) {\r
- ed.onPaste.add(function(ed, e) {\r
- return t._handlePasteEvent(e)\r
- });\r
- }\r
-\r
- if (!tinymce.isIE && ed.getParam("paste_auto_cleanup_on_paste", false)) {\r
- // Force paste dialog if non IE browser\r
- ed.onKeyDown.add(function(ed, e) {\r
- if (e.ctrlKey && e.keyCode == 86) {\r
- window.setTimeout(function() {\r
- ed.execCommand("mcePasteText", true);\r
- }, 1);\r
-\r
- Event.cancel(e);\r
- }\r
- });\r
- }\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Paste text/word',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _handlePasteEvent : function(e) {\r
- var html = this._clipboardHTML(), ed = this.editor, sel = ed.selection, r;\r
-\r
- // Removes italic, strong etc, the if was needed due to bug #1437114\r
- if (ed && (r = sel.getRng()) && r.text.length > 0)\r
- ed.execCommand('delete');\r
-\r
- if (html && html.length > 0)\r
- ed.execCommand('mcePasteWord', false, html);\r
-\r
- return Event.cancel(e);\r
- },\r
-\r
- _insertText : function(content, bLinebreaks) {\r
- content = this.editor.dom.encode(content);\r
-\r
- if (content && content.length > 0) {\r
- if (bLinebreaks) { \r
- // Special paragraph treatment \r
- if (this.editor.getParam("paste_create_paragraphs", true)) {\r
- var rl = this.editor.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');\r
- for (var i=0; i<rl.length; i+=2)\r
- content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);\r
-\r
- content = content.replace(/\r\n\r\n/g, '</p><p>');\r
- content = content.replace(/\r\r/g, '</p><p>');\r
- content = content.replace(/\n\n/g, '</p><p>');\r
-\r
- // Has paragraphs \r
- if ((pos = content.indexOf('</p><p>')) != -1) { \r
- this.editor.execCommand("Delete"); \r
-\r
- var node = this.editor.selection.getNode(); \r
-\r
- // Get list of elements to break \r
- var breakElms = [];\r
-\r
- do { \r
- if (node.nodeType == 1) { \r
- // Don't break tables and break at body \r
- if (node.nodeName == "TD" || node.nodeName == "BODY") \r
- break; \r
- \r
- breakElms[breakElms.length] = node; \r
- } \r
- } while(node = node.parentNode); \r
-\r
- var before = "", after = "</p>"; \r
- before += content.substring(0, pos); \r
-\r
- for (var i=0; i<breakElms.length; i++) { \r
- before += "</" + breakElms[i].nodeName + ">"; \r
- after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">"; \r
- } \r
-\r
- before += "<p>"; \r
- content = before + content.substring(pos+7) + after; \r
- } \r
- } \r
-\r
- if (this.editor.getParam("paste_create_linebreaks", true)) {\r
- content = content.replace(/\r\n/g, '<br />');\r
- content = content.replace(/\r/g, '<br />');\r
- content = content.replace(/\n/g, '<br />');\r
- }\r
- } \r
-\r
- this.editor.execCommand("mceInsertRawHTML", false, content); \r
- }\r
- },\r
-\r
- _insertWordContent : function(content) { \r
- var t = this, ed = t.editor;\r
-\r
- if (content && content.length > 0) {\r
- // Cleanup Word content\r
- var bull = String.fromCharCode(8226);\r
- var middot = String.fromCharCode(183);\r
-\r
- if (ed.getParam('paste_insert_word_content_callback'))\r
- content = ed.execCallback('paste_insert_word_content_callback', 'before', content);\r
-\r
- var rl = ed.getParam("paste_replace_list", '\u2122,<sup>TM</sup>,\u2026,...,\u201c|\u201d,",\u2019,\',\u2013|\u2014|\u2015|\u2212,-').split(',');\r
- for (var i=0; i<rl.length; i+=2)\r
- content = content.replace(new RegExp(rl[i], 'gi'), rl[i+1]);\r
-\r
- if (this.editor.getParam("paste_convert_headers_to_strong", false)) {\r
- content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');\r
- }\r
-\r
- content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");\r
- content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");\r
- content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list\r
- content = content.replace(/<o:p><\/o:p>/gi, "");\r
- content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks\r
- content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), ""); // Word comments\r
-\r
- if (this.editor.getParam("paste_remove_spans", true))\r
- content = content.replace(/<\/?span[^>]*>/gi, "");\r
-\r
- if (this.editor.getParam("paste_remove_styles", true))\r
- content = content.replace(new RegExp('<(\\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");\r
-\r
- content = content.replace(/<\/?font[^>]*>/gi, "");\r
-\r
- // Strips class attributes.\r
- switch (this.editor.getParam("paste_strip_class_attributes", "all")) {\r
- case "all":\r
- content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");\r
- break;\r
-\r
- case "mso":\r
- content = content.replace(new RegExp('<(\\w[^>]*) class="?mso([^ |>]*)([^>]*)', 'gi'), "<$1$3");\r
- break;\r
- }\r
-\r
- content = content.replace(new RegExp('href="?' + this._reEscape("" + document.location) + '', 'gi'), 'href="' + this.editor.documentBaseURI.getURI());\r
- content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");\r
- content = content.replace(/<\\?\?xml[^>]*>/gi, "");\r
- content = content.replace(/<\/?\w+:[^>]*>/gi, "");\r
- content = content.replace(/-- page break --\s*<p> <\/p>/gi, ""); // Remove pagebreaks\r
- content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks\r
-\r
- // content = content.replace(/\/? */gi, ""); \r
- // content = content.replace(/<p> <\/p>/gi, '');\r
-\r
- if (!this.editor.getParam('force_p_newlines')) {\r
- content = content.replace('', '' ,'gi');\r
- content = content.replace('</p>', '<br /><br />' ,'gi');\r
- }\r
-\r
- if (!tinymce.isIE && !this.editor.getParam('force_p_newlines')) {\r
- content = content.replace(/<\/?p[^>]*>/gi, "");\r
- }\r
-\r
- content = content.replace(/<\/?div[^>]*>/gi, "");\r
-\r
- // Convert all middlot lists to UL lists\r
- if (this.editor.getParam("paste_convert_middot_lists", true)) {\r
- var div = ed.dom.create("div", null, content);\r
-\r
- // Convert all middot paragraphs to li elements\r
- var className = this.editor.getParam("paste_unindented_list_class", "unIndentedList");\r
-\r
- while (this._convertMiddots(div, "--list--")) ; // bull\r
- while (this._convertMiddots(div, middot, className)) ; // Middot\r
- while (this._convertMiddots(div, bull)) ; // bull\r
-\r
- content = div.innerHTML;\r
- }\r
-\r
- // Replace all headers with strong and fix some other issues\r
- if (this.editor.getParam("paste_convert_headers_to_strong", false)) {\r
- content = content.replace(/<h[1-6]> <\/h[1-6]>/gi, '<p> </p>');\r
- content = content.replace(/<h[1-6]>/gi, '<p><b>');\r
- content = content.replace(/<\/h[1-6]>/gi, '</b></p>');\r
- content = content.replace(/<b> <\/b>/gi, '<b> </b>');\r
- content = content.replace(/^( )*/gi, '');\r
- }\r
-\r
- content = content.replace(/--list--/gi, ""); // Remove --list--\r
-\r
- if (ed.getParam('paste_insert_word_content_callback'))\r
- content = ed.execCallback('paste_insert_word_content_callback', 'after', content);\r
-\r
- // Insert cleaned content\r
- this.editor.execCommand("mceInsertContent", false, content);\r
-\r
- if (this.editor.getParam('paste_force_cleanup_wordpaste', true)) {\r
- var ed = this.editor;\r
-\r
- window.setTimeout(function() {\r
- ed.execCommand("mceCleanup");\r
- }, 1); // Do normal cleanup detached from this thread\r
- }\r
- }\r
- },\r
-\r
- _reEscape : function(s) {\r
- var l = "?.\\*[](){}+^$:";\r
- var o = "";\r
-\r
- for (var i=0; i<s.length; i++) {\r
- var c = s.charAt(i);\r
-\r
- if (l.indexOf(c) != -1)\r
- o += '\\' + c;\r
- else\r
- o += c;\r
- }\r
-\r
- return o;\r
- },\r
-\r
- _convertMiddots : function(div, search, class_name) {\r
- var ed = this.editor, mdot = String.fromCharCode(183), bull = String.fromCharCode(8226);\r
- var nodes, prevul, i, p, ul, li, np, cp, li;\r
-\r
- nodes = div.getElementsByTagName("p");\r
- for (i=0; i<nodes.length; i++) {\r
- p = nodes[i];\r
-\r
- // Is middot\r
- if (p.innerHTML.indexOf(search) == 0) {\r
- ul = ed.dom.create("ul");\r
-\r
- if (class_name)\r
- ul.className = class_name;\r
-\r
- // Add the first one\r
- li = ed.dom.create("li");\r
- li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');\r
- ul.appendChild(li);\r
-\r
- // Add the rest\r
- np = p.nextSibling;\r
- while (np) {\r
- // If the node is whitespace, then\r
- // ignore it and continue on.\r
- if (np.nodeType == 3 && new RegExp('^\\s$', 'm').test(np.nodeValue)) {\r
- np = np.nextSibling;\r
- continue;\r
- }\r
-\r
- if (search == mdot) {\r
- if (np.nodeType == 1 && new RegExp('^o(\\s+| )').test(np.innerHTML)) {\r
- // Second level of nesting\r
- if (!prevul) {\r
- prevul = ul;\r
- ul = ed.dom.create("ul");\r
- prevul.appendChild(ul);\r
- }\r
- np.innerHTML = np.innerHTML.replace(/^o/, '');\r
- } else {\r
- // Pop the stack if we're going back up to the first level\r
- if (prevul) {\r
- ul = prevul;\r
- prevul = null;\r
- }\r
- // Not element or middot paragraph\r
- if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)\r
- break;\r
- }\r
- } else {\r
- // Not element or middot paragraph\r
- if (np.nodeType != 1 || np.innerHTML.indexOf(search) != 0)\r
- break;\r
- }\r
-\r
- cp = np.nextSibling;\r
- li = ed.dom.create("li");\r
- li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');\r
- np.parentNode.removeChild(np);\r
- ul.appendChild(li);\r
- np = cp;\r
- }\r
-\r
- p.parentNode.replaceChild(ul, p);\r
-\r
- return true;\r
- }\r
- }\r
-\r
- return false;\r
- },\r
-\r
- _clipboardHTML : function() {\r
- var div = document.getElementById('_TinyMCE_clipboardHTML');\r
-\r
- if (!div) {\r
- var div = document.createElement('DIV');\r
- div.id = '_TinyMCE_clipboardHTML';\r
-\r
- with (div.style) {\r
- visibility = 'hidden';\r
- overflow = 'hidden';\r
- position = 'absolute';\r
- width = 1;\r
- height = 1;\r
- }\r
-\r
- document.body.appendChild(div);\r
- }\r
-\r
- div.innerHTML = '';\r
- var rng = document.body.createTextRange();\r
- rng.moveToElementText(div);\r
- rng.execCommand('Paste');\r
- var html = div.innerHTML;\r
- div.innerHTML = '';\r
- return html;\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('paste', tinymce.plugins.PastePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-function saveContent() {\r
- if (document.forms[0].htmlSource.value == '') {\r
- tinyMCEPopup.close();\r
- return false;\r
- }\r
-\r
- tinyMCEPopup.execCommand('mcePasteText', false, {\r
- html : document.forms[0].htmlSource.value,\r
- linebreaks : document.forms[0].linebreaks.checked\r
- });\r
-\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function onLoadInit() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- // Remove Gecko spellchecking\r
- if (tinymce.isGecko)\r
- document.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");\r
-\r
- resizeInputs();\r
-}\r
-\r
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
-\r
-function resizeInputs() {\r
- if (!tinymce.isIE) {\r
- wHeight = self.innerHeight-80;\r
- wWidth = self.innerWidth-17;\r
- } else {\r
- wHeight = document.body.clientHeight-80;\r
- wWidth = document.body.clientWidth-17;\r
- }\r
-\r
- document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';\r
- document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';\r
-}\r
-\r
-tinyMCEPopup.onInit.add(onLoadInit);
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-function saveContent() {\r
- var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;\r
-\r
- if (html == ''){\r
- tinyMCEPopup.close();\r
- return false;\r
- }\r
-\r
- tinyMCEPopup.execCommand('mcePasteWord', false, html);\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function onLoadInit() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- // Fix for endless reloading in FF\r
- window.setTimeout(createIFrame, 10);\r
-}\r
-\r
-function createIFrame() {\r
- document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';\r
-}\r
-\r
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
-\r
-function initIframe(doc) {\r
- var dir = tinyMCEPopup.editor.settings.directionality;\r
-\r
- doc.body.dir = dir;\r
-\r
- // Remove Gecko spellchecking\r
- if (tinymce.isGecko)\r
- doc.body.spellcheck = tinyMCEPopup.getParam("gecko_spellcheck");\r
-\r
- resizeInputs();\r
-}\r
-\r
-function resizeInputs() {\r
- if (!tinymce.isIE) {\r
- wHeight = self.innerHeight - 80;\r
- wWidth = self.innerWidth - 18;\r
- } else {\r
- wHeight = document.body.clientHeight - 80;\r
- wWidth = document.body.clientWidth - 18;\r
- }\r
-\r
- var elm = document.getElementById('frmData');\r
- if (elm) {\r
- elm.style.height = Math.abs(wHeight) + 'px';\r
- elm.style.width = Math.abs(wWidth) + 'px';\r
- }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(onLoadInit);\r
+++ /dev/null
-tinyMCE.addI18n('en.paste_dlg',{\r
-text_title:"Use CTRL+V on your keyboard to paste the text into the window.",\r
-text_linebreaks:"Keep linebreaks",\r
-word_title:"Use CTRL+V on your keyboard to paste the text into the window."\r
-});
\ No newline at end of file
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#paste.paste_text_desc}</title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/pastetext.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
-<form name="source" onsubmit="saveContent();return false;" action="#">\r
- <div style="float: left" class="title">{#paste.paste_text_desc}</div>\r
-\r
- <div style="float: right">\r
- <input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{#paste_dlg.text_linebreaks}</label>\r
- </div>\r
-\r
- <br style="clear: both" />\r
-\r
- <div>{#paste_dlg.text_title}</div>\r
-\r
- <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" name="insert" value="{#insert}" id="insert" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
- </div>\r
- </div>\r
-</form>\r
-</body> \r
-</html>
\ No newline at end of file
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
- <title>{#paste.paste_word_desc}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/pasteword.js"></script>\r
- <link href="css/pasteword.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
- <form name="source" onsubmit="saveContent();" action="#">\r
- <div class="title">{#paste.paste_word_desc}</div>\r
-\r
- <div>{#paste_dlg.word_title}</div>\r
-\r
- <div id="iframecontainer"></div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="button" id="insert" name="insert" value="{#insert}" onclick="saveContent();" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Preview',{init:function(ed,url){var t=this,css=tinymce.explode(ed.settings.content_css);t.editor=ed;tinymce.each(css,function(u,k){css[k]=ed.documentBaseURI.toAbsolute(u);});ed.addCommand('mcePreview',function(){ed.windowManager.open({file:ed.getParam("plugin_preview_pageurl",url+"/preview.html"),width:parseInt(ed.getParam("plugin_preview_width","550")),height:parseInt(ed.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:css.join(','),inline:ed.getParam("plugin_preview_inline",1)},{base:ed.documentBaseURI.getURI()});});ed.addButton('preview',{title:'preview.preview_desc',cmd:'mcePreview'});},getInfo:function(){return{longname:'Preview',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('preview',tinymce.plugins.Preview);})();
\ No newline at end of file
+++ /dev/null
-/**
- * $Id: editor_plugin_src.js 895 2008-07-10 14:34:23Z spocke $
- *
- * @author Moxiecode
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
- */
-
-(function() {
- tinymce.create('tinymce.plugins.Preview', {
- init : function(ed, url) {
- var t = this, css = tinymce.explode(ed.settings.content_css);
-
- t.editor = ed;
-
- // Force absolute CSS urls
- tinymce.each(css, function(u, k) {
- css[k] = ed.documentBaseURI.toAbsolute(u);
- });
-
- ed.addCommand('mcePreview', function() {
- ed.windowManager.open({
- file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"),
- width : parseInt(ed.getParam("plugin_preview_width", "550")),
- height : parseInt(ed.getParam("plugin_preview_height", "600")),
- resizable : "yes",
- scrollbars : "yes",
- popup_css : css.join(','),
- inline : ed.getParam("plugin_preview_inline", 1)
- }, {
- base : ed.documentBaseURI.getURI()
- });
- });
-
- ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
- },
-
- getInfo : function() {
- return {
- longname : 'Preview',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('preview', tinymce.plugins.Preview);
-})();
\ No newline at end of file
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<script language="javascript" src="../../tiny_mce_popup.js"></script>\r
-<script type="text/javascript" src="jscripts/embed.js"></script>\r
-<script type="text/javascript">\r
-tinyMCEPopup.onInit.add(function(ed) {\r
- var dom = tinyMCEPopup.dom;\r
-\r
- // Load editor content_css\r
- tinymce.each(ed.settings.content_css.split(','), function(u) {\r
- dom.loadCSS(ed.documentBaseURI.toAbsolute(u));\r
- });\r
-\r
- // Place contents inside div container\r
- dom.setHTML('content', ed.getContent());\r
-});\r
-</script>\r
-<title>Example of a custom preview page</title>\r
-</head>\r
-<body>\r
-\r
-Editor contents: <br />\r
-<div id="content">\r
-<!-- Gets filled with editor contents -->\r
-</div>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-/**\r
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.\r
- */\r
-\r
-function writeFlash(p) {\r
- writeEmbed(\r
- 'D27CDB6E-AE6D-11cf-96B8-444553540000',\r
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
- 'application/x-shockwave-flash',\r
- p\r
- );\r
-}\r
-\r
-function writeShockWave(p) {\r
- writeEmbed(\r
- '166B1BCA-3F9C-11CF-8075-444553540000',\r
- 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',\r
- 'application/x-director',\r
- p\r
- );\r
-}\r
-\r
-function writeQuickTime(p) {\r
- writeEmbed(\r
- '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',\r
- 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',\r
- 'video/quicktime',\r
- p\r
- );\r
-}\r
-\r
-function writeRealMedia(p) {\r
- writeEmbed(\r
- 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',\r
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',\r
- 'audio/x-pn-realaudio-plugin',\r
- p\r
- );\r
-}\r
-\r
-function writeWindowsMedia(p) {\r
- p.url = p.src;\r
- writeEmbed(\r
- '6BF52A52-394A-11D3-B153-00C04F79FAA6',\r
- 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',\r
- 'application/x-mplayer2',\r
- p\r
- );\r
-}\r
-\r
-function writeEmbed(cls, cb, mt, p) {\r
- var h = '', n;\r
-\r
- h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';\r
- h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';\r
- h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';\r
- h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';\r
- h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';\r
- h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';\r
- h += '>';\r
-\r
- for (n in p)\r
- h += '<param name="' + n + '" value="' + p[n] + '">';\r
-\r
- h += '<embed type="' + mt + '"';\r
-\r
- for (n in p)\r
- h += n + '="' + p[n] + '" ';\r
-\r
- h += '></embed></object>';\r
-\r
- document.write(h);\r
-}\r
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
-<script language="javascript" src="../../tiny_mce_popup.js"></script>\r
-<script type="text/javascript" src="jscripts/embed.js"></script>\r
-<script type="text/javascript">\r
-tinyMCEPopup.onInit.add(function(ed) {\r
- var dom = tinyMCEPopup.dom;\r
-\r
- dom.setHTML('content', ed.getContent());\r
-});\r
-\r
-document.write('<base href="' + tinyMCEPopup.getWindowArg("base") + '">');\r
-</script>\r
-<title>{#preview.preview_desc}</title>\r
-</head>\r
-<body id="content">\r
-<!-- Gets filled with editor contents -->\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.Print', {\r
- init : function(ed, url) {\r
- ed.addCommand('mcePrint', function() {\r
- ed.getWin().print();\r
- });\r
-\r
- ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Print',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('print', tinymce.plugins.Print);\r
-})();\r
+++ /dev/null
-<!-- WebKit -->
\ No newline at end of file
+++ /dev/null
-(function(){var Event=tinymce.dom.Event,grep=tinymce.grep,each=tinymce.each,inArray=tinymce.inArray,isOldWebKit=tinymce.isOldWebKit;tinymce.create('tinymce.plugins.Safari',{init:function(ed){var t=this,dom;if(!tinymce.isWebKit)return;t.editor=ed;t.webKitFontSizes=['x-small','small','medium','large','x-large','xx-large','-webkit-xxx-large'];t.namedFontSizes=['xx-small','x-small','small','medium','large','x-large','xx-large'];ed.addCommand('CreateLink',function(u,v){var n=ed.selection.getNode(),dom=ed.dom,a;if(n&&(/^(left|right)$/i.test(dom.getStyle(n,'float',1))||/^(left|right)$/i.test(dom.getAttrib(n,'align')))){a=dom.create('a',{href:v},n.cloneNode());n.parentNode.replaceChild(a,n);ed.selection.select(a);}else ed.getDoc().execCommand("CreateLink",false,v);});ed.onPaste.add(function(ed,e){function removeStyles(e){e=e.target;if(e.nodeType==1){e.style.cssText='';each(ed.dom.select('*',e),function(e){e.style.cssText='';});}};Event.add(ed.getDoc(),'DOMNodeInserted',removeStyles);window.setTimeout(function(){Event.remove(ed.getDoc(),'DOMNodeInserted',removeStyles);},0);});ed.onKeyUp.add(function(ed,e){var h,b;if(e.keyCode==46||e.keyCode==8){b=ed.getBody();h=b.innerHTML;if(b.childNodes.length==1&&!/<(img|hr)/.test(h)&&tinymce.trim(h.replace(/<[^>]+>/g,'')).length==0)ed.setContent('',{format:'raw'});}});ed.addCommand('FormatBlock',function(u,v){var dom=ed.dom,e=dom.getParent(ed.selection.getNode(),dom.isBlock);if(e)dom.replace(dom.create(v),e,1);else ed.getDoc().execCommand("FormatBlock",false,v);});ed.addCommand('mceInsertContent',function(u,v){ed.getDoc().execCommand("InsertText",false,'mce_marker');ed.getBody().innerHTML=ed.getBody().innerHTML.replace(/mce_marker/g,v+'<span id="_mce_tmp">XX</span>');ed.selection.select(ed.dom.get('_mce_tmp'));ed.getDoc().execCommand("Delete",false,' ');});ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&(e.shiftKey||ed.settings.force_br_newlines&&ed.selection.getNode().nodeName!='LI')){t._insertBR(ed);Event.cancel(e);}});ed.addQueryValueHandler('FontSize',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&&(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&&(v=e.style.fontSize))return tinymce.inArray(t.namedFontSizes,v)+1;return ed.getDoc().queryCommandValue('FontSize');});ed.addQueryValueHandler('FontName',function(u,v){var e,v;if((e=ed.dom.getParent(ed.selection.getStart(),'span'))&&(v=e.style.fontFamily))return v.replace(/, /g,',');if((e=ed.dom.getParent(ed.selection.getEnd(),'span'))&&(v=e.style.fontFamily))return v.replace(/, /g,',');return ed.getDoc().queryCommandValue('FontName');});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName=='IMG'){t.selElm=e;ed.selection.select(e);}else t.selElm=null;});ed.onInit.add(function(){t._fixWebKitSpans();if(isOldWebKit)t._patchSafari2x(ed);});ed.onSetContent.add(function(){dom=ed.dom;each(['strong','b','em','u','strike','sub','sup','a'],function(v){each(grep(dom.select(v)).reverse(),function(n){var nn=n.nodeName.toLowerCase(),st;if(nn=='a'){if(n.name)dom.replace(dom.create('img',{mce_name:'a',name:n.name,'class':'mceItemAnchor'}),n);return;}switch(nn){case'b':case'strong':if(nn=='b')nn='strong';st='font-weight: bold;';break;case'em':st='font-style: italic;';break;case'u':st='text-decoration: underline;';break;case'sub':st='vertical-align: sub;';break;case'sup':st='vertical-align: super;';break;case'strike':st='text-decoration: line-through;';break;}dom.replace(dom.create('span',{mce_name:nn,style:st,'class':'Apple-style-span'}),n,1);});});});ed.onPreProcess.add(function(ed,o){dom=ed.dom;each(grep(o.node.getElementsByTagName('span')).reverse(),function(n){var v,bg;if(o.get){if(dom.hasClass(n,'Apple-style-span')){bg=n.style.backgroundColor;switch(dom.getAttrib(n,'mce_name')){case'font':if(!ed.settings.convert_fonts_to_spans)dom.setAttrib(n,'style','');break;case'strong':case'em':case'sub':case'sup':dom.setAttrib(n,'style','');break;case'strike':case'u':if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');else dom.setAttrib(n,'mce_name','');break;default:if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');}if(bg)n.style.backgroundColor=bg;}}if(dom.hasClass(n,'mceItemRemoved'))dom.remove(n,1);});});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,'</$1>');o.content=o.content.replace(/ id=\"undefined\"/g,'');});},getInfo:function(){return{longname:'Safari compatibility',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_fixWebKitSpans:function(){var t=this,ed=t.editor;if(!isOldWebKit){Event.add(ed.getDoc(),'DOMNodeInserted',function(e){e=e.target;if(e&&e.nodeType==1)t._fixAppleSpan(e);});}else{ed.onExecCommand.add(function(){each(ed.dom.select('span'),function(n){t._fixAppleSpan(n);});ed.nodeChanged();});}},_fixAppleSpan:function(e){var ed=this.editor,dom=ed.dom,fz=this.webKitFontSizes,fzn=this.namedFontSizes,s=ed.settings,st,p;if(dom.getAttrib(e,'mce_fixed'))return;if(e.nodeName=='SPAN'&&e.className=='Apple-style-span'){st=e.style;if(!s.convert_fonts_to_spans){if(st.fontSize){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'size',inArray(fz,st.fontSize)+1);}if(st.fontFamily){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'face',st.fontFamily);}if(st.color){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'color',dom.toHex(st.color));}if(st.backgroundColor){dom.setAttrib(e,'mce_name','font');dom.setStyle(e,'background-color',st.backgroundColor);}}else{if(st.fontSize)dom.setStyle(e,'fontSize',fzn[inArray(fz,st.fontSize)]);}if(st.fontWeight=='bold')dom.setAttrib(e,'mce_name','strong');if(st.fontStyle=='italic')dom.setAttrib(e,'mce_name','em');if(st.textDecoration=='underline')dom.setAttrib(e,'mce_name','u');if(st.textDecoration=='line-through')dom.setAttrib(e,'mce_name','strike');if(st.verticalAlign=='super')dom.setAttrib(e,'mce_name','sup');if(st.verticalAlign=='sub')dom.setAttrib(e,'mce_name','sub');dom.setAttrib(e,'mce_fixed','1');}},_patchSafari2x:function(ed){var t=this,setContent,getNode,dom=ed.dom,lr;if(ed.windowManager.onBeforeOpen){ed.windowManager.onBeforeOpen.add(function(){r=ed.selection.getRng();});}ed.selection.select=function(n){this.getSel().setBaseAndExtent(n,0,n,1);};getNode=ed.selection.getNode;ed.selection.getNode=function(){return t.selElm||getNode.call(this);};ed.selection.getRng=function(){var t=this,s=t.getSel(),d=ed.getDoc(),r,rb,ra,di;if(s.anchorNode){r=d.createRange();try{rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(1);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(1);di=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;r.setStart(di?s.anchorNode:s.focusNode,di?s.anchorOffset:s.focusOffset);r.setEnd(di?s.focusNode:s.anchorNode,di?s.focusOffset:s.anchorOffset);lr=r;}catch(ex){}}return r||lr;};setContent=ed.selection.setContent;ed.selection.setContent=function(h,s){var r=this.getRng(),b;try{setContent.call(this,h,s);}catch(ex){b=dom.create('body');b.innerHTML=h;each(b.childNodes,function(n){r.insertNode(n.cloneNode(true));});}};},_insertBR:function(ed){var dom=ed.dom,s=ed.selection,r=s.getRng(),br;r.insertNode(br=dom.create('br'));r.setStartAfter(br);r.setEndAfter(br);s.setRng(r);if(s.getSel().focusNode==br.previousSibling){s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'),br));s.collapse(1);}ed.getWin().scrollTo(0,dom.getPos(s.getRng().startContainer).y);}});tinymce.PluginManager.add('safari',tinymce.plugins.Safari);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;\r
-\r
- tinymce.create('tinymce.plugins.Safari', {\r
- init : function(ed) {\r
- var t = this, dom;\r
-\r
- // Ignore on non webkit\r
- if (!tinymce.isWebKit)\r
- return;\r
-\r
- t.editor = ed;\r
- t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];\r
- t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];\r
-\r
- // Safari CreateLink command will not work correctly on images that is aligned\r
- ed.addCommand('CreateLink', function(u, v) {\r
- var n = ed.selection.getNode(), dom = ed.dom, a;\r
-\r
- if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {\r
- a = dom.create('a', {href : v}, n.cloneNode());\r
- n.parentNode.replaceChild(a, n);\r
- ed.selection.select(a);\r
- } else\r
- ed.getDoc().execCommand("CreateLink", false, v);\r
- });\r
-\r
- ed.onPaste.add(function(ed, e) {\r
- function removeStyles(e) {\r
- e = e.target;\r
-\r
- if (e.nodeType == 1) {\r
- e.style.cssText = '';\r
-\r
- each(ed.dom.select('*', e), function(e) {\r
- e.style.cssText = '';\r
- });\r
- }\r
- };\r
-\r
- Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles);\r
-\r
- window.setTimeout(function() {\r
- Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);\r
- }, 0);\r
- });\r
-\r
- ed.onKeyUp.add(function(ed, e) {\r
- var h, b;\r
-\r
- // If backspace or delete key\r
- if (e.keyCode == 46 || e.keyCode == 8) {\r
- b = ed.getBody();\r
- h = b.innerHTML;\r
-\r
- // If there is no text content or images or hr elements then remove everything\r
- if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0)\r
- ed.setContent('', {format : 'raw'});\r
- }\r
- });\r
-\r
- // Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004\r
- ed.addCommand('FormatBlock', function(u, v) {\r
- var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);\r
-\r
- if (e)\r
- dom.replace(dom.create(v), e, 1);\r
- else\r
- ed.getDoc().execCommand("FormatBlock", false, v);\r
- });\r
-\r
- // Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382\r
- ed.addCommand('mceInsertContent', function(u, v) {\r
- ed.getDoc().execCommand("InsertText", false, 'mce_marker');\r
- ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>');\r
- ed.selection.select(ed.dom.get('_mce_tmp'));\r
- ed.getDoc().execCommand("Delete", false, ' ');\r
- });\r
-\r
- // Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973\r
- ed.onKeyPress.add(function(ed, e) {\r
- if (e.keyCode == 13 && (e.shiftKey || ed.settings.force_br_newlines && ed.selection.getNode().nodeName != 'LI')) {\r
- t._insertBR(ed);\r
- Event.cancel(e);\r
- }\r
- });\r
-\r
- // Safari returns incorrect values\r
- ed.addQueryValueHandler('FontSize', function(u, v) {\r
- var e, v;\r
-\r
- // Check for the real font size at the start of selection\r
- if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontSize))\r
- return tinymce.inArray(t.namedFontSizes, v) + 1;\r
-\r
- // Check for the real font size at the end of selection\r
- if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontSize))\r
- return tinymce.inArray(t.namedFontSizes, v) + 1;\r
-\r
- // Return default value it's better than nothing right!\r
- return ed.getDoc().queryCommandValue('FontSize');\r
- });\r
-\r
- // Safari returns incorrect values\r
- ed.addQueryValueHandler('FontName', function(u, v) {\r
- var e, v;\r
-\r
- // Check for the real font name at the start of selection\r
- if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontFamily))\r
- return v.replace(/, /g, ',');\r
-\r
- // Check for the real font name at the end of selection\r
- if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontFamily))\r
- return v.replace(/, /g, ',');\r
-\r
- // Return default value it's better than nothing right!\r
- return ed.getDoc().queryCommandValue('FontName');\r
- });\r
-\r
- // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250\r
- ed.onClick.add(function(ed, e) {\r
- e = e.target;\r
-\r
- if (e.nodeName == 'IMG') {\r
- t.selElm = e;\r
- ed.selection.select(e);\r
- } else\r
- t.selElm = null;\r
- });\r
-\r
-/* ed.onBeforeExecCommand.add(function(ed, c, b) {\r
- var r = t.bookmarkRng;\r
-\r
- // Restore selection\r
- if (r) {\r
- ed.selection.setRng(r);\r
- t.bookmarkRng = null;\r
- //console.debug('restore', r.startContainer, r.startOffset, r.endContainer, r.endOffset);\r
- }\r
- });*/\r
-\r
- ed.onInit.add(function() {\r
- t._fixWebKitSpans();\r
-\r
-/* ed.windowManager.onOpen.add(function() {\r
- var r = ed.selection.getRng();\r
-\r
- // Store selection if valid\r
- if (r.startContainer != ed.getDoc()) {\r
- t.bookmarkRng = r.cloneRange();\r
- //console.debug('store', r.startContainer, r.startOffset, r.endContainer, r.endOffset);\r
- }\r
- });\r
-\r
- ed.windowManager.onClose.add(function() {\r
- t.bookmarkRng = null;\r
- });*/\r
-\r
- if (isOldWebKit)\r
- t._patchSafari2x(ed);\r
- });\r
-\r
- ed.onSetContent.add(function() {\r
- dom = ed.dom;\r
-\r
- // Convert strong,b,em,u,strike to spans\r
- each(['strong','b','em','u','strike','sub','sup','a'], function(v) {\r
- each(grep(dom.select(v)).reverse(), function(n) {\r
- var nn = n.nodeName.toLowerCase(), st;\r
-\r
- // Convert anchors into images\r
- if (nn == 'a') {\r
- if (n.name)\r
- dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);\r
-\r
- return;\r
- }\r
-\r
- switch (nn) {\r
- case 'b':\r
- case 'strong':\r
- if (nn == 'b')\r
- nn = 'strong';\r
-\r
- st = 'font-weight: bold;';\r
- break;\r
-\r
- case 'em':\r
- st = 'font-style: italic;';\r
- break;\r
-\r
- case 'u':\r
- st = 'text-decoration: underline;';\r
- break;\r
-\r
- case 'sub':\r
- st = 'vertical-align: sub;';\r
- break;\r
-\r
- case 'sup':\r
- st = 'vertical-align: super;';\r
- break;\r
-\r
- case 'strike':\r
- st = 'text-decoration: line-through;';\r
- break;\r
- }\r
-\r
- dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);\r
- });\r
- });\r
- });\r
-\r
- ed.onPreProcess.add(function(ed, o) {\r
- dom = ed.dom;\r
-\r
- each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {\r
- var v, bg;\r
-\r
- if (o.get) {\r
- if (dom.hasClass(n, 'Apple-style-span')) {\r
- bg = n.style.backgroundColor;\r
-\r
- switch (dom.getAttrib(n, 'mce_name')) {\r
- case 'font':\r
- if (!ed.settings.convert_fonts_to_spans)\r
- dom.setAttrib(n, 'style', '');\r
- break;\r
-\r
- case 'strong':\r
- case 'em':\r
- case 'sub':\r
- case 'sup':\r
- dom.setAttrib(n, 'style', '');\r
- break;\r
-\r
- case 'strike':\r
- case 'u':\r
- if (!ed.settings.inline_styles)\r
- dom.setAttrib(n, 'style', '');\r
- else\r
- dom.setAttrib(n, 'mce_name', '');\r
-\r
- break;\r
-\r
- default:\r
- if (!ed.settings.inline_styles)\r
- dom.setAttrib(n, 'style', '');\r
- }\r
-\r
-\r
- if (bg)\r
- n.style.backgroundColor = bg;\r
- }\r
- }\r
-\r
- if (dom.hasClass(n, 'mceItemRemoved'))\r
- dom.remove(n, 1);\r
- });\r
- });\r
-\r
- ed.onPostProcess.add(function(ed, o) {\r
- // Safari adds BR at end of all block elements\r
- o.content = o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g, '</$1>');\r
-\r
- // Safari adds id="undefined" to HR elements\r
- o.content = o.content.replace(/ id=\"undefined\"/g, '');\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Safari compatibility',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Internal methods\r
-\r
- _fixWebKitSpans : function() {\r
- var t = this, ed = t.editor;\r
-\r
- if (!isOldWebKit) {\r
- // Use mutator events on new WebKit\r
- Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {\r
- e = e.target;\r
-\r
- if (e && e.nodeType == 1)\r
- t._fixAppleSpan(e);\r
- });\r
- } else {\r
- // Do post command processing in old WebKit since the browser crashes on Mutator events :(\r
- ed.onExecCommand.add(function() {\r
- each(ed.dom.select('span'), function(n) {\r
- t._fixAppleSpan(n);\r
- });\r
-\r
- ed.nodeChanged();\r
- });\r
- }\r
- },\r
-\r
- _fixAppleSpan : function(e) {\r
- var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;\r
-\r
- if (dom.getAttrib(e, 'mce_fixed'))\r
- return;\r
-\r
- // Handle Apple style spans\r
- if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {\r
- st = e.style;\r
-\r
- if (!s.convert_fonts_to_spans) {\r
- if (st.fontSize) {\r
- dom.setAttrib(e, 'mce_name', 'font');\r
- dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);\r
- }\r
-\r
- if (st.fontFamily) {\r
- dom.setAttrib(e, 'mce_name', 'font');\r
- dom.setAttrib(e, 'face', st.fontFamily);\r
- }\r
-\r
- if (st.color) {\r
- dom.setAttrib(e, 'mce_name', 'font');\r
- dom.setAttrib(e, 'color', dom.toHex(st.color));\r
- }\r
-\r
- if (st.backgroundColor) {\r
- dom.setAttrib(e, 'mce_name', 'font');\r
- dom.setStyle(e, 'background-color', st.backgroundColor);\r
- }\r
- } else {\r
- if (st.fontSize)\r
- dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);\r
- }\r
-\r
- if (st.fontWeight == 'bold')\r
- dom.setAttrib(e, 'mce_name', 'strong');\r
-\r
- if (st.fontStyle == 'italic')\r
- dom.setAttrib(e, 'mce_name', 'em');\r
-\r
- if (st.textDecoration == 'underline')\r
- dom.setAttrib(e, 'mce_name', 'u');\r
-\r
- if (st.textDecoration == 'line-through')\r
- dom.setAttrib(e, 'mce_name', 'strike');\r
-\r
- if (st.verticalAlign == 'super')\r
- dom.setAttrib(e, 'mce_name', 'sup');\r
-\r
- if (st.verticalAlign == 'sub')\r
- dom.setAttrib(e, 'mce_name', 'sub');\r
-\r
- dom.setAttrib(e, 'mce_fixed', '1');\r
- }\r
- },\r
-\r
- _patchSafari2x : function(ed) {\r
- var t = this, setContent, getNode, dom = ed.dom, lr;\r
-\r
- // Inline dialogs\r
- if (ed.windowManager.onBeforeOpen) {\r
- ed.windowManager.onBeforeOpen.add(function() {\r
- r = ed.selection.getRng();\r
- });\r
- }\r
-\r
- // Fake select on 2.x\r
- ed.selection.select = function(n) {\r
- this.getSel().setBaseAndExtent(n, 0, n, 1);\r
- };\r
-\r
- getNode = ed.selection.getNode;\r
- ed.selection.getNode = function() {\r
- return t.selElm || getNode.call(this);\r
- };\r
-\r
- // Fake range on Safari 2.x\r
- ed.selection.getRng = function() {\r
- var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;\r
-\r
- // Fake range on Safari 2.x\r
- if (s.anchorNode) {\r
- r = d.createRange();\r
-\r
- try {\r
- // Setup before range\r
- rb = d.createRange();\r
- rb.setStart(s.anchorNode, s.anchorOffset);\r
- rb.collapse(1);\r
-\r
- // Setup after range\r
- ra = d.createRange();\r
- ra.setStart(s.focusNode, s.focusOffset);\r
- ra.collapse(1);\r
-\r
- // Setup start/end points by comparing locations\r
- di = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;\r
- r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);\r
- r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);\r
-\r
- lr = r;\r
- } catch (ex) {\r
- // Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!\r
- }\r
- }\r
-\r
- return r || lr;\r
- };\r
-\r
- // Fix setContent so it works\r
- setContent = ed.selection.setContent;\r
- ed.selection.setContent = function(h, s) {\r
- var r = this.getRng(), b;\r
-\r
- try {\r
- setContent.call(this, h, s);\r
- } catch (ex) {\r
- // Workaround for Safari 2.x\r
- b = dom.create('body');\r
- b.innerHTML = h;\r
-\r
- each(b.childNodes, function(n) {\r
- r.insertNode(n.cloneNode(true));\r
- });\r
- }\r
- };\r
- },\r
-\r
- _insertBR : function(ed) {\r
- var dom = ed.dom, s = ed.selection, r = s.getRng(), br;\r
-\r
- // Insert BR element\r
- r.insertNode(br = dom.create('br'));\r
-\r
- // Place caret after BR\r
- r.setStartAfter(br);\r
- r.setEndAfter(br);\r
- s.setRng(r);\r
-\r
- // Could not place caret after BR then insert an nbsp entity and move the caret\r
- if (s.getSel().focusNode == br.previousSibling) {\r
- s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));\r
- s.collapse(1);\r
- }\r
-\r
- // Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117\r
- ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('safari', tinymce.plugins.Safari);\r
-})();\r
-\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.Save',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceSave',t._save,t);ed.addCommand('mceCancel',t._cancel,t);ed.addButton('save',{title:'save.save_desc',cmd:'mceSave'});ed.addButton('cancel',{title:'save.cancel_desc',cmd:'mceCancel'});ed.onNodeChange.add(t._nodeChange,t);ed.addShortcut('ctrl+s',ed.getLang('save.save_desc'),'mceSave');},getInfo:function(){return{longname:'Save',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_nodeChange:function(ed,cm,n){var ed=this.editor;if(ed.getParam('save_enablewhendirty')){cm.setDisabled('save',!ed.isDirty());cm.setDisabled('cancel',!ed.isDirty());}},_save:function(){var ed=this.editor,formObj,os,i,elementId;formObj=tinymce.DOM.get(ed.id).form||tinymce.DOM.getParent(ed.id,'form');if(ed.getParam("save_enablewhendirty")&&!ed.isDirty())return;tinyMCE.triggerSave();if(os=ed.getParam("save_onsavecallback")){if(ed.execCallback('save_onsavecallback',ed)){ed.startContent=tinymce.trim(ed.getContent({format:'raw'}));ed.nodeChanged();}return;}if(formObj){ed.isNotDirty=true;if(formObj.onsubmit==null||formObj.onsubmit()!=false)formObj.submit();ed.nodeChanged();}else ed.windowManager.alert("Error: No form element found.");},_cancel:function(){var ed=this.editor,os,h=tinymce.trim(ed.startContent);if(os=ed.getParam("save_oncancelcallback")){ed.execCallback('save_oncancelcallback',ed);return;}ed.setContent(h);ed.undoManager.clear();ed.nodeChanged();}});tinymce.PluginManager.add('save',tinymce.plugins.Save);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 851 2008-05-26 15:38:49Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.Save', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceSave', t._save, t);\r
- ed.addCommand('mceCancel', t._cancel, t);\r
-\r
- // Register buttons\r
- ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});\r
- ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});\r
-\r
- ed.onNodeChange.add(t._nodeChange, t);\r
- ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Save',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _nodeChange : function(ed, cm, n) {\r
- var ed = this.editor;\r
-\r
- if (ed.getParam('save_enablewhendirty')) {\r
- cm.setDisabled('save', !ed.isDirty());\r
- cm.setDisabled('cancel', !ed.isDirty());\r
- }\r
- },\r
-\r
- // Private methods\r
-\r
- _save : function() {\r
- var ed = this.editor, formObj, os, i, elementId;\r
-\r
- formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');\r
-\r
- if (ed.getParam("save_enablewhendirty") && !ed.isDirty())\r
- return;\r
-\r
- tinyMCE.triggerSave();\r
-\r
- // Use callback instead\r
- if (os = ed.getParam("save_onsavecallback")) {\r
- if (ed.execCallback('save_onsavecallback', ed)) {\r
- ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));\r
- ed.nodeChanged();\r
- }\r
-\r
- return;\r
- }\r
-\r
- if (formObj) {\r
- ed.isNotDirty = true;\r
-\r
- if (formObj.onsubmit == null || formObj.onsubmit() != false)\r
- formObj.submit();\r
-\r
- ed.nodeChanged();\r
- } else\r
- ed.windowManager.alert("Error: No form element found.");\r
- },\r
-\r
- _cancel : function() {\r
- var ed = this.editor, os, h = tinymce.trim(ed.startContent);\r
-\r
- // Use callback instead\r
- if (os = ed.getParam("save_oncancelcallback")) {\r
- ed.execCallback('save_oncancelcallback', ed);\r
- return;\r
- }\r
-\r
- ed.setContent(h);\r
- ed.undoManager.clear();\r
- ed.nodeChanged();\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('save', tinymce.plugins.Save);\r
-})();
\ No newline at end of file
+++ /dev/null
-.panel_wrapper {height:85px;}\r
-.panel_wrapper div.current {height:85px;}\r
-\r
-/* IE */\r
-* html .panel_wrapper {height:100px;}\r
-* html .panel_wrapper div.current {height:100px;}\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.SearchReplacePlugin',{init:function(ed,url){function open(m){ed.windowManager.open({file:url+'/searchreplace.htm',width:420+parseInt(ed.getLang('searchreplace.delta_width',0)),height:160+parseInt(ed.getLang('searchreplace.delta_height',0)),inline:1,auto_focus:0},{mode:m,search_string:ed.selection.getContent({format:'text'}),plugin_url:url});};ed.addCommand('mceSearch',function(){open('search');});ed.addCommand('mceReplace',function(){open('replace');});ed.addButton('search',{title:'searchreplace.search_desc',cmd:'mceSearch'});ed.addButton('replace',{title:'searchreplace.replace_desc',cmd:'mceReplace'});ed.addShortcut('ctrl+f','searchreplace.search_desc','mceSearch');},getInfo:function(){return{longname:'Search/Replace',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('searchreplace',tinymce.plugins.SearchReplacePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 686 2008-03-09 18:13:49Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.SearchReplacePlugin', {\r
- init : function(ed, url) {\r
- function open(m) {\r
- ed.windowManager.open({\r
- file : url + '/searchreplace.htm',\r
- width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)),\r
- height : 160 + parseInt(ed.getLang('searchreplace.delta_height', 0)),\r
- inline : 1,\r
- auto_focus : 0\r
- }, {\r
- mode : m,\r
- search_string : ed.selection.getContent({format : 'text'}),\r
- plugin_url : url\r
- });\r
- };\r
-\r
- // Register commands\r
- ed.addCommand('mceSearch', function() {\r
- open('search');\r
- });\r
-\r
- ed.addCommand('mceReplace', function() {\r
- open('replace');\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'});\r
- ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'});\r
-\r
- ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch');\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Search/Replace',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var SearchReplaceDialog = {\r
- init : function(ed) {\r
- var f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");\r
-\r
- this.switchMode(m);\r
-\r
- f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");\r
-\r
- // Focus input field\r
- f[m + '_panel_searchstring'].focus();\r
- },\r
-\r
- switchMode : function(m) {\r
- var f, lm = this.lastMode;\r
-\r
- if (lm != m) {\r
- f = document.forms[0];\r
-\r
- if (lm) {\r
- f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;\r
- f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;\r
- f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;\r
- f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;\r
- }\r
-\r
- mcTabs.displayTab(m + '_tab', m + '_panel');\r
- document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";\r
- document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";\r
- this.lastMode = m;\r
- }\r
- },\r
-\r
- searchNext : function(a) {\r
- var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;\r
-\r
- // Get input\r
- f = document.forms[0];\r
- s = f[m + '_panel_searchstring'].value;\r
- b = f[m + '_panel_backwardsu'].checked;\r
- ca = f[m + '_panel_casesensitivebox'].checked;\r
- rs = f['replace_panel_replacestring'].value;\r
-\r
- function fix() {\r
- // Correct Firefox graphics glitches\r
- r = se.getRng().cloneRange();\r
- ed.getDoc().execCommand('SelectAll', false, null);\r
- se.setRng(r);\r
- };\r
-\r
- function replace() {\r
- if (tinymce.isIE)\r
- ed.selection.getRng().duplicate().pasteHTML(rs); // Needs to be duplicated due to selection bug in IE\r
- else\r
- ed.getDoc().execCommand('InsertHTML', false, rs);\r
- };\r
-\r
- // IE flags\r
- if (ca)\r
- fl = fl | 4;\r
-\r
- switch (a) {\r
- case 'all':\r
- // Move caret to beginning of text\r
- ed.execCommand('SelectAll');\r
- ed.selection.collapse(true);\r
-\r
- if (tinymce.isIE) {\r
- while (r.findText(s, b ? -1 : 1, fl)) {\r
- r.scrollIntoView();\r
- r.select();\r
- replace();\r
- fo = 1;\r
- }\r
-\r
- tinyMCEPopup.storeSelection();\r
- } else {\r
- while (w.find(s, ca, b, false, false, false, false)) {\r
- replace();\r
- fo = 1;\r
- }\r
- }\r
-\r
- if (fo)\r
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));\r
- else\r
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));\r
-\r
- return;\r
-\r
- case 'current':\r
- if (!ed.selection.isCollapsed())\r
- replace();\r
-\r
- break;\r
- }\r
-\r
- se.collapse(b);\r
- r = se.getRng();\r
-\r
- // Whats the point\r
- if (!s)\r
- return;\r
-\r
- if (tinymce.isIE) {\r
- if (r.findText(s, b ? -1 : 1, fl)) {\r
- r.scrollIntoView();\r
- r.select();\r
- } else\r
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));\r
-\r
- tinyMCEPopup.storeSelection();\r
- } else {\r
- if (!w.find(s, ca, b, false, false, false, false))\r
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));\r
- else\r
- fix();\r
- }\r
- }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);\r
+++ /dev/null
-tinyMCE.addI18n('en.searchreplace_dlg',{\r
-searchnext_desc:"Find again",\r
-notfound:"The search has been completed. The search string could not be found.",\r
-search_title:"Find",\r
-replace_title:"Find/Replace",\r
-allreplaced:"All occurrences of the search string were replaced.",\r
-findwhat:"Find what",\r
-replacewith:"Replace with",\r
-direction:"Direction",\r
-up:"Up",\r
-down:"Down",\r
-mcase:"Match case",\r
-findnext:"Find next",\r
-replace:"Replace",\r
-replaceall:"Replace all"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#searchreplace_dlg.replace_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="js/searchreplace.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/searchreplace.css" />\r
- <base target="_self" />\r
-</head>\r
-<body style="display:none;">\r
-<form onsubmit="SearchReplaceDialog.searchNext('none');return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="search_tab"><span><a href="javascript:SearchReplaceDialog.switchMode('search');" onmousedown="return false;">{#searchreplace.search_desc}</a></span></li>\r
- <li id="replace_tab"><span><a href="javascript:SearchReplaceDialog.switchMode('replace');" onmousedown="return false;">{#searchreplace_dlg.replace}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="search_panel" class="panel">\r
- <table border="0" cellspacing="0" cellpadding="2">\r
- <tr>\r
- <td><label for="search_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>\r
- <td><input type="text" id="search_panel_searchstring" name="search_panel_searchstring" style="width: 200px" /></td>\r
- </tr>\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellspacing="0" cellpadding="0" class="direction">\r
- <tr>\r
- <td><label>{#searchreplace_dlg.direction}</label></td>\r
- <td><input id="search_panel_backwardsu" name="search_panel_backwards" class="radio" type="radio" /></td>\r
- <td><label for="search_panel_backwardsu">{#searchreplace_dlg.up}</label></td>\r
- <td><input id="search_panel_backwardsd" name="search_panel_backwards" class="radio" type="radio" checked="checked" /></td>\r
- <td><label for="search_panel_backwardsd">{#searchreplace_dlg.down}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input id="search_panel_casesensitivebox" name="search_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>\r
- <td><label for="search_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </div>\r
-\r
- <div id="replace_panel" class="panel">\r
- <table border="0" cellspacing="0" cellpadding="2">\r
- <tr>\r
- <td><label for="replace_panel_searchstring">{#searchreplace_dlg.findwhat}</label></td>\r
- <td><input type="text" id="replace_panel_searchstring" name="replace_panel_searchstring" style="width: 200px" /></td>\r
- </tr>\r
- <tr>\r
- <td><label for="replace_panel_replacestring">{#searchreplace_dlg.replacewith}</label></td>\r
- <td><input type="text" id="replace_panel_replacestring" name="replace_panel_replacestring" style="width: 200px" /></td>\r
- </tr>\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellspacing="0" cellpadding="0" class="direction">\r
- <tr>\r
- <td><label>{#searchreplace_dlg.direction}</label></td>\r
- <td><input id="replace_panel_backwardsu" name="replace_panel_backwards" class="radio" type="radio" /></td>\r
- <td><label for="replace_panel_backwardsu">{#searchreplace_dlg.up}</label></td>\r
- <td><input id="replace_panel_backwardsd" name="replace_panel_backwards" class="radio" type="radio" checked="checked" /></td>\r
- <td><label for="replace_panel_backwardsd">{#searchreplace_dlg.down}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td colspan="2">\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input id="replace_panel_casesensitivebox" name="replace_panel_casesensitivebox" class="checkbox" type="checkbox" /></td>\r
- <td><label for="replace_panel_casesensitivebox">{#searchreplace_dlg.mcase}</label></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- </table>\r
- </div>\r
-\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#searchreplace_dlg.findnext}" />\r
- <input type="button" class="button" id="replaceBtn" name="replaceBtn" value="{#searchreplace_dlg.replace}" onclick="SearchReplaceDialog.searchNext('current');" />\r
- <input type="button" class="button" id="replaceAllBtn" name="replaceAllBtn" value="{#searchreplace_dlg.replaceall}" onclick="SearchReplaceDialog.searchNext('all');" />\r
- </div>\r
-\r
- <div style="float: right"> \r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}\r
+++ /dev/null
-(function(){var JSONRequest=tinymce.util.JSONRequest,each=tinymce.each,DOM=tinymce.DOM;tinymce.create('tinymce.plugins.SpellcheckerPlugin',{getInfo:function(){return{longname:'Spellchecker',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',version:tinymce.majorVersion+"."+tinymce.minorVersion};},init:function(ed,url){var t=this,cm;t.url=url;t.editor=ed;ed.addCommand('mceSpellCheck',function(){if(!t.active){ed.setProgressState(1);t._sendRPC('checkWords',[t.selectedLang,t._getWords()],function(r){if(r.length>0){t.active=1;t._markWords(r);ed.setProgressState(0);ed.nodeChanged();}else{ed.setProgressState(0);ed.windowManager.alert('spellchecker.no_mpell');}});}else t._done();});ed.onInit.add(function(){if(ed.settings.content_css!==false)ed.dom.loadCSS(url+'/css/content.css');});ed.onClick.add(t._showMenu,t);ed.onContextMenu.add(t._showMenu,t);ed.onBeforeGetContent.add(function(){if(t.active)t._removeWords();});ed.onNodeChange.add(function(ed,cm){cm.setActive('spellchecker',t.active);});ed.onSetContent.add(function(){t._done();});ed.onBeforeGetContent.add(function(){t._done();});ed.onBeforeExecCommand.add(function(ed,cmd){if(cmd=='mceFullScreen')t._done();});t.languages={};each(ed.getParam('spellchecker_languages','+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv','hash'),function(v,k){if(k.indexOf('+')===0){k=k.substring(1);t.selectedLang=v;}t.languages[k]=v;});},createControl:function(n,cm){var t=this,c,ed=t.editor;if(n=='spellchecker'){c=cm.createSplitButton(n,{title:'spellchecker.desc',cmd:'mceSpellCheck',scope:t});c.onRenderMenu.add(function(c,m){m.add({title:'spellchecker.langs','class':'mceMenuItemTitle'}).setDisabled(1);each(t.languages,function(v,k){var o={icon:1},mi;o.onclick=function(){mi.setSelected(1);t.selectedItem.setSelected(0);t.selectedItem=mi;t.selectedLang=v;};o.title=k;mi=m.add(o);mi.setSelected(v==t.selectedLang);if(v==t.selectedLang)t.selectedItem=mi;})});return c;}},_walk:function(n,f){var d=this.editor.getDoc(),w;if(d.createTreeWalker){w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while((n=w.nextNode())!=null)f.call(this,n);}else tinymce.walk(n,f,'childNodes');},_getSeparators:function(){var re='',i,str=this.editor.getParam('spellchecker_word_separator_chars','\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}����������������\u201d\u201c');for(i=0;i<str.length;i++)re+='\\'+str.charAt(i);return re;},_getWords:function(){var ed=this.editor,wl=[],tx='',lo={};this._walk(ed.getBody(),function(n){if(n.nodeType==3)tx+=n.nodeValue+' ';});tx=tx.replace(new RegExp('([0-9]|['+this._getSeparators()+'])','g'),' ');tx=tinymce.trim(tx.replace(/(\s+)/g,' '));each(tx.split(' '),function(v){if(!lo[v]){wl.push(v);lo[v]=1;}});return wl;},_removeWords:function(w){var ed=this.editor,dom=ed.dom,se=ed.selection,b=se.getBookmark();each(dom.select('span').reverse(),function(n){if(n&&(dom.hasClass(n,'mceItemHiddenSpellWord')||dom.hasClass(n,'mceItemHidden'))){if(!w||dom.decode(n.innerHTML)==w)dom.remove(n,1);}});se.moveToBookmark(b);},_markWords:function(wl){var r1,r2,r3,r4,r5,w='',ed=this.editor,re=this._getSeparators(),dom=ed.dom,nl=[];var se=ed.selection,b=se.getBookmark();each(wl,function(v){w+=(w?'|':'')+v;});r1=new RegExp('(['+re+'])('+w+')(['+re+'])','g');r2=new RegExp('^('+w+')','g');r3=new RegExp('('+w+')(['+re+']?)$','g');r4=new RegExp('^('+w+')(['+re+']?)$','g');r5=new RegExp('('+w+')(['+re+'])','g');this._walk(this.editor.getBody(),function(n){if(n.nodeType==3){nl.push(n);}});each(nl,function(n){var v;if(n.nodeType==3){v=n.nodeValue;if(r1.test(v)||r2.test(v)||r3.test(v)||r4.test(v)){v=dom.encode(v);v=v.replace(r5,'<span class="mceItemHiddenSpellWord">$1</span>$2');v=v.replace(r3,'<span class="mceItemHiddenSpellWord">$1</span>$2');dom.replace(dom.create('span',{'class':'mceItemHidden'},v),n);}}});se.moveToBookmark(b);},_showMenu:function(ed,e){var t=this,ed=t.editor,m=t._menu,p1,dom=ed.dom,vp=dom.getViewPort(ed.getWin());if(!m){p1=DOM.getPos(ed.getContentAreaContainer());m=ed.controlManager.createDropMenu('spellcheckermenu',{offset_x:p1.x,offset_y:p1.y,'class':'mceNoIcons'});t._menu=m;}if(dom.hasClass(e.target,'mceItemHiddenSpellWord')){m.removeAll();m.add({title:'spellchecker.wait','class':'mceMenuItemTitle'}).setDisabled(1);t._sendRPC('getSuggestions',[t.selectedLang,dom.decode(e.target.innerHTML)],function(r){m.removeAll();if(r.length>0){m.add({title:'spellchecker.sug','class':'mceMenuItemTitle'}).setDisabled(1);each(r,function(v){m.add({title:v,onclick:function(){dom.replace(ed.getDoc().createTextNode(v),e.target);t._checkDone();}});});m.addSeparator();}else m.add({title:'spellchecker.no_sug','class':'mceMenuItemTitle'}).setDisabled(1);m.add({title:'spellchecker.ignore_word',onclick:function(){dom.remove(e.target,1);t._checkDone();}});m.add({title:'spellchecker.ignore_words',onclick:function(){t._removeWords(dom.decode(e.target.innerHTML));t._checkDone();}});m.update();});ed.selection.select(e.target);p1=dom.getPos(e.target);m.showMenu(p1.x,p1.y+e.target.offsetHeight-vp.y);return tinymce.dom.Event.cancel(e);}else m.hideMenu();},_checkDone:function(){var t=this,ed=t.editor,dom=ed.dom,o;each(dom.select('span'),function(n){if(n&&dom.hasClass(n,'mceItemHiddenSpellWord')){o=true;return false;}});if(!o)t._done();},_done:function(){var t=this,la=t.active;if(t.active){t.active=0;t._removeWords();if(t._menu)t._menu.hideMenu();if(la)t.editor.nodeChanged();}},_sendRPC:function(m,p,cb){var t=this,url=t.editor.getParam("spellchecker_rpc_url","{backend}");if(url=='{backend}'){t.editor.setProgressState(0);alert('Please specify: spellchecker_rpc_url');return;}JSONRequest.sendRPC({url:url,method:m,params:p,success:cb,error:function(e,x){t.editor.setProgressState(0);t.editor.windowManager.alert(e.errstr||('Error response: '+x.responseText));}});}});tinymce.PluginManager.add('spellchecker',tinymce.plugins.SpellcheckerPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 425 2007-11-21 15:17:39Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;\r
-\r
- tinymce.create('tinymce.plugins.SpellcheckerPlugin', {\r
- getInfo : function() {\r
- return {\r
- longname : 'Spellchecker',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- init : function(ed, url) {\r
- var t = this, cm;\r
-\r
- t.url = url;\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceSpellCheck', function() {\r
- if (!t.active) {\r
- ed.setProgressState(1);\r
- t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {\r
- if (r.length > 0) {\r
- t.active = 1;\r
- t._markWords(r);\r
- ed.setProgressState(0);\r
- ed.nodeChanged();\r
- } else {\r
- ed.setProgressState(0);\r
- ed.windowManager.alert('spellchecker.no_mpell');\r
- }\r
- });\r
- } else\r
- t._done();\r
- });\r
-\r
- ed.onInit.add(function() {\r
- if (ed.settings.content_css !== false)\r
- ed.dom.loadCSS(url + '/css/content.css');\r
- });\r
-\r
- ed.onClick.add(t._showMenu, t);\r
- ed.onContextMenu.add(t._showMenu, t);\r
- ed.onBeforeGetContent.add(function() {\r
- if (t.active)\r
- t._removeWords();\r
- });\r
-\r
- ed.onNodeChange.add(function(ed, cm) {\r
- cm.setActive('spellchecker', t.active);\r
- });\r
-\r
- ed.onSetContent.add(function() {\r
- t._done();\r
- });\r
-\r
- ed.onBeforeGetContent.add(function() {\r
- t._done();\r
- });\r
-\r
- ed.onBeforeExecCommand.add(function(ed, cmd) {\r
- if (cmd == 'mceFullScreen')\r
- t._done();\r
- });\r
-\r
- // Find selected language\r
- t.languages = {};\r
- each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {\r
- if (k.indexOf('+') === 0) {\r
- k = k.substring(1);\r
- t.selectedLang = v;\r
- }\r
-\r
- t.languages[k] = v;\r
- });\r
- },\r
-\r
- createControl : function(n, cm) {\r
- var t = this, c, ed = t.editor;\r
-\r
- if (n == 'spellchecker') {\r
- c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});\r
-\r
- c.onRenderMenu.add(function(c, m) {\r
- m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
- each(t.languages, function(v, k) {\r
- var o = {icon : 1}, mi;\r
-\r
- o.onclick = function() {\r
- mi.setSelected(1);\r
- t.selectedItem.setSelected(0);\r
- t.selectedItem = mi;\r
- t.selectedLang = v;\r
- };\r
-\r
- o.title = k;\r
- mi = m.add(o);\r
- mi.setSelected(v == t.selectedLang);\r
-\r
- if (v == t.selectedLang)\r
- t.selectedItem = mi;\r
- })\r
- });\r
-\r
- return c;\r
- }\r
- },\r
-\r
- // Internal functions\r
-\r
- _walk : function(n, f) {\r
- var d = this.editor.getDoc(), w;\r
-\r
- if (d.createTreeWalker) {\r
- w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);\r
-\r
- while ((n = w.nextNode()) != null)\r
- f.call(this, n);\r
- } else\r
- tinymce.walk(n, f, 'childNodes');\r
- },\r
-\r
- _getSeparators : function() {\r
- var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');\r
-\r
- // Build word separator regexp\r
- for (i=0; i<str.length; i++)\r
- re += '\\' + str.charAt(i);\r
-\r
- return re;\r
- },\r
-\r
- _getWords : function() {\r
- var ed = this.editor, wl = [], tx = '', lo = {};\r
-\r
- // Get area text\r
- this._walk(ed.getBody(), function(n) {\r
- if (n.nodeType == 3)\r
- tx += n.nodeValue + ' ';\r
- });\r
-\r
- // Split words by separator\r
- tx = tx.replace(new RegExp('([0-9]|[' + this._getSeparators() + '])', 'g'), ' ');\r
- tx = tinymce.trim(tx.replace(/(\s+)/g, ' '));\r
-\r
- // Build word array and remove duplicates\r
- each(tx.split(' '), function(v) {\r
- if (!lo[v]) {\r
- wl.push(v);\r
- lo[v] = 1;\r
- }\r
- });\r
-\r
- return wl;\r
- },\r
-\r
- _removeWords : function(w) {\r
- var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();\r
-\r
- each(dom.select('span').reverse(), function(n) {\r
- if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {\r
- if (!w || dom.decode(n.innerHTML) == w)\r
- dom.remove(n, 1);\r
- }\r
- });\r
-\r
- se.moveToBookmark(b);\r
- },\r
-\r
- _markWords : function(wl) {\r
- var r1, r2, r3, r4, r5, w = '', ed = this.editor, re = this._getSeparators(), dom = ed.dom, nl = [];\r
- var se = ed.selection, b = se.getBookmark();\r
-\r
- each(wl, function(v) {\r
- w += (w ? '|' : '') + v;\r
- });\r
-\r
- r1 = new RegExp('([' + re + '])(' + w + ')([' + re + '])', 'g');\r
- r2 = new RegExp('^(' + w + ')', 'g');\r
- r3 = new RegExp('(' + w + ')([' + re + ']?)$', 'g');\r
- r4 = new RegExp('^(' + w + ')([' + re + ']?)$', 'g');\r
- r5 = new RegExp('(' + w + ')([' + re + '])', 'g');\r
-\r
- // Collect all text nodes\r
- this._walk(this.editor.getBody(), function(n) {\r
- if (n.nodeType == 3) {\r
- nl.push(n);\r
- }\r
- });\r
-\r
- // Wrap incorrect words in spans\r
- each(nl, function(n) {\r
- var v;\r
-\r
- if (n.nodeType == 3) {\r
- v = n.nodeValue;\r
-\r
- if (r1.test(v) || r2.test(v) || r3.test(v) || r4.test(v)) {\r
- v = dom.encode(v);\r
- v = v.replace(r5, '<span class="mceItemHiddenSpellWord">$1</span>$2');\r
- v = v.replace(r3, '<span class="mceItemHiddenSpellWord">$1</span>$2');\r
-\r
- dom.replace(dom.create('span', {'class' : 'mceItemHidden'}, v), n);\r
- }\r
- }\r
- });\r
-\r
- se.moveToBookmark(b);\r
- },\r
-\r
- _showMenu : function(ed, e) {\r
- var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin());\r
-\r
- if (!m) {\r
- p1 = DOM.getPos(ed.getContentAreaContainer());\r
- //p2 = DOM.getPos(ed.getContainer());\r
-\r
- m = ed.controlManager.createDropMenu('spellcheckermenu', {\r
- offset_x : p1.x,\r
- offset_y : p1.y,\r
- 'class' : 'mceNoIcons'\r
- });\r
-\r
- t._menu = m;\r
- }\r
-\r
- if (dom.hasClass(e.target, 'mceItemHiddenSpellWord')) {\r
- m.removeAll();\r
- m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
-\r
- t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(e.target.innerHTML)], function(r) {\r
- m.removeAll();\r
-\r
- if (r.length > 0) {\r
- m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
- each(r, function(v) {\r
- m.add({title : v, onclick : function() {\r
- dom.replace(ed.getDoc().createTextNode(v), e.target);\r
- t._checkDone();\r
- }});\r
- });\r
-\r
- m.addSeparator();\r
- } else\r
- m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);\r
-\r
- m.add({\r
- title : 'spellchecker.ignore_word',\r
- onclick : function() {\r
- dom.remove(e.target, 1);\r
- t._checkDone();\r
- }\r
- });\r
-\r
- m.add({\r
- title : 'spellchecker.ignore_words',\r
- onclick : function() {\r
- t._removeWords(dom.decode(e.target.innerHTML));\r
- t._checkDone();\r
- }\r
- });\r
-\r
- m.update();\r
- });\r
-\r
- ed.selection.select(e.target);\r
- p1 = dom.getPos(e.target);\r
- m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y);\r
-\r
- return tinymce.dom.Event.cancel(e);\r
- } else\r
- m.hideMenu();\r
- },\r
-\r
- _checkDone : function() {\r
- var t = this, ed = t.editor, dom = ed.dom, o;\r
-\r
- each(dom.select('span'), function(n) {\r
- if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {\r
- o = true;\r
- return false;\r
- }\r
- });\r
-\r
- if (!o)\r
- t._done();\r
- },\r
-\r
- _done : function() {\r
- var t = this, la = t.active;\r
-\r
- if (t.active) {\r
- t.active = 0;\r
- t._removeWords();\r
-\r
- if (t._menu)\r
- t._menu.hideMenu();\r
-\r
- if (la)\r
- t.editor.nodeChanged();\r
- }\r
- },\r
-\r
- _sendRPC : function(m, p, cb) {\r
- var t = this, url = t.editor.getParam("spellchecker_rpc_url", "{backend}");\r
-\r
- if (url == '{backend}') {\r
- t.editor.setProgressState(0);\r
- alert('Please specify: spellchecker_rpc_url');\r
- return;\r
- }\r
-\r
- JSONRequest.sendRPC({\r
- url : url,\r
- method : m,\r
- params : p,\r
- success : cb,\r
- error : function(e, x) {\r
- t.editor.setProgressState(0);\r
- t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));\r
- }\r
- });\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-#text_font {width:250px;}\r
-#text_size {width:70px;}\r
-.mceAddSelectValue {background:#DDD;}\r
-select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;}\r
-#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;}\r
-#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;}\r
-#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;}\r
-.panel_wrapper div.current {padding-top:10px;height:230px;}\r
-.delim {border-left:1px solid gray;}\r
-.tdelim {border-bottom:1px solid gray;}\r
-#block_display {width:145px;}\r
-#list_type {width:115px;}\r
-.disabled {background:#EEE;}\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.StylePlugin',{init:function(ed,url){ed.addCommand('mceStyleProps',function(){ed.windowManager.open({file:url+'/props.htm',width:480+parseInt(ed.getLang('style.delta_width',0)),height:320+parseInt(ed.getLang('style.delta_height',0)),inline:1},{plugin_url:url,style_text:ed.selection.getNode().style.cssText});});ed.addCommand('mceSetElementStyle',function(ui,v){if(e=ed.selection.getNode()){ed.dom.setAttrib(e,'style',v);ed.execCommand('mceRepaint');}});ed.onNodeChange.add(function(ed,cm,n){cm.setDisabled('styleprops',n.nodeName==='BODY');});ed.addButton('styleprops',{title:'style.desc',cmd:'mceStyleProps'});},getInfo:function(){return{longname:'Style',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('style',tinymce.plugins.StylePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 787 2008-04-10 11:40:57Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.StylePlugin', {\r
- init : function(ed, url) {\r
- // Register commands\r
- ed.addCommand('mceStyleProps', function() {\r
- ed.windowManager.open({\r
- file : url + '/props.htm',\r
- width : 480 + parseInt(ed.getLang('style.delta_width', 0)),\r
- height : 320 + parseInt(ed.getLang('style.delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url,\r
- style_text : ed.selection.getNode().style.cssText\r
- });\r
- });\r
-\r
- ed.addCommand('mceSetElementStyle', function(ui, v) {\r
- if (e = ed.selection.getNode()) {\r
- ed.dom.setAttrib(e, 'style', v);\r
- ed.execCommand('mceRepaint');\r
- }\r
- });\r
-\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- cm.setDisabled('styleprops', n.nodeName === 'BODY');\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Style',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var defaultFonts = "" + \r
- "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" + \r
- "Times New Roman, Times, serif=Times New Roman, Times, serif;" + \r
- "Courier New, Courier, mono=Courier New, Courier, mono;" + \r
- "Times New Roman, Times, serif=Times New Roman, Times, serif;" + \r
- "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" + \r
- "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" + \r
- "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";\r
-\r
-var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";\r
-var defaultMeasurement = "+pixels=px;points=pt;em;in;cm;mm;picas;ems;exs;%";\r
-var defaultSpacingMeasurement = "pixels=px;points=pt;in;cm;mm;picas;+ems;exs;%";\r
-var defaultIndentMeasurement = "pixels=px;+points=pt;in;cm;mm;picas;ems;exs;%";\r
-var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";\r
-var defaultTextStyle = "normal;italic;oblique";\r
-var defaultVariant = "normal;small-caps";\r
-var defaultLineHeight = "normal";\r
-var defaultAttachment = "fixed;scroll";\r
-var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";\r
-var defaultPosH = "left;center;right";\r
-var defaultPosV = "top;center;bottom";\r
-var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";\r
-var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";\r
-var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";\r
-var defaultBorderWidth = "thin;medium;thick";\r
-var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";\r
-\r
-function init() {\r
- var ce = document.getElementById('container'), h;\r
-\r
- ce.style.cssText = tinyMCEPopup.getWindowArg('style_text');\r
-\r
- h = getBrowserHTML('background_image_browser','background_image','image','advimage');\r
- document.getElementById("background_image_browser").innerHTML = h;\r
-\r
- document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');\r
- document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');\r
- document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');\r
- document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');\r
- document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');\r
- document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');\r
-\r
- fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);\r
- fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);\r
- fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);\r
- fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);\r
- fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);\r
- fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);\r
- fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);\r
- fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);\r
-\r
- fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);\r
- fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);\r
-\r
- fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);\r
-\r
- fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);\r
- fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);\r
-\r
- fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);\r
- fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);\r
- fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);\r
- fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);\r
- fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);\r
- fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);\r
- fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);\r
- fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);\r
- fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);\r
-\r
- fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);\r
- fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);\r
- fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);\r
-\r
- fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);\r
- fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);\r
- fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);\r
- fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);\r
-\r
- fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);\r
- fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);\r
- fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);\r
- fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);\r
-\r
- fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);\r
-\r
- fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);\r
- fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);\r
-\r
- fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);\r
- fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);\r
-\r
- fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);\r
-\r
- fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);\r
-\r
- fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);\r
- fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);\r
-\r
- TinyMCE_EditableSelects.init();\r
- setupFormData();\r
- showDisabledControls();\r
-}\r
-\r
-function setupFormData() {\r
- var ce = document.getElementById('container'), f = document.forms[0], s, b, i;\r
-\r
- // Setup text fields\r
-\r
- selectByValue(f, 'text_font', ce.style.fontFamily, true, true);\r
- selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);\r
- selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));\r
- selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);\r
- selectByValue(f, 'text_style', ce.style.fontStyle, true, true);\r
- selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);\r
- selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));\r
- selectByValue(f, 'text_case', ce.style.textTransform, true, true);\r
- selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);\r
- f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);\r
- updateColor('text_color_pick', 'text_color');\r
- f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');\r
- f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');\r
- f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');\r
- f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');\r
-\r
- // Setup background fields\r
-\r
- f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);\r
- updateColor('background_color_pick', 'background_color');\r
- f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
- selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);\r
- selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);\r
- selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);\r
- selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));\r
- selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);\r
- selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));\r
-\r
- // Setup block fields\r
-\r
- selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);\r
- selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));\r
- selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);\r
- selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));\r
- selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);\r
- selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);\r
- f.block_text_indent.value = getNum(ce.style.textIndent);\r
- selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));\r
- selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);\r
- selectByValue(f, 'block_display', ce.style.display, true, true);\r
-\r
- // Setup box fields\r
-\r
- f.box_width.value = getNum(ce.style.width);\r
- selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));\r
-\r
- f.box_height.value = getNum(ce.style.height);\r
- selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));\r
-\r
- if (tinymce.isGecko)\r
- selectByValue(f, 'box_float', ce.style.cssFloat, true, true);\r
- else\r
- selectByValue(f, 'box_float', ce.style.styleFloat, true, true);\r
-\r
- selectByValue(f, 'box_clear', ce.style.clear, true, true);\r
-\r
- setupBox(f, ce, 'box_padding', 'padding', '');\r
- setupBox(f, ce, 'box_margin', 'margin', '');\r
-\r
- // Setup border fields\r
-\r
- setupBox(f, ce, 'border_style', 'border', 'Style');\r
- setupBox(f, ce, 'border_width', 'border', 'Width');\r
- setupBox(f, ce, 'border_color', 'border', 'Color');\r
-\r
- updateColor('border_color_top_pick', 'border_color_top');\r
- updateColor('border_color_right_pick', 'border_color_right');\r
- updateColor('border_color_bottom_pick', 'border_color_bottom');\r
- updateColor('border_color_left_pick', 'border_color_left');\r
-\r
- f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);\r
- f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);\r
- f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);\r
- f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);\r
-\r
- // Setup list fields\r
-\r
- selectByValue(f, 'list_type', ce.style.listStyleType, true, true);\r
- selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);\r
- f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
-\r
- // Setup box fields\r
-\r
- selectByValue(f, 'positioning_type', ce.style.position, true, true);\r
- selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);\r
- selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);\r
- f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";\r
-\r
- f.positioning_width.value = getNum(ce.style.width);\r
- selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));\r
-\r
- f.positioning_height.value = getNum(ce.style.height);\r
- selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));\r
-\r
- setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);\r
-\r
- s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");\r
- s = s.replace(/,/g, ' ');\r
-\r
- if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {\r
- f.positioning_clip_top.value = getNum(getVal(s, 0));\r
- selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));\r
- f.positioning_clip_right.value = getNum(getVal(s, 1));\r
- selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));\r
- f.positioning_clip_bottom.value = getNum(getVal(s, 2));\r
- selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));\r
- f.positioning_clip_left.value = getNum(getVal(s, 3));\r
- selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));\r
- } else {\r
- f.positioning_clip_top.value = getNum(getVal(s, 0));\r
- selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));\r
- f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;\r
- }\r
-\r
-// setupBox(f, ce, '', 'border', 'Color');\r
-}\r
-\r
-function getMeasurement(s) {\r
- return s.replace(/^([0-9]+)(.*)$/, "$2");\r
-}\r
-\r
-function getNum(s) {\r
- if (new RegExp('^[0-9]+[a-z%]+$', 'gi').test(s))\r
- return s.replace(/[^0-9]/g, '');\r
-\r
- return s;\r
-}\r
-\r
-function inStr(s, n) {\r
- return new RegExp(n, 'gi').test(s);\r
-}\r
-\r
-function getVal(s, i) {\r
- var a = s.split(' ');\r
-\r
- if (a.length > 1)\r
- return a[i];\r
-\r
- return "";\r
-}\r
-\r
-function setValue(f, n, v) {\r
- if (f.elements[n].type == "text")\r
- f.elements[n].value = v;\r
- else\r
- selectByValue(f, n, v, true, true);\r
-}\r
-\r
-function setupBox(f, ce, fp, pr, sf, b) {\r
- if (typeof(b) == "undefined")\r
- b = ['Top', 'Right', 'Bottom', 'Left'];\r
-\r
- if (isSame(ce, pr, sf, b)) {\r
- f.elements[fp + "_same"].checked = true;\r
-\r
- setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));\r
- f.elements[fp + "_top"].disabled = false;\r
-\r
- f.elements[fp + "_right"].value = "";\r
- f.elements[fp + "_right"].disabled = true;\r
- f.elements[fp + "_bottom"].value = "";\r
- f.elements[fp + "_bottom"].disabled = true;\r
- f.elements[fp + "_left"].value = "";\r
- f.elements[fp + "_left"].disabled = true;\r
-\r
- if (f.elements[fp + "_top_measurement"]) {\r
- selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));\r
- f.elements[fp + "_left_measurement"].disabled = true;\r
- f.elements[fp + "_bottom_measurement"].disabled = true;\r
- f.elements[fp + "_right_measurement"].disabled = true;\r
- }\r
- } else {\r
- f.elements[fp + "_same"].checked = false;\r
-\r
- setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));\r
- f.elements[fp + "_top"].disabled = false;\r
-\r
- setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));\r
- f.elements[fp + "_right"].disabled = false;\r
-\r
- setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));\r
- f.elements[fp + "_bottom"].disabled = false;\r
-\r
- setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));\r
- f.elements[fp + "_left"].disabled = false;\r
-\r
- if (f.elements[fp + "_top_measurement"]) {\r
- selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));\r
- selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));\r
- selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));\r
- selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));\r
- f.elements[fp + "_left_measurement"].disabled = false;\r
- f.elements[fp + "_bottom_measurement"].disabled = false;\r
- f.elements[fp + "_right_measurement"].disabled = false;\r
- }\r
- }\r
-}\r
-\r
-function isSame(e, pr, sf, b) {\r
- var a = [], i, x;\r
-\r
- if (typeof(b) == "undefined")\r
- b = ['Top', 'Right', 'Bottom', 'Left'];\r
-\r
- if (typeof(sf) == "undefined" || sf == null)\r
- sf = "";\r
-\r
- a[0] = e.style[pr + b[0] + sf];\r
- a[1] = e.style[pr + b[1] + sf];\r
- a[2] = e.style[pr + b[2] + sf];\r
- a[3] = e.style[pr + b[3] + sf];\r
-\r
- for (i=0; i<a.length; i++) {\r
- if (a[i] == null)\r
- return false;\r
-\r
- for (x=0; x<a.length; x++) {\r
- if (a[x] != a[i])\r
- return false;\r
- }\r
- }\r
-\r
- return true;\r
-};\r
-\r
-function hasEqualValues(a) {\r
- var i, x;\r
-\r
- for (i=0; i<a.length; i++) {\r
- if (a[i] == null)\r
- return false;\r
-\r
- for (x=0; x<a.length; x++) {\r
- if (a[x] != a[i])\r
- return false;\r
- }\r
- }\r
-\r
- return true;\r
-}\r
-\r
-function applyAction() {\r
- var ce = document.getElementById('container'), ed = tinyMCEPopup.editor;\r
-\r
- generateCSS();\r
-\r
- tinyMCEPopup.restoreSelection();\r
- ed.dom.setAttrib(ed.selection.getNode(), 'style', tinyMCEPopup.editor.dom.serializeStyle(tinyMCEPopup.editor.dom.parseStyle(ce.style.cssText)));\r
-}\r
-\r
-function updateAction() {\r
- applyAction();\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function generateCSS() {\r
- var ce = document.getElementById('container'), f = document.forms[0], num = new RegExp('[0-9]+', 'g'), s, t;\r
-\r
- ce.style.cssText = "";\r
-\r
- // Build text styles\r
- ce.style.fontFamily = f.text_font.value;\r
- ce.style.fontSize = f.text_size.value + (isNum(f.text_size.value) ? (f.text_size_measurement.value || 'px') : "");\r
- ce.style.fontStyle = f.text_style.value;\r
- ce.style.lineHeight = f.text_lineheight.value + (isNum(f.text_lineheight.value) ? f.text_lineheight_measurement.value : "");\r
- ce.style.textTransform = f.text_case.value;\r
- ce.style.fontWeight = f.text_weight.value;\r
- ce.style.fontVariant = f.text_variant.value;\r
- ce.style.color = f.text_color.value;\r
-\r
- s = "";\r
- s += f.text_underline.checked ? " underline" : "";\r
- s += f.text_overline.checked ? " overline" : "";\r
- s += f.text_linethrough.checked ? " line-through" : "";\r
- s += f.text_blink.checked ? " blink" : "";\r
- s = s.length > 0 ? s.substring(1) : s;\r
-\r
- if (f.text_none.checked)\r
- s = "none";\r
-\r
- ce.style.textDecoration = s;\r
-\r
- // Build background styles\r
-\r
- ce.style.backgroundColor = f.background_color.value;\r
- ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";\r
- ce.style.backgroundRepeat = f.background_repeat.value;\r
- ce.style.backgroundAttachment = f.background_attachment.value;\r
-\r
- if (f.background_hpos.value != "") {\r
- s = "";\r
- s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";\r
- s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");\r
- ce.style.backgroundPosition = s;\r
- }\r
-\r
- // Build block styles\r
-\r
- ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");\r
- ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");\r
- ce.style.verticalAlign = f.block_vertical_alignment.value;\r
- ce.style.textAlign = f.block_text_align.value;\r
- ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");\r
- ce.style.whiteSpace = f.block_whitespace.value;\r
- ce.style.display = f.block_display.value;\r
-\r
- // Build box styles\r
-\r
- ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");\r
- ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");\r
- ce.style.styleFloat = f.box_float.value;\r
-\r
- if (tinymce.isGecko)\r
- ce.style.cssFloat = f.box_float.value;\r
-\r
- ce.style.clear = f.box_clear.value;\r
-\r
- if (!f.box_padding_same.checked) {\r
- ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");\r
- ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");\r
- ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");\r
- ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");\r
- } else\r
- ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : ""); \r
-\r
- if (!f.box_margin_same.checked) {\r
- ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");\r
- ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");\r
- ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");\r
- ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");\r
- } else\r
- ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : ""); \r
-\r
- // Build border styles\r
-\r
- if (!f.border_style_same.checked) {\r
- ce.style.borderTopStyle = f.border_style_top.value;\r
- ce.style.borderRightStyle = f.border_style_right.value;\r
- ce.style.borderBottomStyle = f.border_style_bottom.value;\r
- ce.style.borderLeftStyle = f.border_style_left.value;\r
- } else\r
- ce.style.borderStyle = f.border_style_top.value;\r
-\r
- if (!f.border_width_same.checked) {\r
- ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");\r
- ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");\r
- ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");\r
- ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");\r
- } else\r
- ce.style.borderWidth = f.border_width_top.value;\r
-\r
- if (!f.border_color_same.checked) {\r
- ce.style.borderTopColor = f.border_color_top.value;\r
- ce.style.borderRightColor = f.border_color_right.value;\r
- ce.style.borderBottomColor = f.border_color_bottom.value;\r
- ce.style.borderLeftColor = f.border_color_left.value;\r
- } else\r
- ce.style.borderColor = f.border_color_top.value;\r
-\r
- // Build list styles\r
-\r
- ce.style.listStyleType = f.list_type.value;\r
- ce.style.listStylePosition = f.list_position.value;\r
- ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";\r
-\r
- // Build positioning styles\r
-\r
- ce.style.position = f.positioning_type.value;\r
- ce.style.visibility = f.positioning_visibility.value;\r
-\r
- if (ce.style.width == "")\r
- ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");\r
-\r
- if (ce.style.height == "")\r
- ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");\r
-\r
- ce.style.zIndex = f.positioning_zindex.value;\r
- ce.style.overflow = f.positioning_overflow.value;\r
-\r
- if (!f.positioning_placement_same.checked) {\r
- ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");\r
- ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");\r
- ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");\r
- ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");\r
- } else {\r
- s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");\r
- ce.style.top = s;\r
- ce.style.right = s;\r
- ce.style.bottom = s;\r
- ce.style.left = s;\r
- }\r
-\r
- if (!f.positioning_clip_same.checked) {\r
- s = "rect(";\r
- s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";\r
- s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";\r
- s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";\r
- s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");\r
- s += ")";\r
-\r
- if (s != "rect(auto auto auto auto)")\r
- ce.style.clip = s;\r
- } else {\r
- s = "rect(";\r
- t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";\r
- s += t + " ";\r
- s += t + " ";\r
- s += t + " ";\r
- s += t + ")";\r
-\r
- if (s != "rect(auto auto auto auto)")\r
- ce.style.clip = s;\r
- }\r
-\r
- ce.style.cssText = ce.style.cssText;\r
-}\r
-\r
-function isNum(s) {\r
- return new RegExp('[0-9]+', 'g').test(s);\r
-}\r
-\r
-function showDisabledControls() {\r
- var f = document.forms, i, a;\r
-\r
- for (i=0; i<f.length; i++) {\r
- for (a=0; a<f[i].elements.length; a++) {\r
- if (f[i].elements[a].disabled)\r
- tinyMCEPopup.editor.dom.addClass(f[i].elements[a], "disabled");\r
- else\r
- tinyMCEPopup.editor.dom.removeClass(f[i].elements[a], "disabled");\r
- }\r
- }\r
-}\r
-\r
-function fillSelect(f, s, param, dval, sep, em) {\r
- var i, ar, p, se;\r
-\r
- f = document.forms[f];\r
- sep = typeof(sep) == "undefined" ? ";" : sep;\r
-\r
- if (em)\r
- addSelectValue(f, s, "", "");\r
-\r
- ar = tinyMCEPopup.getParam(param, dval).split(sep);\r
- for (i=0; i<ar.length; i++) {\r
- se = false;\r
-\r
- if (ar[i].charAt(0) == '+') {\r
- ar[i] = ar[i].substring(1);\r
- se = true;\r
- }\r
-\r
- p = ar[i].split('=');\r
-\r
- if (p.length > 1) {\r
- addSelectValue(f, s, p[0], p[1]);\r
-\r
- if (se)\r
- selectByValue(f, s, p[1]);\r
- } else {\r
- addSelectValue(f, s, p[0], p[0]);\r
-\r
- if (se)\r
- selectByValue(f, s, p[0]);\r
- }\r
- }\r
-}\r
-\r
-function toggleSame(ce, pre) {\r
- var el = document.forms[0].elements, i;\r
-\r
- if (ce.checked) {\r
- el[pre + "_top"].disabled = false;\r
- el[pre + "_right"].disabled = true;\r
- el[pre + "_bottom"].disabled = true;\r
- el[pre + "_left"].disabled = true;\r
-\r
- if (el[pre + "_top_measurement"]) {\r
- el[pre + "_top_measurement"].disabled = false;\r
- el[pre + "_right_measurement"].disabled = true;\r
- el[pre + "_bottom_measurement"].disabled = true;\r
- el[pre + "_left_measurement"].disabled = true;\r
- }\r
- } else {\r
- el[pre + "_top"].disabled = false;\r
- el[pre + "_right"].disabled = false;\r
- el[pre + "_bottom"].disabled = false;\r
- el[pre + "_left"].disabled = false;\r
-\r
- if (el[pre + "_top_measurement"]) {\r
- el[pre + "_top_measurement"].disabled = false;\r
- el[pre + "_right_measurement"].disabled = false;\r
- el[pre + "_bottom_measurement"].disabled = false;\r
- el[pre + "_left_measurement"].disabled = false;\r
- }\r
- }\r
-\r
- showDisabledControls();\r
-}\r
-\r
-function synch(fr, to) {\r
- var f = document.forms[0];\r
-\r
- f.elements[to].value = f.elements[fr].value;\r
-\r
- if (f.elements[fr + "_measurement"])\r
- selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCE.addI18n('en.style_dlg',{\r
-title:"Edit CSS Style",\r
-apply:"Apply",\r
-text_tab:"Text",\r
-background_tab:"Background",\r
-block_tab:"Block",\r
-box_tab:"Box",\r
-border_tab:"Border",\r
-list_tab:"List",\r
-positioning_tab:"Positioning",\r
-text_props:"Text",\r
-text_font:"Font",\r
-text_size:"Size",\r
-text_weight:"Weight",\r
-text_style:"Style",\r
-text_variant:"Variant",\r
-text_lineheight:"Line height",\r
-text_case:"Case",\r
-text_color:"Color",\r
-text_decoration:"Decoration",\r
-text_overline:"overline",\r
-text_underline:"underline",\r
-text_striketrough:"strikethrough",\r
-text_blink:"blink",\r
-text_none:"none",\r
-background_color:"Background color",\r
-background_image:"Background image",\r
-background_repeat:"Repeat",\r
-background_attachment:"Attachment",\r
-background_hpos:"Horizontal position",\r
-background_vpos:"Vertical position",\r
-block_wordspacing:"Word spacing",\r
-block_letterspacing:"Letter spacing",\r
-block_vertical_alignment:"Vertical alignment",\r
-block_text_align:"Text align",\r
-block_text_indent:"Text indent",\r
-block_whitespace:"Whitespace",\r
-block_display:"Display",\r
-box_width:"Width",\r
-box_height:"Height",\r
-box_float:"Float",\r
-box_clear:"Clear",\r
-padding:"Padding",\r
-same:"Same for all",\r
-top:"Top",\r
-right:"Right",\r
-bottom:"Bottom",\r
-left:"Left",\r
-margin:"Margin",\r
-style:"Style",\r
-width:"Width",\r
-height:"Height",\r
-color:"Color",\r
-list_type:"Type",\r
-bullet_image:"Bullet image",\r
-position:"Position",\r
-positioning_type:"Type",\r
-visibility:"Visibility",\r
-zindex:"Z-index",\r
-overflow:"Overflow",\r
-placement:"Placement",\r
-clip:"Clip"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>{#style_dlg.title}</title>
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
- <script type="text/javascript" src="../../utils/mctabs.js"></script>
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>
- <script type="text/javascript" src="../../utils/form_utils.js"></script>
- <script type="text/javascript" src="js/props.js"></script>
- <link href="css/props.css" rel="stylesheet" type="text/css" />
- <base target="_self" />
-</head>
-
-<body id="styleprops" style="display: none">
-<form onsubmit="updateAction();return false;" action="#">
-<div class="tabs">
- <ul>
- <li id="text_tab" class="current"><span><a href="javascript:mcTabs.displayTab('text_tab','text_panel');" onMouseDown="return false;">{#style_dlg.text_tab}</a></span></li>
- <li id="background_tab"><span><a href="javascript:mcTabs.displayTab('background_tab','background_panel');" onMouseDown="return false;">{#style_dlg.background_tab}</a></span></li>
- <li id="block_tab"><span><a href="javascript:mcTabs.displayTab('block_tab','block_panel');" onMouseDown="return false;">{#style_dlg.block_tab}</a></span></li>
- <li id="box_tab"><span><a href="javascript:mcTabs.displayTab('box_tab','box_panel');" onMouseDown="return false;">{#style_dlg.box_tab}</a></span></li>
- <li id="border_tab"><span><a href="javascript:mcTabs.displayTab('border_tab','border_panel');" onMouseDown="return false;">{#style_dlg.border_tab}</a></span></li>
- <li id="list_tab"><span><a href="javascript:mcTabs.displayTab('list_tab','list_panel');" onMouseDown="return false;">{#style_dlg.list_tab}</a></span></li>
- <li id="positioning_tab"><span><a href="javascript:mcTabs.displayTab('positioning_tab','positioning_panel');" onMouseDown="return false;">{#style_dlg.positioning_tab}</a></span></li>
- </ul>
-</div>
-
-<div class="panel_wrapper">
-<div id="text_panel" class="panel current">
- <table border="0" width="100%">
- <tr>
- <td><label for="text_font">{#style_dlg.text_font}</label></td>
- <td colspan="3">
- <select id="text_font" name="text_font" class="mceEditableSelect mceFocus"></select>
- </td>
- </tr>
- <tr>
- <td><label for="text_size">{#style_dlg.text_size}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="text_size" name="text_size" class="mceEditableSelect"></select></td>
- <td> </td>
- <td><select id="text_size_measurement" name="text_size_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td><label for="text_weight">{#style_dlg.text_weight}</label></td>
- <td>
- <select id="text_weight" name="text_weight"></select>
- </td>
- </tr>
- <tr>
- <td><label for="text_style">{#style_dlg.text_style}</label></td>
- <td>
- <select id="text_style" name="text_style" class="mceEditableSelect"></select>
- </td>
- <td><label for="text_variant">{#style_dlg.text_variant}</label></td>
- <td>
- <select id="text_variant" name="text_variant"></select>
- </td>
- </tr>
- <tr>
- <td><label for="text_lineheight">{#style_dlg.text_lineheight}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td>
- <select id="text_lineheight" name="text_lineheight" class="mceEditableSelect"></select>
- </td>
- <td> </td>
- <td><select id="text_lineheight_measurement" name="text_lineheight_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td><label for="text_case">{#style_dlg.text_case}</label></td>
- <td>
- <select id="text_case" name="text_case"></select>
- </td>
- </tr>
- <tr>
- <td><label for="text_color">{#style_dlg.text_color}</label></td>
- <td colspan="2">
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td><input id="text_color" name="text_color" type="text" value="" size="9" onChange="updateColor('text_color_pick','text_color');" /></td>
- <td id="text_color_pickcontainer"> </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td valign="top" style="vertical-align: top; padding-top: 3px;">{#style_dlg.text_decoration}</td>
- <td colspan="2">
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input id="text_underline" name="text_underline" class="checkbox" type="checkbox" /></td>
- <td><label for="text_underline">{#style_dlg.text_underline}</label></td>
- </tr>
- <tr>
- <td><input id="text_overline" name="text_overline" class="checkbox" type="checkbox" /></td>
- <td><label for="text_overline">{#style_dlg.text_overline}</label></td>
- </tr>
- <tr>
- <td><input id="text_linethrough" name="text_linethrough" class="checkbox" type="checkbox" /></td>
- <td><label for="text_linethrough">{#style_dlg.text_striketrough}</label></td>
- </tr>
- <tr>
- <td><input id="text_blink" name="text_blink" class="checkbox" type="checkbox" /></td>
- <td><label for="text_blink">{#style_dlg.text_blink}</label></td>
- </tr>
- <tr>
- <td><input id="text_none" name="text_none" class="checkbox" type="checkbox" /></td>
- <td><label for="text_none">{#style_dlg.text_none}</label></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-</div>
-
-<div id="background_panel" class="panel">
- <table border="0">
- <tr>
- <td><label for="background_color">{#style_dlg.background_color}</label></td>
- <td>
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td><input id="background_color" name="background_color" type="text" value="" size="9" onChange="updateColor('background_color_pick','background_color');" /></td>
- <td id="background_color_pickcontainer"> </td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td><label for="background_image">{#style_dlg.background_image}</label></td>
- <td><table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input id="background_image" name="background_image" type="text" /></td>
- <td id="background_image_browser"> </td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td><label for="background_repeat">{#style_dlg.background_repeat}</label></td>
- <td><select id="background_repeat" name="background_repeat" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="background_attachment">{#style_dlg.background_attachment}</label></td>
- <td><select id="background_attachment" name="background_attachment" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="background_hpos">{#style_dlg.background_hpos}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="background_hpos" name="background_hpos" class="mceEditableSelect"></select></td>
- <td> </td>
- <td><select id="background_hpos_measurement" name="background_hpos_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td><label for="background_vpos">{#style_dlg.background_vpos}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="background_vpos" name="background_vpos" class="mceEditableSelect"></select></td>
- <td> </td>
- <td><select id="background_vpos_measurement" name="background_vpos_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
-</div>
-
-<div id="block_panel" class="panel">
- <table border="0">
- <tr>
- <td><label for="block_wordspacing">{#style_dlg.block_wordspacing}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="block_wordspacing" name="block_wordspacing" class="mceEditableSelect"></select></td>
- <td> </td>
- <td><select id="block_wordspacing_measurement" name="block_wordspacing_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td><label for="block_letterspacing">{#style_dlg.block_letterspacing}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="block_letterspacing" name="block_letterspacing" class="mceEditableSelect"></select></td>
- <td> </td>
- <td><select id="block_letterspacing_measurement" name="block_letterspacing_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td><label for="block_vertical_alignment">{#style_dlg.block_vertical_alignment}</label></td>
- <td><select id="block_vertical_alignment" name="block_vertical_alignment" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="block_text_align">{#style_dlg.block_text_align}</label></td>
- <td><select id="block_text_align" name="block_text_align" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="block_text_indent">{#style_dlg.block_text_indent}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="block_text_indent" name="block_text_indent" /></td>
- <td> </td>
- <td><select id="block_text_indent_measurement" name="block_text_indent_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td><label for="block_whitespace">{#style_dlg.block_whitespace}</label></td>
- <td><select id="block_whitespace" name="block_whitespace" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="block_display">{#style_dlg.block_display}</label></td>
- <td><select id="block_display" name="block_display" class="mceEditableSelect"></select></td>
- </tr>
- </table>
-</div>
-
-<div id="box_panel" class="panel">
-<table border="0">
- <tr>
- <td><label for="box_width">{#style_dlg.box_width}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_width" name="box_width" class="mceEditableSelect" onChange="synch('box_width','positioning_width');" /></td>
- <td> </td>
- <td><select id="box_width_measurement" name="box_width_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td> <label for="box_float">{#style_dlg.box_float}</label></td>
- <td><select id="box_float" name="box_float" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="box_height">{#style_dlg.box_height}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_height" name="box_height" class="mceEditableSelect" onChange="synch('box_height','positioning_height');" /></td>
- <td> </td>
- <td><select id="box_height_measurement" name="box_height_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td> <label for="box_clear">{#style_dlg.box_clear}</label></td>
- <td><select id="box_clear" name="box_clear" class="mceEditableSelect"></select></td>
- </tr>
-</table>
-<div style="float: left; width: 49%">
- <fieldset>
- <legend>{#style_dlg.padding}</legend>
-
- <table border="0">
- <tr>
- <td> </td>
- <td><input type="checkbox" id="box_padding_same" name="box_padding_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_padding');" /> <label for="box_padding_same">{#style_dlg.same}</label></td>
- </tr>
- <tr>
- <td><label for="box_padding_top">{#style_dlg.top}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_padding_top" name="box_padding_top" class="mceEditableSelect" /></td>
- <td> </td>
- <td><select id="box_padding_top_measurement" name="box_padding_top_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><label for="box_padding_right">{#style_dlg.right}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_padding_right" name="box_padding_right" class="mceEditableSelect" disabled="disabled" /></td>
- <td> </td>
- <td><select id="box_padding_right_measurement" name="box_padding_right_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><label for="box_padding_bottom">{#style_dlg.bottom}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_padding_bottom" name="box_padding_bottom" class="mceEditableSelect" disabled="disabled" /></td>
- <td> </td>
- <td><select id="box_padding_bottom_measurement" name="box_padding_bottom_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><label for="box_padding_left">{#style_dlg.left}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_padding_left" name="box_padding_left" class="mceEditableSelect" disabled="disabled" /></td>
- <td> </td>
- <td><select id="box_padding_left_measurement" name="box_padding_left_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </fieldset>
-</div>
-
-<div style="float: right; width: 49%">
- <fieldset>
- <legend>{#style_dlg.margin}</legend>
-
- <table border="0">
- <tr>
- <td> </td>
- <td><input type="checkbox" id="box_margin_same" name="box_margin_same" class="checkbox" checked="checked" onClick="toggleSame(this,'box_margin');" /> <label for="box_margin_same">{#style_dlg.same}</label></td>
- </tr>
- <tr>
- <td><label for="box_margin_top">{#style_dlg.top}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_margin_top" name="box_margin_top" class="mceEditableSelect" /></td>
- <td> </td>
- <td><select id="box_margin_top_measurement" name="box_margin_top_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><label for="box_margin_right">{#style_dlg.right}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_margin_right" name="box_margin_right" class="mceEditableSelect" disabled="disabled" /></td>
- <td> </td>
- <td><select id="box_margin_right_measurement" name="box_margin_right_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><label for="box_margin_bottom">{#style_dlg.bottom}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_margin_bottom" name="box_margin_bottom" class="mceEditableSelect" disabled="disabled" /></td>
- <td> </td>
- <td><select id="box_margin_bottom_measurement" name="box_margin_bottom_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td><label for="box_margin_left">{#style_dlg.left}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="box_margin_left" name="box_margin_left" class="mceEditableSelect" disabled="disabled" /></td>
- <td> </td>
- <td><select id="box_margin_left_measurement" name="box_margin_left_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </fieldset>
-</div>
-<br style="clear: both" />
-</div>
-
-<div id="border_panel" class="panel">
-<table border="0" cellspacing="0" cellpadding="0" width="100%">
-<tr>
- <td class="tdelim"> </td>
- <td class="tdelim delim"> </td>
- <td class="tdelim">{#style_dlg.style}</td>
- <td class="tdelim delim"> </td>
- <td class="tdelim">{#style_dlg.width}</td>
- <td class="tdelim delim"> </td>
- <td class="tdelim">{#style_dlg.color}</td>
-</tr>
-
-<tr>
- <td> </td>
- <td class="delim"> </td>
- <td><input type="checkbox" id="border_style_same" name="border_style_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_style');" /> <label for="border_style_same">{#style_dlg.same}</label></td>
- <td class="delim"> </td>
- <td><input type="checkbox" id="border_width_same" name="border_width_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_width');" /> <label for="border_width_same">{#style_dlg.same}</label></td>
- <td class="delim"> </td>
- <td><input type="checkbox" id="border_color_same" name="border_color_same" class="checkbox" checked="checked" onClick="toggleSame(this,'border_color');" /> <label for="border_color_same">{#style_dlg.same}</label></td>
-</tr>
-
-<tr>
- <td>{#style_dlg.top}</td>
- <td class="delim"> </td>
- <td><select id="border_style_top" name="border_style_top" class="mceEditableSelect"></select></td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="border_width_top" name="border_width_top" class="mceEditableSelect"></select></td>
- <td> </td>
- <td><select id="border_width_top_measurement" name="border_width_top_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td><input id="border_color_top" name="border_color_top" type="text" value="" size="9" onChange="updateColor('border_color_top_pick','border_color_top');" /></td>
- <td id="border_color_top_pickcontainer"> </td>
- </tr>
- </table>
- </td>
-</tr>
-
-<tr>
- <td>{#style_dlg.right}</td>
- <td class="delim"> </td>
- <td><select id="border_style_right" name="border_style_right" class="mceEditableSelect" disabled="disabled"></select></td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="border_width_right" name="border_width_right" class="mceEditableSelect" disabled="disabled"></select></td>
- <td> </td>
- <td><select id="border_width_right_measurement" name="border_width_right_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td><input id="border_color_right" name="border_color_right" type="text" value="" size="9" onChange="updateColor('border_color_right_pick','border_color_right');" disabled="disabled" /></td>
- <td id="border_color_right_pickcontainer"> </td>
- </tr>
- </table>
- </td>
-</tr>
-
-<tr>
- <td>{#style_dlg.bottom}</td>
- <td class="delim"> </td>
- <td><select id="border_style_bottom" name="border_style_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="border_width_bottom" name="border_width_bottom" class="mceEditableSelect" disabled="disabled"></select></td>
- <td> </td>
- <td><select id="border_width_bottom_measurement" name="border_width_bottom_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td><input id="border_color_bottom" name="border_color_bottom" type="text" value="" size="9" onChange="updateColor('border_color_bottom_pick','border_color_bottom');" disabled="disabled" /></td>
- <td id="border_color_bottom_pickcontainer"> </td>
- </tr>
- </table>
- </td>
-</tr>
-
-<tr>
- <td>{#style_dlg.left}</td>
- <td class="delim"> </td>
- <td><select id="border_style_left" name="border_style_left" class="mceEditableSelect" disabled="disabled"></select></td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><select id="border_width_left" name="border_width_left" class="mceEditableSelect" disabled="disabled"></select></td>
- <td> </td>
- <td><select id="border_width_left_measurement" name="border_width_left_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- <td class="delim"> </td>
- <td>
- <table border="0" cellpadding="0" cellspacing="0">
- <tr>
- <td><input id="border_color_left" name="border_color_left" type="text" value="" size="9" onChange="updateColor('border_color_left_pick','border_color_left');" disabled="disabled" /></td>
- <td id="border_color_left_pickcontainer"> </td>
- </tr>
- </table>
- </td>
-</tr>
-</table>
-</div>
-
-<div id="list_panel" class="panel">
- <table border="0">
- <tr>
- <td><label for="list_type">{#style_dlg.list_type}</label></td>
- <td><select id="list_type" name="list_type" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="list_bullet_image">{#style_dlg.bullet_image}</label></td>
- <td><input id="list_bullet_image" name="list_bullet_image" type="text" /></td>
- </tr>
-
- <tr>
- <td><label for="list_position">{#style_dlg.position}</label></td>
- <td><select id="list_position" name="list_position" class="mceEditableSelect"></select></td>
- </tr>
- </table>
-</div>
-
-<div id="positioning_panel" class="panel">
-<table border="0">
- <tr>
- <td><label for="positioning_type">{#style_dlg.positioning_type}</label></td>
- <td><select id="positioning_type" name="positioning_type" class="mceEditableSelect"></select></td>
- <td> <label for="positioning_visibility">{#style_dlg.visibility}</label></td>
- <td><select id="positioning_visibility" name="positioning_visibility" class="mceEditableSelect"></select></td>
- </tr>
-
- <tr>
- <td><label for="positioning_width">{#style_dlg.width}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_width" name="positioning_width" onChange="synch('positioning_width','box_width');" /></td>
- <td> </td>
- <td><select id="positioning_width_measurement" name="positioning_width_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td> <label for="positioning_zindex">{#style_dlg.zindex}</label></td>
- <td><input type="text" id="positioning_zindex" name="positioning_zindex" /></td>
- </tr>
-
- <tr>
- <td><label for="positioning_height">{#style_dlg.height}</label></td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_height" name="positioning_height" onChange="synch('positioning_height','box_height');" /></td>
- <td> </td>
- <td><select id="positioning_height_measurement" name="positioning_height_measurement"></select></td>
- </tr>
- </table>
- </td>
- <td> <label for="positioning_overflow">{#style_dlg.overflow}</label></td>
- <td><select id="positioning_overflow" name="positioning_overflow" class="mceEditableSelect"></select></td>
- </tr>
-</table>
-
-<div style="float: left; width: 49%">
- <fieldset>
- <legend>{#style_dlg.placement}</legend>
-
- <table border="0">
- <tr>
- <td> </td>
- <td><input type="checkbox" id="positioning_placement_same" name="positioning_placement_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_placement');" /> <label for="positioning_placement_same">{#style_dlg.same}</label></td>
- </tr>
- <tr>
- <td>{#style_dlg.top}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_placement_top" name="positioning_placement_top" /></td>
- <td> </td>
- <td><select id="positioning_placement_top_measurement" name="positioning_placement_top_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>{#style_dlg.right}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_placement_right" name="positioning_placement_right" disabled="disabled" /></td>
- <td> </td>
- <td><select id="positioning_placement_right_measurement" name="positioning_placement_right_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>{#style_dlg.bottom}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_placement_bottom" name="positioning_placement_bottom" disabled="disabled" /></td>
- <td> </td>
- <td><select id="positioning_placement_bottom_measurement" name="positioning_placement_bottom_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>{#style_dlg.left}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_placement_left" name="positioning_placement_left" disabled="disabled" /></td>
- <td> </td>
- <td><select id="positioning_placement_left_measurement" name="positioning_placement_left_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </fieldset>
-</div>
-
-<div style="float: right; width: 49%">
- <fieldset>
- <legend>{#style_dlg.clip}</legend>
-
- <table border="0">
- <tr>
- <td> </td>
- <td><input type="checkbox" id="positioning_clip_same" name="positioning_clip_same" class="checkbox" checked="checked" onClick="toggleSame(this,'positioning_clip');" /> <label for="positioning_clip_same">{#style_dlg.same}</label></td>
- </tr>
- <tr>
- <td>{#style_dlg.top}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_clip_top" name="positioning_clip_top" /></td>
- <td> </td>
- <td><select id="positioning_clip_top_measurement" name="positioning_clip_top_measurement"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>{#style_dlg.right}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_clip_right" name="positioning_clip_right" disabled="disabled" /></td>
- <td> </td>
- <td><select id="positioning_clip_right_measurement" name="positioning_clip_right_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>{#style_dlg.bottom}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_clip_bottom" name="positioning_clip_bottom" disabled="disabled" /></td>
- <td> </td>
- <td><select id="positioning_clip_bottom_measurement" name="positioning_clip_bottom_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td>{#style_dlg.left}</td>
- <td>
- <table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input type="text" id="positioning_clip_left" name="positioning_clip_left" disabled="disabled" /></td>
- <td> </td>
- <td><select id="positioning_clip_left_measurement" name="positioning_clip_left_measurement" disabled="disabled"></select></td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </fieldset>
-</div>
-<br style="clear: both" />
-</div>
-</div>
-
-<div class="mceActionPanel">
- <div style="float: left">
- <div style="float: left"><input type="submit" id="insert" name="insert" value="{#update}" /></div>
-
- <div style="float: left"> <input type="button" class="button" id="apply" name="apply" value="{#style_dlg.apply}" onClick="applyAction();" /></div>
- <br style="clear: both" />
- </div>
-
- <div style="float: right">
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onClick="tinyMCEPopup.close();" />
- </div>
-</div>
-</form>
-
-<div style="display: none">
- <div id="container"></div>
-</div>
-
-</body>
-</html>
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#table_dlg.cell_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/cell.js"></script>\r
- <link href="css/cell.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="tablecell" style="display: none">\r
- <form onsubmit="updateAction();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#table_dlg.general_props}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="align">{#table_dlg.align}</label></td>\r
- <td>\r
- <select id="align" name="align" class="mceFocus">\r
- <option value="">{#not_set}</option>\r
- <option value="center">{#table_dlg.align_middle}</option>\r
- <option value="left">{#table_dlg.align_left}</option>\r
- <option value="right">{#table_dlg.align_right}</option>\r
- </select>\r
- </td>\r
- \r
- <td><label for="celltype">{#table_dlg.cell_type}</label></td>\r
- <td>\r
- <select id="celltype" name="celltype">\r
- <option value="td">{#table_dlg.td}</option>\r
- <option value="th">{#table_dlg.th}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="valign">{#table_dlg.valign}</label></td>\r
- <td>\r
- <select id="valign" name="valign">\r
- <option value="">{#not_set}</option>\r
- <option value="top">{#table_dlg.align_top}</option>\r
- <option value="middle">{#table_dlg.align_middle}</option>\r
- <option value="bottom">{#table_dlg.align_bottom}</option>\r
- </select>\r
- </td>\r
-\r
- <td><label for="scope">{#table_dlg.scope}</label></td>\r
- <td>\r
- <select id="scope" name="scope">\r
- <option value="">{#not_set}</option>\r
- <option value="col">{#table.col}</option>\r
- <option value="row">{#table.row}</option>\r
- <option value="rowgroup">{#table_dlg.rowgroup}</option>\r
- <option value="colgroup">{#table_dlg.colgroup}</option>\r
- </select>\r
- </td>\r
-\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="width">{#table_dlg.width}</label></td>\r
- <td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
-\r
- <td><label for="height">{#table_dlg.height}</label></td>\r
- <td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
- </tr>\r
-\r
- <tr id="styleSelectRow">\r
- <td><label for="class">{#class_name}</label></td>\r
- <td colspan="3">\r
- <select id="class" name="class" class="mceEditableSelect">\r
- <option value="" selected="selected">{#not_set}</option>\r
- </select>\r
- </td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <fieldset>\r
- <legend>{#table_dlg.advanced_props}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
- <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label for="style">{#table_dlg.style}</label></td>\r
- <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
- <td>\r
- <select id="dir" name="dir" style="width: 200px"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#table_dlg.ltr}</option> \r
- <option value="rtl">{#table_dlg.rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" style="width: 200px" />\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>\r
- <td id="backgroundimagebrowsercontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>\r
- <td id="bordercolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
- <td id="bgcolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div>\r
- <select id="action" name="action">\r
- <option value="cell">{#table_dlg.cell_cell}</option>\r
- <option value="row">{#table_dlg.cell_row}</option>\r
- <option value="all">{#table_dlg.cell_all}</option>\r
- </select>\r
- </div>\r
-\r
- <div style="float: left">\r
- <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-/* CSS file for cell dialog in the table plugin */\r
-\r
-.panel_wrapper div.current {\r
- height: 200px;\r
-}\r
-\r
-.advfield {\r
- width: 200px;\r
-}\r
-\r
-#action {\r
- margin-bottom: 3px;\r
-}\r
-\r
-#class {\r
- width: 150px;\r
-}
\ No newline at end of file
+++ /dev/null
-/* CSS file for row dialog in the table plugin */\r
-\r
-.panel_wrapper div.current {\r
- height: 200px;\r
-}\r
-\r
-.advfield {\r
- width: 200px;\r
-}\r
-\r
-#action {\r
- margin-bottom: 3px;\r
-}\r
-\r
-#rowtype,#align,#valign,#class,#height {\r
- width: 150px;\r
-}\r
-\r
-#height {\r
- width: 50px; \r
-}\r
-\r
-.col2 {\r
- padding-left: 20px;\r
-}\r
+++ /dev/null
-/* CSS file for table dialog in the table plugin */\r
-\r
-.panel_wrapper div.current {\r
- height: 245px;\r
-}\r
-\r
-.advfield {\r
- width: 200px;\r
-}\r
-\r
-#class {\r
- width: 150px;\r
-}\r
+++ /dev/null
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TablePlugin',{init:function(ed,url){var t=this;t.editor=ed;t.url=url;each([['table','table.desc','mceInsertTable',true],['delete_table','table.del','mceTableDelete'],['delete_col','table.delete_col_desc','mceTableDeleteCol'],['delete_row','table.delete_row_desc','mceTableDeleteRow'],['col_after','table.col_after_desc','mceTableInsertColAfter'],['col_before','table.col_before_desc','mceTableInsertColBefore'],['row_after','table.row_after_desc','mceTableInsertRowAfter'],['row_before','table.row_before_desc','mceTableInsertRowBefore'],['row_props','table.row_desc','mceTableRowProps',true],['cell_props','table.cell_desc','mceTableCellProps',true],['split_cells','table.split_cells_desc','mceTableSplitCells',true],['merge_cells','table.merge_cells_desc','mceTableMergeCells',true]],function(c){ed.addButton(c[0],{title:c[1],cmd:c[2],ui:c[3]});});ed.onInit.add(function(){if(ed&&ed.plugins.contextmenu){ed.plugins.contextmenu.onContextMenu.add(function(th,m,e){var sm,se=ed.selection,el=se.getNode()||ed.getBody();if(ed.dom.getParent(e,'td')||ed.dom.getParent(e,'th')){m.removeAll();if(el.nodeName=='A'&&!ed.dom.getAttrib(el,'name')){m.add({title:'advanced.link_desc',icon:'link',cmd:ed.plugins.advlink?'mceAdvLink':'mceLink',ui:true});m.add({title:'advanced.unlink_desc',icon:'unlink',cmd:'UnLink'});m.addSeparator();}if(el.nodeName=='IMG'&&el.className.indexOf('mceItem')==-1){m.add({title:'advanced.image_desc',icon:'image',cmd:ed.plugins.advimage?'mceAdvImage':'mceImage',ui:true});m.addSeparator();}m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true,value:{action:'insert'}});m.add({title:'table.props_desc',icon:'table_props',cmd:'mceInsertTable',ui:true});m.add({title:'table.del',icon:'delete_table',cmd:'mceTableDelete',ui:true});m.addSeparator();sm=m.addMenu({title:'table.cell'});sm.add({title:'table.cell_desc',icon:'cell_props',cmd:'mceTableCellProps',ui:true});sm.add({title:'table.split_cells_desc',icon:'split_cells',cmd:'mceTableSplitCells',ui:true});sm.add({title:'table.merge_cells_desc',icon:'merge_cells',cmd:'mceTableMergeCells',ui:true});sm=m.addMenu({title:'table.row'});sm.add({title:'table.row_desc',icon:'row_props',cmd:'mceTableRowProps',ui:true});sm.add({title:'table.row_before_desc',icon:'row_before',cmd:'mceTableInsertRowBefore'});sm.add({title:'table.row_after_desc',icon:'row_after',cmd:'mceTableInsertRowAfter'});sm.add({title:'table.delete_row_desc',icon:'delete_row',cmd:'mceTableDeleteRow'});sm.addSeparator();sm.add({title:'table.cut_row_desc',icon:'cut',cmd:'mceTableCutRow'});sm.add({title:'table.copy_row_desc',icon:'copy',cmd:'mceTableCopyRow'});sm.add({title:'table.paste_row_before_desc',icon:'paste',cmd:'mceTablePasteRowBefore'});sm.add({title:'table.paste_row_after_desc',icon:'paste',cmd:'mceTablePasteRowAfter'});sm=m.addMenu({title:'table.col'});sm.add({title:'table.col_before_desc',icon:'col_before',cmd:'mceTableInsertColBefore'});sm.add({title:'table.col_after_desc',icon:'col_after',cmd:'mceTableInsertColAfter'});sm.add({title:'table.delete_col_desc',icon:'delete_col',cmd:'mceTableDeleteCol'});}else m.add({title:'table.desc',icon:'table',cmd:'mceInsertTable',ui:true});});}});ed.onKeyDown.add(function(ed,e){if(e.keyCode==9&&ed.dom.getParent(ed.selection.getNode(),'TABLE')){if(!tinymce.isGecko&&!tinymce.isOpera){tinyMCE.execInstanceCommand(ed.editorId,"mceTableMoveToNextRow",true);return tinymce.dom.Event.cancel(e);}ed.undoManager.add();}});if(!tinymce.isIE){if(ed.getParam('table_selection',true)){ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName==='TABLE')ed.selection.select(e);});}}ed.onNodeChange.add(function(ed,cm,n){var p=ed.dom.getParent(n,'td,th,caption');cm.setActive('table',n.nodeName==='TABLE'||!!p);if(p&&p.nodeName==='CAPTION')p=null;cm.setDisabled('delete_table',!p);cm.setDisabled('delete_col',!p);cm.setDisabled('delete_table',!p);cm.setDisabled('delete_row',!p);cm.setDisabled('col_after',!p);cm.setDisabled('col_before',!p);cm.setDisabled('row_after',!p);cm.setDisabled('row_before',!p);cm.setDisabled('row_props',!p);cm.setDisabled('cell_props',!p);cm.setDisabled('split_cells',!p||(parseInt(ed.dom.getAttrib(p,'colspan','1'))<2&&parseInt(ed.dom.getAttrib(p,'rowspan','1'))<2));cm.setDisabled('merge_cells',!p);});if(!tinymce.isIE){ed.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g,tinymce.isOpera?'<$1$2> </$1>':'<$1$2><br mce_bogus="1" /></$1>');});}},execCommand:function(cmd,ui,val){var ed=this.editor,b;switch(cmd){case"mceTableMoveToNextRow":case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":ed.execCommand('mceBeginUndoLevel');this._doExecCommand(cmd,ui,val);ed.execCommand('mceEndUndoLevel');return true;}return false;},getInfo:function(){return{longname:'Tables',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_doExecCommand:function(command,user_interface,value){var inst=this.editor,ed=inst,url=this.url;var focusElm=inst.selection.getNode();var trElm=inst.dom.getParent(focusElm,"tr");var tdElm=inst.dom.getParent(focusElm,"td,th");var tableElm=inst.dom.getParent(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function select(dx,dy){var td;grid=getTableGrid(tableElm);dx=dx||0;dy=dy||0;dx=Math.max(cpos.cellindex+dx,0);dy=Math.max(cpos.rowindex+dy,0);inst.execCommand('mceRepaint');td=getCell(grid,dy,dx);if(td){inst.selection.select(td.firstChild||td);inst.selection.collapse(1);}};function makeTD(){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}function getColRowSpan(td){var colspan=inst.dom.getAttrib(td,"colspan");var rowspan=inst.dom.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){var x,y;for(y=0;y<grid.length;y++){for(x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getNextCell(table,cell){var cells=[],x=0,i,j,cell,nextCell;for(i=0;i<table.rows.length;i++)for(j=0;j<table.rows[i].cells.length;j++,x++)cells[x]=table.rows[i].cells[j];for(i=0;i<cells.length;i++)if(cells[i]==cell)if(nextCell=cells[i+1])return nextCell;}function getTableGrid(table){var grid=[],rows=table.rows,x,y,td,sd,xstart,x2,y2;for(y=0;y<rows.length;y++){for(x=0;x<rows[y].cells.length;x++){td=rows[y].cells[x];sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=[];for(x2=xstart;x2<xstart+sd['colspan'];x2++)grid[y2][x2]=td;}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table),cpos=getCellPos(grid,td);var cells,lastElm;if(new_tr.cells.length!=tr.childNodes.length){cells=tr.childNodes;lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';if(tinymce.isIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=inst.dom.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableMoveToNextRow":var nextCell=getNextCell(tableElm,tdElm);if(!nextCell){inst.execCommand("mceTableInsertRowAfter",tdElm);nextCell=getNextCell(tableElm,tdElm);}inst.selection.select(nextCell);inst.selection.collapse(true);return true;case"mceTableRowProps":if(trElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/row.htm',width:400+parseInt(inst.getLang('table.rowprops_delta_width',0)),height:295+parseInt(inst.getLang('table.rowprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){inst.windowManager.open({url:url+'/cell.htm',width:400+parseInt(inst.getLang('table.cellprops_delta_width',0)),height:295+parseInt(inst.getLang('table.cellprops_delta_height',0)),inline:1},{plugin_url:url});}return true;case"mceInsertTable":if(user_interface){inst.windowManager.open({url:url+'/table.htm',width:400+parseInt(inst.getLang('table.table_delta_width',0)),height:320+parseInt(inst.getLang('table.table_delta_height',0)),inline:1},{plugin_url:url,action:value?value.action:0});}return true;case"mceTableDelete":var table=inst.dom.getParent(inst.selection.getNode(),"table");if(table){table.parentNode.removeChild(table);inst.execCommand('mceRepaint');}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!tableElm)return true;if(trElm&&tableElm!=trElm.parentNode)tableElm=trElm.parentNode;if(tableElm&&trElm){switch(command){case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);select(0,1);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}select(0,1);break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1&&tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);select(0,-1);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}select();break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement(tdElm.nodeName);if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD,TH");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}select(1);break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if((grid.length>1&&grid[0].length<=1)&&tableElm.nodeName=='TBODY'){inst.dom.remove(inst.dom.getParent(tableElm,"table"));return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}select(-1);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");if(!tinymce.isIE)newTD.innerHTML='<br mce_bogus="1"/>';trElm.insertBefore(newTD,nextElm(tdElm,"TD,TH"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");break;case"mceTableMergeCells":var rows=[];var sel=inst.selection.getSel();var grid=getTableGrid(tableElm);if(tinymce.isIE||sel.rangeCount==1){if(user_interface){var sp=getColRowSpan(tdElm);inst.windowManager.open({url:url+'/merge_cells.htm',width:240+parseInt(inst.getLang('table.merge_cells_delta_width',0)),height:110+parseInt(inst.getLang('table.merge_cells_delta_height',0)),inline:1},{action:"update",numcols:sp.colspan,numrows:sp.rowspan,plugin_url:url});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=[];for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;var td=getCell(grid,cpos.rowindex,cpos.cellindex);each(ed.dom.select('br',td),function(e,i){if(i>0&&ed.dom.getAttrib('mce_bogus'))ed.dom.remove(e);});}}}else{var cells=[];var sel=inst.selection.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD"||tdElm.nodeName=="TH")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=[];for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=[];var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=html.replace(/[ \t\r\n]/g,"");if(chk!="<br/>"&&chk!="<br>"&&chk!='<br mce_bogus="1"/>'&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}each(ed.dom.select('br',tdElm),function(e,i){if(i>0&&ed.dom.getAttrib(e,'mce_bogus'))ed.dom.remove(e);});break;}tableElm=inst.dom.getParent(inst.selection.getNode(),"table");inst.addVisual(tableElm);inst.nodeChanged();}return true;}return false;}});tinymce.PluginManager.add('table',tinymce.plugins.TablePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 853 2008-05-27 08:05:35Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var each = tinymce.each;\r
-\r
- tinymce.create('tinymce.plugins.TablePlugin', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
- t.url = url;\r
-\r
- // Register buttons\r
- each([\r
- ['table', 'table.desc', 'mceInsertTable', true],\r
- ['delete_table', 'table.del', 'mceTableDelete'],\r
- ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'],\r
- ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'],\r
- ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'],\r
- ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'],\r
- ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'],\r
- ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'],\r
- ['row_props', 'table.row_desc', 'mceTableRowProps', true],\r
- ['cell_props', 'table.cell_desc', 'mceTableCellProps', true],\r
- ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true],\r
- ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true]\r
- ], function(c) {\r
- ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});\r
- });\r
-\r
- ed.onInit.add(function() {\r
- if (ed && ed.plugins.contextmenu) {\r
- ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {\r
- var sm, se = ed.selection, el = se.getNode() || ed.getBody();\r
-\r
- if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th')) {\r
- m.removeAll();\r
-\r
- if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) {\r
- m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});\r
- m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});\r
- m.addSeparator();\r
- }\r
-\r
- if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) {\r
- m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});\r
- m.addSeparator();\r
- }\r
-\r
- m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true, value : {action : 'insert'}});\r
- m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable', ui : true});\r
- m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete', ui : true});\r
- m.addSeparator();\r
-\r
- // Cell menu\r
- sm = m.addMenu({title : 'table.cell'});\r
- sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps', ui : true});\r
- sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells', ui : true});\r
- sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells', ui : true});\r
-\r
- // Row menu\r
- sm = m.addMenu({title : 'table.row'});\r
- sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps', ui : true});\r
- sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'});\r
- sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'});\r
- sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'});\r
- sm.addSeparator();\r
- sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'});\r
- sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'});\r
- sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'});\r
- sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'});\r
-\r
- // Column menu\r
- sm = m.addMenu({title : 'table.col'});\r
- sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'});\r
- sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'});\r
- sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'});\r
- } else\r
- m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true});\r
- });\r
- }\r
- });\r
-\r
- // Add undo level when new rows are created using the tab key\r
- ed.onKeyDown.add(function(ed, e) {\r
- if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE')) {\r
- if (!tinymce.isGecko && !tinymce.isOpera) {\r
- tinyMCE.execInstanceCommand(ed.editorId, "mceTableMoveToNextRow", true);\r
- return tinymce.dom.Event.cancel(e);\r
- }\r
-\r
- ed.undoManager.add();\r
- }\r
- });\r
-\r
- // Select whole table is a table border is clicked\r
- if (!tinymce.isIE) {\r
- if (ed.getParam('table_selection', true)) {\r
- ed.onClick.add(function(ed, e) {\r
- e = e.target;\r
-\r
- if (e.nodeName === 'TABLE')\r
- ed.selection.select(e);\r
- });\r
- }\r
- }\r
-\r
- ed.onNodeChange.add(function(ed, cm, n) {\r
- var p = ed.dom.getParent(n, 'td,th,caption');\r
-\r
- cm.setActive('table', n.nodeName === 'TABLE' || !!p);\r
- if (p && p.nodeName === 'CAPTION')\r
- p = null;\r
-\r
- cm.setDisabled('delete_table', !p);\r
- cm.setDisabled('delete_col', !p);\r
- cm.setDisabled('delete_table', !p);\r
- cm.setDisabled('delete_row', !p);\r
- cm.setDisabled('col_after', !p);\r
- cm.setDisabled('col_before', !p);\r
- cm.setDisabled('row_after', !p);\r
- cm.setDisabled('row_before', !p);\r
- cm.setDisabled('row_props', !p);\r
- cm.setDisabled('cell_props', !p);\r
- cm.setDisabled('split_cells', !p || (parseInt(ed.dom.getAttrib(p, 'colspan', '1')) < 2 && parseInt(ed.dom.getAttrib(p, 'rowspan', '1')) < 2));\r
- cm.setDisabled('merge_cells', !p);\r
- });\r
-\r
- // Padd empty table cells\r
- if (!tinymce.isIE) {\r
- ed.onBeforeSetContent.add(function(ed, o) {\r
- if (o.initial)\r
- o.content = o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g, tinymce.isOpera ? '<$1$2> </$1>' : '<$1$2><br mce_bogus="1" /></$1>');\r
- });\r
- }\r
- },\r
-\r
- execCommand : function(cmd, ui, val) {\r
- var ed = this.editor, b;\r
-\r
- // Is table command\r
- switch (cmd) {\r
- case "mceTableMoveToNextRow":\r
- case "mceInsertTable":\r
- case "mceTableRowProps":\r
- case "mceTableCellProps":\r
- case "mceTableSplitCells":\r
- case "mceTableMergeCells":\r
- case "mceTableInsertRowBefore":\r
- case "mceTableInsertRowAfter":\r
- case "mceTableDeleteRow":\r
- case "mceTableInsertColBefore":\r
- case "mceTableInsertColAfter":\r
- case "mceTableDeleteCol":\r
- case "mceTableCutRow":\r
- case "mceTableCopyRow":\r
- case "mceTablePasteRowBefore":\r
- case "mceTablePasteRowAfter":\r
- case "mceTableDelete":\r
- ed.execCommand('mceBeginUndoLevel');\r
- this._doExecCommand(cmd, ui, val);\r
- ed.execCommand('mceEndUndoLevel');\r
-\r
- return true;\r
- }\r
-\r
- // Pass to next handler in chain\r
- return false;\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Tables',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private plugin internal methods\r
-\r
- /**\r
- * Executes the table commands.\r
- */\r
- _doExecCommand : function(command, user_interface, value) {\r
- var inst = this.editor, ed = inst, url = this.url;\r
- var focusElm = inst.selection.getNode();\r
- var trElm = inst.dom.getParent(focusElm, "tr");\r
- var tdElm = inst.dom.getParent(focusElm, "td,th");\r
- var tableElm = inst.dom.getParent(focusElm, "table");\r
- var doc = inst.contentWindow.document;\r
- var tableBorder = tableElm ? tableElm.getAttribute("border") : "";\r
-\r
- // Get first TD if no TD found\r
- if (trElm && tdElm == null)\r
- tdElm = trElm.cells[0];\r
-\r
- function inArray(ar, v) {\r
- for (var i=0; i<ar.length; i++) {\r
- // Is array\r
- if (ar[i].length > 0 && inArray(ar[i], v))\r
- return true;\r
-\r
- // Found value\r
- if (ar[i] == v)\r
- return true;\r
- }\r
-\r
- return false;\r
- }\r
-\r
- function select(dx, dy) {\r
- var td;\r
-\r
- grid = getTableGrid(tableElm);\r
- dx = dx || 0;\r
- dy = dy || 0;\r
- dx = Math.max(cpos.cellindex + dx, 0);\r
- dy = Math.max(cpos.rowindex + dy, 0);\r
-\r
- // Recalculate grid and select\r
- inst.execCommand('mceRepaint');\r
- td = getCell(grid, dy, dx);\r
-\r
- if (td) {\r
- inst.selection.select(td.firstChild || td);\r
- inst.selection.collapse(1);\r
- }\r
- };\r
-\r
- function makeTD() {\r
- var newTD = doc.createElement("td");\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
- }\r
-\r
- function getColRowSpan(td) {\r
- var colspan = inst.dom.getAttrib(td, "colspan");\r
- var rowspan = inst.dom.getAttrib(td, "rowspan");\r
-\r
- colspan = colspan == "" ? 1 : parseInt(colspan);\r
- rowspan = rowspan == "" ? 1 : parseInt(rowspan);\r
-\r
- return {colspan : colspan, rowspan : rowspan};\r
- }\r
-\r
- function getCellPos(grid, td) {\r
- var x, y;\r
-\r
- for (y=0; y<grid.length; y++) {\r
- for (x=0; x<grid[y].length; x++) {\r
- if (grid[y][x] == td)\r
- return {cellindex : x, rowindex : y};\r
- }\r
- }\r
-\r
- return null;\r
- }\r
-\r
- function getCell(grid, row, col) {\r
- if (grid[row] && grid[row][col])\r
- return grid[row][col];\r
-\r
- return null;\r
- }\r
-\r
- function getNextCell(table, cell) {\r
- var cells = [], x = 0, i, j, cell, nextCell;\r
-\r
- for (i = 0; i < table.rows.length; i++)\r
- for (j = 0; j < table.rows[i].cells.length; j++, x++)\r
- cells[x] = table.rows[i].cells[j];\r
-\r
- for (i = 0; i < cells.length; i++)\r
- if (cells[i] == cell)\r
- if (nextCell = cells[i+1])\r
- return nextCell;\r
- }\r
-\r
- function getTableGrid(table) {\r
- var grid = [], rows = table.rows, x, y, td, sd, xstart, x2, y2;\r
-\r
- for (y=0; y<rows.length; y++) {\r
- for (x=0; x<rows[y].cells.length; x++) {\r
- td = rows[y].cells[x];\r
- sd = getColRowSpan(td);\r
-\r
- // All ready filled\r
- for (xstart = x; grid[y] && grid[y][xstart]; xstart++) ;\r
-\r
- // Fill box\r
- for (y2=y; y2<y+sd['rowspan']; y2++) {\r
- if (!grid[y2])\r
- grid[y2] = [];\r
-\r
- for (x2=xstart; x2<xstart+sd['colspan']; x2++)\r
- grid[y2][x2] = td;\r
- }\r
- }\r
- }\r
-\r
- return grid;\r
- }\r
-\r
- function trimRow(table, tr, td, new_tr) {\r
- var grid = getTableGrid(table), cpos = getCellPos(grid, td);\r
- var cells, lastElm;\r
-\r
- // Time to crop away some\r
- if (new_tr.cells.length != tr.childNodes.length) {\r
- cells = tr.childNodes;\r
- lastElm = null;\r
-\r
- for (var x=0; td = getCell(grid, cpos.rowindex, x); x++) {\r
- var remove = true;\r
- var sd = getColRowSpan(td);\r
-\r
- // Remove due to rowspan\r
- if (inArray(cells, td)) {\r
- new_tr.childNodes[x]._delete = true;\r
- } else if ((lastElm == null || td != lastElm) && sd.colspan > 1) { // Remove due to colspan\r
- for (var i=x; i<x+td.colSpan; i++)\r
- new_tr.childNodes[i]._delete = true;\r
- }\r
-\r
- if ((lastElm == null || td != lastElm) && sd.rowspan > 1)\r
- td.rowSpan = sd.rowspan + 1;\r
-\r
- lastElm = td;\r
- }\r
-\r
- deleteMarked(tableElm);\r
- }\r
- }\r
-\r
- function prevElm(node, name) {\r
- while ((node = node.previousSibling) != null) {\r
- if (node.nodeName == name)\r
- return node;\r
- }\r
-\r
- return null;\r
- }\r
-\r
- function nextElm(node, names) {\r
- var namesAr = names.split(',');\r
-\r
- while ((node = node.nextSibling) != null) {\r
- for (var i=0; i<namesAr.length; i++) {\r
- if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() )\r
- return node;\r
- }\r
- }\r
-\r
- return null;\r
- }\r
-\r
- function deleteMarked(tbl) {\r
- if (tbl.rows == 0)\r
- return;\r
-\r
- var tr = tbl.rows[0];\r
- do {\r
- var next = nextElm(tr, "TR");\r
-\r
- // Delete row\r
- if (tr._delete) {\r
- tr.parentNode.removeChild(tr);\r
- continue;\r
- }\r
-\r
- // Delete cells\r
- var td = tr.cells[0];\r
- if (td.cells > 1) {\r
- do {\r
- var nexttd = nextElm(td, "TD,TH");\r
-\r
- if (td._delete)\r
- td.parentNode.removeChild(td);\r
- } while ((td = nexttd) != null);\r
- }\r
- } while ((tr = next) != null);\r
- }\r
-\r
- function addRows(td_elm, tr_elm, rowspan) {\r
- // Add rows\r
- td_elm.rowSpan = 1;\r
- var trNext = nextElm(tr_elm, "TR");\r
- for (var i=1; i<rowspan && trNext; i++) {\r
- var newTD = doc.createElement("td");\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- if (tinymce.isIE)\r
- trNext.insertBefore(newTD, trNext.cells(td_elm.cellIndex));\r
- else\r
- trNext.insertBefore(newTD, trNext.cells[td_elm.cellIndex]);\r
-\r
- trNext = nextElm(trNext, "TR");\r
- }\r
- }\r
-\r
- function copyRow(doc, table, tr) {\r
- var grid = getTableGrid(table);\r
- var newTR = tr.cloneNode(false);\r
- var cpos = getCellPos(grid, tr.cells[0]);\r
- var lastCell = null;\r
- var tableBorder = inst.dom.getAttrib(table, "border");\r
- var tdElm = null;\r
-\r
- for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
- var newTD = null;\r
-\r
- if (lastCell != tdElm) {\r
- for (var i=0; i<tr.cells.length; i++) {\r
- if (tdElm == tr.cells[i]) {\r
- newTD = tdElm.cloneNode(true);\r
- break;\r
- }\r
- }\r
- }\r
-\r
- if (newTD == null) {\r
- newTD = doc.createElement("td");\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
- }\r
-\r
- // Reset col/row span\r
- newTD.colSpan = 1;\r
- newTD.rowSpan = 1;\r
-\r
- newTR.appendChild(newTD);\r
-\r
- lastCell = tdElm;\r
- }\r
-\r
- return newTR;\r
- }\r
-\r
- // ---- Commands -----\r
-\r
- // Handle commands\r
- switch (command) {\r
- case "mceTableMoveToNextRow":\r
- var nextCell = getNextCell(tableElm, tdElm);\r
-\r
- if (!nextCell) {\r
- inst.execCommand("mceTableInsertRowAfter", tdElm);\r
- nextCell = getNextCell(tableElm, tdElm);\r
- }\r
-\r
- inst.selection.select(nextCell);\r
- inst.selection.collapse(true);\r
-\r
- return true;\r
-\r
- case "mceTableRowProps":\r
- if (trElm == null)\r
- return true;\r
-\r
- if (user_interface) {\r
- inst.windowManager.open({\r
- url : url + '/row.htm',\r
- width : 400 + parseInt(inst.getLang('table.rowprops_delta_width', 0)),\r
- height : 295 + parseInt(inst.getLang('table.rowprops_delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- }\r
-\r
- return true;\r
-\r
- case "mceTableCellProps":\r
- if (tdElm == null)\r
- return true;\r
-\r
- if (user_interface) {\r
- inst.windowManager.open({\r
- url : url + '/cell.htm',\r
- width : 400 + parseInt(inst.getLang('table.cellprops_delta_width', 0)),\r
- height : 295 + parseInt(inst.getLang('table.cellprops_delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- }\r
-\r
- return true;\r
-\r
- case "mceInsertTable":\r
- if (user_interface) {\r
- inst.windowManager.open({\r
- url : url + '/table.htm',\r
- width : 400 + parseInt(inst.getLang('table.table_delta_width', 0)),\r
- height : 320 + parseInt(inst.getLang('table.table_delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url,\r
- action : value ? value.action : 0\r
- });\r
- }\r
-\r
- return true;\r
-\r
- case "mceTableDelete":\r
- var table = inst.dom.getParent(inst.selection.getNode(), "table");\r
- if (table) {\r
- table.parentNode.removeChild(table);\r
- inst.execCommand('mceRepaint');\r
- }\r
- return true;\r
-\r
- case "mceTableSplitCells":\r
- case "mceTableMergeCells":\r
- case "mceTableInsertRowBefore":\r
- case "mceTableInsertRowAfter":\r
- case "mceTableDeleteRow":\r
- case "mceTableInsertColBefore":\r
- case "mceTableInsertColAfter":\r
- case "mceTableDeleteCol":\r
- case "mceTableCutRow":\r
- case "mceTableCopyRow":\r
- case "mceTablePasteRowBefore":\r
- case "mceTablePasteRowAfter":\r
- // No table just return (invalid command)\r
- if (!tableElm)\r
- return true;\r
-\r
- // Table has a tbody use that reference\r
- // Changed logic by ApTest 2005.07.12 (www.aptest.com)\r
- // Now lookk at the focused element and take its parentNode. That will be a tbody or a table.\r
- if (trElm && tableElm != trElm.parentNode)\r
- tableElm = trElm.parentNode;\r
-\r
- if (tableElm && trElm) {\r
- switch (command) {\r
- case "mceTableCutRow":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- inst.tableRowClipboard = copyRow(doc, tableElm, trElm);\r
- inst.execCommand("mceTableDeleteRow");\r
- break;\r
-\r
- case "mceTableCopyRow":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- inst.tableRowClipboard = copyRow(doc, tableElm, trElm);\r
- break;\r
-\r
- case "mceTablePasteRowBefore":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var newTR = inst.tableRowClipboard.cloneNode(true);\r
-\r
- var prevTR = prevElm(trElm, "TR");\r
- if (prevTR != null)\r
- trimRow(tableElm, prevTR, prevTR.cells[0], newTR);\r
-\r
- trElm.parentNode.insertBefore(newTR, trElm);\r
- break;\r
-\r
- case "mceTablePasteRowAfter":\r
- if (!trElm || !tdElm)\r
- return true;\r
- \r
- var nextTR = nextElm(trElm, "TR");\r
- var newTR = inst.tableRowClipboard.cloneNode(true);\r
-\r
- trimRow(tableElm, trElm, tdElm, newTR);\r
-\r
- if (nextTR == null)\r
- trElm.parentNode.appendChild(newTR);\r
- else\r
- nextTR.parentNode.insertBefore(newTR, nextTR);\r
-\r
- break;\r
-\r
- case "mceTableInsertRowBefore":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var grid = getTableGrid(tableElm);\r
- var cpos = getCellPos(grid, tdElm);\r
- var newTR = doc.createElement("tr");\r
- var lastTDElm = null;\r
-\r
- cpos.rowindex--;\r
- if (cpos.rowindex < 0)\r
- cpos.rowindex = 0;\r
-\r
- // Create cells\r
- for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
- if (tdElm != lastTDElm) {\r
- var sd = getColRowSpan(tdElm);\r
-\r
- if (sd['rowspan'] == 1) {\r
- var newTD = doc.createElement("td");\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- newTD.colSpan = tdElm.colSpan;\r
-\r
- newTR.appendChild(newTD);\r
- } else\r
- tdElm.rowSpan = sd['rowspan'] + 1;\r
-\r
- lastTDElm = tdElm;\r
- }\r
- }\r
-\r
- trElm.parentNode.insertBefore(newTR, trElm);\r
- select(0, 1);\r
- break;\r
-\r
- case "mceTableInsertRowAfter":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var grid = getTableGrid(tableElm);\r
- var cpos = getCellPos(grid, tdElm);\r
- var newTR = doc.createElement("tr");\r
- var lastTDElm = null;\r
-\r
- // Create cells\r
- for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
- if (tdElm != lastTDElm) {\r
- var sd = getColRowSpan(tdElm);\r
-\r
- if (sd['rowspan'] == 1) {\r
- var newTD = doc.createElement("td");\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- newTD.colSpan = tdElm.colSpan;\r
-\r
- newTR.appendChild(newTD);\r
- } else\r
- tdElm.rowSpan = sd['rowspan'] + 1;\r
-\r
- lastTDElm = tdElm;\r
- }\r
- }\r
-\r
- if (newTR.hasChildNodes()) {\r
- var nextTR = nextElm(trElm, "TR");\r
- if (nextTR)\r
- nextTR.parentNode.insertBefore(newTR, nextTR);\r
- else\r
- tableElm.appendChild(newTR);\r
- }\r
-\r
- select(0, 1);\r
- break;\r
-\r
- case "mceTableDeleteRow":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var grid = getTableGrid(tableElm);\r
- var cpos = getCellPos(grid, tdElm);\r
-\r
- // Only one row, remove whole table\r
- if (grid.length == 1 && tableElm.nodeName == 'TBODY') {\r
- inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
- return true;\r
- }\r
-\r
- // Move down row spanned cells\r
- var cells = trElm.cells;\r
- var nextTR = nextElm(trElm, "TR");\r
- for (var x=0; x<cells.length; x++) {\r
- if (cells[x].rowSpan > 1) {\r
- var newTD = cells[x].cloneNode(true);\r
- var sd = getColRowSpan(cells[x]);\r
-\r
- newTD.rowSpan = sd.rowspan - 1;\r
-\r
- var nextTD = nextTR.cells[x];\r
-\r
- if (nextTD == null)\r
- nextTR.appendChild(newTD);\r
- else\r
- nextTR.insertBefore(newTD, nextTD);\r
- }\r
- }\r
-\r
- // Delete cells\r
- var lastTDElm = null;\r
- for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {\r
- if (tdElm != lastTDElm) {\r
- var sd = getColRowSpan(tdElm);\r
-\r
- if (sd.rowspan > 1) {\r
- tdElm.rowSpan = sd.rowspan - 1;\r
- } else {\r
- trElm = tdElm.parentNode;\r
-\r
- if (trElm.parentNode)\r
- trElm._delete = true;\r
- }\r
-\r
- lastTDElm = tdElm;\r
- }\r
- }\r
-\r
- deleteMarked(tableElm);\r
-\r
- select(0, -1);\r
- break;\r
-\r
- case "mceTableInsertColBefore":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var grid = getTableGrid(tableElm);\r
- var cpos = getCellPos(grid, tdElm);\r
- var lastTDElm = null;\r
-\r
- for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
- if (tdElm != lastTDElm) {\r
- var sd = getColRowSpan(tdElm);\r
-\r
- if (sd['colspan'] == 1) {\r
- var newTD = doc.createElement(tdElm.nodeName);\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- newTD.rowSpan = tdElm.rowSpan;\r
-\r
- tdElm.parentNode.insertBefore(newTD, tdElm);\r
- } else\r
- tdElm.colSpan++;\r
-\r
- lastTDElm = tdElm;\r
- }\r
- }\r
-\r
- select();\r
- break;\r
-\r
- case "mceTableInsertColAfter":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var grid = getTableGrid(tableElm);\r
- var cpos = getCellPos(grid, tdElm);\r
- var lastTDElm = null;\r
-\r
- for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
- if (tdElm != lastTDElm) {\r
- var sd = getColRowSpan(tdElm);\r
-\r
- if (sd['colspan'] == 1) {\r
- var newTD = doc.createElement(tdElm.nodeName);\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- newTD.rowSpan = tdElm.rowSpan;\r
-\r
- var nextTD = nextElm(tdElm, "TD,TH");\r
- if (nextTD == null)\r
- tdElm.parentNode.appendChild(newTD);\r
- else\r
- nextTD.parentNode.insertBefore(newTD, nextTD);\r
- } else\r
- tdElm.colSpan++;\r
-\r
- lastTDElm = tdElm;\r
- }\r
- }\r
-\r
- select(1);\r
- break;\r
-\r
- case "mceTableDeleteCol":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var grid = getTableGrid(tableElm);\r
- var cpos = getCellPos(grid, tdElm);\r
- var lastTDElm = null;\r
-\r
- // Only one col, remove whole table\r
- if ((grid.length > 1 && grid[0].length <= 1) && tableElm.nodeName == 'TBODY') {\r
- inst.dom.remove(inst.dom.getParent(tableElm, "table"));\r
- return true;\r
- }\r
-\r
- // Delete cells\r
- for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {\r
- if (tdElm != lastTDElm) {\r
- var sd = getColRowSpan(tdElm);\r
-\r
- if (sd['colspan'] > 1)\r
- tdElm.colSpan = sd['colspan'] - 1;\r
- else {\r
- if (tdElm.parentNode)\r
- tdElm.parentNode.removeChild(tdElm);\r
- }\r
-\r
- lastTDElm = tdElm;\r
- }\r
- }\r
-\r
- select(-1);\r
- break;\r
-\r
- case "mceTableSplitCells":\r
- if (!trElm || !tdElm)\r
- return true;\r
-\r
- var spandata = getColRowSpan(tdElm);\r
-\r
- var colspan = spandata["colspan"];\r
- var rowspan = spandata["rowspan"];\r
-\r
- // Needs splitting\r
- if (colspan > 1 || rowspan > 1) {\r
- // Generate cols\r
- tdElm.colSpan = 1;\r
- for (var i=1; i<colspan; i++) {\r
- var newTD = doc.createElement("td");\r
-\r
- if (!tinymce.isIE)\r
- newTD.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- trElm.insertBefore(newTD, nextElm(tdElm, "TD,TH"));\r
-\r
- if (rowspan > 1)\r
- addRows(newTD, trElm, rowspan);\r
- }\r
-\r
- addRows(tdElm, trElm, rowspan);\r
- }\r
-\r
- // Apply visual aids\r
- tableElm = inst.dom.getParent(inst.selection.getNode(), "table");\r
- break;\r
-\r
- case "mceTableMergeCells":\r
- var rows = [];\r
- var sel = inst.selection.getSel();\r
- var grid = getTableGrid(tableElm);\r
-\r
- if (tinymce.isIE || sel.rangeCount == 1) {\r
- if (user_interface) {\r
- // Setup template\r
- var sp = getColRowSpan(tdElm);\r
-\r
- inst.windowManager.open({\r
- url : url + '/merge_cells.htm',\r
- width : 240 + parseInt(inst.getLang('table.merge_cells_delta_width', 0)),\r
- height : 110 + parseInt(inst.getLang('table.merge_cells_delta_height', 0)),\r
- inline : 1\r
- }, {\r
- action : "update",\r
- numcols : sp.colspan,\r
- numrows : sp.rowspan,\r
- plugin_url : url\r
- });\r
-\r
- return true;\r
- } else {\r
- var numRows = parseInt(value['numrows']);\r
- var numCols = parseInt(value['numcols']);\r
- var cpos = getCellPos(grid, tdElm);\r
-\r
- if (("" + numRows) == "NaN")\r
- numRows = 1;\r
-\r
- if (("" + numCols) == "NaN")\r
- numCols = 1;\r
-\r
- // Get rows and cells\r
- var tRows = tableElm.rows;\r
- for (var y=cpos.rowindex; y<grid.length; y++) {\r
- var rowCells = [];\r
-\r
- for (var x=cpos.cellindex; x<grid[y].length; x++) {\r
- var td = getCell(grid, y, x);\r
-\r
- if (td && !inArray(rows, td) && !inArray(rowCells, td)) {\r
- var cp = getCellPos(grid, td);\r
-\r
- // Within range\r
- if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)\r
- rowCells[rowCells.length] = td;\r
- }\r
- }\r
-\r
- if (rowCells.length > 0)\r
- rows[rows.length] = rowCells;\r
-\r
- var td = getCell(grid, cpos.rowindex, cpos.cellindex);\r
- each(ed.dom.select('br', td), function(e, i) {\r
- if (i > 0 && ed.dom.getAttrib('mce_bogus'))\r
- ed.dom.remove(e);\r
- });\r
- }\r
-\r
- //return true;\r
- }\r
- } else {\r
- var cells = [];\r
- var sel = inst.selection.getSel();\r
- var lastTR = null;\r
- var curRow = null;\r
- var x1 = -1, y1 = -1, x2, y2;\r
-\r
- // Only one cell selected, whats the point?\r
- if (sel.rangeCount < 2)\r
- return true;\r
-\r
- // Get all selected cells\r
- for (var i=0; i<sel.rangeCount; i++) {\r
- var rng = sel.getRangeAt(i);\r
- var tdElm = rng.startContainer.childNodes[rng.startOffset];\r
-\r
- if (!tdElm)\r
- break;\r
-\r
- if (tdElm.nodeName == "TD" || tdElm.nodeName == "TH")\r
- cells[cells.length] = tdElm;\r
- }\r
-\r
- // Get rows and cells\r
- var tRows = tableElm.rows;\r
- for (var y=0; y<tRows.length; y++) {\r
- var rowCells = [];\r
-\r
- for (var x=0; x<tRows[y].cells.length; x++) {\r
- var td = tRows[y].cells[x];\r
-\r
- for (var i=0; i<cells.length; i++) {\r
- if (td == cells[i]) {\r
- rowCells[rowCells.length] = td;\r
- }\r
- }\r
- }\r
-\r
- if (rowCells.length > 0)\r
- rows[rows.length] = rowCells;\r
- }\r
-\r
- // Find selected cells in grid and box\r
- var curRow = [];\r
- var lastTR = null;\r
- for (var y=0; y<grid.length; y++) {\r
- for (var x=0; x<grid[y].length; x++) {\r
- grid[y][x]._selected = false;\r
-\r
- for (var i=0; i<cells.length; i++) {\r
- if (grid[y][x] == cells[i]) {\r
- // Get start pos\r
- if (x1 == -1) {\r
- x1 = x;\r
- y1 = y;\r
- }\r
-\r
- // Get end pos\r
- x2 = x;\r
- y2 = y;\r
-\r
- grid[y][x]._selected = true;\r
- }\r
- }\r
- }\r
- }\r
-\r
- // Is there gaps, if so deny\r
- for (var y=y1; y<=y2; y++) {\r
- for (var x=x1; x<=x2; x++) {\r
- if (!grid[y][x]._selected) {\r
- alert("Invalid selection for merge.");\r
- return true;\r
- }\r
- }\r
- }\r
- }\r
-\r
- // Validate selection and get total rowspan and colspan\r
- var rowSpan = 1, colSpan = 1;\r
-\r
- // Validate horizontal and get total colspan\r
- var lastRowSpan = -1;\r
- for (var y=0; y<rows.length; y++) {\r
- var rowColSpan = 0;\r
-\r
- for (var x=0; x<rows[y].length; x++) {\r
- var sd = getColRowSpan(rows[y][x]);\r
-\r
- rowColSpan += sd['colspan'];\r
-\r
- if (lastRowSpan != -1 && sd['rowspan'] != lastRowSpan) {\r
- alert("Invalid selection for merge.");\r
- return true;\r
- }\r
-\r
- lastRowSpan = sd['rowspan'];\r
- }\r
-\r
- if (rowColSpan > colSpan)\r
- colSpan = rowColSpan;\r
-\r
- lastRowSpan = -1;\r
- }\r
-\r
- // Validate vertical and get total rowspan\r
- var lastColSpan = -1;\r
- for (var x=0; x<rows[0].length; x++) {\r
- var colRowSpan = 0;\r
-\r
- for (var y=0; y<rows.length; y++) {\r
- var sd = getColRowSpan(rows[y][x]);\r
-\r
- colRowSpan += sd['rowspan'];\r
-\r
- if (lastColSpan != -1 && sd['colspan'] != lastColSpan) {\r
- alert("Invalid selection for merge.");\r
- return true;\r
- }\r
-\r
- lastColSpan = sd['colspan'];\r
- }\r
-\r
- if (colRowSpan > rowSpan)\r
- rowSpan = colRowSpan;\r
-\r
- lastColSpan = -1;\r
- }\r
-\r
- // Setup td\r
- tdElm = rows[0][0];\r
- tdElm.rowSpan = rowSpan;\r
- tdElm.colSpan = colSpan;\r
-\r
- // Merge cells\r
- for (var y=0; y<rows.length; y++) {\r
- for (var x=0; x<rows[y].length; x++) {\r
- var html = rows[y][x].innerHTML;\r
- var chk = html.replace(/[ \t\r\n]/g, "");\r
-\r
- if (chk != "<br/>" && chk != "<br>" && chk != '<br mce_bogus="1"/>' && (x+y > 0))\r
- tdElm.innerHTML += html;\r
-\r
- // Not current cell\r
- if (rows[y][x] != tdElm && !rows[y][x]._deleted) {\r
- var cpos = getCellPos(grid, rows[y][x]);\r
- var tr = rows[y][x].parentNode;\r
-\r
- tr.removeChild(rows[y][x]);\r
- rows[y][x]._deleted = true;\r
-\r
- // Empty TR, remove it\r
- if (!tr.hasChildNodes()) {\r
- tr.parentNode.removeChild(tr);\r
-\r
- var lastCell = null;\r
- for (var x=0; cellElm = getCell(grid, cpos.rowindex, x); x++) {\r
- if (cellElm != lastCell && cellElm.rowSpan > 1)\r
- cellElm.rowSpan--;\r
-\r
- lastCell = cellElm;\r
- }\r
-\r
- if (tdElm.rowSpan > 1)\r
- tdElm.rowSpan--;\r
- }\r
- }\r
- }\r
- }\r
-\r
- // Remove all but one bogus br\r
- each(ed.dom.select('br', tdElm), function(e, i) {\r
- if (i > 0 && ed.dom.getAttrib(e, 'mce_bogus'))\r
- ed.dom.remove(e);\r
- });\r
-\r
- break;\r
- }\r
-\r
- tableElm = inst.dom.getParent(inst.selection.getNode(), "table");\r
- inst.addVisual(tableElm);\r
- inst.nodeChanged();\r
- }\r
-\r
- return true;\r
- }\r
-\r
- // Pass to next handler in chain\r
- return false;\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var ed;\r
-\r
-function init() {\r
- ed = tinyMCEPopup.editor;\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
- document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')\r
-\r
- var inst = ed;\r
- var tdElm = ed.dom.getParent(ed.selection.getNode(), "td,th");\r
- var formObj = document.forms[0];\r
- var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));\r
-\r
- // Get table cell data\r
- var celltype = tdElm.nodeName.toLowerCase();\r
- var align = ed.dom.getAttrib(tdElm, 'align');\r
- var valign = ed.dom.getAttrib(tdElm, 'valign');\r
- var width = trimSize(getStyle(tdElm, 'width', 'width'));\r
- var height = trimSize(getStyle(tdElm, 'height', 'height'));\r
- var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));\r
- var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));\r
- var className = ed.dom.getAttrib(tdElm, 'class');\r
- var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
- var id = ed.dom.getAttrib(tdElm, 'id');\r
- var lang = ed.dom.getAttrib(tdElm, 'lang');\r
- var dir = ed.dom.getAttrib(tdElm, 'dir');\r
- var scope = ed.dom.getAttrib(tdElm, 'scope');\r
-\r
- // Setup form\r
- addClassesToList('class', 'table_cell_styles');\r
- TinyMCE_EditableSelects.init();\r
-\r
- formObj.bordercolor.value = bordercolor;\r
- formObj.bgcolor.value = bgcolor;\r
- formObj.backgroundimage.value = backgroundimage;\r
- formObj.width.value = width;\r
- formObj.height.value = height;\r
- formObj.id.value = id;\r
- formObj.lang.value = lang;\r
- formObj.style.value = ed.dom.serializeStyle(st);\r
- selectByValue(formObj, 'align', align);\r
- selectByValue(formObj, 'valign', valign);\r
- selectByValue(formObj, 'class', className, true, true);\r
- selectByValue(formObj, 'celltype', celltype);\r
- selectByValue(formObj, 'dir', dir);\r
- selectByValue(formObj, 'scope', scope);\r
-\r
- // Resize some elements\r
- if (isVisible('backgroundimagebrowser'))\r
- document.getElementById('backgroundimage').style.width = '180px';\r
-\r
- updateColor('bordercolor_pick', 'bordercolor');\r
- updateColor('bgcolor_pick', 'bgcolor');\r
-}\r
-\r
-function updateAction() {\r
- var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];\r
-\r
- tinyMCEPopup.restoreSelection();\r
- el = ed.selection.getNode();\r
- tdElm = ed.dom.getParent(el, "td,th");\r
- trElm = ed.dom.getParent(el, "tr");\r
- tableElm = ed.dom.getParent(el, "table");\r
-\r
- ed.execCommand('mceBeginUndoLevel');\r
-\r
- switch (getSelectValue(formObj, 'action')) {\r
- case "cell":\r
- var celltype = getSelectValue(formObj, 'celltype');\r
- var scope = getSelectValue(formObj, 'scope');\r
-\r
- if (ed.getParam("accessibility_warnings", 1)) {\r
- if (celltype == "th" && scope == "") {\r
- tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), function(s) {\r
- if (s) {\r
- updateCell(tdElm);\r
-\r
- ed.addVisual();\r
- ed.nodeChanged();\r
- inst.execCommand('mceEndUndoLevel');\r
- tinyMCEPopup.close();\r
- }\r
- });\r
- }\r
-\r
- return;\r
- }\r
-\r
- updateCell(tdElm);\r
- break;\r
-\r
- case "row":\r
- var cell = trElm.firstChild;\r
-\r
- if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
- cell = nextCell(cell);\r
-\r
- do {\r
- cell = updateCell(cell, true);\r
- } while ((cell = nextCell(cell)) != null);\r
-\r
- break;\r
-\r
- case "all":\r
- var rows = tableElm.getElementsByTagName("tr");\r
-\r
- for (var i=0; i<rows.length; i++) {\r
- var cell = rows[i].firstChild;\r
-\r
- if (cell.nodeName != "TD" && cell.nodeName != "TH")\r
- cell = nextCell(cell);\r
-\r
- do {\r
- cell = updateCell(cell, true);\r
- } while ((cell = nextCell(cell)) != null);\r
- }\r
-\r
- break;\r
- }\r
-\r
- ed.addVisual();\r
- ed.nodeChanged();\r
- inst.execCommand('mceEndUndoLevel');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function nextCell(elm) {\r
- while ((elm = elm.nextSibling) != null) {\r
- if (elm.nodeName == "TD" || elm.nodeName == "TH")\r
- return elm;\r
- }\r
-\r
- return null;\r
-}\r
-\r
-function updateCell(td, skip_id) {\r
- var inst = ed;\r
- var formObj = document.forms[0];\r
- var curCellType = td.nodeName.toLowerCase();\r
- var celltype = getSelectValue(formObj, 'celltype');\r
- var doc = inst.getDoc();\r
- var dom = ed.dom;\r
-\r
- if (!skip_id)\r
- td.setAttribute('id', formObj.id.value);\r
-\r
- td.setAttribute('align', formObj.align.value);\r
- td.setAttribute('vAlign', formObj.valign.value);\r
- td.setAttribute('lang', formObj.lang.value);\r
- td.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
- td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value)));\r
- td.setAttribute('scope', formObj.scope.value);\r
- ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class'));\r
-\r
- // Clear deprecated attributes\r
- ed.dom.setAttrib(td, 'width', '');\r
- ed.dom.setAttrib(td, 'height', '');\r
- ed.dom.setAttrib(td, 'bgColor', '');\r
- ed.dom.setAttrib(td, 'borderColor', '');\r
- ed.dom.setAttrib(td, 'background', '');\r
-\r
- // Set styles\r
- td.style.width = getCSSSize(formObj.width.value);\r
- td.style.height = getCSSSize(formObj.height.value);\r
- if (formObj.bordercolor.value != "") {\r
- td.style.borderColor = formObj.bordercolor.value;\r
- td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle;\r
- td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth;\r
- } else\r
- td.style.borderColor = '';\r
-\r
- td.style.backgroundColor = formObj.bgcolor.value;\r
-\r
- if (formObj.backgroundimage.value != "")\r
- td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
- else\r
- td.style.backgroundImage = '';\r
-\r
- if (curCellType != celltype) {\r
- // changing to a different node type\r
- var newCell = doc.createElement(celltype);\r
-\r
- for (var c=0; c<td.childNodes.length; c++)\r
- newCell.appendChild(td.childNodes[c].cloneNode(1));\r
-\r
- for (var a=0; a<td.attributes.length; a++)\r
- ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name));\r
-\r
- td.parentNode.replaceChild(newCell, td);\r
- td = newCell;\r
- }\r
-\r
- dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText)));\r
-\r
- return td;\r
-}\r
-\r
-function changedBackgroundImage() {\r
- var formObj = document.forms[0];\r
- var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
- st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
-\r
- formObj.style.value = ed.dom.serializeStyle(st);\r
-}\r
-\r
-function changedSize() {\r
- var formObj = document.forms[0];\r
- var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
- var width = formObj.width.value;\r
- if (width != "")\r
- st['width'] = getCSSSize(width);\r
- else\r
- st['width'] = "";\r
-\r
- var height = formObj.height.value;\r
- if (height != "")\r
- st['height'] = getCSSSize(height);\r
- else\r
- st['height'] = "";\r
-\r
- formObj.style.value = ed.dom.serializeStyle(st);\r
-}\r
-\r
-function changedColor() {\r
- var formObj = document.forms[0];\r
- var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
- st['background-color'] = formObj.bgcolor.value;\r
- st['border-color'] = formObj.bordercolor.value;\r
-\r
- formObj.style.value = ed.dom.serializeStyle(st);\r
-}\r
-\r
-function changedStyle() {\r
- var formObj = document.forms[0];\r
- var st = ed.dom.parseStyle(formObj.style.value);\r
-\r
- if (st['background-image'])\r
- formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
- else\r
- formObj.backgroundimage.value = '';\r
-\r
- if (st['width'])\r
- formObj.width.value = trimSize(st['width']);\r
-\r
- if (st['height'])\r
- formObj.height.value = trimSize(st['height']);\r
-\r
- if (st['background-color']) {\r
- formObj.bgcolor.value = st['background-color'];\r
- updateColor('bgcolor_pick','bgcolor');\r
- }\r
-\r
- if (st['border-color']) {\r
- formObj.bordercolor.value = st['border-color'];\r
- updateColor('bordercolor_pick','bordercolor');\r
- }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-function init() {\r
- var f = document.forms[0], v;\r
-\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- f.numcols.value = tinyMCEPopup.getWindowArg('numcols', 1);\r
- f.numrows.value = tinyMCEPopup.getWindowArg('numrows', 1);\r
-}\r
-\r
-function mergeCells() {\r
- var args = [], f = document.forms[0];\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (!AutoValidator.validate(f)) {\r
- tinyMCEPopup.alert(tinyMCEPopup.getLang('invalid_data'));\r
- return false;\r
- }\r
-\r
- args["numcols"] = f.numcols.value;\r
- args["numrows"] = f.numrows.value;\r
-\r
- tinyMCEPopup.execCommand("mceTableMergeCells", false, args);\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-function init() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-\r
- var inst = tinyMCEPopup.editor;\r
- var dom = inst.dom;\r
- var trElm = dom.getParent(inst.selection.getNode(), "tr");\r
- var formObj = document.forms[0];\r
- var st = dom.parseStyle(dom.getAttrib(trElm, "style"));\r
-\r
- // Get table row data\r
- var rowtype = trElm.parentNode.nodeName.toLowerCase();\r
- var align = dom.getAttrib(trElm, 'align');\r
- var valign = dom.getAttrib(trElm, 'valign');\r
- var height = trimSize(getStyle(trElm, 'height', 'height'));\r
- var className = dom.getAttrib(trElm, 'class');\r
- var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor'));\r
- var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;\r
- var id = dom.getAttrib(trElm, 'id');\r
- var lang = dom.getAttrib(trElm, 'lang');\r
- var dir = dom.getAttrib(trElm, 'dir');\r
-\r
- // Setup form\r
- addClassesToList('class', 'table_row_styles');\r
- TinyMCE_EditableSelects.init();\r
-\r
- formObj.bgcolor.value = bgcolor;\r
- formObj.backgroundimage.value = backgroundimage;\r
- formObj.height.value = height;\r
- formObj.id.value = id;\r
- formObj.lang.value = lang;\r
- formObj.style.value = dom.serializeStyle(st);\r
- selectByValue(formObj, 'align', align);\r
- selectByValue(formObj, 'valign', valign);\r
- selectByValue(formObj, 'class', className, true, true);\r
- selectByValue(formObj, 'rowtype', rowtype);\r
- selectByValue(formObj, 'dir', dir);\r
-\r
- // Resize some elements\r
- if (isVisible('backgroundimagebrowser'))\r
- document.getElementById('backgroundimage').style.width = '180px';\r
-\r
- updateColor('bgcolor_pick', 'bgcolor');\r
-}\r
-\r
-function updateAction() {\r
- var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0];\r
- var action = getSelectValue(formObj, 'action');\r
-\r
- tinyMCEPopup.restoreSelection();\r
- trElm = dom.getParent(inst.selection.getNode(), "tr");\r
- tableElm = dom.getParent(inst.selection.getNode(), "table");\r
-\r
- inst.execCommand('mceBeginUndoLevel');\r
-\r
- switch (action) {\r
- case "row":\r
- updateRow(trElm);\r
- break;\r
-\r
- case "all":\r
- var rows = tableElm.getElementsByTagName("tr");\r
-\r
- for (var i=0; i<rows.length; i++)\r
- updateRow(rows[i], true);\r
-\r
- break;\r
-\r
- case "odd":\r
- case "even":\r
- var rows = tableElm.getElementsByTagName("tr");\r
-\r
- for (var i=0; i<rows.length; i++) {\r
- if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))\r
- updateRow(rows[i], true, true);\r
- }\r
-\r
- break;\r
- }\r
-\r
- inst.addVisual();\r
- inst.nodeChanged();\r
- inst.execCommand('mceEndUndoLevel');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function updateRow(tr_elm, skip_id, skip_parent) {\r
- var inst = tinyMCEPopup.editor;\r
- var formObj = document.forms[0];\r
- var dom = inst.dom;\r
- var curRowType = tr_elm.parentNode.nodeName.toLowerCase();\r
- var rowtype = getSelectValue(formObj, 'rowtype');\r
- var doc = inst.getDoc();\r
-\r
- // Update row element\r
- if (!skip_id)\r
- tr_elm.setAttribute('id', formObj.id.value);\r
-\r
- tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));\r
- tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));\r
- tr_elm.setAttribute('lang', formObj.lang.value);\r
- tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));\r
- tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value)));\r
- dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));\r
-\r
- // Clear deprecated attributes\r
- tr_elm.setAttribute('background', '');\r
- tr_elm.setAttribute('bgColor', '');\r
- tr_elm.setAttribute('height', '');\r
-\r
- // Set styles\r
- tr_elm.style.height = getCSSSize(formObj.height.value);\r
- tr_elm.style.backgroundColor = formObj.bgcolor.value;\r
-\r
- if (formObj.backgroundimage.value != "")\r
- tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')";\r
- else\r
- tr_elm.style.backgroundImage = '';\r
-\r
- // Setup new rowtype\r
- if (curRowType != rowtype && !skip_parent) {\r
- // first, clone the node we are working on\r
- var newRow = tr_elm.cloneNode(1);\r
-\r
- // next, find the parent of its new destination (creating it if necessary)\r
- var theTable = dom.getParent(tr_elm, "table");\r
- var dest = rowtype;\r
- var newParent = null;\r
- for (var i = 0; i < theTable.childNodes.length; i++) {\r
- if (theTable.childNodes[i].nodeName.toLowerCase() == dest)\r
- newParent = theTable.childNodes[i];\r
- }\r
-\r
- if (newParent == null) {\r
- newParent = doc.createElement(dest);\r
-\r
- if (dest == "thead") {\r
- if (theTable.firstChild.nodeName == 'CAPTION')\r
- inst.dom.insertAfter(newParent, theTable.firstChild);\r
- else\r
- theTable.insertBefore(newParent, theTable.firstChild);\r
- } else\r
- theTable.appendChild(newParent);\r
- }\r
-\r
- // append the row to the new parent\r
- newParent.appendChild(newRow);\r
-\r
- // remove the original\r
- tr_elm.parentNode.removeChild(tr_elm);\r
-\r
- // set tr_elm to the new node\r
- tr_elm = newRow;\r
- }\r
-\r
- dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText)));\r
-}\r
-\r
-function changedBackgroundImage() {\r
- var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedStyle() {\r
- var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- if (st['background-image'])\r
- formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
- else\r
- formObj.backgroundimage.value = '';\r
-\r
- if (st['height'])\r
- formObj.height.value = trimSize(st['height']);\r
-\r
- if (st['background-color']) {\r
- formObj.bgcolor.value = st['background-color'];\r
- updateColor('bgcolor_pick','bgcolor');\r
- }\r
-}\r
-\r
-function changedSize() {\r
- var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- var height = formObj.height.value;\r
- if (height != "")\r
- st['height'] = getCSSSize(height);\r
- else\r
- st['height'] = "";\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedColor() {\r
- var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- st['background-color'] = formObj.bgcolor.value;\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var action, orgTableWidth, orgTableHeight, dom = tinyMCEPopup.editor.dom;\r
-\r
-function insertTable() {\r
- var formObj = document.forms[0];\r
- var inst = tinyMCEPopup.editor, dom = inst.dom;\r
- var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption, frame, rules;\r
- var html = '', capEl, elm;\r
- var cellLimit, rowLimit, colLimit;\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (!AutoValidator.validate(formObj)) {\r
- tinyMCEPopup.alert(inst.getLang('invalid_data'));\r
- return false;\r
- }\r
-\r
- elm = dom.getParent(inst.selection.getNode(), 'table');\r
-\r
- // Get form data\r
- cols = formObj.elements['cols'].value;\r
- rows = formObj.elements['rows'].value;\r
- border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;\r
- cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";\r
- cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";\r
- align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;\r
- frame = formObj.elements['frame'].options[formObj.elements['frame'].selectedIndex].value;\r
- rules = formObj.elements['rules'].options[formObj.elements['rules'].selectedIndex].value;\r
- width = formObj.elements['width'].value;\r
- height = formObj.elements['height'].value;\r
- bordercolor = formObj.elements['bordercolor'].value;\r
- bgcolor = formObj.elements['bgcolor'].value;\r
- className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;\r
- id = formObj.elements['id'].value;\r
- summary = formObj.elements['summary'].value;\r
- style = formObj.elements['style'].value;\r
- dir = formObj.elements['dir'].value;\r
- lang = formObj.elements['lang'].value;\r
- background = formObj.elements['backgroundimage'].value;\r
- caption = formObj.elements['caption'].checked;\r
-\r
- cellLimit = tinyMCEPopup.getParam('table_cell_limit', false);\r
- rowLimit = tinyMCEPopup.getParam('table_row_limit', false);\r
- colLimit = tinyMCEPopup.getParam('table_col_limit', false);\r
-\r
- // Validate table size\r
- if (colLimit && cols > colLimit) {\r
- tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));\r
- return false;\r
- } else if (rowLimit && rows > rowLimit) {\r
- tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));\r
- return false;\r
- } else if (cellLimit && cols * rows > cellLimit) {\r
- tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));\r
- return false;\r
- }\r
-\r
- // Update table\r
- if (action == "update") {\r
- inst.execCommand('mceBeginUndoLevel');\r
-\r
- dom.setAttrib(elm, 'cellPadding', cellpadding, true);\r
- dom.setAttrib(elm, 'cellSpacing', cellspacing, true);\r
- dom.setAttrib(elm, 'border', border);\r
- dom.setAttrib(elm, 'align', align);\r
- dom.setAttrib(elm, 'frame', frame);\r
- dom.setAttrib(elm, 'rules', rules);\r
- dom.setAttrib(elm, 'class', className);\r
- dom.setAttrib(elm, 'style', style);\r
- dom.setAttrib(elm, 'id', id);\r
- dom.setAttrib(elm, 'summary', summary);\r
- dom.setAttrib(elm, 'dir', dir);\r
- dom.setAttrib(elm, 'lang', lang);\r
-\r
- capEl = inst.dom.select('caption', elm)[0];\r
-\r
- if (capEl && !caption)\r
- capEl.parentNode.removeChild(capEl);\r
-\r
- if (!capEl && caption) {\r
- capEl = elm.ownerDocument.createElement('caption');\r
-\r
- if (!tinymce.isIE)\r
- capEl.innerHTML = '<br mce_bogus="1"/>';\r
-\r
- elm.insertBefore(capEl, elm.firstChild);\r
- }\r
-\r
- if (width && /(pt|em|cm)$/.test(width)) {\r
- dom.setStyle(elm, 'width', width);\r
- dom.setAttrib(elm, 'width', '');\r
- } else {\r
- dom.setAttrib(elm, 'width', width, true);\r
- dom.setStyle(elm, 'width', '');\r
- }\r
-\r
- // Remove these since they are not valid XHTML\r
- dom.setAttrib(elm, 'borderColor', '');\r
- dom.setAttrib(elm, 'bgColor', '');\r
- dom.setAttrib(elm, 'background', '');\r
-\r
- if (height) {\r
- dom.setStyle(elm, 'height', height);\r
- dom.setAttrib(elm, 'height', '');\r
- }\r
-\r
- if (background != '')\r
- elm.style.backgroundImage = "url('" + background + "')";\r
- else\r
- elm.style.backgroundImage = '';\r
-\r
-/* if (tinyMCEPopup.getParam("inline_styles")) {\r
- if (width != '')\r
- elm.style.width = getCSSSize(width);\r
- }*/\r
-\r
- if (bordercolor != "") {\r
- elm.style.borderColor = bordercolor;\r
- elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;\r
- elm.style.borderWidth = border == "" ? "1px" : border;\r
- } else\r
- elm.style.borderColor = '';\r
-\r
- elm.style.backgroundColor = bgcolor;\r
- elm.style.height = getCSSSize(height);\r
-\r
- inst.addVisual();\r
-\r
- // Fix for stange MSIE align bug\r
- //elm.outerHTML = elm.outerHTML;\r
-\r
- inst.nodeChanged();\r
- inst.execCommand('mceEndUndoLevel');\r
-\r
- // Repaint if dimensions changed\r
- if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)\r
- inst.execCommand('mceRepaint');\r
-\r
- tinyMCEPopup.close();\r
- return true;\r
- }\r
-\r
- // Create new table\r
- html += '<table';\r
-\r
- html += makeAttrib('id', id);\r
- html += makeAttrib('border', border);\r
- html += makeAttrib('cellpadding', cellpadding);\r
- html += makeAttrib('cellspacing', cellspacing);\r
-\r
- if (width && /(pt|em|cm)$/.test(width)) {\r
- if (style)\r
- style += '; ';\r
-\r
- style += 'width: ' + width;\r
- } else\r
- html += makeAttrib('width', width);\r
-\r
-/* if (height) {\r
- if (style)\r
- style += '; ';\r
-\r
- style += 'height: ' + height;\r
- }*/\r
-\r
- //html += makeAttrib('height', height);\r
- //html += makeAttrib('bordercolor', bordercolor);\r
- //html += makeAttrib('bgcolor', bgcolor);\r
- html += makeAttrib('align', align);\r
- html += makeAttrib('frame', frame);\r
- html += makeAttrib('rules', rules);\r
- html += makeAttrib('class', className);\r
- html += makeAttrib('style', style);\r
- html += makeAttrib('summary', summary);\r
- html += makeAttrib('dir', dir);\r
- html += makeAttrib('lang', lang);\r
- html += '>';\r
-\r
- if (caption) {\r
- if (!tinymce.isIE)\r
- html += '<caption><br mce_bogus="1"/></caption>';\r
- else\r
- html += '<caption></caption>';\r
- }\r
-\r
- for (var y=0; y<rows; y++) {\r
- html += "<tr>";\r
-\r
- for (var x=0; x<cols; x++) {\r
- if (!tinymce.isIE)\r
- html += '<td><br mce_bogus="1"/></td>';\r
- else\r
- html += '<td></td>';\r
- }\r
-\r
- html += "</tr>";\r
- }\r
-\r
- html += "</table>";\r
-\r
- inst.execCommand('mceBeginUndoLevel');\r
- inst.execCommand('mceInsertContent', false, html);\r
- inst.addVisual();\r
- inst.execCommand('mceEndUndoLevel');\r
-\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function makeAttrib(attrib, value) {\r
- var formObj = document.forms[0];\r
- var valueElm = formObj.elements[attrib];\r
-\r
- if (typeof(value) == "undefined" || value == null) {\r
- value = "";\r
-\r
- if (valueElm)\r
- value = valueElm.value;\r
- }\r
-\r
- if (value == "")\r
- return "";\r
-\r
- // XML encode it\r
- value = value.replace(/&/g, '&');\r
- value = value.replace(/\"/g, '"');\r
- value = value.replace(/</g, '<');\r
- value = value.replace(/>/g, '>');\r
-\r
- return ' ' + attrib + '="' + value + '"';\r
-}\r
-\r
-function init() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');\r
- document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');\r
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');\r
-\r
- var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');\r
- var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";\r
- var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules, frame;\r
- var inst = tinyMCEPopup.editor, dom = inst.dom;\r
- var formObj = document.forms[0];\r
- var elm = dom.getParent(inst.selection.getNode(), "table");\r
-\r
- action = tinyMCEPopup.getWindowArg('action');\r
-\r
- if (!action)\r
- action = elm ? "update" : "insert";\r
-\r
- if (elm && action != "insert") {\r
- var rowsAr = elm.rows;\r
- var cols = 0;\r
- for (var i=0; i<rowsAr.length; i++)\r
- if (rowsAr[i].cells.length > cols)\r
- cols = rowsAr[i].cells.length;\r
-\r
- cols = cols;\r
- rows = rowsAr.length;\r
-\r
- st = dom.parseStyle(dom.getAttrib(elm, "style"));\r
- border = trimSize(getStyle(elm, 'border', 'borderWidth'));\r
- cellpadding = dom.getAttrib(elm, 'cellpadding', "");\r
- cellspacing = dom.getAttrib(elm, 'cellspacing', "");\r
- width = trimSize(getStyle(elm, 'width', 'width'));\r
- height = trimSize(getStyle(elm, 'height', 'height'));\r
- bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));\r
- bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));\r
- align = dom.getAttrib(elm, 'align', align);\r
- frame = dom.getAttrib(elm, 'frame');\r
- rules = dom.getAttrib(elm, 'rules');\r
- className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));\r
- id = dom.getAttrib(elm, 'id');\r
- summary = dom.getAttrib(elm, 'summary');\r
- style = dom.serializeStyle(st);\r
- dir = dom.getAttrib(elm, 'dir');\r
- lang = dom.getAttrib(elm, 'lang');\r
- background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
- formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;\r
-\r
- orgTableWidth = width;\r
- orgTableHeight = height;\r
-\r
- action = "update";\r
- formObj.insert.value = inst.getLang('update');\r
- }\r
-\r
- addClassesToList('class', "table_styles");\r
- TinyMCE_EditableSelects.init();\r
-\r
- // Update form\r
- selectByValue(formObj, 'align', align);\r
- selectByValue(formObj, 'frame', frame);\r
- selectByValue(formObj, 'rules', rules);\r
- selectByValue(formObj, 'class', className, true, true);\r
- formObj.cols.value = cols;\r
- formObj.rows.value = rows;\r
- formObj.border.value = border;\r
- formObj.cellpadding.value = cellpadding;\r
- formObj.cellspacing.value = cellspacing;\r
- formObj.width.value = width;\r
- formObj.height.value = height;\r
- formObj.bordercolor.value = bordercolor;\r
- formObj.bgcolor.value = bgcolor;\r
- formObj.id.value = id;\r
- formObj.summary.value = summary;\r
- formObj.style.value = style;\r
- formObj.dir.value = dir;\r
- formObj.lang.value = lang;\r
- formObj.backgroundimage.value = background;\r
-\r
- updateColor('bordercolor_pick', 'bordercolor');\r
- updateColor('bgcolor_pick', 'bgcolor');\r
-\r
- // Resize some elements\r
- if (isVisible('backgroundimagebrowser'))\r
- document.getElementById('backgroundimage').style.width = '180px';\r
-\r
- // Disable some fields in update mode\r
- if (action == "update") {\r
- formObj.cols.disabled = true;\r
- formObj.rows.disabled = true;\r
- }\r
-}\r
-\r
-function changedSize() {\r
- var formObj = document.forms[0];\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
-/* var width = formObj.width.value;\r
- if (width != "")\r
- st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";\r
- else\r
- st['width'] = "";*/\r
-\r
- var height = formObj.height.value;\r
- if (height != "")\r
- st['height'] = getCSSSize(height);\r
- else\r
- st['height'] = "";\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedBackgroundImage() {\r
- var formObj = document.forms[0];\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- st['background-image'] = "url('" + formObj.backgroundimage.value + "')";\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedBorder() {\r
- var formObj = document.forms[0];\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- // Update border width if the element has a color\r
- if (formObj.border.value != "" && formObj.bordercolor.value != "")\r
- st['border-width'] = formObj.border.value + "px";\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedColor() {\r
- var formObj = document.forms[0];\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- st['background-color'] = formObj.bgcolor.value;\r
-\r
- if (formObj.bordercolor.value != "") {\r
- st['border-color'] = formObj.bordercolor.value;\r
-\r
- // Add border-width if it's missing\r
- if (!st['border-width'])\r
- st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px";\r
- }\r
-\r
- formObj.style.value = dom.serializeStyle(st);\r
-}\r
-\r
-function changedStyle() {\r
- var formObj = document.forms[0];\r
- var st = dom.parseStyle(formObj.style.value);\r
-\r
- if (st['background-image'])\r
- formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");\r
- else\r
- formObj.backgroundimage.value = '';\r
-\r
- if (st['width'])\r
- formObj.width.value = trimSize(st['width']);\r
-\r
- if (st['height'])\r
- formObj.height.value = trimSize(st['height']);\r
-\r
- if (st['background-color']) {\r
- formObj.bgcolor.value = st['background-color'];\r
- updateColor('bgcolor_pick','bgcolor');\r
- }\r
-\r
- if (st['border-color']) {\r
- formObj.bordercolor.value = st['border-color'];\r
- updateColor('bordercolor_pick','bordercolor');\r
- }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCE.addI18n('en.table_dlg',{\r
-general_tab:"General",\r
-advanced_tab:"Advanced",\r
-general_props:"General properties",\r
-advanced_props:"Advanced properties",\r
-rowtype:"Row in table part",\r
-title:"Insert/Modify table",\r
-width:"Width",\r
-height:"Height",\r
-cols:"Cols",\r
-rows:"Rows",\r
-cellspacing:"Cellspacing",\r
-cellpadding:"Cellpadding",\r
-border:"Border",\r
-align:"Alignment",\r
-align_default:"Default",\r
-align_left:"Left",\r
-align_right:"Right",\r
-align_middle:"Center",\r
-row_title:"Table row properties",\r
-cell_title:"Table cell properties",\r
-cell_type:"Cell type",\r
-valign:"Vertical alignment",\r
-align_top:"Top",\r
-align_bottom:"Bottom",\r
-bordercolor:"Border color",\r
-bgcolor:"Background color",\r
-merge_cells_title:"Merge table cells",\r
-id:"Id",\r
-style:"Style",\r
-langdir:"Language direction",\r
-langcode:"Language code",\r
-mime:"Target MIME type",\r
-ltr:"Left to right",\r
-rtl:"Right to left",\r
-bgimage:"Background image",\r
-summary:"Summary",\r
-td:"Data",\r
-th:"Header",\r
-cell_cell:"Update current cell",\r
-cell_row:"Update all cells in row",\r
-cell_all:"Update all cells in table",\r
-row_row:"Update current row",\r
-row_odd:"Update odd rows in table",\r
-row_even:"Update even rows in table",\r
-row_all:"Update all rows in table",\r
-thead:"Table Head",\r
-tbody:"Table Body",\r
-tfoot:"Table Foot",\r
-scope:"Scope",\r
-rowgroup:"Row Group",\r
-colgroup:"Col Group",\r
-col_limit:"You've exceeded the maximum number of columns of {$cols}.",\r
-row_limit:"You've exceeded the maximum number of rows of {$rows}.",\r
-cell_limit:"You've exceeded the maximum number of cells of {$cells}.",\r
-missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.",\r
-caption:"Table caption",\r
-frame:"Frame",\r
-frame_none:"none",\r
-frame_groups:"groups",\r
-frame_rows:"rows",\r
-frame_cols:"cols",\r
-frame_all:"all",\r
-rules:"Rules",\r
-rules_void:"void",\r
-rules_above:"above",\r
-rules_below:"below",\r
-rules_hsides:"hsides",\r
-rules_lhs:"lhs",\r
-rules_rhs:"rhs",\r
-rules_vsides:"vsides",\r
-rules_box:"box",\r
-rules_border:"border"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#table_dlg.merge_cells_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/validate.js"></script>\r
- <script type="text/javascript" src="js/merge_cells.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body style="margin: 8px" style="display: none">\r
-<form onsubmit="mergeCells();return false;" action="#">\r
- <fieldset>\r
- <legend>{#table_dlg.merge_cells_title}</legend>\r
- <table border="0" cellpadding="0" cellspacing="3" width="100%">\r
- <tr>\r
- <td>{#table_dlg.cols}:</td>\r
- <td align="right"><input type="text" name="numcols" value="" class="number min1 mceFocus" style="width: 30px" /></td>\r
- </tr>\r
- <tr>\r
- <td>{#table_dlg.rows}:</td>\r
- <td align="right"><input type="text" name="numrows" value="" class="number min1" style="width: 30px" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#table_dlg.row_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/row.js"></script>\r
- <link href="css/row.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="tablerow" style="display: none">\r
- <form onsubmit="updateAction();return false;">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#table_dlg.general_props}</legend>\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td><label for="rowtype">{#table_dlg.rowtype}</label></td>\r
- <td class="col2">\r
- <select id="rowtype" name="rowtype" class="mceFocus">\r
- <option value="thead">{#table_dlg.thead}</option>\r
- <option value="tbody">{#table_dlg.tbody}</option>\r
- <option value="tfoot">{#table_dlg.tfoot}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="align">{#table_dlg.align}</label></td>\r
- <td class="col2">\r
- <select id="align" name="align">\r
- <option value="">{#not_set}</option>\r
- <option value="center">{#table_dlg.align_middle}</option>\r
- <option value="left">{#table_dlg.align_left}</option>\r
- <option value="right">{#table_dlg.align_right}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="valign">{#table_dlg.valign}</label></td>\r
- <td class="col2">\r
- <select id="valign" name="valign">\r
- <option value="">{#not_set}</option>\r
- <option value="top">{#table_dlg.align_top}</option>\r
- <option value="middle">{#table_dlg.align_middle}</option>\r
- <option value="bottom">{#table_dlg.align_bottom}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr id="styleSelectRow">\r
- <td><label for="class">{#class_name}</label></td>\r
- <td class="col2">\r
- <select id="class" name="class" class="mceEditableSelect">\r
- <option value="" selected="selected">{#not_set}</option>\r
- </select>\r
- </td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label for="height">{#table_dlg.height}</label></td>\r
- <td class="col2"><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <fieldset>\r
- <legend>{#table_dlg.advanced_props}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
- <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label for="style">{#table_dlg.style}</label></td>\r
- <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
- <td>\r
- <select id="dir" name="dir" style="width: 200px"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#table_dlg.ltr}</option> \r
- <option value="rtl">{#table_dlg.rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" style="width: 200px" />\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>\r
- <td id="backgroundimagebrowsercontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
- <td id="bgcolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div>\r
- <select id="action" name="action">\r
- <option value="row">{#table_dlg.row_row}</option>\r
- <option value="odd">{#table_dlg.row_odd}</option>\r
- <option value="even">{#table_dlg.row_even}</option>\r
- <option value="all">{#table_dlg.row_all}</option>\r
- </select>\r
- </div>\r
-\r
- <div style="float: left">\r
- <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#table_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/validate.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/table.js"></script>\r
- <link href="css/table.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="table" style="display: none">\r
- <form onsubmit="insertTable();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>\r
- <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#table_dlg.general_props}</legend>\r
- <table border="0" cellpadding="4" cellspacing="0" width="100%">\r
- <tr>\r
- <td><label id="colslabel" for="cols">{#table_dlg.cols}</label></td>\r
- <td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" class="required number min1 mceFocus" /></td>\r
- <td><label id="rowslabel" for="rows">{#table_dlg.rows}</label></td>\r
- <td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" class="required number min1" /></td>\r
- </tr>\r
- <tr>\r
- <td><label id="cellpaddinglabel" for="cellpadding">{#table_dlg.cellpadding}</label></td>\r
- <td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" class="number" /></td>\r
- <td><label id="cellspacinglabel" for="cellspacing">{#table_dlg.cellspacing}</label></td>\r
- <td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" class="number" /></td>\r
- </tr>\r
- <tr>\r
- <td><label id="alignlabel" for="align">{#table_dlg.align}</label></td>\r
- <td><select id="align" name="align">\r
- <option value="">{#not_set}</option>\r
- <option value="center">{#table_dlg.align_middle}</option>\r
- <option value="left">{#table_dlg.align_left}</option>\r
- <option value="right">{#table_dlg.align_right}</option>\r
- </select></td>\r
- <td><label id="borderlabel" for="border">{#table_dlg.border}</label></td>\r
- <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changedBorder();" class="number" /></td>\r
- </tr>\r
- <tr id="width_row">\r
- <td><label id="widthlabel" for="width">{#table_dlg.width}</label></td>\r
- <td><input name="width" type="text" id="width" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>\r
- <td><label id="heightlabel" for="height">{#table_dlg.height}</label></td>\r
- <td><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td>\r
- </tr>\r
- <tr id="styleSelectRow">\r
- <td><label id="classlabel" for="class">{#class_name}</label></td>\r
- <td colspan="3">\r
- <select id="class" name="class" class="mceEditableSelect">\r
- <option value="" selected>{#not_set}</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td class="column1"><label for="caption">{#table_dlg.caption}</label></td> \r
- <td><input id="caption" name="caption" type="checkbox" class="checkbox" value="true" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="advanced_panel" class="panel">\r
- <fieldset>\r
- <legend>{#table_dlg.advanced_props}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="column1"><label for="id">{#table_dlg.id}</label></td> \r
- <td><input id="id" name="id" type="text" value="" class="advfield" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="summary">{#table_dlg.summary}</label></td> \r
- <td><input id="summary" name="summary" type="text" value="" class="advfield" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td><label for="style">{#table_dlg.style}</label></td>\r
- <td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label id="langlabel" for="lang">{#table_dlg.langcode}</label></td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" class="advfield" />\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>\r
- <td id="backgroundimagebrowsercontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="frame">{#table_dlg.frame}</label></td> \r
- <td>\r
- <select id="frame" name="frame" class="advfield"> \r
- <option value="">{#not_set}</option>\r
- <option value="void">{#table_dlg.rules_void}</option>\r
- <option value="above">{#table_dlg.rules_above}</option> \r
- <option value="below">{#table_dlg.rules_below}</option> \r
- <option value="hsides">{#table_dlg.rules_hsides}</option> \r
- <option value="lhs">{#table_dlg.rules_lhs}</option> \r
- <option value="rhs">{#table_dlg.rules_rhs}</option> \r
- <option value="vsides">{#table_dlg.rules_vsides}</option> \r
- <option value="box">{#table_dlg.rules_box}</option> \r
- <option value="border">{#table_dlg.rules_border}</option> \r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="rules">{#table_dlg.rules}</label></td> \r
- <td>\r
- <select id="rules" name="rules" class="advfield"> \r
- <option value="">{#not_set}</option> \r
- <option value="none">{#table_dlg.frame_none}</option>\r
- <option value="groups">{#table_dlg.frame_groups}</option>\r
- <option value="rows">{#table_dlg.frame_rows}</option>\r
- <option value="cols">{#table_dlg.frame_cols}</option>\r
- <option value="all">{#table_dlg.frame_all}</option>\r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td> \r
- <td>\r
- <select id="dir" name="dir" class="advfield"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#table_dlg.ltr}</option> \r
- <option value="rtl">{#table_dlg.rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>\r
- <td id="bordercolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td> \r
- <td>\r
- <table border="0" cellpadding="0" cellspacing="0">\r
- <tr>\r
- <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>\r
- <td id="bgcolor_pickcontainer"> </td>\r
- </tr>\r
- </table>\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>blank_page</title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
- <script type="text/javascript">\r
- parent.TemplateDialog.loadCSSFiles(document);\r
- </script>\r
-</head>\r
-<body id="mceTemplatePreview" class="mceContentBody">\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-#frmbody {\r
- padding: 10px;\r
- background-color: #FFF;\r
- border: 1px solid #CCC;\r
-}\r
-\r
-.frmRow {\r
- margin-bottom: 10px;\r
-}\r
-\r
-#templatesrc {\r
- border: none;\r
- width: 320px;\r
- height: 240px;\r
-}\r
-\r
-.title {\r
- padding-bottom: 5px;\r
-}\r
-\r
-.mceActionPanel {\r
- padding-top: 5px;\r
-}\r
+++ /dev/null
-(function(){var each=tinymce.each;tinymce.create('tinymce.plugins.TemplatePlugin',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceTemplate',function(ui){ed.windowManager.open({file:url+'/template.htm',width:ed.getParam('template_popup_width',750),height:ed.getParam('template_popup_height',600),inline:1},{plugin_url:url});});ed.addCommand('mceInsertTemplate',t._insertTemplate,t);ed.addButton('template',{title:'template.desc',cmd:'mceTemplate'});ed.onPreProcess.add(function(ed,o){var dom=ed.dom;each(dom.select('div',o.node),function(e){if(dom.hasClass(e,'mceTmpl')){each(dom.select('*',e),function(e){if(dom.hasClass(e,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))e.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));});t._replaceVals(e);}});});},getInfo:function(){return{longname:'Template plugin',author:'Moxiecode Systems AB',authorurl:'http://www.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_insertTemplate:function(ui,v){var t=this,ed=t.editor,h,el,dom=ed.dom,sel=ed.selection.getContent();h=v.content;each(t.editor.getParam('template_replace_values'),function(v,k){if(typeof(v)!='function')h=h.replace(new RegExp('\\{\\$'+k+'\\}','g'),v);});el=dom.create('div',null,h);n=dom.select('.mceTmpl',el);if(n&&n.length>0){el=dom.create('div',null);el.appendChild(n[0].cloneNode(true));}function hasClass(n,c){return new RegExp('\\b'+c+'\\b','g').test(n.className);};each(dom.select('*',el),function(n){if(hasClass(n,ed.getParam('template_cdate_classes','cdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_cdate_format",ed.getLang("template.cdate_format")));if(hasClass(n,ed.getParam('template_mdate_classes','mdate').replace(/\s+/g,'|')))n.innerHTML=t._getDateTime(new Date(),ed.getParam("template_mdate_format",ed.getLang("template.mdate_format")));if(hasClass(n,ed.getParam('template_selected_content_classes','selcontent').replace(/\s+/g,'|')))n.innerHTML=sel;});t._replaceVals(el);ed.execCommand('mceInsertContent',false,el.innerHTML);ed.addVisual();},_replaceVals:function(e){var dom=this.editor.dom,vl=this.editor.getParam('template_replace_values');each(dom.select('*',e),function(e){each(vl,function(v,k){if(dom.hasClass(e,k)){if(typeof(vl[k])=='function')vl[k](e);}});});},_getDateTime:function(d,fmt){if(!fmt)return"";function addZeros(value,len){var i;value=""+value;if(value.length<len){for(i=0;i<(len-value.length);i++)value="0"+value;}return value;}fmt=fmt.replace("%D","%m/%d/%y");fmt=fmt.replace("%r","%I:%M:%S %p");fmt=fmt.replace("%Y",""+d.getFullYear());fmt=fmt.replace("%y",""+d.getYear());fmt=fmt.replace("%m",addZeros(d.getMonth()+1,2));fmt=fmt.replace("%d",addZeros(d.getDate(),2));fmt=fmt.replace("%H",""+addZeros(d.getHours(),2));fmt=fmt.replace("%M",""+addZeros(d.getMinutes(),2));fmt=fmt.replace("%S",""+addZeros(d.getSeconds(),2));fmt=fmt.replace("%I",""+((d.getHours()+11)%12+1));fmt=fmt.replace("%p",""+(d.getHours()<12?"AM":"PM"));fmt=fmt.replace("%B",""+tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);fmt=fmt.replace("%b",""+tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);fmt=fmt.replace("%A",""+tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);fmt=fmt.replace("%a",""+tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);fmt=fmt.replace("%%","%");return fmt;}});tinymce.PluginManager.add('template',tinymce.plugins.TemplatePlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var each = tinymce.each;\r
-\r
- tinymce.create('tinymce.plugins.TemplatePlugin', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceTemplate', function(ui) {\r
- ed.windowManager.open({\r
- file : url + '/template.htm',\r
- width : ed.getParam('template_popup_width', 750),\r
- height : ed.getParam('template_popup_height', 600),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- ed.addCommand('mceInsertTemplate', t._insertTemplate, t);\r
-\r
- // Register buttons\r
- ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});\r
-\r
- ed.onPreProcess.add(function(ed, o) {\r
- var dom = ed.dom;\r
-\r
- each(dom.select('div', o.node), function(e) {\r
- if (dom.hasClass(e, 'mceTmpl')) {\r
- each(dom.select('*', e), function(e) {\r
- if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))\r
- e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));\r
- });\r
-\r
- t._replaceVals(e);\r
- }\r
- });\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Template plugin',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://www.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- _insertTemplate : function(ui, v) {\r
- var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();\r
-\r
- h = v.content;\r
-\r
- each(t.editor.getParam('template_replace_values'), function(v, k) {\r
- if (typeof(v) != 'function')\r
- h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);\r
- });\r
-\r
- el = dom.create('div', null, h);\r
-\r
- // Find template element within div\r
- n = dom.select('.mceTmpl', el);\r
- if (n && n.length > 0) {\r
- el = dom.create('div', null);\r
- el.appendChild(n[0].cloneNode(true));\r
- }\r
-\r
- function hasClass(n, c) {\r
- return new RegExp('\\b' + c + '\\b', 'g').test(n.className);\r
- };\r
-\r
- each(dom.select('*', el), function(n) {\r
- // Replace cdate\r
- if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))\r
- n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));\r
-\r
- // Replace mdate\r
- if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))\r
- n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));\r
-\r
- // Replace selection\r
- if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))\r
- n.innerHTML = sel;\r
- });\r
-\r
- t._replaceVals(el);\r
-\r
- ed.execCommand('mceInsertContent', false, el.innerHTML);\r
- ed.addVisual();\r
- },\r
-\r
- _replaceVals : function(e) {\r
- var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');\r
-\r
- each(dom.select('*', e), function(e) {\r
- each(vl, function(v, k) {\r
- if (dom.hasClass(e, k)) {\r
- if (typeof(vl[k]) == 'function')\r
- vl[k](e);\r
- }\r
- });\r
- });\r
- },\r
-\r
- _getDateTime : function(d, fmt) {\r
- if (!fmt)\r
- return "";\r
-\r
- function addZeros(value, len) {\r
- var i;\r
-\r
- value = "" + value;\r
-\r
- if (value.length < len) {\r
- for (i=0; i<(len-value.length); i++)\r
- value = "0" + value;\r
- }\r
-\r
- return value;\r
- }\r
-\r
- fmt = fmt.replace("%D", "%m/%d/%y");\r
- fmt = fmt.replace("%r", "%I:%M:%S %p");\r
- fmt = fmt.replace("%Y", "" + d.getFullYear());\r
- fmt = fmt.replace("%y", "" + d.getYear());\r
- fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
- fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
- fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
- fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
- fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
- fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
- fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
- fmt = fmt.replace("%B", "" + tinyMCE.getLang("template_months_long").split(',')[d.getMonth()]);\r
- fmt = fmt.replace("%b", "" + tinyMCE.getLang("template_months_short").split(',')[d.getMonth()]);\r
- fmt = fmt.replace("%A", "" + tinyMCE.getLang("template_day_long").split(',')[d.getDay()]);\r
- fmt = fmt.replace("%a", "" + tinyMCE.getLang("template_day_short").split(',')[d.getDay()]);\r
- fmt = fmt.replace("%%", "%");\r
-\r
- return fmt;\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var TemplateDialog = {\r
- preInit : function() {\r
- var url = tinyMCEPopup.getParam("template_external_list_url");\r
-\r
- if (url != null)\r
- document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');\r
- },\r
-\r
- init : function() {\r
- var ed = tinyMCEPopup.editor, tsrc, sel, x, u;\r
-\r
- tsrc = ed.getParam("template_templates", false);\r
- sel = document.getElementById('tpath');\r
-\r
- // Setup external template list\r
- if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {\r
- for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)\r
- tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});\r
- }\r
-\r
- for (x=0; x<tsrc.length; x++)\r
- sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));\r
-\r
- this.resize();\r
- this.tsrc = tsrc;\r
- },\r
-\r
- resize : function() {\r
- var w, h, e;\r
-\r
- if (!self.innerWidth) {\r
- w = document.body.clientWidth - 50;\r
- h = document.body.clientHeight - 160;\r
- } else {\r
- w = self.innerWidth - 50;\r
- h = self.innerHeight - 170;\r
- }\r
-\r
- e = document.getElementById('templatesrc');\r
-\r
- if (e) {\r
- e.style.height = Math.abs(h) + 'px';\r
- e.style.width = Math.abs(w - 5) + 'px';\r
- }\r
- },\r
-\r
- loadCSSFiles : function(d) {\r
- var ed = tinyMCEPopup.editor;\r
-\r
- tinymce.each(ed.getParam("content_css", '').split(','), function(u) {\r
- d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');\r
- });\r
- },\r
-\r
- selectTemplate : function(u, ti) {\r
- var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;\r
-\r
- if (!u)\r
- return;\r
-\r
- d.body.innerHTML = this.templateHTML = this.getFileContents(u);\r
-\r
- for (x=0; x<tsrc.length; x++) {\r
- if (tsrc[x].title == ti)\r
- document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';\r
- }\r
- },\r
-\r
- insert : function() {\r
- tinyMCEPopup.execCommand('mceInsertTemplate', false, {\r
- content : this.templateHTML,\r
- selection : tinyMCEPopup.editor.selection.getContent()\r
- });\r
-\r
- tinyMCEPopup.close();\r
- },\r
-\r
- getFileContents : function(u) {\r
- var x, d, t = 'text/plain';\r
-\r
- function g(s) {\r
- x = 0;\r
-\r
- try {\r
- x = new ActiveXObject(s);\r
- } catch (s) {\r
- }\r
-\r
- return x;\r
- };\r
-\r
- x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();\r
-\r
- // Synchronous AJAX load file\r
- x.overrideMimeType && x.overrideMimeType(t);\r
- x.open("GET", u, false);\r
- x.send(null);\r
-\r
- return x.responseText;\r
- }\r
-};\r
-\r
-TemplateDialog.preInit();\r
-tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);\r
+++ /dev/null
-tinyMCE.addI18n('en.template_dlg',{\r
-title:"Templates",\r
-label:"Template",\r
-desc_label:"Description",\r
-desc:"Insert predefined template content",\r
-select:"Select a template",\r
-preview:"Preview",\r
-warning:"Warning: Updating a template with a different one may cause data loss.",\r
-mdate_format:"%Y-%m-%d %H:%M:%S",\r
-cdate_format:"%Y-%m-%d %H:%M:%S",\r
-months_long:"January,February,March,April,May,June,July,August,September,October,November,December",\r
-months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",\r
-day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",\r
-day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"\r
-});
\ No newline at end of file
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#template_dlg.title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/template.js"></script>\r
- <link href="css/template.css" rel="stylesheet" type="text/css" />\r
- <base target="_self" />\r
-</head>\r
-<body onresize="TemplateDialog.resize();"> \r
- <form onsubmit="TemplateDialog.insert();return false;">\r
- <div id="frmbody">\r
- <div class="title">{#template_dlg.desc}</div>\r
- <div class="frmRow"><label for="tpath" title="{#template_dlg.select}">{#template_dlg.label}:</label>\r
- <select id="tpath" name="tpath" onchange="TemplateDialog.selectTemplate(this.options[this.selectedIndex].value, this.options[this.selectedIndex].text);" class="mceFocus">\r
- <option value="">{#template_dlg.select}...</option>\r
- </select>\r
- <span id="warning"></span></div>\r
- <div class="frmRow"><label for="tdesc">{#template_dlg.desc_label}:</label>\r
- <span id="tmpldesc"></span></div>\r
- <fieldset>\r
- <legend>{#template_dlg.preview}</legend>\r
- <iframe id="templatesrc" name="templatesrc" src="blank.htm" width="690" height="400" frameborder="0"></iframe>\r
- </fieldset>\r
- </div>\r
- \r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
-\r
- <br style="clear:both" />\r
- </div>\r
- </form>\r
-</body> \r
-</html> \r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.VisualChars',{init:function(ed,url){var t=this;t.editor=ed;ed.addCommand('mceVisualChars',t._toggleVisualChars,t);ed.addButton('visualchars',{title:'visualchars.desc',cmd:'mceVisualChars'});ed.onBeforeGetContent.add(function(ed,o){if(t.state){t.state=true;t._toggleVisualChars();}});},getInfo:function(){return{longname:'Visual characters',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_toggleVisualChars:function(){var t=this,ed=t.editor,nl,i,h,d=ed.getDoc(),b=ed.getBody(),nv,s=ed.selection,bo;t.state=!t.state;ed.controlManager.setActive('visualchars',t.state);if(t.state){nl=[];tinymce.walk(b,function(n){if(n.nodeType==3&&n.nodeValue&&n.nodeValue.indexOf('\u00a0')!=-1)nl.push(n);},'childNodes');for(i=0;i<nl.length;i++){nv=nl[i].nodeValue;nv=nv.replace(/(\u00a0+)/g,'<span class="mceItemHidden mceVisualNbsp">$1</span>');nv=nv.replace(/\u00a0/g,'\u00b7');ed.dom.setOuterHTML(nl[i],nv,d);}}else{nl=tinymce.grep(ed.dom.select('span',b),function(n){return ed.dom.hasClass(n,'mceVisualNbsp');});for(i=0;i<nl.length;i++)ed.dom.setOuterHTML(nl[i],nl[i].innerHTML.replace(/(·|\u00b7)/g,' '),d);}}});tinymce.PluginManager.add('visualchars',tinymce.plugins.VisualChars);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.VisualChars', {\r
- init : function(ed, url) {\r
- var t = this;\r
-\r
- t.editor = ed;\r
-\r
- // Register commands\r
- ed.addCommand('mceVisualChars', t._toggleVisualChars, t);\r
-\r
- // Register buttons\r
- ed.addButton('visualchars', {title : 'visualchars.desc', cmd : 'mceVisualChars'});\r
-\r
- ed.onBeforeGetContent.add(function(ed, o) {\r
- if (t.state) {\r
- t.state = true;\r
- t._toggleVisualChars();\r
- }\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Visual characters',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- },\r
-\r
- // Private methods\r
-\r
- _toggleVisualChars : function() {\r
- var t = this, ed = t.editor, nl, i, h, d = ed.getDoc(), b = ed.getBody(), nv, s = ed.selection, bo;\r
-\r
- t.state = !t.state;\r
- ed.controlManager.setActive('visualchars', t.state);\r
-\r
- if (t.state) {\r
- nl = [];\r
- tinymce.walk(b, function(n) {\r
- if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1)\r
- nl.push(n);\r
- }, 'childNodes');\r
-\r
- for (i=0; i<nl.length; i++) {\r
- nv = nl[i].nodeValue;\r
- nv = nv.replace(/(\u00a0+)/g, '<span class="mceItemHidden mceVisualNbsp">$1</span>');\r
- nv = nv.replace(/\u00a0/g, '\u00b7');\r
- ed.dom.setOuterHTML(nl[i], nv, d);\r
- }\r
- } else {\r
- nl = tinymce.grep(ed.dom.select('span', b), function(n) {\r
- return ed.dom.hasClass(n, 'mceVisualNbsp');\r
- });\r
-\r
- for (i=0; i<nl.length; i++)\r
- ed.dom.setOuterHTML(nl[i], nl[i].innerHTML.replace(/(·|\u00b7)/g, ' '), d);\r
- }\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('visualchars', tinymce.plugins.VisualChars);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#xhtmlxtras_dlg.title_abbr_element}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/element_common.js"></script>\r
- <script type="text/javascript" src="js/abbr.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertAbbr();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
- <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
- <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
- <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
- <td>\r
- <select id="class" name="class" class="field mceEditableSelect">\r
- <option value="">{#not_set}</option> \r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
- <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
- <td>\r
- <select id="dir" name="dir" class="field"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
- <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" class="field" />\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label for="onfocus">onfocus</label>:</td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onblur">onblur</label>:</td> \r
- <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onclick">onclick</label>:</td> \r
- <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
- <div style="float: left">\r
- <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAbbr();" style="display: none;" />\r
- </div>\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#xhtmlxtras_dlg.title_acronym_element}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/element_common.js"></script>\r
- <script type="text/javascript" src="js/acronym.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertAcronym();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
- <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
- <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
- <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
- <td>\r
- <select id="class" name="class" class="field mceEditableSelect">\r
- <option value="">{#not_set}</option> \r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
- <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
- <td>\r
- <select id="dir" name="dir" class="field"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
- <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" class="field" />\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label for="onfocus">onfocus</label>:</td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onblur">onblur</label>:</td> \r
- <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onclick">onclick</label>:</td> \r
- <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
- <div style="float: left">\r
- <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeAcronym();" style="display: none;" />\r
- </div>\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#xhtmlxtras_dlg.attribs_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="js/attributes.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/attributes.css" />\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertAction();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_attrib_tab}</a></span></li>\r
- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.attribute_events_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.attribute_attrib_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
- <td><input id="title" name="title" type="text" value="" class="mceFocus" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
- <td><input id="id" name="id" type="text" value="" /></td> \r
- </tr>\r
- <tr>\r
- <td><label id="classlabel" for="classlist">{#class_name}</label></td>\r
- <td>\r
- <select id="classlist" name="classlist" class="mceEditableSelect">\r
- <option value="" selected>{#not_set}</option>\r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
- <td><input id="style" name="style" type="text" value="" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
- <td>\r
- <select id="dir" name="dir"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#xhtmlxtras_dlg.option_ltr}</option> \r
- <option value="rtl">{#xhtmlxtras_dlg.option_rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" />\r
- </td> \r
- </tr>\r
- <tr>\r
- <td><label id="tabindexlabel" for="tabindex">{#xhtmlxtras_dlg.attribute_label_tabindex}</label></td>\r
- <td><input type="text" id="tabindex" name="tabindex" value="" /></td>\r
- </tr>\r
-\r
- <tr>\r
- <td><label id="accesskeylabel" for="accesskey">{#xhtmlxtras_dlg.attribute_label_accesskey}</label></td>\r
- <td><input type="text" id="accesskey" name="accesskey" value="" /></td>\r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.attribute_events_tab}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label for="onfocus">onfocus</label>:</td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onblur">onblur</label>:</td> \r
- <td><input id="onblur" name="onblur" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onclick">onclick</label>:</td> \r
- <td><input id="onclick" name="onclick" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#xhtmlxtras_dlg.title_cite_element}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/element_common.js"></script>\r
- <script type="text/javascript" src="js/cite.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="insertCite();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
- <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
- <td><input id="title" name="title" type="text" value="" class="field mceFocus" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
- <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
- <td>\r
- <select id="class" name="class" class="field mceEditableSelect">\r
- <option value="">{#not_set}</option> \r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
- <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
- <td>\r
- <select id="dir" name="dir" class="field"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
- <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" class="field" />\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label for="onfocus">onfocus</label>:</td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onblur">onblur</label>:</td> \r
- <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onclick">onclick</label>:</td> \r
- <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
- <div style="float: left">\r
- <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeCite();" style="display: none;" />\r
- </div>\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-.panel_wrapper div.current {\r
- height: 290px;\r
-}\r
-\r
-#id, #style, #title, #dir, #hreflang, #lang, #classlist, #tabindex, #accesskey {\r
- width: 200px;\r
-}\r
-\r
-#events_panel input {\r
- width: 200px;\r
-}\r
+++ /dev/null
-input.field, select.field {width:200px;}\r
-input.picker {width:179px; margin-left: 5px;}\r
-input.disabled {border-color:#F2F2F2;}\r
-img.picker {vertical-align:text-bottom; cursor:pointer;}\r
-h1 {padding: 0 0 5px 0;}\r
-.panel_wrapper div.current {height:160px;}\r
-#xhtmlxtrasdel .panel_wrapper div.current, #xhtmlxtrasins .panel_wrapper div.current {height: 230px;}\r
-a.browse span {display:block; width:20px; height:20px; background:url('../../../themes/advanced/img/icons.gif') -140px -20px;}\r
-#datetime {width:180px;}\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#xhtmlxtras_dlg.title_del_element}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/element_common.js"></script>\r
- <script type="text/javascript" src="js/del.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="xhtmlxtrasins" style="display: none">\r
-<form onsubmit="insertDel();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
- <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td>\r
- <td>\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr> \r
- <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> \r
- <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td>\r
- <td><input id="cite" name="cite" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
- <td><input id="title" name="title" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
- <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
- <td>\r
- <select id="class" name="class" class="field mceEditableSelect">\r
- <option value="">{#not_set}</option> \r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
- <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
- <td>\r
- <select id="dir" name="dir" class="field"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
- <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" class="field" />\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label for="onfocus">onfocus</label>:</td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onblur">onblur</label>:</td> \r
- <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onclick">onclick</label>:</td> \r
- <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
- <div style="float: left">\r
- <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeDel();" style="display: none;" />\r
- </div>\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-\r
-</form>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){tinymce.create('tinymce.plugins.XHTMLXtrasPlugin',{init:function(ed,url){ed.addCommand('mceCite',function(){ed.windowManager.open({file:url+'/cite.htm',width:350+parseInt(ed.getLang('xhtmlxtras.cite_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.cite_delta_height',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAcronym',function(){ed.windowManager.open({file:url+'/acronym.htm',width:350+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.acronym_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAbbr',function(){ed.windowManager.open({file:url+'/abbr.htm',width:350+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),height:250+parseInt(ed.getLang('xhtmlxtras.abbr_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceDel',function(){ed.windowManager.open({file:url+'/del.htm',width:340+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.del_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceIns',function(){ed.windowManager.open({file:url+'/ins.htm',width:340+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),height:310+parseInt(ed.getLang('xhtmlxtras.ins_delta_width',0)),inline:1},{plugin_url:url});});ed.addCommand('mceAttributes',function(){ed.windowManager.open({file:url+'/attributes.htm',width:380,height:370,inline:1},{plugin_url:url});});ed.addButton('cite',{title:'xhtmlxtras.cite_desc',cmd:'mceCite'});ed.addButton('acronym',{title:'xhtmlxtras.acronym_desc',cmd:'mceAcronym'});ed.addButton('abbr',{title:'xhtmlxtras.abbr_desc',cmd:'mceAbbr'});ed.addButton('del',{title:'xhtmlxtras.del_desc',cmd:'mceDel'});ed.addButton('ins',{title:'xhtmlxtras.ins_desc',cmd:'mceIns'});ed.addButton('attribs',{title:'xhtmlxtras.attribs_desc',cmd:'mceAttributes'});if(tinymce.isIE){function fix(ed,o){if(o.set){o.content=o.content.replace(/<abbr([^>]+)>/gi,'<html:abbr $1>');o.content=o.content.replace(/<\/abbr>/gi,'</html:abbr>');}};ed.onBeforeSetContent.add(fix);ed.onPostProcess.add(fix);}ed.onNodeChange.add(function(ed,cm,n,co){n=ed.dom.getParent(n,'CITE,ACRONYM,ABBR,DEL,INS');cm.setDisabled('cite',co);cm.setDisabled('acronym',co);cm.setDisabled('abbr',co);cm.setDisabled('del',co);cm.setDisabled('ins',co);cm.setDisabled('attribs',n&&n.nodeName=='BODY');if(n){cm.setDisabled(n.nodeName.toLowerCase(),0);cm.setActive(n.nodeName.toLowerCase(),1);}else{cm.setActive('cite',0);cm.setActive('acronym',0);cm.setActive('abbr',0);cm.setActive('del',0);cm.setActive('ins',0);}});},getInfo:function(){return{longname:'XHTML Xtras Plugin',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('xhtmlxtras',tinymce.plugins.XHTMLXtrasPlugin);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- tinymce.create('tinymce.plugins.XHTMLXtrasPlugin', {\r
- init : function(ed, url) {\r
- // Register commands\r
- ed.addCommand('mceCite', function() {\r
- ed.windowManager.open({\r
- file : url + '/cite.htm',\r
- width : 350 + parseInt(ed.getLang('xhtmlxtras.cite_delta_width', 0)),\r
- height : 250 + parseInt(ed.getLang('xhtmlxtras.cite_delta_height', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- ed.addCommand('mceAcronym', function() {\r
- ed.windowManager.open({\r
- file : url + '/acronym.htm',\r
- width : 350 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
- height : 250 + parseInt(ed.getLang('xhtmlxtras.acronym_delta_width', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- ed.addCommand('mceAbbr', function() {\r
- ed.windowManager.open({\r
- file : url + '/abbr.htm',\r
- width : 350 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
- height : 250 + parseInt(ed.getLang('xhtmlxtras.abbr_delta_width', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- ed.addCommand('mceDel', function() {\r
- ed.windowManager.open({\r
- file : url + '/del.htm',\r
- width : 340 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
- height : 310 + parseInt(ed.getLang('xhtmlxtras.del_delta_width', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- ed.addCommand('mceIns', function() {\r
- ed.windowManager.open({\r
- file : url + '/ins.htm',\r
- width : 340 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
- height : 310 + parseInt(ed.getLang('xhtmlxtras.ins_delta_width', 0)),\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- ed.addCommand('mceAttributes', function() {\r
- ed.windowManager.open({\r
- file : url + '/attributes.htm',\r
- width : 380,\r
- height : 370,\r
- inline : 1\r
- }, {\r
- plugin_url : url\r
- });\r
- });\r
-\r
- // Register buttons\r
- ed.addButton('cite', {title : 'xhtmlxtras.cite_desc', cmd : 'mceCite'});\r
- ed.addButton('acronym', {title : 'xhtmlxtras.acronym_desc', cmd : 'mceAcronym'});\r
- ed.addButton('abbr', {title : 'xhtmlxtras.abbr_desc', cmd : 'mceAbbr'});\r
- ed.addButton('del', {title : 'xhtmlxtras.del_desc', cmd : 'mceDel'});\r
- ed.addButton('ins', {title : 'xhtmlxtras.ins_desc', cmd : 'mceIns'});\r
- ed.addButton('attribs', {title : 'xhtmlxtras.attribs_desc', cmd : 'mceAttributes'});\r
-\r
- if (tinymce.isIE) {\r
- function fix(ed, o) {\r
- if (o.set) {\r
- o.content = o.content.replace(/<abbr([^>]+)>/gi, '<html:abbr $1>');\r
- o.content = o.content.replace(/<\/abbr>/gi, '</html:abbr>');\r
- }\r
- };\r
-\r
- ed.onBeforeSetContent.add(fix);\r
- ed.onPostProcess.add(fix);\r
- }\r
-\r
- ed.onNodeChange.add(function(ed, cm, n, co) {\r
- n = ed.dom.getParent(n, 'CITE,ACRONYM,ABBR,DEL,INS');\r
-\r
- cm.setDisabled('cite', co);\r
- cm.setDisabled('acronym', co);\r
- cm.setDisabled('abbr', co);\r
- cm.setDisabled('del', co);\r
- cm.setDisabled('ins', co);\r
- cm.setDisabled('attribs', n && n.nodeName == 'BODY');\r
-\r
- if (n) {\r
- cm.setDisabled(n.nodeName.toLowerCase(), 0);\r
- cm.setActive(n.nodeName.toLowerCase(), 1);\r
- } else {\r
- cm.setActive('cite', 0);\r
- cm.setActive('acronym', 0);\r
- cm.setActive('abbr', 0);\r
- cm.setActive('del', 0);\r
- cm.setActive('ins', 0);\r
- }\r
- });\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'XHTML Xtras Plugin',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/xhtmlxtras',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- };\r
- }\r
- });\r
-\r
- // Register plugin\r
- tinymce.PluginManager.add('xhtmlxtras', tinymce.plugins.XHTMLXtrasPlugin);\r
-})();
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#xhtmlxtras_dlg.title_ins_element}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/editable_selects.js"></script>\r
- <script type="text/javascript" src="js/element_common.js"></script>\r
- <script type="text/javascript" src="js/ins.js"></script>\r
- <link rel="stylesheet" type="text/css" href="css/popup.css" />\r
- <base target="_self" />\r
-</head>\r
-<body id="xhtmlxtrasins" style="display: none">\r
-<form onsubmit="insertIns();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.general_tab}</a></span></li>\r
- <!-- <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{#xhtmlxtras_dlg.events_tab}</a></span></li> -->\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_general_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="datetimelabel" for="datetime">{#xhtmlxtras_dlg.attribute_label_datetime}</label>:</td> \r
- <td>\r
- <table border="0" cellspacing="0" cellpadding="0">\r
- <tr> \r
- <td><input id="datetime" name="datetime" type="text" value="" maxlength="19" class="field mceFocus" /></td> \r
- <td><a href="javascript:insertDateTime('datetime');" onmousedown="return false;" class="browse"><span class="datetime" alt="{#xhtmlxtras_dlg.insert_date}" title="{#xhtmlxtras_dlg.insert_date}"></span></a></td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="citelabel" for="cite">{#xhtmlxtras_dlg.attribute_label_cite}</label>:</td> \r
- <td><input id="cite" name="cite" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_attrib_tab}</legend>\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label id="titlelabel" for="title">{#xhtmlxtras_dlg.attribute_label_title}</label>:</td> \r
- <td><input id="title" name="title" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="idlabel" for="id">{#xhtmlxtras_dlg.attribute_label_id}</label>:</td> \r
- <td><input id="id" name="id" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="classlabel" for="class">{#xhtmlxtras_dlg.attribute_label_class}</label>:</td> \r
- <td>\r
- <select id="class" name="class" class="field mceEditableSelect">\r
- <option value="">{#not_set}</option> \r
- </select>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td class="label"><label id="stylelabel" for="class">{#xhtmlxtras_dlg.attribute_label_style}</label>:</td> \r
- <td><input id="style" name="style" type="text" value="" class="field" /></td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="dirlabel" for="dir">{#xhtmlxtras_dlg.attribute_label_langdir}</label>:</td> \r
- <td>\r
- <select id="dir" name="dir" class="field"> \r
- <option value="">{#not_set}</option> \r
- <option value="ltr">{#xhtmlxtras_dlg.attribute_option_ltr}</option> \r
- <option value="rtl">{#xhtmlxtras_dlg.attribute_option_rtl}</option> \r
- </select>\r
- </td> \r
- </tr>\r
- <tr>\r
- <td class="label"><label id="langlabel" for="lang">{#xhtmlxtras_dlg.attribute_label_langcode}</label>:</td> \r
- <td>\r
- <input id="lang" name="lang" type="text" value="" class="field" />\r
- </td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- <div id="events_panel" class="panel">\r
- <fieldset>\r
- <legend>{#xhtmlxtras_dlg.fieldset_events_tab}</legend>\r
-\r
- <table border="0" cellpadding="0" cellspacing="4">\r
- <tr>\r
- <td class="label"><label for="onfocus">onfocus</label>:</td> \r
- <td><input id="onfocus" name="onfocus" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onblur">onblur</label>:</td> \r
- <td><input id="onblur" name="onblur" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onclick">onclick</label>:</td> \r
- <td><input id="onclick" name="onclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="ondblclick">ondblclick</label>:</td> \r
- <td><input id="ondblclick" name="ondblclick" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousedown">onmousedown</label>:</td> \r
- <td><input id="onmousedown" name="onmousedown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseup">onmouseup</label>:</td> \r
- <td><input id="onmouseup" name="onmouseup" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseover">onmouseover</label>:</td> \r
- <td><input id="onmouseover" name="onmouseover" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmousemove">onmousemove</label>:</td> \r
- <td><input id="onmousemove" name="onmousemove" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onmouseout">onmouseout</label>:</td> \r
- <td><input id="onmouseout" name="onmouseout" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeypress">onkeypress</label>:</td> \r
- <td><input id="onkeypress" name="onkeypress" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeydown">onkeydown</label>:</td> \r
- <td><input id="onkeydown" name="onkeydown" type="text" value="" class="field" /></td> \r
- </tr>\r
-\r
- <tr>\r
- <td class="label"><label for="onkeyup">onkeyup</label>:</td> \r
- <td><input id="onkeyup" name="onkeyup" type="text" value="" class="field" /></td> \r
- </tr>\r
- </table>\r
- </fieldset>\r
- </div>\r
- </div>\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
- <div style="float: left">\r
- <input type="button" id="remove" name="remove" class="button" value="{#xhtmlxtras_dlg.remove}" onclick="removeIns();" style="display: none;" />\r
- </div>\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-\r
-</form>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
- SXE.initElementDialog('abbr');\r
- if (SXE.currentAction == "update") {\r
- SXE.showRemoveButton();\r
- }\r
-}\r
-\r
-function insertAbbr() {\r
- SXE.insertElement(tinymce.isIE ? 'html:abbr' : 'abbr');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function removeAbbr() {\r
- SXE.removeElement('abbr');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
- SXE.initElementDialog('acronym');\r
- if (SXE.currentAction == "update") {\r
- SXE.showRemoveButton();\r
- }\r
-}\r
-\r
-function insertAcronym() {\r
- SXE.insertElement('acronym');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function removeAcronym() {\r
- SXE.removeElement('acronym');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
- tinyMCEPopup.resizeToInnerSize();\r
- var inst = tinyMCEPopup.editor;\r
- var dom = inst.dom;\r
- var elm = inst.selection.getNode();\r
- var f = document.forms[0];\r
- var onclick = dom.getAttrib(elm, 'onclick');\r
-\r
- setFormValue('title', dom.getAttrib(elm, 'title'));\r
- setFormValue('id', dom.getAttrib(elm, 'id'));\r
- setFormValue('style', dom.getAttrib(elm, "style"));\r
- setFormValue('dir', dom.getAttrib(elm, 'dir'));\r
- setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
- setFormValue('tabindex', dom.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));\r
- setFormValue('accesskey', dom.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));\r
- setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
- setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
- setFormValue('onclick', onclick);\r
- setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
- setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
- setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
- setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
- setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
- setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
- setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
- setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
- setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
- className = dom.getAttrib(elm, 'class');\r
-\r
- addClassesToList('classlist', 'advlink_styles');\r
- selectByValue(f, 'classlist', className, true);\r
-\r
- TinyMCE_EditableSelects.init();\r
-}\r
-\r
-function setFormValue(name, value) {\r
- if(value && document.forms[0].elements[name]){\r
- document.forms[0].elements[name].value = value;\r
- }\r
-}\r
-\r
-function insertAction() {\r
- var inst = tinyMCEPopup.editor;\r
- var elm = inst.selection.getNode();\r
-\r
- tinyMCEPopup.execCommand("mceBeginUndoLevel"); \r
- setAllAttribs(elm);\r
- tinyMCEPopup.execCommand("mceEndUndoLevel");\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
- var formObj = document.forms[0];\r
- var valueElm = formObj.elements[attrib.toLowerCase()];\r
- var inst = tinyMCEPopup.editor;\r
- var dom = inst.dom;\r
-\r
- if (typeof(value) == "undefined" || value == null) {\r
- value = "";\r
-\r
- if (valueElm)\r
- value = valueElm.value;\r
- }\r
-\r
- if (value != "") {\r
- dom.setAttrib(elm, attrib.toLowerCase(), value);\r
-\r
- if (attrib == "style")\r
- attrib = "style.cssText";\r
-\r
- if (attrib.substring(0, 2) == 'on')\r
- value = 'return true;' + value;\r
-\r
- if (attrib == "class")\r
- attrib = "className";\r
-\r
- elm[attrib]=value;\r
- } else\r
- elm.removeAttribute(attrib);\r
-}\r
-\r
-function setAllAttribs(elm) {\r
- var f = document.forms[0];\r
-\r
- setAttrib(elm, 'title');\r
- setAttrib(elm, 'id');\r
- setAttrib(elm, 'style');\r
- setAttrib(elm, 'class', getSelectValue(f, 'classlist'));\r
- setAttrib(elm, 'dir');\r
- setAttrib(elm, 'lang');\r
- setAttrib(elm, 'tabindex');\r
- setAttrib(elm, 'accesskey');\r
- setAttrib(elm, 'onfocus');\r
- setAttrib(elm, 'onblur');\r
- setAttrib(elm, 'onclick');\r
- setAttrib(elm, 'ondblclick');\r
- setAttrib(elm, 'onmousedown');\r
- setAttrib(elm, 'onmouseup');\r
- setAttrib(elm, 'onmouseover');\r
- setAttrib(elm, 'onmousemove');\r
- setAttrib(elm, 'onmouseout');\r
- setAttrib(elm, 'onkeypress');\r
- setAttrib(elm, 'onkeydown');\r
- setAttrib(elm, 'onkeyup');\r
-\r
- // Refresh in old MSIE\r
-// if (tinyMCE.isMSIE5)\r
-// elm.outerHTML = elm.outerHTML;\r
-}\r
-\r
-function insertAttribute() {\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
-tinyMCEPopup.requireLangPack();\r
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
- SXE.initElementDialog('cite');\r
- if (SXE.currentAction == "update") {\r
- SXE.showRemoveButton();\r
- }\r
-}\r
-\r
-function insertCite() {\r
- SXE.insertElement('cite');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function removeCite() {\r
- SXE.removeElement('cite');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
- SXE.initElementDialog('del');\r
- if (SXE.currentAction == "update") {\r
- setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));\r
- setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));\r
- SXE.showRemoveButton();\r
- }\r
-}\r
-\r
-function setElementAttribs(elm) {\r
- setAllCommonAttribs(elm);\r
- setAttrib(elm, 'datetime');\r
- setAttrib(elm, 'cite');\r
-}\r
-\r
-function insertDel() {\r
- var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'DEL');\r
-\r
- tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
- if (elm == null) {\r
- var s = SXE.inst.selection.getContent();\r
- if(s.length > 0) {\r
- tinyMCEPopup.execCommand('mceInsertContent', false, '<del id="#sxe_temp_del#">' + s + '</del>');\r
- var elementArray = tinymce.grep(SXE.inst.dom.select('del'), function(n) {return n.id == '#sxe_temp_del#';});\r
- for (var i=0; i<elementArray.length; i++) {\r
- var elm = elementArray[i];\r
- setElementAttribs(elm);\r
- }\r
- }\r
- } else {\r
- setElementAttribs(elm);\r
- }\r
- tinyMCEPopup.editor.nodeChanged();\r
- tinyMCEPopup.execCommand('mceEndUndoLevel');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function removeDel() {\r
- SXE.removeElement('del');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-tinyMCEPopup.requireLangPack();\r
-\r
-function initCommonAttributes(elm) {\r
- var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom;\r
-\r
- // Setup form data for common element attributes\r
- setFormValue('title', dom.getAttrib(elm, 'title'));\r
- setFormValue('id', dom.getAttrib(elm, 'id'));\r
- selectByValue(formObj, 'class', dom.getAttrib(elm, 'class'), true);\r
- setFormValue('style', dom.getAttrib(elm, 'style'));\r
- selectByValue(formObj, 'dir', dom.getAttrib(elm, 'dir'));\r
- setFormValue('lang', dom.getAttrib(elm, 'lang'));\r
- setFormValue('onfocus', dom.getAttrib(elm, 'onfocus'));\r
- setFormValue('onblur', dom.getAttrib(elm, 'onblur'));\r
- setFormValue('onclick', dom.getAttrib(elm, 'onclick'));\r
- setFormValue('ondblclick', dom.getAttrib(elm, 'ondblclick'));\r
- setFormValue('onmousedown', dom.getAttrib(elm, 'onmousedown'));\r
- setFormValue('onmouseup', dom.getAttrib(elm, 'onmouseup'));\r
- setFormValue('onmouseover', dom.getAttrib(elm, 'onmouseover'));\r
- setFormValue('onmousemove', dom.getAttrib(elm, 'onmousemove'));\r
- setFormValue('onmouseout', dom.getAttrib(elm, 'onmouseout'));\r
- setFormValue('onkeypress', dom.getAttrib(elm, 'onkeypress'));\r
- setFormValue('onkeydown', dom.getAttrib(elm, 'onkeydown'));\r
- setFormValue('onkeyup', dom.getAttrib(elm, 'onkeyup'));\r
-}\r
-\r
-function setFormValue(name, value) {\r
- if(document.forms[0].elements[name]) document.forms[0].elements[name].value = value;\r
-}\r
-\r
-function insertDateTime(id) {\r
- document.getElementById(id).value = getDateTime(new Date(), "%Y-%m-%dT%H:%M:%S");\r
-}\r
-\r
-function getDateTime(d, fmt) {\r
- fmt = fmt.replace("%D", "%m/%d/%y");\r
- fmt = fmt.replace("%r", "%I:%M:%S %p");\r
- fmt = fmt.replace("%Y", "" + d.getFullYear());\r
- fmt = fmt.replace("%y", "" + d.getYear());\r
- fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));\r
- fmt = fmt.replace("%d", addZeros(d.getDate(), 2));\r
- fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));\r
- fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));\r
- fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));\r
- fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));\r
- fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));\r
- fmt = fmt.replace("%%", "%");\r
-\r
- return fmt;\r
-}\r
-\r
-function addZeros(value, len) {\r
- var i;\r
-\r
- value = "" + value;\r
-\r
- if (value.length < len) {\r
- for (i=0; i<(len-value.length); i++)\r
- value = "0" + value;\r
- }\r
-\r
- return value;\r
-}\r
-\r
-function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
- if (!form_obj || !form_obj.elements[field_name])\r
- return;\r
-\r
- var sel = form_obj.elements[field_name];\r
-\r
- var found = false;\r
- for (var i=0; i<sel.options.length; i++) {\r
- var option = sel.options[i];\r
-\r
- if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
- option.selected = true;\r
- found = true;\r
- } else\r
- option.selected = false;\r
- }\r
-\r
- if (!found && add_custom && value != '') {\r
- var option = new Option('Value: ' + value, value);\r
- option.selected = true;\r
- sel.options[sel.options.length] = option;\r
- }\r
-\r
- return found;\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
- var formObj = document.forms[0];\r
- var valueElm = formObj.elements[attrib.toLowerCase()];\r
- tinyMCEPopup.editor.dom.setAttrib(elm, attrib, value || valueElm.value);\r
-}\r
-\r
-function setAllCommonAttribs(elm) {\r
- setAttrib(elm, 'title');\r
- setAttrib(elm, 'id');\r
- setAttrib(elm, 'class');\r
- setAttrib(elm, 'style');\r
- setAttrib(elm, 'dir');\r
- setAttrib(elm, 'lang');\r
- /*setAttrib(elm, 'onfocus');\r
- setAttrib(elm, 'onblur');\r
- setAttrib(elm, 'onclick');\r
- setAttrib(elm, 'ondblclick');\r
- setAttrib(elm, 'onmousedown');\r
- setAttrib(elm, 'onmouseup');\r
- setAttrib(elm, 'onmouseover');\r
- setAttrib(elm, 'onmousemove');\r
- setAttrib(elm, 'onmouseout');\r
- setAttrib(elm, 'onkeypress');\r
- setAttrib(elm, 'onkeydown');\r
- setAttrib(elm, 'onkeyup');*/\r
-}\r
-\r
-SXE = {\r
- currentAction : "insert",\r
- inst : tinyMCEPopup.editor,\r
- updateElement : null\r
-}\r
-\r
-SXE.focusElement = SXE.inst.selection.getNode();\r
-\r
-SXE.initElementDialog = function(element_name) {\r
- addClassesToList('class', 'xhtmlxtras_styles');\r
- TinyMCE_EditableSelects.init();\r
-\r
- element_name = element_name.toLowerCase();\r
- var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
- if (elm != null && elm.nodeName.toUpperCase() == element_name.toUpperCase()) {\r
- SXE.currentAction = "update";\r
- }\r
-\r
- if (SXE.currentAction == "update") {\r
- initCommonAttributes(elm);\r
- SXE.updateElement = elm;\r
- }\r
-\r
- document.forms[0].insert.value = tinyMCEPopup.getLang(SXE.currentAction, 'Insert', true); \r
-}\r
-\r
-SXE.insertElement = function(element_name) {\r
- var elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase()), h, tagName;\r
-\r
- tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
- if (elm == null) {\r
- var s = SXE.inst.selection.getContent();\r
- if(s.length > 0) {\r
- tagName = element_name;\r
-\r
- if (tinymce.isIE && element_name.indexOf('html:') == 0)\r
- element_name = element_name.substring(5).toLowerCase();\r
-\r
- h = '<' + tagName + ' id="#sxe_temp_' + element_name + '#">' + s + '</' + tagName + '>';\r
-\r
- tinyMCEPopup.execCommand('mceInsertContent', false, h);\r
-\r
- var elementArray = tinymce.grep(SXE.inst.dom.select(element_name), function(n) {return n.id == '#sxe_temp_' + element_name + '#';});\r
- for (var i=0; i<elementArray.length; i++) {\r
- var elm = elementArray[i];\r
-\r
- elm.id = '';\r
- elm.setAttribute('id', '');\r
- elm.removeAttribute('id');\r
-\r
- setAllCommonAttribs(elm);\r
- }\r
- }\r
- } else {\r
- setAllCommonAttribs(elm);\r
- }\r
- SXE.inst.nodeChanged();\r
- tinyMCEPopup.execCommand('mceEndUndoLevel');\r
-}\r
-\r
-SXE.removeElement = function(element_name){\r
- element_name = element_name.toLowerCase();\r
- elm = SXE.inst.dom.getParent(SXE.focusElement, element_name.toUpperCase());\r
- if(elm && elm.nodeName.toUpperCase() == element_name.toUpperCase()){\r
- tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
- tinyMCE.execCommand('mceRemoveNode', false, elm);\r
- SXE.inst.nodeChanged();\r
- tinyMCEPopup.execCommand('mceEndUndoLevel');\r
- }\r
-}\r
-\r
-SXE.showRemoveButton = function() {\r
- document.getElementById("remove").style.display = 'block';\r
-}\r
-\r
-SXE.containsClass = function(elm,cl) {\r
- return (elm.className.indexOf(cl) > -1) ? true : false;\r
-}\r
-\r
-SXE.removeClass = function(elm,cl) {\r
- if(elm.className == null || elm.className == "" || !SXE.containsClass(elm,cl)) {\r
- return true;\r
- }\r
- var classNames = elm.className.split(" ");\r
- var newClassNames = "";\r
- for (var x = 0, cnl = classNames.length; x < cnl; x++) {\r
- if (classNames[x] != cl) {\r
- newClassNames += (classNames[x] + " ");\r
- }\r
- }\r
- elm.className = newClassNames.substring(0,newClassNames.length-1); //removes extra space at the end\r
-}\r
-\r
-SXE.addClass = function(elm,cl) {\r
- if(!SXE.containsClass(elm,cl)) elm.className ? elm.className += " " + cl : elm.className = cl;\r
- return true;\r
-}
\ No newline at end of file
+++ /dev/null
- /**\r
- * $Id: editor_plugin_src.js 42 2006-08-08 14:32:24Z spocke $\r
- *\r
- * @author Moxiecode - based on work by Andrew Tetlaw\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function init() {\r
- SXE.initElementDialog('ins');\r
- if (SXE.currentAction == "update") {\r
- setFormValue('datetime', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'datetime'));\r
- setFormValue('cite', tinyMCEPopup.editor.dom.getAttrib(SXE.updateElement, 'cite'));\r
- SXE.showRemoveButton();\r
- }\r
-}\r
-\r
-function setElementAttribs(elm) {\r
- setAllCommonAttribs(elm);\r
- setAttrib(elm, 'datetime');\r
- setAttrib(elm, 'cite');\r
-}\r
-\r
-function insertIns() {\r
- var elm = tinyMCEPopup.editor.dom.getParent(SXE.focusElement, 'INS');\r
- tinyMCEPopup.execCommand('mceBeginUndoLevel');\r
- if (elm == null) {\r
- var s = SXE.inst.selection.getContent();\r
- if(s.length > 0) {\r
- tinyMCEPopup.execCommand('mceInsertContent', false, '<ins id="#sxe_temp_ins#">' + s + '</ins>');\r
- var elementArray = tinymce.grep(SXE.inst.dom.select('ins'), function(n) {return n.id == '#sxe_temp_ins#';});\r
- for (var i=0; i<elementArray.length; i++) {\r
- var elm = elementArray[i];\r
- setElementAttribs(elm);\r
- }\r
- }\r
- } else {\r
- setElementAttribs(elm);\r
- }\r
- tinyMCEPopup.editor.nodeChanged();\r
- tinyMCEPopup.execCommand('mceEndUndoLevel');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function removeIns() {\r
- SXE.removeElement('ins');\r
- tinyMCEPopup.close();\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCE.addI18n('en.xhtmlxtras_dlg',{\r
-attribute_label_title:"Title",\r
-attribute_label_id:"ID",\r
-attribute_label_class:"Class",\r
-attribute_label_style:"Style",\r
-attribute_label_cite:"Cite",\r
-attribute_label_datetime:"Date/Time",\r
-attribute_label_langdir:"Text Direction",\r
-attribute_option_ltr:"Left to right",\r
-attribute_option_rtl:"Right to left",\r
-attribute_label_langcode:"Language",\r
-attribute_label_tabindex:"TabIndex",\r
-attribute_label_accesskey:"AccessKey",\r
-attribute_events_tab:"Events",\r
-attribute_attrib_tab:"Attributes",\r
-general_tab:"General",\r
-attrib_tab:"Attributes",\r
-events_tab:"Events",\r
-fieldset_general_tab:"General Settings",\r
-fieldset_attrib_tab:"Element Attributes",\r
-fieldset_events_tab:"Element Events",\r
-title_ins_element:"Insertion Element",\r
-title_del_element:"Deletion Element",\r
-title_acronym_element:"Acronym Element",\r
-title_abbr_element:"Abbreviation Element",\r
-title_cite_element:"Citation Element",\r
-remove:"Remove",\r
-insert_date:"Insert current date/time",\r
-option_ltr:"Left to right",\r
-option_rtl:"Right to left",\r
-attribs_title:"Insert/Edit Attributes"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advanced_dlg.about_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="js/about.js"></script>\r
-</head>\r
-<body id="about" style="display: none">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.about_general}</a></span></li>\r
- <li id="help_tab" style="display:none"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{#advanced_dlg.about_help}</a></span></li>\r
- <li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#advanced_dlg.about_plugins}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <h3>{#advanced_dlg.about_title}</h3>\r
- <p>Version: <span id="version"></span> (<span id="date"></span>)</p>\r
- <p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>\r
- by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>\r
- <p>Copyright © 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>\r
- <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>\r
-\r
- <div id="buttoncontainer">\r
- <a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a>\r
- <a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a>\r
- <a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a>\r
- </div>\r
- </div>\r
-\r
- <div id="plugins_panel" class="panel">\r
- <div id="pluginscontainer">\r
- <h3>{#advanced_dlg.about_loaded}</h3>\r
-\r
- <div id="plugintablecontainer">\r
- </div>\r
-\r
- <p> </p>\r
- </div>\r
- </div>\r
-\r
- <div id="help_panel" class="panel noscroll" style="overflow: visible;">\r
- <div id="iframecontainer"></div>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advanced_dlg.anchor_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/anchor.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body style="display: none">\r
-<form onsubmit="AnchorDialog.update();return false;" action="#">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td colspan="2" class="title">{#advanced_dlg.anchor_title}</td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap">{#advanced_dlg.anchor_name}:</td>\r
- <td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" /></td>\r
- </tr>\r
- </table>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#update}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advanced_dlg.charmap_title}</title>\r
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/charmap.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body id="charmap" style="display:none">\r
-<table align="center" border="0" cellspacing="0" cellpadding="2">\r
- <tr>\r
- <td colspan="2" class="title">{#advanced_dlg.charmap_title}</td>\r
- </tr>\r
- <tr>\r
- <td id="charmapView" rowspan="2" align="left" valign="top">\r
- <!-- Chars will be rendered here -->\r
- </td>\r
- <td width="100" align="center" valign="top">\r
- <table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px">\r
- <tr>\r
- <td id="codeV"> </td>\r
- </tr>\r
- <tr>\r
- <td id="codeN"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
- <tr>\r
- <td valign="bottom" style="padding-bottom: 3px;">\r
- <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">\r
- <tr>\r
- <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>\r
- </tr>\r
- <tr>\r
- <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center"> </td>\r
- </tr>\r
- <tr>\r
- <td style="font-size: 1px;"> </td>\r
- </tr>\r
- <tr>\r
- <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>\r
- </tr>\r
- <tr>\r
- <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center"> </td>\r
- </tr>\r
- </table>\r
- </td>\r
- </tr>\r
-</table>\r
-\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advanced_dlg.colorpicker_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="js/color_picker.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body id="colorpicker" style="display: none">\r
-<form onsubmit="insertAction();return false" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="picker_tab" class="current"><span><a href="javascript:mcTabs.displayTab('picker_tab','picker_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_picker_tab}</a></span></li>\r
- <li id="rgb_tab"><span><a href="javascript:;" onclick="generateWebColors();mcTabs.displayTab('rgb_tab','rgb_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_palette_tab}</a></span></li>\r
- <li id="named_tab"><span><a href="javascript:;" onclick="generateNamedColors();javascript:mcTabs.displayTab('named_tab','named_panel');" onmousedown="return false;">{#advanced_dlg.colorpicker_named_tab}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="picker_panel" class="panel current">\r
- <fieldset>\r
- <legend>{#advanced_dlg.colorpicker_picker_title}</legend>\r
- <div id="picker">\r
- <img id="colors" src="img/colorpicker.jpg" onclick="computeColor(event)" onmousedown="isMouseDown = true;return false;" onmouseup="isMouseDown = false;" onmousemove="if (isMouseDown && isMouseOver) computeColor(event); return false;" onmouseover="isMouseOver=true;" onmouseout="isMouseOver=false;" />\r
-\r
- <div id="light">\r
- <!-- Will be filled with divs -->\r
- </div>\r
-\r
- <br style="clear: both" />\r
- </div>\r
- </fieldset>\r
- </div>\r
-\r
- <div id="rgb_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advanced_dlg.colorpicker_palette_title}</legend>\r
- <div id="webcolors">\r
- <!-- Gets filled with web safe colors-->\r
- </div>\r
-\r
- <br style="clear: both" />\r
- </fieldset>\r
- </div>\r
-\r
- <div id="named_panel" class="panel">\r
- <fieldset>\r
- <legend>{#advanced_dlg.colorpicker_named_title}</legend>\r
- <div id="namedcolors">\r
- <!-- Gets filled with named colors-->\r
- </div>\r
-\r
- <br style="clear: both" />\r
-\r
- <div id="colornamecontainer">\r
- {#advanced_dlg.colorpicker_name} <span id="colorname"></span>\r
- </div>\r
- </fieldset>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#apply}" />\r
- </div>\r
-\r
- <div id="preview"></div>\r
-\r
- <div id="previewblock">\r
- <label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text mceFocus" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-/**
- * $Id: editor_template_src.js 901 2008-08-18 11:44:21Z spocke $
- *
- * @author Moxiecode
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
- */
-
-(function() {
- var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;
-
- // Tell it to load theme specific language pack(s)
- tinymce.ThemeManager.requireLangPack('advanced');
-
- tinymce.create('tinymce.themes.AdvancedTheme', {
- // Control name lookup, format: title, command
- controls : {
- bold : ['bold_desc', 'Bold'],
- italic : ['italic_desc', 'Italic'],
- underline : ['underline_desc', 'Underline'],
- strikethrough : ['striketrough_desc', 'Strikethrough'],
- justifyleft : ['justifyleft_desc', 'JustifyLeft'],
- justifycenter : ['justifycenter_desc', 'JustifyCenter'],
- justifyright : ['justifyright_desc', 'JustifyRight'],
- justifyfull : ['justifyfull_desc', 'JustifyFull'],
- bullist : ['bullist_desc', 'InsertUnorderedList'],
- numlist : ['numlist_desc', 'InsertOrderedList'],
- outdent : ['outdent_desc', 'Outdent'],
- indent : ['indent_desc', 'Indent'],
- cut : ['cut_desc', 'Cut'],
- copy : ['copy_desc', 'Copy'],
- paste : ['paste_desc', 'Paste'],
- undo : ['undo_desc', 'Undo'],
- redo : ['redo_desc', 'Redo'],
- link : ['link_desc', 'mceLink'],
- unlink : ['unlink_desc', 'unlink'],
- image : ['image_desc', 'mceImage'],
- cleanup : ['cleanup_desc', 'mceCleanup'],
- help : ['help_desc', 'mceHelp'],
- code : ['code_desc', 'mceCodeEditor'],
- hr : ['hr_desc', 'InsertHorizontalRule'],
- removeformat : ['removeformat_desc', 'RemoveFormat'],
- sub : ['sub_desc', 'subscript'],
- sup : ['sup_desc', 'superscript'],
- forecolor : ['forecolor_desc', 'ForeColor'],
- forecolorpicker : ['forecolor_desc', 'mceForeColor'],
- backcolor : ['backcolor_desc', 'HiliteColor'],
- backcolorpicker : ['backcolor_desc', 'mceBackColor'],
- charmap : ['charmap_desc', 'mceCharMap'],
- visualaid : ['visualaid_desc', 'mceToggleVisualAid'],
- anchor : ['anchor_desc', 'mceInsertAnchor'],
- newdocument : ['newdocument_desc', 'mceNewDocument'],
- blockquote : ['blockquote_desc', 'mceBlockQuote']
- },
-
- stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'],
-
- init : function(ed, url) {
- var t = this, s, v;
-
- t.editor = ed;
- t.url = url;
- t.onResolveName = new tinymce.util.Dispatcher(this);
-
- // Default settings
- t.settings = s = extend({
- theme_advanced_path : true,
- theme_advanced_toolbar_location : 'bottom',
- theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",
- theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",
- theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",
- theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",
- theme_advanced_toolbar_align : "center",
- 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",
- theme_advanced_font_sizes : "1,2,3,4,5,6,7",
- theme_advanced_more_colors : 1,
- theme_advanced_row_height : 23,
- theme_advanced_resize_horizontal : 1,
- theme_advanced_resizing_use_cookie : 1,
- readonly : ed.settings.readonly
- }, ed.settings);
-
- if ((v = s.theme_advanced_path_location) && v != 'none')
- s.theme_advanced_statusbar_location = s.theme_advanced_path_location;
-
- if (s.theme_advanced_statusbar_location == 'none')
- s.theme_advanced_statusbar_location = 0;
-
- // Init editor
- ed.onInit.add(function() {
- ed.onNodeChange.add(t._nodeChanged, t);
-
- if (ed.settings.content_css !== false)
- ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/" + ed.settings.skin + "/content.css"));
- });
-
- ed.onSetProgressState.add(function(ed, b, ti) {
- var co, id = ed.id, tb;
-
- if (b) {
- t.progressTimer = setTimeout(function() {
- co = ed.getContainer();
- co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);
- tb = DOM.get(ed.id + '_tbl');
-
- DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});
- DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});
- }, ti || 0);
- } else {
- DOM.remove(id + '_blocker');
- DOM.remove(id + '_progress');
- clearTimeout(t.progressTimer);
- }
- });
-
- DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui.css"));
-
- if (s.skin_variant)
- DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"));
- },
-
- createControl : function(n, cf) {
- var cd, c;
-
- if (c = cf.createControl(n))
- return c;
-
- switch (n) {
- case "styleselect":
- return this._createStyleSelect();
-
- case "formatselect":
- return this._createBlockFormats();
-
- case "fontselect":
- return this._createFontSelect();
-
- case "fontsizeselect":
- return this._createFontSizeSelect();
-
- case "forecolor":
- return this._createForeColorMenu();
-
- case "backcolor":
- return this._createBackColorMenu();
- }
-
- if ((cd = this.controls[n]))
- return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});
- },
-
- execCommand : function(cmd, ui, val) {
- var f = this['_' + cmd];
-
- if (f) {
- f.call(this, ui, val);
- return true;
- }
-
- return false;
- },
-
- _importClasses : function(e) {
- var ed = this.editor, c = ed.controlManager.get('styleselect');
-
- if (c.getLength() == 0) {
- each(ed.dom.getClasses(), function(o) {
- c.add(o['class'], o['class']);
- });
- }
- },
-
- _createStyleSelect : function(n) {
- var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', {
- title : 'advanced.style_select',
- onselect : function(v) {
- if (c.selectedValue === v) {
- ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'});
- c.select();
- return false;
- } else
- ed.execCommand('mceSetCSSClass', 0, v);
- }
- });
-
- if (c) {
- each(ed.getParam('theme_advanced_styles', '', 'hash'), function(v, k) {
- if (v)
- c.add(t.editor.translate(k), v);
- });
-
- c.onPostRender.add(function(ed, n) {
- Event.add(n.id + '_text', 'focus', t._importClasses, t);
- Event.add(n.id + '_text', 'mousedown', t._importClasses, t);
- });
- }
-
- return c;
- },
-
- _createFontSelect : function() {
- var c, t = this, ed = t.editor;
-
- c = ed.controlManager.createListBox('fontselect', {title : 'advanced.fontdefault', cmd : 'FontName'});
- if (c) {
- each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) {
- c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});
- });
- }
-
- return c;
- },
-
- _createFontSizeSelect : function() {
- var t = this, ed = t.editor, c, lo = [
- "1 (8 pt)",
- "2 (10 pt)",
- "3 (12 pt)",
- "4 (14 pt)",
- "5 (18 pt)",
- "6 (24 pt)",
- "7 (36 pt)"
- ], fz = [8, 10, 12, 14, 18, 24, 36];
-
- c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});
- if (c) {
- each(ed.getParam('theme_advanced_font_sizes', t.settings.theme_advanced_font_sizes, 'hash'), function(v, k) {
- // AVL: remove style height
- // c.add(k != v ? k : lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});
- c.add(k != v ? k : lo[parseInt(v) - 1], v, {});
- });
- }
-
- return c;
- },
-
- _createBlockFormats : function() {
- var c, fmts = {
- p : 'advanced.paragraph',
- address : 'advanced.address',
- pre : 'advanced.pre',
- h1 : 'advanced.h1',
- h2 : 'advanced.h2',
- h3 : 'advanced.h3',
- h4 : 'advanced.h4',
- h5 : 'advanced.h5',
- h6 : 'advanced.h6',
- div : 'advanced.div',
- blockquote : 'advanced.blockquote',
- code : 'advanced.code',
- dt : 'advanced.dt',
- dd : 'advanced.dd',
- samp : 'advanced.samp'
- }, t = this;
-
- c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', cmd : 'FormatBlock'});
- if (c) {
- each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) {
- c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});
- });
- }
-
- return c;
- },
-
- _createForeColorMenu : function() {
- var c, t = this, s = t.settings, o = {}, v;
-
- if (s.theme_advanced_more_colors) {
- o.more_colors_func = function() {
- t._mceColorPicker(0, {
- color : c.value,
- func : function(co) {
- c.setColor(co);
- }
- });
- };
- }
-
- if (v = s.theme_advanced_text_colors)
- o.colors = v;
-
- o.title = 'advanced.forecolor_desc';
- o.cmd = 'ForeColor';
- o.scope = this;
-
- c = t.editor.controlManager.createColorSplitButton('forecolor', o);
-
- return c;
- },
-
- _createBackColorMenu : function() {
- var c, t = this, s = t.settings, o = {}, v;
-
- if (s.theme_advanced_more_colors) {
- o.more_colors_func = function() {
- t._mceColorPicker(0, {
- color : c.value,
- func : function(co) {
- c.setColor(co);
- }
- });
- };
- }
-
- if (v = s.theme_advanced_background_colors)
- o.colors = v;
-
- o.title = 'advanced.backcolor_desc';
- o.cmd = 'HiliteColor';
- o.scope = this;
-
- c = t.editor.controlManager.createColorSplitButton('backcolor', o);
-
- return c;
- },
-
- renderUI : function(o) {
- var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;
-
- n = p = DOM.create('span', {id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});
-
- if (!DOM.boxModel)
- n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});
-
- n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});
- n = tb = DOM.add(n, 'tbody');
-
- switch ((s.theme_advanced_layout_manager || '').toLowerCase()) {
- case "rowlayout":
- ic = t._rowLayout(s, tb, o);
- break;
-
- case "customlayout":
- ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p);
- break;
-
- default:
- ic = t._simpleLayout(s, tb, o, p);
- }
-
- n = o.targetNode;
-
- // Add classes to first and last TRs
- nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8
- DOM.addClass(nl[0], 'mceFirst');
- DOM.addClass(nl[nl.length - 1], 'mceLast');
-
- // Add classes to first and last TDs
- each(DOM.select('tr', tb), function(n) {
- DOM.addClass(n.firstChild, 'mceFirst');
- DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');
- });
-
- if (DOM.get(s.theme_advanced_toolbar_container))
- DOM.get(s.theme_advanced_toolbar_container).appendChild(p);
- else
- DOM.insertAfter(p, n);
-
- Event.add(ed.id + '_path_row', 'click', function(e) {
- e = e.target;
-
- if (e.nodeName == 'A') {
- t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));
-
- return Event.cancel(e);
- }
- });
-/*
- if (DOM.get(ed.id + '_path_row')) {
- Event.add(ed.id + '_tbl', 'mouseover', function(e) {
- var re;
-
- e = e.target;
-
- if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {
- re = DOM.get(ed.id + '_path_row');
- t.lastPath = re.innerHTML;
- DOM.setHTML(re, e.parentNode.title);
- }
- });
-
- Event.add(ed.id + '_tbl', 'mouseout', function(e) {
- if (t.lastPath) {
- DOM.setHTML(ed.id + '_path_row', t.lastPath);
- t.lastPath = 0;
- }
- });
- }
-*/
-
- if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))
- Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});
-
- if (s.theme_advanced_toolbar_location == 'external')
- o.deltaHeight = 0;
-
- t.deltaHeight = o.deltaHeight;
- o.targetNode = null;
-
- return {
- iframeContainer : ic,
- editorContainer : ed.id + '_parent',
- sizeContainer : sc,
- deltaHeight : o.deltaHeight
- };
- },
-
- getInfo : function() {
- return {
- longname : 'Advanced theme',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- }
- },
-
- resizeBy : function(dw, dh) {
- var e = DOM.get(this.editor.id + '_tbl');
-
- this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);
- },
-
- resizeTo : function(w, h) {
- var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh;
-
- // Boundery fix box
- w = Math.max(s.theme_advanced_resizing_min_width || 100, w);
- h = Math.max(s.theme_advanced_resizing_min_height || 100, h);
- w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w);
- h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h);
-
- // Calc difference between iframe and container
- dh = e.clientHeight - ifr.clientHeight;
-
- // Resize iframe and container
- DOM.setStyle(ifr, 'height', h - dh);
- DOM.setStyles(e, {width : w, height : h});
- },
-
- destroy : function() {
- var id = this.editor.id;
-
- Event.clear(id + '_resize');
- Event.clear(id + '_path_row');
- Event.clear(id + '_external_close');
- },
-
- // Internal functions
-
- _simpleLayout : function(s, tb, o, p) {
- var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;
-
- if (s.readonly) {
- n = DOM.add(tb, 'tr');
- n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
- return ic;
- }
-
- // Create toolbar container at top
- if (lo == 'top')
- t._addToolbars(tb, o);
-
- // Create external toolbar
- if (lo == 'external') {
- n = c = DOM.create('div', {style : 'position:relative'});
- n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});
- DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});
- n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});
- etb = DOM.add(n, 'tbody');
-
- if (p.firstChild.className == 'mceOldBoxModel')
- p.firstChild.appendChild(c);
- else
- p.insertBefore(c, p.firstChild);
-
- t._addToolbars(etb, o);
-
- ed.onMouseUp.add(function() {
- var e = DOM.get(ed.id + '_external');
- DOM.show(e);
-
- DOM.hide(lastExtID);
-
- var f = Event.add(ed.id + '_external_close', 'click', function() {
- DOM.hide(ed.id + '_external');
- Event.remove(ed.id + '_external_close', 'click', f);
- });
-
- DOM.show(e);
- DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);
-
- // Fixes IE rendering bug
- DOM.hide(e);
- DOM.show(e);
- e.style.filter = '';
-
- lastExtID = ed.id + '_external';
-
- e = null;
- });
- }
-
- if (sl == 'top')
- t._addStatusBar(tb, o);
-
- // Create iframe container
- if (!s.theme_advanced_toolbar_container) {
- n = DOM.add(tb, 'tr');
- n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
- }
-
- // Create toolbar container at bottom
- if (lo == 'bottom')
- t._addToolbars(tb, o);
-
- if (sl == 'bottom')
- t._addStatusBar(tb, o);
-
- return ic;
- },
-
- _rowLayout : function(s, tb, o) {
- var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;
-
- dc = s.theme_advanced_containers_default_class || '';
- da = s.theme_advanced_containers_default_align || 'center';
-
- each(explode(s.theme_advanced_containers || ''), function(c, i) {
- var v = s['theme_advanced_container_' + c] || '';
-
- switch (v.toLowerCase()) {
- case 'mceeditor':
- n = DOM.add(tb, 'tr');
- n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});
- break;
-
- case 'mceelementpath':
- t._addStatusBar(tb, o);
- break;
-
- default:
- a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase();
- a = 'mce' + t._ufirst(a);
-
- n = DOM.add(DOM.add(tb, 'tr'), 'td', {
- 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da
- });
-
- to = cf.createToolbar("toolbar" + i);
- t._addControls(v, to);
- DOM.setHTML(n, to.renderHTML());
- o.deltaHeight -= s.theme_advanced_row_height;
- }
- });
-
- return ic;
- },
-
- _addControls : function(v, tb) {
- var t = this, s = t.settings, di, cf = t.editor.controlManager;
-
- if (s.theme_advanced_disable && !t._disabled) {
- di = {};
-
- each(explode(s.theme_advanced_disable), function(v) {
- di[v] = 1;
- });
-
- t._disabled = di;
- } else
- di = t._disabled;
-
- each(explode(v), function(n) {
- var c;
-
- if (di && di[n])
- return;
-
- // Compatiblity with 2.x
- if (n == 'tablecontrols') {
- each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {
- n = t.createControl(n, cf);
-
- if (n)
- tb.add(n);
- });
-
- return;
- }
-
- c = t.createControl(n, cf);
-
- if (c)
- tb.add(c);
- });
- },
-
- _addToolbars : function(c, o) {
- var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a;
-
- a = s.theme_advanced_toolbar_align.toLowerCase();
- a = 'mce' + t._ufirst(a);
-
- n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});
-
- if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))
- h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
-
- h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->'));
-
- // Create toolbar and add the controls
- for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
- tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});
-
- if (s['theme_advanced_buttons' + i + '_add'])
- v += ',' + s['theme_advanced_buttons' + i + '_add'];
-
- if (s['theme_advanced_buttons' + i + '_add_before'])
- v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v;
-
- t._addControls(v, tb);
-
- //n.appendChild(n = tb.render());
- h.push(tb.renderHTML());
-
- o.deltaHeight -= s.theme_advanced_row_height;
- }
-
- h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
- DOM.setHTML(n, h.join(''));
- },
-
- _addStatusBar : function(tb, o) {
- var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;
-
- n = DOM.add(tb, 'tr');
- n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});
- n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : ' ');
- DOM.add(n, 'a', {href : '#', accesskey : 'x'});
-
- if (s.theme_advanced_resizing && !tinymce.isOldWebKit) {
- DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'});
-
- if (s.theme_advanced_resizing_use_cookie) {
- ed.onPostRender.add(function() {
- var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');
-
- if (!o)
- return;
-
- if (s.theme_advanced_resize_horizontal)
- c.style.width = Math.max(10, o.cw) + 'px';
-
- c.style.height = Math.max(10, o.ch) + 'px';
- DOM.get(ed.id + '_ifr').style.height = Math.max(10, parseInt(o.ch) + t.deltaHeight) + 'px';
- });
- }
-
- ed.onPostRender.add(function() {
- Event.add(ed.id + '_resize', 'mousedown', function(e) {
- var c, p, w, h, n, pa;
-
- // Measure container
- c = DOM.get(ed.id + '_tbl');
- w = c.clientWidth;
- h = c.clientHeight;
-
- miw = s.theme_advanced_resizing_min_width || 100;
- mih = s.theme_advanced_resizing_min_height || 100;
- maw = s.theme_advanced_resizing_max_width || 0xFFFF;
- mah = s.theme_advanced_resizing_max_height || 0xFFFF;
-
- // Setup placeholder
- p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'});
- DOM.setStyles(p, {width : w, height : h});
-
- // Replace with placeholder
- DOM.hide(c);
- DOM.show(p);
-
- // Create internal resize obj
- r = {
- x : e.screenX,
- y : e.screenY,
- w : w,
- h : h,
- dx : null,
- dy : null
- };
-
- // Start listening
- mf = Event.add(DOM.doc, 'mousemove', function(e) {
- var w, h;
-
- // Calc delta values
- r.dx = e.screenX - r.x;
- r.dy = e.screenY - r.y;
-
- // Boundery fix box
- w = Math.max(miw, r.w + r.dx);
- h = Math.max(mih, r.h + r.dy);
- w = Math.min(maw, w);
- h = Math.min(mah, h);
-
- // Resize placeholder
- if (s.theme_advanced_resize_horizontal)
- p.style.width = w + 'px';
-
- p.style.height = h + 'px';
-
- return Event.cancel(e);
- });
-
- me = Event.add(DOM.doc, 'mouseup', function(e) {
- var ifr;
-
- // Stop listening
- Event.remove(DOM.doc, 'mousemove', mf);
- Event.remove(DOM.doc, 'mouseup', me);
-
- c.style.display = '';
- DOM.remove(p);
-
- if (r.dx === null)
- return;
-
- ifr = DOM.get(ed.id + '_ifr');
-
- if (s.theme_advanced_resize_horizontal)
- c.style.width = Math.max(10, r.w + r.dx) + 'px';
-
- c.style.height = Math.max(10, r.h + r.dy) + 'px';
- ifr.style.height = Math.max(10, ifr.clientHeight + r.dy) + 'px';
-
- if (s.theme_advanced_resizing_use_cookie) {
- Cookie.setHash("TinyMCE_" + ed.id + "_size", {
- cw : r.w + r.dx,
- ch : r.h + r.dy
- });
- }
- });
-
- return Event.cancel(e);
- });
- });
- }
-
- o.deltaHeight -= 21;
- n = tb = null;
- },
-
- _nodeChanged : function(ed, cm, n, co) {
- var t = this, p, de = 0, v, c, s = t.settings;
-
- if (s.readonly)
- return;
-
- tinymce.each(t.stateControls, function(c) {
- cm.setActive(c, ed.queryCommandState(t.controls[c][1]));
- });
-
- cm.setActive('visualaid', ed.hasVisual);
- cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing);
- cm.setDisabled('redo', !ed.undoManager.hasRedo());
- cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));
-
- p = DOM.getParent(n, 'A');
- if (c = cm.get('link')) {
- if (!p || !p.name) {
- c.setDisabled(!p && co);
- c.setActive(!!p);
- }
- }
-
- if (c = cm.get('unlink')) {
- c.setDisabled(!p && co);
- c.setActive(!!p && !p.name);
- }
-
- if (c = cm.get('anchor')) {
- c.setActive(!!p && p.name);
-
- if (tinymce.isWebKit) {
- p = DOM.getParent(n, 'IMG');
- c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a');
- }
- }
-
- p = DOM.getParent(n, 'IMG');
- if (c = cm.get('image'))
- c.setActive(!!p && n.className.indexOf('mceItem') == -1);
-
- if (c = cm.get('styleselect')) {
- if (n.className) {
- t._importClasses();
- c.select(n.className);
- } else
- c.select();
- }
-
- if (c = cm.get('formatselect')) {
- p = DOM.getParent(n, DOM.isBlock);
-
- if (p)
- c.select(p.nodeName.toLowerCase());
- }
-
- if (c = cm.get('fontselect'))
- c.select(ed.queryCommandValue('FontName'));
-
- if (c = cm.get('fontsizeselect'))
- c.select('' + ed.queryCommandValue('FontSize'));
-
- if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {
- p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});
- DOM.setHTML(p, '');
-
- ed.dom.getParent(n, function(n) {
- var na = n.nodeName.toLowerCase(), u, pi, ti = '';
-
- // Ignore non element and hidden elements
- if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))
- return;
-
- // Fake name
- if (v = DOM.getAttrib(n, 'mce_name'))
- na = v;
-
- // Handle prefix
- if (tinymce.isIE && n.scopeName !== 'HTML')
- na = n.scopeName + ':' + na;
-
- // Remove internal prefix
- na = na.replace(/mce\:/g, '');
-
- // Handle node name
- switch (na) {
- case 'b':
- na = 'strong';
- break;
-
- case 'i':
- na = 'em';
- break;
-
- case 'img':
- if (v = DOM.getAttrib(n, 'src'))
- ti += 'src: ' + v + ' ';
-
- break;
-
- case 'a':
- if (v = DOM.getAttrib(n, 'name')) {
- ti += 'name: ' + v + ' ';
- na += '#' + v;
- }
-
- if (v = DOM.getAttrib(n, 'href'))
- ti += 'href: ' + v + ' ';
-
- break;
-
- case 'font':
- if (s.convert_fonts_to_spans)
- na = 'span';
-
- if (v = DOM.getAttrib(n, 'face'))
- ti += 'font: ' + v + ' ';
-
- if (v = DOM.getAttrib(n, 'size'))
- ti += 'size: ' + v + ' ';
-
- if (v = DOM.getAttrib(n, 'color'))
- ti += 'color: ' + v + ' ';
-
- break;
-
- case 'span':
- if (v = DOM.getAttrib(n, 'style'))
- ti += 'style: ' + v + ' ';
-
- break;
- }
-
- if (v = DOM.getAttrib(n, 'id'))
- ti += 'id: ' + v + ' ';
-
- if (v = n.className) {
- v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, '');
-
- if (v && v.indexOf('mceItem') == -1) {
- ti += 'class: ' + v + ' ';
-
- if (DOM.isBlock(n) || na == 'img' || na == 'span')
- na += '.' + v;
- }
- }
-
- na = na.replace(/(html:)/g, '');
- na = {name : na, node : n, title : ti};
- t.onResolveName.dispatch(t, na);
- ti = na.title;
- na = na.name;
-
- //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";
- pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);
-
- if (p.hasChildNodes()) {
- p.insertBefore(DOM.doc.createTextNode(' \u00bb '), p.firstChild);
- p.insertBefore(pi, p.firstChild);
- } else
- p.appendChild(pi);
- }, ed.getBody());
- }
- },
-
- // Commands gets called by execCommand
-
- _sel : function(v) {
- this.editor.execCommand('mceSelectNodeDepth', false, v);
- },
-
- _mceInsertAnchor : function(ui, v) {
- var ed = this.editor;
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/anchor.htm',
- width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)),
- height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)),
- inline : true
- }, {
- theme_url : this.url
- });
- },
-
- _mceCharMap : function() {
- var ed = this.editor;
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/charmap.htm',
- width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)),
- height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)),
- inline : true
- }, {
- theme_url : this.url
- });
- },
-
- _mceHelp : function() {
- var ed = this.editor;
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/about.htm',
- width : 480,
- height : 380,
- inline : true
- }, {
- theme_url : this.url
- });
- },
-
- _mceColorPicker : function(u, v) {
- var ed = this.editor;
-
- v = v || {};
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/color_picker.htm',
- width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)),
- height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)),
- close_previous : false,
- inline : true
- }, {
- input_color : v.color,
- func : v.func,
- theme_url : this.url
- });
- },
-
- _mceCodeEditor : function(ui, val) {
- var ed = this.editor;
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/source_editor.htm',
- width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)),
- height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)),
- inline : true,
- resizable : true,
- maximizable : true
- }, {
- theme_url : this.url
- });
- },
-
- _mceImage : function(ui, val) {
- var ed = this.editor;
-
- // Internal image object like a flash placeholder
- if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
- return;
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/image.htm',
- width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)),
- height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)),
- inline : true
- }, {
- theme_url : this.url
- });
- },
-
- _mceLink : function(ui, val) {
- var ed = this.editor;
-
- ed.windowManager.open({
- url : tinymce.baseURL + '/themes/advanced/link.htm',
- width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)),
- height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)),
- inline : true
- }, {
- theme_url : this.url
- });
- },
-
- _mceNewDocument : function() {
- var ed = this.editor;
-
- ed.windowManager.confirm('advanced.newdocument', function(s) {
- if (s)
- ed.execCommand('mceSetContent', false, '');
- });
- },
-
- _mceForeColor : function() {
- var t = this;
-
- this._mceColorPicker(0, {
- color: t.fgColor,
- func : function(co) {
- t.fgColor = co;
- t.editor.execCommand('ForeColor', false, co);
- }
- });
- },
-
- _mceBackColor : function() {
- var t = this;
-
- this._mceColorPicker(0, {
- color: t.bgColor,
- func : function(co) {
- t.bgColor = co;
- t.editor.execCommand('HiliteColor', false, co);
- }
- });
- },
-
- _ufirst : function(s) {
- return s.substring(0, 1).toUpperCase() + s.substring(1);
- }
- });
-
- tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);
-}());
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_template_src.js 901 2008-08-18 11:44:21Z spocke $\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\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
- // 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;\r
- \r
- t.editor = ed;\r
- t.url = url;\r
- t.onResolveName = new tinymce.util.Dispatcher(this);\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_font_sizes : "1,2,3,4,5,6,7",\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
- readonly : ed.settings.readonly\r
- }, ed.settings);\r
-\r
- if ((v = s.theme_advanced_path_location) && v != 'none')\r
- s.theme_advanced_statusbar_location = s.theme_advanced_path_location;\r
-\r
- if (s.theme_advanced_statusbar_location == 'none')\r
- s.theme_advanced_statusbar_location = 0;\r
-\r
- // Init editor\r
- ed.onInit.add(function() {\r
- ed.onNodeChange.add(t._nodeChanged, t);\r
-\r
- if (ed.settings.content_css !== false)\r
- ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/" + ed.settings.skin + "/content.css"));\r
- });\r
-\r
- ed.onSetProgressState.add(function(ed, b, ti) {\r
- var co, id = ed.id, tb;\r
-\r
- if (b) {\r
- t.progressTimer = setTimeout(function() {\r
- co = ed.getContainer();\r
- co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild);\r
- tb = DOM.get(ed.id + '_tbl');\r
-\r
- DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}});\r
- DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}});\r
- }, ti || 0);\r
- } else {\r
- DOM.remove(id + '_blocker');\r
- DOM.remove(id + '_progress');\r
- clearTimeout(t.progressTimer);\r
- }\r
- });\r
-\r
- DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui.css"));\r
-\r
- if (s.skin_variant)\r
- DOM.loadCSS(ed.baseURI.toAbsolute(s.editor_css || "themes/advanced/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"));\r
- },\r
-\r
- createControl : function(n, cf) {\r
- var cd, c;\r
-\r
- if (c = cf.createControl(n))\r
- return c;\r
-\r
- switch (n) {\r
- case "styleselect":\r
- return this._createStyleSelect();\r
-\r
- case "formatselect":\r
- return this._createBlockFormats();\r
-\r
- case "fontselect":\r
- return this._createFontSelect();\r
-\r
- case "fontsizeselect":\r
- return this._createFontSizeSelect();\r
-\r
- case "forecolor":\r
- return this._createForeColorMenu();\r
-\r
- case "backcolor":\r
- return this._createBackColorMenu();\r
- }\r
-\r
- if ((cd = this.controls[n]))\r
- return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]});\r
- },\r
-\r
- execCommand : function(cmd, ui, val) {\r
- var f = this['_' + cmd];\r
-\r
- if (f) {\r
- f.call(this, ui, val);\r
- return true;\r
- }\r
-\r
- return false;\r
- },\r
-\r
- _importClasses : function(e) {\r
- var ed = this.editor, c = ed.controlManager.get('styleselect');\r
-\r
- if (c.getLength() == 0) {\r
- each(ed.dom.getClasses(), function(o) {\r
- c.add(o['class'], o['class']);\r
- });\r
- }\r
- },\r
-\r
- _createStyleSelect : function(n) {\r
- var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', {\r
- title : 'advanced.style_select',\r
- onselect : function(v) {\r
- if (c.selectedValue === v) {\r
- ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'});\r
- c.select();\r
- return false;\r
- } else\r
- ed.execCommand('mceSetCSSClass', 0, v);\r
- }\r
- });\r
-\r
- if (c) {\r
- each(ed.getParam('theme_advanced_styles', '', 'hash'), function(v, k) {\r
- if (v)\r
- c.add(t.editor.translate(k), v);\r
- });\r
-\r
- c.onPostRender.add(function(ed, n) {\r
- Event.add(n.id + '_text', 'focus', t._importClasses, t);\r
- Event.add(n.id + '_text', 'mousedown', t._importClasses, t);\r
- });\r
- }\r
-\r
- return c;\r
- },\r
-\r
- _createFontSelect : function() {\r
- var c, t = this, ed = t.editor;\r
-\r
- c = ed.controlManager.createListBox('fontselect', {title : 'advanced.fontdefault', cmd : 'FontName'});\r
- if (c) {\r
- each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) {\r
- c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''});\r
- });\r
- }\r
-\r
- return c;\r
- },\r
-\r
- _createFontSizeSelect : function() {\r
- var t = this, ed = t.editor, c, lo = [\r
- "1 (8 pt)",\r
- "2 (10 pt)",\r
- "3 (12 pt)",\r
- "4 (14 pt)",\r
- "5 (18 pt)",\r
- "6 (24 pt)",\r
- "7 (36 pt)"\r
- ], fz = [8, 10, 12, 14, 18, 24, 36];\r
-\r
- c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', cmd : 'FontSize'});\r
- if (c) {\r
- each(ed.getParam('theme_advanced_font_sizes', t.settings.theme_advanced_font_sizes, 'hash'), function(v, k) {\r
- // AVL: remove style height \r
- // c.add(k != v ? k : lo[parseInt(v) - 1], v, {'style' : 'font-size:' + fz[v - 1] + 'pt', 'class' : 'mceFontSize' + v});\r
- c.add(k != v ? k : lo[parseInt(v) - 1], v, {});\r
- });\r
- }\r
-\r
- return c;\r
- },\r
-\r
- _createBlockFormats : function() {\r
- var c, fmts = {\r
- p : 'advanced.paragraph',\r
- address : 'advanced.address',\r
- pre : 'advanced.pre',\r
- h1 : 'advanced.h1',\r
- h2 : 'advanced.h2',\r
- h3 : 'advanced.h3',\r
- h4 : 'advanced.h4',\r
- h5 : 'advanced.h5',\r
- h6 : 'advanced.h6',\r
- div : 'advanced.div',\r
- blockquote : 'advanced.blockquote',\r
- code : 'advanced.code',\r
- dt : 'advanced.dt',\r
- dd : 'advanced.dd',\r
- samp : 'advanced.samp'\r
- }, t = this;\r
-\r
- c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', cmd : 'FormatBlock'});\r
- if (c) {\r
- each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) {\r
- c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});\r
- });\r
- }\r
-\r
- return c;\r
- },\r
-\r
- _createForeColorMenu : function() {\r
- var c, t = this, s = t.settings, o = {}, v;\r
-\r
- if (s.theme_advanced_more_colors) {\r
- o.more_colors_func = function() {\r
- t._mceColorPicker(0, {\r
- color : c.value,\r
- func : function(co) {\r
- c.setColor(co);\r
- }\r
- });\r
- };\r
- }\r
-\r
- if (v = s.theme_advanced_text_colors)\r
- o.colors = v;\r
-\r
- o.title = 'advanced.forecolor_desc';\r
- o.cmd = 'ForeColor';\r
- o.scope = this;\r
-\r
- c = t.editor.controlManager.createColorSplitButton('forecolor', o);\r
-\r
- return c;\r
- },\r
-\r
- _createBackColorMenu : function() {\r
- var c, t = this, s = t.settings, o = {}, v;\r
-\r
- if (s.theme_advanced_more_colors) {\r
- o.more_colors_func = function() {\r
- t._mceColorPicker(0, {\r
- color : c.value,\r
- func : function(co) {\r
- c.setColor(co);\r
- }\r
- });\r
- };\r
- }\r
-\r
- if (v = s.theme_advanced_background_colors)\r
- o.colors = v;\r
-\r
- o.title = 'advanced.backcolor_desc';\r
- o.cmd = 'HiliteColor';\r
- o.scope = this;\r
-\r
- c = t.editor.controlManager.createColorSplitButton('backcolor', o);\r
-\r
- return c;\r
- },\r
-\r
- renderUI : function(o) {\r
- var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl;\r
-\r
- n = p = DOM.create('span', {id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});\r
-\r
- if (!DOM.boxModel)\r
- n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'});\r
-\r
- n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0});\r
- n = tb = DOM.add(n, 'tbody');\r
-\r
- switch ((s.theme_advanced_layout_manager || '').toLowerCase()) {\r
- case "rowlayout":\r
- ic = t._rowLayout(s, tb, o);\r
- break;\r
-\r
- case "customlayout":\r
- ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p);\r
- break;\r
-\r
- default:\r
- ic = t._simpleLayout(s, tb, o, p);\r
- }\r
-\r
- n = o.targetNode;\r
-\r
- // Add classes to first and last TRs\r
- nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8\r
- DOM.addClass(nl[0], 'mceFirst');\r
- DOM.addClass(nl[nl.length - 1], 'mceLast');\r
-\r
- // Add classes to first and last TDs\r
- each(DOM.select('tr', tb), function(n) {\r
- DOM.addClass(n.firstChild, 'mceFirst');\r
- DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast');\r
- });\r
-\r
- if (DOM.get(s.theme_advanced_toolbar_container))\r
- DOM.get(s.theme_advanced_toolbar_container).appendChild(p);\r
- else\r
- DOM.insertAfter(p, n);\r
-\r
- Event.add(ed.id + '_path_row', 'click', function(e) {\r
- e = e.target;\r
-\r
- if (e.nodeName == 'A') {\r
- t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));\r
-\r
- return Event.cancel(e);\r
- }\r
- });\r
-/*\r
- if (DOM.get(ed.id + '_path_row')) {\r
- Event.add(ed.id + '_tbl', 'mouseover', function(e) {\r
- var re;\r
- \r
- e = e.target;\r
-\r
- if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {\r
- re = DOM.get(ed.id + '_path_row');\r
- t.lastPath = re.innerHTML;\r
- DOM.setHTML(re, e.parentNode.title);\r
- }\r
- });\r
-\r
- Event.add(ed.id + '_tbl', 'mouseout', function(e) {\r
- if (t.lastPath) {\r
- DOM.setHTML(ed.id + '_path_row', t.lastPath);\r
- t.lastPath = 0;\r
- }\r
- });\r
- }\r
-*/\r
-\r
- if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
- Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();});\r
-\r
- if (s.theme_advanced_toolbar_location == 'external')\r
- o.deltaHeight = 0;\r
-\r
- t.deltaHeight = o.deltaHeight;\r
- o.targetNode = null;\r
-\r
- return {\r
- iframeContainer : ic,\r
- editorContainer : ed.id + '_parent',\r
- sizeContainer : sc,\r
- deltaHeight : o.deltaHeight\r
- };\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Advanced theme',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- }\r
- },\r
-\r
- resizeBy : function(dw, dh) {\r
- var e = DOM.get(this.editor.id + '_tbl');\r
-\r
- this.resizeTo(e.clientWidth + dw, e.clientHeight + dh);\r
- },\r
-\r
- resizeTo : function(w, h) {\r
- var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh;\r
-\r
- // Boundery fix box\r
- w = Math.max(s.theme_advanced_resizing_min_width || 100, w);\r
- h = Math.max(s.theme_advanced_resizing_min_height || 100, h);\r
- w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w);\r
- h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h);\r
-\r
- // Calc difference between iframe and container\r
- dh = e.clientHeight - ifr.clientHeight;\r
-\r
- // Resize iframe and container\r
- DOM.setStyle(ifr, 'height', h - dh);\r
- DOM.setStyles(e, {width : w, height : h});\r
- },\r
-\r
- destroy : function() {\r
- var id = this.editor.id;\r
-\r
- Event.clear(id + '_resize');\r
- Event.clear(id + '_path_row');\r
- Event.clear(id + '_external_close');\r
- },\r
-\r
- // Internal functions\r
-\r
- _simpleLayout : function(s, tb, o, p) {\r
- var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c;\r
-\r
- if (s.readonly) {\r
- n = DOM.add(tb, 'tr');\r
- n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
- return ic;\r
- }\r
-\r
- // Create toolbar container at top\r
- if (lo == 'top')\r
- t._addToolbars(tb, o);\r
-\r
- // Create external toolbar\r
- if (lo == 'external') {\r
- n = c = DOM.create('div', {style : 'position:relative'});\r
- n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'});\r
- DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'});\r
- n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0});\r
- etb = DOM.add(n, 'tbody');\r
-\r
- if (p.firstChild.className == 'mceOldBoxModel')\r
- p.firstChild.appendChild(c);\r
- else\r
- p.insertBefore(c, p.firstChild);\r
-\r
- t._addToolbars(etb, o);\r
-\r
- ed.onMouseUp.add(function() {\r
- var e = DOM.get(ed.id + '_external');\r
- DOM.show(e);\r
-\r
- DOM.hide(lastExtID);\r
-\r
- var f = Event.add(ed.id + '_external_close', 'click', function() {\r
- DOM.hide(ed.id + '_external');\r
- Event.remove(ed.id + '_external_close', 'click', f);\r
- });\r
-\r
- DOM.show(e);\r
- DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1);\r
-\r
- // Fixes IE rendering bug\r
- DOM.hide(e);\r
- DOM.show(e);\r
- e.style.filter = '';\r
-\r
- lastExtID = ed.id + '_external';\r
-\r
- e = null;\r
- });\r
- }\r
-\r
- if (sl == 'top')\r
- t._addStatusBar(tb, o);\r
-\r
- // Create iframe container\r
- if (!s.theme_advanced_toolbar_container) {\r
- n = DOM.add(tb, 'tr');\r
- n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
- }\r
-\r
- // Create toolbar container at bottom\r
- if (lo == 'bottom')\r
- t._addToolbars(tb, o);\r
-\r
- if (sl == 'bottom')\r
- t._addStatusBar(tb, o);\r
-\r
- return ic;\r
- },\r
-\r
- _rowLayout : function(s, tb, o) {\r
- var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a;\r
-\r
- dc = s.theme_advanced_containers_default_class || '';\r
- da = s.theme_advanced_containers_default_align || 'center';\r
-\r
- each(explode(s.theme_advanced_containers || ''), function(c, i) {\r
- var v = s['theme_advanced_container_' + c] || '';\r
-\r
- switch (v.toLowerCase()) {\r
- case 'mceeditor':\r
- n = DOM.add(tb, 'tr');\r
- n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'});\r
- break;\r
-\r
- case 'mceelementpath':\r
- t._addStatusBar(tb, o);\r
- break;\r
-\r
- default:\r
- a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase();\r
- a = 'mce' + t._ufirst(a);\r
-\r
- n = DOM.add(DOM.add(tb, 'tr'), 'td', {\r
- 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da\r
- });\r
-\r
- to = cf.createToolbar("toolbar" + i);\r
- t._addControls(v, to);\r
- DOM.setHTML(n, to.renderHTML());\r
- o.deltaHeight -= s.theme_advanced_row_height;\r
- }\r
- });\r
-\r
- return ic;\r
- },\r
-\r
- _addControls : function(v, tb) {\r
- var t = this, s = t.settings, di, cf = t.editor.controlManager;\r
-\r
- if (s.theme_advanced_disable && !t._disabled) {\r
- di = {};\r
-\r
- each(explode(s.theme_advanced_disable), function(v) {\r
- di[v] = 1;\r
- });\r
-\r
- t._disabled = di;\r
- } else\r
- di = t._disabled;\r
-\r
- each(explode(v), function(n) {\r
- var c;\r
-\r
- if (di && di[n])\r
- return;\r
-\r
- // Compatiblity with 2.x\r
- if (n == 'tablecontrols') {\r
- each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) {\r
- n = t.createControl(n, cf);\r
-\r
- if (n)\r
- tb.add(n);\r
- });\r
-\r
- return;\r
- }\r
-\r
- c = t.createControl(n, cf);\r
-\r
- if (c)\r
- tb.add(c);\r
- });\r
- },\r
-\r
- _addToolbars : function(c, o) {\r
- var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a;\r
-\r
- a = s.theme_advanced_toolbar_align.toLowerCase();\r
- a = 'mce' + t._ufirst(a);\r
-\r
- n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a});\r
-\r
- if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus'))\r
- h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
-\r
- h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->'));\r
-\r
- // Create toolbar and add the controls\r
- for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {\r
- tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});\r
-\r
- if (s['theme_advanced_buttons' + i + '_add'])\r
- v += ',' + s['theme_advanced_buttons' + i + '_add'];\r
-\r
- if (s['theme_advanced_buttons' + i + '_add_before'])\r
- v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v;\r
-\r
- t._addControls(v, tb);\r
-\r
- //n.appendChild(n = tb.render());\r
- h.push(tb.renderHTML());\r
-\r
- o.deltaHeight -= s.theme_advanced_row_height;\r
- }\r
-\r
- h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));\r
- DOM.setHTML(n, h.join(''));\r
- },\r
-\r
- _addStatusBar : function(tb, o) {\r
- var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;\r
-\r
- n = DOM.add(tb, 'tr');\r
- n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});\r
- n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : ' ');\r
- DOM.add(n, 'a', {href : '#', accesskey : 'x'});\r
-\r
- if (s.theme_advanced_resizing && !tinymce.isOldWebKit) {\r
- DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'});\r
-\r
- if (s.theme_advanced_resizing_use_cookie) {\r
- ed.onPostRender.add(function() {\r
- var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl');\r
-\r
- if (!o)\r
- return;\r
-\r
- if (s.theme_advanced_resize_horizontal)\r
- c.style.width = Math.max(10, o.cw) + 'px';\r
-\r
- c.style.height = Math.max(10, o.ch) + 'px';\r
- DOM.get(ed.id + '_ifr').style.height = Math.max(10, parseInt(o.ch) + t.deltaHeight) + 'px';\r
- });\r
- }\r
-\r
- ed.onPostRender.add(function() {\r
- Event.add(ed.id + '_resize', 'mousedown', function(e) {\r
- var c, p, w, h, n, pa;\r
-\r
- // Measure container\r
- c = DOM.get(ed.id + '_tbl');\r
- w = c.clientWidth;\r
- h = c.clientHeight;\r
-\r
- miw = s.theme_advanced_resizing_min_width || 100;\r
- mih = s.theme_advanced_resizing_min_height || 100;\r
- maw = s.theme_advanced_resizing_max_width || 0xFFFF;\r
- mah = s.theme_advanced_resizing_max_height || 0xFFFF;\r
-\r
- // Setup placeholder\r
- p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'});\r
- DOM.setStyles(p, {width : w, height : h});\r
-\r
- // Replace with placeholder\r
- DOM.hide(c);\r
- DOM.show(p);\r
-\r
- // Create internal resize obj\r
- r = {\r
- x : e.screenX,\r
- y : e.screenY,\r
- w : w,\r
- h : h,\r
- dx : null,\r
- dy : null\r
- };\r
-\r
- // Start listening\r
- mf = Event.add(DOM.doc, 'mousemove', function(e) {\r
- var w, h;\r
-\r
- // Calc delta values\r
- r.dx = e.screenX - r.x;\r
- r.dy = e.screenY - r.y;\r
-\r
- // Boundery fix box\r
- w = Math.max(miw, r.w + r.dx);\r
- h = Math.max(mih, r.h + r.dy);\r
- w = Math.min(maw, w);\r
- h = Math.min(mah, h);\r
-\r
- // Resize placeholder\r
- if (s.theme_advanced_resize_horizontal)\r
- p.style.width = w + 'px';\r
-\r
- p.style.height = h + 'px';\r
-\r
- return Event.cancel(e);\r
- });\r
-\r
- me = Event.add(DOM.doc, 'mouseup', function(e) {\r
- var ifr;\r
-\r
- // Stop listening\r
- Event.remove(DOM.doc, 'mousemove', mf);\r
- Event.remove(DOM.doc, 'mouseup', me);\r
-\r
- c.style.display = '';\r
- DOM.remove(p);\r
-\r
- if (r.dx === null)\r
- return;\r
-\r
- ifr = DOM.get(ed.id + '_ifr');\r
-\r
- if (s.theme_advanced_resize_horizontal)\r
- c.style.width = Math.max(10, r.w + r.dx) + 'px';\r
-\r
- c.style.height = Math.max(10, r.h + r.dy) + 'px';\r
- ifr.style.height = Math.max(10, ifr.clientHeight + r.dy) + 'px';\r
-\r
- if (s.theme_advanced_resizing_use_cookie) {\r
- Cookie.setHash("TinyMCE_" + ed.id + "_size", {\r
- cw : r.w + r.dx,\r
- ch : r.h + r.dy\r
- });\r
- }\r
- });\r
-\r
- return Event.cancel(e);\r
- });\r
- });\r
- }\r
-\r
- o.deltaHeight -= 21;\r
- n = tb = null;\r
- },\r
-\r
- _nodeChanged : function(ed, cm, n, co) {\r
- var t = this, p, de = 0, v, c, s = t.settings;\r
-\r
- if (s.readonly)\r
- return;\r
-\r
- tinymce.each(t.stateControls, function(c) {\r
- cm.setActive(c, ed.queryCommandState(t.controls[c][1]));\r
- });\r
-\r
- cm.setActive('visualaid', ed.hasVisual);\r
- cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing);\r
- cm.setDisabled('redo', !ed.undoManager.hasRedo());\r
- cm.setDisabled('outdent', !ed.queryCommandState('Outdent'));\r
-\r
- p = DOM.getParent(n, 'A');\r
- if (c = cm.get('link')) {\r
- if (!p || !p.name) {\r
- c.setDisabled(!p && co);\r
- c.setActive(!!p);\r
- }\r
- }\r
-\r
- if (c = cm.get('unlink')) {\r
- c.setDisabled(!p && co);\r
- c.setActive(!!p && !p.name);\r
- }\r
-\r
- if (c = cm.get('anchor')) {\r
- c.setActive(!!p && p.name);\r
-\r
- if (tinymce.isWebKit) {\r
- p = DOM.getParent(n, 'IMG');\r
- c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a');\r
- }\r
- }\r
-\r
- p = DOM.getParent(n, 'IMG');\r
- if (c = cm.get('image'))\r
- c.setActive(!!p && n.className.indexOf('mceItem') == -1);\r
-\r
- if (c = cm.get('styleselect')) {\r
- if (n.className) {\r
- t._importClasses();\r
- c.select(n.className);\r
- } else\r
- c.select();\r
- }\r
-\r
- if (c = cm.get('formatselect')) {\r
- p = DOM.getParent(n, DOM.isBlock);\r
-\r
- if (p)\r
- c.select(p.nodeName.toLowerCase());\r
- }\r
-\r
- if (c = cm.get('fontselect'))\r
- c.select(ed.queryCommandValue('FontName'));\r
-\r
- if (c = cm.get('fontsizeselect'))\r
- c.select('' + ed.queryCommandValue('FontSize'));\r
-\r
- if (s.theme_advanced_path && s.theme_advanced_statusbar_location) {\r
- p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'});\r
- DOM.setHTML(p, '');\r
-\r
- ed.dom.getParent(n, function(n) {\r
- var na = n.nodeName.toLowerCase(), u, pi, ti = '';\r
-\r
- // Ignore non element and hidden elements\r
- if (n.nodeType != 1 || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved')))\r
- return;\r
-\r
- // Fake name\r
- if (v = DOM.getAttrib(n, 'mce_name'))\r
- na = v;\r
- \r
- // Handle prefix\r
- if (tinymce.isIE && n.scopeName !== 'HTML')\r
- na = n.scopeName + ':' + na;\r
-\r
- // Remove internal prefix\r
- na = na.replace(/mce\:/g, '');\r
-\r
- // Handle node name\r
- switch (na) {\r
- case 'b':\r
- na = 'strong';\r
- break;\r
-\r
- case 'i':\r
- na = 'em';\r
- break;\r
-\r
- case 'img':\r
- if (v = DOM.getAttrib(n, 'src'))\r
- ti += 'src: ' + v + ' ';\r
-\r
- break;\r
-\r
- case 'a':\r
- if (v = DOM.getAttrib(n, 'name')) {\r
- ti += 'name: ' + v + ' ';\r
- na += '#' + v;\r
- }\r
-\r
- if (v = DOM.getAttrib(n, 'href'))\r
- ti += 'href: ' + v + ' ';\r
-\r
- break;\r
-\r
- case 'font':\r
- if (s.convert_fonts_to_spans)\r
- na = 'span';\r
-\r
- if (v = DOM.getAttrib(n, 'face'))\r
- ti += 'font: ' + v + ' ';\r
-\r
- if (v = DOM.getAttrib(n, 'size'))\r
- ti += 'size: ' + v + ' ';\r
-\r
- if (v = DOM.getAttrib(n, 'color'))\r
- ti += 'color: ' + v + ' ';\r
-\r
- break;\r
-\r
- case 'span':\r
- if (v = DOM.getAttrib(n, 'style'))\r
- ti += 'style: ' + v + ' ';\r
-\r
- break;\r
- }\r
-\r
- if (v = DOM.getAttrib(n, 'id'))\r
- ti += 'id: ' + v + ' ';\r
-\r
- if (v = n.className) {\r
- v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, '');\r
-\r
- if (v && v.indexOf('mceItem') == -1) {\r
- ti += 'class: ' + v + ' ';\r
-\r
- if (DOM.isBlock(n) || na == 'img' || na == 'span')\r
- na += '.' + v;\r
- }\r
- }\r
-\r
- na = na.replace(/(html:)/g, '');\r
- na = {name : na, node : n, title : ti};\r
- t.onResolveName.dispatch(t, na);\r
- ti = na.title;\r
- na = na.name;\r
-\r
- //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');";\r
- pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na);\r
-\r
- if (p.hasChildNodes()) {\r
- p.insertBefore(DOM.doc.createTextNode(' \u00bb '), p.firstChild);\r
- p.insertBefore(pi, p.firstChild);\r
- } else\r
- p.appendChild(pi);\r
- }, ed.getBody());\r
- }\r
- },\r
-\r
- // Commands gets called by execCommand\r
-\r
- _sel : function(v) {\r
- this.editor.execCommand('mceSelectNodeDepth', false, v);\r
- },\r
-\r
- _mceInsertAnchor : function(ui, v) {\r
- var ed = this.editor;\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/anchor.htm',\r
- width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)),\r
- height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)),\r
- inline : true\r
- }, {\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceCharMap : function() {\r
- var ed = this.editor;\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/charmap.htm',\r
- width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)),\r
- height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)),\r
- inline : true\r
- }, {\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceHelp : function() {\r
- var ed = this.editor;\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/about.htm',\r
- width : 480,\r
- height : 380,\r
- inline : true\r
- }, {\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceColorPicker : function(u, v) {\r
- var ed = this.editor;\r
-\r
- v = v || {};\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/color_picker.htm',\r
- width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)),\r
- height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)),\r
- close_previous : false,\r
- inline : true\r
- }, {\r
- input_color : v.color,\r
- func : v.func,\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceCodeEditor : function(ui, val) {\r
- var ed = this.editor;\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/source_editor.htm',\r
- width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)),\r
- height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)),\r
- inline : true,\r
- resizable : true,\r
- maximizable : true\r
- }, {\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceImage : function(ui, val) {\r
- var ed = this.editor;\r
-\r
- // Internal image object like a flash placeholder\r
- if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)\r
- return;\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/image.htm',\r
- width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)),\r
- height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)),\r
- inline : true\r
- }, {\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceLink : function(ui, val) {\r
- var ed = this.editor;\r
-\r
- ed.windowManager.open({\r
- url : tinymce.baseURL + '/themes/advanced/link.htm',\r
- width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)),\r
- height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)),\r
- inline : true\r
- }, {\r
- theme_url : this.url\r
- });\r
- },\r
-\r
- _mceNewDocument : function() {\r
- var ed = this.editor;\r
-\r
- ed.windowManager.confirm('advanced.newdocument', function(s) {\r
- if (s)\r
- ed.execCommand('mceSetContent', false, '');\r
- });\r
- },\r
-\r
- _mceForeColor : function() {\r
- var t = this;\r
-\r
- this._mceColorPicker(0, {\r
- color: t.fgColor,\r
- func : function(co) {\r
- t.fgColor = co;\r
- t.editor.execCommand('ForeColor', false, co);\r
- }\r
- });\r
- },\r
-\r
- _mceBackColor : function() {\r
- var t = this;\r
-\r
- this._mceColorPicker(0, {\r
- color: t.bgColor,\r
- func : function(co) {\r
- t.bgColor = co;\r
- t.editor.execCommand('HiliteColor', false, co);\r
- }\r
- });\r
- },\r
-\r
- _ufirst : function(s) {\r
- return s.substring(0, 1).toUpperCase() + s.substring(1);\r
- }\r
- });\r
-\r
- tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme);\r
-}());
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advanced_dlg.image_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="js/image.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body id="image" style="display: none">\r
-<form onsubmit="ImageDialog.update();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.image_title}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td nowrap="nowrap"><label for="src">{#advanced_dlg.image_src}</label></td>\r
- <td><table border="0" cellspacing="0" cellpadding="0">\r
- <tr>\r
- <td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td>\r
- <td id="srcbrowsercontainer"> </td>\r
- </tr>\r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td><label for="image_list">{#advanced_dlg.image_list}</label></td>\r
- <td><select id="image_list" name="image_list" onchange="document.getElementById('src').value=this.options[this.selectedIndex].value;document.getElementById('alt').value=this.options[this.selectedIndex].text;"></select></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="alt">{#advanced_dlg.image_alt}</label></td>\r
- <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="align">{#advanced_dlg.image_align}</label></td>\r
- <td><select id="align" name="align" onchange="ImageDialog.updateStyle();">\r
- <option value="">{#not_set}</option>\r
- <option value="baseline">{#advanced_dlg.image_align_baseline}</option>\r
- <option value="top">{#advanced_dlg.image_align_top}</option>\r
- <option value="middle">{#advanced_dlg.image_align_middle}</option>\r
- <option value="bottom">{#advanced_dlg.image_align_bottom}</option>\r
- <option value="text-top">{#advanced_dlg.image_align_texttop}</option>\r
- <option value="text-bottom">{#advanced_dlg.image_align_textbottom}</option>\r
- <option value="left">{#advanced_dlg.image_align_left}</option>\r
- <option value="right">{#advanced_dlg.image_align_right}</option>\r
- </select></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="width">{#advanced_dlg.image_dimensions}</label></td>\r
- <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" />\r
- x\r
- <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="border">{#advanced_dlg.image_border}</label></td>\r
- <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="vspace">{#advanced_dlg.image_vspace}</label></td>\r
- <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="hspace">{#advanced_dlg.image_hspace}</label></td>\r
- <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td>\r
- </tr>\r
- </table>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-function init() {\r
- var ed, tcont;\r
-\r
- tinyMCEPopup.resizeToInnerSize();\r
- ed = tinyMCEPopup.editor;\r
-\r
- // Give FF some time\r
- window.setTimeout('insertHelpIFrame();', 10);\r
-\r
- tcont = document.getElementById('plugintablecontainer');\r
- document.getElementById('plugins_tab').style.display = 'none';\r
-\r
- var html = "";\r
- html += '<table id="plugintable">';\r
- html += '<thead>';\r
- html += '<tr>';\r
- html += '<td>' + ed.getLang('advanced_dlg.about_plugin') + '</td>';\r
- html += '<td>' + ed.getLang('advanced_dlg.about_author') + '</td>';\r
- html += '<td>' + ed.getLang('advanced_dlg.about_version') + '</td>';\r
- html += '</tr>';\r
- html += '</thead>';\r
- html += '<tbody>';\r
-\r
- tinymce.each(ed.plugins, function(p, n) {\r
- var info;\r
-\r
- if (!p.getInfo)\r
- return;\r
-\r
- html += '<tr>';\r
-\r
- info = p.getInfo();\r
-\r
- if (info.infourl != null && info.infourl != '')\r
- html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';\r
- else\r
- html += '<td width="50%" title="' + n + '">' + info.longname + '</td>';\r
-\r
- if (info.authorurl != null && info.authorurl != '')\r
- html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';\r
- else\r
- html += '<td width="35%">' + info.author + '</td>';\r
-\r
- html += '<td width="15%">' + info.version + '</td>';\r
- html += '</tr>';\r
-\r
- document.getElementById('plugins_tab').style.display = '';\r
-\r
- });\r
-\r
- html += '</tbody>';\r
- html += '</table>';\r
-\r
- tcont.innerHTML = html;\r
-\r
- tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;\r
- tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate;\r
-}\r
-\r
-function insertHelpIFrame() {\r
- var html;\r
-\r
- if (tinyMCEPopup.getParam('docs_url')) {\r
- html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>';\r
- document.getElementById('iframecontainer').innerHTML = html;\r
- document.getElementById('help_tab').style.display = 'block';\r
- }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var AnchorDialog = {\r
- init : function(ed) {\r
- var action, elm, f = document.forms[0];\r
-\r
- this.editor = ed;\r
- elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG');\r
- v = ed.dom.getAttrib(elm, 'name');\r
-\r
- if (v) {\r
- this.action = 'update';\r
- f.anchorName.value = v;\r
- }\r
-\r
- f.insert.value = ed.getLang(elm ? 'update' : 'insert');\r
- },\r
-\r
- update : function() {\r
- var ed = this.editor;\r
- \r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (this.action != 'update')\r
- ed.selection.collapse(1);\r
-\r
- // Webkit acts weird if empty inline element is inserted so we need to use a image instead\r
- if (tinymce.isWebKit)\r
- ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}));\r
- else\r
- ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, ''));\r
-\r
- tinyMCEPopup.close();\r
- }\r
-};\r
-\r
-tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var charmap = [\r
- [' ', ' ', true, 'no-break space'],\r
- ['&', '&', true, 'ampersand'],\r
- ['"', '"', true, 'quotation mark'],\r
-// finance\r
- ['¢', '¢', true, 'cent sign'],\r
- ['€', '€', true, 'euro sign'],\r
- ['£', '£', true, 'pound sign'],\r
- ['¥', '¥', true, 'yen sign'],\r
-// signs\r
- ['©', '©', true, 'copyright sign'],\r
- ['®', '®', true, 'registered sign'],\r
- ['™', '™', true, 'trade mark sign'],\r
- ['‰', '‰', true, 'per mille sign'],\r
- ['µ', 'µ', true, 'micro sign'],\r
- ['·', '·', true, 'middle dot'],\r
- ['•', '•', true, 'bullet'],\r
- ['…', '…', true, 'three dot leader'],\r
- ['′', '′', true, 'minutes / feet'],\r
- ['″', '″', true, 'seconds / inches'],\r
- ['§', '§', true, 'section sign'],\r
- ['¶', '¶', true, 'paragraph sign'],\r
- ['ß', 'ß', true, 'sharp s / ess-zed'],\r
-// quotations\r
- ['‹', '‹', true, 'single left-pointing angle quotation mark'],\r
- ['›', '›', true, 'single right-pointing angle quotation mark'],\r
- ['«', '«', true, 'left pointing guillemet'],\r
- ['»', '»', true, 'right pointing guillemet'],\r
- ['‘', '‘', true, 'left single quotation mark'],\r
- ['’', '’', true, 'right single quotation mark'],\r
- ['“', '“', true, 'left double quotation mark'],\r
- ['”', '”', true, 'right double quotation mark'],\r
- ['‚', '‚', true, 'single low-9 quotation mark'],\r
- ['„', '„', true, 'double low-9 quotation mark'],\r
- ['<', '<', true, 'less-than sign'],\r
- ['>', '>', true, 'greater-than sign'],\r
- ['≤', '≤', true, 'less-than or equal to'],\r
- ['≥', '≥', true, 'greater-than or equal to'],\r
- ['–', '–', true, 'en dash'],\r
- ['—', '—', true, 'em dash'],\r
- ['¯', '¯', true, 'macron'],\r
- ['‾', '‾', true, 'overline'],\r
- ['¤', '¤', true, 'currency sign'],\r
- ['¦', '¦', true, 'broken bar'],\r
- ['¨', '¨', true, 'diaeresis'],\r
- ['¡', '¡', true, 'inverted exclamation mark'],\r
- ['¿', '¿', true, 'turned question mark'],\r
- ['ˆ', 'ˆ', true, 'circumflex accent'],\r
- ['˜', '˜', true, 'small tilde'],\r
- ['°', '°', true, 'degree sign'],\r
- ['−', '−', true, 'minus sign'],\r
- ['±', '±', true, 'plus-minus sign'],\r
- ['÷', '÷', true, 'division sign'],\r
- ['⁄', '⁄', true, 'fraction slash'],\r
- ['×', '×', true, 'multiplication sign'],\r
- ['¹', '¹', true, 'superscript one'],\r
- ['²', '²', true, 'superscript two'],\r
- ['³', '³', true, 'superscript three'],\r
- ['¼', '¼', true, 'fraction one quarter'],\r
- ['½', '½', true, 'fraction one half'],\r
- ['¾', '¾', true, 'fraction three quarters'],\r
-// math / logical\r
- ['ƒ', 'ƒ', true, 'function / florin'],\r
- ['∫', '∫', true, 'integral'],\r
- ['∑', '∑', true, 'n-ary sumation'],\r
- ['∞', '∞', true, 'infinity'],\r
- ['√', '√', true, 'square root'],\r
- ['∼', '∼', false,'similar to'],\r
- ['≅', '≅', false,'approximately equal to'],\r
- ['≈', '≈', true, 'almost equal to'],\r
- ['≠', '≠', true, 'not equal to'],\r
- ['≡', '≡', true, 'identical to'],\r
- ['∈', '∈', false,'element of'],\r
- ['∉', '∉', false,'not an element of'],\r
- ['∋', '∋', false,'contains as member'],\r
- ['∏', '∏', true, 'n-ary product'],\r
- ['∧', '∧', false,'logical and'],\r
- ['∨', '∨', false,'logical or'],\r
- ['¬', '¬', true, 'not sign'],\r
- ['∩', '∩', true, 'intersection'],\r
- ['∪', '∪', false,'union'],\r
- ['∂', '∂', true, 'partial differential'],\r
- ['∀', '∀', false,'for all'],\r
- ['∃', '∃', false,'there exists'],\r
- ['∅', '∅', false,'diameter'],\r
- ['∇', '∇', false,'backward difference'],\r
- ['∗', '∗', false,'asterisk operator'],\r
- ['∝', '∝', false,'proportional to'],\r
- ['∠', '∠', false,'angle'],\r
-// undefined\r
- ['´', '´', true, 'acute accent'],\r
- ['¸', '¸', true, 'cedilla'],\r
- ['ª', 'ª', true, 'feminine ordinal indicator'],\r
- ['º', 'º', true, 'masculine ordinal indicator'],\r
- ['†', '†', true, 'dagger'],\r
- ['‡', '‡', true, 'double dagger'],\r
-// alphabetical special chars\r
- ['À', 'À', true, 'A - grave'],\r
- ['Á', 'Á', true, 'A - acute'],\r
- ['Â', 'Â', true, 'A - circumflex'],\r
- ['Ã', 'Ã', true, 'A - tilde'],\r
- ['Ä', 'Ä', true, 'A - diaeresis'],\r
- ['Å', 'Å', true, 'A - ring above'],\r
- ['Æ', 'Æ', true, 'ligature AE'],\r
- ['Ç', 'Ç', true, 'C - cedilla'],\r
- ['È', 'È', true, 'E - grave'],\r
- ['É', 'É', true, 'E - acute'],\r
- ['Ê', 'Ê', true, 'E - circumflex'],\r
- ['Ë', 'Ë', true, 'E - diaeresis'],\r
- ['Ì', 'Ì', true, 'I - grave'],\r
- ['Í', 'Í', true, 'I - acute'],\r
- ['Î', 'Î', true, 'I - circumflex'],\r
- ['Ï', 'Ï', true, 'I - diaeresis'],\r
- ['Ð', 'Ð', true, 'ETH'],\r
- ['Ñ', 'Ñ', true, 'N - tilde'],\r
- ['Ò', 'Ò', true, 'O - grave'],\r
- ['Ó', 'Ó', true, 'O - acute'],\r
- ['Ô', 'Ô', true, 'O - circumflex'],\r
- ['Õ', 'Õ', true, 'O - tilde'],\r
- ['Ö', 'Ö', true, 'O - diaeresis'],\r
- ['Ø', 'Ø', true, 'O - slash'],\r
- ['Œ', 'Œ', true, 'ligature OE'],\r
- ['Š', 'Š', true, 'S - caron'],\r
- ['Ù', 'Ù', true, 'U - grave'],\r
- ['Ú', 'Ú', true, 'U - acute'],\r
- ['Û', 'Û', true, 'U - circumflex'],\r
- ['Ü', 'Ü', true, 'U - diaeresis'],\r
- ['Ý', 'Ý', true, 'Y - acute'],\r
- ['Ÿ', 'Ÿ', true, 'Y - diaeresis'],\r
- ['Þ', 'Þ', true, 'THORN'],\r
- ['à', 'à', true, 'a - grave'],\r
- ['á', 'á', true, 'a - acute'],\r
- ['â', 'â', true, 'a - circumflex'],\r
- ['ã', 'ã', true, 'a - tilde'],\r
- ['ä', 'ä', true, 'a - diaeresis'],\r
- ['å', 'å', true, 'a - ring above'],\r
- ['æ', 'æ', true, 'ligature ae'],\r
- ['ç', 'ç', true, 'c - cedilla'],\r
- ['è', 'è', true, 'e - grave'],\r
- ['é', 'é', true, 'e - acute'],\r
- ['ê', 'ê', true, 'e - circumflex'],\r
- ['ë', 'ë', true, 'e - diaeresis'],\r
- ['ì', 'ì', true, 'i - grave'],\r
- ['í', 'í', true, 'i - acute'],\r
- ['î', 'î', true, 'i - circumflex'],\r
- ['ï', 'ï', true, 'i - diaeresis'],\r
- ['ð', 'ð', true, 'eth'],\r
- ['ñ', 'ñ', true, 'n - tilde'],\r
- ['ò', 'ò', true, 'o - grave'],\r
- ['ó', 'ó', true, 'o - acute'],\r
- ['ô', 'ô', true, 'o - circumflex'],\r
- ['õ', 'õ', true, 'o - tilde'],\r
- ['ö', 'ö', true, 'o - diaeresis'],\r
- ['ø', 'ø', true, 'o slash'],\r
- ['œ', 'œ', true, 'ligature oe'],\r
- ['š', 'š', true, 's - caron'],\r
- ['ù', 'ù', true, 'u - grave'],\r
- ['ú', 'ú', true, 'u - acute'],\r
- ['û', 'û', true, 'u - circumflex'],\r
- ['ü', 'ü', true, 'u - diaeresis'],\r
- ['ý', 'ý', true, 'y - acute'],\r
- ['þ', 'þ', true, 'thorn'],\r
- ['ÿ', 'ÿ', true, 'y - diaeresis'],\r
- ['Α', 'Α', true, 'Alpha'],\r
- ['Β', 'Β', true, 'Beta'],\r
- ['Γ', 'Γ', true, 'Gamma'],\r
- ['Δ', 'Δ', true, 'Delta'],\r
- ['Ε', 'Ε', true, 'Epsilon'],\r
- ['Ζ', 'Ζ', true, 'Zeta'],\r
- ['Η', 'Η', true, 'Eta'],\r
- ['Θ', 'Θ', true, 'Theta'],\r
- ['Ι', 'Ι', true, 'Iota'],\r
- ['Κ', 'Κ', true, 'Kappa'],\r
- ['Λ', 'Λ', true, 'Lambda'],\r
- ['Μ', 'Μ', true, 'Mu'],\r
- ['Ν', 'Ν', true, 'Nu'],\r
- ['Ξ', 'Ξ', true, 'Xi'],\r
- ['Ο', 'Ο', true, 'Omicron'],\r
- ['Π', 'Π', true, 'Pi'],\r
- ['Ρ', 'Ρ', true, 'Rho'],\r
- ['Σ', 'Σ', true, 'Sigma'],\r
- ['Τ', 'Τ', true, 'Tau'],\r
- ['Υ', 'Υ', true, 'Upsilon'],\r
- ['Φ', 'Φ', true, 'Phi'],\r
- ['Χ', 'Χ', true, 'Chi'],\r
- ['Ψ', 'Ψ', true, 'Psi'],\r
- ['Ω', 'Ω', true, 'Omega'],\r
- ['α', 'α', true, 'alpha'],\r
- ['β', 'β', true, 'beta'],\r
- ['γ', 'γ', true, 'gamma'],\r
- ['δ', 'δ', true, 'delta'],\r
- ['ε', 'ε', true, 'epsilon'],\r
- ['ζ', 'ζ', true, 'zeta'],\r
- ['η', 'η', true, 'eta'],\r
- ['θ', 'θ', true, 'theta'],\r
- ['ι', 'ι', true, 'iota'],\r
- ['κ', 'κ', true, 'kappa'],\r
- ['λ', 'λ', true, 'lambda'],\r
- ['μ', 'μ', true, 'mu'],\r
- ['ν', 'ν', true, 'nu'],\r
- ['ξ', 'ξ', true, 'xi'],\r
- ['ο', 'ο', true, 'omicron'],\r
- ['π', 'π', true, 'pi'],\r
- ['ρ', 'ρ', true, 'rho'],\r
- ['ς', 'ς', true, 'final sigma'],\r
- ['σ', 'σ', true, 'sigma'],\r
- ['τ', 'τ', true, 'tau'],\r
- ['υ', 'υ', true, 'upsilon'],\r
- ['φ', 'φ', true, 'phi'],\r
- ['χ', 'χ', true, 'chi'],\r
- ['ψ', 'ψ', true, 'psi'],\r
- ['ω', 'ω', true, 'omega'],\r
-// symbols\r
- ['ℵ', 'ℵ', false,'alef symbol'],\r
- ['ϖ', 'ϖ', false,'pi symbol'],\r
- ['ℜ', 'ℜ', false,'real part symbol'],\r
- ['ϑ','ϑ', false,'theta symbol'],\r
- ['ϒ', 'ϒ', false,'upsilon - hook symbol'],\r
- ['℘', '℘', false,'Weierstrass p'],\r
- ['ℑ', 'ℑ', false,'imaginary part'],\r
-// arrows\r
- ['←', '←', true, 'leftwards arrow'],\r
- ['↑', '↑', true, 'upwards arrow'],\r
- ['→', '→', true, 'rightwards arrow'],\r
- ['↓', '↓', true, 'downwards arrow'],\r
- ['↔', '↔', true, 'left right arrow'],\r
- ['↵', '↵', false,'carriage return'],\r
- ['⇐', '⇐', false,'leftwards double arrow'],\r
- ['⇑', '⇑', false,'upwards double arrow'],\r
- ['⇒', '⇒', false,'rightwards double arrow'],\r
- ['⇓', '⇓', false,'downwards double arrow'],\r
- ['⇔', '⇔', false,'left right double arrow'],\r
- ['∴', '∴', false,'therefore'],\r
- ['⊂', '⊂', false,'subset of'],\r
- ['⊃', '⊃', false,'superset of'],\r
- ['⊄', '⊄', false,'not a subset of'],\r
- ['⊆', '⊆', false,'subset of or equal to'],\r
- ['⊇', '⊇', false,'superset of or equal to'],\r
- ['⊕', '⊕', false,'circled plus'],\r
- ['⊗', '⊗', false,'circled times'],\r
- ['⊥', '⊥', false,'perpendicular'],\r
- ['⋅', '⋅', false,'dot operator'],\r
- ['⌈', '⌈', false,'left ceiling'],\r
- ['⌉', '⌉', false,'right ceiling'],\r
- ['⌊', '⌊', false,'left floor'],\r
- ['⌋', '⌋', false,'right floor'],\r
- ['⟨', '〈', false,'left-pointing angle bracket'],\r
- ['⟩', '〉', false,'right-pointing angle bracket'],\r
- ['◊', '◊', true,'lozenge'],\r
- ['♠', '♠', false,'black spade suit'],\r
- ['♣', '♣', true, 'black club suit'],\r
- ['♥', '♥', true, 'black heart suit'],\r
- ['♦', '♦', true, 'black diamond suit'],\r
- [' ', ' ', false,'en space'],\r
- [' ', ' ', false,'em space'],\r
- [' ', ' ', false,'thin space'],\r
- ['‌', '‌', false,'zero width non-joiner'],\r
- ['‍', '‍', false,'zero width joiner'],\r
- ['‎', '‎', false,'left-to-right mark'],\r
- ['‏', '‏', false,'right-to-left mark'],\r
- ['­', '­', false,'soft hyphen']\r
-];\r
-\r
-tinyMCEPopup.onInit.add(function() {\r
- tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());\r
-});\r
-\r
-function renderCharMapHTML() {\r
- var charsPerRow = 20, tdWidth=20, tdHeight=20, i;\r
- var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';\r
- var cols=-1;\r
-\r
- for (i=0; i<charmap.length; i++) {\r
- if (charmap[i][2]==true) {\r
- cols++;\r
- html += ''\r
- + '<td class="charmap">'\r
- + '<a onmouseover="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'\r
- + charmap[i][1]\r
- + '</a></td>';\r
- if ((cols+1) % charsPerRow == 0)\r
- html += '</tr><tr height="' + tdHeight + '">';\r
- }\r
- }\r
-\r
- if (cols % charsPerRow > 0) {\r
- var padd = charsPerRow - (cols % charsPerRow);\r
- for (var i=0; i<padd-1; i++)\r
- html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>';\r
- }\r
-\r
- html += '</tr></table>';\r
-\r
- return html;\r
-}\r
-\r
-function insertChar(chr) {\r
- tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');\r
-\r
- // Refocus in window\r
- if (tinyMCEPopup.isWindow)\r
- window.focus();\r
-\r
- tinyMCEPopup.editor.focus();\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function previewChar(codeA, codeB, codeN) {\r
- var elmA = document.getElementById('codeA');\r
- var elmB = document.getElementById('codeB');\r
- var elmV = document.getElementById('codeV');\r
- var elmN = document.getElementById('codeN');\r
-\r
- if (codeA=='#160;') {\r
- elmV.innerHTML = '__';\r
- } else {\r
- elmV.innerHTML = '&' + codeA;\r
- }\r
-\r
- elmB.innerHTML = '&' + codeA;\r
- elmA.innerHTML = '&' + codeB;\r
- elmN.innerHTML = codeN;\r
-}\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false;\r
-\r
-var colors = [\r
- "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",\r
- "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",\r
- "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",\r
- "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",\r
- "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",\r
- "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",\r
- "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",\r
- "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",\r
- "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",\r
- "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",\r
- "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",\r
- "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",\r
- "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",\r
- "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",\r
- "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",\r
- "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",\r
- "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",\r
- "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",\r
- "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",\r
- "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",\r
- "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",\r
- "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",\r
- "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",\r
- "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",\r
- "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",\r
- "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",\r
- "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"\r
-];\r
-\r
-var named = {\r
- '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige',\r
- '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown',\r
- '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue',\r
- '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod',\r
- '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen',\r
- '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue',\r
- '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue',\r
- '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen',\r
- '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey',\r
- '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory',\r
- '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue',\r
- '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen',\r
- '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey',\r
- '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon',\r
- '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue',\r
- '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin',\r
- '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid',\r
- '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff',\r
- '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue',\r
- '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver',\r
- '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen',\r
- '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet',\r
- '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen'\r
-};\r
-\r
-function init() {\r
- var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color'));\r
-\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- generatePicker();\r
-\r
- if (inputColor) {\r
- changeFinalColor(inputColor);\r
-\r
- col = convertHexToRGB(inputColor);\r
-\r
- if (col)\r
- updateLight(col.r, col.g, col.b);\r
- }\r
-}\r
-\r
-function insertAction() {\r
- var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (f)\r
- f(color);\r
-\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function showColor(color, name) {\r
- if (name)\r
- document.getElementById("colorname").innerHTML = name;\r
-\r
- document.getElementById("preview").style.backgroundColor = color;\r
- document.getElementById("color").value = color.toLowerCase();\r
-}\r
-\r
-function convertRGBToHex(col) {\r
- var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
-\r
- if (!col)\r
- return col;\r
-\r
- var rgb = col.replace(re, "$1,$2,$3").split(',');\r
- if (rgb.length == 3) {\r
- r = parseInt(rgb[0]).toString(16);\r
- g = parseInt(rgb[1]).toString(16);\r
- b = parseInt(rgb[2]).toString(16);\r
-\r
- r = r.length == 1 ? '0' + r : r;\r
- g = g.length == 1 ? '0' + g : g;\r
- b = b.length == 1 ? '0' + b : b;\r
-\r
- return "#" + r + g + b;\r
- }\r
-\r
- return col;\r
-}\r
-\r
-function convertHexToRGB(col) {\r
- if (col.indexOf('#') != -1) {\r
- col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
-\r
- r = parseInt(col.substring(0, 2), 16);\r
- g = parseInt(col.substring(2, 4), 16);\r
- b = parseInt(col.substring(4, 6), 16);\r
-\r
- return {r : r, g : g, b : b};\r
- }\r
-\r
- return null;\r
-}\r
-\r
-function generatePicker() {\r
- var el = document.getElementById('light'), h = '', i;\r
-\r
- for (i = 0; i < detail; i++){\r
- h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"'\r
- + ' onclick="changeFinalColor(this.style.backgroundColor)"'\r
- + ' onmousedown="isMouseDown = true; return false;"'\r
- + ' onmouseup="isMouseDown = false;"'\r
- + ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"'\r
- + ' onmouseover="isMouseOver = true;"'\r
- + ' onmouseout="isMouseOver = false;"'\r
- + '></div>';\r
- }\r
-\r
- el.innerHTML = h;\r
-}\r
-\r
-function generateWebColors() {\r
- var el = document.getElementById('webcolors'), h = '', i;\r
-\r
- if (el.className == 'generated')\r
- return;\r
-\r
- h += '<table border="0" cellspacing="1" cellpadding="0">'\r
- + '<tr>';\r
-\r
- for (i=0; i<colors.length; i++) {\r
- h += '<td bgcolor="' + colors[i] + '" width="10" height="10">'\r
- + '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');" style="display:block;width:10px;height:10px;overflow:hidden;">'\r
- + '</a></td>';\r
- if ((i+1) % 18 == 0)\r
- h += '</tr><tr>';\r
- }\r
-\r
- h += '</table>';\r
-\r
- el.innerHTML = h;\r
- el.className = 'generated';\r
-}\r
-\r
-function generateNamedColors() {\r
- var el = document.getElementById('namedcolors'), h = '', n, v, i = 0;\r
-\r
- if (el.className == 'generated')\r
- return;\r
-\r
- for (n in named) {\r
- v = named[n];\r
- h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n + '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>'\r
- }\r
-\r
- el.innerHTML = h;\r
- el.className = 'generated';\r
-}\r
-\r
-function dechex(n) {\r
- return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16);\r
-}\r
-\r
-function computeColor(e) {\r
- var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB;\r
-\r
- x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0);\r
- y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0);\r
-\r
- partWidth = document.getElementById('colors').width / 6;\r
- partDetail = detail / 2;\r
- imHeight = document.getElementById('colors').height;\r
-\r
- r = (x >= 0)*(x < partWidth)*255 + (x >= partWidth)*(x < 2*partWidth)*(2*255 - x * 255 / partWidth) + (x >= 4*partWidth)*(x < 5*partWidth)*(-4*255 + x * 255 / partWidth) + (x >= 5*partWidth)*(x < 6*partWidth)*255;\r
- g = (x >= 0)*(x < partWidth)*(x * 255 / partWidth) + (x >= partWidth)*(x < 3*partWidth)*255 + (x >= 3*partWidth)*(x < 4*partWidth)*(4*255 - x * 255 / partWidth);\r
- b = (x >= 2*partWidth)*(x < 3*partWidth)*(-2*255 + x * 255 / partWidth) + (x >= 3*partWidth)*(x < 5*partWidth)*255 + (x >= 5*partWidth)*(x < 6*partWidth)*(6*255 - x * 255 / partWidth);\r
-\r
- coef = (imHeight - y) / imHeight;\r
- r = 128 + (r - 128) * coef;\r
- g = 128 + (g - 128) * coef;\r
- b = 128 + (b - 128) * coef;\r
-\r
- changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b));\r
- updateLight(r, g, b);\r
-}\r
-\r
-function updateLight(r, g, b) {\r
- var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color;\r
-\r
- for (i=0; i<detail; i++) {\r
- if ((i>=0) && (i<partDetail)) {\r
- finalCoef = i / partDetail;\r
- finalR = dechex(255 - (255 - r) * finalCoef);\r
- finalG = dechex(255 - (255 - g) * finalCoef);\r
- finalB = dechex(255 - (255 - b) * finalCoef);\r
- } else {\r
- finalCoef = 2 - i / partDetail;\r
- finalR = dechex(r * finalCoef);\r
- finalG = dechex(g * finalCoef);\r
- finalB = dechex(b * finalCoef);\r
- }\r
-\r
- color = finalR + finalG + finalB;\r
-\r
- setCol('gs' + i, '#'+color);\r
- }\r
-}\r
-\r
-function changeFinalColor(color) {\r
- if (color.indexOf('#') == -1)\r
- color = convertRGBToHex(color);\r
-\r
- setCol('preview', color);\r
- document.getElementById('color').value = color;\r
-}\r
-\r
-function setCol(e, c) {\r
- try {\r
- document.getElementById(e).style.backgroundColor = c;\r
- } catch (ex) {\r
- // Ignore IE warning\r
- }\r
-}\r
-\r
-tinyMCEPopup.onInit.add(init);\r
+++ /dev/null
-var ImageDialog = {\r
- preInit : function() {\r
- var url;\r
-\r
- tinyMCEPopup.requireLangPack();\r
-\r
- if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
- },\r
-\r
- init : function() {\r
- var f = document.forms[0], ed = tinyMCEPopup.editor;\r
-\r
- // Setup browse button\r
- document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
- if (isVisible('srcbrowser'))\r
- document.getElementById('src').style.width = '180px';\r
-\r
- e = ed.selection.getNode();\r
-\r
- this.fillFileList('image_list', 'tinyMCEImageList');\r
-\r
- if (e.nodeName == 'IMG') {\r
- f.src.value = ed.dom.getAttrib(e, 'src');\r
- f.alt.value = ed.dom.getAttrib(e, 'alt');\r
- f.border.value = this.getAttrib(e, 'border');\r
- f.vspace.value = this.getAttrib(e, 'vspace');\r
- f.hspace.value = this.getAttrib(e, 'hspace');\r
- f.width.value = ed.dom.getAttrib(e, 'width');\r
- f.height.value = ed.dom.getAttrib(e, 'height');\r
- f.insert.value = ed.getLang('update');\r
- this.styleVal = ed.dom.getAttrib(e, 'style');\r
- selectByValue(f, 'image_list', f.src.value);\r
- selectByValue(f, 'align', this.getAttrib(e, 'align'));\r
- this.updateStyle();\r
- }\r
- },\r
-\r
- fillFileList : function(id, l) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
- l = window[l];\r
-\r
- if (l && l.length > 0) {\r
- lst.options[lst.options.length] = new Option('', '');\r
-\r
- tinymce.each(l, function(o) {\r
- lst.options[lst.options.length] = new Option(o[0], o[1]);\r
- });\r
- } else\r
- dom.remove(dom.getParent(id, 'tr'));\r
- },\r
-\r
- update : function() {\r
- var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (f.src.value === '') {\r
- if (ed.selection.getNode().nodeName == 'IMG') {\r
- ed.dom.remove(ed.selection.getNode());\r
- ed.execCommand('mceRepaint');\r
- }\r
-\r
- tinyMCEPopup.close();\r
- return;\r
- }\r
-\r
- if (!ed.settings.inline_styles) {\r
- args = tinymce.extend(args, {\r
- vspace : nl.vspace.value,\r
- hspace : nl.hspace.value,\r
- border : nl.border.value,\r
- align : getSelectValue(f, 'align')\r
- });\r
- } else\r
- args.style = this.styleVal;\r
-\r
- tinymce.extend(args, {\r
- src : f.src.value,\r
- alt : f.alt.value,\r
- width : f.width.value,\r
- height : f.height.value\r
- });\r
-\r
- el = ed.selection.getNode();\r
-\r
- if (el && el.nodeName == 'IMG') {\r
- ed.dom.setAttribs(el, args);\r
- } else {\r
- ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1});\r
- ed.dom.setAttribs('__mce_tmp', args);\r
- ed.dom.setAttrib('__mce_tmp', 'id', '');\r
- ed.undoManager.add();\r
- }\r
-\r
- tinyMCEPopup.close();\r
- },\r
-\r
- updateStyle : function() {\r
- var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];\r
-\r
- if (tinyMCEPopup.editor.settings.inline_styles) {\r
- st = tinyMCEPopup.dom.parseStyle(this.styleVal);\r
-\r
- // Handle align\r
- v = getSelectValue(f, 'align');\r
- if (v) {\r
- if (v == 'left' || v == 'right') {\r
- st['float'] = v;\r
- delete st['vertical-align'];\r
- } else {\r
- st['vertical-align'] = v;\r
- delete st['float'];\r
- }\r
- } else {\r
- delete st['float'];\r
- delete st['vertical-align'];\r
- }\r
-\r
- // Handle border\r
- v = f.border.value;\r
- if (v || v == '0') {\r
- if (v == '0')\r
- st['border'] = '0';\r
- else\r
- st['border'] = v + 'px solid black';\r
- } else\r
- delete st['border'];\r
-\r
- // Handle hspace\r
- v = f.hspace.value;\r
- if (v) {\r
- delete st['margin'];\r
- st['margin-left'] = v + 'px';\r
- st['margin-right'] = v + 'px';\r
- } else {\r
- delete st['margin-left'];\r
- delete st['margin-right'];\r
- }\r
-\r
- // Handle vspace\r
- v = f.vspace.value;\r
- if (v) {\r
- delete st['margin'];\r
- st['margin-top'] = v + 'px';\r
- st['margin-bottom'] = v + 'px';\r
- } else {\r
- delete st['margin-top'];\r
- delete st['margin-bottom'];\r
- }\r
-\r
- // Merge\r
- st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st));\r
- this.styleVal = dom.serializeStyle(st);\r
- }\r
- },\r
-\r
- getAttrib : function(e, at) {\r
- var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
-\r
- if (ed.settings.inline_styles) {\r
- switch (at) {\r
- case 'align':\r
- if (v = dom.getStyle(e, 'float'))\r
- return v;\r
-\r
- if (v = dom.getStyle(e, 'vertical-align'))\r
- return v;\r
-\r
- break;\r
-\r
- case 'hspace':\r
- v = dom.getStyle(e, 'margin-left')\r
- v2 = dom.getStyle(e, 'margin-right');\r
- if (v && v == v2)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
-\r
- case 'vspace':\r
- v = dom.getStyle(e, 'margin-top')\r
- v2 = dom.getStyle(e, 'margin-bottom');\r
- if (v && v == v2)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
-\r
- case 'border':\r
- v = 0;\r
-\r
- tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
- sv = dom.getStyle(e, 'border-' + sv + '-width');\r
-\r
- // False or not the same as prev\r
- if (!sv || (sv != v && v !== 0)) {\r
- v = 0;\r
- return false;\r
- }\r
-\r
- if (sv)\r
- v = sv;\r
- });\r
-\r
- if (v)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
- }\r
- }\r
-\r
- if (v = dom.getAttrib(e, at))\r
- return v;\r
-\r
- return '';\r
- },\r
-\r
- resetImageData : function() {\r
- var f = document.forms[0];\r
-\r
- f.width.value = f.height.value = ""; \r
- },\r
-\r
- updateImageData : function() {\r
- var f = document.forms[0], t = ImageDialog;\r
-\r
- if (f.width.value == "")\r
- f.width.value = t.preloadImg.width;\r
-\r
- if (f.height.value == "")\r
- f.height.value = t.preloadImg.height;\r
- },\r
-\r
- getImageData : function() {\r
- var f = document.forms[0];\r
-\r
- this.preloadImg = new Image();\r
- this.preloadImg.onload = this.updateImageData;\r
- this.preloadImg.onerror = this.resetImageData;\r
- this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);\r
- }\r
-};\r
-\r
-ImageDialog.preInit();\r
-tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-\r
-var LinkDialog = {\r
- preInit : function() {\r
- var url;\r
-\r
- if (url = tinyMCEPopup.getParam("external_link_list_url"))\r
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
- },\r
-\r
- init : function() {\r
- var f = document.forms[0], ed = tinyMCEPopup.editor;\r
-\r
- // Setup browse button\r
- document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link');\r
- if (isVisible('hrefbrowser'))\r
- document.getElementById('href').style.width = '180px';\r
-\r
- this.fillClassList('class_list');\r
- this.fillFileList('link_list', 'tinyMCELinkList');\r
- this.fillTargetList('target_list');\r
-\r
- if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) {\r
- f.href.value = ed.dom.getAttrib(e, 'href');\r
- f.linktitle.value = ed.dom.getAttrib(e, 'title');\r
- f.insert.value = ed.getLang('update');\r
- selectByValue(f, 'link_list', f.href.value);\r
- selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target'));\r
- selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class'));\r
- }\r
- },\r
-\r
- update : function() {\r
- var f = document.forms[0], ed = tinyMCEPopup.editor, e, b;\r
-\r
- tinyMCEPopup.restoreSelection();\r
- e = ed.dom.getParent(ed.selection.getNode(), 'A');\r
-\r
- // Remove element if there is no href\r
- if (!f.href.value) {\r
- if (e) {\r
- tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
- b = ed.selection.getBookmark();\r
- ed.dom.remove(e, 1);\r
- ed.selection.moveToBookmark(b);\r
- tinyMCEPopup.execCommand("mceEndUndoLevel");\r
- tinyMCEPopup.close();\r
- return;\r
- }\r
- }\r
-\r
- tinyMCEPopup.execCommand("mceBeginUndoLevel");\r
-\r
- // Create new anchor elements\r
- if (e == null) {\r
- tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1});\r
-\r
- tinymce.each(ed.dom.select("a"), function(n) {\r
- if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {\r
- e = n;\r
-\r
- ed.dom.setAttribs(e, {\r
- href : f.href.value,\r
- title : f.linktitle.value,\r
- target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
- 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
- });\r
- }\r
- });\r
- } else {\r
- ed.dom.setAttribs(e, {\r
- href : f.href.value,\r
- title : f.linktitle.value,\r
- target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null,\r
- 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null\r
- });\r
- }\r
-\r
- // Don't move caret if selection was image\r
- if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') {\r
- ed.focus();\r
- ed.selection.select(e);\r
- ed.selection.collapse(0);\r
- tinyMCEPopup.storeSelection();\r
- }\r
-\r
- tinyMCEPopup.execCommand("mceEndUndoLevel");\r
- tinyMCEPopup.close();\r
- },\r
-\r
- checkPrefix : function(n) {\r
- if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email')))\r
- n.value = 'mailto:' + n.value;\r
-\r
- if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external')))\r
- n.value = 'http://' + n.value;\r
- },\r
-\r
- fillFileList : function(id, l) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
- l = window[l];\r
-\r
- if (l && l.length > 0) {\r
- lst.options[lst.options.length] = new Option('', '');\r
-\r
- tinymce.each(l, function(o) {\r
- lst.options[lst.options.length] = new Option(o[0], o[1]);\r
- });\r
- } else\r
- dom.remove(dom.getParent(id, 'tr'));\r
- },\r
-\r
- fillClassList : function(id) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
- if (v = tinyMCEPopup.getParam('theme_advanced_styles')) {\r
- cl = [];\r
-\r
- tinymce.each(v.split(';'), function(v) {\r
- var p = v.split('=');\r
-\r
- cl.push({'title' : p[0], 'class' : p[1]});\r
- });\r
- } else\r
- cl = tinyMCEPopup.editor.dom.getClasses();\r
-\r
- if (cl.length > 0) {\r
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
-\r
- tinymce.each(cl, function(o) {\r
- lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']);\r
- });\r
- } else\r
- dom.remove(dom.getParent(id, 'tr'));\r
- },\r
-\r
- fillTargetList : function(id) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v;\r
-\r
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), '');\r
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self');\r
- lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank');\r
-\r
- if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) {\r
- tinymce.each(v.split(','), function(v) {\r
- v = v.split('=');\r
- lst.options[lst.options.length] = new Option(v[0], v[1]);\r
- });\r
- }\r
- }\r
-};\r
-\r
-LinkDialog.preInit();\r
-tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog);\r
+++ /dev/null
-tinyMCEPopup.requireLangPack();\r
-tinyMCEPopup.onInit.add(onLoadInit);\r
-\r
-function saveContent() {\r
- tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value);\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function onLoadInit() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- // Remove Gecko spellchecking\r
- if (tinymce.isGecko)\r
- document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck");\r
-\r
- document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent();\r
-\r
- if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {\r
- setWrap('soft');\r
- document.getElementById('wraped').checked = true;\r
- }\r
-\r
- resizeInputs();\r
-}\r
-\r
-function setWrap(val) {\r
- var v, n, s = document.getElementById('htmlSource');\r
-\r
- s.wrap = val;\r
-\r
- if (!tinymce.isIE) {\r
- v = s.value;\r
- n = s.cloneNode(false);\r
- n.setAttribute("wrap", val);\r
- s.parentNode.replaceChild(n, s);\r
- n.value = v;\r
- }\r
-}\r
-\r
-function toggleWordWrap(elm) {\r
- if (elm.checked)\r
- setWrap('soft');\r
- else\r
- setWrap('off');\r
-}\r
-\r
-var wHeight=0, wWidth=0, owHeight=0, owWidth=0;\r
-\r
-function resizeInputs() {\r
- var el = document.getElementById('htmlSource');\r
-\r
- if (!tinymce.isIE) {\r
- wHeight = self.innerHeight - 65;\r
- wWidth = self.innerWidth - 16;\r
- } else {\r
- wHeight = document.body.clientHeight - 70;\r
- wWidth = document.body.clientWidth - 16;\r
- }\r
-\r
- el.style.height = Math.abs(wHeight) + 'px';\r
- el.style.width = Math.abs(wWidth) + 'px';\r
-}\r
+++ /dev/null
-tinyMCE.addI18n('en.advanced',{\r
-style_select:"Styles",\r
-font_size:"Font size",\r
-fontdefault:"Font family",\r
-block:"Format",\r
-paragraph:"Paragraph",\r
-div:"Div",\r
-address:"Address",\r
-pre:"Preformatted",\r
-h1:"Heading 1",\r
-h2:"Heading 2",\r
-h3:"Heading 3",\r
-h4:"Heading 4",\r
-h5:"Heading 5",\r
-h6:"Heading 6",\r
-blockquote:"Blockquote",\r
-code:"Code",\r
-samp:"Code sample",\r
-dt:"Definition term ",\r
-dd:"Definition description",\r
-bold_desc:"Bold (Ctrl+B)",\r
-italic_desc:"Italic (Ctrl+I)",\r
-underline_desc:"Underline (Ctrl+U)",\r
-striketrough_desc:"Strikethrough",\r
-justifyleft_desc:"Align left",\r
-justifycenter_desc:"Align center",\r
-justifyright_desc:"Align right",\r
-justifyfull_desc:"Align full",\r
-bullist_desc:"Unordered list",\r
-numlist_desc:"Ordered list",\r
-outdent_desc:"Outdent",\r
-indent_desc:"Indent",\r
-undo_desc:"Undo (Ctrl+Z)",\r
-redo_desc:"Redo (Ctrl+Y)",\r
-link_desc:"Insert/edit link",\r
-unlink_desc:"Unlink",\r
-image_desc:"Insert/edit image",\r
-cleanup_desc:"Cleanup messy code",\r
-code_desc:"Edit HTML Source",\r
-sub_desc:"Subscript",\r
-sup_desc:"Superscript",\r
-hr_desc:"Insert horizontal ruler",\r
-removeformat_desc:"Remove formatting",\r
-custom1_desc:"Your custom description here",\r
-forecolor_desc:"Select text color",\r
-backcolor_desc:"Select background color",\r
-charmap_desc:"Insert custom character",\r
-visualaid_desc:"Toggle guidelines/invisible elements",\r
-anchor_desc:"Insert/edit anchor",\r
-cut_desc:"Cut",\r
-copy_desc:"Copy",\r
-paste_desc:"Paste",\r
-image_props_desc:"Image properties",\r
-newdocument_desc:"New document",\r
-help_desc:"Help",\r
-blockquote_desc:"Blockquote",\r
-clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?",\r
-path:"Path",\r
-newdocument:"Are you sure you want clear all contents?",\r
-toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",\r
-more_colors:"More colors"\r
-});
\ No newline at end of file
+++ /dev/null
-tinyMCE.addI18n('en.advanced_dlg',{\r
-about_title:"About TinyMCE",\r
-about_general:"About",\r
-about_help:"Help",\r
-about_license:"License",\r
-about_plugins:"Plugins",\r
-about_plugin:"Plugin",\r
-about_author:"Author",\r
-about_version:"Version",\r
-about_loaded:"Loaded plugins",\r
-anchor_title:"Insert/edit anchor",\r
-anchor_name:"Anchor name",\r
-code_title:"HTML Source Editor",\r
-code_wordwrap:"Word wrap",\r
-colorpicker_title:"Select a color",\r
-colorpicker_picker_tab:"Picker",\r
-colorpicker_picker_title:"Color picker",\r
-colorpicker_palette_tab:"Palette",\r
-colorpicker_palette_title:"Palette colors",\r
-colorpicker_named_tab:"Named",\r
-colorpicker_named_title:"Named colors",\r
-colorpicker_color:"Color:",\r
-colorpicker_name:"Name:",\r
-charmap_title:"Select custom character",\r
-image_title:"Insert/edit image",\r
-image_src:"Image URL",\r
-image_alt:"Image description",\r
-image_list:"Image list",\r
-image_border:"Border",\r
-image_dimensions:"Dimensions",\r
-image_vspace:"Vertical space",\r
-image_hspace:"Horizontal space",\r
-image_align:"Alignment",\r
-image_align_baseline:"Baseline",\r
-image_align_top:"Top",\r
-image_align_middle:"Middle",\r
-image_align_bottom:"Bottom",\r
-image_align_texttop:"Text top",\r
-image_align_textbottom:"Text bottom",\r
-image_align_left:"Left",\r
-image_align_right:"Right",\r
-link_title:"Insert/edit link",\r
-link_url:"Link URL",\r
-link_target:"Target",\r
-link_target_same:"Open link in the same window",\r
-link_target_blank:"Open link in a new window",\r
-link_titlefield:"Title",\r
-link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?",\r
-link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?",\r
-link_list:"Link list"\r
-});
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <title>{#advanced_dlg.link_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="../../utils/mctabs.js"></script>\r
- <script type="text/javascript" src="../../utils/form_utils.js"></script>\r
- <script type="text/javascript" src="../../utils/validate.js"></script>\r
- <script type="text/javascript" src="js/link.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body id="link" style="display: none">\r
-<form onsubmit="LinkDialog.update();return false;" action="#">\r
- <div class="tabs">\r
- <ul>\r
- <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#advanced_dlg.link_title}</a></span></li>\r
- </ul>\r
- </div>\r
-\r
- <div class="panel_wrapper">\r
- <div id="general_panel" class="panel current">\r
-\r
- <table border="0" cellpadding="4" cellspacing="0">\r
- <tr>\r
- <td nowrap="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td>\r
- <td><table border="0" cellspacing="0" cellpadding="0"> \r
- <tr> \r
- <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> \r
- <td id="hrefbrowsercontainer"> </td>\r
- </tr> \r
- </table></td>\r
- </tr>\r
- <tr>\r
- <td><label for="link_list">{#advanced_dlg.link_list}</label></td>\r
- <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td>\r
- </tr>\r
- <tr>\r
- <td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td>\r
- <td><select id="target_list" name="target_list"></select></td>\r
- </tr>\r
- <tr>\r
- <td nowrap="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td>\r
- <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td>\r
- </tr>\r
- <tr>\r
- <td><label for="class_list">{#class_name}</label></td>\r
- <td><select id="class_list" name="class_list"></select></td>\r
- </tr>\r
- </table>\r
- </div>\r
- </div>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" id="insert" name="insert" value="{#insert}" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />\r
- </div>\r
- </div>\r
-</form>\r
-</body>\r
-</html>\r
+++ /dev/null
-body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
-body {background:#FFF;}\r
-body.mceForceColors {background:#FFF; color:#000;}\r
-h1 {font-size: 2em}\r
-h2 {font-size: 1.5em}\r
-h3 {font-size: 1.17em}\r
-h4 {font-size: 1em}\r
-h5 {font-size: .83em}\r
-h6 {font-size: .75em}\r
-.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
-a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;}\r
-img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;}\r
-img {border:0;}\r
-table {cursor:default}\r
-table td, table th {cursor:text}\r
-ins {border-bottom:1px solid green; text-decoration: none; color:green}\r
-del {color:red; text-decoration:line-through}\r
-cite {border-bottom:1px dashed blue}\r
-acronym {border-bottom:1px dotted #CCC; cursor:help}\r
-abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}\r
-\r
-/* IE */\r
-* html body {\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-}\r
+++ /dev/null
-/* Generic */\r
-body {\r
-font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDDDDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-background:#F0F0EE;\r
-padding:0;\r
-margin:8px 8px 0 8px;\r
-}\r
-\r
-html {background:#F0F0EE;}\r
-td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-textarea {resize:none;outline:none;}\r
-a:link, a:visited {color:black;}\r
-a:hover {color:#2B6FB6;}\r
-\r
-/* Forms */\r
-fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
-legend {color:#2B6FB6; font-weight:bold;}\r
-label.msg {display:none;}\r
-label.invalid {color:#EE0000; display:inline;}\r
-input.invalid {border:1px solid #EE0000;}\r
-input {background:#FFF; border:1px solid #CCC;}\r
-input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-input, select, textarea {border:1px solid #808080;}\r
-input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-.input_noborder {border:0;}\r
-\r
-/* Buttons */\r
-#insert, #cancel, input.button, .updateButton {\r
-border:0; margin:0; padding:0;\r
-font-weight:bold;\r
-width:94px; height:26px;\r
-background:url(img/buttons.png) 0 -26px;\r
-cursor:pointer;\r
-padding-bottom:2px;\r
-}\r
-\r
-#insert {background:url(img/buttons.png) 0 -52px;}\r
-#cancel {background:url(img/buttons.png) 0 0;}\r
-\r
-/* Browse */\r
-a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
-.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
-a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
-a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
-a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
-a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
-.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
-a.pickcolor:hover span {background-color:#B2BBD0;}\r
-a.pickcolor:hover span.disabled {}\r
-\r
-/* Charmap */\r
-table.charmap {border:1px solid #AAA; text-align:center}\r
-td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
-#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
-#charmap a:hover {background:#CCC;color:#2B6FB6}\r
-#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
-#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
-\r
-/* Source */\r
-.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
-.mceActionPanel {margin-top:5px;}\r
-\r
-/* Tabs classes */\r
-.tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;}\r
-.tabs ul {margin:0; padding:0; list-style:none;}\r
-.tabs li {float:left; background:url(img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
-.tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
-.tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
-.tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;}\r
-.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
-.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
-\r
-/* Panels */\r
-.panel_wrapper div.panel {display:none;}\r
-.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
-.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
-\r
-/* Columns */\r
-.column {float:left;}\r
-.properties {width:100%;}\r
-.properties .column1 {}\r
-.properties .column2 {text-align:left;}\r
-\r
-/* Titles */\r
-h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
-h3 {font-size:14px;}\r
-.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
-\r
-/* Dialog specific */\r
-#link .panel_wrapper, #link div.current {height:125px;}\r
-#image .panel_wrapper, #image div.current {height:200px;}\r
-#plugintable thead {font-weight:bold; background:#DDD;}\r
-#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
-#plugintable {width:96%; margin-top:10px;}\r
-#pluginscontainer {height:290px; overflow:auto;}\r
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
-#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
-#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
-#colorpicker #light div {overflow:hidden;}\r
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
-#colorpicker .panel_wrapper div.current {height:175px;}\r
-#colorpicker #namedcolors {width:150px;}\r
-#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
-#colorpicker #colornamecontainer {margin-top:5px;}\r
-#colorpicker #picker_panel fieldset {margin:auto;width:325px;}
\ No newline at end of file
+++ /dev/null
-/* Reset */\r
-.defaultSkin table, .defaultSkin tbody, .defaultSkin a, .defaultSkin img, .defaultSkin tr, .defaultSkin div, .defaultSkin td, .defaultSkin iframe, .defaultSkin span, .defaultSkin *, .defaultSkin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
-.defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-.defaultSkin table td {vertical-align:middle}\r
-\r
-/* Containers */\r
-.defaultSkin table {background:#F0F0EE}\r
-.defaultSkin iframe {display:block; background:#FFF}\r
-.defaultSkin .mceToolbar {height:26px}\r
-.defaultSkin .mceLeft {text-align:left}\r
-.defaultSkin .mceRight {text-align:right}\r
-\r
-/* External */\r
-.defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;}\r
-.defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
-.defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
-\r
-/* Layout */\r
-.defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC}\r
-.defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC}\r
-.defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC}\r
-.defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;}\r
-.defaultSkin td.mceToolbar {padding-top:1px; vertical-align:top}\r
-.defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC}\r
-.defaultSkin .mceStatusbar {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; display:block; height:20px}\r
-.defaultSkin .mceStatusbar div {float:left; margin:2px}\r
-.defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
-.defaultSkin .mceStatusbar a:hover {text-decoration:underline}\r
-.defaultSkin table.mceToolbar {margin-left:3px}\r
-.defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px}\r
-.defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-.defaultSkin td.mceCenter {text-align:center;}\r
-.defaultSkin td.mceCenter table {margin:0 auto; text-align:left;}\r
-.defaultSkin td.mceRight table {margin:0 0 0 auto;}\r
-\r
-/* Button */\r
-.defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px}\r
-.defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
-.defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0}\r
-.defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
-.defaultSkin .mceButtonLabeled {width:auto}\r
-.defaultSkin .mceButtonLabeled span.mceIcon {float:left}\r
-.defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
-.defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888}\r
-\r
-/* Separator */\r
-.defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px}\r
-\r
-/* ListBox */\r
-.defaultSkin .mceListBox {direction:ltr}\r
-.defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block}\r
-.defaultSkin .mceListBox .mceText {padding-left:4px; width:70px; text-align:left; border:1px solid #CCC; border-right:0; background:#FFF; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
-.defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;}\r
-.defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF}\r
-.defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0}\r
-.defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;}\r
-.defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
-.defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
-.defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;}\r
-.defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;}\r
-\r
-/* SplitButton */\r
-.defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr}\r
-.defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block}\r
-.defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;}\r
-.defaultSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;}\r
-.defaultSkin .mceSplitButton a.mceOpen {width:9px; border:1px solid #F0F0EE;}\r
-.defaultSkin .mceSplitButton span.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0;}\r
-.defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0}\r
-.defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {border:1px solid #0A246A;}\r
-.defaultSkin table.mceSplitButtonEnabled:hover span.mceOpen, .defaultSkin .mceSplitButtonHover span.mceOpen, .defaultSkin .mceSplitButtonSelected span.mceOpen {background-color:#B2BBD0}\r
-.defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled span.mceOpen {opacity:0.3; filter:alpha(opacity=30)}\r
-.defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0}\r
-.defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;}\r
-\r
-/* ColorSplitButton */\r
-.defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
-.defaultSkin .mceColorSplitMenu td {padding:2px}\r
-.defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
-.defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
-.defaultSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
-.defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
-.defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A}\r
-.defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a}\r
-.defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px}\r
-\r
-/* Menu */\r
-.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}\r
-.defaultSkin .mceNoIcons span.mceIcon {width:0;}\r
-.defaultSkin .mceNoIcons a .mceText {padding-left:10px}\r
-.defaultSkin .mceMenu table {background:#FFF}\r
-.defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block}\r
-.defaultSkin .mceMenu td {height:20px}\r
-.defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
-.defaultSkin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
-.defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px}\r
-.defaultSkin .mceMenu pre.mceText {font-family:Monospace}\r
-.defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
-.defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
-.defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
-.defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD}\r
-.defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
-.defaultSkin .mceMenuItemDisabled .mceText {color:#888}\r
-.defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)}\r
-.defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center}\r
-.defaultSkin .mceMenu span.mceMenuLine {display:none}\r
-.defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;}\r
-\r
-/* Progress,Resize */\r
-.defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
-.defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
-.defaultSkin .mcePlaceHolder {border:1px dotted gray}\r
-\r
-/* Formats */\r
-.defaultSkin .mce_formatPreview a {font-size:10px}\r
-.defaultSkin .mce_p span.mceText {}\r
-.defaultSkin .mce_address span.mceText {font-style:italic}\r
-.defaultSkin .mce_pre span.mceText {font-family:monospace}\r
-.defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
-.defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
-.defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
-.defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
-.defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
-.defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
-\r
-/* Theme */\r
-.defaultSkin span.mce_bold {background-position:0 0}\r
-.defaultSkin span.mce_italic {background-position:-60px 0}\r
-.defaultSkin span.mce_underline {background-position:-140px 0}\r
-.defaultSkin span.mce_strikethrough {background-position:-120px 0}\r
-.defaultSkin span.mce_undo {background-position:-160px 0}\r
-.defaultSkin span.mce_redo {background-position:-100px 0}\r
-.defaultSkin span.mce_cleanup {background-position:-40px 0}\r
-.defaultSkin span.mce_bullist {background-position:-20px 0}\r
-.defaultSkin span.mce_numlist {background-position:-80px 0}\r
-.defaultSkin span.mce_justifyleft {background-position:-460px 0}\r
-.defaultSkin span.mce_justifyright {background-position:-480px 0}\r
-.defaultSkin span.mce_justifycenter {background-position:-420px 0}\r
-.defaultSkin span.mce_justifyfull {background-position:-440px 0}\r
-.defaultSkin span.mce_anchor {background-position:-200px 0}\r
-.defaultSkin span.mce_indent {background-position:-400px 0}\r
-.defaultSkin span.mce_outdent {background-position:-540px 0}\r
-.defaultSkin span.mce_link {background-position:-500px 0}\r
-.defaultSkin span.mce_unlink {background-position:-640px 0}\r
-.defaultSkin span.mce_sub {background-position:-600px 0}\r
-.defaultSkin span.mce_sup {background-position:-620px 0}\r
-.defaultSkin span.mce_removeformat {background-position:-580px 0}\r
-.defaultSkin span.mce_newdocument {background-position:-520px 0}\r
-.defaultSkin span.mce_image {background-position:-380px 0}\r
-.defaultSkin span.mce_help {background-position:-340px 0}\r
-.defaultSkin span.mce_code {background-position:-260px 0}\r
-.defaultSkin span.mce_hr {background-position:-360px 0}\r
-.defaultSkin span.mce_visualaid {background-position:-660px 0}\r
-.defaultSkin span.mce_charmap {background-position:-240px 0}\r
-.defaultSkin span.mce_paste {background-position:-560px 0}\r
-.defaultSkin span.mce_copy {background-position:-700px 0}\r
-.defaultSkin span.mce_cut {background-position:-680px 0}\r
-.defaultSkin span.mce_blockquote {background-position:-220px 0}\r
-.defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0}\r
-.defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0}\r
-.defaultSkin span.mce_forecolorpicker {background-position:-720px 0}\r
-.defaultSkin span.mce_backcolorpicker {background-position:-760px 0}\r
-\r
-/* Plugins */\r
-.defaultSkin span.mce_advhr {background-position:-0px -20px}\r
-.defaultSkin span.mce_ltr {background-position:-20px -20px}\r
-.defaultSkin span.mce_rtl {background-position:-40px -20px}\r
-.defaultSkin span.mce_emotions {background-position:-60px -20px}\r
-.defaultSkin span.mce_fullpage {background-position:-80px -20px}\r
-.defaultSkin span.mce_fullscreen {background-position:-100px -20px}\r
-.defaultSkin span.mce_iespell {background-position:-120px -20px}\r
-.defaultSkin span.mce_insertdate {background-position:-140px -20px}\r
-.defaultSkin span.mce_inserttime {background-position:-160px -20px}\r
-.defaultSkin span.mce_absolute {background-position:-180px -20px}\r
-.defaultSkin span.mce_backward {background-position:-200px -20px}\r
-.defaultSkin span.mce_forward {background-position:-220px -20px}\r
-.defaultSkin span.mce_insert_layer {background-position:-240px -20px}\r
-.defaultSkin span.mce_insertlayer {background-position:-260px -20px}\r
-.defaultSkin span.mce_movebackward {background-position:-280px -20px}\r
-.defaultSkin span.mce_moveforward {background-position:-300px -20px}\r
-.defaultSkin span.mce_media {background-position:-320px -20px}\r
-.defaultSkin span.mce_nonbreaking {background-position:-340px -20px}\r
-.defaultSkin span.mce_pastetext {background-position:-360px -20px}\r
-.defaultSkin span.mce_pasteword {background-position:-380px -20px}\r
-.defaultSkin span.mce_selectall {background-position:-400px -20px}\r
-.defaultSkin span.mce_preview {background-position:-420px -20px}\r
-.defaultSkin span.mce_print {background-position:-440px -20px}\r
-.defaultSkin span.mce_cancel {background-position:-460px -20px}\r
-.defaultSkin span.mce_save {background-position:-480px -20px}\r
-.defaultSkin span.mce_replace {background-position:-500px -20px}\r
-.defaultSkin span.mce_search {background-position:-520px -20px}\r
-.defaultSkin span.mce_styleprops {background-position:-560px -20px}\r
-.defaultSkin span.mce_table {background-position:-580px -20px}\r
-.defaultSkin span.mce_cell_props {background-position:-600px -20px}\r
-.defaultSkin span.mce_delete_table {background-position:-620px -20px}\r
-.defaultSkin span.mce_delete_col {background-position:-640px -20px}\r
-.defaultSkin span.mce_delete_row {background-position:-660px -20px}\r
-.defaultSkin span.mce_col_after {background-position:-680px -20px}\r
-.defaultSkin span.mce_col_before {background-position:-700px -20px}\r
-.defaultSkin span.mce_row_after {background-position:-720px -20px}\r
-.defaultSkin span.mce_row_before {background-position:-740px -20px}\r
-.defaultSkin span.mce_merge_cells {background-position:-760px -20px}\r
-.defaultSkin span.mce_table_props {background-position:-980px -20px}\r
-.defaultSkin span.mce_row_props {background-position:-780px -20px}\r
-.defaultSkin span.mce_split_cells {background-position:-800px -20px}\r
-.defaultSkin span.mce_template {background-position:-820px -20px}\r
-.defaultSkin span.mce_visualchars {background-position:-840px -20px}\r
-.defaultSkin span.mce_abbr {background-position:-860px -20px}\r
-.defaultSkin span.mce_acronym {background-position:-880px -20px}\r
-.defaultSkin span.mce_attribs {background-position:-900px -20px}\r
-.defaultSkin span.mce_cite {background-position:-920px -20px}\r
-.defaultSkin span.mce_del {background-position:-940px -20px}\r
-.defaultSkin span.mce_ins {background-position:-960px -20px}\r
-.defaultSkin span.mce_pagebreak {background-position:0 -40px}\r
-.defaultSkin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
+++ /dev/null
-body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;}\r
-body {background:#FFF;}\r
-body.mceForceColors {background:#FFF; color:#000;}\r
-h1 {font-size: 2em}\r
-h2 {font-size: 1.5em}\r
-h3 {font-size: 1.17em}\r
-h4 {font-size: 1em}\r
-h5 {font-size: .83em}\r
-h6 {font-size: .75em}\r
-.mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;}\r
-a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(../default/img/items.gif) no-repeat bottom left;}\r
-img.mceItemAnchor {width:12px; height:12px; background:url(../default/img/items.gif) no-repeat;}\r
-img {border:0;}\r
-table {cursor:default}\r
-table td, table th {cursor:text}\r
-ins {border-bottom:1px solid green; text-decoration: none; color:green}\r
-del {color:red; text-decoration:line-through}\r
-cite {border-bottom:1px dashed blue}\r
-acronym {border-bottom:1px dotted #CCC; cursor:help}\r
-abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help}\r
-\r
-/* IE */\r
-* html body {\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-}\r
+++ /dev/null
-/* Generic */\r
-body {\r
-font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px;\r
-scrollbar-3dlight-color:#F0F0EE;\r
-scrollbar-arrow-color:#676662;\r
-scrollbar-base-color:#F0F0EE;\r
-scrollbar-darkshadow-color:#DDDDDD;\r
-scrollbar-face-color:#E0E0DD;\r
-scrollbar-highlight-color:#F0F0EE;\r
-scrollbar-shadow-color:#F0F0EE;\r
-scrollbar-track-color:#F5F5F5;\r
-background:#F0F0EE;\r
-padding:0;\r
-margin:8px 8px 0 8px;\r
-}\r
-\r
-html {background:#F0F0EE;}\r
-td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-textarea {resize:none;outline:none;}\r
-a:link, a:visited {color:black;}\r
-a:hover {color:#2B6FB6;}\r
-\r
-/* Forms */\r
-fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;}\r
-legend {color:#2B6FB6; font-weight:bold;}\r
-label.msg {display:none;}\r
-label.invalid {color:#EE0000; display:inline;}\r
-input.invalid {border:1px solid #EE0000;}\r
-input {background:#FFF; border:1px solid #CCC;}\r
-input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-input, select, textarea {border:1px solid #808080;}\r
-input.radio {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;}\r
-.input_noborder {border:0;}\r
-\r
-/* Buttons */\r
-#insert, #cancel, input.button, .updateButton {\r
-border:0; margin:0; padding:0;\r
-font-weight:bold;\r
-width:94px; height:26px;\r
-background:url(../default/img/buttons.png) 0 -26px;\r
-cursor:pointer;\r
-padding-bottom:2px;\r
-}\r
-\r
-#insert {background:url(../default/img/buttons.png) 0 -52px;}\r
-#cancel {background:url(../default/img/buttons.png) 0 0;}\r
-\r
-/* Browse */\r
-a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}\r
-.mceOldBoxModel a.browse span {width:22px; height:20px;}\r
-a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;}\r
-a.browse span.disabled {border:1px solid white; -moz-opacity:0.3; opacity:0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);}\r
-a.browse:hover span.disabled {border:1px solid white; background-color:transparent;}\r
-a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;}\r
-.mceOldBoxModel a.pickcolor span {width:21px; height:17px;}\r
-a.pickcolor:hover span {background-color:#B2BBD0;}\r
-a.pickcolor:hover span.disabled {}\r
-\r
-/* Charmap */\r
-table.charmap {border:1px solid #AAA; text-align:center}\r
-td.charmap, #charmap a {width:18px; height:18px; color:#000; border:1px solid #AAA; text-align:center; font-size:12px; vertical-align:middle; line-height: 18px;}\r
-#charmap a {display:block; color:#000; text-decoration:none; border:0}\r
-#charmap a:hover {background:#CCC;color:#2B6FB6}\r
-#charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center}\r
-#charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center}\r
-\r
-/* Source */\r
-.wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;}\r
-.mceActionPanel {margin-top:5px;}\r
-\r
-/* Tabs classes */\r
-.tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;}\r
-.tabs ul {margin:0; padding:0; list-style:none;}\r
-.tabs li {float:left; background:url(../default/img/tabs.gif) no-repeat 0 0; margin:0 2px 0 0; padding:0 0 0 10px; line-height:17px; height:18px; display:block;}\r
-.tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;}\r
-.tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;}\r
-.tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;}\r
-.tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;}\r
-.tabs a:link, .tabs a:visited, .tabs a:hover {color:black;}\r
-\r
-/* Panels */\r
-.panel_wrapper div.panel {display:none;}\r
-.panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;}\r
-.panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;}\r
-\r
-/* Columns */\r
-.column {float:left;}\r
-.properties {width:100%;}\r
-.properties .column1 {}\r
-.properties .column2 {text-align:left;}\r
-\r
-/* Titles */\r
-h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;}\r
-h3 {font-size:14px;}\r
-.title {font-size:12px; font-weight:bold; color:#2B6FB6;}\r
-\r
-/* Dialog specific */\r
-#link .panel_wrapper, #link div.current {height:125px;}\r
-#image .panel_wrapper, #image div.current {height:200px;}\r
-#plugintable thead {font-weight:bold; background:#DDD;}\r
-#plugintable, #about #plugintable td {border:1px solid #919B9C;}\r
-#plugintable {width:96%; margin-top:10px;}\r
-#pluginscontainer {height:290px; overflow:auto;}\r
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}\r
-#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}\r
-#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}\r
-#colorpicker #light div {overflow:hidden;}\r
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}\r
-#colorpicker .panel_wrapper div.current {height:175px;}\r
-#colorpicker #namedcolors {width:150px;}\r
-#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}\r
-#colorpicker #colornamecontainer {margin-top:5px;}\r
+++ /dev/null
-/* Reset */\r
-.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}\r
-.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-.o2k7Skin table td {vertical-align:middle}\r
-\r
-/* Containers */\r
-.o2k7Skin table {background:#E5EFFD}\r
-.o2k7Skin iframe {display:block; background:#FFF}\r
-.o2k7Skin .mceToolbar {height:26px}\r
-\r
-/* External */\r
-.o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none}\r
-.o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;}\r
-.o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}\r
-\r
-/* Layout */\r
-.o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD}\r
-.o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD}\r
-.o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD}\r
-.o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}\r
-.o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD}\r
-.o2k7Skin .mceStatusbar {display:block; font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:9pt; line-height:16px; overflow:visible; color:#000; height:20px}\r
-.o2k7Skin .mceStatusbar div {float:left; padding:2px}\r
-.o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize}\r
-.o2k7Skin .mceStatusbar a:hover {text-decoration:underline}\r
-.o2k7Skin table.mceToolbar {margin-left:3px}\r
-.o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;}\r
-.o2k7Skin .mceToolbar td.mceFirst span {margin:0}\r
-.o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
-.o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none}\r
-.o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px}\r
-.o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-.o2k7Skin td.mceCenter {text-align:center;}\r
-.o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;}\r
-.o2k7Skin td.mceRight table {margin:0 0 0 auto;}\r
-\r
-/* Button */\r
-.o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
-.o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px}\r
-.o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}\r
-.o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
-.o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px}\r
-.o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30)}\r
-.o2k7Skin .mceButtonLabeled {width:auto}\r
-.o2k7Skin .mceButtonLabeled span.mceIcon {float:left}\r
-.o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica}\r
-.o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888}\r
-\r
-/* Separator */\r
-.o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
-\r
-/* ListBox */\r
-.o2k7Skin .mceListBox {margin-left:3px}\r
-.o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block}\r
-.o2k7Skin .mceListBox .mceText {padding-left:4px; text-align:left; width:70px; border:1px solid #b3c7e1; border-right:0; background:#eaf2fb; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; height:20px; line-height:20px; overflow:hidden}\r
-.o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0}\r
-.o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF}\r
-.o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px}\r
-.o2k7Skin .mceListBoxDisabled .mceText {color:gray}\r
-.o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden}\r
-.o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px}\r
-.o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;}\r
-\r
-/* SplitButton */\r
-.o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px}\r
-.o2k7Skin .mceSplitButton {background:url(img/button_bg.png)}\r
-.o2k7Skin .mceSplitButton a.mceAction {width:22px}\r
-.o2k7Skin .mceSplitButton span.mceAction {width:22px; background:url(../../img/icons.gif) 20px 20px}\r
-.o2k7Skin .mceSplitButton a.mceOpen {width:10px}\r
-.o2k7Skin .mceSplitButton span.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0}\r
-.o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px}\r
-.o2k7Skin table.mceSplitButtonEnabled:hover span.mceOpen, .o2k7Skin .mceSplitButtonHover span.mceOpen, .o2k7Skin .mceSplitButtonSelected span.mceOpen {background-position:-44px -44px}\r
-.o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; filter:alpha(opacity=30)}\r
-.o2k7Skin .mceSplitButtonActive {background-position:0 -44px}\r
-\r
-/* ColorSplitButton */\r
-.o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray}\r
-.o2k7Skin .mceColorSplitMenu td {padding:2px}\r
-.o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080}\r
-.o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}\r
-.o2k7Skin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px; border:1px solid #FFF}\r
-.o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2}\r
-.o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A}\r
-.o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden}\r
-.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}\r
-\r
-/* Menu */\r
-.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}\r
-.o2k7Skin .mceNoIcons span.mceIcon {width:0;}\r
-.o2k7Skin .mceNoIcons a .mceText {padding-left:10px}\r
-.o2k7Skin .mceMenu table {background:#FFF}\r
-.o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block}\r
-.o2k7Skin .mceMenu td {height:20px}\r
-.o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0}\r
-.o2k7Skin .mceMenu .mceText {position:relative; display:block; font-family:Tahoma,Verdana,Arial,Helvetica; color:#000; cursor:default; margin:0; padding:0 25px 0 25px; display:block}\r
-.o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px}\r
-.o2k7Skin .mceMenu pre.mceText {font-family:Monospace}\r
-.o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}\r
-.o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3}\r
-.o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px}\r
-.o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD}\r
-.o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px}\r
-.o2k7Skin .mceMenuItemDisabled .mceText {color:#888}\r
-.o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}\r
-.o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}\r
-.o2k7Skin .mceMenu span.mceMenuLine {display:none}\r
-.o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}\r
-\r
-/* Progress,Resize */\r
-.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}\r
-.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}\r
-.o2k7Skin .mcePlaceHolder {border:1px dotted gray}\r
-\r
-/* Formats */\r
-.o2k7Skin .mce_formatPreview a {font-size:10px}\r
-.o2k7Skin .mce_p span.mceText {}\r
-.o2k7Skin .mce_address span.mceText {font-style:italic}\r
-.o2k7Skin .mce_pre span.mceText {font-family:monospace}\r
-.o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}\r
-.o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}\r
-.o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}\r
-.o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}\r
-.o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}\r
-.o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}\r
-\r
-/* Theme */\r
-.o2k7Skin span.mce_bold {background-position:0 0}\r
-.o2k7Skin span.mce_italic {background-position:-60px 0}\r
-.o2k7Skin span.mce_underline {background-position:-140px 0}\r
-.o2k7Skin span.mce_strikethrough {background-position:-120px 0}\r
-.o2k7Skin span.mce_undo {background-position:-160px 0}\r
-.o2k7Skin span.mce_redo {background-position:-100px 0}\r
-.o2k7Skin span.mce_cleanup {background-position:-40px 0}\r
-.o2k7Skin span.mce_bullist {background-position:-20px 0}\r
-.o2k7Skin span.mce_numlist {background-position:-80px 0}\r
-.o2k7Skin span.mce_justifyleft {background-position:-460px 0}\r
-.o2k7Skin span.mce_justifyright {background-position:-480px 0}\r
-.o2k7Skin span.mce_justifycenter {background-position:-420px 0}\r
-.o2k7Skin span.mce_justifyfull {background-position:-440px 0}\r
-.o2k7Skin span.mce_anchor {background-position:-200px 0}\r
-.o2k7Skin span.mce_indent {background-position:-400px 0}\r
-.o2k7Skin span.mce_outdent {background-position:-540px 0}\r
-.o2k7Skin span.mce_link {background-position:-500px 0}\r
-.o2k7Skin span.mce_unlink {background-position:-640px 0}\r
-.o2k7Skin span.mce_sub {background-position:-600px 0}\r
-.o2k7Skin span.mce_sup {background-position:-620px 0}\r
-.o2k7Skin span.mce_removeformat {background-position:-580px 0}\r
-.o2k7Skin span.mce_newdocument {background-position:-520px 0}\r
-.o2k7Skin span.mce_image {background-position:-380px 0}\r
-.o2k7Skin span.mce_help {background-position:-340px 0}\r
-.o2k7Skin span.mce_code {background-position:-260px 0}\r
-.o2k7Skin span.mce_hr {background-position:-360px 0}\r
-.o2k7Skin span.mce_visualaid {background-position:-660px 0}\r
-.o2k7Skin span.mce_charmap {background-position:-240px 0}\r
-.o2k7Skin span.mce_paste {background-position:-560px 0}\r
-.o2k7Skin span.mce_copy {background-position:-700px 0}\r
-.o2k7Skin span.mce_cut {background-position:-680px 0}\r
-.o2k7Skin span.mce_blockquote {background-position:-220px 0}\r
-.o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0}\r
-.o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0}\r
-.o2k7Skin span.mce_forecolorpicker {background-position:-720px 0}\r
-.o2k7Skin span.mce_backcolorpicker {background-position:-760px 0}\r
-\r
-/* Plugins */\r
-.o2k7Skin span.mce_advhr {background-position:-0px -20px}\r
-.o2k7Skin span.mce_ltr {background-position:-20px -20px}\r
-.o2k7Skin span.mce_rtl {background-position:-40px -20px}\r
-.o2k7Skin span.mce_emotions {background-position:-60px -20px}\r
-.o2k7Skin span.mce_fullpage {background-position:-80px -20px}\r
-.o2k7Skin span.mce_fullscreen {background-position:-100px -20px}\r
-.o2k7Skin span.mce_iespell {background-position:-120px -20px}\r
-.o2k7Skin span.mce_insertdate {background-position:-140px -20px}\r
-.o2k7Skin span.mce_inserttime {background-position:-160px -20px}\r
-.o2k7Skin span.mce_absolute {background-position:-180px -20px}\r
-.o2k7Skin span.mce_backward {background-position:-200px -20px}\r
-.o2k7Skin span.mce_forward {background-position:-220px -20px}\r
-.o2k7Skin span.mce_insert_layer {background-position:-240px -20px}\r
-.o2k7Skin span.mce_insertlayer {background-position:-260px -20px}\r
-.o2k7Skin span.mce_movebackward {background-position:-280px -20px}\r
-.o2k7Skin span.mce_moveforward {background-position:-300px -20px}\r
-.o2k7Skin span.mce_media {background-position:-320px -20px}\r
-.o2k7Skin span.mce_nonbreaking {background-position:-340px -20px}\r
-.o2k7Skin span.mce_pastetext {background-position:-360px -20px}\r
-.o2k7Skin span.mce_pasteword {background-position:-380px -20px}\r
-.o2k7Skin span.mce_selectall {background-position:-400px -20px}\r
-.o2k7Skin span.mce_preview {background-position:-420px -20px}\r
-.o2k7Skin span.mce_print {background-position:-440px -20px}\r
-.o2k7Skin span.mce_cancel {background-position:-460px -20px}\r
-.o2k7Skin span.mce_save {background-position:-480px -20px}\r
-.o2k7Skin span.mce_replace {background-position:-500px -20px}\r
-.o2k7Skin span.mce_search {background-position:-520px -20px}\r
-.o2k7Skin span.mce_styleprops {background-position:-560px -20px}\r
-.o2k7Skin span.mce_table {background-position:-580px -20px}\r
-.o2k7Skin span.mce_cell_props {background-position:-600px -20px}\r
-.o2k7Skin span.mce_delete_table {background-position:-620px -20px}\r
-.o2k7Skin span.mce_delete_col {background-position:-640px -20px}\r
-.o2k7Skin span.mce_delete_row {background-position:-660px -20px}\r
-.o2k7Skin span.mce_col_after {background-position:-680px -20px}\r
-.o2k7Skin span.mce_col_before {background-position:-700px -20px}\r
-.o2k7Skin span.mce_row_after {background-position:-720px -20px}\r
-.o2k7Skin span.mce_row_before {background-position:-740px -20px}\r
-.o2k7Skin span.mce_merge_cells {background-position:-760px -20px}\r
-.o2k7Skin span.mce_table_props {background-position:-980px -20px}\r
-.o2k7Skin span.mce_row_props {background-position:-780px -20px}\r
-.o2k7Skin span.mce_split_cells {background-position:-800px -20px}\r
-.o2k7Skin span.mce_template {background-position:-820px -20px}\r
-.o2k7Skin span.mce_visualchars {background-position:-840px -20px}\r
-.o2k7Skin span.mce_abbr {background-position:-860px -20px}\r
-.o2k7Skin span.mce_acronym {background-position:-880px -20px}\r
-.o2k7Skin span.mce_attribs {background-position:-900px -20px}\r
-.o2k7Skin span.mce_cite {background-position:-920px -20px}\r
-.o2k7Skin span.mce_del {background-position:-940px -20px}\r
-.o2k7Skin span.mce_ins {background-position:-960px -20px}\r
-.o2k7Skin span.mce_pagebreak {background-position:0 -40px}\r
-.o2k7Skin .mce_spellchecker span.mceAction {background-position:-540px -20px}\r
+++ /dev/null
-/* Black */\r
-.o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton span.mceOpen, .o2k7SkinBlack .mceListBox .mceOpen {background-image:url(img/button_bg_black.png)}\r
-.o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF}\r
-.o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0}\r
-.o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0}\r
-.o2k7SkinBlack .mceExternalToolbar, .o2k7SkinBlack .mceListBox .mceText, .o2k7SkinBlack div.mceMenu, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceFirst td, .o2k7SkinBlack table.mceLayout, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack table.mceLayout tr.mceLast td, .o2k7SkinBlack .mceIframeContainer {border-color: #535353;}\r
-.o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)}\r
-.o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#FFE7A1}
\ No newline at end of file
+++ /dev/null
-/* Silver */\r
-.o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton span.mceOpen, .o2k7SkinSilver .mceListBox .mceOpen {background-image:url(img/button_bg_silver.png)}\r
-.o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee}\r
-.o2k7SkinSilver .mceListBox .mceText {background:#FFF}\r
-.o2k7SkinSilver .mceExternalToolbar, .o2k7SkinSilver .mceListBox .mceText, .o2k7SkinSilver div.mceMenu, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceFirst td, .o2k7SkinSilver table.mceLayout, .o2k7SkinSilver .mceMenuItemTitle a, .o2k7SkinSilver table.mceLayout tr.mceLast td, .o2k7SkinSilver .mceIframeContainer {border-color: #bbb}\r
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r
- <title>{#advanced_dlg.code_title}</title>\r
- <script type="text/javascript" src="../../tiny_mce_popup.js"></script>\r
- <script type="text/javascript" src="js/source_editor.js"></script>\r
- <base target="_self" />\r
-</head>\r
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">\r
- <form name="source" onsubmit="saveContent();return false;" action="#">\r
- <div style="float: left" class="title">{#advanced_dlg.code_title}</div>\r
-\r
- <div id="wrapline" style="float: right">\r
- <input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label>\r
- </div>\r
-\r
- <br style="clear: both" />\r
-\r
- <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>\r
-\r
- <div class="mceActionPanel">\r
- <div style="float: left">\r
- <input type="submit" name="insert" value="{#update}" id="insert" />\r
- </div>\r
-\r
- <div style="float: right">\r
- <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />\r
- </div>\r
- </div>\r
- </form>\r
-</body>\r
-</html>\r
+++ /dev/null
-(function(){var DOM=tinymce.DOM;tinymce.ThemeManager.requireLangPack('simple');tinymce.create('tinymce.themes.SimpleTheme',{init:function(ed,url){var t=this,states=['Bold','Italic','Underline','Strikethrough','InsertUnorderedList','InsertOrderedList'],s=ed.settings;t.editor=ed;ed.onInit.add(function(){ed.onNodeChange.add(function(ed,cm){tinymce.each(states,function(c){cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));});});ed.dom.loadCSS(url+"/skins/"+s.skin+"/content.css");});DOM.loadCSS((s.editor_css?ed.baseURI.toAbsolute(s.editor_css):'')||url+"/skins/"+s.skin+"/ui.css");},renderUI:function(o){var t=this,n=o.targetNode,ic,tb,ed=t.editor,cf=ed.controlManager,sc;n=DOM.insertAfter(DOM.create('span',{id:ed.id+'_container','class':'mceEditor '+ed.settings.skin+'SimpleSkin'}),n);n=sc=DOM.add(n,'table',{cellPadding:0,cellSpacing:0,'class':'mceLayout'});n=tb=DOM.add(n,'tbody');n=DOM.add(tb,'tr');n=ic=DOM.add(DOM.add(n,'td'),'div',{'class':'mceIframeContainer'});n=DOM.add(DOM.add(tb,'tr',{'class':'last'}),'td',{'class':'mceToolbar mceLast',align:'center'});tb=t.toolbar=cf.createToolbar("tools1");tb.add(cf.createButton('bold',{title:'simple.bold_desc',cmd:'Bold'}));tb.add(cf.createButton('italic',{title:'simple.italic_desc',cmd:'Italic'}));tb.add(cf.createButton('underline',{title:'simple.underline_desc',cmd:'Underline'}));tb.add(cf.createButton('strikethrough',{title:'simple.striketrough_desc',cmd:'Strikethrough'}));tb.add(cf.createSeparator());tb.add(cf.createButton('undo',{title:'simple.undo_desc',cmd:'Undo'}));tb.add(cf.createButton('redo',{title:'simple.redo_desc',cmd:'Redo'}));tb.add(cf.createSeparator());tb.add(cf.createButton('cleanup',{title:'simple.cleanup_desc',cmd:'mceCleanup'}));tb.add(cf.createSeparator());tb.add(cf.createButton('insertunorderedlist',{title:'simple.bullist_desc',cmd:'InsertUnorderedList'}));tb.add(cf.createButton('insertorderedlist',{title:'simple.numlist_desc',cmd:'InsertOrderedList'}));tb.renderTo(n);return{iframeContainer:ic,editorContainer:ed.id+'_container',sizeContainer:sc,deltaHeight:-20};},getInfo:function(){return{longname:'Simple theme',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.ThemeManager.add('simple',tinymce.themes.SimpleTheme);})();
\ No newline at end of file
+++ /dev/null
-/**\r
- * $Id: editor_template_src.js 752 2008-03-27 21:51:25Z spocke $\r
- *\r
- * This file is meant to showcase how to create a simple theme. The advanced\r
- * theme is more suitable for production use.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-(function() {\r
- var DOM = tinymce.DOM;\r
-\r
- // Tell it to load theme specific language pack(s)\r
- tinymce.ThemeManager.requireLangPack('simple');\r
-\r
- tinymce.create('tinymce.themes.SimpleTheme', {\r
- init : function(ed, url) {\r
- var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings;\r
-\r
- t.editor = ed;\r
-\r
- ed.onInit.add(function() {\r
- ed.onNodeChange.add(function(ed, cm) {\r
- tinymce.each(states, function(c) {\r
- cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c));\r
- });\r
- });\r
-\r
- ed.dom.loadCSS(url + "/skins/" + s.skin + "/content.css");\r
- });\r
-\r
- DOM.loadCSS((s.editor_css ? ed.baseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css");\r
- },\r
-\r
- renderUI : function(o) {\r
- var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc;\r
-\r
- n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n);\r
- n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'});\r
- n = tb = DOM.add(n, 'tbody');\r
-\r
- // Create iframe container\r
- n = DOM.add(tb, 'tr');\r
- n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'});\r
-\r
- // Create toolbar container\r
- n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'});\r
-\r
- // Create toolbar\r
- tb = t.toolbar = cf.createToolbar("tools1");\r
- tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'}));\r
- tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'}));\r
- tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'}));\r
- tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'}));\r
- tb.add(cf.createSeparator());\r
- tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'}));\r
- tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'}));\r
- tb.add(cf.createSeparator());\r
- tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'}));\r
- tb.add(cf.createSeparator());\r
- tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'}));\r
- tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'}));\r
- tb.renderTo(n);\r
-\r
- return {\r
- iframeContainer : ic,\r
- editorContainer : ed.id + '_container',\r
- sizeContainer : sc,\r
- deltaHeight : -20\r
- };\r
- },\r
-\r
- getInfo : function() {\r
- return {\r
- longname : 'Simple theme',\r
- author : 'Moxiecode Systems AB',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- version : tinymce.majorVersion + "." + tinymce.minorVersion\r
- }\r
- }\r
- });\r
-\r
- tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme);\r
-})();
\ No newline at end of file
+++ /dev/null
-tinyMCE.addI18n('en.simple',{\r
-bold_desc:"Bold (Ctrl+B)",\r
-italic_desc:"Italic (Ctrl+I)",\r
-underline_desc:"Underline (Ctrl+U)",\r
-striketrough_desc:"Strikethrough",\r
-bullist_desc:"Unordered list",\r
-numlist_desc:"Ordered list",\r
-undo_desc:"Undo (Ctrl+Z)",\r
-redo_desc:"Redo (Ctrl+Y)",\r
-cleanup_desc:"Cleanup messy code"\r
-});
\ No newline at end of file
+++ /dev/null
-body, td, pre {\r
- font-family: Verdana, Arial, Helvetica, sans-serif;\r
- font-size: 10px;\r
-}\r
-\r
-body {\r
- background-color: #FFFFFF;\r
-}\r
-\r
-.mceVisualAid {\r
- border: 1px dashed #BBBBBB;\r
-}\r
-\r
-/* MSIE specific */\r
-\r
-* html body {\r
- scrollbar-3dlight-color: #F0F0EE;\r
- scrollbar-arrow-color: #676662;\r
- scrollbar-base-color: #F0F0EE;\r
- scrollbar-darkshadow-color: #DDDDDD;\r
- scrollbar-face-color: #E0E0DD;\r
- scrollbar-highlight-color: #F0F0EE;\r
- scrollbar-shadow-color: #F0F0EE;\r
- scrollbar-track-color: #F5F5F5; \r
-}\r
+++ /dev/null
-/* Reset */\r
-.defaultSimpleSkin table, .defaultSimpleSkin tbody, .defaultSimpleSkin a, .defaultSimpleSkin img, .defaultSimpleSkin tr, .defaultSimpleSkin div, .defaultSimpleSkin td, .defaultSimpleSkin iframe, .defaultSimpleSkin span, .defaultSimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-\r
-/* Containers */\r
-.defaultSimpleSkin {position:relative}\r
-.defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;}\r
-.defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;}\r
-.defaultSimpleSkin .mceToolbar {height:24px;}\r
-\r
-/* Layout */\r
-.defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px}\r
-.defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-\r
-/* Button */\r
-.defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px}\r
-.defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0}\r
-.defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0}\r
-.defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}\r
-\r
-/* Separator */\r
-.defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px}\r
-\r
-/* Theme */\r
-.defaultSimpleSkin span.mce_bold {background-position:0 0}\r
-.defaultSimpleSkin span.mce_italic {background-position:-60px 0}\r
-.defaultSimpleSkin span.mce_underline {background-position:-140px 0}\r
-.defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0}\r
-.defaultSimpleSkin span.mce_undo {background-position:-160px 0}\r
-.defaultSimpleSkin span.mce_redo {background-position:-100px 0}\r
-.defaultSimpleSkin span.mce_cleanup {background-position:-40px 0}\r
-.defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}\r
-.defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0}\r
+++ /dev/null
-body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;}\r
-\r
-body {background: #FFF;}\r
-.mceVisualAid {border: 1px dashed #BBB;}\r
-\r
-/* IE */\r
-\r
-* html body {\r
-scrollbar-3dlight-color: #F0F0EE;\r
-scrollbar-arrow-color: #676662;\r
-scrollbar-base-color: #F0F0EE;\r
-scrollbar-darkshadow-color: #DDDDDD;\r
-scrollbar-face-color: #E0E0DD;\r
-scrollbar-highlight-color: #F0F0EE;\r
-scrollbar-shadow-color: #F0F0EE;\r
-scrollbar-track-color: #F5F5F5; \r
-}\r
+++ /dev/null
-/* Reset */\r
-.o2k7SimpleSkin table, .o2k7SimpleSkin tbody, .o2k7SimpleSkin a, .o2k7SimpleSkin img, .o2k7SimpleSkin tr, .o2k7SimpleSkin div, .o2k7SimpleSkin td, .o2k7SimpleSkin iframe, .o2k7SimpleSkin span, .o2k7SimpleSkin * {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000}\r
-\r
-/* Containers */\r
-.o2k7SimpleSkin {position:relative}\r
-.o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;}\r
-.o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;}\r
-.o2k7SimpleSkin .mceToolbar {height:26px;}\r
-\r
-/* Layout */\r
-.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; }\r
-.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}\r
-.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px}\r
-.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}\r
-\r
-/* Button */\r
-.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}\r
-.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px}\r
-.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}\r
-.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px}\r
-.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; filter:alpha(opacity=30)}\r
-\r
-/* Separator */\r
-.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}\r
-\r
-/* Theme */\r
-.o2k7SimpleSkin span.mce_bold {background-position:0 0}\r
-.o2k7SimpleSkin span.mce_italic {background-position:-60px 0}\r
-.o2k7SimpleSkin span.mce_underline {background-position:-140px 0}\r
-.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0}\r
-.o2k7SimpleSkin span.mce_undo {background-position:-160px 0}\r
-.o2k7SimpleSkin span.mce_redo {background-position:-100px 0}\r
-.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0}\r
-.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}\r
-.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0}\r
+++ /dev/null
-var tinymce={majorVersion:'3',minorVersion:'1.1',releaseDate:'2008-08-18',_init:function(){var t=this,d=document,w=window,na=navigator,ua=na.userAgent,i,nl,n,base,p,v;t.isOpera=w.opera&&opera.buildNumber;t.isWebKit=/WebKit/.test(ua);t.isOldWebKit=t.isWebKit&&!w.getSelection().getRangeAt;t.isIE=!t.isWebKit&&!t.isOpera&&(/MSIE/gi).test(ua)&&(/Explorer/gi).test(na.appName);t.isIE6=t.isIE&&/MSIE [56]/.test(ua);t.isGecko=!t.isWebKit&&/Gecko/.test(ua);t.isMac=ua.indexOf('Mac')!=-1;if(w.tinyMCEPreInit){t.suffix=tinyMCEPreInit.suffix;t.baseURL=tinyMCEPreInit.base;t.query=tinyMCEPreInit.query;return;}t.suffix='';nl=d.getElementsByTagName('base');for(i=0;i<nl.length;i++){if(v=nl[i].href){if(/^https?:\/\/[^\/]+$/.test(v))v+='/';base=v?v.match(/.*\//)[0]:'';}}function getBase(n){if(n.src&&/tiny_mce(|_dev|_src|_gzip|_jquery|_prototype).js/.test(n.src)){if(/_(src|dev)\.js/g.test(n.src))t.suffix='_src';if((p=n.src.indexOf('?'))!=-1)t.query=n.src.substring(p+1);t.baseURL=n.src.substring(0,n.src.lastIndexOf('/'));if(base&&t.baseURL.indexOf('://')==-1)t.baseURL=base+t.baseURL;return t.baseURL;}return null;};nl=d.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}n=d.getElementsByTagName('head')[0];if(n){nl=n.getElementsByTagName('script');for(i=0;i<nl.length;i++){if(getBase(nl[i]))return;}}return;},is:function(o,t){var n=typeof(o);if(!t)return n!='undefined';if(t=='array'&&(o instanceof Array))return true;return n==t;},each:function(o,cb,s){var n,l;if(!o)return 0;s=s||o;if(typeof(o.length)!='undefined'){for(n=0,l=o.length;n<l;n++){if(cb.call(s,o[n],n,o)===false)return 0;}}else{for(n in o){if(o.hasOwnProperty(n)){if(cb.call(s,o[n],n,o)===false)return 0;}}}return 1;},map:function(a,f){var o=[];tinymce.each(a,function(v){o.push(f(v));});return o;},grep:function(a,f){var o=[];tinymce.each(a,function(v){if(!f||f(v))o.push(v);});return o;},inArray:function(a,v){var i,l;if(a){for(i=0,l=a.length;i<l;i++){if(a[i]===v)return i;}}return-1;},extend:function(o,e){var i,a=arguments;for(i=1;i<a.length;i++){e=a[i];tinymce.each(e,function(v,n){if(typeof(v)!=='undefined')o[n]=v;});}return o;},trim:function(s){return(s?''+s:'').replace(/^\s*|\s*$/g,'');},create:function(s,p){var t=this,sp,ns,cn,scn,c,de=0;s=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(s);cn=s[3].match(/(^|\.)(\w+)$/i)[2];ns=t.createNS(s[3].replace(/\.\w+$/,''));if(ns[cn])return;if(s[2]=='static'){ns[cn]=p;if(this.onCreate)this.onCreate(s[2],s[3],ns[cn]);return;}if(!p[cn]){p[cn]=function(){};de=1;}ns[cn]=p[cn];t.extend(ns[cn].prototype,p);if(s[5]){sp=t.resolve(s[5]).prototype;scn=s[5].match(/\.(\w+)$/i)[1];c=ns[cn];if(de){ns[cn]=function(){return sp[scn].apply(this,arguments);};}else{ns[cn]=function(){this.parent=sp[scn];return c.apply(this,arguments);};}ns[cn].prototype[cn]=ns[cn];t.each(sp,function(f,n){ns[cn].prototype[n]=sp[n];});t.each(p,function(f,n){if(sp[n]){ns[cn].prototype[n]=function(){this.parent=sp[n];return f.apply(this,arguments);};}else{if(n!=cn)ns[cn].prototype[n]=f;}});}t.each(p['static'],function(f,n){ns[cn][n]=f;});if(this.onCreate)this.onCreate(s[2],s[3],ns[cn].prototype);},walk:function(o,f,n,s){s=s||this;if(o){if(n)o=o[n];tinymce.each(o,function(o,i){if(f.call(s,o,i,n)===false)return false;tinymce.walk(o,f,n,s);});}},createNS:function(n,o){var i,v;o=o||window;n=n.split('.');for(i=0;i<n.length;i++){v=n[i];if(!o[v])o[v]={};o=o[v];}return o;},resolve:function(n,o){var i,l;o=o||window;n=n.split('.');for(i=0,l=n.length;i<l;i++){o=o[n[i]];if(!o)break;}return o;},addUnload:function(f,s){var t=this,w=window;f={func:f,scope:s||this};if(!t.unloads){function unload(){var li=t.unloads,o,n;if(li){for(n in li){o=li[n];if(o&&o.func)o.func.call(o.scope,1);}if(w.detachEvent){w.detachEvent('onbeforeunload',fakeUnload);w.detachEvent('onunload',unload);}else if(w.removeEventListener)w.removeEventListener('unload',unload,false);t.unloads=o=li=w=unload=null;if(window.CollectGarbage)window.CollectGarbage();}};function fakeUnload(){var d=document;if(d.readyState=='interactive'){function stop(){d.detachEvent('onstop',stop);unload();d=null;};d.attachEvent('onstop',stop);window.setTimeout(function(){d.detachEvent('onstop',stop);},0);}};if(w.attachEvent){w.attachEvent('onunload',unload);w.attachEvent('onbeforeunload',fakeUnload);}else if(w.addEventListener)w.addEventListener('unload',unload,false);t.unloads=[f];}else t.unloads.push(f);return f;},removeUnload:function(f){var u=this.unloads,r=null;tinymce.each(u,function(o,i){if(o&&o.func==f){u.splice(i,1);r=f;return false;}});return r;},explode:function(s,d){return s?tinymce.map(s.split(d||','),tinymce.trim):s;},_addVer:function(u){var v;if(!this.query)return u;v=(u.indexOf('?')==-1?'?':'&')+this.query;if(u.indexOf('#')==-1)return u+v;return u.replace('#',v+'#');}};window.tinymce=tinymce;tinymce._init();tinymce.create('tinymce.util.Dispatcher',{scope:null,listeners:null,Dispatcher:function(s){this.scope=s||this;this.listeners=[];},add:function(cb,s){this.listeners.push({cb:cb,scope:s||this.scope});return cb;},addToTop:function(cb,s){this.listeners.unshift({cb:cb,scope:s||this.scope});return cb;},remove:function(cb){var l=this.listeners,o=null;tinymce.each(l,function(c,i){if(cb==c.cb){o=cb;l.splice(i,1);return false;}});return o;},dispatch:function(){var s,a=arguments,i,li=this.listeners,c;for(i=0;i<li.length;i++){c=li[i];s=c.cb.apply(c.scope,a);if(s===false)break;}return s;}});(function(){var each=tinymce.each;tinymce.create('tinymce.util.URI',{URI:function(u,s){var t=this,o,a,b;s=t.settings=s||{};if(/^(mailto|news|javascript|about):/i.test(u)||/^\s*#/.test(u)){t.source=u;return;}if(u.indexOf('/')===0&&u.indexOf('//')!==0)u=(s.base_uri?s.base_uri.protocol||'http':'http')+'://mce_host'+u;if(u.indexOf('://')===-1&&u.indexOf('//')!==0)u=(s.base_uri.protocol||'http')+'://mce_host'+t.toAbsPath(s.base_uri.path,u);u=u.replace(/@@/g,'(mce_at)');u=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(u);each(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(v,i){var s=u[i];if(s)s=s.replace(/\(mce_at\)/g,'@@');t[v]=s;});if(b=s.base_uri){if(!t.protocol)t.protocol=b.protocol;if(!t.userInfo)t.userInfo=b.userInfo;if(!t.port&&t.host=='mce_host')t.port=b.port;if(!t.host||t.host=='mce_host')t.host=b.host;t.source='';}},setPath:function(p){var t=this;p=/^(.*?)\/?(\w+)?$/.exec(p);t.path=p[0];t.directory=p[1];t.file=p[2];t.source='';t.getURI();},toRelative:function(u){var t=this,o;u=new tinymce.util.URI(u,{base_uri:t});if((u.host!='mce_host'&&t.host!=u.host&&u.host)||t.port!=u.port||t.protocol!=u.protocol)return u.getURI();o=t.toRelPath(t.path,u.path);if(u.query)o+='?'+u.query;if(u.anchor)o+='#'+u.anchor;return o;},toAbsolute:function(u,nh){var u=new tinymce.util.URI(u,{base_uri:this});return u.getURI(this.host==u.host?nh:0);},toRelPath:function(base,path){var items,bp=0,out='',i;base=base.substring(0,base.lastIndexOf('/'));base=base.split('/');items=path.split('/');if(base.length>=items.length){for(i=0;i<base.length;i++){if(i>=items.length||base[i]!=items[i]){bp=i+1;break;}}}if(base.length<items.length){for(i=0;i<items.length;i++){if(i>=base.length||base[i]!=items[i]){bp=i+1;break;}}}if(bp==1)return path;for(i=0;i<base.length-(bp-1);i++)out+="../";for(i=bp-1;i<items.length;i++){if(i!=bp-1)out+="/"+items[i];else out+=items[i];}return out;},toAbsPath:function(base,path){var i,nb=0,o=[];base=base.split('/');path=path.split('/');each(base,function(k){if(k)o.push(k);});base=o;for(i=path.length-1,o=[];i>=0;i--){if(path[i].length==0||path[i]==".")continue;if(path[i]=='..'){nb++;continue;}if(nb>0){nb--;continue;}o.push(path[i]);}i=base.length-nb;if(i<=0)return'/'+o.reverse().join('/');return'/'+base.slice(0,i).join('/')+'/'+o.reverse().join('/');},getURI:function(nh){var s,t=this;if(!t.source||nh){s='';if(!nh){if(t.protocol)s+=t.protocol+'://';if(t.userInfo)s+=t.userInfo+'@';if(t.host)s+=t.host;if(t.port)s+=':'+t.port;}if(t.path)s+=t.path;if(t.query)s+='?'+t.query;if(t.anchor)s+='#'+t.anchor;t.source=s;}return t.source;}});})();(function(){var each=tinymce.each;tinymce.create('static tinymce.util.Cookie',{getHash:function(n){var v=this.get(n),h;if(v){each(v.split('&'),function(v){v=v.split('=');h=h||{};h[unescape(v[0])]=unescape(v[1]);});}return h;},setHash:function(n,v,e,p,d,s){var o='';each(v,function(v,k){o+=(!o?'':'&')+escape(k)+'='+escape(v);});this.set(n,o,e,p,d,s);},get:function(n){var c=document.cookie,e,p=n+"=",b;if(!c)return;b=c.indexOf("; "+p);if(b==-1){b=c.indexOf(p);if(b!=0)return null;}else b+=2;e=c.indexOf(";",b);if(e==-1)e=c.length;return unescape(c.substring(b+p.length,e));},set:function(n,v,e,p,d,s){document.cookie=n+"="+escape(v)+((e)?"; expires="+e.toGMTString():"")+((p)?"; path="+escape(p):"")+((d)?"; domain="+d:"")+((s)?"; secure":"");},remove:function(n,p){var d=new Date();d.setTime(d.getTime()-1000);this.set(n,'',d,p,d);}});})();tinymce.create('static tinymce.util.JSON',{serialize:function(o){var i,v,s=tinymce.util.JSON.serialize,t;if(o==null)return'null';t=typeof o;if(t=='string'){v='\bb\tt\nn\ff\rr\""\'\'\\\\';return'"'+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'])/g,function(a,b){i=v.indexOf(b);if(i+1)return'\\'+v.charAt(i+1);a=b.charCodeAt().toString(16);return'\\u'+'0000'.substring(a.length)+a;})+'"';}if(t=='object'){if(o instanceof Array){for(i=0,v='[';i<o.length;i++)v+=(i>0?',':'')+s(o[i]);return v+']';}v='{';for(i in o)v+=typeof o[i]!='function'?(v.length>1?',"':'"')+i+'":'+s(o[i]):'';return v+'}';}return''+o;},parse:function(s){try{return eval('('+s+')');}catch(ex){}}});tinymce.create('static tinymce.util.XHR',{send:function(o){var x,t,w=window,c=0;o.scope=o.scope||this;o.success_scope=o.success_scope||o.scope;o.error_scope=o.error_scope||o.scope;o.async=o.async===false?false:true;o.data=o.data||'';function get(s){x=0;try{x=new ActiveXObject(s);}catch(ex){}return x;};x=w.XMLHttpRequest?new XMLHttpRequest():get('Microsoft.XMLHTTP')||get('Msxml2.XMLHTTP');if(x){if(x.overrideMimeType)x.overrideMimeType(o.content_type);x.open(o.type||(o.data?'POST':'GET'),o.url,o.async);if(o.content_type)x.setRequestHeader('Content-Type',o.content_type);x.send(o.data);function ready(){if(!o.async||x.readyState==4||c++>10000){if(o.success&&c<10000&&x.status==200)o.success.call(o.success_scope,''+x.responseText,x,o);else if(o.error)o.error.call(o.error_scope,c>10000?'TIMED_OUT':'GENERAL',x,o);x=null;}else w.setTimeout(ready,10);};if(!o.async)return ready();t=w.setTimeout(ready,10);}}});(function(){var extend=tinymce.extend,JSON=tinymce.util.JSON,XHR=tinymce.util.XHR;tinymce.create('tinymce.util.JSONRequest',{JSONRequest:function(s){this.settings=extend({},s);this.count=0;},send:function(o){var ecb=o.error,scb=o.success;o=extend(this.settings,o);o.success=function(c,x){c=JSON.parse(c);if(typeof(c)=='undefined'){c={error:'JSON Parse error.'};}if(c.error)ecb.call(o.error_scope||o.scope,c.error,x);else scb.call(o.success_scope||o.scope,c.result);};o.error=function(ty,x){ecb.call(o.error_scope||o.scope,ty,x);};o.data=JSON.serialize({id:o.id||'c'+(this.count++),method:o.method,params:o.params});o.content_type='application/json';XHR.send(o);},'static':{sendRPC:function(o){return new tinymce.util.JSONRequest().send(o);}}});}());(function(){var each=tinymce.each,is=tinymce.is;var isWebKit=tinymce.isWebKit,isIE=tinymce.isIE;tinymce.create('tinymce.dom.DOMUtils',{doc:null,root:null,files:null,listeners:{},pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,cache:{},idPattern:/^#[\w]+$/,elmPattern:/^[\w_*]+$/,elmClassPattern:/^([\w_]*)\.([\w_]+)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value"},DOMUtils:function(d,s){var t=this;t.doc=d;t.win=window;t.files={};t.cssFlicker=false;t.counter=0;t.boxModel=!tinymce.isIE||d.compatMode=="CSS1Compat";t.stdMode=d.documentMode===8;this.settings=s=tinymce.extend({keep_values:false,hex_colors:1,process_html:1},s);if(tinymce.isIE6){try{d.execCommand('BackgroundImageCache',false,true);}catch(e){t.cssFlicker=true;}}tinymce.addUnload(t.destroy,t);},getRoot:function(){var t=this,s=t.settings;return(s&&t.get(s.root_element))||t.doc.body;},getViewPort:function(w){var d,b;w=!w?this.win:w;d=w.document;b=this.boxModel?d.documentElement:d.body;return{x:w.pageXOffset||b.scrollLeft,y:w.pageYOffset||b.scrollTop,w:w.innerWidth||b.clientWidth,h:w.innerHeight||b.clientHeight};},getRect:function(e){var p,t=this,sr;e=t.get(e);p=t.getPos(e);sr=t.getSize(e);return{x:p.x,y:p.y,w:sr.w,h:sr.h};},getSize:function(e){var t=this,w,h;e=t.get(e);w=t.getStyle(e,'width');h=t.getStyle(e,'height');if(w.indexOf('px')===-1)w=0;if(h.indexOf('px')===-1)h=0;return{w:parseInt(w)||e.offsetWidth||e.clientWidth,h:parseInt(h)||e.offsetHeight||e.clientHeight};},getParent:function(n,f,r){var na,se=this.settings;n=this.get(n);if(se.strict_root)r=r||this.getRoot();if(is(f,'string')){na=f.toUpperCase();f=function(n){var s=false;if(n.nodeType==1&&na==='*'){s=true;return false;}each(na.split(','),function(v){if(n.nodeType==1&&((se.strict&&n.nodeName.toUpperCase()==v)||n.nodeName.toUpperCase()==v)){s=true;return false;}});return s;};}while(n){if(n==r)return null;if(f(n))return n;n=n.parentNode;}return null;},get:function(e){var n;if(e&&this.doc&&typeof(e)=='string'){n=e;e=this.doc.getElementById(e);if(e&&e.id!==n)return this.doc.getElementsByName(n)[1];}return e;},select:function(pa,s){var t=this,cs,c,pl,o=[],x,i,l,n;s=t.get(s)||t.doc;if(s.querySelectorAll){if(s!=t.doc){i=s.id;s.id='_mc_tmp';pa='#_mc_tmp '+pa;}l=tinymce.grep(s.querySelectorAll(pa));s.id=i;return l;}if(t.settings.strict){function get(s,n){return s.getElementsByTagName(n.toLowerCase());};}else{function get(s,n){return s.getElementsByTagName(n);};}if(t.elmPattern.test(pa)){x=get(s,pa);for(i=0,l=x.length;i<l;i++)o.push(x[i]);return o;}if(t.elmClassPattern.test(pa)){pl=t.elmClassPattern.exec(pa);x=get(s,pl[1]||'*');c=' '+pl[2]+' ';for(i=0,l=x.length;i<l;i++){n=x[i];if(n.className&&(' '+n.className+' ').indexOf(c)!==-1)o.push(n);}return o;}function collect(n){if(!n.mce_save){n.mce_save=1;o.push(n);}};function collectIE(n){if(!n.getAttribute('mce_save')){n.setAttribute('mce_save','1');o.push(n);}};function find(n,f,r){var i,l,nl=get(r,n);for(i=0,l=nl.length;i<l;i++)f(nl[i]);};each(pa.split(','),function(v,i){v=tinymce.trim(v);if(t.elmPattern.test(v)){each(get(s,v),function(n){collect(n);});return;}if(t.elmClassPattern.test(v)){x=t.elmClassPattern.exec(v);each(get(s,x[1]),function(n){if(t.hasClass(n,x[2]))collect(n);});return;}if(!(cs=t.cache[pa])){cs='x=(function(cf, s) {';pl=v.split(' ');each(pl,function(v){var p=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@([\w\\]+)([\^\$\*!]?=)([\w\\]+)\])?(?:\:([\w\\]+))?/i.exec(v);p[1]=p[1]||'*';cs+='find("'+p[1]+'", function(n) {';if(p[2])cs+='if (n.id !== "'+p[2]+'") return;';if(p[3]){cs+='var c = " " + n.className + " ";';cs+='if (';c='';each(p[3].split('.'),function(v){if(v)c+=(c?'||':'')+'c.indexOf(" '+v+' ") === -1';});cs+=c+') return;';}});cs+='cf(n);';for(i=pl.length-1;i>=0;i--)cs+='}, '+(i?'n':'s')+');';cs+='})';t.cache[pa]=cs=eval(cs);}cs(isIE?collectIE:collect,s);});each(o,function(n){if(isIE)n.removeAttribute('mce_save');else delete n.mce_save;});return o;},add:function(p,n,a,h,c){var t=this;return this.run(p,function(p){var e,k;e=is(n,'string')?t.doc.createElement(n):n;if(a){for(k in a){if(a.hasOwnProperty(k)&&!is(a[k],'object'))t.setAttrib(e,k,''+a[k]);}if(a.style&&!is(a.style,'string')){each(a.style,function(v,n){t.setStyle(e,n,v);});}}if(h){if(h.nodeType)e.appendChild(h);else t.setHTML(e,h);}return!c?p.appendChild(e):e;});},create:function(n,a,h){return this.add(this.doc.createElement(n),n,a,h,1);},createHTML:function(n,a,h){var o='',t=this,k;o+='<'+n;for(k in a){if(a.hasOwnProperty(k))o+=' '+k+'="'+t.encode(a[k])+'"';}if(tinymce.is(h))return o+'>'+h+'</'+n+'>';return o+' />';},remove:function(n,k){return this.run(n,function(n){var p,g;p=n.parentNode;if(!p)return null;if(k){each(n.childNodes,function(c){p.insertBefore(c.cloneNode(true),n);});}return p.removeChild(n);});},setStyle:function(n,na,v){var t=this;return t.run(n,function(e){var s,i;s=e.style;na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(t.pixelStyles.test(na)&&(tinymce.is(v,'number')||/^[\-0-9\.]+$/.test(v)))v+='px';switch(na){case'opacity':if(isIE){s.filter=v===''?'':"alpha(opacity="+(v*100)+")";if(!n.currentStyle||!n.currentStyle.hasLayout)s.display='inline-block';}s[na]=s['-moz-opacity']=s['-khtml-opacity']=v||'';break;case'float':isIE?s.styleFloat=v:s.cssFloat=v;break;default:s[na]=v||'';}if(t.settings.update_styles)t.setAttrib(e,'mce_style');});},getStyle:function(n,na,c){n=this.get(n);if(!n)return false;if(this.doc.defaultView&&c){na=na.replace(/[A-Z]/g,function(a){return'-'+a;});try{return this.doc.defaultView.getComputedStyle(n,null).getPropertyValue(na);}catch(ex){return null;}}na=na.replace(/-(\D)/g,function(a,b){return b.toUpperCase();});if(na=='float')na=isIE?'styleFloat':'cssFloat';if(n.currentStyle&&c)return n.currentStyle[na];return n.style[na];},setStyles:function(e,o){var t=this,s=t.settings,ol;ol=s.update_styles;s.update_styles=0;each(o,function(v,n){t.setStyle(e,n,v);});s.update_styles=ol;if(s.update_styles)t.setAttrib(e,s.cssText);},setAttrib:function(e,n,v){var t=this;if(!e||!n)return;if(t.settings.strict)n=n.toLowerCase();return this.run(e,function(e){var s=t.settings;switch(n){case"style":if(s.keep_values){if(v&&!t._isRes(v))e.setAttribute('mce_style',v,2);else e.removeAttribute('mce_style',2);}e.style.cssText=v;break;case"class":e.className=v||'';break;case"src":case"href":if(s.keep_values){if(s.url_converter)v=s.url_converter.call(s.url_converter_scope||t,v,n,e);t.setAttrib(e,'mce_'+n,v,2);}break;case"shape":e.setAttribute('mce_style',v);break;}if(is(v)&&v!==null&&v.length!==0)e.setAttribute(n,''+v,2);else e.removeAttribute(n,2);});},setAttribs:function(e,o){var t=this;return this.run(e,function(e){each(o,function(v,n){t.setAttrib(e,n,v);});});},getAttrib:function(e,n,dv){var v,t=this;e=t.get(e);if(!e||e.nodeType!==1)return false;if(!is(dv))dv='';if(/^(src|href|style|coords|shape)$/.test(n)){v=e.getAttribute("mce_"+n);if(v)return v;}if(isIE&&t.props[n]){v=e[t.props[n]];v=v&&v.nodeValue?v.nodeValue:v;}if(!v)v=e.getAttribute(n,2);if(n==='style'){v=v||e.style.cssText;if(v){v=t.serializeStyle(t.parseStyle(v));if(t.settings.keep_values&&!t._isRes(v))e.setAttribute('mce_style',v);}}if(isWebKit&&n==="class"&&v)v=v.replace(/(apple|webkit)\-[a-z\-]+/gi,'');if(isIE){switch(n){case'rowspan':case'colspan':if(v===1)v='';break;case'size':if(v==='+0'||v===20)v='';break;case'width':case'height':case'vspace':if(v===0)v='';break;case'hspace':if(v===-1)v='';break;case'maxlength':case'tabindex':if(v===32768||v===2147483647)v='';break;case'compact':case'noshade':if(v===65535)return n;return dv;case'shape':v=v.toLowerCase();break;default:if(n.indexOf('on')===0&&v)v=(''+v).replace(/^function\s+anonymous\(\)\s+\{\s+(.*)\s+\}$/,'$1');}}return(v!==undefined&&v!==null&&v!=='')?''+v:dv;},getPos:function(n){var t=this,x=0,y=0,e,d=t.doc,r;n=t.get(n);if(n&&isIE){n=n.getBoundingClientRect();e=t.boxModel?d.documentElement:d.body;x=t.getStyle(t.select('html')[0],'borderWidth');x=(x=='medium'||t.boxModel&&!t.isIE6)&&2||x;n.top+=t.win.self!=t.win.top?2:0;return{x:n.left+e.scrollLeft-x,y:n.top+e.scrollTop-x};}r=n;while(r){x+=r.offsetLeft||0;y+=r.offsetTop||0;r=r.offsetParent;}r=n;while(r){if(!/^table-row|inline.*/i.test(t.getStyle(r,"display",1))){x-=r.scrollLeft||0;y-=r.scrollTop||0;}r=r.parentNode;if(r==d.body)break;}return{x:x,y:y};},parseStyle:function(st){var t=this,s=t.settings,o={};if(!st)return o;function compress(p,s,ot){var t,r,b,l;t=o[p+'-top'+s];if(!t)return;r=o[p+'-right'+s];if(t!=r)return;b=o[p+'-bottom'+s];if(r!=b)return;l=o[p+'-left'+s];if(b!=l)return;o[ot]=l;delete o[p+'-top'+s];delete o[p+'-right'+s];delete o[p+'-bottom'+s];delete o[p+'-left'+s];};function compress2(ta,a,b,c){var t;t=o[a];if(!t)return;t=o[b];if(!t)return;t=o[c];if(!t)return;o[ta]=o[a]+' '+o[b]+' '+o[c];delete o[a];delete o[b];delete o[c];};st=st.replace(/&(#?[a-z0-9]+);/g,'&$1_MCE_SEMI_');each(st.split(';'),function(v){var sv,ur=[];if(v){v=v.replace(/_MCE_SEMI_/g,';');v=v.replace(/url\([^\)]+\)/g,function(v){ur.push(v);return'url('+ur.length+')';});v=v.split(':');sv=tinymce.trim(v[1]);sv=sv.replace(/url\(([^\)]+)\)/g,function(a,b){return ur[parseInt(b)-1];});sv=sv.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});if(s.url_converter){sv=sv.replace(/url\([\'\"]?([^\)\'\"]+)[\'\"]?\)/g,function(x,c){return'url('+s.url_converter.call(s.url_converter_scope||t,t.decode(c),'style',null)+')';});}o[tinymce.trim(v[0]).toLowerCase()]=sv;}});compress("border","","border");compress("border","-width","border-width");compress("border","-color","border-color");compress("border","-style","border-style");compress("padding","","padding");compress("margin","","margin");compress2('border','border-width','border-style','border-color');if(isIE){if(o.border=='medium none')o.border='';}return o;},serializeStyle:function(o){var s='';each(o,function(v,k){if(k&&v){if(tinymce.isGecko&&k.indexOf('-moz-')===0)return;switch(k){case'color':case'background-color':v=v.toLowerCase();break;}s+=(s?' ':'')+k+': '+v+';';}});return s;},loadCSS:function(u){var t=this,d=t.doc;if(!u)u='';each(u.split(','),function(u){if(t.files[u])return;t.files[u]=true;t.add(t.select('head')[0],'link',{rel:'stylesheet',href:tinymce._addVer(u)});});},addClass:function(e,c){return this.run(e,function(e){var o;if(!c)return 0;if(this.hasClass(e,c))return e.className;o=this.removeClass(e,c);return e.className=(o!=''?(o+' '):'')+c;});},removeClass:function(e,c){var t=this,re;return t.run(e,function(e){var v;if(t.hasClass(e,c)){if(!re)re=new RegExp("(^|\\s+)"+c+"(\\s+|$)","g");v=e.className.replace(re,' ');return e.className=tinymce.trim(v!=' '?v:'');}return e.className;});},hasClass:function(n,c){n=this.get(n);if(!n||!c)return false;return(' '+n.className+' ').indexOf(' '+c+' ')!==-1;},show:function(e){return this.setStyle(e,'display','block');},hide:function(e){return this.setStyle(e,'display','none');},isHidden:function(e){e=this.get(e);return e.style.display=='none'||this.getStyle(e,'display')=='none';},uniqueId:function(p){return(!p?'mce_':p)+(this.counter++);},setHTML:function(e,h){var t=this;return this.run(e,function(e){var x,i,nl,n,p,x;h=t.processHTML(h);if(isIE){function set(){try{e.innerHTML='<br />'+h;e.removeChild(e.firstChild);}catch(ex){while(e.firstChild)e.firstChild.removeNode();x=t.create('div');x.innerHTML='<br />'+h;each(x.childNodes,function(n,i){if(i)e.appendChild(n);});}};if(t.settings.fix_ie_paragraphs)h=h.replace(/<p><\/p>|<p([^>]+)><\/p>|<p[^\/+]\/>/gi,'<p$1 mce_keep="true"> </p>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("p");for(i=nl.length-1,x=0;i>=0;i--){n=nl[i];if(!n.hasChildNodes()){if(!n.mce_keep){x=1;break;}n.removeAttribute('mce_keep');}}}if(x){h=h.replace(/<p([^>]+)>|<p>/g,'<div$1 mce_tmp="1">');h=h.replace(/<\/p>/g,'</div>');set();if(t.settings.fix_ie_paragraphs){nl=e.getElementsByTagName("DIV");for(i=nl.length-1;i>=0;i--){n=nl[i];if(n.mce_tmp){p=t.doc.createElement('p');n.cloneNode(false).outerHTML.replace(/([a-z0-9\-_]+)=/gi,function(a,b){var v;if(b!=='mce_tmp'){v=n.getAttribute(b);if(!v&&b==='class')v=n.className;p.setAttribute(b,v);}});for(x=0;x<n.childNodes.length;x++)p.appendChild(n.childNodes[x].cloneNode(true));n.swapNode(p);}}}}}else e.innerHTML=h;return h;});},processHTML:function(h){var t=this,s=t.settings;if(!s.process_html)return h;if(tinymce.isGecko){h=h.replace(/<(\/?)strong>|<strong( [^>]+)>/gi,'<$1b$2>');h=h.replace(/<(\/?)em>|<em( [^>]+)>/gi,'<$1i$2>');}else if(isIE)h=h.replace(/'/g,''');h=h.replace(/<a( )([^>]+)\/>|<a\/>/gi,'<a$1$2></a>');if(s.keep_values){h=h.replace(/<!\[CDATA\[([\s\S]+)\]\]>/g,'<!--[CDATA[$1]]-->');if(/<script|style/.test(h)){function trim(s){s=s.replace(/^[\r\n]*|[\r\n]*$/g,'');s=s.replace(/^\s*(\/\/\s*<!--|\/\/\s*<\[CDATA\[|<!--|<\[CDATA\[)[\r\n]*/g,'');s=s.replace(/\s*(\/\/\s*\]\]>|\/\/\s*-->|\]\]>|-->)\s*$/g,'');return s;};h=h.replace(/<script([^>]+|)>([\s\S]*?)<\/script>/g,function(v,a,b){b=trim(b);if(!a)a=' type="text/javascript"';if(b)b='<!--\n'+b+'\n// -->';return'<mce:script'+a+'>'+b+'</mce:script>';});h=h.replace(/<style([^>]+|)>([\s\S]*?)<\/style>/g,function(v,a,b){b=trim(b);return'<mce:style'+a+'><!--\n'+b+'\n--></mce:style><style'+a+' mce_bogus="1">'+b+'</style>';});}h=h.replace(/<([\w:]+) [^>]*(src|href|style|shape|coords)[^>]*>/gi,function(a,n){function handle(m,b,c){var u=c;if(a.indexOf('mce_'+b)!=-1)return m;if(b=='style'){if(t._isRes(c))return m;if(s.hex_colors){u=u.replace(/rgb\([^\)]+\)/g,function(v){return t.toHex(v);});}if(s.url_converter){u=u.replace(/url\([\'\"]?([^\)\'\"]+)\)/g,function(x,c){return'url('+t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n))+')';});}}else if(b!='coords'&&b!='shape'){if(s.url_converter)u=t.encode(s.url_converter.call(s.url_converter_scope||t,t.decode(c),b,n));}return' '+b+'="'+c+'" mce_'+b+'="'+u+'"';};a=a.replace(/ (src|href|style|coords|shape)=[\"]([^\"]+)[\"]/gi,handle);a=a.replace(/ (src|href|style|coords|shape)=[\']([^\']+)[\']/gi,handle);return a.replace(/ (src|href|style|coords|shape)=([^\s\"\'>]+)/gi,handle);});}return h;},getOuterHTML:function(e){var d;e=this.get(e);if(!e)return null;if(isIE)return e.outerHTML;d=(e.ownerDocument||this.doc).createElement("body");d.appendChild(e.cloneNode(true));return d.innerHTML;},setOuterHTML:function(e,h,d){var t=this;return this.run(e,function(e){var n,tp;e=t.get(e);d=d||e.ownerDocument||t.doc;if(isIE&&e.nodeType==1)e.outerHTML=h;else{tp=d.createElement("body");tp.innerHTML=h;n=tp.lastChild;while(n){t.insertAfter(n.cloneNode(true),e);n=n.previousSibling;}t.remove(e);}});},decode:function(s){var e;if(/&[^;]+;/.test(s)){e=this.doc.createElement("div");e.innerHTML=s;return!e.firstChild?s:e.firstChild.nodeValue;}return s;},encode:function(s){return s?(''+s).replace(/[<>&\"]/g,function(c,b){switch(c){case'&':return'&';case'"':return'"';case'<':return'<';case'>':return'>';}return c;}):s;},insertAfter:function(n,r){var t=this;r=t.get(r);return this.run(n,function(n){var p,ns;p=r.parentNode;ns=r.nextSibling;if(ns)p.insertBefore(n,ns);else p.appendChild(n);return n;});},isBlock:function(n){if(n.nodeType&&n.nodeType!==1)return false;n=n.nodeName||n;return/^(H[1-6]|HR|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP)$/.test(n);},replace:function(n,o,k){if(is(o,'array'))n=n.cloneNode(true);return this.run(o,function(o){if(k){each(o.childNodes,function(c){n.appendChild(c.cloneNode(true));});}return o.parentNode.replaceChild(n,o);});},toHex:function(s){var c=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(s);function hex(s){s=parseInt(s).toString(16);return s.length>1?s:'0'+s;};if(c){s='#'+hex(c[1])+hex(c[2])+hex(c[3]);return s;}return s;},getClasses:function(){var t=this,cl=[],i,lo={},f=t.settings.class_filter,ov;if(t.classes)return t.classes;function addClasses(s){each(s.imports,function(r){addClasses(r);});each(s.cssRules||s.rules,function(r){switch(r.type||1){case 1:if(r.selectorText){each(r.selectorText.split(','),function(v){v=v.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(v)||!/\.[\w\-]+$/.test(v))return;ov=v;v=v.replace(/.*\.([a-z0-9_\-]+).*/i,'$1');if(f&&!(v=f(v,ov)))return;if(!lo[v]){cl.push({'class':v});lo[v]=1;}});}break;case 3:addClasses(r.styleSheet);break;}});};try{each(t.doc.styleSheets,addClasses);}catch(ex){}if(cl.length>0)t.classes=cl;return cl;},run:function(e,f,s){var t=this,o;if(t.doc&&typeof(e)==='string')e=t.doc.getElementById(e);if(!e)return false;s=s||this;if(!e.nodeType&&(e.length||e.length===0)){o=[];each(e,function(e,i){if(e){if(typeof(e)=='string')e=t.doc.getElementById(e);o.push(f.call(s,e,i));}});return o;}return f.call(s,e);},getAttribs:function(n){var o;n=this.get(n);if(!n)return[];if(isIE){o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;}return n.attributes;},destroy:function(s){var t=this;t.win=t.doc=t.root=null;if(!s)tinymce.removeUnload(t.destroy);},_isRes:function(c){return/^(top|left|bottom|right|width|height)/i.test(c)||/;\s*(top|left|bottom|right|width|height)/i.test(c);}});tinymce.DOM=new tinymce.dom.DOMUtils(document,{process_html:0});})();(function(){var each=tinymce.each,DOM=tinymce.DOM,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit,Event;tinymce.create('static tinymce.dom.Event',{inits:[],events:[],add:function(o,n,f,s){var cb,t=this,el=t.events,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.add(o,n,f,s));});return r;}o=DOM.get(o);if(!o)return;cb=function(e){e=e||window.event;if(e&&!e.target&&isIE)e.target=e.srcElement;if(!s)return f(e);return f.call(s,e);};if(n=='unload'){tinymce.unloads.unshift({func:cb});return cb;}if(n=='init'){if(t.domLoaded)cb();else t.inits.push(cb);return cb;}el.push({obj:o,name:n,func:f,cfunc:cb,scope:s});t._add(o,n,cb);return f;},remove:function(o,n,f){var t=this,a=t.events,s=false,r;if(o&&o instanceof Array){r=[];each(o,function(o){o=DOM.get(o);r.push(t.remove(o,n,f));});return r;}o=DOM.get(o);each(a,function(e,i){if(e.obj==o&&e.name==n&&(!f||(e.func==f||e.cfunc==f))){a.splice(i,1);t._remove(o,n,e.cfunc);s=true;return false;}});return s;},clear:function(o){var t=this,a=t.events,i,e;if(o){o=DOM.get(o);for(i=a.length-1;i>=0;i--){e=a[i];if(e.obj===o){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;a.splice(i,1);}}}},cancel:function(e){if(!e)return false;this.stop(e);return this.prevent(e);},stop:function(e){if(e.stopPropagation)e.stopPropagation();else e.cancelBubble=true;return false;},prevent:function(e){if(e.preventDefault)e.preventDefault();else e.returnValue=false;return false;},_unload:function(){var t=Event;each(t.events,function(e,i){t._remove(e.obj,e.name,e.cfunc);e.obj=e.cfunc=null;});t.events=[];t=null;},_add:function(o,n,f){if(o.attachEvent)o.attachEvent('on'+n,f);else if(o.addEventListener)o.addEventListener(n,f,false);else o['on'+n]=f;},_remove:function(o,n,f){if(o){try{if(o.detachEvent)o.detachEvent('on'+n,f);else if(o.removeEventListener)o.removeEventListener(n,f,false);else o['on'+n]=null;}catch(ex){}}},_pageInit:function(){var e=Event;e._remove(window,'DOMContentLoaded',e._pageInit);e.domLoaded=true;each(e.inits,function(c){c();});e.inits=[];},_wait:function(){var t;if(window.tinyMCE_GZ&&tinyMCE_GZ.loaded){Event.domLoaded=1;return;}if(isIE&&document.location.protocol!='https:'){document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');DOM.get("__ie_onload").onreadystatechange=function(){if(this.readyState=="complete"){Event._pageInit();DOM.get("__ie_onload").onreadystatechange=null;}};}else{Event._add(window,'DOMContentLoaded',Event._pageInit,Event);if(isIE||isWebKit){t=setInterval(function(){if(/loaded|complete/.test(document.readyState)){clearInterval(t);Event._pageInit();}},10);}}}});Event=tinymce.dom.Event;Event._wait();tinymce.addUnload(Event._unload);})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.Element',{Element:function(id,s){var t=this,dom,el;s=s||{};t.id=id;t.dom=dom=s.dom||tinymce.DOM;t.settings=s;if(!tinymce.isIE)el=t.dom.get(t.id);each(['getPos','getRect','getParent','add','setStyle','getStyle','setStyles','setAttrib','setAttribs','getAttrib','addClass','removeClass','hasClass','getOuterHTML','setOuterHTML','remove','show','hide','isHidden','setHTML','get'],function(k){t[k]=function(){var a=arguments,o;if(tinymce.isOpera){a=[id];each(arguments,function(v){a.push(v);});}else Array.prototype.unshift.call(a,el||id);o=dom[k].apply(dom,a);t.update(k);return o;};});},on:function(n,f,s){return tinymce.dom.Event.add(this.id,n,f,s);},getXY:function(){return{x:parseInt(this.getStyle('left')),y:parseInt(this.getStyle('top'))};},getSize:function(){var n=this.dom.get(this.id);return{w:parseInt(this.getStyle('width')||n.clientWidth),h:parseInt(this.getStyle('height')||n.clientHeight)};},moveTo:function(x,y){this.setStyles({left:x,top:y});},moveBy:function(x,y){var p=this.getXY();this.moveTo(p.x+x,p.y+y);},resizeTo:function(w,h){this.setStyles({width:w,height:h});},resizeBy:function(w,h){var s=this.getSize();this.resizeTo(s.w+w,s.h+h);},update:function(k){var t=this,b,dom=t.dom;if(tinymce.isIE6&&t.settings.blocker){k=k||'';if(k.indexOf('get')===0||k.indexOf('has')===0||k.indexOf('is')===0)return;if(k=='remove'){dom.remove(t.blocker);return;}if(!t.blocker){t.blocker=dom.uniqueId();b=dom.add(t.settings.container||dom.getRoot(),'iframe',{id:t.blocker,style:'position:absolute;',frameBorder:0,src:'javascript:""'});dom.setStyle(b,'opacity',0);}else b=dom.get(t.blocker);dom.setStyle(b,'left',t.getStyle('left',1));dom.setStyle(b,'top',t.getStyle('top',1));dom.setStyle(b,'width',t.getStyle('width',1));dom.setStyle(b,'height',t.getStyle('height',1));dom.setStyle(b,'display',t.getStyle('display',1));dom.setStyle(b,'zIndex',parseInt(t.getStyle('zIndex',1)||0)-1);}}});})();(function(){function trimNl(s){return s.replace(/[\n\r]+/g,'');};var is=tinymce.is,isIE=tinymce.isIE,each=tinymce.each;tinymce.create('tinymce.dom.Selection',{Selection:function(dom,win,serializer){var t=this;t.dom=dom;t.win=win;t.serializer=serializer;tinymce.addUnload(t.destroy,t);},getContent:function(s){var t=this,r=t.getRng(),e=t.dom.create("body"),se=t.getSel(),wb,wa,n;s=s||{};wb=wa='';s.get=true;s.format=s.format||'html';if(s.format=='text')return t.isCollapsed()?'':(r.text||(se.toString?se.toString():''));if(r.cloneContents){n=r.cloneContents();if(n)e.appendChild(n);}else if(is(r.item)||is(r.htmlText))e.innerHTML=r.item?r.item(0).outerHTML:r.htmlText;else e.innerHTML=r.toString();if(/^\s/.test(e.innerHTML))wb=' ';if(/\s+$/.test(e.innerHTML))wa=' ';s.getInner=true;return t.isCollapsed()?'':wb+t.serializer.serialize(e,s)+wa;},setContent:function(h,s){var t=this,r=t.getRng(),c,d=t.win.document;s=s||{format:'html'};s.set=true;h=t.dom.processHTML(h);if(r.insertNode){h+='<span id="__caret">_</span>';r.deleteContents();r.insertNode(t.getRng().createContextualFragment(h));c=t.dom.get('__caret');r=d.createRange();r.setStartBefore(c);r.setEndAfter(c);t.setRng(r);d.execCommand('Delete',false,null);t.dom.remove('__caret');}else{if(r.item){d.execCommand('Delete',false,null);r=t.getRng();}r.pasteHTML(h);}},getStart:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(1);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.firstChild;return e;}else{e=r.startContainer;if(e.nodeName=='BODY')return e.firstChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getEnd:function(){var t=this,r=t.getRng(),e;if(isIE){if(r.item)return r.item(0);r=r.duplicate();r.collapse(0);e=r.parentElement();if(e&&e.nodeName=='BODY')return e.lastChild;return e;}else{e=r.endContainer;if(e.nodeName=='BODY')return e.lastChild;return t.dom.getParent(e,function(n){return n.nodeType==1;});}},getBookmark:function(si){var t=this,r=t.getRng(),tr,sx,sy,vp=t.dom.getViewPort(t.win),e,sp,bp,le,c=-0xFFFFFF,s,ro=t.dom.getRoot(),wb=0,wa=0,nv;sx=vp.x;sy=vp.y;if(si=='simple')return{rng:r,scrollX:sx,scrollY:sy};if(isIE){if(r.item){e=r.item(0);each(t.dom.select(e.nodeName),function(n,i){if(e==n){sp=i;return false;}});return{tag:e.nodeName,index:sp,scrollX:sx,scrollY:sy};}tr=t.dom.doc.body.createTextRange();tr.moveToElementText(ro);tr.collapse(true);bp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(true);sp=Math.abs(tr.move('character',c));tr=r.duplicate();tr.collapse(false);le=Math.abs(tr.move('character',c))-sp;return{start:sp-bp,length:le,scrollX:sx,scrollY:sy};}e=t.getNode();s=t.getSel();if(!s)return null;if(e&&e.nodeName=='IMG'){return{scrollX:sx,scrollY:sy};}function getPos(r,sn,en){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={};while((n=w.nextNode())!=null){if(n==sn)d.start=p;if(n==en){d.end=p;return d;}p+=trimNl(n.nodeValue||'').length;}return null;};if(s.anchorNode==s.focusNode&&s.anchorOffset==s.focusOffset){e=getPos(ro,s.anchorNode,s.focusNode);if(!e)return{scrollX:sx,scrollY:sy};trimNl(s.anchorNode.nodeValue||'').replace(/^\s+/,function(a){wb=a.length;});return{start:Math.max(e.start+s.anchorOffset-wb,0),end:Math.max(e.end+s.focusOffset-wb,0),scrollX:sx,scrollY:sy,beg:s.anchorOffset-wb==0};}else{e=getPos(ro,r.startContainer,r.endContainer);if(!e)return{scrollX:sx,scrollY:sy};return{start:Math.max(e.start+r.startOffset-wb,0),end:Math.max(e.end+r.endOffset-wa,0),scrollX:sx,scrollY:sy,beg:r.startOffset-wb==0};}},moveToBookmark:function(b){var t=this,r=t.getRng(),s=t.getSel(),ro=t.dom.getRoot(),sd,nvl,nv;function getPos(r,sp,ep){var w=t.dom.doc.createTreeWalker(r,NodeFilter.SHOW_TEXT,null,false),n,p=0,d={},o,v,wa,wb;while((n=w.nextNode())!=null){wa=wb=0;nv=n.nodeValue||'';nvl=trimNl(nv).length;p+=nvl;if(p>=sp&&!d.startNode){o=sp-(p-nvl);if(b.beg&&o>=nvl)continue;d.startNode=n;d.startOffset=o+wb;}if(p>=ep){d.endNode=n;d.endOffset=ep-(p-nvl)+wb;return d;}}return null;};if(!b)return false;t.win.scrollTo(b.scrollX,b.scrollY);if(isIE){if(r=b.rng){try{r.select();}catch(ex){}return true;}t.win.focus();if(b.tag){r=ro.createControlRange();each(t.dom.select(b.tag),function(n,i){if(i==b.index)r.addElement(n);});}else{try{if(b.start<0)return true;r=s.createRange();r.moveToElementText(ro);r.collapse(true);r.moveStart('character',b.start);r.moveEnd('character',b.length);}catch(ex2){return true;}}try{r.select();}catch(ex){}return true;}if(!s)return false;if(b.rng){s.removeAllRanges();s.addRange(b.rng);}else{if(is(b.start)&&is(b.end)){try{sd=getPos(ro,b.start,b.end);if(sd){r=t.dom.doc.createRange();r.setStart(sd.startNode,sd.startOffset);r.setEnd(sd.endNode,sd.endOffset);s.removeAllRanges();s.addRange(r);}if(!tinymce.isOpera)t.win.focus();}catch(ex){}}}},select:function(n,c){var t=this,r=t.getRng(),s=t.getSel(),b,fn,ln,d=t.win.document;function first(n){return n?d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode():null;};function last(n){var c,o,w;if(!n)return null;w=d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(c=w.nextNode())o=c;return o;};if(isIE){try{b=d.body;if(/^(IMG|TABLE)$/.test(n.nodeName)){r=b.createControlRange();r.addElement(n);}else{r=b.createTextRange();r.moveToElementText(n);}r.select();}catch(ex){}}else{if(c){fn=first(n);ln=last(n);if(fn&&ln){r=d.createRange();r.setStart(fn,0);r.setEnd(ln,ln.nodeValue.length);}else r.selectNode(n);}else r.selectNode(n);t.setRng(r);}return n;},isCollapsed:function(){var t=this,r=t.getRng(),s=t.getSel();if(!r||r.item)return false;return!s||r.boundingWidth==0||r.collapsed;},collapse:function(b){var t=this,r=t.getRng(),n;if(r.item){n=r.item(0);r=this.win.document.body.createTextRange();r.moveToElementText(n);}r.collapse(!!b);t.setRng(r);},getSel:function(){var t=this,w=this.win;return w.getSelection?w.getSelection():w.document.selection;},getRng:function(){var t=this,s=t.getSel(),r;try{if(s)r=s.rangeCount>0?s.getRangeAt(0):(s.createRange?s.createRange():t.win.document.createRange());}catch(ex){}if(!r)r=isIE?t.win.document.body.createTextRange():t.win.document.createRange();return r;},setRng:function(r){var s;if(!isIE){s=this.getSel();if(s){s.removeAllRanges();s.addRange(r);}}else{try{r.select();}catch(ex){}}},setNode:function(n){var t=this;t.setContent(t.dom.getOuterHTML(n));return n;},getNode:function(){var t=this,r=t.getRng(),s=t.getSel(),e;if(!isIE){if(!r)return t.dom.getRoot();e=r.commonAncestorContainer;if(!r.collapsed){if(tinymce.isWebKit&&s.anchorNode&&s.anchorNode.nodeType==1)return s.anchorNode.childNodes[s.anchorOffset];if(r.startContainer==r.endContainer){if(r.startOffset-r.endOffset<2){if(r.startContainer.hasChildNodes())e=r.startContainer.childNodes[r.startOffset];}}}return t.dom.getParent(e,function(n){return n.nodeType==1;});}return r.item?r.item(0):r.parentElement();},destroy:function(s){var t=this;t.win=null;if(!s)tinymce.removeUnload(t.destroy);}});})();(function(){tinymce.create('tinymce.dom.XMLWriter',{node:null,XMLWriter:function(s){function getXML(){var i=document.implementation;if(!i||!i.createDocument){try{return new ActiveXObject('MSXML2.DOMDocument');}catch(ex){}try{return new ActiveXObject('Microsoft.XmlDom');}catch(ex){}}else return i.createDocument('','',null);};this.doc=getXML();this.valid=tinymce.isOpera||tinymce.isWebKit;this.reset();},reset:function(){var t=this,d=t.doc;if(d.firstChild)d.removeChild(d.firstChild);t.node=d.appendChild(d.createElement("html"));},writeStartElement:function(n){var t=this;t.node=t.node.appendChild(t.doc.createElement(n));},writeAttribute:function(n,v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.setAttribute(n,v);},writeEndElement:function(){this.node=this.node.parentNode;},writeFullEndElement:function(){var t=this,n=t.node;n.appendChild(t.doc.createTextNode(""));t.node=n.parentNode;},writeText:function(v){if(this.valid)v=v.replace(/>/g,'%MCGT%');this.node.appendChild(this.doc.createTextNode(v));},writeCDATA:function(v){this.node.appendChild(this.doc.createCDATA(v));},writeComment:function(v){this.node.appendChild(this.doc.createComment(v.replace(/\-\-/g,' ')));},getContent:function(){var h;h=this.doc.xml||new XMLSerializer().serializeToString(this.doc);h=h.replace(/<\?[^?]+\?>|<html>|<\/html>|<html\/>|<!DOCTYPE[^>]+>/g,'');h=h.replace(/ ?\/>/g,' />');if(this.valid)h=h.replace(/\%MCGT%/g,'>');return h;}});})();(function(){tinymce.create('tinymce.dom.StringWriter',{str:null,tags:null,count:0,settings:null,indent:null,StringWriter:function(s){this.settings=tinymce.extend({indent_char:' ',indentation:1},s);this.reset();},reset:function(){this.indent='';this.str="";this.tags=[];this.count=0;},writeStartElement:function(n){this._writeAttributesEnd();this.writeRaw('<'+n);this.tags.push(n);this.inAttr=true;this.count++;this.elementCount=this.count;},writeAttribute:function(n,v){var t=this;t.writeRaw(" "+t.encode(n)+'="'+t.encode(v)+'"');},writeEndElement:function(){var n;if(this.tags.length>0){n=this.tags.pop();if(this._writeAttributesEnd(1))this.writeRaw('</'+n+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeFullEndElement:function(){if(this.tags.length>0){this._writeAttributesEnd();this.writeRaw('</'+this.tags.pop()+'>');if(this.settings.indentation>0)this.writeRaw('\n');}},writeText:function(v){this._writeAttributesEnd();this.writeRaw(this.encode(v));this.count++;},writeCDATA:function(v){this._writeAttributesEnd();this.writeRaw('<![CDATA['+v+']]>');this.count++;},writeComment:function(v){this._writeAttributesEnd();this.writeRaw('<!-- '+v+'-->');this.count++;},writeRaw:function(v){this.str+=v;},encode:function(s){return s.replace(/[<>&"]/g,function(v){switch(v){case'<':return'<';case'>':return'>';case'&':return'&';case'"':return'"';}return v;});},getContent:function(){return this.str;},_writeAttributesEnd:function(s){if(!this.inAttr)return;this.inAttr=false;if(s&&this.elementCount==this.count){this.writeRaw(' />');return false;}this.writeRaw('>');return true;}});})();(function(){var extend=tinymce.extend,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher,isIE=tinymce.isIE,isGecko=tinymce.isGecko;function getIEAtts(n){var o=[];if(n.nodeName=='OBJECT')return n.attributes;n.cloneNode(false).outerHTML.replace(/([a-z0-9\:\-_]+)=/gi,function(a,b){o.push({specified:1,nodeName:b});});return o;};function wildcardToRE(s){return s.replace(/([?+*])/g,'.$1');};tinymce.create('tinymce.dom.Serializer',{Serializer:function(s){var t=this;t.key=0;t.onPreProcess=new Dispatcher(t);t.onPostProcess=new Dispatcher(t);if(tinymce.relaxedDomain&&tinymce.isGecko){t.writer=new tinymce.dom.StringWriter();}else{try{t.writer=new tinymce.dom.XMLWriter();}catch(ex){t.writer=new tinymce.dom.StringWriter();}}t.settings=s=extend({dom:tinymce.DOM,valid_nodes:0,node_filter:0,attr_filter:0,invalid_attrs:/^(mce_|_moz_)/,closed:/(br|hr|input|meta|img|link|param)/,entity_encoding:'named',entities:'160,nbsp,161,iexcl,162,cent,163,pound,164,curren,165,yen,166,brvbar,167,sect,168,uml,169,copy,170,ordf,171,laquo,172,not,173,shy,174,reg,175,macr,176,deg,177,plusmn,178,sup2,179,sup3,180,acute,181,micro,182,para,183,middot,184,cedil,185,sup1,186,ordm,187,raquo,188,frac14,189,frac12,190,frac34,191,iquest,192,Agrave,193,Aacute,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,201,Eacute,202,Ecirc,203,Euml,204,Igrave,205,Iacute,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,211,Oacute,212,Ocirc,213,Otilde,214,Ouml,215,times,216,Oslash,217,Ugrave,218,Uacute,219,Ucirc,220,Uuml,221,Yacute,222,THORN,223,szlig,224,agrave,225,aacute,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,233,eacute,234,ecirc,235,euml,236,igrave,237,iacute,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,243,oacute,244,ocirc,245,otilde,246,ouml,247,divide,248,oslash,249,ugrave,250,uacute,251,ucirc,252,uuml,253,yacute,254,thorn,255,yuml,402,fnof,913,Alpha,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,977,thetasym,978,upsih,982,piv,8226,bull,8230,hellip,8242,prime,8243,Prime,8254,oline,8260,frasl,8472,weierp,8465,image,8476,real,8482,trade,8501,alefsym,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8704,forall,8706,part,8707,exist,8709,empty,8711,nabla,8712,isin,8713,notin,8715,ni,8719,prod,8721,sum,8722,minus,8727,lowast,8730,radic,8733,prop,8734,infin,8736,ang,8743,and,8744,or,8745,cap,8746,cup,8747,int,8756,there4,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8804,le,8805,ge,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,338,OElig,339,oelig,352,Scaron,353,scaron,376,Yuml,710,circ,732,tilde,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,8211,ndash,8212,mdash,8216,lsquo,8217,rsquo,8218,sbquo,8220,ldquo,8221,rdquo,8222,bdquo,8224,dagger,8225,Dagger,8240,permil,8249,lsaquo,8250,rsaquo,8364,euro',valid_elements:'*[*]',extended_valid_elements:0,valid_child_elements:0,invalid_elements:0,fix_table_elements:0,fix_list_elements:true,fix_content_duplication:true,convert_fonts_to_spans:false,font_size_classes:0,font_size_style_values:0,apply_source_formatting:0,indent_mode:'simple',indent_char:'\t',indent_levels:1,remove_linebreaks:1,remove_redundant_brs:1},s);t.dom=s.dom;if(s.remove_redundant_brs){t.onPostProcess.add(function(se,o){o.content=o.content.replace(/<br \/>(\s*<\/li>)/g,'$1');});}if(s.fix_list_elements){t.onPreProcess.add(function(se,o){var nl,x,a=['ol','ul'],i,n,p,r=/^(OL|UL)$/,np;function prevNode(e,n){var a=n.split(','),i;while((e=e.previousSibling)!=null){for(i=0;i<a.length;i++){if(e.nodeName==a[i])return e;}}return null;};for(x=0;x<a.length;x++){nl=t.dom.select(a[x],o.node);for(i=0;i<nl.length;i++){n=nl[i];p=n.parentNode;if(r.test(p.nodeName)){np=prevNode(n,'LI');if(!np){np=t.dom.create('li');np.innerHTML=' ';np.appendChild(n);p.insertBefore(np,p.firstChild);}else np.appendChild(n);}}}});}if(s.fix_table_elements){t.onPreProcess.add(function(se,o){each(t.dom.select('table',o.node),function(e){var pa=t.dom.getParent(e,'H1,H2,H3,H4,H5,H6,P'),pa2,n,tm,pl=[],i,ns;if(pa){pa2=pa.cloneNode(false);pl.push(e);for(n=e;n=n.parentNode;){pl.push(n);if(n==pa)break;}tm=pa2;for(i=pl.length-1;i>=0;i--){if(i==pl.length-1){while(ns=pl[i-1].nextSibling)tm.appendChild(ns.parentNode.removeChild(ns));}else{n=pl[i].cloneNode(false);if(i!=0){while(ns=pl[i-1].nextSibling)n.appendChild(ns.parentNode.removeChild(ns));}tm=tm.appendChild(n);}}e=t.dom.insertAfter(e.parentNode.removeChild(e),pa);t.dom.insertAfter(e,pa);t.dom.insertAfter(pa2,e);}});});}},setEntities:function(s){var t=this,a,i,l={},re='',v;if(t.entityLookup)return;a=s.split(',');for(i=0;i<a.length;i+=2){v=a[i];if(v==34||v==38||v==60||v==62)continue;l[String.fromCharCode(a[i])]=a[i+1];v=parseInt(a[i]).toString(16);re+='\\u'+'0000'.substring(v.length)+v;}if(!re){t.settings.entity_encoding='raw';return;}t.entitiesRE=new RegExp('['+re+']','g');t.entityLookup=l;},setValidChildRules:function(s){this.childRules=null;this.addValidChildRules(s);},addValidChildRules:function(s){var t=this,inst,intr,bloc;if(!s)return;inst='A|BR|SPAN|BDO|MAP|OBJECT|IMG|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|#text|#comment';intr='A|BR|SPAN|BDO|OBJECT|APPLET|IMG|MAP|IFRAME|TT|I|B|U|S|STRIKE|BIG|SMALL|FONT|BASEFONT|EM|STRONG|DFN|CODE|Q|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|SUB|SUP|INPUT|SELECT|TEXTAREA|LABEL|BUTTON|#text|#comment';bloc='H[1-6]|P|DIV|ADDRESS|PRE|FORM|TABLE|LI|OL|UL|TD|CAPTION|BLOCKQUOTE|CENTER|DL|DT|DD|DIR|FIELDSET|FORM|NOSCRIPT|NOFRAMES|MENU|ISINDEX|SAMP';each(s.split(','),function(s){var p=s.split(/\[|\]/),re;s='';each(p[1].split('|'),function(v){if(s)s+='|';switch(v){case'%itrans':v=intr;break;case'%itrans_na':v=intr.substring(2);break;case'%istrict':v=inst;break;case'%istrict_na':v=inst.substring(2);break;case'%btrans':v=bloc;break;case'%bstrict':v=bloc;break;}s+=v;});re=new RegExp('^('+s.toLowerCase()+')$','i');each(p[0].split('/'),function(s){t.childRules=t.childRules||{};t.childRules[s]=re;});});s='';each(t.childRules,function(v,k){if(s)s+='|';s+=k;});t.parentElementsRE=new RegExp('^('+s.toLowerCase()+')$','i');},setRules:function(s){var t=this;t._setup();t.rules={};t.wildRules=[];t.validElements={};return t.addRules(s);},addRules:function(s){var t=this,dr;if(!s)return;t._setup();each(s.split(','),function(s){var p=s.split(/\[|\]/),tn=p[0].split('/'),ra,at,wat,va=[];if(dr)at=tinymce.extend([],dr.attribs);if(p.length>1){each(p[1].split('|'),function(s){var ar={},i;at=at||[];s=s.replace(/::/g,'~');s=/^([!\-])?([\w*.?~_\-]+|)([=:<])?(.+)?$/.exec(s);s[2]=s[2].replace(/~/g,':');if(s[1]=='!'){ra=ra||[];ra.push(s[2]);}if(s[1]=='-'){for(i=0;i<at.length;i++){if(at[i].name==s[2]){at.splice(i,1);return;}}}switch(s[3]){case'=':ar.defaultVal=s[4]||'';break;case':':ar.forcedVal=s[4];break;case'<':ar.validVals=s[4].split('?');break;}if(/[*.?]/.test(s[2])){wat=wat||[];ar.nameRE=new RegExp('^'+wildcardToRE(s[2])+'$');wat.push(ar);}else{ar.name=s[2];at.push(ar);}va.push(s[2]);});}each(tn,function(s,i){var pr=s.charAt(0),x=1,ru={};if(dr){if(dr.noEmpty)ru.noEmpty=dr.noEmpty;if(dr.fullEnd)ru.fullEnd=dr.fullEnd;if(dr.padd)ru.padd=dr.padd;}switch(pr){case'-':ru.noEmpty=true;break;case'+':ru.fullEnd=true;break;case'#':ru.padd=true;break;default:x=0;}tn[i]=s=s.substring(x);t.validElements[s]=1;if(/[*.?]/.test(tn[0])){ru.nameRE=new RegExp('^'+wildcardToRE(tn[0])+'$');t.wildRules=t.wildRules||{};t.wildRules.push(ru);}else{ru.name=tn[0];if(tn[0]=='@')dr=ru;t.rules[s]=ru;}ru.attribs=at;if(ra)ru.requiredAttribs=ra;if(wat){s='';each(va,function(v){if(s)s+='|';s+='('+wildcardToRE(v)+')';});ru.validAttribsRE=new RegExp('^'+s.toLowerCase()+'$');ru.wildAttribs=wat;}});});s='';each(t.validElements,function(v,k){if(s)s+='|';if(k!='@')s+=k;});t.validElementsRE=new RegExp('^('+wildcardToRE(s.toLowerCase())+')$');},findRule:function(n){var t=this,rl=t.rules,i,r;t._setup();r=rl[n];if(r)return r;rl=t.wildRules;for(i=0;i<rl.length;i++){if(rl[i].nameRE.test(n))return rl[i];}return null;},findAttribRule:function(ru,n){var i,wa=ru.wildAttribs;for(i=0;i<wa.length;i++){if(wa[i].nameRE.test(n))return wa[i];}return null;},serialize:function(n,o){var h,t=this;t._setup();o=o||{};o.format=o.format||'html';t.processObj=o;n=n.cloneNode(true);t.key=''+(parseInt(t.key)+1);if(!o.no_events){o.node=n;t.onPreProcess.dispatch(t,o);}t.writer.reset();t._serializeNode(n,o.getInner);o.content=t.writer.getContent();if(!o.no_events)t.onPostProcess.dispatch(t,o);t._postProcess(o);o.node=null;return tinymce.trim(o.content);},_postProcess:function(o){var t=this,s=t.settings,h=o.content,sc=[],p;if(o.format=='html'){p=t._protect({content:h,patterns:[{pattern:/(<script[^>]*>)(.*?)(<\/script>)/g},{pattern:/(<style[^>]*>)(.*?)(<\/style>)/g},{pattern:/(<pre[^>]*>)(.*?)(<\/pre>)/g,encode:1},{pattern:/(<!--\[CDATA\[)(.*?)(\]\]-->)/g}]});h=p.content;if(s.entity_encoding!=='raw')h=t._encode(h);if(!o.set){h=h.replace(/<p>\s+<\/p>|<p([^>]+)>\s+<\/p>/g,s.entity_encoding=='numeric'?'<p$1> </p>':'<p$1> </p>');if(s.remove_linebreaks){h=h.replace(/\r?\n|\r/g,' ');h=h.replace(/(<[^>]+>)\s+/g,'$1 ');h=h.replace(/\s+(<\/[^>]+>)/g,' $1');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object) ([^>]+)>\s+/g,'<$1 $2>');h=h.replace(/<(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>\s+/g,'<$1>');h=h.replace(/\s+<\/(p|h[1-6]|blockquote|hr|div|table|tbody|tr|td|body|head|html|title|meta|style|pre|script|link|object)>/g,'</$1>');}if(s.apply_source_formatting&&s.indent_mode=='simple'){h=h.replace(/<(\/?)(ul|hr|table|meta|link|tbody|tr|object|body|head|html|map)(|[^>]+)>\s*/g,'\n<$1$2$3>\n');h=h.replace(/\s*<(p|h[1-6]|blockquote|div|title|style|pre|script|td|li|area)(|[^>]+)>/g,'\n<$1$2>');h=h.replace(/<\/(p|h[1-6]|blockquote|div|title|style|pre|script|td|li)>\s*/g,'</$1>\n');h=h.replace(/\n\n/g,'\n');}}h=t._unprotect(h,p);h=h.replace(/<!--\[CDATA\[([\s\S]+)\]\]-->/g,'<![CDATA[$1]]>');if(s.entity_encoding=='raw')h=h.replace(/<p> <\/p>|<p([^>]+)> <\/p>/g,'<p$1>\u00a0</p>');}o.content=h;},_serializeNode:function(n,inn){var t=this,s=t.settings,w=t.writer,hc,el,cn,i,l,a,at,no,v,nn,ru,ar,iv;if(!s.node_filter||s.node_filter(n)){switch(n.nodeType){case 1:if(n.hasAttribute?n.hasAttribute('mce_bogus'):n.getAttribute('mce_bogus'))return;iv=false;hc=n.hasChildNodes();nn=n.getAttribute('mce_name')||n.nodeName.toLowerCase();if(isIE){if(n.scopeName!=='HTML'&&n.scopeName!=='html')nn=n.scopeName+':'+nn;}if(nn.indexOf('mce:')===0)nn=nn.substring(4);if(!t.validElementsRE.test(nn)||(t.invalidElementsRE&&t.invalidElementsRE.test(nn))||inn){iv=true;break;}if(isIE){if(s.fix_content_duplication){if(n.mce_serialized==t.key)return;n.mce_serialized=t.key;}if(nn.charAt(0)=='/')nn=nn.substring(1);}else if(isGecko){if(n.nodeName==='BR'&&n.getAttribute('type')=='_moz')return;}if(t.childRules){if(t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(nn)){iv=true;break;}}t.elementName=nn;}ru=t.findRule(nn);nn=ru.name||nn;if((!hc&&ru.noEmpty)||(isIE&&!nn)){iv=true;break;}if(ru.requiredAttribs){a=ru.requiredAttribs;for(i=a.length-1;i>=0;i--){if(this.dom.getAttrib(n,a[i])!=='')break;}if(i==-1){iv=true;break;}}w.writeStartElement(nn);if(ru.attribs){for(i=0,at=ru.attribs,l=at.length;i<l;i++){a=at[i];v=t._getAttrib(n,a);if(v!==null)w.writeAttribute(a.name,v);}}if(ru.validAttribsRE){at=isIE?getIEAtts(n):n.attributes;for(i=at.length-1;i>-1;i--){no=at[i];if(no.specified){a=no.nodeName.toLowerCase();if(s.invalid_attrs.test(a)||!ru.validAttribsRE.test(a))continue;ar=t.findAttribRule(ru,a);v=t._getAttrib(n,ar,a);if(v!==null)w.writeAttribute(a,v);}}}if(!hc&&ru.padd)w.writeText('\u00a0');break;case 3:if(t.childRules&&t.parentElementsRE.test(t.elementName)){if(!t.childRules[t.elementName].test(n.nodeName))return;}return w.writeText(n.nodeValue);case 4:return w.writeCDATA(n.nodeValue);case 8:return w.writeComment(n.nodeValue);}}else if(n.nodeType==1)hc=n.hasChildNodes();if(hc){cn=n.firstChild;while(cn){t._serializeNode(cn);t.elementName=nn;cn=cn.nextSibling;}}if(!iv){if(hc||!s.closed.test(nn))w.writeFullEndElement();else w.writeEndElement();}},_protect:function(o){var t=this;o.items=o.items||[];function enc(s){return s.replace(/[\r\n\\]/g,function(c){if(c==='\n')return'\\n';else if(c==='\\')return'\\\\';return'\\r';});};function dec(s){return s.replace(/\\[\\rn]/g,function(c){if(c==='\\n')return'\n';else if(c==='\\\\')return'\\';return'\r';});};each(o.patterns,function(p){o.content=dec(enc(o.content).replace(p.pattern,function(x,a,b,c){b=dec(b);if(p.encode)b=t._encode(b);o.items.push(b);return a+'<!--mce:'+(o.items.length-1)+'-->'+c;}));});return o;},_unprotect:function(h,o){h=h.replace(/\<!--mce:([0-9]+)--\>/g,function(a,b){return o.items[parseInt(b)];});o.items=[];return h;},_encode:function(h){var t=this,s=t.settings,l;if(s.entity_encoding!=='raw'){if(s.entity_encoding.indexOf('named')!=-1){t.setEntities(s.entities);l=t.entityLookup;h=h.replace(t.entitiesRE,function(a){var v;if(v=l[a])a='&'+v+';';return a;});}if(s.entity_encoding.indexOf('numeric')!=-1){h=h.replace(/[\u007E-\uFFFF]/g,function(a){return'&#'+a.charCodeAt(0)+';';});}}return h;},_setup:function(){var t=this,s=this.settings;if(t.done)return;t.done=1;t.setRules(s.valid_elements);t.addRules(s.extended_valid_elements);t.addValidChildRules(s.valid_child_elements);if(s.invalid_elements)t.invalidElementsRE=new RegExp('^('+wildcardToRE(s.invalid_elements.replace(/,/g,'|').toLowerCase())+')$');if(s.attrib_value_filter)t.attribValueFilter=s.attribValueFilter;},_getAttrib:function(n,a,na){var i,v;na=na||a.name;if(a.forcedVal&&(v=a.forcedVal)){if(v==='{$uid}')return this.dom.uniqueId();return v;}v=this.dom.getAttrib(n,na);switch(na){case'rowspan':case'colspan':if(v=='1')v='';break;}if(this.attribValueFilter)v=this.attribValueFilter(na,v,n);if(a.validVals){for(i=a.validVals.length-1;i>=0;i--){if(v==a.validVals[i])break;}if(i==-1)return null;}if(v===''&&typeof(a.defaultVal)!='undefined'){v=a.defaultVal;if(v==='{$uid}')return this.dom.uniqueId();return v;}else{if(na=='class'&&this.processObj.get)v=v.replace(/\s?mceItem\w+\s?/g,'');}if(v==='')return null;return v;}});})();(function(){var each=tinymce.each;tinymce.create('tinymce.dom.ScriptLoader',{ScriptLoader:function(s){this.settings=s||{};this.queue=[];this.lookup={};},isDone:function(u){return this.lookup[u]?this.lookup[u].state==2:0;},markDone:function(u){this.lookup[u]={state:2,url:u};},add:function(u,cb,s,pr){var t=this,lo=t.lookup,o;if(o=lo[u]){if(cb&&o.state==2)cb.call(s||this);return o;}o={state:0,url:u,func:cb,scope:s||this};if(pr)t.queue.unshift(o);else t.queue.push(o);lo[u]=o;return o;},load:function(u,cb,s){var t=this,o;if(o=t.lookup[u]){if(cb&&o.state==2)cb.call(s||t);return o;}function loadScript(u){if(tinymce.dom.Event.domLoaded||t.settings.strict_mode){tinymce.util.XHR.send({url:tinymce._addVer(u),error:t.settings.error,async:false,success:function(co){t.eval(co);}});}else document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"></script>');};if(!tinymce.is(u,'string')){each(u,function(u){loadScript(u);});if(cb)cb.call(s||t);}else{loadScript(u);if(cb)cb.call(s||t);}},loadQueue:function(cb,s){var t=this;if(!t.queueLoading){t.queueLoading=1;t.queueCallbacks=[];t.loadScripts(t.queue,function(){t.queueLoading=0;if(cb)cb.call(s||t);each(t.queueCallbacks,function(o){o.func.call(o.scope);});});}else if(cb)t.queueCallbacks.push({func:cb,scope:s||t});},eval:function(co){var w=window;if(!w.execScript){try{eval.call(w,co);}catch(ex){eval(co,w);}}else w.execScript(co);},loadScripts:function(sc,cb,s){var t=this,lo=t.lookup;function done(o){o.state=2;if(o.func)o.func.call(o.scope||t);};function allDone(){var l;l=sc.length;each(sc,function(o){o=lo[o.url];if(o.state===2){done(o);l--;}else load(o);});if(l===0&&cb){cb.call(s||t);cb=0;}};function load(o){if(o.state>0)return;o.state=1;tinymce.util.XHR.send({url:o.url,error:t.settings.error,success:function(co){t.eval(co);done(o);allDone();}});};each(sc,function(o){var u=o.url;if(!lo[u]){lo[u]=o;t.queue.push(o);}else o=lo[u];if(o.state>0)return;if(!tinymce.dom.Event.domLoaded&&!t.settings.strict_mode){var ix,ol='';if(cb||o.func){o.state=1;ix=tinymce.dom.ScriptLoader._addOnLoad(function(){done(o);allDone();});if(tinymce.isIE)ol=' onreadystatechange="';else ol=' onload="';ol+='tinymce.dom.ScriptLoader._onLoad(this,\''+u+'\','+ix+');"';}document.write('<script type="text/javascript" src="'+tinymce._addVer(u)+'"'+ol+'></script>');if(!o.func)done(o);}else load(o);});allDone();},'static':{_addOnLoad:function(f){var t=this;t._funcs=t._funcs||[];t._funcs.push(f);return t._funcs.length-1;},_onLoad:function(e,u,ix){if(!tinymce.isIE||e.readyState=='complete')this._funcs[ix].call(this);}}});tinymce.ScriptLoader=new tinymce.dom.ScriptLoader();})();(function(){var DOM=tinymce.DOM,is=tinymce.is;tinymce.create('tinymce.ui.Control',{Control:function(id,s){this.id=id;this.settings=s=s||{};this.rendered=false;this.onRender=new tinymce.util.Dispatcher(this);this.classPrefix='';this.scope=s.scope||this;this.disabled=0;this.active=0;},setDisabled:function(s){var e;if(s!=this.disabled){e=DOM.get(this.id);if(e&&this.settings.unavailable_prefix){if(s){this.prevTitle=e.title;e.title=this.settings.unavailable_prefix+": "+e.title;}else e.title=this.prevTitle;}this.setState('Disabled',s);this.setState('Enabled',!s);this.disabled=s;}},isDisabled:function(){return this.disabled;},setActive:function(s){if(s!=this.active){this.setState('Active',s);this.active=s;}},isActive:function(){return this.active;},setState:function(c,s){var n=DOM.get(this.id);c=this.classPrefix+c;if(s)DOM.addClass(n,c);else DOM.removeClass(n,c);},isRendered:function(){return this.rendered;},renderHTML:function(){},renderTo:function(n){DOM.setHTML(n,this.renderHTML());},postRender:function(){var t=this,b;if(is(t.disabled)){b=t.disabled;t.disabled=-1;t.setDisabled(b);}if(is(t.active)){b=t.active;t.active=-1;t.setActive(b);}},remove:function(){DOM.remove(this.id);this.destroy();},destroy:function(){tinymce.dom.Event.clear(this.id);}});})();tinymce.create('tinymce.ui.Container:tinymce.ui.Control',{Container:function(id,s){this.parent(id,s);this.controls=[];this.lookup={};},add:function(c){this.lookup[c.id]=c;this.controls.push(c);return c;},get:function(n){return this.lookup[n];}});tinymce.create('tinymce.ui.Separator:tinymce.ui.Control',{Separator:function(id,s){this.parent(id,s);this.classPrefix='mceSeparator';},renderHTML:function(){return tinymce.DOM.createHTML('span',{'class':this.classPrefix});}});(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.MenuItem:tinymce.ui.Control',{MenuItem:function(id,s){this.parent(id,s);this.classPrefix='mceMenuItem';},setSelected:function(s){this.setState('Selected',s);this.selected=s;},isSelected:function(){return this.selected;},postRender:function(){var t=this;t.parent();if(is(t.selected))t.setSelected(t.selected);}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,walk=tinymce.walk;tinymce.create('tinymce.ui.Menu:tinymce.ui.MenuItem',{Menu:function(id,s){var t=this;t.parent(id,s);t.items={};t.collapsed=false;t.menuCount=0;t.onAddItem=new tinymce.util.Dispatcher(this);},expand:function(d){var t=this;if(d){walk(t,function(o){if(o.expand)o.expand();},'items',t);}t.collapsed=false;},collapse:function(d){var t=this;if(d){walk(t,function(o){if(o.collapse)o.collapse();},'items',t);}t.collapsed=true;},isCollapsed:function(){return this.collapsed;},add:function(o){if(!o.settings)o=new tinymce.ui.MenuItem(o.id||DOM.uniqueId(),o);this.onAddItem.dispatch(this,o);return this.items[o.id]=o;},addSeparator:function(){return this.add({separator:true});},addMenu:function(o){if(!o.collapse)o=this.createMenu(o);this.menuCount++;return this.add(o);},hasMenus:function(){return this.menuCount!==0;},remove:function(o){delete this.items[o.id];},removeAll:function(){var t=this;walk(t,function(o){if(o.removeAll)o.removeAll();else o.remove();o.destroy();},'items',t);t.items={};},createMenu:function(o){var m=new tinymce.ui.Menu(o.id||DOM.uniqueId(),o);m.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return m;}});})();(function(){var is=tinymce.is,DOM=tinymce.DOM,each=tinymce.each,Event=tinymce.dom.Event,Element=tinymce.dom.Element;tinymce.create('tinymce.ui.DropMenu:tinymce.ui.Menu',{DropMenu:function(id,s){s=s||{};s.container=s.container||DOM.doc.body;s.offset_x=s.offset_x||0;s.offset_y=s.offset_y||0;s.vp_offset_x=s.vp_offset_x||0;s.vp_offset_y=s.vp_offset_y||0;if(is(s.icons)&&!s.icons)s['class']+=' mceNoIcons';this.parent(id,s);this.onShowMenu=new tinymce.util.Dispatcher(this);this.onHideMenu=new tinymce.util.Dispatcher(this);this.classPrefix='mceMenu';},createMenu:function(s){var t=this,cs=t.settings,m;s.container=s.container||cs.container;s.parent=t;s.constrain=s.constrain||cs.constrain;s['class']=s['class']||cs['class'];s.vp_offset_x=s.vp_offset_x||cs.vp_offset_x;s.vp_offset_y=s.vp_offset_y||cs.vp_offset_y;m=new tinymce.ui.DropMenu(s.id||DOM.uniqueId(),s);m.onAddItem.add(t.onAddItem.dispatch,t.onAddItem);return m;},update:function(){var t=this,s=t.settings,tb=DOM.get('menu_'+t.id+'_tbl'),co=DOM.get('menu_'+t.id+'_co'),tw,th;tw=s.max_width?Math.min(tb.clientWidth,s.max_width):tb.clientWidth;th=s.max_height?Math.min(tb.clientHeight,s.max_height):tb.clientHeight;if(!DOM.boxModel)t.element.setStyles({width:tw+2,height:th+2});else t.element.setStyles({width:tw,height:th});if(s.max_width)DOM.setStyle(co,'width',tw);if(s.max_height){DOM.setStyle(co,'height',th);if(tb.clientHeight<s.max_height)DOM.setStyle(co,'overflow','hidden');}},showMenu:function(x,y,px){var t=this,s=t.settings,co,vp=DOM.getViewPort(),w,h,mx,my,ot=2,dm,tb,cp=t.classPrefix;t.collapse(1);if(t.isMenuVisible)return;if(!t.rendered){co=DOM.add(t.settings.container,t.renderNode());each(t.items,function(o){o.postRender();});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});}else co=DOM.get('menu_'+t.id);if(!tinymce.isOpera)DOM.setStyles(co,{left:-0xFFFF,top:-0xFFFF});DOM.show(co);t.update();x+=s.offset_x||0;y+=s.offset_y||0;vp.w-=4;vp.h-=4;if(s.constrain){w=co.clientWidth-ot;h=co.clientHeight-ot;mx=vp.x+vp.w;my=vp.y+vp.h;if((x+s.vp_offset_x+w)>mx)x=px?px-w:Math.max(0,(mx-s.vp_offset_x)-w);if((y+s.vp_offset_y+h)>my)y=Math.max(0,(my-s.vp_offset_y)-h);}DOM.setStyles(co,{left:x,top:y});t.element.update();t.isMenuVisible=1;t.mouseClickFunc=Event.add(co,'click',function(e){var m;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))&&!DOM.hasClass(e,cp+'ItemSub')){m=t.items[e.id];if(m.isDisabled())return;dm=t;while(dm){if(dm.hideMenu)dm.hideMenu();dm=dm.settings.parent;}if(m.settings.onclick)m.settings.onclick(e);return Event.cancel(e);}});if(t.hasMenus()){t.mouseOverFunc=Event.add(co,'mouseover',function(e){var m,r,mi;e=e.target;if(e&&(e=DOM.getParent(e,'TR'))){m=t.items[e.id];if(t.lastMenu)t.lastMenu.collapse(1);if(m.isDisabled())return;if(e&&DOM.hasClass(e,cp+'ItemSub')){r=DOM.getRect(e);m.showMenu((r.x+r.w-ot),r.y-ot,r.x);t.lastMenu=m;DOM.addClass(DOM.get(m.id).firstChild,cp+'ItemActive');}}});}t.onShowMenu.dispatch(t);if(s.keyboard_focus){Event.add(co,'keydown',t._keyHandler,t);DOM.select('a','menu_'+t.id)[0].focus();t._focusIdx=0;}},hideMenu:function(c){var t=this,co=DOM.get('menu_'+t.id),e;if(!t.isMenuVisible)return;Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);Event.remove(co,'keydown',t._keyHandler);DOM.hide(co);t.isMenuVisible=0;if(!c)t.collapse(1);if(t.element)t.element.hide();if(e=DOM.get(t.id))DOM.removeClass(e.firstChild,t.classPrefix+'ItemActive');t.onHideMenu.dispatch(t);},add:function(o){var t=this,co;o=t.parent(o);if(t.isRendered&&(co=DOM.get('menu_'+t.id)))t._add(DOM.select('tbody',co)[0],o);return o;},collapse:function(d){this.parent(d);this.hideMenu(1);},remove:function(o){DOM.remove(o.id);this.destroy();return this.parent(o);},destroy:function(){var t=this,co=DOM.get('menu_'+t.id);Event.remove(co,'mouseover',t.mouseOverFunc);Event.remove(co,'click',t.mouseClickFunc);if(t.element)t.element.remove();DOM.remove(co);},renderNode:function(){var t=this,s=t.settings,n,tb,co,w;w=DOM.create('div',{id:'menu_'+t.id,'class':s['class'],'style':'position:absolute;left:0;top:0;z-index:200000'});co=DOM.add(w,'div',{id:'menu_'+t.id+'_co','class':t.classPrefix+(s['class']?' '+s['class']:'')});t.element=new Element('menu_'+t.id,{blocker:1,container:s.container});if(s.menu_line)DOM.add(co,'span',{'class':t.classPrefix+'Line'});n=DOM.add(co,'table',{id:'menu_'+t.id+'_tbl',border:0,cellPadding:0,cellSpacing:0});tb=DOM.add(n,'tbody');each(t.items,function(o){t._add(tb,o);});t.rendered=true;return w;},_keyHandler:function(e){var t=this,kc=e.keyCode;function focus(d){var i=t._focusIdx+d,e=DOM.select('a','menu_'+t.id)[i];if(e){t._focusIdx=i;e.focus();}};switch(kc){case 38:focus(-1);return;case 40:focus(1);return;case 13:return;case 27:return this.hideMenu();}},_add:function(tb,o){var n,s=o.settings,a,ro,it,cp=this.classPrefix;if(s.separator){ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'ItemSeparator'});DOM.add(ro,'td',{'class':cp+'ItemSeparator'});if(n=ro.previousSibling)DOM.addClass(n,'mceLast');return;}n=ro=DOM.add(tb,'tr',{id:o.id,'class':cp+'Item '+cp+'ItemEnabled'});n=it=DOM.add(n,'td');n=a=DOM.add(n,'a',{href:'javascript:;',onclick:"return false;",onmousedown:'return false;'});DOM.addClass(it,s['class']);DOM.add(n,'span',{'class':'mceIcon'+(s.icon?' mce_'+s.icon:'')});n=DOM.add(n,s.element||'span',{'class':'mceText',title:o.settings.title},o.settings.title);if(o.settings.style)DOM.setAttrib(n,'style',o.settings.style);if(tb.childNodes.length==1)DOM.addClass(ro,'mceFirst');if((n=ro.previousSibling)&&DOM.hasClass(n,cp+'ItemSeparator'))DOM.addClass(ro,'mceFirst');if(o.collapse)DOM.addClass(ro,cp+'ItemSub');if(n=ro.previousSibling)DOM.removeClass(n,'mceLast');DOM.addClass(ro,'mceLast');}});})();(function(){var DOM=tinymce.DOM;tinymce.create('tinymce.ui.Button:tinymce.ui.Control',{Button:function(id,s){this.parent(id,s);this.classPrefix='mceButton';},renderHTML:function(){var cp=this.classPrefix,s=this.settings,h,l;l=DOM.encode(s.label||'');h='<a id="'+this.id+'" href="javascript:;" class="'+cp+' '+cp+'Enabled '+s['class']+(l?' '+cp+'Labeled':'')+'" onmousedown="return false;" onclick="return false;" title="'+DOM.encode(s.title)+'">';if(s.image)h+='<img class="mceIcon" src="'+s.image+'" />'+l+'</a>';else h+='<span class="mceIcon '+s['class']+'"></span>'+(l?'<span class="'+cp+'Label">'+l+'</span>':'')+'</a>';return h;},postRender:function(){var t=this,s=t.settings;tinymce.dom.Event.add(t.id,'click',function(e){if(!t.isDisabled())return s.onclick.call(s.scope,e);});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.ListBox:tinymce.ui.Control',{ListBox:function(id,s){var t=this;t.parent(id,s);t.items=[];t.onChange=new Dispatcher(t);t.onPostRender=new Dispatcher(t);t.onAdd=new Dispatcher(t);t.onRenderMenu=new tinymce.util.Dispatcher(this);t.classPrefix='mceListBox';},select:function(v){var t=this,e,fv;if(v!=t.selectedValue){e=DOM.get(t.id+'_text');t.selectedValue=v;each(t.items,function(o){if(o.value==v){DOM.setHTML(e,DOM.encode(o.title));fv=1;return false;}});if(!fv){DOM.setHTML(e,DOM.encode(t.settings.title));DOM.addClass(e,'mceTitle');e=0;return;}else DOM.removeClass(e,'mceTitle');}e=0;},add:function(n,v,o){var t=this;o=o||{};o=tinymce.extend(o,{title:n,value:v});t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return this.items.length;},renderHTML:function(){var h='',t=this,s=t.settings,cp=t.classPrefix;h='<table id="'+t.id+'" cellpadding="0" cellspacing="0" class="'+cp+' '+cp+'Enabled'+(s['class']?(' '+s['class']):'')+'"><tbody><tr>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_text',href:'javascript:;','class':'mceText',onclick:"return false;",onmousedown:'return false;'},DOM.encode(t.settings.title))+'</td>';h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',tabindex:-1,href:'javascript:;','class':'mceOpen',onclick:"return false;",onmousedown:'return false;'},'<span></span>')+'</td>';h+='</tr></tbody></table>';return h;},showMenu:function(){var t=this,p1,p2,e=DOM.get(this.id),m;if(t.isDisabled()||t.items.length==0)return;if(t.menu&&t.menu.isMenuVisible)return t.hideMenu();if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}p1=DOM.getPos(this.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.keyboard_focus=!tinymce.isOpera;if(t.oldID)m.items[t.oldID].setSelected(0);each(t.items,function(o){if(o.value===t.selectedValue){m.items[o.id].setSelected(1);t.oldID=o.id;}});m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);DOM.addClass(t.id,t.classPrefix+'Selected');},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&(e.target.id==t.id+'_text'||e.target.id==t.id+'_open'))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){DOM.removeClass(t.id,t.classPrefix+'Selected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':t.classPrefix+'Menu mceNoIcons',max_width:150,max_height:150});m.onHideMenu.add(t.hideMenu,t);m.add({title:t.settings.title,'class':'mceMenuItemTitle',onclick:function(){if(t.settings.onselect('')!==false)t.select('');}});each(t.items,function(o){o.id=DOM.uniqueId();o.onclick=function(){if(t.settings.onselect(o.value)!==false)t.select(o.value);};m.add(o);});t.onRenderMenu.dispatch(t,m);t.menu=m;},postRender:function(){var t=this,cp=t.classPrefix;Event.add(t.id,'click',t.showMenu,t);Event.add(t.id+'_text','focus',function(e){if(!t._focused){t.keyDownHandler=Event.add(t.id+'_text','keydown',function(e){var idx=-1,v,kc=e.keyCode;each(t.items,function(v,i){if(t.selectedValue==v.value)idx=i;});if(kc==38)v=t.items[idx-1];else if(kc==40)v=t.items[idx+1];else if(kc==13){v=t.selectedValue;t.selectedValue=null;t.settings.onselect(v);return Event.cancel(e);}if(v){t.hideMenu();t.select(v.value);}});}t._focused=1;});Event.add(t.id+'_text','blur',function(){Event.remove(t.id+'_text','keydown',t.keyDownHandler);t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.addClass(t.id,cp+'Hover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,cp+'Disabled'))DOM.removeClass(t.id,cp+'Hover');});}t.onPostRender.dispatch(t,DOM.get(t.id));},destroy:function(){this.parent();Event.clear(this.id+'_text');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,Dispatcher=tinymce.util.Dispatcher;tinymce.create('tinymce.ui.NativeListBox:tinymce.ui.ListBox',{NativeListBox:function(id,s){this.parent(id,s);this.classPrefix='mceNativeListBox';},setDisabled:function(s){DOM.get(this.id).disabled=s;},isDisabled:function(){return DOM.get(this.id).disabled;},select:function(v){var e=DOM.get(this.id),ol=e.options;v=''+(v||'');e.selectedIndex=0;each(ol,function(o,i){if(o.value==v){e.selectedIndex=i;return false;}});},add:function(n,v,a){var o,t=this;a=a||{};a.value=v;if(t.isRendered())DOM.add(DOM.get(this.id),'option',a,n);o={title:n,value:v,attribs:a};t.items.push(o);t.onAdd.dispatch(t,o);},getLength:function(){return DOM.get(this.id).options.length-1;},renderHTML:function(){var h,t=this;h=DOM.createHTML('option',{value:''},'-- '+t.settings.title+' --');each(t.items,function(it){h+=DOM.createHTML('option',{value:it.value},it.title);});h=DOM.createHTML('select',{id:t.id,'class':'mceNativeListBox'},h);return h;},postRender:function(){var t=this,ch;t.rendered=true;function onChange(e){var v=e.target.options[e.target.selectedIndex].value;t.onChange.dispatch(t,v);if(t.settings.onselect)t.settings.onselect(v);};Event.add(t.id,'change',onChange);Event.add(t.id,'keydown',function(e){var bf;Event.remove(t.id,'change',ch);bf=Event.add(t.id,'blur',function(){Event.add(t.id,'change',onChange);Event.remove(t.id,'blur',bf);});if(e.keyCode==13||e.keyCode==32){onChange(e);return Event.cancel(e);}});t.onPostRender.dispatch(t,DOM.get(t.id));}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.MenuButton:tinymce.ui.Button',{MenuButton:function(id,s){this.parent(id,s);this.onRenderMenu=new tinymce.util.Dispatcher(this);s.menu_container=s.menu_container||DOM.doc.body;},showMenu:function(){var t=this,p1,p2,e=DOM.get(t.id),m;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();p1=DOM.getPos(t.settings.menu_container);p2=DOM.getPos(e);m=t.menu;m.settings.offset_x=p2.x;m.settings.offset_y=p2.y;m.settings.vp_offset_x=p2.x;m.settings.vp_offset_y=p2.y;m.settings.keyboard_focus=t._focused;m.showMenu(0,e.clientHeight);Event.add(DOM.doc,'mousedown',t.hideMenu,t);t.setState('Selected',1);t.isMenuVisible=1;},renderMenu:function(){var t=this,m;m=t.settings.control_manager.createDropMenu(t.id+'_menu',{menu_line:1,'class':this.classPrefix+'Menu',icons:t.settings.icons});m.onHideMenu.add(t.hideMenu,t);t.onRenderMenu.dispatch(t,m);t.menu=m;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id||e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceMenu');})){t.setState('Selected',0);Event.remove(DOM.doc,'mousedown',t.hideMenu,t);if(t.menu)t.menu.hideMenu();}t.isMenuVisible=0;},postRender:function(){var t=this,s=t.settings;Event.add(t.id,'click',function(){if(!t.isDisabled()){if(s.onclick)s.onclick(t.value);t.showMenu();}});}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each;tinymce.create('tinymce.ui.SplitButton:tinymce.ui.MenuButton',{SplitButton:function(id,s){this.parent(id,s);this.classPrefix='mceSplitButton';},renderHTML:function(){var h,t=this,s=t.settings,h1;h='<tbody><tr>';if(s.image)h1=DOM.createHTML('img ',{src:s.image,'class':'mceAction '+s['class']});else h1=DOM.createHTML('span',{'class':'mceAction '+s['class']},'');h+='<td>'+DOM.createHTML('a',{id:t.id+'_action',href:'javascript:;','class':'mceAction '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h1=DOM.createHTML('span',{'class':'mceOpen '+s['class']});h+='<td>'+DOM.createHTML('a',{id:t.id+'_open',href:'javascript:;','class':'mceOpen '+s['class'],onclick:"return false;",onmousedown:'return false;',title:s.title},h1)+'</td>';h+='</tr></tbody>';return DOM.createHTML('table',{id:t.id,'class':'mceSplitButton mceSplitButtonEnabled '+s['class'],cellpadding:'0',cellspacing:'0',onmousedown:'return false;',title:s.title},h);},postRender:function(){var t=this,s=t.settings;if(s.onclick){Event.add(t.id+'_action','click',function(){if(!t.isDisabled())s.onclick(t.value);});}Event.add(t.id+'_open','click',t.showMenu,t);Event.add(t.id+'_open','focus',function(){t._focused=1;});Event.add(t.id+'_open','blur',function(){t._focused=0;});if(tinymce.isIE6||!DOM.boxModel){Event.add(t.id,'mouseover',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.addClass(t.id,'mceSplitButtonHover');});Event.add(t.id,'mouseout',function(){if(!DOM.hasClass(t.id,'mceSplitButtonDisabled'))DOM.removeClass(t.id,'mceSplitButtonHover');});}},destroy:function(){this.parent();Event.clear(this.id+'_action');Event.clear(this.id+'_open');}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,is=tinymce.is,each=tinymce.each;tinymce.create('tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton',{ColorSplitButton:function(id,s){var t=this;t.parent(id,s);t.settings=s=tinymce.extend({colors:'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',grid_width:8,default_color:'#888888'},t.settings);t.onShowMenu=new tinymce.util.Dispatcher(t);t.onHideMenu=new tinymce.util.Dispatcher(t);t.value=s.default_color;},showMenu:function(){var t=this,r,p,e,p2;if(t.isDisabled())return;if(!t.isMenuRendered){t.renderMenu();t.isMenuRendered=true;}if(t.isMenuVisible)return t.hideMenu();e=DOM.get(t.id);DOM.show(t.id+'_menu');DOM.addClass(e,'mceSplitButtonSelected');p2=DOM.getPos(e);DOM.setStyles(t.id+'_menu',{left:p2.x,top:p2.y+e.clientHeight,zIndex:200000});e=0;Event.add(DOM.doc,'mousedown',t.hideMenu,t);if(t._focused){t._keyHandler=Event.add(t.id+'_menu','keydown',function(e){if(e.keyCode==27)t.hideMenu();});DOM.select('a',t.id+'_menu')[0].focus();}t.onShowMenu.dispatch(t);t.isMenuVisible=1;},hideMenu:function(e){var t=this;if(e&&e.type=="mousedown"&&DOM.getParent(e.target,function(e){return e.id===t.id+'_open';}))return;if(!e||!DOM.getParent(e.target,function(n){return DOM.hasClass(n,'mceSplitButtonMenu');})){DOM.removeClass(t.id,'mceSplitButtonSelected');Event.remove(DOM.doc,'mousedown',t.hideMenu,t);Event.remove(t.id+'_menu','keydown',t._keyHandler);DOM.hide(t.id+'_menu');}t.onHideMenu.dispatch(t);t.isMenuVisible=0;},renderMenu:function(){var t=this,m,i=0,s=t.settings,n,tb,tr,w;w=DOM.add(s.menu_container,'div',{id:t.id+'_menu','class':s['menu_class']+' '+s['class'],style:'position:absolute;left:0;top:-1000px;'});m=DOM.add(w,'div',{'class':s['class']+' mceSplitButtonMenu'});DOM.add(m,'span',{'class':'mceMenuLine'});n=DOM.add(m,'table',{'class':'mceColorSplitMenu'});tb=DOM.add(n,'tbody');i=0;each(is(s.colors,'array')?s.colors:s.colors.split(','),function(c){c=c.replace(/^#/,'');if(!i--){tr=DOM.add(tb,'tr');i=s.grid_width-1;}n=DOM.add(tr,'td');n=DOM.add(n,'a',{href:'javascript:;',style:{backgroundColor:'#'+c},mce_color:'#'+c});});if(s.more_colors_func){n=DOM.add(tb,'tr');n=DOM.add(n,'td',{colspan:s.grid_width,'class':'mceMoreColors'});n=DOM.add(n,'a',{id:t.id+'_more',href:'javascript:;',onclick:'return false;','class':'mceMoreColors'},s.more_colors_title);Event.add(n,'click',function(e){s.more_colors_func.call(s.more_colors_scope||this);return Event.cancel(e);});}DOM.addClass(m,'mceColorSplitMenu');Event.add(t.id+'_menu','click',function(e){var c;e=e.target;if(e.nodeName=='A'&&(c=e.getAttribute('mce_color')))t.setColor(c);return Event.cancel(e);});return w;},setColor:function(c){var t=this;DOM.setStyle(t.id+'_preview','backgroundColor',c);t.value=c;t.hideMenu();t.settings.onselect(c);},postRender:function(){var t=this,id=t.id;t.parent();DOM.add(id+'_action','div',{id:id+'_preview','class':'mceColorPreview'});},destroy:function(){this.parent();Event.clear(this.id+'_menu');Event.clear(this.id+'_more');DOM.remove(this.id+'_menu');}});})();tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container',{renderHTML:function(){var t=this,h='',c,co,dom=tinymce.DOM,s=t.settings,i,pr,nx,cl;cl=t.controls;for(i=0;i<cl.length;i++){co=cl[i];pr=cl[i-1];nx=cl[i+1];if(i===0){c='mceToolbarStart';if(co.Button)c+=' mceToolbarStartButton';else if(co.SplitButton)c+=' mceToolbarStartSplitButton';else if(co.ListBox)c+=' mceToolbarStartListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));}if(pr&&co.ListBox){if(pr.Button||pr.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarEnd'},dom.createHTML('span',null,'<!-- IE -->'));}if(dom.stdMode)h+='<td style="position: relative">'+co.renderHTML()+'</td>';else h+='<td>'+co.renderHTML()+'</td>';if(nx&&co.ListBox){if(nx.Button||nx.SplitButton)h+=dom.createHTML('td',{'class':'mceToolbarStart'},dom.createHTML('span',null,'<!-- IE -->'));}}c='mceToolbarEnd';if(co.Button)c+=' mceToolbarEndButton';else if(co.SplitButton)c+=' mceToolbarEndSplitButton';else if(co.ListBox)c+=' mceToolbarEndListBox';h+=dom.createHTML('td',{'class':c},dom.createHTML('span',null,'<!-- IE -->'));return dom.createHTML('table',{id:t.id,'class':'mceToolbar'+(s['class']?' '+s['class']:''),cellpadding:'0',cellspacing:'0',align:t.settings.align||''},'<tbody><tr>'+h+'</tr></tbody>');}});(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each;tinymce.create('tinymce.AddOnManager',{items:[],urls:{},lookup:{},onAdd:new Dispatcher(this),get:function(n){return this.lookup[n];},requireLangPack:function(n){var u,s=tinymce.EditorManager.settings;if(s&&s.language){u=this.urls[n]+'/langs/'+s.language+'.js';if(!tinymce.dom.Event.domLoaded&&!s.strict_mode)tinymce.ScriptLoader.load(u);else tinymce.ScriptLoader.add(u);}},add:function(id,o){this.items.push(o);this.lookup[id]=o;this.onAdd.dispatch(this,id,o);return o;},load:function(n,u,cb,s){var t=this;if(t.urls[n])return;if(u.indexOf('/')!=0&&u.indexOf('://')==-1)u=tinymce.baseURL+'/'+u;t.urls[n]=u.substring(0,u.lastIndexOf('/'));tinymce.ScriptLoader.add(u,cb,s);}});tinymce.PluginManager=new tinymce.AddOnManager();tinymce.ThemeManager=new tinymce.AddOnManager();}());(function(){var each=tinymce.each,extend=tinymce.extend,DOM=tinymce.DOM,Event=tinymce.dom.Event,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,explode=tinymce.explode;tinymce.create('static tinymce.EditorManager',{editors:{},i18n:{},activeEditor:null,preInit:function(){var t=this,lo=window.location;tinymce.documentBaseURL=lo.href.replace(/[\?#].*$/,'').replace(/[\/\\][^\/]+$/,'');if(!/[\/\\]$/.test(tinymce.documentBaseURL))tinymce.documentBaseURL+='/';tinymce.baseURL=new tinymce.util.URI(tinymce.documentBaseURL).toAbsolute(tinymce.baseURL);tinymce.EditorManager.baseURI=new tinymce.util.URI(tinymce.baseURL);if(document.domain&&lo.hostname!=document.domain)tinymce.relaxedDomain=document.domain;if(!tinymce.relaxedDomain&&tinymce.EditorManager.baseURI.host!=lo.hostname&&lo.hostname)document.domain=tinymce.relaxedDomain=lo.hostname.replace(/.*\.(.+\..+)$/,'$1');t.onBeforeUnload=new tinymce.util.Dispatcher(t);Event.add(window,'beforeunload',function(e){t.onBeforeUnload.dispatch(t,e);});},init:function(s){var t=this,pl,sl=tinymce.ScriptLoader,c,e,el=[],ed;function execCallback(se,n,s){var f=se[n];if(!f)return;if(tinymce.is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);}return f.apply(s||this,Array.prototype.slice.call(arguments,2));};s=extend({theme:"simple",language:"en",strict_loading_mode:document.contentType=='application/xhtml+xml'},s);t.settings=s;if(!Event.domLoaded&&!s.strict_loading_mode){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme&&s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');if(s.plugins){pl=explode(s.plugins);if(tinymce.inArray(pl,'compat2x')!=-1)PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');each(pl,function(v){if(v&&v.charAt(0)!='-'&&!PluginManager.urls[v]){if(!tinymce.isWebKit&&v=='safari')return;PluginManager.load(v,'plugins/'+v+'/editor_plugin'+tinymce.suffix+'.js');}});}sl.loadQueue();}Event.add(document,'init',function(){var l,co;execCallback(s,'onpageload');if(s.browsers){l=false;each(explode(s.browsers),function(v){switch(v){case'ie':case'msie':if(tinymce.isIE)l=true;break;case'gecko':if(tinymce.isGecko)l=true;break;case'safari':case'webkit':if(tinymce.isWebKit)l=true;break;case'opera':if(tinymce.isOpera)l=true;break;}});if(!l)return;}switch(s.mode){case"exact":l=s.elements||'';if(l.length>0){each(explode(l),function(v){if(DOM.get(v)){ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}else{c=0;each(document.forms,function(f){each(f.elements,function(e){if(e.name===v){v='mce_editor_'+c;DOM.setAttrib(e,'id',v);ed=new tinymce.Editor(v,s);el.push(ed);ed.render(1);}});});}});}break;case"textareas":case"specific_textareas":function hasClass(n,c){return c.constructor===RegExp?c.test(n.className):DOM.hasClass(n,c);};each(DOM.select('textarea'),function(v){if(s.editor_deselector&&hasClass(v,s.editor_deselector))return;if(!s.editor_selector||hasClass(v,s.editor_selector)){e=DOM.get(v.name);if(!v.id&&!e)v.id=v.name;if(!v.id||t.get(v.id))v.id=DOM.uniqueId();ed=new tinymce.Editor(v.id,s);el.push(ed);ed.render(1);}});break;}if(s.oninit){l=co=0;each(el,function(ed){co++;if(!ed.initialized){ed.onInit.add(function(){l++;if(l==co)execCallback(s,'oninit');});}else l++;if(l==co)execCallback(s,'oninit');});}});},get:function(id){return this.editors[id];},getInstanceById:function(id){return this.get(id);},add:function(e){this.editors[e.id]=e;this._setActive(e);return e;},remove:function(e){var t=this;if(!t.editors[e.id])return null;delete t.editors[e.id];if(t.activeEditor==e){each(t.editors,function(e){t._setActive(e);return false;});}e.destroy();return e;},execCommand:function(c,u,v){var t=this,ed=t.get(v),w;switch(c){case"mceFocus":ed.focus();return true;case"mceAddEditor":case"mceAddControl":if(!t.get(v))new tinymce.Editor(v,t.settings).render();return true;case"mceAddFrameControl":w=v.window;w.tinyMCE=tinyMCE;w.tinymce=tinymce;tinymce.DOM.doc=w.document;tinymce.DOM.win=w;ed=new tinymce.Editor(v.element_id,v);ed.render();if(tinymce.isIE){function clr(){ed.destroy();w.detachEvent('onunload',clr);w=w.tinyMCE=w.tinymce=null;};w.attachEvent('onunload',clr);}v.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":ed.remove();return true;case'mceToggleEditor':if(!ed){t.execCommand('mceAddControl',0,v);return true;}if(ed.isHidden())ed.show();else ed.hide();return true;}if(t.activeEditor)return t.activeEditor.execCommand(c,u,v);return false;},execInstanceCommand:function(id,c,u,v){var ed=this.get(id);if(ed)return ed.execCommand(c,u,v);return false;},triggerSave:function(){each(this.editors,function(e){e.save();});},addI18n:function(p,o){var lo,i18n=this.i18n;if(!tinymce.is(p,'string')){each(p,function(o,lc){each(o,function(o,g){each(o,function(o,k){if(g==='common')i18n[lc+'.'+k]=o;else i18n[lc+'.'+g+'.'+k]=o;});});});}else{each(o,function(o,k){i18n[p+'.'+k]=o;});}},_setActive:function(e){this.selectedInstance=this.activeEditor=e;}});tinymce.EditorManager.preInit();})();var tinyMCE=window.tinyMCE=tinymce.EditorManager;(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,Dispatcher=tinymce.util.Dispatcher;var each=tinymce.each,isGecko=tinymce.isGecko,isIE=tinymce.isIE,isWebKit=tinymce.isWebKit;var is=tinymce.is,ThemeManager=tinymce.ThemeManager,PluginManager=tinymce.PluginManager,EditorManager=tinymce.EditorManager;var inArray=tinymce.inArray,grep=tinymce.grep,explode=tinymce.explode;tinymce.create('tinymce.Editor',{Editor:function(id,s){var t=this;t.id=t.editorId=id;t.execCommands={};t.queryStateCommands={};t.queryValueCommands={};t.plugins={};each(['onPreInit','onBeforeRenderUI','onPostRender','onInit','onRemove','onActivate','onDeactivate','onClick','onEvent','onMouseUp','onMouseDown','onDblClick','onKeyDown','onKeyUp','onKeyPress','onContextMenu','onSubmit','onReset','onPaste','onPreProcess','onPostProcess','onBeforeSetContent','onBeforeGetContent','onSetContent','onGetContent','onLoadContent','onSaveContent','onNodeChange','onChange','onBeforeExecCommand','onExecCommand','onUndo','onRedo','onVisualAid','onSetProgressState'],function(e){t[e]=new Dispatcher(t);});t.settings=s=extend({id:id,language:'en',docs_language:'en',theme:'simple',skin:'default',delta_width:0,delta_height:0,popup_css:'',plugins:'',document_base_url:tinymce.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',visual_table_class:'mceItemTable',visual:1,inline_styles:true,convert_fonts_to_spans:true,font_size_style_values:'xx-small,x-small,small,medium,large,x-large,xx-large',apply_source_formatting:1,directionality:'ltr',forced_root_block:'p',valid_elements:'@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote[cite],-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value|tabindex|accesskey],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big',hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:'30px'},s);t.documentBaseURI=new tinymce.util.URI(s.document_base_url||tinymce.documentBaseURL,{base_uri:tinyMCE.baseURI});t.baseURI=EditorManager.baseURI;t.execCallback('setup',t);},render:function(nst){var t=this,s=t.settings,id=t.id,sl=tinymce.ScriptLoader;if(!Event.domLoaded){Event.add(document,'init',function(){t.render();});return;}if(!nst){s.strict_loading_mode=1;tinyMCE.settings=s;}if(!t.getElement())return;if(s.strict_loading_mode){sl.settings.strict_mode=s.strict_loading_mode;tinymce.DOM.settings.strict=1;}if(!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&s.hidden_input&&DOM.getParent(id,'form'))DOM.insertAfter(DOM.create('input',{type:'hidden',name:id}),id);t.windowManager=new tinymce.WindowManager(t);if(s.encoding=='xml'){t.onGetContent.add(function(ed,o){if(o.save)o.content=DOM.encode(o.content);});}if(s.add_form_submit_trigger){t.onSubmit.addToTop(function(){if(t.initialized){t.save();t.isNotDirty=1;}});}if(s.add_unload_trigger&&!s.ask){t._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(t.initialized&&!t.destroyed&&!t.isHidden())t.save({format:'raw',no_events:true});});}tinymce.addUnload(t.destroy,t);if(s.submit_patch){t.onBeforeRenderUI.add(function(){var n=t.getElement().form;if(!n)return;if(n._mceOldSubmit)return;if(!n.submit.nodeType&&!n.submit.length){t.formElement=n;n._mceOldSubmit=n.submit;n.submit=function(){EditorManager.triggerSave();t.isNotDirty=1;return this._mceOldSubmit(this);};}n=null;});}function loadScripts(){if(s.language)sl.add(tinymce.baseURL+'/langs/'+s.language+'.js');if(s.theme.charAt(0)!='-'&&!ThemeManager.urls[s.theme])ThemeManager.load(s.theme,'themes/'+s.theme+'/editor_template'+tinymce.suffix+'.js');each(explode(s.plugins),function(p){if(p&&p.charAt(0)!='-'&&!PluginManager.urls[p]){if(!isWebKit&&p=='safari')return;PluginManager.load(p,'plugins/'+p+'/editor_plugin'+tinymce.suffix+'.js');}});sl.loadQueue(function(){if(s.ask){function ask(){window.setTimeout(function(){Event.remove(t.id,'focus',ask);t.windowManager.confirm(t.getLang('edit_confirm'),function(s){if(s)t.init();});},0);};Event.add(t.id,'focus',ask);return;}if(!t.removed)t.init();});};if(s.plugins.indexOf('compat2x')!=-1){PluginManager.load('compat2x','plugins/compat2x/editor_plugin'+tinymce.suffix+'.js');sl.loadQueue(loadScripts);}else loadScripts();},init:function(){var n,t=this,s=t.settings,w,h,e=t.getElement(),o,ti,u,bi,bc,re;EditorManager.add(t);s.theme=s.theme.replace(/-/,'');o=ThemeManager.get(s.theme);t.theme=new o();if(t.theme.init&&s.init_theme)t.theme.init(t,ThemeManager.urls[s.theme]||tinymce.documentBaseURL.replace(/\/$/,''));each(explode(s.plugins.replace(/\-/g,'')),function(p){var c=PluginManager.get(p),u=PluginManager.urls[p]||tinymce.documentBaseURL.replace(/\/$/,''),po;if(c){po=new c(t,u);t.plugins[p]=po;if(po.init)po.init(t,u);}});if(s.popup_css)s.popup_css=t.documentBaseURI.toAbsolute(s.popup_css);else s.popup_css=t.baseURI.toAbsolute("themes/"+s.theme+"/skins/"+s.skin+"/dialog.css");if(s.popup_css_add)s.popup_css+=','+t.documentBaseURI.toAbsolute(s.popup_css_add);t.controlManager=new tinymce.ControlManager(t);t.undoManager=new tinymce.UndoManager(t);t.undoManager.onAdd.add(function(um,l){if(!l.initial)return t.onChange.dispatch(t,l,um);});t.undoManager.onUndo.add(function(um,l){return t.onUndo.dispatch(t,l,um);});t.undoManager.onRedo.add(function(um,l){return t.onRedo.dispatch(t,l,um);});if(s.custom_undo_redo){t.onExecCommand.add(function(ed,cmd,ui,val,a){if(cmd!='Undo'&&cmd!='Redo'&&cmd!='mceRepaint'&&(!a||!a.skip_undo))t.undoManager.add();});}t.onExecCommand.add(function(ed,c){if(!/^(FontName|FontSize)$/.test(c))t.nodeChanged();});if(isGecko){function repaint(a,o){if(!o||!o.initial)t.execCommand('mceRepaint');};t.onUndo.add(repaint);t.onRedo.add(repaint);t.onSetContent.add(repaint);}t.onBeforeRenderUI.dispatch(t,t.controlManager);if(s.render_ui){w=s.width||e.style.width||e.offsetWidth;h=s.height||e.style.height||e.offsetHeight;t.orgDisplay=e.style.display;re=/^[0-9\.]+(|px)$/i;if(re.test(''+w))w=Math.max(parseInt(w)+(o.deltaWidth||0),100);if(re.test(''+h))h=Math.max(parseInt(h)+(o.deltaHeight||0),100);o=t.theme.renderUI({targetNode:e,width:w,height:h,deltaWidth:s.delta_width,deltaHeight:s.delta_height});t.editorContainer=o.editorContainer;}DOM.setStyles(o.sizeContainer||o.editorContainer,{width:w,height:h});h=(o.iframeHeight||h)+((h+'').indexOf('%')==-1?(o.deltaHeight||0):'');if(h<100)h=100;t.iframeHTML=s.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml"><base href="'+t.documentBaseURI.getURI()+'" />';t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';if(tinymce.relaxedDomain)t.iframeHTML+='<script type="text/javascript">document.domain = "'+tinymce.relaxedDomain+'";</script>';bi=s.body_id||'tinymce';if(bi.indexOf('=')!=-1){bi=t.getParam('body_id','','hash');bi=bi[t.id]||bi;}bc=s.body_class||'';if(bc.indexOf('=')!=-1){bc=t.getParam('body_class','','hash');bc=bc[t.id]||'';}t.iframeHTML+='</head><body id="'+bi+'" class="mceContentBody '+bc+'"></body></html>';if(tinymce.relaxedDomain){if(isIE||(tinymce.isOpera&&parseFloat(opera.version())>=9.5))u='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()';else if(tinymce.isOpera)u='javascript:(function(){document.open();document.domain="'+document.domain+'";document.close();ed.setupIframe();})()';}n=DOM.add(o.iframeContainer,'iframe',{id:t.id+"_ifr",src:u||'javascript:""',frameBorder:'0',style:{width:'100%',height:h}});t.contentAreaContainer=o.iframeContainer;DOM.get(o.editorContainer).style.display=t.orgDisplay;DOM.get(t.id).style.display='none';if(tinymce.isOldWebKit){Event.add(n,'load',t.setupIframe,t);n.src=tinymce.baseURL+'/plugins/safari/blank.htm';}else{if(!isIE||!tinymce.relaxedDomain)t.setupIframe();e=n=o=null;}},setupIframe:function(){var t=this,s=t.settings,e=DOM.get(t.id),d=t.getDoc(),h,b;if(!isIE||!tinymce.relaxedDomain){d.open();d.write(t.iframeHTML);d.close();}if(!isIE){try{if(!s.readonly)d.designMode='On';}catch(ex){}}if(isIE){b=t.getBody();DOM.hide(b);if(!s.readonly)b.contentEditable=true;DOM.show(b);}t.dom=new tinymce.DOM.DOMUtils(t.getDoc(),{keep_values:true,url_converter:t.convertURL,url_converter_scope:t,hex_colors:s.force_hex_style_colors,class_filter:s.class_filter,update_styles:1,fix_ie_paragraphs:1});t.serializer=new tinymce.dom.Serializer({entity_encoding:s.entity_encoding,entities:s.entities,valid_elements:s.verify_html===false?'*[*]':s.valid_elements,extended_valid_elements:s.extended_valid_elements,valid_child_elements:s.valid_child_elements,invalid_elements:s.invalid_elements,fix_table_elements:s.fix_table_elements,fix_list_elements:s.fix_list_elements,fix_content_duplication:s.fix_content_duplication,convert_fonts_to_spans:s.convert_fonts_to_spans,font_size_classes:s.font_size_classes,font_size_style_values:s.font_size_style_values,apply_source_formatting:s.apply_source_formatting,remove_linebreaks:s.remove_linebreaks,dom:t.dom});t.selection=new tinymce.dom.Selection(t.dom,t.getWin(),t.serializer);t.forceBlocks=new tinymce.ForceBlocks(t,{forced_root_block:s.forced_root_block});t.editorCommands=new tinymce.EditorCommands(t);t.serializer.onPreProcess.add(function(se,o){return t.onPreProcess.dispatch(t,o,se);});t.serializer.onPostProcess.add(function(se,o){return t.onPostProcess.dispatch(t,o,se);});t.onPreInit.dispatch(t);if(!s.gecko_spellcheck)t.getBody().spellcheck=0;if(!s.readonly)t._addEvents();t.controlManager.onPostRender.dispatch(t,t.controlManager);t.onPostRender.dispatch(t);if(s.directionality)t.getBody().dir=s.directionality;if(s.nowrap)t.getBody().style.whiteSpace="nowrap";if(s.auto_resize)t.onNodeChange.add(t.resizeToContent,t);if(s.custom_elements){function handleCustom(ed,o){each(explode(s.custom_elements),function(v){var n;if(v.indexOf('~')===0){v=v.substring(1);n='span';}else n='div';o.content=o.content.replace(new RegExp('<('+v+')([^>]*)>','g'),'<'+n+' mce_name="$1"$2>');o.content=o.content.replace(new RegExp('</('+v+')>','g'),'</'+n+'>');});};t.onBeforeSetContent.add(handleCustom);t.onPostProcess.add(function(ed,o){if(o.set)handleCustom(ed,o)});}if(s.handle_node_change_callback){t.onNodeChange.add(function(ed,cm,n){t.execCallback('handle_node_change_callback',t.id,n,-1,-1,true,t.selection.isCollapsed());});}if(s.save_callback){t.onSaveContent.add(function(ed,o){var h=t.execCallback('save_callback',t.id,o.content,t.getBody());if(h)o.content=h;});}if(s.onchange_callback){t.onChange.add(function(ed,l){t.execCallback('onchange_callback',t,l);});}if(s.convert_newlines_to_brs){t.onBeforeSetContent.add(function(ed,o){if(o.initial)o.content=o.content.replace(/\r?\n/g,'<br />');});}if(s.fix_nesting&&isIE){t.onBeforeSetContent.add(function(ed,o){o.content=t._fixNesting(o.content);});}if(s.preformatted){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^\s*<pre.*?>/,'');o.content=o.content.replace(/<\/pre>\s*$/,'');if(o.set)o.content='<pre class="mceItemHidden">'+o.content+'</pre>';});}if(s.verify_css_classes){t.serializer.attribValueFilter=function(n,v){var s,cl;if(n=='class'){if(!t.classesRE){cl=t.dom.getClasses();if(cl.length>0){s='';each(cl,function(o){s+=(s?'|':'')+o['class'];});t.classesRE=new RegExp('('+s+')','gi');}}return!t.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(v)||t.classesRE.test(v)?v:'';}return v;};}if(s.convert_fonts_to_spans)t._convertFonts();if(s.inline_styles)t._convertInlineElements();if(s.cleanup_callback){t.onBeforeSetContent.add(function(ed,o){o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);});t.onPreProcess.add(function(ed,o){if(o.set)t.execCallback('cleanup_callback','insert_to_editor_dom',o.node,o);if(o.get)t.execCallback('cleanup_callback','get_from_editor_dom',o.node,o);});t.onPostProcess.add(function(ed,o){if(o.set)o.content=t.execCallback('cleanup_callback','insert_to_editor',o.content,o);if(o.get)o.content=t.execCallback('cleanup_callback','get_from_editor',o.content,o);});}if(s.save_callback){t.onGetContent.add(function(ed,o){if(o.save)o.content=t.execCallback('save_callback',t.id,o.content,t.getBody());});}if(s.handle_event_callback){t.onEvent.add(function(ed,e,o){if(t.execCallback('handle_event_callback',e,ed,o)===false)Event.cancel(e);});}t.onSetContent.add(function(){t.addVisual(t.getBody());});if(s.padd_empty_editor){t.onPostProcess.add(function(ed,o){o.content=o.content.replace(/^(<p>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,'');});}if(isGecko&&!s.readonly){try{d.designMode='Off';d.designMode='On';}catch(ex){}}setTimeout(function(){if(t.removed)return;t.load({initial:true,format:(s.cleanup_on_startup?'html':'raw')});t.startContent=t.getContent({format:'raw'});t.undoManager.add({initial:true});t.initialized=true;t.onInit.dispatch(t);t.execCallback('setupcontent_callback',t.id,t.getBody(),t.getDoc());t.execCallback('init_instance_callback',t);t.focus(true);t.nodeChanged({initial:1});if(s.content_css){tinymce.each(explode(s.content_css),function(u){t.dom.loadCSS(t.documentBaseURI.toAbsolute(u));});}if(s.auto_focus){setTimeout(function(){var ed=EditorManager.get(s.auto_focus);ed.selection.select(ed.getBody(),1);ed.selection.collapse(1);ed.getWin().focus();},100);}},1);e=null;},focus:function(sf){var oed,t=this,ce=t.settings.content_editable;if(!sf){if(!ce&&(!isIE||t.selection.getNode().ownerDocument!=t.getDoc()))t.getWin().focus();}if(EditorManager.activeEditor!=t){if((oed=EditorManager.activeEditor)!=null)oed.onDeactivate.dispatch(oed,t);t.onActivate.dispatch(t,oed);}EditorManager._setActive(t);},execCallback:function(n){var t=this,f=t.settings[n],s;if(!f)return;if(t.callbackLookup&&(s=t.callbackLookup[n])){f=s.func;s=s.scope;}if(is(f,'string')){s=f.replace(/\.\w+$/,'');s=s?tinymce.resolve(s):0;f=tinymce.resolve(f);t.callbackLookup=t.callbackLookup||{};t.callbackLookup[n]={func:f,scope:s};}return f.apply(s||t,Array.prototype.slice.call(arguments,1));},translate:function(s){var c=this.settings.language||'en',i18n=EditorManager.i18n;if(!s)return'';return i18n[c+'.'+s]||s.replace(/{\#([^}]+)\}/g,function(a,b){return i18n[c+'.'+b]||'{#'+b+'}';});},getLang:function(n,dv){return EditorManager.i18n[(this.settings.language||'en')+'.'+n]||(is(dv)?dv:'{#'+n+'}');},getParam:function(n,dv,ty){var tr=tinymce.trim,v=is(this.settings[n])?this.settings[n]:dv,o;if(ty==='hash'){o={};if(is(v,'string')){each(v.indexOf('=')>0?v.split(/[;,](?![^=;,]*(?:[;,]|$))/):v.split(','),function(v){v=v.split('=');if(v.length>1)o[tr(v[0])]=tr(v[1]);else o[tr(v[0])]=tr(v);});}else o=v;return o;}return v;},nodeChanged:function(o){var t=this,s=t.selection,n=s.getNode()||t.getBody();if(t.initialized){t.onNodeChange.dispatch(t,o?o.controlManager||t.controlManager:t.controlManager,isIE&&n.ownerDocument!=t.getDoc()?t.getBody():n,s.isCollapsed(),o);}},addButton:function(n,s){var t=this;t.buttons=t.buttons||{};t.buttons[n]=s;},addCommand:function(n,f,s){this.execCommands[n]={func:f,scope:s||this};},addQueryStateHandler:function(n,f,s){this.queryStateCommands[n]={func:f,scope:s||this};},addQueryValueHandler:function(n,f,s){this.queryValueCommands[n]={func:f,scope:s||this};},addShortcut:function(pa,desc,cmd_func,sc){var t=this,c;if(!t.settings.custom_shortcuts)return false;t.shortcuts=t.shortcuts||{};if(is(cmd_func,'string')){c=cmd_func;cmd_func=function(){t.execCommand(c,false,null);};}if(is(cmd_func,'object')){c=cmd_func;cmd_func=function(){t.execCommand(c[0],c[1],c[2]);};}each(explode(pa),function(pa){var o={func:cmd_func,scope:sc||this,desc:desc,alt:false,ctrl:false,shift:false};each(explode(pa,'+'),function(v){switch(v){case'alt':case'ctrl':case'shift':o[v]=true;break;default:o.charCode=v.charCodeAt(0);o.keyCode=v.toUpperCase().charCodeAt(0);}});t.shortcuts[(o.ctrl?'ctrl':'')+','+(o.alt?'alt':'')+','+(o.shift?'shift':'')+','+o.keyCode]=o;});return true;},execCommand:function(cmd,ui,val,a){var t=this,s=0,o,st;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(cmd)&&(!a||!a.skip_focus))t.focus();o={};t.onBeforeExecCommand.dispatch(t,cmd,ui,val,o);if(o.terminate)return false;if(t.execCallback('execcommand_callback',t.id,t.selection.getNode(),cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(o=t.execCommands[cmd]){st=o.func.call(o.scope,ui,val);if(st!==true){t.onExecCommand.dispatch(t,cmd,ui,val,a);return st;}}each(t.plugins,function(p){if(p.execCommand&&p.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);s=1;return false;}});if(s)return true;if(t.theme.execCommand&&t.theme.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}if(t.editorCommands.execCommand(cmd,ui,val)){t.onExecCommand.dispatch(t,cmd,ui,val,a);return true;}t.getDoc().execCommand(cmd,ui,val);t.onExecCommand.dispatch(t,cmd,ui,val,a);},queryCommandState:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryStateCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandState(c);if(o!==-1)return o;try{return this.getDoc().queryCommandState(c);}catch(ex){}},queryCommandValue:function(c){var t=this,o,s;if(t._isHidden())return;if(o=t.queryValueCommands[c]){s=o.func.call(o.scope);if(s!==true)return s;}o=t.editorCommands.queryCommandValue(c);if(is(o))return o;try{return this.getDoc().queryCommandValue(c);}catch(ex){}},show:function(){var t=this;DOM.show(t.getContainer());DOM.hide(t.id);t.load();},hide:function(){var t=this,d=t.getDoc();if(isIE&&d)d.execCommand('SelectAll');t.save();DOM.hide(t.getContainer());DOM.setStyle(t.id,'display',t.orgDisplay);},isHidden:function(){return!DOM.isHidden(this.id);},setProgressState:function(b,ti,o){this.onSetProgressState.dispatch(this,b,ti,o);return b;},resizeToContent:function(){var t=this;DOM.setStyle(t.id+"_ifr",'height',t.getBody().scrollHeight);},load:function(o){var t=this,e=t.getElement(),h;o=o||{};o.load=true;h=t.setContent(is(e.value)?e.value:e.innerHTML,o);o.element=e;if(!o.no_events)t.onLoadContent.dispatch(t,o);o.element=e=null;return h;},save:function(o){var t=this,e=t.getElement(),h,f;if(!t.initialized)return;o=o||{};o.save=true;if(!o.no_events){t.undoManager.typing=0;t.undoManager.add();}o.element=e;h=o.content=t.getContent(o);if(!o.no_events)t.onSaveContent.dispatch(t,o);h=o.content;if(!/TEXTAREA|INPUT/i.test(e.nodeName)){e.innerHTML=h;if(f=DOM.getParent(t.id,'form')){each(f.elements,function(e){if(e.name==t.id){e.value=h;return false;}});}}else e.value=h;o.element=e=null;return h;},setContent:function(h,o){var t=this;o=o||{};o.format=o.format||'html';o.set=true;o.content=h;if(!o.no_events)t.onBeforeSetContent.dispatch(t,o);if(!tinymce.isIE&&(h.length===0||/^\s+$/.test(h))){o.content=t.dom.setHTML(t.getBody(),'<br mce_bogus="1" />');o.format='raw';}o.content=t.dom.setHTML(t.getBody(),tinymce.trim(o.content));if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;o.content=t.dom.setHTML(t.getBody(),t.serializer.serialize(t.getBody(),o));}if(!o.no_events)t.onSetContent.dispatch(t,o);return o.content;},getContent:function(o){var t=this,h;o=o||{};o.format=o.format||'html';o.get=true;if(!o.no_events)t.onBeforeGetContent.dispatch(t,o);if(o.format!='raw'&&t.settings.cleanup){o.getInner=true;h=t.serializer.serialize(t.getBody(),o);}else h=t.getBody().innerHTML;h=h.replace(/^\s*|\s*$/g,'');o.content=h;if(!o.no_events)t.onGetContent.dispatch(t,o);return o.content;},isDirty:function(){var t=this;return tinymce.trim(t.startContent)!=tinymce.trim(t.getContent({format:'raw',no_events:1}))&&!t.isNotDirty;},getContainer:function(){var t=this;if(!t.container)t.container=DOM.get(t.editorContainer||t.id+'_parent');return t.container;},getContentAreaContainer:function(){return this.contentAreaContainer;},getElement:function(){return DOM.get(this.settings.content_element||this.id);},getWin:function(){var t=this,e;if(!t.contentWindow){e=DOM.get(t.id+"_ifr");if(e)t.contentWindow=e.contentWindow;}return t.contentWindow;},getDoc:function(){var t=this,w;if(!t.contentDocument){w=t.getWin();if(w)t.contentDocument=w.document;}return t.contentDocument;},getBody:function(){return this.bodyElement||this.getDoc().body;},convertURL:function(u,n,e){var t=this,s=t.settings;if(s.urlconverter_callback)return t.execCallback('urlconverter_callback',u,e,true,n);if(!s.convert_urls||(e&&e.nodeName=='LINK')||u.indexOf('file:')===0)return u;if(s.relative_urls)return t.documentBaseURI.toRelative(u);u=t.documentBaseURI.toAbsolute(u,s.remove_script_host);return u;},addVisual:function(e){var t=this,s=t.settings;e=e||t.getBody();if(!is(t.hasVisual))t.hasVisual=s.visual;each(t.dom.select('table,a',e),function(e){var v;switch(e.nodeName){case'TABLE':v=t.dom.getAttrib(e,'border');if(!v||v=='0'){if(t.hasVisual)t.dom.addClass(e,s.visual_table_class);else t.dom.removeClass(e,s.visual_table_class);}return;case'A':v=t.dom.getAttrib(e,'name');if(v){if(t.hasVisual)t.dom.addClass(e,'mceItemAnchor');else t.dom.removeClass(e,'mceItemAnchor');}return;}});t.onVisualAid.dispatch(t,e,t.hasVisual);},remove:function(){var t=this,e=t.getContainer();t.removed=1;t.hide();t.execCallback('remove_instance_callback',t);t.onRemove.dispatch(t);t.onExecCommand.listeners=[];EditorManager.remove(t);DOM.remove(e);},destroy:function(s){var t=this;if(t.destroyed)return;if(!s){tinymce.removeUnload(t.destroy);tinyMCE.onBeforeUnload.remove(t._beforeUnload);if(t.theme.destroy)t.theme.destroy();t.controlManager.destroy();t.selection.destroy();t.dom.destroy();if(!t.settings.content_editable){Event.clear(t.getWin());Event.clear(t.getDoc());}Event.clear(t.getBody());Event.clear(t.formElement);}if(t.formElement){t.formElement.submit=t.formElement._mceOldSubmit;t.formElement._mceOldSubmit=null;}t.contentAreaContainer=t.formElement=t.container=t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null;if(t.selection)t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null;t.destroyed=1;},_addEvents:function(){var t=this,i,s=t.settings,lo={mouseup:'onMouseUp',mousedown:'onMouseDown',click:'onClick',keyup:'onKeyUp',keydown:'onKeyDown',keypress:'onKeyPress',submit:'onSubmit',reset:'onReset',contextmenu:'onContextMenu',dblclick:'onDblClick',paste:'onPaste'};function eventHandler(e,o){var ty=e.type;if(t.removed)return;if(t.onEvent.dispatch(t,e,o)!==false){t[lo[e.fakeType||e.type]].dispatch(t,e,o);}};each(lo,function(v,k){switch(k){case'contextmenu':if(tinymce.isOpera){Event.add(t.getBody(),'mousedown',function(e){if(e.ctrlKey){e.fakeType='contextmenu';eventHandler(e);}});}else Event.add(t.getBody(),k,eventHandler);break;case'paste':Event.add(t.getBody(),k,function(e){var tx,h,el,r;if(e.clipboardData)tx=e.clipboardData.getData('text/plain');else if(tinymce.isIE)tx=t.getWin().clipboardData.getData('Text');eventHandler(e,{text:tx,html:h});});break;case'submit':case'reset':Event.add(t.getElement().form||DOM.getParent(t.id,'form'),k,eventHandler);break;default:Event.add(s.content_editable?t.getBody():t.getDoc(),k,eventHandler);}});Event.add(s.content_editable?t.getBody():(isGecko?t.getDoc():t.getWin()),'focus',function(e){t.focus(true);});if(tinymce.isGecko){Event.add(t.getDoc(),'DOMNodeInserted',function(e){var v;e=e.target;if(e.nodeType===1&&e.nodeName==='IMG'&&(v=e.getAttribute('mce_src')))e.src=t.documentBaseURI.toAbsolute(v);});}if(isGecko){function setOpts(){var t=this,d=t.getDoc(),s=t.settings;if(isGecko&&!s.readonly){if(t._isHidden()){try{if(!s.content_editable)d.designMode='On';}catch(ex){}}try{d.execCommand("styleWithCSS",0,false);}catch(ex){if(!t._isHidden())try{d.execCommand("useCSS",0,true);}catch(ex){}}if(!s.table_inline_editing)try{d.execCommand('enableInlineTableEditing',false,false);}catch(ex){}if(!s.object_resizing)try{d.execCommand('enableObjectResizing',false,false);}catch(ex){}}};t.onBeforeExecCommand.add(setOpts);t.onMouseDown.add(setOpts);}t.onMouseUp.add(t.nodeChanged);t.onClick.add(t.nodeChanged);t.onKeyUp.add(function(ed,e){var c=e.keyCode;if((c>=33&&c<=36)||(c>=37&&c<=40)||c==13||c==45||c==46||c==8||(tinymce.isMac&&c>=91&&c<=93)||e.ctrlKey)t.nodeChanged();});t.onReset.add(function(){t.setContent(t.startContent,{format:'raw'});});if(t.getParam('tab_focus')){function tabCancel(ed,e){if(e.keyCode===9)return Event.cancel(e);};function tabHandler(ed,e){var x,i,f,el,v;function find(d){f=DOM.getParent(ed.id,'form');el=f.elements;if(f){each(el,function(e,i){if(e.id==ed.id){x=i;return false;}});if(d>0){for(i=x+1;i<el.length;i++){if(el[i].type!='hidden')return el[i];}}else{for(i=x-1;i>=0;i--){if(el[i].type!='hidden')return el[i];}}}return null;};if(e.keyCode===9){v=explode(ed.getParam('tab_focus'));if(v.length==1){v[1]=v[0];v[0]=':prev';}if(e.shiftKey){if(v[0]==':prev')el=find(-1);else el=DOM.get(v[0]);}else{if(v[1]==':next')el=find(1);else el=DOM.get(v[1]);}if(el){if(ed=EditorManager.get(el.id||el.name))ed.focus();else window.setTimeout(function(){window.focus();el.focus();},10);return Event.cancel(e);}}};t.onKeyUp.add(tabCancel);if(isGecko){t.onKeyPress.add(tabHandler);t.onKeyDown.add(tabCancel);}else t.onKeyDown.add(tabHandler);}if(s.custom_shortcuts){if(s.custom_undo_redo_keyboard_shortcuts){t.addShortcut('ctrl+z',t.getLang('undo_desc'),'Undo');t.addShortcut('ctrl+y',t.getLang('redo_desc'),'Redo');}if(isGecko){t.addShortcut('ctrl+b',t.getLang('bold_desc'),'Bold');t.addShortcut('ctrl+i',t.getLang('italic_desc'),'Italic');t.addShortcut('ctrl+u',t.getLang('underline_desc'),'Underline');}for(i=1;i<=6;i++)t.addShortcut('ctrl+'+i,'',['FormatBlock',false,'<h'+i+'>']);t.addShortcut('ctrl+7','',['FormatBlock',false,'<p>']);t.addShortcut('ctrl+8','',['FormatBlock',false,'<div>']);t.addShortcut('ctrl+9','',['FormatBlock',false,'<address>']);function find(e){var v=null;if(!e.altKey&&!e.ctrlKey&&!e.metaKey)return v;each(t.shortcuts,function(o){if(o.ctrl!=e.ctrlKey&&(!tinymce.isMac||o.ctrl==e.metaKey))return;if(o.alt!=e.altKey)return;if(o.shift!=e.shiftKey)return;if(e.keyCode==o.keyCode||(e.charCode&&e.charCode==o.charCode)){v=o;return false;}});return v;};t.onKeyUp.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyPress.add(function(ed,e){var o=find(e);if(o)return Event.cancel(e);});t.onKeyDown.add(function(ed,e){var o=find(e);if(o){o.func.call(o.scope);return Event.cancel(e);}});}if(tinymce.isIE){Event.add(t.getDoc(),'controlselect',function(e){var re=t.resizeInfo,cb;e=e.target;if(e.nodeName!=='IMG')return;if(re)Event.remove(re.node,re.ev,re.cb);if(!t.dom.hasClass(e,'mceItemNoResize')){ev='resizeend';cb=Event.add(e,ev,function(e){var v;e=e.target;if(v=t.dom.getStyle(e,'width')){t.dom.setAttrib(e,'width',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'width','');}if(v=t.dom.getStyle(e,'height')){t.dom.setAttrib(e,'height',v.replace(/[^0-9%]+/g,''));t.dom.setStyle(e,'height','');}});}else{ev='resizestart';cb=Event.add(e,'resizestart',Event.cancel,Event);}re=t.resizeInfo={node:e,ev:ev,cb:cb};});t.onKeyDown.add(function(ed,e){switch(e.keyCode){case 8:if(t.selection.getRng().item){t.selection.getRng().item(0).removeNode();return Event.cancel(e);}}});}if(tinymce.isOpera){t.onClick.add(function(ed,e){Event.prevent(e);});}if(s.custom_undo_redo){function addUndo(){t.undoManager.typing=0;t.undoManager.add();};if(tinymce.isIE){Event.add(t.getWin(),'blur',function(e){var n;if(t.selection){n=t.selection.getNode();if(!t.removed&&n.ownerDocument&&n.ownerDocument!=t.getDoc())addUndo();}});}else{Event.add(t.getDoc(),'blur',function(){if(t.selection&&!t.removed)addUndo();});}t.onMouseDown.add(addUndo);t.onKeyUp.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45||e.ctrlKey){t.undoManager.typing=0;t.undoManager.add();}});t.onKeyDown.add(function(ed,e){if((e.keyCode>=33&&e.keyCode<=36)||(e.keyCode>=37&&e.keyCode<=40)||e.keyCode==13||e.keyCode==45){if(t.undoManager.typing){t.undoManager.add();t.undoManager.typing=0;}return;}if(!t.undoManager.typing){t.undoManager.add();t.undoManager.typing=1;}});}},_convertInlineElements:function(){var t=this,s=t.settings,dom=t.dom,v,e,na,st,sp;function convert(ed,o){if(!s.inline_styles)return;if(o.get){each(t.dom.select('table,u,strike',o.node),function(n){switch(n.nodeName){case'TABLE':if(v=dom.getAttrib(n,'height')){dom.setStyle(n,'height',v);dom.setAttrib(n,'height','');}break;case'U':case'STRIKE':n.style.textDecoration=n.nodeName=='U'?'underline':'line-through';dom.setAttrib(n,'mce_style','');dom.setAttrib(n,'mce_name','span');break;}});}else if(o.set){each(t.dom.select('table,span',o.node).reverse(),function(n){if(n.nodeName=='TABLE'){if(v=dom.getStyle(n,'height'))dom.setAttrib(n,'height',v.replace(/[^0-9%]+/g,''));}else{if(n.style.textDecoration=='underline')na='u';else if(n.style.textDecoration=='line-through')na='strike';else na='';if(na){n.style.textDecoration='';dom.setAttrib(n,'mce_style','');e=dom.create(na,{style:dom.getAttrib(n,'style')});dom.replace(e,n,1);}}});}};t.onPreProcess.add(convert);if(!s.cleanup_on_startup){t.onSetContent.add(function(ed,o){if(o.initial)convert(t,{node:t.getBody(),set:1});});}},_convertFonts:function(){var t=this,s=t.settings,dom=t.dom,fz,fzn,sl,cl;if(!s.inline_styles)return;fz=[8,10,12,14,18,24,36];fzn=['xx-small','x-small','small','medium','large','x-large','xx-large'];if(sl=s.font_size_style_values)sl=explode(sl);if(cl=s.font_size_classes)cl=explode(cl);function convertToFonts(no){var n,f,nl,x,i,v,st;if(tinymce.isWebKit||!s.inline_styles)return;nl=t.dom.select('span',no);for(x=nl.length-1;x>=0;x--){n=nl[x];f=dom.create('font',{color:dom.toHex(dom.getStyle(n,'color')),face:dom.getStyle(n,'fontFamily'),style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});st=f.style;if(st.color||st.fontFamily){st.color=st.fontFamily='';dom.setAttrib(f,'mce_style','');}if(sl){i=inArray(sl,dom.getStyle(n,'fontSize'));if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));}}else if(cl){i=inArray(cl,dom.getAttrib(n,'class'));v=dom.getStyle(n,'fontSize');if(i==-1&&v.indexOf('pt')>0)i=inArray(fz,parseInt(v));if(i==-1)i=inArray(fzn,v);if(i!=-1){dom.setAttrib(f,'size',''+(i+1||1));f.style.fontSize='';}}if(f.color||f.face||f.size){f.style.fontFamily='';dom.setAttrib(f,'mce_style','');dom.replace(f,n,1);}f=n=null;}};t.onSetContent.add(function(ed,o){convertToFonts(ed.getBody());});t.onPreProcess.add(function(ed,o){var n,sp,nl,x;if(!s.inline_styles)return;if(o.get){nl=t.dom.select('font',o.node);for(x=nl.length-1;x>=0;x--){n=nl[x];sp=dom.create('span',{style:dom.getAttrib(n,'style'),'class':dom.getAttrib(n,'class')});dom.setStyles(sp,{fontFamily:dom.getAttrib(n,'face'),color:dom.getAttrib(n,'color'),backgroundColor:n.style.backgroundColor});if(n.size){if(sl)dom.setStyle(sp,'fontSize',sl[parseInt(n.size)-1]);else dom.setAttrib(sp,'class',cl[parseInt(n.size)-1]);}dom.setAttrib(sp,'mce_style','');dom.replace(sp,n,1);}}});},_isHidden:function(){var s;if(!isGecko)return 0;s=this.selection.getSel();return(!s||!s.rangeCount||s.rangeCount==0);},_fixNesting:function(s){var d=[],i;s=s.replace(/<(\/)?([^\s>]+)[^>]*?>/g,function(a,b,c){var e;if(b==='/'){if(!d.length)return'';if(c!==d[d.length-1].tag){for(i=d.length-1;i>=0;i--){if(d[i].tag===c){d[i].close=1;break;}}return'';}else{d.pop();if(d.length&&d[d.length-1].close){a=a+'</'+d[d.length-1].tag+'>';d.pop();}}}else{if(/^(br|hr|input|meta|img|link|param)$/i.test(c))return a;if(/\/>$/.test(a))return a;d.push({tag:c});}return a;});for(i=d.length-1;i>=0;i--)s+='</'+d[i].tag+'>';return s;}});})();(function(){var each=tinymce.each,isIE=tinymce.isIE,isGecko=tinymce.isGecko,isOpera=tinymce.isOpera,isWebKit=tinymce.isWebKit;tinymce.create('tinymce.EditorCommands',{EditorCommands:function(ed){this.editor=ed;},execCommand:function(cmd,ui,val){var t=this,ed=t.editor,f;switch(cmd){case'Cut':case'Copy':case'Paste':try{ed.getDoc().execCommand(cmd,ui,val);}catch(ex){if(isGecko){ed.windowManager.confirm(ed.getLang('clipboard_msg'),function(s){if(s)window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');});}else ed.windowManager.alert(ed.getLang('clipboard_no_support'));}return true;case'mceResetDesignMode':case'mceBeginUndoLevel':return true;case'unlink':t.UnLink();return true;case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':t.mceJustify(cmd,cmd.substring(7).toLowerCase());return true;case'mceEndUndoLevel':case'mceAddUndoLevel':ed.undoManager.add();return true;default:f=this[cmd];if(f){f.call(this,ui,val);return true;}}return false;},Indent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){d.setStyle(e,'paddingLeft',(parseInt(e.style.paddingLeft||0)+iv)+iu);});return;}ed.getDoc().execCommand('Indent',false,null);if(isIE){d.getParent(s.getNode(),function(n){if(n.nodeName=='BLOCKQUOTE'){n.dir=n.style.cssText='';}});}},Outdent:function(){var ed=this.editor,d=ed.dom,s=ed.selection,e,v,iv,iu;iv=ed.settings.indentation;iu=/[a-z%]+$/i.exec(iv);iv=parseInt(iv);if(ed.settings.inline_styles&&(!this.queryStateInsertUnorderedList()&&!this.queryStateInsertOrderedList())){each(this._getSelectedBlocks(),function(e){v=Math.max(0,parseInt(e.style.paddingLeft||0)-iv);d.setStyle(e,'paddingLeft',v?v+iu:'');});return;}ed.getDoc().execCommand('Outdent',false,null);},mceSetAttribute:function(u,v){var ed=this.editor,d=ed.dom,e;if(e=d.getParent(ed.selection.getNode(),d.isBlock))d.setAttrib(e,v.name,v.value);},mceSetContent:function(u,v){this.editor.setContent(v);},mceToggleVisualAid:function(){var ed=this.editor;ed.hasVisual=!ed.hasVisual;ed.addVisual();},mceReplaceContent:function(u,v){var s=this.editor.selection;s.setContent(v.replace(/\{\$selection\}/g,s.getContent({format:'text'})));},mceInsertLink:function(u,v){var ed=this.editor,s=ed.selection,e=ed.dom.getParent(s.getNode(),'A');if(tinymce.is(v,'string'))v={href:v};function set(e){each(v,function(v,k){ed.dom.setAttrib(e,k,v);});};if(!e){ed.execCommand('CreateLink',false,'javascript:mctmp(0);');each(ed.dom.select('a'),function(e){if(e.href=='javascript:mctmp(0);')set(e);});}else{if(v.href)set(e);else ed.dom.remove(e,1);}},UnLink:function(){var ed=this.editor,s=ed.selection;if(s.isCollapsed())s.select(s.getNode());ed.getDoc().execCommand('unlink',false,null);s.collapse(0);},FontName:function(u,v){var t=this,ed=t.editor,s=ed.selection,e;if(!v){if(s.isCollapsed())s.select(s.getNode());t.RemoveFormat();}else ed.getDoc().execCommand('FontName',false,v);},FontSize:function(u,v){var ed=this.editor,s=ed.settings,fz=tinymce.explode(s.font_size_style_values),fzc=tinymce.explode(s.font_size_classes),h,bm;each(ed.dom.select('font'),function(e){e.style.fontSize='';});ed.getDoc().execCommand('FontSize',false,v);if(s.inline_styles){each(ed.dom.select('font'),function(e){if(e.parentNode.nodeName=='FONT'&&e.size==e.parentNode.size){if(!bm)bm=ed.selection.getBookmark();ed.dom.remove(e,1);return;}if(v=e.size){if(fzc&&fzc.length>0)ed.dom.setAttrib(e,'class',fzc[parseInt(v)-1]);else ed.dom.setStyle(e,'fontSize',fz[parseInt(v)-1]);}});}ed.selection.moveToBookmark(bm);},queryCommandValue:function(c){var f=this['queryValue'+c];if(f)return f.call(this,c);return false;},queryCommandState:function(cmd){var f;switch(cmd){case'JustifyLeft':case'JustifyCenter':case'JustifyRight':case'JustifyFull':return this.queryStateJustify(cmd,cmd.substring(7).toLowerCase());default:if(f=this['queryState'+cmd])return f.call(this,cmd);}return-1;},_queryState:function(c){try{return this.editor.getDoc().queryCommandState(c);}catch(ex){}},_queryVal:function(c){try{return this.editor.getDoc().queryCommandValue(c);}catch(ex){}},queryValueFontSize:function(){var ed=this.editor,v=0,p;if(isOpera||isWebKit){if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.size;return v;}return this._queryVal('FontSize');},queryValueFontName:function(){var ed=this.editor,v=0,p;if(p=ed.dom.getParent(ed.selection.getNode(),'FONT'))v=p.face;if(!v)v=this._queryVal('FontName');return v;},mceJustify:function(c,v){var ed=this.editor,se=ed.selection,n=se.getNode(),nn=n.nodeName,bl,nb,dom=ed.dom,rm;if(ed.settings.inline_styles&&this.queryStateJustify(c,v))rm=1;bl=dom.getParent(n,ed.dom.isBlock);if(nn=='IMG'){if(v=='full')return;if(rm){if(v=='center')dom.setStyle(bl||n.parentNode,'textAlign','');dom.setStyle(n,'float','');this.mceRepaint();return;}if(v=='center'){if(bl&&/^(TD|TH)$/.test(bl.nodeName))bl=0;if(!bl||bl.childNodes.length>1){nb=dom.create('p');nb.appendChild(n.cloneNode(false));if(bl)dom.insertAfter(nb,bl);else dom.insertAfter(nb,n);dom.remove(n);n=nb.firstChild;bl=nb;}dom.setStyle(bl,'textAlign',v);dom.setStyle(n,'float','');}else{dom.setStyle(n,'float',v);dom.setStyle(bl||n.parentNode,'textAlign','');}this.mceRepaint();return;}if(ed.settings.inline_styles&&ed.settings.forced_root_block){if(rm)v='';each(this._getSelectedBlocks(dom.getParent(se.getStart(),dom.isBlock),dom.getParent(se.getEnd(),dom.isBlock)),function(e){dom.setAttrib(e,'align','');dom.setStyle(e,'textAlign',v=='full'?'justify':v);});return;}else if(!rm)ed.getDoc().execCommand(c,false,null);if(ed.settings.inline_styles){if(rm){dom.getParent(ed.selection.getNode(),function(n){if(n.style&&n.style.textAlign)dom.setStyle(n,'textAlign','');});return;}each(dom.select('*'),function(n){var v=n.align;if(v){if(v=='full')v='justify';dom.setStyle(n,'textAlign',v);dom.setAttrib(n,'align','');}});}},mceSetCSSClass:function(u,v){this.mceSetStyleInfo(0,{command:'setattrib',name:'class',value:v});},getSelectedElement:function(){var t=this,ed=t.editor,dom=ed.dom,se=ed.selection,r=se.getRng(),r1,r2,sc,ec,so,eo,e,sp,ep,re;if(se.isCollapsed()||r.item)return se.getNode();re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if(isIE){r1=r.duplicate();r1.collapse(true);sc=r1.parentElement();r2=r.duplicate();r2.collapse(false);ec=r2.parentElement();if(sc!=ec){r1.move('character',1);sc=r1.parentElement();}if(sc==ec){r1=r.duplicate();r1.moveToElementText(sc);if(r1.compareEndPoints('StartToStart',r)==0&&r1.compareEndPoints('EndToEnd',r)==0)return re&&re.test(sc.nodeName)?null:sc;}}else{function getParent(n){return dom.getParent(n,function(n){return n.nodeType==1;});};sc=r.startContainer;ec=r.endContainer;so=r.startOffset;eo=r.endOffset;if(!r.collapsed){if(sc==ec){if(so-eo<2){if(sc.hasChildNodes()){sp=sc.childNodes[so];return re&&re.test(sp.nodeName)?null:sp;}}}}if(sc.nodeType!=3||ec.nodeType!=3)return null;if(so==0){sp=getParent(sc);if(sp&&sp.firstChild!=sc)sp=null;}if(so==sc.nodeValue.length){e=sc.nextSibling;if(e&&e.nodeType==1)sp=sc.nextSibling;}if(eo==0){e=ec.previousSibling;if(e&&e.nodeType==1)ep=e;}if(eo==ec.nodeValue.length){ep=getParent(ec);if(ep&&ep.lastChild!=ec)ep=null;}if(sp==ep)return re&&sp&&re.test(sp.nodeName)?null:sp;}return null;},InsertHorizontalRule:function(){if(isGecko||isIE)this.editor.selection.setContent('<hr />');else this.editor.getDoc().execCommand('InsertHorizontalRule',false,'');},RemoveFormat:function(){var t=this,ed=t.editor,s=ed.selection,b;if(isWebKit)s.setContent(s.getContent({format:'raw'}).replace(/(<(span|b|i|strong|em|strike) [^>]+>|<(span|b|i|strong|em|strike)>|<\/(span|b|i|strong|em|strike)>|)/g,''),{format:'raw'});else ed.getDoc().execCommand('RemoveFormat',false,null);t.mceSetStyleInfo(0,{command:'removeformat'});ed.addVisual();},mceSetStyleInfo:function(u,v){var t=this,ed=t.editor,d=ed.getDoc(),dom=ed.dom,e,b,s=ed.selection,nn=v.wrapper||'span',b=s.getBookmark(),re;function set(n,e){if(n.nodeType==1){switch(v.command){case'setattrib':return dom.setAttrib(n,v.name,v.value);case'setstyle':return dom.setStyle(n,v.name,v.value);case'removeformat':return dom.setAttrib(n,'class','');}}};re=ed.settings.merge_styles_invalid_parents;if(tinymce.is(re,'string'))re=new RegExp(re,'i');if((e=t.getSelectedElement())&&!ed.settings.force_span_wrappers)set(e,1);else{d.execCommand('FontName',false,'__');each(isWebKit?dom.select('span'):dom.select('font'),function(n){var sp,e;if(dom.getAttrib(n,'face')=='__'||n.style.fontFamily==='__'){sp=dom.create(nn,{mce_new:'1'});set(sp);each(n.childNodes,function(n){sp.appendChild(n.cloneNode(true));});dom.replace(sp,n);}});}each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!dom.getAttrib(n,'mce_new')){p=dom.getParent(n,function(n){return n.nodeType==1&&dom.getAttrib(n,'mce_new');});if(p)dom.remove(n,1);}});each(dom.select(nn).reverse(),function(n){var p=n.parentNode;if(!p||!dom.getAttrib(n,'mce_new'))return;if(ed.settings.force_span_wrappers&&p.nodeName!='SPAN')return;if(p.nodeName==nn.toUpperCase()&&p.childNodes.length==1)return dom.remove(p,1);if(n.nodeType==1&&(!re||!re.test(p.nodeName))&&p.childNodes.length==1){set(p);dom.setAttrib(n,'class','');}});each(dom.select(nn).reverse(),function(n){if(dom.getAttrib(n,'mce_new')||(dom.getAttribs(n).length<=1&&n.className==='')){if(!dom.getAttrib(n,'class')&&!dom.getAttrib(n,'style'))return dom.remove(n,1);dom.setAttrib(n,'mce_new','');}});s.moveToBookmark(b);},queryStateJustify:function(c,v){var ed=this.editor,n=ed.selection.getNode(),dom=ed.dom;if(n&&n.nodeName=='IMG'){if(dom.getStyle(n,'float')==v)return 1;return n.parentNode.style.textAlign==v;}n=dom.getParent(ed.selection.getStart(),function(n){return n.nodeType==1&&n.style.textAlign;});if(v=='full')v='justify';if(ed.settings.inline_styles)return(n&&n.style.textAlign==v);return this._queryState(c);},HiliteColor:function(ui,val){var t=this,ed=t.editor,d=ed.getDoc();function set(s){if(!isGecko)return;try{d.execCommand("styleWithCSS",0,s);}catch(ex){d.execCommand("useCSS",0,!s);}};if(isGecko||isOpera){set(true);d.execCommand('hilitecolor',false,val);set(false);}else d.execCommand('BackColor',false,val);},Undo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.undo();ed.nodeChanged();}else ed.getDoc().execCommand('Undo',false,null);},Redo:function(){var ed=this.editor;if(ed.settings.custom_undo_redo){ed.undoManager.redo();ed.nodeChanged();}else ed.getDoc().execCommand('Redo',false,null);},FormatBlock:function(ui,val){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,bl,nb,b;function isBlock(n){return/^(P|DIV|H[1-6]|ADDRESS|BLOCKQUOTE|PRE)$/.test(n.nodeName);};bl=dom.getParent(s.getNode(),function(n){return isBlock(n);});if(bl){if((isIE&&isBlock(bl.parentNode))||bl.nodeName=='DIV'){nb=ed.dom.create(val);each(dom.getAttribs(bl),function(v){dom.setAttrib(nb,v.nodeName,dom.getAttrib(bl,v.nodeName));});b=s.getBookmark();dom.replace(nb,bl,1);s.moveToBookmark(b);ed.nodeChanged();return;}}val=ed.settings.forced_root_block?(val||'<p>'):val;if(val.indexOf('<')==-1)val='<'+val+'>';if(tinymce.isGecko)val=val.replace(/<(div|blockquote|code|dt|dd|dl|samp)>/gi,'$1');ed.getDoc().execCommand('FormatBlock',false,val);},mceCleanup:function(){var ed=this.editor,s=ed.selection,b=s.getBookmark();ed.setContent(ed.getContent());s.moveToBookmark(b);},mceRemoveNode:function(ui,val){var ed=this.editor,s=ed.selection,b,n=val||s.getNode();if(n==ed.getBody())return;b=s.getBookmark();ed.dom.remove(n,1);s.moveToBookmark(b);ed.nodeChanged();},mceSelectNodeDepth:function(ui,val){var ed=this.editor,s=ed.selection,c=0;ed.dom.getParent(s.getNode(),function(n){if(n.nodeType==1&&c++==val){s.select(n);ed.nodeChanged();return false;}},ed.getBody());},mceSelectNode:function(u,v){this.editor.selection.select(v);},mceInsertContent:function(ui,val){this.editor.selection.setContent(val);},mceInsertRawHTML:function(ui,val){var ed=this.editor;ed.selection.setContent('tiny_mce_marker');ed.setContent(ed.getContent().replace(/tiny_mce_marker/g,val));},mceRepaint:function(){var s,b,e=this.editor;if(tinymce.isGecko){try{s=e.selection;b=s.getBookmark(true);if(s.getSel())s.getSel().selectAllChildren(e.getBody());s.collapse(true);s.moveToBookmark(b);}catch(ex){}}},queryStateUnderline:function(){var ed=this.editor,n=ed.selection.getNode();if(n&&n.nodeName=='A')return false;return this._queryState('Underline');},queryStateOutdent:function(){var ed=this.editor,n;if(ed.settings.inline_styles){if((n=ed.dom.getParent(ed.selection.getStart(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;if((n=ed.dom.getParent(ed.selection.getEnd(),ed.dom.isBlock))&&parseInt(n.style.paddingLeft)>0)return true;}else return!!ed.dom.getParent(ed.selection.getNode(),'BLOCKQUOTE');return this.queryStateInsertUnorderedList()||this.queryStateInsertOrderedList();},queryStateInsertUnorderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'UL');},queryStateInsertOrderedList:function(){return this.editor.dom.getParent(this.editor.selection.getNode(),'OL');},queryStatemceBlockQuote:function(){return!!this.editor.dom.getParent(this.editor.selection.getStart(),function(n){return n.nodeName==='BLOCKQUOTE';});},mceBlockQuote:function(){var t=this,ed=t.editor,s=ed.selection,dom=ed.dom,sb,eb,n,bm,bq,r,bq2,i,nl;function getBQ(e){return dom.getParent(e,function(n){return n.nodeName==='BLOCKQUOTE';});};sb=dom.getParent(s.getStart(),dom.isBlock);eb=dom.getParent(s.getEnd(),dom.isBlock);if(bq=getBQ(sb)){if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();if(getBQ(eb)){bq2=bq.cloneNode(false);while(n=eb.nextSibling)bq2.appendChild(n.parentNode.removeChild(n));}if(bq2)dom.insertAfter(bq2,bq);nl=t._getSelectedBlocks(sb,eb);for(i=nl.length-1;i>=0;i--){dom.insertAfter(nl[i],bq);}if(/^\s*$/.test(bq.innerHTML))dom.remove(bq,1);if(bq2&&/^\s*$/.test(bq2.innerHTML))dom.remove(bq2,1);if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(0);if(dom.getParent(s.getStart(),dom.isBlock)!=sb){r=s.getRng();r.move('character',-1);r.select();}}}else t.editor.selection.moveToBookmark(bm);return;}if(isIE&&!sb&&!eb){t.editor.getDoc().execCommand('Indent');n=getBQ(s.getNode());n.style.margin=n.dir='';return;}if(!sb||!eb)return;if(sb!=eb||sb.childNodes.length>1||(sb.childNodes.length==1&&sb.firstChild.nodeName!='BR'))bm=s.getBookmark();each(t._getSelectedBlocks(getBQ(s.getStart()),getBQ(s.getEnd())),function(e){if(e.nodeName=='BLOCKQUOTE'&&!bq){bq=e;return;}if(!bq){bq=dom.create('blockquote');e.parentNode.insertBefore(bq,e);}if(e.nodeName=='BLOCKQUOTE'&&bq){n=e.firstChild;while(n){bq.appendChild(n.cloneNode(true));n=n.nextSibling;}dom.remove(e);return;}bq.appendChild(dom.remove(e));});if(!bm){if(!isIE){r=ed.getDoc().createRange();r.setStart(sb,0);r.setEnd(sb,0);s.setRng(r);}else{s.select(sb);s.collapse(1);}}else s.moveToBookmark(bm);},_getSelectedBlocks:function(st,en){var ed=this.editor,dom=ed.dom,s=ed.selection,sb,eb,n,bl=[];sb=dom.getParent(st||s.getStart(),dom.isBlock);eb=dom.getParent(en||s.getEnd(),dom.isBlock);if(sb)bl.push(sb);if(sb&&eb&&sb!=eb){n=sb;while((n=n.nextSibling)&&n!=eb){if(dom.isBlock(n))bl.push(n);}}if(eb&&sb!=eb)bl.push(eb);return bl;}});})();tinymce.create('tinymce.UndoManager',{index:0,data:null,typing:0,UndoManager:function(ed){var t=this,Dispatcher=tinymce.util.Dispatcher;t.editor=ed;t.data=[];t.onAdd=new Dispatcher(this);t.onUndo=new Dispatcher(this);t.onRedo=new Dispatcher(this);},add:function(l){var t=this,i,ed=t.editor,b,s=ed.settings,la;l=l||{};l.content=l.content||ed.getContent({format:'raw',no_events:1});l.content=l.content.replace(/^\s*|\s*$/g,'');la=t.data[t.index>0&&(t.index==0||t.index==t.data.length)?t.index-1:t.index];if(!l.initial&&la&&l.content==la.content)return null;if(s.custom_undo_redo_levels){if(t.data.length>s.custom_undo_redo_levels){for(i=0;i<t.data.length-1;i++)t.data[i]=t.data[i+1];t.data.length--;t.index=t.data.length;}}if(s.custom_undo_redo_restore_selection&&!l.initial)l.bookmark=b=l.bookmark||ed.selection.getBookmark();if(t.index<t.data.length)t.index++;if(t.data.length===0&&!l.initial)return null;t.data.length=t.index+1;t.data[t.index++]=l;if(l.initial)t.index=0;if(t.data.length==2&&t.data[0].initial)t.data[0].bookmark=b;t.onAdd.dispatch(t,l);ed.isNotDirty=0;return l;},undo:function(){var t=this,ed=t.editor,l=l,i;if(t.typing){t.add();t.typing=0;}if(t.index>0){if(t.index==t.data.length&&t.index>1){i=t.index;t.typing=0;if(!t.add())t.index=i;--t.index;}l=t.data[--t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onUndo.dispatch(t,l);}return l;},redo:function(){var t=this,ed=t.editor,l=null;if(t.index<t.data.length-1){l=t.data[++t.index];ed.setContent(l.content,{format:'raw'});ed.selection.moveToBookmark(l.bookmark);t.onRedo.dispatch(t,l);}return l;},clear:function(){var t=this;t.data=[];t.index=0;t.typing=0;t.add({initial:true});},hasUndo:function(){return this.index!=0||this.typing;},hasRedo:function(){return this.index<this.data.length-1;}});(function(){var Event,isIE,isGecko,isOpera,each,extend;Event=tinymce.dom.Event;isIE=tinymce.isIE;isGecko=tinymce.isGecko;isOpera=tinymce.isOpera;each=tinymce.each;extend=tinymce.extend;tinymce.create('tinymce.ForceBlocks',{ForceBlocks:function(ed){var t=this,s=ed.settings,elm;t.editor=ed;t.dom=ed.dom;elm=(s.forced_root_block||'p').toLowerCase();s.element=elm.toUpperCase();ed.onPreInit.add(t.setup,t);t.reOpera=new RegExp('(\\u00a0| | )<\/'+elm+'>','gi');t.rePadd=new RegExp('<p( )([^>]+)><\\\/p>|<p( )([^>]+)\\\/>|<p( )([^>]+)>\\s+<\\\/p>|<p><\\\/p>|<p\\\/>|<p>\\s+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR1=new RegExp('<p( )([^>]+)>[\\s\\u00a0]+<\\\/p>|<p>[\\s\\u00a0]+<\\\/p>'.replace(/p/g,elm),'gi');t.reNbsp2BR2=new RegExp('<p( )([^>]+)>( | )<\\\/p>|<p>( | )<\\\/p>'.replace(/p/g,elm),'gi');t.reBR2Nbsp=new RegExp('<p( )([^>]+)>\\s*<br \\\/>\\s*<\\\/p>|<p>\\s*<br \\\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');t.reTrailBr=new RegExp('\\s*<br \\/>\\s*<\\\/p>'.replace(/p/g,elm),'gi');function padd(ed,o){if(isOpera)o.content=o.content.replace(t.reOpera,'</'+elm+'>');o.content=o.content.replace(t.rePadd,'<'+elm+'$1$2$3$4$5$6>\u00a0</'+elm+'>');if(!isIE&&!isOpera&&o.set){o.content=o.content.replace(t.reNbsp2BR1,'<'+elm+'$1$2><br /></'+elm+'>');o.content=o.content.replace(t.reNbsp2BR2,'<'+elm+'$1$2><br /></'+elm+'>');}else{o.content=o.content.replace(t.reBR2Nbsp,'<'+elm+'$1$2>\u00a0</'+elm+'>');o.content=o.content.replace(t.reTrailBr,'</'+elm+'>');}};ed.onBeforeSetContent.add(padd);ed.onPostProcess.add(padd);if(s.forced_root_block){ed.onInit.add(t.forceRoots,t);ed.onSetContent.add(t.forceRoots,t);ed.onBeforeGetContent.add(t.forceRoots,t);}},setup:function(){var t=this,ed=t.editor,s=ed.settings;if(s.forced_root_block){ed.onKeyUp.add(t.forceRoots,t);ed.onPreProcess.add(t.forceRoots,t);}if(s.force_br_newlines){if(isIE){ed.onKeyPress.add(function(ed,e){var n,s=ed.selection;if(e.keyCode==13&&s.getNode().nodeName!='LI'){s.setContent('<br id="__" /> ',{format:'raw'});n=ed.dom.get('__');n.removeAttribute('id');s.select(n);s.collapse();return Event.cancel(e);}});}return;}if(!isIE&&s.force_p_newlines){ed.onKeyPress.add(function(ed,e){if(e.keyCode==13&&!e.shiftKey){if(!t.insertPara(e))Event.cancel(e);}});if(isGecko){ed.onKeyDown.add(function(ed,e){if((e.keyCode==8||e.keyCode==46)&&!e.shiftKey)t.backspaceDelete(e,e.keyCode==8);});}}function ren(rn,na){var ne=ed.dom.create(na);each(rn.attributes,function(a){if(a.specified&&a.nodeValue)ne.setAttribute(a.nodeName.toLowerCase(),a.nodeValue);});each(rn.childNodes,function(n){ne.appendChild(n.cloneNode(true));});rn.parentNode.replaceChild(ne,rn);return ne;};if(isIE&&s.element!='P'){ed.onKeyPress.add(function(ed,e){t.lastElm=ed.selection.getNode().nodeName;});ed.onKeyUp.add(function(ed,e){var bl,sel=ed.selection,n=sel.getNode(),b=ed.getBody();if(b.childNodes.length===1&&n.nodeName=='P'){n=ren(n,s.element);sel.select(n);sel.collapse();ed.nodeChanged();}else if(e.keyCode==13&&!e.shiftKey&&t.lastElm!='P'){bl=ed.dom.getParent(n,'P');if(bl){ren(bl,s.element);ed.nodeChanged();}}});}},find:function(n,t,s){var ed=this.editor,w=ed.getDoc().createTreeWalker(n,4,null,false),c=-1;while(n=w.nextNode()){c++;if(t==0&&n==s)return c;if(t==1&&c==s)return n;}return-1;},forceRoots:function(ed,e){var t=this,ed=t.editor,b=ed.getBody(),d=ed.getDoc(),se=ed.selection,s=se.getSel(),r=se.getRng(),si=-2,ei,so,eo,tr,c=-0xFFFFFF;var nx,bl,bp,sp,le,nl=b.childNodes,i;if(e&&e.keyCode==13)return true;for(i=nl.length-1;i>=0;i--){nx=nl[i];if(nx.nodeType==3||(!t.dom.isBlock(nx)&&nx.nodeType!=8)){if(!bl){if(nx.nodeType!=3||/[^\s]/g.test(nx.nodeValue)){if(si==-2&&r){if(!isIE){if(ed.dom.getParent(r.startContainer,function(e){return e===b;})){so=r.startOffset;eo=r.endOffset;si=t.find(b,0,r.startContainer);ei=t.find(b,0,r.endContainer);}}else{tr=d.body.createTextRange();tr.moveToElementText(b);tr.collapse(1);bp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(1);sp=tr.move('character',c)*-1;tr=r.duplicate();tr.collapse(0);le=(tr.move('character',c)*-1)-sp;si=sp-bp;ei=le;}}bl=ed.dom.create(ed.settings.forced_root_block);bl.appendChild(nx.cloneNode(1));nx.parentNode.replaceChild(bl,nx);}}else{if(bl.hasChildNodes())bl.insertBefore(nx,bl.firstChild);else bl.appendChild(nx);}}else bl=null;}if(si!=-2){if(!isIE){bl=b.getElementsByTagName(ed.settings.element)[0];r=d.createRange();if(si!=-1)r.setStart(t.find(b,1,si),so);else r.setStart(bl,0);if(ei!=-1)r.setEnd(t.find(b,1,ei),eo);else r.setEnd(bl,0);if(s){s.removeAllRanges();s.addRange(r);}}else{try{r=s.createRange();r.moveToElementText(b);r.collapse(1);r.moveStart('character',si);r.moveEnd('character',ei);r.select();}catch(ex){}}}},getParentBlock:function(n){var d=this.dom;return d.getParent(n,d.isBlock);},insertPara:function(e){var t=this,ed=t.editor,dom=ed.dom,d=ed.getDoc(),se=ed.settings,s=ed.selection.getSel(),r=s.getRangeAt(0),b=d.body;var rb,ra,dir,sn,so,en,eo,sb,eb,bn,bef,aft,sc,ec,n,vp=dom.getViewPort(ed.getWin()),y,ch;function isEmpty(n){n=n.innerHTML;n=n.replace(/<(img|hr|table)/gi,'-');n=n.replace(/<[^>]+>/g,'');return n.replace(/[ \t\r\n]+/g,'')=='';};rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(true);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(true);dir=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;sn=dir?s.anchorNode:s.focusNode;so=dir?s.anchorOffset:s.focusOffset;en=dir?s.focusNode:s.anchorNode;eo=dir?s.focusOffset:s.anchorOffset;if(sn===en&&/^(TD|TH)$/.test(sn.nodeName)){dom.remove(sn.firstChild);ed.dom.add(sn,se.element,null,'<br />');aft=ed.dom.add(sn,se.element,null,'<br />');r=d.createRange();r.selectNodeContents(aft);r.collapse(1);ed.selection.setRng(r);return false;}if(sn==b&&en==b&&b.firstChild&&ed.dom.isBlock(b.firstChild)){sn=en=sn.firstChild;so=eo=0;rb=d.createRange();rb.setStart(sn,0);ra=d.createRange();ra.setStart(en,0);}sn=sn.nodeName=="HTML"?d.body:sn;sn=sn.nodeName=="BODY"?sn.firstChild:sn;en=en.nodeName=="HTML"?d.body:en;en=en.nodeName=="BODY"?en.firstChild:en;sb=t.getParentBlock(sn);eb=t.getParentBlock(en);bn=sb?sb.nodeName:se.element;if(t.dom.getParent(sb,function(n){return/OL|UL|PRE/.test(n.nodeName);}))return true;if(sb&&(sb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(sb.style.position))){bn=se.element;sb=null;}if(eb&&(eb.nodeName=='CAPTION'||/absolute|relative|static/gi.test(eb.style.position))){bn=se.element;eb=null;}if(/(TD|TABLE|TH|CAPTION)/.test(bn)||(sb&&bn=="DIV"&&/left|right/gi.test(sb.style.cssFloat))){bn=se.element;sb=eb=null;}bef=(sb&&sb.nodeName==bn)?sb.cloneNode(0):ed.dom.create(bn);aft=(eb&&eb.nodeName==bn)?eb.cloneNode(0):ed.dom.create(bn);aft.removeAttribute('id');if(/^(H[1-6])$/.test(bn)&&sn.nodeValue&&so==sn.nodeValue.length)aft=ed.dom.create(se.element);n=sc=sn;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;sc=n;}while((n=n.previousSibling?n.previousSibling:n.parentNode));n=ec=en;do{if(n==b||n.nodeType==9||t.dom.isBlock(n)||/(TD|TABLE|TH|CAPTION)/.test(n.nodeName))break;ec=n;}while((n=n.nextSibling?n.nextSibling:n.parentNode));if(sc.nodeName==bn)rb.setStart(sc,0);else rb.setStartBefore(sc);rb.setEnd(sn,so);bef.appendChild(rb.cloneContents()||d.createTextNode(''));try{ra.setEndAfter(ec);}catch(ex){}ra.setStart(en,eo);aft.appendChild(ra.cloneContents()||d.createTextNode(''));r=d.createRange();if(!sc.previousSibling&&sc.parentNode.nodeName==bn){r.setStartBefore(sc.parentNode);}else{if(rb.startContainer.nodeName==bn&&rb.startOffset==0)r.setStartBefore(rb.startContainer);else r.setStart(rb.startContainer,rb.startOffset);}if(!ec.nextSibling&&ec.parentNode.nodeName==bn)r.setEndAfter(ec.parentNode);else r.setEnd(ra.endContainer,ra.endOffset);r.deleteContents();if(isOpera)ed.getWin().scrollTo(0,vp.y);if(bef.firstChild&&bef.firstChild.nodeName==bn)bef.innerHTML=bef.firstChild.innerHTML;if(aft.firstChild&&aft.firstChild.nodeName==bn)aft.innerHTML=aft.firstChild.innerHTML;if(isEmpty(bef))bef.innerHTML='<br />';if(isEmpty(aft))aft.innerHTML=isOpera?' ':'<br />';if(isOpera&&parseFloat(opera.version())<9.5){r.insertNode(bef);r.insertNode(aft);}else{r.insertNode(aft);r.insertNode(bef);}aft.normalize();bef.normalize();function first(n){return d.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false).nextNode()||n;};r=d.createRange();r.selectNodeContents(isGecko?first(aft):aft);r.collapse(1);s.removeAllRanges();s.addRange(r);y=ed.dom.getPos(aft).y;ch=aft.clientHeight;if(y<vp.y||y+ch>vp.y+vp.h){ed.getWin().scrollTo(0,y<vp.y?y:y-vp.h+25);}return false;},backspaceDelete:function(e,bs){var t=this,ed=t.editor,b=ed.getBody(),n,se=ed.selection,r=se.getRng(),sc=r.startContainer,n,w,tn;if(sc&&ed.dom.isBlock(sc)&&!/^(TD|TH)$/.test(sc.nodeName)&&bs){if(sc.childNodes.length==0||(sc.childNodes.length==1&&sc.firstChild.nodeName=='BR')){n=sc;while((n=n.previousSibling)&&!ed.dom.isBlock(n));if(n){if(sc!=b.firstChild){w=ed.dom.doc.createTreeWalker(n,NodeFilter.SHOW_TEXT,null,false);while(tn=w.nextNode())n=tn;r=ed.getDoc().createRange();r.setStart(n,n.nodeValue?n.nodeValue.length:0);r.setEnd(n,n.nodeValue?n.nodeValue.length:0);se.setRng(r);ed.dom.remove(sc);}return Event.cancel(e);}}}function handler(e){var pr;e=e.target;if(e&&e.parentNode&&e.nodeName=='BR'&&(n=t.getParentBlock(e))){pr=e.previousSibling;Event.remove(b,'DOMNodeInserted',handler);if(pr&&pr.nodeType==3&&/\s+$/.test(pr.nodeValue))return;if(e.previousSibling||e.nextSibling)ed.dom.remove(e);}};Event._add(b,'DOMNodeInserted',handler);window.setTimeout(function(){Event._remove(b,'DOMNodeInserted',handler);},1);}});})();(function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,each=tinymce.each,extend=tinymce.extend;tinymce.create('tinymce.ControlManager',{ControlManager:function(ed,s){var t=this,i;s=s||{};t.editor=ed;t.controls={};t.onAdd=new tinymce.util.Dispatcher(t);t.onPostRender=new tinymce.util.Dispatcher(t);t.prefix=s.prefix||ed.id+'_';t._cls={};t.onPostRender.add(function(){each(t.controls,function(c){c.postRender();});});},get:function(id){return this.controls[this.prefix+id]||this.controls[id];},setActive:function(id,s){var c=null;if(c=this.get(id))c.setActive(s);return c;},setDisabled:function(id,s){var c=null;if(c=this.get(id))c.setDisabled(s);return c;},add:function(c){var t=this;if(c){t.controls[c.id]=c;t.onAdd.dispatch(c,t);}return c;},createControl:function(n){var c,t=this,ed=t.editor;each(ed.plugins,function(p){if(p.createControl){c=p.createControl(n,t);if(c)return false;}});switch(n){case"|":case"separator":return t.createSeparator();}if(!c&&ed.buttons&&(c=ed.buttons[n]))return t.createButton(n,c);return t.add(c);},createDropMenu:function(id,s,cc){var t=this,ed=t.editor,c,bm,v,cls;s=extend({'class':'mceDropDown',constrain:ed.settings.constrain_menus},s);s['class']=s['class']+' '+ed.getParam('skin')+'Skin';if(v=ed.getParam('skin_variant'))s['class']+=' '+ed.getParam('skin')+'Skin'+v.substring(0,1).toUpperCase()+v.substring(1);id=t.prefix+id;cls=cc||t._cls.dropmenu||tinymce.ui.DropMenu;c=t.controls[id]=new cls(id,s);c.onAddItem.add(function(c,o){var s=o.settings;s.title=ed.getLang(s.title,s.title);if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,s.value);};}});ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm)ed.selection.moveToBookmark(bm);});}return t.add(c);},createListBox:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;if(ed.settings.use_native_selects)c=new tinymce.ui.NativeListBox(id,s);else{cls=cc||t._cls.listbox||tinymce.ui.ListBox;c=new cls(id,s);}t.controls[id]=c;if(tinymce.isWebKit){c.onPostRender.add(function(c,n){Event.add(n,'mousedown',function(){ed.bookmark=ed.selection.getBookmark('simple');});Event.add(n,'focus',function(){ed.selection.moveToBookmark(ed.bookmark);ed.bookmark=null;});});}if(c.hideMenu)ed.onMouseDown.add(c.hideMenu,c);return t.add(c);},createButton:function(id,s,cc){var t=this,ed=t.editor,o,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.label=ed.translate(s.label);s.scope=s.scope||ed;if(!s.onclick&&!s.menu_button){s.onclick=function(){ed.execCommand(s.cmd,s.ui||false,s.value);};}s=extend({title:s.title,'class':'mce_'+id,unavailable_prefix:ed.getLang('unavailable',''),scope:s.scope,control_manager:t},s);id=t.prefix+id;if(s.menu_button){cls=cc||t._cls.menubutton||tinymce.ui.MenuButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);}else{cls=t._cls.button||tinymce.ui.Button;c=new cls(id,s);}return t.add(c);},createMenuButton:function(id,s){s=s||{};s.menu_button=1;return this.createButton(id,s);},createSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,scope:s.scope,control_manager:t},s);id=t.prefix+id;cls=cc||t._cls.splitbutton||tinymce.ui.SplitButton;c=t.add(new cls(id,s));ed.onMouseDown.add(c.hideMenu,c);return c;},createColorSplitButton:function(id,s,cc){var t=this,ed=t.editor,cmd,c,cls,bm;if(t.get(id))return null;s.title=ed.translate(s.title);s.scope=s.scope||ed;if(!s.onclick){s.onclick=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}if(!s.onselect){s.onselect=function(v){ed.execCommand(s.cmd,s.ui||false,v||s.value);};}s=extend({title:s.title,'class':'mce_'+id,'menu_class':ed.getParam('skin')+'Skin',scope:s.scope,more_colors_title:ed.getLang('more_colors')},s);id=t.prefix+id;cls=cc||t._cls.colorsplitbutton||tinymce.ui.ColorSplitButton;c=new cls(id,s);ed.onMouseDown.add(c.hideMenu,c);ed.onRemove.add(function(){c.destroy();});if(tinymce.isIE){c.onShowMenu.add(function(){bm=ed.selection.getBookmark(1);});c.onHideMenu.add(function(){if(bm){ed.selection.moveToBookmark(bm);bm=0;}});}return t.add(c);},createToolbar:function(id,s,cc){var c,t=this,cls;id=t.prefix+id;cls=cc||t._cls.toolbar||tinymce.ui.Toolbar;c=new cls(id,s);if(t.get(id))return null;return t.add(c);},createSeparator:function(cc){var cls=cc||this._cls.separator||tinymce.ui.Separator;return new cls();},setControlType:function(n,c){return this._cls[n.toLowerCase()]=c;},destroy:function(){each(this.controls,function(c){c.destroy();});this.controls=null;}});})();(function(){var Dispatcher=tinymce.util.Dispatcher,each=tinymce.each,isIE=tinymce.isIE,isOpera=tinymce.isOpera;tinymce.create('tinymce.WindowManager',{WindowManager:function(ed){var t=this;t.editor=ed;t.onOpen=new Dispatcher(t);t.onClose=new Dispatcher(t);t.params={};t.features={};},open:function(s,p){var t=this,f='',x,y,mo=t.editor.settings.dialog_type=='modal',w,sw,sh,vp=tinymce.DOM.getViewPort(),u;s=s||{};p=p||{};sw=isOpera?vp.w:screen.width;sh=isOpera?vp.h:screen.height;s.name=s.name||'mc_'+new Date().getTime();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240);s.resizable=true;s.left=s.left||parseInt(sw/ 2.0) - (s.width /2.0);s.top=s.top||parseInt(sh/ 2.0) - (s.height /2.0);p.inline=false;p.mce_width=s.width;p.mce_height=s.height;p.mce_auto_focus=s.auto_focus;if(mo){if(isIE){s.center=true;s.help=false;s.dialogWidth=s.width+'px';s.dialogHeight=s.height+'px';s.scroll=s.scrollbars||false;}}each(s,function(v,k){if(tinymce.is(v,'boolean'))v=v?'yes':'no';if(!/^(name|url)$/.test(k)){if(isIE&&mo)f+=(f?';':'')+k+':'+v;else f+=(f?',':'')+k+'='+v;}});t.features=s;t.params=p;t.onOpen.dispatch(t,s,p);u=s.url||s.file;if(tinymce.relaxedDomain)u+=(u.indexOf('?')==-1?'?':'&')+'mce_rdomain='+tinymce.relaxedDomain;u=tinymce._addVer(u);try{if(isIE&&mo){w=1;window.showModalDialog(u,window,f);}else w=window.open(u,s.name,f);}catch(ex){}if(!w)alert(t.editor.getLang('popup_blocked'));},close:function(w){w.close();this.onClose.dispatch(this);},createInstance:function(cl,a,b,c,d,e){var f=tinymce.resolve(cl);return new f(a,b,c,d,e);},confirm:function(t,cb,s,w){w=w||window;cb.call(s||this,w.confirm(this._decode(this.editor.getLang(t,t))));},alert:function(tx,cb,s,w){var t=this;w=w||window;w.alert(t._decode(t.editor.getLang(tx,tx)));if(cb)cb.call(s||t);},_decode:function(s){return tinymce.DOM.decode(s).replace(/\\n/g,'\n');}});}());
\ No newline at end of file
+++ /dev/null
-// Some global instances\r
-var tinymce = null, tinyMCEPopup, tinyMCE;\r
-\r
-tinyMCEPopup = {\r
- init : function() {\r
- var t = this, w, ti, li, q, i, it;\r
-\r
- li = ('' + document.location.search).replace(/^\?/, '').split('&');\r
- q = {};\r
- for (i=0; i<li.length; i++) {\r
- it = li[i].split('=');\r
- q[unescape(it[0])] = unescape(it[1]);\r
- }\r
-\r
- if (q.mce_rdomain)\r
- document.domain = q.mce_rdomain;\r
-\r
- // Find window & API\r
- w = t.getWin();\r
- tinymce = w.tinymce;\r
- tinyMCE = w.tinyMCE;\r
- t.editor = tinymce.EditorManager.activeEditor;\r
- t.params = t.editor.windowManager.params;\r
- t.features = t.editor.windowManager.features;\r
-\r
- // Setup local DOM\r
- t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);\r
- t.dom.loadCSS(t.features.popup_css || t.editor.settings.popup_css);\r
-\r
- // Setup on init listeners\r
- t.listeners = [];\r
- t.onInit = {\r
- add : function(f, s) {\r
- t.listeners.push({func : f, scope : s});\r
- }\r
- };\r
-\r
- t.isWindow = !t.getWindowArg('mce_inline');\r
- t.id = t.getWindowArg('mce_window_id');\r
- t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);\r
- },\r
-\r
- getWin : function() {\r
- return window.dialogArguments || opener || parent || top;\r
- },\r
-\r
- getWindowArg : function(n, dv) {\r
- var v = this.params[n];\r
-\r
- return tinymce.is(v) ? v : dv;\r
- },\r
-\r
- getParam : function(n, dv) {\r
- return this.editor.getParam(n, dv);\r
- },\r
-\r
- getLang : function(n, dv) {\r
- return this.editor.getLang(n, dv);\r
- },\r
-\r
- execCommand : function(cmd, ui, val, a) {\r
- a = a || {};\r
- a.skip_focus = 1;\r
-\r
- this.restoreSelection();\r
- return this.editor.execCommand(cmd, ui, val, a);\r
- },\r
-\r
- resizeToInnerSize : function() {\r
- var t = this, n, b = document.body, vp = t.dom.getViewPort(window), dw, dh;\r
-\r
- dw = t.getWindowArg('mce_width') - vp.w;\r
- dh = t.getWindowArg('mce_height') - vp.h;\r
-\r
- if (t.isWindow)\r
- window.resizeBy(dw, dh);\r
- else\r
- t.editor.windowManager.resizeBy(dw, dh, t.id);\r
- },\r
-\r
- executeOnLoad : function(s) {\r
- this.onInit.add(function() {\r
- eval(s);\r
- });\r
- },\r
-\r
- storeSelection : function() {\r
- this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark('simple');\r
- },\r
-\r
- restoreSelection : function() {\r
- var t = tinyMCEPopup;\r
-\r
- if (!t.isWindow && tinymce.isIE)\r
- t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);\r
- },\r
-\r
- requireLangPack : function() {\r
- var u = this.getWindowArg('plugin_url') || this.getWindowArg('theme_url');\r
-\r
- if (u && this.editor.settings.language) {\r
- u += '/langs/' + this.editor.settings.language + '_dlg.js';\r
-\r
- if (!tinymce.ScriptLoader.isDone(u)) {\r
- document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');\r
- tinymce.ScriptLoader.markDone(u);\r
- }\r
- }\r
- },\r
-\r
- pickColor : function(e, element_id) {\r
- this.execCommand('mceColorPicker', true, {\r
- color : document.getElementById(element_id).value,\r
- func : function(c) {\r
- document.getElementById(element_id).value = c;\r
-\r
- try {\r
- document.getElementById(element_id).onchange();\r
- } catch (ex) {\r
- // Try fire event, ignore errors\r
- }\r
- }\r
- });\r
- },\r
-\r
- openBrowser : function(element_id, type, option) {\r
- tinyMCEPopup.restoreSelection();\r
- this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);\r
- },\r
-\r
- confirm : function(t, cb, s) {\r
- this.editor.windowManager.confirm(t, cb, s, window);\r
- },\r
-\r
- alert : function(tx, cb, s) {\r
- this.editor.windowManager.alert(tx, cb, s, window);\r
- },\r
-\r
- close : function() {\r
- var t = this;\r
-\r
- // To avoid domain relaxing issue in Opera\r
- function close() {\r
- t.editor.windowManager.close(window);\r
- tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup\r
- };\r
-\r
- if (tinymce.isOpera)\r
- t.getWin().setTimeout(close, 0);\r
- else\r
- close();\r
- },\r
-\r
- // Internal functions \r
-\r
- _restoreSelection : function() {\r
- var e = window.event.srcElement;\r
-\r
- if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))\r
- tinyMCEPopup.restoreSelection();\r
- },\r
-\r
-/* _restoreSelection : function() {\r
- var e = window.event.srcElement;\r
-\r
- // If user focus a non text input or textarea\r
- if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')\r
- tinyMCEPopup.restoreSelection();\r
- },*/\r
-\r
- _onDOMLoaded : function() {\r
- var t = this, ti = document.title, bm, h;\r
-\r
- // Translate page\r
- h = document.body.innerHTML;\r
-\r
- // Replace a=x with a="x" in IE\r
- if (tinymce.isIE)\r
- h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')\r
-\r
- document.dir = t.editor.getParam('directionality','');\r
- document.body.innerHTML = t.editor.translate(h);\r
- document.title = ti = t.editor.translate(ti);\r
- document.body.style.display = '';\r
-\r
- // Restore selection in IE when focus is placed on a non textarea or input element of the type text\r
- if (tinymce.isIE)\r
- document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);\r
-\r
- t.restoreSelection();\r
- t.resizeToInnerSize();\r
-\r
- // Set inline title\r
- if (!t.isWindow)\r
- t.editor.windowManager.setTitle(window, ti);\r
- else\r
- window.focus();\r
-\r
- if (!tinymce.isIE && !t.isWindow) {\r
- tinymce.dom.Event._add(document, 'focus', function() {\r
- t.editor.windowManager.focus(t.id)\r
- });\r
- }\r
-\r
- // Patch for accessibility\r
- tinymce.each(t.dom.select('select'), function(e) {\r
- e.onkeydown = tinyMCEPopup._accessHandler;\r
- });\r
-\r
- // Call onInit\r
- // Init must be called before focus so the selection won't get lost by the focus call\r
- tinymce.each(t.listeners, function(o) {\r
- o.func.call(o.scope, t.editor);\r
- });\r
-\r
- // Move focus to window\r
- if (t.getWindowArg('mce_auto_focus', true)) {\r
- window.focus();\r
-\r
- // Focus element with mceFocus class\r
- tinymce.each(document.forms, function(f) {\r
- tinymce.each(f.elements, function(e) {\r
- if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {\r
- e.focus();\r
- return false; // Break loop\r
- }\r
- });\r
- });\r
- }\r
-\r
- document.onkeyup = tinyMCEPopup._closeWinKeyHandler;\r
- },\r
-\r
- _accessHandler : function(e) {\r
- e = e || window.event;\r
-\r
- if (e.keyCode == 13 || e.keyCode == 32) {\r
- e = e.target || e.srcElement;\r
-\r
- if (e.onchange)\r
- e.onchange();\r
-\r
- return tinymce.dom.Event.cancel(e);\r
- }\r
- },\r
-\r
- _closeWinKeyHandler : function(e) {\r
- e = e || window.event;\r
-\r
- if (e.keyCode == 27)\r
- tinyMCEPopup.close();\r
- },\r
-\r
- _wait : function() {\r
- var t = this, ti;\r
-\r
- if (tinymce.isIE && document.location.protocol != 'https:') {\r
- // Fake DOMContentLoaded on IE\r
- document.write('<script id=__ie_onload defer src=\'javascript:""\';><\/script>');\r
- document.getElementById("__ie_onload").onreadystatechange = function() {\r
- if (this.readyState == "complete") {\r
- t._onDOMLoaded();\r
- document.getElementById("__ie_onload").onreadystatechange = null; // Prevent leak\r
- }\r
- };\r
- } else {\r
- if (tinymce.isIE || tinymce.isWebKit) {\r
- ti = setInterval(function() {\r
- if (/loaded|complete/.test(document.readyState)) {\r
- clearInterval(ti);\r
- t._onDOMLoaded();\r
- }\r
- }, 10);\r
- } else {\r
- window.addEventListener('DOMContentLoaded', function() {\r
- t._onDOMLoaded();\r
- }, false);\r
- }\r
- }\r
- }\r
-};\r
-\r
-tinyMCEPopup.init();\r
-tinyMCEPopup._wait(); // Wait for DOM Content Loaded\r
+++ /dev/null
-/**\r
- * $Id: editable_selects.js 867 2008-06-09 20:33:40Z spocke $\r
- *\r
- * Makes select boxes editable.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-var TinyMCE_EditableSelects = {\r
- editSelectElm : null,\r
-\r
- init : function() {\r
- var nl = document.getElementsByTagName("select"), i, d = document, o;\r
-\r
- for (i=0; i<nl.length; i++) {\r
- if (nl[i].className.indexOf('mceEditableSelect') != -1) {\r
- o = new Option('(value)', '__mce_add_custom__');\r
-\r
- o.className = 'mceAddSelectValue';\r
-\r
- nl[i].options[nl[i].options.length] = o;\r
- nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;\r
- }\r
- }\r
- },\r
-\r
- onChangeEditableSelect : function(e) {\r
- var d = document, ne, se = window.event ? window.event.srcElement : e.target;\r
-\r
- if (se.options[se.selectedIndex].value == '__mce_add_custom__') {\r
- ne = d.createElement("input");\r
- ne.id = se.id + "_custom";\r
- ne.name = se.name + "_custom";\r
- ne.type = "text";\r
-\r
- ne.style.width = se.offsetWidth + 'px';\r
- se.parentNode.insertBefore(ne, se);\r
- se.style.display = 'none';\r
- ne.focus();\r
- ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;\r
- ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;\r
- TinyMCE_EditableSelects.editSelectElm = se;\r
- }\r
- },\r
-\r
- onBlurEditableSelectInput : function() {\r
- var se = TinyMCE_EditableSelects.editSelectElm;\r
-\r
- if (se) {\r
- if (se.previousSibling.value != '') {\r
- addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);\r
- selectByValue(document.forms[0], se.id, se.previousSibling.value);\r
- } else\r
- selectByValue(document.forms[0], se.id, '');\r
-\r
- se.style.display = 'inline';\r
- se.parentNode.removeChild(se.previousSibling);\r
- TinyMCE_EditableSelects.editSelectElm = null;\r
- }\r
- },\r
-\r
- onKeyDown : function(e) {\r
- e = e || window.event;\r
-\r
- if (e.keyCode == 13)\r
- TinyMCE_EditableSelects.onBlurEditableSelectInput();\r
- }\r
-};\r
+++ /dev/null
-/**\r
- * $Id: form_utils.js 673 2008-03-06 13:26:20Z spocke $\r
- *\r
- * Various form utilitiy functions.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme"));\r
-\r
-function getColorPickerHTML(id, target_form_element) {\r
- var h = "";\r
-\r
- h += '<a id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">';\r
- h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
-\r
- return h;\r
-}\r
-\r
-function updateColor(img_id, form_element_id) {\r
- document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;\r
-}\r
-\r
-function setBrowserDisabled(id, state) {\r
- var img = document.getElementById(id);\r
- var lnk = document.getElementById(id + "_link");\r
-\r
- if (lnk) {\r
- if (state) {\r
- lnk.setAttribute("realhref", lnk.getAttribute("href"));\r
- lnk.removeAttribute("href");\r
- tinyMCEPopup.dom.addClass(img, 'disabled');\r
- } else {\r
- if (lnk.getAttribute("realhref"))\r
- lnk.setAttribute("href", lnk.getAttribute("realhref"));\r
-\r
- tinyMCEPopup.dom.removeClass(img, 'disabled');\r
- }\r
- }\r
-}\r
-\r
-function getBrowserHTML(id, target_form_element, type, prefix) {\r
- var option = prefix + "_" + type + "_browser_callback", cb, html;\r
-\r
- cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback"));\r
-\r
- if (!cb)\r
- return "";\r
-\r
- html = "";\r
- html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">';\r
- html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"></span></a>';\r
-\r
- return html;\r
-}\r
-\r
-function openBrowser(img_id, target_form_element, type, option) {\r
- var img = document.getElementById(img_id);\r
-\r
- if (img.className != "mceButtonDisabled")\r
- tinyMCEPopup.openBrowser(target_form_element, type, option);\r
-}\r
-\r
-function selectByValue(form_obj, field_name, value, add_custom, ignore_case) {\r
- if (!form_obj || !form_obj.elements[field_name])\r
- return;\r
-\r
- var sel = form_obj.elements[field_name];\r
-\r
- var found = false;\r
- for (var i=0; i<sel.options.length; i++) {\r
- var option = sel.options[i];\r
-\r
- if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) {\r
- option.selected = true;\r
- found = true;\r
- } else\r
- option.selected = false;\r
- }\r
-\r
- if (!found && add_custom && value != '') {\r
- var option = new Option(value, value);\r
- option.selected = true;\r
- sel.options[sel.options.length] = option;\r
- sel.selectedIndex = sel.options.length - 1;\r
- }\r
-\r
- return found;\r
-}\r
-\r
-function getSelectValue(form_obj, field_name) {\r
- var elm = form_obj.elements[field_name];\r
-\r
- if (elm == null || elm.options == null)\r
- return "";\r
-\r
- return elm.options[elm.selectedIndex].value;\r
-}\r
-\r
-function addSelectValue(form_obj, field_name, name, value) {\r
- var s = form_obj.elements[field_name];\r
- var o = new Option(name, value);\r
- s.options[s.options.length] = o;\r
-}\r
-\r
-function addClassesToList(list_id, specific_option) {\r
- // Setup class droplist\r
- var styleSelectElm = document.getElementById(list_id);\r
- var styles = tinyMCEPopup.getParam('theme_advanced_styles', false);\r
- styles = tinyMCEPopup.getParam(specific_option, styles);\r
-\r
- if (styles) {\r
- var stylesAr = styles.split(';');\r
-\r
- for (var i=0; i<stylesAr.length; i++) {\r
- if (stylesAr != "") {\r
- var key, value;\r
-\r
- key = stylesAr[i].split('=')[0];\r
- value = stylesAr[i].split('=')[1];\r
-\r
- styleSelectElm.options[styleSelectElm.length] = new Option(key, value);\r
- }\r
- }\r
- } else {\r
- tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) {\r
- styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']);\r
- });\r
- }\r
-}\r
-\r
-function isVisible(element_id) {\r
- var elm = document.getElementById(element_id);\r
-\r
- return elm && elm.style.display != "none";\r
-}\r
-\r
-function convertRGBToHex(col) {\r
- var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");\r
-\r
- var rgb = col.replace(re, "$1,$2,$3").split(',');\r
- if (rgb.length == 3) {\r
- r = parseInt(rgb[0]).toString(16);\r
- g = parseInt(rgb[1]).toString(16);\r
- b = parseInt(rgb[2]).toString(16);\r
-\r
- r = r.length == 1 ? '0' + r : r;\r
- g = g.length == 1 ? '0' + g : g;\r
- b = b.length == 1 ? '0' + b : b;\r
-\r
- return "#" + r + g + b;\r
- }\r
-\r
- return col;\r
-}\r
-\r
-function convertHexToRGB(col) {\r
- if (col.indexOf('#') != -1) {\r
- col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');\r
-\r
- r = parseInt(col.substring(0, 2), 16);\r
- g = parseInt(col.substring(2, 4), 16);\r
- b = parseInt(col.substring(4, 6), 16);\r
-\r
- return "rgb(" + r + "," + g + "," + b + ")";\r
- }\r
-\r
- return col;\r
-}\r
-\r
-function trimSize(size) {\r
- return size.replace(/([0-9\.]+)px|(%|in|cm|mm|em|ex|pt|pc)/, '$1$2');\r
-}\r
-\r
-function getCSSSize(size) {\r
- size = trimSize(size);\r
-\r
- if (size == "")\r
- return "";\r
-\r
- // Add px\r
- if (/^[0-9]+$/.test(size))\r
- size += 'px';\r
-\r
- return size;\r
-}\r
-\r
-function getStyle(elm, attrib, style) {\r
- var val = tinyMCEPopup.dom.getAttrib(elm, attrib);\r
-\r
- if (val != '')\r
- return '' + val;\r
-\r
- if (typeof(style) == 'undefined')\r
- style = attrib;\r
-\r
- return tinyMCEPopup.dom.getStyle(elm, style);\r
-}\r
+++ /dev/null
-/**\r
- * $Id: mctabs.js 758 2008-03-30 13:53:29Z spocke $\r
- *\r
- * Moxiecode DHTML Tabs script.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-function MCTabs() {\r
- this.settings = [];\r
-};\r
-\r
-MCTabs.prototype.init = function(settings) {\r
- this.settings = settings;\r
-};\r
-\r
-MCTabs.prototype.getParam = function(name, default_value) {\r
- var value = null;\r
-\r
- value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];\r
-\r
- // Fix bool values\r
- if (value == "true" || value == "false")\r
- return (value == "true");\r
-\r
- return value;\r
-};\r
-\r
-MCTabs.prototype.displayTab = function(tab_id, panel_id) {\r
- var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i;\r
-\r
- panelElm= document.getElementById(panel_id);\r
- panelContainerElm = panelElm ? panelElm.parentNode : null;\r
- tabElm = document.getElementById(tab_id);\r
- tabContainerElm = tabElm ? tabElm.parentNode : null;\r
- selectionClass = this.getParam('selection_class', 'current');\r
-\r
- if (tabElm && tabContainerElm) {\r
- nodes = tabContainerElm.childNodes;\r
-\r
- // Hide all other tabs\r
- for (i = 0; i < nodes.length; i++) {\r
- if (nodes[i].nodeName == "LI")\r
- nodes[i].className = '';\r
- }\r
-\r
- // Show selected tab\r
- tabElm.className = 'current';\r
- }\r
-\r
- if (panelElm && panelContainerElm) {\r
- nodes = panelContainerElm.childNodes;\r
-\r
- // Hide all other panels\r
- for (i = 0; i < nodes.length; i++) {\r
- if (nodes[i].nodeName == "DIV")\r
- nodes[i].className = 'panel';\r
- }\r
-\r
- // Show selected panel\r
- panelElm.className = 'current';\r
- }\r
-};\r
-\r
-MCTabs.prototype.getAnchor = function() {\r
- var pos, url = document.location.href;\r
-\r
- if ((pos = url.lastIndexOf('#')) != -1)\r
- return url.substring(pos + 1);\r
-\r
- return "";\r
-};\r
-\r
-// Global instance\r
-var mcTabs = new MCTabs();\r
+++ /dev/null
-/**\r
- * $Id: validate.js 758 2008-03-30 13:53:29Z spocke $\r
- *\r
- * Various form validation methods.\r
- *\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.\r
- */\r
-\r
-/**\r
- // String validation:\r
-\r
- if (!Validator.isEmail('myemail'))\r
- alert('Invalid email.');\r
-\r
- // Form validation:\r
-\r
- var f = document.forms['myform'];\r
-\r
- if (!Validator.isEmail(f.myemail))\r
- alert('Invalid email.');\r
-*/\r
-\r
-var Validator = {\r
- isEmail : function(s) {\r
- return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');\r
- },\r
-\r
- isAbsUrl : function(s) {\r
- return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$');\r
- },\r
-\r
- isSize : function(s) {\r
- return this.test(s, '^[0-9]+(%|in|cm|mm|em|ex|pt|pc|px)?$');\r
- },\r
-\r
- isId : function(s) {\r
- return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$');\r
- },\r
-\r
- isEmpty : function(s) {\r
- var nl, i;\r
-\r
- if (s.nodeName == 'SELECT' && s.selectedIndex < 1)\r
- return true;\r
-\r
- if (s.type == 'checkbox' && !s.checked)\r
- return true;\r
-\r
- if (s.type == 'radio') {\r
- for (i=0, nl = s.form.elements; i<nl.length; i++) {\r
- if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked)\r
- return false;\r
- }\r
-\r
- return true;\r
- }\r
-\r
- return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s);\r
- },\r
-\r
- isNumber : function(s, d) {\r
- return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$'));\r
- },\r
-\r
- test : function(s, p) {\r
- s = s.nodeType == 1 ? s.value : s;\r
-\r
- return s == '' || new RegExp(p).test(s);\r
- }\r
-};\r
-\r
-var AutoValidator = {\r
- settings : {\r
- id_cls : 'id',\r
- int_cls : 'int',\r
- url_cls : 'url',\r
- number_cls : 'number',\r
- email_cls : 'email',\r
- size_cls : 'size',\r
- required_cls : 'required',\r
- invalid_cls : 'invalid',\r
- min_cls : 'min',\r
- max_cls : 'max'\r
- },\r
-\r
- init : function(s) {\r
- var n;\r
-\r
- for (n in s)\r
- this.settings[n] = s[n];\r
- },\r
-\r
- validate : function(f) {\r
- var i, nl, s = this.settings, c = 0;\r
-\r
- nl = this.tags(f, 'label');\r
- for (i=0; i<nl.length; i++)\r
- this.removeClass(nl[i], s.invalid_cls);\r
-\r
- c += this.validateElms(f, 'input');\r
- c += this.validateElms(f, 'select');\r
- c += this.validateElms(f, 'textarea');\r
-\r
- return c == 3;\r
- },\r
-\r
- invalidate : function(n) {\r
- this.mark(n.form, n);\r
- },\r
-\r
- reset : function(e) {\r
- var t = ['label', 'input', 'select', 'textarea'];\r
- var i, j, nl, s = this.settings;\r
-\r
- if (e == null)\r
- return;\r
-\r
- for (i=0; i<t.length; i++) {\r
- nl = this.tags(e.form ? e.form : e, t[i]);\r
- for (j=0; j<nl.length; j++)\r
- this.removeClass(nl[j], s.invalid_cls);\r
- }\r
- },\r
-\r
- validateElms : function(f, e) {\r
- var nl, i, n, s = this.settings, st = true, va = Validator, v;\r
-\r
- nl = this.tags(f, e);\r
- for (i=0; i<nl.length; i++) {\r
- n = nl[i];\r
-\r
- this.removeClass(n, s.invalid_cls);\r
-\r
- if (this.hasClass(n, s.required_cls) && va.isEmpty(n))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.number_cls) && !va.isNumber(n))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.email_cls) && !va.isEmail(n))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.size_cls) && !va.isSize(n))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.id_cls) && !va.isId(n))\r
- st = this.mark(f, n);\r
-\r
- if (this.hasClass(n, s.min_cls, true)) {\r
- v = this.getNum(n, s.min_cls);\r
-\r
- if (isNaN(v) || parseInt(n.value) < parseInt(v))\r
- st = this.mark(f, n);\r
- }\r
-\r
- if (this.hasClass(n, s.max_cls, true)) {\r
- v = this.getNum(n, s.max_cls);\r
-\r
- if (isNaN(v) || parseInt(n.value) > parseInt(v))\r
- st = this.mark(f, n);\r
- }\r
- }\r
-\r
- return st;\r
- },\r
-\r
- hasClass : function(n, c, d) {\r
- return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className);\r
- },\r
-\r
- getNum : function(n, c) {\r
- c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0];\r
- c = c.replace(/[^0-9]/g, '');\r
-\r
- return c;\r
- },\r
-\r
- addClass : function(n, c, b) {\r
- var o = this.removeClass(n, c);\r
- n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c;\r
- },\r
-\r
- removeClass : function(n, c) {\r
- c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' ');\r
- return n.className = c != ' ' ? c : '';\r
- },\r
-\r
- tags : function(f, s) {\r
- return f.getElementsByTagName(s);\r
- },\r
-\r
- mark : function(f, n) {\r
- var s = this.settings;\r
-\r
- this.addClass(n, s.invalid_cls);\r
- this.markLabels(f, n, s.invalid_cls);\r
-\r
- return false;\r
- },\r
-\r
- markLabels : function(f, n, ic) {\r
- var nl, i;\r
-\r
- nl = this.tags(f, "label");\r
- for (i=0; i<nl.length; i++) {\r
- if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id)\r
- this.addClass(nl[i], ic);\r
- }\r
-\r
- return null;\r
- }\r
-};\r
--- /dev/null
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
--- /dev/null
+.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
\ No newline at end of file
--- /dev/null
+body{background-color:#FFF;color:#000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
\ No newline at end of file
--- /dev/null
+{
+ "IcoMoonType": "selection",
+ "icons": [
+ {
+ "icon": {
+ "paths": [
+ "M704 832v-37.004c151.348-61.628 256-193.82 256-346.996 0-212.078-200.576-384-448-384s-448 171.922-448 384c0 153.176 104.654 285.368 256 346.996v37.004h-192l-64-96v224h320v-222.812c-100.9-51.362-170.666-161.54-170.666-289.188 0-176.732 133.718-320 298.666-320 164.948 0 298.666 143.268 298.666 320 0 127.648-69.766 237.826-170.666 289.188v222.812h320v-224l-64 96h-192z"
+ ],
+ "defaultCode": 57376,
+ "grid": 0
+ },
+ "properties": {
+ "id": 0,
+ "order": 1,
+ "prevSize": 32,
+ "code": 57376,
+ "name": "charmap",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 0
+ },
+ {
+ "icon": {
+ "paths": [
+ "M256 64v896l256-256 256 256v-896h-512zM704 789.49l-192-192-192 192v-661.49h384v661.49z"
+ ],
+ "defaultCode": 57363,
+ "grid": 0
+ },
+ "properties": {
+ "id": 1,
+ "order": 2,
+ "prevSize": 32,
+ "code": 57363,
+ "name": "bookmark",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 1
+ },
+ {
+ "icon": {
+ "paths": [
+ "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM800 838c-9.724 0-19.45-3.708-26.87-11.13l-128-127.998c-14.844-14.84-14.844-38.898 0-53.738 14.84-14.844 38.896-14.844 53.736 0l128 128c14.844 14.84 14.844 38.896 0 53.736-7.416 7.422-17.142 11.13-26.866 11.13zM608 960c-17.674 0-32-14.326-32-32v-128c0-17.674 14.326-32 32-32s32 14.326 32 32v128c0 17.674-14.326 32-32 32zM928 640h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32h128c17.674 0 32 14.326 32 32s-14.326 32-32 32zM224 186c9.724 0 19.45 3.708 26.87 11.13l128 128c14.842 14.84 14.842 38.898 0 53.738-14.84 14.844-38.898 14.844-53.738 0l-128-128c-14.842-14.84-14.842-38.898 0-53.738 7.418-7.422 17.144-11.13 26.868-11.13zM416 64c17.674 0 32 14.326 32 32v128c0 17.674-14.326 32-32 32s-32-14.326-32-32v-128c0-17.674 14.326-32 32-32zM96 384h128c17.674 0 32 14.326 32 32s-14.326 32-32 32h-128c-17.674 0-32-14.326-32-32s14.326-32 32-32z"
+ ],
+ "defaultCode": 57362,
+ "grid": 0
+ },
+ "properties": {
+ "id": 2,
+ "order": 3,
+ "prevSize": 32,
+ "code": 57362,
+ "name": "link",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 2
+ },
+ {
+ "icon": {
+ "paths": [
+ "M927.274 230.216l-133.49-133.488c-21.104-21.104-49.232-32.728-79.198-32.728s-58.094 11.624-79.196 32.726l-165.492 165.49c-43.668 43.668-43.668 114.724 0 158.392l2.746 2.746 67.882-67.882-2.746-2.746c-6.132-6.132-6.132-16.494 0-22.626l165.492-165.492c4.010-4.008 8.808-4.608 11.312-4.608s7.302 0.598 11.312 4.61l133.49 133.488c6.132 6.134 6.132 16.498 0.002 22.628l-165.494 165.494c-4.008 4.008-8.806 4.608-11.31 4.608s-7.302-0.6-11.312-4.612l-2.746-2.746-67.88 67.884 2.742 2.742c21.106 21.108 49.23 32.728 79.2 32.728s58.094-11.624 79.196-32.726l165.494-165.492c43.662-43.666 43.662-114.72-0.004-158.39zM551.356 600.644l-67.882 67.882 2.746 2.746c4.008 4.008 4.61 8.806 4.61 11.31 0 2.506-0.598 7.302-4.606 11.314l-165.494 165.49c-4.010 4.010-8.81 4.61-11.314 4.61s-7.304-0.6-11.314-4.61l-133.492-133.486c-4.010-4.010-4.61-8.81-4.61-11.314s0.598-7.3 4.61-11.312l165.49-165.488c4.010-4.012 8.81-4.612 11.314-4.612s7.304 0.6 11.314 4.612l2.746 2.742 67.882-67.88-2.746-2.746c-21.104-21.104-49.23-32.726-79.196-32.726s-58.092 11.624-79.196 32.726l-165.488 165.486c-21.106 21.104-32.73 49.234-32.73 79.198s11.624 58.094 32.726 79.198l133.49 133.49c21.106 21.102 49.232 32.726 79.198 32.726s58.092-11.624 79.196-32.726l165.494-165.492c21.104-21.104 32.722-49.23 32.722-79.196s-11.624-58.094-32.726-79.196l-2.744-2.746zM352 710c-9.724 0-19.45-3.71-26.87-11.128-14.84-14.84-14.84-38.898 0-53.738l320-320c14.84-14.84 38.896-14.84 53.736 0 14.844 14.84 14.844 38.9 0 53.74l-320 320c-7.416 7.416-17.142 11.126-26.866 11.126z"
+ ],
+ "defaultCode": 57361,
+ "grid": 0
+ },
+ "properties": {
+ "id": 3,
+ "order": 4,
+ "prevSize": 32,
+ "code": 57361,
+ "name": "unlink",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 3
+ },
+ {
+ "icon": {
+ "paths": [
+ "M576 281.326v-217.326l336.002 336-336.002 336v-222.096c-390.906-9.17-315 247.096-256 446.096-288-320-212.092-690.874 256-678.674z"
+ ],
+ "defaultCode": 57360,
+ "grid": 0
+ },
+ "properties": {
+ "id": 4,
+ "order": 5,
+ "prevSize": 32,
+ "code": 57360,
+ "name": "redo",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 4
+ },
+ {
+ "icon": {
+ "paths": [
+ "M704 960c59-199 134.906-455.266-256-446.096v222.096l-336.002-336 336.002-336v217.326c468.092-12.2 544 358.674 256 678.674z"
+ ],
+ "defaultCode": 57359,
+ "grid": 0
+ },
+ "properties": {
+ "id": 5,
+ "order": 6,
+ "prevSize": 32,
+ "code": 57359,
+ "name": "undo",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 5
+ },
+ {
+ "icon": {
+ "paths": [
+ "M256.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.954 10.578-19.034 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498zM768.428 424.726c105.8 0 191.572 91.17 191.572 203.638 0 112.464-85.772 203.636-191.572 203.636-105.802 0-191.572-91.17-191.572-203.636l-0.856-29.092c0-224.93 171.54-407.272 383.144-407.272v116.364c-73.1 0-141.826 30.26-193.516 85.204-9.956 10.578-19.036 21.834-27.224 33.656 9.784-1.64 19.806-2.498 30.024-2.498z"
+ ],
+ "defaultCode": 57358,
+ "grid": 0
+ },
+ "properties": {
+ "id": 6,
+ "order": 7,
+ "prevSize": 32,
+ "code": 57358,
+ "name": "blockquote",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 6
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192h896v128h-896zM384 576h576v128h-576zM384 384h576v128h-576zM64 768h896v128h-896zM64 384l224 160-224 160z"
+ ],
+ "defaultCode": 57356,
+ "grid": 0
+ },
+ "properties": {
+ "id": 7,
+ "order": 8,
+ "prevSize": 32,
+ "code": 57356,
+ "name": "indent",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 7
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192h896v128h-896zM64 576h576v128h-576zM64 384h576v128h-576zM64 768h896v128h-896zM960 384l-224 160 224 160z"
+ ],
+ "defaultCode": 57357,
+ "grid": 0
+ },
+ "properties": {
+ "id": 8,
+ "order": 9,
+ "prevSize": 32,
+ "code": 57357,
+ "name": "outdent",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 8
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM320 530v-146h-64v-320h-128v64h64v256h-64v64h128v50l-128 60v146h128v64h-128v64h128v64h-128v64h192v-320h-128v-50z"
+ ],
+ "defaultCode": 57355,
+ "grid": 0
+ },
+ "properties": {
+ "id": 9,
+ "order": 10,
+ "prevSize": 32,
+ "code": 57355,
+ "name": "numlist",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 9
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 128h576v128h-576zM384 448h576v128h-576zM384 768h576v128h-576zM128 192c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 512c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM128 832c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z"
+ ],
+ "defaultCode": 57354,
+ "grid": 0
+ },
+ "properties": {
+ "id": 10,
+ "order": 11,
+ "prevSize": 32,
+ "code": 57354,
+ "name": "bullist",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 10
+ },
+ {
+ "icon": {
+ "paths": [
+ "M888 384h-56v-256h64v-64h-320v64h64v256h-256v-256h64v-64h-320v64h64v256h-56c-39.6 0-72 32.4-72 72v432c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-312h128v312c0 39.6 32.4 72 72 72h240c39.6 0 72-32.4 72-72v-432c0-39.6-32.4-72-72-72zM348 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM860 896h-184c-19.8 0-36-14.4-36-32s16.2-32 36-32h184c19.8 0 36 14.4 36 32s-16.2 32-36 32z"
+ ],
+ "defaultCode": 57353,
+ "grid": 0
+ },
+ "properties": {
+ "id": 11,
+ "order": 12,
+ "prevSize": 32,
+ "code": 57353,
+ "name": "searchreplace",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 11
+ },
+ {
+ "icon": {
+ "paths": [
+ "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h384l192-192v-384h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM704 869.49v-101.49h101.49l-101.49 101.49zM832 704h-192v192h-256v-448h448v256z"
+ ],
+ "defaultCode": 57352,
+ "grid": 0
+ },
+ "properties": {
+ "id": 12,
+ "order": 13,
+ "prevSize": 32,
+ "code": 57352,
+ "name": "paste",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 12
+ },
+ {
+ "icon": {
+ "paths": [
+ "M832 320h-192v-64l-192-192h-384v704h384v192h576v-448l-192-192zM832 410.51l101.49 101.49h-101.49v-101.49zM448 154.51l101.49 101.49h-101.49v-101.49zM128 128h256v192h192v384h-448v-576zM960 896h-448v-128h128v-384h128v192h192v320z"
+ ],
+ "defaultCode": 57393,
+ "grid": 0
+ },
+ "properties": {
+ "id": 13,
+ "order": 14,
+ "prevSize": 32,
+ "code": 57393,
+ "name": "copy",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 13
+ },
+ {
+ "icon": {
+ "paths": [
+ "M960 512h-265.876c-50.078-35.42-114.43-54.86-182.124-54.86-89.206 0-164.572-50.242-164.572-109.712 0-59.47 75.366-109.714 164.572-109.714 75.058 0 140.308 35.576 159.12 82.286h113.016c-7.93-50.644-37.58-97.968-84.058-132.826-50.88-38.16-117.676-59.174-188.078-59.174-70.404 0-137.196 21.014-188.074 59.174-54.788 41.090-86.212 99.502-86.212 160.254s31.424 119.164 86.212 160.254c1.956 1.466 3.942 2.898 5.946 4.316h-265.872v64h512.532c58.208 17.106 100.042 56.27 100.042 100.572 0 59.468-75.368 109.71-164.572 109.71-75.060 0-140.308-35.574-159.118-82.286h-113.016c7.93 50.64 37.582 97.968 84.060 132.826 50.876 38.164 117.668 59.18 188.072 59.18 70.402 0 137.198-21.016 188.074-59.174 54.79-41.090 86.208-99.502 86.208-160.254 0-35.298-10.654-69.792-30.294-100.572h204.012v-64z"
+ ],
+ "defaultCode": 57389,
+ "grid": 0
+ },
+ "properties": {
+ "id": 19,
+ "order": 15,
+ "prevSize": 32,
+ "code": 57389,
+ "name": "strikethrough",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 19
+ },
+ {
+ "icon": {
+ "paths": [
+ "M192 832h576v64h-576v-64zM640 128v384c0 31.312-14.7 61.624-41.39 85.352-30.942 27.502-73.068 42.648-118.61 42.648-45.544 0-87.668-15.146-118.608-42.648-26.692-23.728-41.392-54.040-41.392-85.352v-384h-128v384c0 141.382 128.942 256 288 256s288-114.618 288-256v-384h-128z"
+ ],
+ "defaultCode": 57388,
+ "grid": 0
+ },
+ "properties": {
+ "id": 20,
+ "order": 16,
+ "prevSize": 32,
+ "code": 57388,
+ "name": "underline",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 20
+ },
+ {
+ "icon": {
+ "paths": [
+ "M832 128v64h-144l-256 640h144v64h-448v-64h144l256-640h-144v-64h448z"
+ ],
+ "defaultCode": 57387,
+ "grid": 0
+ },
+ "properties": {
+ "id": 21,
+ "order": 17,
+ "prevSize": 32,
+ "code": 57387,
+ "name": "italic",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 21
+ },
+ {
+ "icon": {
+ "paths": [
+ "M625.442 494.182c48.074-38.15 78.558-94.856 78.558-158.182 0-114.876-100.29-208-224-208h-224v768h288c123.712 0 224-93.124 224-208 0-88.196-59.118-163.562-142.558-193.818zM384 304c0-26.51 21.49-48 48-48h67.204c42.414 0 76.796 42.98 76.796 96s-34.382 96-76.796 96h-115.204v-144zM547.2 768h-115.2c-26.51 0-48-21.49-48-48v-144h163.2c42.418 0 76.8 42.98 76.8 96s-34.382 96-76.8 96z"
+ ],
+ "defaultCode": 57386,
+ "grid": 0
+ },
+ "properties": {
+ "id": 22,
+ "order": 18,
+ "prevSize": 32,
+ "code": 57386,
+ "name": "bold",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 22
+ },
+ {
+ "icon": {
+ "paths": [
+ "M850.746 242.746l-133.492-133.49c-24.888-24.892-74.054-45.256-109.254-45.256h-416c-35.2 0-64 28.8-64 64v768c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64v-544c0-35.2-20.366-84.364-45.254-109.254zM805.49 287.998c6.792 6.796 13.792 19.162 18.894 32.002h-184.384v-184.386c12.84 5.1 25.204 12.1 32 18.896l133.49 133.488zM831.884 896h-639.77c-0.040-0.034-0.082-0.076-0.114-0.116v-767.77c0.034-0.040 0.076-0.082 0.114-0.114h383.886v256h256v511.884c-0.034 0.040-0.076 0.082-0.116 0.116z"
+ ],
+ "defaultCode": 57345,
+ "grid": 0
+ },
+ "properties": {
+ "id": 23,
+ "order": 19,
+ "prevSize": 32,
+ "code": 57345,
+ "name": "newdocument",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 23
+ },
+ {
+ "icon": {
+ "paths": [
+ "M960 880v-591.938l-223.938-224.062h-592.062c-44.182 0-80 35.816-80 80v736c0 44.184 35.818 80 80 80h736c44.184 0 80-35.816 80-80zM576 192h64v192h-64v-192zM704 832h-384v-255.882c0.034-0.042 0.076-0.082 0.116-0.118h383.77c0.040 0.036 0.082 0.076 0.116 0.118l-0.002 255.882zM832 832h-64v-256c0-35.2-28.8-64-64-64h-384c-35.2 0-64 28.8-64 64v256h-64v-640h64v192c0 35.2 28.8 64 64 64h320c35.2 0 64-28.8 64-64v-171.010l128 128.072v490.938z"
+ ],
+ "defaultCode": 57344,
+ "grid": 0
+ },
+ "properties": {
+ "id": 24,
+ "order": 20,
+ "prevSize": 32,
+ "code": 57344,
+ "name": "save",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 24
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192v704h896v-704h-896zM384 640v-128h256v128h-256zM640 704v128h-256v-128h256zM640 320v128h-256v-128h256zM320 320v128h-192v-128h192zM128 512h192v128h-192v-128zM704 512h192v128h-192v-128zM704 448v-128h192v128h-192zM128 704h192v128h-192v-128zM704 832v-128h192v128h-192z"
+ ],
+ "defaultCode": 57371,
+ "grid": 0
+ },
+ "properties": {
+ "id": 25,
+ "order": 21,
+ "prevSize": 32,
+ "code": 57371,
+ "name": "table",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 25
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 140c99.366 0 192.782 38.694 263.042 108.956s108.958 163.678 108.958 263.044-38.696 192.782-108.958 263.042-163.676 108.958-263.042 108.958-192.782-38.696-263.044-108.958-108.956-163.676-108.956-263.042 38.694-192.782 108.956-263.044 163.678-108.956 263.044-108.956zM512 64c-247.424 0-448 200.576-448 448s200.576 448 448 448 448-200.576 448-448-200.576-448-448-448v0zM320 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM576 384c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM512 656c-101.84 0-192.56-36.874-251.166-94.328 23.126 117.608 126.778 206.328 251.166 206.328 124.388 0 228.040-88.72 251.168-206.328-58.608 57.454-149.328 94.328-251.168 94.328z"
+ ],
+ "defaultCode": 57377,
+ "grid": 0
+ },
+ "properties": {
+ "id": 26,
+ "order": 22,
+ "prevSize": 32,
+ "code": 57377,
+ "name": "emoticons",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 26
+ },
+ {
+ "icon": {
+ "paths": [
+ "M480 384l-192-192 128-128h-352v352l128-128 192 192zM640 480l192-192 128 128v-352h-352l128 128-192 192zM544 640l192 192-128 128h352v-352l-128 128-192-192zM384 544l-192 192-128-128v352h352l-128-128 192-192z"
+ ],
+ "defaultCode": 57379,
+ "grid": 0
+ },
+ "properties": {
+ "id": 27,
+ "order": 23,
+ "prevSize": 32,
+ "code": 57379,
+ "name": "fullscreen",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 27
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 448h896v128h-896z"
+ ],
+ "defaultCode": 57372,
+ "grid": 0
+ },
+ "properties": {
+ "id": 28,
+ "order": 24,
+ "prevSize": 32,
+ "code": 57372,
+ "name": "hr",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 28
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 768h512v128h-512v-128zM768 192h-220.558l-183.766 512h-132.288l183.762-512h-223.15v-128h576v128zM929.774 896l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774-62.226 62.226z"
+ ],
+ "defaultCode": 57373,
+ "grid": 0
+ },
+ "properties": {
+ "id": 29,
+ "order": 25,
+ "prevSize": 32,
+ "code": 57373,
+ "name": "removefromat",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 29
+ },
+ {
+ "icon": {
+ "paths": [
+ "M256 128h512v128h-512v-128zM896 320h-768c-35.2 0-64 28.8-64 64v256c0 35.2 28.796 64 64 64h128v192h512v-192h128c35.2 0 64-28.8 64-64v-256c0-35.2-28.8-64-64-64zM704 832h-384v-256h384v256zM910.4 416c0 25.626-20.774 46.4-46.398 46.4s-46.402-20.774-46.402-46.4 20.778-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z"
+ ],
+ "defaultCode": 57378,
+ "grid": 0
+ },
+ "properties": {
+ "id": 30,
+ "order": 26,
+ "prevSize": 32,
+ "code": 57378,
+ "name": "print",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 30
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448z"
+ ],
+ "defaultCode": 57390,
+ "grid": 0
+ },
+ "properties": {
+ "id": 31,
+ "order": 27,
+ "prevSize": 32,
+ "code": 57390,
+ "name": "visualchars",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 31
+ },
+ {
+ "icon": {
+ "paths": [
+ "M448 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM64 896l224-192-224-192z"
+ ],
+ "defaultCode": 57391,
+ "grid": 0
+ },
+ "properties": {
+ "id": 32,
+ "order": 28,
+ "prevSize": 32,
+ "code": 57391,
+ "name": "ltr",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 32
+ },
+ {
+ "icon": {
+ "paths": [
+ "M416 704l-192-192 192-192-64-64-256 256 256 256zM672 256l-64 64 192 192-192 192 64 64 256-256z"
+ ],
+ "defaultCode": 57367,
+ "grid": 0
+ },
+ "properties": {
+ "id": 38,
+ "order": 29,
+ "prevSize": 32,
+ "code": 57367,
+ "name": "code",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 38
+ },
+ {
+ "icon": {
+ "paths": [
+ "M448 704h128v128h-128v-128zM704 256c35.346 0 64 28.654 64 64v166l-228 154h-92v-64l192-128v-64h-320v-128h384zM512 64c-119.666 0-232.166 46.6-316.784 131.216-84.614 84.618-131.216 197.118-131.216 316.784 0 119.664 46.602 232.168 131.216 316.784 84.618 84.616 197.118 131.216 316.784 131.216 119.664 0 232.168-46.6 316.784-131.216 84.616-84.616 131.216-197.12 131.216-316.784 0-119.666-46.6-232.166-131.216-316.784-84.616-84.616-197.12-131.216-316.784-131.216z"
+ ],
+ "defaultCode": 57366,
+ "grid": 0
+ },
+ "properties": {
+ "id": 39,
+ "order": 30,
+ "prevSize": 32,
+ "code": 57366,
+ "name": "help",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 39
+ },
+ {
+ "icon": {
+ "paths": [
+ "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM896 831.884c-0.012 0.014-0.030 0.028-0.042 0.042l-191.958-319.926-160 128-224-288-191.968 479.916c-0.010-0.010-0.022-0.022-0.032-0.032v-639.77c0.034-0.040 0.076-0.082 0.114-0.114h767.77c0.040 0.034 0.082 0.076 0.116 0.116v639.768zM640 352c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96-53.019 0-96 42.981-96 96z"
+ ],
+ "defaultCode": 57364,
+ "grid": 0
+ },
+ "properties": {
+ "id": 40,
+ "order": 31,
+ "prevSize": 32,
+ "code": 57364,
+ "name": "image",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 40
+ },
+ {
+ "icon": {
+ "paths": [
+ "M896 128h-768c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h768c35.2 0 64-28.8 64-64v-640c0-35.2-28.8-64-64-64zM256 832h-128v-128h128v128zM256 576h-128v-128h128v128zM256 320h-128v-128h128v128zM704 832h-384v-640h384v640zM896 832h-128v-128h128v128zM896 576h-128v-128h128v128zM896 320h-128v-128h128v128zM384 320v384l288-192z"
+ ],
+ "defaultCode": 57365,
+ "grid": 0
+ },
+ "properties": {
+ "id": 41,
+ "order": 32,
+ "prevSize": 32,
+ "code": 57365,
+ "name": "media",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 41
+ },
+ {
+ "icon": {
+ "paths": [
+ "M77.798 304.624l81.414 50.882c50.802-81.114 128.788-143.454 221.208-174.246l-30.366-91.094c-113.748 37.898-209.728 114.626-272.256 214.458zM673.946 90.166l-30.366 91.094c92.422 30.792 170.404 93.132 221.208 174.248l81.412-50.882c-62.526-99.834-158.506-176.562-272.254-214.46zM607.974 704.008c-4.808 0-9.692-1.090-14.286-3.386l-145.688-72.844v-211.778c0-17.672 14.328-32 32-32s32 14.328 32 32v172.222l110.31 55.156c15.806 7.902 22.214 27.124 14.31 42.932-5.604 11.214-16.908 17.696-28.646 17.698zM512 192c-212.078 0-384 171.922-384 384s171.922 384 384 384c212.078 0 384-171.922 384-384 0-212.078-171.922-384-384-384zM512 864c-159.058 0-288-128.942-288-288s128.942-288 288-288c159.058 0 288 128.942 288 288 0 159.058-128.942 288-288 288z"
+ ],
+ "defaultCode": 57368,
+ "grid": 0
+ },
+ "properties": {
+ "id": 42,
+ "order": 33,
+ "prevSize": 32,
+ "code": 57368,
+ "name": "insertdatetime",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 42
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 455.746c45.318-49.92 97.162-92.36 153.272-125.124 90.332-52.744 192.246-80.622 294.728-80.622 102.48 0 204.396 27.878 294.726 80.624 56.112 32.764 107.956 75.204 153.274 125.124v-117.432c-33.010-28.118-68.124-53.14-104.868-74.594-105.006-61.314-223.658-93.722-343.132-93.722s-238.128 32.408-343.134 93.72c-36.742 21.454-71.856 46.478-104.866 74.596v117.43zM512 320c-183.196 0-345.838 100.556-448 256 102.162 155.448 264.804 256 448 256 183.196 0 345.838-100.552 448-256-102.162-155.444-264.804-256-448-256zM512 512c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.348 28.654-64 64-64s64 28.652 64 64zM728.066 696.662c-67.434 39.374-140.128 59.338-216.066 59.338s-148.632-19.964-216.066-59.338c-51.554-30.104-98.616-71.31-138.114-120.662 39.498-49.35 86.56-90.558 138.116-120.66 13.276-7.752 26.758-14.74 40.426-20.982-10.512 23.742-16.362 50.008-16.362 77.642 0 106.040 85.962 192 192 192 106.040 0 192-85.96 192-192 0-27.634-5.85-53.9-16.36-77.642 13.668 6.244 27.15 13.23 40.426 20.982 51.554 30.102 98.616 71.31 138.116 120.66-39.498 49.352-86.56 90.558-138.116 120.662z"
+ ],
+ "defaultCode": 57369,
+ "grid": 0
+ },
+ "properties": {
+ "id": 43,
+ "order": 34,
+ "prevSize": 32,
+ "code": 57369,
+ "name": "preview",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 43
+ },
+ {
+ "icon": {
+ "paths": [
+ "M651.168 283.834c-24.612-81.962-28.876-91.834-107.168-91.834h-64c-79.618 0-82.664 10.152-108.418 96 0 0.002 0 0.002-0.002 0.004l-143.998 479.996h113.636l57.6-192h226.366l57.6 192h113.63l-145.246-484.166zM437.218 448l38.4-136c10.086-33.618 36.38-30 36.38-30s26.294-3.618 36.38 30h0.004l38.4 136h-149.564z"
+ ],
+ "defaultCode": 57370,
+ "grid": 0
+ },
+ "properties": {
+ "id": 44,
+ "order": 35,
+ "prevSize": 32,
+ "code": 57370,
+ "name": "forecolor",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 44
+ },
+ {
+ "icon": {
+ "paths": [
+ "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z"
+ ],
+ "defaultCode": 57384,
+ "grid": 0
+ },
+ "properties": {
+ "id": 45,
+ "order": 36,
+ "prevSize": 32,
+ "code": 57384,
+ "name": "restoredraft",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 45
+ },
+ {
+ "icon": {
+ "paths": [
+ "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z"
+ ],
+ "defaultCode": 57346,
+ "grid": 0
+ },
+ "properties": {
+ "id": 46,
+ "order": 37,
+ "prevSize": 32,
+ "code": 57346,
+ "name": "fullpage",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 46
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+ ],
+ "defaultCode": 57375,
+ "grid": 0
+ },
+ "properties": {
+ "id": 47,
+ "order": 38,
+ "prevSize": 32,
+ "code": 57375,
+ "name": "superscript",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 47
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+ ],
+ "defaultCode": 57374,
+ "grid": 0
+ },
+ "properties": {
+ "id": 48,
+ "order": 39,
+ "prevSize": 32,
+ "code": 57374,
+ "name": "subscript",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 48
+ },
+ {
+ "icon": {
+ "paths": [
+ "M704 384v-160c0-17.6-14.4-32-32-32h-160v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-160c-17.602 0-32 14.4-32 32v512c0 17.6 14.398 32 32 32h224v192h576v-576h-192zM320 128.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 320v-64h384v64h-384zM832 896h-448v-448h448v448zM448 512v128h32l32-64h64v192h-48v64h160v-64h-48v-192h64l32 64h32v-128z"
+ ],
+ "tags": [
+ "pastetext"
+ ],
+ "defaultCode": 57397,
+ "grid": 0
+ },
+ "properties": {
+ "id": 49,
+ "order": 40,
+ "prevSize": 32,
+ "code": 57397,
+ "name": "pastetext",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 49
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z"
+ ],
+ "tags": [
+ "resize",
+ "dots"
+ ],
+ "defaultCode": 57394,
+ "grid": 0
+ },
+ "properties": {
+ "id": 50,
+ "order": 41,
+ "prevSize": 32,
+ "code": 57394,
+ "name": "resize",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 50
+ },
+ {
+ "icon": {
+ "paths": [
+ "M928 128h-416l-32-64h-352l-64 128h896zM840.34 704h87.66l32-448h-896l64 640h356.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM874.996 849.75l-134.496-110.692c17.454-28.922 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l110.692 134.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM576 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z"
+ ],
+ "tags": [
+ "browse"
+ ],
+ "defaultCode": 57396,
+ "grid": 0
+ },
+ "properties": {
+ "id": 51,
+ "order": 42,
+ "prevSize": 32,
+ "code": 57396,
+ "name": "browse",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 51
+ },
+ {
+ "icon": {
+ "paths": [
+ "M864.408 670.132c-46.47-46.47-106.938-68.004-161.082-62.806l-63.326-63.326 192-192c0 0 128-128 0-256l-320 320-320-320c-128 128 0 256 0 256l192 192-63.326 63.326c-54.144-5.198-114.61 16.338-161.080 62.806-74.98 74.98-85.112 186.418-22.626 248.9 62.482 62.482 173.92 52.354 248.9-22.626 46.47-46.468 68.002-106.938 62.806-161.080l63.326-63.326 63.328 63.328c-5.196 54.144 16.336 114.61 62.806 161.078 74.978 74.98 186.418 85.112 248.898 22.626 62.488-62.482 52.356-173.918-22.624-248.9zM353.124 758.578c-2.212 24.332-15.020 49.826-35.14 69.946-22.212 22.214-51.080 35.476-77.218 35.476-10.524 0-25.298-2.228-35.916-12.848-21.406-21.404-17.376-73.132 22.626-113.136 22.212-22.214 51.080-35.476 77.218-35.476 10.524 0 25.298 2.228 35.916 12.848 13.112 13.11 13.47 32.688 12.514 43.19zM512 608c-35.346 0-64-28.654-64-64s28.654-64 64-64 64 28.654 64 64-28.654 64-64 64zM819.152 851.152c-10.62 10.62-25.392 12.848-35.916 12.848-26.138 0-55.006-13.262-77.218-35.476-20.122-20.12-32.928-45.614-35.138-69.946-0.958-10.502-0.6-30.080 12.514-43.192 10.618-10.622 25.39-12.848 35.916-12.848 26.136 0 55.006 13.262 77.216 35.474 40.004 40.008 44.032 91.736 22.626 113.14z"
+ ],
+ "defaultCode": 57351,
+ "grid": 0
+ },
+ "properties": {
+ "id": 14,
+ "order": 43,
+ "prevSize": 32,
+ "code": 57351,
+ "name": "cut",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 14
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h896v128h-896zM64 768h896v128h-896z"
+ ],
+ "defaultCode": 57350,
+ "grid": 0
+ },
+ "properties": {
+ "id": 15,
+ "order": 44,
+ "prevSize": 32,
+ "code": 57350,
+ "name": "alignjustify",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 15
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192h896v128h-896zM64 576h896v128h-896zM256 384h512v128h-512zM256 768h512v128h-512z"
+ ],
+ "defaultCode": 57348,
+ "grid": 0
+ },
+ "properties": {
+ "id": 16,
+ "order": 45,
+ "prevSize": 32,
+ "code": 57348,
+ "name": "aligncenter",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 16
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192h896v128h-896zM64 576h896v128h-896zM384 384h576v128h-576zM384 768h576v128h-576z"
+ ],
+ "defaultCode": 57349,
+ "grid": 0
+ },
+ "properties": {
+ "id": 17,
+ "order": 46,
+ "prevSize": 32,
+ "code": 57349,
+ "name": "alignright",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 17
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 192h896v128h-896zM64 576h896v128h-896zM64 384h576v128h-576zM64 768h576v128h-576z"
+ ],
+ "defaultCode": 57347,
+ "grid": 0
+ },
+ "properties": {
+ "id": 18,
+ "order": 47,
+ "prevSize": 32,
+ "code": 57347,
+ "name": "alignleft",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 18
+ },
+ {
+ "icon": {
+ "paths": [
+ "M320 128c-123.712 0-224 100.288-224 224s100.288 224 224 224v320h128v-640h64v640h128v-640h128v-128h-448zM960 512l-224 192 224 192z"
+ ],
+ "defaultCode": 57392,
+ "grid": 0
+ },
+ "properties": {
+ "id": 33,
+ "order": 48,
+ "prevSize": 32,
+ "code": 57392,
+ "name": "rtl",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 33
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 384h128v64h-128zM512 768h128v64h-128zM576 576h128v64h-128zM768 576v192h-64v64h128v-256zM384 576h128v64h-128zM320 768h128v64h-128zM320 384h128v64h-128zM192 192v256h64v-192h64v-64zM704 448h128v-256h-64v192h-64zM64 64v896h896v-896h-896zM896 896h-768v-768h768v768zM192 576v256h64v-192h64v-64zM576 192h128v64h-128zM384 192h128v64h-128z"
+ ],
+ "defaultCode": 57382,
+ "grid": 0
+ },
+ "properties": {
+ "id": 34,
+ "order": 49,
+ "prevSize": 32,
+ "code": 57382,
+ "name": "template",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 34
+ },
+ {
+ "icon": {
+ "paths": [
+ "M816 64l16 384h-640l16-384h32l16 320h512l16-320h32zM208 960l-16-320h640l-16 320h-32l-16-256h-512l-16 256h-32zM64 512h128v64h-128zM256 512h128v64h-128zM448 512h128v64h-128zM640 512h128v64h-128zM832 512h128v64h-128z"
+ ],
+ "defaultCode": 57383,
+ "grid": 0
+ },
+ "properties": {
+ "id": 35,
+ "order": 50,
+ "prevSize": 32,
+ "code": 57383,
+ "name": "pagebreak",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 35
+ },
+ {
+ "icon": {
+ "paths": [
+ "M960 128v-64h-192c-35.202 0-64 28.8-64 64v320c0 15.856 5.858 30.402 15.496 41.614l-303.496 260.386-142-148-82 70 224 288 416-448h128v-64h-192v-320h192zM256 512h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192h128v192zM128 256v-128h128v128h-128zM640 448v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64zM448 128h128v128h-128v-128zM448 320h128v128h-128v-128z"
+ ],
+ "defaultCode": 57380,
+ "grid": 0
+ },
+ "properties": {
+ "id": 36,
+ "order": 51,
+ "prevSize": 32,
+ "code": 57380,
+ "name": "spellcheck",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 36
+ },
+ {
+ "icon": {
+ "paths": [
+ "M448 512h-128v-128h128v-128h128v128h128v128h-128v128h-128v-128zM960 576v320h-896v-320h128v192h640v-192h128z"
+ ],
+ "defaultCode": 57381,
+ "grid": 0
+ },
+ "properties": {
+ "id": 37,
+ "order": 52,
+ "prevSize": 32,
+ "code": 57381,
+ "name": "nonbreaking",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 37
+ }
+ ],
+ "height": 1024,
+ "metadata": {
+ "name": "tinymce-small"
+ },
+ "preferences": {
+ "fontPref": {
+ "prefix": "icon-",
+ "metadata": {
+ "fontFamily": "tinymce-small",
+ "majorVersion": 1,
+ "minorVersion": 0
+ },
+ "showGlyphs": true,
+ "metrics": {
+ "emSize": 512,
+ "baseline": 6.25,
+ "whitespace": 50
+ },
+ "resetPoint": 58880,
+ "showQuickUse": true,
+ "quickUsageToken": false,
+ "showMetrics": true,
+ "showMetadata": false
+ },
+ "imagePref": {
+ "color": 0,
+ "height": 32,
+ "columns": 16,
+ "margin": 16,
+ "png": false,
+ "sprites": true
+ },
+ "historySize": 100,
+ "showCodes": true,
+ "gridSize": 16,
+ "showLiga": false,
+ "showGrid": true,
+ "showGlyphs": true,
+ "showQuickUse": true
+ }
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="tinymce-small" horiz-adv-x="512">
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph unicode=" " d="" horiz-adv-x="256" />
+<glyph unicode="" d="M480 40v295.969l-111.969 112.031h-296.031c-22.091 0-40-17.908-40-40v-368c0-22.092 17.909-40 40-40h368c22.092 0 40 17.908 40 40zM288 384h32v-96h-32v96zM352 64h-192v127.941c0.017 0.021 0.038 0.041 0.058 0.059h191.885c0.020-0.018 0.041-0.038 0.058-0.059l-0.001-127.941zM416 64h-32v128c0 17.6-14.4 32-32 32h-192c-17.6 0-32-14.4-32-32v-128h-32v320h32v-96c0-17.6 14.4-32 32-32h160c17.6 0 32 14.4 32 32v85.505l64-64.036v-245.469z" />
+<glyph unicode="" d="M425.373 358.627l-66.746 66.745c-12.444 12.446-37.027 22.628-54.627 22.628h-208c-17.6 0-32-14.4-32-32v-384c0-17.6 14.4-32 32-32h320c17.6 0 32 14.4 32 32v272c0 17.6-10.183 42.182-22.627 54.627zM402.745 336.001c3.396-3.398 6.896-9.581 9.447-16.001h-92.192v92.193c6.42-2.55 12.602-6.050 16-9.448l66.745-66.744zM415.942 32h-319.885c-0.020 0.017-0.041 0.038-0.057 0.058v383.885c0.017 0.020 0.038 0.041 0.057 0.057h191.943v-128h128v-255.942c-0.017-0.020-0.038-0.041-0.058-0.058z" />
+<glyph unicode="" d="M512 183.771v80.458l-79.572 7.957c-4.093 15.021-10.044 29.274-17.605 42.49l52.298 63.919-56.526 56.525-63.918-52.298c-13.217 7.562-27.471 13.513-42.491 17.604l-7.957 79.574h-80.458l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604l-63.919 52.297-56.525-56.525 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49l-79.573-7.958v-80.458l79.573-7.957c4.093-15.021 10.043-29.274 17.605-42.491l-52.298-63.918 56.524-56.524 63.919 52.298c13.216-7.562 27.47-13.514 42.49-17.605l7.958-79.574h80.458l7.957 79.572c15.021 4.093 29.274 10.044 42.491 17.605l63.918-52.298 56.524 56.524-52.298 63.918c7.562 13.217 13.514 27.471 17.605 42.49l79.574 7.96zM352 192l-64-64h-64l-64 64v64l64 64h64l64-64v-64z" />
+<glyph unicode="" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM32 288h288v-64h-288zM32 96h288v-64h-288z" />
+<glyph unicode="" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM128 288h256v-64h-256zM128 96h256v-64h-256z" />
+<glyph unicode="" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM192 288h288v-64h-288zM192 96h288v-64h-288z" />
+<glyph unicode="" d="M32 384h448v-64h-448zM32 192h448v-64h-448zM32 288h448v-64h-448zM32 96h448v-64h-448z" />
+<glyph unicode="" d="M432.204 144.934c-23.235 23.235-53.469 34.002-80.541 31.403l-31.663 31.663 96 96c0 0 64 64 0 128l-160-160-160 160c-64-64 0-128 0-128l96-96-31.663-31.663c-27.072 2.599-57.305-8.169-80.54-31.403-37.49-37.49-42.556-93.209-11.313-124.45 31.241-31.241 86.96-26.177 124.45 11.313 23.235 23.234 34.001 53.469 31.403 80.54l31.663 31.663 31.664-31.664c-2.598-27.072 8.168-57.305 31.403-80.539 37.489-37.49 93.209-42.556 124.449-11.313 31.244 31.241 26.178 86.959-11.312 124.45zM176.562 100.711c-1.106-12.166-7.51-24.913-17.57-34.973-11.106-11.107-25.54-17.738-38.609-17.738-5.262 0-12.649 1.114-17.958 6.424-10.703 10.702-8.688 36.566 11.313 56.568 11.106 11.107 25.54 17.738 38.609 17.738 5.262 0 12.649-1.114 17.958-6.424 6.556-6.555 6.735-16.344 6.257-21.595zM256 176c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM409.576 54.424c-5.31-5.31-12.696-6.424-17.958-6.424-13.069 0-27.503 6.631-38.609 17.738-10.061 10.060-16.464 22.807-17.569 34.973-0.479 5.251-0.3 15.040 6.257 21.596 5.309 5.311 12.695 6.424 17.958 6.424 13.068 0 27.503-6.631 38.608-17.737 20.002-20.004 22.016-45.868 11.313-56.57z" />
+<glyph unicode="" d="M352 288v80c0 8.8-7.2 16-16 16h-80v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-80c-8.801 0-16-7.2-16-16v-256c0-8.8 7.199-16 16-16h112v-96h192l96 96v192h-96zM160 415.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 320v32h192v-32h-192zM352 45.255v50.745h50.745l-50.745-50.745zM416 128h-96v-96h-128v224h224v-128z" />
+<glyph unicode="" d="M444 288h-28v128h32v32h-160v-32h32v-128h-128v128h32v32h-160v-32h32v-128h-28c-19.8 0-36-16.2-36-36v-216c0-19.8 16.2-36 36-36h120c19.8 0 36 16.2 36 36v156h64v-156c0-19.8 16.2-36 36-36h120c19.8 0 36 16.2 36 36v216c0 19.8-16.2 36-36 36zM174 32h-92c-9.9 0-18 7.2-18 16s8.1 16 18 16h92c9.9 0 18-7.2 18-16s-8.1-16-18-16zM272 224h-32c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16zM430 32h-92c-9.9 0-18 7.2-18 16s8.1 16 18 16h92c9.9 0 18-7.2 18-16s-8.1-16-18-16z" />
+<glyph unicode="" d="M192 416h288v-64h-288zM192 256h288v-64h-288zM192 96h288v-64h-288zM64 384c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM64 224c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM64 64c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32z" />
+<glyph unicode="" d="M192 416h288v-64h-288zM192 256h288v-64h-288zM192 96h288v-64h-288zM160 215v73h-32v160h-64v-32h32v-128h-32v-32h64v-25l-64-30v-73h64v-32h-64v-32h64v-32h-64v-32h96v160h-64v25z" />
+<glyph unicode="" d="M32 384h448v-64h-448zM192 192h288v-64h-288zM192 288h288v-64h-288zM32 96h448v-64h-448zM32 288l112-80-112-80z" />
+<glyph unicode="" d="M32 384h448v-64h-448zM32 192h288v-64h-288zM32 288h288v-64h-288zM32 96h448v-64h-448zM480 288l-112-80 112-80z" />
+<glyph unicode="" d="M128.214 267.637c52.9 0 95.786-45.585 95.786-101.819 0-56.232-42.886-101.818-95.786-101.818-52.901 0-95.786 45.585-95.786 101.818l-0.428 14.546c0 112.465 85.77 203.636 191.572 203.636v-58.182c-36.55 0-70.913-15.13-96.758-42.602-4.977-5.289-9.517-10.917-13.612-16.828 4.892 0.82 9.903 1.249 15.012 1.249zM384.214 267.637c52.9 0 95.786-45.585 95.786-101.819 0-56.232-42.886-101.818-95.786-101.818-52.901 0-95.786 45.585-95.786 101.818l-0.428 14.546c0 112.465 85.77 203.636 191.572 203.636v-58.182c-36.55 0-70.913-15.13-96.758-42.602-4.978-5.289-9.518-10.917-13.612-16.828 4.892 0.82 9.903 1.249 15.012 1.249z" />
+<glyph unicode="" d="M352 0c29.5 99.5 67.453 227.633-128 223.048v-111.048l-168.001 168 168.001 168v-108.663c234.046 6.1 272-179.337 128-339.337z" />
+<glyph unicode="" d="M288 339.337v108.663l168.001-168-168.001-168v111.048c-195.453 4.585-157.5-123.548-128-223.048-144 160-106.046 345.437 128 339.337z" />
+<glyph unicode="" d="M463.637 364.892l-66.745 66.744c-10.552 10.552-24.616 16.364-39.599 16.364s-29.047-5.812-39.598-16.363l-82.746-82.745c-21.834-21.834-21.834-57.362 0-79.196l1.373-1.373 33.941 33.941-1.373 1.373c-3.066 3.066-3.066 8.247 0 11.313l82.746 82.746c2.005 2.004 4.404 2.304 5.656 2.304s3.651-0.299 5.656-2.305l66.745-66.744c3.066-3.067 3.066-8.249 0.001-11.314l-82.747-82.747c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651 0.3-5.656 2.306l-1.373 1.373-33.94-33.942 1.371-1.371c10.553-10.554 24.615-16.364 39.6-16.364s29.047 5.812 39.598 16.363l82.747 82.746c21.831 21.833 21.831 57.36-0.002 79.195zM275.678 179.678l-33.941-33.941 1.373-1.373c2.004-2.004 2.305-4.403 2.305-5.655 0-1.253-0.299-3.651-2.303-5.657l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652 0.3-5.657 2.305l-66.746 66.743c-2.005 2.005-2.305 4.405-2.305 5.657s0.299 3.65 2.305 5.656l82.745 82.744c2.005 2.006 4.405 2.306 5.657 2.306s3.652-0.3 5.657-2.306l1.373-1.371 33.941 33.94-1.373 1.373c-10.552 10.552-24.615 16.363-39.598 16.363s-29.046-5.812-39.598-16.363l-82.744-82.743c-10.553-10.552-16.365-24.617-16.365-39.599s5.812-29.047 16.363-39.599l66.745-66.745c10.553-10.551 24.616-16.363 39.599-16.363s29.046 5.812 39.598 16.363l82.747 82.746c10.552 10.552 16.361 24.615 16.361 39.598s-5.812 29.047-16.363 39.598l-1.372 1.373zM176 125c-4.862 0-9.725 1.855-13.435 5.564-7.42 7.42-7.42 19.449 0 26.869l160 160c7.42 7.42 19.448 7.42 26.868 0 7.422-7.42 7.422-19.45 0-26.87l-160-160c-3.708-3.708-8.571-5.563-13.433-5.563z" />
+<glyph unicode="" d="M463.637 364.892l-66.745 66.744c-10.552 10.552-24.616 16.364-39.599 16.364s-29.047-5.812-39.598-16.363l-82.746-82.745c-21.834-21.834-21.834-57.362 0-79.196l1.373-1.373 33.941 33.941-1.373 1.373c-3.066 3.066-3.066 8.247 0 11.313l82.746 82.746c2.005 2.004 4.404 2.304 5.656 2.304s3.651-0.299 5.656-2.305l66.745-66.744c3.066-3.067 3.066-8.249 0.001-11.314l-82.747-82.747c-2.004-2.004-4.403-2.304-5.655-2.304s-3.651 0.3-5.656 2.306l-1.373 1.373-33.94-33.942 1.371-1.371c10.553-10.554 24.615-16.364 39.6-16.364s29.047 5.812 39.598 16.363l82.747 82.746c21.831 21.833 21.831 57.36-0.002 79.195zM275.678 179.678l-33.941-33.941 1.373-1.373c2.004-2.004 2.305-4.403 2.305-5.655 0-1.253-0.299-3.651-2.303-5.657l-82.747-82.745c-2.005-2.005-4.405-2.305-5.657-2.305s-3.652 0.3-5.657 2.305l-66.746 66.743c-2.005 2.005-2.305 4.405-2.305 5.657s0.299 3.65 2.305 5.656l82.745 82.744c2.005 2.006 4.405 2.306 5.657 2.306s3.652-0.3 5.657-2.306l1.373-1.371 33.941 33.94-1.373 1.373c-10.552 10.552-24.615 16.363-39.598 16.363s-29.046-5.812-39.598-16.363l-82.744-82.743c-10.553-10.552-16.365-24.617-16.365-39.599s5.812-29.047 16.363-39.599l66.745-66.745c10.553-10.551 24.616-16.363 39.599-16.363s29.046 5.812 39.598 16.363l82.747 82.746c10.552 10.552 16.361 24.615 16.361 39.598s-5.812 29.047-16.363 39.598l-1.372 1.373zM400 61c-4.862 0-9.725 1.854-13.435 5.565l-64 63.999c-7.422 7.42-7.422 19.449 0 26.869 7.42 7.422 19.448 7.422 26.868 0l64-64c7.422-7.42 7.422-19.448 0-26.868-3.708-3.711-8.571-5.565-13.433-5.565zM304 0c-8.837 0-16 7.163-16 16v64c0 8.837 7.163 16 16 16s16-7.163 16-16v-64c0-8.837-7.163-16-16-16zM464 160h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16h64c8.837 0 16-7.163 16-16s-7.163-16-16-16zM112 387c4.862 0 9.725-1.854 13.435-5.565l64-64c7.421-7.42 7.421-19.449 0-26.869-7.42-7.422-19.449-7.422-26.869 0l-64 64c-7.421 7.42-7.421 19.449 0 26.869 3.709 3.711 8.572 5.565 13.434 5.565zM208 448c8.837 0 16-7.163 16-16v-64c0-8.837-7.163-16-16-16s-16 7.163-16 16v64c0 8.837 7.163 16 16 16zM48 288h64c8.837 0 16-7.163 16-16s-7.163-16-16-16h-64c-8.837 0-16 7.163-16 16s7.163 16 16 16z" />
+<glyph unicode="" d="M128 448v-448l128 128 128-128v448h-256zM352 85.255l-96 96-96-96v330.745h192v-330.745z" />
+<glyph unicode="" d="M448 416h-384c-17.6 0-32-14.4-32-32v-320c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v320c0 17.6-14.4 32-32 32zM448 64.058c-0.006-0.007-0.015-0.014-0.021-0.021l-95.979 159.963-80-64-112 144-95.984-239.958c-0.005 0.005-0.011 0.011-0.016 0.016v319.885c0.017 0.020 0.038 0.041 0.057 0.057h383.885c0.020-0.017 0.041-0.038 0.058-0.058v-319.884zM320 304c0-26.51 21.49-48 48-48s48 21.49 48 48c0 26.51-21.49 48-48 48-26.51 0-48-21.49-48-48z" />
+<glyph unicode="" d="M448 416h-384c-17.6 0-32-14.4-32-32v-320c0-17.6 14.4-32 32-32h384c17.6 0 32 14.4 32 32v320c0 17.6-14.4 32-32 32zM128 64h-64v64h64v-64zM128 192h-64v64h64v-64zM128 320h-64v64h64v-64zM352 64h-192v320h192v-320zM448 64h-64v64h64v-64zM448 192h-64v64h64v-64zM448 320h-64v64h64v-64zM192 320v-192l144 96z" />
+<glyph unicode="" d="M224 128h64v-64h-64v64zM352 352c17.673 0 32-14.327 32-32v-83l-114-77h-46v32l96 64v32h-160v64h192zM256 448c-59.833 0-116.083-23.3-158.392-65.608-42.307-42.309-65.608-98.559-65.608-158.392 0-59.832 23.301-116.084 65.608-158.392 42.309-42.308 98.559-65.608 158.392-65.608 59.832 0 116.084 23.3 158.392 65.608 42.308 42.308 65.608 98.56 65.608 158.392 0 59.833-23.3 116.083-65.608 158.392-42.308 42.308-98.56 65.608-158.392 65.608z" />
+<glyph unicode="" d="M208 128l-96 96 96 96-32 32-128-128 128-128zM336 352l-32-32 96-96-96-96 32-32 128 128z" />
+<glyph unicode="" d="M38.899 327.688l40.707-25.441c25.401 40.557 64.394 71.727 110.604 87.123l-15.183 45.547c-56.874-18.949-104.864-57.313-136.128-107.229zM336.973 434.917l-15.183-45.547c46.211-15.396 85.202-46.566 110.604-87.124l40.706 25.441c-31.263 49.917-79.253 88.281-136.127 107.23zM303.987 127.996c-2.404 0-4.846 0.545-7.143 1.693l-72.844 36.422v105.889c0 8.836 7.164 16 16 16s16-7.164 16-16v-86.111l55.155-27.578c7.903-3.951 11.107-13.562 7.155-21.466-2.802-5.607-8.454-8.848-14.323-8.849zM256 384c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192 0 106.039-85.961 192-192 192zM256 48c-79.529 0-144 64.471-144 144s64.471 144 144 144c79.529 0 144-64.471 144-144 0-79.529-64.471-144-144-144z" />
+<glyph unicode="" d="M32 252.127c22.659 24.96 48.581 46.18 76.636 62.562 45.166 26.372 96.123 40.311 147.364 40.311 51.24 0 102.198-13.939 147.363-40.312 28.056-16.382 53.978-37.602 76.637-62.562v58.716c-16.505 14.059-34.062 26.57-52.434 37.297-52.503 30.657-111.829 46.861-171.566 46.861s-119.064-16.204-171.567-46.86c-18.371-10.727-35.928-23.239-52.433-37.298v-58.715zM256 320c-91.598 0-172.919-50.278-224-128 51.081-77.724 132.402-128 224-128 91.598 0 172.919 50.276 224 128-51.081 77.722-132.402 128-224 128zM256 224c0-17.673-14.327-32-32-32s-32 14.327-32 32c0 17.674 14.327 32 32 32s32-14.326 32-32zM364.033 131.669c-33.717-19.687-70.064-29.669-108.033-29.669s-74.316 9.982-108.033 29.669c-25.777 15.052-49.308 35.655-69.057 60.331 19.749 24.675 43.28 45.279 69.058 60.33 6.638 3.876 13.379 7.37 20.213 10.491-5.256-11.871-8.181-25.004-8.181-38.821 0-53.020 42.981-96 96-96 53.020 0 96 42.98 96 96 0 13.817-2.925 26.95-8.18 38.821 6.834-3.122 13.575-6.615 20.213-10.491 25.777-15.051 49.308-35.655 69.058-60.33-19.749-24.676-43.28-45.279-69.058-60.331z" />
+<glyph unicode="" d="M325.584 338.083c-12.306 40.981-14.438 45.917-53.584 45.917h-32c-39.809 0-41.332-5.076-54.209-48 0-0.001 0-0.001-0.001-0.002l-71.999-239.998h56.818l28.8 96h113.183l28.8-96h56.815l-72.623 242.083zM218.609 256l19.2 68c5.043 16.809 18.19 15 18.19 15s13.147 1.809 18.19-15h0.002l19.2-68h-74.782z" />
+<glyph unicode="" d="M32 384v-352h448v352h-448zM192 160v64h128v-64h-128zM320 128v-64h-128v64h128zM320 320v-64h-128v64h128zM160 320v-64h-96v64h96zM64 224h96v-64h-96v64zM352 224h96v-64h-96v64zM352 256v64h96v-64h-96zM64 128h96v-64h-96v64zM352 64v64h96v-64h-96z" />
+<glyph unicode="" d="M32 256h448v-64h-448z" />
+<glyph unicode="" d="M32 96h256v-64h-256v64zM384 384h-110.279l-91.883-256h-66.144l91.881 256h-111.575v64h288v-64zM464.887 32l-64.887 64.887-64.887-64.887-31.113 31.113 64.887 64.887-64.887 64.887 31.113 31.113 64.887-64.887 64.887 64.887 31.113-31.113-64.887-64.887 64.887-64.887-31.113-31.113z" />
+<glyph unicode="" d="M384 25v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="" d="M384 377v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="" d="M352 64v18.502c75.674 30.814 128 96.91 128 173.498 0 106.039-100.288 192-224 192s-224-85.961-224-192c0-76.588 52.327-142.684 128-173.498v-18.502h-96l-32 48v-112h160v111.406c-50.45 25.681-85.333 80.77-85.333 144.594 0 88.366 66.859 160 149.333 160 82.474 0 149.333-71.634 149.333-160 0-63.824-34.883-118.913-85.333-144.594v-111.406h160v112l-32-48h-96z" />
+<glyph unicode="" d="M256 410c49.683 0 96.391-19.347 131.521-54.478s54.479-81.839 54.479-131.522-19.348-96.391-54.479-131.521-81.838-54.479-131.521-54.479-96.391 19.348-131.522 54.479-54.478 81.838-54.478 131.521 19.347 96.391 54.478 131.522 81.839 54.478 131.522 54.478zM256 448c-123.712 0-224-100.288-224-224s100.288-224 224-224 224 100.288 224 224-100.288 224-224 224v0zM160 288c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM288 288c0-17.673 14.327-32 32-32s32 14.327 32 32c0 17.673-14.327 32-32 32-17.673 0-32-14.327-32-32zM256 152c-50.92 0-96.28 18.437-125.583 47.164 11.563-58.804 63.389-103.164 125.583-103.164 62.194 0 114.020 44.36 125.584 103.164-29.304-28.727-74.664-47.164-125.584-47.164z" />
+<glyph unicode="" d="M128 416h256v-64h-256v64zM448 320h-384c-17.6 0-32-14.4-32-32v-128c0-17.6 14.398-32 32-32h64v-96h256v96h64c17.6 0 32 14.4 32 32v128c0 17.6-14.4 32-32 32zM352 64h-192v128h192v-128zM455.2 272c0-12.813-10.387-23.2-23.199-23.2s-23.201 10.387-23.201 23.2 10.389 23.2 23.201 23.2c12.813 0 23.199-10.387 23.199-23.2z" />
+<glyph unicode="" d="M240 288l-96 96 64 64h-176v-176l64 64 96-96zM320 240l96 96 64-64v176h-176l64-64-96-96zM272 160l96-96-64-64h176v176l-64-64-96 96zM192 208l-96-96-64 64v-176h176l-64 64 96 96z" />
+<glyph unicode="" d="M480 416v32h-96c-17.601 0-32-14.4-32-32v-160c0-7.928 2.929-15.201 7.748-20.807l-151.748-130.193-71 74-41-35 112-144 208 224h64v32h-96v160h96zM128 224h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96h64v-96zM64 352v64h64v-64h-64zM320 256v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32zM224 416h64v-64h-64v64zM224 320h64v-64h-64v64z" />
+<glyph unicode="" d="M224 224h-64v64h64v64h64v-64h64v-64h-64v-64h-64v64zM480 192v-160h-448v160h64v-96h320v96h64z" />
+<glyph unicode="" d="M256 288h64v-32h-64zM256 96h64v-32h-64zM288 192h64v-32h-64zM384 192v-96h-32v-32h64v128zM192 192h64v-32h-64zM160 96h64v-32h-64zM160 288h64v-32h-64zM96 384v-128h32v96h32v32zM352 256h64v128h-32v-96h-32zM32 448v-448h448v448h-448zM448 32h-384v384h384v-384zM96 192v-128h32v96h32v32zM288 384h64v-32h-64zM192 384h64v-32h-64z" />
+<glyph unicode="" d="M408 448l8-192h-320l8 192h16l8-160h256l8 160h16zM104 0l-8 160h320l-8-160h-16l-8 128h-256l-8-128h-16zM32 224h64v-32h-64zM128 224h64v-32h-64zM224 224h64v-32h-64zM320 224h64v-32h-64zM416 224h64v-32h-64z" />
+<glyph unicode="" d="M288 448c123.712 0 224-100.288 224-224s-100.288-224-224-224v48c47.012 0 91.209 18.307 124.451 51.549 33.242 33.242 51.549 77.439 51.549 124.451 0 47.011-18.307 91.209-51.549 124.451-33.242 33.242-77.439 51.549-124.451 51.549-47.011 0-91.209-18.307-124.451-51.549-25.57-25.569-42.291-57.623-48.653-92.451h93.104l-112-128-112 128h82.285c15.53 108.551 108.869 192 221.715 192zM384 256v-64h-128v160h64v-96z" />
+<glyph unicode="" d="M312.721 232.909c24.037 19.075 39.279 47.428 39.279 79.091 0 57.438-50.145 104-112 104h-112v-384h144c61.856 0 112 46.562 112 104 0 44.098-29.559 81.781-71.279 96.909zM192 328c0 13.255 10.745 24 24 24h33.602c21.207 0 38.398-21.49 38.398-48s-17.191-48-38.398-48h-57.602v72zM273.6 96h-57.6c-13.255 0-24 10.745-24 24v72h81.6c21.209 0 38.4-21.49 38.4-48s-17.191-48-38.4-48z" />
+<glyph unicode="" d="M416 416v-32h-72l-128-320h72v-32h-224v32h72l128 320h-72v32h224z" />
+<glyph unicode="" d="M96 64h288v-32h-288v32zM320 416v-192c0-15.656-7.35-30.812-20.695-42.676-15.471-13.751-36.534-21.324-59.305-21.324-22.772 0-43.834 7.573-59.304 21.324-13.346 11.864-20.696 27.020-20.696 42.676v192h-64v-192c0-70.691 64.471-128 144-128s144 57.309 144 128v192h-64z" />
+<glyph unicode="" d="M480 224h-132.938c-25.039 17.71-57.215 27.43-91.062 27.43-44.603 0-82.286 25.121-82.286 54.856 0 29.735 37.683 54.857 82.286 54.857 37.529 0 70.154-17.788 79.56-41.143h56.508c-3.965 25.322-18.79 48.984-42.029 66.413-25.44 19.080-58.838 29.587-94.039 29.587-35.202 0-68.598-10.507-94.037-29.587-27.394-20.545-43.106-49.751-43.106-80.127s15.712-59.582 43.106-80.127c0.978-0.733 1.971-1.449 2.973-2.158h-132.936v-32h256.266c29.104-8.553 50.021-28.135 50.021-50.286 0-29.734-37.684-54.855-82.286-54.855-37.53 0-70.154 17.787-79.559 41.143h-56.508c3.965-25.32 18.791-48.984 42.030-66.413 25.438-19.082 58.834-29.59 94.036-29.59 35.201 0 68.599 10.508 94.037 29.587 27.395 20.545 43.104 49.751 43.104 80.127 0 17.649-5.327 34.896-15.147 50.286h102.006v32z" />
+<glyph unicode="" d="M192 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224z" />
+<glyph unicode="" d="M224 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224zM32 32l112 96-112 96z" />
+<glyph unicode="" d="M160 416c-61.856 0-112-50.144-112-112s50.144-112 112-112v-160h64v320h32v-320h64v320h64v64h-224zM480 224l-112-96 112-96z" />
+<glyph unicode="" d="M416 320h-96v32l-96 96h-192v-352h192v-96h288v224l-96 96zM416 274.745l50.745-50.745h-50.745v50.745zM224 402.745l50.745-50.745h-50.745v50.745zM64 416h128v-96h96v-192h-224v288zM480 32h-224v64h64v192h64v-96h96v-160z" />
+<glyph unicode="" d="M384 352h32v-32h-32zM320 288h32v-32h-32zM320 224h32v-32h-32zM320 160h32v-32h-32zM256 224h32v-32h-32zM256 160h32v-32h-32zM192 160h32v-32h-32zM384 288h32v-32h-32zM384 224h32v-32h-32zM384 160h32v-32h-32zM384 96h32v-32h-32zM320 96h32v-32h-32zM256 96h32v-32h-32zM192 96h32v-32h-32zM128 96h32v-32h-32z" />
+<glyph unicode="" d="M464 416h-208l-16 32h-176l-32-64h448zM420.17 128h43.83l16 224h-448l32-320h178.040c-52.441 18.888-90.040 69.133-90.040 128 0 74.991 61.009 136 136 136 74.99 0 136-61.009 136-136 0-10.839-1.311-21.575-3.83-32zM437.498 55.125l-67.248 55.346c8.727 14.461 13.75 31.407 13.75 49.529 0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96c18.122 0 35.069 5.023 49.529 13.75l55.346-67.248c11.481-13.339 31.059-14.070 43.503-1.626l2.746 2.746c12.444 12.444 11.713 32.022-1.626 43.503zM288 98c-34.242 0-62 27.758-62 62s27.758 62 62 62 62-27.758 62-62-27.758-62-62-62z" />
+<glyph unicode="" d="M352 288v80c0 8.8-7.2 16-16 16h-80v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-80c-8.801 0-16-7.2-16-16v-256c0-8.8 7.199-16 16-16h112v-96h288v288h-96zM160 415.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 320v32h192v-32h-192zM416 32h-224v224h224v-224zM224 224v-64h16l16 32h32v-96h-24v-32h80v32h-24v96h32l16-32h16v64z" />
+</font></defs></svg>
\ No newline at end of file
--- /dev/null
+{
+ "IcoMoonType": "selection",
+ "icons": [
+ {
+ "icon": {
+ "paths": [
+ "M928 128h-416l-32-64h-352l-64 128h896zM904.34 704h74.86l44.8-448h-1024l64 640h484.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM1002.996 913.75l-198.496-174.692c17.454-28.92 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l174.692 198.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM640 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z"
+ ],
+ "defaultCode": 57396,
+ "grid": 0
+ },
+ "properties": {
+ "id": 0,
+ "order": 1,
+ "prevSize": 32,
+ "code": 57396,
+ "name": "browse",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 0
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z"
+ ],
+ "tags": [
+ "resize",
+ "dots"
+ ],
+ "defaultCode": 57394,
+ "grid": 0
+ },
+ "properties": {
+ "id": 1,
+ "order": 2,
+ "prevSize": 32,
+ "code": 57394,
+ "name": "resize",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 1
+ },
+ {
+ "icon": {
+ "paths": [
+ "M832 256h-192v-64l-192-192h-448v768h384v256h640v-576l-192-192zM832 346.51l101.49 101.49h-101.49v-101.49zM448 90.51l101.49 101.49h-101.49v-101.49zM64 64h320v192h192v448h-512v-640zM960 960h-512v-192h192v-448h128v192h192v448z"
+ ],
+ "tags": [
+ "copy"
+ ],
+ "defaultCode": 57393,
+ "grid": 0
+ },
+ "properties": {
+ "id": 2,
+ "order": 3,
+ "prevSize": 32,
+ "code": 57393,
+ "name": "copy",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 2
+ },
+ {
+ "icon": {
+ "paths": [
+ "M256 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM960 896l-256-224 256-224z"
+ ],
+ "tags": [
+ "rtl"
+ ],
+ "defaultCode": 57392,
+ "grid": 0
+ },
+ "properties": {
+ "id": 3,
+ "order": 4,
+ "prevSize": 32,
+ "code": 57392,
+ "name": "rtl",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 3
+ },
+ {
+ "icon": {
+ "paths": [
+ "M448 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM64 448l256 224-256 224z"
+ ],
+ "tags": [
+ "ltr"
+ ],
+ "defaultCode": 57391,
+ "grid": 0
+ },
+ "properties": {
+ "id": 4,
+ "order": 5,
+ "prevSize": 32,
+ "code": 57391,
+ "name": "ltr",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 4
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224z"
+ ],
+ "tags": [
+ "visualchars"
+ ],
+ "defaultCode": 57390,
+ "grid": 0
+ },
+ "properties": {
+ "id": 5,
+ "order": 6,
+ "prevSize": 32,
+ "code": 57390,
+ "name": "visualchars",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 5
+ },
+ {
+ "icon": {
+ "paths": [
+ "M731.42 517.036c63.92 47.938 100.58 116.086 100.58 186.964s-36.66 139.026-100.58 186.964c-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128 104.074 0 192-58.618 192-128 0-69.382-87.926-128-192-128-82.138 0-160.062-24.518-219.42-69.036-63.92-47.94-100.58-116.086-100.58-186.964 0-70.878 36.66-139.024 100.58-186.964 59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128-104.074 0-192 58.618-192 128 0 69.382 87.926 128 192 128 82.136 0 160.062 24.518 219.42 69.036zM0 512h1024v64h-1024z"
+ ],
+ "tags": [
+ "strikethrough"
+ ],
+ "defaultCode": 57389,
+ "grid": 0
+ },
+ "properties": {
+ "id": 6,
+ "order": 7,
+ "prevSize": 32,
+ "code": 57389,
+ "name": "strikethrough",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 6
+ },
+ {
+ "icon": {
+ "paths": [
+ "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494 53.8 0 103.75-18.29 140.646-51.494 33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z"
+ ],
+ "tags": [
+ "underline"
+ ],
+ "defaultCode": 57388,
+ "grid": 0
+ },
+ "properties": {
+ "id": 7,
+ "order": 8,
+ "prevSize": 32,
+ "code": 57388,
+ "name": "underline",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 7
+ },
+ {
+ "icon": {
+ "paths": [
+ "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z"
+ ],
+ "tags": [
+ "italic"
+ ],
+ "defaultCode": 57387,
+ "grid": 0
+ },
+ "properties": {
+ "id": 8,
+ "order": 9,
+ "prevSize": 32,
+ "code": 57387,
+ "name": "italic",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 8
+ },
+ {
+ "icon": {
+ "paths": [
+ "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z"
+ ],
+ "tags": [
+ "bold0"
+ ],
+ "defaultCode": 57386,
+ "grid": 0
+ },
+ "properties": {
+ "id": 9,
+ "order": 10,
+ "prevSize": 32,
+ "code": 57386,
+ "name": "bold",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 9
+ },
+ {
+ "icon": {
+ "paths": [
+ "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z"
+ ],
+ "tags": [
+ "restoredraft"
+ ],
+ "defaultCode": 57384,
+ "grid": 0
+ },
+ "properties": {
+ "id": 11,
+ "order": 11,
+ "prevSize": 32,
+ "code": 57384,
+ "name": "restoredraft",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 11
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 512h128v64h-128zM192 512h192v64h-192zM448 512h128v64h-128zM640 512h192v64h-192zM896 512h128v64h-128zM880 0l16 448h-768l16-448h32l16 384h640l16-384zM144 1024l-16-384h768l-16 384h-32l-16-320h-640l-16 320z"
+ ],
+ "tags": [
+ "pagebreak"
+ ],
+ "defaultCode": 57383,
+ "grid": 0
+ },
+ "properties": {
+ "id": 12,
+ "order": 12,
+ "prevSize": 32,
+ "code": 57383,
+ "name": "pagebreak",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 12
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 192h128v64h-128zM576 192h128v64h-128zM896 192v256h-192v-64h128v-128h-64v-64zM320 384h128v64h-128zM512 384h128v64h-128zM192 256v128h64v64h-128v-256h192v64zM384 576h128v64h-128zM576 576h128v64h-128zM896 576v256h-192v-64h128v-128h-64v-64zM320 768h128v64h-128zM512 768h128v64h-128zM192 640v128h64v64h-128v-256h192v64zM960 64h-896v896h896v-896zM1024 0v0 1024h-1024v-1024h1024z"
+ ],
+ "tags": [
+ "template"
+ ],
+ "defaultCode": 57382,
+ "grid": 0
+ },
+ "properties": {
+ "id": 13,
+ "order": 13,
+ "prevSize": 32,
+ "code": 57382,
+ "name": "template",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 13
+ },
+ {
+ "icon": {
+ "paths": [
+ "M448 576h-192v-128h192v-192h128v192h192v128h-192v192h-128zM1024 640v384h-1024v-384h128v256h768v-256z"
+ ],
+ "tags": [
+ "nonbreaking"
+ ],
+ "defaultCode": 57381,
+ "grid": 0
+ },
+ "properties": {
+ "id": 14,
+ "order": 14,
+ "prevSize": 32,
+ "code": 57381,
+ "name": "nonbreaking",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 14
+ },
+ {
+ "icon": {
+ "paths": [
+ "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z"
+ ],
+ "tags": [
+ "spellchecker"
+ ],
+ "defaultCode": 57380,
+ "grid": 0
+ },
+ "properties": {
+ "id": 15,
+ "order": 15,
+ "prevSize": 32,
+ "code": 57380,
+ "name": "spellchecker",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 15
+ },
+ {
+ "icon": {
+ "paths": [
+ "M704 896h256l64-128v256h-384v-214.214c131.112-56.484 224-197.162 224-361.786 0-214.432-157.598-382.266-352-382.266-194.406 0-352 167.832-352 382.266 0 164.624 92.886 305.302 224 361.786v214.214h-384v-256l64 128h256v-32.59c-187.63-66.46-320-227.402-320-415.41 0-247.424 229.23-448 512-448 282.77 0 512 200.576 512 448 0 188.008-132.37 348.95-320 415.41v32.59z"
+ ],
+ "tags": [
+ "charmap"
+ ],
+ "defaultCode": 57376,
+ "grid": 0
+ },
+ "properties": {
+ "id": 19,
+ "order": 16,
+ "prevSize": 32,
+ "code": 57376,
+ "name": "charmap",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 19
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+ ],
+ "tags": [
+ "sup"
+ ],
+ "defaultCode": 57375,
+ "grid": 0
+ },
+ "properties": {
+ "id": 20,
+ "order": 17,
+ "prevSize": 32,
+ "code": 57375,
+ "name": "sup",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 20
+ },
+ {
+ "icon": {
+ "paths": [
+ "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z"
+ ],
+ "tags": [
+ "sub"
+ ],
+ "defaultCode": 57374,
+ "grid": 0
+ },
+ "properties": {
+ "id": 21,
+ "order": 18,
+ "prevSize": 32,
+ "code": 57374,
+ "name": "sub",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 21
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 896h576v128h-576zM192 0h704v128h-704zM277.388 832l204.688-784.164 123.85 32.328-196.25 751.836zM929.774 1024l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774z"
+ ],
+ "tags": [
+ "removeformat"
+ ],
+ "defaultCode": 57373,
+ "grid": 0
+ },
+ "properties": {
+ "id": 22,
+ "order": 19,
+ "prevSize": 32,
+ "code": 57373,
+ "name": "removeformat",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 22
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 448h1024v128h-1024z"
+ ],
+ "tags": [
+ "hr"
+ ],
+ "defaultCode": 57372,
+ "grid": 0
+ },
+ "properties": {
+ "id": 23,
+ "order": 20,
+ "prevSize": 32,
+ "code": 57372,
+ "name": "hr",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 23
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64v896h1024v-896h-1024zM384 640v-192h256v192h-256zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z"
+ ],
+ "tags": [
+ "table"
+ ],
+ "defaultCode": 57371,
+ "grid": 0
+ },
+ "properties": {
+ "id": 24,
+ "order": 21,
+ "prevSize": 32,
+ "code": 57371,
+ "name": "table",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 24
+ },
+ {
+ "icon": {
+ "paths": [
+ "M322.018 832l57.6-192h264.764l57.6 192h113.632l-191.996-640h-223.236l-192 640h113.636zM475.618 320h72.764l57.6 192h-187.964l57.6-192z"
+ ],
+ "tags": [
+ "forecolor"
+ ],
+ "defaultCode": 57370,
+ "grid": 0
+ },
+ "properties": {
+ "id": 25,
+ "order": 22,
+ "prevSize": 32,
+ "code": 57370,
+ "name": "forecolor",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 25
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 320c-209.368 0-395.244 100.556-512 256 116.756 155.446 302.632 256 512 256 209.368 0 395.244-100.554 512-256-116.756-155.444-302.632-256-512-256zM448 448c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zM773.616 705.296c-39.648 20.258-81.652 35.862-124.846 46.376-44.488 10.836-90.502 16.328-136.77 16.328-46.266 0-92.282-5.492-136.768-16.324-43.194-10.518-85.198-26.122-124.846-46.376-63.020-32.202-120.222-76.41-167.64-129.298 47.418-52.888 104.62-97.1 167.64-129.298 32.336-16.522 66.242-29.946 101.082-40.040-19.888 30.242-31.468 66.434-31.468 105.336 0 106.040 85.962 192 192 192 106.038 0 192-85.96 192-192 0-38.902-11.582-75.094-31.466-105.34 34.838 10.096 68.744 23.52 101.082 40.042 63.022 32.198 120.218 76.408 167.638 129.298-47.42 52.886-104.618 97.1-167.638 129.296zM860.918 243.722c-108.72-55.554-226.112-83.722-348.918-83.722-122.806 0-240.198 28.168-348.918 83.722-58.772 30.032-113.732 67.904-163.082 112.076v109.206c55.338-58.566 120.694-107.754 192.194-144.29 99.62-50.904 207.218-76.714 319.806-76.714s220.186 25.81 319.804 76.716c71.502 36.536 136.858 85.724 192.196 144.29v-109.206c-49.35-44.174-104.308-82.046-163.082-112.078z"
+ ],
+ "tags": [
+ "preview"
+ ],
+ "defaultCode": 57369,
+ "grid": 0
+ },
+ "properties": {
+ "id": 26,
+ "order": 23,
+ "prevSize": 32,
+ "code": 57369,
+ "name": "preview",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 26
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 192c-212.076 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM715.644 779.646c-54.392 54.396-126.716 84.354-203.644 84.354s-149.25-29.958-203.646-84.354c-54.396-54.394-84.354-126.718-84.354-203.646s29.958-149.25 84.354-203.646c54.396-54.396 126.718-84.354 203.646-84.354s149.252 29.958 203.642 84.354c54.402 54.396 84.358 126.718 84.358 203.646s-29.958 149.252-84.356 203.646zM325.93 203.862l-42.94-85.878c-98.874 49.536-179.47 130.132-229.006 229.008l85.876 42.94c40.248-80.336 105.732-145.822 186.070-186.070zM884.134 389.93l85.878-42.938c-49.532-98.876-130.126-179.472-229.004-229.008l-42.944 85.878c80.338 40.248 145.824 105.732 186.070 186.068zM512 384h-64v192c0 10.11 4.7 19.11 12.022 24.972l-0.012 0.016 160 128 39.976-49.976-147.986-118.39v-176.622z"
+ ],
+ "tags": [
+ "inserttime"
+ ],
+ "defaultCode": 57368,
+ "grid": 0
+ },
+ "properties": {
+ "id": 27,
+ "order": 24,
+ "prevSize": 32,
+ "code": 57368,
+ "name": "inserttime",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 27
+ },
+ {
+ "icon": {
+ "paths": [
+ "M320 256l-256 256 256 256h128l-256-256 256-256zM704 256h-128l256 256-256 256h128l256-256z"
+ ],
+ "tags": [
+ "code"
+ ],
+ "defaultCode": 57367,
+ "grid": 0
+ },
+ "properties": {
+ "id": 28,
+ "order": 25,
+ "prevSize": 32,
+ "code": 57367,
+ "name": "code",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 28
+ },
+ {
+ "icon": {
+ "paths": [
+ "M448 704h128v128h-128zM704 256c35.346 0 64 28.654 64 64v192l-192 128h-128v-64l192-128v-64h-320v-128h384zM512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156 78.572 78.572 183.038 121.844 294.156 121.844 111.118 0 215.584-43.272 294.156-121.844 78.572-78.572 121.844-183.038 121.844-294.156 0-111.118-43.272-215.584-121.844-294.156-78.572-78.572-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512 0-282.77 229.23-512 512-512z"
+ ],
+ "tags": [
+ "help"
+ ],
+ "defaultCode": 57366,
+ "grid": 0
+ },
+ "properties": {
+ "id": 29,
+ "order": 26,
+ "prevSize": 32,
+ "code": 57366,
+ "name": "help",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 29
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 128v768h1024v-768h-1024zM192 832h-128v-128h128v128zM192 576h-128v-128h128v128zM192 320h-128v-128h128v128zM768 832h-512v-640h512v640zM960 832h-128v-128h128v128zM960 576h-128v-128h128v128zM960 320h-128v-128h128v128zM384 320v384l256-192z"
+ ],
+ "tags": [
+ "media"
+ ],
+ "defaultCode": 57365,
+ "grid": 0
+ },
+ "properties": {
+ "id": 30,
+ "order": 27,
+ "prevSize": 32,
+ "code": 57365,
+ "name": "media",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 30
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 128v832h1024v-832h-1024zM960 896h-896v-704h896v704zM704 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96zM896 832h-768l192-512 256 320 128-96z"
+ ],
+ "tags": [
+ "image"
+ ],
+ "defaultCode": 57364,
+ "grid": 0
+ },
+ "properties": {
+ "id": 31,
+ "order": 28,
+ "prevSize": 32,
+ "code": 57364,
+ "name": "image",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 31
+ },
+ {
+ "icon": {
+ "paths": [
+ "M192 0v1024l320-320 320 320v-1024h-640zM768 869.49l-256-256-256 256v-805.49h512v805.49z"
+ ],
+ "tags": [
+ "anchor"
+ ],
+ "defaultCode": 57363,
+ "grid": 0
+ },
+ "properties": {
+ "id": 32,
+ "order": 29,
+ "prevSize": 32,
+ "code": 57363,
+ "name": "anchor",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 32
+ },
+ {
+ "icon": {
+ "paths": [
+ "M476.888 675.114c4.56 9.048 6.99 19.158 6.99 29.696 0 17.616-6.744 34.058-18.992 46.308l-163.38 163.38c-12.248 12.248-28.696 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.38-99.38c-12.248-12.25-18.992-28.696-18.992-46.308s6.744-34.060 18.992-46.308l163.38-163.382c12.248-12.246 28.696-18.992 46.308-18.992 10.538 0 20.644 2.43 29.696 6.988l65.338-65.336c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.38 163.382c-60.67 60.67-60.67 159.95 0 220.618l99.38 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.38-163.38c55.82-55.82 60.238-144.298 13.344-205.346l-65.34 65.338zM978.496 144.884l-99.38-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.97 15.166-110.306 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.246-12.248 28.694-18.994 46.306-18.994 17.616 0 34.060 6.746 46.308 18.994l99.38 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.38 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.504l163.38-163.38c60.672-60.666 60.672-159.944 0-220.614zM233.368 278.624l-191.994-191.994 45.256-45.256 191.994 191.994zM384 0h64v192h-64zM0 384h192v64h-192zM790.632 745.376l191.996 191.996-45.256 45.256-191.996-191.996zM576 832h64v192h-64zM832 576h192v64h-192z"
+ ],
+ "tags": [
+ "unlink"
+ ],
+ "defaultCode": 57362,
+ "grid": 0
+ },
+ "properties": {
+ "id": 33,
+ "order": 30,
+ "prevSize": 32,
+ "code": 57362,
+ "name": "unlink",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 33
+ },
+ {
+ "icon": {
+ "paths": [
+ "M320 704c17.6 17.6 47.274 16.726 65.942-1.942l316.118-316.116c18.668-18.668 19.54-48.342 1.94-65.942s-47.274-16.726-65.942 1.942l-316.116 316.116c-18.668 18.668-19.542 48.342-1.942 65.942zM476.888 675.112c4.56 9.050 6.99 19.16 6.99 29.696 0 17.616-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.382-99.382c-12.248-12.248-18.992-28.694-18.992-46.308s6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994 10.536 0 20.644 2.43 29.696 6.99l65.338-65.338c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-60.67 60.67-60.67 159.948 0 220.618l99.382 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c55.82-55.82 60.238-144.298 13.344-205.344l-65.34 65.34zM978.498 144.884l-99.382-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994s34.060 6.746 46.308 18.994l99.382 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c60.67-60.666 60.67-159.944 0-220.614z"
+ ],
+ "tags": [
+ "link"
+ ],
+ "defaultCode": 57361,
+ "grid": 0
+ },
+ "properties": {
+ "id": 34,
+ "order": 31,
+ "prevSize": 32,
+ "code": 57361,
+ "name": "link",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 34
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM256 320v384l-256-192z"
+ ],
+ "tags": [
+ "outdent"
+ ],
+ "defaultCode": 57357,
+ "grid": 0
+ },
+ "properties": {
+ "id": 38,
+ "order": 32,
+ "prevSize": 32,
+ "code": 57357,
+ "name": "outdent",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 38
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM0 704v-384l256 192z"
+ ],
+ "tags": [
+ "indent"
+ ],
+ "defaultCode": 57356,
+ "grid": 0
+ },
+ "properties": {
+ "id": 39,
+ "order": 33,
+ "prevSize": 32,
+ "code": 57356,
+ "name": "indent",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 39
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 832h640v128h-640zM384 448h640v128h-640zM384 64h640v128h-640zM192 0v256h-64v-192h-64v-64zM128 526v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM256 704v320h-192v-64h128v-64h-128v-64h128v-64h-128v-64z"
+ ],
+ "tags": [
+ "numlist"
+ ],
+ "defaultCode": 57355,
+ "grid": 0
+ },
+ "properties": {
+ "id": 40,
+ "order": 34,
+ "prevSize": 32,
+ "code": 57355,
+ "name": "numlist",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 40
+ },
+ {
+ "icon": {
+ "paths": [
+ "M384 64h640v128h-640v-128zM384 448h640v128h-640v-128zM384 832h640v128h-640v-128zM0 128c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 512c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 896c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128z"
+ ],
+ "tags": [
+ "bullist"
+ ],
+ "defaultCode": 57354,
+ "grid": 0
+ },
+ "properties": {
+ "id": 41,
+ "order": 35,
+ "prevSize": 32,
+ "code": 57354,
+ "name": "bullist",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 41
+ },
+ {
+ "icon": {
+ "paths": [
+ "M64 0h384v64h-384zM576 0h384v64h-384zM952 320h-56v-256h-256v256h-256v-256h-256v256h-56c-39.6 0-72 32.4-72 72v560c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-376h128v376c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-560c0-39.6-32.4-72-72-72zM348 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM924 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32z"
+ ],
+ "tags": [
+ "searchreplace"
+ ],
+ "defaultCode": 57353,
+ "grid": 0
+ },
+ "properties": {
+ "id": 42,
+ "order": 36,
+ "prevSize": 32,
+ "code": 57353,
+ "name": "searchreplace",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 42
+ },
+ {
+ "icon": {
+ "paths": [
+ "M832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h448l192-192v-512h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM832 933.49v-101.49h101.49l-101.49 101.49zM960 768h-192v192h-320v-576h512v384z"
+ ],
+ "tags": [
+ "paste"
+ ],
+ "defaultCode": 57352,
+ "grid": 0
+ },
+ "properties": {
+ "id": 43,
+ "order": 37,
+ "prevSize": 32,
+ "code": 57352,
+ "name": "paste",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 43
+ },
+ {
+ "icon": {
+ "paths": [
+ "M890.774 709.154c-45.654-45.556-103.728-69.072-157.946-69.072h-29.112l-63.904-64.008 255.62-256.038c63.904-64.010 63.904-192.028 0-256.038l-383.43 384.056-383.432-384.054c-63.904 64.008-63.904 192.028 0 256.038l255.622 256.034-63.906 64.008h-29.114c-54.22 0-112.292 23.518-157.948 69.076-81.622 81.442-92.65 202.484-24.63 270.35 29.97 29.902 70.288 44.494 112.996 44.494 54.216 0 112.29-23.514 157.946-69.072 53.584-53.464 76.742-124 67.084-185.348l65.384-65.488 65.376 65.488c-9.656 61.348 13.506 131.882 67.084 185.348 45.662 45.558 103.732 69.072 157.948 69.072 42.708 0 83.024-14.592 112.994-44.496 68.020-67.866 56.988-188.908-24.632-270.35zM353.024 845.538c-7.698 17.882-19.010 34.346-33.626 48.926-14.636 14.604-31.172 25.918-49.148 33.624-16.132 6.916-32.96 10.568-48.662 10.568-15.146 0-36.612-3.402-52.862-19.612-16.136-16.104-19.52-37.318-19.52-52.288 0-15.542 3.642-32.21 10.526-48.212 7.7-17.884 19.014-34.346 33.626-48.926 14.634-14.606 31.172-25.914 49.15-33.624 16.134-6.914 32.96-10.568 48.664-10.568 15.146 0 36.612 3.4 52.858 19.614 16.134 16.098 19.522 37.316 19.522 52.284 0.002 15.542-3.638 32.216-10.528 48.214zM512.004 666.596c-49.914 0-90.376-40.532-90.376-90.526 0-49.992 40.462-90.52 90.376-90.52s90.372 40.528 90.372 90.52c0 49.998-40.46 90.526-90.372 90.526zM855.272 919.042c-16.248 16.208-37.712 19.612-52.86 19.612-15.704 0-32.53-3.652-48.666-10.568-17.972-7.706-34.508-19.020-49.142-33.624-14.614-14.58-25.926-31.042-33.626-48.926-6.886-15.998-10.526-32.672-10.526-48.212 0-14.966 3.384-36.188 19.52-52.286 16.246-16.208 37.712-19.614 52.86-19.614 15.7 0 32.53 3.654 48.66 10.568 17.978 7.708 34.516 19.018 49.15 33.624 14.61 14.58 25.924 31.042 33.626 48.926 6.884 15.998 10.526 32.67 10.526 48.212-0.002 14.97-3.39 36.186-19.522 52.288z"
+ ],
+ "tags": [
+ "cut"
+ ],
+ "defaultCode": 57351,
+ "grid": 0
+ },
+ "properties": {
+ "id": 44,
+ "order": 38,
+ "prevSize": 32,
+ "code": 57351,
+ "name": "cut",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 44
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64h1024v128h-1024zM0 256h1024v128h-1024zM0 448h1024v128h-1024zM0 640h1024v128h-1024zM0 832h1024v128h-1024z"
+ ],
+ "tags": [
+ "alignjustify"
+ ],
+ "defaultCode": 57350,
+ "grid": 0
+ },
+ "properties": {
+ "id": 45,
+ "order": 39,
+ "prevSize": 32,
+ "code": 57350,
+ "name": "alignjustify",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 45
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z"
+ ],
+ "tags": [
+ "alignright"
+ ],
+ "defaultCode": 57349,
+ "grid": 0
+ },
+ "properties": {
+ "id": 46,
+ "order": 40,
+ "prevSize": 32,
+ "code": 57349,
+ "name": "alignright",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 46
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64h1024v128h-1024zM192 256h640v128h-640zM192 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z"
+ ],
+ "tags": [
+ "aligncenter"
+ ],
+ "defaultCode": 57348,
+ "grid": 0
+ },
+ "properties": {
+ "id": 47,
+ "order": 41,
+ "prevSize": 32,
+ "code": 57348,
+ "name": "aligncenter",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 47
+ },
+ {
+ "icon": {
+ "paths": [
+ "M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z"
+ ],
+ "tags": [
+ "alignleft"
+ ],
+ "defaultCode": 57347,
+ "grid": 0
+ },
+ "properties": {
+ "id": 48,
+ "order": 42,
+ "prevSize": 32,
+ "code": 57347,
+ "name": "alignleft",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 48
+ },
+ {
+ "icon": {
+ "paths": [
+ "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z"
+ ],
+ "tags": [
+ "fullpage"
+ ],
+ "defaultCode": 57346,
+ "grid": 0
+ },
+ "properties": {
+ "id": 49,
+ "order": 43,
+ "prevSize": 32,
+ "code": 57346,
+ "name": "fullpage",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 49
+ },
+ {
+ "icon": {
+ "paths": [
+ "M903.432 199.43l-142.864-142.862c-31.112-31.112-92.568-56.568-136.568-56.568h-480c-44 0-80 36-80 80v864c0 44 36 80 80 80h736c44 0 80-36 80-80v-608c0-44-25.456-105.458-56.568-136.57zM858.178 244.686c3.13 3.13 6.25 6.974 9.28 11.314h-163.458v-163.456c4.34 3.030 8.184 6.15 11.314 9.28l142.864 142.862zM896 944c0 8.672-7.328 16-16 16h-736c-8.672 0-16-7.328-16-16v-864c0-8.672 7.328-16 16-16h480c4.832 0 10.254 0.61 16 1.704v254.296h254.296c1.094 5.746 1.704 11.166 1.704 16v608z"
+ ],
+ "tags": [
+ "newdocument"
+ ],
+ "defaultCode": 57345,
+ "grid": 0
+ },
+ "properties": {
+ "id": 50,
+ "order": 44,
+ "prevSize": 32,
+ "code": 57345,
+ "name": "newdocument",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 50
+ },
+ {
+ "icon": {
+ "paths": [
+ "M896 0h-896v1024h1024v-896l-128-128zM512 128h128v256h-128v-256zM896 896h-768v-768h64v320h576v-320h74.978l53.022 53.018v714.982z"
+ ],
+ "tags": [
+ "save"
+ ],
+ "defaultCode": 57344,
+ "grid": 0
+ },
+ "properties": {
+ "id": 51,
+ "order": 45,
+ "prevSize": 32,
+ "code": 57344,
+ "name": "save",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 51
+ },
+ {
+ "icon": {
+ "paths": [
+ "M128 544l288 288 480-480-128-128-352 352-160-160z"
+ ],
+ "defaultCode": 57395,
+ "grid": 0
+ },
+ "properties": {
+ "id": 52,
+ "order": 46,
+ "prevSize": 32,
+ "code": 57395,
+ "name": "checkbox",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 52
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 512v128h32l32-64h64v256h-48v64h224v-64h-48v-256h64l32 64h32v-128zM832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h640v-704h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM960 960h-512v-576h512v576z"
+ ],
+ "tags": [
+ "pastetext"
+ ],
+ "defaultCode": 57397,
+ "grid": 0
+ },
+ "properties": {
+ "id": 53,
+ "order": 47,
+ "prevSize": 32,
+ "code": 57397,
+ "name": "pastetext",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 53
+ },
+ {
+ "icon": {
+ "paths": [
+ "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z"
+ ],
+ "tags": [
+ "fullscreen"
+ ],
+ "defaultCode": 57379,
+ "grid": 0
+ },
+ "properties": {
+ "id": 16,
+ "order": 48,
+ "prevSize": 32,
+ "code": 57379,
+ "name": "fullscreen",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 16
+ },
+ {
+ "icon": {
+ "paths": [
+ "M256 64h512v128h-512zM960 256h-896c-35.2 0-64 28.8-64 64v320c0 35.2 28.796 64 64 64h192v256h512v-256h192c35.2 0 64-28.8 64-64v-320c0-35.2-28.8-64-64-64zM704 896h-384v-320h384v320zM974.4 352c0 25.626-20.774 46.4-46.398 46.4-25.626 0-46.402-20.774-46.402-46.4s20.776-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z"
+ ],
+ "tags": [
+ "print"
+ ],
+ "defaultCode": 57378,
+ "grid": 0
+ },
+ "properties": {
+ "id": 17,
+ "order": 49,
+ "prevSize": 32,
+ "code": 57378,
+ "name": "print",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 17
+ },
+ {
+ "icon": {
+ "paths": [
+ "M512 0c-282.77 0-512 229.228-512 512 0 282.77 229.228 512 512 512 282.77 0 512-229.23 512-512 0-282.772-229.23-512-512-512zM512 944c-238.586 0-432-193.412-432-432 0-238.586 193.414-432 432-432 238.59 0 432 193.414 432 432 0 238.588-193.41 432-432 432zM384 320c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM768 320c0 35.346-28.652 64-64 64s-64-28.654-64-64 28.652-64 64-64 64 28.654 64 64zM512 652c141.074 0 262.688-57.532 318.462-123.192-20.872 171.22-156.288 303.192-318.462 303.192-162.118 0-297.498-132.026-318.444-303.168 55.786 65.646 177.386 123.168 318.444 123.168z"
+ ],
+ "tags": [
+ "emoticons"
+ ],
+ "defaultCode": 57377,
+ "grid": 0
+ },
+ "properties": {
+ "id": 18,
+ "order": 50,
+ "prevSize": 32,
+ "code": 57377,
+ "name": "emoticons",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 18
+ },
+ {
+ "icon": {
+ "paths": [
+ "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224-123.712 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224-123.71 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z"
+ ],
+ "tags": [
+ "blockquote"
+ ],
+ "defaultCode": 57358,
+ "grid": 0
+ },
+ "properties": {
+ "id": 37,
+ "order": 51,
+ "prevSize": 32,
+ "code": 57358,
+ "name": "blockquote",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 37
+ },
+ {
+ "icon": {
+ "paths": [
+ "M761.862 1024c113.726-206.032 132.888-520.306-313.862-509.824v253.824l-384-384 384-384v248.372c534.962-13.942 594.57 472.214 313.862 775.628z"
+ ],
+ "tags": [
+ "undo"
+ ],
+ "defaultCode": 57359,
+ "grid": 0
+ },
+ "properties": {
+ "id": 36,
+ "order": 52,
+ "prevSize": 32,
+ "code": 57359,
+ "name": "undo",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 36
+ },
+ {
+ "icon": {
+ "paths": [
+ "M576 248.372v-248.372l384 384-384 384v-253.824c-446.75-10.482-427.588 303.792-313.86 509.824-280.712-303.414-221.1-789.57 313.86-775.628z"
+ ],
+ "tags": [
+ "redo"
+ ],
+ "defaultCode": 57360,
+ "grid": 0
+ },
+ "properties": {
+ "id": 35,
+ "order": 53,
+ "prevSize": 32,
+ "code": 57360,
+ "name": "redo",
+ "ligatures": ""
+ },
+ "setIdx": 0,
+ "iconIdx": 35
+ }
+ ],
+ "height": 1024,
+ "metadata": {
+ "name": "tinymce"
+ },
+ "preferences": {
+ "showGlyphs": true,
+ "showQuickUse": true,
+ "fontPref": {
+ "prefix": "icon-",
+ "metadata": {
+ "fontFamily": "tinymce",
+ "majorVersion": 1,
+ "minorVersion": 0
+ },
+ "metrics": {
+ "emSize": 512,
+ "baseline": 6.25,
+ "whitespace": 50
+ }
+ },
+ "imagePref": {},
+ "historySize": 100,
+ "showCodes": true,
+ "showLiga": false
+ }
+}
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="tinymce" horiz-adv-x="512">
+<font-face units-per-em="512" ascent="480" descent="-32" />
+<missing-glyph horiz-adv-x="512" />
+<glyph unicode=" " d="" horiz-adv-x="256" />
+<glyph unicode="" d="M448 480h-448v-512h512v448l-64 64zM256 416h64v-128h-64v128zM448 32h-384v384h32v-160h288v160h37.489l26.511-26.509v-357.491z" />
+<glyph unicode="" d="M451.716 380.285l-71.432 71.431c-15.556 15.556-46.284 28.284-68.284 28.284h-240c-22 0-40-18-40-40v-432c0-22 18-40 40-40h368c22 0 40 18 40 40v304c0 22-12.728 52.729-28.284 68.285zM429.089 357.657c1.565-1.565 3.125-3.487 4.64-5.657h-81.729v81.728c2.17-1.515 4.092-3.075 5.657-4.64l71.432-71.431zM448 8c0-4.336-3.664-8-8-8h-368c-4.336 0-8 3.664-8 8v432c0 4.336 3.664 8 8 8h240c2.416 0 5.127-0.305 8-0.852v-127.148h127.148c0.547-2.873 0.852-5.583 0.852-8v-304z" />
+<glyph unicode="" d="M512 183.771v80.458l-79.572 7.957c-4.093 15.021-10.044 29.274-17.605 42.49l52.298 63.919-56.526 56.525-63.918-52.298c-13.217 7.562-27.471 13.513-42.491 17.604l-7.957 79.574h-80.458l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604l-63.919 52.297-56.525-56.525 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49l-79.573-7.958v-80.458l79.573-7.957c4.093-15.021 10.043-29.274 17.605-42.491l-52.298-63.918 56.524-56.524 63.919 52.298c13.216-7.562 27.47-13.514 42.49-17.605l7.958-79.574h80.458l7.957 79.572c15.021 4.093 29.274 10.044 42.491 17.605l63.918-52.298 56.524 56.524-52.298 63.918c7.562 13.217 13.514 27.471 17.605 42.49l79.574 7.96zM352 192l-64-64h-64l-64 64v64l64 64h64l64-64v-64z" />
+<glyph unicode="" d="M0 448h512v-64h-512zM0 352h320v-64h-320zM0 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="" d="M0 448h512v-64h-512zM96 352h320v-64h-320zM96 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 160h320v-64h-320zM0 256h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="" d="M0 448h512v-64h-512zM0 352h512v-64h-512zM0 256h512v-64h-512zM0 160h512v-64h-512zM0 64h512v-64h-512z" />
+<glyph unicode="" d="M445.387 125.423c-22.827 22.778-51.864 34.536-78.973 34.536h-14.556l-31.952 32.004 127.81 128.019c31.952 32.005 31.952 96.014 0 128.019l-191.715-192.028-191.716 192.027c-31.952-32.004-31.952-96.014 0-128.019l127.811-128.017-31.953-32.004h-14.557c-27.11 0-56.146-11.759-78.974-34.538-40.811-40.721-46.325-101.242-12.315-135.175 14.985-14.951 35.144-22.247 56.498-22.247 27.108 0 56.145 11.757 78.973 34.536 26.792 26.732 38.371 62 33.542 92.674l32.692 32.744 32.688-32.744c-4.828-30.674 6.753-65.941 33.542-92.674 22.831-22.779 51.866-34.536 78.974-34.536 21.354 0 41.512 7.296 56.497 22.248 34.010 33.933 28.494 94.454-12.316 135.175zM176.512 57.231c-3.849-8.941-9.505-17.173-16.813-24.463-7.318-7.302-15.586-12.959-24.574-16.812-8.066-3.458-16.48-5.284-24.331-5.284-7.573 0-18.306 1.701-26.431 9.806-8.068 8.052-9.76 18.659-9.76 26.144 0 7.771 1.821 16.105 5.263 24.106 3.85 8.942 9.507 17.173 16.813 24.463 7.317 7.303 15.586 12.957 24.575 16.812 8.067 3.457 16.48 5.284 24.332 5.284 7.573 0 18.306-1.7 26.429-9.807 8.067-8.049 9.761-18.658 9.761-26.142 0.001-7.771-1.819-16.108-5.264-24.107zM256.002 146.702c-24.957 0-45.188 20.266-45.188 45.263 0 24.996 20.231 45.26 45.188 45.26s45.186-20.264 45.186-45.26c0-24.999-20.23-45.263-45.186-45.263zM427.636 20.479c-8.124-8.104-18.856-9.806-26.43-9.806-7.852 0-16.265 1.826-24.333 5.284-8.986 3.853-17.254 9.51-24.571 16.812-7.307 7.29-12.963 15.521-16.813 24.463-3.443 7.999-5.263 16.336-5.263 24.106 0 7.483 1.692 18.094 9.76 26.143 8.123 8.104 18.856 9.807 26.43 9.807 7.85 0 16.265-1.827 24.33-5.284 8.989-3.854 17.258-9.509 24.575-16.812 7.305-7.29 12.962-15.521 16.813-24.463 3.442-7.999 5.263-16.335 5.263-24.106-0.001-7.485-1.695-18.093-9.761-26.144z" />
+<glyph unicode="" d="M416 320v80c0 8.8-7.2 16-16 16h-112v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-112c-8.801 0-16-7.2-16-16v-320c0-8.8 7.199-16 16-16h144v-96h224l96 96v256h-96zM192 447.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 352v32h256v-32h-256zM416 13.255v50.745h50.745l-50.745-50.745zM480 96h-96v-96h-160v288h256v-192z" />
+<glyph unicode="" d="M32 480h192v-32h-192zM288 480h192v-32h-192zM476 320h-28v128h-128v-128h-128v128h-128v-128h-28c-19.8 0-36-16.2-36-36v-280c0-19.8 16.2-36 36-36h152c19.8 0 36 16.2 36 36v188h64v-188c0-19.8 16.2-36 36-36h152c19.8 0 36 16.2 36 36v280c0 19.8-16.2 36-36 36zM174 0h-124c-9.9 0-18 7.2-18 16s8.1 16 18 16h124c9.9 0 18-7.2 18-16s-8.1-16-18-16zM272 224h-32c-8.8 0-16 7.2-16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s-7.2-16-16-16zM462 0h-124c-9.9 0-18 7.2-18 16s8.1 16 18 16h124c9.9 0 18-7.2 18-16s-8.1-16-18-16z" />
+<glyph unicode="" d="M192 448h320v-64h-320v64zM192 256h320v-64h-320v64zM192 64h320v-64h-320v64zM0 416c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM0 224c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64zM0 32c0 35.346 28.654 64 64 64s64-28.654 64-64c0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64z" />
+<glyph unicode="" d="M192 64h320v-64h-320zM192 256h320v-64h-320zM192 448h320v-64h-320zM96 480v-128h-32v96h-32v32zM64 217v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM128 128v-160h-96v32h64v32h-64v32h64v32h-64v32z" />
+<glyph unicode="" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 256h320v-64h-320zM192 160h320v-64h-320zM0 64h512v-64h-512zM0 128v192l128-96z" />
+<glyph unicode="" d="M0 448h512v-64h-512zM192 352h320v-64h-320zM192 256h320v-64h-320zM192 160h320v-64h-320zM0 64h512v-64h-512zM128 320v-192l-128 96z" />
+<glyph unicode="" d="M112.5 256c61.856 0 112-50.145 112-112 0-61.856-50.144-112-112-112-61.856 0-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.817-5.818-11.126-12.008-15.915-18.51 5.719 0.9 11.58 1.373 17.552 1.373zM400.5 256c61.855 0 112-50.145 112-112 0-61.856-50.145-112-112-112-61.855 0-112 50.144-112 112l-0.5 16c0 123.712 100.288 224 224 224v-64c-42.737 0-82.917-16.643-113.137-46.863-5.818-5.818-11.127-12.008-15.916-18.51 5.72 0.9 11.58 1.373 17.553 1.373z" />
+<glyph unicode="" d="M380.931-32c56.863 103.016 66.444 260.153-156.931 254.912v-126.912l-192 192 192 192v-124.186c267.481 6.971 297.285-236.107 156.931-387.814z" />
+<glyph unicode="" d="M288 355.814v124.186l192-192-192-192v126.912c-223.375 5.241-213.794-151.896-156.93-254.912-140.356 151.707-110.55 394.785 156.93 387.814z" />
+<glyph unicode="" d="M160 128c8.8-8.8 23.637-8.363 32.971 0.971l158.059 158.058c9.334 9.334 9.77 24.171 0.97 32.971s-23.637 8.363-32.971-0.971l-158.058-158.058c-9.334-9.334-9.771-24.171-0.971-32.971zM238.444 142.444c2.28-4.525 3.495-9.58 3.495-14.848 0-8.808-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496s-17.030 3.372-23.154 9.496l-49.691 49.691c-6.124 6.124-9.496 14.347-9.496 23.154s3.372 17.030 9.496 23.154l81.691 81.691c6.124 6.124 14.347 9.497 23.154 9.497 5.268 0 10.322-1.215 14.848-3.495l32.669 32.669c-13.935 10.705-30.72 16.080-47.517 16.080-19.993 0-39.986-7.583-55.154-22.751l-81.691-81.691c-30.335-30.335-30.335-79.974 0-110.309l49.691-49.691c15.167-15.166 35.16-22.75 55.153-22.75 19.994 0 39.987 7.584 55.154 22.751l81.691 81.691c27.91 27.91 30.119 72.149 6.672 102.672l-32.67-32.67zM489.249 407.558l-49.691 49.691c-15.167 15.168-35.16 22.751-55.154 22.751-19.993 0-39.986-7.583-55.154-22.751l-81.691-81.691c-27.91-27.91-30.119-72.149-6.671-102.671l32.669 32.67c-2.279 4.525-3.494 9.58-3.494 14.847 0 8.808 3.372 17.030 9.496 23.154l81.691 81.691c6.124 6.124 14.347 9.497 23.154 9.497s17.030-3.373 23.154-9.497l49.691-49.691c6.124-6.124 9.496-14.347 9.496-23.154s-3.372-17.030-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496-5.268 0-10.322 1.215-14.848 3.495l-32.669-32.669c13.936-10.705 30.72-16.080 47.517-16.080 19.994 0 39.987 7.584 55.154 22.751l81.691 81.691c30.335 30.333 30.335 79.972 0 110.307z" />
+<glyph unicode="" d="M238.444 142.443c2.28-4.524 3.495-9.579 3.495-14.848 0-8.808-3.372-17.029-9.496-23.154l-81.69-81.69c-6.124-6.124-14.348-9.496-23.154-9.496s-17.030 3.372-23.154 9.496l-49.69 49.69c-6.124 6.125-9.496 14.348-9.496 23.154s3.372 17.030 9.496 23.154l81.69 81.691c6.124 6.123 14.348 9.496 23.154 9.496 5.269 0 10.322-1.215 14.848-3.494l32.669 32.668c-13.935 10.705-30.72 16.080-47.517 16.080-19.993 0-39.986-7.583-55.154-22.751l-81.69-81.691c-30.335-30.335-30.335-79.975 0-110.309l49.69-49.691c15.167-15.166 35.16-22.75 55.153-22.75 19.994 0 39.987 7.584 55.154 22.751l81.69 81.69c27.91 27.91 30.119 72.149 6.672 102.673l-32.67-32.669zM489.248 407.558l-49.69 49.691c-15.167 15.168-35.16 22.751-55.154 22.751-19.993 0-39.985-7.583-55.153-22.751l-81.691-81.691c-27.91-27.91-30.119-72.149-6.671-102.671l32.669 32.67c-2.279 4.525-3.494 9.58-3.494 14.847 0 8.808 3.372 17.030 9.496 23.154l81.691 81.691c6.123 6.124 14.347 9.497 23.153 9.497 8.808 0 17.030-3.373 23.154-9.497l49.69-49.691c6.124-6.124 9.496-14.347 9.496-23.154s-3.372-17.030-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496-5.268 0-10.322 1.215-14.848 3.495l-32.669-32.669c13.936-10.705 30.72-16.080 47.517-16.080 19.994 0 39.987 7.584 55.154 22.752l81.69 81.69c30.336 30.333 30.336 79.972 0 110.307zM116.684 340.688l-95.997 95.997 22.628 22.628 95.997-95.997zM192 480h32v-96h-32zM0 288h96v-32h-96zM395.316 107.312l95.998-95.998-22.628-22.628-95.998 95.998zM288 64h32v-96h-32zM416 192h96v-32h-96z" />
+<glyph unicode="" d="M96 480v-512l160 160 160-160v512h-320zM384 45.255l-128 128-128-128v402.745h256v-402.745z" />
+<glyph unicode="" d="M0 416v-416h512v416h-512zM480 32h-448v352h448v-352zM352 304c0 26.51 21.49 48 48 48s48-21.49 48-48c0-26.51-21.49-48-48-48-26.51 0-48 21.49-48 48zM448 64h-384l96 256 128-160 64 48z" />
+<glyph unicode="" d="M0 416v-384h512v384h-512zM96 64h-64v64h64v-64zM96 192h-64v64h64v-64zM96 320h-64v64h64v-64zM384 64h-256v320h256v-320zM480 64h-64v64h64v-64zM480 192h-64v64h64v-64zM480 320h-64v64h64v-64zM192 320v-192l128 96z" />
+<glyph unicode="" d="M224 128h64v-64h-64zM352 352c17.673 0 32-14.327 32-32v-96l-96-64h-64v32l96 64v32h-160v64h192zM256 432c-55.559 0-107.792-21.636-147.078-60.922s-60.922-91.519-60.922-147.078c0-55.559 21.636-107.792 60.922-147.078 39.286-39.286 91.519-60.922 147.078-60.922 55.559 0 107.792 21.636 147.078 60.922 39.286 39.286 60.922 91.519 60.922 147.078 0 55.559-21.636 107.792-60.922 147.078-39.286 39.286-91.519 60.922-147.078 60.922zM256 480v0c141.385 0 256-114.615 256-256s-114.615-256-256-256c-141.385 0-256 114.615-256 256 0 141.385 114.615 256 256 256z" />
+<glyph unicode="" d="M160 352l-128-128 128-128h64l-128 128 128 128zM352 352h-64l128-128-128-128h64l128 128z" />
+<glyph unicode="" d="M256 384c-106.038 0-192-85.961-192-192s85.961-192 192-192c106.037 0 192 85.961 192 192s-85.963 192-192 192zM357.822 90.177c-27.196-27.198-63.358-42.177-101.822-42.177s-74.625 14.979-101.823 42.177c-27.198 27.197-42.177 63.359-42.177 101.823s14.979 74.625 42.177 101.823c27.198 27.198 63.359 42.177 101.823 42.177s74.626-14.979 101.821-42.177c27.201-27.198 42.179-63.359 42.179-101.823s-14.979-74.626-42.178-101.823zM162.965 378.069l-21.47 42.939c-49.437-24.768-89.735-65.066-114.503-114.504l42.938-21.47c20.124 40.168 52.866 72.911 93.035 93.035zM442.067 285.035l42.939 21.469c-24.766 49.438-65.063 89.736-114.502 114.504l-21.472-42.939c40.169-20.124 72.912-52.866 93.035-93.034zM256 288h-32v-96c0-5.055 2.35-9.555 6.011-12.486l-0.006-0.008 80-64 19.988 24.988-73.993 59.195v88.311z" />
+<glyph unicode="" d="M256 320c-104.684 0-197.622-50.278-256-128 58.378-77.723 151.316-128 256-128 104.684 0 197.622 50.277 256 128-58.378 77.722-151.316 128-256 128zM224 256c17.673 0 32-14.327 32-32s-14.327-32-32-32-32 14.327-32 32 14.327 32 32 32zM386.808 127.352c-19.824-10.129-40.826-17.931-62.423-23.188-22.244-5.418-45.251-8.164-68.385-8.164-23.133 0-46.141 2.746-68.384 8.162-21.597 5.259-42.599 13.061-62.423 23.188-31.51 16.101-60.111 38.205-83.82 64.649 23.709 26.444 52.31 48.55 83.82 64.649 16.168 8.261 33.121 14.973 50.541 20.020-9.944-15.121-15.734-33.217-15.734-52.668 0-53.020 42.981-96 96-96 53.019 0 96 42.98 96 96 0 19.451-5.791 37.547-15.733 52.67 17.419-5.048 34.372-11.76 50.541-20.021 31.511-16.099 60.109-38.204 83.819-64.649-23.71-26.443-52.309-48.55-83.819-64.648zM430.459 358.139c-54.36 27.777-113.056 41.861-174.459 41.861-61.403 0-120.099-14.084-174.459-41.861-29.386-15.016-56.866-33.952-81.541-56.038v-54.603c27.669 29.283 60.347 53.877 96.097 72.145 49.81 25.452 103.609 38.357 159.903 38.357s110.093-12.905 159.902-38.358c35.751-18.268 68.429-42.862 96.098-72.145v54.603c-24.675 22.087-52.154 41.023-81.541 56.039z" />
+<glyph unicode="" d="M161.009 64l28.8 96h132.382l28.8-96h56.816l-95.998 320h-111.618l-96-320h56.818zM237.809 320h36.382l28.8-96h-93.982l28.8 96z" />
+<glyph unicode="" d="M0 448v-448h512v448h-512zM192 160v96h128v-96h-128zM320 128v-96h-128v96h128zM320 384v-96h-128v96h128zM160 384v-96h-128v96h128zM32 256h128v-96h-128v96zM352 256h128v-96h-128v96zM352 288v96h128v-96h-128zM32 128h128v-96h-128v96zM352 32v96h128v-96h-128z" />
+<glyph unicode="" d="M0 256h512v-64h-512z" />
+<glyph unicode="" d="M0 32h288v-64h-288zM96 480h352v-64h-352zM138.694 64l102.344 392.082 61.925-16.164-98.125-375.918zM464.887-32l-64.887 64.887-64.887-64.887-31.113 31.113 64.887 64.887-64.887 64.887 31.113 31.113 64.887-64.887 64.887 64.887 31.113-31.113-64.887-64.887 64.887-64.887z" />
+<glyph unicode="" d="M384 25v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="" d="M384 377v-25h64v-32h-96v73l64 30v25h-64v32h96v-73zM338 352h-68l-94-94-94 94h-68l128-128-128-128h68l94 94 94-94h68l-128 128z" />
+<glyph unicode="" d="M352 32h128l32 64v-128h-192v107.107c65.556 28.242 112 98.581 112 180.893 0 107.216-78.799 191.133-176 191.133-97.203 0-176-83.916-176-191.133 0-82.312 46.443-152.651 112-180.893v-107.107h-192v128l32-64h128v16.295c-93.815 33.23-160 113.701-160 207.705 0 123.712 114.615 224 256 224 141.385 0 256-100.288 256-224 0-94.004-66.185-174.475-160-207.705v-16.295z" />
+<glyph unicode="" d="M256 480c-141.385 0-256-114.614-256-256 0-141.385 114.614-256 256-256 141.385 0 256 114.615 256 256 0 141.386-114.615 256-256 256zM256 8c-119.293 0-216 96.706-216 216 0 119.293 96.707 216 216 216 119.295 0 216-96.707 216-216 0-119.294-96.705-216-216-216zM192 320c0-17.673-14.327-32-32-32s-32 14.327-32 32 14.327 32 32 32 32-14.327 32-32zM384 320c0-17.673-14.326-32-32-32s-32 14.327-32 32 14.326 32 32 32 32-14.327 32-32zM256 154c70.537 0 131.344 28.766 159.231 61.596-10.436-85.61-78.144-151.596-159.231-151.596-81.059 0-148.749 66.013-159.222 151.584 27.893-32.823 88.693-61.584 159.222-61.584z" />
+<glyph unicode="" d="M128 448h256v-64h-256zM480 352h-448c-17.6 0-32-14.4-32-32v-160c0-17.6 14.398-32 32-32h96v-128h256v128h96c17.6 0 32 14.4 32 32v160c0 17.6-14.4 32-32 32zM352 32h-192v160h192v-160zM487.2 304c0-12.813-10.387-23.2-23.199-23.2-12.813 0-23.201 10.387-23.201 23.2s10.388 23.2 23.201 23.2c12.813 0 23.199-10.387 23.199-23.2z" />
+<glyph unicode="" d="M512 480v-192l-69.13 69.13-106-106-53.74 53.74 106 106-69.13 69.13zM122.87 410.87l106-106-53.74-53.74-106 106-69.13-69.13v192h192zM442.87 90.87l69.13 69.13v-192h-192l69.13 69.13-106 106 53.74 53.74zM228.87 143.13l-106-106 69.13-69.13h-192v192l69.13-69.13 106 106z" />
+<glyph unicode="" d="M64 352h64v-96h32v192c0 17.6-14.4 32-32 32h-64c-17.6 0-32-14.4-32-32v-192h32v96zM64 448h64v-64h-64v64zM480 448v32h-96c-17.601 0-32-14.4-32-32v-160c0-17.6 14.399-32 32-32h96v32h-96v160h96zM320 400v48c0 17.6-14.4 32-32 32h-96v-224h96c17.6 0 32 14.4 32 32v48c0 17.6-4.4 32-22 32 17.6 0 22 14.4 22 32zM288 288h-64v64h64v-64zM288 384h-64v64h64v-64zM416 192l-208-224-112 144 41 35 71-74 176 151z" />
+<glyph unicode="" d="M224 192h-96v64h96v96h64v-96h96v-64h-96v-96h-64zM512 160v-192h-512v192h64v-128h384v128z" />
+<glyph unicode="" d="M192 384h64v-32h-64zM288 384h64v-32h-64zM448 384v-128h-96v32h64v64h-32v32zM160 288h64v-32h-64zM256 288h64v-32h-64zM96 352v-64h32v-32h-64v128h96v-32zM192 192h64v-32h-64zM288 192h64v-32h-64zM448 192v-128h-96v32h64v64h-32v32zM160 96h64v-32h-64zM256 96h64v-32h-64zM96 160v-64h32v-32h-64v128h96v-32zM480 448h-448v-448h448v448zM512 480v0-512h-512v512h512z" />
+<glyph unicode="" d="M0 224h64v-32h-64zM96 224h96v-32h-96zM224 224h64v-32h-64zM320 224h96v-32h-96zM448 224h64v-32h-64zM440 480l8-224h-384l8 224h16l8-192h320l8 192zM72-32l-8 192h384l-8-192h-16l-8 160h-320l-8-160z" />
+<glyph unicode="" d="M288 448c123.712 0 224-100.288 224-224s-100.288-224-224-224v48c47.012 0 91.209 18.307 124.451 51.549 33.242 33.242 51.549 77.439 51.549 124.451 0 47.011-18.307 91.209-51.549 124.451-33.242 33.242-77.439 51.549-124.451 51.549-47.011 0-91.209-18.307-124.451-51.549-25.57-25.569-42.291-57.623-48.653-92.451h93.104l-112-128-112 128h82.285c15.53 108.551 108.869 192 221.715 192zM384 256v-64h-128v160h64v-96z" />
+<glyph unicode="" d="M353.94 237.674c18.749 22.271 30.060 51.004 30.060 82.326 0 70.58-57.421 128-128 128h-160v-448h192c70.579 0 128 57.421 128 128 0 46.478-24.899 87.248-62.060 109.674zM192 384h50.75c27.984 0 50.75-28.71 50.75-64s-22.766-64-50.75-64h-50.75v128zM271.5 64h-79.5v128h79.5c29.225 0 53-28.71 53-64s-23.775-64-53-64z" />
+<glyph unicode="" d="M448 448v-32h-64l-160-384h64v-32h-224v32h64l160 384h-64v32z" />
+<glyph unicode="" d="M352 448h64v-208c0-79.529-71.634-144-160-144-88.365 0-160 64.471-160 144v208h64v-208c0-20.083 9.119-39.352 25.677-54.253 18.448-16.602 43.423-25.747 70.323-25.747 26.9 0 51.875 9.145 70.323 25.747 16.558 14.901 25.677 34.17 25.677 54.253v208zM96 64h320v-64h-320z" />
+<glyph unicode="" d="M365.71 221.482c31.96-23.969 50.29-58.043 50.29-93.482s-18.33-69.513-50.29-93.482c-29.679-22.259-68.642-34.518-109.71-34.518-41.069 0-80.031 12.259-109.71 34.518-31.96 23.969-50.29 58.043-50.29 93.482h64c0-34.691 43.963-64 96-64s96 29.309 96 64c0 34.691-43.963 64-96 64-41.069 0-80.031 12.259-109.71 34.518-31.96 23.97-50.29 58.043-50.29 93.482 0 35.439 18.33 69.512 50.29 93.482 29.679 22.259 68.641 34.518 109.71 34.518 41.068 0 80.031-12.259 109.71-34.518 31.96-23.97 50.29-58.043 50.29-93.482h-64c0 34.691-43.963 64-96 64-52.037 0-96-29.309-96-64 0-34.691 43.963-64 96-64 41.068 0 80.031-12.259 109.71-34.518zM0 224h512v-32h-512z" />
+<glyph unicode="" d="M192 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112z" />
+<glyph unicode="" d="M224 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112zM32 256l128-112-128-112z" />
+<glyph unicode="" d="M128 448h256v-64h-64v-384h-64v384h-64v-384h-64v224c-61.856 0-112 50.144-112 112s50.144 112 112 112zM480 32l-128 112 128 112z" />
+<glyph unicode="" d="M416 352h-96v32l-96 96h-224v-384h192v-128h320v288l-96 96zM416 306.745l50.745-50.745h-50.745v50.745zM224 434.745l50.745-50.745h-50.745v50.745zM32 448h160v-96h96v-224h-256v320zM480 0h-256v96h96v224h64v-96h96v-224z" />
+<glyph unicode="" d="M384 352h32v-32h-32zM320 288h32v-32h-32zM320 224h32v-32h-32zM320 160h32v-32h-32zM256 224h32v-32h-32zM256 160h32v-32h-32zM192 160h32v-32h-32zM384 288h32v-32h-32zM384 224h32v-32h-32zM384 160h32v-32h-32zM384 96h32v-32h-32zM320 96h32v-32h-32zM256 96h32v-32h-32zM192 96h32v-32h-32zM128 96h32v-32h-32z" />
+<glyph unicode="" d="M64 208l144-144 240 240-64 64-176-176-80 80z" />
+<glyph unicode="" d="M464 416h-208l-16 32h-176l-32-64h448zM452.17 128h37.43l22.4 224h-512l32-320h242.040c-52.441 18.888-90.040 69.133-90.040 128 0 74.991 61.009 136 136 136 74.99 0 136-61.009 136-136 0-10.839-1.311-21.575-3.83-32zM501.498 23.125l-99.248 87.346c8.727 14.46 13.75 31.407 13.75 49.529 0 53.020-42.98 96-96 96s-96-42.98-96-96 42.98-96 96-96c18.122 0 35.069 5.023 49.529 13.75l87.346-99.248c11.481-13.339 31.059-14.070 43.503-1.626l2.746 2.746c12.444 12.444 11.713 32.022-1.626 43.503zM320 98c-34.242 0-62 27.758-62 62s27.758 62 62 62 62-27.758 62-62-27.758-62-62-62z" />
+<glyph unicode="" d="M256 224v-64h16l16 32h32v-128h-24v-32h112v32h-24v128h32l16-32h16v64zM416 320v80c0 8.8-7.2 16-16 16h-112v32c0 17.6-14.4 32-32 32h-64c-17.602 0-32-14.4-32-32v-32h-112c-8.801 0-16-7.2-16-16v-320c0-8.8 7.199-16 16-16h144v-96h320v352h-96zM192 447.943c0.017 0.019 0.036 0.039 0.057 0.057h63.884c0.021-0.018 0.041-0.038 0.059-0.057v-31.943h-64v31.943zM96 352v32h256v-32h-256zM480 0h-256v288h256v-288z" />
+</font></defs></svg>
\ No newline at end of file
--- /dev/null
+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0px;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000000;-moz-box-shadow:0 0 5px #000000;box-shadow:0 0 5px #000000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0px;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;*line-height:16px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-btn-small .mce-ico{font-family:'tinymce-small'}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1', this.innerHTML = this.currentStyle['-ie7-icon'].substr(1, 1) + ' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-insertdatetime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-pastetext{-ie7-icon:"\e035"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}
\ No newline at end of file
--- /dev/null
+.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:0 0;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:400;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container [unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:700;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,.3);box-shadow:0 3px 7px rgba(0,0,0,.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:700;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:700;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25) rgba(0,0,0,.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,.75);display:inline-block;;;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,silver);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(silver));background-image:-webkit-linear-gradient(top,#e6e6e6,silver);background-image:-o-linear-gradient(top,#e6e6e6,silver);background-image:linear-gradient(to bottom,#e6e6e6,silver);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,silver);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(silver));background-image:-webkit-linear-gradient(top,#e6e6e6,silver);background-image:-o-linear-gradient(top,#e6e6e6,silver);background-image:linear-gradient(to bottom,#e6e6e6,silver);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25) rgba(0,0,0,.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top,#069,#039);background-image:-webkit-gradient(linear,0 0,0 100%,from(#069),to(#039));background-image:-webkit-linear-gradient(top,#069,#039);background-image:-o-linear-gradient(top,#069,#039);background-image:linear-gradient(to bottom,#069,#039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;}.mce-btn-small i{line-height:20px;vertical-align:top;}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;;;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:0 0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;;;;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;;;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom,rgba(0,0,0,0),#000)}.mce-colorpicker-selector1{background:0 0;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid #000;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid #fff;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;;;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;;;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;;}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;;}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;;;text-shadow:0 1px 1px rgba(255,255,255,.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:0 0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px;}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;;;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;;;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url(img/loader.gif) no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:tinymce;src:url(fonts/tinymce.eot);src:url(fonts/tinymce.eot?#iefix) format('embedded-opentype'),url(fonts/tinymce.woff) format('woff'),url(fonts/tinymce.ttf) format('truetype'),url(fonts/tinymce.svg#tinymce) format('svg');font-weight:400;font-style:normal}@font-face{font-family:tinymce-small;src:url(fonts/tinymce-small.eot);src:url(fonts/tinymce-small.eot?#iefix) format('embedded-opentype'),url(fonts/tinymce-small.woff) format('woff'),url(fonts/tinymce-small.ttf) format('truetype'),url(fonts/tinymce-small.svg#tinymce) format('svg');font-weight:400;font-style:normal}.mce-ico{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}
\ No newline at end of file
--- /dev/null
+// 4.1.7 (2014-11-27)
+!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i<e.length;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;i<r.length;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;r<n.length;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;l<a.length-1;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/Env",d="tinymce/util/Tools",f="tinymce/dom/DomQuery",p="tinymce/html/Styles",h="tinymce/dom/TreeWalker",m="tinymce/dom/Range",g="tinymce/html/Entities",v="tinymce/dom/StyleSheetLoader",y="tinymce/dom/DOMUtils",b="tinymce/dom/ScriptLoader",C="tinymce/AddOnManager",x="tinymce/dom/RangeUtils",w="tinymce/NodeChange",_="tinymce/html/Node",E="tinymce/html/Schema",N="tinymce/html/SaxParser",k="tinymce/html/DomParser",S="tinymce/html/Writer",T="tinymce/html/Serializer",R="tinymce/dom/Serializer",A="tinymce/dom/TridentSelection",B="tinymce/util/VK",D="tinymce/dom/ControlSelection",L="tinymce/dom/BookmarkManager",H="tinymce/dom/Selection",M="tinymce/dom/ElementUtils",P="tinymce/fmt/Preview",O="tinymce/Formatter",I="tinymce/UndoManager",F="tinymce/EnterKey",z="tinymce/ForceBlocks",W="tinymce/EditorCommands",V="tinymce/util/URI",U="tinymce/util/Class",$="tinymce/util/EventDispatcher",q="tinymce/ui/Selector",j="tinymce/ui/Collection",Y="tinymce/ui/DomUtils",K="tinymce/ui/Control",G="tinymce/ui/Factory",X="tinymce/ui/KeyboardNavigation",J="tinymce/ui/Container",Q="tinymce/ui/DragHelper",Z="tinymce/ui/Scrollable",et="tinymce/ui/Panel",tt="tinymce/ui/Movable",nt="tinymce/ui/Resizable",rt="tinymce/ui/FloatPanel",it="tinymce/ui/Window",ot="tinymce/ui/MessageBox",at="tinymce/WindowManager",st="tinymce/util/Quirks",lt="tinymce/util/Observable",ct="tinymce/EditorObservable",ut="tinymce/Shortcuts",dt="tinymce/Editor",ft="tinymce/util/I18n",pt="tinymce/FocusManager",ht="tinymce/EditorManager",mt="tinymce/LegacyInput",gt="tinymce/util/XHR",vt="tinymce/util/JSON",yt="tinymce/util/JSONRequest",bt="tinymce/util/JSONP",Ct="tinymce/util/LocalStorage",xt="tinymce/Compat",wt="tinymce/ui/Layout",_t="tinymce/ui/AbsoluteLayout",Et="tinymce/ui/Tooltip",Nt="tinymce/ui/Widget",kt="tinymce/ui/Button",St="tinymce/ui/ButtonGroup",Tt="tinymce/ui/Checkbox",Rt="tinymce/ui/ComboBox",At="tinymce/ui/ColorBox",Bt="tinymce/ui/PanelButton",Dt="tinymce/ui/ColorButton",Lt="tinymce/util/Color",Ht="tinymce/ui/ColorPicker",Mt="tinymce/ui/Path",Pt="tinymce/ui/ElementPath",Ot="tinymce/ui/FormItem",It="tinymce/ui/Form",Ft="tinymce/ui/FieldSet",zt="tinymce/ui/FilePicker",Wt="tinymce/ui/FitLayout",Vt="tinymce/ui/FlexLayout",Ut="tinymce/ui/FlowLayout",$t="tinymce/ui/FormatControls",qt="tinymce/ui/GridLayout",jt="tinymce/ui/Iframe",Yt="tinymce/ui/Label",Kt="tinymce/ui/Toolbar",Gt="tinymce/ui/MenuBar",Xt="tinymce/ui/MenuButton",Jt="tinymce/ui/ListBox",Qt="tinymce/ui/MenuItem",Zt="tinymce/ui/Menu",en="tinymce/ui/Radio",tn="tinymce/ui/ResizeHandle",nn="tinymce/ui/Spacer",rn="tinymce/ui/SplitButton",on="tinymce/ui/StackLayout",an="tinymce/ui/TabPanel",sn="tinymce/ui/TextBox",ln="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function t(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function n(e,t){function n(){return!1}function r(){return!0}var i,o=t||{},l;for(i in e)s[i]||(o[i]=e[i]);if(o.target||(o.target=o.srcElement||document),e&&a.test(e.type)&&e.pageX===l&&e.clientX!==l){var c=o.target.ownerDocument||document,u=c.documentElement,d=c.body;o.pageX=e.clientX+(u&&u.scrollLeft||d&&d.scrollLeft||0)-(u&&u.clientLeft||d&&d.clientLeft||0),o.pageY=e.clientY+(u&&u.scrollTop||d&&d.scrollTop||0)-(u&&u.clientTop||d&&d.clientTop||0)}return o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function r(n,r,i){function o(){i.domLoaded||(i.domLoaded=!0,r(c))}function a(){("complete"===l.readyState||"interactive"===l.readyState&&l.body)&&(t(l,"readystatechange",a),o())}function s(){try{l.documentElement.doScroll("left")}catch(e){return void setTimeout(s,0)}o()}var l=n.document,c={type:"ready"};return i.domLoaded?void r(c):(l.addEventListener?"complete"===l.readyState?o():e(n,"DOMContentLoaded",o):(e(l,"readystatechange",a),l.documentElement.doScroll&&n.self===n.top&&s()),void e(n,"load",o))}function i(){function i(e,t){var n,r,i,o,a=s[t];if(n=a&&a[e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var a=this,s={},l,c,u,d,f;c=o+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,a.domLoaded=!1,a.events=s,a.bind=function(t,o,p,h){function m(e){i(n(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(t&&3!==t.nodeType&&8!==t.nodeType){for(t[c]?g=t[c]:(g=l++,t[c]=g,s[g]={}),h=h||t,o=o.split(" "),y=o.length;y--;)b=o[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),a.domLoaded&&"ready"===b&&"complete"==t.readyState?p.call(h,n({type:b})):(d||(C=f[b],C&&(x=function(e){var t,r;if(t=e.currentTarget,r=e.relatedTarget,r&&t.contains)r=t.contains(r);else for(;r&&r!==t;)r=r.parentNode;r||(e=n(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,i(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=n(e||_.event),e.type="focus"===e.type?"focusin":"focusout",i(e,g)}),v=s[g][b],v?"ready"===b&&a.domLoaded?p({type:b}):v.push({func:p,scope:h}):(s[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?r(t,x,a):e(t,C||b,x,w)));return t=v=0,p}},a.unbind=function(e,n,r){var i,o,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return a;if(i=e[c]){if(f=s[i],n){for(n=n.split(" "),l=n.length;l--;)if(d=n[l],o=f[d]){if(r)for(u=o.length;u--;)if(o[u].func===r){var p=o.nativeHandler,h=o.fakeName,m=o.capture;o=o.slice(0,u).concat(o.slice(u+1)),o.nativeHandler=p,o.fakeName=h,o.capture=m,f[d]=o}r&&0!==o.length||(delete f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture))}}else{for(d in f)o=f[d],t(e,o.fakeName||d,o.nativeHandler,o.capture);f={}}for(d in f)return a;delete s[i];try{delete e[c]}catch(g){e[c]=null}}return a},a.fire=function(e,t,r){var o;if(!e||3===e.nodeType||8===e.nodeType)return a;r=n(null,r),r.type=t,r.target=e;do o=e[c],o&&i(r,o),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!r.isPropagationStopped());return a},a.clean=function(e){var t,n,r=a.unbind;if(!e||3===e.nodeType||8===e.nodeType)return a;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return a},a.destroy=function(){s={}},a.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var o="mce-data-",a=/^(?:mouse|contextmenu)|click/,s={keyLocation:1,layerX:1,layerY:1,returnValue:1};return i.Event=new i,i.Event.bind(window,"ready",function(){}),i}),r(c,[],function(){function e(e,t,n,r){var i,o,a,s,l,c,d,p,h,m;if((t?t.ownerDocument||t:z)!==D&&B(t),t=t||D,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(H&&!r){if(i=vt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Z.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&x.getElementsByClassName)return Z.apply(n,t.getElementsByClassName(a)),n}if(x.qsa&&(!M||!M.test(e))){if(p=d=F,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(d=t.getAttribute("id"))?p=d.replace(bt,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+f(c[l]);h=yt.test(e)&&u(t.parentNode)||t,m=c.join(",")}if(m)try{return Z.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{d||t.removeAttribute("id")}}}return S(e.replace(st,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>w.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function u(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=V++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[F]||(t[F]={}),(s=l[r])&&s[0]===W&&s[1]===o)return c[2]=s[2];if(l[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;o>i;i++)e(t,n[i],r);return r}function g(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function v(e,t,n,i,o,a){return i&&!i[F]&&(i=v(i)),o&&!o[F]&&(o=v(o,a)),r(function(r,a,s,l){var c,u,d,f=[],p=[],h=a.length,v=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?v:g(v,f,e,s,l),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,l),i)for(c=g(b,p),i(c,[],s,l),u=c.length;u--;)(d=c[u])&&(b[p[u]]=!(y[p[u]]=d));if(r){if(o||e){if(o){for(c=[],u=b.length;u--;)(d=b[u])&&c.push(y[u]=d);o(null,b=[],c,l)}for(u=b.length;u--;)(d=b[u])&&(c=o?tt.call(r,d):f[u])>-1&&(r[c]=!(a[c]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),c=p(function(e){return tt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=w.relative[e[s].type])u=[p(h(u),n)];else{if(n=w.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!w.relative[e[r].type];r++);return v(s>1&&h(u),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(st,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}u.push(n)}return h(u)}function b(t,n){var i=n.length>0,o=t.length>0,a=function(r,a,s,l,c){var u,d,f,p=0,h="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",c),C=W+=null==y?1:Math.random()||.1,x=b.length;for(c&&(T=a!==D&&a);h!==x&&null!=(u=b[h]);h++){if(o&&u){for(d=0;f=t[d++];)if(f(u,a,s)){l.push(u);break}c&&(W=C)}i&&((u=!f&&u)&&p--,r&&m.push(u))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=J.call(l));v=g(v)}Z.apply(l,v),c&&!r&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return c&&(W=C,T=y),m};return i?r(a):a}var C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F="sizzle"+-new Date,z=window.document,W=0,V=0,U=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,K=1<<31,G={}.hasOwnProperty,X=[],J=X.pop,Q=X.push,Z=X.push,et=X.slice,tt=X.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},nt="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",rt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot="\\["+rt+"*("+it+")(?:"+rt+"*([*^$|!~]?=)"+rt+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+it+"))|)"+rt+"*\\]",at=":("+it+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ot+")*)|.*)\\)|)",st=new RegExp("^"+rt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+rt+"+$","g"),lt=new RegExp("^"+rt+"*,"+rt+"*"),ct=new RegExp("^"+rt+"*([>+~]|"+rt+")"+rt+"*"),ut=new RegExp("="+rt+"*([^\\]'\"]*?)"+rt+"*\\]","g"),dt=new RegExp(at),ft=new RegExp("^"+it+"$"),pt={ID:new RegExp("^#("+it+")"),CLASS:new RegExp("^\\.("+it+")"),TAG:new RegExp("^("+it+"|[*])"),ATTR:new RegExp("^"+ot),PSEUDO:new RegExp("^"+at),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+rt+"*(even|odd|(([+-]|)(\\d*)n|)"+rt+"*(?:([+-]|)"+rt+"*(\\d+)|))"+rt+"*\\)|)","i"),bool:new RegExp("^(?:"+nt+")$","i"),needsContext:new RegExp("^"+rt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+rt+"*((?:-\\d)?\\d*)"+rt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,mt=/^h\d$/i,gt=/^[^{]+\{\s*\[native \w/,vt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,yt=/[+~]/,bt=/'|\\/g,Ct=new RegExp("\\\\([\\da-f]{1,6}"+rt+"?|("+rt+")|.)","ig"),xt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(X=et.call(z.childNodes),z.childNodes),X[z.childNodes.length].nodeType}catch(wt){Z={apply:X.length?function(e,t){Q.apply(e,et.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},E=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=e.setDocument=function(e){var t,n=e?e.ownerDocument||e:z,r=n.defaultView;return n!==D&&9===n.nodeType&&n.documentElement?(D=n,L=n.documentElement,H=!E(n),r&&r!==r.top&&(r.addEventListener?r.addEventListener("unload",function(){B()},!1):r.attachEvent&&r.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=gt.test(n.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!n.getElementsByName||!n.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&H){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ct,xt);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ct,xt);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==Y?t.getElementsByTagName(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){return H?t.getElementsByClassName(e):void 0},P=[],M=[],(x.qsa=gt.test(n.querySelectorAll))&&(i(function(e){e.innerHTML="<select msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&M.push("[*^$]="+rt+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||M.push("\\["+rt+"*(?:value|"+nt+")"),e.querySelectorAll(":checked").length||M.push(":checked")}),i(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&M.push("name"+rt+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||M.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),M.push(",.*:")})),(x.matchesSelector=gt.test(O=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),P.push("!=",at)}),M=M.length&&new RegExp(M.join("|")),P=P.length&&new RegExp(P.join("|")),t=gt.test(L.compareDocumentPosition),I=t||gt.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return A=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&r||!x.sortDetached&&t.compareDocumentPosition(e)===r?e===n||e.ownerDocument===z&&I(z,e)?-1:t===n||t.ownerDocument===z&&I(z,t)?1:R?tt.call(R,e)-tt.call(R,t):0:4&r?-1:1)}:function(e,t){if(e===t)return A=!0,0;var r,i=0,o=e.parentNode,s=t.parentNode,l=[e],c=[t];if(!o||!s)return e===n?-1:t===n?1:o?-1:s?1:R?tt.call(R,e)-tt.call(R,t):0;if(o===s)return a(e,t);for(r=e;r=r.parentNode;)l.unshift(r);for(r=t;r=r.parentNode;)c.unshift(r);for(;l[i]===c[i];)i++;return i?a(l[i],c[i]):l[i]===z?-1:c[i]===z?1:0},n):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ut,"='$1']"),!(!x.matchesSelector||!H||P&&P.test(n)||M&&M.test(n)))try{var r=O.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&G.call(w.attrHandle,n.toLowerCase())?r(e,n,!H):t;return i!==t?i:x.attributes||!H?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},_=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:pt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ct,xt),e[3]=(e[3]||e[4]||e[5]||"").replace(Ct,xt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&dt.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ct,xt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=U[e+" "];return t||(t=new RegExp("(^|"+rt+")"+e+"("+rt+"|$)"))&&U(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],p=c[0]===W&&c[1],f=c[0]===W&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[W,p,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===W)f=c[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[W,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=tt.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(st,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ct,xt),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(t){return ft.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ct,xt).toLowerCase(),function(e){var n;do if(n=H?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return mt.test(e.nodeName)},input:function(e){return ht.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},w.pseudos.nth=w.pseudos.eq;for(C in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})w.pseudos[C]=s(C);for(C in{submit:!0,reset:!0})w.pseudos[C]=l(C);return d.prototype=w.filters=w.pseudos,w.setFilters=new d,N=e.tokenize=function(t,n){var r,i,o,a,s,l,c,u=$[t+" "];if(u)return n?0:u.slice(0);for(s=t,l=[],c=w.preFilter;s;){(!r||(i=lt.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ct.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(st," ")}),s=s.slice(r.length));for(a in w.filter)!(i=pt[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?e.error(t):$(t,l).slice(0)},k=e.compile=function(e,t){var n,r=[],i=[],o=q[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=y(t[n]),o[F]?r.push(o):i.push(o);o=q(e,b(i,r)),o.selector=e}return o},S=e.select=function(e,t,n,r){var i,o,a,s,l,c="function"==typeof e&&e,d=!r&&N(e=c.selector||e);if(n=n||[],1===d.length){if(o=d[0]=d[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&H&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ct,xt),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ct,xt),yt.test(o[0].type)&&u(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(c||k(e,d))(r,t,!H,n,yt.test(e)&&u(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(nt,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(u,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s,l;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=-1==t.indexOf("Trident/")||-1==t.indexOf("rv:")&&-1==e.appName.indexOf("Netscape")?!1:11,i=i||o,a=!r&&!o&&/Gecko/.test(t),s=-1!=t.indexOf("Mac"),l=/(iPad|iPhone)/.test(t);var c=!l||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:a,mac:s,iOS:l,contentEditable:c,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window,documentMode:i?document.documentMode||7:10}}),r(d,[u],function(e){function n(e){return null===e||e===t?"":(""+e).replace(v,"")}function r(e,n){return n?"array"==n&&y(e)?!0:typeof e==n:e!==t}function i(e){var t=e,n,r;if(!y(e))for(t=[],n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function o(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function a(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function s(e,t){var n=[];return a(e,function(e){n.push(t(e))}),n}function l(e,t){var n=[];return a(e,function(e){(!t||t(e))&&n.push(e)}),n}function c(e,t,n){var r=this,i,o,a,s,l,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),a=e[3].match(/(^|\.)(\w+)$/i)[2],o=r.createNS(e[3].replace(/\.\w+$/,""),n),!o[a]){if("static"==e[2])return o[a]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[a]));t[a]||(t[a]=function(){},c=1),o[a]=t[a],r.extend(o[a].prototype,t),e[5]&&(i=r.resolve(e[5]).prototype,s=e[5].match(/\.(\w+)$/i)[1],l=o[a],o[a]=c?function(){return i[s].apply(this,arguments)}:function(){return this.parent=i[s],l.apply(this,arguments)},o[a].prototype[a]=o[a],r.each(i,function(e,t){o[a].prototype[t]=i[t]}),r.each(t,function(e,t){i[t]?o[a].prototype[t]=function(){return this.parent=i[t],e.apply(this,arguments)}:t!=a&&(o[a].prototype[t]=e)})),r.each(t["static"],function(e,t){o[a][t]=e})}}function u(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function d(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function f(e,t,n,r){r=r||this,e&&(n&&(e=e[n]),a(e,function(e,i){return t.call(r,e,i,n)===!1?!1:void f(e,t,n,r)}))}function p(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function h(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function m(e,t){return!e||r(e,"array")?e:s(e.split(t||","),n)}function g(t){var n=e.cacheSuffix;return n&&(t+=(-1===t.indexOf("?")?"?":"&")+n),t}var v=/^\s*|\s*$/g,y=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:n,isArray:y,is:r,toArray:i,makeMap:o,each:a,map:s,grep:l,inArray:u,extend:d,create:c,walk:f,createNS:p,resolve:h,explode:m,_addCacheSuffix:g}}),r(f,[l,c,d,u],function(e,n,r,i){function o(e){return"undefined"!=typeof e}function a(e){return"string"==typeof e}function s(e){return e&&e==e.window}function l(e,t){var n,r,i;for(t=t||w,i=t.createElement("div"),n=t.createDocumentFragment(),i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return n}function c(e,t,n,r){var i;if(a(t))t=l(t,v(e[0]));else if(t.length&&!t.nodeType){if(t=f.makeArray(t),r)for(i=t.length-1;i>=0;i--)c(e,t[i],n,r);else for(i=0;i<t.length;i++)c(e,t[i],n,r);return e}if(t.nodeType)for(i=e.length;i--;)n.call(e[i],t);return e}function u(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function d(e,t,n){var r,i;return t=f(t)[0],e.each(function(){var e=this;n&&r==e.parentNode?i.appendChild(e):(r=e.parentNode,i=t.cloneNode(!1),e.parentNode.insertBefore(i,e),i.appendChild(e))}),e}function f(e,t){return new f.fn.init(e,t)}function p(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function h(e){return null===e||e===S?"":(""+e).replace(H,"")}function m(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,r,a)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,i,a)!==!1);i++);return e}function g(e,t){var n=[];return m(e,function(e,r){t(r,e)&&n.push(r)}),n}function v(e){return e?9==e.nodeType?e:e.ownerDocument:w}function y(e,n,r){var i=[],o=e[n];for("string"!=typeof r&&r instanceof f&&(r=r[0]);o&&9!==o.nodeType;){if(r!==t){if(o===r)break;if("string"==typeof r&&f(o).is(r))break}1===o.nodeType&&i.push(o),o=o[n]}return i}function b(e,n,r,i){var o=[];for(i instanceof f&&(i=i[0]);e;e=e[n])if(!r||e.nodeType===r){if(i!==t){if(e===i)break;if("string"==typeof i&&f(e).is(i))break}o.push(e)}return o}function C(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType==n)return e;return null}function x(e,t,n){m(n,function(n,r){e[n]=e[n]||{},e[n][t]=r})}var w=document,_=Array.prototype.push,E=Array.prototype.slice,N=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,k=e.Event,S,T=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),R=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),A={"for":"htmlFor","class":"className",readonly:"readOnly"},B={"float":"cssFloat"},D={},L={},H=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)_.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i<r.length;i++)n[i]=r[i];
+else _.apply(n,f.makeArray(e));return n},attr:function(e,t){var n=this,r;if("object"==typeof e)m(e,function(e,t){n.attr(e,t)});else{if(!o(t)){if(n[0]&&1===n[0].nodeType){if(r=D[e],r&&r.get)return r.get(n[0],e);if(R[e])return n.prop(e)?e:S;t=n[0].getAttribute(e,2),null===t&&(t=S)}return t}this.each(function(){var n;if(1===this.nodeType){if(n=D[e],n&&n.set)return void n.set(this,t);null===t?this.removeAttribute(e,2):this.setAttribute(e,t,2)}})}return n},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if(e=A[e]||e,"object"==typeof e)m(e,function(e,t){n.prop(e,t)});else{if(!o(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1==this.nodeType&&(this[e]=t)})}return n},css:function(e,t){function n(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})}function r(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})}var i=this,a,s;if("object"==typeof e)m(e,function(e,t){i.css(e,t)});else if(o(t))e=n(e),"number"!=typeof t||T[e]||(t+="px"),i.each(function(){var n=this.style;if(s=L[e],s&&s.set)return void s.set(this,t);try{this.style[B[e]||e]=t}catch(i){}(null===t||""===t)&&(n.removeProperty?n.removeProperty(r(e)):n.removeAttribute(e))});else{if(a=i[0],s=L[e],s&&s.get)return s.get(a);if(a.ownerDocument.defaultView)try{return a.ownerDocument.defaultView.getComputedStyle(a,null).getPropertyValue(r(e))}catch(l){return S}else if(a.currentStyle)return a.currentStyle[n(e)]}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],k.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(o(e)){n=t.length;try{for(;n--;)t[n].innerHTML=e}catch(r){f(t[n]).empty().append(e)}return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(o(e)){for(n=t.length;n--;)"innerText"in t[n]?t[n].innerText=e:t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return c(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return c(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)},!0)},before:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?c(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):e},appendTo:function(e){return f(e).append(this),this},prependTo:function(e){return f(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return d(this,e)},wrapAll:function(e){return d(this,e,!0)},wrapInner:function(e){return this.each(function(){f(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){f(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),f(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return"string"!=typeof e?n:(-1!==e.indexOf(" ")?m(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(n,r){var i,o;o=u(r,e),o!==t&&(i=r.className,o?r.className=h((" "+i+" ").replace(" "+e+" "," ")):r.className+=i?" "+e:e)}),n)},hasClass:function(e){return u(this[0],e)},each:function(e){return m(this,e)},on:function(e,t){return this.each(function(){k.bind(this,e,t)})},off:function(e,t){return this.each(function(){k.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?k.fire(this,e.type,e):k.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new f(E.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)f.find(e,this[t],r);return f(r)},filter:function(e){return f("function"==typeof e?g(this.toArray(),function(t,n){return e(n,t)}):f.filter(e,this.toArray()))},closest:function(e){var t=[];return e instanceof f&&(e=e[0]),this.each(function(n,r){for(;r;){if("string"==typeof e&&f(r).is(e)){t.push(r);break}if(r==e){t.push(r);break}r=r.parentNode}}),f(t)},offset:function(e){var t,n,r,i=0,o=0,a;return e?this.css(e):(t=this[0],t&&(n=t.ownerDocument,r=n.documentElement,t.getBoundingClientRect&&(a=t.getBoundingClientRect(),i=a.left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,o=a.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:o})},push:_,sort:[].sort,splice:[].splice},r.extend(f,{extend:r.extend,makeArray:function(e){return s(e)||e.nodeType?[e]:r.toArray(e)},inArray:p,isArray:r.isArray,each:m,trim:h,grep:g,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,contains:n.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!=t[r].nodeType&&t.splice(r,1);return t=1===t.length?f.find.matchesSelector(t[0],e)?[t[0]]:[]:f.find.matches(e,t)}}),m({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return y(e,"parentNode")},next:function(e){return C(e,"nextSibling",1)},prev:function(e){return C(e,"previousSibling",1)},children:function(e){return b(e.firstChild,"nextSibling",1)},contents:function(e){return r.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){f.fn[e]=function(n){var r=this,i=[];return r.each(function(){var e=t.call(i,this,n,i);e&&(f.isArray(e)?i.push.apply(i,e):i.push(e))}),this.length>1&&(i=f.unique(i),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),(0===e.indexOf("parents")||"prevUntil"===e)&&(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(D,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?S:t},size:function(e){var t=e.size;return 20===t?S:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?S:t}}),x(D,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(B["float"]="styleFloat",x(L,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=D,f.cssHooks=L,f}),r(p,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d,f,p="\ufeff";for(e=e||{},t&&(d=t.getValidStyles(),f=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+p).split(" "),l=0;l<u.length;l++)c[u[l]]=p+l,c[p+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t,n){var r,i,o,a;if(r=m[e+"-top"+t],r&&(i=m[e+"-right"+t],i&&(o=m[e+"-bottom"+t],o&&(a=m[e+"-left"+t])))){var s=[r,i,o,a];for(l=s.length-1;l--&&s[l]===s[l+1];);l>-1&&n||(m[e+t]=-1==l?s[0]:s.join(" "),delete m[e+"-top"+t],delete m[e+"-right"+t],delete m[e+"-bottom"+t],delete m[e+"-left"+t])}}function u(e){var t=m[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return m[e]=t[0],!0}}function d(e,t,n,r){u(t)&&u(n)&&u(r)&&(m[e]=m[t]+" "+m[n]+" "+m[r],delete m[t],delete m[n],delete m[r])}function f(e){return b=!0,c[e]}function p(e,t){return b&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function h(t,n,r,i,o,a){if(o=o||a)return o=p(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=p(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return C&&(n=C.call(x,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var m={},g,v,y,b,C=e.url_converter,x=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,f).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,f)});g=o.exec(t);){if(v=g[1].replace(a,"").toLowerCase(),y=g[2].replace(a,""),y=y.replace(/\\[0-9a-f]+/g,function(e){return String.fromCharCode(parseInt(e.substr(1),16))}),v&&y.length>0){if(!e.allow_script_urls&&("behavior"==v||/expression\s*\(|\/\*|\*\//.test(y)))continue;"font-weight"===v&&"700"===y?y="bold":("color"===v||"background-color"===v)&&(y=y.toLowerCase()),y=y.replace(r,n),y=y.replace(i,h),m[v]=b?p(y,!0):y}o.lastIndex=g.index+g[0].length}s("border","",!0),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),d("border","border-width","border-style","border-color"),"medium none"===m.border&&delete m.border,"none"===m["border-image"]&&delete m["border-image"]}return m},serialize:function(e,t){function n(t){var n,r,o,a;if(n=d[t])for(r=0,o=n.length;o>r;r++)t=n[r],a=e[t],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=f["*"],n&&n[e]?!1:(n=f[t],n&&n[e]?!1:!0)}var i="",o,a;if(t&&d)n("*"),n(t);else for(o in e)a=e[o],a!==s&&a.length>0&&(!f||r(o,t))&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(h,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(m,[d],function(e){function t(n){function r(){return M.createDocumentFragment()}function i(e,t){_(F,e,t)}function o(e,t){_(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function c(e){o(e.parentNode,j(e)+1)}function u(e){e?(H[U]=H[V],H[$]=H[W]):(H[V]=H[U],H[W]=H[$]),H.collapsed=F}function d(e){a(e),c(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=H[V],r=H[W],i=H[U],o=H[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,c=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,c):3===e?w(n,r,l,c):void 0}function h(){E(I)}function m(){return E(P)}function g(){return E(O)}function v(e){var t=this[V],r=this[W],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=H.extractContents();H.insertNode(e),e.appendChild(t),H.selectNode(e)}function b(){return q(new t(n),{startContainer:H[V],startOffset:H[W],endContainer:H[U],endOffset:H[$],collapsed:H.collapsed,commonAncestorContainer:H.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return H[V]==H[U]&&H[W]==H[$]}function w(e,t,r,i){var o,a,s,l,c,u;if(e==r)return t==i?0:i>t?-1:1;for(o=r;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=r;)o=o.parentNode;if(o){for(a=0,s=r.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=n.findCommonAncestor(e,r),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=r;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function _(e,t,r){var i,o;for(e?(H[V]=t,H[W]=r):(H[U]=t,H[$]=r),i=H[U];i.parentNode;)i=i.parentNode;for(o=H[V];o.parentNode;)o=o.parentNode;o==i?w(H[V],H[W],H[U],H[$])>0&&H.collapse(e):H.collapse(e),H.collapsed=x(),H.commonAncestorContainer=n.findCommonAncestor(H[V],H[U])}function E(e){var t,n=0,r=0,i,o,a,s,l,c;if(H[V]==H[U])return N(e);for(t=H[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==H[V])return k(t,e);++n}for(t=H[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==H[U])return S(t,e);++r}for(o=r-n,a=H[V];o>0;)a=a.parentNode,o--;for(s=H[U];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return T(a,s,e)}function N(e){var t,n,i,o,a,s,l,c,u;if(e!=I&&(t=r()),H[W]==H[$])return t;if(3==H[V].nodeType){if(n=H[V].nodeValue,i=n.substring(H[W],H[$]),e!=O&&(o=H[V],c=H[W],u=H[$]-H[W],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),H.collapse(F)),e==I)return;return i.length>0&&t.appendChild(M.createTextNode(i)),t}for(o=C(H[V],H[W]),a=H[$]-H[W];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=O&&H.collapse(F),t}function k(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-H[W],0>=a)return t!=O&&(H.setEndBefore(e),H.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=O&&(H.setEndBefore(e),H.collapse(z)),n}function S(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=H[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=O&&(H.setStartAfter(e),H.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,c,u;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,c=e.nextSibling;l>0;)u=c.nextSibling,i=D(c,n),o&&o.appendChild(i),c=u,--l;return i=R(t,n),o&&o.appendChild(i),n!=O&&(H.setStartAfter(e),H.collapse(F)),o}function R(e,t){var n=C(H[U],H[$]-1),r,i,o,a,s,l=n!=H[U];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(H[V],H[W]),r=n!=H[V],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,c;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=H[W],a=o.substring(l),s=o.substring(0,l)):(l=H[$],a=o.substring(0,l),s=o.substring(l)),i!=O&&(e.nodeValue=s),i==I)return;return c=n.clone(e,z),c.nodeValue=a,c}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==O?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var H=this,M=n.doc,P=0,O=1,I=2,F=!0,z=!1,W="startOffset",V="startContainer",U="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(H,{startContainer:M,startOffset:0,endContainer:M,endOffset:0,collapsed:F,commonAncestorContainer:M,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:c,collapse:u,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),H}return t.prototype.toString=function(){return this.toStringIE()},t}),r(g,[d],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(v,[d],function(e){return function(t,n){function r(e){t.getElementsByTagName("head")[0].appendChild(e)}function i(n,i,l){function c(){for(var e=y.passed,t=e.length;t--;)e[t]();y.status=2,y.passed=[],y.failed=[]}function u(){for(var e=y.failed,t=e.length;t--;)e[t]();y.status=3,y.passed=[],y.failed=[]}function d(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function f(e,t){e()||((new Date).getTime()-v<s?window.setTimeout(t,0):u())}function p(){f(function(){for(var e=t.styleSheets,n,r=e.length,i;r--;)if(n=e[r],i=n.ownerNode?n.ownerNode:n.owningElement,i&&i.id===m.id)return c(),!0},p)}function h(){f(function(){try{var e=g.sheet.cssRules;return c(),!!e}catch(t){}},h)}var m,g,v,y;if(n=e._addCacheSuffix(n),a[n]?y=a[n]:(y={passed:[],failed:[]},a[n]=y),i&&y.passed.push(i),l&&y.failed.push(l),1!=y.status){if(2==y.status)return void c();if(3==y.status)return void u();if(y.status=1,m=t.createElement("link"),m.rel="stylesheet",m.type="text/css",m.id="u"+o++,m.async=!1,m.defer=!1,v=(new Date).getTime(),"onload"in m&&!d())m.onload=p,m.onerror=u;else{if(navigator.userAgent.indexOf("Firefox")>0)return g=t.createElement("style"),g.textContent='@import "'+n+'"',h(),void r(g);p()}r(m),m.href=n}}var o=0,a={},s;n=n||{},s=n.maxLoadTime||5e3,this.load=i}}),r(y,[c,f,p,l,h,m,g,u,d,v],function(e,n,r,i,o,a,s,l,c,u){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!v||e.documentMode>=8,o.boxModel=!v||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new u(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var p=c.each,h=c.is,m=c.grep,g=c.trim,v=l.ie,y=/^([a-z0-9],?)+$/i,b=/^[ \t\r\n]*$/;return f.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(v&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!v||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),p(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),h(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(y.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=h(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"</"+e+">":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&e.attr("data-mce-style",null)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=v?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&e.attr("data-mce-style",null)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){p(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,c;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return c=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=c.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=c.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==f.DOM&&n===document){var o=f.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,f.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==f.DOM&&n===document?void f.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void p(e.split(","),function(e){var i;e=c._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),v&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),v?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="<br>"+t,r.removeChild(r.firstChild)}catch(i){n("<div>").html("<br>"+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType?e.outerHTML:n("<div>").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{this.outerHTML=t}catch(e){r.remove(n(this).html(t),!0)}})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return h(t,"array")&&(e=e.cloneNode(!0)),n&&p(m(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),p(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(c.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],p(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(v){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,c=0;if(e=e.firstChild){s=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null);do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(l=i[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!b.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:function(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n},split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=g(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return
+}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;return e&&t?(o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.replaceChild(n,t):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t):void 0},bind:function(e,t,n,r){var i=this;if(c.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(c.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},f.DOM=new f(document),f}),r(b,[y,d],function(e,t){function n(){function e(e,n){function i(){a.remove(l),s&&(s.onreadystatechange=s.onload=s=null),n()}function o(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var a=r,s,l;l=a.uniqueId(),s=document.createElement("script"),s.id=l,s.type="text/javascript",s.src=t._addCacheSuffix(e),"onreadystatechange"in s?s.onreadystatechange=function(){/loaded|complete/.test(s.readyState)&&i()}:s.onload=i,s.onerror=o,(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}var n=0,a=1,s=2,l={},c=[],u={},d=[],f=0,p;this.isDone=function(e){return l[e]==s},this.markDone=function(e){l[e]=s},this.add=this.load=function(e,t,r){var i=l[e];i==p&&(c.push(e),l[e]=n),t&&(u[e]||(u[e]=[]),u[e].push({func:t,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(c,e,t)},this.loadScripts=function(t,n,r){function c(e){i(u[e],function(e){e.func.call(e.scope)}),u[e]=p}var h;d.push({func:n,scope:r||this}),(h=function(){var n=o(t);t.length=0,i(n,function(t){return l[t]==s?void c(t):void(l[t]!=a&&(l[t]=a,f++,e(t,function(){l[t]=s,f--,c(t),h()})))}),f||(i(d,function(e){e.func.call(e.scope)}),d.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep;return n.ScriptLoader=new n,n}),r(C,[b,d],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",-1!=n.indexOf(","+i.substr(0,2)+","))i=i.substr(0,2);else if(-1==n.indexOf(","+i+","))return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&a.call(s?s:e)}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(x,[d,h],function(e,t){function n(e,t){var n=e.childNodes;return t--,t>n.length-1?t=n.length-1:0>t&&(t=0),n[t]||e}function r(e){this.walk=function(t,r){function o(e){var t;return t=e[0],3===t.nodeType&&t===c&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===f&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function a(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function s(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function l(e,t,n){var i=n?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=a(g==e?g:g[i],i),y.length&&(n||y.reverse(),r(o(y)))}var c=t.startContainer,u=t.startOffset,d=t.endContainer,f=t.endOffset,p,h,m,g,v,y,b;if(b=e.select("td.mce-item-selected,th.mce-item-selected"),b.length>0)return void i(b,function(e){r([e])});if(1==c.nodeType&&c.hasChildNodes()&&(c=c.childNodes[u]),1==d.nodeType&&d.hasChildNodes()&&(d=n(d,f)),c==d)return r(o([c]));for(p=e.findCommonAncestor(c,d),g=c;g;g=g.parentNode){if(g===d)return l(c,p,!0);if(g===p)break}for(g=d;g;g=g.parentNode){if(g===c)return l(d,p);if(g===p)break}h=s(c,p)||c,m=s(d,p)||d,l(c,h,!0),y=a(h==c?h:h.nextSibling,"nextSibling",m==d?m.nextSibling:m),y.length&&r(o(y)),l(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&r<n.nodeValue.length&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r<n.nodeValue.length&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&o<i.nodeValue.length&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}},this.normalize=function(n){function r(r){function a(n,r){for(var i=new t(n,e.getParent(n.parentNode,e.isBlock)||f);n=i[r?"prev":"next"]();)if("BR"===n.nodeName)return!0}function s(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function l(n,r){var a,s,l;if(r=r||c,l=e.getParent(r.parentNode,e.isBlock)||f,n&&"BR"==r.nodeName&&g&&e.isEmpty(l))return c=r.parentNode,u=e.nodeIndex(r),void(i=!0);for(a=new t(r,l);p=a[n?"prev":"next"]();){if("false"===e.getContentEditableParent(p))return;if(3===p.nodeType&&p.nodeValue.length>0)return c=p,u=n?p.nodeValue.length:0,void(i=!0);if(e.isBlock(p)||h[p.nodeName.toLowerCase()])return;s=p}o&&s&&(c=s,i=!0,u=0)}var c,u,d,f=e.getRoot(),p,h,m,g;if(c=n[(r?"start":"end")+"Container"],u=n[(r?"start":"end")+"Offset"],g=1==c.nodeType&&u===c.childNodes.length,h=e.schema.getNonEmptyElements(),m=r,1==c.nodeType&&u>c.childNodes.length-1&&(m=!1),9===c.nodeType&&(c=e.getRoot(),u=0),c===f){if(m&&(p=c.childNodes[u>0?u-1:0],p&&(h[p.nodeName]||"TABLE"==p.nodeName)))return;if(c.hasChildNodes()&&(u=Math.min(!m&&u>0?u-1:u,c.childNodes.length-1),c=c.childNodes[u],u=0,c.hasChildNodes()&&!/TABLE/.test(c.nodeName))){p=c,d=new t(c,f);do{if(3===p.nodeType&&p.nodeValue.length>0){u=m?0:p.nodeValue.length,c=p,i=!0;break}if(h[p.nodeName.toLowerCase()]){u=e.nodeIndex(p),c=p.parentNode,"IMG"!=p.nodeName||m||u++,i=!0;break}}while(p=m?d.next():d.prev())}}o&&(3===c.nodeType&&0===u&&l(!0),1===c.nodeType&&(p=c.childNodes[u],p||(p=c.childNodes[u-1]),!p||"BR"!==p.nodeName||s(p,"A")||a(p)||a(p,!0)||l(!0,p))),m&&!o&&3===c.nodeType&&u===c.nodeValue.length&&l(!1),i&&n["set"+(r?"Start":"End")](c,u)}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}var i=e.each;return r.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},r}),r(w,[x],function(e){return function(t){function n(e){var n,r;if(r=t.$(e).parentsUntil(t.getBody()).add(e),r.length===i.length){for(n=r.length;n>=0&&r[n]===i[n];n--);if(-1===n)return i=r,!0}return i=r,!1}var r,i=[];"onselectionchange"in t.getDoc()||t.on("NodeChange Click MouseUp KeyUp Focus",function(n){var i,o;i=t.selection.getRng(),o={startContainer:i.startContainer,startOffset:i.startOffset,endContainer:i.endContainer,endOffset:i.endOffset},"nodechange"!=n.type&&e.compareRanges(o,r)||t.fire("SelectionChange"),r=o}),t.on("contextmenu",function(){t.fire("SelectionChange")}),t.on("SelectionChange",function(){var e=t.selection.getStart(!0);t.selection.isCollapsed()||n(e)||!t.dom.isChildOf(e,t.getBody())||t.nodeChanged({selectionChange:!0})}),t.on("MouseUp",function(e){e.isDefaultPrevented()||setTimeout(function(){t.nodeChanged()},0)}),this.nodeChanged=function(e){var n=t.selection,r,i,o;t.initialized&&n&&!t.settings.disable_nodechange&&!t.settings.readonly&&(o=t.getBody(),r=n.getStart()||o,r=r.ownerDocument!=t.getDoc()?t.getBody():r,"IMG"==r.nodeName&&n.isCollapsed()&&(r=r.parentNode),i=[],t.dom.getParent(r,function(e){return e===o?!0:void i.push(e)}),e=e||{},e.element=r,e.parents=i,t.fire("NodeChange",e))}}}),r(_,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(E,[d],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e,t){var n={},r,i;for(r=0,i=e.length;i>r;r++)n[e[r]]=t||{};return n}var s,c,u,d=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),c=3;c<d.length;c++)"string"==typeof d[c]&&(d[c]=t(d[c])),r.push.apply(r,d[c]);for(e=t(e),s=e.length;s--;)u=[].concat(l,t(n)),a[e[s]]={attributes:i(u),attributesOrder:u,children:i(r,o)}}function r(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},l,c,u,d,f,p;return i[e]?i[e]:(l=t("id accesskey class dir lang style tabindex title"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(l.push.apply(l,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(l.push("xml:lang"),p=t("acronym applet basefont big font strike tt"),u.push.apply(u,p),s(p,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),s(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src srcset alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",d,"track source"),n("picture","","img source"),n("source","src srcset type media sizes"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(r("script","language xml:space"),r("style","xml:space"),r("object","declare classid code codebase codetype archive standby align border hspace vspace"),r("embed","align name hspace vspace"),r("param","valuetype type"),r("a","charset name rev shape coords"),r("br","clear"),r("applet","codebase archive code object alt name width height align hspace vspace"),r("img","name longdesc align border hspace vspace"),r("iframe","longdesc frameborder marginwidth marginheight scrolling align"),r("font basefont","size color face"),r("input","usemap align"),r("select","onchange"),r("textarea"),r("h1 h2 h3 h4 h5 h6 div p legend caption","align"),r("ul","type compact"),r("li","type"),r("ol dl menu dir","compact"),r("pre","width xml:space"),r("hr","align noshade size width"),r("isindex","prompt"),r("table","summary width frame rules cellspacing cellpadding align bgcolor"),r("col","width align char charoff valign"),r("colgroup","width align char charoff valign"),r("thead","align char charoff valign"),r("tr","align char charoff valign bgcolor"),r("th","axis align char charoff valign nowrap bgcolor width height"),r("form","accept"),r("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),r("tfoot","align char charoff valign"),r("tbody","align char charoff valign"),r("area","nohref"),r("body","background bgcolor text link vlink alink")),"html4"!=e&&(r("input button select textarea","autofocus"),r("input textarea","placeholder"),r("a","download"),r("link script img","crossorigin"),r("iframe","sandbox seamless allowfullscreen")),s(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,i[e]=a,a)}function r(e,t){var n;return e&&(n={},"string"==typeof e&&(e={"*":e}),s(e,function(e,r){n[r]="map"==t?a(e,/[, ]/):c(e,/[, ]/)})),n}var i={},o={},a=e.makeMap,s=e.each,l=e.extend,c=e.explode,u=e.inArray;return function(e){function o(t,n,r){var o=e[t];return o?o=a(o,/[, ]/,a(o.toUpperCase(),/[, ]/)):(o=i[t],o||(o=a(n," ",a(n.toUpperCase()," ")),o=l(o,r),i[t]=o)),o}function d(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function f(e){var n,r,i,o,s,l,c,f,p,h,m,g,v,b,x,w,_,E,N,k=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,S=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),y["@"]&&(w=y["@"].attributes,_=y["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=k.exec(e[n])){if(b=s[1],p=s[2],x=s[3],f=s[5],g={},v=[],l={attributes:g,attributesOrder:v},"#"===b&&(l.paddEmpty=!0),"-"===b&&(l.removeEmpty=!0),"!"===s[4]&&(l.removeEmptyAttrs=!0),w){for(E in w)g[E]=w[E];v.push.apply(v,_)}if(f)for(f=t(f,"|"),i=0,o=f.length;o>i;i++)if(s=S.exec(f[i])){if(c={},m=s[1],h=s[2].replace(/::/g,":"),b=s[3],N=s[4],"!"===m&&(l.attributesRequired=l.attributesRequired||[],l.attributesRequired.push(h),c.required=!0),"-"===m){delete g[h],v.splice(u(v,h),1);continue}b&&("="===b&&(l.attributesDefault=l.attributesDefault||[],l.attributesDefault.push({name:h,value:N}),c.defaultValue=N),":"===b&&(l.attributesForced=l.attributesForced||[],l.attributesForced.push({name:h,value:N}),c.forcedValue=N),"<"===b&&(c.validValues=a(N,"?"))),T.test(h)?(l.attributePatterns=l.attributePatterns||[],c.pattern=d(h),l.attributePatterns.push(c)):(g[h]||v.push(h),g[h]=c)}w||"@"!=p||(w=g,_=v),x&&(l.outputName=p,y[x]=l),T.test(p)?(l.pattern=d(p),C.push(l)):y[p]=l}}function p(e){y={},C=[],f(e),s(_,function(e,t){b[t]=e.children})}function h(e){var n=/^(~)?(.+)$/;e&&(i.text_block_elements=i.block_elements=null,s(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",o=t[2];if(b[o]=b[i],L[o]=i,r||(R[o.toUpperCase()]={},R[o]={}),!y[o]){var a=y[i];a=l({},a),delete a.removeEmptyAttrs,delete a.removeEmpty,y[o]=a}s(b,function(e,t){e[i]&&(b[t]=e=l({},b[t]),e[o]=e[i])})}))}function m(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&s(t(e,","),function(e){var r=n.exec(e),i,o;r&&(o=r[1],i=o?b[r[2]]:b[r[2]]={"#comment":{}},i=b[r[2]],s(t(r[3],"|"),function(e){"-"===o?(b[r[2]]=i=l({},b[r[2]]),delete i[e]):i[e]={}}))})}function g(e){var t=y[e],n;if(t)return t;for(n=C.length;n--;)if(t=C[n],t.pattern.test(e))return t}var v=this,y={},b={},C=[],x,w,_,E,N,k,S,T,R,A,B,D,L={},H={};e=e||{},_=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),x=r(e.valid_styles),w=r(e.invalid_styles,"map"),T=r(e.valid_classes,"map"),E=o("whitespace_elements","pre script noscript style textarea video audio iframe object"),N=o("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),k=o("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),S=o("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=o("non_empty_elements","td th iframe video audio object script",k),B=o("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),R=o("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup",B),D=o("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),s((e.special||"script noscript style textarea").split(" "),function(e){H[e]=new RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?p(e.valid_elements):(s(_,function(e,t){y[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},b[t]=e.children}),"html5"!=e.schema&&s(t("strong/b em/i"),function(e){e=t(e,"/"),y[e[1]].outputName=e[0]}),y.img.attributesDefault=[{name:"alt",value:""}],s(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){y[e]&&(y[e].removeEmpty=!0)}),s(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){y[e].paddEmpty=!0}),s(t("span"),function(e){y[e].removeEmptyAttrs=!0})),h(e.custom_elements),m(e.valid_children),f(e.extended_valid_elements),m("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&s(c(e.invalid_elements),function(e){y[e]&&delete y[e]}),g("span")||f("span[!data-mce-type|*]"),v.children=b,v.getValidStyles=function(){return x},v.getInvalidStyles=function(){return w},v.getValidClasses=function(){return T},v.getBoolAttrs=function(){return S},v.getBlockElements=function(){return R},v.getTextBlockElements=function(){return B},v.getTextInlineElements=function(){return D},v.getShortEndedElements=function(){return k},v.getSelfClosingElements=function(){return N},v.getNonEmptyElements=function(){return A},v.getWhiteSpaceElements=function(){return E},v.getSpecialElements=function(){return H},v.isValidChild=function(e,t){var n=b[e];return!(!n||!n[t])},v.isValid=function(e,t){var n,r,i=g(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},v.getElementRule=g,v.getCustomElements=function(){return L},v.addValidElements=f,v.setValidElements=p,v.addCustomElements=h,v.addValidChildren=m,v.elements=y}}),r(N,[E,g,d],function(e,t,n){function r(e,t,n){var r=1,i,o,a,s;for(s=e.getShortEndedElements(),a=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,a.lastIndex=i=n;o=a.exec(t);){if(i=a.lastIndex,"/"===o[1])r--;else if(!o[1]){if(o[2]in s)continue;r++}if(0===r)break}return i}function i(i,a){function s(){}var l=this;i=i||{},l.schema=a=a||new e,i.fix_self_closing!==!1&&(i.fix_self_closing=!0),o("comment cdata text start end pi doctype".split(" "),function(e){e&&(l[e]=i[e]||s)}),l.parse=function(e){function o(e){var t,n;for(t=p.length;t--&&p[t].name!==e;);if(t>=0){for(n=p.length-1;n>=t;n--)e=p[n],e.valid&&l.end(e.name);p.length=t}}function s(e,t,n,r,o){var a,s,l=/[\s\u0000-\u001F]+/g;if(t=t.toLowerCase(),n=t in x?t:z(n||r||o||""),_&&!y&&0!==t.indexOf("data-")){if(a=T[t],!a&&R){for(s=R.length;s--&&(a=R[s],!a.pattern.test(t)););-1===s&&(a=null)}if(!a)return;if(a.validValues&&!(n in a.validValues))return}if(V[t]&&!i.allow_script_urls){var c=n.replace(l,"");try{c=decodeURIComponent(c)}catch(u){c=unescape(c)}if(U.test(c))return;if(!i.allow_html_data_urls&&$.test(c)&&!/^data:image\//i.test(c))return}h.map[t]=n,h.push({name:t,value:n})}var l=this,c,u=0,d,f,p=[],h,m,g,v,y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F=0,z=t.decode,W,V=n.makeMap("src,href,data,background,formaction,poster"),U=/((java|vb)script|mhtml):/i,$=/^data:/i;for(M=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-_\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),P=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,C=a.getShortEndedElements(),H=i.self_closing_elements||a.getSelfClosingElements(),x=a.getBoolAttrs(),_=i.validate,b=i.remove_internals,W=i.fix_self_closing,O=a.getSpecialElements();c=M.exec(e);){if(u<c.index&&l.text(z(e.substr(u,c.index-u))),d=c[6])d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),o(d);else if(d=c[7]){if(d=d.toLowerCase(),":"===d.charAt(0)&&(d=d.substr(1)),w=d in C,W&&H[d]&&p.length>0&&p[p.length-1].name===d&&o(d),!_||(E=a.getElementRule(d))){if(N=!0,_&&(T=E.attributes,R=E.attributePatterns),(S=c[8])?(y=-1!==S.indexOf("data-mce-type"),y&&b&&(N=!1),h=[],h.map={},S.replace(P,s)):(h=[],h.map={}),_&&!y){if(A=E.attributesRequired,B=E.attributesDefault,D=E.attributesForced,L=E.removeEmptyAttrs,L&&!h.length&&(N=!1),D)for(m=D.length;m--;)k=D[m],v=k.name,I=k.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I});if(B)for(m=B.length;m--;)k=B[m],v=k.name,v in h.map||(I=k.value,"{$uid}"===I&&(I="mce_"+F++),h.map[v]=I,h.push({name:v,value:I}));if(A){for(m=A.length;m--&&!(A[m]in h.map););-1===m&&(N=!1)}if(k=h.map["data-mce-bogus"]){if("all"===k){u=r(a,e,M.lastIndex),M.lastIndex=u;continue}N=!1}}N&&l.start(d,h,w)}else N=!1;if(f=O[d]){f.lastIndex=u=c.index+c[0].length,(c=f.exec(e))?(N&&(g=e.substr(u,c.index-u)),u=c.index+c[0].length):(g=e.substr(u),u=e.length),N&&(g.length>0&&l.text(g,!0),l.end(d)),M.lastIndex=u;continue}w||(S&&S.indexOf("/")==S.length-1?N&&l.end(d):p.push({name:d,valid:N}))}else(d=c[1])?(">"===d.charAt(0)&&(d=" "+d),i.allow_conditional_comments||"[if"!==d.substr(0,3)||(d=" "+d),l.comment(d)):(d=c[2])?l.cdata(d):(d=c[3])?l.doctype(d):(d=c[4])&&l.pi(d,c[5]);u=c.index+c[0].length}for(u<e.length&&l.text(z(e.substr(u))),m=p.length-1;m>=0;m--)d=p[m],d.valid&&l.end(d.name)}}var o=n.each;return i.findEndTag=r,i}),r(k,[_,E,N,d],function(e,t,n,r){var i=r.makeMap,o=r.each,a=r.explode,s=r.extend;return function(r,l){function c(t){var n,r,o,a,s,c,d,f,p,h,m,g,v,y;for(m=i("tr,td,th,tbody,thead,tfoot,table"),h=l.getNonEmptyElements(),g=l.getTextBlockElements(),n=0;n<t.length;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],o=r.parent;o&&!l.isValidChild(o.name,r.name)&&!m[o.name];o=o.parent)a.push(o);if(o&&a.length>1){for(a.reverse(),s=c=u.filterNode(a[0].clone()),p=0;p<a.length-1;p++){for(l.isValidChild(c.name,a[p].name)?(d=u.filterNode(a[p].clone()),c.append(d)):d=c,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,d.append(f),f=y;c=d}s.isEmpty(h)?o.insert(r,a[0],!0):(o.insert(s,a[0],!0),o.insert(r,s)),o=a[0],(o.isEmpty(h)||o.firstChild===o.lastChild&&"br"===o.firstChild.name)&&o.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(u.filterNode(new e("ul",1)));continue}l.isValidChild(r.parent.name,"div")&&l.isValidChild("div",r.name)?r.wrap(u.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var u=this,d={},f=[],p={},h={};r=r||{},r.validate="validate"in r?r.validate:!0,r.root_name=r.root_name||"body",u.schema=l=l||new t,u.filterNode=function(e){var t,n,r;n in d&&(r=p[n],r?r.push(e):p[n]=[e]),t=f.length;for(;t--;)n=f[t].name,n in e.attributes.map&&(r=h[n],r?r.push(e):h[n]=[e]);return e},u.addNodeFilter=function(e,t){o(a(e),function(e){var n=d[e];n||(d[e]=n=[]),n.push(t)})},u.addAttributeFilter=function(e,t){o(a(e),function(e){var n;for(n=0;n<f.length;n++)if(f[n].name===e)return void f[n].callbacks.push(t);f.push({name:e,callbacks:[t]})})},u.parse=function(t,o){function a(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(R,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(D,"")))}var t=y.firstChild,n,i;if(l.isValidChild(y.name,I.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!T[t.name]&&!t.attr("data-mce-type")?i?i.append(t):(i=u(I,1),i.attr(r.forced_root_block_attrs),y.insert(i,t),i.append(t)):(e(i),i=null),t=n;e(i)}}function u(t,n){var r=new e(t,n),i;return t in d&&(i=p[t],i?i.push(r):p[t]=[r]),r}function m(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(D,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function g(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var v,y,b,C,x,w,_,E,N,k,S,T,R,A=[],B,D,L,H,M,P,O,I;if(o=o||{},p={},h={},T=s(i("script,style,head,html,body,title,meta,param"),l.getBlockElements()),O=l.getNonEmptyElements(),P=l.children,S=r.validate,I="forced_root_block"in o?o.forced_root_block:r.forced_root_block,M=l.getWhiteSpaceElements(),R=/^[ \t\r\n]+/,D=/[ \t\r\n]+$/,L=/[ \t\r\n]+/g,H=/^[ \t\r\n]+$/,v=new n({validate:S,allow_script_urls:r.allow_script_urls,allow_conditional_comments:r.allow_conditional_comments,self_closing_elements:g(l.getSelfClosingElements()),cdata:function(e){b.append(u("#cdata",4)).value=e},text:function(e,t){var n;B||(e=e.replace(L," "),b.lastChild&&T[b.lastChild.name]&&(e=e.replace(R,""))),0!==e.length&&(n=u("#text",3),n.raw=!!t,b.append(n).value=e)},comment:function(e){b.append(u("#comment",8)).value=e},pi:function(e,t){b.append(u(e,7)).value=t,m(b)},doctype:function(e){var t;t=b.append(u("#doctype",10)),t.value=e,m(b)},start:function(e,t,n){var r,i,o,a,s;if(o=S?l.getElementRule(e):{}){for(r=u(o.outputName||e,1),r.attributes=t,r.shortEnded=n,b.append(r),s=P[b.name],s&&P[r.name]&&!s[r.name]&&A.push(r),i=f.length;i--;)a=f[i].name,a in t.map&&(N=h[a],N?N.push(r):h[a]=[r]);T[e]&&m(r),n||(b=r),!B&&M[e]&&(B=!0)}},end:function(t){var n,r,i,o,a;if(r=S?l.getElementRule(t):{}){if(T[t]&&!B){if(n=b.firstChild,n&&3===n.type)if(i=n.value.replace(R,""),i.length>0)n.value=i,n=n.next;else for(o=n.next,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.next,(0===i.length||H.test(i))&&(n.remove(),n=o),n=o;if(n=b.lastChild,n&&3===n.type)if(i=n.value.replace(D,""),i.length>0)n.value=i,n=n.prev;else for(o=n.prev,n.remove(),n=o;n&&3===n.type;)i=n.value,o=n.prev,(0===i.length||H.test(i))&&(n.remove(),n=o),n=o}if(B&&M[t]&&(B=!1),(r.removeEmpty||r.paddEmpty)&&b.isEmpty(O))if(r.paddEmpty)b.empty().append(new e("#text","3")).value="\xa0";else if(!b.attributes.map.name&&!b.attributes.map.id)return a=b.parent,T[b.name]?b.empty().remove():b.unwrap(),void(b=a);
+b=b.parent}}},l),y=b=new e(o.context||r.root_name,11),v.parse(t),S&&A.length&&(o.context?o.invalid=!0:c(A)),I&&("body"==y.name||o.isRootContent)&&a(),!o.invalid){for(k in p){for(N=d[k],C=p[k],_=C.length;_--;)C[_].parent||C.splice(_,1);for(x=0,w=N.length;w>x;x++)N[x](C,k,o)}for(x=0,w=f.length;w>x;x++)if(N=f[x],N.name in h){for(C=h[N.name],_=C.length;_--;)C[_].parent||C.splice(_,1);for(_=0,E=N.callbacks.length;E>_;_++)N.callbacks[_](C,N.name,o)}}return y},r.remove_trailing_brs&&u.addNodeFilter("br",function(t){var n,r=t.length,i,o=s({},l.getBlockElements()),a=l.getNonEmptyElements(),c,u,d,f,p,h;for(o.body=1,n=0;r>n;n++)if(i=t[n],c=i.parent,o[i.parent.name]&&i===c.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),c.isEmpty(a)&&(p=l.getElementRule(c.name),p&&(p.removeEmpty?c.remove():p.paddEmpty&&(c.empty().append(new e("#text",3)).value="\xa0"))))}else{for(u=i;c&&c.firstChild===u&&c.lastChild===u&&(u=c,!o[c.name]);)c=c.parent;u===c&&(h=new e("#text",3),h.value="\xa0",i.replace(h))}}),r.allow_html_in_named_anchor||u.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}}),r.validate&&l.getValidClasses()&&u.addAttributeFilter("class",function(e){for(var t=e.length,n,r,i,o,a,s=l.getValidClasses(),c,u;t--;){for(n=e[t],r=n.attr("class").split(" "),a="",i=0;i<r.length;i++)o=r[i],u=!1,c=s["*"],c&&c[o]&&(u=!0),c=s[n.name],u||!c||c[o]||(u=!0),u&&(a&&(a+=" "),a+=o);a.length||(a=null),n.attr("class",a)}})}}),r(S,[g,d],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(T,[S,E],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},m=r.getElementRule(e.name),p=0,h=m.attributesOrder.length;h>p;p++)u=m.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,h=c.length;h>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(R,[y,k,g,T,_,E,u,d],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n=e.length,r;n--;)r=e[n],r.attr("tabindex",r.attributes.map["data-mce-tabindex"]),r.attr(t,null)}),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class"),r&&(r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null))}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o,a;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(a=i.attr("type"),a&&i.attr("type","mce-no/type"==a?null:a.replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,h,m;return a.ie&&s.select("script,style,select,map").length>0?(m=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,m)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),h=new r(e,d),n.content=h.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(A,[],function(){function e(e){function t(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function n(){function n(e){var n=t(o,e),r,i,s=0,l,c,u;if(r=n.node,i=n.offset,n.inside&&!r.hasChildNodes())return void a[e?"setStart":"setEnd"](r,0);if(i===c)return void a[e?"setStartBefore":"setEndAfter"](r);if(n.position<0){if(l=n.inside?r.firstChild:r.nextSibling,!l)return void a[e?"setStartAfter":"setEndAfter"](r);if(!i)return void(3==l.nodeType?a[e?"setStart":"setEnd"](l,0):a[e?"setStartBefore":"setEndBefore"](l));for(;l;){if(3==l.nodeType&&(u=l.nodeValue,s+=u.length,s>=i)){r=l,s-=i,s=u.length-s;break}l=l.nextSibling}}else{if(l=r.previousSibling,!l)return a[e?"setStartBefore":"setEndBefore"](r);if(!i)return void(3==r.nodeType?a[e?"setStart":"setEnd"](l,r.nodeValue.length):a[e?"setStartAfter":"setEndAfter"](l));for(;l;){if(3==l.nodeType&&(s+=l.nodeValue.length,s>=i)){r=l,s-=i;break}l=l.previousSibling}}a[e?"setStart":"setEnd"](r,s)}var o=e.getRng(),a=i.createRng(),s,l,c,u,d;if(s=o.item?o.item(0):o.parentElement(),s.ownerDocument!=i.doc)return a;if(l=e.isCollapsed(),o.item)return a.setStart(s.parentNode,i.nodeIndex(s)),a.setEnd(a.startContainer,a.startOffset+1),a;try{n(!0),l||n()}catch(f){if(-2147024809!=f.number)throw f;d=r.getBookmark(2),c=o.duplicate(),c.collapse(!0),s=c.parentElement(),l||(c=o.duplicate(),c.collapse(!1),u=c.parentElement(),u.innerHTML=u.innerHTML),s.innerHTML=s.innerHTML,r.moveToBookmark(d),o=e.getRng(),n(!0),l||n()}return a}var r=this,i=e.dom,o=!1;this.getBookmark=function(n){function r(e){var t,n,r,o,a=[];for(t=e.parentNode,n=i.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,o=r.length;o--;)if(e===r[o]){a.push(o);break}e=t,t=t.parentNode}return a}function o(e){var n;return n=t(a,e),n?{position:n.position,offset:n.offset,indexes:r(n.node),inside:n.inside}:void 0}var a=e.getRng(),s={};return 2===n&&(a.item?s.start={ctrl:!0,indexes:r(a.item(0))}:(s.start=o(!0),e.isCollapsed()||(s.end=o()))),s},this.moveToBookmark=function(e){function t(e){var t,n,r,o;for(t=i.getRoot(),n=e.length-1;n>=0;n--)o=t.children,r=e[n],r<=o.length-1&&(t=o[r]);return t}function n(n){var i=e[n?"start":"end"],a,s,l,c;i&&(a=i.position>0,s=o.createTextRange(),s.moveToElementText(t(i.indexes)),c=i.offset,c!==l?(s.collapse(i.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,o=i.doc.body;e.start&&(e.start.ctrl?(r=o.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=o.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(t){function n(e){var t,n,a,d,h;a=i.create("a"),t=e?s:c,n=e?l:u,d=r.duplicate(),(t==f||t==f.documentElement)&&(t=p,n=0),3==t.nodeType?(t.parentNode.insertBefore(a,t),d.moveToElementText(a),d.moveStart("character",n),i.remove(a),r.setEndPoint(e?"StartToStart":"EndToEnd",d)):(h=t.childNodes,h.length?(n>=h.length?i.insertAfter(a,h[h.length-1]):t.insertBefore(a,h[n]),d.moveToElementText(a)):t.canHaveHTML&&(t.innerHTML="<span></span>",a=t.firstChild,d.moveToElementText(a),d.collapse(o)),r.setEndPoint(e?"StartToStart":"EndToEnd",d),i.remove(a))}var r,a,s,l,c,u,d,f=e.dom.doc,p=f.body,h,m;if(s=t.startContainer,l=t.startOffset,c=t.endContainer,u=t.endOffset,r=p.createTextRange(),s==c&&1==s.nodeType){if(l==u&&!s.hasChildNodes()){if(s.canHaveHTML)return d=s.previousSibling,d&&!d.hasChildNodes()&&i.isBlock(d)?d.innerHTML="":d=null,s.innerHTML="<span></span><span></span>",r.moveToElementText(s.lastChild),r.select(),i.doc.selection.clear(),s.innerHTML="",void(d&&(d.innerHTML=""));l=i.nodeIndex(s),s=s.parentNode}if(l==u-1)try{if(m=s.childNodes[l],a=p.createControlRange(),a.addElement(m),a.select(),h=e.getRng(),h.item&&m===h.item(0))return}catch(g){}}n(!0),n(),r.select()},this.getRangeAt=n}return e}),r(B,[u],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(D,[B,d,u],function(e,t,n){return function(r,i){function o(e){var t=i.settings.object_resizing;return t===!1||n.iOS?!1:("string"!=typeof t&&(t="table,img,div"),"false"===e.getAttribute("data-mce-resize")?!1:i.dom.is(e,t))}function a(t){var n,r,o,a,s;n=t.screenX-T,r=t.screenY-R,P=n*k[2]+D,O=r*k[3]+L,P=5>P?5:P,O=5>O?5:O,o="IMG"==w.nodeName&&i.settings.resize_img_proportional!==!1?!e.modifierPressed(t):e.modifierPressed(t)||"IMG"==w.nodeName&&k[2]*k[3]!==0,o&&(W(n)>W(r)?(O=V(P*H),P=V(O/H)):(P=V(O/H),O=V(P*H))),C.setStyles(_,{width:P,height:O}),a=k.startPos.x+n,s=k.startPos.y+r,a=a>0?a:0,s=s>0?s:0,C.setStyles(E,{left:a,top:s,display:"block"}),E.innerHTML=P+" × "+O,k[2]<0&&_.clientWidth<=P&&C.setStyle(_,"left",A+(D-P)),k[3]<0&&_.clientHeight<=O&&C.setStyle(_,"top",B+(L-O)),n=U.scrollWidth-$,r=U.scrollHeight-q,n+r!==0&&C.setStyles(E,{left:a-n,top:s-r}),M||(i.fire("ObjectResizeStart",{target:w,width:D,height:L}),M=!0)}function s(){function e(e,t){t&&(w.style[e]||!i.schema.isValid(w.nodeName.toLowerCase(),e)?C.setStyle(w,e,t):C.setAttrib(w,e,t))}M=!1,e("width",P),e("height",O),C.unbind(I,"mousemove",a),C.unbind(I,"mouseup",s),F!=I&&(C.unbind(F,"mousemove",a),C.unbind(F,"mouseup",s)),C.remove(_),C.remove(E),z&&"TABLE"!=w.nodeName||l(w),i.fire("ObjectResized",{target:w,width:P,height:O}),C.setAttrib(w,"style",C.getAttrib(w,"style")),i.nodeChanged()}function l(e,t,r){var l,u,d,f,p;g(),l=C.getPos(e,U),A=l.x,B=l.y,p=e.getBoundingClientRect(),u=p.width||p.right-p.left,d=p.height||p.bottom-p.top,w!=e&&(m(),w=e,P=O=0),f=i.fire("ObjectSelected",{target:e}),o(e)&&!f.isDefaultPrevented()?x(N,function(e,i){function o(t){T=t.screenX,R=t.screenY,D=w.clientWidth,L=w.clientHeight,H=L/D,k=e,e.startPos={x:u*e[0]+A,y:d*e[1]+B},$=U.scrollWidth,q=U.scrollHeight,_=w.cloneNode(!0),C.addClass(_,"mce-clonedresizable"),C.setAttrib(_,"data-mce-bogus","all"),_.contentEditable=!1,_.unSelectabe=!0,C.setStyles(_,{left:A,top:B,margin:0}),_.removeAttribute("data-mce-selected"),U.appendChild(_),C.bind(I,"mousemove",a),C.bind(I,"mouseup",s),F!=I&&(C.bind(F,"mousemove",a),C.bind(F,"mouseup",s)),E=C.add(U,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},D+" × "+L)}var l,c;return t?void(i==t&&o(r)):(l=C.get("mceResizeHandle"+i),l?C.show(l):(c=U,l=C.add(c,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),n.ie&&(l.contentEditable=!1)),e.elm||(C.bind(l,"mousedown",function(e){e.stopImmediatePropagation(),e.preventDefault(),o(e)}),e.elm=l),void C.setStyles(l,{left:u*e[0]+A-l.offsetWidth/2,top:d*e[1]+B-l.offsetHeight/2}))}):c(),w.setAttribute("data-mce-selected","1")}function c(){var e,t;g(),w&&w.removeAttribute("data-mce-selected");for(e in N)t=C.get("mceResizeHandle"+e),t&&(C.unbind(t),C.remove(t))}function u(e){function t(e,t){if(e)do if(e===t)return!0;while(e=e.parentNode)}var n,i;if(!M)return x(C.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),i="mousedown"==e.type?e.target:r.getNode(),i=C.$(i).closest(z?"table":"table,img,hr")[0],t(i,U)&&(v(),n=r.getStart(!0),t(n,i)&&t(r.getEnd(!0),i)&&(!z||i!=n&&"IMG"!==n.nodeName))?void l(i):void c()}function d(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function f(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function p(e){var t=e.srcElement,n,r,o,a,s,c,u;n=t.getBoundingClientRect(),c=S.clientX-n.left,u=S.clientY-n.top;for(r in N)if(o=N[r],a=t.offsetWidth*o[0],s=t.offsetHeight*o[1],W(a-c)<8&&W(s-u)<8){k=o;break}M=!0,i.fire("ObjectResizeStart",{target:w,width:w.clientWidth,height:w.clientHeight}),i.getDoc().selection.empty(),l(t,r,S)}function h(e){var t=e.srcElement;if(t!=w){if(i.fire("ObjectSelected",{target:t}),m(),0===t.id.indexOf("mceResizeHandle"))return void(e.returnValue=!1);("IMG"==t.nodeName||"TABLE"==t.nodeName)&&(c(),w=t,d(t,"resizestart",p))}}function m(){f(w,"resizestart",p)}function g(){for(var e in N){var t=N[e];t.elm&&(C.unbind(t.elm),delete t.elm)}}function v(){try{i.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}}function y(e){var t;if(z){t=I.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function b(){w=_=null,z&&(m(),f(U,"controlselect",h))}var C=i.dom,x=t.each,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I=i.getDoc(),F=document,z=n.ie&&n.ie<11,W=Math.abs,V=Math.round,U=i.getBody(),$,q;N={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var j=".mce-content-body";return i.contentStyles.push(j+" div.mce-resizehandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}"+j+" .mce-resizehandle:hover {background: #000}"+j+" img[data-mce-selected], hr[data-mce-selected] {outline: 1px solid black;resize: none}"+j+" .mce-clonedresizable {position: absolute;"+(n.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+j+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),i.on("init",function(){z?(i.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(c(),y(e.target))}),d(U,"controlselect",h),i.on("mousedown",function(e){S=e})):(v(),n.ie>=11&&(i.on("mouseup",function(e){var t=e.target.nodeName;!M&&/^(TABLE|IMG|HR)$/.test(t)&&(i.selection.select(e.target,"TABLE"==t),i.nodeChanged())}),i.dom.bind(U,"mscontrolselect",function(e){/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"==e.target.tagName&&window.setTimeout(function(){i.selection.select(e.target)},0))}))),i.on("nodechange ResizeEditor",u),i.on("keydown keyup",function(e){w&&"TABLE"==w.nodeName&&u(e)}),i.on("hide",c)}),i.on("remove",g),{isResizable:o,showResizeRect:l,hideResizeRect:c,updateResizeRect:u,controlSelect:y,destroy:b}}}),r(L,[u,d],function(e,t){function n(n){var r=n.dom;this.getBookmark=function(e,i){function o(e,n){var i=0;return t.each(r.select(e),function(e,t){e==n&&(i=t)}),i}function a(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function s(){function e(e,t){var n=e[t?"startContainer":"endContainer"],a=e[t?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==n.nodeType){if(i)for(l=n.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=n.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(r.nodeIndex(c[a],i)+u);for(;n&&n!=o;n=n.parentNode)s.push(r.nodeIndex(n,i));return s}var t=n.getRng(!0),o=r.getRoot(),a={};return a.start=e(t,!0),n.isCollapsed()||(a.end=e(t)),a}var l,c,u,d,f,p,h="",m;if(2==e)return p=n.getNode(),f=p?p.nodeName:null,"IMG"==f?{name:f,index:o(f,p)}:n.tridentSel?n.tridentSel.getBookmark(e):s();if(e)return{rng:n.getRng()};if(l=n.getRng(),u=r.uniqueId(),d=n.isCollapsed(),m="overflow:hidden;line-height:0px",l.duplicate||l.item){if(l.item)return p=l.item(0),f=p.nodeName,{name:f,index:o(f,p)};c=l.duplicate();try{l.collapse(),l.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+m+'">'+h+"</span>"),d||(c.collapse(!1),l.moveToElementText(c.parentElement()),0===l.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+m+'">'+h+"</span>"))}catch(g){return null}}else{if(p=n.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:o(f,p)};c=a(l.cloneRange()),d||(c.collapse(!1),c.insertNode(r.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:m},h))),l=a(l),l.collapse(!0),l.insertNode(r.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:m},h))}return n.moveToBookmark({id:u,keep:1}),{id:u}},this.moveToBookmark=function(i){function o(e){var t=i[e?"start":"end"],n,r,o,a;if(t){for(o=t[0],r=c,n=t.length-1;n>=1;n--){if(a=r.childNodes,t[n]>a.length-1)return;r=a[t[n]]}3===r.nodeType&&(o=Math.min(t[0],r.nodeValue.length)),1===r.nodeType&&(o=Math.min(t[0],r.childNodes.length)),e?l.setStart(r,o):l.setEnd(r,o)}return!0}function a(n){var o=r.get(i.id+"_"+n),a,s,l,c,h=i.keep;if(o&&(a=o.parentNode,"start"==n?(h?(a=o.firstChild,s=1):s=r.nodeIndex(o),u=d=a,f=p=s):(h?(a=o.firstChild,s=1):s=r.nodeIndex(o),d=a,p=s),!h)){for(c=o.previousSibling,l=o.nextSibling,t.each(t.grep(o.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});o=r.get(i.id+"_"+n);)r.remove(o,1);c&&l&&c.nodeType==l.nodeType&&3==c.nodeType&&!e.opera&&(s=c.nodeValue.length,c.appendData(l.nodeValue),r.remove(l),"start"==n?(u=d=c,f=p=s):(d=c,p=s))}}function s(t){return!r.isBlock(t)||t.innerHTML||e.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t}var l,c,u,d,f,p;if(i)if(i.start){if(l=r.createRng(),c=r.getRoot(),n.tridentSel)return n.tridentSel.moveToBookmark(i);o(!0)&&o()&&n.setRng(l)}else i.id?(a("start"),a("end"),u&&(l=r.createRng(),l.setStart(s(u),f),l.setEnd(s(d),p),n.setRng(l))):i.name?n.select(r.select(i.name)[i.index]):i.rng&&n.setRng(i.rng)}}return n.isBookmarkNode=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},n}),r(H,[h,A,D,x,L,u,d],function(e,n,r,i,o,a,s){function l(e,t,i,a){var s=this;s.dom=e,s.win=t,s.serializer=i,s.editor=a,s.bookmarkManager=new o(s),s.controlSelection=new r(s,a),s.win.getSelection||(s.tridentSel=new n(s))}var c=s.each,u=s.trim,d=a.ie;return l.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();e?(r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)):(n._moveEndPoint(r,n.editor.getBody(),!0),n.setRng(r))},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?o.toString():""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=r.toString(),/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(e){var t=this,n=t.getRng(),r,i,o,a;if(n.duplicate||n.item){if(n.item)return n.item(0);for(o=n.duplicate(),o.collapse(1),r=o.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),i=a=n.parentElement();a=a.parentNode;)if(a==r){r=i;break}return r}return r=n.startContainer,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[Math.min(r.childNodes.length-1,n.startOffset)])),r&&3==r.nodeType?r.parentNode:r},getEnd:function(e){var t=this,n=t.getRng(),r,i;return n.duplicate||n.item?n.item?n.item(0):(n=n.duplicate(),n.collapse(0),r=n.parentElement(),r.ownerDocument!==t.dom.doc&&(r=t.dom.getRoot()),r&&"BODY"==r.nodeName?r.lastChild||r:r):(r=n.endContainer,i=n.endOffset,1==r.nodeType&&r.hasChildNodes()&&(e&&n.collapsed||(r=r.childNodes[i>0?i-1:i])),r&&3==r.nodeType?r.parentNode:r)},getBookmark:function(e,t){return this.bookmarkManager.getBookmark(e,t)},moveToBookmark:function(e){return this.bookmarkManager.moveToBookmark(e)},select:function(e,t){var n=this,r=n.dom,i=r.createRng(),o;if(n.lastFocusBookmark=null,e){if(!t&&n.controlSelection.controlSelect(e))return;o=r.nodeIndex(e),i.setStart(e.parentNode,o),i.setEnd(e.parentNode,o+1),t&&(n._moveEndPoint(i,e,!0),n._moveEndPoint(i,e)),n.setRng(i)}return e},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){function t(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}}var n=this,r,i,o,a=n.win.document,s;if(!e&&n.lastFocusBookmark){var l=n.lastFocusBookmark;return l.startContainer?(i=a.createRange(),i.setStart(l.startContainer,l.startOffset),i.setEnd(l.endContainer,l.endOffset)):i=l,i}if(e&&n.tridentSel)return n.tridentSel.getRangeAt(0);try{(r=n.getSel())&&(i=r.rangeCount>0?r.getRangeAt(0):r.createRange?r.createRange():a.createRange())}catch(c){}if(d&&i&&i.setStart&&a.selection){try{s=a.selection.createRange()}catch(c){}s&&s.item&&(o=s.item(0),i=a.createRange(),i.setStartBefore(o),i.setEndAfter(o))}return i||(i=a.createRange?a.createRange():a.body.createTextRange()),i.setStart&&9===i.startContainer.nodeType&&i.collapsed&&(o=n.dom.getRoot(),i.setStart(o,0),i.setEnd(o,0)),n.selectedRange&&n.explicitRange&&(0===t(i.START_TO_START,i,n.selectedRange)&&0===t(i.END_TO_END,i,n.selectedRange)?i=n.explicitRange:(n.selectedRange=null,n.explicitRange=null)),i},setRng:function(e,t){var n=this,r;if(e)if(e.select)try{e.select()}catch(i){}else if(n.tridentSel){if(e.cloneRange)try{return void n.tridentSel.addRange(e)}catch(i){}}else if(r=n.getSel()){n.explicitRange=e;try{r.removeAllRanges(),r.addRange(e)}catch(i){}t===!1&&r.extend&&(r.collapse(e.endContainer,e.endOffset),r.extend(e.startContainer,e.startOffset)),n.selectedRange=r.rangeCount>0?r.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset,l=t.dom.getRoot();return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):(r=n.item?n.item(0):n.parentElement(),r.ownerDocument!==t.win.document&&(r=l),r):l},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a,s=[];if(a=i.getRoot(),t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&t!=a&&s.push(t),t&&n&&t!=n){o=t;for(var l=new e(t,a);(o=l.next())&&o!=n;)i.isBlock(o)&&s.push(o)}return n&&t!=n&&n!=a&&s.push(n),s},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),n.compareBoundaryPoints(n.START_TO_START,r)<=0):!0},normalize:function(){var e=this,t=e.getRng();return!d&&new i(e.dom).normalize(t)&&e.setRng(t,e.isForward()),t},selectorChanged:function(e,t){var n=this,r;return n.selectorChangedData||(n.selectorChangedData={},r={},n.editor.on("NodeChange",function(e){var t=e.element,i=n.dom,o=i.getParents(t,null,i.getRoot()),a={};c(n.selectorChangedData,function(e,t){c(o,function(n){return i.is(n,t)?(r[t]||(c(e,function(e){e(!0,{node:n,selector:t,parents:o})}),r[t]=e),a[t]=e,!1):void 0})}),c(r,function(e,n){a[n]||(delete r[n],c(e,function(e){e(!1,{node:t,selector:n,parents:o})}))})})),n.selectorChangedData[e]||(n.selectorChangedData[e]=[]),n.selectorChangedData[e].push(t),n},getScrollContainer:function(){for(var e,t=this.dom.getRoot();t&&"BODY"!=t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e){function t(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}}var n,r,i=this,o=i.dom,a=o.getRoot(),s,l;if("BODY"!=a.nodeName){var c=i.getScrollContainer();if(c)return n=t(e).y-t(c).y,l=c.clientHeight,s=c.scrollTop,void((s>n||n+25>s+l)&&(c.scrollTop=s>n?n:n-l+25))}r=o.getViewPort(i.editor.getWin()),n=o.getPos(e).y,s=r.y,l=r.h,(n<r.y||n+25>s+l)&&i.editor.getWin().scrollTo(0,s>n?n:n-l+25)},placeCaretAt:function(e,t){var n=this.editor.getDoc(),r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r.collapse(t<n.body.clientHeight)}}this.setRng(r)},_moveEndPoint:function(t,n,r){var i=n,o=new e(n,i),s=this.dom.schema.getNonEmptyElements();do{if(3==n.nodeType&&0!==u(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(s[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"==n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(a.ie&&a.ie<11&&this.dom.isBlock(n)&&this.dom.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?o.next():o.prev());"BODY"==i.nodeName&&(r?t.setStart(i,0):t.setEnd(i,i.childNodes.length))},destroy:function(){this.win=null,this.controlSelection.destroy()}},l}),r(M,[L,d],function(e,t){function n(t){this.compare=function(n,i){function o(e){var n={};return r(t.getAttribs(e),function(r){var i=r.nodeName.toLowerCase();0!==i.indexOf("_")&&"style"!==i&&"data-mce-style"!==i&&(n[i]=t.getAttrib(e,i))}),n}function a(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],"undefined"==typeof n)return!1;if(e[r]!=n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0}return n.nodeName!=i.nodeName?!1:a(o(n),o(i))&&a(t.parseStyle(t.getAttrib(n,"style")),t.parseStyle(t.getAttrib(i,"style")))?!e.isBookmarkNode(n)&&!e.isBookmarkNode(i):!1}}var r=t.each;return n}),r(P,[d],function(e){function t(e,t){function r(e){return e.replace(/%(\w+)/g,"")}var i,o,a=e.dom,s="",l,c;if(c=e.settings.preview_styles,c===!1)return"";if(c||(c="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof t){if(t=e.formatter.get(t),!t)return;t=t[0]}return i=t.block||t.inline||"span",o=a.create(i),n(t.styles,function(e,t){e=r(e),e&&a.setStyle(o,t,e)}),n(t.attributes,function(e,t){e=r(e),e&&a.setAttrib(o,t,e)}),n(t.classes,function(e){e=r(e),a.hasClass(o,e)||a.addClass(o,e)}),e.fire("PreviewFormats"),a.setStyles(o,{position:"absolute",left:-65535}),e.getBody().appendChild(o),l=a.getStyle(e.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,n(c.split(" "),function(t){var n=a.getStyle(o,t,!0);if(!("background-color"==t&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(n)&&(n=a.getStyle(e.getBody(),t,!0),"#ffffff"==a.toHex(n).toLowerCase())||"color"==t&&"#000000"==a.toHex(n).toLowerCase())){if("font-size"==t&&/em|%$/.test(n)){if(0===l)return;n=parseFloat(n,10)/(/%$/.test(n)?100:1),n=n*l+"px"
+}"border"==t&&n&&(s+="padding:0 2px;"),s+=t+":"+n+";"}}),e.fire("AfterPreviewFormats"),a.remove(o),s}var n=e.each;return{getCssText:t}}),r(O,[h,x,L,M,d,P],function(e,t,n,r,i,o){return function(a){function s(e){return e.nodeType&&(e=e.nodeName),!!a.schema.getTextBlockElements()[e.toLowerCase()]}function l(e,t){return U.getParents(e,t,U.getRoot())}function c(e){return 1===e.nodeType&&"_mce_caret"===e.id}function u(){p({valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){at(n,function(t,n){U.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),at("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){p(e,{block:e,remove:"all"})}),p(a.settings.formats)}function d(){a.addShortcut("ctrl+b","bold_desc","Bold"),a.addShortcut("ctrl+i","italic_desc","Italic"),a.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)a.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);a.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),a.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),a.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function f(e){return e?V[e]:V}function p(e,t){e&&("string"!=typeof e?at(e,function(e,t){p(t,e)}):(t=t.length?t:[t],at(t,function(e){e.deep===tt&&(e.deep=!e.selector),e.split===tt&&(e.split=!e.selector||e.inline),e.remove===tt&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),V[e]=t))}function h(e){return e&&V[e]&&delete V[e],V}function m(e){var t;return a.dom.getParent(e,function(e){return t=a.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function g(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=m(e.parentNode),a.dom.getStyle(e,"color")&&t?a.dom.setStyle(e,"text-decoration",t):a.dom.getStyle(e,"textdecoration")===t&&a.dom.setStyle(e,"text-decoration",null))}function v(t,n,r){function i(e,t){if(t=t||d,e){if(t.onformat&&t.onformat(e,t,n,r),at(t.styles,function(t,r){U.setStyle(e,r,A(t,n))}),t.styles){var i=U.getAttrib(e,"style");i&&e.setAttribute("data-mce-style",i)}at(t.attributes,function(t,r){U.setAttrib(e,r,A(t,n))}),at(t.classes,function(t){t=A(t,n),U.hasClass(e,t)||U.addClass(e,t)})}}function o(){function t(t,n){var i=new e(n);for(r=i.current();r;r=i.prev())if(r.childNodes.length>1||r==t||"BR"==r.tagName)return r}var n=a.selection.getRng(),i=n.startContainer,o=n.endContainer;if(i!=o&&0===n.endOffset){var s=t(i,o),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function l(e,r,o){var a=[],l,f,p=!0;l=d.inline||d.block,f=U.create(l),i(f),q.walk(e,function(e){function r(e){var g,v,y,b,x;return x=p,g=e.nodeName.toLowerCase(),v=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&nt(e)&&(x=p,p="true"===nt(e),b=!0),S(g,"br")?(h=0,void(d.block&&U.remove(e))):d.wrapper&&C(e,t,n)?void(h=0):p&&!b&&d.block&&!d.wrapper&&s(g)&&j(v,l)?(e=U.rename(e,l),i(e),a.push(e),void(h=0)):d.selector&&(at(u,function(t){"collapsed"in t&&t.collapsed!==m||U.is(e,t.selector)&&!c(e)&&(i(e,t),y=!0)}),!d.inline||y)?void(h=0):void(!p||b||!j(l,g)||!j(v,l)||!o&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||c(e)||d.inline&&Y(e)?(h=0,at(st(e.childNodes),r),b&&(p=x),h=0):(h||(h=U.clone(f,Q),e.parentNode.insertBefore(h,e),a.push(h)),h.appendChild(e)))}var h;at(e,r)}),d.links===!0&&at(a,function(e){function t(e){"A"===e.nodeName&&i(e,d),at(st(e.childNodes),t)}t(e)}),at(a,function(e){function r(e){var t=0;return at(e.childNodes,function(e){B(e)||ot(e)||t++}),t}function o(e){var t,n;return at(e.childNodes,function(e){return 1!=e.nodeType||ot(e)||c(e)?void 0:(t=e,Q)}),t&&!ot(t)&&k(t,d)&&(n=U.clone(t,Q),i(n),U.replace(n,e,Z),U.remove(t,1)),n||e}var s;if(s=r(e),(a.length>1||!Y(e))&&0===s)return void U.remove(e,1);if(d.inline||d.wrapper){if(d.exact||1!==s||(e=o(e)),at(u,function(t){at(U.select(t.inline,e),function(e){ot(e)||M(t,n,e,t.exact?e:null)})}),C(e.parentNode,t,n))return U.remove(e,1),e=0,Z;d.merge_with_parents&&U.getParent(e.parentNode,function(r){return C(r,t,n)?(U.remove(e,1),e=0,Z):void 0}),e&&d.merge_siblings!==!1&&(e=I(O(e),e),e=I(e,O(e,Z)))}})}var u=f(t),d=u[0],p,h,m=!r&&$.isCollapsed();if(d)if(r)r.nodeType?(h=U.createRng(),h.setStartBefore(r),h.setEndAfter(r),l(L(h,u),null,!0)):l(r,null,!0);else if(m&&d.inline&&!U.select("td.mce-item-selected,th.mce-item-selected").length)z("apply",t,n);else{var y=a.selection.getNode();K||!u[0].defaultBlock||U.getParent(y,U.isBlock)||v(u[0].defaultBlock),a.selection.setRng(o()),p=$.getBookmark(),l(L($.getRng(Z),u),p),d.styles&&(d.styles.color||d.styles.textDecoration)&&(lt(y,g,"childNodes"),g(y)),$.moveToBookmark(p),W($.getRng(Z)),a.nodeChanged()}}function y(e,t,n,r){function i(e){var n,r,o,a,s;if(1===e.nodeType&&nt(e)&&(a=y,y="true"===nt(e),s=!0),n=st(e.childNodes),y&&!s)for(r=0,o=p.length;o>r&&!M(p[r],t,e,e);r++);if(h.deep&&n.length){for(r=0,o=n.length;o>r;r++)i(n[r]);s&&(y=a)}}function o(n){var i;return at(l(n.parentNode).reverse(),function(n){var o;i||"_start"==n.id||"_end"==n.id||(o=C(n,e,t,r),o&&o.split!==!1&&(i=n))}),i}function s(e,n,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=n.parentNode;o&&o!=u;o=o.parentNode){for(a=U.clone(o,Q),c=0;c<p.length;c++)if(M(p[c],t,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||h.mixed&&Y(e)||(n=U.split(e,n)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return n}function c(e){return s(o(e),e,e,!0)}function u(e){var t=U.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return ot(n)&&(n=n[e?"firstChild":"lastChild"]),U.remove(t,!0),n}function d(e){var t,n,r=e.commonAncestorContainer;e=L(e,p,Z),h.split&&(t=F(e,Z),n=F(e),t!=n?(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"==t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&/^(TH|TD)$/.test(n.nodeName)&&n.firstChild&&(n=n.firstChild||n),t=D(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=D(n,"span",{id:"_end","data-mce-type":"bookmark"}),c(t),c(n),t=u(Z),n=u()):t=n=c(t),e.startContainer=t.parentNode,e.startOffset=G(t),e.endContainer=n.parentNode,e.endOffset=G(n)+1),q.walk(e,function(e){at(e,function(e){i(e),1===e.nodeType&&"underline"===a.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===m(e.parentNode)&&M({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var p=f(e),h=p[0],g,v,y=!0;return n?void(n.nodeType?(v=U.createRng(),v.setStartBefore(n),v.setEndAfter(n),d(v)):d(n)):void($.isCollapsed()&&h.inline&&!U.select("td.mce-item-selected,th.mce-item-selected").length?z("remove",e,t,r):(g=$.getBookmark(),d($.getRng(Z)),$.moveToBookmark(g),h.inline&&x(e,t,$.getStart())&&W($.getRng(!0)),a.nodeChanged()))}function b(e,t,n){var r=f(e);!x(e,t,n)||"toggle"in r[0]&&!r[0].toggle?v(e,t,n):y(e,t,n)}function C(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===tt){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?U.getAttrib(e,o):T(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!S(a,R(A(s[o],n),o)))return}}else for(l=0;l<s.length;l++)if("attributes"===i?U.getAttrib(e,s[l]):T(e,s[l]))return t;return t}var o=f(t),a,s,l;if(o&&e)for(s=0;s<o.length;s++)if(a=o[s],k(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;s<l.length;s++)if(!U.hasClass(e,l[s]))return;return a}}function x(e,t,n){function r(n){var r=U.getRoot();return n===r?!1:(n=U.getParent(n,function(n){return n.parentNode===r||!!C(n,e,t,!0)}),C(n,e,t))}var i;return n?r(n):(n=$.getNode(),r(n)?Z:(i=$.getStart(),i!=n&&r(i)?Z:Q))}function w(e,t){var n,r=[],i={};return n=$.getStart(),U.getParent(n,function(n){var o,a;for(o=0;o<e.length;o++)a=e[o],!i[a]&&C(n,a,t)&&(i[a]=!0,r.push(a))},U.getRoot()),r}function _(e){var t=f(e),n,r,i,o,a;if(t)for(n=$.getStart(),r=l(n),o=t.length-1;o>=0;o--){if(a=t[o].selector,!a||t[o].defaultBlock)return Z;for(i=r.length-1;i>=0;i--)if(U.is(r[i],a))return Z}return Q}function E(e,t,n){var r;return et||(et={},r={},a.on("NodeChange",function(e){var t=l(e.element),n={};t=i.grep(t,function(e){return 1==e.nodeType&&!e.getAttribute("data-mce-bogus")}),at(et,function(e,i){at(t,function(o){return C(o,i,{},e.similar)?(r[i]||(at(e,function(e){e(!0,{node:o,format:i,parents:t})}),r[i]=e),n[i]=e,!1):void 0})}),at(r,function(i,o){n[o]||(delete r[o],at(i,function(n){n(!1,{node:e.element,format:o,parents:t})}))})})),at(e.split(","),function(e){et[e]||(et[e]=[],et[e].similar=n),et[e].push(t)}),this}function N(e){return o.getCssText(a,e)}function k(e,t){return S(e,t.inline)?Z:S(e,t.block)?Z:t.selector?1==e.nodeType&&U.is(e,t.selector):void 0}function S(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function T(e,t){return R(U.getStyle(e,t),t)}function R(e,t){return("color"==t||"backgroundColor"==t)&&(e=U.toHex(e)),"fontWeight"==t&&700==e&&(e="bold"),"fontFamily"==t&&(e=e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+e}function A(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function B(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function D(e,t,n){var r=U.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function L(t,n,r){function i(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var r,i,o,a,s;if(r=i=e?g:y,a=e?"previousSibling":"nextSibling",s=U.getRoot(),3==r.nodeType&&!B(r)&&(e?v>0:b<r.nodeValue.length))return r;for(;;){if(!n[0].block_expand&&Y(i))return i;for(o=i[a];o;o=o[a])if(!ot(o)&&!B(o)&&!t(o))return i;if(i.parentNode==s){r=i;break}i=i.parentNode}return r}function o(e,t){for(t===tt&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function c(e){for(var t=e;t;){if(1===t.nodeType&&nt(t))return"false"===nt(t)?t:e;t=t.parentNode}return e}function u(t,n,i){function o(e,t){var n,o,a=e.nodeValue;return"undefined"==typeof t&&(t=i?a.length:0),i?(n=a.lastIndexOf(" ",t),o=a.lastIndexOf("\xa0",t),n=n>o?n:o,-1===n||r||n++):(n=a.indexOf(" ",t),o=a.indexOf("\xa0",t),n=-1!==n&&(-1===o||o>n)?n:o),n}var s,l,c,u;if(3===t.nodeType){if(c=o(t,n),-1!==c)return{container:t,offset:c};u=t}for(s=new e(t,U.getParent(t,Y)||a.getBody());l=s[i?"prev":"next"]();)if(3===l.nodeType){if(u=l,c=o(l),-1!==c)return{container:l,offset:c}}else if(Y(l))break;return u?(n=i?0:u.length,{container:u,offset:n}):void 0}function d(e,r){var i,o,a,s;for(3==e.nodeType&&0===e.nodeValue.length&&e[r]&&(e=e[r]),i=l(e),o=0;o<i.length;o++)for(a=0;a<n.length;a++)if(s=n[a],!("collapsed"in s&&s.collapsed!==t.collapsed)&&U.is(i[o],s.selector))return i[o];return e}function f(e,t){var r,i=U.getRoot();if(n[0].wrapper||(r=U.getParent(e,n[0].block,i)),r||(r=U.getParent(3==e.nodeType?e.parentNode:e,function(e){return e!=i&&s(e)})),r&&n[0].wrapper&&(r=l(r,"ul,ol").reverse()[0]||r),!r)for(r=e;r[t]&&!Y(r[t])&&(r=r[t],!S(r,"br")););return r||e}var p,h,m,g=t.startContainer,v=t.startOffset,y=t.endContainer,b=t.endOffset;if(1==g.nodeType&&g.hasChildNodes()&&(p=g.childNodes.length-1,g=g.childNodes[v>p?p:v],3==g.nodeType&&(v=0)),1==y.nodeType&&y.hasChildNodes()&&(p=y.childNodes.length-1,y=y.childNodes[b>p?p:b-1],3==y.nodeType&&(b=y.nodeValue.length)),g=c(g),y=c(y),(ot(g.parentNode)||ot(g))&&(g=ot(g)?g:g.parentNode,g=g.nextSibling||g,3==g.nodeType&&(v=0)),(ot(y.parentNode)||ot(y))&&(y=ot(y)?y:y.parentNode,y=y.previousSibling||y,3==y.nodeType&&(b=y.length)),n[0].inline&&(t.collapsed&&(m=u(g,v,!0),m&&(g=m.container,v=m.offset),m=u(y,b),m&&(y=m.container,b=m.offset)),h=o(y,b),h.node)){for(;h.node&&0===h.offset&&h.node.previousSibling;)h=o(h.node.previousSibling);h.node&&h.offset>0&&3===h.node.nodeType&&" "===h.node.nodeValue.charAt(h.offset-1)&&h.offset>1&&(y=h.node,y.splitText(h.offset-1))}return(n[0].inline||n[0].block_expand)&&(n[0].inline&&3==g.nodeType&&0!==v||(g=i(!0)),n[0].inline&&3==y.nodeType&&b!==y.nodeValue.length||(y=i())),n[0].selector&&n[0].expand!==Q&&!n[0].inline&&(g=d(g,"previousSibling"),y=d(y,"nextSibling")),(n[0].block||n[0].selector)&&(g=f(g,"previousSibling"),y=f(y,"nextSibling"),n[0].block&&(Y(g)||(g=i(!0)),Y(y)||(y=i()))),1==g.nodeType&&(v=G(g),g=g.parentNode),1==y.nodeType&&(b=G(y)+1,y=y.parentNode),{startContainer:g,startOffset:v,endContainer:y,endOffset:b}}function H(e,t){return t.links&&"A"==e.tagName}function M(e,t,n,r){var i,o,a;if(!k(n,e)&&!H(n,e))return Q;if("all"!=e.remove)for(at(e.styles,function(i,o){i=R(A(i,t),o),"number"==typeof o&&(o=i,r=0),(e.remove_similar||!r||S(T(r,o),i))&&U.setStyle(n,o,""),a=1}),a&&""===U.getAttrib(n,"style")&&(n.removeAttribute("style"),n.removeAttribute("data-mce-style")),at(e.attributes,function(e,i){var o;if(e=A(e,t),"number"==typeof i&&(i=e,r=0),!r||S(U.getAttrib(r,i),e)){if("class"==i&&(e=U.getAttrib(n,i),e&&(o="",at(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(o+=(o?" ":"")+e)}),o)))return void U.setAttrib(n,i,o);"class"==i&&n.removeAttribute("className"),J.test(i)&&n.removeAttribute("data-mce-"+i),n.removeAttribute(i)}}),at(e.classes,function(e){e=A(e,t),(!r||U.hasClass(r,e))&&U.removeClass(n,e)}),o=U.getAttribs(n),i=0;i<o.length;i++)if(0!==o[i].nodeName.indexOf("_"))return Q;return"none"!=e.remove?(P(n,e),Z):void 0}function P(e,t){function n(e,t,n){return e=O(e,t,n),!e||"BR"==e.nodeName||Y(e)}var r=e.parentNode,i;t.block&&(K?r==U.getRoot()&&(t.list_block&&S(e,t.list_block)||at(st(e.childNodes),function(e){j(K,e.nodeName.toLowerCase())?i?i.appendChild(e):(i=D(e,K),U.setAttribs(i,a.settings.forced_root_block_attrs)):i=0})):Y(e)&&!Y(r)&&(n(e,Q)||n(e.firstChild,Z,1)||e.insertBefore(U.create("br"),e.firstChild),n(e,Z)||n(e.lastChild,Q,1)||e.appendChild(U.create("br")))),t.selector&&t.inline&&!S(t.inline,e)||U.remove(e,1)}function O(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!B(e))return e}function I(e,t){function n(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!ot(i))return i}return e}var i,o,a=new r(U);if(e&&t&&(e=n(e,"previousSibling"),t=n(t,"nextSibling"),a.compare(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return U.remove(t),at(st(t.childNodes),function(t){e.appendChild(t)}),e}return t}function F(t,n){var r,i,o;return r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1==r.nodeType&&(o=r.childNodes.length-1,!n&&i&&i--,r=r.childNodes[i>o?o:i]),3===r.nodeType&&n&&i>=r.nodeValue.length&&(r=new e(r,a.getBody()).next()||r),3!==r.nodeType||n||0!==i||(r=new e(r,a.getBody()).prev()||r),r}function z(t,n,r,i){function o(e){var t=U.create("span",{id:g,"data-mce-bogus":!0,style:b?"color:red":""});return e&&t.appendChild(a.getDoc().createTextNode(X)),t}function l(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==X||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function c(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function u(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function d(e,t){var n,r;if(e)r=$.getRng(!0),l(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),U.remove(e)):(n=u(e),n.nodeValue.charAt(0)===X&&(n.deleteData(0,1),r.startContainer==n&&r.startOffset>0&&r.setStart(n,r.startOffset-1),r.endContainer==n&&r.endOffset>0&&r.setEnd(n,r.endOffset-1)),U.remove(e,1)),$.setRng(r);else if(e=c($.getStart()),!e)for(;e=U.get(g);)d(e,!1)}function p(){var e,t,i,a,s,l,d;e=$.getRng(!0),a=e.startOffset,l=e.startContainer,d=l.nodeValue,t=c($.getStart()),t&&(i=u(t)),d&&a>0&&a<d.length&&/\w/.test(d.charAt(a))&&/\w/.test(d.charAt(a-1))?(s=$.getBookmark(),e.collapse(!0),e=L(e,f(n)),e=q.split(e),v(n,r,e),$.moveToBookmark(s)):(t&&i.nodeValue===X?v(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,v(n,r,t)),$.setCursorLocation(i,a))}function h(){var e=$.getRng(!0),t,a,l,c,u,d,p=[],h,m;for(t=e.startContainer,a=e.startOffset,u=t,3==t.nodeType&&(a!=t.nodeValue.length&&(c=!0),u=u.parentNode);u;){if(C(u,n,r,i)){d=u;break}u.nextSibling&&(c=!0),p.push(u),u=u.parentNode}if(d)if(c)l=$.getBookmark(),e.collapse(!0),e=L(e,f(n),!0),e=q.split(e),y(n,r,e),$.moveToBookmark(l);else{for(m=o(),u=m,h=p.length-1;h>=0;h--)u.appendChild(U.clone(p[h],!1)),u=u.firstChild;u.appendChild(U.doc.createTextNode(X)),u=u.firstChild;var g=U.getParent(d,s);g&&U.isEmpty(g)?d.parentNode.replaceChild(m,d):U.insertAfter(m,d),$.setCursorLocation(u,1),U.isEmpty(d)&&U.remove(d)}}function m(){var e;e=c($.getStart()),e&&!U.isEmpty(e)&<(e,function(e){1!=e.nodeType||e.id===g||U.isEmpty(e)||U.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var g="_mce_caret",b=a.settings.caret_debug;a._hasCaretEvents||(it=function(){var e=[],t;if(l(c($.getStart()),e))for(t=e.length;t--;)U.setAttrib(e[t],"data-mce-bogus","1")},rt=function(e){var t=e.keyCode;d(),(8==t||37==t||39==t)&&d(c($.getStart())),m()},a.on("SetContent",function(e){e.selection&&m()}),a._hasCaretEvents=!0),"apply"==t?p():h()}function W(t){var n=t.startContainer,r=t.startOffset,i,o,a,s,l;if(3==n.nodeType&&r>=n.nodeValue.length&&(r=G(n),n=n.parentNode,i=!0),1==n.nodeType)for(s=n.childNodes,n=s[Math.min(r,s.length-1)],o=new e(n,U.getParent(n,U.isBlock)),(r>s.length-1||i)&&o.next(),a=o.current();a;a=o.next())if(3==a.nodeType&&!B(a))return l=U.create("a",{"data-mce-bogus":"all"},X),a.parentNode.insertBefore(l,a),t.setStart(a,0),$.setRng(t),void U.remove(l)}var V={},U=a.dom,$=a.selection,q=new t(U),j=a.schema.isValidChild,Y=U.isBlock,K=a.settings.forced_root_block,G=U.nodeIndex,X="\ufeff",J=/^(src|href|style)$/,Q=!1,Z=!0,et,tt,nt=U.getContentEditable,rt,it,ot=n.isBookmarkNode,at=i.each,st=i.grep,lt=i.walk,ct=i.extend;ct(this,{get:f,register:p,unregister:h,apply:v,remove:y,toggle:b,match:x,matchAll:w,matchNode:C,canApply:_,formatChanged:E,getCssText:N}),u(),d(),a.on("BeforeGetContent",function(e){it&&"raw"!=e.format&&it()}),a.on("mouseup keydown",function(e){rt&&rt(e)})}}),r(I,[B,u,d,N],function(e,t,n,r){var i=n.trim,o;return o=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(n){function a(){var e=n.getContent({format:"raw",no_events:1}),t=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,a,s,l,c,u,d=n.schema;for(e=e.replace(o,""),u=d.getShortEndedElements();c=t.exec(e);)s=t.lastIndex,l=c[0].length,a=u[c[1]]?s:r.findEndTag(d,e,s),e=e.substring(0,s-l)+e.substring(a),t.lastIndex=s-l;return i(e)}function s(e){l.typing=!1,l.add({},e)}var l=this,c=0,u=[],d,f,p=0;return n.on("init",function(){l.add()}),n.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&l.beforeChange()}),n.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&s(e)}),n.on("ObjectResizeStart",function(){l.beforeChange()}),n.on("SaveContent ObjectResized blur",s),n.on("DragEnd",s),n.on("KeyUp",function(e){var r=e.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||e.ctrlKey)&&(s(),n.nodeChanged()),(46==r||8==r||t.mac&&(91==r||93==r))&&n.nodeChanged(),f&&l.typing&&(n.isDirty()||(n.isNotDirty=!u[0]||a()==u[0].content,n.isNotDirty||n.fire("change",{level:u[0],lastLevel:null})),n.fire("TypingUndo"),f=!1,n.nodeChanged())}),n.on("KeyDown",function(t){var n=t.keyCode;if(n>=33&&36>=n||n>=37&&40>=n||45==n)return void(l.typing&&s(t));var r=e.modifierPressed(t);!(16>n||n>20)||224==n||91==n||l.typing||r||(l.beforeChange(),l.typing=!0,l.add({},t),f=!0)}),n.on("MouseDown",function(e){l.typing&&s(e)}),n.addShortcut("ctrl+z","","Undo"),n.addShortcut("ctrl+y,ctrl+shift+z","","Redo"),n.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||n.nodeChanged()}),l={data:u,typing:!1,beforeChange:function(){p||(d=n.selection.getBookmark(2,!0))},add:function(e,t){var r,i=n.settings,o;if(e=e||{},e.content=a(),p||n.removed)return null;if(o=u[c],n.fire("BeforeAddUndo",{level:e,lastLevel:o,originalEvent:t}).isDefaultPrevented())return null;if(o&&o.content==e.content)return null;if(u[c]&&(u[c].beforeBookmark=d),i.custom_undo_redo_levels&&u.length>i.custom_undo_redo_levels){for(r=0;r<u.length-1;r++)u[r]=u[r+1];u.length--,c=u.length}e.bookmark=n.selection.getBookmark(2,!0),c<u.length-1&&(u.length=c+1),u.push(e),c=u.length-1;var s={level:e,lastLevel:o,originalEvent:t};return n.fire("AddUndo",s),c>0&&(n.isNotDirty=!1,n.fire("change",s)),e},undo:function(){var e;return l.typing&&(l.add(),l.typing=!1),c>0&&(e=u[--c],0===c&&(n.isNotDirty=!0),n.setContent(e.content,{format:"raw"}),n.selection.moveToBookmark(e.beforeBookmark),n.fire("undo",{level:e})),e},redo:function(){var e;return c<u.length-1&&(e=u[++c],n.setContent(e.content,{format:"raw"}),n.selection.moveToBookmark(e.bookmark),n.fire("redo",{level:e})),e},clear:function(){u=[],c=0,l.typing=!1,n.fire("ClearUndos")},hasUndo:function(){return c>0||l.typing&&u[0]&&a()!=u[0].content},hasRedo:function(){return c<u.length-1&&!this.typing},transact:function(e){l.beforeChange();try{p++,e()}finally{p--}l.add()}}}}),r(F,[h,x,u],function(e,t,n){var r=n.ie&&n.ie<11;return function(i){function o(o){function f(e){return e&&a.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==a.getContentEditable(e)}function p(e){var t;a.isBlock(e)&&(t=s.getRng(),e.appendChild(a.create("span",null,"\xa0")),s.select(e),e.lastChild.outerHTML="",s.setRng(t))}function h(e){var t=e,n=[],r;if(t){for(;t=t.firstChild;){if(a.isBlock(t))return;1!=t.nodeType||d[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?a.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&a.remove(t)}}function m(t){function r(e){for(;e;){if(1==e.nodeType||3==e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}var i,o,l,c=t,u;if(t){if(n.ie&&n.ie<9&&A&&A.firstChild&&A.firstChild==A.lastChild&&"BR"==A.firstChild.tagName&&a.remove(A.firstChild),/^(LI|DT|DD)$/.test(t.nodeName)){var f=r(t.firstChild);f&&/^(UL|OL|DL)$/.test(f.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(l=a.createRng(),n.ie||t.normalize(),t.hasChildNodes()){for(i=new e(t,t);o=i.current();){if(3==o.nodeType){l.setStart(o,0),l.setEnd(o,0);break}if(d[o.nodeName.toLowerCase()]){l.setStartBefore(o),l.setEndBefore(o);break}c=o,o=i.next()}o||(l.setStart(c,0),l.setEnd(c,0))}else"BR"==t.nodeName?t.nextSibling&&a.isBlock(t.nextSibling)?((!B||9>B)&&(u=a.create("br"),t.parentNode.insertBefore(u,t)),l.setStartBefore(t),l.setEndBefore(t)):(l.setStartAfter(t),l.setEndAfter(t)):(l.setStart(t,0),l.setEnd(t,0));s.setRng(l),a.remove(u),s.scrollIntoView(t)}}function g(e){var t=l.forced_root_block;t&&t.toLowerCase()===e.tagName.toLowerCase()&&a.setAttribs(e,l.forced_root_block_attrs)}function v(e){var t=T,n,i,o,s=u.getTextInlineElements();if(e||"TABLE"==P?(n=a.create(e||I),g(n)):n=A.cloneNode(!1),o=n,l.keep_styles!==!1)do if(s[t.nodeName]){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),a.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(o=i,n.appendChild(i))}while(t=t.parentNode);return r||(o.innerHTML='<br data-mce-bogus="1">'),n}function y(t){var n,r,i;if(3==T.nodeType&&(t?R>0:R<T.nodeValue.length))return!1;if(T.parentNode==A&&F&&!t)return!0;if(t&&1==T.nodeType&&T==A.firstChild)return!0;if("TABLE"===T.nodeName||T.previousSibling&&"TABLE"==T.previousSibling.nodeName)return F&&!t||!F&&t;for(n=new e(T,A),3==T.nodeType&&(t&&0===R?n.prev():t||R!=T.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),d[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function b(e,t){var n,r,o,s,l,c,d=I||"P";if(r=a.getParent(e,a.isBlock),c=i.getBody().nodeName.toLowerCase(),!r||!f(r)){if(r=r||S,!r.hasChildNodes())return n=a.create(d),g(n),r.appendChild(n),N.setStart(n,0),N.setEnd(n,0),n;for(s=e;s.parentNode!=r;)s=s.parentNode;for(;s&&!a.isBlock(s);)o=s,s=s.previousSibling;if(o&&u.isValidChild(c,d.toLowerCase())){for(n=a.create(d),g(n),o.parentNode.insertBefore(n,o),s=o;s&&!a.isBlock(s);)l=s.nextSibling,n.appendChild(s),s=l;N.setStart(e,t),N.setEnd(e,t)}}return e}function C(){function e(e){for(var t=M[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===A}function t(){var e=M.parentNode;return/^(LI|DT|DD)$/.test(e.nodeName)?e:M}var n=M.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(I="LI"),L=I?v(I):a.create("BR"),e(!0)&&e()?"LI"==n?a.insertAfter(L,t()):a.replace(L,M):e(!0)?"LI"==n?(a.insertAfter(L,t()),L.appendChild(a.doc.createTextNode(" ")),L.appendChild(M)):M.parentNode.insertBefore(L,M):e()?(a.insertAfter(L,t()),p(L)):(M=t(),k=N.cloneRange(),k.setStartAfter(A),k.setEndAfter(M),H=k.extractContents(),"LI"==I&&"LI"==H.firstChild.nodeName?(L=H.firstChild,a.insertAfter(H,M)):(a.insertAfter(H,M),a.insertAfter(L,M))),a.remove(A),m(L),c.add()}function x(){i.execCommand("InsertLineBreak",!1,o)}function w(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function _(e){var t=a.getRoot(),n,r;for(n=e;n!==t&&"false"!==a.getContentEditable(n);)"true"===a.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function E(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(a.getStyle(t,"float",!0)))&&a.add(e,"br"))}var N,k,S,T,R,A,B,D,L,H,M,P,O,I,F;if(N=s.getRng(!0),!o.isDefaultPrevented()){if(!N.collapsed)return void i.execCommand("Delete");if(new t(a).normalize(N),T=N.startContainer,R=N.startOffset,I=(l.force_p_newlines?"p":"")||l.forced_root_block,I=I?I.toUpperCase():"",B=a.doc.documentMode,D=o.shiftKey,1==T.nodeType&&T.hasChildNodes()&&(F=R>T.childNodes.length-1,T=T.childNodes[Math.min(R,T.childNodes.length-1)]||T,R=F&&3==T.nodeType?T.nodeValue.length:0),S=_(T)){if(c.beforeChange(),!a.isBlock(S)&&S!=a.getRoot())return void((!I||D)&&x());if((I&&!D||!I&&D)&&(T=b(T,R)),A=a.getParent(T,a.isBlock),M=A?a.getParent(A.parentNode,a.isBlock):null,P=A?A.nodeName.toUpperCase():"",O=M?M.nodeName.toUpperCase():"","LI"!=O||o.ctrlKey||(A=M,P=O),/^(LI|DT|DD)$/.test(P)){if(!I&&D)return void x();if(a.isEmpty(A))return void C()}if("PRE"==P&&l.br_in_pre!==!1){if(!D)return void x()}else if(!I&&!D&&"LI"!=P||I&&D)return void x();I&&A===i.getBody()||(I=I||"P",y()?(L=/^(H[1-6]|PRE|FIGURE)$/.test(P)&&"HGROUP"!=O?v(I):v(),l.end_container_on_empty_block&&f(M)&&a.isEmpty(A)?L=a.split(M,A):a.insertAfter(L,A),m(L)):y(!0)?(L=A.parentNode.insertBefore(v(),A),p(L),m(A)):(k=N.cloneRange(),k.setEndAfter(A),H=k.extractContents(),w(H),L=H.firstChild,a.insertAfter(H,A),h(L),E(A),m(L)),a.setAttrib(L,"id",""),i.fire("NewBlock",{newBlock:L}),c.add())}}}var a=i.dom,s=i.selection,l=i.settings,c=i.undoManager,u=i.schema,d=u.getNonEmptyElements();i.on("keydown",function(e){13==e.keyCode&&o(e)!==!1&&e.preventDefault()})}}),r(z,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(W,[T,u,d,M,x,h],function(e,n,r,i,o,a){var s=r.each,l=r.extend,c=r.map,u=r.inArray,d=r.explode,f=n.gecko,p=n.ie,h=n.ie&&n.ie<11,m=!0,g=!1;return function(r){function v(e,t,n){var r;return e=e.toLowerCase(),(r=T.exec[e])?(r(e,t,n),m):g}function y(e){var t;return e=e.toLowerCase(),(t=T.state[e])?t(e):-1}function b(e){var t;return e=e.toLowerCase(),(t=T.value[e])?t(e):g}function C(e,t){t=t||"exec",s(e,function(e,n){s(n.toLowerCase().split(","),function(n){T[t][n]=e})})}function x(e,n,i){return n===t&&(n=g),i===t&&(i=null),r.getDoc().execCommand(e,n,i)}function w(e){return A.match(e)}function _(e,n){A.toggle(e,n?{value:n}:t),r.nodeChanged()}function E(e){B=S.getBookmark(e)}function N(){S.moveToBookmark(B)}var k=r.dom,S=r.selection,T={state:{},exec:{},value:{}},R=r.settings,A=r.formatter,B;l(this,{execCommand:v,queryCommandState:y,queryCommandValue:b,addCommands:C}),C({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){r.undoManager.add()},"Cut,Copy,Paste":function(e){var t=r.getDoc(),i;try{x(e)}catch(o){i=m}if(i||!t.queryCommandSupported(e)){var a=r.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");n.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),r.windowManager.alert(a)}},unlink:function(){if(S.isCollapsed()){var e=S.getNode();return void("A"==e.tagName&&r.dom.remove(e,!0))}A.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),s("left,center,right,justify".split(","),function(e){t!=e&&A.remove("align"+e)}),_("align"+t),v("mceRepaint")
+},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;x(e),t=k.getParent(S.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(E(),k.split(n,t),N()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){_(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){_(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=d(R.font_size_style_values),r=d(R.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),_(e,n)},RemoveFormat:function(e){A.remove(e)},mceBlockQuote:function(){_("blockquote")},FormatBlock:function(e,t,n){return _(n||"p")},mceCleanup:function(){var e=S.getBookmark();r.setContent(r.getContent({cleanup:m}),{cleanup:m}),S.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var i=n||S.getNode();i!=r.getBody()&&(E(),r.dom.remove(i,m),N())},mceSelectNodeDepth:function(e,t,n){var i=0;k.getParent(S.getNode(),function(e){return 1==e.nodeType&&i++==n?(S.select(e),g):void 0},r.getBody())},mceSelectNode:function(e,t,n){S.select(n)},mceInsertContent:function(t,n,o){function a(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=S.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),i<r.length?e=e.replace(/ (<br>|)$/," "):t("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e}function l(e){if(w)for(b=e.firstChild;b;b=b.walk(!0))_[b.name]&&b.attr("data-mce-new","true")}function c(){if(w){var e=r.getBody(),t=new i(k);s(k.select("*[data-mce-new]"),function(n){n.removeAttribute("data-mce-new");for(var r=n.parentNode;r&&r!=e;r=r.parentNode)t.compare(r,n)&&k.remove(n,!0)})}}var u,d,f,h,m,g,v,y,b,C,x,w,_=r.schema.getTextInlineElements();"string"!=typeof o&&(w=o.merge,o=o.content),/^ | $/.test(o)&&(o=a(o)),u=r.parser,d=new e({},r.schema),x='<span id="mce_marker" data-mce-type="bookmark">​</span>',g={content:o,format:"html",selection:!0},r.fire("BeforeSetContent",g),o=g.content,-1==o.indexOf("{$caret}")&&(o+="{$caret}"),o=o.replace(/\{\$caret\}/,x),y=S.getRng();var E=y.startContainer||(y.parentElement?y.parentElement():null),N=r.getBody();E===N&&S.isCollapsed()&&k.isBlock(N.firstChild)&&k.isEmpty(N.firstChild)&&(y=k.createRng(),y.setStart(N.firstChild,0),y.setEnd(N.firstChild,0),S.setRng(y)),S.isCollapsed()||r.getDoc().execCommand("Delete",!1,null),f=S.getNode();var T={context:f.nodeName.toLowerCase()};if(m=u.parse(o,T),l(m),b=m.lastChild,"mce_marker"==b.attr("id"))for(v=b,b=b.prev;b;b=b.walk(!0))if(3==b.type||!k.isBlock(b.name)){r.schema.isValidChild(b.parent.name,"span")&&b.parent.insert(v,b,"br"===b.name);break}if(T.invalid){for(S.setContent(x),f=S.getNode(),h=r.getBody(),9==f.nodeType?f=b=h:b=f;b!==h;)f=b,b=b.parentNode;o=f==h?h.innerHTML:k.getOuterHTML(f),o=d.serialize(u.parse(o.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return d.serialize(m)}))),f==h?k.setHTML(h,o):k.setOuterHTML(f,o)}else o=d.serialize(m),b=f.firstChild,C=f.lastChild,!b||b===C&&"BR"===b.nodeName?k.setHTML(f,o):S.setContent(o);c(),v=k.get("mce_marker"),S.scrollIntoView(v),y=k.createRng(),b=v.previousSibling,b&&3==b.nodeType?(y.setStart(b,b.nodeValue.length),p||(C=v.nextSibling,C&&3==C.nodeType&&(b.appendData(C.data),C.parentNode.removeChild(C)))):(y.setStartBefore(v),y.setEndBefore(v)),k.remove(v),S.setRng(y),r.fire("SetContent",g),r.addVisual()},mceInsertRawHTML:function(e,t,n){S.setContent("tiny_mce_marker"),r.setContent(r.getContent().replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){_(n)},mceSetContent:function(e,t,n){r.setContent(n)},"Indent,Outdent":function(e){var t,n,i;t=R.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),y("InsertUnorderedList")||y("InsertOrderedList")?x(e):(R.forced_root_block||k.getParent(S.getNode(),k.isBlock)||A.apply("div"),s(S.getSelectedBlocks(),function(o){if("LI"!=o.nodeName){var a=r.getParam("indent_use_margin",!1)?"margin":"padding";a+="rtl"==k.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),k.setStyle(o,a,i?i+n:"")):(i=parseInt(o.style[a]||0,10)+t+n,k.setStyle(o,a,i))}}))},mceRepaint:function(){if(f)try{E(m),S.getSel()&&S.getSel().selectAllChildren(r.getBody()),S.collapse(m),N()}catch(e){}},InsertHorizontalRule:function(){r.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){r.hasVisual=!r.hasVisual,r.addVisual()},mceReplaceContent:function(e,t,n){r.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,S.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=k.getParent(S.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||A.remove("link"),n.href&&A.apply("link",n,r)},selectAll:function(){var e=k.getRoot(),t;S.getRng().setStart?(t=k.createRng(),t.setStart(e,0),t.setEnd(e,e.childNodes.length),S.setRng(t)):(t=S.getRng(),t.item||(t.moveToElementText(e),t.select()))},"delete":function(){x("Delete");var e=r.getBody();k.isEmpty(e)&&(r.setContent(""),e.firstChild&&k.isBlock(e.firstChild)?r.selection.setCursorLocation(e.firstChild,0):r.selection.setCursorLocation(e,0))},mceNewDocument:function(){r.setContent("")},InsertLineBreak:function(e,t,n){function i(){for(var e=new a(p,v),t,n=r.schema.getNonEmptyElements();t=e.next();)if(n[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=n,l,c,u,d=S.getRng(!0);new o(k).normalize(d);var f=d.startOffset,p=d.startContainer;if(1==p.nodeType&&p.hasChildNodes()){var g=f>p.childNodes.length-1;p=p.childNodes[Math.min(f,p.childNodes.length-1)]||p,f=g&&3==p.nodeType?p.nodeValue.length:0}var v=k.getParent(p,k.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?k.getParent(v.parentNode,k.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),p&&3==p.nodeType&&f>=p.nodeValue.length&&(h||i()||(l=k.create("br"),d.insertNode(l),d.setStartAfter(l),d.setEndAfter(l),c=!0)),l=k.create("br"),d.insertNode(l);var w=k.doc.documentMode;return h&&"PRE"==y&&(!w||8>w)&&l.parentNode.insertBefore(k.doc.createTextNode("\r"),l),u=k.create("span",{}," "),l.parentNode.insertBefore(u,l),S.scrollIntoView(u),k.remove(u),c?(d.setStartBefore(l),d.setEndBefore(l)):(d.setStartAfter(l),d.setEndAfter(l)),S.setRng(d),r.undoManager.add(),m}}),C({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=S.isCollapsed()?[k.getParent(S.getNode(),k.isBlock)]:S.getSelectedBlocks(),r=c(n,function(e){return!!A.matchNode(e,t)});return-1!==u(r,m)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return w(e)},mceBlockQuote:function(){return w("blockquote")},Outdent:function(){var e;if(R.inline_styles){if((e=k.getParent(S.getStart(),k.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return m;if((e=k.getParent(S.getEnd(),k.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return m}return y("InsertUnorderedList")||y("InsertOrderedList")||!R.inline_styles&&!!k.getParent(S.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=k.getParent(S.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),C({"FontSize,FontName":function(e){var t=0,n;return(n=k.getParent(S.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),C({Undo:function(){r.undoManager.undo()},Redo:function(){r.undoManager.redo()}})}}),r(V,[d],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var c=0===e.indexOf("//");0!==e.indexOf("/")||c||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),c&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var r,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),n(e,function(e){e&&o.push(e)}),e=o,r=t.length-1,o=[];r>=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=0>=r?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t}),r(U,[d],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r($,[d],function(e){function t(t){function n(){return!1}function r(){return!0}function i(e,i){var o,s,l,c;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=u),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=r},i.stopPropagation=function(){i.isPropagationStopped=r},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=r},i.isDefaultPrevented=n,i.isPropagationStopped=n,i.isImmediatePropagationStopped=n),t.beforeFire&&t.beforeFire(i),o=d[e])for(s=0,l=o.length;l>s;s++){if(c=o[s],c.once&&a(e,c.func),i.isImmediatePropagationStopped())return i.stopPropagation(),i;if(c.func.call(u,i)===!1)return i.preventDefault(),i}return i}function o(t,r,i,o){var a,s,l;if(r===!1&&(r=n),r)for(r={func:r},o&&e.extend(r,o),s=t.toLowerCase().split(" "),l=s.length;l--;)t=s[l],a=d[t],a||(a=d[t]=[],f(t,!0)),i?a.unshift(r):a.push(r);return c}function a(e,t){var n,r,i,o,a;if(e)for(o=e.toLowerCase().split(" "),n=o.length;n--;){if(e=o[n],r=d[e],!e){for(i in d)f(i,!1),delete d[i];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),d[e]=r);else r.length=0;r.length||(f(e,!1),delete d[e])}}else{for(e in d)f(e,!1);d={}}return c}function s(e,t,n){return o(e,t,n,{once:!0})}function l(e){return e=e.toLowerCase(),!(!d[e]||0===d[e].length)}var c=this,u,d={},f;t=t||{},u=t.scope||c,f=t.toggleEvent||n,c.fire=i,c.on=o,c.off=a,c.once=s,c.has=l}var n=e.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchend"," ");return t.isNative=function(e){return!!n[e.toLowerCase()]},t}),r(q,[U],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):void 0}function o(e){return e?function(t){return t._name===e}:void 0}function a(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):void 0}function s(e,t,n){return e?function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t?i.substr(i.length-n.length)===n:!1:!!n}:void 0}function l(e){var t;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=u(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:t[e]?t[e]():!1})):void 0}function c(e,r,c){function u(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),u(t(d[1])),u(o(d[2])),u(a(d[3])),u(s(d[4],d[5],d[6])),u(l(d[7])),r.psuedo=!!d[7],r.direct=c,r}function u(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&u(i,t),e=[],a=0;a<n.length;a++)">"!=n[a]&&e.push(c(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=u(e,[])},match:function(e,t){var n,r,i,o,a,s,l,c,u,d,f,p,h;for(t=t||this._selectors,n=0,r=t.length;r>n;n++){for(a=t[n],o=a.length,h=e,p=0,i=o-1;i>=0;i--)for(c=a[i];h;){if(c.psuedo)for(f=h.parent().items(),u=d=f.length;u--&&f[u]!==h;);for(s=0,l=c.length;l>s;s++)if(!c[s](h,u,d)){s=l+1;break}if(s===l){p++;break}if(i===o-1)break;h=h.parent()}if(p===o)return!0}return!1},find:function(e){function n(e,t,i){var o,a,s,l,c,u=t[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==t.length-1?r.push(c):c.items&&n(c.items(),t,i+1);else if(u.direct)return;c.items&&n(c.items(),t,i)}}var r=[],i,s,l=this._selectors;if(e.items){for(i=0,s=l.length;s>i;i++)n(e.items(),l[i],0);s>1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(j,[d,q,U],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var n=this,i,o,a=[],s,l;for("string"==typeof e?(e=new t(e),l=function(t){return e.match(t)}):l=e,i=0,o=n.length;o>i;i++)s=n[i],l(s)&&a.push(s);return new r(a)},slice:function(){return new r(a.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new r(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,t){var n=this,r,i;return t!==r?(n.each(function(n){n[e]&&n[e](t)}),n):(i=n[0],i&&i[e]?i[e]():void 0)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n},remove:function(){for(var e=this.length;e--;)this[e].remove();return this}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){i[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name disabled active selected checked visible parent value data".split(" "),function(e){i[e]=function(t){return this.prop(e,t)}}),r=n.extend(i),t.Collection=r,r}),r(Y,[d,y],function(e,t){var n=0;return{id:function(){return"mceu_"+n++},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var r=e.getBoundingClientRect();t=Math.max(r.width||r.right-r.left,e.offsetWidth),n=Math.max(r.height||r.bottom-r.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,n){return t.DOM.getPos(e,n)},getViewPort:function(e){return t.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},getRuntimeStyle:function(e,n){return t.DOM.getStyle(e,n,!0)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)},innerHtml:function(e,n){t.DOM.setHTML(e,n)}}}),r(K,[U,d,$,j,Y],function(e,t,n,r,i){function o(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e._rendered&&e.bindPendingEvents())}})),e._eventDispatcher}var a="onmousewheel"in document,s=!1,l="mce-",c=e.extend({Statics:{classPrefix:l},isRtl:function(){return c.rtl},classPrefix:l,init:function(e){var n=this,r,o;if(n.settings=e=t.extend({},n.Defaults,e),n._id=e.id||i.id(),n._text=n._name="",n._width=n._height=0,n._aria={role:e.role},this._elmCache={},r=e.classes)for(r=r.split(" "),r.map={},o=r.length;o--;)r.map[r[o]]=!0;n._classes=r||[],n.visible(!0),t.each("title text width height name classes visible disabled active value".split(" "),function(t){var r=e[t],i;r!==i?n[t](r):n["_"+t]===i&&(n["_"+t]=!1)}),n.on("click",function(){return n.disabled()?!1:void 0}),e.classes&&t.each(e.classes.split(" "),function(e){n.addClass(e)}),n.settings=e,n._borderBox=n.parseBox(e.border),n._paddingBox=n.parseBox(e.padding),n._marginBox=n.parseBox(e.margin),e.hidden&&n.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseFloat(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,t=e.settings,n,r,o=e.getEl(),a,s,l,c,u,d,f,p;n=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),p=i.getSize(o),d=t.minWidth,f=t.minHeight,l=d||p.width,c=f||p.height,a=t.width,s=t.height,u=t.autoResize,u="undefined"!=typeof u?u:!a&&!s,a=a||l,s=s||c;var h=n.left+n.right,m=n.top+n.bottom,g=t.maxWidth||65535,v=t.maxHeight||65535;return e._layoutRect=r={x:t.x||0,y:t.y||0,w:a,h:s,deltaW:h,deltaH:m,contentW:a-h,contentH:s-m,innerW:a-h,innerH:s-m,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,g),minH:Math.min(c,v),maxW:g,maxH:v,autoResize:u,scrollW:0},e._lastLayoutRect={},r},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=i<n.minW?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=i<n.minH?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=i<n.minW-o?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=i<n.minH-a?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=c.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s,l;l=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=l(r.x)+"px",s.x=r.x),r.y!==s.y&&(t.top=l(r.y)+"px",s.y=r.y),r.w!==s.w&&(t.width=l(r.w-o)+"px",s.w=r.w),r.h!==s.h&&(t.height=l(r.h-a)+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=l(r.innerW)+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=l(r.innerH)+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;return i&&(t=i[e])?(n=r,!1):void 0}),t.call(n,i)}}var r=this;return o(r).on(e,n(t)),r},off:function(e,t){return o(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=o(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return o(this).has(e)},parents:function(e){var t=this,n,i=new r;for(n=t.parent();n;n=n.parent())i.add(n);return e&&(i=i.filter(e)),i},parentsAndSelf:function(e){return new r(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},innerHtml:function(e){return i.innerHtml(this.getEl(),e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=i.get(t)),this._elmCache[t]},visible:function(e){var t=this,n;return"undefined"!=typeof e?(t._visible!==e&&(t._rendered&&(t.getEl().style.display=e?"":"none"),t._visible=e,n=t.parent(),n&&(n._lastRect=null),t.fire(e?"show":"hide")),t):t._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n._rendered&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return c.translate?c.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,o;if(e.items){var a=e.items().toArray();for(o=a.length;o--;)a[o].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&i.off(t);var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e._rendered=!1,e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(i.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(i.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,r,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||i.css(e.getEl(),"display","none"),e.settings.border&&(r=e.borderBox(),i.css(e.getEl(),{"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);return i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;r<s.length&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;i<a.length;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function r(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,l,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),l=0,c=u.length;!d&&c>l;l++)d=u[l]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=l,l=0;c>l;l++)u[l]._eventsRoot=d;var h=d._delegates;h||(h=d._delegates={});for(p in f){if(!f)return!1;"wheel"!==p||s?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(i.on(d.getEl(),"mouseleave",t),i.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):h[p]||(i.on(d.getEl(),p,e),h[p]=!0),f[p]=!1):a?i.on(o.getEl(),"mousewheel",r):i.on(o.getEl(),"DOMMouseScroll",r)}}},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){return this.repaint(),this}});return c}),r(G,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(X,[],function(){return function(e){function t(e){return e=e||b,e&&e.getAttribute("role")}function n(e){for(var n,r=e||b;r=r.parentNode;)if(n=t(r))return n}function r(e){var t=b;return t?t.getAttribute("aria-"+e):void 0}function i(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t}function o(e){return i(e)&&!e.hidden?!0:/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(t(e))?!0:!1}function a(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display){o(e)&&n.push(e);for(var r=0;r<e.childNodes.length;r++)t(e.childNodes[r])}}var n=[];return t(e||y.getEl()),n}function s(e){var t,n;e=e||C,n=e.parents().toArray(),n.unshift(e);for(var r=0;r<n.length&&(t=n[r],!t.settings.ariaRoot);r++);return t}function l(e){var t=s(e),n=a(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?c(t.lastAriaIndex,n):c(0,n)}function c(e,t){return 0>e?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function u(e,t){var n=-1,r=s();t=t||a(r.getEl());for(var i=0;i<t.length;i++)t[i]===b&&(n=i);n+=e,r.lastAriaIndex=c(n,t)}function d(){var e=n();"tablist"==e?u(-1,a(b.parentNode)):C.parent().submenu?g():u(-1)}function f(){var e=t(),i=n();"tablist"==i?u(1,a(b.parentNode)):"menuitem"==e&&"menu"==i&&r("haspopup")?v():u(1)}function p(){u(-1)}function h(){var e=t(),i=n();"menuitem"==e&&"menubar"==i?v():"button"==e&&r("haspopup")?v({key:"down"}):u(1)}function m(e){var t=n();if("tablist"==t){var r=a(C.getEl("body"))[0];r&&r.focus()}else u(e.shiftKey?-1:1)}function g(){C.fire("cancel")}function v(e){e=e||{},C.fire("click",{target:b,aria:e})}var y=e.root,b,C;try{b=document.activeElement}catch(x){b=document.body}return C=y.getParentCtrl(b),y.on("keydown",function(e){function t(e,t){i(b)||t(e)!==!1&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,d);break;case 39:t(e,f);break;case 38:t(e,p);break;case 40:t(e,h);break;case 27:g();break;case 14:case 13:case 32:t(e,v);break;case 9:m(e)!==!1&&e.preventDefault()}}),y.on("focusin",function(e){b=e.target,C=e.control}),{focusFirst:l}}}),r(J,[K,j,q,G,X,d,Y],function(e,t,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var n=this;n._super(e),e=n.settings,n._fixed=e.fixed,n._items=new t,n.isRtl()&&n.addClass("rtl"),n.addClass("container"),n.addClass("container-body","body"),e.containerCls&&n.addClass(e.containerCls),n._layout=r.create((e.layout||n.layout)+"layout"),n.settings.items&&n.add(n.settings.items),n._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new n(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t
+},focus:function(e){var t=this,n,r,i;return e&&(r=t.keyboardNav||t.parents().eq(-1)[0].keyboardNav)?void r.focusFirst(t):(i=t.find("*"),t.statusbar&&i.add(t.statusbar.items()),i.each(function(e){return e.settings.autofocus?(n=null,!1):void(e.canFocus&&(n=n||e))}),n&&n.focus(),t)},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&n<=r.childNodes.length-1?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t<i.length-1&&(t+=1),t>=0&&t<i.length&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,t={};return e.find("*").each(function(e){var n=e.name(),r=e.value();n&&"undefined"!=typeof r&&(t[n]=r)}),t},preRender:function(){},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;return n&&n.w==t.w&&n.h==t.h?void 0:(e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0)},reflow:function(){var t;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(Q,[Y],function(e){function t(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(n,r){function i(){return a.getElementById(r.handle||n)}var o,a=document,s,l,c,u,d,f;r=r||{},l=function(n){var l=t(),p,h;n.preventDefault(),s=n.button,p=i(),d=n.screenX,f=n.screenY,h=window.getComputedStyle?window.getComputedStyle(p,null).getPropertyValue("cursor"):p.runtimeStyle.cursor,o=a.createElement("div"),e.css(o,{position:"absolute",top:0,left:0,width:l.width,height:l.height,zIndex:2147483647,opacity:1e-4,cursor:h}),a.body.appendChild(o),e.on(a,"mousemove",u),e.on(a,"mouseup",c),r.start(n)},u=function(e){return e.button!==s?c(e):(e.deltaX=e.screenX-d,e.deltaY=e.screenY-f,e.preventDefault(),void r.drag(e))},c=function(t){e.off(a,"mousemove",u),e.off(a,"mouseup",c),o.parentNode.removeChild(o),r.stop&&r.stop(t)},this.destroy=function(){e.off(i())},e.on(i(),"mousedown",l)}}),r(Z,[Y,Q],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,c,u){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),i.getEl("absend")&&e.css(i.getEl("absend"),y,i.layoutRect()[l]-1),!c)return void e.css(f,"display","none");e.css(f,"display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+u]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e.css(f,v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e.css(p,v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var c,u=i._id+"-scroll"+n,d=i.classPrefix;i.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+n+'"><div id="'+u+'t" class="'+d+'scrollbar-thumb"></div></div>')),i.draghelper=new t(u+"t",{start:function(){c=i.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var t,u,d,f,p=i.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=u&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=c+e["delta"+s]/t},stop:function(){e.removeClass(e.get(u),d+"active")}})}i.addClass("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e.on(i.getEl("body"),"scroll",n)),n())}}}),r(et,[J,Z],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}})}),r(tt,[Y],function(e){function t(t,n,r){var i,o,a,s,l,c,u,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t._fixed&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,c=p.height,p=e.getSize(n),u=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=u),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(u/2)),"b"===r[3]&&(s-=c),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(c/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:c}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o<r.length;o++){var a=t(this,n,r[o]);if(this._fixed){if(a.x>0&&a.x+a.w<i.w&&a.y>0&&a.y+a.h<i.h)return r[o]}else if(a.x>i.x&&a.x+a.w<i.w+i.x&&a.y>i.y&&a.y+a.h<i.h+i.y)return r[o]}return r[0]},moveRel:function(e,n){"string"!=typeof n&&(n=this.testMoveRel(e,n));var r=t(this,e,n);return this.moveTo(r.x,r.y)},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(t,n){function r(e,t,n){return 0>e?0:e+n>t?(e=t-n,0>e?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i._rendered?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(nt,[Y],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(rt,[et,tt,nt,Y],function(e,t,n,r){function i(){function e(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}u||(u=function(t){if(2!=t.button)for(var n=p.length;n--;){var r=p[n],i=r.getParentCtrl(t.target);if(r.settings.autohide){if(i&&(e(i,r)||r.parent()===i))continue;t=r.fire("autohide",{target:t.target}),t.isDefaultPrevented()||r.hide()}}},r.on(document,"click",u))}function o(){d||(d=function(){var e;for(e=p.length;e--;)s(p[e])},r.on(window,"scroll",d))}function a(){if(!f){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;f=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,g.hideAll())},r.on(window,"resize",f)}}function s(e){function t(t,n){for(var r,i=0;i<p.length;i++)if(p[i]!=e)for(r=p[i].parent();r&&(r=r.parent());)r==e&&p[i].fixed(t).moveBy(0,n).repaint()}var n=r.getViewPort().y;e.settings.autofix&&(e._fixed?e._autoFixY>n&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY<n&&(e.fixed(!0).layoutRect({y:0}).repaint(),t(!0,n-e._autoFixY))))}function l(e,t){var n,i=g.zIndex||65535,o;if(e)h.push(t);else for(n=h.length;n--;)h[n]===t&&h.splice(n,1);if(h.length)for(n=0;n<h.length;n++)h[n].modal&&(i++,o=h[n]),h[n].getEl().style.zIndex=i,h[n].zIndex=i,i++;var a=document.getElementById(t.classPrefix+"modal-block");o?r.css(a,"z-index",o.zIndex-1):a&&(a.parentNode.removeChild(a),m=!1),g.currentZIndex=i}function c(e){var t;for(t=p.length;t--;)p[t]===e&&p.splice(t,1);for(t=h.length;t--;)h[t]===e&&h.splice(t,1)}var u,d,f,p=[],h=[],m,g=e.extend({Mixins:[t,n],init:function(e){var t=this;t._super(e),t._eventsRoot=t,t.addClass("floatpanel"),e.autohide&&(i(),a(),p.push(t)),e.autofix&&(o(),t.on("move",function(){s(this)})),t.on("postrender show",function(e){if(e.control==t){var n,i=t.classPrefix;t.modal&&!m&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,t.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(t.getEl(),i+"in")},0),m=!0),l(!0,t)}}),t.on("show",function(){t.parents().each(function(e){return e._fixed?(t.fixed(!0),!1):void 0})}),e.popover&&(t._preBodyHtml='<div class="'+t.classPrefix+'arrow"></div>',t.addClass("popover").addClass("bottom").addClass(t.isRtl()?"end":"start"))},fixed:function(e){var t=this;if(t._fixed!=e){if(t._rendered){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.toggleClass("fixed",e),t._fixed=e}return t},show:function(){var e=this,t,n=e._super();for(t=p.length;t--&&p[t]!==e;);return-1===t&&p.push(e),n},hide:function(){return c(this),l(!1,this),this._super()},hideAll:function(){g.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),l(!1,e)),e},remove:function(){c(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return g.hideAll=function(){for(var e=p.length;e--;){var t=p[e];t&&t.settings.autohide&&(t.hide(),p.splice(e,1))}},g}),r(it,[rt,et,Y,Q],function(e,t,n,r){var i=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.addClass("rtl"),n.addClass("window"),n._fixed=!0,e.buttons&&(n.statusbar=new t({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.addClass("foot"),n.statusbar.parent(n)),n.on("click",function(e){-1!=e.target.className.indexOf(n.classPrefix+"close")&&n.close()}),n.on("cancel",function(){n.close()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,r,i,o,a;e._fullscreen&&(e.layoutRect(n.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),r=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=r.headerW,i>r.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=Math.max(0,a.w/2-t.w/2),t.y=Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='<div id="'+n+'-head" class="'+r+'window-head"><div id="'+n+'-title" class="'+r+'title">'+e.encode(i.title)+'</div><button type="button" class="'+r+'close" aria-hidden="true">\xd7</button><div id="'+n+'-dragh" class="'+r+'dragh"></div></div>'),i.url&&(s='<iframe src="'+i.url+'" tabindex="-1"></iframe>'),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes()+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.classes("body")+'">'+s+"</div>"+a+"</div></div>"},fullscreen:function(e){var t=this,r=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(n.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,n.addClass(r,o+"fullscreen"),n.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=n.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,n.removeClass(r,o+"fullscreen"),n.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.addClass("in")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new r(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t=e.classPrefix;e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),e._fullscreen&&(n.removeClass(document.documentElement,t+"fullscreen"),n.removeClass(document.body,t+"fullscreen"))},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return i}),r(ot,[it],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(at,[it,ot],function(e,t){return function(n){function r(){return o.length?o[o.length-1]:void 0}var i=this,o=[];i.windows=o,n.on("remove",function(){for(var e=o.length;e--;)o[e].close()}),i.open=function(t,r){var i;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),i=new e(t),o.push(i),i.on("close",function(){for(var e=o.length;e--;)o[e]===i&&o.splice(e,1);o.length||n.focus()}),t.data&&i.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),i.features=t||{},i.params=r||{},1===o.length&&n.nodeChanged(),i.renderTo().reflow()},i.alert=function(e,r,i){t.alert(e,function(){r?r.call(i||this):n.focus()})},i.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},i.close=function(){r()&&r().close()},i.getParams=function(){return r()?r().params:null},i.setParams=function(e){r()&&(r().params=e)},i.getWindows=function(){return o}}}),r(st,[B,x,_,g,u,d],function(e,t,n,r,i,o){return function(a){function s(e,t){try{a.getDoc().execCommand(e,!1,t)}catch(n){}}function l(){var e=a.getDoc().documentMode;return e?e:6}function c(e){return e.isDefaultPrevented()}function u(){function t(e){var t=new i(function(){});o.each(a.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&a.dom.setAttrib(e,"style",a.dom.getAttrib(e,"style"))}),t.observe(a.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),a.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null);var n=a.selection.getRng(),r=n.startContainer.parentNode;o.each(t.takeRecords(),function(e){if(q.isChildOf(e.target,a.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}o.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),q.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),a.selection.setRng(n))}})}}),t.disconnect(),o.each(a.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")})}var n=a.getDoc(),r="data:text/mce-internal,",i=window.MutationObserver,s,l;i||(s=!0,i=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),a.on("keydown",function(n){var r=n.keyCode==$,i=e.metaKeyPressed(n);if(!c(n)&&(r||n.keyCode==U)){var o=a.selection.getRng(),s=o.startContainer,l=o.startOffset;if(!i&&o.collapsed&&3==s.nodeType&&(r?l<s.data.length:l>0))return;n.preventDefault(),i&&a.selection.getSel().modify("extend",r?"forward":"backward","word"),t(r)}}),a.on("keypress",function(n){c(n)||j.isCollapsed()||!n.charCode||e.metaKeyPressed(n)||(n.preventDefault(),t(!0),a.selection.setContent(String.fromCharCode(n.charCode)))}),a.addCommand("Delete",function(){t()}),a.addCommand("ForwardDelete",function(){t(!0)}),s||(a.on("dragstart",function(e){var t;a.selection.isCollapsed()&&"IMG"==e.target.tagName&&j.select(e.target),l=j.getRng(),t=a.selection.getContent(),t.length>0&&e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(t))}),a.on("drop",function(e){if(!c(e)){var i=e.dataTransfer.getData("URL");if(!i||-1==i.indexOf(r)||!n.caretRangeFromPoint)return;i=unescape(i.substr(r.length)),n.caretRangeFromPoint&&(e.preventDefault(),window.setTimeout(function(){var r=n.caretRangeFromPoint(e.x,e.y);l&&(j.setRng(l),l=null),t(),j.setRng(r),a.insertContent(i)},0))}}),a.on("cut",function(e){!c(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",a.selection.getContent()),e.clipboardData.setData("text/plain",a.selection.getContent({format:"text"})),t(!0))}))}function d(){function e(e){var t=q.create("body"),n=e.cloneContents();return t.appendChild(n),j.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(a.getBody()),t.compareRanges(n,r)}var i=e(n),o=q.createRng();o.selectNode(a.getBody());var s=e(o);return i===s}a.on("keydown",function(e){var t=e.keyCode,r,i;if(!c(e)&&(t==$||t==U)){if(r=a.selection.isCollapsed(),i=a.getBody(),r&&!q.isEmpty(i))return;if(!r&&!n(a.selection.getRng()))return;e.preventDefault(),a.setContent(""),i.firstChild&&q.isBlock(i.firstChild)?a.selection.setCursorLocation(i.firstChild,0):a.selection.setCursorLocation(i,0),a.nodeChanged()}})}function f(){a.shortcuts.add("ctrl+a",null,"SelectAll")}function p(){a.settings.content_editable||(q.bind(a.getDoc(),"focusin",function(){j.setRng(j.getRng())}),q.bind(a.getDoc(),"mousedown mouseup",function(e){e.target==a.getDoc().documentElement&&(a.getBody().focus(),"mousedown"==e.type?j.placeCaretAt(e.clientX,e.clientY):j.setRng(j.getRng()))}))}function h(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===U){if(!a.getBody().getElementsByTagName("hr").length)return;if(j.isCollapsed()&&0===j.getRng(!0).startOffset){var t=j.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return q.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(q.remove(n),e.preventDefault())}}})}function m(){window.Range.prototype.getClientRects||a.on("mousedown",function(e){if(!c(e)&&"HTML"===e.target.nodeName){var t=a.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function g(){a.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&(e.preventDefault(),j.getSel().setBaseAndExtent(t,0,t,1),a.nodeChanged()),"A"==t.nodeName&&q.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),j.select(t))})}function v(){function e(){var e=q.getAttribs(j.getStart().cloneNode(!1));return function(){var t=j.getStart();t!==a.getBody()&&(q.setAttrib(t,"style",null),V(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!j.isCollapsed()&&q.getParent(j.getStart(),q.isBlock)!=q.getParent(j.getEnd(),q.isBlock)}a.on("keypress",function(n){var r;return c(n)||8!=n.keyCode&&46!=n.keyCode||!t()?void 0:(r=e(),a.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1)}),q.bind(a.getDoc(),"cut",function(n){var r;!c(n)&&t()&&(r=e(),setTimeout(function(){r()},0))})}function y(){document.body.setAttribute("role","application")}function b(){a.on("keydown",function(e){if(!c(e)&&e.keyCode===U&&j.isCollapsed()&&0===j.getRng(!0).startOffset){var t=j.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function C(){l()>7||(s("RespectVisibilityInDesign",!0),a.contentStyles.push(".mceHideBrInPre pre br {display: none}"),q.addClass(a.getBody(),"mceHideBrInPre"),K.addNodeFilter("pre",function(e){for(var t=e.length,r,i,o,a;t--;)for(r=e[t].getAll("br"),i=r.length;i--;)o=r[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new n("#text",3),o,!0).value="\n"}),G.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function x(){q.bind(a.getBody(),"mouseup",function(){var e,t=j.getNode();"IMG"==t.nodeName&&((e=q.getStyle(t,"width"))&&(q.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"width","")),(e=q.getStyle(t,"height"))&&(q.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),q.setStyle(t,"height","")))})}function w(){a.on("keydown",function(t){var n,r,i,o,s;if(!c(t)&&t.keyCode==e.BACKSPACE&&(n=j.getRng(),r=n.startContainer,i=n.startOffset,o=q.getRoot(),s=r,n.collapsed&&0===i)){for(;s&&s.parentNode&&s.parentNode.firstChild==s&&s.parentNode!=o;)s=s.parentNode;"BLOCKQUOTE"===s.tagName&&(a.formatter.toggle("blockquote",null,s),n=q.createRng(),n.setStart(r,0),n.setEnd(r,0),j.setRng(n))}})}function _(){function e(){a._refreshContentEditable(),s("StyleWithCSS",!1),s("enableInlineTableEditing",!1),Y.object_resizing||s("enableObjectResizing",!1)}Y.readonly||a.on("BeforeExecCommand MouseDown",e)}function E(){function e(){V(q.select("a"),function(e){var t=e.parentNode,n=q.getRoot();if(t.lastChild===e){for(;t&&!q.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}q.add(t,"br",{"data-mce-bogus":1})}})}a.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function N(){Y.forced_root_block&&a.on("init",function(){s("DefaultParagraphSeparator",Y.forced_root_block)})}function k(){a.on("Undo Redo SetContent",function(e){e.initial||a.execCommand("mceRepaint")})}function S(){a.on("keydown",function(e){var t;c(e)||e.keyCode!=U||(t=a.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),a.undoManager.beforeChange(),q.remove(t.item(0)),a.undoManager.add()))})}function T(){var e;l()>=10&&(e="",V("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),a.contentStyles.push(e+"{padding-right: 1px !important}"))}function R(){l()<9&&(K.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),G.addNodeFilter("noscript",function(e){for(var t=e.length,i,o,a;t--;)i=e[t],o=e[t].firstChild,o?o.value=r.decode(o.value):(a=i.attributes.map["data-mce-innertext"],a&&(i.attr("data-mce-innertext",null),o=new n("#text",3),o.value=a,o.raw=!0,i.append(o)))}))}function A(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),q.unbind(r,"mouseup",n),q.unbind(r,"mousemove",t),a=o=0}var r=q.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,q.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(q.bind(r,"mouseup",n),q.bind(r,"mousemove",t),q.getRoot().focus(),a.select())}})}function B(){a.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||j.normalize()},!0)}function D(){a.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function L(){a.inline||a.on("keydown",function(){document.activeElement==document.body&&a.getWin().focus()})}function H(){a.inline||(a.contentStyles.push("body {min-height: 150px}"),a.on("click",function(e){"HTML"==e.target.nodeName&&(a.getBody().focus(),a.selection.normalize(),a.nodeChanged())}))}function M(){i.mac&&a.on("keydown",function(t){!e.metaKeyPressed(t)||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),a.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","word"))})}function P(){s("AutoUrlDetect",!1)}function O(){a.inline||a.on("focus blur beforegetcontent",function(){var e=a.dom.create("br");a.getBody().appendChild(e),e.parentNode.removeChild(e)},!0)}function I(){a.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),a.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function F(){a.on("touchstart",function(e){var t,n,r,i;t=e.target,n=(new Date).getTime(),i=e.changedTouches,!i||i.length>1||(r=i[0],a.once("touchend",function(e){var i=e.changedTouches[0],o;(new Date).getTime()-n>500||Math.abs(r.clientX-i.clientX)>5||Math.abs(r.clientY-i.clientY)>5||(o={target:t},V("pageX pageY clientX clientY screenX screenY".split(" "),function(e){o[e]=i[e]}),o=a.fire("click",o),o.isDefaultPrevented()||(a.selection.placeCaretAt(i.clientX,i.clientY),a.nodeChanged()))}))})}function z(){a.on("init",function(){a.dom.bind(a.getBody(),"submit",function(e){e.preventDefault()})})}function W(){K.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}var V=o.each,U=e.BACKSPACE,$=e.DELETE,q=a.dom,j=a.selection,Y=a.settings,K=a.parser,G=a.serializer,X=i.gecko,J=i.ie,Q=i.webkit;w(),d(),B(),Q&&(u(),p(),g(),N(),z(),b(),W(),F(),i.iOS?(L(),H(),I()):f()),J&&i.ie<11&&(h(),y(),C(),x(),S(),T(),R(),A()),i.ie>=11&&(H(),O(),b()),i.ie&&(f(),P()),X&&(h(),m(),v(),_(),E(),k(),D(),M(),b())}}),r(lt,[$],function(e){function t(t){return t._eventDispatcher||(t._eventDispatcher=new e({scope:t,toggleEvent:function(n,r){e.isNative(n)&&t.toggleNativeEvent&&t.toggleNativeEvent(n,r)}})),t._eventDispatcher}return{fire:function(e,n,r){var i=this;if(i.removed&&"remove"!==e)return n;if(n=t(i).fire(e,n,r),r!==!1&&i.parent)for(var o=i.parent();o&&!n.isPropagationStopped();)o.fire(e,n,!1),o=o.parent();return n},on:function(e,n,r){return t(this).on(e,n,r)},off:function(e,n){return t(this).off(e,n)},once:function(e,n){return t(this).once(e,n)},hasEventListeners:function(e){return t(this).has(e)}}}),r(ct,[lt,y,d],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){var n=r(e,t),i;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;i=function(n){for(var r=n.target,i=e.editorManager.editors,a=i.length;a--;){var s=i[a].getBody();(s===r||o.isChildOf(r,s))&&(i[a].hidden||i[a].fire(t,n))}},a[t]=i,o.bind(n,t,i)}else i=function(n){e.hidden||e.fire(t,n)},o.bind(n,t,i),e.delegates[t]=i}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;n.settings.readonly||"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(ut,[d,u],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122};return function(o){var a=this,s={};o.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&!e.isDefaultPrevented()&&n(s,function(n){var r=t.mac?e.metaKey:e.ctrlKey;if(n.ctrl==r&&n.alt==e.altKey&&n.shift==e.shiftKey)return e.keyCode==n.keyCode||e.charCode&&e.charCode==n.charCode?(e.preventDefault(),"keydown"==e.type&&n.func.call(n.scope),!0):void 0
+})}),a.add=function(t,a,l,c){var u;return u=l,"string"==typeof l?l=function(){o.execCommand(u,!1,null)}:e.isArray(u)&&(l=function(){o.execCommand(u[0],u[1],u[2])}),n(r(t.toLowerCase()),function(e){var t={func:l,scope:c||o,desc:o.translate(a),alt:!1,ctrl:!1,shift:!1};n(r(e,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":t[e]=!0;break;default:/^[0-9]{2,}$/.test(e)?t.keyCode=parseInt(e,10):(t.charCode=e.charCodeAt(0),t.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}}),s[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t}),!0}}}),r(dt,[y,f,C,w,_,R,T,H,O,I,F,z,W,V,b,l,at,E,k,st,u,d,ct,ut],function(e,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E){function N(e,t,i){var o=this,a,s;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,o.settings=t=R({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},t),r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.isNotDirty=!0,o.plugins={},o.documentBaseURI=new h(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new E(o),o.execCommands={},o.queryStateCommands={},o.queryValueCommands={},o.loadedCSS={},t.target&&(o.targetElm=t.target),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,t.cache_suffix&&(x.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var k=e.DOM,S=r.ThemeManager,T=r.PluginManager,R=w.extend,A=w.each,B=w.explode,D=w.inArray,L=w.trim,H=w.resolve,M=g.Event,P=x.gecko,O=x.ie;return N.prototype={render:function(){function e(){k.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!S.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",S.load(r.theme,t)}w.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),A(r.external_plugins,function(e,t){T.load(t,e),r.plugins+=" "+t}),A(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!T.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=T.dependencies(e);A(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=T.createUrl(t,e),T.load(e.resource,e)})}else T.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return void k.bind(window,"ready",e);if(n.getElement()&&x.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||k.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(k.insertAfter(k.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},k.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=!0,a._mceOldSubmit(a)})),n.windowManager=new v(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=k.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),t()}},init:function(){function e(n){var r=T.get(n),i,o;i=T.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===D(m,n)&&(A(T.dependencies(n),function(t){e(t)}),o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,h,m=[];if(t.rtl=this.editorManager.i18n.rtl,t.editorManager.add(t),n.aria_label=n.aria_label||k.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),c=S.get(n.theme),t.theme=new c(t,S.urls[n.theme]),t.theme.init&&t.theme.init(t,S.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),A(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&A(B(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!x.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',h=0;h<t.contentCSS.length;h++){var g=t.contentCSS[h];t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+w._addCacheSuffix(g)+'" />',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",-1!=d.indexOf("=")&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",-1!=f.indexOf("=")&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+n.content_security_policy+'" />'),t.iframeHTML+='</head><body id="'+d+'" class="mce-content-body '+f+'" data-id="'+t.id+'"><br></body></html>';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&(u=v);var y=k.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},k.setAttrib(y,"src",u||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=k.add(l.iframeContainer,y),O)try{t.getDoc()}catch(b){s.src=u=v}l.editorContainer&&(k.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=k.isHidden(l.editorContainer)),t.getElement().style.display="none",k.setAttrib(t.id,"aria-hidden",!0),u||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),h=n.getDoc(),m,g;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(h.open(),h.write(n.iframeHTML),h.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();k.removeClass(e,"mce-content-body"),k.removeClass(e,"mce-edit-focus"),k.setAttrib(e,"contentEditable",null)}),k.addClass(s,"mce-content-body"),n.contentDocument=h=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),m=n.getBody(),m.disabled=!0,r.readonly||(n.inline&&"static"==k.getStyle(m,"position",!0)&&(m.style.position="relative"),m.contentEditable=n.getParam("content_editable_state",!0)),m.disabled=!1,n.schema=new y(r),n.dom=new e(h,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new b(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)i=e[r],a=i.attr(t),s="data-mce-"+t,i.attributes.map[s]||("style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name)))}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"no/type"))}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new c(n),n.undoManager=new u(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n.editorCommands=new p(n),n._nodeChangeDispatcher=new i(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(h.body.spellcheck=!1,k.setAttrib(m,"spellcheck","false")),n.fire("PostRender"),n.quirks=new C(n),r.directionality&&(m.dir=r.directionality),r.nowrap&&(m.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){A(r.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.contentStyles.length>0&&(g="",A(n.contentStyles,function(e){g+=e+"\r\n"}),n.dom.addStyle(g)),A(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&setTimeout(function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.focus()},100),s=h=m=null},focus:function(e){var t=this,n=t.selection,r=t.settings.content_editable,i,o,a=t.getDoc(),s;if(!e){if(i=n.getRng(),i.item&&(o=i.item(0)),t._refreshContentEditable(),r||(x.opera||t.getBody().focus(),t.getWin().focus()),P||r){if(s=t.getBody(),s.setActive)try{s.setActive()}catch(l){s.focus()}else s.focus();r&&n.normalize()}o&&o.ownerDocument==a&&(i=a.body.createControlRange(),i.addElement(o),i.select())}t.editorManager.setActive(t)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?H(r):0,n=H(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?A(r.split(r.indexOf("=")>0?/[;,](?![^=;,]*(?:[;,]|$))/:","),function(e){e=e.split("="),i[L(e[0])]=L(e.length>1?e[1]:e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){var i=this,o=0,a;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||r&&r.skip_focus||i.focus(),r=R({},r),r=i.fire("BeforeExecCommand",{command:e,ui:t,value:n}),r.isDefaultPrevented())return!1;if((a=i.execCommands[e])&&a.func.call(a.scope,t,n)!==!0)return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;if(A(i.plugins,function(r){return r.execCommand&&r.execCommand(e,t,n)?(i.fire("ExecCommand",{command:e,ui:t,value:n}),o=!0,!1):void 0}),o)return o;if(i.theme&&i.theme.execCommand&&i.theme.execCommand(e,t,n))return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;if(i.editorCommands.execCommand(e,t,n))return i.fire("ExecCommand",{command:e,ui:t,value:n}),!0;try{o=i.getDoc().execCommand(e,t,n)}catch(s){}return o?(i.fire("ExecCommand",{command:e,ui:t,value:n}),!0):!1},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r===!0||r===!1))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(k.show(e.getContainer()),k.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(O&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(k.hide(e.getContainer()),k.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):void 0},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=k.getParent(t.id,"form"))&&A(i.elements,function(e){return e.name==t.id?(e.value=r,!1):void 0})),e.element=n=null,e.set_dirty!==!1&&(t.isNotDirty=!0),r},setContent:function(e,t){var n=this,r=n.getBody(),i;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=O&&11>O?"":'<br data-mce-bogus="1">',e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):O||(e='<br data-mce-bogus="1">'),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=L(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=R({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var e=this;return e.container||(e.container=k.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=k.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),A(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&k.remove(e.getElement().nextSibling),e.inline||(O&&10>O&&e.getDoc().execCommand("SelectAll",!1,null),k.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),k.remove(e.getContainer()),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),k.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return P?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},R(N.prototype,_),N}),r(ft,[],function(){var e={};return{rtl:!1,add:function(t,n){for(var r in n)e[r]=n[r];this.rtl=this.rtl||"rtl"===e._dir},translate:function(t){if("undefined"==typeof t)return t;if("string"!=typeof t&&t.raw)return t.raw;if(t.push){var n=t.slice(1);t=(e[t[0]]||t[0]).replace(/\{([^\}]+)\}/g,function(e,t){return n[t]})}return e[t]||t},data:e}}),r(pt,[y,u],function(e,t){function n(e){function s(){try{return document.activeElement}catch(e){return document.body}}function l(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function c(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function u(e){return!!a.getParent(e,n.isEditorUIElement)}function d(n){var d=n.editor;d.on("init",function(){(d.inline||t.ie)&&("onbeforedeactivate"in document&&t.ie<9?d.dom.bind(d.getBody(),"beforedeactivate",function(e){if(e.target==d.getBody())try{d.lastRng=d.selection.getRng()}catch(t){}}):d.on("nodechange mouseup keyup",function(e){var t=s();"nodechange"==e.type&&e.selectionChange||(t&&t.id==d.id+"_ifr"&&(t=d.getBody()),d.dom.isChildOf(t,d.getBody())&&(d.lastRng=d.selection.getRng()))}),t.webkit&&!r&&(r=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(d.lastRng=n)}},a.bind(document,"selectionchange",r)))}),d.on("setcontent",function(){d.lastRng=null}),d.on("mousedown",function(){d.selection.lastFocusBookmark=null}),d.on("focusin",function(){var t=e.focusedEditor;d.selection.lastFocusBookmark&&(d.selection.setRng(c(d,d.selection.lastFocusBookmark)),d.selection.lastFocusBookmark=null),t!=d&&(t&&t.fire("blur",{focusedEditor:d}),e.setActive(d),e.focusedEditor=d,d.fire("focus",{blurredEditor:t}),d.focus(!0)),d.lastRng=null}),d.on("focusout",function(){window.setTimeout(function(){var t=e.focusedEditor;u(s())||t!=d||(d.fire("blur",{focusedEditor:null}),e.focusedEditor=null,d.selection&&(d.selection.lastFocusBookmark=null))},0)}),i||(i=function(t){var n=e.activeEditor;n&&t.target.ownerDocument==document&&(n.selection&&t.target!=n.getBody()&&(n.selection.lastFocusBookmark=l(n.dom,n.lastRng)),t.target==document.body||u(t.target)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},a.bind(document,"focusin",i)),d.inline&&!o&&(o=function(t){var n=e.activeEditor;if(n.inline&&!n.dom.isChildOf(t.target,n.getBody())){var r=n.selection.getRng();r.collapsed||(n.lastRng=r)}},a.bind(document,"mouseup",o))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(a.unbind(document,"selectionchange",r),a.unbind(document,"focusin",i),a.unbind(document,"mouseup",o),r=i=o=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var r,i,o,a=e.DOM;return n.isEditorUIElement=function(e){return-1!==e.className.toString().indexOf("mce-")},n}),r(ht,[dt,f,y,V,u,d,lt,ft,pt],function(e,t,n,r,i,o,a,s,l){function c(e){var t=v.editors,n;delete t[e.id];for(var r=0;r<t.length;r++)if(t[r]==e){t.splice(r,1),n=!0;break}return v.activeEditor==e&&(v.activeEditor=t[0]),v.focusedEditor==e&&(v.focusedEditor=null),n}function u(e){return e&&!(e.getContainer()||e.getBody()).parentNode&&(c(e),e.unbindAllNativeEvents(),e.destroy(!0),e=null),e}var d=n.DOM,f=o.explode,p=o.each,h=o.extend,m=0,g,v;return v={$:t,majorVersion:"4",minorVersion:"1.7",releaseDate:"2014-11-27",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o,a;if(n=document.location.href,/^[^:]+:\/\/\/?[^\/]+\//.test(n)&&(n=n.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/")),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else{for(var s=document.getElementsByTagName("script"),c=0;c<s.length;c++)if(a=s[c].src,/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(a)){-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/"));break}!t&&document.currentScript&&(a=document.currentScript.src,-1!=a.indexOf(".min")&&(i=".min"),t=a.substring(0,a.lastIndexOf("/")))}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!d.get(t)?e.name:d.uniqueId(),e.setAttribute("id",t)),t}function r(t,n,r){if(!u(s.get(t))){var i=new e(t,n,s);i.targetElm=i.targetElm||r,l.push(i),i.render()}}function i(e){var n=t[e];if(n)return n.apply(s,Array.prototype.slice.call(arguments,2))}function o(e,t){return t.constructor===RegExp?t.test(e.className):d.hasClass(e,t)}function a(){var e,s;if(d.unbind(window,"ready",a),i("onpageload"),t.types)return void p(t.types,function(e){p(d.select(e.selector),function(i){r(n(i),h({},t,e),i)})});if(t.selector)return void p(d.select(t.selector),function(e){r(n(e),t,e)});switch(t.target&&r(n(t.target),t),t.mode){case"exact":e=t.elements||"",e.length>0&&p(f(e),function(e){var n;(n=d.get(e))?r(e,t,n):p(document.forms,function(n){p(n.elements,function(n){n.name===e&&(e="mce_editor_"+m++,d.setAttrib(n,"id",e),r(e,t,n))})})});break;case"textareas":case"specific_textareas":p(d.select("textarea"),function(e){t.editor_deselector&&o(e,t.editor_deselector)||(!t.editor_selector||o(e,t.editor_selector))&&r(n(e),t,e)})}t.oninit&&(e=s=0,p(l,function(t){s++,t.initialized?e++:t.on("init",function(){e++,e==s&&i("oninit")}),e==s&&i("oninit")}))}var s=this,l=[];s.settings=t,d.bind(window,"ready",a)},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),g||(g=function(){t.fire("BeforeUnload")},d.bind(window,"beforeunload",g)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void p(d.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(c(i)&&t.fire("RemoveEditor",{editor:i}),r.length||d.unbind(window,"beforeunload",g),i.remove(),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){p(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},h(v,a),v.setup(),window.tinymce=window.tinyMCE=v,v}),r(mt,[ht,d],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(gt,[lt,d],function(e,t){var n={send:function(e){function t(){!e.async||4==r.readyState||i++>1e4?(e.success&&1e4>i&&200==r.status?e.success.call(e.success_scope,""+r.responseText,r,e):e.error&&e.error.call(e.error_scope,i>1e4?"TIMED_OUT":"GENERAL",r,e),r=null):setTimeout(t,10)}var r,i=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",r=new XMLHttpRequest){if(r.overrideMimeType&&r.overrideMimeType(e.content_type),r.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(r.withCredentials=!0),e.content_type&&r.setRequestHeader("Content-Type",e.content_type),r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r=n.fire("beforeSend",{xhr:r,settings:e}).xhr,r.send(e.data),!e.async)return t();setTimeout(t,10)}}};return t.extend(n,e),n}),r(vt,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r<t.length;r++)i+=(r>0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(yt,[vt,gt,d],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(bt,[y],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(Ct,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?u+e:i.indexOf(",",u),-1===r||r>i.length?null:(n=i.substring(u,r),u=r+1,n)}var r,i,s,u=0;if(a={},c){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(c){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,c;try{if(window.localStorage)return localStorage}catch(u){}return l="tinymce",o=document.documentElement,c=!!o.addBehavior,c&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(xt,[y,l,b,C,d,u],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(wt,[U,d],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";
+return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(_t,[wt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(Et,[K,tt],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().lastChild.innerHTML=t.encode(e)),t):t._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div></div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Nt,[K,Et],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.toggleClass("tooltip-n","bc-tc"==i),r.toggleClass("tooltip-nw","bc-tl"==i),r.toggleClass("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(kt,[Nt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},icon:function(e){var t=this,n=t.classPrefix;if("undefined"==typeof e)return t.settings.icon;if(t.settings.icon=e,e=e?n+"ico "+n+"i-"+t.settings.icon:"",t._rendered){var r=t.getEl().firstChild,i=r.getElementsByTagName("i")[0];e?(i&&i==r.firstChild||(i=document.createElement("i"),r.insertBefore(i,r.firstChild)),i.className=e):i&&r.removeChild(i),t.text(t._text)}return t},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},text:function(e){var t=this;if(t._rendered){var n=t.getEl().lastChild.lastChild;n&&(n.data=t.translate(e))}return t._super(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i;return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?"\xa0":"")+e.encode(e._text):"")+"</button></div>"}})}),r(St,[J],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(Tt,[Nt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var t=this;return"undefined"!=typeof e?(e?t.addClass("checked"):t.removeClass("checked"),t._checked=e,t.aria("checked",e),t):t._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span></div>"}})}),r(Rt,[Nt,G,Y],function(e,t,n){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("combobox"),t.subinput=!0,t.ariaTarget="inp",e=t.settings,e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){for(var r=n.target,i=t.getEl();r&&r!=i;)r.id&&-1!=r.id.indexOf("-open")&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),r=r.parentNode}),t.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&t.parents().reverse().each(function(n){return e.preventDefault(),t.fire("change"),n.hasEventListeners("submit")&&n.toJSON?(n.fire("submit",{data:n.toJSON()}),!1):void 0})}),e.placeholder&&(t.addClass("placeholder"),t.on("focusin",function(){t._hasOnChange||(n.on(t.getEl("inp"),"change",function(){t.fire("change")}),t._hasOnChange=!0),t.hasClass("placeholder")&&(t.getEl("inp").value="",t.removeClass("placeholder"))}),t.on("focusout",function(){0===t.value().length&&(t.getEl("inp").value=e.placeholder,t.addClass("placeholder"))}))},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t.removeClass("placeholder"),t._rendered&&(t.getEl("inp").value=e),t):t._rendered?(e=t.getEl("inp").value,e!=t.settings.placeholder?e:""):t._value},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl("inp").disabled=e),t._super(e)},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect(),o,a;o=r?i.w-n.getSize(r).width-10:i.w-10;var s=document;return s.all&&(!s.documentMode||s.documentMode<=8)&&(a=e.layoutRect().h-2+"px"),n.css(t.firstChild,{width:o,lineHeight:a}),e._super(),e},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},remove:function(){n.off(this.getEl("inp")),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="",l="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1" role="button"><button id="'+t+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button></div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'"><input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="1"'+l+" />"+s+"</div>"}})}),r(At,[Rt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.addClass("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl().getElementsByTagName("i")[0];if(t)try{t.style.background=e}catch(n){}},value:function(e){var t=this;return"undefined"!=typeof e&&t._rendered&&t.repaintColor(e),t._super(e)}})}),r(Bt,[kt,rt],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(Dt,[Bt,y],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(Lt,[],function(){function e(e){function i(e,i,o){var a,s,l,c,u,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,u=t(e,t(i,o)),d=n(e,n(i,o)),u==d?(l=u,{h:0,s:0,v:100*l}):(c=e==u?i-o:o==u?e-i:o-e,a=e==u?3:o==u?1:5,a=60*(a-c/(d-u)),s=(d-u)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,c;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=p=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),c=o-s,Math.floor(a)){case 0:d=s,f=l,p=0;break;case 1:d=l,f=s,p=0;break;case 2:d=0,f=s,p=l;break;case 3:d=0,f=l,p=s;break;case 4:d=l,f=0,p=s;break;case 5:d=s,f=0,p=l;break;default:d=f=p=0}d=r(255*(d+c)),f=r(255*(f+c)),p=r(255*(p+c))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(p)}function s(){return{r:d,g:f,b:p}}function l(){return i(d,f,p)}function c(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,p=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),p=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),p=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),p=parseInt(t[3]+t[3],16)),d=0>d?0:d>255?255:d,f=0>f?0:f>255?255:f,p=0>p?0:p>255?255:p,u}var u=this,d=0,f=0,p=0;e&&c(e),u.toRgb=s,u.toHsv=l,u.toHex=a,u.parse=c}var t=Math.min,n=Math.max,r=Math.round;return e}),r(Ht,[Nt,Q,Y,Lt],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(p,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),c.s=100*n.x,c.v=100*(1-n.y),i(c),s.fire("change")}function a(t){var n;n=e(u,t),c=l.toHsv(),c.h=360*(1-n.y),i(c,!0),s.fire("change")}var s=this,l=s.color(),c,u,d,f,p;u=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),p=s.getEl("svp"),s._repaint=function(){c=l.toHsv(),i(c)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;t>e;e++)n+='<div class="'+r+'colorpicker-h-chunk" style="height:'+100/t+"%;"+i+a[e]+",endColorstr="+a[e+1]+");-ms-"+i+a[e]+",endColorstr="+a[e+1]+')"></div>';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='<div id="'+n+'-h" class="'+r+'colorpicker-h" style="'+a+'">'+e()+'<div id="'+n+'-hp" class="'+r+'colorpicker-h-marker"></div></div>','<div id="'+n+'" class="'+t.classes()+'"><div id="'+n+'-sv" class="'+r+'colorpicker-sv"><div class="'+r+'colorpicker-overlay1"><div class="'+r+'colorpicker-overlay2"><div id="'+n+'-svp" class="'+r+'colorpicker-selector1"><div class="'+r+'colorpicker-selector2"></div></div></div></div></div>'+i+"</div>"}})}),r(Mt,[Nt],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},data:function(e){var t=this;return"undefined"!=typeof e?(t._data=e,t.update(),t):t._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classes()+'">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'" aria-level="'+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item">\xa0</div>'),i}})}),r(Pt,[Mt,ht],function(e,t){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var n=this,r=t.activeEditor;return n.on("select",function(e){r.focus(),r.selection.select(this.data()[e.index].element),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}n.data(i)}),n._super()}})}),r(Ot,[J],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}})}),r(It,[J,Ot,d],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},recalcLabels:function(){var e=this,t=0,n=[],r,i,o;if(e.settings.labelGapCalc!==!1)for(o="children"==e.settings.labelGapCalc?e.find("formitem"):e.items(),o.filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(Ft,[It],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}})}),r(zt,[Rt,d],function(e,t){return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),(!s||s[e.filetype])&&(a=i.file_picker_callback,!a||s&&!s[e.filetype]?(a=i.file_browser_callback,!a||s&&!s[e.filetype]||(o=function(){a(n.getEl("inp").id,n.value(),e.filetype,window)})):o=function(){var i=n.fire("beforecall").meta;i=t.extend({filetype:e.filetype},i),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),i)}),o&&(e.icon="browse",e.onaction=o),n._super(e)}})}),r(Wt,[_t],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Vt,[_t],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v=[],y,b,C,x,w,_,E,N,k,S,T,R,A,B,D,L,H,M,P,O,I,F,z=Math.max,W=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(k="y",E="h",N="minH",S="maxH",R="innerH",T="top",A="deltaH",B="contentH",P="left",H="w",D="x",L="innerW",M="minW",O="right",I="deltaW",F="contentW"):(k="x",E="w",N="minW",S="maxW",R="innerW",T="left",A="deltaW",B="contentW",P="top",H="h",D="y",L="innerH",M="minH",O="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,h[S]&&v.push(p),h.flex=g),d-=h[N],y=o[P]+h[M]+o[O],y>_&&(_=y);if(x={},x[N]=0>d?i[N]-d+i[A]:i[R]-d+i[A],x[M]=_+i[I],x[B]=i[R]-d,x[F]=_,x.minW=W(x.minW,i.maxW),x.minH=W(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],h=p.layoutRect(),b=h[S],y=h[N]+h.flex*C,y>b?(d-=h[S]-h[N],u-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[D]=o[P],t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[N],"center"===s?x[D]=Math.round(i[L]/2-h[H]/2):"stretch"===s?(x[H]=z(h[M]||0,i[L]-o[P]-o[O]),x[D]=o[P]):"end"===s&&(x[D]=i[L]-h[H]-o.top),h.flex>0&&(y+=h.flex*C),x[E]=y,x[k]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var V=e.parent();V&&(V._lastRect=null,V.recalc())}}})}),r(Ut,[wt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r($t,[K,Nt,rt,d,ht,u],function(e,t,n,r,i,o){function a(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;s(i.parents,function(e){return s(t,function(t){return n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a?!1:void 0}),a?!1:void 0}),r.value(a)})}}function r(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function i(){function t(e){var n=[];if(e)return s(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){s(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?e.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&l(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function o(t){return function(){function n(){return e.undoManager?e.undoManager[t]():!1}var r=this;t="redo"==t?"hasRedo":"hasUndo",r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos",function(){r.disabled(!n())})}}function a(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function l(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}var c;c=i(),s({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})},onclick:function(){l(n)}})}),s({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),s({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}})}),e.addButton("undo",{tooltip:"Undo",onPostRender:o("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:o("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:o("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:o("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:a,cmd:"mceToggleVisualAid"}),s({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:c}),e.addButton("formatselect",function(){var n=[],i=r(e.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return s(i,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:i[0][0],values:n,fixedWidth:!0,onselect:l,onPostRender:t(n)}}),e.addButton("fontselect",function(){var n="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",i=[],o=r(e.settings.font_formats||n);return s(o,function(e){i.push({text:{raw:e[0]},value:e[1],textStyle:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:i,fixedWidth:!0,onPostRender:t(i,"fontname"),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var n=[],r="8pt 10pt 12pt 14pt 18pt 24pt 36pt",i=e.settings.fontsize_formats||r;return s(i.split(" "),function(e){var t=e,r=e,i=e.split("=");i.length>1&&(t=i[0],r=i[1]),n.push({text:t,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:n,fixedWidth:!0,onPostRender:t(n,"fontsize"),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:c})}var s=r.each;i.on("AddEditor",function(t){t.editor.rtl&&(e.rtl=!0),a(t.editor)}),e.translate=function(e){return i.translate(e)},t.tooltips=!o.iOS}),r(qt,[_t],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,E=[],N=[],k,S,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;r>d;d++)E.push(0);for(f=0;n>f;f++)N.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),k=c.minW,S=c.minH,E[d]=k>E[d]?k:E[d],N[f]=S>N[f]?S:N[f];for(T=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=E[d]+(d>0?y:0),T-=(d>0?y:0)+E[d];for(R=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=N[f]+(f>0?b:0),R-=(f>0?b:0)+N[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,H=t.flexWidths;if(H)for(d=0;d<H.length;d++)L+=H[d];else L=r;var M=T/L;for(d=0;r>d;d++)E[d]+=H?H[d]*M:M;for(h=g.top,f=0;n>f;f++){for(p=g.left,s=N[f]+D,d=0;r>d&&(B=A?f*r+r-1-d:f*r+d,u=i[B],u);d++)m=u.settings,c=u.layoutRect(),a=Math.max(E[d],c.startMinWidth),c.x=p,c.y=h,v=m.alignH||(C?C[d]||C[0]:null),"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||(x?x[d]||x[0]:null),"center"==v?c.y=h+s/2-c.h/2:"bottom"==v?c.y=h+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var P=e.parent();P&&(P._lastRect=null,P.recalc())}}})}),r(jt,[Nt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,r=this.getEl().contentWindow.document.body;return r?(r.innerHTML=e,t&&t()):setTimeout(function(){n.html(e)},0),this}})}),r(Yt,[Nt,Y],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,n=e._super();if(e.settings.multiline){var r=t.getSize(e.getEl());r.width>n.maxW&&(n.minW=n.maxW,e.addClass("multiline")),e.getEl().style.width=n.minW+"px",n.startMinH=n.h=n.minH=Math.min(n.maxH,t.getSize(e.getEl()).height)}return n},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&this.innerHtml(t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t+'"':"")+">"+e.encode(e._text)+"</label>"
+}})}),r(Kt,[J],function(e){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e._super()}})}),r(Gt,[Kt],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),r(Xt,[kt,G,Gt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),e.fixedWidth&&t.addClass("fixed-width"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;return e.menu&&e.menu.visible()?e.hideMenu():(e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control.parent()===e.menu&&(t.stopPropagation(),e.focus(),e.hideMenu())}),e.menu.on("select",function(){e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type),e.aria("expanded","show"==t.type)}).fire("show")),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),void e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide())},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon,o;return o=e.settings.image,o?(i="none","string"!=typeof o&&(o=window.getSelection?o[0]:o[1]),o=" style=\"background-image: url('"+o+"')\""):o="",i=e.settings.icon?r+"ico "+r+"i-"+i:"",e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1" aria-labelledby="'+t+'"><button id="'+t+'-open" role="presentation" type="button" tabindex="-1">'+(i?'<i class="'+i+'"'+o+"></i>":"")+"<span>"+(e._text?(i?"\xa0":"")+e.encode(e._text):"")+'</span> <i class="'+r+'caret"></i></button></div>'},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.aria&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&(n.focus(),n.showMenu()))}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").getElementsByTagName("span"),n=0;n<r.length;n++)r[n].innerHTML=(t.settings.icon&&e?"\xa0":"")+t.encode(e);return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Jt,[Xt],function(e){return e.extend({init:function(e){function t(r){for(var a=0;a<r.length;a++){if(i=r[a].selected||e.value===r[a].value){o=o||r[a].text,n._value=r[a].value;break}r[a].menu&&t(r[a].menu)}}var n=this,r,i,o,a;n._values=r=e.values,r&&("undefined"!=typeof e.value&&t(r),!i&&r.length>0&&(o=r[0].text,n._value=r[0].value),e.menu=r),e.text=e.text||o||r[0].text,n._super(e),n.addClass("listbox"),n.on("select",function(t){var r=t.control;a&&(t.lastControl=a),e.multiple?r.active(!r.active()):n.value(t.control.settings.value),a=r})},value:function(e){function t(e,n){e.items().each(function(e){i=e.value()===n,i&&(o=o||e.text()),e.active(i),e.menu&&t(e.menu,n)})}function n(t){for(var r=0;r<t.length;r++)i=t[r].value==e,i&&(o=o||t[r].text),t[r].active=i,t[r].menu&&n(t[r].menu)}var r=this,i,o,a;return"undefined"!=typeof e&&(r.menu?t(r.menu,e):(a=r.settings.menu,n(a)),r.text(o||this.settings.text)),r._super(e)}})}),r(Qt,[Nt,G,u],function(e,t,n){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),e.preview&&t.addClass("menu-item-preview"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.addClass("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||t.addClass("menu-item-normal"),t.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r,i=e.parent();if(i.items().each(function(t){t!==e&&t.hideMenu()}),n.menu){r=e.menu,r?r.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",i.settings.itemDefaults&&(r.itemDefaults=i.settings.itemDefaults),r=e.menu=t.create(r).parent(e).renderTo(),r.reflow(),r.on("cancel",function(t){t.stopPropagation(),e.focus(),r.hide()}),r.on("show hide",function(e){e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),r.on("hide",function(t){t.control===r&&e.removeClass("selected")}),r.submenu=!0),r._parentMenu=i,r.addClass("menu-sub");var o=r.testMoveRel(e.getEl(),e.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);r.moveRel(e.getEl(),o),r.rel=o,o="menu-sub-"+o,r.removeClass(r._lastRel),r.addClass(o),r._lastRel=o,e.addClass("selected"),e.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,r=e.settings,i=e.classPrefix,o=e.encode(e._text),a=e.settings.icon,s="",l=r.shortcut;return a&&e.parent().addClass("menu-has-icons"),r.image&&(a="none",s=" style=\"background-image: url('"+r.image+"')\""),l&&n.mac&&(l=l.replace(/ctrl\+alt\+/i,"⌥⌘"),l=l.replace(/ctrl\+/i,"⌘"),l=l.replace(/alt\+/i,"⌥"),l=l.replace(/shift\+/i,"⇧")),a=i+"ico "+i+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==o?'<i class="'+a+'"'+s+"></i>\xa0":"")+("-"!==o?'<span id="'+t+'-text" class="'+i+'text">'+o+"</span>":"")+(l?'<div id="'+t+'-shortcut" class="'+i+'menu-shortcut">'+l+"</div>":"")+(r.menu?'<div class="'+i+'caret"></div>':"")+"</div>"},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n.call(this)),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e.on("mouseenter click",function(n){n.control===e&&(t.menu||"click"!==n.type?(e.showMenu(),n.aria&&e.menu.focus(!0)):(e.fire("select"),e.parent().hideAll()))}),e._super(),e},active:function(e){return"undefined"!=typeof e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(Zt,[rt,Qt,d],function(e,t,n){var r=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){var t=this;if(e.autohide=!0,e.constrainToViewport=!0,e.itemDefaults)for(var r=e.items,i=r.length;i--;)r[i]=n.extend({},e.itemDefaults,r[i]);t._super(e),t.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(t){var n=t.settings;return n.icon||n.selectable?(e._hasIcons=!0,!1):void 0}),e._super()}});return r}),r(en,[Tt],function(e){return e.extend({Defaults:{classes:"radio",role:"radio"}})}),r(tn,[Nt,Q],function(e,t){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),"both"==e.settings.direction&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new t(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!=e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),r(nn,[Nt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(rn,[Xt,Y],function(e,t){return e.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e=this,n=e.getEl(),r=e.layoutRect(),i,o;return e._super(),i=n.firstChild,o=n.lastChild,t.css(i,{width:r.w-t.getSize(o).width,height:r.h-2}),t.css(o,{height:r.h-2}),e},activeMenu:function(e){var n=this;t.toggleClass(n.getEl().lastChild,n.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r,i=e.settings.icon;return r=e.settings.image,r?(i="none","string"!=typeof r&&(r=window.getSelection?r[0]:r[1]),r=" style=\"background-image: url('"+r+"')\""):r="",i=e.settings.icon?n+"ico "+n+"i-"+i:"",'<div id="'+t+'" class="'+e.classes()+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(i?'<i class="'+i+'"'+r+"></i>":"")+(e._text?(i?" ":"")+e._text:"")+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1">'+(e._menuBtnText?(i?"\xa0":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){var n=e.target;if(e.control==this)for(;n;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==n.nodeName&&-1==n.className.indexOf("open"))return e.stopImmediatePropagation(),void t.call(this,e);n=n.parentNode}}),delete e.settings.onclick,e._super()}})}),r(on,[Ut],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(an,[et,Y],function(e,t){return e.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){var n;this.activeTabId&&(n=this.getEl(this.activeTabId),t.removeClass(n,this.classPrefix+"active"),n.setAttribute("aria-selected","false")),this.activeTabId="t"+e,n=this.getEl("t"+e),n.setAttribute("aria-selected","true"),t.addClass(n,this.classPrefix+"active"),this.items()[e].show().fire("showtab"),this.reflow(),this.items().each(function(t,n){e!=n&&t.hide()})},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){var o=e._id+"-t"+i;t.aria("role","tabpanel"),t.aria("labelledby",o),n+='<div id="'+o+'" class="'+r+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hidefocus="1" tabindex="-1"><div id="'+e._id+'-head" class="'+r+'tabs" role="tablist">'+n+'</div><div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div></div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,n,r,i;r=t.getSize(e.getEl("head")).width,r=0>r?0:r,i=0,e.items().each(function(e){r=Math.max(r,e.layoutRect().minW),i=Math.max(i,e.layoutRect().minH)}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=r,e.settings.h=i,e.layoutRect({x:0,y:0,w:r,h:i})});var o=t.getSize(e.getEl("head")).height;return e.settings.minWidth=r,e.settings.minHeight=i+o,n=e._super(),n.deltaH+=o,n.innerH=n.h-n.deltaH,n}})}),r(sn,[Nt,Y],function(e,t){return e.extend({init:function(e){var t=this;t._super(e),t._value=e.value||"",t.addClass("textbox"),e.multiline?t.addClass("multiline"):t.on("keydown",function(e){13==e.keyCode&&t.parents().reverse().each(function(t){return e.preventDefault(),t.hasEventListeners("submit")&&t.toJSON?(t.fire("submit",{data:t.toJSON()}),!1):void 0})})},disabled:function(e){var t=this;return t._rendered&&"undefined"!=typeof e&&(t.getEl().disabled=e),t._super(e)},value:function(e){var t=this;return"undefined"!=typeof e?(t._value=e,t._rendered&&(t.getEl().value=e),t):t._rendered?t.getEl().value:t._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{};var s=document;return!e.settings.multiline&&s.all&&(!s.documentMode||s.documentMode<=8)&&(t.lineHeight=n.h-o+"px"),r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),e.disabled()&&(i+=' disabled="disabled"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="1"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="1"'+i+" />"},postRender:function(){var e=this;return t.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()},remove:function(){t.off(this.getEl()),this._super()}})}),r(ln,[Y,K],function(e,t){return function(n,r){var i=this,o,a=t.classPrefix;i.show=function(t){return i.hide(),o=!0,window.setTimeout(function(){o&&n.appendChild(e.createFragment('<div class="'+a+"throbber"+(r?" "+a+"throbber-inline":"")+'"></div>'))},t||0),i},i.hide=function(){var e=n.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,i}}}),a([l,c,u,d,f,p,h,m,g,y,b,C,_,E,N,k,S,T,R,A,B,D,L,H,M,O,I,F,z,W,V,U,$,q,j,Y,K,G,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,_t,Et,Nt,kt,St,Tt,Rt,At,Bt,Dt,Lt,Ht,Mt,Pt,Ot,It,Ft,zt,Wt,Vt,Ut,$t,qt,jt,Yt,Kt,Gt,Xt,Jt,Qt,Zt,en,tn,nn,rn,on,an,sn,ln])}(this);tinymce.PluginManager.add("anchor",function(a){function b(){var b=a.selection.getNode(),c="";"A"==b.tagName&&(c=b.name||b.id||""),a.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:c},onsubmit:function(b){a.execCommand("mceInsertContent",!1,a.dom.createHTML("a",{id:b.data.name}))}})}a.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:b,stateSelector:"a:not([href])"}),a.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:b})});tinymce.PluginManager.add("charmap",function(a){function b(){function b(a){for(;a;){if("TD"==a.nodeName)return a;a=a.parentNode}}var d,e,f,g;d='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var h=25;for(f=0;10>f;f++){for(d+="<tr>",e=0;h>e;e++){var i=c[f*h+e];d+='<td title="'+i[1]+'"><div tabindex="-1" title="'+i[1]+'" role="button">'+(i?String.fromCharCode(parseInt(i[0],10)):" ")+"</div></td>"}d+="</tr>"}d+="</tbody></table>";var j={type:"container",html:d,onclick:function(b){var c=b.target;"TD"==c.tagName&&(c=c.firstChild),"DIV"==c.tagName&&(a.execCommand("mceInsertContent",!1,c.firstChild.data),b.ctrlKey||g.close())},onmouseover:function(a){var c=b(a.target);c&&g.find("#preview").text(c.firstChild.firstChild.data)}};g=a.windowManager.open({title:"Special character",spacing:10,padding:10,items:[j,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){g.close()}}]})}var c=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];a.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:b}),a.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:b,context:"insert"})});tinymce.PluginManager.add("code",function(a){function b(){var b=a.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:a.getParam("code_dialog_width",600),minHeight:a.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(b){a.focus(),a.undoManager.transact(function(){a.setContent(b.data.code)}),a.selection.setCursorLocation(),a.nodeChanged()}});b.find("#code").value(a.getContent({source_view:!0}))}a.addCommand("mceCodeEditor",b),a.addButton("code",{icon:"code",tooltip:"Source code",onclick:b}),a.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:b})});tinymce.PluginManager.add("colorpicker",function(a){function b(b,c){function d(a){var b=new tinymce.util.Color(a),c=b.toRgb();f.fromJSON({r:c.r,g:c.g,b:c.b,hex:b.toHex().substr(1)}),e(b.toHex())}function e(a){f.find("#preview")[0].getEl().style.background=a}var f=a.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:c,onchange:function(){var a=this.rgb();f&&(f.find("#r").value(a.r),f.find("#g").value(a.g),f.find("#b").value(a.b),f.find("#hex").value(this.value().substr(1)),e(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var a,b,c=f.find("colorpicker")[0];return a=this.name(),b=this.value(),"hex"==a?(b="#"+b,d(b),void c.value(b)):(b={r:f.find("#r").value(),g:f.find("#g").value(),b:f.find("#b").value()},c.value(b),void d(b))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){b("#"+this.toJSON().hex)}});d(c)}a.settings.color_picker_callback||(a.settings.color_picker_callback=b)});tinymce.PluginManager.add("contextmenu",function(a){var b,c=a.settings.contextmenu_never_use_native;a.on("contextmenu",function(d){var e,f=a.getDoc();if(!d.ctrlKey||c){if(d.preventDefault(),tinymce.Env.mac&&tinymce.Env.webkit&&2==d.button&&f.caretRangeFromPoint&&a.selection.setRng(f.caretRangeFromPoint(d.x,d.y)),e=a.settings.contextmenu||"link image inserttable | cell row column deletetable",b)b.show();else{var g=[];tinymce.each(e.split(/[ ,]/),function(b){var c=a.menuItems[b];"|"==b&&(c={text:b}),c&&(c.shortcut="",g.push(c))});for(var h=0;h<g.length;h++)"|"==g[h].text&&(0===h||h==g.length-1)&&g.splice(h,1);b=new tinymce.ui.Menu({items:g,context:"contextmenu"}).addClass("contextmenu").renderTo(),a.on("remove",function(){b.remove(),b=null})}var i={x:d.pageX,y:d.pageY};a.inline||(i=tinymce.DOM.getPos(a.getContentAreaContainer()),i.x+=d.clientX,i.y+=d.clientY),b.moveTo(i.x,i.y)}})});tinymce.PluginManager.add("fullscreen",function(a){function b(){var a,b,c=window,d=document,e=d.body;return e.offsetWidth&&(a=e.offsetWidth,b=e.offsetHeight),c.innerWidth&&c.innerHeight&&(a=c.innerWidth,b=c.innerHeight),{w:a,h:b}}function c(){function c(){j.setStyle(m,"height",b().h-(l.clientHeight-m.clientHeight))}var k,l,m,n,o=document.body,p=document.documentElement;i=!i,l=a.getContainer(),k=l.style,m=a.getContentAreaContainer().firstChild,n=m.style,i?(d=n.width,e=n.height,n.width=n.height="100%",g=k.width,h=k.height,k.width=k.height="",j.addClass(o,"mce-fullscreen"),j.addClass(p,"mce-fullscreen"),j.addClass(l,"mce-fullscreen"),j.bind(window,"resize",c),c(),f=c):(n.width=d,n.height=e,g&&(k.width=g),h&&(k.height=h),j.removeClass(o,"mce-fullscreen"),j.removeClass(p,"mce-fullscreen"),j.removeClass(l,"mce-fullscreen"),j.unbind(window,"resize",f)),a.fire("FullscreenStateChanged",{state:i})}var d,e,f,g,h,i=!1,j=tinymce.DOM;return a.settings.inline?void 0:(a.on("init",function(){a.addShortcut("Ctrl+Alt+F","",c)}),a.on("remove",function(){f&&j.unbind(window,"resize",f)}),a.addCommand("mceFullScreen",c),a.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:c,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})},context:"view"}),a.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:c,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})}}),{isFullscreen:function(){return i}})});tinymce.PluginManager.add("hr",function(a){a.addCommand("InsertHorizontalRule",function(){a.execCommand("mceInsertContent",!1,"<hr />")}),a.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),a.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})});tinymce.PluginManager.add("image",function(a){function b(a,b){function c(a,c){d.parentNode&&d.parentNode.removeChild(d),b({width:a,height:c})}var d=document.createElement("img");d.onload=function(){c(d.clientWidth,d.clientHeight)},d.onerror=function(){c()};var e=d.style;e.visibility="hidden",e.position="fixed",e.bottom=e.left=0,e.width=e.height="auto",document.body.appendChild(d),d.src=a}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){return function(){var c=a.settings.image_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function e(d){function e(){var a,b,c,d;a=j.find("#width")[0],b=j.find("#height")[0],a&&b&&(c=a.value(),d=b.value(),j.find("#constrain")[0].checked()&&k&&l&&c&&d&&(k!=c?(d=Math.round(c/k*d),b.value(d)):(c=Math.round(d/l*c),a.value(c))),k=c,l=d)}function f(){function b(b){function c(){b.onload=b.onerror=null,a.selection&&(a.selection.select(b),a.nodeChanged())}b.onload=function(){o.width||o.height||!r||p.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),c()},b.onerror=c}i(),e(),o=tinymce.extend(o,j.toJSON()),o.alt||(o.alt=""),""===o.width&&(o.width=null),""===o.height&&(o.height=null),o.style||(o.style=null),o={src:o.src,alt:o.alt,width:o.width,height:o.height,style:o.style,"class":o["class"]},a.undoManager.transact(function(){return o.src?(q?p.setAttribs(q,o):(o.id="__mcenew",a.focus(),a.selection.setContent(p.createHTML("img",o)),q=p.get("__mcenew"),p.setAttrib(q,"id",null)),void b(q)):void(q&&(p.remove(q),a.focus(),a.nodeChanged()))})}function g(a){return a&&(a=a.replace(/px$/,"")),a}function h(c){var d=c.meta||{};if(m&&m.value(a.convertURL(this.value(),"src")),tinymce.each(d,function(a,b){j.find("#"+b).value(a)}),!d.width&&!d.height){var e=this.value(),f=new RegExp("^(?:[a-z]+:)?//","i"),g=a.settings.document_base_url;g&&!f.test(e)&&e.substring(0,g.length)!==g&&this.value(g+e),b(this.value(),function(a){a.width&&a.height&&r&&(k=a.width,l=a.height,j.find("#width").value(k),j.find("#height").value(l))})}}function i(){function b(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a}if(a.settings.image_advtab){var c=j.toJSON(),d=p.parseStyle(c.style);delete d.margin,d["margin-top"]=d["margin-bottom"]=b(c.vspace),d["margin-left"]=d["margin-right"]=b(c.hspace),d["border-width"]=b(c.border),j.find("#style").value(p.serializeStyle(p.parseStyle(p.serializeStyle(d))))}}var j,k,l,m,n,o={},p=a.dom,q=a.selection.getNode(),r=a.settings.image_dimensions!==!1;k=p.getAttrib(q,"width"),l=p.getAttrib(q,"height"),"IMG"!=q.nodeName||q.getAttribute("data-mce-object")||q.getAttribute("data-mce-placeholder")?q=null:o={src:p.getAttrib(q,"src"),alt:p.getAttrib(q,"alt"),"class":p.getAttrib(q,"class"),width:k,height:l},d&&(m={type:"listbox",label:"Image list",values:c(d,function(b){b.value=a.convertURL(b.value||b.url,"src")},[{text:"None",value:""}]),value:o.src&&a.convertURL(o.src,"src"),onselect:function(a){var b=j.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),j.find("#src").value(a.control.value()).fire("change")},onPostRender:function(){m=this}}),a.settings.image_class_list&&(n={name:"class",type:"listbox",label:"Class",values:c(a.settings.image_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})})})});var s=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:h},m];a.settings.image_description!==!1&&s.push({name:"alt",type:"textbox",label:"Image description"}),r&&s.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),s.push(n),a.settings.image_advtab?(q&&(o.hspace=g(q.style.marginLeft||q.style.marginRight),o.vspace=g(q.style.marginTop||q.style.marginBottom),o.border=g(q.style.borderWidth),o.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(q,"style")))),j=a.windowManager.open({title:"Insert/edit image",data:o,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:i},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:f})):j=a.windowManager.open({title:"Insert/edit image",data:o,body:s,onSubmit:f})}a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:d(e),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),a.addMenuItem("image",{icon:"image",text:"Insert image",onclick:d(e),context:"insert",prependToContext:!0}),a.addCommand("mceImage",d(e))});tinymce.PluginManager.add("insertdatetime",function(a){function b(b,c){function d(a,b){if(a=""+a,a.length<b)for(var c=0;c<b-a.length;c++)a="0"+a;return a}return c=c||new Date,b=b.replace("%D","%m/%d/%Y"),b=b.replace("%r","%I:%M:%S %p"),b=b.replace("%Y",""+c.getFullYear()),b=b.replace("%y",""+c.getYear()),b=b.replace("%m",d(c.getMonth()+1,2)),b=b.replace("%d",d(c.getDate(),2)),b=b.replace("%H",""+d(c.getHours(),2)),b=b.replace("%M",""+d(c.getMinutes(),2)),b=b.replace("%S",""+d(c.getSeconds(),2)),b=b.replace("%I",""+((c.getHours()+11)%12+1)),b=b.replace("%p",""+(c.getHours()<12?"AM":"PM")),b=b.replace("%B",""+a.translate(i[c.getMonth()])),b=b.replace("%b",""+a.translate(h[c.getMonth()])),b=b.replace("%A",""+a.translate(g[c.getDay()])),b=b.replace("%a",""+a.translate(f[c.getDay()])),b=b.replace("%%","%")}function c(c){var d=b(c);if(a.settings.insertdatetime_element){var e;e=b(/%[HMSIp]/.test(c)?"%Y-%m-%dT%H:%M":"%Y-%m-%d"),d='<time datetime="'+e+'">'+d+"</time>";var f=a.dom.getParent(a.selection.getStart(),"time");if(f)return void a.dom.setOuterHTML(f,d)}a.insertContent(d)}var d,e,f="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),g="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),h="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),i="January February March April May June July August September October November December".split(" "),j=[];a.addCommand("mceInsertDate",function(){c(a.getParam("insertdatetime_dateformat",a.translate("%Y-%m-%d")))}),a.addCommand("mceInsertTime",function(){c(a.getParam("insertdatetime_timeformat",a.translate("%H:%M:%S")))}),a.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){c(d||e)},menu:j}),tinymce.each(a.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(a){e||(e=a),j.push({text:b(a),onclick:function(){d=a,c(a)}})}),a.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:j,context:"insert"})});tinymce.PluginManager.add("link",function(a){function b(b){return function(){var c=a.settings.link_list;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):"function"==typeof c?c(b):b(c)}}function c(a,b,c){function d(a,c){return c=c||[],tinymce.each(a,function(a){var e={text:a.text||a.title};a.menu?e.menu=d(a.menu):(e.value=a.value,b&&b(e)),c.push(e)}),c}return d(a,c||[])}function d(b){function d(a){var b=l.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),l.find("#href").value(a.control.value())}function e(b){var c=[];return tinymce.each(a.dom.select("a:not([href])"),function(a){var d=a.name||a.id;d&&c.push({text:d,value:"#"+d,selected:-1!=b.indexOf("#"+d)})}),c.length?(c.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:c,onselect:d}):void 0}function f(){!k&&0===u.text.length&&m&&this.parent().parent().find("#text")[0].value(this.value())}function g(b){var c=b.meta||{};o&&o.value(a.convertURL(this.value(),"href")),tinymce.each(b.meta,function(a,b){l.find("#"+b).value(a)}),c.text||f.call(this)}function h(a){var b=v.getContent();if(/</.test(b)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(b)||-1==b.indexOf("href=")))return!1;if(a){var c,d=a.childNodes;if(0===d.length)return!1;for(c=d.length-1;c>=0;c--)if(3!=d[c].nodeType)return!1}return!0}var i,j,k,l,m,n,o,p,q,r,s,t,u={},v=a.selection,w=a.dom;i=v.getNode(),j=w.getParent(i,"a[href]"),m=h(),u.text=k=j?j.innerText||j.textContent:v.getContent({format:"text"}),u.href=j?w.getAttrib(j,"href"):"",(t=w.getAttrib(j,"target"))?u.target=t:a.settings.default_link_target&&(u.target=a.settings.default_link_target),(t=w.getAttrib(j,"rel"))&&(u.rel=t),(t=w.getAttrib(j,"class"))&&(u["class"]=t),(t=w.getAttrib(j,"title"))&&(u.title=t),m&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){u.text=this.value()}}),b&&(o={type:"listbox",label:"Link list",values:c(b,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:d,value:a.convertURL(u.href,"href"),onPostRender:function(){o=this}}),a.settings.target_list!==!1&&(a.settings.target_list||(a.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),q={name:"target",type:"listbox",label:"Target",values:c(a.settings.target_list)}),a.settings.rel_list&&(p={name:"rel",type:"listbox",label:"Rel",values:c(a.settings.rel_list)}),a.settings.link_class_list&&(r={name:"class",type:"listbox",label:"Class",values:c(a.settings.link_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),a.settings.link_title!==!1&&(s={name:"title",type:"textbox",label:"Title",value:u.title}),l=a.windowManager.open({title:"Insert link",data:u,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:g,onkeyup:f},n,s,e(u.href),o,p,q,r],onSubmit:function(b){function c(b,c){var d=a.selection.getRng();window.setTimeout(function(){a.windowManager.confirm(b,function(b){a.selection.setRng(d),c(b)})},0)}function d(){var b={href:e,target:u.target?u.target:null,rel:u.rel?u.rel:null,"class":u["class"]?u["class"]:null,title:u.title?u.title:null};j?(a.focus(),m&&u.text!=k&&("innerText"in j?j.innerText=u.text:j.textContent=u.text),w.setAttribs(j,b),v.select(j),a.undoManager.add()):m?a.insertContent(w.createHTML("a",b,w.encode(u.text))):a.execCommand("mceInsertLink",!1,b)}var e;return u=tinymce.extend(u,b.data),(e=u.href)?e.indexOf("@")>0&&-1==e.indexOf("//")&&-1==e.indexOf("mailto:")?void c("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(e="mailto:"+e),d()}):/^\s*www\./i.test(e)?void c("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(e="http://"+e),d()}):void d():void a.execCommand("unlink")}})}a.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:b(d),stateSelector:"a[href]"}),a.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),a.addShortcut("Ctrl+K","",b(d)),a.addCommand("mceLink",b(d)),this.showDialog=d,a.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:b(d),stateSelector:"a[href]",context:"insert",prependToContext:!0})});tinymce.PluginManager.add("lists",function(a){function b(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)}function c(a){return a.parentNode.firstChild==a}function d(a){return a.parentNode.lastChild==a}function e(b){return b&&!!a.schema.getTextBlockElements()[b.nodeName]}var f=this;a.on("init",function(){function g(a){function b(b){var d,e,f;e=a[b?"startContainer":"endContainer"],f=a[b?"startOffset":"endOffset"],1==e.nodeType&&(d=v.create("span",{"data-mce-type":"bookmark"}),e.hasChildNodes()?(f=Math.min(f,e.childNodes.length-1),b?e.insertBefore(d,e.childNodes[f]):v.insertAfter(d,e.childNodes[f])):e.appendChild(d),e=d,f=0),c[b?"startContainer":"endContainer"]=e,c[b?"startOffset":"endOffset"]=f}var c={};return b(!0),a.collapsed||b(),c}function h(a){function b(b){function c(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;(1!=b.nodeType||"bookmark"!=b.getAttribute("data-mce-type"))&&c++,b=b.nextSibling}return-1}var d,e,f;d=f=a[b?"startContainer":"endContainer"],e=a[b?"startOffset":"endOffset"],d&&(1==d.nodeType&&(e=c(d),d=d.parentNode,v.remove(f)),a[b?"startContainer":"endContainer"]=d,a[b?"startOffset":"endOffset"]=e)}b(!0),b();var c=v.createRng();c.setStart(a.startContainer,a.startOffset),a.endContainer&&c.setEnd(a.endContainer,a.endOffset),w.setRng(c)}function i(b,c){var d,e,f,g=v.createFragment(),h=a.schema.getBlockElements();if(a.settings.forced_root_block&&(c=c||a.settings.forced_root_block),c&&(e=v.create(c),e.tagName===a.settings.forced_root_block&&v.setAttribs(e,a.settings.forced_root_block_attrs),g.appendChild(e)),b)for(;d=b.firstChild;){var i=d.nodeName;f||"SPAN"==i&&"bookmark"==d.getAttribute("data-mce-type")||(f=!0),h[i]?(g.appendChild(d),e=null):c?(e||(e=v.create(c),g.appendChild(e)),e.appendChild(d)):g.appendChild(d)}return a.settings.forced_root_block?f||tinymce.Env.ie&&!(tinymce.Env.ie>10)||e.appendChild(v.create("br",{"data-mce-bogus":"1"})):g.appendChild(v.create("br")),g}function j(){return tinymce.grep(w.getSelectedBlocks(),function(a){return/^(LI|DT|DD)$/.test(a.nodeName)})}function k(a,b,c){var d,e,f=v.select('span[data-mce-type="bookmark"]',a);c=c||i(b),d=v.createRng(),d.setStartAfter(b),d.setEndAfter(a),e=d.extractContents(),v.isEmpty(e)||v.insertAfter(e,a),v.insertAfter(c,a),v.isEmpty(b.parentNode)&&(tinymce.each(f,function(a){b.parentNode.parentNode.insertBefore(a,b.parentNode)}),v.remove(b.parentNode)),v.remove(b)}function l(a){var c,d;if(c=a.nextSibling,c&&b(c)&&c.nodeName==a.nodeName){for(;d=c.firstChild;)a.appendChild(d);v.remove(c)}if(c=a.previousSibling,c&&b(c)&&c.nodeName==a.nodeName){for(;d=c.firstChild;)a.insertBefore(d,a.firstChild);v.remove(c)}}function m(a){tinymce.each(tinymce.grep(v.select("ol,ul",a)),function(a){var c,d=a.parentNode;"LI"==d.nodeName&&d.firstChild==a&&(c=d.previousSibling,c&&"LI"==c.nodeName&&(c.appendChild(a),v.isEmpty(d)&&v.remove(d))),b(d)&&(c=d.previousSibling,c&&"LI"==c.nodeName&&c.appendChild(a))})}function n(a){function e(a){v.isEmpty(a)&&v.remove(a)}var f,g=a.parentNode,h=g.parentNode;return"DD"==a.nodeName?(v.rename(a,"DT"),!0):c(a)&&d(a)?("LI"==h.nodeName?(v.insertAfter(a,h),e(h),v.remove(g)):b(h)?v.remove(g,!0):(h.insertBefore(i(a),g),v.remove(g)),!0):c(a)?("LI"==h.nodeName?(v.insertAfter(a,h),a.appendChild(g),e(h)):b(h)?h.insertBefore(a,g):(h.insertBefore(i(a),g),v.remove(a)),!0):d(a)?("LI"==h.nodeName?v.insertAfter(a,h):b(h)?v.insertAfter(a,g):(v.insertAfter(i(a),g),v.remove(a)),!0):("LI"==h.nodeName?(g=h,f=i(a,"LI")):f=b(h)?i(a,"LI"):i(a),k(g,a,f),m(g.parentNode),!0)}function o(a){function c(c,d){var e;if(b(c)){for(;e=a.lastChild.firstChild;)d.appendChild(e);v.remove(c)}}var d,e;return"DT"==a.nodeName?(v.rename(a,"DD"),!0):(d=a.previousSibling,d&&b(d)?(d.appendChild(a),!0):d&&"LI"==d.nodeName&&b(d.lastChild)?(d.lastChild.appendChild(a),c(a.lastChild,d.lastChild),!0):(d=a.nextSibling,d&&b(d)?(d.insertBefore(a,d.firstChild),!0):d&&"LI"==d.nodeName&&b(a.lastChild)?!1:(d=a.previousSibling,d&&"LI"==d.nodeName?(e=v.create(a.parentNode.nodeName),d.appendChild(e),e.appendChild(a),c(a.lastChild,e),!0):!1)))}function p(){var b=j();if(b.length){for(var c=g(w.getRng(!0)),d=0;d<b.length&&(o(b[d])||0!==d);d++);return h(c),a.nodeChanged(),!0}}function q(){var b=j();if(b.length){var c,d,e=g(w.getRng(!0)),f=a.getBody();for(c=b.length;c--;)for(var i=b[c].parentNode;i&&i!=f;){for(d=b.length;d--;)if(b[d]===i){b.splice(c,1);break}i=i.parentNode}for(c=0;c<b.length&&(n(b[c])||0!==c);c++);return h(e),a.nodeChanged(),!0}}function r(c){function d(){function b(a){var b,c;for(b=f[a?"startContainer":"endContainer"],c=f[a?"startOffset":"endOffset"],1==b.nodeType&&(b=b.childNodes[Math.min(c,b.childNodes.length-1)]||b);b.parentNode!=g;){if(e(b))return b;if(/^(TD|TH)$/.test(b.parentNode.nodeName))return b;b=b.parentNode}return b}for(var c,d=[],g=a.getBody(),h=b(!0),i=b(),j=[],k=h;k&&(j.push(k),k!=i);k=k.nextSibling);return tinymce.each(j,function(a){if(e(a))return d.push(a),void(c=null);if(v.isBlock(a)||"BR"==a.nodeName)return"BR"==a.nodeName&&v.remove(a),void(c=null);var b=a.nextSibling;return tinymce.dom.BookmarkManager.isBookmarkNode(a)&&(e(b)||!b&&a.parentNode==g)?void(c=null):(c||(c=v.create("p"),a.parentNode.insertBefore(c,a),d.push(c)),void c.appendChild(a))}),d}var f=w.getRng(!0),i=g(f),j="LI";c=c.toUpperCase(),"DL"==c&&(j="DT"),tinymce.each(d(),function(a){var d,e;e=a.previousSibling,e&&b(e)&&e.nodeName==c?(d=e,a=v.rename(a,j),e.appendChild(a)):(d=v.create(c),a.parentNode.insertBefore(d,a),d.appendChild(a),a=v.rename(a,j)),l(d)}),h(i)}function s(){var c=g(w.getRng(!0)),d=a.getBody();tinymce.each(j(),function(a){var c,e;if(v.isEmpty(a))return void n(a);for(c=a;c&&c!=d;c=c.parentNode)b(c)&&(e=c);k(e,a)}),h(c)}function t(a){var b=v.getParent(w.getStart(),"OL,UL,DL");if(b)if(b.nodeName==a)s(a);else{var c=g(w.getRng(!0));l(v.rename(b,a)),h(c)}else r(a)}function u(b){return function(){var c=v.getParent(a.selection.getStart(),"UL,OL,DL");return c&&c.nodeName==b}}var v=a.dom,w=a.selection;f.backspaceDelete=function(c){function d(b,c){var d,e,f=b.startContainer,g=b.startOffset;if(3==f.nodeType&&(c?g<f.data.length:g>0))return f;for(d=a.schema.getNonEmptyElements(),e=new tinymce.dom.TreeWalker(b.startContainer);f=e[c?"next":"prev"]();){if("LI"==f.nodeName&&!f.hasChildNodes())return f;if(d[f.nodeName])return f;if(3==f.nodeType&&f.data.length>0)return f}}function e(a,c){var d,e,f=a.parentNode;if(b(c.lastChild)&&(e=c.lastChild),d=c.lastChild,d&&"BR"==d.nodeName&&a.hasChildNodes()&&v.remove(d),v.isEmpty(c)&&v.$(c).empty(),!v.isEmpty(a))for(;d=a.firstChild;)c.appendChild(d);e&&c.appendChild(e),v.remove(a),v.isEmpty(f)&&v.remove(f)}if(w.isCollapsed()){var f=v.getParent(w.getStart(),"LI");if(f){var i=w.getRng(!0),j=v.getParent(d(i,c),"LI");if(j&&j!=f){var k=g(i);return c?e(j,f):e(f,j),h(k),!0}if(!j&&!c&&s(f.parentNode.nodeName))return!0}}},a.addCommand("Indent",function(){return p()?void 0:!0}),a.addCommand("Outdent",function(){return q()?void 0:!0}),a.addCommand("InsertUnorderedList",function(){t("UL")}),a.addCommand("InsertOrderedList",function(){t("OL")}),a.addCommand("InsertDefinitionList",function(){t("DL")}),a.addQueryStateHandler("InsertUnorderedList",u("UL")),a.addQueryStateHandler("InsertOrderedList",u("OL")),a.addQueryStateHandler("InsertDefinitionList",u("DL")),a.on("keydown",function(b){9!=b.keyCode||tinymce.util.VK.metaKeyPressed(b)||a.dom.getParent(a.selection.getStart(),"LI,DT,DD")&&(b.preventDefault(),b.shiftKey?q():p())})}),a.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var b=this;a.on("nodechange",function(){for(var d=a.selection.getSelectedBlocks(),e=!1,f=0,g=d.length;!e&&g>f;f++){var h=d[f].nodeName;e="LI"==h&&c(d[f])||"UL"==h||"OL"==h||"DD"==h}b.disabled(e)})}}),a.on("keydown",function(a){a.keyCode==tinymce.util.VK.BACKSPACE?f.backspaceDelete()&&a.preventDefault():a.keyCode==tinymce.util.VK.DELETE&&f.backspaceDelete(!0)&&a.preventDefault()})});tinymce.PluginManager.add("media",function(a,b){function c(a){return-1!=a.indexOf(".mp3")?"audio/mpeg":-1!=a.indexOf(".wav")?"audio/wav":-1!=a.indexOf(".mp4")?"video/mp4":-1!=a.indexOf(".webm")?"video/webm":-1!=a.indexOf(".ogg")?"video/ogg":-1!=a.indexOf(".swf")?"application/x-shockwave-flash":""}function d(b){var c=a.settings.media_scripts;if(c)for(var d=0;d<c.length;d++)if(-1!==b.indexOf(c[d].filter))return c[d]}function e(){function b(a){var b,c,f,g;b=d.find("#width")[0],c=d.find("#height")[0],f=b.value(),g=c.value(),d.find("#constrain")[0].checked()&&e&&j&&f&&g&&(a.control==b?(g=Math.round(f/e*g),c.value(g)):(f=Math.round(g/j*f),b.value(f))),e=f,j=g}function c(){k=h(this.value()),this.parent().parent().fromJSON(k)}var d,e,j,k,l=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onchange:function(a){tinymce.each(a.meta,function(a,b){d.find("#"+b).value(a)})}}];a.settings.media_alt_source!==!1&&l.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),a.settings.media_poster!==!1&&l.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),a.settings.media_dimensions!==!1&&l.push({type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:b},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:b},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),k=i(a.selection.getNode()),e=k.width,j=k.height;var n={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:f(),multiline:!0,label:"Source"};n[m]=c,d=a.windowManager.open({title:"Insert/edit video",data:k,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){k=h(this.next().find("#embed").value()),this.fromJSON(k)},items:l},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(g(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},n]}],onSubmit:function(){var b,c,d,e;for(b=a.dom.select("img[data-mce-object]"),a.insertContent(g(this.toJSON())),c=a.dom.select("img[data-mce-object]"),d=0;d<b.length;d++)for(e=c.length-1;e>=0;e--)b[d]==c[e]&&c.splice(e,1);a.selection.select(c[0]),a.nodeChanged()}})}function f(){var b=a.selection.getNode();return b.getAttribute("data-mce-object")?a.selection.getContent():void 0}function g(e){var f="";if(!e.source1&&(tinymce.extend(e,h(e.embed)),!e.source1))return"";if(e.source2||(e.source2=""),e.poster||(e.poster=""),e.source1=a.convertURL(e.source1,"source"),e.source2=a.convertURL(e.source2,"source"),e.source1mime=c(e.source1),e.source2mime=c(e.source2),e.poster=a.convertURL(e.poster,"poster"),e.flashPlayerUrl=a.convertURL(b+"/moxieplayer.swf","movie"),tinymce.each(l,function(a){var b,c,d;if(b=a.regex.exec(e.source1)){for(d=a.url,c=0;b[c];c++)d=d.replace("$"+c,function(){return b[c]});e.source1=d,e.type=a.type,e.width=e.width||a.w,e.height=e.height||a.h}}),e.embed)f=k(e.embed,e,!0);else{var g=d(e.source1);g&&(e.type="script",e.width=g.width,e.height=g.height),e.width=e.width||300,e.height=e.height||150,tinymce.each(e,function(b,c){e[c]=a.dom.encode(b)}),"iframe"==e.type?f+='<iframe src="'+e.source1+'" width="'+e.width+'" height="'+e.height+'"></iframe>':"application/x-shockwave-flash"==e.source1mime?(f+='<object data="'+e.source1+'" width="'+e.width+'" height="'+e.height+'" type="application/x-shockwave-flash">',e.poster&&(f+='<img src="'+e.poster+'" width="'+e.width+'" height="'+e.height+'" />'),f+="</object>"):-1!=e.source1mime.indexOf("audio")?a.settings.audio_template_callback?f=a.settings.audio_template_callback(e):f+='<audio controls="controls" src="'+e.source1+'">'+(e.source2?'\n<source src="'+e.source2+'"'+(e.source2mime?' type="'+e.source2mime+'"':"")+" />\n":"")+"</audio>":"script"==e.type?f+='<script src="'+e.source1+'"></script>':f=a.settings.video_template_callback?a.settings.video_template_callback(e):'<video width="'+e.width+'" height="'+e.height+'"'+(e.poster?' poster="'+e.poster+'"':"")+' controls="controls">\n<source src="'+e.source1+'"'+(e.source1mime?' type="'+e.source1mime+'"':"")+" />\n"+(e.source2?'<source src="'+e.source2+'"'+(e.source2mime?' type="'+e.source2mime+'"':"")+" />\n":"")+"</video>"}return f}function h(a){var b={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(a,c){if(b.source1||"param"!=a||(b.source1=c.map.movie),("iframe"==a||"object"==a||"embed"==a||"video"==a||"audio"==a)&&(b.type||(b.type=a),b=tinymce.extend(c.map,b)),"script"==a){var e=d(c.map.src);if(!e)return;b={type:"script",source1:c.map.src,width:e.width,height:e.height}}"source"==a&&(b.source1?b.source2||(b.source2=c.map.src):b.source1=c.map.src),"img"!=a||b.poster||(b.poster=c.map.src)}}).parse(a),b.source1=b.source1||b.src||b.data,b.source2=b.source2||"",b.poster=b.poster||"",b}function i(b){return b.getAttribute("data-mce-object")?h(a.serializer.serialize(b,{selection:!0})):{}}function j(b){if(a.settings.media_filter_html===!1)return b;var c=new tinymce.html.Writer;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(a){c.comment(a)},cdata:function(a){c.cdata(a)},text:function(a,b){c.text(a,b)},start:function(a,b,d){if("script"!=a&&"noscript"!=a){for(var e=0;e<b.length;e++)if(0===b[e].name.indexOf("on"))return;c.start(a,b,d)}},end:function(a){"script"!=a&&"noscript"!=a&&c.end(a)}},new tinymce.html.Schema({})).parse(b),c.getContent()}function k(a,b,c){function d(a,b){var c,d,e,f;for(c in b)if(e=""+b[c],a.map[c])for(d=a.length;d--;)f=a[d],f.name==c&&(e?(a.map[c]=e,f.value=e):(delete a.map[c],a.splice(d,1)));else e&&(a.push({name:c,value:e}),a.map[c]=e)}var e,f=new tinymce.html.Writer,g=0;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(a){f.comment(a)},cdata:function(a){f.cdata(a)},text:function(a,b){f.text(a,b)},start:function(a,h,i){switch(a){case"video":case"object":case"embed":case"img":case"iframe":d(h,{width:b.width,height:b.height})}if(c)switch(a){case"video":d(h,{poster:b.poster,src:""}),b.source2&&d(h,{src:""});break;case"iframe":d(h,{src:b.source1});break;case"source":if(g++,2>=g&&(d(h,{src:b["source"+g],type:b["source"+g+"mime"]}),!b["source"+g]))return;break;case"img":if(!b.poster)return;e=!0}f.start(a,h,i)},end:function(a){if("video"==a&&c)for(var h=1;2>=h;h++)if(b["source"+h]){var i=[];i.map={},h>g&&(d(i,{src:b["source"+h],type:b["source"+h+"mime"]}),f.start("source",i,!0))}if(b.poster&&"object"==a&&c&&!e){var j=[];j.map={},d(j,{src:b.poster,width:b.width,height:b.height}),f.start("img",j,!0)}f.end(a)}},new tinymce.html.Schema({})).parse(a),f.getContent()}var l=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}],m=tinymce.Env.ie&&tinymce.Env.ie<=8?"onChange":"onInput";a.on("ResolveName",function(a){var b;1==a.target.nodeType&&(b=a.target.getAttribute("data-mce-object"))&&(a.name=b)}),a.on("preInit",function(){var b=a.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(a){b[a]=new RegExp("</"+a+"[^>]*>","gi")});var c=a.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(a){c[a]={}}),a.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(b,c){for(var e,f,g,h,i,j,k,l,m=b.length;m--;)if(f=b[m],f.parent&&("script"!=f.name||(l=d(f.attr("src"))))){for(g=new tinymce.html.Node("img",1),g.shortEnded=!0,l&&(l.width&&f.attr("width",l.width.toString()),l.height&&f.attr("height",l.height.toString())),j=f.attributes,e=j.length;e--;)h=j[e].name,i=j[e].value,"width"!==h&&"height"!==h&&"style"!==h&&(("data"==h||"src"==h)&&(i=a.convertURL(i,h)),g.attr("data-mce-p-"+h,i));k=f.firstChild&&f.firstChild.value,k&&(g.attr("data-mce-html",escape(k)),g.firstChild=null),g.attr({width:f.attr("width")||"300",height:f.attr("height")||("audio"==c?"30":"150"),style:f.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":c,"class":"mce-object mce-object-"+c}),f.replace(g)}}),a.serializer.addAttributeFilter("data-mce-object",function(a,b){for(var c,d,e,f,g,h,i,k=a.length;k--;)if(c=a[k],c.parent){for(i=c.attr(b),d=new tinymce.html.Node(i,1),"audio"!=i&&"script"!=i&&d.attr({width:c.attr("width"),height:c.attr("height")}),d.attr({style:c.attr("style")}),f=c.attributes,e=f.length;e--;){var l=f[e].name;0===l.indexOf("data-mce-p-")&&d.attr(l.substr(11),f[e].value)}"script"==i&&d.attr("type","text/javascript"),g=c.attr("data-mce-html"),g&&(h=new tinymce.html.Node("#text",3),h.raw=!0,h.value=j(unescape(g)),d.append(h)),c.replace(d)}})}),a.on("ObjectSelected",function(a){var b=a.target.getAttribute("data-mce-object");("audio"==b||"script"==b)&&a.preventDefault()}),a.on("objectResized",function(a){var b,c=a.target;c.getAttribute("data-mce-object")&&(b=c.getAttribute("data-mce-html"),b&&(b=unescape(b),c.setAttribute("data-mce-html",escape(k(b,{width:a.width,height:a.height})))))}),a.addButton("media",{tooltip:"Insert/edit video",onclick:e,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),a.addMenuItem("media",{icon:"media",text:"Insert video",onclick:e,context:"insert",prependToContext:!0})});tinymce.PluginManager.add("nonbreaking",function(a){var b=a.getParam("nonbreaking_force_tab");if(a.addCommand("mceNonBreaking",function(){a.insertContent(a.plugins.visualchars&&a.plugins.visualchars.state?'<span class="mce-nbsp"> </span>':" "),a.dom.setAttrib(a.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),a.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),a.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),b){var c=+b>1?+b:3;a.on("keydown",function(b){if(9==b.keyCode){if(b.shiftKey)return;b.preventDefault();for(var d=0;c>d;d++)a.execCommand("mceNonBreaking")}})}});!function(a,b){"use strict";function c(a,b){for(var c,d=[],f=0;f<a.length;++f){if(c=g[a[f]]||e(a[f]),!c)throw"module definition dependecy not found: "+a[f];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){g[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}function f(c){for(var d=0;d<c.length;d++){for(var e=a,f=c[d],h=f.split(/[.\/]/),i=0;i<h.length-1;++i)e[h[i]]===b&&(e[h[i]]={}),e=e[h[i]];e[h[h.length-1]]=g[f]}}var g={};d("tinymce/pasteplugin/Utils",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(e){function f(a){var b=a.name,c=a;if("br"===b)return void(i+="\n");if(j[b]&&(i+=" "),k[b])return void(i+=" ");if(3==a.type&&(i+=a.value),!a.shortEnded&&(a=a.firstChild))do f(a);while(a=a.next);l[b]&&c.next&&(i+="\n","p"==b&&(i+="\n"))}var g=new c,h=new b({},g),i="",j=g.getShortEndedElements(),k=a.makeMap("script noscript style textarea video audio iframe object"," "),l=g.getBlockElements();return e=d(e,[/<!\[[^\]]+\]>/g]),f(h.parse(e)),i}function f(a){function b(a,b,c){return b||c?"\xa0":" "}return a=d(a,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,b],/<br>$/i])}return{filter:d,innerText:e,trimHtml:f}}),d("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/util/VK","tinymce/pasteplugin/Utils"],function(a,b,c){return function(d){function e(a){var b,c=d.dom;if(b=d.fire("BeforePastePreProcess",{content:a}),b=d.fire("PastePreProcess",b),a=b.content,!b.isDefaultPrevented()){if(d.hasEventListeners("PastePostProcess")&&!b.isDefaultPrevented()){var e=c.add(d.getBody(),"div",{style:"display:none"},a);b=d.fire("PastePostProcess",{node:e}),c.remove(e),a=b.node.innerHTML}b.isDefaultPrevented()||d.insertContent(a,{merge:d.settings.paste_merge_formats!==!1})}}function f(a){a=d.dom.encode(a).replace(/\r\n/g,"\n");var b,f=d.dom.getParent(d.selection.getStart(),d.dom.isBlock),g=d.settings.forced_root_block;g&&(b=d.dom.createHTML(g,d.settings.forced_root_block_attrs),b=b.substr(0,b.length-3)+">"),f&&/^(PRE|DIV)$/.test(f.nodeName)||!g?a=c.filter(a,[[/\n/g,"<br>"]]):(a=c.filter(a,[[/\n\n/g,"</p>"+b],[/^(.*<\/p>)(<p>)$/,b+"$1"],[/\n/g,"<br />"]]),-1!=a.indexOf("<p>")&&(a=b+a)),e(a)}function g(){function b(a){var b,c,d,f=a.startContainer;if(b=a.getClientRects(),b.length)return b[0];if(a.collapsed&&1==f.nodeType){for(d=f.childNodes[s.startOffset];d&&3==d.nodeType&&!d.data.length;)d=d.nextSibling;if(d)return"BR"==d.tagName&&(c=e.doc.createTextNode("\ufeff"),d.parentNode.insertBefore(c,d),a=e.createRng(),a.setStartBefore(c),a.setEndAfter(c),b=a.getClientRects(),e.remove(c)),b.length?b[0]:void 0}}var c,e=d.dom,f=d.getBody(),g=d.dom.getViewPort(d.getWin()),h=g.y,i=20;if(s=d.selection.getRng(),d.inline&&(c=d.selection.getScrollContainer(),c&&c.scrollTop>0&&(h=c.scrollTop)),s.getClientRects){var j=b(s);if(j)i=h+(j.top-e.getPos(f).y);else{i=h;var k=s.startContainer;k&&(3==k.nodeType&&k.parentNode!=f&&(k=k.parentNode),1==k.nodeType&&(i=e.getPos(k,c||f).y))}}r=e.add(d.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+i+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},x),(a.ie||a.gecko)&&e.setStyle(r,"left","rtl"==e.getStyle(f,"direction",!0)?65535:-65535),e.bind(r,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),r.focus(),d.selection.select(r,!0)}function h(){if(r){for(var a;a=d.dom.get("mcepastebin");)d.dom.remove(a),d.dom.unbind(a);s&&d.selection.setRng(s)}r=s=null}function i(){var a,b,c,e,f="";for(a=d.dom.select("div[id=mcepastebin]"),b=0;b<a.length;b++)c=a[b],c.firstChild&&"mcepastebin"==c.firstChild.id&&(c=c.firstChild),e=c.innerHTML,f!=x&&(f+=e);return f}function j(a){var b={};if(a){if(a.getData){var c=a.getData("Text");c&&c.length>0&&(b["text/plain"]=c)}if(a.types)for(var d=0;d<a.types.length;d++){var e=a.types[d];b[e]=a.getData(e)}}return b}function k(a){return j(a.clipboardData||d.getDoc().dataTransfer)}function l(a,b){function c(c){function f(){b&&(d.selection.setRng(b),b=null),e('<img src="'+i.result+'">')}var g,h,i;if(c)for(g=0;g<c.length;g++)if(h=c[g],/^image\/(jpeg|png|gif)$/.test(h.type))return i=new FileReader,i.onload=f,i.readAsDataURL(h.getAsFile?h.getAsFile():h),a.preventDefault(),!0}var f=a.clipboardData||a.dataTransfer;return d.settings.paste_data_images&&f?c(f.items)||c(f.files):void 0}function m(a){var b=a.clipboardData;return-1!=navigator.userAgent.indexOf("Android")&&b&&b.items&&0===b.items.length}function n(a){var b,c,e=d.getDoc();if(e.caretPositionFromPoint)c=e.caretPositionFromPoint(a.clientX,a.clientY),b=e.createRange(),b.setStart(c.offsetNode,c.offset),b.collapse(!0);else if(e.caretRangeFromPoint)b=e.caretRangeFromPoint(a.clientX,a.clientY);else if(e.body.createTextRange){b=e.body.createTextRange();try{b.moveToPoint(a.clientX,a.clientY),b.collapse(!0)}catch(f){b.collapse(a.clientY<e.body.clientHeight)}}return b}function o(a,b){return b in a&&a[b].length>0}function p(a){return b.metaKeyPressed(a)&&86==a.keyCode||a.shiftKey&&45==a.keyCode}function q(){d.on("keydown",function(b){function c(a){p(a)&&!a.isDefaultPrevented()&&h()}if(p(b)&&!b.isDefaultPrevented()){if(t=b.shiftKey&&86==b.keyCode,t&&a.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(b.stopImmediatePropagation(),v=(new Date).getTime(),a.ie&&t)return b.preventDefault(),void d.fire("paste",{ieFake:!0});h(),g(),d.once("keyup",c),d.once("paste",function(){d.off("keyup",c)})}}),d.on("paste",function(b){var j=(new Date).getTime(),n=k(b),p=(new Date).getTime()-j,q=(new Date).getTime()-v-p<1e3,s="text"==u.pasteFormat||t;return t=!1,b.isDefaultPrevented()||m(b)?void h():l(b)?void h():(q||b.preventDefault(),!a.ie||q&&!b.ieFake||(g(),d.dom.bind(r,"paste",function(a){a.stopPropagation()}),d.getDoc().execCommand("Paste",!1,null),n["text/html"]=i()),void setTimeout(function(){var a;return o(n,"text/html")?a=n["text/html"]:(a=i(),a==x&&(s=!0)),a=c.trimHtml(a),r&&r.firstChild&&"mcepastebin"===r.firstChild.id&&(s=!0),h(),a.length||(s=!0),s&&(a=o(n,"text/plain")&&-1==a.indexOf("</p>")?n["text/plain"]:c.innerText(a)),a==x?void(q||d.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(s?f(a):e(a))},0))}),d.on("dragstart dragend",function(a){w="dragstart"==a.type}),d.on("drop",function(a){var b=n(a);if(!a.isDefaultPrevented()&&!w&&!l(a,b)&&b&&d.settings.paste_filter_drop!==!1){var g=j(a.dataTransfer),h=g["mce-internal"]||g["text/html"]||g["text/plain"];h&&(a.preventDefault(),d.undoManager.transact(function(){g["mce-internal"]&&d.execCommand("Delete"),d.selection.setRng(b),h=c.trimHtml(h),g["text/html"]?e(h):f(h)}))}}),d.on("dragover dragend",function(a){var b,c=a.dataTransfer;if(d.settings.paste_data_images&&c)for(b=0;b<c.types.length;b++)if("Files"==c.types[b])return a.preventDefault(),!1})}var r,s,t,u=this,v=0,w=!1,x="%MCEPASTEBIN%";u.pasteHtml=e,u.pasteText=f,d.on("preInit",function(){q(),d.parser.addNodeFilter("img",function(b){if(!d.settings.paste_data_images)for(var c=b.length;c--;){var e=b[c].attributes.map.src;e&&/^(data:image|webkit\-fake\-url)/.test(e)&&(b[c].attr("data-mce-object")||e===a.transparentSrc||b[c].remove())}})})}}),d("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(a,b,c,d,e,f){function g(a){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(a)||/class="OutlineElement/.test(a)||/id="?docs\-internal\-guid\-/.test(a)}function h(b){var c,d;return d=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],b=b.replace(/^[\u00a0 ]+/,""),a.each(d,function(a){return a.test(b)?(c=!0,!1):void 0}),c}function i(a){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(a)}function j(j){var k=j.settings;j.on("BeforePastePreProcess",function(l){function m(a){function b(a){var c="";if(3===a.type)return a.value;if(a=a.firstChild)do c+=b(a);while(a=a.next);return c}function c(a,b){if(3===a.type&&b.test(a.value))return a.value=a.value.replace(b,""),!1;if(a=a.firstChild)do if(!c(a,b))return!1;while(a=a.next);return!0}function d(a){if(a._listIgnore)return void a.remove();if(a=a.firstChild)do d(a);while(a=a.next)}function f(a,b,f){var h=a._listLevel||k;h!=k&&(k>h?g&&(g=g.parent.parent):(j=g,g=null)),g&&g.name==b?g.append(a):(j=j||g,g=new e(b,1),f>1&&g.attr("start",""+f),a.wrap(g)),a.name="li",h>k&&j&&j.lastChild.append(g),k=h,d(a),c(a,/^\u00a0+/),c(a,/^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/),c(a,/^\u00a0+/)}for(var g,j,k=1,l=[],m=a.firstChild;"undefined"!=typeof m&&null!==m;)if(l.push(m),m=m.walk(),null!==m)for(;"undefined"!=typeof m&&m.parent!==a;)m=m.walk();for(var n=0;n<l.length;n++)if(a=l[n],"p"==a.name&&a.firstChild){var o=b(a);if(i(o)){f(a,"ul");continue}if(h(o)){var p=/([0-9]+)\./.exec(o),q=1;p&&(q=parseInt(p[1],10)),f(a,"ol",q);continue}if(a._listLevel){f(a,"ul",1);continue}g=null}else j=g,g=null}function n(b,c){var d,f={},g=j.dom.parseStyle(c);return a.each(g,function(a,e){switch(e){case"mso-list":d=/\w+ \w+([0-9]+)/i.exec(c),d&&(b._listLevel=parseInt(d[1],10)),/Ignore/i.test(a)&&b.firstChild&&(b._listIgnore=!0,b.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!=a&&(f[e]=a));case"mso-element":if(/^(comment|comment-list)$/i.test(a))return void b.remove()}return 0===e.indexOf("mso-comment")?void b.remove():void(0!==e.indexOf("mso-")&&("all"==o||p&&p[e])&&(f[e]=a))}),/(bold)/i.test(f["font-weight"])&&(delete f["font-weight"],b.wrap(new e("b",1))),/(italic)/i.test(f["font-style"])&&(delete f["font-style"],b.wrap(new e("i",1))),f=j.dom.serializeStyle(f,b.name),f?f:null}var o,p,q=l.content;if(o=k.paste_retain_style_properties,o&&(p=a.makeMap(o.split(/[, ]/))),k.paste_enable_default_filters!==!1&&g(l.content)){l.wordContent=!0,q=f.filter(q,[/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(a,b){return b.length>0?b.replace(/./," ").slice(Math.floor(b.length/2)).split("").join("\xa0"):""}]]);var r=k.paste_word_valid_elements;r||(r="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var s=new c({valid_elements:r,valid_children:"-li[p]"});a.each(s.elements,function(a){a.attributes["class"]||(a.attributes["class"]={},a.attributesOrder.push("class")),a.attributes.style||(a.attributes.style={},a.attributesOrder.push("style"))});var t=new b({},s);t.addAttributeFilter("style",function(a){for(var b,c=a.length;c--;)b=a[c],b.attr("style",n(b,b.attr("style"))),"span"==b.name&&b.parent&&!b.attributes.length&&b.unwrap()}),t.addAttributeFilter("class",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(c)&&b.remove(),b.attr("class",null)}),t.addNodeFilter("del",function(a){for(var b=a.length;b--;)a[b].remove()}),t.addNodeFilter("a",function(a){for(var b,c,d,e=a.length;e--;)if(b=a[e],c=b.attr("href"),d=b.attr("name"),c&&-1!=c.indexOf("#_msocom_"))b.remove();else if(c&&0===c.indexOf("file://")&&(c=c.split("#")[1],c&&(c="#"+c)),c||d){if(d&&!/^_?(?:toc|edn|ftn)/i.test(d)){b.unwrap();continue}b.attr({href:c,name:d})}else b.unwrap()});var u=t.parse(q);k.paste_convert_word_fake_lists!==!1&&m(u),l.content=new d({},s).serialize(u)}})}return j.isWordContent=g,j}),d("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(a,b,c,d){return function(e){function f(a){e.on("BeforePastePreProcess",function(b){b.content=a(b.content)})}function g(a){if(!c.isWordContent(a))return a;var f=[];b.each(e.schema.getBlockElements(),function(a,b){f.push(b)});var g=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+f.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return a=d.filter(a,[[g,"$1"]]),a=d.filter(a,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function h(a){if(c.isWordContent(a))return a;var b=e.settings.paste_webkit_styles;if(e.settings.paste_remove_styles_if_webkit===!1||"all"==b)return a;if(b&&(b=b.split(/[, ]/)),b){var d=e.dom,f=e.selection.getNode();a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(a,c,e,g){var h=d.parseStyle(e,"span"),i={};if("none"===b)return c+g;for(var j=0;j<b.length;j++){var k=h[b[j]],l=d.getStyle(f,b[j],!0);/color/.test(b[j])&&(k=d.toHex(k),l=d.toHex(l)),l!=k&&(i[b[j]]=k)}return i=d.serializeStyle(i,"span"),i?c+' style="'+i+'"'+g:c+g})}else a=a.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return a=a.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(a,b,c,d){return b+' style="'+c+'"'+d})}a.webkit&&f(h),a.ie&&f(g)}}),d("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(a,b,c,d){var e;a.add("paste",function(a){function f(){"text"==g.pasteFormat?(this.active(!1),g.pasteFormat="html"):(g.pasteFormat="text",this.active(!0),e||(a.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),e=!0))}var g,h=this,i=a.settings;h.clipboard=g=new b(a),h.quirks=new d(a),h.wordFilter=new c(a),a.settings.paste_as_text&&(h.clipboard.pasteFormat="text"),i.paste_preprocess&&a.on("PastePreProcess",function(a){i.paste_preprocess.call(h,h,a)}),i.paste_postprocess&&a.on("PastePostProcess",function(a){i.paste_postprocess.call(h,h,a)}),a.addCommand("mceInsertClipboardContent",function(a,b){b.content&&h.clipboard.pasteHtml(b.content),b.text&&h.clipboard.pasteText(b.text)}),a.paste_block_drop&&a.on("dragend dragover draggesture dragdrop drop drag",function(a){a.preventDefault(),a.stopPropagation()}),a.settings.paste_data_images||a.on("drop",function(a){var b=a.dataTransfer;b&&b.files&&b.files.length>0&&a.preventDefault()}),a.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:f,active:"text"==h.clipboard.pasteFormat}),a.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:g.pasteFormat,onclick:f})})}),f(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/WordFilter"])}(this);tinymce.PluginManager.add("preview",function(a){var b=a.settings,c=!tinymce.Env.ie;a.addCommand("mcePreview",function(){a.windowManager.open({title:"Preview",width:parseInt(a.getParam("plugin_preview_width","650"),10),height:parseInt(a.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"'+(c?' sandbox="allow-scripts"':"")+"></iframe>",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var d,e="";e+='<base href="'+a.documentBaseURI.getURI()+'">',tinymce.each(a.contentCSS,function(b){e+='<link type="text/css" rel="stylesheet" href="'+a.documentBaseURI.toAbsolute(b)+'">'});var f=b.body_id||"tinymce";-1!=f.indexOf("=")&&(f=a.getParam("body_id","","hash"),f=f[a.id]||f);var g=b.body_class||"";-1!=g.indexOf("=")&&(g=a.getParam("body_class","","hash"),g=g[a.id]||"");var h=a.settings.directionality?' dir="'+a.settings.directionality+'"':"";if(d="<!DOCTYPE html><html><head>"+e+'</head><body id="'+f+'" class="mce-content-body '+g+'"'+h+">"+a.getContent()+"</body></html>",c)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(d);else{var i=this.getEl("body").firstChild.contentWindow.document;i.open(),i.write(d),i.close()}}})}),a.addButton("preview",{title:"Preview",cmd:"mcePreview"}),a.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})});tinymce.PluginManager.add("print",function(a){a.addCommand("mcePrint",function(){a.getWin().print()}),a.addButton("print",{title:"Print",cmd:"mcePrint"}),a.addShortcut("Ctrl+P","","mcePrint"),a.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});!function(){function a(a,b,c,d,e){function f(a,b){if(b=b||0,!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var c=a.index;if(b>0){var d=a[b];if(!d)throw"Invalid capture group";c+=a[0].indexOf(d),a[0]=d}return[c,c+a[0].length,[a[0]]]}function g(a){var b;if(3===a.nodeType)return a.data;if(n[a.nodeName]&&!m[a.nodeName])return"";if(b="",(m[a.nodeName]||o[a.nodeName])&&(b+="\n"),a=a.firstChild)do b+=g(a);while(a=a.nextSibling);return b}function h(a,b,c){var d,e,f,g,h=[],i=0,j=a,k=b.shift(),l=0;a:for(;;){if((m[j.nodeName]||o[j.nodeName])&&i++,3===j.nodeType&&(!e&&j.length+i>=k[1]?(e=j,g=k[1]-i):d&&h.push(j),!d&&j.length+i>k[0]&&(d=j,f=k[0]-i),i+=j.length),d&&e){if(j=c({startNode:d,startNodeIndex:f,endNode:e,endNodeIndex:g,innerNodes:h,match:k[2],matchIndex:l}),i-=e.length-g,d=null,e=null,h=[],k=b.shift(),l++,!k)break}else{if((!n[j.nodeName]||m[j.nodeName])&&j.firstChild){j=j.firstChild;continue}if(j.nextSibling){j=j.nextSibling;continue}}for(;;){if(j.nextSibling){j=j.nextSibling;break}if(j.parentNode===a)break a;j=j.parentNode}}}function i(a){var b;if("function"!=typeof a){var c=a.nodeType?a:l.createElement(a);b=function(a,b){var d=c.cloneNode(!1);return d.setAttribute("data-mce-index",b),a&&d.appendChild(l.createTextNode(a)),d}}else b=a;return function(a){var c,d,e,f=a.startNode,g=a.endNode,h=a.matchIndex;if(f===g){var i=f;e=i.parentNode,a.startNodeIndex>0&&(c=l.createTextNode(i.data.substring(0,a.startNodeIndex)),e.insertBefore(c,i));var j=b(a.match[0],h);return e.insertBefore(j,i),a.endNodeIndex<i.length&&(d=l.createTextNode(i.data.substring(a.endNodeIndex)),e.insertBefore(d,i)),i.parentNode.removeChild(i),j}c=l.createTextNode(f.data.substring(0,a.startNodeIndex)),d=l.createTextNode(g.data.substring(a.endNodeIndex));for(var k=b(f.data.substring(a.startNodeIndex),h),m=[],n=0,o=a.innerNodes.length;o>n;++n){var p=a.innerNodes[n],q=b(p.data,h);p.parentNode.replaceChild(q,p),m.push(q)}var r=b(g.data.substring(0,a.endNodeIndex),h);return e=f.parentNode,e.insertBefore(c,f),e.insertBefore(k,f),e.removeChild(f),e=g.parentNode,e.insertBefore(r,g),e.insertBefore(d,g),e.removeChild(g),r}}var j,k,l,m,n,o,p=[],q=0;if(l=b.ownerDocument,m=e.getBlockElements(),n=e.getWhiteSpaceElements(),o=e.getShortEndedElements(),k=g(b)){if(a.global)for(;j=a.exec(k);)p.push(f(j,d));else j=k.match(a),p.push(f(j,d));return p.length&&(q=p.length,h(b,p,i(c))),q}}function b(b){function c(){function a(){e.statusbar.find("#next").disabled(!g(k+1).length),e.statusbar.find("#prev").disabled(!g(k-1).length)}function c(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){e.find("#find")[0].focus()})}var d={},e=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){b.focus(),j.done()},onSubmit:function(b){var f,h,i,l;return b.preventDefault(),h=e.find("#case").checked(),l=e.find("#words").checked(),i=e.find("#find").value(),i.length?d.text==i&&d.caseState==h&&d.wholeWord==l?0===g(k+1).length?void c():(j.next(),void a()):(f=j.find(i,h,l),f||c(),e.statusbar.items().slice(1).disabled(0===f),a(),void(d={text:i,caseState:h,wholeWord:l})):(j.done(!1),void e.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",onclick:function(){e.submit()}},{text:"Replace",disabled:!0,onclick:function(){j.replace(e.find("#replace").value())||(e.statusbar.items().slice(1).disabled(!0),k=-1,d={})}},{text:"Replace all",disabled:!0,onclick:function(){j.replace(e.find("#replace").value(),!0,!0),e.statusbar.items().slice(1).disabled(!0),d={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){j.prev(),a()}},{text:"Next",name:"next",disabled:!0,onclick:function(){j.next(),a()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:b.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function d(a){var b=a.getAttribute("data-mce-index");return"number"==typeof b?""+b:b}function e(c){var d,e;return e=b.dom.create("span",{"data-mce-bogus":1}),e.className="mce-match-marker",d=b.getBody(),j.done(!1),a(c,d,e,!1,b.schema)}function f(a){var b=a.parentNode;a.firstChild&&b.insertBefore(a.firstChild,a),a.parentNode.removeChild(a)}function g(a){var c,e=[];if(c=tinymce.toArray(b.getBody().getElementsByTagName("span")),c.length)for(var f=0;f<c.length;f++){var g=d(c[f]);null!==g&&g.length&&g===a.toString()&&e.push(c[f])}return e}function h(a){var c=k,d=b.dom;a=a!==!1,a?c++:c--,d.removeClass(g(k),"mce-match-marker-selected");var e=g(c);return e.length?(d.addClass(g(c),"mce-match-marker-selected"),b.selection.scrollIntoView(e[0]),c):-1}function i(a){a.parentNode.removeChild(a)}var j=this,k=-1;j.init=function(a){a.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:c,separator:"before",context:"edit"}),a.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:c}),a.addCommand("SearchReplace",c),a.shortcuts.add("Ctrl+F","",c)},j.find=function(a,b,c){a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=c?"\\b"+a+"\\b":a;var d=e(new RegExp(a,b?"g":"gi"));return d&&(k=-1,k=h(!0)),d},j.next=function(){var a=h(!0);-1!==a&&(k=a)},j.prev=function(){var a=h(!1);-1!==a&&(k=a)},j.replace=function(a,c,e){var h,l,m,n,o,p,q=k;for(c=c!==!1,m=b.getBody(),l=tinymce.toArray(m.getElementsByTagName("span")),h=0;h<l.length;h++){var r=d(l[h]);if(null!==r&&r.length)if(n=o=parseInt(r,10),e||n===k){for(a.length?(l[h].firstChild.nodeValue=a,f(l[h])):i(l[h]);l[++h];)if(n=d(l[h]),null!==r&&r.length){if(n!==o){h--;break}i(l[h])}c&&q--}else o>k&&l[h].setAttribute("data-mce-index",o-1)}return b.undoManager.add(),k=q,c?(p=g(q+1).length>0,j.next()):(p=g(q-1).length>0,j.prev()),!e&&p},j.done=function(a){var c,e,g,h;for(e=tinymce.toArray(b.getBody().getElementsByTagName("span")),c=0;c<e.length;c++){var i=d(e[c]);null!==i&&i.length&&(i===k.toString()&&(g||(g=e[c].firstChild),h=e[c].firstChild),f(e[c]))}if(g&&h){var j=b.dom.createRng();return j.setStart(g,0),j.setEnd(h,h.data.length),a!==!1&&b.selection.setRng(j),j}}}tinymce.PluginManager.add("searchreplace",b)}();tinymce.PluginManager.add("tabfocus",function(a){function b(a){9!==a.keyCode||a.ctrlKey||a.altKey||a.metaKey||a.preventDefault()}function c(b){function c(c){function f(a){return"BODY"===a.nodeName||"hidden"!=a.type&&"none"!=a.style.display&&"hidden"!=a.style.visibility&&f(a.parentNode)}function i(a){return/INPUT|TEXTAREA|BUTTON/.test(a.tagName)&&tinymce.get(b.id)&&-1!=a.tabIndex&&f(a)}if(h=d.select(":input:enabled,*[tabindex]:not(iframe)"),e(h,function(b,c){return b.id==a.id?(g=c,!1):void 0}),c>0){for(j=g+1;j<h.length;j++)if(i(h[j]))return h[j]}else for(j=g-1;j>=0;j--)if(i(h[j]))return h[j];return null}var g,h,i,j;if(!(9!==b.keyCode||b.ctrlKey||b.altKey||b.metaKey||b.isDefaultPrevented())&&(i=f(a.getParam("tab_focus",a.getParam("tabfocus_elements",":prev,:next"))),1==i.length&&(i[1]=i[0],i[0]=":prev"),h=b.shiftKey?":prev"==i[0]?c(-1):d.get(i[0]):":next"==i[1]?c(1):d.get(i[1]))){var k=tinymce.get(h.id||h.name);h.id&&k?k.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),h.focus()},10),b.preventDefault()}}var d=tinymce.DOM,e=tinymce.each,f=tinymce.explode;a.on("init",function(){a.inline&&tinymce.DOM.setAttrib(a.getBody(),"tabIndex",null),a.on("keyup",b),tinymce.Env.gecko?a.on("keypress keydown",c):a.on("keydown",c)})});!function(a,b){"use strict";function c(a,b){for(var c,d=[],g=0;g<a.length;++g){if(c=f[a[g]]||e(a[g]),!c)throw"module definition dependecy not found: "+a[g];d.push(c)}b.apply(null,d)}function d(a,d,e){if("string"!=typeof a)throw"invalid module definition, module id must be defined and be a string";if(d===b)throw"invalid module definition, dependencies must be specified";if(e===b)throw"invalid module definition, definition function must be specified";c(d,function(){f[a]=e.apply(null,arguments)})}function e(b){for(var c=a,d=b.split(/[.\/]/),e=0;e<d.length;++e){if(!c[d[e]])return;c=c[d[e]]}return c}var f={};d("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env"],function(a,c){function d(a,b){return parseInt(a.getAttribute(b)||1,10)}var e=a.each;return function(f,g){function h(){var a=0;F=[],G=0,e(["thead","tbody","tfoot"],function(b){var c=L.select("> "+b+" tr",g);e(c,function(c,f){f+=a,e(L.select("> td, > th",c),function(a,c){var e,g,h,i;if(F[f])for(;F[f][c];)c++;for(h=d(a,"rowspan"),i=d(a,"colspan"),g=f;f+h>g;g++)for(F[g]||(F[g]=[]),e=c;c+i>e;e++)F[g][e]={part:b,real:g==f&&e==c,elm:a,rowspan:h,colspan:i};G=Math.max(G,c+1)})}),a+=c.length})}function i(a,b){return a=a.cloneNode(b),a.removeAttribute("id"),a}function j(a,b){var c;return c=F[b],c?c[a]:void 0}function k(a,b,c){a&&(c=parseInt(c,10),1===c?a.removeAttribute(b,1):a.setAttribute(b,c,1))}function l(a){return a&&(L.hasClass(a.elm,"mce-item-selected")||a==J)}function m(){var a=[];return e(g.rows,function(b){e(b.cells,function(c){return L.hasClass(c,"mce-item-selected")||J&&c==J.elm?(a.push(b),!1):void 0})}),a}function n(){var a=L.createRng();a.setStartAfter(g),a.setEndAfter(g),K.setRng(a),L.remove(g)}function o(b){var d,g={};return f.settings.table_clone_elements!==!1&&(g=a.makeMap((f.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),a.walk(b,function(a){var f;return 3==a.nodeType?(e(L.getParents(a.parentNode,null,b).reverse(),function(a){g[a.nodeName]&&(a=i(a,!1),d?f&&f.appendChild(a):d=f=a,f=a)}),f&&(f.innerHTML=c.ie?" ":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),b=i(b,!1),k(b,"rowSpan",1),k(b,"colSpan",1),d?b.appendChild(d):(!c.ie||c.ie>10)&&(b.innerHTML='<br data-mce-bogus="1" />'),b}function p(){var a,b=L.createRng();return e(L.select("tr",g),function(a){0===a.cells.length&&L.remove(a)}),0===L.select("tr",g).length?(b.setStartBefore(g),b.setEndBefore(g),K.setRng(b),void L.remove(g)):(e(L.select("thead,tbody,tfoot",g),function(a){0===a.rows.length&&L.remove(a)}),h(),void(H&&(a=F[Math.min(F.length-1,H.y)],a&&(K.select(a[Math.min(a.length-1,H.x)].elm,!0),K.collapse(!0)))))}function q(a,b,c,d){var e,f,g,h,i;for(e=F[b][a].elm.parentNode,g=1;c>=g;g++)if(e=L.getNext(e,"tr")){for(f=a;f>=0;f--)if(i=F[b+g][f].elm,i.parentNode==e){for(h=1;d>=h;h++)L.insertAfter(o(i),i);break}if(-1==f)for(h=1;d>=h;h++)e.insertBefore(o(e.cells[0]),e.cells[0])}}function r(){e(F,function(a,b){e(a,function(a,c){var e,f,g;if(l(a)&&(a=a.elm,e=d(a,"colspan"),f=d(a,"rowspan"),e>1||f>1)){for(k(a,"rowSpan",1),k(a,"colSpan",1),g=0;e-1>g;g++)L.insertAfter(o(a),a);q(c,b,f-1,e)}})})}function s(b,c,d){var f,g,i,m,n,o,q,s,t,u,v;if(b?(f=A(b),g=f.x,i=f.y,m=g+(c-1),n=i+(d-1)):(H=I=null,e(F,function(a,b){e(a,function(a,c){l(a)&&(H||(H={x:c,y:b}),I={x:c,y:b})})}),H&&(g=H.x,i=H.y,m=I.x,n=I.y)),s=j(g,i),t=j(m,n),s&&t&&s.part==t.part){for(r(),h(),s=j(g,i).elm,k(s,"colSpan",m-g+1),k(s,"rowSpan",n-i+1),q=i;n>=q;q++)for(o=g;m>=o;o++)F[q]&&F[q][o]&&(b=F[q][o].elm,b!=s&&(u=a.grep(b.childNodes),e(u,function(a){s.appendChild(a)}),u.length&&(u=a.grep(s.childNodes),v=0,e(u,function(a){"BR"==a.nodeName&&L.getAttrib(a,"data-mce-bogus")&&v++<u.length-1&&s.removeChild(a)})),L.remove(b)));p()}}function t(a){var c,f,g,h,j,m,n,p,q;if(e(F,function(b,d){return e(b,function(b){return l(b)&&(b=b.elm,j=b.parentNode,m=i(j,!1),c=d,a)?!1:void 0}),a?!c:void 0}),c!==b){for(h=0;h<F[0].length;h++)if(F[c][h]&&(f=F[c][h].elm,f!=g)){if(a){if(c>0&&F[c-1][h]&&(p=F[c-1][h].elm,q=d(p,"rowSpan"),q>1)){k(p,"rowSpan",q+1);continue}}else if(q=d(f,"rowspan"),q>1){k(f,"rowSpan",q+1);continue}n=o(f),k(n,"colSpan",f.colSpan),m.appendChild(n),g=f}m.hasChildNodes()&&(a?j.parentNode.insertBefore(m,j):L.insertAfter(m,j))}}function u(a){var b,c;e(F,function(c){return e(c,function(c,d){return l(c)&&(b=d,a)?!1:void 0}),a?!b:void 0}),e(F,function(e,f){var g,h,i;e[b]&&(g=e[b].elm,g!=c&&(i=d(g,"colspan"),h=d(g,"rowspan"),1==i?a?(g.parentNode.insertBefore(o(g),g),q(b,f,h-1,i)):(L.insertAfter(o(g),g),q(b,f,h-1,i)):k(g,"colSpan",g.colSpan+1),c=g))})}function v(){var b=[];e(F,function(c){e(c,function(c,f){l(c)&&-1===a.inArray(b,f)&&(e(F,function(a){var b,c=a[f].elm;b=d(c,"colSpan"),b>1?k(c,"colSpan",b-1):L.remove(c)}),b.push(f))})}),p()}function w(){function a(a){var b,c;e(a.cells,function(a){var c=d(a,"rowSpan");c>1&&(k(a,"rowSpan",c-1),b=A(a),q(b.x,b.y,1,1))}),b=A(a.cells[0]),e(F[b.y],function(a){var b;a=a.elm,a!=c&&(b=d(a,"rowSpan"),1>=b?L.remove(a):k(a,"rowSpan",b-1),c=a)})}var b;b=m(),e(b.reverse(),function(b){a(b)}),p()}function x(){var a=m();return L.remove(a),p(),a}function y(){var a=m();return e(a,function(b,c){a[c]=i(b,!0)}),a}function z(a,b){var c=m(),d=c[b?0:c.length-1],f=d.cells.length;a&&(e(F,function(a){var b;return f=0,e(a,function(a){a.real&&(f+=a.colspan),a.elm.parentNode==d&&(b=1)}),b?!1:void 0}),b||a.reverse(),e(a,function(a){var c,e,g=a.cells.length;for(c=0;g>c;c++)e=a.cells[c],k(e,"colSpan",1),k(e,"rowSpan",1);for(c=g;f>c;c++)a.appendChild(o(a.cells[g-1]));for(c=f;g>c;c++)L.remove(a.cells[c]);b?d.parentNode.insertBefore(a,d):L.insertAfter(a,d)}),L.removeClass(L.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function A(a){var b;return e(F,function(c,d){return e(c,function(c,e){return c.elm==a?(b={x:e,y:d},!1):void 0}),!b}),b}function B(a){H=A(a)}function C(){var a,b;return a=b=0,e(F,function(c,d){e(c,function(c,e){var f,g;l(c)&&(c=F[d][e],e>a&&(a=e),d>b&&(b=d),c.real&&(f=c.colspan-1,g=c.rowspan-1,f&&e+f>a&&(a=e+f),g&&d+g>b&&(b=d+g)))})}),{x:a,y:b}}function D(a){var b,c,d,e,f,g,h,i,j,k;if(I=A(a),H&&I){for(b=Math.min(H.x,I.x),c=Math.min(H.y,I.y),d=Math.max(H.x,I.x),e=Math.max(H.y,I.y),f=d,g=e,k=c;g>=k;k++)a=F[k][b],a.real||b-(a.colspan-1)<b&&(b-=a.colspan-1);for(j=b;f>=j;j++)a=F[c][j],a.real||c-(a.rowspan-1)<c&&(c-=a.rowspan-1);for(k=c;e>=k;k++)for(j=b;d>=j;j++)a=F[k][j],a.real&&(h=a.colspan-1,i=a.rowspan-1,h&&j+h>f&&(f=j+h),i&&k+i>g&&(g=k+i));for(L.removeClass(L.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),k=c;g>=k;k++)for(j=b;f>=j;j++)F[k][j]&&L.addClass(F[k][j].elm,"mce-item-selected")}}function E(a,b){var c,d,e;c=A(a),d=c.y*G+c.x;do{if(d+=b,e=j(d%G,Math.floor(d/G)),!e)break;if(e.elm!=a)return K.select(e.elm,!0),L.isEmpty(e.elm)&&K.collapse(!0),!0}while(e.elm==a);return!1}var F,G,H,I,J,K=f.selection,L=K.dom;g=g||L.getParent(K.getStart(),"table"),h(),J=L.getParent(K.getStart(),"th,td"),J&&(H=A(J),I=C(),J=j(H.x,H.y)),a.extend(this,{deleteTable:n,split:r,merge:s,insertRow:t,insertCol:u,deleteCols:v,deleteRows:w,cutRows:x,copyRows:y,pasteRows:z,getPos:A,setStartCell:B,setEndCell:D,moveRelIdx:E,refresh:h})}}),d("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/Env","tinymce/util/Tools"],function(a,b,c){function d(a,b){return parseInt(a.getAttribute(b)||1,10)}var e=c.each;return function(c){function f(){function b(b){function f(a,d){var e=a?"previousSibling":"nextSibling",f=c.dom.getParent(d,"tr"),h=f[e];if(h)return q(c,d,h,a),b.preventDefault(),!0;var k=c.dom.getParent(f,"table"),l=f.parentNode,m=l.nodeName.toLowerCase();if("tbody"===m||m===(a?"tfoot":"thead")){var n=g(a,k,l,"tbody");if(null!==n)return i(a,n,d)}return j(a,f,e,k)}function g(a,b,d,e){var f=c.dom.select(">"+e,b),g=f.indexOf(d);if(a&&0===g||!a&&g===f.length-1)return h(a,b);if(-1===g){var i="thead"===d.tagName.toLowerCase()?0:f.length-1;return f[i]}return f[g+(a?-1:1)]}function h(a,b){var d=a?"thead":"tfoot",e=c.dom.select(">"+d,b);return 0!==e.length?e[0]:null}function i(a,d,e){var f=k(d,a);return f&&q(c,e,f,a),b.preventDefault(),!0}function j(a,d,e,g){var h=g[e];if(h)return l(h),!0;var i=c.dom.getParent(g,"td,th");if(i)return f(a,i,b);var j=k(d,!a);return l(j),b.preventDefault(),!1}function k(a,b){var d=a&&a[b?"lastChild":"firstChild"];return d&&"BR"===d.nodeName?c.dom.getParent(d,"td,th"):d}function l(a){c.selection.setCursorLocation(a,0)}function m(){return t==a.UP||t==a.DOWN}function n(a){var b=a.selection.getNode(),c=a.dom.getParent(b,"tr");return null!==c}function o(a){for(var b=0,c=a;c.previousSibling;)c=c.previousSibling,b+=d(c,"colspan");return b}function p(a,b){var c=0,f=0;return e(a.children,function(a,e){return c+=d(a,"colspan"),f=e,c>b?!1:void 0}),f}function q(a,b,d,e){var f=o(c.dom.getParent(b,"td,th")),g=p(d,f),h=d.childNodes[g],i=k(h,e);l(i||h)}function r(a){var b=c.selection.getNode(),d=c.dom.getParent(b,"td,th"),e=c.dom.getParent(a,"td,th");return d&&d!==e&&s(d,e)}function s(a,b){return c.dom.getParent(a,"TABLE")===c.dom.getParent(b,"TABLE")}var t=b.keyCode;if(m()&&n(c)){var u=c.selection.getNode();setTimeout(function(){r(u)&&f(!b.shiftKey&&t===a.UP,u,b)},0)}}c.on("KeyDown",function(a){b(a)})}function g(){function a(a,b){var c,d=b.ownerDocument,e=d.createRange();return e.setStartBefore(b),e.setEnd(a.endContainer,a.endOffset),c=d.createElement("body"),c.appendChild(e.cloneContents()),0===c.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}c.on("KeyDown",function(b){var d,e,f=c.dom;(37==b.keyCode||38==b.keyCode)&&(d=c.selection.getRng(),e=f.getParent(d.startContainer,"table"),e&&c.getBody().firstChild==e&&a(d,e)&&(d=f.createRng(),d.setStartBefore(e),d.setEndBefore(e),c.selection.setRng(d),b.preventDefault()))})}function h(){c.on("KeyDown SetContent VisualAid",function(){var a;for(a=c.getBody().lastChild;a;a=a.previousSibling)if(3==a.nodeType){if(a.nodeValue.length>0)break}else if(1==a.nodeType&&("BR"==a.tagName||!a.getAttribute("data-mce-bogus")))break;a&&"TABLE"==a.nodeName&&(c.settings.forced_root_block?c.dom.add(c.getBody(),c.settings.forced_root_block,c.settings.forced_root_block_attrs,b.ie&&b.ie<11?" ":'<br data-mce-bogus="1" />'):c.dom.add(c.getBody(),"br",{"data-mce-bogus":"1"}))}),c.on("PreProcess",function(a){var b=a.node.lastChild;b&&("BR"==b.nodeName||1==b.childNodes.length&&("BR"==b.firstChild.nodeName||"\xa0"==b.firstChild.nodeValue))&&b.previousSibling&&"TABLE"==b.previousSibling.nodeName&&c.dom.remove(b)})}function i(){function a(a,b,c,d){var e,f,g,h=3,i=a.dom.getParent(b.startContainer,"TABLE");return i&&(e=i.parentNode),f=b.startContainer.nodeType==h&&0===b.startOffset&&0===b.endOffset&&d&&("TR"==c.nodeName||c==e),g=("TD"==c.nodeName||"TH"==c.nodeName)&&!d,f||g}function b(){var b=c.selection.getRng(),d=c.selection.getNode(),e=c.dom.getParent(b.startContainer,"TD,TH");if(a(c,b,d,e)){e||(e=d);for(var f=e.lastChild;f.lastChild;)f=f.lastChild;3==f.nodeType&&(b.setEnd(f,f.data.length),c.selection.setRng(b))}}c.on("KeyDown",function(){b()}),c.on("MouseDown",function(a){2!=a.button&&b()})}function j(){c.on("keydown",function(b){if((b.keyCode==a.DELETE||b.keyCode==a.BACKSPACE)&&!b.isDefaultPrevented()){var d=c.dom.getParent(c.selection.getStart(),"table");if(d){for(var e=c.dom.select("td,th",d),f=e.length;f--;)if(!c.dom.hasClass(e[f],"mce-item-selected"))return;b.preventDefault(),c.execCommand("mceTableDelete")}}})}j(),b.webkit&&(f(),i()),b.gecko&&(g(),h()),b.ie>10&&(g(),h())}}),d("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(a,b,c){return function(d){function e(a){d.getBody().style.webkitUserSelect="",(a||l)&&(d.dom.removeClass(d.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),l=!1)}function f(b){var c,e,f=b.target;if(!j&&h&&(g||f!=h)&&("TD"==f.nodeName||"TH"==f.nodeName)){e=k.getParent(f,"table"),e==i&&(g||(g=new a(d,e),g.setStartCell(h),d.getBody().style.webkitUserSelect="none"),g.setEndCell(f),l=!0),c=d.selection.getSel();try{c.removeAllRanges?c.removeAllRanges():c.empty()}catch(m){}b.preventDefault()}}var g,h,i,j,k=d.dom,l=!0;return d.on("MouseDown",function(a){2==a.button||j||(e(),h=k.getParent(a.target,"td,th"),i=k.getParent(h,"table"))}),d.on("mouseover",f),d.on("remove",function(){k.unbind(d.getDoc(),"mouseover",f)}),d.on("MouseUp",function(){function a(a,d){var f=new b(a,a);do{if(3==a.nodeType&&0!==c.trim(a.nodeValue).length)return void(d?e.setStart(a,0):e.setEnd(a,a.nodeValue.length));if("BR"==a.nodeName)return void(d?e.setStartBefore(a):e.setEndBefore(a))}while(a=d?f.next():f.prev())}var e,f,j,l,m,n=d.selection;if(h){if(g&&(d.getBody().style.webkitUserSelect=""),f=k.select("td.mce-item-selected,th.mce-item-selected"),f.length>0){e=k.createRng(),l=f[0],e.setStartBefore(l),e.setEndAfter(l),a(l,1),j=new b(l,k.getParent(f[0],"table"));do if("TD"==l.nodeName||"TH"==l.nodeName){if(!k.hasClass(l,"mce-item-selected"))break;m=l}while(l=j.next());a(m),n.setRng(e)}d.nodeChanged(),h=g=i=null}}),d.on("KeyUp Drop SetContent",function(a){e("setcontent"==a.type),h=g=i=null,j=!1}),d.on("ObjectResizeStart ObjectResized",function(a){j="objectresized"!=a.type}),{clear:e}}}),d("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(a,b){var c=a.each;return function(d){function e(){var a=d.settings.color_picker_callback;return a?function(){var b=this;a.call(d,function(a){b.value(a).fire("change")},b.value())}:void 0}function f(a){return{title:"Advanced",type:"form",defaults:{onchange:function(){l(a,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}}function g(a){return a?a.replace(/px$/,""):""}function h(a){return/^[0-9]+$/.test(a)&&(a+="px"),a}function i(a){c("left center right".split(" "),function(b){d.formatter.remove("align"+b,{},a)})}function j(a){c("top middle bottom".split(" "),function(b){d.formatter.remove("valign"+b,{},a)})}function k(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d}return e(b,d||[])}function l(a,b,c){var d=b.toJSON(),e=a.parseStyle(d.style);c?(b.find("#borderColor").value(e["border-color"]||"")[0].fire("change"),b.find("#backgroundColor").value(e["background-color"]||"")[0].fire("change")):(e["border-color"]=d.borderColor,e["background-color"]=d.backgroundColor),b.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}function m(a,b,c){var d=a.parseStyle(a.getAttrib(c,"style"));d["border-color"]&&(b.borderColor=d["border-color"]),d["background-color"]&&(b.backgroundColor=d["background-color"]),b.style=a.serializeStyle(d)}var n=this;n.tableProps=function(){n.table(!0)},n.table=function(e){function j(){var c;l(s,this),t=a.extend(t,this.toJSON()),a.each("backgroundColor borderColor".split(" "),function(a){delete t[a]}),t["class"]===!1&&delete t["class"],d.undoManager.transact(function(){n||(n=d.plugins.table.insertTable(t.cols||1,t.rows||1)),d.dom.setAttribs(n,{cellspacing:t.cellspacing,cellpadding:t.cellpadding,border:t.border,style:t.style,"class":t["class"]}),s.getAttrib(n,"width")?s.setAttrib(n,"width",g(t.width)):s.setStyle(n,"width",h(t.width)),s.setStyle(n,"height",h(t.height)),c=s.select("caption",n)[0],c&&!t.caption&&s.remove(c),!c&&t.caption&&(c=s.create("caption"),c.innerHTML=b.ie?"\xa0":'<br data-mce-bogus="1"/>',n.insertBefore(c,n.firstChild)),i(n),t.align&&d.formatter.apply("align"+t.align,{},n),d.focus(),d.addVisual()})}var n,o,p,q,r,s=d.dom,t={};e===!0?(n=s.getParent(d.selection.getStart(),"table"),n&&(t={width:g(s.getStyle(n,"width")||s.getAttrib(n,"width")),height:g(s.getStyle(n,"height")||s.getAttrib(n,"height")),cellspacing:n?s.getAttrib(n,"cellspacing"):"",cellpadding:n?s.getAttrib(n,"cellpadding"):"",border:n?s.getAttrib(n,"border"):"",caption:!!s.select("caption",n)[0],"class":s.getAttrib(n,"class")},c("left center right".split(" "),function(a){d.formatter.matchNode(n,"align"+a)&&(t.align=a)}))):(o={label:"Cols",name:"cols"},p={label:"Rows",name:"rows"}),d.settings.table_class_list&&(t["class"]&&(t["class"]=t["class"].replace(/\s*mce\-item\-table\s*/g,"")),q={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"table",classes:[a.value]})})})}),r={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[o,p,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},q]},d.settings.table_advtab!==!1?(m(s,t,n),d.windowManager.open({title:"Table properties",data:t,bodyType:"tabpanel",body:[{title:"General",type:"form",items:r},f(s)],onsubmit:j})):d.windowManager.open({title:"Table properties",data:t,body:r,onsubmit:j})},n.merge=function(a,b){d.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var c=this.toJSON();d.undoManager.transact(function(){a.merge(b,c.cols,c.rows)})}})},n.cell=function(){function b(){l(p,this),n=a.extend(n,this.toJSON()),d.undoManager.transact(function(){c(q,function(a){d.dom.setAttribs(a,{scope:n.scope,style:n.style,"class":n["class"]}),d.dom.setStyles(a,{width:h(n.width),height:h(n.height)}),n.type&&a.nodeName.toLowerCase()!=n.type&&(a=p.rename(a,n.type)),i(a),n.align&&d.formatter.apply("align"+n.align,{},a),j(a),n.valign&&d.formatter.apply("valign"+n.valign,{},a)}),d.focus()})}var e,n,o,p=d.dom,q=[];if(q=d.dom.select("td.mce-item-selected,th.mce-item-selected"),e=d.dom.getParent(d.selection.getStart(),"td,th"),!q.length&&e&&q.push(e),e=e||q[0]){n={width:g(p.getStyle(e,"width")||p.getAttrib(e,"width")),height:g(p.getStyle(e,"height")||p.getAttrib(e,"height")),scope:p.getAttrib(e,"scope"),"class":p.getAttrib(e,"class")},n.type=e.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(e,"align"+a)&&(n.align=a)}),c("top middle bottom".split(" "),function(a){d.formatter.matchNode(e,"valign"+a)&&(n.valign=a)}),d.settings.table_cell_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_cell_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"td",classes:[a.value]})})})});var r={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},o]};d.settings.table_cell_advtab!==!1?(m(p,n,e),d.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:n,body:[{title:"General",type:"form",items:r},f(p)],onsubmit:b})):d.windowManager.open({title:"Cell properties",data:n,body:r,onsubmit:b})}},n.row=function(){function b(){var b,e,f;l(r,this),p=a.extend(p,this.toJSON()),d.undoManager.transact(function(){var a=p.type;c(s,function(c){d.dom.setAttribs(c,{scope:p.scope,style:p.style,"class":p["class"]}),d.dom.setStyles(c,{height:h(p.height)}),a!=c.parentNode.nodeName.toLowerCase()&&(b=r.getParent(c,"table"),e=c.parentNode,f=r.select(a,b)[0],f||(f=r.create(a),b.firstChild?b.insertBefore(f,b.firstChild):b.appendChild(f)),f.appendChild(c),e.hasChildNodes()||r.remove(e)),i(c),p.align&&d.formatter.apply("align"+p.align,{},c)}),d.focus()})}var e,j,n,o,p,q,r=d.dom,s=[];e=d.dom.getParent(d.selection.getStart(),"table"),j=d.dom.getParent(d.selection.getStart(),"td,th"),c(e.rows,function(a){c(a.cells,function(b){return r.hasClass(b,"mce-item-selected")||b==j?(s.push(a),!1):void 0})}),n=s[0],n&&(p={height:g(r.getStyle(n,"height")||r.getAttrib(n,"height")),scope:r.getAttrib(n,"scope"),"class":r.getAttrib(n,"class")},p.type=n.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(n,"align"+a)&&(p.align=a)}),d.settings.table_row_class_list&&(o={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_row_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"tr",classes:[a.value]})})})}),q={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},o]},d.settings.table_row_advtab!==!1?(m(r,p,n),d.windowManager.open({title:"Row properties",data:p,bodyType:"tabpanel",body:[{title:"General",type:"form",items:q},f(r)],onsubmit:b})):d.windowManager.open({title:"Row properties",data:p,body:q,onsubmit:b}))}}}),d("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(a,b,c,d,e,f,g,h){function i(e){function f(a){return function(){e.execCommand(a)}}function h(a,b){var c,d,f,h;for(f='<table id="__mce"><tbody>',c=0;b>c;c++){for(f+="<tr>",d=0;a>d;d++)f+="<td>"+(g.ie?" ":"<br>")+"</td>";f+="</tr>"}return f+="</tbody></table>",e.undoManager.transact(function(){e.insertContent(f),h=e.dom.get("__mce"),e.dom.setAttrib(h,"id",null),e.dom.setAttribs(h,e.settings.table_default_attributes||{}),e.dom.setStyles(h,e.settings.table_default_styles||{})}),h}function i(a,b){function c(){a.disabled(!e.dom.getParent(e.selection.getStart(),b)),e.selection.selectorChanged(b,function(b){a.disabled(!b)})}e.initialized?c():e.on("init",c)}function k(){i(this,"table")}function l(){i(this,"td,th")}function m(){var a="";a='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var b=0;10>b;b++){a+="<tr>";for(var c=0;10>c;c++)a+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*b+c)+'" href="#" data-mce-x="'+c+'" data-mce-y="'+b+'"></a></td>';a+="</tr>"}return a+="</table>",a+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function n(a,b,c){var d,f,g,h,i,j=c.getEl().getElementsByTagName("table")[0],k=c.isRtl()||"tl-tr"==c.parent().rel;for(j.nextSibling.innerHTML=a+1+" x "+(b+1),k&&(a=9-a),f=0;10>f;f++)for(d=0;10>d;d++)h=j.rows[f].childNodes[d].firstChild,i=(k?d>=a:a>=d)&&b>=f,e.dom.toggleClass(h,"mce-active",i),i&&(g=h);return g.parentNode}var o,p=this,q=new d(e);e.settings.table_grid===!1?e.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:q.table}):e.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(a){a.aria&&(this.parent().hideAll(),a.stopImmediatePropagation(),q.table())},onshow:function(){n(0,0,this.menu.items()[0])},onhide:function(){var a=this.menu.items()[0].getEl().getElementsByTagName("a");e.dom.removeClass(a,"mce-active"),e.dom.addClass(a[0],"mce-active")},menu:[{type:"container",html:m(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(a){var b,c,d=a.target;"A"==d.tagName.toUpperCase()&&(b=parseInt(d.getAttribute("data-mce-x"),10),c=parseInt(d.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(b=9-b),(b!==this.lastX||c!==this.lastY)&&(n(b,c,a.control),this.lastX=b,this.lastY=c))},onclick:function(a){var b=this;"A"==a.target.tagName.toUpperCase()&&(a.preventDefault(),a.stopPropagation(),b.parent().cancel(),e.undoManager.transact(function(){h(b.lastX+1,b.lastY+1)}),e.addVisual())}}]}),e.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:k,onclick:q.tableProps}),e.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:k,cmd:"mceTableDelete"}),e.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:f("mceTableCellProps"),onPostRender:l},{text:"Merge cells",onclick:f("mceTableMergeCells"),onPostRender:l},{text:"Split cell",onclick:f("mceTableSplitCells"),onPostRender:l}]}),e.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:f("mceTableInsertRowBefore"),onPostRender:l},{text:"Insert row after",onclick:f("mceTableInsertRowAfter"),onPostRender:l},{text:"Delete row",onclick:f("mceTableDeleteRow"),onPostRender:l},{text:"Row properties",onclick:f("mceTableRowProps"),onPostRender:l},{text:"-"},{text:"Cut row",onclick:f("mceTableCutRow"),onPostRender:l},{text:"Copy row",onclick:f("mceTableCopyRow"),onPostRender:l},{text:"Paste row before",onclick:f("mceTablePasteRowBefore"),onPostRender:l},{text:"Paste row after",onclick:f("mceTablePasteRowAfter"),onPostRender:l}]}),e.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:f("mceTableInsertColBefore"),onPostRender:l},{text:"Insert column after",onclick:f("mceTableInsertColAfter"),onPostRender:l},{text:"Delete column",onclick:f("mceTableDeleteCol"),onPostRender:l}]});var r=[];j("inserttable tableprops deletetable | cell row column".split(" "),function(a){r.push("|"==a?{text:"-"}:e.menuItems[a])}),e.addButton("table",{type:"menubutton",title:"Table",menu:r}),g.isIE||e.on("click",function(a){a=a.target,"TABLE"===a.nodeName&&(e.selection.select(a),e.nodeChanged())}),p.quirks=new b(e),e.on("Init",function(){p.cellSelection=new c(e)}),j({mceTableSplitCells:function(a){a.split()},mceTableMergeCells:function(a){var b;b=e.dom.getParent(e.selection.getStart(),"th,td"),e.dom.select("td.mce-item-selected,th.mce-item-selected").length?a.merge():q.merge(a,b)},mceTableInsertRowBefore:function(a){a.insertRow(!0)},mceTableInsertRowAfter:function(a){a.insertRow()},mceTableInsertColBefore:function(a){a.insertCol(!0)},mceTableInsertColAfter:function(a){a.insertCol()},mceTableDeleteCol:function(a){a.deleteCols()},mceTableDeleteRow:function(a){a.deleteRows()},mceTableCutRow:function(a){o=a.cutRows()},mceTableCopyRow:function(a){o=a.copyRows()},mceTablePasteRowBefore:function(a){a.pasteRows(o,!0)},mceTablePasteRowAfter:function(a){a.pasteRows(o)},mceTableDelete:function(a){a.deleteTable()}},function(b,c){e.addCommand(c,function(){var c=new a(e);c&&(b(c),e.execCommand("mceRepaint"),p.cellSelection.clear())})}),j({mceInsertTable:q.table,mceTableProps:function(){q.table(!0)},mceTableRowProps:q.row,mceTableCellProps:q.cell},function(a,b){e.addCommand(b,function(b,c){a(c)})}),e.settings.table_tab_navigation!==!1&&e.on("keydown",function(b){var c,d,f;9==b.keyCode&&(c=e.dom.getParent(e.selection.getStart(),"th,td"),c&&(b.preventDefault(),d=new a(e),f=b.shiftKey?-1:1,e.undoManager.transact(function(){!d.moveRelIdx(c,f)&&f>0&&(d.insertRow(),d.refresh(),d.moveRelIdx(c,f))})))}),p.insertTable=h}var j=e.each;h.add("table",i)})}(this);tinymce.PluginManager.add("textcolor",function(a){function b(b){var c;return a.dom.getParents(a.selection.getStart(),function(a){var d;(d=a.style["forecolor"==b?"color":"background-color"])&&(c=d)}),c}function c(){var b,c,d=[];for(c=a.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],b=0;b<c.length;b+=2)d.push({text:c[b+1],color:"#"+c[b]});return d}function d(){function b(a,b){var c="transparent"==a;return'<td class="mce-grid-cell'+(c?" mce-colorbtn-trans":"")+'"><div id="'+n+"-"+o++ +'" data-mce-color="'+(a?a:"")+'" role="option" tabIndex="-1" style="'+(a?"background-color: "+a:"")+'" title="'+tinymce.translate(b)+'">'+(c?"×":"")+"</div></td>"}var d,e,f,g,h,k,l,m=this,n=m._id,o=0;for(d=c(),d.push({text:tinymce.translate("No color"),color:"transparent"}),f='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',g=d.length-1,k=0;j>k;k++){for(f+="<tr>",h=0;i>h;h++)l=k*i+h,l>g?f+="<td></td>":(e=d[l],f+=b(e.color,e.text));f+="</tr>"}if(a.settings.color_picker_callback){for(f+='<tr><td colspan="'+i+'" class="mce-custom-color-btn"><div id="'+n+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+n+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+tinymce.translate("Custom...")+"</button></div></td></tr>",f+="<tr>",h=0;i>h;h++)f+=b("","Custom color");f+="</tr>"}return f+="</tbody></table>"}function e(b,c){a.focus(),a.formatter.apply(b,{value:c}),a.nodeChanged()}function f(b){a.focus(),a.formatter.remove(b,{value:null},null,!0),a.nodeChanged()}function g(c){function d(a){j.hidePanel(),j.color(a),e(j.settings.format,a)}function g(a,b){a.style.background=b,a.setAttribute("data-mce-color",b)}var h,j=this.parent();if(tinymce.DOM.getParent(c.target,".mce-custom-color-btn")&&(j.hidePanel(),a.settings.color_picker_callback.call(a,function(a){var b,c,e,f=j.panel.getEl().getElementsByTagName("table")[0];for(b=tinymce.map(f.rows[f.rows.length-1].childNodes,function(a){return a.firstChild}),e=0;e<b.length&&(c=b[e],c.getAttribute("data-mce-color"));e++);if(e==i)for(e=0;i-1>e;e++)g(b[e],b[e+1].getAttribute("data-mce-color"));g(c,a),d(a)},b(j.settings.format))),h=c.target.getAttribute("data-mce-color")){if(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),c.target.setAttribute("aria-selected",!0),this.lastId=c.target.id,"transparent"==h)return f(j.settings.format),void j.hidePanel();d(h)}else null!==h&&j.hidePanel()}function h(){var a=this;a._color&&e(a.settings.format,a._color)}var i,j;j=a.settings.textcolor_rows||5,i=a.settings.textcolor_cols||8,a.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:d,onclick:g},onclick:h}),a.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:d,onclick:g},onclick:h})});tinymce.PluginManager.add("visualchars",function(a){function b(b){var c,f,g,h,i,j,k=a.getBody(),l=a.selection;if(d=!d,e.state=d,a.fire("VisualChars",{state:d}),b&&(j=l.getBookmark()),d)for(f=[],tinymce.walk(k,function(a){3==a.nodeType&&a.nodeValue&&-1!=a.nodeValue.indexOf("\xa0")&&f.push(a)},"childNodes"),g=0;g<f.length;g++){for(h=f[g].nodeValue,h=h.replace(/(\u00a0)/g,'<span data-mce-bogus="1" class="mce-nbsp">$1</span>'),i=a.dom.create("div",null,h);c=i.lastChild;)a.dom.insertAfter(c,f[g]);a.dom.remove(f[g])}else for(f=a.dom.select("span.mce-nbsp",k),g=f.length-1;g>=0;g--)a.dom.remove(f[g],1);l.moveToBookmark(j)}function c(){var b=this;a.on("VisualChars",function(a){b.active(a.state)})}var d,e=this;a.addCommand("mceVisualChars",b),a.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:c}),a.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:c,selectable:!0,context:"view",prependToContext:!0}),a.on("beforegetcontent",function(a){d&&"raw"!=a.format&&!a.draft&&(d=!0,b(!1))})});tinymce.PluginManager.add("wordcount",function(a){function b(){a.theme.panel.find("#wordcount").text(["Words: {0}",e.getCount()])}var c,d,e=this;c=a.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),d=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),a.on("init",function(){var c=a.theme.panel&&a.theme.panel.find("#statusbar")[0];c&&window.setTimeout(function(){c.insert({type:"label",name:"wordcount",text:["Words: {0}",e.getCount()],classes:"wordcount",disabled:a.settings.readonly},0),a.on("setcontent beforeaddundo",b),a.on("keyup",function(a){32==a.keyCode&&b()})},0)}),e.getCount=function(){var b=a.getContent({format:"raw"}),e=0;if(b){b=b.replace(/\.\.\./g," "),b=b.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),b=b.replace(/(\w+)(&#?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),b=b.replace(d,"");var f=b.match(c);f&&(e=f.length)}return e}});tinymce.ThemeManager.add("modern",function(a){function b(){function b(b){var d,e=[];if(b)return l(b.split(/[ ,]/),function(b){function c(){var c=a.selection;"bullist"==f&&c.selectorChanged("ul > li",function(a,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!=d&&"UL"!=d););b.active(a&&"UL"==d)}),"numlist"==f&&c.selectorChanged("ol > li",function(a,c){for(var d,e=c.parents.length;e--&&(d=c.parents[e].nodeName,"OL"!=d&&"UL"!=d););b.active(a&&"OL"==d)}),b.settings.stateSelector&&c.selectorChanged(b.settings.stateSelector,function(a){b.active(a)},!0),b.settings.disabledStateSelector&&c.selectorChanged(b.settings.disabledStateSelector,function(a){b.disabled(a)})}var f;"|"==b?d=null:k.has(b)?(b={type:b},j.toolbar_items_size&&(b.size=j.toolbar_items_size),e.push(b),d=null):(d||(d={type:"buttongroup",items:[]},e.push(d)),a.buttons[b]&&(f=b,b=a.buttons[f],"function"==typeof b&&(b=b()),b.type=b.type||"button",j.toolbar_items_size&&(b.size=j.toolbar_items_size),b=k.create(b),d.items.push(b),a.initialized?c():a.on("init",c)))}),c.push({type:"toolbar",layout:"flow",items:e}),!0}var c=[];if(tinymce.isArray(j.toolbar)){if(0===j.toolbar.length)return;tinymce.each(j.toolbar,function(a,b){j["toolbar"+(b+1)]=a}),delete j.toolbar}for(var d=1;10>d&&b(j["toolbar"+d]);d++);return c.length||j.toolbar===!1||b(j.toolbar||o),c.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:c}:void 0}function c(){function b(b){var c;return"|"==b?{text:"|"}:c=a.menuItems[b]}function c(c){var d,e,f,g,h;if(h=tinymce.makeMap((j.removed_menuitems||"").split(/[ ,]/)),j.menu?(e=j.menu[c],g=!0):e=n[c],e){d={text:e.title},f=[],l((e.items||"").split(/[ ,]/),function(a){var c=b(a);c&&!h[a]&&f.push(b(a))}),g||l(a.menuItems,function(a){a.context==c&&("before"==a.separator&&f.push({text:"|"}),a.prependToContext?f.unshift(a):f.push(a),"after"==a.separator&&f.push({text:"|"}))});for(var i=0;i<f.length;i++)"|"==f[i].text&&(0===i||i==f.length-1)&&f.splice(i,1);if(d.menu=f,!d.menu.length)return null}return d}var d,e=[],f=[];if(j.menu)for(d in j.menu)f.push(d);else for(d in n)f.push(d);for(var g="string"==typeof j.menubar?j.menubar.split(/[ ,]/):f,h=0;h<g.length;h++){var i=g[h];i=c(i),i&&e.push(i)}return e}function d(b){function c(a){var c=b.find(a)[0];c&&c.focus(!0)}a.shortcuts.add("Alt+F9","",function(){c("menubar")}),a.shortcuts.add("Alt+F10","",function(){c("toolbar")}),a.shortcuts.add("Alt+F11","",function(){c("elementpath")}),b.on("cancel",function(){a.focus()})}function e(b,c){function d(a){return{width:a.clientWidth,height:a.clientHeight}}var e,f,g,h;e=a.getContainer(),f=a.getContentAreaContainer().firstChild,g=d(e),h=d(f),null!==b&&(b=Math.max(j.min_width||100,b),b=Math.min(j.max_width||65535,b),m.setStyle(e,"width",b+(g.width-h.width)),m.setStyle(f,"width",b)),c=Math.max(j.min_height||100,c),c=Math.min(j.max_height||65535,c),m.setStyle(f,"height",c),a.fire("ResizeEditor")}function f(b,c){var d=a.getContentAreaContainer();i.resizeTo(d.clientWidth+b,d.clientHeight+c)}function g(e){function f(){if(n&&n.moveRel&&n.visible()&&!n._fixed){var b=a.selection.getScrollContainer(),c=a.getBody(),d=0,e=0;if(b){var f=m.getPos(c),g=m.getPos(b);d=Math.max(0,g.x-f.x),e=Math.max(0,g.y-f.y)}n.fixed(!1).moveRel(c,a.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(d,e)}}function g(){n&&(n.show(),f(),m.addClass(a.getBody(),"mce-edit-focus"))}function h(){n&&(n.hide(),m.removeClass(a.getBody(),"mce-edit-focus"))}function l(){return n?void(n.visible()||g()):(n=i.panel=k.create({type:o?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!o,border:1,items:[j.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:c()},b()]}),a.fire("BeforeRenderUI"),n.renderTo(o||document.body).reflow(),d(n),g(),a.on("nodeChange",f),a.on("activate",g),a.on("deactivate",h),void a.nodeChanged())}var n,o;return j.fixed_toolbar_container&&(o=m.select(j.fixed_toolbar_container)[0]),j.content_editable=!0,a.on("focus",function(){e.skinUiCss?tinymce.DOM.styleSheetLoader.load(e.skinUiCss,l,l):l()}),a.on("blur hide",h),a.on("remove",function(){n&&(n.remove(),n=null)}),e.skinUiCss&&tinymce.DOM.styleSheetLoader.load(e.skinUiCss),{}}function h(f){var g,h,l;return f.skinUiCss&&tinymce.DOM.loadCSS(f.skinUiCss),g=i.panel=k.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[j.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:c()},b(),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),j.resize!==!1&&(h={type:"resizehandle",direction:j.resize,onResizeStart:function(){var b=a.getContentAreaContainer().firstChild;l={width:b.clientWidth,height:b.clientHeight}},onResize:function(a){"both"==j.resize?e(l.width+a.deltaX,l.height+a.deltaY):e(null,l.height+a.deltaY)}}),j.statusbar!==!1&&g.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},h]}),j.readonly&&g.find("*").disabled(!0),a.fire("BeforeRenderUI"),g.renderBefore(f.targetNode).reflow(),j.width&&tinymce.DOM.setStyle(g.getEl(),"width",j.width),a.on("remove",function(){g.remove(),g=null}),d(g),{iframeContainer:g.find("#iframe")[0].getEl(),editorContainer:g.getEl()}}var i=this,j=a.settings,k=tinymce.ui.Factory,l=tinymce.each,m=tinymce.DOM,n={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},o="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";i.renderUI=function(b){var c=j.skin!==!1?j.skin||"lightgray":!1;if(c){var d=j.skin_url;d=d?a.documentBaseURI.toAbsolute(d):tinymce.baseURL+"/skins/"+c,b.skinUiCss=tinymce.Env.documentMode<=7?d+"/skin.ie7.min.css":d+"/skin.min.css",a.contentCSS.push(d+"/content"+(a.inline?".inline":"")+".min.css")}return a.on("ProgressState",function(a){i.throbber=i.throbber||new tinymce.ui.Throbber(i.panel.getEl("body")),a.state?i.throbber.show(a.time):i.throbber.hide()}),j.inline?g(b):h(b)},i.resizeTo=e,i.resizeBy=f});
\ No newline at end of file
{/foreach}
</div>
+ {assign $zero_gif = "data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}
+
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top" style="width:250px; background:#f0f0f0; border-right:1px dashed #a0a0a0; padding:10px;">
<h3 style="border-top:1px dashed #a0a0a0; padding:5px 0;">View File</h3>
<div style="border:2px solid white; width:240px; text-align:center;">
- <img id="pic" src="{$ADMIN_MEDIA_URL}img/zero.gif" width="240" height="150">
+ <img id="pic" src="{$zero_gif}" width="240" height="150">
</div>
<div class="submit-row">
- <input type="button" value="Select & Close" onclick="FileBrowserDialogue.mySubmit()">
+ <input type="button" value="Select & Close" onclick="FileBrowserSelect()">
</div>
<!-- /sidebar -->
</td>
</tr>
</table>
-<script src="{$ADMIN_MEDIA_URL}js/jquery.js"></script>
-<script src="{$ADMIN_MEDIA_URL}tiny_mce/tiny_mce_popup.js"></script>
+<script src="{$STATIC_URL}js/admin.js"></script>
+<script src="{$ADMIN_MEDIA_URL}tinymce/tinymce.min.js"></script>
<script type="text/javascript">
var curr_dir = '{$curr_dir}';
if (image=='1')
$('#pic').attr('src',fname);
else
- $('#pic').attr('src',admin_media_url+'img/zero.gif');
+ $('#pic').attr('src', '{/literal}{$zero_gif}{literal}');
$('#pic').attr('width',w);
$('#pic').attr('height',h);
return false;
$('#prop').hide();
}
-var FileBrowserDialogue = {
- init : function () {
- // Here goes your code for setting your custom things onLoad.
- },
- mySubmit : function () {
- var URL = upload_url + curr_dir +'/'+ $('#id_old_name').val();
- var win = tinyMCEPopup.getWindowArg("window");
- // insert information now
- win.document.getElementById(tinyMCEPopup.getWindowArg("input")).value = encodeURI(URL);
- // are we an image browser
- if (typeof(win.ImageDialog) != "undefined")
- {
- // we are, so update image dimensions and preview if necessary
- if (win.ImageDialog.getImageData) win.ImageDialog.getImageData();
- if (win.ImageDialog.showPreviewImage) win.ImageDialog.showPreviewImage(URL);
- }
- // close popup window
- tinyMCEPopup.close();
- }
+function FileBrowserSelect() {
+ var URL = upload_url + curr_dir +'/'+ $('#id_old_name').val();
+ top.tinymce.activeEditor.windowManager.getParams().onSelect(encodeURI(URL));
+ top.tinymce.activeEditor.windowManager.close();
}
-tinyMCEPopup.onInit.add(FileBrowserDialogue.init, FileBrowserDialogue);
{/literal}
</script>
{
$this->tinymce_url = \PFF\Arr::pop($attrs, 'tinymce_url',
IPF::get('tiny_mce_url',
- IPF::get('static_url').'admin/tiny_mce/'));
+ IPF::get('static_url').'admin/tinymce/'));
$this->mode = \PFF\Arr::pop($attrs, 'mode', 'textareas');
$this->theme = \PFF\Arr::pop($attrs, 'theme', 'simple');
{
$filebrowser_url = IPF_HTTP_URL::urlForView('IPF_Admin_Views_FileBrowser', array('/'));
return array(
- '<script type="text/javascript" src="'.$this->tinymce_url.'tiny_mce.js"></script>',
- '<script type="text/javascript">
+ '<script type="text/javascript" src="'.$this->tinymce_url.'tinymce.min.js"></script>',
+ '<script type="text/javascript">(function(){
function ipf_filebrowser(field_name, url, type, win) {
- var cmsURL = "'.$filebrowser_url.'/";
tinyMCE.activeEditor.windowManager.open({
- file: cmsURL,
+ file: "'.$filebrowser_url.'/",
title: "IPF File Browser",
width: 800,
height: 600,
inline: "yes",
close_previous: "no"
}, {
- window: win,
- input: field_name
+ onSelect: function(value) {
+ var input = win.document.getElementById(field_name);
+
+ input.value = value;
+ if ("createEvent" in document) {
+ var evt = document.createEvent("HTMLEvents");
+ evt.initEvent("change", false, true);
+ input.dispatchEvent(evt);
+ } else {
+ input.fireEvent("onchange");
+ }
+ }
});
return false;
}
-(function(){
+
var defaults = {
- theme_advanced_buttons1: "bold, italic, underline, separator, undo, redo, separator, bullist, numlist, outdent, indent, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, link, unlink, forecolor, backcolor, sub, sup, separator, preview",
- theme_advanced_buttons2: "code, fullscreen, image, charmap, separator, pastetext, pasteword, selectall, removeformat, separator, formatselect, fontselect, fontsizeselect",
- theme_advanced_buttons3: "tablecontrols",
- theme_advanced_toolbar_location: "top",
- theme_advanced_toolbar_align: "left",
+ plugins: "anchor, charmap, code, colorpicker, contextmenu, fullscreen, hr, image, insertdatetime, link, lists, media, nonbreaking, paste, preview, print, searchreplace, tabfocus, table, textcolor, visualchars, wordcount",
+ toolbar: [
+ "undo redo | styleselect | bold italic underline | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | forecolor backcolor sub sup | preview fullscreen",
+ "code link unlink image charmap | table | pastetext removeformat | formatselect fontselect fontsizeselect"
+ ],
extended_valid_elements: "span[class|style],code[class],iframe[src|width|height|name|align|frameborder|scrolling]",
- mode: "specific_textareas",
- theme: "advanced",
- plugins: "inlinepopups, charmap, paste, table, fullscreen, preview, print, advlink, advimage",
- button_tile_map: true,
fix_list_elements: true,
- gecko_spellcheck: true,
- verify_html: true,
- dialog_type: "modal",
+ browser_spellcheck: true,
width: "80%",
- height: "350",
- content_css: "/media/tiny_mce/themes/advanced/skins/default/content.css",
- file_browser_callback: "ipf_filebrowser"
+ height: "300",
+ document_base_url: "/",
+ file_browser_callback: ipf_filebrowser
};
+
tinyMCE.init($.extend({}, defaults, {
- editor_selector: "htmlEditor",
+ selector: ".htmlEditor",
convert_urls: false,
relative_urls: false,
remove_script_host: true
}));
+
tinyMCE.init($.extend({}, defaults, {
- editor_selector: "htmlEditorAbs",
+ selector: ".htmlEditorAbs",
convert_urls: true,
relative_urls: false,
remove_script_host: false
}));
-})();
-</script>',
+
+})();</script>',
);
}
}