diff options
| author | hukl <contact@smyck.org> | 2009-02-17 21:54:39 +0100 |
|---|---|---|
| committer | hukl <contact@smyck.org> | 2009-02-17 21:54:39 +0100 |
| commit | f61b5b0597e0c25f084ee67d402f12a43a7a9947 (patch) | |
| tree | 3b4c3f9f38637f1a7ecf703ece4fd3bc4c6e2934 /public/javascripts/tiny_mce/themes | |
| parent | 3d3b786cc43266f6292f5edd25733dbb9bd6ed06 (diff) | |
added tinymce editor for body area of pages
Diffstat (limited to 'public/javascripts/tiny_mce/themes')
46 files changed, 3755 insertions, 0 deletions
diff --git a/public/javascripts/tiny_mce/themes/advanced/about.htm b/public/javascripts/tiny_mce/themes/advanced/about.htm new file mode 100755 index 0000000..4ef2a29 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/about.htm | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
| 2 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 3 | <head> | ||
| 4 | <title>{#advanced_dlg.about_title}</title> | ||
| 5 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 6 | <script type="text/javascript" src="../../utils/mctabs.js"></script> | ||
| 7 | <script type="text/javascript" src="js/about.js"></script> | ||
| 8 | </head> | ||
| 9 | <body id="about" style="display: none"> | ||
| 10 | <div class="tabs"> | ||
| 11 | <ul> | ||
| 12 | <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> | ||
| 13 | <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> | ||
| 14 | <li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{#advanced_dlg.about_plugins}</a></span></li> | ||
| 15 | </ul> | ||
| 16 | </div> | ||
| 17 | |||
| 18 | <div class="panel_wrapper"> | ||
| 19 | <div id="general_panel" class="panel current"> | ||
| 20 | <h3>{#advanced_dlg.about_title}</h3> | ||
| 21 | <p>Version: <span id="version"></span> (<span id="date"></span>)</p> | ||
| 22 | <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> | ||
| 23 | by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p> | ||
| 24 | <p>Copyright © 2003-2008, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p> | ||
| 25 | <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p> | ||
| 26 | |||
| 27 | <div id="buttoncontainer"> | ||
| 28 | <a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a> | ||
| 29 | <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> | ||
| 30 | <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> | ||
| 31 | </div> | ||
| 32 | </div> | ||
| 33 | |||
| 34 | <div id="plugins_panel" class="panel"> | ||
| 35 | <div id="pluginscontainer"> | ||
| 36 | <h3>{#advanced_dlg.about_loaded}</h3> | ||
| 37 | |||
| 38 | <div id="plugintablecontainer"> | ||
| 39 | </div> | ||
| 40 | |||
| 41 | <p> </p> | ||
| 42 | </div> | ||
| 43 | </div> | ||
| 44 | |||
| 45 | <div id="help_panel" class="panel noscroll" style="overflow: visible;"> | ||
| 46 | <div id="iframecontainer"></div> | ||
| 47 | </div> | ||
| 48 | </div> | ||
| 49 | |||
| 50 | <div class="mceActionPanel"> | ||
| 51 | <div style="float: right"> | ||
| 52 | <input type="button" id="cancel" name="cancel" value="{#close}" onclick="tinyMCEPopup.close();" /> | ||
| 53 | </div> | ||
| 54 | </div> | ||
| 55 | </body> | ||
| 56 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/anchor.htm b/public/javascripts/tiny_mce/themes/advanced/anchor.htm new file mode 100755 index 0000000..9e4c0b9 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/anchor.htm | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
| 2 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 3 | <head> | ||
| 4 | <title>{#advanced_dlg.anchor_title}</title> | ||
| 5 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 6 | <script type="text/javascript" src="js/anchor.js"></script> | ||
| 7 | <base target="_self" /> | ||
| 8 | </head> | ||
| 9 | <body style="display: none"> | ||
| 10 | <form onsubmit="AnchorDialog.update();return false;" action="#"> | ||
| 11 | <table border="0" cellpadding="4" cellspacing="0"> | ||
| 12 | <tr> | ||
| 13 | <td colspan="2" class="title">{#advanced_dlg.anchor_title}</td> | ||
| 14 | </tr> | ||
| 15 | <tr> | ||
| 16 | <td nowrap="nowrap">{#advanced_dlg.anchor_name}:</td> | ||
| 17 | <td><input name="anchorName" type="text" class="mceFocus" id="anchorName" value="" style="width: 200px" /></td> | ||
| 18 | </tr> | ||
| 19 | </table> | ||
| 20 | |||
| 21 | <div class="mceActionPanel"> | ||
| 22 | <div style="float: left"> | ||
| 23 | <input type="submit" id="insert" name="insert" value="{#update}" /> | ||
| 24 | </div> | ||
| 25 | |||
| 26 | <div style="float: right"> | ||
| 27 | <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||
| 28 | </div> | ||
| 29 | </div> | ||
| 30 | </form> | ||
| 31 | </body> | ||
| 32 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/charmap.htm b/public/javascripts/tiny_mce/themes/advanced/charmap.htm new file mode 100755 index 0000000..e4c7344 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/charmap.htm | |||
| @@ -0,0 +1,54 @@ | |||
| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
| 2 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 3 | <head> | ||
| 4 | <title>{#advanced_dlg.charmap_title}</title> | ||
| 5 | <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> | ||
| 6 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 7 | <script type="text/javascript" src="js/charmap.js"></script> | ||
| 8 | <base target="_self" /> | ||
| 9 | </head> | ||
| 10 | <body id="charmap" style="display:none"> | ||
| 11 | <table align="center" border="0" cellspacing="0" cellpadding="2"> | ||
| 12 | <tr> | ||
| 13 | <td colspan="2" class="title">{#advanced_dlg.charmap_title}</td> | ||
| 14 | </tr> | ||
| 15 | <tr> | ||
| 16 | <td id="charmapView" rowspan="2" align="left" valign="top"> | ||
| 17 | <!-- Chars will be rendered here --> | ||
| 18 | </td> | ||
| 19 | <td width="100" align="center" valign="top"> | ||
| 20 | <table border="0" cellpadding="0" cellspacing="0" width="100" style="height:100px"> | ||
| 21 | <tr> | ||
| 22 | <td id="codeV"> </td> | ||
| 23 | </tr> | ||
| 24 | <tr> | ||
| 25 | <td id="codeN"> </td> | ||
| 26 | </tr> | ||
| 27 | </table> | ||
| 28 | </td> | ||
| 29 | </tr> | ||
| 30 | <tr> | ||
| 31 | <td valign="bottom" style="padding-bottom: 3px;"> | ||
| 32 | <table width="100" align="center" border="0" cellpadding="2" cellspacing="0"> | ||
| 33 | <tr> | ||
| 34 | <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td> | ||
| 35 | </tr> | ||
| 36 | <tr> | ||
| 37 | <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> | ||
| 38 | </tr> | ||
| 39 | <tr> | ||
| 40 | <td style="font-size: 1px;"> </td> | ||
| 41 | </tr> | ||
| 42 | <tr> | ||
| 43 | <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td> | ||
| 44 | </tr> | ||
| 45 | <tr> | ||
| 46 | <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> | ||
| 47 | </tr> | ||
| 48 | </table> | ||
| 49 | </td> | ||
| 50 | </tr> | ||
| 51 | </table> | ||
| 52 | |||
| 53 | </body> | ||
| 54 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/color_picker.htm b/public/javascripts/tiny_mce/themes/advanced/color_picker.htm new file mode 100755 index 0000000..a8f297c --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/color_picker.htm | |||
| @@ -0,0 +1,76 @@ | |||
| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
| 2 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 3 | <head> | ||
| 4 | <title>{#advanced_dlg.colorpicker_title}</title> | ||
| 5 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 6 | <script type="text/javascript" src="../../utils/mctabs.js"></script> | ||
| 7 | <script type="text/javascript" src="js/color_picker.js"></script> | ||
| 8 | <base target="_self" /> | ||
| 9 | </head> | ||
| 10 | <body id="colorpicker" style="display: none"> | ||
| 11 | <form onsubmit="insertAction();return false" action="#"> | ||
| 12 | <div class="tabs"> | ||
| 13 | <ul> | ||
| 14 | <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> | ||
| 15 | <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> | ||
| 16 | <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> | ||
| 17 | </ul> | ||
| 18 | </div> | ||
| 19 | |||
| 20 | <div class="panel_wrapper"> | ||
| 21 | <div id="picker_panel" class="panel current"> | ||
| 22 | <fieldset> | ||
| 23 | <legend>{#advanced_dlg.colorpicker_picker_title}</legend> | ||
| 24 | <div id="picker"> | ||
| 25 | <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;" /> | ||
| 26 | |||
| 27 | <div id="light"> | ||
| 28 | <!-- Will be filled with divs --> | ||
| 29 | </div> | ||
| 30 | |||
| 31 | <br style="clear: both" /> | ||
| 32 | </div> | ||
| 33 | </fieldset> | ||
| 34 | </div> | ||
| 35 | |||
| 36 | <div id="rgb_panel" class="panel"> | ||
| 37 | <fieldset> | ||
| 38 | <legend>{#advanced_dlg.colorpicker_palette_title}</legend> | ||
| 39 | <div id="webcolors"> | ||
| 40 | <!-- Gets filled with web safe colors--> | ||
| 41 | </div> | ||
| 42 | |||
| 43 | <br style="clear: both" /> | ||
| 44 | </fieldset> | ||
| 45 | </div> | ||
| 46 | |||
| 47 | <div id="named_panel" class="panel"> | ||
| 48 | <fieldset> | ||
| 49 | <legend>{#advanced_dlg.colorpicker_named_title}</legend> | ||
| 50 | <div id="namedcolors"> | ||
| 51 | <!-- Gets filled with named colors--> | ||
| 52 | </div> | ||
| 53 | |||
| 54 | <br style="clear: both" /> | ||
| 55 | |||
| 56 | <div id="colornamecontainer"> | ||
| 57 | {#advanced_dlg.colorpicker_name} <span id="colorname"></span> | ||
| 58 | </div> | ||
| 59 | </fieldset> | ||
| 60 | </div> | ||
| 61 | </div> | ||
| 62 | |||
| 63 | <div class="mceActionPanel"> | ||
| 64 | <div style="float: left"> | ||
| 65 | <input type="submit" id="insert" name="insert" value="{#apply}" /> | ||
| 66 | </div> | ||
| 67 | |||
| 68 | <div id="preview"></div> | ||
| 69 | |||
| 70 | <div id="previewblock"> | ||
| 71 | <label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" maxlength="8" class="text mceFocus" /> | ||
| 72 | </div> | ||
| 73 | </div> | ||
| 74 | </form> | ||
| 75 | </body> | ||
| 76 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/editor_template.js b/public/javascripts/tiny_mce/themes/advanced/editor_template.js new file mode 100755 index 0000000..d72d542 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/editor_template.js | |||
| @@ -0,0 +1 @@ | |||
| (function(){var DOM=tinymce.DOM,Event=tinymce.dom.Event,extend=tinymce.extend,each=tinymce.each,Cookie=tinymce.util.Cookie,lastExtID,explode=tinymce.explode;tinymce.ThemeManager.requireLangPack('advanced');tinymce.create('tinymce.themes.AdvancedTheme',{sizes:[8,10,12,14,18,24,36],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,o;t.editor=ed;t.url=url;t.onResolveName=new tinymce.util.Dispatcher(this);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_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",readonly:ed.settings.readonly},ed.settings);if(!s.font_size_style_values)s.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt";if(tinymce.is(s.theme_advanced_font_sizes,'string')){s.font_size_style_values=tinymce.explode(s.font_size_style_values);s.font_size_classes=tinymce.explode(s.font_size_classes||'');o={};ed.settings.theme_advanced_font_sizes=s.theme_advanced_font_sizes;each(ed.getParam('theme_advanced_font_sizes','','hash'),function(v,k){var cl;if(k==v&&v>=1&&v<=7){k=v+' ('+t.sizes[v-1]+'pt)';if(ed.settings.convert_fonts_to_spans){cl=s.font_size_classes[v-1];v=s.font_size_style_values[v-1]||(t.sizes[v-1]+'pt');}}if(/\s*\./.test(v))cl=v.replace(/\./g,'');o[k]=cl?{'class':cl}:{fontSize:v};});s.theme_advanced_font_sizes=o;}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;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(s.editor_css?ed.documentBaseURI.toAbsolute(s.editor_css):url+"/skins/"+ed.settings.skin+"/ui.css");if(s.skin_variant)DOM.loadCSS(url+"/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){if(!c.NativeListBox){Event.add(n.id+'_text','focus',t._importClasses,t);Event.add(n.id+'_text','mousedown',t._importClasses,t);Event.add(n.id+'_open','focus',t._importClasses,t);Event.add(n.id+'_open','mousedown',t._importClasses,t);}else Event.add(n.id,'focus',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,i=0,cl=[];c=ed.controlManager.createListBox('fontsizeselect',{title:'advanced.font_size',onselect:function(v){if(v.fontSize)ed.execCommand('FontSize',false,v.fontSize);else{each(t.settings.theme_advanced_font_sizes,function(v,k){if(v['class'])cl.push(v['class']);});ed.editorCommands._applyInlineStyle('span',{'class':v['class']},{check_classes:cl});}}});if(c){each(t.settings.theme_advanced_font_sizes,function(v,k){var fz=v.fontSize;if(fz>=1&&fz<=7)fz=t.sizes[parseInt(fz)-1]+'pt';c.add(k,v,{'style':'font-size:'+fz,'class':'mceFontSize'+(i++)+(' '+(v['class']||''))});});}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;if(s.theme_advanced_default_foreground_color)o.default_color=s.theme_advanced_default_foreground_color;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;if(s.theme_advanced_default_background_color)o.default_color=s.theme_advanced_default_background_color;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;nl=DOM.stdMode?sc.getElementsByTagName('tr'):sc.rows;DOM.addClass(nl[0],'mceFirst');DOM.addClass(nl[nl.length-1],'mceLast');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(!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;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);dh=e.clientHeight-ifr.clientHeight;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');},_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;}if(lo=='top')t._addToolbars(tb,o);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);DOM.hide(e);DOM.show(e);e.style.filter='';lastExtID=ed.id+'_external';e=null;});}if(sl=='top')t._addStatusBar(tb,o);if(!s.theme_advanced_toolbar_container){n=DOM.add(tb,'tr');n=ic=DOM.add(n,'td',{'class':'mceIframeContainer'});}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;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 -->'));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);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;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;p=DOM.add(DOM.get(ed.id+'_parent'),'div',{'class':'mcePlaceHolder'});DOM.setStyles(p,{width:w,height:h});DOM.hide(c);DOM.show(p);r={x:e.screenX,y:e.screenY,w:w,h:h,dx:null,dy:null};mf=Event.add(DOM.doc,'mousemove',function(e){var w,h;r.dx=e.screenX-r.x;r.dy=e.screenY-r.y;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);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;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,cl,fz,fn;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(ed.settings.convert_fonts_to_spans){ed.dom.getParent(n,function(n){if(n.nodeName==='SPAN'){if(!cl&&n.className)cl=n.className;if(!fz&&n.style.fontSize)fz=n.style.fontSize;if(!fn&&n.style.fontFamily)fn=n.style.fontFamily.replace(/[\"\']+/g,'').replace(/^([^,]+).*/,'$1').toLowerCase();}return false;});if(c=cm.get('fontselect')){c.select(function(v){return v.replace(/^([^,]+).*/,'$1').toLowerCase()==fn;});}if(c=cm.get('fontsizeselect')){c.select(function(v){if(v.fontSize&&v.fontSize===fz)return true;if(v['class']&&v['class']===cl)return true;});}}else{if(c=cm.get('fontselect'))c.select(ed.queryCommandValue('FontName'));if(c=cm.get('fontsizeselect')){v=ed.queryCommandValue('FontSize');c.select(function(iv){return iv.fontSize==v;});}}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='';if(n.nodeType!=1||n.nodeName==='BR'||(DOM.hasClass(n,'mceItemHidden')||DOM.hasClass(n,'mceItemRemoved')))return;if(v=DOM.getAttrib(n,'mce_name'))na=v;if(tinymce.isIE&&n.scopeName!=='HTML')na=n.scopeName+':'+na;na=na.replace(/mce\:/g,'');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;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());}},_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;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 | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js b/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js new file mode 100755 index 0000000..b3cef01 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js | |||
| @@ -0,0 +1,1153 @@ | |||
| 1 | /** | ||
| 2 | * $Id: editor_template_src.js 960 2008-11-12 18:30:32Z spocke $ | ||
| 3 | * | ||
| 4 | * @author Moxiecode | ||
| 5 | * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved. | ||
| 6 | */ | ||
| 7 | |||
| 8 | (function() { | ||
| 9 | var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode; | ||
| 10 | |||
| 11 | // Tell it to load theme specific language pack(s) | ||
| 12 | tinymce.ThemeManager.requireLangPack('advanced'); | ||
| 13 | |||
| 14 | tinymce.create('tinymce.themes.AdvancedTheme', { | ||
| 15 | sizes : [8, 10, 12, 14, 18, 24, 36], | ||
| 16 | |||
| 17 | // Control name lookup, format: title, command | ||
| 18 | controls : { | ||
| 19 | bold : ['bold_desc', 'Bold'], | ||
| 20 | italic : ['italic_desc', 'Italic'], | ||
| 21 | underline : ['underline_desc', 'Underline'], | ||
| 22 | strikethrough : ['striketrough_desc', 'Strikethrough'], | ||
| 23 | justifyleft : ['justifyleft_desc', 'JustifyLeft'], | ||
| 24 | justifycenter : ['justifycenter_desc', 'JustifyCenter'], | ||
| 25 | justifyright : ['justifyright_desc', 'JustifyRight'], | ||
| 26 | justifyfull : ['justifyfull_desc', 'JustifyFull'], | ||
| 27 | bullist : ['bullist_desc', 'InsertUnorderedList'], | ||
| 28 | numlist : ['numlist_desc', 'InsertOrderedList'], | ||
| 29 | outdent : ['outdent_desc', 'Outdent'], | ||
| 30 | indent : ['indent_desc', 'Indent'], | ||
| 31 | cut : ['cut_desc', 'Cut'], | ||
| 32 | copy : ['copy_desc', 'Copy'], | ||
| 33 | paste : ['paste_desc', 'Paste'], | ||
| 34 | undo : ['undo_desc', 'Undo'], | ||
| 35 | redo : ['redo_desc', 'Redo'], | ||
| 36 | link : ['link_desc', 'mceLink'], | ||
| 37 | unlink : ['unlink_desc', 'unlink'], | ||
| 38 | image : ['image_desc', 'mceImage'], | ||
| 39 | cleanup : ['cleanup_desc', 'mceCleanup'], | ||
| 40 | help : ['help_desc', 'mceHelp'], | ||
| 41 | code : ['code_desc', 'mceCodeEditor'], | ||
| 42 | hr : ['hr_desc', 'InsertHorizontalRule'], | ||
| 43 | removeformat : ['removeformat_desc', 'RemoveFormat'], | ||
| 44 | sub : ['sub_desc', 'subscript'], | ||
| 45 | sup : ['sup_desc', 'superscript'], | ||
| 46 | forecolor : ['forecolor_desc', 'ForeColor'], | ||
| 47 | forecolorpicker : ['forecolor_desc', 'mceForeColor'], | ||
| 48 | backcolor : ['backcolor_desc', 'HiliteColor'], | ||
| 49 | backcolorpicker : ['backcolor_desc', 'mceBackColor'], | ||
| 50 | charmap : ['charmap_desc', 'mceCharMap'], | ||
| 51 | visualaid : ['visualaid_desc', 'mceToggleVisualAid'], | ||
| 52 | anchor : ['anchor_desc', 'mceInsertAnchor'], | ||
| 53 | newdocument : ['newdocument_desc', 'mceNewDocument'], | ||
| 54 | blockquote : ['blockquote_desc', 'mceBlockQuote'] | ||
| 55 | }, | ||
| 56 | |||
| 57 | stateControls : ['bold', 'italic', 'underline', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'sub', 'sup', 'blockquote'], | ||
| 58 | |||
| 59 | init : function(ed, url) { | ||
| 60 | var t = this, s, v, o; | ||
| 61 | |||
| 62 | t.editor = ed; | ||
| 63 | t.url = url; | ||
| 64 | t.onResolveName = new tinymce.util.Dispatcher(this); | ||
| 65 | |||
| 66 | // Default settings | ||
| 67 | t.settings = s = extend({ | ||
| 68 | theme_advanced_path : true, | ||
| 69 | theme_advanced_toolbar_location : 'bottom', | ||
| 70 | theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect", | ||
| 71 | theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code", | ||
| 72 | theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap", | ||
| 73 | theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6", | ||
| 74 | theme_advanced_toolbar_align : "center", | ||
| 75 | 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", | ||
| 76 | theme_advanced_more_colors : 1, | ||
| 77 | theme_advanced_row_height : 23, | ||
| 78 | theme_advanced_resize_horizontal : 1, | ||
| 79 | theme_advanced_resizing_use_cookie : 1, | ||
| 80 | theme_advanced_font_sizes : "1,2,3,4,5,6,7", | ||
| 81 | readonly : ed.settings.readonly | ||
| 82 | }, ed.settings); | ||
| 83 | |||
| 84 | // Setup default font_size_style_values | ||
| 85 | if (!s.font_size_style_values) | ||
| 86 | s.font_size_style_values = "8pt,10pt,12pt,14pt,18pt,24pt,36pt"; | ||
| 87 | |||
| 88 | if (tinymce.is(s.theme_advanced_font_sizes, 'string')) { | ||
| 89 | s.font_size_style_values = tinymce.explode(s.font_size_style_values); | ||
| 90 | s.font_size_classes = tinymce.explode(s.font_size_classes || ''); | ||
| 91 | |||
| 92 | // Parse string value | ||
| 93 | o = {}; | ||
| 94 | ed.settings.theme_advanced_font_sizes = s.theme_advanced_font_sizes; | ||
| 95 | each(ed.getParam('theme_advanced_font_sizes', '', 'hash'), function(v, k) { | ||
| 96 | var cl; | ||
| 97 | |||
| 98 | if (k == v && v >= 1 && v <= 7) { | ||
| 99 | k = v + ' (' + t.sizes[v - 1] + 'pt)'; | ||
| 100 | |||
| 101 | if (ed.settings.convert_fonts_to_spans) { | ||
| 102 | cl = s.font_size_classes[v - 1]; | ||
| 103 | v = s.font_size_style_values[v - 1] || (t.sizes[v - 1] + 'pt'); | ||
| 104 | } | ||
| 105 | } | ||
| 106 | |||
| 107 | if (/\s*\./.test(v)) | ||
| 108 | cl = v.replace(/\./g, ''); | ||
| 109 | |||
| 110 | o[k] = cl ? {'class' : cl} : {fontSize : v}; | ||
| 111 | }); | ||
| 112 | |||
| 113 | s.theme_advanced_font_sizes = o; | ||
| 114 | } | ||
| 115 | |||
| 116 | if ((v = s.theme_advanced_path_location) && v != 'none') | ||
| 117 | s.theme_advanced_statusbar_location = s.theme_advanced_path_location; | ||
| 118 | |||
| 119 | if (s.theme_advanced_statusbar_location == 'none') | ||
| 120 | s.theme_advanced_statusbar_location = 0; | ||
| 121 | |||
| 122 | // Init editor | ||
| 123 | ed.onInit.add(function() { | ||
| 124 | ed.onNodeChange.add(t._nodeChanged, t); | ||
| 125 | |||
| 126 | if (ed.settings.content_css !== false) | ||
| 127 | ed.dom.loadCSS(ed.baseURI.toAbsolute("themes/advanced/skins/" + ed.settings.skin + "/content.css")); | ||
| 128 | }); | ||
| 129 | |||
| 130 | ed.onSetProgressState.add(function(ed, b, ti) { | ||
| 131 | var co, id = ed.id, tb; | ||
| 132 | |||
| 133 | if (b) { | ||
| 134 | t.progressTimer = setTimeout(function() { | ||
| 135 | co = ed.getContainer(); | ||
| 136 | co = co.insertBefore(DOM.create('DIV', {style : 'position:relative'}), co.firstChild); | ||
| 137 | tb = DOM.get(ed.id + '_tbl'); | ||
| 138 | |||
| 139 | DOM.add(co, 'div', {id : id + '_blocker', 'class' : 'mceBlocker', style : {width : tb.clientWidth + 2, height : tb.clientHeight + 2}}); | ||
| 140 | DOM.add(co, 'div', {id : id + '_progress', 'class' : 'mceProgress', style : {left : tb.clientWidth / 2, top : tb.clientHeight / 2}}); | ||
| 141 | }, ti || 0); | ||
| 142 | } else { | ||
| 143 | DOM.remove(id + '_blocker'); | ||
| 144 | DOM.remove(id + '_progress'); | ||
| 145 | clearTimeout(t.progressTimer); | ||
| 146 | } | ||
| 147 | }); | ||
| 148 | |||
| 149 | DOM.loadCSS(s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : url + "/skins/" + ed.settings.skin + "/ui.css"); | ||
| 150 | |||
| 151 | if (s.skin_variant) | ||
| 152 | DOM.loadCSS(url + "/skins/" + ed.settings.skin + "/ui_" + s.skin_variant + ".css"); | ||
| 153 | }, | ||
| 154 | |||
| 155 | createControl : function(n, cf) { | ||
| 156 | var cd, c; | ||
| 157 | |||
| 158 | if (c = cf.createControl(n)) | ||
| 159 | return c; | ||
| 160 | |||
| 161 | switch (n) { | ||
| 162 | case "styleselect": | ||
| 163 | return this._createStyleSelect(); | ||
| 164 | |||
| 165 | case "formatselect": | ||
| 166 | return this._createBlockFormats(); | ||
| 167 | |||
| 168 | case "fontselect": | ||
| 169 | return this._createFontSelect(); | ||
| 170 | |||
| 171 | case "fontsizeselect": | ||
| 172 | return this._createFontSizeSelect(); | ||
| 173 | |||
| 174 | case "forecolor": | ||
| 175 | return this._createForeColorMenu(); | ||
| 176 | |||
| 177 | case "backcolor": | ||
| 178 | return this._createBackColorMenu(); | ||
| 179 | } | ||
| 180 | |||
| 181 | if ((cd = this.controls[n])) | ||
| 182 | return cf.createButton(n, {title : "advanced." + cd[0], cmd : cd[1], ui : cd[2], value : cd[3]}); | ||
| 183 | }, | ||
| 184 | |||
| 185 | execCommand : function(cmd, ui, val) { | ||
| 186 | var f = this['_' + cmd]; | ||
| 187 | |||
| 188 | if (f) { | ||
| 189 | f.call(this, ui, val); | ||
| 190 | return true; | ||
| 191 | } | ||
| 192 | |||
| 193 | return false; | ||
| 194 | }, | ||
| 195 | |||
| 196 | _importClasses : function(e) { | ||
| 197 | var ed = this.editor, c = ed.controlManager.get('styleselect'); | ||
| 198 | |||
| 199 | if (c.getLength() == 0) { | ||
| 200 | each(ed.dom.getClasses(), function(o) { | ||
| 201 | c.add(o['class'], o['class']); | ||
| 202 | }); | ||
| 203 | } | ||
| 204 | }, | ||
| 205 | |||
| 206 | _createStyleSelect : function(n) { | ||
| 207 | var t = this, ed = t.editor, cf = ed.controlManager, c = cf.createListBox('styleselect', { | ||
| 208 | title : 'advanced.style_select', | ||
| 209 | onselect : function(v) { | ||
| 210 | if (c.selectedValue === v) { | ||
| 211 | ed.execCommand('mceSetStyleInfo', 0, {command : 'removeformat'}); | ||
| 212 | c.select(); | ||
| 213 | return false; | ||
| 214 | } else | ||
| 215 | ed.execCommand('mceSetCSSClass', 0, v); | ||
| 216 | } | ||
| 217 | }); | ||
| 218 | |||
| 219 | if (c) { | ||
| 220 | each(ed.getParam('theme_advanced_styles', '', 'hash'), function(v, k) { | ||
| 221 | if (v) | ||
| 222 | c.add(t.editor.translate(k), v); | ||
| 223 | }); | ||
| 224 | |||
| 225 | c.onPostRender.add(function(ed, n) { | ||
| 226 | if (!c.NativeListBox) { | ||
| 227 | Event.add(n.id + '_text', 'focus', t._importClasses, t); | ||
| 228 | Event.add(n.id + '_text', 'mousedown', t._importClasses, t); | ||
| 229 | Event.add(n.id + '_open', 'focus', t._importClasses, t); | ||
| 230 | Event.add(n.id + '_open', 'mousedown', t._importClasses, t); | ||
| 231 | } else | ||
| 232 | Event.add(n.id, 'focus', t._importClasses, t); | ||
| 233 | }); | ||
| 234 | } | ||
| 235 | |||
| 236 | return c; | ||
| 237 | }, | ||
| 238 | |||
| 239 | _createFontSelect : function() { | ||
| 240 | var c, t = this, ed = t.editor; | ||
| 241 | |||
| 242 | c = ed.controlManager.createListBox('fontselect', {title : 'advanced.fontdefault', cmd : 'FontName'}); | ||
| 243 | if (c) { | ||
| 244 | each(ed.getParam('theme_advanced_fonts', t.settings.theme_advanced_fonts, 'hash'), function(v, k) { | ||
| 245 | c.add(ed.translate(k), v, {style : v.indexOf('dings') == -1 ? 'font-family:' + v : ''}); | ||
| 246 | }); | ||
| 247 | } | ||
| 248 | |||
| 249 | return c; | ||
| 250 | }, | ||
| 251 | |||
| 252 | _createFontSizeSelect : function() { | ||
| 253 | var t = this, ed = t.editor, c, i = 0, cl = []; | ||
| 254 | |||
| 255 | c = ed.controlManager.createListBox('fontsizeselect', {title : 'advanced.font_size', onselect : function(v) { | ||
| 256 | if (v.fontSize) | ||
| 257 | ed.execCommand('FontSize', false, v.fontSize); | ||
| 258 | else { | ||
| 259 | each(t.settings.theme_advanced_font_sizes, function(v, k) { | ||
| 260 | if (v['class']) | ||
| 261 | cl.push(v['class']); | ||
| 262 | }); | ||
| 263 | |||
| 264 | ed.editorCommands._applyInlineStyle('span', {'class' : v['class']}, {check_classes : cl}); | ||
| 265 | } | ||
| 266 | }}); | ||
| 267 | |||
| 268 | if (c) { | ||
| 269 | each(t.settings.theme_advanced_font_sizes, function(v, k) { | ||
| 270 | var fz = v.fontSize; | ||
| 271 | |||
| 272 | if (fz >= 1 && fz <= 7) | ||
| 273 | fz = t.sizes[parseInt(fz) - 1] + 'pt'; | ||
| 274 | |||
| 275 | c.add(k, v, {'style' : 'font-size:' + fz, 'class' : 'mceFontSize' + (i++) + (' ' + (v['class'] || ''))}); | ||
| 276 | }); | ||
| 277 | } | ||
| 278 | |||
| 279 | return c; | ||
| 280 | }, | ||
| 281 | |||
| 282 | _createBlockFormats : function() { | ||
| 283 | var c, fmts = { | ||
| 284 | p : 'advanced.paragraph', | ||
| 285 | address : 'advanced.address', | ||
| 286 | pre : 'advanced.pre', | ||
| 287 | h1 : 'advanced.h1', | ||
| 288 | h2 : 'advanced.h2', | ||
| 289 | h3 : 'advanced.h3', | ||
| 290 | h4 : 'advanced.h4', | ||
| 291 | h5 : 'advanced.h5', | ||
| 292 | h6 : 'advanced.h6', | ||
| 293 | div : 'advanced.div', | ||
| 294 | blockquote : 'advanced.blockquote', | ||
| 295 | code : 'advanced.code', | ||
| 296 | dt : 'advanced.dt', | ||
| 297 | dd : 'advanced.dd', | ||
| 298 | samp : 'advanced.samp' | ||
| 299 | }, t = this; | ||
| 300 | |||
| 301 | c = t.editor.controlManager.createListBox('formatselect', {title : 'advanced.block', cmd : 'FormatBlock'}); | ||
| 302 | if (c) { | ||
| 303 | each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) { | ||
| 304 | c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v}); | ||
| 305 | }); | ||
| 306 | } | ||
| 307 | |||
| 308 | return c; | ||
| 309 | }, | ||
| 310 | |||
| 311 | _createForeColorMenu : function() { | ||
| 312 | var c, t = this, s = t.settings, o = {}, v; | ||
| 313 | |||
| 314 | if (s.theme_advanced_more_colors) { | ||
| 315 | o.more_colors_func = function() { | ||
| 316 | t._mceColorPicker(0, { | ||
| 317 | color : c.value, | ||
| 318 | func : function(co) { | ||
| 319 | c.setColor(co); | ||
| 320 | } | ||
| 321 | }); | ||
| 322 | }; | ||
| 323 | } | ||
| 324 | |||
| 325 | if (v = s.theme_advanced_text_colors) | ||
| 326 | o.colors = v; | ||
| 327 | |||
| 328 | if (s.theme_advanced_default_foreground_color) | ||
| 329 | o.default_color = s.theme_advanced_default_foreground_color; | ||
| 330 | |||
| 331 | o.title = 'advanced.forecolor_desc'; | ||
| 332 | o.cmd = 'ForeColor'; | ||
| 333 | o.scope = this; | ||
| 334 | |||
| 335 | c = t.editor.controlManager.createColorSplitButton('forecolor', o); | ||
| 336 | |||
| 337 | return c; | ||
| 338 | }, | ||
| 339 | |||
| 340 | _createBackColorMenu : function() { | ||
| 341 | var c, t = this, s = t.settings, o = {}, v; | ||
| 342 | |||
| 343 | if (s.theme_advanced_more_colors) { | ||
| 344 | o.more_colors_func = function() { | ||
| 345 | t._mceColorPicker(0, { | ||
| 346 | color : c.value, | ||
| 347 | func : function(co) { | ||
| 348 | c.setColor(co); | ||
| 349 | } | ||
| 350 | }); | ||
| 351 | }; | ||
| 352 | } | ||
| 353 | |||
| 354 | if (v = s.theme_advanced_background_colors) | ||
| 355 | o.colors = v; | ||
| 356 | |||
| 357 | if (s.theme_advanced_default_background_color) | ||
| 358 | o.default_color = s.theme_advanced_default_background_color; | ||
| 359 | |||
| 360 | o.title = 'advanced.backcolor_desc'; | ||
| 361 | o.cmd = 'HiliteColor'; | ||
| 362 | o.scope = this; | ||
| 363 | |||
| 364 | c = t.editor.controlManager.createColorSplitButton('backcolor', o); | ||
| 365 | |||
| 366 | return c; | ||
| 367 | }, | ||
| 368 | |||
| 369 | renderUI : function(o) { | ||
| 370 | var n, ic, tb, t = this, ed = t.editor, s = t.settings, sc, p, nl; | ||
| 371 | |||
| 372 | 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) : '')}); | ||
| 373 | |||
| 374 | if (!DOM.boxModel) | ||
| 375 | n = DOM.add(n, 'div', {'class' : 'mceOldBoxModel'}); | ||
| 376 | |||
| 377 | n = sc = DOM.add(n, 'table', {id : ed.id + '_tbl', 'class' : 'mceLayout', cellSpacing : 0, cellPadding : 0}); | ||
| 378 | n = tb = DOM.add(n, 'tbody'); | ||
| 379 | |||
| 380 | switch ((s.theme_advanced_layout_manager || '').toLowerCase()) { | ||
| 381 | case "rowlayout": | ||
| 382 | ic = t._rowLayout(s, tb, o); | ||
| 383 | break; | ||
| 384 | |||
| 385 | case "customlayout": | ||
| 386 | ic = ed.execCallback("theme_advanced_custom_layout", s, tb, o, p); | ||
| 387 | break; | ||
| 388 | |||
| 389 | default: | ||
| 390 | ic = t._simpleLayout(s, tb, o, p); | ||
| 391 | } | ||
| 392 | |||
| 393 | n = o.targetNode; | ||
| 394 | |||
| 395 | // Add classes to first and last TRs | ||
| 396 | nl = DOM.stdMode ? sc.getElementsByTagName('tr') : sc.rows; // Quick fix for IE 8 | ||
| 397 | DOM.addClass(nl[0], 'mceFirst'); | ||
| 398 | DOM.addClass(nl[nl.length - 1], 'mceLast'); | ||
| 399 | |||
| 400 | // Add classes to first and last TDs | ||
| 401 | each(DOM.select('tr', tb), function(n) { | ||
| 402 | DOM.addClass(n.firstChild, 'mceFirst'); | ||
| 403 | DOM.addClass(n.childNodes[n.childNodes.length - 1], 'mceLast'); | ||
| 404 | }); | ||
| 405 | |||
| 406 | if (DOM.get(s.theme_advanced_toolbar_container)) | ||
| 407 | DOM.get(s.theme_advanced_toolbar_container).appendChild(p); | ||
| 408 | else | ||
| 409 | DOM.insertAfter(p, n); | ||
| 410 | |||
| 411 | Event.add(ed.id + '_path_row', 'click', function(e) { | ||
| 412 | e = e.target; | ||
| 413 | |||
| 414 | if (e.nodeName == 'A') { | ||
| 415 | t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1')); | ||
| 416 | |||
| 417 | return Event.cancel(e); | ||
| 418 | } | ||
| 419 | }); | ||
| 420 | /* | ||
| 421 | if (DOM.get(ed.id + '_path_row')) { | ||
| 422 | Event.add(ed.id + '_tbl', 'mouseover', function(e) { | ||
| 423 | var re; | ||
| 424 | |||
| 425 | e = e.target; | ||
| 426 | |||
| 427 | if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) { | ||
| 428 | re = DOM.get(ed.id + '_path_row'); | ||
| 429 | t.lastPath = re.innerHTML; | ||
| 430 | DOM.setHTML(re, e.parentNode.title); | ||
| 431 | } | ||
| 432 | }); | ||
| 433 | |||
| 434 | Event.add(ed.id + '_tbl', 'mouseout', function(e) { | ||
| 435 | if (t.lastPath) { | ||
| 436 | DOM.setHTML(ed.id + '_path_row', t.lastPath); | ||
| 437 | t.lastPath = 0; | ||
| 438 | } | ||
| 439 | }); | ||
| 440 | } | ||
| 441 | */ | ||
| 442 | |||
| 443 | if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus')) | ||
| 444 | Event.add(DOM.add(p, 'a', {href : '#'}, '<!-- IE -->'), 'focus', function() {tinyMCE.get(ed.id).focus();}); | ||
| 445 | |||
| 446 | if (s.theme_advanced_toolbar_location == 'external') | ||
| 447 | o.deltaHeight = 0; | ||
| 448 | |||
| 449 | t.deltaHeight = o.deltaHeight; | ||
| 450 | o.targetNode = null; | ||
| 451 | |||
| 452 | return { | ||
| 453 | iframeContainer : ic, | ||
| 454 | editorContainer : ed.id + '_parent', | ||
| 455 | sizeContainer : sc, | ||
| 456 | deltaHeight : o.deltaHeight | ||
| 457 | }; | ||
| 458 | }, | ||
| 459 | |||
| 460 | getInfo : function() { | ||
| 461 | return { | ||
| 462 | longname : 'Advanced theme', | ||
| 463 | author : 'Moxiecode Systems AB', | ||
| 464 | authorurl : 'http://tinymce.moxiecode.com', | ||
| 465 | version : tinymce.majorVersion + "." + tinymce.minorVersion | ||
| 466 | } | ||
| 467 | }, | ||
| 468 | |||
| 469 | resizeBy : function(dw, dh) { | ||
| 470 | var e = DOM.get(this.editor.id + '_tbl'); | ||
| 471 | |||
| 472 | this.resizeTo(e.clientWidth + dw, e.clientHeight + dh); | ||
| 473 | }, | ||
| 474 | |||
| 475 | resizeTo : function(w, h) { | ||
| 476 | var ed = this.editor, s = ed.settings, e = DOM.get(ed.id + '_tbl'), ifr = DOM.get(ed.id + '_ifr'), dh; | ||
| 477 | |||
| 478 | // Boundery fix box | ||
| 479 | w = Math.max(s.theme_advanced_resizing_min_width || 100, w); | ||
| 480 | h = Math.max(s.theme_advanced_resizing_min_height || 100, h); | ||
| 481 | w = Math.min(s.theme_advanced_resizing_max_width || 0xFFFF, w); | ||
| 482 | h = Math.min(s.theme_advanced_resizing_max_height || 0xFFFF, h); | ||
| 483 | |||
| 484 | // Calc difference between iframe and container | ||
| 485 | dh = e.clientHeight - ifr.clientHeight; | ||
| 486 | |||
| 487 | // Resize iframe and container | ||
| 488 | DOM.setStyle(ifr, 'height', h - dh); | ||
| 489 | DOM.setStyles(e, {width : w, height : h}); | ||
| 490 | }, | ||
| 491 | |||
| 492 | destroy : function() { | ||
| 493 | var id = this.editor.id; | ||
| 494 | |||
| 495 | Event.clear(id + '_resize'); | ||
| 496 | Event.clear(id + '_path_row'); | ||
| 497 | Event.clear(id + '_external_close'); | ||
| 498 | }, | ||
| 499 | |||
| 500 | // Internal functions | ||
| 501 | |||
| 502 | _simpleLayout : function(s, tb, o, p) { | ||
| 503 | var t = this, ed = t.editor, lo = s.theme_advanced_toolbar_location, sl = s.theme_advanced_statusbar_location, n, ic, etb, c; | ||
| 504 | |||
| 505 | if (s.readonly) { | ||
| 506 | n = DOM.add(tb, 'tr'); | ||
| 507 | n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); | ||
| 508 | return ic; | ||
| 509 | } | ||
| 510 | |||
| 511 | // Create toolbar container at top | ||
| 512 | if (lo == 'top') | ||
| 513 | t._addToolbars(tb, o); | ||
| 514 | |||
| 515 | // Create external toolbar | ||
| 516 | if (lo == 'external') { | ||
| 517 | n = c = DOM.create('div', {style : 'position:relative'}); | ||
| 518 | n = DOM.add(n, 'div', {id : ed.id + '_external', 'class' : 'mceExternalToolbar'}); | ||
| 519 | DOM.add(n, 'a', {id : ed.id + '_external_close', href : 'javascript:;', 'class' : 'mceExternalClose'}); | ||
| 520 | n = DOM.add(n, 'table', {id : ed.id + '_tblext', cellSpacing : 0, cellPadding : 0}); | ||
| 521 | etb = DOM.add(n, 'tbody'); | ||
| 522 | |||
| 523 | if (p.firstChild.className == 'mceOldBoxModel') | ||
| 524 | p.firstChild.appendChild(c); | ||
| 525 | else | ||
| 526 | p.insertBefore(c, p.firstChild); | ||
| 527 | |||
| 528 | t._addToolbars(etb, o); | ||
| 529 | |||
| 530 | ed.onMouseUp.add(function() { | ||
| 531 | var e = DOM.get(ed.id + '_external'); | ||
| 532 | DOM.show(e); | ||
| 533 | |||
| 534 | DOM.hide(lastExtID); | ||
| 535 | |||
| 536 | var f = Event.add(ed.id + '_external_close', 'click', function() { | ||
| 537 | DOM.hide(ed.id + '_external'); | ||
| 538 | Event.remove(ed.id + '_external_close', 'click', f); | ||
| 539 | }); | ||
| 540 | |||
| 541 | DOM.show(e); | ||
| 542 | DOM.setStyle(e, 'top', 0 - DOM.getRect(ed.id + '_tblext').h - 1); | ||
| 543 | |||
| 544 | // Fixes IE rendering bug | ||
| 545 | DOM.hide(e); | ||
| 546 | DOM.show(e); | ||
| 547 | e.style.filter = ''; | ||
| 548 | |||
| 549 | lastExtID = ed.id + '_external'; | ||
| 550 | |||
| 551 | e = null; | ||
| 552 | }); | ||
| 553 | } | ||
| 554 | |||
| 555 | if (sl == 'top') | ||
| 556 | t._addStatusBar(tb, o); | ||
| 557 | |||
| 558 | // Create iframe container | ||
| 559 | if (!s.theme_advanced_toolbar_container) { | ||
| 560 | n = DOM.add(tb, 'tr'); | ||
| 561 | n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); | ||
| 562 | } | ||
| 563 | |||
| 564 | // Create toolbar container at bottom | ||
| 565 | if (lo == 'bottom') | ||
| 566 | t._addToolbars(tb, o); | ||
| 567 | |||
| 568 | if (sl == 'bottom') | ||
| 569 | t._addStatusBar(tb, o); | ||
| 570 | |||
| 571 | return ic; | ||
| 572 | }, | ||
| 573 | |||
| 574 | _rowLayout : function(s, tb, o) { | ||
| 575 | var t = this, ed = t.editor, dc, da, cf = ed.controlManager, n, ic, to, a; | ||
| 576 | |||
| 577 | dc = s.theme_advanced_containers_default_class || ''; | ||
| 578 | da = s.theme_advanced_containers_default_align || 'center'; | ||
| 579 | |||
| 580 | each(explode(s.theme_advanced_containers || ''), function(c, i) { | ||
| 581 | var v = s['theme_advanced_container_' + c] || ''; | ||
| 582 | |||
| 583 | switch (v.toLowerCase()) { | ||
| 584 | case 'mceeditor': | ||
| 585 | n = DOM.add(tb, 'tr'); | ||
| 586 | n = ic = DOM.add(n, 'td', {'class' : 'mceIframeContainer'}); | ||
| 587 | break; | ||
| 588 | |||
| 589 | case 'mceelementpath': | ||
| 590 | t._addStatusBar(tb, o); | ||
| 591 | break; | ||
| 592 | |||
| 593 | default: | ||
| 594 | a = (s['theme_advanced_container_' + c + '_align'] || da).toLowerCase(); | ||
| 595 | a = 'mce' + t._ufirst(a); | ||
| 596 | |||
| 597 | n = DOM.add(DOM.add(tb, 'tr'), 'td', { | ||
| 598 | 'class' : 'mceToolbar ' + (s['theme_advanced_container_' + c + '_class'] || dc) + ' ' + a || da | ||
| 599 | }); | ||
| 600 | |||
| 601 | to = cf.createToolbar("toolbar" + i); | ||
| 602 | t._addControls(v, to); | ||
| 603 | DOM.setHTML(n, to.renderHTML()); | ||
| 604 | o.deltaHeight -= s.theme_advanced_row_height; | ||
| 605 | } | ||
| 606 | }); | ||
| 607 | |||
| 608 | return ic; | ||
| 609 | }, | ||
| 610 | |||
| 611 | _addControls : function(v, tb) { | ||
| 612 | var t = this, s = t.settings, di, cf = t.editor.controlManager; | ||
| 613 | |||
| 614 | if (s.theme_advanced_disable && !t._disabled) { | ||
| 615 | di = {}; | ||
| 616 | |||
| 617 | each(explode(s.theme_advanced_disable), function(v) { | ||
| 618 | di[v] = 1; | ||
| 619 | }); | ||
| 620 | |||
| 621 | t._disabled = di; | ||
| 622 | } else | ||
| 623 | di = t._disabled; | ||
| 624 | |||
| 625 | each(explode(v), function(n) { | ||
| 626 | var c; | ||
| 627 | |||
| 628 | if (di && di[n]) | ||
| 629 | return; | ||
| 630 | |||
| 631 | // Compatiblity with 2.x | ||
| 632 | if (n == 'tablecontrols') { | ||
| 633 | each(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"], function(n) { | ||
| 634 | n = t.createControl(n, cf); | ||
| 635 | |||
| 636 | if (n) | ||
| 637 | tb.add(n); | ||
| 638 | }); | ||
| 639 | |||
| 640 | return; | ||
| 641 | } | ||
| 642 | |||
| 643 | c = t.createControl(n, cf); | ||
| 644 | |||
| 645 | if (c) | ||
| 646 | tb.add(c); | ||
| 647 | }); | ||
| 648 | }, | ||
| 649 | |||
| 650 | _addToolbars : function(c, o) { | ||
| 651 | var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a; | ||
| 652 | |||
| 653 | a = s.theme_advanced_toolbar_align.toLowerCase(); | ||
| 654 | a = 'mce' + t._ufirst(a); | ||
| 655 | |||
| 656 | n = DOM.add(DOM.add(c, 'tr'), 'td', {'class' : 'mceToolbar ' + a}); | ||
| 657 | |||
| 658 | if (!ed.getParam('accessibility_focus') || ed.getParam('tab_focus')) | ||
| 659 | h.push(DOM.createHTML('a', {href : '#', onfocus : 'tinyMCE.get(\'' + ed.id + '\').focus();'}, '<!-- IE -->')); | ||
| 660 | |||
| 661 | h.push(DOM.createHTML('a', {href : '#', accesskey : 'q', title : ed.getLang("advanced.toolbar_focus")}, '<!-- IE -->')); | ||
| 662 | |||
| 663 | // Create toolbar and add the controls | ||
| 664 | for (i=1; (v = s['theme_advanced_buttons' + i]); i++) { | ||
| 665 | tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i}); | ||
| 666 | |||
| 667 | if (s['theme_advanced_buttons' + i + '_add']) | ||
| 668 | v += ',' + s['theme_advanced_buttons' + i + '_add']; | ||
| 669 | |||
| 670 | if (s['theme_advanced_buttons' + i + '_add_before']) | ||
| 671 | v = s['theme_advanced_buttons' + i + '_add_before'] + ',' + v; | ||
| 672 | |||
| 673 | t._addControls(v, tb); | ||
| 674 | |||
| 675 | //n.appendChild(n = tb.render()); | ||
| 676 | h.push(tb.renderHTML()); | ||
| 677 | |||
| 678 | o.deltaHeight -= s.theme_advanced_row_height; | ||
| 679 | } | ||
| 680 | |||
| 681 | h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->')); | ||
| 682 | DOM.setHTML(n, h.join('')); | ||
| 683 | }, | ||
| 684 | |||
| 685 | _addStatusBar : function(tb, o) { | ||
| 686 | var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td; | ||
| 687 | |||
| 688 | n = DOM.add(tb, 'tr'); | ||
| 689 | n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'}); | ||
| 690 | n = DOM.add(n, 'div', {id : ed.id + '_path_row'}, s.theme_advanced_path ? ed.translate('advanced.path') + ': ' : ' '); | ||
| 691 | DOM.add(n, 'a', {href : '#', accesskey : 'x'}); | ||
| 692 | |||
| 693 | if (s.theme_advanced_resizing && !tinymce.isOldWebKit) { | ||
| 694 | DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize'}); | ||
| 695 | |||
| 696 | if (s.theme_advanced_resizing_use_cookie) { | ||
| 697 | ed.onPostRender.add(function() { | ||
| 698 | var o = Cookie.getHash("TinyMCE_" + ed.id + "_size"), c = DOM.get(ed.id + '_tbl'); | ||
| 699 | |||
| 700 | if (!o) | ||
| 701 | return; | ||
| 702 | |||
| 703 | if (s.theme_advanced_resize_horizontal) | ||
| 704 | c.style.width = Math.max(10, o.cw) + 'px'; | ||
| 705 | |||
| 706 | c.style.height = Math.max(10, o.ch) + 'px'; | ||
| 707 | DOM.get(ed.id + '_ifr').style.height = Math.max(10, parseInt(o.ch) + t.deltaHeight) + 'px'; | ||
| 708 | }); | ||
| 709 | } | ||
| 710 | |||
| 711 | ed.onPostRender.add(function() { | ||
| 712 | Event.add(ed.id + '_resize', 'mousedown', function(e) { | ||
| 713 | var c, p, w, h, n, pa; | ||
| 714 | |||
| 715 | // Measure container | ||
| 716 | c = DOM.get(ed.id + '_tbl'); | ||
| 717 | w = c.clientWidth; | ||
| 718 | h = c.clientHeight; | ||
| 719 | |||
| 720 | miw = s.theme_advanced_resizing_min_width || 100; | ||
| 721 | mih = s.theme_advanced_resizing_min_height || 100; | ||
| 722 | maw = s.theme_advanced_resizing_max_width || 0xFFFF; | ||
| 723 | mah = s.theme_advanced_resizing_max_height || 0xFFFF; | ||
| 724 | |||
| 725 | // Setup placeholder | ||
| 726 | p = DOM.add(DOM.get(ed.id + '_parent'), 'div', {'class' : 'mcePlaceHolder'}); | ||
| 727 | DOM.setStyles(p, {width : w, height : h}); | ||
| 728 | |||
| 729 | // Replace with placeholder | ||
| 730 | DOM.hide(c); | ||
| 731 | DOM.show(p); | ||
| 732 | |||
| 733 | // Create internal resize obj | ||
| 734 | r = { | ||
| 735 | x : e.screenX, | ||
| 736 | y : e.screenY, | ||
| 737 | w : w, | ||
| 738 | h : h, | ||
| 739 | dx : null, | ||
| 740 | dy : null | ||
| 741 | }; | ||
| 742 | |||
| 743 | // Start listening | ||
| 744 | mf = Event.add(DOM.doc, 'mousemove', function(e) { | ||
| 745 | var w, h; | ||
| 746 | |||
| 747 | // Calc delta values | ||
| 748 | r.dx = e.screenX - r.x; | ||
| 749 | r.dy = e.screenY - r.y; | ||
| 750 | |||
| 751 | // Boundery fix box | ||
| 752 | w = Math.max(miw, r.w + r.dx); | ||
| 753 | h = Math.max(mih, r.h + r.dy); | ||
| 754 | w = Math.min(maw, w); | ||
| 755 | h = Math.min(mah, h); | ||
| 756 | |||
| 757 | // Resize placeholder | ||
| 758 | if (s.theme_advanced_resize_horizontal) | ||
| 759 | p.style.width = w + 'px'; | ||
| 760 | |||
| 761 | p.style.height = h + 'px'; | ||
| 762 | |||
| 763 | return Event.cancel(e); | ||
| 764 | }); | ||
| 765 | |||
| 766 | me = Event.add(DOM.doc, 'mouseup', function(e) { | ||
| 767 | var ifr; | ||
| 768 | |||
| 769 | // Stop listening | ||
| 770 | Event.remove(DOM.doc, 'mousemove', mf); | ||
| 771 | Event.remove(DOM.doc, 'mouseup', me); | ||
| 772 | |||
| 773 | c.style.display = ''; | ||
| 774 | DOM.remove(p); | ||
| 775 | |||
| 776 | if (r.dx === null) | ||
| 777 | return; | ||
| 778 | |||
| 779 | ifr = DOM.get(ed.id + '_ifr'); | ||
| 780 | |||
| 781 | if (s.theme_advanced_resize_horizontal) | ||
| 782 | c.style.width = Math.max(10, r.w + r.dx) + 'px'; | ||
| 783 | |||
| 784 | c.style.height = Math.max(10, r.h + r.dy) + 'px'; | ||
| 785 | ifr.style.height = Math.max(10, ifr.clientHeight + r.dy) + 'px'; | ||
| 786 | |||
| 787 | if (s.theme_advanced_resizing_use_cookie) { | ||
| 788 | Cookie.setHash("TinyMCE_" + ed.id + "_size", { | ||
| 789 | cw : r.w + r.dx, | ||
| 790 | ch : r.h + r.dy | ||
| 791 | }); | ||
| 792 | } | ||
| 793 | }); | ||
| 794 | |||
| 795 | return Event.cancel(e); | ||
| 796 | }); | ||
| 797 | }); | ||
| 798 | } | ||
| 799 | |||
| 800 | o.deltaHeight -= 21; | ||
| 801 | n = tb = null; | ||
| 802 | }, | ||
| 803 | |||
| 804 | _nodeChanged : function(ed, cm, n, co) { | ||
| 805 | var t = this, p, de = 0, v, c, s = t.settings, cl, fz, fn; | ||
| 806 | |||
| 807 | if (s.readonly) | ||
| 808 | return; | ||
| 809 | |||
| 810 | tinymce.each(t.stateControls, function(c) { | ||
| 811 | cm.setActive(c, ed.queryCommandState(t.controls[c][1])); | ||
| 812 | }); | ||
| 813 | |||
| 814 | cm.setActive('visualaid', ed.hasVisual); | ||
| 815 | cm.setDisabled('undo', !ed.undoManager.hasUndo() && !ed.typing); | ||
| 816 | cm.setDisabled('redo', !ed.undoManager.hasRedo()); | ||
| 817 | cm.setDisabled('outdent', !ed.queryCommandState('Outdent')); | ||
| 818 | |||
| 819 | p = DOM.getParent(n, 'A'); | ||
| 820 | if (c = cm.get('link')) { | ||
| 821 | if (!p || !p.name) { | ||
| 822 | c.setDisabled(!p && co); | ||
| 823 | c.setActive(!!p); | ||
| 824 | } | ||
| 825 | } | ||
| 826 | |||
| 827 | if (c = cm.get('unlink')) { | ||
| 828 | c.setDisabled(!p && co); | ||
| 829 | c.setActive(!!p && !p.name); | ||
| 830 | } | ||
| 831 | |||
| 832 | if (c = cm.get('anchor')) { | ||
| 833 | c.setActive(!!p && p.name); | ||
| 834 | |||
| 835 | if (tinymce.isWebKit) { | ||
| 836 | p = DOM.getParent(n, 'IMG'); | ||
| 837 | c.setActive(!!p && DOM.getAttrib(p, 'mce_name') == 'a'); | ||
| 838 | } | ||
| 839 | } | ||
| 840 | |||
| 841 | p = DOM.getParent(n, 'IMG'); | ||
| 842 | if (c = cm.get('image')) | ||
| 843 | c.setActive(!!p && n.className.indexOf('mceItem') == -1); | ||
| 844 | |||
| 845 | if (c = cm.get('styleselect')) { | ||
| 846 | if (n.className) { | ||
| 847 | t._importClasses(); | ||
| 848 | c.select(n.className); | ||
| 849 | } else | ||
| 850 | c.select(); | ||
| 851 | } | ||
| 852 | |||
| 853 | if (c = cm.get('formatselect')) { | ||
| 854 | p = DOM.getParent(n, DOM.isBlock); | ||
| 855 | |||
| 856 | if (p) | ||
| 857 | c.select(p.nodeName.toLowerCase()); | ||
| 858 | } | ||
| 859 | |||
| 860 | if (ed.settings.convert_fonts_to_spans) { | ||
| 861 | ed.dom.getParent(n, function(n) { | ||
| 862 | if (n.nodeName === 'SPAN') { | ||
| 863 | if (!cl && n.className) | ||
| 864 | cl = n.className; | ||
| 865 | |||
| 866 | if (!fz && n.style.fontSize) | ||
| 867 | fz = n.style.fontSize; | ||
| 868 | |||
| 869 | if (!fn && n.style.fontFamily) | ||
| 870 | fn = n.style.fontFamily.replace(/[\"\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase(); | ||
| 871 | } | ||
| 872 | |||
| 873 | return false; | ||
| 874 | }); | ||
| 875 | |||
| 876 | if (c = cm.get('fontselect')) { | ||
| 877 | c.select(function(v) { | ||
| 878 | return v.replace(/^([^,]+).*/, '$1').toLowerCase() == fn; | ||
| 879 | }); | ||
| 880 | } | ||
| 881 | |||
| 882 | if (c = cm.get('fontsizeselect')) { | ||
| 883 | c.select(function(v) { | ||
| 884 | if (v.fontSize && v.fontSize === fz) | ||
| 885 | return true; | ||
| 886 | |||
| 887 | if (v['class'] && v['class'] === cl) | ||
| 888 | return true; | ||
| 889 | }); | ||
| 890 | } | ||
| 891 | } else { | ||
| 892 | if (c = cm.get('fontselect')) | ||
| 893 | c.select(ed.queryCommandValue('FontName')); | ||
| 894 | |||
| 895 | if (c = cm.get('fontsizeselect')) { | ||
| 896 | v = ed.queryCommandValue('FontSize'); | ||
| 897 | c.select(function(iv) { | ||
| 898 | return iv.fontSize == v; | ||
| 899 | }); | ||
| 900 | } | ||
| 901 | } | ||
| 902 | |||
| 903 | if (s.theme_advanced_path && s.theme_advanced_statusbar_location) { | ||
| 904 | p = DOM.get(ed.id + '_path') || DOM.add(ed.id + '_path_row', 'span', {id : ed.id + '_path'}); | ||
| 905 | DOM.setHTML(p, ''); | ||
| 906 | |||
| 907 | ed.dom.getParent(n, function(n) { | ||
| 908 | var na = n.nodeName.toLowerCase(), u, pi, ti = ''; | ||
| 909 | |||
| 910 | // Ignore non element and hidden elements | ||
| 911 | if (n.nodeType != 1 || n.nodeName === 'BR' || (DOM.hasClass(n, 'mceItemHidden') || DOM.hasClass(n, 'mceItemRemoved'))) | ||
| 912 | return; | ||
| 913 | |||
| 914 | // Fake name | ||
| 915 | if (v = DOM.getAttrib(n, 'mce_name')) | ||
| 916 | na = v; | ||
| 917 | |||
| 918 | // Handle prefix | ||
| 919 | if (tinymce.isIE && n.scopeName !== 'HTML') | ||
| 920 | na = n.scopeName + ':' + na; | ||
| 921 | |||
| 922 | // Remove internal prefix | ||
| 923 | na = na.replace(/mce\:/g, ''); | ||
| 924 | |||
| 925 | // Handle node name | ||
| 926 | switch (na) { | ||
| 927 | case 'b': | ||
| 928 | na = 'strong'; | ||
| 929 | break; | ||
| 930 | |||
| 931 | case 'i': | ||
| 932 | na = 'em'; | ||
| 933 | break; | ||
| 934 | |||
| 935 | case 'img': | ||
| 936 | if (v = DOM.getAttrib(n, 'src')) | ||
| 937 | ti += 'src: ' + v + ' '; | ||
| 938 | |||
| 939 | break; | ||
| 940 | |||
| 941 | case 'a': | ||
| 942 | if (v = DOM.getAttrib(n, 'name')) { | ||
| 943 | ti += 'name: ' + v + ' '; | ||
| 944 | na += '#' + v; | ||
| 945 | } | ||
| 946 | |||
| 947 | if (v = DOM.getAttrib(n, 'href')) | ||
| 948 | ti += 'href: ' + v + ' '; | ||
| 949 | |||
| 950 | break; | ||
| 951 | |||
| 952 | case 'font': | ||
| 953 | if (s.convert_fonts_to_spans) | ||
| 954 | na = 'span'; | ||
| 955 | |||
| 956 | if (v = DOM.getAttrib(n, 'face')) | ||
| 957 | ti += 'font: ' + v + ' '; | ||
| 958 | |||
| 959 | if (v = DOM.getAttrib(n, 'size')) | ||
| 960 | ti += 'size: ' + v + ' '; | ||
| 961 | |||
| 962 | if (v = DOM.getAttrib(n, 'color')) | ||
| 963 | ti += 'color: ' + v + ' '; | ||
| 964 | |||
| 965 | break; | ||
| 966 | |||
| 967 | case 'span': | ||
| 968 | if (v = DOM.getAttrib(n, 'style')) | ||
| 969 | ti += 'style: ' + v + ' '; | ||
| 970 | |||
| 971 | break; | ||
| 972 | } | ||
| 973 | |||
| 974 | if (v = DOM.getAttrib(n, 'id')) | ||
| 975 | ti += 'id: ' + v + ' '; | ||
| 976 | |||
| 977 | if (v = n.className) { | ||
| 978 | v = v.replace(/(webkit-[\w\-]+|Apple-[\w\-]+|mceItem\w+|mceVisualAid)/g, ''); | ||
| 979 | |||
| 980 | if (v && v.indexOf('mceItem') == -1) { | ||
| 981 | ti += 'class: ' + v + ' '; | ||
| 982 | |||
| 983 | if (DOM.isBlock(n) || na == 'img' || na == 'span') | ||
| 984 | na += '.' + v; | ||
| 985 | } | ||
| 986 | } | ||
| 987 | |||
| 988 | na = na.replace(/(html:)/g, ''); | ||
| 989 | na = {name : na, node : n, title : ti}; | ||
| 990 | t.onResolveName.dispatch(t, na); | ||
| 991 | ti = na.title; | ||
| 992 | na = na.name; | ||
| 993 | |||
| 994 | //u = "javascript:tinymce.EditorManager.get('" + ed.id + "').theme._sel('" + (de++) + "');"; | ||
| 995 | pi = DOM.create('a', {'href' : "javascript:;", onmousedown : "return false;", title : ti, 'class' : 'mcePath_' + (de++)}, na); | ||
| 996 | |||
| 997 | if (p.hasChildNodes()) { | ||
| 998 | p.insertBefore(DOM.doc.createTextNode(' \u00bb '), p.firstChild); | ||
| 999 | p.insertBefore(pi, p.firstChild); | ||
| 1000 | } else | ||
| 1001 | p.appendChild(pi); | ||
| 1002 | }, ed.getBody()); | ||
| 1003 | } | ||
| 1004 | }, | ||
| 1005 | |||
| 1006 | // Commands gets called by execCommand | ||
| 1007 | |||
| 1008 | _sel : function(v) { | ||
| 1009 | this.editor.execCommand('mceSelectNodeDepth', false, v); | ||
| 1010 | }, | ||
| 1011 | |||
| 1012 | _mceInsertAnchor : function(ui, v) { | ||
| 1013 | var ed = this.editor; | ||
| 1014 | |||
| 1015 | ed.windowManager.open({ | ||
| 1016 | url : tinymce.baseURL + '/themes/advanced/anchor.htm', | ||
| 1017 | width : 320 + parseInt(ed.getLang('advanced.anchor_delta_width', 0)), | ||
| 1018 | height : 90 + parseInt(ed.getLang('advanced.anchor_delta_height', 0)), | ||
| 1019 | inline : true | ||
| 1020 | }, { | ||
| 1021 | theme_url : this.url | ||
| 1022 | }); | ||
| 1023 | }, | ||
| 1024 | |||
| 1025 | _mceCharMap : function() { | ||
| 1026 | var ed = this.editor; | ||
| 1027 | |||
| 1028 | ed.windowManager.open({ | ||
| 1029 | url : tinymce.baseURL + '/themes/advanced/charmap.htm', | ||
| 1030 | width : 550 + parseInt(ed.getLang('advanced.charmap_delta_width', 0)), | ||
| 1031 | height : 250 + parseInt(ed.getLang('advanced.charmap_delta_height', 0)), | ||
| 1032 | inline : true | ||
| 1033 | }, { | ||
| 1034 | theme_url : this.url | ||
| 1035 | }); | ||
| 1036 | }, | ||
| 1037 | |||
| 1038 | _mceHelp : function() { | ||
| 1039 | var ed = this.editor; | ||
| 1040 | |||
| 1041 | ed.windowManager.open({ | ||
| 1042 | url : tinymce.baseURL + '/themes/advanced/about.htm', | ||
| 1043 | width : 480, | ||
| 1044 | height : 380, | ||
| 1045 | inline : true | ||
| 1046 | }, { | ||
| 1047 | theme_url : this.url | ||
| 1048 | }); | ||
| 1049 | }, | ||
| 1050 | |||
| 1051 | _mceColorPicker : function(u, v) { | ||
| 1052 | var ed = this.editor; | ||
| 1053 | |||
| 1054 | v = v || {}; | ||
| 1055 | |||
| 1056 | ed.windowManager.open({ | ||
| 1057 | url : tinymce.baseURL + '/themes/advanced/color_picker.htm', | ||
| 1058 | width : 375 + parseInt(ed.getLang('advanced.colorpicker_delta_width', 0)), | ||
| 1059 | height : 250 + parseInt(ed.getLang('advanced.colorpicker_delta_height', 0)), | ||
| 1060 | close_previous : false, | ||
| 1061 | inline : true | ||
| 1062 | }, { | ||
| 1063 | input_color : v.color, | ||
| 1064 | func : v.func, | ||
| 1065 | theme_url : this.url | ||
| 1066 | }); | ||
| 1067 | }, | ||
| 1068 | |||
| 1069 | _mceCodeEditor : function(ui, val) { | ||
| 1070 | var ed = this.editor; | ||
| 1071 | |||
| 1072 | ed.windowManager.open({ | ||
| 1073 | url : tinymce.baseURL + '/themes/advanced/source_editor.htm', | ||
| 1074 | width : parseInt(ed.getParam("theme_advanced_source_editor_width", 720)), | ||
| 1075 | height : parseInt(ed.getParam("theme_advanced_source_editor_height", 580)), | ||
| 1076 | inline : true, | ||
| 1077 | resizable : true, | ||
| 1078 | maximizable : true | ||
| 1079 | }, { | ||
| 1080 | theme_url : this.url | ||
| 1081 | }); | ||
| 1082 | }, | ||
| 1083 | |||
| 1084 | _mceImage : function(ui, val) { | ||
| 1085 | var ed = this.editor; | ||
| 1086 | |||
| 1087 | // Internal image object like a flash placeholder | ||
| 1088 | if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1) | ||
| 1089 | return; | ||
| 1090 | |||
| 1091 | ed.windowManager.open({ | ||
| 1092 | url : tinymce.baseURL + '/themes/advanced/image.htm', | ||
| 1093 | width : 355 + parseInt(ed.getLang('advanced.image_delta_width', 0)), | ||
| 1094 | height : 275 + parseInt(ed.getLang('advanced.image_delta_height', 0)), | ||
| 1095 | inline : true | ||
| 1096 | }, { | ||
| 1097 | theme_url : this.url | ||
| 1098 | }); | ||
| 1099 | }, | ||
| 1100 | |||
| 1101 | _mceLink : function(ui, val) { | ||
| 1102 | var ed = this.editor; | ||
| 1103 | |||
| 1104 | ed.windowManager.open({ | ||
| 1105 | url : tinymce.baseURL + '/themes/advanced/link.htm', | ||
| 1106 | width : 310 + parseInt(ed.getLang('advanced.link_delta_width', 0)), | ||
| 1107 | height : 200 + parseInt(ed.getLang('advanced.link_delta_height', 0)), | ||
| 1108 | inline : true | ||
| 1109 | }, { | ||
| 1110 | theme_url : this.url | ||
| 1111 | }); | ||
| 1112 | }, | ||
| 1113 | |||
| 1114 | _mceNewDocument : function() { | ||
| 1115 | var ed = this.editor; | ||
| 1116 | |||
| 1117 | ed.windowManager.confirm('advanced.newdocument', function(s) { | ||
| 1118 | if (s) | ||
| 1119 | ed.execCommand('mceSetContent', false, ''); | ||
| 1120 | }); | ||
| 1121 | }, | ||
| 1122 | |||
| 1123 | _mceForeColor : function() { | ||
| 1124 | var t = this; | ||
| 1125 | |||
| 1126 | this._mceColorPicker(0, { | ||
| 1127 | color: t.fgColor, | ||
| 1128 | func : function(co) { | ||
| 1129 | t.fgColor = co; | ||
| 1130 | t.editor.execCommand('ForeColor', false, co); | ||
| 1131 | } | ||
| 1132 | }); | ||
| 1133 | }, | ||
| 1134 | |||
| 1135 | _mceBackColor : function() { | ||
| 1136 | var t = this; | ||
| 1137 | |||
| 1138 | this._mceColorPicker(0, { | ||
| 1139 | color: t.bgColor, | ||
| 1140 | func : function(co) { | ||
| 1141 | t.bgColor = co; | ||
| 1142 | t.editor.execCommand('HiliteColor', false, co); | ||
| 1143 | } | ||
| 1144 | }); | ||
| 1145 | }, | ||
| 1146 | |||
| 1147 | _ufirst : function(s) { | ||
| 1148 | return s.substring(0, 1).toUpperCase() + s.substring(1); | ||
| 1149 | } | ||
| 1150 | }); | ||
| 1151 | |||
| 1152 | tinymce.ThemeManager.add('advanced', tinymce.themes.AdvancedTheme); | ||
| 1153 | }()); \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/image.htm b/public/javascripts/tiny_mce/themes/advanced/image.htm new file mode 100755 index 0000000..6c36646 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/image.htm | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
| 2 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 3 | <head> | ||
| 4 | <title>{#advanced_dlg.image_title}</title> | ||
| 5 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 6 | <script type="text/javascript" src="../../utils/mctabs.js"></script> | ||
| 7 | <script type="text/javascript" src="../../utils/form_utils.js"></script> | ||
| 8 | <script type="text/javascript" src="js/image.js"></script> | ||
| 9 | <base target="_self" /> | ||
| 10 | </head> | ||
| 11 | <body id="image" style="display: none"> | ||
| 12 | <form onsubmit="ImageDialog.update();return false;" action="#"> | ||
| 13 | <div class="tabs"> | ||
| 14 | <ul> | ||
| 15 | <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> | ||
| 16 | </ul> | ||
| 17 | </div> | ||
| 18 | |||
| 19 | <div class="panel_wrapper"> | ||
| 20 | <div id="general_panel" class="panel current"> | ||
| 21 | <table border="0" cellpadding="4" cellspacing="0"> | ||
| 22 | <tr> | ||
| 23 | <td nowrap="nowrap"><label for="src">{#advanced_dlg.image_src}</label></td> | ||
| 24 | <td><table border="0" cellspacing="0" cellpadding="0"> | ||
| 25 | <tr> | ||
| 26 | <td><input id="src" name="src" type="text" class="mceFocus" value="" style="width: 200px" onchange="ImageDialog.getImageData();" /></td> | ||
| 27 | <td id="srcbrowsercontainer"> </td> | ||
| 28 | </tr> | ||
| 29 | </table></td> | ||
| 30 | </tr> | ||
| 31 | <tr> | ||
| 32 | <td><label for="image_list">{#advanced_dlg.image_list}</label></td> | ||
| 33 | <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> | ||
| 34 | </tr> | ||
| 35 | <tr> | ||
| 36 | <td nowrap="nowrap"><label for="alt">{#advanced_dlg.image_alt}</label></td> | ||
| 37 | <td><input id="alt" name="alt" type="text" value="" style="width: 200px" /></td> | ||
| 38 | </tr> | ||
| 39 | <tr> | ||
| 40 | <td nowrap="nowrap"><label for="align">{#advanced_dlg.image_align}</label></td> | ||
| 41 | <td><select id="align" name="align" onchange="ImageDialog.updateStyle();"> | ||
| 42 | <option value="">{#not_set}</option> | ||
| 43 | <option value="baseline">{#advanced_dlg.image_align_baseline}</option> | ||
| 44 | <option value="top">{#advanced_dlg.image_align_top}</option> | ||
| 45 | <option value="middle">{#advanced_dlg.image_align_middle}</option> | ||
| 46 | <option value="bottom">{#advanced_dlg.image_align_bottom}</option> | ||
| 47 | <option value="text-top">{#advanced_dlg.image_align_texttop}</option> | ||
| 48 | <option value="text-bottom">{#advanced_dlg.image_align_textbottom}</option> | ||
| 49 | <option value="left">{#advanced_dlg.image_align_left}</option> | ||
| 50 | <option value="right">{#advanced_dlg.image_align_right}</option> | ||
| 51 | </select></td> | ||
| 52 | </tr> | ||
| 53 | <tr> | ||
| 54 | <td nowrap="nowrap"><label for="width">{#advanced_dlg.image_dimensions}</label></td> | ||
| 55 | <td><input id="width" name="width" type="text" value="" size="3" maxlength="5" /> | ||
| 56 | x | ||
| 57 | <input id="height" name="height" type="text" value="" size="3" maxlength="5" /></td> | ||
| 58 | </tr> | ||
| 59 | <tr> | ||
| 60 | <td nowrap="nowrap"><label for="border">{#advanced_dlg.image_border}</label></td> | ||
| 61 | <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td> | ||
| 62 | </tr> | ||
| 63 | <tr> | ||
| 64 | <td nowrap="nowrap"><label for="vspace">{#advanced_dlg.image_vspace}</label></td> | ||
| 65 | <td><input id="vspace" name="vspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td> | ||
| 66 | </tr> | ||
| 67 | <tr> | ||
| 68 | <td nowrap="nowrap"><label for="hspace">{#advanced_dlg.image_hspace}</label></td> | ||
| 69 | <td><input id="hspace" name="hspace" type="text" value="" size="3" maxlength="3" onchange="ImageDialog.updateStyle();" /></td> | ||
| 70 | </tr> | ||
| 71 | </table> | ||
| 72 | </div> | ||
| 73 | </div> | ||
| 74 | |||
| 75 | <div class="mceActionPanel"> | ||
| 76 | <div style="float: left"> | ||
| 77 | <input type="submit" id="insert" name="insert" value="{#insert}" /> | ||
| 78 | </div> | ||
| 79 | |||
| 80 | <div style="float: right"> | ||
| 81 | <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||
| 82 | </div> | ||
| 83 | </div> | ||
| 84 | </form> | ||
| 85 | </body> | ||
| 86 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg b/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg new file mode 100755 index 0000000..b4c542d --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/img/icons.gif b/public/javascripts/tiny_mce/themes/advanced/img/icons.gif new file mode 100755 index 0000000..ccac36f --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/img/icons.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/about.js b/public/javascripts/tiny_mce/themes/advanced/js/about.js new file mode 100755 index 0000000..5cee9ed --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/about.js | |||
| @@ -0,0 +1,72 @@ | |||
| 1 | tinyMCEPopup.requireLangPack(); | ||
| 2 | |||
| 3 | function init() { | ||
| 4 | var ed, tcont; | ||
| 5 | |||
| 6 | tinyMCEPopup.resizeToInnerSize(); | ||
| 7 | ed = tinyMCEPopup.editor; | ||
| 8 | |||
| 9 | // Give FF some time | ||
| 10 | window.setTimeout(insertHelpIFrame, 10); | ||
| 11 | |||
| 12 | tcont = document.getElementById('plugintablecontainer'); | ||
| 13 | document.getElementById('plugins_tab').style.display = 'none'; | ||
| 14 | |||
| 15 | var html = ""; | ||
| 16 | html += '<table id="plugintable">'; | ||
| 17 | html += '<thead>'; | ||
| 18 | html += '<tr>'; | ||
| 19 | html += '<td>' + ed.getLang('advanced_dlg.about_plugin') + '</td>'; | ||
| 20 | html += '<td>' + ed.getLang('advanced_dlg.about_author') + '</td>'; | ||
| 21 | html += '<td>' + ed.getLang('advanced_dlg.about_version') + '</td>'; | ||
| 22 | html += '</tr>'; | ||
| 23 | html += '</thead>'; | ||
| 24 | html += '<tbody>'; | ||
| 25 | |||
| 26 | tinymce.each(ed.plugins, function(p, n) { | ||
| 27 | var info; | ||
| 28 | |||
| 29 | if (!p.getInfo) | ||
| 30 | return; | ||
| 31 | |||
| 32 | html += '<tr>'; | ||
| 33 | |||
| 34 | info = p.getInfo(); | ||
| 35 | |||
| 36 | if (info.infourl != null && info.infourl != '') | ||
| 37 | html += '<td width="50%" title="' + n + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>'; | ||
| 38 | else | ||
| 39 | html += '<td width="50%" title="' + n + '">' + info.longname + '</td>'; | ||
| 40 | |||
| 41 | if (info.authorurl != null && info.authorurl != '') | ||
| 42 | html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>'; | ||
| 43 | else | ||
| 44 | html += '<td width="35%">' + info.author + '</td>'; | ||
| 45 | |||
| 46 | html += '<td width="15%">' + info.version + '</td>'; | ||
| 47 | html += '</tr>'; | ||
| 48 | |||
| 49 | document.getElementById('plugins_tab').style.display = ''; | ||
| 50 | |||
| 51 | }); | ||
| 52 | |||
| 53 | html += '</tbody>'; | ||
| 54 | html += '</table>'; | ||
| 55 | |||
| 56 | tcont.innerHTML = html; | ||
| 57 | |||
| 58 | tinyMCEPopup.dom.get('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion; | ||
| 59 | tinyMCEPopup.dom.get('date').innerHTML = tinymce.releaseDate; | ||
| 60 | } | ||
| 61 | |||
| 62 | function insertHelpIFrame() { | ||
| 63 | var html; | ||
| 64 | |||
| 65 | if (tinyMCEPopup.getParam('docs_url')) { | ||
| 66 | html = '<iframe width="100%" height="300" src="' + tinyMCEPopup.editor.baseURI.toAbsolute(tinyMCEPopup.getParam('docs_url')) + '"></iframe>'; | ||
| 67 | document.getElementById('iframecontainer').innerHTML = html; | ||
| 68 | document.getElementById('help_tab').style.display = 'block'; | ||
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | tinyMCEPopup.onInit.add(init); | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/anchor.js b/public/javascripts/tiny_mce/themes/advanced/js/anchor.js new file mode 100755 index 0000000..b5efd1e --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/anchor.js | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | tinyMCEPopup.requireLangPack(); | ||
| 2 | |||
| 3 | var AnchorDialog = { | ||
| 4 | init : function(ed) { | ||
| 5 | var action, elm, f = document.forms[0]; | ||
| 6 | |||
| 7 | this.editor = ed; | ||
| 8 | elm = ed.dom.getParent(ed.selection.getNode(), 'A,IMG'); | ||
| 9 | v = ed.dom.getAttrib(elm, 'name'); | ||
| 10 | |||
| 11 | if (v) { | ||
| 12 | this.action = 'update'; | ||
| 13 | f.anchorName.value = v; | ||
| 14 | } | ||
| 15 | |||
| 16 | f.insert.value = ed.getLang(elm ? 'update' : 'insert'); | ||
| 17 | }, | ||
| 18 | |||
| 19 | update : function() { | ||
| 20 | var ed = this.editor; | ||
| 21 | |||
| 22 | tinyMCEPopup.restoreSelection(); | ||
| 23 | |||
| 24 | if (this.action != 'update') | ||
| 25 | ed.selection.collapse(1); | ||
| 26 | |||
| 27 | // Webkit acts weird if empty inline element is inserted so we need to use a image instead | ||
| 28 | if (tinymce.isWebKit) | ||
| 29 | ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('img', {mce_name : 'a', name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'})); | ||
| 30 | else | ||
| 31 | ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : document.forms[0].anchorName.value, 'class' : 'mceItemAnchor'}, '')); | ||
| 32 | |||
| 33 | tinyMCEPopup.close(); | ||
| 34 | } | ||
| 35 | }; | ||
| 36 | |||
| 37 | tinyMCEPopup.onInit.add(AnchorDialog.init, AnchorDialog); | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/charmap.js b/public/javascripts/tiny_mce/themes/advanced/js/charmap.js new file mode 100755 index 0000000..8467ef6 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/charmap.js | |||
| @@ -0,0 +1,325 @@ | |||
| 1 | tinyMCEPopup.requireLangPack(); | ||
| 2 | |||
| 3 | var charmap = [ | ||
| 4 | [' ', ' ', true, 'no-break space'], | ||
| 5 | ['&', '&', true, 'ampersand'], | ||
| 6 | ['"', '"', true, 'quotation mark'], | ||
| 7 | // finance | ||
| 8 | ['¢', '¢', true, 'cent sign'], | ||
| 9 | ['€', '€', true, 'euro sign'], | ||
| 10 | ['£', '£', true, 'pound sign'], | ||
| 11 | ['¥', '¥', true, 'yen sign'], | ||
| 12 | // signs | ||
| 13 | ['©', '©', true, 'copyright sign'], | ||
| 14 | ['®', '®', true, 'registered sign'], | ||
| 15 | ['™', '™', true, 'trade mark sign'], | ||
| 16 | ['‰', '‰', true, 'per mille sign'], | ||
| 17 | ['µ', 'µ', true, 'micro sign'], | ||
| 18 | ['·', '·', true, 'middle dot'], | ||
| 19 | ['•', '•', true, 'bullet'], | ||
| 20 | ['…', '…', true, 'three dot leader'], | ||
| 21 | ['′', '′', true, 'minutes / feet'], | ||
| 22 | ['″', '″', true, 'seconds / inches'], | ||
| 23 | ['§', '§', true, 'section sign'], | ||
| 24 | ['¶', '¶', true, 'paragraph sign'], | ||
| 25 | ['ß', 'ß', true, 'sharp s / ess-zed'], | ||
| 26 | // quotations | ||
| 27 | ['‹', '‹', true, 'single left-pointing angle quotation mark'], | ||
| 28 | ['›', '›', true, 'single right-pointing angle quotation mark'], | ||
| 29 | ['«', '«', true, 'left pointing guillemet'], | ||
| 30 | ['»', '»', true, 'right pointing guillemet'], | ||
| 31 | ['‘', '‘', true, 'left single quotation mark'], | ||
| 32 | ['’', '’', true, 'right single quotation mark'], | ||
| 33 | ['“', '“', true, 'left double quotation mark'], | ||
| 34 | ['”', '”', true, 'right double quotation mark'], | ||
| 35 | ['‚', '‚', true, 'single low-9 quotation mark'], | ||
| 36 | ['„', '„', true, 'double low-9 quotation mark'], | ||
| 37 | ['<', '<', true, 'less-than sign'], | ||
| 38 | ['>', '>', true, 'greater-than sign'], | ||
| 39 | ['≤', '≤', true, 'less-than or equal to'], | ||
| 40 | ['≥', '≥', true, 'greater-than or equal to'], | ||
| 41 | ['–', '–', true, 'en dash'], | ||
| 42 | ['—', '—', true, 'em dash'], | ||
| 43 | ['¯', '¯', true, 'macron'], | ||
| 44 | ['‾', '‾', true, 'overline'], | ||
| 45 | ['¤', '¤', true, 'currency sign'], | ||
| 46 | ['¦', '¦', true, 'broken bar'], | ||
| 47 | ['¨', '¨', true, 'diaeresis'], | ||
| 48 | ['¡', '¡', true, 'inverted exclamation mark'], | ||
| 49 | ['¿', '¿', true, 'turned question mark'], | ||
| 50 | ['ˆ', 'ˆ', true, 'circumflex accent'], | ||
| 51 | ['˜', '˜', true, 'small tilde'], | ||
| 52 | ['°', '°', true, 'degree sign'], | ||
| 53 | ['−', '−', true, 'minus sign'], | ||
| 54 | ['±', '±', true, 'plus-minus sign'], | ||
| 55 | ['÷', '÷', true, 'division sign'], | ||
| 56 | ['⁄', '⁄', true, 'fraction slash'], | ||
| 57 | ['×', '×', true, 'multiplication sign'], | ||
| 58 | ['¹', '¹', true, 'superscript one'], | ||
| 59 | ['²', '²', true, 'superscript two'], | ||
| 60 | ['³', '³', true, 'superscript three'], | ||
| 61 | ['¼', '¼', true, 'fraction one quarter'], | ||
| 62 | ['½', '½', true, 'fraction one half'], | ||
| 63 | ['¾', '¾', true, 'fraction three quarters'], | ||
| 64 | // math / logical | ||
| 65 | ['ƒ', 'ƒ', true, 'function / florin'], | ||
| 66 | ['∫', '∫', true, 'integral'], | ||
| 67 | ['∑', '∑', true, 'n-ary sumation'], | ||
| 68 | ['∞', '∞', true, 'infinity'], | ||
| 69 | ['√', '√', true, 'square root'], | ||
| 70 | ['∼', '∼', false,'similar to'], | ||
| 71 | ['≅', '≅', false,'approximately equal to'], | ||
| 72 | ['≈', '≈', true, 'almost equal to'], | ||
| 73 | ['≠', '≠', true, 'not equal to'], | ||
| 74 | ['≡', '≡', true, 'identical to'], | ||
| 75 | ['∈', '∈', false,'element of'], | ||
| 76 | ['∉', '∉', false,'not an element of'], | ||
| 77 | ['∋', '∋', false,'contains as member'], | ||
| 78 | ['∏', '∏', true, 'n-ary product'], | ||
| 79 | ['∧', '∧', false,'logical and'], | ||
| 80 | ['∨', '∨', false,'logical or'], | ||
| 81 | ['¬', '¬', true, 'not sign'], | ||
| 82 | ['∩', '∩', true, 'intersection'], | ||
| 83 | ['∪', '∪', false,'union'], | ||
| 84 | ['∂', '∂', true, 'partial differential'], | ||
| 85 | ['∀', '∀', false,'for all'], | ||
| 86 | ['∃', '∃', false,'there exists'], | ||
| 87 | ['∅', '∅', false,'diameter'], | ||
| 88 | ['∇', '∇', false,'backward difference'], | ||
| 89 | ['∗', '∗', false,'asterisk operator'], | ||
| 90 | ['∝', '∝', false,'proportional to'], | ||
| 91 | ['∠', '∠', false,'angle'], | ||
| 92 | // undefined | ||
| 93 | ['´', '´', true, 'acute accent'], | ||
| 94 | ['¸', '¸', true, 'cedilla'], | ||
| 95 | ['ª', 'ª', true, 'feminine ordinal indicator'], | ||
| 96 | ['º', 'º', true, 'masculine ordinal indicator'], | ||
| 97 | ['†', '†', true, 'dagger'], | ||
| 98 | ['‡', '‡', true, 'double dagger'], | ||
| 99 | // alphabetical special chars | ||
| 100 | ['À', 'À', true, 'A - grave'], | ||
| 101 | ['Á', 'Á', true, 'A - acute'], | ||
| 102 | ['Â', 'Â', true, 'A - circumflex'], | ||
| 103 | ['Ã', 'Ã', true, 'A - tilde'], | ||
| 104 | ['Ä', 'Ä', true, 'A - diaeresis'], | ||
| 105 | ['Å', 'Å', true, 'A - ring above'], | ||
| 106 | ['Æ', 'Æ', true, 'ligature AE'], | ||
| 107 | ['Ç', 'Ç', true, 'C - cedilla'], | ||
| 108 | ['È', 'È', true, 'E - grave'], | ||
| 109 | ['É', 'É', true, 'E - acute'], | ||
| 110 | ['Ê', 'Ê', true, 'E - circumflex'], | ||
| 111 | ['Ë', 'Ë', true, 'E - diaeresis'], | ||
| 112 | ['Ì', 'Ì', true, 'I - grave'], | ||
| 113 | ['Í', 'Í', true, 'I - acute'], | ||
| 114 | ['Î', 'Î', true, 'I - circumflex'], | ||
| 115 | ['Ï', 'Ï', true, 'I - diaeresis'], | ||
| 116 | ['Ð', 'Ð', true, 'ETH'], | ||
| 117 | ['Ñ', 'Ñ', true, 'N - tilde'], | ||
| 118 | ['Ò', 'Ò', true, 'O - grave'], | ||
| 119 | ['Ó', 'Ó', true, 'O - acute'], | ||
| 120 | ['Ô', 'Ô', true, 'O - circumflex'], | ||
| 121 | ['Õ', 'Õ', true, 'O - tilde'], | ||
| 122 | ['Ö', 'Ö', true, 'O - diaeresis'], | ||
| 123 | ['Ø', 'Ø', true, 'O - slash'], | ||
| 124 | ['Œ', 'Œ', true, 'ligature OE'], | ||
| 125 | ['Š', 'Š', true, 'S - caron'], | ||
| 126 | ['Ù', 'Ù', true, 'U - grave'], | ||
| 127 | ['Ú', 'Ú', true, 'U - acute'], | ||
| 128 | ['Û', 'Û', true, 'U - circumflex'], | ||
| 129 | ['Ü', 'Ü', true, 'U - diaeresis'], | ||
| 130 | ['Ý', 'Ý', true, 'Y - acute'], | ||
| 131 | ['Ÿ', 'Ÿ', true, 'Y - diaeresis'], | ||
| 132 | ['Þ', 'Þ', true, 'THORN'], | ||
| 133 | ['à', 'à', true, 'a - grave'], | ||
| 134 | ['á', 'á', true, 'a - acute'], | ||
| 135 | ['â', 'â', true, 'a - circumflex'], | ||
| 136 | ['ã', 'ã', true, 'a - tilde'], | ||
| 137 | ['ä', 'ä', true, 'a - diaeresis'], | ||
| 138 | ['å', 'å', true, 'a - ring above'], | ||
| 139 | ['æ', 'æ', true, 'ligature ae'], | ||
| 140 | ['ç', 'ç', true, 'c - cedilla'], | ||
| 141 | ['è', 'è', true, 'e - grave'], | ||
| 142 | ['é', 'é', true, 'e - acute'], | ||
| 143 | ['ê', 'ê', true, 'e - circumflex'], | ||
| 144 | ['ë', 'ë', true, 'e - diaeresis'], | ||
| 145 | ['ì', 'ì', true, 'i - grave'], | ||
| 146 | ['í', 'í', true, 'i - acute'], | ||
| 147 | ['î', 'î', true, 'i - circumflex'], | ||
| 148 | ['ï', 'ï', true, 'i - diaeresis'], | ||
| 149 | ['ð', 'ð', true, 'eth'], | ||
| 150 | ['ñ', 'ñ', true, 'n - tilde'], | ||
| 151 | ['ò', 'ò', true, 'o - grave'], | ||
| 152 | ['ó', 'ó', true, 'o - acute'], | ||
| 153 | ['ô', 'ô', true, 'o - circumflex'], | ||
| 154 | ['õ', 'õ', true, 'o - tilde'], | ||
| 155 | ['ö', 'ö', true, 'o - diaeresis'], | ||
| 156 | ['ø', 'ø', true, 'o slash'], | ||
| 157 | ['œ', 'œ', true, 'ligature oe'], | ||
| 158 | ['š', 'š', true, 's - caron'], | ||
| 159 | ['ù', 'ù', true, 'u - grave'], | ||
| 160 | ['ú', 'ú', true, 'u - acute'], | ||
| 161 | ['û', 'û', true, 'u - circumflex'], | ||
| 162 | ['ü', 'ü', true, 'u - diaeresis'], | ||
| 163 | ['ý', 'ý', true, 'y - acute'], | ||
| 164 | ['þ', 'þ', true, 'thorn'], | ||
| 165 | ['ÿ', 'ÿ', true, 'y - diaeresis'], | ||
| 166 | ['Α', 'Α', true, 'Alpha'], | ||
| 167 | ['Β', 'Β', true, 'Beta'], | ||
| 168 | ['Γ', 'Γ', true, 'Gamma'], | ||
| 169 | ['Δ', 'Δ', true, 'Delta'], | ||
| 170 | ['Ε', 'Ε', true, 'Epsilon'], | ||
| 171 | ['Ζ', 'Ζ', true, 'Zeta'], | ||
| 172 | ['Η', 'Η', true, 'Eta'], | ||
| 173 | ['Θ', 'Θ', true, 'Theta'], | ||
| 174 | ['Ι', 'Ι', true, 'Iota'], | ||
| 175 | ['Κ', 'Κ', true, 'Kappa'], | ||
| 176 | ['Λ', 'Λ', true, 'Lambda'], | ||
| 177 | ['Μ', 'Μ', true, 'Mu'], | ||
| 178 | ['Ν', 'Ν', true, 'Nu'], | ||
| 179 | ['Ξ', 'Ξ', true, 'Xi'], | ||
| 180 | ['Ο', 'Ο', true, 'Omicron'], | ||
| 181 | ['Π', 'Π', true, 'Pi'], | ||
| 182 | ['Ρ', 'Ρ', true, 'Rho'], | ||
| 183 | ['Σ', 'Σ', true, 'Sigma'], | ||
| 184 | ['Τ', 'Τ', true, 'Tau'], | ||
| 185 | ['Υ', 'Υ', true, 'Upsilon'], | ||
| 186 | ['Φ', 'Φ', true, 'Phi'], | ||
| 187 | ['Χ', 'Χ', true, 'Chi'], | ||
| 188 | ['Ψ', 'Ψ', true, 'Psi'], | ||
| 189 | ['Ω', 'Ω', true, 'Omega'], | ||
| 190 | ['α', 'α', true, 'alpha'], | ||
| 191 | ['β', 'β', true, 'beta'], | ||
| 192 | ['γ', 'γ', true, 'gamma'], | ||
| 193 | ['δ', 'δ', true, 'delta'], | ||
| 194 | ['ε', 'ε', true, 'epsilon'], | ||
| 195 | ['ζ', 'ζ', true, 'zeta'], | ||
| 196 | ['η', 'η', true, 'eta'], | ||
| 197 | ['θ', 'θ', true, 'theta'], | ||
| 198 | ['ι', 'ι', true, 'iota'], | ||
| 199 | ['κ', 'κ', true, 'kappa'], | ||
| 200 | ['λ', 'λ', true, 'lambda'], | ||
| 201 | ['μ', 'μ', true, 'mu'], | ||
| 202 | ['ν', 'ν', true, 'nu'], | ||
| 203 | ['ξ', 'ξ', true, 'xi'], | ||
| 204 | ['ο', 'ο', true, 'omicron'], | ||
| 205 | ['π', 'π', true, 'pi'], | ||
| 206 | ['ρ', 'ρ', true, 'rho'], | ||
| 207 | ['ς', 'ς', true, 'final sigma'], | ||
| 208 | ['σ', 'σ', true, 'sigma'], | ||
| 209 | ['τ', 'τ', true, 'tau'], | ||
| 210 | ['υ', 'υ', true, 'upsilon'], | ||
| 211 | ['φ', 'φ', true, 'phi'], | ||
| 212 | ['χ', 'χ', true, 'chi'], | ||
| 213 | ['ψ', 'ψ', true, 'psi'], | ||
| 214 | ['ω', 'ω', true, 'omega'], | ||
| 215 | // symbols | ||
| 216 | ['ℵ', 'ℵ', false,'alef symbol'], | ||
| 217 | ['ϖ', 'ϖ', false,'pi symbol'], | ||
| 218 | ['ℜ', 'ℜ', false,'real part symbol'], | ||
| 219 | ['ϑ','ϑ', false,'theta symbol'], | ||
| 220 | ['ϒ', 'ϒ', false,'upsilon - hook symbol'], | ||
| 221 | ['℘', '℘', false,'Weierstrass p'], | ||
| 222 | ['ℑ', 'ℑ', false,'imaginary part'], | ||
| 223 | // arrows | ||
| 224 | ['←', '←', true, 'leftwards arrow'], | ||
| 225 | ['↑', '↑', true, 'upwards arrow'], | ||
| 226 | ['→', '→', true, 'rightwards arrow'], | ||
| 227 | ['↓', '↓', true, 'downwards arrow'], | ||
| 228 | ['↔', '↔', true, 'left right arrow'], | ||
| 229 | ['↵', '↵', false,'carriage return'], | ||
| 230 | ['⇐', '⇐', false,'leftwards double arrow'], | ||
| 231 | ['⇑', '⇑', false,'upwards double arrow'], | ||
| 232 | ['⇒', '⇒', false,'rightwards double arrow'], | ||
| 233 | ['⇓', '⇓', false,'downwards double arrow'], | ||
| 234 | ['⇔', '⇔', false,'left right double arrow'], | ||
| 235 | ['∴', '∴', false,'therefore'], | ||
| 236 | ['⊂', '⊂', false,'subset of'], | ||
| 237 | ['⊃', '⊃', false,'superset of'], | ||
| 238 | ['⊄', '⊄', false,'not a subset of'], | ||
| 239 | ['⊆', '⊆', false,'subset of or equal to'], | ||
| 240 | ['⊇', '⊇', false,'superset of or equal to'], | ||
| 241 | ['⊕', '⊕', false,'circled plus'], | ||
| 242 | ['⊗', '⊗', false,'circled times'], | ||
| 243 | ['⊥', '⊥', false,'perpendicular'], | ||
| 244 | ['⋅', '⋅', false,'dot operator'], | ||
| 245 | ['⌈', '⌈', false,'left ceiling'], | ||
| 246 | ['⌉', '⌉', false,'right ceiling'], | ||
| 247 | ['⌊', '⌊', false,'left floor'], | ||
| 248 | ['⌋', '⌋', false,'right floor'], | ||
| 249 | ['⟨', '〈', false,'left-pointing angle bracket'], | ||
| 250 | ['⟩', '〉', false,'right-pointing angle bracket'], | ||
| 251 | ['◊', '◊', true,'lozenge'], | ||
| 252 | ['♠', '♠', false,'black spade suit'], | ||
| 253 | ['♣', '♣', true, 'black club suit'], | ||
| 254 | ['♥', '♥', true, 'black heart suit'], | ||
| 255 | ['♦', '♦', true, 'black diamond suit'], | ||
| 256 | [' ', ' ', false,'en space'], | ||
| 257 | [' ', ' ', false,'em space'], | ||
| 258 | [' ', ' ', false,'thin space'], | ||
| 259 | ['‌', '‌', false,'zero width non-joiner'], | ||
| 260 | ['‍', '‍', false,'zero width joiner'], | ||
| 261 | ['‎', '‎', false,'left-to-right mark'], | ||
| 262 | ['‏', '‏', false,'right-to-left mark'], | ||
| 263 | ['­', '­', false,'soft hyphen'] | ||
| 264 | ]; | ||
| 265 | |||
| 266 | tinyMCEPopup.onInit.add(function() { | ||
| 267 | tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); | ||
| 268 | }); | ||
| 269 | |||
| 270 | function renderCharMapHTML() { | ||
| 271 | var charsPerRow = 20, tdWidth=20, tdHeight=20, i; | ||
| 272 | var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">'; | ||
| 273 | var cols=-1; | ||
| 274 | |||
| 275 | for (i=0; i<charmap.length; i++) { | ||
| 276 | if (charmap[i][2]==true) { | ||
| 277 | cols++; | ||
| 278 | html += '' | ||
| 279 | + '<td class="charmap">' | ||
| 280 | + '<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] + '">' | ||
| 281 | + charmap[i][1] | ||
| 282 | + '</a></td>'; | ||
| 283 | if ((cols+1) % charsPerRow == 0) | ||
| 284 | html += '</tr><tr height="' + tdHeight + '">'; | ||
| 285 | } | ||
| 286 | } | ||
| 287 | |||
| 288 | if (cols % charsPerRow > 0) { | ||
| 289 | var padd = charsPerRow - (cols % charsPerRow); | ||
| 290 | for (var i=0; i<padd-1; i++) | ||
| 291 | html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>'; | ||
| 292 | } | ||
| 293 | |||
| 294 | html += '</tr></table>'; | ||
| 295 | |||
| 296 | return html; | ||
| 297 | } | ||
| 298 | |||
| 299 | function insertChar(chr) { | ||
| 300 | tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); | ||
| 301 | |||
| 302 | // Refocus in window | ||
| 303 | if (tinyMCEPopup.isWindow) | ||
| 304 | window.focus(); | ||
| 305 | |||
| 306 | tinyMCEPopup.editor.focus(); | ||
| 307 | tinyMCEPopup.close(); | ||
| 308 | } | ||
| 309 | |||
| 310 | function previewChar(codeA, codeB, codeN) { | ||
| 311 | var elmA = document.getElementById('codeA'); | ||
| 312 | var elmB = document.getElementById('codeB'); | ||
| 313 | var elmV = document.getElementById('codeV'); | ||
| 314 | var elmN = document.getElementById('codeN'); | ||
| 315 | |||
| 316 | if (codeA=='#160;') { | ||
| 317 | elmV.innerHTML = '__'; | ||
| 318 | } else { | ||
| 319 | elmV.innerHTML = '&' + codeA; | ||
| 320 | } | ||
| 321 | |||
| 322 | elmB.innerHTML = '&' + codeA; | ||
| 323 | elmA.innerHTML = '&' + codeB; | ||
| 324 | elmN.innerHTML = codeN; | ||
| 325 | } | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js b/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js new file mode 100755 index 0000000..fd9700f --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js | |||
| @@ -0,0 +1,253 @@ | |||
| 1 | tinyMCEPopup.requireLangPack(); | ||
| 2 | |||
| 3 | var detail = 50, strhex = "0123456789abcdef", i, isMouseDown = false, isMouseOver = false; | ||
| 4 | |||
| 5 | var colors = [ | ||
| 6 | "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033", | ||
| 7 | "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099", | ||
| 8 | "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff", | ||
| 9 | "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033", | ||
| 10 | "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399", | ||
| 11 | "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff", | ||
| 12 | "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333", | ||
| 13 | "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399", | ||
| 14 | "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff", | ||
| 15 | "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633", | ||
| 16 | "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699", | ||
| 17 | "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff", | ||
| 18 | "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633", | ||
| 19 | "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999", | ||
| 20 | "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff", | ||
| 21 | "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933", | ||
| 22 | "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999", | ||
| 23 | "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff", | ||
| 24 | "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33", | ||
| 25 | "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99", | ||
| 26 | "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff", | ||
| 27 | "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33", | ||
| 28 | "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99", | ||
| 29 | "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff", | ||
| 30 | "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33", | ||
| 31 | "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99", | ||
| 32 | "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff" | ||
| 33 | ]; | ||
| 34 | |||
| 35 | var named = { | ||
| 36 | '#F0F8FF':'AliceBlue','#FAEBD7':'AntiqueWhite','#00FFFF':'Aqua','#7FFFD4':'Aquamarine','#F0FFFF':'Azure','#F5F5DC':'Beige', | ||
| 37 | '#FFE4C4':'Bisque','#000000':'Black','#FFEBCD':'BlanchedAlmond','#0000FF':'Blue','#8A2BE2':'BlueViolet','#A52A2A':'Brown', | ||
| 38 | '#DEB887':'BurlyWood','#5F9EA0':'CadetBlue','#7FFF00':'Chartreuse','#D2691E':'Chocolate','#FF7F50':'Coral','#6495ED':'CornflowerBlue', | ||
| 39 | '#FFF8DC':'Cornsilk','#DC143C':'Crimson','#00FFFF':'Cyan','#00008B':'DarkBlue','#008B8B':'DarkCyan','#B8860B':'DarkGoldenRod', | ||
| 40 | '#A9A9A9':'DarkGray','#A9A9A9':'DarkGrey','#006400':'DarkGreen','#BDB76B':'DarkKhaki','#8B008B':'DarkMagenta','#556B2F':'DarkOliveGreen', | ||
| 41 | '#FF8C00':'Darkorange','#9932CC':'DarkOrchid','#8B0000':'DarkRed','#E9967A':'DarkSalmon','#8FBC8F':'DarkSeaGreen','#483D8B':'DarkSlateBlue', | ||
| 42 | '#2F4F4F':'DarkSlateGray','#2F4F4F':'DarkSlateGrey','#00CED1':'DarkTurquoise','#9400D3':'DarkViolet','#FF1493':'DeepPink','#00BFFF':'DeepSkyBlue', | ||
| 43 | '#696969':'DimGray','#696969':'DimGrey','#1E90FF':'DodgerBlue','#B22222':'FireBrick','#FFFAF0':'FloralWhite','#228B22':'ForestGreen', | ||
| 44 | '#FF00FF':'Fuchsia','#DCDCDC':'Gainsboro','#F8F8FF':'GhostWhite','#FFD700':'Gold','#DAA520':'GoldenRod','#808080':'Gray','#808080':'Grey', | ||
| 45 | '#008000':'Green','#ADFF2F':'GreenYellow','#F0FFF0':'HoneyDew','#FF69B4':'HotPink','#CD5C5C':'IndianRed','#4B0082':'Indigo','#FFFFF0':'Ivory', | ||
| 46 | '#F0E68C':'Khaki','#E6E6FA':'Lavender','#FFF0F5':'LavenderBlush','#7CFC00':'LawnGreen','#FFFACD':'LemonChiffon','#ADD8E6':'LightBlue', | ||
| 47 | '#F08080':'LightCoral','#E0FFFF':'LightCyan','#FAFAD2':'LightGoldenRodYellow','#D3D3D3':'LightGray','#D3D3D3':'LightGrey','#90EE90':'LightGreen', | ||
| 48 | '#FFB6C1':'LightPink','#FFA07A':'LightSalmon','#20B2AA':'LightSeaGreen','#87CEFA':'LightSkyBlue','#778899':'LightSlateGray','#778899':'LightSlateGrey', | ||
| 49 | '#B0C4DE':'LightSteelBlue','#FFFFE0':'LightYellow','#00FF00':'Lime','#32CD32':'LimeGreen','#FAF0E6':'Linen','#FF00FF':'Magenta','#800000':'Maroon', | ||
| 50 | '#66CDAA':'MediumAquaMarine','#0000CD':'MediumBlue','#BA55D3':'MediumOrchid','#9370D8':'MediumPurple','#3CB371':'MediumSeaGreen','#7B68EE':'MediumSlateBlue', | ||
| 51 | '#00FA9A':'MediumSpringGreen','#48D1CC':'MediumTurquoise','#C71585':'MediumVioletRed','#191970':'MidnightBlue','#F5FFFA':'MintCream','#FFE4E1':'MistyRose','#FFE4B5':'Moccasin', | ||
| 52 | '#FFDEAD':'NavajoWhite','#000080':'Navy','#FDF5E6':'OldLace','#808000':'Olive','#6B8E23':'OliveDrab','#FFA500':'Orange','#FF4500':'OrangeRed','#DA70D6':'Orchid', | ||
| 53 | '#EEE8AA':'PaleGoldenRod','#98FB98':'PaleGreen','#AFEEEE':'PaleTurquoise','#D87093':'PaleVioletRed','#FFEFD5':'PapayaWhip','#FFDAB9':'PeachPuff', | ||
| 54 | '#CD853F':'Peru','#FFC0CB':'Pink','#DDA0DD':'Plum','#B0E0E6':'PowderBlue','#800080':'Purple','#FF0000':'Red','#BC8F8F':'RosyBrown','#4169E1':'RoyalBlue', | ||
| 55 | '#8B4513':'SaddleBrown','#FA8072':'Salmon','#F4A460':'SandyBrown','#2E8B57':'SeaGreen','#FFF5EE':'SeaShell','#A0522D':'Sienna','#C0C0C0':'Silver', | ||
| 56 | '#87CEEB':'SkyBlue','#6A5ACD':'SlateBlue','#708090':'SlateGray','#708090':'SlateGrey','#FFFAFA':'Snow','#00FF7F':'SpringGreen', | ||
| 57 | '#4682B4':'SteelBlue','#D2B48C':'Tan','#008080':'Teal','#D8BFD8':'Thistle','#FF6347':'Tomato','#40E0D0':'Turquoise','#EE82EE':'Violet', | ||
| 58 | '#F5DEB3':'Wheat','#FFFFFF':'White','#F5F5F5':'WhiteSmoke','#FFFF00':'Yellow','#9ACD32':'YellowGreen' | ||
| 59 | }; | ||
| 60 | |||
| 61 | function init() { | ||
| 62 | var inputColor = convertRGBToHex(tinyMCEPopup.getWindowArg('input_color')); | ||
| 63 | |||
| 64 | tinyMCEPopup.resizeToInnerSize(); | ||
| 65 | |||
| 66 | generatePicker(); | ||
| 67 | |||
| 68 | if (inputColor) { | ||
| 69 | changeFinalColor(inputColor); | ||
| 70 | |||
| 71 | col = convertHexToRGB(inputColor); | ||
| 72 | |||
| 73 | if (col) | ||
| 74 | updateLight(col.r, col.g, col.b); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | function insertAction() { | ||
| 79 | var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func'); | ||
| 80 | |||
| 81 | tinyMCEPopup.restoreSelection(); | ||
| 82 | |||
| 83 | if (f) | ||
| 84 | f(color); | ||
| 85 | |||
| 86 | tinyMCEPopup.close(); | ||
| 87 | } | ||
| 88 | |||
| 89 | function showColor(color, name) { | ||
| 90 | if (name) | ||
| 91 | document.getElementById("colorname").innerHTML = name; | ||
| 92 | |||
| 93 | document.getElementById("preview").style.backgroundColor = color; | ||
| 94 | document.getElementById("color").value = color.toLowerCase(); | ||
| 95 | } | ||
| 96 | |||
| 97 | function convertRGBToHex(col) { | ||
| 98 | var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); | ||
| 99 | |||
| 100 | if (!col) | ||
| 101 | return col; | ||
| 102 | |||
| 103 | var rgb = col.replace(re, "$1,$2,$3").split(','); | ||
| 104 | if (rgb.length == 3) { | ||
| 105 | r = parseInt(rgb[0]).toString(16); | ||
| 106 | g = parseInt(rgb[1]).toString(16); | ||
| 107 | b = parseInt(rgb[2]).toString(16); | ||
| 108 | |||
| 109 | r = r.length == 1 ? '0' + r : r; | ||
| 110 | g = g.length == 1 ? '0' + g : g; | ||
| 111 | b = b.length == 1 ? '0' + b : b; | ||
| 112 | |||
| 113 | return "#" + r + g + b; | ||
| 114 | } | ||
| 115 | |||
| 116 | return col; | ||
| 117 | } | ||
| 118 | |||
| 119 | function convertHexToRGB(col) { | ||
| 120 | if (col.indexOf('#') != -1) { | ||
| 121 | col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); | ||
| 122 | |||
| 123 | r = parseInt(col.substring(0, 2), 16); | ||
| 124 | g = parseInt(col.substring(2, 4), 16); | ||
| 125 | b = parseInt(col.substring(4, 6), 16); | ||
| 126 | |||
| 127 | return {r : r, g : g, b : b}; | ||
| 128 | } | ||
| 129 | |||
| 130 | return null; | ||
| 131 | } | ||
| 132 | |||
| 133 | function generatePicker() { | ||
| 134 | var el = document.getElementById('light'), h = '', i; | ||
| 135 | |||
| 136 | for (i = 0; i < detail; i++){ | ||
| 137 | h += '<div id="gs'+i+'" style="background-color:#000000; width:15px; height:3px; border-style:none; border-width:0px;"' | ||
| 138 | + ' onclick="changeFinalColor(this.style.backgroundColor)"' | ||
| 139 | + ' onmousedown="isMouseDown = true; return false;"' | ||
| 140 | + ' onmouseup="isMouseDown = false;"' | ||
| 141 | + ' onmousemove="if (isMouseDown && isMouseOver) changeFinalColor(this.style.backgroundColor); return false;"' | ||
| 142 | + ' onmouseover="isMouseOver = true;"' | ||
| 143 | + ' onmouseout="isMouseOver = false;"' | ||
| 144 | + '></div>'; | ||
| 145 | } | ||
| 146 | |||
| 147 | el.innerHTML = h; | ||
| 148 | } | ||
| 149 | |||
| 150 | function generateWebColors() { | ||
| 151 | var el = document.getElementById('webcolors'), h = '', i; | ||
| 152 | |||
| 153 | if (el.className == 'generated') | ||
| 154 | return; | ||
| 155 | |||
| 156 | h += '<table border="0" cellspacing="1" cellpadding="0">' | ||
| 157 | + '<tr>'; | ||
| 158 | |||
| 159 | for (i=0; i<colors.length; i++) { | ||
| 160 | h += '<td bgcolor="' + colors[i] + '" width="10" height="10">' | ||
| 161 | + '<a href="javascript:insertAction();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');" style="display:block;width:10px;height:10px;overflow:hidden;">' | ||
| 162 | + '</a></td>'; | ||
| 163 | if ((i+1) % 18 == 0) | ||
| 164 | h += '</tr><tr>'; | ||
| 165 | } | ||
| 166 | |||
| 167 | h += '</table>'; | ||
| 168 | |||
| 169 | el.innerHTML = h; | ||
| 170 | el.className = 'generated'; | ||
| 171 | } | ||
| 172 | |||
| 173 | function generateNamedColors() { | ||
| 174 | var el = document.getElementById('namedcolors'), h = '', n, v, i = 0; | ||
| 175 | |||
| 176 | if (el.className == 'generated') | ||
| 177 | return; | ||
| 178 | |||
| 179 | for (n in named) { | ||
| 180 | v = named[n]; | ||
| 181 | h += '<a href="javascript:insertAction();" onmouseover="showColor(\'' + n + '\',\'' + v + '\');" style="background-color: ' + n + '"><!-- IE --></a>' | ||
| 182 | } | ||
| 183 | |||
| 184 | el.innerHTML = h; | ||
| 185 | el.className = 'generated'; | ||
| 186 | } | ||
| 187 | |||
| 188 | function dechex(n) { | ||
| 189 | return strhex.charAt(Math.floor(n / 16)) + strhex.charAt(n % 16); | ||
| 190 | } | ||
| 191 | |||
| 192 | function computeColor(e) { | ||
| 193 | var x, y, partWidth, partDetail, imHeight, r, g, b, coef, i, finalCoef, finalR, finalG, finalB; | ||
| 194 | |||
| 195 | x = e.offsetX ? e.offsetX : (e.target ? e.clientX - e.target.x : 0); | ||
| 196 | y = e.offsetY ? e.offsetY : (e.target ? e.clientY - e.target.y : 0); | ||
| 197 | |||
| 198 | partWidth = document.getElementById('colors').width / 6; | ||
| 199 | partDetail = detail / 2; | ||
| 200 | imHeight = document.getElementById('colors').height; | ||
| 201 | |||
| 202 | 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; | ||
| 203 | 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); | ||
| 204 | 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); | ||
| 205 | |||
| 206 | coef = (imHeight - y) / imHeight; | ||
| 207 | r = 128 + (r - 128) * coef; | ||
| 208 | g = 128 + (g - 128) * coef; | ||
| 209 | b = 128 + (b - 128) * coef; | ||
| 210 | |||
| 211 | changeFinalColor('#' + dechex(r) + dechex(g) + dechex(b)); | ||
| 212 | updateLight(r, g, b); | ||
| 213 | } | ||
| 214 | |||
| 215 | function updateLight(r, g, b) { | ||
| 216 | var i, partDetail = detail / 2, finalCoef, finalR, finalG, finalB, color; | ||
| 217 | |||
| 218 | for (i=0; i<detail; i++) { | ||
| 219 | if ((i>=0) && (i<partDetail)) { | ||
| 220 | finalCoef = i / partDetail; | ||
| 221 | finalR = dechex(255 - (255 - r) * finalCoef); | ||
| 222 | finalG = dechex(255 - (255 - g) * finalCoef); | ||
| 223 | finalB = dechex(255 - (255 - b) * finalCoef); | ||
| 224 | } else { | ||
| 225 | finalCoef = 2 - i / partDetail; | ||
| 226 | finalR = dechex(r * finalCoef); | ||
| 227 | finalG = dechex(g * finalCoef); | ||
| 228 | finalB = dechex(b * finalCoef); | ||
| 229 | } | ||
| 230 | |||
| 231 | color = finalR + finalG + finalB; | ||
| 232 | |||
| 233 | setCol('gs' + i, '#'+color); | ||
| 234 | } | ||
| 235 | } | ||
| 236 | |||
| 237 | function changeFinalColor(color) { | ||
| 238 | if (color.indexOf('#') == -1) | ||
| 239 | color = convertRGBToHex(color); | ||
| 240 | |||
| 241 | setCol('preview', color); | ||
| 242 | document.getElementById('color').value = color; | ||
| 243 | } | ||
| 244 | |||
| 245 | function setCol(e, c) { | ||
| 246 | try { | ||
| 247 | document.getElementById(e).style.backgroundColor = c; | ||
| 248 | } catch (ex) { | ||
| 249 | // Ignore IE warning | ||
| 250 | } | ||
| 251 | } | ||
| 252 | |||
| 253 | tinyMCEPopup.onInit.add(init); | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/image.js b/public/javascripts/tiny_mce/themes/advanced/js/image.js new file mode 100755 index 0000000..4982ce0 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/image.js | |||
| @@ -0,0 +1,245 @@ | |||
| 1 | var ImageDialog = { | ||
| 2 | preInit : function() { | ||
| 3 | var url; | ||
| 4 | |||
| 5 | tinyMCEPopup.requireLangPack(); | ||
| 6 | |||
| 7 | if (url = tinyMCEPopup.getParam("external_image_list_url")) | ||
| 8 | document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>'); | ||
| 9 | }, | ||
| 10 | |||
| 11 | init : function() { | ||
| 12 | var f = document.forms[0], ed = tinyMCEPopup.editor; | ||
| 13 | |||
| 14 | // Setup browse button | ||
| 15 | document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image'); | ||
| 16 | if (isVisible('srcbrowser')) | ||
| 17 | document.getElementById('src').style.width = '180px'; | ||
| 18 | |||
| 19 | e = ed.selection.getNode(); | ||
| 20 | |||
| 21 | this.fillFileList('image_list', 'tinyMCEImageList'); | ||
| 22 | |||
| 23 | if (e.nodeName == 'IMG') { | ||
| 24 | f.src.value = ed.dom.getAttrib(e, 'src'); | ||
| 25 | f.alt.value = ed.dom.getAttrib(e, 'alt'); | ||
| 26 | f.border.value = this.getAttrib(e, 'border'); | ||
| 27 | f.vspace.value = this.getAttrib(e, 'vspace'); | ||
| 28 | f.hspace.value = this.getAttrib(e, 'hspace'); | ||
| 29 | f.width.value = ed.dom.getAttrib(e, 'width'); | ||
| 30 | f.height.value = ed.dom.getAttrib(e, 'height'); | ||
| 31 | f.insert.value = ed.getLang('update'); | ||
| 32 | this.styleVal = ed.dom.getAttrib(e, 'style'); | ||
| 33 | selectByValue(f, 'image_list', f.src.value); | ||
| 34 | selectByValue(f, 'align', this.getAttrib(e, 'align')); | ||
| 35 | this.updateStyle(); | ||
| 36 | } | ||
| 37 | }, | ||
| 38 | |||
| 39 | fillFileList : function(id, l) { | ||
| 40 | var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; | ||
| 41 | |||
| 42 | l = window[l]; | ||
| 43 | |||
| 44 | if (l && l.length > 0) { | ||
| 45 | lst.options[lst.options.length] = new Option('', ''); | ||
| 46 | |||
| 47 | tinymce.each(l, function(o) { | ||
| 48 | lst.options[lst.options.length] = new Option(o[0], o[1]); | ||
| 49 | }); | ||
| 50 | } else | ||
| 51 | dom.remove(dom.getParent(id, 'tr')); | ||
| 52 | }, | ||
| 53 | |||
| 54 | update : function() { | ||
| 55 | var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el; | ||
| 56 | |||
| 57 | tinyMCEPopup.restoreSelection(); | ||
| 58 | |||
| 59 | if (f.src.value === '') { | ||
| 60 | if (ed.selection.getNode().nodeName == 'IMG') { | ||
| 61 | ed.dom.remove(ed.selection.getNode()); | ||
| 62 | ed.execCommand('mceRepaint'); | ||
| 63 | } | ||
| 64 | |||
| 65 | tinyMCEPopup.close(); | ||
| 66 | return; | ||
| 67 | } | ||
| 68 | |||
| 69 | if (!ed.settings.inline_styles) { | ||
| 70 | args = tinymce.extend(args, { | ||
| 71 | vspace : nl.vspace.value, | ||
| 72 | hspace : nl.hspace.value, | ||
| 73 | border : nl.border.value, | ||
| 74 | align : getSelectValue(f, 'align') | ||
| 75 | }); | ||
| 76 | } else | ||
| 77 | args.style = this.styleVal; | ||
| 78 | |||
| 79 | tinymce.extend(args, { | ||
| 80 | src : f.src.value, | ||
| 81 | alt : f.alt.value, | ||
| 82 | width : f.width.value, | ||
| 83 | height : f.height.value | ||
| 84 | }); | ||
| 85 | |||
| 86 | el = ed.selection.getNode(); | ||
| 87 | |||
| 88 | if (el && el.nodeName == 'IMG') { | ||
| 89 | ed.dom.setAttribs(el, args); | ||
| 90 | } else { | ||
| 91 | ed.execCommand('mceInsertContent', false, '<img id="__mce_tmp" />', {skip_undo : 1}); | ||
| 92 | ed.dom.setAttribs('__mce_tmp', args); | ||
| 93 | ed.dom.setAttrib('__mce_tmp', 'id', ''); | ||
| 94 | ed.undoManager.add(); | ||
| 95 | } | ||
| 96 | |||
| 97 | tinyMCEPopup.close(); | ||
| 98 | }, | ||
| 99 | |||
| 100 | updateStyle : function() { | ||
| 101 | var dom = tinyMCEPopup.dom, st, v, f = document.forms[0]; | ||
| 102 | |||
| 103 | if (tinyMCEPopup.editor.settings.inline_styles) { | ||
| 104 | st = tinyMCEPopup.dom.parseStyle(this.styleVal); | ||
| 105 | |||
| 106 | // Handle align | ||
| 107 | v = getSelectValue(f, 'align'); | ||
| 108 | if (v) { | ||
| 109 | if (v == 'left' || v == 'right') { | ||
| 110 | st['float'] = v; | ||
| 111 | delete st['vertical-align']; | ||
| 112 | } else { | ||
| 113 | st['vertical-align'] = v; | ||
| 114 | delete st['float']; | ||
| 115 | } | ||
| 116 | } else { | ||
| 117 | delete st['float']; | ||
| 118 | delete st['vertical-align']; | ||
| 119 | } | ||
| 120 | |||
| 121 | // Handle border | ||
| 122 | v = f.border.value; | ||
| 123 | if (v || v == '0') { | ||
| 124 | if (v == '0') | ||
| 125 | st['border'] = '0'; | ||
| 126 | else | ||
| 127 | st['border'] = v + 'px solid black'; | ||
| 128 | } else | ||
| 129 | delete st['border']; | ||
| 130 | |||
| 131 | // Handle hspace | ||
| 132 | v = f.hspace.value; | ||
| 133 | if (v) { | ||
| 134 | delete st['margin']; | ||
| 135 | st['margin-left'] = v + 'px'; | ||
| 136 | st['margin-right'] = v + 'px'; | ||
| 137 | } else { | ||
| 138 | delete st['margin-left']; | ||
| 139 | delete st['margin-right']; | ||
| 140 | } | ||
| 141 | |||
| 142 | // Handle vspace | ||
| 143 | v = f.vspace.value; | ||
| 144 | if (v) { | ||
| 145 | delete st['margin']; | ||
| 146 | st['margin-top'] = v + 'px'; | ||
| 147 | st['margin-bottom'] = v + 'px'; | ||
| 148 | } else { | ||
| 149 | delete st['margin-top']; | ||
| 150 | delete st['margin-bottom']; | ||
| 151 | } | ||
| 152 | |||
| 153 | // Merge | ||
| 154 | st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st)); | ||
| 155 | this.styleVal = dom.serializeStyle(st); | ||
| 156 | } | ||
| 157 | }, | ||
| 158 | |||
| 159 | getAttrib : function(e, at) { | ||
| 160 | var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2; | ||
| 161 | |||
| 162 | if (ed.settings.inline_styles) { | ||
| 163 | switch (at) { | ||
| 164 | case 'align': | ||
| 165 | if (v = dom.getStyle(e, 'float')) | ||
| 166 | return v; | ||
| 167 | |||
| 168 | if (v = dom.getStyle(e, 'vertical-align')) | ||
| 169 | return v; | ||
| 170 | |||
| 171 | break; | ||
| 172 | |||
| 173 | case 'hspace': | ||
| 174 | v = dom.getStyle(e, 'margin-left') | ||
| 175 | v2 = dom.getStyle(e, 'margin-right'); | ||
| 176 | if (v && v == v2) | ||
| 177 | return parseInt(v.replace(/[^0-9]/g, '')); | ||
| 178 | |||
| 179 | break; | ||
| 180 | |||
| 181 | case 'vspace': | ||
| 182 | v = dom.getStyle(e, 'margin-top') | ||
| 183 | v2 = dom.getStyle(e, 'margin-bottom'); | ||
| 184 | if (v && v == v2) | ||
| 185 | return parseInt(v.replace(/[^0-9]/g, '')); | ||
| 186 | |||
| 187 | break; | ||
| 188 | |||
| 189 | case 'border': | ||
| 190 | v = 0; | ||
| 191 | |||
| 192 | tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) { | ||
| 193 | sv = dom.getStyle(e, 'border-' + sv + '-width'); | ||
| 194 | |||
| 195 | // False or not the same as prev | ||
| 196 | if (!sv || (sv != v && v !== 0)) { | ||
| 197 | v = 0; | ||
| 198 | return false; | ||
| 199 | } | ||
| 200 | |||
| 201 | if (sv) | ||
| 202 | v = sv; | ||
| 203 | }); | ||
| 204 | |||
| 205 | if (v) | ||
| 206 | return parseInt(v.replace(/[^0-9]/g, '')); | ||
| 207 | |||
| 208 | break; | ||
| 209 | } | ||
| 210 | } | ||
| 211 | |||
| 212 | if (v = dom.getAttrib(e, at)) | ||
| 213 | return v; | ||
| 214 | |||
| 215 | return ''; | ||
| 216 | }, | ||
| 217 | |||
| 218 | resetImageData : function() { | ||
| 219 | var f = document.forms[0]; | ||
| 220 | |||
| 221 | f.width.value = f.height.value = ""; | ||
| 222 | }, | ||
| 223 | |||
| 224 | updateImageData : function() { | ||
| 225 | var f = document.forms[0], t = ImageDialog; | ||
| 226 | |||
| 227 | if (f.width.value == "") | ||
| 228 | f.width.value = t.preloadImg.width; | ||
| 229 | |||
| 230 | if (f.height.value == "") | ||
| 231 | f.height.value = t.preloadImg.height; | ||
| 232 | }, | ||
| 233 | |||
| 234 | getImageData : function() { | ||
| 235 | var f = document.forms[0]; | ||
| 236 | |||
| 237 | this.preloadImg = new Image(); | ||
| 238 | this.preloadImg.onload = this.updateImageData; | ||
| 239 | this.preloadImg.onerror = this.resetImageData; | ||
| 240 | this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value); | ||
| 241 | } | ||
| 242 | }; | ||
| 243 | |||
| 244 | ImageDialog.preInit(); | ||
| 245 | tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog); | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/link.js b/public/javascripts/tiny_mce/themes/advanced/js/link.js new file mode 100755 index 0000000..2974878 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/link.js | |||
| @@ -0,0 +1,155 @@ | |||
| 1 | tinyMCEPopup.requireLangPack(); | ||
| 2 | |||
| 3 | var LinkDialog = { | ||
| 4 | preInit : function() { | ||
| 5 | var url; | ||
| 6 | |||
| 7 | if (url = tinyMCEPopup.getParam("external_link_list_url")) | ||
| 8 | document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>'); | ||
| 9 | }, | ||
| 10 | |||
| 11 | init : function() { | ||
| 12 | var f = document.forms[0], ed = tinyMCEPopup.editor; | ||
| 13 | |||
| 14 | // Setup browse button | ||
| 15 | document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser', 'href', 'file', 'theme_advanced_link'); | ||
| 16 | if (isVisible('hrefbrowser')) | ||
| 17 | document.getElementById('href').style.width = '180px'; | ||
| 18 | |||
| 19 | this.fillClassList('class_list'); | ||
| 20 | this.fillFileList('link_list', 'tinyMCELinkList'); | ||
| 21 | this.fillTargetList('target_list'); | ||
| 22 | |||
| 23 | if (e = ed.dom.getParent(ed.selection.getNode(), 'A')) { | ||
| 24 | f.href.value = ed.dom.getAttrib(e, 'href'); | ||
| 25 | f.linktitle.value = ed.dom.getAttrib(e, 'title'); | ||
| 26 | f.insert.value = ed.getLang('update'); | ||
| 27 | selectByValue(f, 'link_list', f.href.value); | ||
| 28 | selectByValue(f, 'target_list', ed.dom.getAttrib(e, 'target')); | ||
| 29 | selectByValue(f, 'class_list', ed.dom.getAttrib(e, 'class')); | ||
| 30 | } | ||
| 31 | }, | ||
| 32 | |||
| 33 | update : function() { | ||
| 34 | var f = document.forms[0], ed = tinyMCEPopup.editor, e, b; | ||
| 35 | |||
| 36 | tinyMCEPopup.restoreSelection(); | ||
| 37 | e = ed.dom.getParent(ed.selection.getNode(), 'A'); | ||
| 38 | |||
| 39 | // Remove element if there is no href | ||
| 40 | if (!f.href.value) { | ||
| 41 | if (e) { | ||
| 42 | tinyMCEPopup.execCommand("mceBeginUndoLevel"); | ||
| 43 | b = ed.selection.getBookmark(); | ||
| 44 | ed.dom.remove(e, 1); | ||
| 45 | ed.selection.moveToBookmark(b); | ||
| 46 | tinyMCEPopup.execCommand("mceEndUndoLevel"); | ||
| 47 | tinyMCEPopup.close(); | ||
| 48 | return; | ||
| 49 | } | ||
| 50 | } | ||
| 51 | |||
| 52 | tinyMCEPopup.execCommand("mceBeginUndoLevel"); | ||
| 53 | |||
| 54 | // Create new anchor elements | ||
| 55 | if (e == null) { | ||
| 56 | tinyMCEPopup.execCommand("CreateLink", false, "#mce_temp_url#", {skip_undo : 1}); | ||
| 57 | |||
| 58 | tinymce.each(ed.dom.select("a"), function(n) { | ||
| 59 | if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') { | ||
| 60 | e = n; | ||
| 61 | |||
| 62 | ed.dom.setAttribs(e, { | ||
| 63 | href : f.href.value, | ||
| 64 | title : f.linktitle.value, | ||
| 65 | target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null, | ||
| 66 | 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null | ||
| 67 | }); | ||
| 68 | } | ||
| 69 | }); | ||
| 70 | } else { | ||
| 71 | ed.dom.setAttribs(e, { | ||
| 72 | href : f.href.value, | ||
| 73 | title : f.linktitle.value, | ||
| 74 | target : f.target_list ? f.target_list.options[f.target_list.selectedIndex].value : null, | ||
| 75 | 'class' : f.class_list ? f.class_list.options[f.class_list.selectedIndex].value : null | ||
| 76 | }); | ||
| 77 | } | ||
| 78 | |||
| 79 | // Don't move caret if selection was image | ||
| 80 | if (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') { | ||
| 81 | ed.focus(); | ||
| 82 | ed.selection.select(e); | ||
| 83 | ed.selection.collapse(0); | ||
| 84 | tinyMCEPopup.storeSelection(); | ||
| 85 | } | ||
| 86 | |||
| 87 | tinyMCEPopup.execCommand("mceEndUndoLevel"); | ||
| 88 | tinyMCEPopup.close(); | ||
| 89 | }, | ||
| 90 | |||
| 91 | checkPrefix : function(n) { | ||
| 92 | if (n.value && Validator.isEmail(n) && !/^\s*mailto:/i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_email'))) | ||
| 93 | n.value = 'mailto:' + n.value; | ||
| 94 | |||
| 95 | if (/^\s*www./i.test(n.value) && confirm(tinyMCEPopup.getLang('advanced_dlg.link_is_external'))) | ||
| 96 | n.value = 'http://' + n.value; | ||
| 97 | }, | ||
| 98 | |||
| 99 | fillFileList : function(id, l) { | ||
| 100 | var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; | ||
| 101 | |||
| 102 | l = window[l]; | ||
| 103 | |||
| 104 | if (l && l.length > 0) { | ||
| 105 | lst.options[lst.options.length] = new Option('', ''); | ||
| 106 | |||
| 107 | tinymce.each(l, function(o) { | ||
| 108 | lst.options[lst.options.length] = new Option(o[0], o[1]); | ||
| 109 | }); | ||
| 110 | } else | ||
| 111 | dom.remove(dom.getParent(id, 'tr')); | ||
| 112 | }, | ||
| 113 | |||
| 114 | fillClassList : function(id) { | ||
| 115 | var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl; | ||
| 116 | |||
| 117 | if (v = tinyMCEPopup.getParam('theme_advanced_styles')) { | ||
| 118 | cl = []; | ||
| 119 | |||
| 120 | tinymce.each(v.split(';'), function(v) { | ||
| 121 | var p = v.split('='); | ||
| 122 | |||
| 123 | cl.push({'title' : p[0], 'class' : p[1]}); | ||
| 124 | }); | ||
| 125 | } else | ||
| 126 | cl = tinyMCEPopup.editor.dom.getClasses(); | ||
| 127 | |||
| 128 | if (cl.length > 0) { | ||
| 129 | lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); | ||
| 130 | |||
| 131 | tinymce.each(cl, function(o) { | ||
| 132 | lst.options[lst.options.length] = new Option(o.title || o['class'], o['class']); | ||
| 133 | }); | ||
| 134 | } else | ||
| 135 | dom.remove(dom.getParent(id, 'tr')); | ||
| 136 | }, | ||
| 137 | |||
| 138 | fillTargetList : function(id) { | ||
| 139 | var dom = tinyMCEPopup.dom, lst = dom.get(id), v; | ||
| 140 | |||
| 141 | lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('not_set'), ''); | ||
| 142 | lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_same'), '_self'); | ||
| 143 | lst.options[lst.options.length] = new Option(tinyMCEPopup.getLang('advanced_dlg.link_target_blank'), '_blank'); | ||
| 144 | |||
| 145 | if (v = tinyMCEPopup.getParam('theme_advanced_link_targets')) { | ||
| 146 | tinymce.each(v.split(','), function(v) { | ||
| 147 | v = v.split('='); | ||
| 148 | lst.options[lst.options.length] = new Option(v[0], v[1]); | ||
| 149 | }); | ||
| 150 | } | ||
| 151 | } | ||
| 152 | }; | ||
| 153 | |||
| 154 | LinkDialog.preInit(); | ||
| 155 | tinyMCEPopup.onInit.add(LinkDialog.init, LinkDialog); | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js b/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js new file mode 100755 index 0000000..af2231c --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | tinyMCEPopup.requireLangPack(); | ||
| 2 | tinyMCEPopup.onInit.add(onLoadInit); | ||
| 3 | |||
| 4 | function saveContent() { | ||
| 5 | tinyMCEPopup.editor.setContent(document.getElementById('htmlSource').value); | ||
| 6 | tinyMCEPopup.close(); | ||
| 7 | } | ||
| 8 | |||
| 9 | function onLoadInit() { | ||
| 10 | tinyMCEPopup.resizeToInnerSize(); | ||
| 11 | |||
| 12 | // Remove Gecko spellchecking | ||
| 13 | if (tinymce.isGecko) | ||
| 14 | document.body.spellcheck = tinyMCEPopup.editor.getParam("gecko_spellcheck"); | ||
| 15 | |||
| 16 | document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent(); | ||
| 17 | |||
| 18 | if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) { | ||
| 19 | setWrap('soft'); | ||
| 20 | document.getElementById('wraped').checked = true; | ||
| 21 | } | ||
| 22 | |||
| 23 | resizeInputs(); | ||
| 24 | } | ||
| 25 | |||
| 26 | function setWrap(val) { | ||
| 27 | var v, n, s = document.getElementById('htmlSource'); | ||
| 28 | |||
| 29 | s.wrap = val; | ||
| 30 | |||
| 31 | if (!tinymce.isIE) { | ||
| 32 | v = s.value; | ||
| 33 | n = s.cloneNode(false); | ||
| 34 | n.setAttribute("wrap", val); | ||
| 35 | s.parentNode.replaceChild(n, s); | ||
| 36 | n.value = v; | ||
| 37 | } | ||
| 38 | } | ||
| 39 | |||
| 40 | function toggleWordWrap(elm) { | ||
| 41 | if (elm.checked) | ||
| 42 | setWrap('soft'); | ||
| 43 | else | ||
| 44 | setWrap('off'); | ||
| 45 | } | ||
| 46 | |||
| 47 | var wHeight=0, wWidth=0, owHeight=0, owWidth=0; | ||
| 48 | |||
| 49 | function resizeInputs() { | ||
| 50 | var el = document.getElementById('htmlSource'); | ||
| 51 | |||
| 52 | if (!tinymce.isIE) { | ||
| 53 | wHeight = self.innerHeight - 65; | ||
| 54 | wWidth = self.innerWidth - 16; | ||
| 55 | } else { | ||
| 56 | wHeight = document.body.clientHeight - 70; | ||
| 57 | wWidth = document.body.clientWidth - 16; | ||
| 58 | } | ||
| 59 | |||
| 60 | el.style.height = Math.abs(wHeight) + 'px'; | ||
| 61 | el.style.width = Math.abs(wWidth) + 'px'; | ||
| 62 | } | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/langs/en.js b/public/javascripts/tiny_mce/themes/advanced/langs/en.js new file mode 100755 index 0000000..69694b1 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/langs/en.js | |||
| @@ -0,0 +1,62 @@ | |||
| 1 | tinyMCE.addI18n('en.advanced',{ | ||
| 2 | style_select:"Styles", | ||
| 3 | font_size:"Font size", | ||
| 4 | fontdefault:"Font family", | ||
| 5 | block:"Format", | ||
| 6 | paragraph:"Paragraph", | ||
| 7 | div:"Div", | ||
| 8 | address:"Address", | ||
| 9 | pre:"Preformatted", | ||
| 10 | h1:"Heading 1", | ||
| 11 | h2:"Heading 2", | ||
| 12 | h3:"Heading 3", | ||
| 13 | h4:"Heading 4", | ||
| 14 | h5:"Heading 5", | ||
| 15 | h6:"Heading 6", | ||
| 16 | blockquote:"Blockquote", | ||
| 17 | code:"Code", | ||
| 18 | samp:"Code sample", | ||
| 19 | dt:"Definition term ", | ||
| 20 | dd:"Definition description", | ||
| 21 | bold_desc:"Bold (Ctrl+B)", | ||
| 22 | italic_desc:"Italic (Ctrl+I)", | ||
| 23 | underline_desc:"Underline (Ctrl+U)", | ||
| 24 | striketrough_desc:"Strikethrough", | ||
| 25 | justifyleft_desc:"Align left", | ||
| 26 | justifycenter_desc:"Align center", | ||
| 27 | justifyright_desc:"Align right", | ||
| 28 | justifyfull_desc:"Align full", | ||
| 29 | bullist_desc:"Unordered list", | ||
| 30 | numlist_desc:"Ordered list", | ||
| 31 | outdent_desc:"Outdent", | ||
| 32 | indent_desc:"Indent", | ||
| 33 | undo_desc:"Undo (Ctrl+Z)", | ||
| 34 | redo_desc:"Redo (Ctrl+Y)", | ||
| 35 | link_desc:"Insert/edit link", | ||
| 36 | unlink_desc:"Unlink", | ||
| 37 | image_desc:"Insert/edit image", | ||
| 38 | cleanup_desc:"Cleanup messy code", | ||
| 39 | code_desc:"Edit HTML Source", | ||
| 40 | sub_desc:"Subscript", | ||
| 41 | sup_desc:"Superscript", | ||
| 42 | hr_desc:"Insert horizontal ruler", | ||
| 43 | removeformat_desc:"Remove formatting", | ||
| 44 | custom1_desc:"Your custom description here", | ||
| 45 | forecolor_desc:"Select text color", | ||
| 46 | backcolor_desc:"Select background color", | ||
| 47 | charmap_desc:"Insert custom character", | ||
| 48 | visualaid_desc:"Toggle guidelines/invisible elements", | ||
| 49 | anchor_desc:"Insert/edit anchor", | ||
| 50 | cut_desc:"Cut", | ||
| 51 | copy_desc:"Copy", | ||
| 52 | paste_desc:"Paste", | ||
| 53 | image_props_desc:"Image properties", | ||
| 54 | newdocument_desc:"New document", | ||
| 55 | help_desc:"Help", | ||
| 56 | blockquote_desc:"Blockquote", | ||
| 57 | clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\r\nDo you want more information about this issue?", | ||
| 58 | path:"Path", | ||
| 59 | newdocument:"Are you sure you want clear all contents?", | ||
| 60 | toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X", | ||
| 61 | more_colors:"More colors" | ||
| 62 | }); \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js b/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js new file mode 100755 index 0000000..9d124d7 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js | |||
| @@ -0,0 +1,51 @@ | |||
| 1 | tinyMCE.addI18n('en.advanced_dlg',{ | ||
| 2 | about_title:"About TinyMCE", | ||
| 3 | about_general:"About", | ||
| 4 | about_help:"Help", | ||
| 5 | about_license:"License", | ||
| 6 | about_plugins:"Plugins", | ||
| 7 | about_plugin:"Plugin", | ||
| 8 | about_author:"Author", | ||
| 9 | about_version:"Version", | ||
| 10 | about_loaded:"Loaded plugins", | ||
| 11 | anchor_title:"Insert/edit anchor", | ||
| 12 | anchor_name:"Anchor name", | ||
| 13 | code_title:"HTML Source Editor", | ||
| 14 | code_wordwrap:"Word wrap", | ||
| 15 | colorpicker_title:"Select a color", | ||
| 16 | colorpicker_picker_tab:"Picker", | ||
| 17 | colorpicker_picker_title:"Color picker", | ||
| 18 | colorpicker_palette_tab:"Palette", | ||
| 19 | colorpicker_palette_title:"Palette colors", | ||
| 20 | colorpicker_named_tab:"Named", | ||
| 21 | colorpicker_named_title:"Named colors", | ||
| 22 | colorpicker_color:"Color:", | ||
| 23 | colorpicker_name:"Name:", | ||
| 24 | charmap_title:"Select custom character", | ||
| 25 | image_title:"Insert/edit image", | ||
| 26 | image_src:"Image URL", | ||
| 27 | image_alt:"Image description", | ||
| 28 | image_list:"Image list", | ||
| 29 | image_border:"Border", | ||
| 30 | image_dimensions:"Dimensions", | ||
| 31 | image_vspace:"Vertical space", | ||
| 32 | image_hspace:"Horizontal space", | ||
| 33 | image_align:"Alignment", | ||
| 34 | image_align_baseline:"Baseline", | ||
| 35 | image_align_top:"Top", | ||
| 36 | image_align_middle:"Middle", | ||
| 37 | image_align_bottom:"Bottom", | ||
| 38 | image_align_texttop:"Text top", | ||
| 39 | image_align_textbottom:"Text bottom", | ||
| 40 | image_align_left:"Left", | ||
| 41 | image_align_right:"Right", | ||
| 42 | link_title:"Insert/edit link", | ||
| 43 | link_url:"Link URL", | ||
| 44 | link_target:"Target", | ||
| 45 | link_target_same:"Open link in the same window", | ||
| 46 | link_target_blank:"Open link in a new window", | ||
| 47 | link_titlefield:"Title", | ||
| 48 | link_is_email:"The URL you entered seems to be an email address, do you want to add the required mailto: prefix?", | ||
| 49 | link_is_external:"The URL you entered seems to external link, do you want to add the required http:// prefix?", | ||
| 50 | link_list:"Link list" | ||
| 51 | }); \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/link.htm b/public/javascripts/tiny_mce/themes/advanced/link.htm new file mode 100755 index 0000000..286cc92 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/link.htm | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||
| 2 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 3 | <head> | ||
| 4 | <title>{#advanced_dlg.link_title}</title> | ||
| 5 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 6 | <script type="text/javascript" src="../../utils/mctabs.js"></script> | ||
| 7 | <script type="text/javascript" src="../../utils/form_utils.js"></script> | ||
| 8 | <script type="text/javascript" src="../../utils/validate.js"></script> | ||
| 9 | <script type="text/javascript" src="js/link.js"></script> | ||
| 10 | <base target="_self" /> | ||
| 11 | </head> | ||
| 12 | <body id="link" style="display: none"> | ||
| 13 | <form onsubmit="LinkDialog.update();return false;" action="#"> | ||
| 14 | <div class="tabs"> | ||
| 15 | <ul> | ||
| 16 | <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> | ||
| 17 | </ul> | ||
| 18 | </div> | ||
| 19 | |||
| 20 | <div class="panel_wrapper"> | ||
| 21 | <div id="general_panel" class="panel current"> | ||
| 22 | |||
| 23 | <table border="0" cellpadding="4" cellspacing="0"> | ||
| 24 | <tr> | ||
| 25 | <td nowrap="nowrap"><label for="href">{#advanced_dlg.link_url}</label></td> | ||
| 26 | <td><table border="0" cellspacing="0" cellpadding="0"> | ||
| 27 | <tr> | ||
| 28 | <td><input id="href" name="href" type="text" class="mceFocus" value="" style="width: 200px" onchange="LinkDialog.checkPrefix(this);" /></td> | ||
| 29 | <td id="hrefbrowsercontainer"> </td> | ||
| 30 | </tr> | ||
| 31 | </table></td> | ||
| 32 | </tr> | ||
| 33 | <tr> | ||
| 34 | <td><label for="link_list">{#advanced_dlg.link_list}</label></td> | ||
| 35 | <td><select id="link_list" name="link_list" onchange="document.getElementById('href').value=this.options[this.selectedIndex].value;"></select></td> | ||
| 36 | </tr> | ||
| 37 | <tr> | ||
| 38 | <td><label id="targetlistlabel" for="targetlist">{#advanced_dlg.link_target}</label></td> | ||
| 39 | <td><select id="target_list" name="target_list"></select></td> | ||
| 40 | </tr> | ||
| 41 | <tr> | ||
| 42 | <td nowrap="nowrap"><label for="linktitle">{#advanced_dlg.link_titlefield}</label></td> | ||
| 43 | <td><input id="linktitle" name="linktitle" type="text" value="" style="width: 200px" /></td> | ||
| 44 | </tr> | ||
| 45 | <tr> | ||
| 46 | <td><label for="class_list">{#class_name}</label></td> | ||
| 47 | <td><select id="class_list" name="class_list"></select></td> | ||
| 48 | </tr> | ||
| 49 | </table> | ||
| 50 | </div> | ||
| 51 | </div> | ||
| 52 | |||
| 53 | <div class="mceActionPanel"> | ||
| 54 | <div style="float: left"> | ||
| 55 | <input type="submit" id="insert" name="insert" value="{#insert}" /> | ||
| 56 | </div> | ||
| 57 | |||
| 58 | <div style="float: right"> | ||
| 59 | <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||
| 60 | </div> | ||
| 61 | </div> | ||
| 62 | </form> | ||
| 63 | </body> | ||
| 64 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css b/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css new file mode 100755 index 0000000..19da194 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} | ||
| 2 | body {background:#FFF;} | ||
| 3 | body.mceForceColors {background:#FFF; color:#000;} | ||
| 4 | h1 {font-size: 2em} | ||
| 5 | h2 {font-size: 1.5em} | ||
| 6 | h3 {font-size: 1.17em} | ||
| 7 | h4 {font-size: 1em} | ||
| 8 | h5 {font-size: .83em} | ||
| 9 | h6 {font-size: .75em} | ||
| 10 | .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} | ||
| 11 | a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(img/items.gif) no-repeat bottom left;} | ||
| 12 | img.mceItemAnchor {width:12px; height:12px; background:url(img/items.gif) no-repeat;} | ||
| 13 | img {border:0;} | ||
| 14 | table {cursor:default} | ||
| 15 | table td, table th {cursor:text} | ||
| 16 | ins {border-bottom:1px solid green; text-decoration: none; color:green} | ||
| 17 | del {color:red; text-decoration:line-through} | ||
| 18 | cite {border-bottom:1px dashed blue} | ||
| 19 | acronym {border-bottom:1px dotted #CCC; cursor:help} | ||
| 20 | abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help} | ||
| 21 | |||
| 22 | /* IE */ | ||
| 23 | * html body { | ||
| 24 | scrollbar-3dlight-color:#F0F0EE; | ||
| 25 | scrollbar-arrow-color:#676662; | ||
| 26 | scrollbar-base-color:#F0F0EE; | ||
| 27 | scrollbar-darkshadow-color:#DDD; | ||
| 28 | scrollbar-face-color:#E0E0DD; | ||
| 29 | scrollbar-highlight-color:#F0F0EE; | ||
| 30 | scrollbar-shadow-color:#F0F0EE; | ||
| 31 | scrollbar-track-color:#F5F5F5; | ||
| 32 | } | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css b/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css new file mode 100755 index 0000000..2c341aa --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css | |||
| @@ -0,0 +1,114 @@ | |||
| 1 | /* Generic */ | ||
| 2 | body { | ||
| 3 | font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; | ||
| 4 | scrollbar-3dlight-color:#F0F0EE; | ||
| 5 | scrollbar-arrow-color:#676662; | ||
| 6 | scrollbar-base-color:#F0F0EE; | ||
| 7 | scrollbar-darkshadow-color:#DDDDDD; | ||
| 8 | scrollbar-face-color:#E0E0DD; | ||
| 9 | scrollbar-highlight-color:#F0F0EE; | ||
| 10 | scrollbar-shadow-color:#F0F0EE; | ||
| 11 | scrollbar-track-color:#F5F5F5; | ||
| 12 | background:#F0F0EE; | ||
| 13 | padding:0; | ||
| 14 | margin:8px 8px 0 8px; | ||
| 15 | } | ||
| 16 | |||
| 17 | html {background:#F0F0EE;} | ||
| 18 | td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} | ||
| 19 | textarea {resize:none;outline:none;} | ||
| 20 | a:link, a:visited {color:black;} | ||
| 21 | a:hover {color:#2B6FB6;} | ||
| 22 | |||
| 23 | /* Forms */ | ||
| 24 | fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} | ||
| 25 | legend {color:#2B6FB6; font-weight:bold;} | ||
| 26 | label.msg {display:none;} | ||
| 27 | label.invalid {color:#EE0000; display:inline;} | ||
| 28 | input.invalid {border:1px solid #EE0000;} | ||
| 29 | input {background:#FFF; border:1px solid #CCC;} | ||
| 30 | input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} | ||
| 31 | input, select, textarea {border:1px solid #808080;} | ||
| 32 | input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} | ||
| 33 | input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} | ||
| 34 | .input_noborder {border:0;} | ||
| 35 | |||
| 36 | /* Buttons */ | ||
| 37 | #insert, #cancel, input.button, .updateButton { | ||
| 38 | border:0; margin:0; padding:0; | ||
| 39 | font-weight:bold; | ||
| 40 | width:94px; height:26px; | ||
| 41 | background:url(img/buttons.png) 0 -26px; | ||
| 42 | cursor:pointer; | ||
| 43 | padding-bottom:2px; | ||
| 44 | } | ||
| 45 | |||
| 46 | #insert {background:url(img/buttons.png) 0 -52px;} | ||
| 47 | #cancel {background:url(img/buttons.png) 0 0;} | ||
| 48 | |||
| 49 | /* Browse */ | ||
| 50 | a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} | ||
| 51 | .mceOldBoxModel a.browse span {width:22px; height:20px;} | ||
| 52 | a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} | ||
| 53 | a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 54 | a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} | ||
| 55 | a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} | ||
| 56 | .mceOldBoxModel a.pickcolor span {width:21px; height:17px;} | ||
| 57 | a.pickcolor:hover span {background-color:#B2BBD0;} | ||
| 58 | a.pickcolor:hover span.disabled {} | ||
| 59 | |||
| 60 | /* Charmap */ | ||
| 61 | table.charmap {border:1px solid #AAA; text-align:center} | ||
| 62 | 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;} | ||
| 63 | #charmap a {display:block; color:#000; text-decoration:none; border:0} | ||
| 64 | #charmap a:hover {background:#CCC;color:#2B6FB6} | ||
| 65 | #charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} | ||
| 66 | #charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} | ||
| 67 | |||
| 68 | /* Source */ | ||
| 69 | .wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} | ||
| 70 | .mceActionPanel {margin-top:5px;} | ||
| 71 | |||
| 72 | /* Tabs classes */ | ||
| 73 | .tabs {width:100%; height:18px; line-height:normal; background:url(img/tabs.gif) repeat-x 0 -72px;} | ||
| 74 | .tabs ul {margin:0; padding:0; list-style:none;} | ||
| 75 | .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;} | ||
| 76 | .tabs li.current {background:url(img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} | ||
| 77 | .tabs span {float:left; display:block; background:url(img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} | ||
| 78 | .tabs .current span {background:url(img/tabs.gif) no-repeat right -54px;} | ||
| 79 | .tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} | ||
| 80 | .tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} | ||
| 81 | |||
| 82 | /* Panels */ | ||
| 83 | .panel_wrapper div.panel {display:none;} | ||
| 84 | .panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} | ||
| 85 | .panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} | ||
| 86 | |||
| 87 | /* Columns */ | ||
| 88 | .column {float:left;} | ||
| 89 | .properties {width:100%;} | ||
| 90 | .properties .column1 {} | ||
| 91 | .properties .column2 {text-align:left;} | ||
| 92 | |||
| 93 | /* Titles */ | ||
| 94 | h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} | ||
| 95 | h3 {font-size:14px;} | ||
| 96 | .title {font-size:12px; font-weight:bold; color:#2B6FB6;} | ||
| 97 | |||
| 98 | /* Dialog specific */ | ||
| 99 | #link .panel_wrapper, #link div.current {height:125px;} | ||
| 100 | #image .panel_wrapper, #image div.current {height:200px;} | ||
| 101 | #plugintable thead {font-weight:bold; background:#DDD;} | ||
| 102 | #plugintable, #about #plugintable td {border:1px solid #919B9C;} | ||
| 103 | #plugintable {width:96%; margin-top:10px;} | ||
| 104 | #pluginscontainer {height:290px; overflow:auto;} | ||
| 105 | #colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} | ||
| 106 | #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} | ||
| 107 | #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} | ||
| 108 | #colorpicker #light div {overflow:hidden;} | ||
| 109 | #colorpicker #previewblock {float:right; padding-left:10px; height:20px;} | ||
| 110 | #colorpicker .panel_wrapper div.current {height:175px;} | ||
| 111 | #colorpicker #namedcolors {width:150px;} | ||
| 112 | #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} | ||
| 113 | #colorpicker #colornamecontainer {margin-top:5px;} | ||
| 114 | #colorpicker #picker_panel fieldset {margin:auto;width:325px;} \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png new file mode 100755 index 0000000..7dd5841 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif new file mode 100755 index 0000000..2eafd79 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif new file mode 100755 index 0000000..85e31df --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif new file mode 100755 index 0000000..adfdddc --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif new file mode 100755 index 0000000..5bb90fd --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif new file mode 100755 index 0000000..ce4be63 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css b/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css new file mode 100755 index 0000000..230a2ee --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css | |||
| @@ -0,0 +1,214 @@ | |||
| 1 | /* Reset */ | ||
| 2 | .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} | ||
| 3 | .defaultSkin a:hover, .defaultSkin a:link, .defaultSkin a:visited, .defaultSkin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} | ||
| 4 | .defaultSkin table td {vertical-align:middle} | ||
| 5 | |||
| 6 | /* Containers */ | ||
| 7 | .defaultSkin table {background:#F0F0EE} | ||
| 8 | .defaultSkin iframe {display:block; background:#FFF} | ||
| 9 | .defaultSkin .mceToolbar {height:26px} | ||
| 10 | .defaultSkin .mceLeft {text-align:left} | ||
| 11 | .defaultSkin .mceRight {text-align:right} | ||
| 12 | |||
| 13 | /* External */ | ||
| 14 | .defaultSkin .mceExternalToolbar {position:absolute; border:1px solid #CCC; border-bottom:0; display:none;} | ||
| 15 | .defaultSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;} | ||
| 16 | .defaultSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} | ||
| 17 | |||
| 18 | /* Layout */ | ||
| 19 | .defaultSkin table.mceLayout {border:0; border-left:1px solid #CCC; border-right:1px solid #CCC} | ||
| 20 | .defaultSkin table.mceLayout tr.mceFirst td {border-top:1px solid #CCC} | ||
| 21 | .defaultSkin table.mceLayout tr.mceLast td {border-bottom:1px solid #CCC} | ||
| 22 | .defaultSkin table.mceToolbar, .defaultSkin tr.mceFirst .mceToolbar tr td, .defaultSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0;} | ||
| 23 | .defaultSkin td.mceToolbar {padding-top:1px; vertical-align:top} | ||
| 24 | .defaultSkin .mceIframeContainer {border-top:1px solid #CCC; border-bottom:1px solid #CCC} | ||
| 25 | .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} | ||
| 26 | .defaultSkin .mceStatusbar div {float:left; margin:2px} | ||
| 27 | .defaultSkin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize} | ||
| 28 | .defaultSkin .mceStatusbar a:hover {text-decoration:underline} | ||
| 29 | .defaultSkin table.mceToolbar {margin-left:3px} | ||
| 30 | .defaultSkin span.mceIcon, .defaultSkin img.mceIcon {display:block; width:20px; height:20px} | ||
| 31 | .defaultSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} | ||
| 32 | .defaultSkin td.mceCenter {text-align:center;} | ||
| 33 | .defaultSkin td.mceCenter table {margin:0 auto; text-align:left;} | ||
| 34 | .defaultSkin td.mceRight table {margin:0 0 0 auto;} | ||
| 35 | |||
| 36 | /* Button */ | ||
| 37 | .defaultSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px; margin-right:1px} | ||
| 38 | .defaultSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} | ||
| 39 | .defaultSkin a.mceButtonActive, .defaultSkin a.mceButtonSelected {border:1px solid #0A246A; background-color:#C2CBE0} | ||
| 40 | .defaultSkin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 41 | .defaultSkin .mceButtonLabeled {width:auto} | ||
| 42 | .defaultSkin .mceButtonLabeled span.mceIcon {float:left} | ||
| 43 | .defaultSkin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} | ||
| 44 | .defaultSkin .mceButtonDisabled .mceButtonLabel {color:#888} | ||
| 45 | |||
| 46 | /* Separator */ | ||
| 47 | .defaultSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:2px 2px 0 4px} | ||
| 48 | |||
| 49 | /* ListBox */ | ||
| 50 | .defaultSkin .mceListBox {direction:ltr} | ||
| 51 | .defaultSkin .mceListBox, .defaultSkin .mceListBox a {display:block} | ||
| 52 | .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} | ||
| 53 | .defaultSkin .mceListBox .mceOpen {width:9px; height:20px; background:url(../../img/icons.gif) -741px 0; margin-right:2px; border:1px solid #CCC;} | ||
| 54 | .defaultSkin table.mceListBoxEnabled:hover .mceText, .defaultSkin .mceListBoxHover .mceText, .defaultSkin .mceListBoxSelected .mceText {border:1px solid #A2ABC0; border-right:0; background:#FFF} | ||
| 55 | .defaultSkin table.mceListBoxEnabled:hover .mceOpen, .defaultSkin .mceListBoxHover .mceOpen, .defaultSkin .mceListBoxSelected .mceOpen {background-color:#FFF; border:1px solid #A2ABC0} | ||
| 56 | .defaultSkin .mceListBoxDisabled a.mceText {color:gray; background-color:transparent;} | ||
| 57 | .defaultSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden} | ||
| 58 | .defaultSkin .mceOldBoxModel .mceListBox .mceText {height:22px} | ||
| 59 | .defaultSkin .mceOldBoxModel .mceListBox .mceOpen {width:11px; height:22px;} | ||
| 60 | .defaultSkin select.mceNativeListBox {font-family:'MS Sans Serif',sans-serif,Verdana,Arial; font-size:7pt; background:#F0F0EE; border:1px solid gray; margin-right:2px;} | ||
| 61 | |||
| 62 | /* SplitButton */ | ||
| 63 | .defaultSkin .mceSplitButton {width:32px; height:20px; direction:ltr} | ||
| 64 | .defaultSkin .mceSplitButton a, .defaultSkin .mceSplitButton span {height:20px; display:block} | ||
| 65 | .defaultSkin .mceSplitButton a.mceAction {width:20px; border:1px solid #F0F0EE; border-right:0;} | ||
| 66 | .defaultSkin .mceSplitButton span.mceAction {width:20px; background:url(../../img/icons.gif) 20px 20px;} | ||
| 67 | .defaultSkin .mceSplitButton a.mceOpen {width:9px; background:url(../../img/icons.gif) -741px 0; border:1px solid #F0F0EE;} | ||
| 68 | .defaultSkin .mceSplitButton span.mceOpen {display:none} | ||
| 69 | .defaultSkin table.mceSplitButtonEnabled:hover a.mceAction, .defaultSkin .mceSplitButtonHover a.mceAction, .defaultSkin .mceSplitButtonSelected a.mceAction {border:1px solid #0A246A; border-right:0; background-color:#B2BBD0} | ||
| 70 | .defaultSkin table.mceSplitButtonEnabled:hover a.mceOpen, .defaultSkin .mceSplitButtonHover a.mceOpen, .defaultSkin .mceSplitButtonSelected a.mceOpen {background-color:#B2BBD0; border:1px solid #0A246A;} | ||
| 71 | .defaultSkin .mceSplitButtonDisabled .mceAction, .defaultSkin .mceSplitButtonDisabled a.mceOpen {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 72 | .defaultSkin .mceSplitButtonActive a.mceAction {border:1px solid #0A246A; background-color:#C2CBE0} | ||
| 73 | .defaultSkin .mceSplitButtonActive a.mceOpen {border-left:0;} | ||
| 74 | |||
| 75 | /* ColorSplitButton */ | ||
| 76 | .defaultSkin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} | ||
| 77 | .defaultSkin .mceColorSplitMenu td {padding:2px} | ||
| 78 | .defaultSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} | ||
| 79 | .defaultSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} | ||
| 80 | .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} | ||
| 81 | .defaultSkin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} | ||
| 82 | .defaultSkin a.mceMoreColors:hover {border:1px solid #0A246A} | ||
| 83 | .defaultSkin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a} | ||
| 84 | .defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px} | ||
| 85 | |||
| 86 | /* Menu */ | ||
| 87 | .defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8} | ||
| 88 | .defaultSkin .mceNoIcons span.mceIcon {width:0;} | ||
| 89 | .defaultSkin .mceNoIcons a .mceText {padding-left:10px} | ||
| 90 | .defaultSkin .mceMenu table {background:#FFF} | ||
| 91 | .defaultSkin .mceMenu a, .defaultSkin .mceMenu span, .defaultSkin .mceMenu {display:block} | ||
| 92 | .defaultSkin .mceMenu td {height:20px} | ||
| 93 | .defaultSkin .mceMenu a {position:relative;padding:3px 0 4px 0} | ||
| 94 | .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} | ||
| 95 | .defaultSkin .mceMenu span.mceText, .defaultSkin .mceMenu .mcePreview {font-size:11px} | ||
| 96 | .defaultSkin .mceMenu pre.mceText {font-family:Monospace} | ||
| 97 | .defaultSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} | ||
| 98 | .defaultSkin .mceMenu .mceMenuItemEnabled a:hover, .defaultSkin .mceMenu .mceMenuItemActive {background-color:#dbecf3} | ||
| 99 | .defaultSkin td.mceMenuItemSeparator {background:#DDD; height:1px} | ||
| 100 | .defaultSkin .mceMenuItemTitle a {border:0; background:#EEE; border-bottom:1px solid #DDD} | ||
| 101 | .defaultSkin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} | ||
| 102 | .defaultSkin .mceMenuItemDisabled .mceText {color:#888} | ||
| 103 | .defaultSkin .mceMenuItemSelected .mceIcon {background:url(img/menu_check.gif)} | ||
| 104 | .defaultSkin .mceNoIcons .mceMenuItemSelected a {background:url(img/menu_arrow.gif) no-repeat -6px center} | ||
| 105 | .defaultSkin .mceMenu span.mceMenuLine {display:none} | ||
| 106 | .defaultSkin .mceMenuItemSub a {background:url(img/menu_arrow.gif) no-repeat top right;} | ||
| 107 | |||
| 108 | /* Progress,Resize */ | ||
| 109 | .defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF} | ||
| 110 | .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} | ||
| 111 | .defaultSkin .mcePlaceHolder {border:1px dotted gray} | ||
| 112 | |||
| 113 | /* Formats */ | ||
| 114 | .defaultSkin .mce_formatPreview a {font-size:10px} | ||
| 115 | .defaultSkin .mce_p span.mceText {} | ||
| 116 | .defaultSkin .mce_address span.mceText {font-style:italic} | ||
| 117 | .defaultSkin .mce_pre span.mceText {font-family:monospace} | ||
| 118 | .defaultSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} | ||
| 119 | .defaultSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} | ||
| 120 | .defaultSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} | ||
| 121 | .defaultSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} | ||
| 122 | .defaultSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} | ||
| 123 | .defaultSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} | ||
| 124 | |||
| 125 | /* Theme */ | ||
| 126 | .defaultSkin span.mce_bold {background-position:0 0} | ||
| 127 | .defaultSkin span.mce_italic {background-position:-60px 0} | ||
| 128 | .defaultSkin span.mce_underline {background-position:-140px 0} | ||
| 129 | .defaultSkin span.mce_strikethrough {background-position:-120px 0} | ||
| 130 | .defaultSkin span.mce_undo {background-position:-160px 0} | ||
| 131 | .defaultSkin span.mce_redo {background-position:-100px 0} | ||
| 132 | .defaultSkin span.mce_cleanup {background-position:-40px 0} | ||
| 133 | .defaultSkin span.mce_bullist {background-position:-20px 0} | ||
| 134 | .defaultSkin span.mce_numlist {background-position:-80px 0} | ||
| 135 | .defaultSkin span.mce_justifyleft {background-position:-460px 0} | ||
| 136 | .defaultSkin span.mce_justifyright {background-position:-480px 0} | ||
| 137 | .defaultSkin span.mce_justifycenter {background-position:-420px 0} | ||
| 138 | .defaultSkin span.mce_justifyfull {background-position:-440px 0} | ||
| 139 | .defaultSkin span.mce_anchor {background-position:-200px 0} | ||
| 140 | .defaultSkin span.mce_indent {background-position:-400px 0} | ||
| 141 | .defaultSkin span.mce_outdent {background-position:-540px 0} | ||
| 142 | .defaultSkin span.mce_link {background-position:-500px 0} | ||
| 143 | .defaultSkin span.mce_unlink {background-position:-640px 0} | ||
| 144 | .defaultSkin span.mce_sub {background-position:-600px 0} | ||
| 145 | .defaultSkin span.mce_sup {background-position:-620px 0} | ||
| 146 | .defaultSkin span.mce_removeformat {background-position:-580px 0} | ||
| 147 | .defaultSkin span.mce_newdocument {background-position:-520px 0} | ||
| 148 | .defaultSkin span.mce_image {background-position:-380px 0} | ||
| 149 | .defaultSkin span.mce_help {background-position:-340px 0} | ||
| 150 | .defaultSkin span.mce_code {background-position:-260px 0} | ||
| 151 | .defaultSkin span.mce_hr {background-position:-360px 0} | ||
| 152 | .defaultSkin span.mce_visualaid {background-position:-660px 0} | ||
| 153 | .defaultSkin span.mce_charmap {background-position:-240px 0} | ||
| 154 | .defaultSkin span.mce_paste {background-position:-560px 0} | ||
| 155 | .defaultSkin span.mce_copy {background-position:-700px 0} | ||
| 156 | .defaultSkin span.mce_cut {background-position:-680px 0} | ||
| 157 | .defaultSkin span.mce_blockquote {background-position:-220px 0} | ||
| 158 | .defaultSkin .mce_forecolor span.mceAction {background-position:-720px 0} | ||
| 159 | .defaultSkin .mce_backcolor span.mceAction {background-position:-760px 0} | ||
| 160 | .defaultSkin span.mce_forecolorpicker {background-position:-720px 0} | ||
| 161 | .defaultSkin span.mce_backcolorpicker {background-position:-760px 0} | ||
| 162 | |||
| 163 | /* Plugins */ | ||
| 164 | .defaultSkin span.mce_advhr {background-position:-0px -20px} | ||
| 165 | .defaultSkin span.mce_ltr {background-position:-20px -20px} | ||
| 166 | .defaultSkin span.mce_rtl {background-position:-40px -20px} | ||
| 167 | .defaultSkin span.mce_emotions {background-position:-60px -20px} | ||
| 168 | .defaultSkin span.mce_fullpage {background-position:-80px -20px} | ||
| 169 | .defaultSkin span.mce_fullscreen {background-position:-100px -20px} | ||
| 170 | .defaultSkin span.mce_iespell {background-position:-120px -20px} | ||
| 171 | .defaultSkin span.mce_insertdate {background-position:-140px -20px} | ||
| 172 | .defaultSkin span.mce_inserttime {background-position:-160px -20px} | ||
| 173 | .defaultSkin span.mce_absolute {background-position:-180px -20px} | ||
| 174 | .defaultSkin span.mce_backward {background-position:-200px -20px} | ||
| 175 | .defaultSkin span.mce_forward {background-position:-220px -20px} | ||
| 176 | .defaultSkin span.mce_insert_layer {background-position:-240px -20px} | ||
| 177 | .defaultSkin span.mce_insertlayer {background-position:-260px -20px} | ||
| 178 | .defaultSkin span.mce_movebackward {background-position:-280px -20px} | ||
| 179 | .defaultSkin span.mce_moveforward {background-position:-300px -20px} | ||
| 180 | .defaultSkin span.mce_media {background-position:-320px -20px} | ||
| 181 | .defaultSkin span.mce_nonbreaking {background-position:-340px -20px} | ||
| 182 | .defaultSkin span.mce_pastetext {background-position:-360px -20px} | ||
| 183 | .defaultSkin span.mce_pasteword {background-position:-380px -20px} | ||
| 184 | .defaultSkin span.mce_selectall {background-position:-400px -20px} | ||
| 185 | .defaultSkin span.mce_preview {background-position:-420px -20px} | ||
| 186 | .defaultSkin span.mce_print {background-position:-440px -20px} | ||
| 187 | .defaultSkin span.mce_cancel {background-position:-460px -20px} | ||
| 188 | .defaultSkin span.mce_save {background-position:-480px -20px} | ||
| 189 | .defaultSkin span.mce_replace {background-position:-500px -20px} | ||
| 190 | .defaultSkin span.mce_search {background-position:-520px -20px} | ||
| 191 | .defaultSkin span.mce_styleprops {background-position:-560px -20px} | ||
| 192 | .defaultSkin span.mce_table {background-position:-580px -20px} | ||
| 193 | .defaultSkin span.mce_cell_props {background-position:-600px -20px} | ||
| 194 | .defaultSkin span.mce_delete_table {background-position:-620px -20px} | ||
| 195 | .defaultSkin span.mce_delete_col {background-position:-640px -20px} | ||
| 196 | .defaultSkin span.mce_delete_row {background-position:-660px -20px} | ||
| 197 | .defaultSkin span.mce_col_after {background-position:-680px -20px} | ||
| 198 | .defaultSkin span.mce_col_before {background-position:-700px -20px} | ||
| 199 | .defaultSkin span.mce_row_after {background-position:-720px -20px} | ||
| 200 | .defaultSkin span.mce_row_before {background-position:-740px -20px} | ||
| 201 | .defaultSkin span.mce_merge_cells {background-position:-760px -20px} | ||
| 202 | .defaultSkin span.mce_table_props {background-position:-980px -20px} | ||
| 203 | .defaultSkin span.mce_row_props {background-position:-780px -20px} | ||
| 204 | .defaultSkin span.mce_split_cells {background-position:-800px -20px} | ||
| 205 | .defaultSkin span.mce_template {background-position:-820px -20px} | ||
| 206 | .defaultSkin span.mce_visualchars {background-position:-840px -20px} | ||
| 207 | .defaultSkin span.mce_abbr {background-position:-860px -20px} | ||
| 208 | .defaultSkin span.mce_acronym {background-position:-880px -20px} | ||
| 209 | .defaultSkin span.mce_attribs {background-position:-900px -20px} | ||
| 210 | .defaultSkin span.mce_cite {background-position:-920px -20px} | ||
| 211 | .defaultSkin span.mce_del {background-position:-940px -20px} | ||
| 212 | .defaultSkin span.mce_ins {background-position:-960px -20px} | ||
| 213 | .defaultSkin span.mce_pagebreak {background-position:0 -40px} | ||
| 214 | .defaultSkin .mce_spellchecker span.mceAction {background-position:-540px -20px} | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css new file mode 100755 index 0000000..b8431d1 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | body, td, pre {color:#000; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; margin:8px;} | ||
| 2 | body {background:#FFF;} | ||
| 3 | body.mceForceColors {background:#FFF; color:#000;} | ||
| 4 | h1 {font-size: 2em} | ||
| 5 | h2 {font-size: 1.5em} | ||
| 6 | h3 {font-size: 1.17em} | ||
| 7 | h4 {font-size: 1em} | ||
| 8 | h5 {font-size: .83em} | ||
| 9 | h6 {font-size: .75em} | ||
| 10 | .mceItemTable, .mceItemTable td, .mceItemTable th, .mceItemTable caption, .mceItemVisualAid {border: 1px dashed #BBB;} | ||
| 11 | a.mceItemAnchor {width:12px; line-height:6px; overflow:hidden; padding-left:12px; background:url(../default/img/items.gif) no-repeat bottom left;} | ||
| 12 | img.mceItemAnchor {width:12px; height:12px; background:url(../default/img/items.gif) no-repeat;} | ||
| 13 | img {border:0;} | ||
| 14 | table {cursor:default} | ||
| 15 | table td, table th {cursor:text} | ||
| 16 | ins {border-bottom:1px solid green; text-decoration: none; color:green} | ||
| 17 | del {color:red; text-decoration:line-through} | ||
| 18 | cite {border-bottom:1px dashed blue} | ||
| 19 | acronym {border-bottom:1px dotted #CCC; cursor:help} | ||
| 20 | abbr, html\:abbr {border-bottom:1px dashed #CCC; cursor:help} | ||
| 21 | |||
| 22 | /* IE */ | ||
| 23 | * html body { | ||
| 24 | scrollbar-3dlight-color:#F0F0EE; | ||
| 25 | scrollbar-arrow-color:#676662; | ||
| 26 | scrollbar-base-color:#F0F0EE; | ||
| 27 | scrollbar-darkshadow-color:#DDD; | ||
| 28 | scrollbar-face-color:#E0E0DD; | ||
| 29 | scrollbar-highlight-color:#F0F0EE; | ||
| 30 | scrollbar-shadow-color:#F0F0EE; | ||
| 31 | scrollbar-track-color:#F5F5F5; | ||
| 32 | } | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css new file mode 100755 index 0000000..8d288e3 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css | |||
| @@ -0,0 +1,113 @@ | |||
| 1 | /* Generic */ | ||
| 2 | body { | ||
| 3 | font-family:Verdana, Arial, Helvetica, sans-serif; font-size:11px; | ||
| 4 | scrollbar-3dlight-color:#F0F0EE; | ||
| 5 | scrollbar-arrow-color:#676662; | ||
| 6 | scrollbar-base-color:#F0F0EE; | ||
| 7 | scrollbar-darkshadow-color:#DDDDDD; | ||
| 8 | scrollbar-face-color:#E0E0DD; | ||
| 9 | scrollbar-highlight-color:#F0F0EE; | ||
| 10 | scrollbar-shadow-color:#F0F0EE; | ||
| 11 | scrollbar-track-color:#F5F5F5; | ||
| 12 | background:#F0F0EE; | ||
| 13 | padding:0; | ||
| 14 | margin:8px 8px 0 8px; | ||
| 15 | } | ||
| 16 | |||
| 17 | html {background:#F0F0EE;} | ||
| 18 | td {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} | ||
| 19 | textarea {resize:none;outline:none;} | ||
| 20 | a:link, a:visited {color:black;} | ||
| 21 | a:hover {color:#2B6FB6;} | ||
| 22 | |||
| 23 | /* Forms */ | ||
| 24 | fieldset {margin:0; padding:4px; border:1px solid #919B9C; font-family:Verdana, Arial; font-size:10px;} | ||
| 25 | legend {color:#2B6FB6; font-weight:bold;} | ||
| 26 | label.msg {display:none;} | ||
| 27 | label.invalid {color:#EE0000; display:inline;} | ||
| 28 | input.invalid {border:1px solid #EE0000;} | ||
| 29 | input {background:#FFF; border:1px solid #CCC;} | ||
| 30 | input, select, textarea {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} | ||
| 31 | input, select, textarea {border:1px solid #808080;} | ||
| 32 | input.radio {border:1px none #000000; background:transparent; vertical-align:middle;} | ||
| 33 | input.checkbox {border:1px none #000000; background:transparent; vertical-align:middle;} | ||
| 34 | .input_noborder {border:0;} | ||
| 35 | |||
| 36 | /* Buttons */ | ||
| 37 | #insert, #cancel, input.button, .updateButton { | ||
| 38 | border:0; margin:0; padding:0; | ||
| 39 | font-weight:bold; | ||
| 40 | width:94px; height:26px; | ||
| 41 | background:url(../default/img/buttons.png) 0 -26px; | ||
| 42 | cursor:pointer; | ||
| 43 | padding-bottom:2px; | ||
| 44 | } | ||
| 45 | |||
| 46 | #insert {background:url(../default/img/buttons.png) 0 -52px;} | ||
| 47 | #cancel {background:url(../default/img/buttons.png) 0 0;} | ||
| 48 | |||
| 49 | /* Browse */ | ||
| 50 | a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;} | ||
| 51 | .mceOldBoxModel a.browse span {width:22px; height:20px;} | ||
| 52 | a.browse:hover span {border:1px solid #0A246A; background-color:#B2BBD0;} | ||
| 53 | a.browse span.disabled {border:1px solid white; opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 54 | a.browse:hover span.disabled {border:1px solid white; background-color:transparent;} | ||
| 55 | a.pickcolor span {display:block; width:20px; height:16px; background:url(../../img/icons.gif) -840px 0; margin-left:2px;} | ||
| 56 | .mceOldBoxModel a.pickcolor span {width:21px; height:17px;} | ||
| 57 | a.pickcolor:hover span {background-color:#B2BBD0;} | ||
| 58 | a.pickcolor:hover span.disabled {} | ||
| 59 | |||
| 60 | /* Charmap */ | ||
| 61 | table.charmap {border:1px solid #AAA; text-align:center} | ||
| 62 | 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;} | ||
| 63 | #charmap a {display:block; color:#000; text-decoration:none; border:0} | ||
| 64 | #charmap a:hover {background:#CCC;color:#2B6FB6} | ||
| 65 | #charmap #codeN {font-size:10px; font-family:Arial,Helvetica,sans-serif; text-align:center} | ||
| 66 | #charmap #codeV {font-size:40px; height:80px; border:1px solid #AAA; text-align:center} | ||
| 67 | |||
| 68 | /* Source */ | ||
| 69 | .wordWrapCode {vertical-align:middle; border:1px none #000000; background:transparent;} | ||
| 70 | .mceActionPanel {margin-top:5px;} | ||
| 71 | |||
| 72 | /* Tabs classes */ | ||
| 73 | .tabs {width:100%; height:18px; line-height:normal; background:url(../default/img/tabs.gif) repeat-x 0 -72px;} | ||
| 74 | .tabs ul {margin:0; padding:0; list-style:none;} | ||
| 75 | .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;} | ||
| 76 | .tabs li.current {background:url(../default/img/tabs.gif) no-repeat 0 -18px; margin-right:2px;} | ||
| 77 | .tabs span {float:left; display:block; background:url(../default/img/tabs.gif) no-repeat right -36px; padding:0px 10px 0 0;} | ||
| 78 | .tabs .current span {background:url(../default/img/tabs.gif) no-repeat right -54px;} | ||
| 79 | .tabs a {text-decoration:none; font-family:Verdana, Arial; font-size:10px;} | ||
| 80 | .tabs a:link, .tabs a:visited, .tabs a:hover {color:black;} | ||
| 81 | |||
| 82 | /* Panels */ | ||
| 83 | .panel_wrapper div.panel {display:none;} | ||
| 84 | .panel_wrapper div.current {display:block; width:100%; height:300px; overflow:visible;} | ||
| 85 | .panel_wrapper {border:1px solid #919B9C; border-top:0px; padding:10px; padding-top:5px; clear:both; background:white;} | ||
| 86 | |||
| 87 | /* Columns */ | ||
| 88 | .column {float:left;} | ||
| 89 | .properties {width:100%;} | ||
| 90 | .properties .column1 {} | ||
| 91 | .properties .column2 {text-align:left;} | ||
| 92 | |||
| 93 | /* Titles */ | ||
| 94 | h1, h2, h3, h4 {color:#2B6FB6; margin:0; padding:0; padding-top:5px;} | ||
| 95 | h3 {font-size:14px;} | ||
| 96 | .title {font-size:12px; font-weight:bold; color:#2B6FB6;} | ||
| 97 | |||
| 98 | /* Dialog specific */ | ||
| 99 | #link .panel_wrapper, #link div.current {height:125px;} | ||
| 100 | #image .panel_wrapper, #image div.current {height:200px;} | ||
| 101 | #plugintable thead {font-weight:bold; background:#DDD;} | ||
| 102 | #plugintable, #about #plugintable td {border:1px solid #919B9C;} | ||
| 103 | #plugintable {width:96%; margin-top:10px;} | ||
| 104 | #pluginscontainer {height:290px; overflow:auto;} | ||
| 105 | #colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} | ||
| 106 | #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} | ||
| 107 | #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} | ||
| 108 | #colorpicker #light div {overflow:hidden;} | ||
| 109 | #colorpicker #previewblock {float:right; padding-left:10px; height:20px;} | ||
| 110 | #colorpicker .panel_wrapper div.current {height:175px;} | ||
| 111 | #colorpicker #namedcolors {width:150px;} | ||
| 112 | #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} | ||
| 113 | #colorpicker #colornamecontainer {margin-top:5px;} | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png new file mode 100755 index 0000000..12cfb41 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png new file mode 100755 index 0000000..8996c74 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png new file mode 100755 index 0000000..bd5d255 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css new file mode 100755 index 0000000..c10a3f0 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css | |||
| @@ -0,0 +1,215 @@ | |||
| 1 | /* Reset */ | ||
| 2 | .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} | ||
| 3 | .o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000} | ||
| 4 | .o2k7Skin table td {vertical-align:middle} | ||
| 5 | |||
| 6 | /* Containers */ | ||
| 7 | .o2k7Skin table {background:#E5EFFD} | ||
| 8 | .o2k7Skin iframe {display:block; background:#FFF} | ||
| 9 | .o2k7Skin .mceToolbar {height:26px} | ||
| 10 | |||
| 11 | /* External */ | ||
| 12 | .o2k7Skin .mceExternalToolbar {position:absolute; border:1px solid #ABC6DD; border-bottom:0; display:none} | ||
| 13 | .o2k7Skin .mceExternalToolbar td.mceToolbar {padding-right:13px;} | ||
| 14 | .o2k7Skin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0} | ||
| 15 | |||
| 16 | /* Layout */ | ||
| 17 | .o2k7Skin table.mceLayout {border:0; border-left:1px solid #ABC6DD; border-right:1px solid #ABC6DD} | ||
| 18 | .o2k7Skin table.mceLayout tr.mceFirst td {border-top:1px solid #ABC6DD} | ||
| 19 | .o2k7Skin table.mceLayout tr.mceLast td {border-bottom:1px solid #ABC6DD} | ||
| 20 | .o2k7Skin table.mceToolbar, .o2k7Skin tr.mceFirst .mceToolbar tr td, .o2k7Skin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0} | ||
| 21 | .o2k7Skin .mceIframeContainer {border-top:1px solid #ABC6DD; border-bottom:1px solid #ABC6DD} | ||
| 22 | .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} | ||
| 23 | .o2k7Skin .mceStatusbar div {float:left; padding:2px} | ||
| 24 | .o2k7Skin .mceStatusbar a.mceResize {display:block; float:right; background:url(../../img/icons.gif) -800px 0; width:20px; height:20px; cursor:se-resize} | ||
| 25 | .o2k7Skin .mceStatusbar a:hover {text-decoration:underline} | ||
| 26 | .o2k7Skin table.mceToolbar {margin-left:3px} | ||
| 27 | .o2k7Skin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; margin-left:3px;} | ||
| 28 | .o2k7Skin .mceToolbar td.mceFirst span {margin:0} | ||
| 29 | .o2k7Skin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} | ||
| 30 | .o2k7Skin .mceToolbar .mceToolbarEndListBox span, .o2k7Skin .mceToolbar .mceToolbarStartListBox span {display:none} | ||
| 31 | .o2k7Skin span.mceIcon, .o2k7Skin img.mceIcon {display:block; width:20px; height:20px} | ||
| 32 | .o2k7Skin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} | ||
| 33 | .o2k7Skin td.mceCenter {text-align:center;} | ||
| 34 | .o2k7Skin td.mceCenter table {margin:0 auto; text-align:left;} | ||
| 35 | .o2k7Skin td.mceRight table {margin:0 0 0 auto;} | ||
| 36 | |||
| 37 | /* Button */ | ||
| 38 | .o2k7Skin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} | ||
| 39 | .o2k7Skin a.mceButton span, .o2k7Skin a.mceButton img {margin-left:1px} | ||
| 40 | .o2k7Skin .mceOldBoxModel a.mceButton span, .o2k7Skin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px} | ||
| 41 | .o2k7Skin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} | ||
| 42 | .o2k7Skin a.mceButtonActive, .o2k7Skin a.mceButtonSelected {background-position:0 -44px} | ||
| 43 | .o2k7Skin .mceButtonDisabled .mceIcon {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 44 | .o2k7Skin .mceButtonLabeled {width:auto} | ||
| 45 | .o2k7Skin .mceButtonLabeled span.mceIcon {float:left} | ||
| 46 | .o2k7Skin span.mceButtonLabel {display:block; font-size:10px; padding:4px 6px 0 22px; font-family:Tahoma,Verdana,Arial,Helvetica} | ||
| 47 | .o2k7Skin .mceButtonDisabled .mceButtonLabel {color:#888} | ||
| 48 | |||
| 49 | /* Separator */ | ||
| 50 | .o2k7Skin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} | ||
| 51 | |||
| 52 | /* ListBox */ | ||
| 53 | .o2k7Skin .mceListBox {margin-left:3px} | ||
| 54 | .o2k7Skin .mceListBox, .o2k7Skin .mceListBox a {display:block} | ||
| 55 | .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} | ||
| 56 | .o2k7Skin .mceListBox .mceOpen {width:14px; height:22px; background:url(img/button_bg.png) -66px 0} | ||
| 57 | .o2k7Skin table.mceListBoxEnabled:hover .mceText, .o2k7Skin .mceListBoxHover .mceText, .o2k7Skin .mceListBoxSelected .mceText {background:#FFF} | ||
| 58 | .o2k7Skin table.mceListBoxEnabled:hover .mceOpen, .o2k7Skin .mceListBoxHover .mceOpen, .o2k7Skin .mceListBoxSelected .mceOpen {background-position:-66px -22px} | ||
| 59 | .o2k7Skin .mceListBoxDisabled .mceText {color:gray} | ||
| 60 | .o2k7Skin .mceListBoxMenu {overflow:auto; overflow-x:hidden} | ||
| 61 | .o2k7Skin .mceOldBoxModel .mceListBox .mceText {height:22px} | ||
| 62 | .o2k7Skin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px; border:1px solid #b3c7e1; background:#FFF;} | ||
| 63 | |||
| 64 | /* SplitButton */ | ||
| 65 | .o2k7Skin .mceSplitButton, .o2k7Skin .mceSplitButton a, .o2k7Skin .mceSplitButton span {display:block; height:22px} | ||
| 66 | .o2k7Skin .mceSplitButton {background:url(img/button_bg.png)} | ||
| 67 | .o2k7Skin .mceSplitButton a.mceAction {width:22px} | ||
| 68 | .o2k7Skin .mceSplitButton span.mceAction {width:22px; background:url(../../img/icons.gif) 20px 20px} | ||
| 69 | .o2k7Skin .mceSplitButton a.mceOpen {width:10px; background:url(img/button_bg.png) -44px 0} | ||
| 70 | .o2k7Skin .mceSplitButton span.mceOpen {display:none} | ||
| 71 | .o2k7Skin table.mceSplitButtonEnabled:hover a.mceAction, .o2k7Skin .mceSplitButtonHover a.mceAction, .o2k7Skin .mceSplitButtonSelected {background:url(img/button_bg.png) 0 -22px} | ||
| 72 | .o2k7Skin table.mceSplitButtonEnabled:hover a.mceOpen, .o2k7Skin .mceSplitButtonHover a.mceOpen, .o2k7Skin .mceSplitButtonSelected a.mceOpen {background-position:-44px -44px} | ||
| 73 | .o2k7Skin .mceSplitButtonDisabled .mceAction {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 74 | .o2k7Skin .mceSplitButtonActive {background-position:0 -44px} | ||
| 75 | |||
| 76 | /* ColorSplitButton */ | ||
| 77 | .o2k7Skin div.mceColorSplitMenu table {background:#FFF; border:1px solid gray} | ||
| 78 | .o2k7Skin .mceColorSplitMenu td {padding:2px} | ||
| 79 | .o2k7Skin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden; border:1px solid #808080} | ||
| 80 | .o2k7Skin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px} | ||
| 81 | .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} | ||
| 82 | .o2k7Skin .mceColorSplitMenu a.mceMoreColors:hover {border:1px solid #0A246A; background-color:#B6BDD2} | ||
| 83 | .o2k7Skin a.mceMoreColors:hover {border:1px solid #0A246A} | ||
| 84 | .o2k7Skin .mceColorPreview {margin-left:2px; width:16px; height:4px; overflow:hidden; background:#9a9b9a;overflow:hidden} | ||
| 85 | .o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden} | ||
| 86 | |||
| 87 | /* Menu */ | ||
| 88 | .o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD} | ||
| 89 | .o2k7Skin .mceNoIcons span.mceIcon {width:0;} | ||
| 90 | .o2k7Skin .mceNoIcons a .mceText {padding-left:10px} | ||
| 91 | .o2k7Skin .mceMenu table {background:#FFF} | ||
| 92 | .o2k7Skin .mceMenu a, .o2k7Skin .mceMenu span, .o2k7Skin .mceMenu {display:block} | ||
| 93 | .o2k7Skin .mceMenu td {height:20px} | ||
| 94 | .o2k7Skin .mceMenu a {position:relative;padding:3px 0 4px 0} | ||
| 95 | .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} | ||
| 96 | .o2k7Skin .mceMenu span.mceText, .o2k7Skin .mceMenu .mcePreview {font-size:11px} | ||
| 97 | .o2k7Skin .mceMenu pre.mceText {font-family:Monospace} | ||
| 98 | .o2k7Skin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;} | ||
| 99 | .o2k7Skin .mceMenu .mceMenuItemEnabled a:hover, .o2k7Skin .mceMenu .mceMenuItemActive {background-color:#dbecf3} | ||
| 100 | .o2k7Skin td.mceMenuItemSeparator {background:#DDD; height:1px} | ||
| 101 | .o2k7Skin .mceMenuItemTitle a {border:0; background:#E5EFFD; border-bottom:1px solid #ABC6DD} | ||
| 102 | .o2k7Skin .mceMenuItemTitle span.mceText {color:#000; font-weight:bold; padding-left:4px} | ||
| 103 | .o2k7Skin .mceMenuItemDisabled .mceText {color:#888} | ||
| 104 | .o2k7Skin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)} | ||
| 105 | .o2k7Skin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center} | ||
| 106 | .o2k7Skin .mceMenu span.mceMenuLine {display:none} | ||
| 107 | .o2k7Skin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;} | ||
| 108 | |||
| 109 | /* Progress,Resize */ | ||
| 110 | .o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} | ||
| 111 | .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} | ||
| 112 | .o2k7Skin .mcePlaceHolder {border:1px dotted gray} | ||
| 113 | |||
| 114 | /* Formats */ | ||
| 115 | .o2k7Skin .mce_formatPreview a {font-size:10px} | ||
| 116 | .o2k7Skin .mce_p span.mceText {} | ||
| 117 | .o2k7Skin .mce_address span.mceText {font-style:italic} | ||
| 118 | .o2k7Skin .mce_pre span.mceText {font-family:monospace} | ||
| 119 | .o2k7Skin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em} | ||
| 120 | .o2k7Skin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em} | ||
| 121 | .o2k7Skin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em} | ||
| 122 | .o2k7Skin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em} | ||
| 123 | .o2k7Skin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em} | ||
| 124 | .o2k7Skin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em} | ||
| 125 | |||
| 126 | /* Theme */ | ||
| 127 | .o2k7Skin span.mce_bold {background-position:0 0} | ||
| 128 | .o2k7Skin span.mce_italic {background-position:-60px 0} | ||
| 129 | .o2k7Skin span.mce_underline {background-position:-140px 0} | ||
| 130 | .o2k7Skin span.mce_strikethrough {background-position:-120px 0} | ||
| 131 | .o2k7Skin span.mce_undo {background-position:-160px 0} | ||
| 132 | .o2k7Skin span.mce_redo {background-position:-100px 0} | ||
| 133 | .o2k7Skin span.mce_cleanup {background-position:-40px 0} | ||
| 134 | .o2k7Skin span.mce_bullist {background-position:-20px 0} | ||
| 135 | .o2k7Skin span.mce_numlist {background-position:-80px 0} | ||
| 136 | .o2k7Skin span.mce_justifyleft {background-position:-460px 0} | ||
| 137 | .o2k7Skin span.mce_justifyright {background-position:-480px 0} | ||
| 138 | .o2k7Skin span.mce_justifycenter {background-position:-420px 0} | ||
| 139 | .o2k7Skin span.mce_justifyfull {background-position:-440px 0} | ||
| 140 | .o2k7Skin span.mce_anchor {background-position:-200px 0} | ||
| 141 | .o2k7Skin span.mce_indent {background-position:-400px 0} | ||
| 142 | .o2k7Skin span.mce_outdent {background-position:-540px 0} | ||
| 143 | .o2k7Skin span.mce_link {background-position:-500px 0} | ||
| 144 | .o2k7Skin span.mce_unlink {background-position:-640px 0} | ||
| 145 | .o2k7Skin span.mce_sub {background-position:-600px 0} | ||
| 146 | .o2k7Skin span.mce_sup {background-position:-620px 0} | ||
| 147 | .o2k7Skin span.mce_removeformat {background-position:-580px 0} | ||
| 148 | .o2k7Skin span.mce_newdocument {background-position:-520px 0} | ||
| 149 | .o2k7Skin span.mce_image {background-position:-380px 0} | ||
| 150 | .o2k7Skin span.mce_help {background-position:-340px 0} | ||
| 151 | .o2k7Skin span.mce_code {background-position:-260px 0} | ||
| 152 | .o2k7Skin span.mce_hr {background-position:-360px 0} | ||
| 153 | .o2k7Skin span.mce_visualaid {background-position:-660px 0} | ||
| 154 | .o2k7Skin span.mce_charmap {background-position:-240px 0} | ||
| 155 | .o2k7Skin span.mce_paste {background-position:-560px 0} | ||
| 156 | .o2k7Skin span.mce_copy {background-position:-700px 0} | ||
| 157 | .o2k7Skin span.mce_cut {background-position:-680px 0} | ||
| 158 | .o2k7Skin span.mce_blockquote {background-position:-220px 0} | ||
| 159 | .o2k7Skin .mce_forecolor span.mceAction {background-position:-720px 0} | ||
| 160 | .o2k7Skin .mce_backcolor span.mceAction {background-position:-760px 0} | ||
| 161 | .o2k7Skin span.mce_forecolorpicker {background-position:-720px 0} | ||
| 162 | .o2k7Skin span.mce_backcolorpicker {background-position:-760px 0} | ||
| 163 | |||
| 164 | /* Plugins */ | ||
| 165 | .o2k7Skin span.mce_advhr {background-position:-0px -20px} | ||
| 166 | .o2k7Skin span.mce_ltr {background-position:-20px -20px} | ||
| 167 | .o2k7Skin span.mce_rtl {background-position:-40px -20px} | ||
| 168 | .o2k7Skin span.mce_emotions {background-position:-60px -20px} | ||
| 169 | .o2k7Skin span.mce_fullpage {background-position:-80px -20px} | ||
| 170 | .o2k7Skin span.mce_fullscreen {background-position:-100px -20px} | ||
| 171 | .o2k7Skin span.mce_iespell {background-position:-120px -20px} | ||
| 172 | .o2k7Skin span.mce_insertdate {background-position:-140px -20px} | ||
| 173 | .o2k7Skin span.mce_inserttime {background-position:-160px -20px} | ||
| 174 | .o2k7Skin span.mce_absolute {background-position:-180px -20px} | ||
| 175 | .o2k7Skin span.mce_backward {background-position:-200px -20px} | ||
| 176 | .o2k7Skin span.mce_forward {background-position:-220px -20px} | ||
| 177 | .o2k7Skin span.mce_insert_layer {background-position:-240px -20px} | ||
| 178 | .o2k7Skin span.mce_insertlayer {background-position:-260px -20px} | ||
| 179 | .o2k7Skin span.mce_movebackward {background-position:-280px -20px} | ||
| 180 | .o2k7Skin span.mce_moveforward {background-position:-300px -20px} | ||
| 181 | .o2k7Skin span.mce_media {background-position:-320px -20px} | ||
| 182 | .o2k7Skin span.mce_nonbreaking {background-position:-340px -20px} | ||
| 183 | .o2k7Skin span.mce_pastetext {background-position:-360px -20px} | ||
| 184 | .o2k7Skin span.mce_pasteword {background-position:-380px -20px} | ||
| 185 | .o2k7Skin span.mce_selectall {background-position:-400px -20px} | ||
| 186 | .o2k7Skin span.mce_preview {background-position:-420px -20px} | ||
| 187 | .o2k7Skin span.mce_print {background-position:-440px -20px} | ||
| 188 | .o2k7Skin span.mce_cancel {background-position:-460px -20px} | ||
| 189 | .o2k7Skin span.mce_save {background-position:-480px -20px} | ||
| 190 | .o2k7Skin span.mce_replace {background-position:-500px -20px} | ||
| 191 | .o2k7Skin span.mce_search {background-position:-520px -20px} | ||
| 192 | .o2k7Skin span.mce_styleprops {background-position:-560px -20px} | ||
| 193 | .o2k7Skin span.mce_table {background-position:-580px -20px} | ||
| 194 | .o2k7Skin span.mce_cell_props {background-position:-600px -20px} | ||
| 195 | .o2k7Skin span.mce_delete_table {background-position:-620px -20px} | ||
| 196 | .o2k7Skin span.mce_delete_col {background-position:-640px -20px} | ||
| 197 | .o2k7Skin span.mce_delete_row {background-position:-660px -20px} | ||
| 198 | .o2k7Skin span.mce_col_after {background-position:-680px -20px} | ||
| 199 | .o2k7Skin span.mce_col_before {background-position:-700px -20px} | ||
| 200 | .o2k7Skin span.mce_row_after {background-position:-720px -20px} | ||
| 201 | .o2k7Skin span.mce_row_before {background-position:-740px -20px} | ||
| 202 | .o2k7Skin span.mce_merge_cells {background-position:-760px -20px} | ||
| 203 | .o2k7Skin span.mce_table_props {background-position:-980px -20px} | ||
| 204 | .o2k7Skin span.mce_row_props {background-position:-780px -20px} | ||
| 205 | .o2k7Skin span.mce_split_cells {background-position:-800px -20px} | ||
| 206 | .o2k7Skin span.mce_template {background-position:-820px -20px} | ||
| 207 | .o2k7Skin span.mce_visualchars {background-position:-840px -20px} | ||
| 208 | .o2k7Skin span.mce_abbr {background-position:-860px -20px} | ||
| 209 | .o2k7Skin span.mce_acronym {background-position:-880px -20px} | ||
| 210 | .o2k7Skin span.mce_attribs {background-position:-900px -20px} | ||
| 211 | .o2k7Skin span.mce_cite {background-position:-920px -20px} | ||
| 212 | .o2k7Skin span.mce_del {background-position:-940px -20px} | ||
| 213 | .o2k7Skin span.mce_ins {background-position:-960px -20px} | ||
| 214 | .o2k7Skin span.mce_pagebreak {background-position:0 -40px} | ||
| 215 | .o2k7Skin .mce_spellchecker span.mceAction {background-position:-540px -20px} | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css new file mode 100755 index 0000000..153f0c3 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | /* Black */ | ||
| 2 | .o2k7SkinBlack .mceToolbar .mceToolbarStart span, .o2k7SkinBlack .mceToolbar .mceToolbarEnd span, .o2k7SkinBlack .mceButton, .o2k7SkinBlack .mceSplitButton, .o2k7SkinBlack .mceSeparator, .o2k7SkinBlack .mceSplitButton a.mceOpen, .o2k7SkinBlack .mceListBox a.mceOpen {background-image:url(img/button_bg_black.png)} | ||
| 3 | .o2k7SkinBlack table, .o2k7SkinBlack .mceMenuItemTitle a, .o2k7SkinBlack .mceMenuItemTitle span.mceText, .o2k7SkinBlack .mceStatusbar div, .o2k7SkinBlack .mceStatusbar span, .o2k7SkinBlack .mceStatusbar a {background:#535353; color:#FFF} | ||
| 4 | .o2k7SkinBlack table.mceListBoxEnabled .mceText, o2k7SkinBlack .mceListBox .mceText {background:#FFF; border:1px solid #CBCFD4; border-bottom-color:#989FA9; border-right:0} | ||
| 5 | .o2k7SkinBlack table.mceListBoxEnabled:hover .mceText, .o2k7SkinBlack .mceListBoxHover .mceText, .o2k7SkinBlack .mceListBoxSelected .mceText {background:#FFF; border:1px solid #FFBD69; border-right:0} | ||
| 6 | .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;} | ||
| 7 | .o2k7SkinBlack table.mceSplitButtonEnabled:hover a.mceAction, .o2k7SkinBlack .mceSplitButtonHover a.mceAction, .o2k7SkinBlack .mceSplitButtonSelected {background-image:url(img/button_bg_black.png)} | ||
| 8 | .o2k7SkinBlack .mceMenu .mceMenuItemEnabled a:hover, .o2k7SkinBlack .mceMenu .mceMenuItemActive {background-color:#FFE7A1} \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css new file mode 100755 index 0000000..7fe3b45 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | /* Silver */ | ||
| 2 | .o2k7SkinSilver .mceToolbar .mceToolbarStart span, .o2k7SkinSilver .mceButton, .o2k7SkinSilver .mceSplitButton, .o2k7SkinSilver .mceSeparator, .o2k7SkinSilver .mceSplitButton a.mceOpen, .o2k7SkinSilver .mceListBox a.mceOpen {background-image:url(img/button_bg_silver.png)} | ||
| 3 | .o2k7SkinSilver table, .o2k7SkinSilver .mceMenuItemTitle a {background:#eee} | ||
| 4 | .o2k7SkinSilver .mceListBox .mceText {background:#FFF} | ||
| 5 | .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} | ||
diff --git a/public/javascripts/tiny_mce/themes/advanced/source_editor.htm b/public/javascripts/tiny_mce/themes/advanced/source_editor.htm new file mode 100755 index 0000000..119a913 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/advanced/source_editor.htm | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
| 2 | <head> | ||
| 3 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | ||
| 4 | <title>{#advanced_dlg.code_title}</title> | ||
| 5 | <script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||
| 6 | <script type="text/javascript" src="js/source_editor.js"></script> | ||
| 7 | <base target="_self" /> | ||
| 8 | </head> | ||
| 9 | <body onresize="resizeInputs();" style="display:none; overflow:hidden;"> | ||
| 10 | <form name="source" onsubmit="saveContent();return false;" action="#"> | ||
| 11 | <div style="float: left" class="title">{#advanced_dlg.code_title}</div> | ||
| 12 | |||
| 13 | <div id="wrapline" style="float: right"> | ||
| 14 | <input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{#advanced_dlg.code_wordwrap}</label> | ||
| 15 | </div> | ||
| 16 | |||
| 17 | <br style="clear: both" /> | ||
| 18 | |||
| 19 | <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> | ||
| 20 | |||
| 21 | <div class="mceActionPanel"> | ||
| 22 | <div style="float: left"> | ||
| 23 | <input type="submit" name="insert" value="{#update}" id="insert" /> | ||
| 24 | </div> | ||
| 25 | |||
| 26 | <div style="float: right"> | ||
| 27 | <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" /> | ||
| 28 | </div> | ||
| 29 | </div> | ||
| 30 | </form> | ||
| 31 | </body> | ||
| 32 | </html> | ||
diff --git a/public/javascripts/tiny_mce/themes/simple/editor_template.js b/public/javascripts/tiny_mce/themes/simple/editor_template.js new file mode 100755 index 0000000..d19fb53 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/editor_template.js | |||
| @@ -0,0 +1 @@ | |||
| (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.documentBaseURI.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 | |||
diff --git a/public/javascripts/tiny_mce/themes/simple/editor_template_src.js b/public/javascripts/tiny_mce/themes/simple/editor_template_src.js new file mode 100755 index 0000000..fb0bd78 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/editor_template_src.js | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | /** | ||
| 2 | * $Id: editor_template_src.js 920 2008-09-09 14:05:33Z spocke $ | ||
| 3 | * | ||
| 4 | * This file is meant to showcase how to create a simple theme. The advanced | ||
| 5 | * theme is more suitable for production use. | ||
| 6 | * | ||
| 7 | * @author Moxiecode | ||
| 8 | * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved. | ||
| 9 | */ | ||
| 10 | |||
| 11 | (function() { | ||
| 12 | var DOM = tinymce.DOM; | ||
| 13 | |||
| 14 | // Tell it to load theme specific language pack(s) | ||
| 15 | tinymce.ThemeManager.requireLangPack('simple'); | ||
| 16 | |||
| 17 | tinymce.create('tinymce.themes.SimpleTheme', { | ||
| 18 | init : function(ed, url) { | ||
| 19 | var t = this, states = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'InsertUnorderedList', 'InsertOrderedList'], s = ed.settings; | ||
| 20 | |||
| 21 | t.editor = ed; | ||
| 22 | |||
| 23 | ed.onInit.add(function() { | ||
| 24 | ed.onNodeChange.add(function(ed, cm) { | ||
| 25 | tinymce.each(states, function(c) { | ||
| 26 | cm.get(c.toLowerCase()).setActive(ed.queryCommandState(c)); | ||
| 27 | }); | ||
| 28 | }); | ||
| 29 | |||
| 30 | ed.dom.loadCSS(url + "/skins/" + s.skin + "/content.css"); | ||
| 31 | }); | ||
| 32 | |||
| 33 | DOM.loadCSS((s.editor_css ? ed.documentBaseURI.toAbsolute(s.editor_css) : '') || url + "/skins/" + s.skin + "/ui.css"); | ||
| 34 | }, | ||
| 35 | |||
| 36 | renderUI : function(o) { | ||
| 37 | var t = this, n = o.targetNode, ic, tb, ed = t.editor, cf = ed.controlManager, sc; | ||
| 38 | |||
| 39 | n = DOM.insertAfter(DOM.create('span', {id : ed.id + '_container', 'class' : 'mceEditor ' + ed.settings.skin + 'SimpleSkin'}), n); | ||
| 40 | n = sc = DOM.add(n, 'table', {cellPadding : 0, cellSpacing : 0, 'class' : 'mceLayout'}); | ||
| 41 | n = tb = DOM.add(n, 'tbody'); | ||
| 42 | |||
| 43 | // Create iframe container | ||
| 44 | n = DOM.add(tb, 'tr'); | ||
| 45 | n = ic = DOM.add(DOM.add(n, 'td'), 'div', {'class' : 'mceIframeContainer'}); | ||
| 46 | |||
| 47 | // Create toolbar container | ||
| 48 | n = DOM.add(DOM.add(tb, 'tr', {'class' : 'last'}), 'td', {'class' : 'mceToolbar mceLast', align : 'center'}); | ||
| 49 | |||
| 50 | // Create toolbar | ||
| 51 | tb = t.toolbar = cf.createToolbar("tools1"); | ||
| 52 | tb.add(cf.createButton('bold', {title : 'simple.bold_desc', cmd : 'Bold'})); | ||
| 53 | tb.add(cf.createButton('italic', {title : 'simple.italic_desc', cmd : 'Italic'})); | ||
| 54 | tb.add(cf.createButton('underline', {title : 'simple.underline_desc', cmd : 'Underline'})); | ||
| 55 | tb.add(cf.createButton('strikethrough', {title : 'simple.striketrough_desc', cmd : 'Strikethrough'})); | ||
| 56 | tb.add(cf.createSeparator()); | ||
| 57 | tb.add(cf.createButton('undo', {title : 'simple.undo_desc', cmd : 'Undo'})); | ||
| 58 | tb.add(cf.createButton('redo', {title : 'simple.redo_desc', cmd : 'Redo'})); | ||
| 59 | tb.add(cf.createSeparator()); | ||
| 60 | tb.add(cf.createButton('cleanup', {title : 'simple.cleanup_desc', cmd : 'mceCleanup'})); | ||
| 61 | tb.add(cf.createSeparator()); | ||
| 62 | tb.add(cf.createButton('insertunorderedlist', {title : 'simple.bullist_desc', cmd : 'InsertUnorderedList'})); | ||
| 63 | tb.add(cf.createButton('insertorderedlist', {title : 'simple.numlist_desc', cmd : 'InsertOrderedList'})); | ||
| 64 | tb.renderTo(n); | ||
| 65 | |||
| 66 | return { | ||
| 67 | iframeContainer : ic, | ||
| 68 | editorContainer : ed.id + '_container', | ||
| 69 | sizeContainer : sc, | ||
| 70 | deltaHeight : -20 | ||
| 71 | }; | ||
| 72 | }, | ||
| 73 | |||
| 74 | getInfo : function() { | ||
| 75 | return { | ||
| 76 | longname : 'Simple theme', | ||
| 77 | author : 'Moxiecode Systems AB', | ||
| 78 | authorurl : 'http://tinymce.moxiecode.com', | ||
| 79 | version : tinymce.majorVersion + "." + tinymce.minorVersion | ||
| 80 | } | ||
| 81 | } | ||
| 82 | }); | ||
| 83 | |||
| 84 | tinymce.ThemeManager.add('simple', tinymce.themes.SimpleTheme); | ||
| 85 | })(); \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/simple/img/icons.gif b/public/javascripts/tiny_mce/themes/simple/img/icons.gif new file mode 100755 index 0000000..16af141 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/img/icons.gif | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/simple/langs/en.js b/public/javascripts/tiny_mce/themes/simple/langs/en.js new file mode 100755 index 0000000..9f08f10 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/langs/en.js | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | tinyMCE.addI18n('en.simple',{ | ||
| 2 | bold_desc:"Bold (Ctrl+B)", | ||
| 3 | italic_desc:"Italic (Ctrl+I)", | ||
| 4 | underline_desc:"Underline (Ctrl+U)", | ||
| 5 | striketrough_desc:"Strikethrough", | ||
| 6 | bullist_desc:"Unordered list", | ||
| 7 | numlist_desc:"Ordered list", | ||
| 8 | undo_desc:"Undo (Ctrl+Z)", | ||
| 9 | redo_desc:"Redo (Ctrl+Y)", | ||
| 10 | cleanup_desc:"Cleanup messy code" | ||
| 11 | }); \ No newline at end of file | ||
diff --git a/public/javascripts/tiny_mce/themes/simple/skins/default/content.css b/public/javascripts/tiny_mce/themes/simple/skins/default/content.css new file mode 100755 index 0000000..2506c80 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/skins/default/content.css | |||
| @@ -0,0 +1,25 @@ | |||
| 1 | body, td, pre { | ||
| 2 | font-family: Verdana, Arial, Helvetica, sans-serif; | ||
| 3 | font-size: 10px; | ||
| 4 | } | ||
| 5 | |||
| 6 | body { | ||
| 7 | background-color: #FFFFFF; | ||
| 8 | } | ||
| 9 | |||
| 10 | .mceVisualAid { | ||
| 11 | border: 1px dashed #BBBBBB; | ||
| 12 | } | ||
| 13 | |||
| 14 | /* MSIE specific */ | ||
| 15 | |||
| 16 | * html body { | ||
| 17 | scrollbar-3dlight-color: #F0F0EE; | ||
| 18 | scrollbar-arrow-color: #676662; | ||
| 19 | scrollbar-base-color: #F0F0EE; | ||
| 20 | scrollbar-darkshadow-color: #DDDDDD; | ||
| 21 | scrollbar-face-color: #E0E0DD; | ||
| 22 | scrollbar-highlight-color: #F0F0EE; | ||
| 23 | scrollbar-shadow-color: #F0F0EE; | ||
| 24 | scrollbar-track-color: #F5F5F5; | ||
| 25 | } | ||
diff --git a/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css b/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css new file mode 100755 index 0000000..076fe84 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | /* Reset */ | ||
| 2 | .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} | ||
| 3 | |||
| 4 | /* Containers */ | ||
| 5 | .defaultSimpleSkin {position:relative} | ||
| 6 | .defaultSimpleSkin table.mceLayout {background:#F0F0EE; border:1px solid #CCC;} | ||
| 7 | .defaultSimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #CCC;} | ||
| 8 | .defaultSimpleSkin .mceToolbar {height:24px;} | ||
| 9 | |||
| 10 | /* Layout */ | ||
| 11 | .defaultSimpleSkin span.mceIcon, .defaultSimpleSkin img.mceIcon {display:block; width:20px; height:20px} | ||
| 12 | .defaultSimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} | ||
| 13 | |||
| 14 | /* Button */ | ||
| 15 | .defaultSimpleSkin .mceButton {display:block; border:1px solid #F0F0EE; width:20px; height:20px} | ||
| 16 | .defaultSimpleSkin a.mceButtonEnabled:hover {border:1px solid #0A246A; background-color:#B2BBD0} | ||
| 17 | .defaultSimpleSkin a.mceButtonActive {border:1px solid #0A246A; background-color:#C2CBE0} | ||
| 18 | .defaultSimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 19 | |||
| 20 | /* Separator */ | ||
| 21 | .defaultSimpleSkin .mceSeparator {display:block; background:url(../../img/icons.gif) -180px 0; width:2px; height:20px; margin:0 2px 0 4px} | ||
| 22 | |||
| 23 | /* Theme */ | ||
| 24 | .defaultSimpleSkin span.mce_bold {background-position:0 0} | ||
| 25 | .defaultSimpleSkin span.mce_italic {background-position:-60px 0} | ||
| 26 | .defaultSimpleSkin span.mce_underline {background-position:-140px 0} | ||
| 27 | .defaultSimpleSkin span.mce_strikethrough {background-position:-120px 0} | ||
| 28 | .defaultSimpleSkin span.mce_undo {background-position:-160px 0} | ||
| 29 | .defaultSimpleSkin span.mce_redo {background-position:-100px 0} | ||
| 30 | .defaultSimpleSkin span.mce_cleanup {background-position:-40px 0} | ||
| 31 | .defaultSimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} | ||
| 32 | .defaultSimpleSkin span.mce_insertorderedlist {background-position:-80px 0} | ||
diff --git a/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css b/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css new file mode 100755 index 0000000..595809f --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | body, td, pre {font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;} | ||
| 2 | |||
| 3 | body {background: #FFF;} | ||
| 4 | .mceVisualAid {border: 1px dashed #BBB;} | ||
| 5 | |||
| 6 | /* IE */ | ||
| 7 | |||
| 8 | * html body { | ||
| 9 | scrollbar-3dlight-color: #F0F0EE; | ||
| 10 | scrollbar-arrow-color: #676662; | ||
| 11 | scrollbar-base-color: #F0F0EE; | ||
| 12 | scrollbar-darkshadow-color: #DDDDDD; | ||
| 13 | scrollbar-face-color: #E0E0DD; | ||
| 14 | scrollbar-highlight-color: #F0F0EE; | ||
| 15 | scrollbar-shadow-color: #F0F0EE; | ||
| 16 | scrollbar-track-color: #F5F5F5; | ||
| 17 | } | ||
diff --git a/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png b/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png new file mode 100755 index 0000000..527e349 --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png | |||
| Binary files differ | |||
diff --git a/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css b/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css new file mode 100755 index 0000000..cf6c35d --- /dev/null +++ b/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css | |||
| @@ -0,0 +1,35 @@ | |||
| 1 | /* Reset */ | ||
| 2 | .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} | ||
| 3 | |||
| 4 | /* Containers */ | ||
| 5 | .o2k7SimpleSkin {position:relative} | ||
| 6 | .o2k7SimpleSkin table.mceLayout {background:#E5EFFD; border:1px solid #ABC6DD;} | ||
| 7 | .o2k7SimpleSkin iframe {display:block; background:#FFF; border-bottom:1px solid #ABC6DD;} | ||
| 8 | .o2k7SimpleSkin .mceToolbar {height:26px;} | ||
| 9 | |||
| 10 | /* Layout */ | ||
| 11 | .o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; } | ||
| 12 | .o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px} | ||
| 13 | .o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px} | ||
| 14 | .o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px} | ||
| 15 | |||
| 16 | /* Button */ | ||
| 17 | .o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px} | ||
| 18 | .o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px} | ||
| 19 | .o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px} | ||
| 20 | .o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px} | ||
| 21 | .o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)} | ||
| 22 | |||
| 23 | /* Separator */ | ||
| 24 | .o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px} | ||
| 25 | |||
| 26 | /* Theme */ | ||
| 27 | .o2k7SimpleSkin span.mce_bold {background-position:0 0} | ||
| 28 | .o2k7SimpleSkin span.mce_italic {background-position:-60px 0} | ||
| 29 | .o2k7SimpleSkin span.mce_underline {background-position:-140px 0} | ||
| 30 | .o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0} | ||
| 31 | .o2k7SimpleSkin span.mce_undo {background-position:-160px 0} | ||
| 32 | .o2k7SimpleSkin span.mce_redo {background-position:-100px 0} | ||
| 33 | .o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0} | ||
| 34 | .o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0} | ||
| 35 | .o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0} | ||
