r1073 - in xwiki/trunk/src/main/web: templates tiny_mce tiny_mce/plugins/_template tiny_mce/plugins/advimage tiny_mce/plugins/table tiny_mce/plugins/wikiplugin tiny_mce/themes/wikieditor tiny_mce/themes/wikieditor/images tiny_mce/themes/wikieditor/langs wiki_editor wiki_editor/plugins wiki_editor/themes
Ludovic Dubost
ludovic at users.forge.objectweb.org
Sun May 28 23:16:23 CEST 2006
Author: ludovic
Date: 2006-05-28 23:16:15 +0200 (Sun, 28 May 2006)
New Revision: 1073
Added:
xwiki/trunk/src/main/web/templates/macrowysiwyg.vm
xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/images/macro.gif
xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm
xwiki/trunk/src/main/web/wiki_editor/plugins/macros.js
Modified:
xwiki/trunk/src/main/web/templates/edit.vm
xwiki/trunk/src/main/web/templates/httpheader.vm
xwiki/trunk/src/main/web/templates/wysiwyg.vm
xwiki/trunk/src/main/web/tiny_mce/plugins/_template/editor_plugin.js
xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin.js
xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin_src.js
xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/image.htm
xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin.js
xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin_src.js
xwiki/trunk/src/main/web/tiny_mce/plugins/table/table.htm
xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin.js
xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin_src.js
xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/attachment.htm
xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/editor_template.js
xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/langs/en.js
xwiki/trunk/src/main/web/tiny_mce/tiny_mce.js
xwiki/trunk/src/main/web/tiny_mce/tiny_mce_popup.js
xwiki/trunk/src/main/web/tiny_mce/tiny_mce_src.js
xwiki/trunk/src/main/web/wiki_editor/plugins/attachments.js
xwiki/trunk/src/main/web/wiki_editor/plugins/core.js
xwiki/trunk/src/main/web/wiki_editor/themes/default.js
xwiki/trunk/src/main/web/wiki_editor/wiki_editor.js
Log:
New version of the wysiwyg editor
Added switch from text to wysiwyg editor
Added browser detector to warn usage of editor in older browsers
Added macros wizard
Modified: xwiki/trunk/src/main/web/templates/edit.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/edit.vm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/templates/edit.vm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -55,6 +55,8 @@
#end
$msg.get("titlefield"): <input type="text" name="title" value="$!tdoc.title" size="60" />
<br /><br />
+Switch to <span style="color: blue; cursor:pointer;" onclick="document.forms.edit.action='$doc.getURL("edit","xpage=wysiwyg")'; if (document.forms.edit.onsubmit) document.forms.edit.onsubmit();if (checkDocumentContent()) document.forms.edit.submit(); return false;"><u>$msg.get("wysiwygeditor")</u></span>
+<br />
#includeHelp("EditWikiToolbar")
$xwiki.getTextArea($tdoc.content)
<br/>
Modified: xwiki/trunk/src/main/web/templates/httpheader.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/httpheader.vm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/templates/httpheader.vm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -18,6 +18,7 @@
<script type="text/javascript" src="$xwiki.getSkinFile("skin.js")"></script>
<script type="text/javascript" src="$xwiki.getSkinFile("prototype.js")"></script>
<script type="text/javascript" src="$xwiki.getSkinFile("xwiki.js")"></script>
+<script type="text/javascript" src="$xwiki.getSkinFile("browserdetect.js")"></script>
</head>
#if(($context.action=="inline")||($context.action=="edit"))
<script type="text/javascript">
Added: xwiki/trunk/src/main/web/templates/macrowysiwyg.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/macrowysiwyg.vm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/templates/macrowysiwyg.vm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -0,0 +1,84 @@
+#set($macros = $xwiki.getXWikiPreference("macros_mapping"))
+#set($macros = $macros.split('\n'))
+<form id="macroform" name="macroform" onsubmit="insertMacro(); return false;" action="">
+ <div>
+ <table width="100%" border="0" cellspacing="4" cellpadding="0">
+ <tr>
+ <td class="title" nowrap="nowrap">$msg.get("choosemacro")</td>
+ </tr>
+ <tr>
+ <td >
+ <table cellspacing="0" cellpadding="0" width="100%" style="border: 0px">
+ <tr>
+ <td>
+ <select id="selmacro" name="selmacro" style="border: 1px solid #808080; width:100%;" size="5" onchange="inputMacro();">
+ #foreach ($macro in $macros)
+ #if (!$macro.trim().equals(""))
+ #set($macroname = $macro.toString().substring(0,$macro.indexOf("=")))
+ <option value="$macroname">$macroname</option>
+ #end
+ #end
+ </select>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <hr />
+ <div id="input">
+ </div>
+ #foreach ($macro in $macros)
+ #if (!$macro.trim().equals(""))
+ #set($macroname = $macro.toString().substring(0,$macro.indexOf("=")).trim())
+ <div id="$macroname" style="display: none;" >
+ #set($index = $macro.indexOf("=") + 1)
+ #set($temp = $macro.substring($index))
+ #set($infoArr = $temp.split(':'))
+ #set($counter = 0)
+ #set($counparam = 0)
+ #set($macroparam = "")
+ <input type="hidden" id="macroname" name="macroname" value="$macroname" />
+ #foreach ($paramnum in $infoArr)
+ #if($counparam == 2)
+ #set($macroparam = $paramnum)
+ <div>
+ <fieldset>
+ <legend>$msg.get("macro") $macroname</legend>
+ <table width="100%" border="0" cellspacing="4" cellpadding="0">
+ #foreach ($infoMacro in $infoArr)
+ #if ($counter == 2)
+ #set($params = $infoMacro.split(","))
+ #foreach ($param in $params)
+ <tr>
+ <td nowrap="nowrap">$param :</td>
+ <td>
+ <input type="text" id="$param" name="$param" style="width:240px;"/>
+ </td>
+ </tr>
+ #end
+ #end
+ #if($counter == 3)
+ #if (!$infoMacro.equals(""))
+ <tr>
+ <td nowrap='nowrap'>Content :</td>
+ <td>
+ <textarea id="content" name="content" rows='' cols='' style='width:240px;'></textarea>
+ </td>
+ </tr>
+ #end
+ #end
+ #set($counter = $counter + 1)
+ #end
+ </table>
+ </fieldset>
+ </div>
+ #end
+ #set($counparam = $counparam + 1)
+ #end
+ <input type="hidden" id="macroparam" name="macroparam" value="$macroparam" />
+ </div>
+ #end
+ #end
+</form>
Modified: xwiki/trunk/src/main/web/templates/wysiwyg.vm
===================================================================
--- xwiki/trunk/src/main/web/templates/wysiwyg.vm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/templates/wysiwyg.vm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -19,19 +19,23 @@
<script language="javascript" type="text/javascript" src="${request.contextPath}/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript" src="${request.contextPath}/wiki_editor/wiki_editor.js"></script>
<script language="javascript" type="text/javascript">
- wikiEditor.init({
- language: "en",
- elements : "content",
- mode: "exact",
- content_css: "$xwiki.getSkinFile("style.css")",
- debug : false,
- remove_linebreaks : false,
- plugins: 'table, contextmenu, paste, searchreplace',
- wiki_images_path : '${request.contextPath}/bin/download/$doc.web/$doc.name/',
- wiki_attach_path : '${request.contextPath}/bin/view/$doc.web/$doc.name',
- wiki_plugins: 'core,attachments'
- });
-
+ if ( browser.isIE || browser.isMozilla || browser.isGecko || browser.isSafari) {
+ wikiEditor.init({
+ language: "en",
+ elements : "content",
+ mode: "exact",
+ content_css: "$xwiki.getSkinFile("style.css")",
+ debug : false,
+ remove_linebreaks : false,
+ plugins: 'table, contextmenu, paste, searchreplace',
+ wiki_images_path : '${request.contextPath}/bin/download/$doc.web/$doc.name/',
+ wiki_attach_path : '${request.contextPath}/bin/view/$doc.web/$doc.name',
+ wiki_macro_path : '${request.contextPath}/bin/view/$doc.web/$doc.name',
+ wiki_plugins: 'core,attachments,macros'
+ });
+ } else {
+ alert("$msg.get('browsernoncompatible')");
+ }
</script>
<div id="xwikieditcontent" class="large">
<div id="columns">
@@ -61,6 +65,8 @@
#end
$msg.get("titlefield"): <input type="text" name="title" value="$!tdoc.title" size="60" />
<br /><br />
+ Switch to <span style="color: blue; cursor:pointer;" onclick="document.forms.edit.action='$doc.getURL("edit")'; if (document.forms.edit.onsubmit) document.forms.edit.onsubmit();if (checkDocumentContent()) document.forms.edit.submit(); return false;"><u>$msg.get("wikieditor")</u></span>
+<br />
$xwiki.getTextArea($tdoc.content)
<br/>
#if ($tdoc.language=="")
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/_template/editor_plugin.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/_template/editor_plugin.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/_template/editor_plugin.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -51,7 +51,6 @@
template['height'] = 180;
tinyMCE.openWindow(template, {editor_id : editor_id, some_custom_arg : "somecustomdata"});
-
// Let TinyMCE know that something was modified
tinyMCE.triggerNodeChange(false);
} else {
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -1,2 +1 @@
-/* Import plugin specific language pack */
- tinyMCE.importPluginLanguagePack('advimage','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');function TinyMCE_advimage_getInsertImageTemplate(){var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=430;template['height']=380;template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);return template;}function TinyMCE_advimage_cleanup(type,content){switch(type){case "insert_to_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=tinyMCE.getImageSrc(onmouseover))!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseover',"this.src='"+src+"';");}if((src=tinyMCE.getImageSrc(onmouseout))!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseout',"this.src='"+src+"';");}}break;case "get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=tinyMCE.getImageSrc(onmouseover))!=""){src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseover',"this.src='"+src+"';");}if((src=tinyMCE.getImageSrc(onmouseout))!=""){src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseout',"this.src='"+src+"';");}}break;}return content;}
\ No newline at end of file
+tinyMCE.importPluginLanguagePack('advimage','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');function TinyMCE_advimage_getInsertImageTemplate(){var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=500;template['height']=350;template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);return template;}function TinyMCE_advimage_cleanup(type,content){switch(type){case"insert_to_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=tinyMCE.getImageSrc(onmouseover))!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseover',"this.src='"+src+"';");}if((src=tinyMCE.getImageSrc(onmouseout))!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('onmouseout',"this.src='"+src+"';");}}break;case"get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){var onmouseover=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseover'));var onmouseout=tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i],'onmouseout'));if((src=tinyMCE.getImageSrc(onmouseover))!=""){src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseover',"this.src='"+src+"';");}if((src=tinyMCE.getImageSrc(onmouseout))!=""){src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('onmouseout',"this.src='"+src+"';");}}break;}return content;}
\ No newline at end of file
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin_src.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin_src.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/editor_plugin_src.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -6,10 +6,9 @@
*/
function TinyMCE_advimage_getInsertImageTemplate() {
var template = new Array();
-
template['file'] = '../../plugins/advimage/image.htm';
- template['width'] = 430;
- template['height'] = 380;
+ template['width'] = 500;
+ template['height'] = 350;
// Language specific width and height addons
template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0);
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/image.htm
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/image.htm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/advimage/image.htm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -65,7 +65,7 @@
formObj.width.value = tinyMCE.getWindowArg('width');
formObj.height.value = tinyMCE.getWindowArg('height');
- formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+ formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
strOnOver = tinyMCE.getWindowArg('onmouseover');
strOnOut = tinyMCE.getWindowArg('onmouseout');
@@ -99,15 +99,15 @@
selectByValue(formObj, "image_list3", strOnOut);
// Handle preview
- var htmlprev = '';
+ var htmlprev = '';
var src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
if (src == "")
src = "about:blank";
- htmlprev += ' <iframe id="preview" name="preview" scrolling="auto" '
- htmlprev += ' marginwidth="0" marginheight="0" frameborder="0" src="' + src + '"'
- htmlprev += ' style="margin:0px;border: 1px solid black;width:135px;height:135px"></iframe>';
+ htmlprev += ' <iframe id="preview" name="preview" scrolling="auto" '
+ htmlprev += ' marginwidth="0" marginheight="0" frameborder="0" src="' + src + '"'
+ htmlprev += ' style="margin:0px;border: 1px solid black;width:135px;height:135px"></iframe>';
document.getElementById('prev').innerHTML = htmlprev;
@@ -168,7 +168,7 @@
function resetImageData() {
var formObj = document.forms[0];
- formObj.width.value = formObj.height.value = "";
+ formObj.width.value = formObj.height.value = "";
}
function updateImageData() {
@@ -198,7 +198,7 @@
if (src == "")
src = "about:blank";
- self.preview.location = src;
+ self.preview.location = src;
}
function changeHeight() {
@@ -223,149 +223,149 @@
//-->
</script>
</head>
-<body onload="init();">
- <form onsubmit="insertImage();return false;">
- <table border="0" cellpadding="0" cellspacing="0" width="300">
- <tr>
- <td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
- <tr>
- <td colspan="3" class="title">{$lang_insert_image_title}</td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_src}:</td>
- <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input name="src" type="text" id="src" value="" style="width: 280px" onchange="resetImageData();getImageData();" /></td>
- <td id="browser1"></td>
- </tr>
- </table></td>
- </tr>
- <!-- Image list -->
- <script language="javascript">
- if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
- var html = "";
+<body onload="init();">
+ <form onsubmit="insertImage();return false;">
+ <table border="0" cellpadding="0" cellspacing="0" width="300">
+ <tr>
+ <td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td colspan="3" class="title">{$lang_insert_image_title}</td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_src}:</td>
+ <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input name="src" type="text" id="src" value="" style="width: 280px" onchange="resetImageData();getImageData();" /></td>
+ <td id="browser1"></td>
+ </tr>
+ </table></td>
+ </tr>
+ <!-- Image list -->
+ <script language="javascript">
+ if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+ var html = "";
html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
- html += '<td colspan="2"><select name="image_list" style="width: 280px" onchange="this.form.alt.value=this.options[this.selectedIndex].text;this.form.title.value=this.options[this.selectedIndex].text;this.form.src.value=this.options[this.selectedIndex].value;resetImageData();getImageData();">';
- html += '<option value="">---</option>';
+ html += '<td colspan="2"><select name="image_list" style="width: 280px" onchange="this.form.alt.value=this.options[this.selectedIndex].text;this.form.title.value=this.options[this.selectedIndex].text;this.form.src.value=this.options[this.selectedIndex].value;resetImageData();getImageData();">';
+ html += '<option value="">---</option>';
- for (var i=0; i<tinyMCEImageList.length; i++)
- html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
+ for (var i=0; i<tinyMCEImageList.length; i++)
+ html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
- html += '</select></td></tr>';
+ html += '</select></td></tr>';
- document.write(html);
- }
- </script>
- <!-- /Image list -->
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_alt}:</td>
- <td colspan="2"><input name="alt" type="text" id="alt" value="" style="width: 280px" onblur="if(document.forms[0].title.value==''){ document.forms[0].title.value=this.value; }" onfocus="if(document.forms[0].title.value==''){ document.forms[0].title.value=this.value; }" /></td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_alt2}:</td>
- <td colspan="2"><input name="title" type="text" id="title" value="" style="width: 280px" /></td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_dimensions}:</td>
- <td nowrap="nowrap">
- <input name="width" type="text" id="width" value="" size="5" maxlength="5" style="vertical-align: middle; width: 50px; text-align: center;" onChange="changeHeight();" /> x
- <input name="height" type="text" id="height" value="" size="5" maxlength="5" style="vertical-align: middle; width: 50px; text-align: center;" onChange="changeWidth();" /> px
+ document.write(html);
+ }
+ </script>
+ <!-- /Image list -->
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_alt}:</td>
+ <td colspan="2"><input name="alt" type="text" id="alt" value="" style="width: 280px" onblur="if(document.forms[0].title.value==''){ document.forms[0].title.value=this.value; }" onfocus="if(document.forms[0].title.value==''){ document.forms[0].title.value=this.value; }" /></td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_alt2}:</td>
+ <td colspan="2"><input name="title" type="text" id="title" value="" style="width: 280px" /></td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_dimensions}:</td>
+ <td nowrap="nowrap">
+ <input name="width" type="text" id="width" value="" size="5" maxlength="5" style="vertical-align: middle; width: 50px; text-align: center;" onChange="changeHeight();" /> x
+ <input name="height" type="text" id="height" value="" size="5" maxlength="5" style="vertical-align: middle; width: 50px; text-align: center;" onChange="changeWidth();" /> px
</td>
- <td rowspan="6" valign="top"><div id="prev" name="prev" style="margin:0px;border:none;width:135px;height:135px"></div></td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_border}:</td>
- <td colspan="2"><input name="border" type="text" id="border" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_align}:</td>
- <td><select name="align" style="width: 100px">
- <option value="">{$lang_insert_image_align_default}</option>
- <option value="baseline">{$lang_insert_image_align_baseline}</option>
- <option value="top">{$lang_insert_image_align_top}</option>
- <option value="middle">{$lang_insert_image_align_middle}</option>
- <option value="bottom">{$lang_insert_image_align_bottom}</option>
- <option value="texttop">{$lang_insert_image_align_texttop}</option>
- <option value="absmiddle">{$lang_insert_image_align_absmiddle}</option>
- <option value="absbottom">{$lang_insert_image_align_absbottom}</option>
- <option value="left">{$lang_insert_image_align_left}</option>
- <option value="right">{$lang_insert_image_align_right}</option>
- </select>
- </td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_vspace}:</td>
- <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap">{$lang_insert_image_hspace}:</td>
- <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
- </tr>
- <tr>
- <td colspan="2" nowrap="nowrap"><input type="checkbox" name="onmousemove" id="onmousemove" style="border: 1px none #000000; background-color: transparent; vertical-align: middle;" onclick="if(this.checked==true){ setOnMouseInput('enabled'); }else{ setOnMouseInput('enable'); }" /><label for="onmousemove"><b>{$lang_insert_image_onmousemove}</b>:</label></td>
- </tr>
- <tr>
- <td align="right" nowrap="nowrap" id="showInput1">{$lang_insert_image_mouseover}:</td>
- <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input name="onmouseover" type="text" id="onmouseover" value="" style="width: 280px" /></td>
- <td id="browser2"></td>
- </tr>
- </table></td>
- </tr>
- <!-- Image list -->
- <script language="javascript">
- if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
- var html = "";
+ <td rowspan="6" valign="top"><div id="prev" name="prev" style="margin:0px;border:none;width:135px;height:135px"></div></td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_border}:</td>
+ <td colspan="2"><input name="border" type="text" id="border" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_align}:</td>
+ <td><select name="align" style="width: 100px">
+ <option value="">{$lang_insert_image_align_default}</option>
+ <option value="baseline">{$lang_insert_image_align_baseline}</option>
+ <option value="top">{$lang_insert_image_align_top}</option>
+ <option value="middle">{$lang_insert_image_align_middle}</option>
+ <option value="bottom">{$lang_insert_image_align_bottom}</option>
+ <option value="texttop">{$lang_insert_image_align_texttop}</option>
+ <option value="absmiddle">{$lang_insert_image_align_absmiddle}</option>
+ <option value="absbottom">{$lang_insert_image_align_absbottom}</option>
+ <option value="left">{$lang_insert_image_align_left}</option>
+ <option value="right">{$lang_insert_image_align_right}</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_vspace}:</td>
+ <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap">{$lang_insert_image_hspace}:</td>
+ <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" style="vertical-align: middle; width: 30px; text-align: center;" /></td>
+ </tr>
+ <tr>
+ <td colspan="2" nowrap="nowrap"><input type="checkbox" name="onmousemove" id="onmousemove" style="border: 1px none #000000; background-color: transparent; vertical-align: middle;" onclick="if(this.checked==true){ setOnMouseInput('enabled'); }else{ setOnMouseInput('enable'); }" /><label for="onmousemove"><b>{$lang_insert_image_onmousemove}</b>:</label></td>
+ </tr>
+ <tr>
+ <td align="right" nowrap="nowrap" id="showInput1">{$lang_insert_image_mouseover}:</td>
+ <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input name="onmouseover" type="text" id="onmouseover" value="" style="width: 280px" /></td>
+ <td id="browser2"></td>
+ </tr>
+ </table></td>
+ </tr>
+ <!-- Image list -->
+ <script language="javascript">
+ if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+ var html = "";
- html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
- html += '<td colspan="2"><select name="image_list2" style="width: 280px" onchange="this.form.onmouseover.value=this.options[this.selectedIndex].value;">';
- html += '<option value="">---</option>';
+ html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</tcd>';
+ html += '<td colspan="2"><select name="image_list2" style="width: 280px" onchange="this.form.onmouseover.value=this.options[this.selectedIndex].value;">';
+ html += '<option value="">---</option>';
- for (var i=0; i<tinyMCEImageList.length; i++)
- html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
+ for (var i=0; i<tinyMCEImageList.length; i++)
+ html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
- html += '</select></td></tr>';
+ html += '</select></td></tr>';
- document.write(html);
- }
- </script>
- <!-- /Image list -->
- <tr>
- <td align="right" nowrap="nowrap" id="showInput2">{$lang_insert_image_mouseout}:</td>
- <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
- <tr>
- <td><input name="onmouseout" type="text" id="onmouseout" value="" style="width: 280px" /></td>
- <td id="browser3"></td>
- </tr>
- </table></td>
- </tr>
- <!-- Image list -->
- <script language="javascript">
- if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
- var html = "";
+ document.write(html);
+ }
+ </script>
+ <!-- /Image list -->
+ <tr>
+ <td align="right" nowrap="nowrap" id="showInput2">{$lang_insert_image_mouseout}:</td>
+ <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input name="onmouseout" type="text" id="onmouseout" value="" style="width: 280px" /></td>
+ <td id="browser3"></td>
+ </tr>
+ </table></td>
+ </tr>
+ <!-- Image list -->
+ <script language="javascript">
+ if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+ var html = "";
- html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
- html += '<td colspan="2"><select name="image_list3" style="width: 280px" onchange="this.form.onmouseout.value=this.options[this.selectedIndex].value;">';
- html += '<option value="">---</option>';
+ html += '<tr><td align="right" nowrap="nowrap">{$lang_image_list}:</td>';
+ html += '<td colspan="2"><select name="image_list3" style="width: 280px" onchange="this.form.onmouseout.value=this.options[this.selectedIndex].value;">';
+ html += '<option value="">---</option>';
- for (var i=0; i<tinyMCEImageList.length; i++)
- html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
+ for (var i=0; i<tinyMCEImageList.length; i++)
+ html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';
- html += '</select></td></tr>';
+ html += '</select></td></tr>';
- document.write(html);
- }
- </script>
- <!-- /Image list -->
- <tr>
- <td><input type="button" name="insert" value="{$lang_insert}" onclick="insertImage();" id="insert" /></td>
- <td> </td>
- <td align="right"><input type="button" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" id="cancel" /></td>
- </tr>
- </table></td>
- </tr>
- </table>
+ document.write(html);
+ }
+ </script>
+ <!-- /Image list -->
+ <tr>
+ <td><input type="button" name="insert" value="{$lang_insert}" onclick="insertImage();" id="insert" /></td>
+ <td> </td>
+ <td align="right"><input type="button" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" id="cancel" /></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table>
</form>
-</body>
-</html>
+</body>
+</html>
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -1 +1 @@
-tinyMCE.importPluginLanguagePack('table','en,ar,cs,da,de,el,es,fi,fr_ca,hu,it,ja,ko,nl,no,pl,pt,sv,tw,zh_cn,fr,de');function TinyMCE_table_initInstance(inst){if(tinyMCE.isGecko)tinyMCE.addEvent(inst.getDoc(),"mouseup",TinyMCE_table_mouseDownHandler);inst.tableRowClipboard=null;}function TinyMCE_table_mouseDownHandler(e){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var focusElm=tinyMCE.selectedInstance.getFocusElement();if(elm.nodeName=="BODY"&&(focusElm.nodeName=="TD"||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TD"))){window.setTimeout(function(){var tableElm=tinyMCE.getParentElement(focusElm,"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual']);},10);}}function TinyMCE_table_getControlHTML(control_name){var controls=new Array(['table','table.gif','{$lang_table_desc}','mceInsertTable',true],['delete_col','table_delete_col.gif','{$lang_table_delete_col_desc}','mceTableDeleteCol'],['delete_row','table_delete_row.gif','{$lang_table_delete_row_desc}','mceTableDeleteRow'],['col_after','table_insert_col_after.gif','{$lang_table_insert_col_after_desc}','mceTableInsertColAfter'],['col_before','table_insert_col_before.gif','{$lang_table_insert_col_before_desc}','mceTableInsertColBefore'],['row_after','table_insert_row_after.gif','{$lang_table_insert_row_after_desc}','mceTableInsertRowAfter'],['row_before','table_insert_row_before.gif','{$lang_table_insert_row_before_desc}','mceTableInsertRowBefore'],['row_props','table_row_props.gif','{$lang_table_row_desc}','mceTableRowProps',true],['cell_props','table_cell_props.gif','{$lang_table_cell_desc}','mceTableCellProps',true],['split_cells','table_split_cells.gif','{$lang_table_split_cells_desc}','mceTableSplitCells',true],['merge_cells','table_merge_cells.gif','{$lang_table_merge_cells_desc}','mceTableMergeCells',true]);for(var i=0;i<controls.length;i++){var but=controls[i];var safariPatch='" onclick="';if(tinyMCE.isSafari)safariPatch="";if(but[0]==control_name&&(tinyMCE.isMSIE||!tinyMCE.settings['button_tile_map']))return'<img id="{$editor_id}_'+but[0]+'" src="{$pluginurl}/images/'+but[1]+'" title="'+but[2]+'" width="20" height="20" class="mceButtonDisabled" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');'+safariPatch+'tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+')">';else if(but[0]==control_name)return'<img id="{$editor_id}_'+but[0]+'" src="{$themeurl}/images/spacer.gif" style="background-image:url({$pluginurl}/images/buttons.gif); background-position: '+(0-(i*20))+'px 0px" title="'+but[2]+'" width="20" height="20" class="mceButtonDisabled" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');'+safariPatch+'tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+')">';}if(control_name=="tablecontrols"){var html="";html+=tinyMCE.getControlHTML("table");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_props");html+=tinyMCE.getControlHTML("cell_props");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_before");html+=tinyMCE.getControlHTML("row_after");html+=tinyMCE.getControlHTML("delete_row");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("col_before");html+=tinyMCE.getControlHTML("col_after");html+=tinyMCE.getControlHTML("delete_col");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("split_cells");html+=tinyMCE.getControlHTML("merge_cells");return html;}return"";}function TinyMCE_table_execCommand(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();var trElm=tinyMCE.getParentElement(focusElm,"tr");var tdElm=tinyMCE.getParentElement(focusElm,"td");var tableElm=tinyMCE.getParentElement(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function makeTD(){var newTD=doc.createElement("td");newTD.innerHTML=" ";}function getColRowSpan(td){var colspan=tinyMCE.getAttrib(td,"colspan");var rowspan=tinyMCE.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getTableGrid(table){var grid=new Array();var rows=table.rows;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].cells.length;x++){var td=rows[y].cells[x];var sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(var y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=new Array();for(var x2=xstart;x2<xstart+sd['colspan'];x2++){grid[y2][x2]=td;}}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table);var cpos=getCellPos(grid,td);if(new_tr.cells.length!=tr.childNodes.length){var cells=tr.childNodes;var lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,name){while((node=node.nextSibling)!=null){if(node.nodeName==name)return node;}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");newTD.innerHTML=" ";if(tinyMCE.isMSIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=tinyMCE.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");newTD.innerHTML=" ";}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableRowProps":if(trElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/row.htm';if(tinyMCE.settings['table_color_fields']){template['width']=400;template['height']=220;}else{template['width']=340;template['height']=220;}tinyMCE.openWindow(template,{editor_id:inst.editorId,align:tinyMCE.getAttrib(trElm,'align'),valign:tinyMCE.getAttrib(trElm,'valign'),height:tinyMCE.getAttrib(trElm,'height'),className:tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm,'class'),false),bordercolor:tinyMCE.getAttrib(trElm,'bordercolor'),bgcolor:tinyMCE.getAttrib(trElm,'bgcolor')});}else{inst.execCommand("mceAddUndoLevel");trElm.setAttribute('align',value['align']);trElm.setAttribute('vAlign',value['valign']);trElm.setAttribute('height',value['height']);trElm.setAttribute('bordercolor',value['bordercolor']);trElm.setAttribute('bgcolor',value['bgcolor']);tinyMCE.setAttrib(trElm,'class',value['className']);trElm.borderColor=value['bordercolor'];trElm.bgColor=value['bgcolor'];}tinyMCE.triggerNodeChange();return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/cell.htm';if(tinyMCE.settings['table_color_fields']){template['width']=400;template['height']=240;}else{template['width']=340;template['height']=220;}tinyMCE.openWindow(template,{editor_id:inst.editorId,align:tinyMCE.getAttrib(tdElm,'align'),valign:tinyMCE.getAttrib(tdElm,'valign'),width:tinyMCE.getAttrib(tdElm,'width'),height:tinyMCE.getAttrib(tdElm,'height'),className:tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm,'class'),false),bordercolor:tinyMCE.getAttrib(tdElm,'bordercolor'),bgcolor:tinyMCE.getAttrib(tdElm,'bgcolor')});}else{inst.execCommand("mceAddUndoLevel");tdElm.setAttribute('align',value['align']);tdElm.setAttribute('vAlign',value['valign']);tdElm.setAttribute('width',value['width']);tdElm.setAttribute('height',value['height']);tdElm.setAttribute('bordercolor',value['bordercolor']);tdElm.setAttribute('bgcolor',value['bgcolor']);tinyMCE.setAttrib(tdElm,'class',tinyMCE.getVisualAidClass(value['className']));tdElm.borderColor=value['bordercolor'];tdElm.bgColor=value['bgcolor'];}tinyMCE.triggerNodeChange();return true;case"mceInsertTable":if(user_interface){var cols=2,rows=2,border=0,cellpadding="",cellspacing="",align="",width="",height="",bordercolor="",bgcolor="",action="insert",className="";tinyMCE.tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");if(tinyMCE.tableElm&&value!="insert"){var rowsAr=tinyMCE.tableElm.rows;var cols=0;for(var i=0;i<rowsAr.length;i++)if(rowsAr[i].cells.length>cols)cols=rowsAr[i].cells.length;cols=cols;rows=rowsAr.length;border=tinyMCE.getAttrib(tinyMCE.tableElm,'border',border);cellpadding=tinyMCE.getAttrib(tinyMCE.tableElm,'cellpadding',"");cellspacing=tinyMCE.getAttrib(tinyMCE.tableElm,'cellspacing',"");width=tinyMCE.getAttrib(tinyMCE.tableElm,'width',width);height=tinyMCE.getAttrib(tinyMCE.tableElm,'height',height);bordercolor=tinyMCE.getAttrib(tinyMCE.tableElm,'bordercolor',bordercolor);bgcolor=tinyMCE.getAttrib(tinyMCE.tableElm,'bgcolor',bgcolor);align=tinyMCE.getAttrib(tinyMCE.tableElm,'align',align);className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm,'class'),false);if(tinyMCE.isMSIE){width=tinyMCE.tableElm.style.pixelWidth==0?tinyMCE.tableElm.getAttribute("width"):tinyMCE.tableElm.style.pixelWidth;height=tinyMCE.tableElm.style.pixelHeight==0?tinyMCE.tableElm.getAttribute("height"):tinyMCE.tableElm.style.pixelHeight;}action="update";}var template=new Array();template['file']='../../plugins/table/table.htm';if(tinyMCE.settings['table_color_fields']){template['width']=400;template['height']=240;}else{template['width']=340;template['height']=220;}template['width']+=tinyMCE.getLang('lang_insert_table_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_table_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,cols:cols,rows:rows,border:border,cellpadding:cellpadding,cellspacing:cellspacing,align:align,width:width,height:height,bordercolor:bordercolor,bgcolor:bgcolor,action:action,className:className});}else{var html='';var cols=2,rows=2,border=0,cellpadding=-1,cellspacing=-1,align,width,height,className,action;if(typeof(value)=='object'){cols=value['cols'];rows=value['rows'];border=value['border']!=""?value['border']:0;cellpadding=value['cellpadding']!=""?value['cellpadding']:-1;cellspacing=value['cellspacing']!=""?value['cellspacing']:-1;align=value['align'];width=value['width'];height=value['height'];bordercolor=value['bordercolor'];bgcolor=value['bgcolor'];className=value['className'];action=value['action'];}if(tinyMCE.tableElm&&action=="update"){inst.execCommand("mceAddUndoLevel");tinyMCE.setAttrib(tinyMCE.tableElm,'cellPadding',cellpadding,true);tinyMCE.setAttrib(tinyMCE.tableElm,'cellSpacing',cellspacing,true);tinyMCE.setAttrib(tinyMCE.tableElm,'border',border,true);tinyMCE.setAttrib(tinyMCE.tableElm,'width',width,true);tinyMCE.setAttrib(tinyMCE.tableElm,'height',height,true);tinyMCE.setAttrib(tinyMCE.tableElm,'bordercolor',bordercolor);tinyMCE.setAttrib(tinyMCE.tableElm,'bgcolor',bgcolor);tinyMCE.setAttrib(tinyMCE.tableElm,'align',align);tinyMCE.setAttrib(tinyMCE.tableElm,'class',className);if(tinyMCE.isMSIE){tinyMCE.tableElm.style.pixelWidth=(width==null||width=="")?0:width;tinyMCE.tableElm.style.pixelHeight=(height==null||height=="")?0:height;tinyMCE.tableElm.borderColor=bordercolor;tinyMCE.tableElm.bgColor=bgcolor;}tinyMCE.handleVisualAid(tinyMCE.tableElm,false,inst.visualAid);tinyMCE.tableElm.outerHTML=tinyMCE.tableElm.outerHTML;tinyMCE.triggerNodeChange();return true;}html+="<table class=\"wiki-table\" cellpadding=\"0\" cellspacing=\"0\">";for(var y=0;y<rows;y++){if(y==0){html+="<tr>";for(var x=0;x<cols;x++)html+='<td> </td>';html+="</tr>";}else{html+="<tr>";for(var x=0;x<cols;x++)html+='<td> </td>';html+="</tr>";}}html+="</table>";inst.execCommand('mceInsertContent',false,html);}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":inst.execCommand("mceAddUndoLevel");if(!tableElm)return true;if(tableElm.firstChild&&tableElm.firstChild.nodeName.toLowerCase()=="tbody")tableElm=tableElm.firstChild;if(tableElm&&trElm){switch(command){case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1){tableElm.parentNode.removeChild(tableElm);return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;inst.selectNode(getCell(grid,cpos.rowindex,0),true,true);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.rowSpan=tdElm.rowSpan;tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.rowSpan=tdElm.rowSpan;var nextTD=nextElm(tdElm,"TD");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if(grid.length>1&&grid[0].length<=1){tableElm.parentNode.removeChild(tableElm);return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}cpos.cellindex--;if(cpos.cellindex<0)cpos.cellindex=0;inst.selectNode(getCell(grid,0,cpos.cellindex),true,true);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");newTD.innerHTML=" ";trElm.insertBefore(newTD,nextElm(tdElm,"TD"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");break;case"mceTableMergeCells":var rows=new Array();var sel=inst.getSel();var grid=getTableGrid(tableElm);if(tinyMCE.isMSIE||sel.rangeCount==1){if(user_interface){var template=new Array();var sp=getColRowSpan(tdElm);template['file']='../../plugins/table/merge_cells.htm';template['width']=160;template['height']=220;tinyMCE.openWindow(template,{editor_id:inst.editorId,action:"update",numcols:sp.colspan,numrows:sp.rowspan});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=new Array();for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;}}}else{var cells=new Array();var sel=inst.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=new Array();for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=new Array();var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=tinyMCE.regexpReplace(html,"[ \t\r\n]","");if(chk!="<br/>"&&chk!="<br>"&&chk!=" "&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}break;}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual']);tinyMCE.triggerNodeChange();inst.repaint();}return true;}return false;}function TinyMCE_table_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var colspan="1",rowspan="1";var inst=tinyMCE.getInstanceById(editor_id);tinyMCE.switchClassSticky(editor_id+'_table','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_row_props','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_cell_props','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_row_before','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_row_after','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_delete_row','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_col_before','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_col_after','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_delete_col','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_split_cells','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_merge_cells','mceButtonDisabled',true);if(tinyMCE.getParentElement(node,"tr"))tinyMCE.switchClassSticky(editor_id+'_row_props','mceButtonSelected',false);if(tdElm=tinyMCE.getParentElement(node,"td")){tinyMCE.switchClassSticky(editor_id+'_cell_props','mceButtonSelected',false);tinyMCE.switchClassSticky(editor_id+'_row_before','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_row_after','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_delete_row','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_col_before','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_col_after','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_delete_col','mceButtonNormal',false);colspan=tinyMCE.getAttrib(tdElm,"colspan");rowspan=tinyMCE.getAttrib(tdElm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;if(colspan!="1"||rowspan!="1")tinyMCE.switchClassSticky(editor_id+'_split_cells','mceButtonNormal',false);}if(tinyMCE.getParentElement(node,"table")){tinyMCE.switchClassSticky(editor_id+'_table','mceButtonSelected');tinyMCE.switchClassSticky(editor_id+'_merge_cells','mceButtonNormal',false);}}
\ No newline at end of file
+tinyMCE.importPluginLanguagePack('table','en,ar,cs,da,de,el,es,fi,fr_ca,hu,it,ja,ko,nl,no,pl,pt,sv,tw,zh_cn,fr,de');function TinyMCE_table_initInstance(inst){if(tinyMCE.isGecko)tinyMCE.addEvent(inst.getDoc(),"mouseup",TinyMCE_table_mouseDownHandler);inst.tableRowClipboard=null;}function TinyMCE_table_mouseDownHandler(e){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var focusElm=tinyMCE.selectedInstance.getFocusElement();if(elm.nodeName=="BODY"&&(focusElm.nodeName=="TD"||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TD"))){window.setTimeout(function(){var tableElm=tinyMCE.getParentElement(focusElm,"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual']);},10);}}function TinyMCE_table_getControlHTML(control_name){var controls=new Array(['table','table.gif','{$lang_table_desc}','mceInsertTable',true],['delete_col','table_delete_col.gif','{$lang_table_delete_col_desc}','mceTableDeleteCol'],['delete_row','table_delete_row.gif','{$lang_table_delete_row_desc}','mceTableDeleteRow'],['col_after','table_insert_col_after.gif','{$lang_table_insert_col_after_desc}','mceTableInsertColAfter'],['col_before','table_insert_col_before.gif','{$lang_table_insert_col_before_desc}','mceTableInsertColBefore'],['row_after','table_insert_row_after.gif','{$lang_table_insert_row_after_desc}','mceTableInsertRowAfter'],['row_before','table_insert_row_before.gif','{$lang_table_insert_row_before_desc}','mceTableInsertRowBefore'],['row_props','table_row_props.gif','{$lang_table_row_desc}','mceTableRowProps',true],['cell_props','table_cell_props.gif','{$lang_table_cell_desc}','mceTableCellProps',true],['split_cells','table_split_cells.gif','{$lang_table_split_cells_desc}','mceTableSplitCells',true],['merge_cells','table_merge_cells.gif','{$lang_table_merge_cells_desc}','mceTableMergeCells',true]);for(var i=0;i<controls.length;i++){var but=controls[i];var safariPatch='" onclick="';if(tinyMCE.isSafari)safariPatch="";if(but[0]==control_name&&(tinyMCE.isMSIE||!tinyMCE.settings['button_tile_map']))return'<img id="{$editor_id}_'+but[0]+'" src="{$pluginurl}/images/'+but[1]+'" title="'+but[2]+'" width="20" height="20" class="mceButtonDisabled" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');'+safariPatch+'tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+')">';else if(but[0]==control_name)return'<img id="{$editor_id}_'+but[0]+'" src="{$themeurl}/images/spacer.gif" style="background-image:url({$pluginurl}/images/buttons.gif); background-position: '+(0-(i*20))+'px 0px" title="'+but[2]+'" width="20" height="20" class="mceButtonDisabled" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');'+safariPatch+'tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+')">';}if(control_name=="tablecontrols"){var html="";html+=tinyMCE.getControlHTML("table");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_props");html+=tinyMCE.getControlHTML("cell_props");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_before");html+=tinyMCE.getControlHTML("row_after");html+=tinyMCE.getControlHTML("delete_row");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("col_before");html+=tinyMCE.getControlHTML("col_after");html+=tinyMCE.getControlHTML("delete_col");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("split_cells");html+=tinyMCE.getControlHTML("merge_cells");return html;}return"";}function TinyMCE_table_execCommand(editor_id,element,command,user_interface,value){var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();var trElm=tinyMCE.getParentElement(focusElm,"tr");var tdElm=tinyMCE.getParentElement(focusElm,"td");var tableElm=tinyMCE.getParentElement(focusElm,"table");var doc=inst.contentWindow.document;var tableBorder=tableElm?tableElm.getAttribute("border"):"";if(trElm&&tdElm==null)tdElm=trElm.cells[0];function inArray(ar,v){for(var i=0;i<ar.length;i++){if(ar[i].length>0&&inArray(ar[i],v))return true;if(ar[i]==v)return true;}return false;}function makeTD(){var newTD=doc.createElement("td");newTD.innerHTML=" ";}function getColRowSpan(td){var colspan=tinyMCE.getAttrib(td,"colspan");var rowspan=tinyMCE.getAttrib(td,"rowspan");colspan=colspan==""?1:parseInt(colspan);rowspan=rowspan==""?1:parseInt(rowspan);return{colspan:colspan,rowspan:rowspan};}function getCellPos(grid,td){for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){if(grid[y][x]==td)return{cellindex:x,rowindex:y};}}return null;}function getCell(grid,row,col){if(grid[row]&&grid[row][col])return grid[row][col];return null;}function getTableGrid(table){var grid=new Array();var rows=table.rows;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].cells.length;x++){var td=rows[y].cells[x];var sd=getColRowSpan(td);for(xstart=x;grid[y]&&grid[y][xstart];xstart++);for(var y2=y;y2<y+sd['rowspan'];y2++){if(!grid[y2])grid[y2]=new Array();for(var x2=xstart;x2<xstart+sd['colspan'];x2++){grid[y2][x2]=td;}}}}return grid;}function trimRow(table,tr,td,new_tr){var grid=getTableGrid(table);var cpos=getCellPos(grid,td);if(new_tr.cells.length!=tr.childNodes.length){var cells=tr.childNodes;var lastElm=null;for(var x=0;td=getCell(grid,cpos.rowindex,x);x++){var remove=true;var sd=getColRowSpan(td);if(inArray(cells,td)){new_tr.childNodes[x]._delete=true;}else if((lastElm==null||td!=lastElm)&&sd.colspan>1){for(var i=x;i<x+td.colSpan;i++)new_tr.childNodes[i]._delete=true;}if((lastElm==null||td!=lastElm)&&sd.rowspan>1)td.rowSpan=sd.rowspan+1;lastElm=td;}deleteMarked(tableElm);}}function prevElm(node,name){while((node=node.previousSibling)!=null){if(node.nodeName==name)return node;}return null;}function nextElm(node,name){while((node=node.nextSibling)!=null){if(node.nodeName==name)return node;}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");newTD.innerHTML=" ";if(tinyMCE.isMSIE)trNext.insertBefore(newTD,trNext.cells(td_elm.cellIndex));else trNext.insertBefore(newTD,trNext.cells[td_elm.cellIndex]);trNext=nextElm(trNext,"TR");}}function copyRow(doc,table,tr){var grid=getTableGrid(table);var newTR=tr.cloneNode(false);var cpos=getCellPos(grid,tr.cells[0]);var lastCell=null;var tableBorder=tinyMCE.getAttrib(table,"border");var tdElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){var newTD=null;if(lastCell!=tdElm){for(var i=0;i<tr.cells.length;i++){if(tdElm==tr.cells[i]){newTD=tdElm.cloneNode(true);break;}}}if(newTD==null){newTD=doc.createElement("td");newTD.innerHTML=" ";}newTD.colSpan=1;newTD.rowSpan=1;newTR.appendChild(newTD);lastCell=tdElm;}return newTR;}switch(command){case"mceTableRowProps":if(trElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/row.htm';if(tinyMCE.settings['table_color_fields']){template['width']=400;template['height']=220;}else{template['width']=340;template['height']=220;}tinyMCE.openWindow(template,{editor_id:inst.editorId,align:tinyMCE.getAttrib(trElm,'align'),valign:tinyMCE.getAttrib(trElm,'valign'),height:tinyMCE.getAttrib(trElm,'height'),className:tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm,'class'),false),bordercolor:tinyMCE.getAttrib(trElm,'bordercolor'),bgcolor:tinyMCE.getAttrib(trElm,'bgcolor')});}else{inst.execCommand("mceAddUndoLevel");trElm.setAttribute('align',value['align']);trElm.setAttribute('vAlign',value['valign']);trElm.setAttribute('height',value['height']);trElm.setAttribute('bordercolor',value['bordercolor']);trElm.setAttribute('bgcolor',value['bgcolor']);tinyMCE.setAttrib(trElm,'class',value['className']);trElm.borderColor=value['bordercolor'];trElm.bgColor=value['bgcolor'];}tinyMCE.triggerNodeChange();return true;case"mceTableCellProps":if(tdElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/cell.htm';if(tinyMCE.settings['table_color_fields']){template['width']=400;template['height']=240;}else{template['width']=340;template['height']=220;}tinyMCE.openWindow(template,{editor_id:inst.editorId,align:tinyMCE.getAttrib(tdElm,'align'),valign:tinyMCE.getAttrib(tdElm,'valign'),width:tinyMCE.getAttrib(tdElm,'width'),height:tinyMCE.getAttrib(tdElm,'height'),className:tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm,'class'),false),bordercolor:tinyMCE.getAttrib(tdElm,'bordercolor'),bgcolor:tinyMCE.getAttrib(tdElm,'bgcolor')});}else{inst.execCommand("mceAddUndoLevel");tdElm.setAttribute('align',value['align']);tdElm.setAttribute('vAlign',value['valign']);tdElm.setAttribute('width',value['width']);tdElm.setAttribute('height',value['height']);tdElm.setAttribute('bordercolor',value['bordercolor']);tdElm.setAttribute('bgcolor',value['bgcolor']);tinyMCE.setAttrib(tdElm,'class',tinyMCE.getVisualAidClass(value['className']));tdElm.borderColor=value['bordercolor'];tdElm.bgColor=value['bgcolor'];}tinyMCE.triggerNodeChange();return true;case"mceInsertTable":if(user_interface){var cols=2,rows=2,border=0,cellpadding="",cellspacing="",align="",width="",height="",bordercolor="",bgcolor="",action="insert",className="";tinyMCE.tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");if(tinyMCE.tableElm&&value!="insert"){var rowsAr=tinyMCE.tableElm.rows;var cols=0;for(var i=0;i<rowsAr.length;i++)if(rowsAr[i].cells.length>cols)cols=rowsAr[i].cells.length;cols=cols;rows=rowsAr.length;border=tinyMCE.getAttrib(tinyMCE.tableElm,'border',border);cellpadding=tinyMCE.getAttrib(tinyMCE.tableElm,'cellpadding',"");cellspacing=tinyMCE.getAttrib(tinyMCE.tableElm,'cellspacing',"");width=tinyMCE.getAttrib(tinyMCE.tableElm,'width',width);height=tinyMCE.getAttrib(tinyMCE.tableElm,'height',height);bordercolor=tinyMCE.getAttrib(tinyMCE.tableElm,'bordercolor',bordercolor);bgcolor=tinyMCE.getAttrib(tinyMCE.tableElm,'bgcolor',bgcolor);align=tinyMCE.getAttrib(tinyMCE.tableElm,'align',align);className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm,'class'),false);if(tinyMCE.isMSIE){width=tinyMCE.tableElm.style.pixelWidth==0?tinyMCE.tableElm.getAttribute("width"):tinyMCE.tableElm.style.pixelWidth;height=tinyMCE.tableElm.style.pixelHeight==0?tinyMCE.tableElm.getAttribute("height"):tinyMCE.tableElm.style.pixelHeight;}action="update";}var template=new Array();template['file']='../../plugins/table/table.htm';if(tinyMCE.settings['table_color_fields']){template['width']=400;template['height']=240;}else{template['width']=340;template['height']=220;}template['width']+=tinyMCE.getLang('lang_insert_table_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_table_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,cols:cols,rows:rows,border:border,cellpadding:cellpadding,cellspacing:cellspacing,align:align,width:width,height:height,bordercolor:bordercolor,bgcolor:bgcolor,action:action,className:className});}else{var html='';var cols=2,rows=2,border=0,cellpadding=-1,cellspacing=-1,align,width,height,className,action;if(typeof(value)=='object'){cols=value['cols'];rows=value['rows'];border=value['border']!=""?value['border']:0;cellpadding=value['cellpadding']!=""?value['cellpadding']:-1;cellspacing=value['cellspacing']!=""?value['cellspacing']:-1;align=value['align'];width=value['width'];height=value['height'];bordercolor=value['bordercolor'];bgcolor=value['bgcolor'];className=value['className'];action=value['action'];}if(tinyMCE.tableElm&&action=="update"){inst.execCommand("mceAddUndoLevel");tinyMCE.setAttrib(tinyMCE.tableElm,'cellPadding',cellpadding,true);tinyMCE.setAttrib(tinyMCE.tableElm,'cellSpacing',cellspacing,true);tinyMCE.setAttrib(tinyMCE.tableElm,'border',border,true);tinyMCE.setAttrib(tinyMCE.tableElm,'width',width,true);tinyMCE.setAttrib(tinyMCE.tableElm,'height',height,true);tinyMCE.setAttrib(tinyMCE.tableElm,'bordercolor',bordercolor);tinyMCE.setAttrib(tinyMCE.tableElm,'bgcolor',bgcolor);tinyMCE.setAttrib(tinyMCE.tableElm,'align',align);tinyMCE.setAttrib(tinyMCE.tableElm,'class',className);if(tinyMCE.isMSIE){tinyMCE.tableElm.style.pixelWidth=(width==null||width=="")?0:width;tinyMCE.tableElm.style.pixelHeight=(height==null||height=="")?0:height;tinyMCE.tableElm.borderColor=bordercolor;tinyMCE.tableElm.bgColor=bgcolor;}tinyMCE.handleVisualAid(tinyMCE.tableElm,false,inst.visualAid);tinyMCE.tableElm.outerHTML=tinyMCE.tableElm.outerHTML;tinyMCE.triggerNodeChange();return true;}html+="<table class=\"wiki-table\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">";for(var y=0;y<rows;y++){if(y==0){html+="<tr>";for(var x=0;x<cols;x++)html+='<td style=\"background:#b6c5f2;font-weight:bold;\"> </td>';html+="</tr>";}else{html+="<tr>";for(var x=0;x<cols;x++)html+='<td style=\"background:#FFFFFF\"> </td>';html+="</tr>";}}html+="</table>";inst.execCommand('mceInsertContent',false,html);}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":inst.execCommand("mceAddUndoLevel");if(!tableElm)return true;if(tableElm.firstChild&&tableElm.firstChild.nodeName.toLowerCase()=="tbody")tableElm=tableElm.firstChild;if(tableElm&&trElm){switch(command){case"mceTableInsertRowBefore":if(!trElm||!tdElm)return true;trElm.bgColor="#b6c5f2";var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.colSpan=tdElm.colSpan;newTD.bgColor="#b6c5f2";newTD.style.cssText="font-weight:bold;";newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTableCutRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);inst.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!trElm||!tdElm)return true;inst.tableRowClipboard=copyRow(doc,tableElm,trElm);break;case"mceTablePasteRowBefore":if(!trElm||!tdElm)return true;var newTR=inst.tableRowClipboard.cloneNode(true);var prevTR=prevElm(trElm,"TR");if(prevTR!=null)trimRow(tableElm,prevTR,prevTR.cells[0],newTR);trElm.parentNode.insertBefore(newTR,trElm);break;case"mceTablePasteRowAfter":if(!trElm||!tdElm)return true;var nextTR=nextElm(trElm,"TR");var newTR=inst.tableRowClipboard.cloneNode(true);trimRow(tableElm,trElm,tdElm,newTR);if(nextTR==null)trElm.parentNode.appendChild(newTR);else nextTR.parentNode.insertBefore(newTR,nextTR);break;case"mceTableInsertRowAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var newTR=doc.createElement("tr");var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['rowspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.colSpan=tdElm.colSpan;newTR.appendChild(newTD);}else tdElm.rowSpan=sd['rowspan']+1;lastTDElm=tdElm;}}if(newTR.hasChildNodes()){var nextTR=nextElm(trElm,"TR");if(nextTR)nextTR.parentNode.insertBefore(newTR,nextTR);else tableElm.appendChild(newTR);}break;case"mceTableDeleteRow":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);if(grid.length==1){tableElm.parentNode.removeChild(tableElm);return true;}var cells=trElm.cells;var nextTR=nextElm(trElm,"TR");for(var x=0;x<cells.length;x++){if(cells[x].rowSpan>1){var newTD=cells[x].cloneNode(true);var sd=getColRowSpan(cells[x]);newTD.rowSpan=sd.rowspan-1;var nextTD=nextTR.cells[x];if(nextTD==null)nextTR.appendChild(newTD);else nextTR.insertBefore(newTD,nextTD);}}var lastTDElm=null;for(var x=0;tdElm=getCell(grid,cpos.rowindex,x);x++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd.rowspan>1){tdElm.rowSpan=sd.rowspan-1;}else{trElm=tdElm.parentNode;if(trElm.parentNode)trElm._delete=true;}lastTDElm=tdElm;}}deleteMarked(tableElm);cpos.rowindex--;if(cpos.rowindex<0)cpos.rowindex=0;inst.selectNode(getCell(grid,cpos.rowindex,0),true,true);break;case"mceTableInsertColBefore":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.rowSpan=tdElm.rowSpan;if(y==0){newTD.bgColor="#b6c5f2";newTD.style.cssText="font-weight:bold;";}tdElm.parentNode.insertBefore(newTD,tdElm);}else tdElm.colSpan++;lastTDElm=tdElm;}}break;case"mceTableInsertColAfter":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']==1){var newTD=doc.createElement("td");newTD.innerHTML=" ";newTD.rowSpan=tdElm.rowSpan;if(y==0){newTD.bgColor="#b6c5f2";newTD.style.cssText="font-weight:bold;";}var nextTD=nextElm(tdElm,"TD");if(nextTD==null)tdElm.parentNode.appendChild(newTD);else nextTD.parentNode.insertBefore(newTD,nextTD);}else tdElm.colSpan++;lastTDElm=tdElm;}}break;case"mceTableDeleteCol":if(!trElm||!tdElm)return true;var grid=getTableGrid(tableElm);var cpos=getCellPos(grid,tdElm);var lastTDElm=null;if(grid.length>1&&grid[0].length<=1){tableElm.parentNode.removeChild(tableElm);return true;}for(var y=0;tdElm=getCell(grid,y,cpos.cellindex);y++){if(tdElm!=lastTDElm){var sd=getColRowSpan(tdElm);if(sd['colspan']>1)tdElm.colSpan=sd['colspan']-1;else{if(tdElm.parentNode)tdElm.parentNode.removeChild(tdElm);}lastTDElm=tdElm;}}cpos.cellindex--;if(cpos.cellindex<0)cpos.cellindex=0;inst.selectNode(getCell(grid,0,cpos.cellindex),true,true);break;case"mceTableSplitCells":if(!trElm||!tdElm)return true;var spandata=getColRowSpan(tdElm);var colspan=spandata["colspan"];var rowspan=spandata["rowspan"];if(colspan>1||rowspan>1){tdElm.colSpan=1;for(var i=1;i<colspan;i++){var newTD=doc.createElement("td");newTD.innerHTML=" ";trElm.insertBefore(newTD,nextElm(tdElm,"TD"));if(rowspan>1)addRows(newTD,trElm,rowspan);}addRows(tdElm,trElm,rowspan);}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");break;case"mceTableMergeCells":var rows=new Array();var sel=inst.getSel();var grid=getTableGrid(tableElm);if(tinyMCE.isMSIE||sel.rangeCount==1){if(user_interface){var template=new Array();var sp=getColRowSpan(tdElm);template['file']='../../plugins/table/merge_cells.htm';template['width']=160;template['height']=220;tinyMCE.openWindow(template,{editor_id:inst.editorId,action:"update",numcols:sp.colspan,numrows:sp.rowspan});return true;}else{var numRows=parseInt(value['numrows']);var numCols=parseInt(value['numcols']);var cpos=getCellPos(grid,tdElm);if((""+numRows)=="NaN")numRows=1;if((""+numCols)=="NaN")numCols=1;var tRows=tableElm.rows;for(var y=cpos.rowindex;y<grid.length;y++){var rowCells=new Array();for(var x=cpos.cellindex;x<grid[y].length;x++){var td=getCell(grid,y,x);if(td&&!inArray(rows,td)&&!inArray(rowCells,td)){var cp=getCellPos(grid,td);if(cp.cellindex<cpos.cellindex+numCols&&cp.rowindex<cpos.rowindex+numRows)rowCells[rowCells.length]=td;}}if(rowCells.length>0)rows[rows.length]=rowCells;}}}else{var cells=new Array();var sel=inst.getSel();var lastTR=null;var curRow=null;var x1=-1,y1=-1,x2,y2;if(sel.rangeCount<2)return true;for(var i=0;i<sel.rangeCount;i++){var rng=sel.getRangeAt(i);var tdElm=rng.startContainer.childNodes[rng.startOffset];if(!tdElm)break;if(tdElm.nodeName=="TD")cells[cells.length]=tdElm;}var tRows=tableElm.rows;for(var y=0;y<tRows.length;y++){var rowCells=new Array();for(var x=0;x<tRows[y].cells.length;x++){var td=tRows[y].cells[x];for(var i=0;i<cells.length;i++){if(td==cells[i]){rowCells[rowCells.length]=td;}}}if(rowCells.length>0)rows[rows.length]=rowCells;}var curRow=new Array();var lastTR=null;for(var y=0;y<grid.length;y++){for(var x=0;x<grid[y].length;x++){grid[y][x]._selected=false;for(var i=0;i<cells.length;i++){if(grid[y][x]==cells[i]){if(x1==-1){x1=x;y1=y;}x2=x;y2=y;grid[y][x]._selected=true;}}}}for(var y=y1;y<=y2;y++){for(var x=x1;x<=x2;x++){if(!grid[y][x]._selected){alert("Invalid selection for merge.");return true;}}}}var rowSpan=1,colSpan=1;var lastRowSpan=-1;for(var y=0;y<rows.length;y++){var rowColSpan=0;for(var x=0;x<rows[y].length;x++){var sd=getColRowSpan(rows[y][x]);rowColSpan+=sd['colspan'];if(lastRowSpan!=-1&&sd['rowspan']!=lastRowSpan){alert("Invalid selection for merge.");return true;}lastRowSpan=sd['rowspan'];}if(rowColSpan>colSpan)colSpan=rowColSpan;lastRowSpan=-1;}var lastColSpan=-1;for(var x=0;x<rows[0].length;x++){var colRowSpan=0;for(var y=0;y<rows.length;y++){var sd=getColRowSpan(rows[y][x]);colRowSpan+=sd['rowspan'];if(lastColSpan!=-1&&sd['colspan']!=lastColSpan){alert("Invalid selection for merge.");return true;}lastColSpan=sd['colspan'];}if(colRowSpan>rowSpan)rowSpan=colRowSpan;lastColSpan=-1;}tdElm=rows[0][0];tdElm.rowSpan=rowSpan;tdElm.colSpan=colSpan;for(var y=0;y<rows.length;y++){for(var x=0;x<rows[y].length;x++){var html=rows[y][x].innerHTML;var chk=tinyMCE.regexpReplace(html,"[ \t\r\n]","");if(chk!="<br/>"&&chk!="<br>"&&chk!=" "&&(x+y>0))tdElm.innerHTML+=html;if(rows[y][x]!=tdElm&&!rows[y][x]._deleted){var cpos=getCellPos(grid,rows[y][x]);var tr=rows[y][x].parentNode;tr.removeChild(rows[y][x]);rows[y][x]._deleted=true;if(!tr.hasChildNodes()){tr.parentNode.removeChild(tr);var lastCell=null;for(var x=0;cellElm=getCell(grid,cpos.rowindex,x);x++){if(cellElm!=lastCell&&cellElm.rowSpan>1)cellElm.rowSpan--;lastCell=cellElm;}if(tdElm.rowSpan>1)tdElm.rowSpan--;}}}}break;}tableElm=tinyMCE.getParentElement(inst.getFocusElement(),"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual']);tinyMCE.triggerNodeChange();inst.repaint();}return true;}return false;}function TinyMCE_table_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){var colspan="1",rowspan="1";var inst=tinyMCE.getInstanceById(editor_id);tinyMCE.switchClassSticky(editor_id+'_table','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_row_props','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_cell_props','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_row_before','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_row_after','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_delete_row','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_col_before','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_col_after','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_delete_col','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_split_cells','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_merge_cells','mceButtonDisabled',true);if(tinyMCE.getParentElement(node,"tr"))tinyMCE.switchClassSticky(editor_id+'_row_props','mceButtonSelected',false);if(tdElm=tinyMCE.getParentElement(node,"td")){tinyMCE.switchClassSticky(editor_id+'_cell_props','mceButtonSelected',false);tinyMCE.switchClassSticky(editor_id+'_row_before','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_row_after','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_delete_row','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_col_before','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_col_after','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_delete_col','mceButtonNormal',false);colspan=tinyMCE.getAttrib(tdElm,"colspan");rowspan=tinyMCE.getAttrib(tdElm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;if(colspan!="1"||rowspan!="1")tinyMCE.switchClassSticky(editor_id+'_split_cells','mceButtonNormal',false);}if(tinyMCE.getParentElement(node,"table")){tinyMCE.switchClassSticky(editor_id+'_table','mceButtonSelected');tinyMCE.switchClassSticky(editor_id+'_merge_cells','mceButtonNormal',false);}}
\ No newline at end of file
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin_src.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin_src.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/table/editor_plugin_src.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -26,7 +26,7 @@
*/
function TinyMCE_table_getControlHTML(control_name) {
var controls = new Array(
- ['table', 'table.gif', '{$lang_table_desc}', 'mceInsertTable', true],
+ ['table', 'table.gif', '{$lang_table_desc}', 'mceInsertTable', true],
['delete_col', 'table_delete_col.gif', '{$lang_table_delete_col_desc}', 'mceTableDeleteCol'],
['delete_row', 'table_delete_row.gif', '{$lang_table_delete_row_desc}', 'mceTableDeleteRow'],
['col_after', 'table_insert_col_after.gif', '{$lang_table_insert_col_after_desc}', 'mceTableInsertColAfter'],
@@ -378,7 +378,7 @@
tinyMCE.triggerNodeChange();
return true;
- case "mceInsertTable":
+ case "mceInsertTable":
if (user_interface) {
var cols = 2, rows = 2, border = 0, cellpadding = "", cellspacing = "", align = "", width = "", height = "", bordercolor = "", bgcolor = "", action = "insert", className = "";
@@ -480,51 +480,21 @@
tinyMCE.triggerNodeChange();
return true;
}
+ html += "<table class=\"wiki-table\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">";
- // Create new table
- /*html += '<table border="' + border + '" ';
-
- if (cellpadding != -1)
- html += 'cellpadding="' + cellpadding + '" ';
-
- if (cellspacing != -1)
- html += 'cellspacing="' + cellspacing + '" ';
-
- if (width != 0 && width != "")
- html += 'width="' + width + '" ';
-
- if (height != 0 && height != "")
- html += 'height="' + height + '" ';
-
- if (bordercolor != 0 && bordercolor != "")
- html += 'bordercolor="' + bordercolor + '" ';
-
- if (bgcolor != 0 && bgcolor != "")
- html += 'bgcolor="' + bgcolor + '" ';
-
- if (align)
- html += 'align="' + align + '" ';
-
- if (className)
- html += 'class="' + tinyMCE.getVisualAidClass(className, border == 0) + '" ';
-
- html += '>';
- */
- html += "<table class=\"wiki-table\" cellpadding=\"0\" cellspacing=\"0\">";
-
for (var y=0; y<rows; y++) {
if (y == 0 ) {
html += "<tr>";
for (var x=0; x<cols; x++)
- html += '<td> </td>';
+ html += '<td style=\"background:#b6c5f2;font-weight:bold;\"> </td>';
html += "</tr>";
} else {
html += "<tr>";
for (var x=0; x<cols; x++)
- html += '<td> </td>';
+ html += '<td style=\"background:#FFFFFF\"> </td>';
html += "</tr>";
}
@@ -565,10 +535,11 @@
case "mceTableInsertRowBefore":
if (!trElm || !tdElm)
return true;
-
+ trElm.bgColor = "#b6c5f2";
var grid = getTableGrid(tableElm);
var cpos = getCellPos(grid, tdElm);
- var newTR = doc.createElement("tr");
+
+ var newTR = doc.createElement("tr");
var lastTDElm = null;
cpos.rowindex--;
@@ -585,15 +556,15 @@
newTD.innerHTML = " ";
newTD.colSpan = tdElm.colSpan;
-
- newTR.appendChild(newTD);
+ newTD.bgColor = "#b6c5f2";
+ newTD.style.cssText="font-weight:bold;";
+ newTR.appendChild(newTD);
} else
tdElm.rowSpan = sd['rowspan'] + 1;
lastTDElm = tdElm;
}
}
-
trElm.parentNode.insertBefore(newTR, trElm);
break;
@@ -659,7 +630,7 @@
var newTD = doc.createElement("td");
newTD.innerHTML = " ";
- newTD.colSpan = tdElm.colSpan;
+ newTD.colSpan = tdElm.colSpan;
newTR.appendChild(newTD);
} else
@@ -755,8 +726,11 @@
newTD.innerHTML = " ";
newTD.rowSpan = tdElm.rowSpan;
-
- tdElm.parentNode.insertBefore(newTD, tdElm);
+ if (y==0) {
+ newTD.bgColor = "#b6c5f2";
+ newTD.style.cssText="font-weight:bold;";
+ }
+ tdElm.parentNode.insertBefore(newTD, tdElm);
} else
tdElm.colSpan++;
@@ -782,8 +756,11 @@
newTD.innerHTML = " ";
newTD.rowSpan = tdElm.rowSpan;
-
- var nextTD = nextElm(tdElm, "TD");
+ if (y==0) {
+ newTD.bgColor = "#b6c5f2";
+ newTD.style.cssText="font-weight:bold;";
+ }
+ var nextTD = nextElm(tdElm, "TD");
if (nextTD == null)
tdElm.parentNode.appendChild(newTD);
else
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/table/table.htm
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/table/table.htm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/table/table.htm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -6,8 +6,8 @@
function insertTable() {
if (window.opener) {
var args = new Array();
-
- args["cols"] = document.forms[0].cols.value;
+
+ args["cols"] = document.forms[0].cols.value;
args["rows"] = document.forms[0].rows.value;
args["border"] = 0;
args["cellspacing"] = -2;
@@ -17,7 +17,6 @@
args["action"] = tinyMCE.getWindowArg('action');
window.opener.tinyMCE.execCommand("mceInsertTable", false, args);
-
// Close the dialog
tinyMCE.closeDialog();
}
@@ -47,7 +46,6 @@
formObj.bgcolor.value = tinyMCE.getWindowArg('bgcolor');
formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
}
-
function cancelAction() {
tinyMCE.closeDialog();
}
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -1,46 +1 @@
-/* Import plugin specific language pack */
-//tinyMCE.importPluginLanguagePack('wikieditor', 'en'); // <- Add a comma separated list of all supported languages
-
-
-function TinyMCE_wikiplugin_initInstance(inst) {
-}
-
-function TinyMCE_wikiplugin_execCommand(editor_id, element, command, user_interface, value) {
- return false;
-}
-
-function TinyMCE_wikiplugin_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
- return true;
-}
-
-/**
- * Gets executed when contents is inserted / retrived.
- */
-function TinyMCE_wikiplugin_cleanup(type, content) {
- switch (type) {
- case "get_from_editor":
- //alert("[FROM before] Value HTML string: " + content);
-
- content = wikiEditor.convertInternal(content);
-
- //alert("[FROM after] Value HTML string: " + content);
-
- break;
-
- case "get_from_editor_dom":
-
- content = wikiEditor.tagListInternal(content);
- //alert("[FROM] Value DOM Element " + content.innerHTML);
-
- break;
-
- case "insert_to_editor":
- //alert("[TO not modified] Value HTML string: " + content);
- content = wikiEditor.convertExternal(content);
-
-
- break;
- }
-
- return content;
-}
\ No newline at end of file
+function TinyMCE_wikiplugin_initInstance(inst){}function TinyMCE_wikiplugin_execCommand(editor_id,element,command,user_interface,value){return false;}function TinyMCE_wikiplugin_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){return true;}function TinyMCE_wikiplugin_cleanup(type,content){switch(type){case"get_from_editor":content=wikiEditor.convertInternal(content);break;case"get_from_editor_dom":content=wikiEditor.tagListInternal(content);break;case"insert_to_editor":content=wikiEditor.convertExternal(content);break;}return content;}
\ No newline at end of file
Modified: xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin_src.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin_src.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/plugins/wikiplugin/editor_plugin_src.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -38,8 +38,7 @@
//alert("[TO not modified] Value HTML string: " + content);
content = wikiEditor.convertExternal(content);
-
- break;
+ break;
}
return content;
Modified: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/attachment.htm
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/attachment.htm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/attachment.htm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -7,7 +7,7 @@
</script>
<script language="javascript">
function init() {
- //document.forms[0].insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+ //document.forms[0].insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
editor_id = tinyMCE.getWindowArg('editor_id');
}
Modified: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/editor_template.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/editor_template.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/editor_template.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -53,8 +53,8 @@
var template = new Array();
template['file'] = 'image.htm?src={$src}';
- template['width'] = 340;
- template['height'] = 280;
+ template['width'] = 530;
+ template['height'] = 350;
// Language specific width and height addons
template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0);
Added: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/images/macro.gif
===================================================================
(Binary files differ)
Property changes on: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/images/macro.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/langs/en.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/langs/en.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/langs/en.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -67,6 +67,14 @@
tinyMCELang['lang_wiki_title_3'] = 'Title 3';
tinyMCELang['lang_wiki_title_4'] = 'Title 4';
tinyMCELang['lang_attachment_desc'] = 'Insert an Attachment Link';
+tinyMCELang['lang_macro_desc'] = 'Insert a Macro';
tinyMCELang['lang_insert_image_name'] = 'Image(attachment) name';
tinyMCELang['lang_insert_attachment_title'] = 'Insert attachment link';
-tinyMCELang['lang_insert_attachment_name'] = 'Attachment name';
\ No newline at end of file
+tinyMCELang['lang_insert_attachment_name'] = 'Attachment name';
+tinyMCELang['lang_insert_macro_title'] = 'Insert macro';
+tinyMCELang['lang_insert_macro_name'] = 'Macro name';
+tinyMCELang['lang_choose_macro_name'] = 'Choose a macro';
+tinyMCELang['lang_insert_macro'] = 'Insert Macro';
+tinyMCELang['macro_macroname_first_name'] = 'First Name';
+tinyMCELang['macro_macroname_last_name'] = 'Last Name';
+tinyMCELang['macro_macrotitle_info'] = 'Fill information';
\ No newline at end of file
Added: xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/themes/wikieditor/macro.htm 2006-05-28 21:16:15 UTC (rev 1073)
@@ -0,0 +1,138 @@
+<html>
+<head>
+<title>{$lang_insert_macro_title}</title>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<script language="javascript">
+ var baseurl = tinyMCE.getParam("wiki_macro_path");
+</script>
+<script language="javascript">
+ function init() {
+ editor_id = tinyMCE.getWindowArg('editor_id');
+ }
+ function insertMacro() {
+ if (window.opener) {
+ var href = document.getElementById("macro").value;
+ window.opener.wikiEditor.insertMacro(editor_id, href);
+ tinyMCE.closeDialog();
+ }
+ }
+ function cancelAction() {
+ tinyMCE.closeDialog();
+ }
+ //------------------
+ // threadsafe asynchronous XMLHTTPRequest code
+ function executeCommand(url, callback) {
+ // we use a javascript feature here called "inner functions"
+ // using these means the local variables retain their values after the outer function
+ // has returned. this is useful for thread safety, so
+ // reassigning the onreadystatechange function doesn't stomp over earlier requests.
+ function ajaxBindCallback() {
+ if (ajaxRequest.readyState == 4) {
+ if (ajaxRequest.status == 200) {
+ if (ajaxCallback) {
+ ajaxCallback(ajaxRequest.responseText);
+ } else {
+ alert('no callback defined');
+ }
+ } else {
+ alert("There was a problem retrieving the xml data:\n" + ajaxRequest.status + ":\t" + ajaxRequest.statusText + "\n" + ajaxRequest.responseText);
+ }
+ }
+ }
+ // addMessage(url);
+ // use a local variable to hold our request and callback until the inner function is called...
+ var ajaxRequest = null;
+ var ajaxCallback = callback;
+
+ // bind our callback then hit the server...
+ if (window.XMLHttpRequest) {
+ ajaxRequest = new XMLHttpRequest();
+ ajaxRequest.onreadystatechange = ajaxBindCallback;
+ ajaxRequest.open("GET", url, true);
+ ajaxRequest.send(null);
+ } else if (window.ActiveXObject) {
+ // ie
+ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
+ if (ajaxRequest) {
+ ajaxRequest.onreadystatechange = ajaxBindCallback;
+ ajaxRequest.open("GET", url, true);
+ ajaxRequest.send();
+ }
+ else{
+ alert("your browser does not support xmlhttprequest" )
+ }
+ }
+ else{
+ alert("your browser does not support xmlhttprequest" )
+ }
+ }
+ function loadMacroList(baseurl) {
+ var url = baseurl + "?xpage=macrowysiwyg";
+ executeCommand(url, loadMacroListCallback);
+ }
+
+ function loadMacroListCallback(e) {
+ var macroEl = document.getElementById("macros");
+ macroEl.innerHTML = e;
+ }
+
+</script>
+<script type="text/javascript">
+ function inputMacro() {
+ var selObj = document.getElementById("selmacro");
+ var selectedindex = selObj.selectedIndex;
+ var selectedMacro = document.getElementById("selmacro").options[selectedindex].value;
+ document.getElementById("input").innerHTML = document.getElementById(selectedMacro).innerHTML ;
+ }
+ function checkForm() {
+ var macroparamstr = document.getElementById("macroparam").value;
+ if (macroparamstr != null && macroparamstr != "") {
+ macroparams = macroparamstr.split(",");
+ for(var i=0; i < macroparams.length; i++) {
+ var value = document.getElementById(macroparams[i]).value;
+ if (value == null || value == "" ) {
+ alert("You must choose at least a macro and fill all the fields !");
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ function setMacro() {
+ var macroparamstr = document.getElementById("macroparam").value;
+ var macrocontent = document.getElementById("content").value;
+ var macroname = document.getElementById("macroname").value;
+ var macro = "";
+ if (macroparamstr != null && macroparamstr != "") {
+ macro = "{" + macroname + ":";
+ macroparams = macroparamstr.split(",");
+ for(var i=0; i < macroparams.length; i++) {
+ macro += macroparams[i] + "=" + document.getElementById(macroparams[i]).value;
+ if (i != macroparams.length-1 ) macro += ",";
+ }
+ macro += "}";
+ if ((macrocontent !=null && macrocontent !="")) {
+ macro += macrocontent + "{" +macroname+ "}";
+ }
+ } else macro = "{" + macroname +"}";
+ document.write("<input type='text' id='macro' name='macro' value='" + macro + "'/>");
+ }
+</script>
+</head>
+<body onload="init();">
+<div id="macros"></div>
+<script type="text/javascript">
+ loadMacroList(baseurl);
+</script>
+<div>
+ <table width="95%" border="0" cellspacing="0" cellpadding="0">
+ <tr align="center">
+ <td align="center"><input type="button" id="insert" name="insert" value="{$lang_insert_macro}" onclick="if(checkForm()){setMacro(); insertMacro();}" >
+ </td>
+ <td align="left"><input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onClick="cancelAction();"></td>
+ <td></td>
+ </tr>
+ </table>
+</div>
+</body>
+</html>
Modified: xwiki/trunk/src/main/web/tiny_mce/tiny_mce.js
===================================================================
--- xwiki/trunk/src/main/web/tiny_mce/tiny_mce.js 2006-05-25 16:42:57 UTC (rev 1072)
+++ xwiki/trunk/src/main/web/tiny_mce/tiny_mce.js 2006-05-28 21:16:15 UTC (rev 1073)
@@ -1,4 +1,4 @@
-function TinyMCE(){this.instances=new Array();this.stickyClassesLookup=new Array();this.windowArgs=new Array();this.loadedFiles=new Array();this.configs=new Array();this.currentConfig=0;this.eventHandlers=new Array();this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isMSIE5=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5')!=-1);this.isMSIE5_0=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1);this.isGecko=navigator.userAgent.indexOf('Gecko')!=-1;this.isSafari=navigator.userAgent.indexOf('Safari')!=-1;this.isMac=navigator.userAgent.indexOf('Mac')!=-1;this.dialogCounter=0;this.idCounter=0;};TinyMCE.prototype.defParam=function(key,def_val){this.settings[key]=tinyMCE.getParam(key,def_val);};TinyMCE.prototype.init=function(settings){var theme;this.settings=settings;if(typeof(document.execCommand)=='undefined')return;if(!tinyMCE.baseURL){var elements=document.getElementsByTagName('script');for(var i=0;i<elements.length;i++){if(elements[i].src&&(elements[i].src.indexOf("tiny_mce.js")!=-1||elements[i].src.indexOf("tiny_mce_src.js")!=-1||elements[i].src.indexOf("tiny_mce_gzip.php")!=-1)){var src=elements[i].src;tinyMCE.srcMode=(src.indexOf('_src')!=-1)?'_src':'';src=src.substring(0,src.lastIndexOf('/'));tinyMCE.baseURL=src;break;}}}this.documentBasePath=document.location.href;if(this.documentBasePath.indexOf('?')!=-1)this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.indexOf('?'));this.documentURL=this.documentBasePath;this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.lastIndexOf('/'));if(tinyMCE.baseURL.indexOf('://')==-1&&tinyMCE.baseURL.charAt(0)!='/'){tinyMCE.baseURL=this.documentBasePath+"/"+tinyMCE.baseURL;}this.defParam("mode","none");this.defParam("theme","advanced");this.defParam("plugins","",true);this.defParam("language","en");this.defParam("docs_language",this.settings['language']);this.defParam("elements","");this.defParam("textarea_trigger","mce_editable");this.defParam("valid_elements","+a[name|href|target|title|class],strong/b[class],em/i[class],strike[class],u[class],+p[dir|class|align],ol,ul,li,br,img[class|src|border=0|alt|title|hspace|vspace|width|height|align],sub,sup,blockquote[dir|style],table[border=0|cellspacing|cellpadding|width|height|class|align],tr[class|rowspan|width|height|align|valign],td[dir|class|colspan|rowspan|width|height|align|valign],div[dir|class|align],span[class|align],pre[class|align],address[class|align],h1[dir|class|align],h2[dir|class|align],h3[dir|class|align],h4[dir|class|align],h5[dir|class|align],h6[dir|class|align],hr");this.defParam("extended_valid_elements","");this.defParam("invalid_elements","");this.defParam("encoding","");this.defParam("urlconverter_callback",tinyMCE.getParam("urlconvertor_callback","TinyMCE.prototype.convertURL"));this.defParam("save_callback","");this.defParam("debug",false);this.defParam("force_br_newlines",false);this.defParam("force_p_newlines",true);this.defParam("add_form_submit_trigger",true);this.defParam("relative_urls",true);this.defParam("remove_script_host",true);this.defParam("focus_alert",true);this.defParam("document_base_url",this.documentURL);this.defParam("visual",true);this.defParam("visual_table_class","mceVisualAid");this.defParam("setupcontent_callback","");this.defParam("fix_content_duplication",true);this.defParam("custom_undo_redo",true);this.defParam("custom_undo_redo_levels",-1);this.defParam("custom_undo_redo_keyboard_shortcuts",true);this.defParam("verify_css_classes",false);this.defParam("trim_span_elements",true);this.defParam("verify_html",true);this.defParam("apply_source_formatting",false);this.defParam("directionality","ltr");this.defParam("auto_cleanup_word",false);this.defParam("cleanup_on_startup",false);this.defParam("inline_styles",false);this.defParam("convert_newlines_to_brs",false);this.defParam("auto_reset_designmode",false);this.defParam("entities","160,nbsp,38,amp,34,quot,162,cent,8364,euro,163,pound,165,yen,169,copy,174,reg,8482,trade,8240,permil,181,micro,183,middot,8226,bull,8230,hellip,8242,prime,8243,Prime,167,sect,182,para,223,szlig,8249,lsaquo,8250,rsaquo,171,laquo,187,raquo,8216,lsquo,8217,rsquo,8220,ldquo,8221,rdquo,8218,sbquo,8222,bdquo,60,lt,62,gt,8804,le,8805,ge,8211,ndash,8212,mdash,175,macr,8254,oline,164,curren,166,brvbar,168,uml,161,iexcl,191,iquest,710,circ,732,tilde,176,deg,8722,minus,177,plusmn,247,divide,8260,frasl,215,times,185,sup1,178,sup2,179,sup3,188,frac14,189,frac12,190,frac34,402,fnof,8747,int,8721,sum,8734,infin,8730,radic,8764,sim,8773,cong,8776,asymp,8800,ne,8801,equiv,8712,isin,8713,notin,8715,ni,8719,prod,8743,and,8744,or,172,not,8745,cap,8746,cup,8706,part,8704,forall,8707,exist,8709,empty,8711,nabla,8727,lowast,8733,prop,8736,ang,180,acute,184,cedil,170,ordf,186,ordm,8224,dagger,8225,Dagger,192,Agrave,194,Acirc,195,Atilde,196,Auml,197,Aring,198,AElig,199,Ccedil,200,Egrave,202,Ecirc,203,Euml,204,Igrave,206,Icirc,207,Iuml,208,ETH,209,Ntilde,210,Ograve,212,Ocirc,213,Otilde,214,Ouml,216,Oslash,338,OElig,217,Ugrave,219,Ucirc,220,Uuml,376,Yuml,222,THORN,224,agrave,226,acirc,227,atilde,228,auml,229,aring,230,aelig,231,ccedil,232,egrave,234,ecirc,235,euml,236,igrave,238,icirc,239,iuml,240,eth,241,ntilde,242,ograve,244,ocirc,245,otilde,246,ouml,248,oslash,339,oelig,249,ugrave,251,ucirc,252,uuml,254,thorn,255,yuml,914,Beta,915,Gamma,916,Delta,917,Epsilon,918,Zeta,919,Eta,920,Theta,921,Iota,922,Kappa,923,Lambda,924,Mu,925,Nu,926,Xi,927,Omicron,928,Pi,929,Rho,931,Sigma,932,Tau,933,Upsilon,934,Phi,935,Chi,936,Psi,937,Omega,945,alpha,946,beta,947,gamma,948,delta,949,epsilon,950,zeta,951,eta,952,theta,953,iota,954,kappa,955,lambda,956,mu,957,nu,958,xi,959,omicron,960,pi,961,rho,962,sigmaf,963,sigma,964,tau,965,upsilon,966,phi,967,chi,968,psi,969,omega,8501,alefsym,982,piv,8476,real,977,thetasym,978,upsih,8472,weierp,8465,image,8592,larr,8593,uarr,8594,rarr,8595,darr,8596,harr,8629,crarr,8656,lArr,8657,uArr,8658,rArr,8659,dArr,8660,hArr,8756,there4,8834,sub,8835,sup,8836,nsub,8838,sube,8839,supe,8853,oplus,8855,otimes,8869,perp,8901,sdot,8968,lceil,8969,rceil,8970,lfloor,8971,rfloor,9001,lang,9002,rang,9674,loz,9824,spades,9827,clubs,9829,hearts,9830,diams,8194,ensp,8195,emsp,8201,thinsp,8204,zwnj,8205,zwj,8206,lrm,8207,rlm,173,shy,233,eacute");this.defParam("entity_encoding","named");this.defParam("cleanup_callback","");this.defParam("add_unload_trigger",true);this.defParam("ask",false)