$Log$
+Revision 625.22 2005/09/26 02:45:06 ajc
+* Removed the Kevin Roth rich text editor and replaced it with TinyMCE.
+
Revision 625.21 2005/09/25 20:58:56 ajc
* Generalized the way we handle static content directories so that we may
have more than one of them (i.e. not just "static/")
1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
* webserver.c: warning fix
-
Wilifried Goesgens
Nick Grossman
Andru Luvisi
- Kevin Roth
Dave Lindquist
Martin Mouritzen
Thomas Fuchs [http://script.aculo.us, http://mir.aculo.us]. These
components are licensed to you under the terms of an MIT-style license.
+ WebCit bundles the TinyMCE text editor, written by Moxiecode Systems AB
+ (http://tinymce.moxiecode.com/tinymce/docs/credits.html). This component
+ is licensed to you under the terms of the GNU Lesser General Public
+ License.
+
The Citadel logo was designed by Lisa Aurigemma.
wprintf("<form enctype=\"multipart/form-data\" "
"method=\"POST\" action=\"/post\" "
"name=\"enterform\""
- "onSubmit=\"return submitForm();\""
">\n");
wprintf("<input type=\"hidden\" name=\"postseq\" value=\"%ld\">\n", now);
"<input type=\"submit\" name=\"cancel_button\" value=\"%s\">\n", _("Cancel"));
wprintf("</td></tr></table>\n");
- wprintf("<center><script type=\"text/javascript\" "
- "src=\"static/richtext.js\"></script>\n"
- "<script type=\"text/javascript\">\n"
- "function submitForm() { \n"
- " updateRTE('msgtext'); \n"
- " return true; \n"
- "} \n"
- " \n"
- "initRTE(\"static/\", \"static/\", \"\"); \n"
- "</script> \n"
- "<noscript>JavaScript must be enabled.</noscript> \n"
- "<script type=\"text/javascript\"> \n"
- "writeRichText('msgtext', '");
+ wprintf("<center>");
+
+ wprintf("<textarea name=\"msgtext\" cols=\"80\" rows=\"15\">");
+
msgescputs(bstr("msgtext"));
if (atol(bstr("pullquote")) > 0L) {
wprintf("<br><div align=center><i>");
wprintf("</i></div><br>");
pullquote_message(atol(bstr("pullquote")), 1);
}
- wprintf("', '96%%', '200', true, false); \n"
- "</script></center><br />\n");
+ wprintf("</textarea>");
+ wprintf("</center><br />\n");
+
+ /*
+ * The following script embeds the TinyMCE richedit control, and automatically
+ * transforms the textarea into a richedit textarea.
+ */
+ wprintf(
+ "<script language=\"javascript\" type=\"text/javascript\" src=\"tiny_mce/tiny_mce.js\"></script>\n"
+ "<script language=\"javascript\" type=\"text/javascript\">"
+ "tinyMCE.init({"
+ " mode : \"textareas\", width : \"100%%\" "
+ "});"
+ "</script>\n"
+ );
/* Enumerate any attachments which are already in place... */
wprintf("<img src=\"/static/diskette_24x.gif\" border=0 "
<head>
<?REFRESHTAG>
<title><?SERV_HUMANNODE></title>
-<meta http-equiv="Pragma" content="no-cache" />
-<meta http-equiv="expires" content="28-May-1971 18:10:00 GMT" />
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<link href="/static/webcit.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="static/wclib.js"></script>
+++ /dev/null
-// Cross-Browser Rich Text Editor
-// http://www.kevinroth.com/rte/demo.htm
-// Written by Kevin Roth (kevin@NOSPAMkevinroth.com - remove NOSPAM)
-// Visit the support forums at http://www.kevinroth.com/forums/index.php?c=2
-
-//init variables
-var isRichText = false;
-var rng;
-var currentRTE;
-var allRTEs = "";
-
-var isIE;
-var isGecko;
-var isSafari;
-var isKonqueror;
-
-var imagesPath;
-var includesPath;
-var cssFile;
-
-
-function initRTE(imgPath, incPath, css) {
- //set browser vars
- var ua = navigator.userAgent.toLowerCase();
- isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1));
- isGecko = (ua.indexOf("gecko") != -1);
- isSafari = (ua.indexOf("safari") != -1);
- isKonqueror = (ua.indexOf("konqueror") != -1);
-
- //check to see if designMode mode is available
- if (document.getElementById && document.designMode && !isSafari && !isKonqueror) {
- isRichText = true;
- }
-
- if (!isIE) document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEDOWN | Event.MOUSEUP);
- document.onmouseover = raiseButton;
- document.onmouseout = normalButton;
- document.onmousedown = lowerButton;
- document.onmouseup = raiseButton;
-
- //set paths vars
- imagesPath = imgPath;
- includesPath = incPath;
- cssFile = css;
-
- if (isRichText) document.writeln('<style type="text/css">@import "' + includesPath + 'rte.css";</style>');
-
- //for testing standard textarea, uncomment the following line
- //isRichText = false;
-}
-
-function writeRichText(rte, html, width, height, buttons, readOnly) {
- if (isRichText) {
- if (allRTEs.length > 0) allRTEs += ";";
- allRTEs += rte;
- writeRTE(rte, html, width, height, buttons, readOnly);
- } else {
- writeDefault(rte, html, width, height, buttons, readOnly);
- }
-}
-
-function writeDefault(rte, html, width, height, buttons, readOnly) {
- if (!readOnly) {
- document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;">' + html + '</textarea>');
- } else {
- document.writeln('<textarea name="' + rte + '" id="' + rte + '" style="width: ' + width + 'px; height: ' + height + 'px;" readonly>' + html + '</textarea>');
- }
-}
-
-function raiseButton(e) {
- if (isIE) {
- var el = window.event.srcElement;
- } else {
- var el= e.target;
- }
-
- className = el.className;
- if (className == 'rteImage' || className == 'rteImageLowered') {
- el.className = 'rteImageRaised';
- }
-}
-
-function normalButton(e) {
- if (isIE) {
- var el = window.event.srcElement;
- } else {
- var el= e.target;
- }
-
- className = el.className;
- if (className == 'rteImageRaised' || className == 'rteImageLowered') {
- el.className = 'rteImage';
- }
-}
-
-function lowerButton(e) {
- if (isIE) {
- var el = window.event.srcElement;
- } else {
- var el= e.target;
- }
-
- className = el.className;
- if (className == 'rteImage' || className == 'rteImageRaised') {
- el.className = 'rteImageLowered';
- }
-}
-
-function writeRTE(rte, html, width, height, buttons, readOnly) {
- if (readOnly) buttons = false;
-
- //adjust minimum table widths
- if (isIE) {
- if (buttons && (width < 600)) width = 600;
- var tablewidth = width;
- } else {
- if (buttons && (width < 500)) width = 500;
- var tablewidth = width + 4;
- }
-
- if (buttons == true) {
- document.writeln('<table class="rteBack" cellpadding=2 cellspacing=0 id="Buttons1_' + rte + '" width="' + tablewidth + '">');
- document.writeln(' <tr>');
- document.writeln(' <td>');
- document.writeln(' <select id="formatblock_' + rte + '" onchange="Select(\'' + rte + '\', this.id);">');
- document.writeln(' <option value="">[Style]</option>');
- document.writeln(' <option value="<p>">Paragraph</option>');
- document.writeln(' <option value="<h1>">Heading 1 <h1></option>');
- document.writeln(' <option value="<h2>">Heading 2 <h2></option>');
- document.writeln(' <option value="<h3>">Heading 3 <h3></option>');
- document.writeln(' <option value="<h4>">Heading 4 <h4></option>');
- document.writeln(' <option value="<h5>">Heading 5 <h5></option>');
- document.writeln(' <option value="<h6>">Heading 6 <h6></option>');
- document.writeln(' <option value="<address>">Address <ADDR></option>');
- document.writeln(' <option value="<pre>">Formatted <pre></option>');
- document.writeln(' </select>');
- document.writeln(' </td>');
- document.writeln(' <td>');
- document.writeln(' <select id="fontname_' + rte + '" onchange="Select(\'' + rte + '\', this.id)">');
- document.writeln(' <option value="Font" selected>[Font]</option>');
- document.writeln(' <option value="Arial, Helvetica, sans-serif">Arial</option>');
- document.writeln(' <option value="Courier New, Courier, mono">Courier New</option>');
- document.writeln(' <option value="Times New Roman, Times, serif">Times New Roman</option>');
- document.writeln(' <option value="Verdana, Arial, Helvetica, sans-serif">Verdana</option>');
- document.writeln(' </select>');
- document.writeln(' </td>');
- document.writeln(' <td>');
- document.writeln(' <select unselectable="on" id="fontsize_' + rte + '" onchange="Select(\'' + rte + '\', this.id);">');
- document.writeln(' <option value="Size">[Size]</option>');
- document.writeln(' <option value="1">1</option>');
- document.writeln(' <option value="2">2</option>');
- document.writeln(' <option value="3">3</option>');
- document.writeln(' <option value="4">4</option>');
- document.writeln(' <option value="5">5</option>');
- document.writeln(' <option value="6">6</option>');
- document.writeln(' <option value="7">7</option>');
- document.writeln(' </select>');
- document.writeln(' </td>');
- document.writeln(' <td width="100%">');
- document.writeln(' </td>');
- document.writeln(' </tr>');
- document.writeln('</table>');
- document.writeln('<table class="rteBack" cellpadding="0" cellspacing="0" id="Buttons2_' + rte + '" width="' + tablewidth + '">');
- document.writeln(' <tr>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'bold.gif" width="25" height="24" alt="Bold" title="Bold" onClick="FormatText(\'' + rte + '\', \'bold\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'italic.gif" width="25" height="24" alt="Italic" title="Italic" onClick="FormatText(\'' + rte + '\', \'italic\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'underline.gif" width="25" height="24" alt="Underline" title="Underline" onClick="FormatText(\'' + rte + '\', \'underline\', \'\')"></td>');
- document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'left_just.gif" width="25" height="24" alt="Align Left" title="Align Left" onClick="FormatText(\'' + rte + '\', \'justifyleft\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'centre.gif" width="25" height="24" alt="Center" title="Center" onClick="FormatText(\'' + rte + '\', \'justifycenter\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'right_just.gif" width="25" height="24" alt="Align Right" title="Align Right" onClick="FormatText(\'' + rte + '\', \'justifyright\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'justifyfull.gif" width="25" height="24" alt="Justify Full" title="Justify Full" onclick="FormatText(\'' + rte + '\', \'justifyfull\', \'\')"></td>');
- document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'hr.gif" width="25" height="24" alt="Horizontal Rule" title="Horizontal Rule" onClick="FormatText(\'' + rte + '\', \'inserthorizontalrule\', \'\')"></td>');
- document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'numbered_list.gif" width="25" height="24" alt="Ordered List" title="Ordered List" onClick="FormatText(\'' + rte + '\', \'insertorderedlist\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'list.gif" width="25" height="24" alt="Unordered List" title="Unordered List" onClick="FormatText(\'' + rte + '\', \'insertunorderedlist\', \'\')"></td>');
- document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'outdent.gif" width="25" height="24" alt="Outdent" title="Outdent" onClick="FormatText(\'' + rte + '\', \'outdent\', \'\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'indent.gif" width="25" height="24" alt="Indent" title="Indent" onClick="FormatText(\'' + rte + '\', \'indent\', \'\')"></td>');
- document.writeln(' <td><div id="forecolor_' + rte + '"><img class="rteImage" src="' + imagesPath + 'textcolor.gif" width="25" height="24" alt="Text Color" title="Text Color" onClick="FormatText(\'' + rte + '\', \'forecolor\', \'\')"></div></td>');
- document.writeln(' <td><div id="hilitecolor_' + rte + '"><img class="rteImage" src="' + imagesPath + 'bgcolor.gif" width="25" height="24" alt="Background Color" title="Background Color" onClick="FormatText(\'' + rte + '\', \'hilitecolor\', \'\')"></div></td>');
- document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'hyperlink.gif" width="25" height="24" alt="Insert Link" title="Insert Link" onClick="FormatText(\'' + rte + '\', \'createlink\')"></td>');
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'image.gif" width="25" height="24" alt="Add Image" title="Add Image" onClick="AddImage(\'' + rte + '\')"></td>');
- if (isIE) {
- document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'spellcheck.gif" width="25" height="24" alt="Spell Check" title="Spell Check" onClick="checkspell()"></td>');
- }
-// document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
-// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'cut.gif" width="25" height="24" alt="Cut" title="Cut" onClick="FormatText(\'' + rte + '\', \'cut\')"></td>');
-// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'copy.gif" width="25" height="24" alt="Copy" title="Copy" onClick="FormatText(\'' + rte + '\', \'copy\')"></td>');
-// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'paste.gif" width="25" height="24" alt="Paste" title="Paste" onClick="FormatText(\'' + rte + '\', \'paste\')"></td>');
-// document.writeln(' <td><img class="rteVertSep" src="' + imagesPath + 'blackdot.gif" width="1" height="20" border="0" alt=""></td>');
-// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'undo.gif" width="25" height="24" alt="Undo" title="Undo" onClick="FormatText(\'' + rte + '\', \'undo\')"></td>');
-// document.writeln(' <td><img class="rteImage" src="' + imagesPath + 'redo.gif" width="25" height="24" alt="Redo" title="Redo" onClick="FormatText(\'' + rte + '\', \'redo\')"></td>');
- document.writeln(' <td width="100%"></td>');
- document.writeln(' </tr>');
- document.writeln('</table>');
- }
- document.writeln('<iframe id="' + rte + '" name="' + rte + '" width="' + width + 'px" height="' + height + 'px" src="' + includesPath + 'blank.htm"></iframe>');
- if (!readOnly) document.writeln('<br /><input type="checkbox" id="chkSrc' + rte + '" onclick="toggleHTMLSrc(\'' + rte + '\');" /> View Source');
- document.writeln('<iframe width="154" height="104" id="cp' + rte + '" src="' + includesPath + 'palette.htm" marginwidth="0" marginheight="0" scrolling="no" style="visibility:hidden; display: none; position: absolute;"></iframe>');
- document.writeln('<input type="hidden" id="hdn' + rte + '" name="' + rte + '" value="">');
- document.getElementById('hdn' + rte).value = html;
- enableDesignMode(rte, html, readOnly);
-}
-
-function enableDesignMode(rte, html, readOnly) {
- var frameHtml = "<html id=\"" + rte + "\">\n";
- frameHtml += "<head>\n";
- //to reference your stylesheet, set href property below to your stylesheet path and uncomment
- if (cssFile.length > 0) {
- frameHtml += "<link media=\"all\" type=\"text/css\" href=\"" + cssFile + "\" rel=\"stylesheet\">\n";
- } else {
- frameHtml += "<style>\n";
- frameHtml += "body {\n";
- frameHtml += " background: #FFFFFF;\n";
- frameHtml += " margin: 0px;\n";
- frameHtml += " padding: 0px;\n";
- frameHtml += "}\n";
- frameHtml += "</style>\n";
- }
- frameHtml += "</head>\n";
- frameHtml += "<body>\n";
- frameHtml += html + "\n";
- frameHtml += "</body>\n";
- frameHtml += "</html>";
-
- if (document.all) {
- var oRTE = frames[rte].document;
- oRTE.open();
- oRTE.write(frameHtml);
- oRTE.close();
- if (!readOnly) oRTE.designMode = "On";
- } else {
- try {
- if (!readOnly) document.getElementById(rte).contentDocument.designMode = "on";
- try {
- var oRTE = document.getElementById(rte).contentWindow.document;
- oRTE.open();
- oRTE.write(frameHtml);
- oRTE.close();
- if (isGecko && !readOnly) {
- //attach a keyboard handler for gecko browsers to make keyboard shortcuts work
- oRTE.addEventListener("keypress", kb_handler, true);
- }
- } catch (e) {
- alert("Error preloading content.");
- }
- } catch (e) {
- //gecko may take some time to enable design mode.
- //Keep looping until able to set.
- if (isGecko) {
- setTimeout("enableDesignMode('" + rte + "', '" + html + "', " + readOnly + ");", 10);
- } else {
- return false;
- }
- }
- }
- //contributed by TotalJSNoob and archv1le (thanks guys!)
- //if the following gets uncommented, indenting and list items will not function correctly
-// if (isIE) {
-// var hack = function () {rteKeyPress(document.getElementById(rte).contentWindow);};
-// var oRTE = document.getElementById(rte).contentWindow;
-// oRTE.document.onkeypress = hack;
-// }
-}
-
-function updateRTEs() {
- var vRTEs = allRTEs.split(";");
- for (var i = 0; i < vRTEs.length; i++) {
- updateRTE(vRTEs[i]);
- }
-}
-
-function updateRTE(rte) {
- if (!isRichText) return;
-
- //set message value
- var oHdnMessage = document.getElementById('hdn' + rte);
- var oRTE = document.getElementById(rte);
- var readOnly = false;
-
- //check for readOnly mode
- if (document.all) {
- if (frames[rte].document.designMode != "On") readOnly = true;
- } else {
- if (document.getElementById(rte).contentDocument.designMode != "on") readOnly = true;
- }
-
- if (isRichText && !readOnly) {
- //if viewing source, switch back to design view
- if (document.getElementById("chkSrc" + rte).checked) {
- document.getElementById("chkSrc" + rte).checked = false;
- toggleHTMLSrc(rte);
- }
-
- if (oHdnMessage.value == null) oHdnMessage.value = "";
- if (document.all) {
- oHdnMessage.value = frames[rte].document.body.innerHTML;
- } else {
- oHdnMessage.value = oRTE.contentWindow.document.body.innerHTML;
- }
-
- //if there is no content (other than formatting) set value to nothing
- if (stripHTML(oHdnMessage.value.replace(" ", " ")) == ""
- && oHdnMessage.value.toLowerCase().search("<hr") == -1
- && oHdnMessage.value.toLowerCase().search("<img") == -1) oHdnMessage.value = "";
- //fix for gecko
- if (escape(oHdnMessage.value) == "%3Cbr%3E%0D%0A%0D%0A%0D%0A") oHdnMessage.value = "";
- }
-}
-
-function toggleHTMLSrc(rte) {
- //contributed by Bob Hutzel (thanks Bob!)
- var oRTE;
- if (document.all) {
- oRTE = frames[rte].document;
- } else {
- oRTE = document.getElementById(rte).contentWindow.document;
- }
-
- if (document.getElementById("chkSrc" + rte).checked) {
- document.getElementById("Buttons1_" + rte).style.visibility = "hidden";
- document.getElementById("Buttons2_" + rte).style.visibility = "hidden";
- if (document.all) {
- oRTE.body.innerText = oRTE.body.innerHTML;
- } else {
- var htmlSrc = oRTE.createTextNode(oRTE.body.innerHTML);
- oRTE.body.innerHTML = "";
- oRTE.body.appendChild(htmlSrc);
- }
- } else {
- document.getElementById("Buttons1_" + rte).style.visibility = "visible";
- document.getElementById("Buttons2_" + rte).style.visibility = "visible";
- if (document.all) {
- //fix for IE
- var output = escape(oRTE.body.innerText);
- output = output.replace("%3CP%3E%0D%0A%3CHR%3E", "%3CHR%3E");
- output = output.replace("%3CHR%3E%0D%0A%3C/P%3E", "%3CHR%3E");
-
- oRTE.body.innerHTML = unescape(output);
- } else {
- var htmlSrc = oRTE.body.ownerDocument.createRange();
- htmlSrc.selectNodeContents(oRTE.body);
- oRTE.body.innerHTML = htmlSrc.toString();
- }
- }
-}
-
-//Function to format text in the text box
-function FormatText(rte, command, option) {
- var oRTE;
- if (document.all) {
- oRTE = frames[rte];
-
- //get current selected range
- var selection = oRTE.document.selection;
- if (selection != null) {
- rng = selection.createRange();
- }
- } else {
- oRTE = document.getElementById(rte).contentWindow;
-
- //get currently selected range
- var selection = oRTE.getSelection();
- rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
- }
-
- try {
- if ((command == "forecolor") || (command == "hilitecolor")) {
- //save current values
- parent.command = command;
- currentRTE = rte;
-
- //position and show color palette
- buttonElement = document.getElementById(command + '_' + rte);
- // Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
- document.getElementById('cp' + rte).style.left = getOffsetLeft(buttonElement, 4) + "px";
- document.getElementById('cp' + rte).style.top = (getOffsetTop(buttonElement, 4) + buttonElement.offsetHeight + 4) + "px";
- if (document.getElementById('cp' + rte).style.visibility == "hidden") {
- document.getElementById('cp' + rte).style.visibility = "visible";
- document.getElementById('cp' + rte).style.display = "inline";
- } else {
- document.getElementById('cp' + rte).style.visibility = "hidden";
- document.getElementById('cp' + rte).style.display = "none";
- }
- } else if (command == "createlink") {
- var szURL = prompt("Enter a URL:", "");
- try {
- //ignore error for blank urls
- oRTE.document.execCommand("Unlink", false, null);
- oRTE.document.execCommand("CreateLink", false, szURL);
- } catch (e) {
- //do nothing
- }
- } else {
- oRTE.focus();
- oRTE.document.execCommand(command, false, option);
- oRTE.focus();
- }
- } catch (e) {
- alert(e);
- }
-}
-
-//Function to set color
-function setColor(color) {
- var rte = currentRTE;
- var oRTE;
- if (document.all) {
- oRTE = frames[rte];
- } else {
- oRTE = document.getElementById(rte).contentWindow;
- }
-
- var parentCommand = parent.command;
- if (document.all) {
- //retrieve selected range
- var sel = oRTE.document.selection;
- if (parentCommand == "hilitecolor") parentCommand = "backcolor";
- if (sel != null) {
- var newRng = sel.createRange();
- newRng = rng;
- newRng.select();
- }
- }
- oRTE.focus();
- oRTE.document.execCommand(parentCommand, false, color);
- oRTE.focus();
- document.getElementById('cp' + rte).style.visibility = "hidden";
- document.getElementById('cp' + rte).style.display = "none";
-}
-
-//Function to add image
-function AddImage(rte) {
- var oRTE;
- if (document.all) {
- oRTE = frames[rte];
-
- //get current selected range
- var selection = oRTE.document.selection;
- if (selection != null) {
- rng = selection.createRange();
- }
- } else {
- oRTE = document.getElementById(rte).contentWindow;
-
- //get currently selected range
- var selection = oRTE.getSelection();
- rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
- }
-
- imagePath = prompt('Enter Image URL:', 'http://');
- if ((imagePath != null) && (imagePath != "")) {
- oRTE.focus();
- oRTE.document.execCommand('InsertImage', false, imagePath);
- oRTE.focus();
- }
-}
-
-//function to perform spell check
-function checkspell() {
- try {
- var tmpis = new ActiveXObject("ieSpell.ieSpellExtension");
- tmpis.CheckAllLinkedDocuments(document);
- }
- catch(exception) {
- if(exception.number==-2146827859) {
- if (confirm("ieSpell not detected. Click Ok to go to download page."))
- window.open("http://www.iespell.com/download.php","DownLoad");
- } else {
- alert("Error Loading ieSpell: Exception " + exception.number);
- }
- }
-}
-
-// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
-function getOffsetTop(elm, parents_up) {
- var mOffsetTop = elm.offsetTop;
- var mOffsetParent = elm.offsetParent;
-
- if(!parents_up) {
- parents_up = 10000; // arbitrary big number
- }
- while(parents_up>0 && mOffsetParent) {
- mOffsetTop += mOffsetParent.offsetTop;
- mOffsetParent = mOffsetParent.offsetParent;
- parents_up--;
- }
-
- return mOffsetTop;
-}
-
-// Ernst de Moor: Fix the amount of digging parents up, in case the RTE editor itself is displayed in a div.
-function getOffsetLeft(elm, parents_up) {
- var mOffsetLeft = elm.offsetLeft;
- var mOffsetParent = elm.offsetParent;
-
- if(!parents_up) {
- parents_up = 10000; // arbitrary big number
- }
- while(parents_up>0 && mOffsetParent) {
- mOffsetLeft += mOffsetParent.offsetLeft;
- mOffsetParent = mOffsetParent.offsetParent;
- parents_up--;
- }
-
- return mOffsetLeft;
-}
-
-function Select(rte, selectname) {
- var oRTE;
- if (document.all) {
- oRTE = frames[rte];
-
- //get current selected range
- var selection = oRTE.document.selection;
- if (selection != null) {
- rng = selection.createRange();
- }
- } else {
- oRTE = document.getElementById(rte).contentWindow;
-
- //get currently selected range
- var selection = oRTE.getSelection();
- rng = selection.getRangeAt(selection.rangeCount - 1).cloneRange();
- }
-
- var idx = document.getElementById(selectname).selectedIndex;
- // First one is always a label
- if (idx != 0) {
- var selected = document.getElementById(selectname).options[idx].value;
- var cmd = selectname.replace('_' + rte, '');
- oRTE.focus();
- oRTE.document.execCommand(cmd, false, selected);
- oRTE.focus();
- document.getElementById(selectname).selectedIndex = 0;
- }
-}
-
-function kb_handler(evt) {
- var rte = evt.target.id;
-
- //contributed by Anti Veeranna (thanks Anti!)
- if (evt.ctrlKey) {
- var key = String.fromCharCode(evt.charCode).toLowerCase();
- var cmd = '';
- switch (key) {
- case 'b': cmd = "bold"; break;
- case 'i': cmd = "italic"; break;
- case 'u': cmd = "underline"; break;
- };
-
- if (cmd) {
- FormatText(rte, cmd, true);
- //evt.target.ownerDocument.execCommand(cmd, false, true);
- // stop the event bubble
- evt.preventDefault();
- evt.stopPropagation();
- }
- }
-}
-
-function docChanged (evt) {
- alert('changed');
-}
-
-function stripHTML(oldString) {
- var newString = oldString.replace(/(<([^>]+)>)/ig,"");
-
- //replace carriage returns and line feeds
- newString = newString.replace(/\r\n/g," ");
- newString = newString.replace(/\n/g," ");
- newString = newString.replace(/\r/g," ");
-
- //trim string
- newString = trim(newString);
-
- return newString;
-}
-
-function trim(inputString) {
- // Removes leading and trailing spaces from the passed string. Also removes
- // consecutive spaces and replaces it with one space. If something besides
- // a string is passed in (null, custom object, etc.) then return the input.
- if (typeof inputString != "string") return inputString;
- var retValue = inputString;
- var ch = retValue.substring(0, 1);
-
- while (ch == " ") { // Check for spaces at the beginning of the string
- retValue = retValue.substring(1, retValue.length);
- ch = retValue.substring(0, 1);
- }
- ch = retValue.substring(retValue.length-1, retValue.length);
-
- while (ch == " ") { // Check for spaces at the end of the string
- retValue = retValue.substring(0, retValue.length-1);
- ch = retValue.substring(retValue.length-1, retValue.length);
- }
-
- // Note that there are two spaces in the string - look for multiple spaces within the string
- while (retValue.indexOf(" ") != -1) {
- // Again, there are two spaces in each of the strings
- retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length);
- }
- return retValue; // Return the trimmed string back to the user
-}
-
-//contributed by archv1le (thanks archv1le!)
-function rteKeyPress(window) {
- if (window.event.keyCode == 13) {
- var range = window.document.selection.createRange();
- var obj = range.parentElement();
- if (obj.tagName != "LI") {
- window.event.returnValue = false; // cancel Standard-event
- range.pasteHTML('<br>');
- range.select(); // re-sets the cursor to the right position
- }
- }
-}
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>blank_page</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</head>
+<body class="mceContentBody">
+
+</body>
+</html>
--- /dev/null
+// arabic lang variables
+// Toolbar Items and Context Menu
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+bold_desc : 'غامق',
+italic_desc : 'مائل',
+underline_desc : 'تسطير',
+striketrough_desc : 'يتوسطه خط',
+justifyleft_desc : 'محاذاة إلى اليسار',
+justifycenter_desc : 'توسيط',
+justifyright_desc : 'محاذاة إلى اليمين',
+justifyfull_desc : 'ضبط',
+bullist_desc : 'تعداد نقطي',
+numlist_desc : 'تعداد رقمي',
+outdent_desc : 'إنقاص المسافة البادئة',
+indent_desc : 'زيادة المسافة البادئة',
+undo_desc : 'تراجع',
+redo_desc : 'إعادة',
+link_desc : 'إدراج/تحرير رابط',
+unlink_desc : 'إزالة رابط',
+image_desc : 'إدراج/تحرير صورة',
+cleanup_desc : 'Cleanup messy code',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : 'إدراج/تحرير رابط',
+insert : 'إدراج',
+update : 'إدراج',
+cancel : 'ألغي',
+insert_link_url : 'رابط URL',
+insert_link_target : 'الهدف',
+insert_link_target_same : 'نفس الإطار',
+insert_link_target_blank : 'إطار جديد (_blank)',
+insert_image_title : 'إدراج/تحرير صورة',
+insert_image_src : 'صورة URL',
+insert_image_alt : 'الوصف',
+help_desc : 'المساعدة',
+bold_img : 'bold.gif',
+italic_img : 'italic.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// CA lang variables by Marc Bria
+
+tinyMCE.addToLang('',{
+bold_desc : 'Negreta',
+italic_desc : 'Cursiva',
+underline_desc : 'Subratllat',
+striketrough_desc : 'Tatxat',
+justifyleft_desc : 'Alinear a l´esquerra',
+justifycenter_desc : 'Alinear al centre',
+justifyright_desc : 'Alinear a la dreta',
+justifyfull_desc : 'Alinear justificat',
+bullist_desc : 'Llista sense ordenar',
+numlist_desc : 'Llista ordenada',
+outdent_desc : 'Disminueix sangria',
+indent_desc : 'Augmentar sangria',
+undo_desc : 'Desfer',
+redo_desc : 'Refer',
+link_desc : 'Insertar enllaç',
+unlink_desc : 'Treure enllaç',
+image_desc : 'Insertar imatge',
+cleanup_desc : 'Netejar codi',
+focus_alert : 'L´àrea de l´editor ha de ser enfocada abans d´executar aquesta comanda.',
+edit_confirm : 'Vols utilitzar el modus WYSIWYG per a aquesta àrea de text?',
+insert_link_title : 'Insertar/editar enllaç',
+insert : 'Insertar',
+update : 'Insertar',
+cancel : 'Cancel·lar',
+insert_link_url : 'Adreça de l´enllaç',
+insert_link_target : 'Destí',
+insert_link_target_same : 'Obrir enllaç a la mateixa finestra',
+insert_link_target_blank : 'Obrir enllaç en una finestra nova',
+insert_image_title : 'Insertar/editar imatge',
+insert_image_src : 'URL de l´imatge',
+insert_image_alt : 'Descripció de la imatge',
+help_desc : 'Ajut',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copiar/Tallar/Enganxar no és possible amb Mozilla i Firefox.\nVols més informació sobre aquest problema de seguretat?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * @author Michi
+ * @author Pavel Novák
+ * @author Josef Klimosz
+ *
+ * $Id$
+ */
+
+
+tinyMCE.addToLang('',{
+bold_desc : 'Tučně',
+italic_desc : 'Kurzíva',
+underline_desc : 'Podtržení',
+striketrough_desc : 'Přeškrtnutí',
+justifyleft_desc : 'Zarovnání vlevo',
+justifycenter_desc : 'Zarovnání na střed',
+justifyright_desc : 'Zarovnání vpravo',
+justifyfull_desc : 'Zarovnání do bloku',
+bullist_desc : 'Seznam s odrážkami',
+numlist_desc : 'Číslovaný seznam',
+outdent_desc : 'Snížit odsazení',
+indent_desc : 'Zvýšit odsazení',
+undo_desc : 'Zpět',
+redo_desc : 'Znovu',
+link_desc : 'Vložit odkaz',
+unlink_desc : 'Zrušit odkaz',
+image_desc : 'Vložit obrázek',
+cleanup_desc : 'Vyčistit kód',
+focus_alert : 'Před použitím tohoto příkazu musí být kurzor v okně editoru.',
+edit_confirm : 'Chcete použít WYSIWYG editaci pro tento text?',
+insert_link_title : 'Vložit/upravit odkaz',
+insert : 'Vložit',
+update : 'Změnit',
+cancel : 'Zrušit',
+insert_link_url : 'URL odkazu',
+insert_link_target : 'Cíl',
+insert_link_target_same : 'Otevřít odkaz ve stejném okně',
+insert_link_target_blank : 'Otevřít odkaz v novém okně',
+insert_image_title : 'Vložit/upravit obrázek',
+insert_image_src : 'URL obrázku',
+insert_image_alt : 'Popis obrázku',
+help_desc : 'Nápověda',
+bold_img : 'bold.gif',
+italic_img : 'italic.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Funkce Kopírovat/vyjmout/vložit nejsou použitelné v Mozille a Firefoxu.\nChcete více informací o tomto problému?',
+popup_blocked : 'Omlouváme se, ale blokovač vyskakovacích oken neumožnil otevřít okno, které zprostředkovává funkčnost aplikace. Musíte vypnout blokování vyskakovacích oken na tomto webu, abyste využili plné funkčnosti.'
+});
+
--- /dev/null
+// DK lang variables contributed by Jan Moelgaard
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fed',
+italic_desc : 'Kursiv',
+underline_desc : 'Understreg',
+striketrough_desc : 'Gennemstreg',
+justifyleft_desc : 'Venstrestil',
+justifycenter_desc : 'Centrer',
+justifyright_desc : 'Højrestil',
+justifyfull_desc : 'Lige margin',
+bullist_desc : 'Bulletliste',
+numlist_desc : 'Nummerliste',
+outdent_desc : 'Ryk til venstre',
+indent_desc : 'Ryk til højre',
+undo_desc : 'Fortryd',
+redo_desc : 'Gør igen',
+link_desc : 'Indsæt link',
+unlink_desc : 'Fjern link',
+image_desc : 'Indsæt billede',
+cleanup_desc : 'Ryd op i koden',
+focus_alert : 'Der skal sættes fokus på sessionen, før man kan bruge denne kommando',
+edit_confirm : 'Vil du bruge WYSIWYG mode til dette textområde?',
+insert_link_title : 'Indsæt eller rediger link',
+insert : 'Indsæt',
+update : 'Opdater',
+cancel : 'Fortryd',
+insert_link_url : 'Linkadresse',
+insert_link_target : 'Target',
+insert_link_target_same : 'Luk linket op i samme vindue',
+insert_link_target_blank : 'Luk linket op i et nyt vindue',
+insert_image_title : 'Indsæt / rediger billede',
+insert_image_src : 'Billedets adresse',
+insert_image_alt : 'Alternativ tekst',
+help_desc : 'Hjælp',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fett',
+italic_desc : 'Kursiv',
+underline_desc : 'Unterstrichen',
+striketrough_desc : 'Durchgestrichen',
+justifyleft_desc : 'Linksbündig',
+justifycenter_desc : 'Zentriert',
+justifyright_desc : 'Rechtsbündig',
+justifyfull_desc : 'Blocksatz',
+bullist_desc : 'Aufzählungszeichen',
+numlist_desc : 'Nummerierung',
+outdent_desc : 'Einzug verkleinern',
+indent_desc : 'Einzug vergrössern',
+undo_desc : 'Rückgängig',
+redo_desc : 'Wiederholen',
+link_desc : 'Link einfügen/bearbeiten',
+unlink_desc : 'Link entfernen',
+image_desc : 'Bild einfügen/bearbeiten',
+cleanup_desc : 'unsauberen Code aufräumen',
+focus_alert : 'Eine Bearbeitungsinstanz muss für diesen Befehl hervorgehoben.',
+edit_confirm : 'Wollen Sie den WYSIWYG Modus für dieses Textfeld benutzen?',
+insert_link_title : 'Link einfügen/bearbeiten',
+insert : 'Einfügen',
+update : 'Aktualisieren',
+cancel : 'Abbrechen',
+insert_link_url : 'Link URL',
+insert_link_target : 'Ziel',
+insert_link_target_same : 'Link in gleichen Fester öffnen',
+insert_link_target_blank : 'Link in neuen Fenster öffnen',
+insert_image_title : 'Bild einfügen/bearbeiten',
+insert_image_src : 'Bild URL',
+insert_image_alt : 'Bild Beschreibung',
+help_desc : 'Hilfe',
+bold_img : "bold_de_se.gif",
+italic_img : "italic_de_se.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopieren/Ausschneiten/Einfügen ist mit Mozilla und Firefox nicht verfügbar.\nWollen Sie mehr Informationen darüber erhalten?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+bold_desc : '¸íôïíç ãñáöÞ',
+italic_desc : 'ÐëÜãéá ãñáöÞ',
+underline_desc : 'ÕðïãñÜììéóç',
+striketrough_desc : 'ÄéáêñéôÞ äéáãñáöÞ',
+justifyleft_desc : 'Óôïß÷éóç áñéóôåñÜ',
+justifycenter_desc : 'Óôïß÷éóç óôï êÝíôñï',
+justifyright_desc : 'Óôïß÷éóç äåîéÜ',
+justifyfull_desc : 'ÐëÞñçò óôïß÷éóç',
+bullist_desc : 'Êïõêêßäåò',
+numlist_desc : 'Áñßèìçóç',
+outdent_desc : 'Ìåßùóç åóï÷Þò',
+indent_desc : 'Áýîçóç åóï÷Þò',
+undo_desc : 'Áíáßñåóç',
+redo_desc : 'Áêýñùóç áíáßñåóçò',
+link_desc : 'Äçìéïõñãßá/Äéüñèùóç õðåñ-óýíäåóçò',
+unlink_desc : 'ÄéáãñáöÞ õðåñ-óýíäåóçò',
+image_desc : 'ÅéóáãùãÞ/Äéüñèùóç åéêüíáò',
+cleanup_desc : 'ÊáèÜñéóìá êþäéêá',
+focus_alert : 'ÐñÝðåé íá õðÜñ÷åé åíåñãüò êÜðïéïò åðåîåñãáóôÞò êåéìÝíïõ ðñéí íá ÷ñçóéìïðïéÞóåôå áõôÞ ôçí åíôïëÞ.',
+edit_confirm : 'ÈÝëåôå íá ÷ñçóéìïðïéÞóåôå ôçí êáôÜóôáóç WYSIWYG ãéá ôï óõãêåêñéìÝíï ðëáßóéï êåéìÝíïõ;',
+insert_link_title : 'Äçìéïõñãßá/Äéüñèùóç õðåñ-óýíäåóçò',
+insert : 'ÅéóáãùãÞ',
+update : 'ÅéóáãùãÞ',
+cancel : 'Áêýñùóç',
+insert_link_url : 'Äéåýèõíóç',
+insert_link_target : 'Óôü÷ïò',
+insert_link_target_same : '¢íïéãìá ôçò äéåýèõíóçò óôï ßäéï ðáñÜèõñï',
+insert_link_target_blank : '¢íïéãìá ôçò äéåýèõíóçò óå íÝï ðáñÜèõñï',
+insert_image_title : 'ÅéóáãùãÞ/Äéüñèùóç åéêüíáò',
+insert_image_src : 'Äéåýèõíóç',
+insert_image_alt : 'ÐåñéãñáöÞ',
+help_desc : 'ÂïÞèåéá',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Bold',
+italic_desc : 'Italic',
+underline_desc : 'Underline',
+striketrough_desc : 'Striketrough',
+justifyleft_desc : 'Align left',
+justifycenter_desc : 'Align center',
+justifyright_desc : 'Align right',
+justifyfull_desc : 'Align full',
+bullist_desc : 'Unordered list',
+numlist_desc : 'Ordered list',
+outdent_desc : 'Outdent',
+indent_desc : 'Indent',
+undo_desc : 'Undo',
+redo_desc : 'Redo',
+link_desc : 'Insert/edit link',
+unlink_desc : 'Unlink',
+image_desc : 'Insert/edit image',
+cleanup_desc : 'Cleanup messy code',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : 'Insert/edit link',
+insert : 'Insert',
+update : 'Update',
+cancel : 'Cancel',
+insert_link_url : 'Link URL',
+insert_link_target : 'Target',
+insert_link_target_same : 'Open link in the same window',
+insert_link_target_blank : 'Open link in a new window',
+insert_image_title : 'Insert/edit image',
+insert_image_src : 'Image URL',
+insert_image_alt : 'Image description',
+help_desc : 'Help',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// ES lang variables by Alvaro Velasco
+
+tinyMCE.addToLang('',{
+bold_desc : 'Negrita',
+italic_desc : 'Cursiva',
+underline_desc : 'Subrayado',
+striketrough_desc : 'Tachado',
+justifyleft_desc : 'Alinear a la izquierda',
+justifycenter_desc : 'Alinear al centro',
+justifyright_desc : 'Alinear a la derecha',
+justifyfull_desc : 'Alinear justificado',
+bullist_desc : 'Lista sin ordenar',
+numlist_desc : 'Lista ordenada',
+outdent_desc : 'Disminuye sangria',
+indent_desc : 'Aumentar sangria',
+undo_desc : 'Deshacer',
+redo_desc : 'Rehacer',
+link_desc : 'Insertar enlace',
+unlink_desc : 'Quitar enlace',
+image_desc : 'Insertar imagen',
+cleanup_desc : 'Limpiar codigo',
+focus_alert : 'Una instanacia del editor debe ser enfocada antes de usar este comando.',
+edit_confirm : 'Quieres usar el modo WYSIWYG para esta area de texto?',
+insert_link_title : 'Insertar/editar enlace',
+insert : 'Insertar',
+update : 'Insertar',
+cancel : 'Cancelar',
+insert_link_url : 'Direccion del enlace',
+insert_link_target : 'Destino',
+insert_link_target_same : 'Abrir enlace en la misma ventana',
+insert_link_target_blank : 'Abrir enlace en una ventana nueva',
+insert_image_title : 'Insertar/editar imagen',
+insert_image_src : 'URL de la imagen',
+insert_image_alt : 'Descripcion de la imagen',
+help_desc : 'Ayuda',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+bold_desc : '????',
+italic_desc : '????',
+underline_desc : '??? ?? ???',
+striketrough_desc : '?? ?????',
+justifyleft_desc : '?? ???',
+justifycenter_desc : '??? ???',
+justifyright_desc : '???? ???',
+justifyfull_desc : '????? ???',
+bullist_desc : '????',
+numlist_desc : '???? ????',
+outdent_desc : '???? ?????',
+indent_desc : '?????? ?????',
+undo_desc : '????????',
+redo_desc : '????????',
+link_desc : '??? ? ?????? ????',
+unlink_desc : '??? ????',
+image_desc : '??? ? ?????? ???',
+cleanup_desc : '??????? ??',
+focus_alert : 'A editor instance must be focused before using this command.',
+edit_confirm : 'Do you want to use the WYSIWYG mode for this textarea?',
+insert_link_title : '??? ? ?????? ????',
+insert : ' ????? ',
+update : ' ????? ',
+cancel : ' ?????? ',
+insert_link_url : 'URL ????',
+insert_link_target : '????',
+insert_link_target_same : '???? ?? ?? ???? ???? ??? ??',
+insert_link_target_blank : '???? ?? ?? ???? ???? ??? ??',
+insert_image_title : '??? ? ?????? ???',
+insert_image_src : 'URL ???',
+insert_image_alt : '?????',
+help_desc : '??????',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// FI lang variables by Urho Konttori from Absolutions
+
+tinyMCE.addToLang('',{
+bold_desc : 'Lihavoi',
+italic_desc : 'Kursivoi',
+underline_desc : 'Alleviivaa',
+striketrough_desc : 'Yliviivaa',
+justifyleft_desc : 'Vasen tasaus',
+justifycenter_desc : 'Keskitys',
+justifyright_desc : 'Oikea tasaus',
+justifyfull_desc : 'Pakotettu tasaus',
+bullist_desc : 'Numeroimaton lista',
+numlist_desc : 'Numeroitu lista',
+outdent_desc : 'Poista sisennyt',
+indent_desc : 'Sisennys',
+undo_desc : 'Peruuta',
+redo_desc : 'Suorita uudelleen',
+link_desc : 'Lisää linkki',
+unlink_desc : 'Poista linkki',
+image_desc : 'Lisää kuva',
+cleanup_desc : 'Siisti koodi',
+focus_alert : 'Teksinkäsittelyalueella täytyy olla fokus ennen tämän komennon suorittamista.',
+edit_confirm : 'Haluatko käyttää WYSIWYG moodia tähän tekstialueeseen?',
+insert_link_title : 'Lisää/muokkaa linkkiä',
+insert : 'Lisää',
+update : 'Lisää',
+cancel : 'Peruuta',
+insert_link_url : 'Linkin URL',
+insert_link_target : 'Kohde',
+insert_link_target_same : 'Avaa linkki samassa ikkunassa',
+insert_link_target_blank : 'Avaa linkki uudessa ikkunassa',
+insert_image_title : 'Lisää/muokkaa kuvaa',
+insert_image_src : 'Kuvan URL',
+insert_image_alt : 'Kuvan selite',
+help_desc : 'Apua',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// FR lang variables by Pat Boens
+// Modify by Laurent Dran
+
+tinyMCE.addToLang('',{
+bold_desc : 'Gras',
+italic_desc : 'Italique',
+underline_desc : 'Souligné',
+striketrough_desc : 'Barré',
+justifyleft_desc : 'Aligner à gauche',
+justifycenter_desc : 'Aligner au centre',
+justifyright_desc : 'Aligner à droite',
+justifyfull_desc : 'Justifier',
+bullist_desc : 'Liste désordonnée (puces)',
+numlist_desc : 'Liste ordonnée (numéros)',
+outdent_desc : 'Diminuer le retrait',
+indent_desc : 'Augmenter le retrait',
+undo_desc : 'Défaire',
+redo_desc : 'Refaire',
+link_desc : 'Insérer/éditer le lien',
+unlink_desc : 'Enlever le lien',
+image_desc : 'Insérer/éditer une image',
+cleanup_desc : 'Nettoyer le code',
+focus_alert : 'Une instance de l\éditeur doit avoir le focus avant d\'utiliser cette commande.',
+edit_confirm : 'Voulez-vous utiliser le mode WYSIWYG pour cette zone de texte (textarea) ?',
+insert_link_title : 'Insertion/édition lien',
+insert : 'Insertion',
+update : 'Insertion',
+cancel : 'Annuler',
+insert_link_url : 'Lien URL',
+insert_link_target : 'Cible',
+insert_link_target_same : 'Ouvrir le lien dans la même fenêtre',
+insert_link_target_blank : 'Ouvrir le lien dans une nouvelle fenêtre',
+insert_image_title : 'Insertion/édition d\'une image',
+insert_image_src : 'URL de l\'image',
+insert_image_alt : 'Description de l\'image',
+help_desc : 'Aide',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles pour Mozilla et Firefox.\nVoulez vous plus d\'informatios à ce sujet?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom
+
+tinyMCE.addToLang('',{
+bold_desc : 'Gras',
+italic_desc : 'Italique',
+underline_desc : 'Souligner',
+striketrough_desc : 'Barrer',
+justifyleft_desc : 'Aligner à gauche',
+justifycenter_desc : 'Aligner au centre',
+justifyright_desc : 'Aligner à droite',
+justifyfull_desc : 'Justifier',
+bullist_desc : 'Puces',
+numlist_desc : 'Numérotation',
+outdent_desc : 'Réduire le retrait',
+indent_desc : 'Augmenter le retrait',
+undo_desc : 'Annuler la dernière action',
+redo_desc : 'Refaire la dernière action annulée',
+link_desc : 'Insérer un hyperlien',
+unlink_desc : 'Supprimer un hyperlien',
+image_desc : 'Insérer une image',
+cleanup_desc : 'Nettoyer le code',
+focus_alert : 'Un éditeur doit être sélectionné pour utiliser cette fonction.',
+edit_confirm : 'Désirez-vous utiliser l\'éditeur pour modifier cette zone?',
+insert_link_title : 'Insérer / Modifier un hyperlien',
+insert : 'Insérer',
+update : 'Insérer',
+cancel : 'Annuler',
+insert_link_url : 'Adresse URL',
+insert_link_target : 'Destination',
+insert_link_target_same : 'Ouvrir dans la même fenêtre',
+insert_link_target_blank : 'Ouvrir dans une nouvelle fenêtre',
+insert_image_title : 'Insérer / Modifier une image',
+insert_image_src : 'Adresse de l\'image',
+insert_image_alt : 'Description de l\'image',
+help_desc : 'Aide',
+bold_img : "bold_fr.gif",
+italic_img : "italic.gif",
+underline_img : "underline_fr.gif",
+clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles dans Mozilla et FireFox.\nDésirez-vous consulter de plus amples informations à ce sujet?'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+bold_desc : 'îåãâù',
+italic_desc : 'ðèåé',
+underline_desc : '÷å úçúé',
+striketrough_desc : '÷å çåöä',
+justifyleft_desc : 'éùø ìùîàì',
+justifycenter_desc : 'éùø ìîøëæ',
+justifyright_desc : 'éùø ìéîéï',
+justifyfull_desc : 'éùø ìùðé äöããéí',
+bullist_desc : 'øùéîä çñøú ñãø',
+numlist_desc : 'øùéîä îñåãøú',
+outdent_desc : 'ä÷èï ëðéñä',
+indent_desc : 'äâãì ëðéñä',
+undo_desc : 'áèì',
+redo_desc : 'áöò ùåá',
+link_desc : 'äëðñ/òøåê ÷éùåø',
+unlink_desc : 'áèì ÷éùåø',
+image_desc : 'äëðñ/òøåê úîåðä',
+cleanup_desc : 'ð÷ä ÷åã îáåìâï',
+focus_alert : 'éù ìáçåø áùãä òøéëä ìôðé ùðéúï ìäùúîù áô÷åãä æå.',
+edit_confirm : 'äàí áøöåðê ìäùúîù áîöá òøéëä òùéøä (WYSIWYG) òáåø ùãä è÷ñè æä?',
+insert_link_title : 'äëðñ/òøåê ÷éùåø',
+insert : 'äëðñ',
+update : 'òãëï',
+cancel : 'áèì',
+insert_link_url : 'ëúåáú (URL) ä÷éùåø',
+insert_link_target : 'éòã',
+insert_link_target_same : 'ôúç àú ä÷éùåø áàåúå çìåï',
+insert_link_target_blank : 'ôúç àú ä÷éùåø áçìåï çãù',
+insert_image_title : 'äëðñ/òøåê úîåðä',
+insert_image_src : 'ëúåáú (URL) äúîåðä',
+insert_image_alt : 'úéàåø äúîåðä',
+help_desc : 'òæøä',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'ôòåìåú äòú÷ä/âæéøä/äãá÷ä àéðï ðúîëåú úçú Mozilla å-Firefox.\näàí áøöåðê ì÷áì îéãò ðåñó àåãåú ðåùà æä?',
+popup_blocked : 'ñìéçä, àê ùîðå ìá ëé çåñí äçìåðåú ä÷åôöéí ùìê çñí çìåï ùîäååä çì÷ îäééùåí. úöèøê ìáèì àú çñéîú äçìåðåú ä÷åôöéí áàúø æä ëãé ìðöì ëìé æä áîìåàå.'
+});
--- /dev/null
+// HU lang variables
+// Edited by 2XP (2xp@dino.hu)
+
+tinyMCE.addToLang('',{
+bold_desc : 'Félkövér',
+italic_desc : 'Dõlt',
+underline_desc : 'Aláhúzott',
+striketrough_desc : 'Áthúzott',
+justifyleft_desc : 'Balra igazítás',
+justifycenter_desc : 'Középre igazítás',
+justifyright_desc : 'Jobbra igazítás',
+justifyfull_desc : 'Sorkizárt',
+bullist_desc : 'Felsorolás',
+numlist_desc : 'Számozott lista',
+outdent_desc : 'Behúzás balra',
+indent_desc : 'Behúzás jobbra',
+undo_desc : 'Visszavonás',
+redo_desc : 'Ismétlés',
+link_desc : 'Link felvétele',
+unlink_desc : 'Link törlése',
+image_desc : 'Kép beillesztése',
+cleanup_desc : 'Kód tisztítása',
+focus_alert : 'Miel\u00F5tt haszn\u00E1lja ezt a funkci\u00F3t, ki kell jel\u00F6lnie a szerkeszteni k\u00EDv\u00E1nt ter\u00FCletet.',
+edit_confirm : 'K\u00EDv\u00E1nja a WYSIWYG m\u00F3dot erre a sz\u00F6vegter\u00FCletre alkalmazni??',
+insert_link_title : 'Link beillesztése/szerkesztése',
+insert : 'Beillesztés',
+update : 'Beillesztés',
+cancel : 'Mégsem',
+insert_link_url : 'Link URL',
+insert_link_target : 'Cél',
+insert_link_target_same : 'Link megnyitása azonos ablakban',
+insert_link_target_blank : 'Link megnyitása új ablakban',
+insert_image_title : 'Kép beillesztése/szerkesztése',
+insert_image_src : 'Kép URL',
+insert_image_alt : 'Képleírás',
+help_desc : 'Segítég',
+bold_img : 'bold.gif',
+italic_img : 'italic.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// Variabili lingua IT - fabrix.xm@lombardiacom.it
+
+tinyMCE.addToLang('',{
+bold_desc : 'Grassetto',
+italic_desc : 'Corsivo',
+underline_desc : 'Sottolineato',
+striketrough_desc : 'Barrato',
+justifyleft_desc : 'Allinea a sinistra',
+justifycenter_desc : 'Allinea centrato',
+justifyright_desc : 'Allinea a destra',
+justifyfull_desc : 'Giustifica',
+bullist_desc : 'Lista non ordinata',
+numlist_desc : 'Lista ordinata',
+outdent_desc : 'Rientra',
+indent_desc : 'Indenta',
+undo_desc : 'Annulla',
+redo_desc : 'Ripeti',
+link_desc : 'Inserisci link',
+unlink_desc : 'Elimina link',
+image_desc : 'Inserisci immagine',
+cleanup_desc : 'Pulisci il codice',
+focus_alert : 'Una istanza dell\' editor deve essere selezionata prima di usare questo comando.',
+edit_confirm : 'Vuoi usare la modalit\u00E0 WYSIWYG per questa textarea?',
+insert_link_title : 'Inserisci/modifica link',
+insert : 'Inserisci',
+update : 'Inserisci',
+cancel : 'Cancella',
+insert_link_url : 'Link URL',
+insert_link_target : 'Target',
+insert_link_target_same : 'Apri il link nella stessa finestra',
+insert_link_target_blank : 'Apri il link in una nuova finestra',
+insert_image_title : 'Inserisci/modifica immagine',
+insert_image_src : 'URL immagine',
+insert_image_alt : 'Descrizione dell\'immagine',
+help_desc : 'Guida',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// JP lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : '\e$BB@;z\e(B',
+italic_desc : '\e$B<PBN\e(B',
+underline_desc : '\e$B2<@~\e(B',
+striketrough_desc : '\e$BKu>C@~\e(B',
+justifyleft_desc : '\e$B:85M$a\e(B',
+justifycenter_desc : '\e$BCf1{9g$o$;\e(B',
+justifyright_desc : '\e$B1&5M$a\e(B',
+justifyfull_desc : '\e$B9TB7$(\e(B',
+bullist_desc : '\e$B2U>r=q\e(B',
+numlist_desc : '\e$BHV9fIU$-2U>r=q\e(B',
+outdent_desc : '\e$B;z>e$2\e(B',
+indent_desc : '\e$B;z2<$2\e(B',
+undo_desc : '\e$B$d$j$J$*$7\e(B',
+redo_desc : '\e$B:F<B9T\e(B',
+link_desc : '\e$B%j%s%/$NA^F~\e(B/\e$BJT=8\e(B',
+unlink_desc : '\e$B%j%s%/$N:o=|\e(B',
+image_desc : '\e$B2hA|$NA^F~\e(B/\e$BJT=8\e(B',
+cleanup_desc : '\e$B%3!<%I@0M}\e(B',
+focus_alert : '\e$B$3$N%3%^%s%I$r;H$&A0$K%(%G%#%?>e$N$I$3$+$rA*Br$9$kI,MW$,$"$j$^$9!#\e(B',
+edit_confirm : 'WYSIWYG\e$B%b!<%I$G$3$N%F%-%9%H%(%j%"$rJT=8$7$^$9$+!)\e(B',
+insert_link_title : '\e$B%j%s%/$NA^F~\e(B/\e$BJT=8\e(B',
+insert : '\e$BA^F~\e(B',
+update : '\e$BA^F~\e(B',
+cancel : '\e$B<h$j>C$7\e(B',
+insert_link_url : '\e$B%j%s%/@h\e(BURL',
+insert_link_target : '\e$B%?!<%2%C%H\e(B',
+insert_link_target_same : '\e$BF1$8Ak$G%j%s%/$r3+$/\e(B',
+insert_link_target_blank : '\e$B?7$7$$Ak$G%j%s%/$r3+$/\e(B',
+insert_image_title : '\e$B2hA|$NA^F~\e(B/\e$BJT=8\e(B',
+insert_image_src : '\e$B2hA|$N\e(BURL',
+insert_image_alt : '\e$B2hA|$N@bL@\e(B',
+help_desc : '\e$B%X%k%W\e(B',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// KO lang variables by Setzer Gabbiani
+
+tinyMCE.addToLang('',{
+bold_desc : 'ÁøÇÏ°Ô',
+italic_desc : '±â¿ïÀÓ',
+underline_desc : '¹ØÁÙ',
+striketrough_desc : '°¡·ÎÁÙ',
+justifyleft_desc : '¿ÞÂÊ Á¤·Ä',
+justifycenter_desc : '°¡¿îµ¥ Á¤·Ä',
+justifyright_desc : '¿À¸¥ÂÊ Á¤·Ä',
+justifyfull_desc : '¾çÂÊ Á¤·Ä',
+bullist_desc : '¸ñÂ÷ ¸Å±â±â',
+numlist_desc : '¹øÈ£ ¸Å±â±â',
+outdent_desc : '³»¾î¾²±â',
+indent_desc : 'µé¿©¾²±â',
+undo_desc : '½ÇÇàÃë¼Ò',
+redo_desc : 'Àç½ÇÇà',
+link_desc : '¸µÅ© ³Ö±â/°íÄ¡±â',
+unlink_desc : '¸µÅ© ÇØÁ¦',
+image_desc : '±×¸² ³Ö±â/°íÄ¡±â',
+cleanup_desc : 'Äڵ带 ±ò²ûÇÏ°Ô',
+focus_alert : 'ÀÌ ¸í·ÉÀ» ½ÇÇàÇϱâ Àü¿¡ ¹Ýµå½Ã ¿¡µðÅÍ ³»ÀÇ ¾îµò°¡¿¡ Ä¿¼°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.',
+edit_confirm : 'ÀÌ ÅؽºÆ® ¹Ú½º¿¡¼ HTML ¿¡µðÅ͸¦ »ç¿ëÇÏ±æ ¿øÇϽʴϱî?',
+insert_link_title : '¸µÅ© ³Ö±â/°íÄ¡±â',
+insert : '»ðÀÔ',
+update : '»ðÀÔ',
+cancel : 'Ãë¼Ò',
+insert_link_url : 'URL ¸µÅ©',
+insert_link_target : 'Ÿ°Ù',
+insert_link_target_same : '°°Àº â¿¡¼ ¸µÅ© ¿±â',
+insert_link_target_blank : '»õ â¿¡¼ ¸µÅ© ¿±â',
+insert_image_title : '±×¸² ³Ö±â/°íÄ¡±â',
+insert_image_src : '±×¸² URL',
+insert_image_alt : '±×¸² ¼³¸í',
+help_desc : 'µµ¿ò¸»',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// NL lang variables thanks to "Meint Post"
+
+tinyMCE.addToLang('',{
+bold_desc : 'Vet',
+italic_desc : 'Schuin',
+underline_desc : 'Onderstrepen',
+striketrough_desc : 'Doorhalen',
+justifyleft_desc : 'Links uitlijnen',
+justifycenter_desc : 'Centreren',
+justifyright_desc : 'Rechts uitlijnen',
+justifyfull_desc : 'Volledig uitlijnen',
+bullist_desc : 'Ongeordende lijst',
+numlist_desc : 'Geordende lijst',
+outdent_desc : 'Uitspringen',
+indent_desc : 'Inspringen',
+undo_desc : 'Ongedaan maken',
+redo_desc : 'Opnieuw uitvoeren',
+link_desc : 'Link invoegen',
+unlink_desc : 'Link verwijderen',
+image_desc : 'Afbeelding invoegen',
+cleanup_desc : 'Slordige code verbeteren',
+focus_alert : 'Verplaats de focus naar de editor voor het uitvoeren van dit commado.',
+edit_confirm : 'Wilt u de WYSIWYG mode voor deze textarea gebruiken?',
+insert_link_title : 'Link invoegen/bewerken',
+insert : 'Invoegen',
+update : 'Bewerken',
+cancel : 'Afbreken',
+insert_link_url : 'URL link',
+insert_link_target : 'Bestemming',
+insert_link_target_same : 'Open link in hetzelfde venster',
+insert_link_target_blank : 'Open link in een nieuw venster',
+insert_image_title : 'Afbeelding invoegen/bewerken',
+insert_image_src : 'Afbeelding',
+insert_image_alt : 'Beschrijving',
+help_desc : 'Help',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// NO lang variables made by Sten Aksel Heien
+
+tinyMCE.addToLang('',{
+bold_desc : 'Uthevet',
+italic_desc : 'Kursiv',
+underline_desc : 'Understreket',
+striketrough_desc : 'Gjennomstreket',
+justifyleft_desc : 'Vensterestille',
+justifycenter_desc : 'Sentrere',
+justifyright_desc : 'Høyerestille',
+justifyfull_desc : 'Fyll',
+bullist_desc : 'Punktliste',
+numlist_desc : 'Nummerliste',
+outdent_desc : 'Undrag',
+indent_desc : 'Indrag',
+undo_desc : 'Angre',
+redo_desc : 'Gjør om',
+link_desc : 'Opprett/endre lenke',
+unlink_desc : 'Fjern lenke',
+image_desc : 'Sett inn/endre bilde',
+cleanup_desc : 'Rens grisete kode',
+focus_alert : 'Editoren må være i fokus før du benytter denne kommando.',
+edit_confirm : 'Vil du benytte WYSIWYG editoren for dette tekstfelt?',
+insert_link_title : 'Opprett/endre lenke',
+insert : 'Opprett',
+update : 'Opprett',
+cancel : 'Avbryt',
+insert_link_url : 'Lenkens URL',
+insert_link_target : 'Vindu',
+insert_link_target_same : 'Åpne i samme vindu',
+insert_link_target_blank : 'Åpne i nytt vindu',
+insert_image_title : 'Opprett/endre bilde',
+insert_image_src : 'Bildets URL',
+insert_image_alt : 'Bildets beskrivelse',
+help_desc : 'Hjelp',
+bold_img : 'bold_de_se.gif',
+italic_img : 'italic_de_se.gif',
+underline_img : 'underline.gif',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Pogrubienie',
+italic_desc : 'Kursywa',
+underline_desc : 'Podkreslenie',
+striketrough_desc : 'Przekreslenie',
+justifyleft_desc : 'Otaczanie z lewej',
+justifycenter_desc : 'Wysrodkowanie',
+justifyright_desc : 'Otaczanie z prawej',
+justifyfull_desc : 'Justowanie',
+bullist_desc : 'Lista nie numerowana',
+numlist_desc : 'Lista numerowana',
+outdent_desc : 'Zmniejsz wciecie',
+indent_desc : 'Zwieksz wciecie',
+undo_desc : 'Cofnij',
+redo_desc : 'Ponów',
+link_desc : 'Wstaw/Edytuj link',
+unlink_desc : 'Skasuj link',
+image_desc : 'Wstaw/Edytuj obrazek',
+cleanup_desc : 'Wyczysc niepotrzebny kod',
+focus_alert : 'Musisz zaznaczyc cokolwiek przed uzyciem tej komendy.',
+edit_confirm : 'Czy chcesz uzyc edytora WYSIWIG dla tego pola ?',
+insert_link_title : 'Wstaw/Edytuj Link',
+insert : 'Wstaw',
+update : 'Zmien',
+cancel : 'Wyjdz',
+insert_link_url : 'Adres URL',
+insert_link_target : 'Cel',
+insert_link_target_same : 'Otwórz w tym samym oknie',
+insert_link_target_blank : 'Otwórz w nowym oknie',
+insert_image_title : 'Wstaw/Edytuj obrazek',
+insert_image_src : 'Adres URL obrazka',
+insert_image_alt : 'Opis obrazka',
+help_desc : 'Pomoc',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Kopiowanie/Wycinanie/Wklejanie nie jest obslugiwane w przegladarkach Mozilla and Firefox.\nPotrzebujesz wiecej informacji na ten temat?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// PT lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Negrito',
+italic_desc : 'Itálico',
+underline_desc : 'Sublinhar',
+striketrough_desc : 'Riscado',
+justifyleft_desc : 'Alinhar á esquerda',
+justifycenter_desc : 'Alinhar ao centro',
+justifyright_desc : 'Alinhar á direita',
+justifyfull_desc : 'Justificado',
+bullist_desc : 'Lista não ordenada',
+numlist_desc : 'Lista ordenada',
+outdent_desc : 'Retirar indentação',
+indent_desc : 'Indentar',
+undo_desc : 'Desfazer',
+redo_desc : 'Refazer',
+link_desc : 'Inserir Hiperligação',
+unlink_desc : 'Remover hiperligação',
+image_desc : 'Inserir Referência a imagem externa',
+object_desc : 'Inserir Objecto Multimédia da Galeria',
+cleanup_desc : 'Limpeza de código',
+focus_alert : 'Uma instância do editor deverá estar seleccionada antes de utilizar este comando.',
+edit_confirm : 'Deseja utilizar o modo visual de edição para ezta área de texto?',
+insert_link_title : 'Inserir/editar hiperligação',
+insert : 'Inserir',
+update : 'Actualizar',
+cancel : 'Cancelar',
+insert_link_url : 'URL de hiperligação',
+insert_link_target : 'Destino',
+insert_link_target_same : 'Abrir endereço na mesma janela',
+insert_link_target_blank : 'Abrir endereço numa nova janela',
+insert_image_title : 'Inserir/editar imagem',
+insert_image_src : 'Endereço da imagem',
+insert_image_alt : 'Descrição alt.',
+help_desc : 'Ajuda',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copiar/Cortar/Colar não está disponível em Mozilla and Firefox.\nPretende obter mais informação acerca desta questão?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// PT lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Negrito',
+italic_desc : 'Itálico',
+underline_desc : 'Sublinhar',
+striketrough_desc : 'Riscado',
+justifyleft_desc : 'Alinhar à esquerda',
+justifycenter_desc : 'Alinhar ao centro',
+justifyright_desc : 'Alinhar à direita',
+justifyfull_desc : 'Justificado',
+bullist_desc : 'Lista não ordenada',
+numlist_desc : 'Lista ordenada',
+outdent_desc : 'Retirar indentação',
+indent_desc : 'Indentar',
+undo_desc : 'Desfazer',
+redo_desc : 'Refazer',
+link_desc : 'Inserir Hiperligação',
+unlink_desc : 'Remover hiperligação',
+image_desc : 'Inserir Referência a imagem externa',
+object_desc : 'Inserir Objeto Multimídia da Galeria',
+cleanup_desc : 'Limpeza de código',
+focus_alert : 'Uma instância do editor deverá estar selecionada antes de utilizar este comando.',
+edit_confirm : 'Deseja utilizar o modo visual de edição para ezta área de texto?',
+insert_link_title : 'Inserir/editar hiperligação',
+insert : 'Inserir',
+update : 'Atualizar',
+cancel : 'Cancelar',
+insert_link_url : 'URL de hiperligação',
+insert_link_target : 'Destino',
+insert_link_target_same : 'Abrir endereço na mesma janela',
+insert_link_target_blank : 'Abrir endereço numa nova janela',
+insert_image_title : 'Inserir/editar imagem',
+insert_image_src : 'Endereço da imagem',
+insert_image_alt : 'Descrição alt.',
+help_desc : 'Ajuda',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copiar/Cortar/Colar não está disponível no Mozilla e Firefox.\nPretende obter mais informação acerca desta questão?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+The language pack codes are based on ISO-639-2
+http://www.loc.gov/standards/iso639-2/englangn.html
--- /dev/null
+// Russian translation by Roman Filippov
+// romanf@terrahost.ca
+// www.hunox.ca
+
+tinyMCE.addToLang('',{
+bold_desc : 'Ïîëóæèðíûé',
+italic_desc : 'Êóðñèâ',
+underline_desc : 'Ïîä÷åðêèâàíèå',
+striketrough_desc : 'Ïåðå÷åðêèâàíèå',
+justifyleft_desc : 'Âûðâíèâàíèå âëåâî',
+justifycenter_desc : 'Âûðâíèâàíèå ïî öåíòðó',
+justifyright_desc : 'Âûðâíèâàíèå âïðàâî',
+justifyfull_desc : 'Âûðâíèâàíèå ðàâíîìåðíî',
+bullist_desc : 'Ìàðêèðîâàííûé ñïèñîê',
+numlist_desc : 'Íóìåðîâàííûé ñïèñîê',
+outdent_desc : 'Óìåíüøèòü îòñòóï',
+indent_desc : 'Óâåëè÷èòü îòñïóò',
+undo_desc : 'Îòìåíèòü',
+redo_desc : 'Âåðíóòü',
+link_desc : 'Âñòàâèòü/èçìåíèòü ññûëêó',
+unlink_desc : 'Óáðàòü ññûëêó',
+image_desc : 'Âñòàâèòü/èçìåíèòü èçîáðàæåíèå',
+cleanup_desc : 'Âû÷èñòèòü ãðÿçíûé êîä',
+focus_alert : 'Âû äîëæíû íàõîäèòñÿ â ïîëå ðåäàêòîðà ïåðåä èñïîëüçîâàíèåì äàííîé êîìàíäû.',
+edit_confirm : 'Õîòèòå ëè Âû âîñïîëüçîâàòüñÿ WYSIWYG ðåäàêòîðîì äëÿ ýòîãî ïîëÿ ââîäà?',
+insert_link_title : 'Âñòàâèòü/èçìåíèòü ññûëêó',
+insert : 'Âñòàâèòü',
+update : 'Âñòàâèòü',
+cancel : 'Îòìåíèòü',
+insert_link_url : 'Àäðåñ',
+insert_link_target : 'Îòêðûòü â...:',
+insert_link_target_same : 'òîì æå îêíå',
+insert_link_target_blank : 'íîâîì îêíå',
+insert_image_title : 'Âñòàâèòü/èçìåíèòü èçîáðàæåíèå',
+insert_image_src : 'Àäðåñ',
+insert_image_alt : 'Îïèñàíèå',
+help_desc : 'Ïîìîùü',
+bold_img : "bold_ru.gif",
+italic_img : "italic_ru.gif",
+underline_img : "underline_ru.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+bold_desc : 'Fet',
+italic_desc : 'Kursiv',
+underline_desc : 'Understruken',
+striketrough_desc : 'Genomstruken',
+justifyleft_desc : 'Vänsterjustera',
+justifycenter_desc : 'Centrera',
+justifyright_desc : 'Högerjustera',
+justifyfull_desc : 'Kantjustera',
+bullist_desc : 'Punktlista',
+numlist_desc : 'Nummerlista',
+outdent_desc : 'Utdrag',
+indent_desc : 'Indrag',
+undo_desc : 'Ångra',
+redo_desc : 'Gör om',
+link_desc : 'Skapa länk',
+unlink_desc : 'Ta bort länk',
+image_desc : 'Skapa/redigera bild',
+cleanup_desc : 'Rensa skräpkod',
+focus_alert : 'Flytta markören till en textyta innan du använder detta kommando.',
+edit_confirm : 'Vill du använda WYSIWYG-editorn för detta textfält?',
+insert_link_title : 'Skapa/redigera länk',
+insert : 'Skapa',
+update : 'Uppdatera',
+cancel : 'Avbryt',
+insert_link_url : 'Länkens URL',
+insert_link_target : 'Fönster',
+insert_link_target_same : 'Öppna länken i samma fönster',
+insert_link_target_blank : 'Öppna länken i ett nytt fönster',
+insert_link_delta_width : 20,
+insert_link_delta_height : 10,
+insert_image_title : 'Skapa/redigera bild',
+insert_image_src : 'Bildens URL',
+insert_image_alt : 'Bildens beskrivning',
+bold_img : 'bold_de_se.gif',
+italic_img : 'italic_de_se.gif',
+underline_img : "underline.gif",
+clipboard_msg : 'Klipput/Kopiera/Klistra fungerar inte Mozilla och Firefox. Vill du veta mer om detta?',
+help_desc : "Hjälp",
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// TH lang variables Thai contributed by Innozent
+
+tinyMCE.addToLang('',{
+bold_desc : 'µÑÇ˹Ò',
+italic_desc : 'µÑÇéàÍÕ§',
+underline_desc : '¢Õ´àÊé¹ãµé',
+striketrough_desc : '¢Õ´¤ÅèÍÁ',
+justifyleft_desc : 'ªÔ´¢Íº«éÒÂ',
+justifycenter_desc : '¡Ö觡ÅÒ§',
+justifyright_desc : 'ªÔ´¢Íº¢ÇÒ',
+justifyfull_desc : '¨Ñ´ªÔ´¢Íº',
+bullist_desc : 'ÊÑÅѡɳìáÊ´§ËÑÇ¢éÍÂèÍÂ',
+numlist_desc : 'ÅӴѺàÅ¢',
+outdent_desc : 'Å´¡ÒÃàÂ×éͧ',
+indent_desc : 'à¾ÔèÁ¡ÒÃàÂ×éͧ',
+undo_desc : 'àÅÔ¡·Ó',
+redo_desc : '·ÓãËÁè',
+link_desc : 'à¾ÔèÁÅÔ§¤ì',
+unlink_desc : 'źÅÔ§¤ì',
+image_desc : 'ãÊèÃÙ»',
+cleanup_desc : '·Ó¤ÇÒÁÊÐÍÒ´¢éͤÇÒÁ',
+focus_alert : 'µéͧàÅ×Í¡¡Åèͧ¢éͤÇÒÁ¡è͹·Õè¨Ðãªé¤ÓÊÑ觹Õé',
+edit_confirm : '¤Ø³µéͧ¡Ò÷Õè¨Ðãªé WYSIWYG mode ÊÓËÃѺ¡Åèͧ¢éͤÇÒÁ¹ÕéËÃ×ÍäÁè?',
+insert_link_title : 'à¾ÔèÁ/á¡éä¢ ÅÔ§¤ì',
+insert : 'à¾ÔèÁ',
+cancel : '¡àÅÔ¡',
+insert_link_url : 'Link URL',
+insert_link_target : 'à»Ô´ÅÔ§¤ìã¹',
+insert_link_target_same : '˹éÒµèÒ§à´ÕÂǡѹ',
+insert_link_target_blank : '˹éÒµèÒ§ãËÁè',
+insert_image_title : 'à¾ÔèÁ/á¡éä¢ ÃÙ»',
+insert_image_src : 'URL ¢Í§ÃÙ»',
+insert_image_alt : '¤Ó͸ԺÒÂÃÙ»',
+help_desc : 'ªèÇÂàËÅ×Í',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+bold_desc : '´ÖÌå',
+italic_desc : 'бÌå',
+underline_desc : 'Ï»®Ïß',
+striketrough_desc : 'ɾ³ýÏß',
+justifyleft_desc : '×ó¶ÔÆë',
+justifycenter_desc : '¾ÓÖжÔÆë',
+justifyright_desc : 'ÓÒ¶ÔÆë',
+justifyfull_desc : 'Á½¶Ë¶ÔÆë',
+bullist_desc : 'ÎÞÐòÁбí',
+numlist_desc : 'ÓÐÐòÁбí',
+outdent_desc : '¼õÉÙËõ½ø',
+indent_desc : 'Ôö¼ÓËõ½ø',
+undo_desc : '³·Ïû',
+redo_desc : 'ÖØ×ö',
+link_desc : '²åÈë/±à¼ Á´½Ó',
+unlink_desc : 'ɾ³ýÁ´½Ó',
+image_desc : '²åÈë/±à¼ ͼÏñ',
+cleanup_desc : 'Çå³ýÈßÓà´úÂë',
+focus_alert : 'ÔÚʹÓôËÃüÁîǰij¸ö±à¼Æ÷±ØÐëÏÈ»ñµÃ½¹µã£¡',
+edit_confirm : 'ÄãÏëÔÚ´ËTextAreaÉÏʹÓÃËù¼û¼´ËùµÃ±à¼Æ÷ô£¿',
+insert_link_title : '²åÈë/±à¼ Á´½Ó',
+insert : '²åÈë',
+update : '¸üÐÂ',
+cancel : 'È¡Ïû',
+insert_link_url : 'Á´½ÓµØÖ·',
+insert_link_target : 'Ä¿±ê',
+insert_link_target_same : 'ÔÚͬһ´°¿ÚÖдò¿ªÁ´½Ó',
+insert_link_target_blank : 'ÔÚд°¿ÚÖдò¿ªÁ´½Ó',
+insert_image_title : '²åÈë/±à¼ ͼÏñ',
+insert_image_src : 'ͼÏñµØÖ·',
+insert_image_alt : 'ͼÏñÃèÊö',
+help_desc : '°ïÖú',
+bold_img : "bold.gif",
+italic_img : "italic.gif",
+underline_img : "underline.gif",
+clipboard_msg : '¼ôÇÐ/¸´ÖÆ/Õ³Ìù¹¦ÄÜÔÚMozillaºÍFirefoxÉÏÉв»¿ÉÓá£\nÄãÏëÁ˽â¹ØÓÚÕâ¸öÎÊÌâµÄ¸ü¶àÐÅÏ¢Âð£¿',
+popup_blocked : 'Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.'
+});
--- /dev/null
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+.
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+.
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+.
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+.
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+.
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+.
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+.
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+.
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('template', 'en'); // <- Add a comma separated list of all supported languages
+
+/****
+ * Steps for creating a plugin from this template:
+ *
+ * 1. Change all "template" to the name of your plugin.
+ * 2. Remove all the callbacks in this file that you don't need.
+ * 3. Remove the popup.htm file if you don't need any popups.
+ * 4. Add your custom logic to the callbacks you needed.
+ * 5. Write documentation in a readme.txt file on how to use the plugin.
+ * 6. Upload it under the "Plugins" section at sourceforge.
+ *
+ ****/
+
+/**
+ * Gets executed when a editor instance is initialized
+ */
+function TinyMCE_template_initInstance(inst) {
+ // You can take out plugin specific parameters
+ alert("Initialization parameter:" + tinyMCE.getParam("template_someparam", false));
+}
+
+/**
+ * Gets executed when a editor needs to generate a button.
+ */
+function TinyMCE_template_getControlHTML(control_name) {
+ switch (control_name) {
+ case "template":
+ return '<img id="{$editor_id}_template" src="{$pluginurl}/images/template.gif" title="{$lang_template_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceTemplate\', true);" />';
+ }
+
+ return "";
+}
+
+/**
+ * Gets executed when a command is called.
+ */
+function TinyMCE_template_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ // Remember to have the "mce" prefix for commands so they don't intersect with built in ones in the browser.
+ case "mceTemplate":
+ // Show UI/Popup
+ if (user_interface) {
+ // Open a popup window and send in some custom data in a window argument
+ var template = new Array();
+
+ template['file'] = '../../plugins/template/popup.htm'; // Relative to theme
+ template['width'] = 300;
+ template['height'] = 200;
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, some_custom_arg : "somecustomdata"});
+
+ // Let TinyMCE know that something was modified
+ tinyMCE.triggerNodeChange(false);
+ } else {
+ // Do a command this gets called from the template popup
+ alert("execCommand: mceTemplate gets called from popup.");
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+/**
+ * Gets executed when the selection/cursor position was changed.
+ */
+function TinyMCE_template_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ // Deselect template button
+ tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonNormal');
+
+ // Select template button if parent node is a strong or b
+ if (node.parentNode.nodeName == "STRONG" || node.parentNode.nodeName == "B")
+ tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonSelected');
+
+ return true;
+}
+
+/**
+ * Gets executed when contents is inserted / retrived.
+ */
+function TinyMCE_template_cleanup(type, content) {
+ switch (type) {
+ case "get_from_editor":
+ alert("[FROM] Value HTML string: " + content);
+
+ // Do custom cleanup code here
+
+ break;
+
+ case "insert_to_editor":
+ alert("[TO] Value HTML string: " + content);
+
+ // Do custom cleanup code here
+
+ break;
+
+ case "get_from_editor_dom":
+ alert("[FROM] Value DOM Element " + content.innerHTML);
+
+ // Do custom cleanup code here
+
+ break;
+
+ case "insert_to_editor_dom":
+ alert("[TO] Value DOM Element: " + content.innerHTML);
+
+ // Do custom cleanup code here
+
+ break;
+ }
+
+ return content;
+}
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('template', 'en'); // <- Add a comma separated list of all supported languages
+
+/****
+ * Steps for creating a plugin from this template:
+ *
+ * 1. Change all "template" to the name of your plugin.
+ * 2. Remove all the callbacks in this file that you don't need.
+ * 3. Remove the popup.htm file if you don't need any popups.
+ * 4. Add your custom logic to the callbacks you needed.
+ * 5. Write documentation in a readme.txt file on how to use the plugin.
+ * 6. Upload it under the "Plugins" section at sourceforge.
+ *
+ ****/
+
+/**
+ * Information about the plugin.
+ */
+function TinyMCE_template_getInfo() {
+ return {
+ longname : 'Template plugin',
+ author : 'Your name',
+ authorurl : 'http://www.yoursite.com',
+ infourl : 'http://www.yoursite.com/docs/template.html',
+ version : "1.0"
+ };
+};
+
+/**
+ * Gets executed when a editor instance is initialized
+ */
+function TinyMCE_template_initInstance(inst) {
+ // You can take out plugin specific parameters
+ alert("Initialization parameter:" + tinyMCE.getParam("template_someparam", false));
+}
+
+/**
+ * Gets executed when a editor needs to generate a button.
+ */
+function TinyMCE_template_getControlHTML(control_name) {
+ switch (control_name) {
+ case "template":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceTemplate\', true);" onmousedown="return false;"><img id="{$editor_id}_template" src="{$pluginurl}/images/template.gif" title="{$lang_template_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Gets executed when a command is called.
+ */
+function TinyMCE_template_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ // Remember to have the "mce" prefix for commands so they don't intersect with built in ones in the browser.
+ case "mceTemplate":
+ // Show UI/Popup
+ if (user_interface) {
+ // Open a popup window and send in some custom data in a window argument
+ var template = new Array();
+
+ template['file'] = '../../plugins/template/popup.htm'; // Relative to theme
+ template['width'] = 300;
+ template['height'] = 200;
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, some_custom_arg : "somecustomdata"});
+
+ // Let TinyMCE know that something was modified
+ tinyMCE.triggerNodeChange(false);
+ } else {
+ // Do a command this gets called from the template popup
+ alert("execCommand: mceTemplate gets called from popup.");
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+/**
+ * Gets executed when the selection/cursor position was changed.
+ */
+function TinyMCE_template_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ // Deselect template button
+ tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonNormal');
+
+ // Select template button if parent node is a strong or b
+ if (node.parentNode.nodeName == "STRONG" || node.parentNode.nodeName == "B")
+ tinyMCE.switchClassSticky(editor_id + '_template', 'mceButtonSelected');
+
+ return true;
+}
+
+/**
+ * Gets executed when contents is inserted / retrived.
+ */
+function TinyMCE_template_cleanup(type, content) {
+ switch (type) {
+ case "get_from_editor":
+ alert("[FROM] Value HTML string: " + content);
+
+ // Do custom cleanup code here
+
+ break;
+
+ case "insert_to_editor":
+ alert("[TO] Value HTML string: " + content);
+
+ // Do custom cleanup code here
+
+ break;
+
+ case "get_from_editor_dom":
+ alert("[FROM] Value DOM Element " + content.innerHTML);
+
+ // Do custom cleanup code here
+
+ break;
+
+ case "insert_to_editor_dom":
+ alert("[TO] Value DOM Element: " + content.innerHTML);
+
+ // Do custom cleanup code here
+
+ break;
+ }
+
+ return content;
+}
--- /dev/null
+// UK lang variables
+
+/* Remember to namespace the language parameters lang_<your plugin>_<some name> */
+
+tinyMCE.addToLang('',{
+template_title : 'This is just a template popup',
+template_desc : 'This is just a template button'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+/* Remember to namespace the language parameters <your plugin>_<some name> */
+
+tinyMCE.addToLang('',{
+template_title : 'Ceci est un exmple pour le gabarit de popup',
+template_desc : 'Ceci est un exmple pour le gabarit d\'un bouton'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+/* Remember to namespace the language parameters <your plugin>_<some name> */
+
+tinyMCE.addToLang('',{
+template_title : 'Õâ½öÊÇÄ£°åµÄµ¯³ö´°¿Ú',
+template_desc : 'Õâ½öÊÇÄ£°åµÄ°´Å¥'
+});
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_template_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript">
+ <!--
+ function init() {
+ var inst = tinyMCE.selectedInstance;
+ var elm = inst.getFocusElement();
+
+ alert("Got a window argument from plugin: " + tinyMCE.getWindowArg('some_custom_arg'));
+
+ // Set the form item value to the selected node element name
+ document.forms[0].nodename.value = elm.nodeName;
+ }
+
+ function insertSomething() {
+ // Execute the mceTemplate command without UI this time
+ tinyMCEPopup.execCommand('mceTemplate');
+
+ // Close the dialog
+ tinyMCEPopup.close();
+ }
+ //-->
+ </script>
+</head>
+<body onload="init();">
+ <form onsubmit="insert();return false;">
+ <h3>{$lang_template_title}</h3>
+
+ <!-- Gets filled with the selected elements name -->
+ <div style="margin-top: 10px; margin-bottom: 10px">
+ The selected element name: <input type="text" name="nodename" />
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertSomething();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+This is a template/tutorial plugin that where created to help you in the development of own plugins for TinyMCE.
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('advhr','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');function TinyMCE_advhr_getInfo(){return{longname:'Advanced HR',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_advhr.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_advhr_getControlHTML(control_name){switch(control_name){case "advhr":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvancedHr\');" onmousedown="return false;"><img id="{$editor_id}_advhr" src="{$pluginurl}/images/advhr.gif" title="{$lang_insert_advhr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_advhr_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceAdvancedHr":var template=new Array();template['file']='../../plugins/advhr/rule.htm';template['width']=270;template['height']=180;template['width']+=tinyMCE.getLang('lang_advhr_delta_width',0);template['height']+=tinyMCE.getLang('lang_advhr_delta_height',0);var size="",width="",noshade="";if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="hr"){tinyMCE.hrElement=tinyMCE.selectedElement;if(tinyMCE.hrElement){size=tinyMCE.hrElement.getAttribute('size')?tinyMCE.hrElement.getAttribute('size'):"";width=tinyMCE.hrElement.getAttribute('width')?tinyMCE.hrElement.getAttribute('width'):"";noshade=tinyMCE.hrElement.getAttribute('noshade')?tinyMCE.hrElement.getAttribute('noshade'):"";}tinyMCE.openWindow(template,{editor_id:editor_id,size:size,width:width,noshade:noshade,mceDo:'update'});}else{if(tinyMCE.isMSIE){tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,'<hr />');}else{tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",size:size,width:width,noshade:noshade,mceDo:'insert'});}}return true;}return false;}function TinyMCE_advhr_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_advhr','mceButtonNormal');if(node==null)return;do{if(node.nodeName.toLowerCase()=="hr")tinyMCE.switchClassSticky(editor_id+'_advhr','mceButtonSelected');}while((node=node.parentNode));return true;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('advhr', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');
+
+function TinyMCE_advhr_getInfo() {
+ return {
+ longname : 'Advanced HR',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_advhr.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_advhr_getControlHTML(control_name) {
+ switch (control_name) {
+ case "advhr":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvancedHr\');" onmousedown="return false;"><img id="{$editor_id}_advhr" src="{$pluginurl}/images/advhr.gif" title="{$lang_insert_advhr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mceAdvanceHr command.
+ */
+function TinyMCE_advhr_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceAdvancedHr":
+ var template = new Array();
+
+ template['file'] = '../../plugins/advhr/rule.htm'; // Relative to theme
+ template['width'] = 270;
+ template['height'] = 180;
+
+ template['width'] += tinyMCE.getLang('lang_advhr_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_advhr_delta_height', 0);
+
+ var size = "", width = "", noshade = "";
+ if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "hr"){
+ tinyMCE.hrElement = tinyMCE.selectedElement;
+ if (tinyMCE.hrElement) {
+ size = tinyMCE.hrElement.getAttribute('size') ? tinyMCE.hrElement.getAttribute('size') : "";
+ width = tinyMCE.hrElement.getAttribute('width') ? tinyMCE.hrElement.getAttribute('width') : "";
+ noshade = tinyMCE.hrElement.getAttribute('noshade') ? tinyMCE.hrElement.getAttribute('noshade') : "";
+ }
+ tinyMCE.openWindow(template, {editor_id : editor_id, size : size, width : width, noshade : noshade, mceDo : 'update'});
+ } else {
+ if (tinyMCE.isMSIE) {
+ tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false,'<hr />');
+ } else {
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", size : size, width : width, noshade : noshade, mceDo : 'insert'});
+ }
+ }
+
+ return true;
+ }
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_advhr_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ tinyMCE.switchClassSticky(editor_id + '_advhr', 'mceButtonNormal');
+
+ if (node == null)
+ return;
+
+ do {
+ if (node.nodeName.toLowerCase() == "hr")
+ tinyMCE.switchClassSticky(editor_id + '_advhr', 'mceButtonSelected');
+ } while ((node = node.parentNode));
+
+ return true;
+}
\ No newline at end of file
--- /dev/null
+function init() {
+ var formObj = document.forms[0];
+ formObj.width.value = tinyMCE.getWindowArg('width');
+ formObj.size.value = tinyMCE.getWindowArg('size');
+ formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('mceDo'));
+ if (tinyMCE.getWindowArg('noshade')) {
+ formObj.noshade.checked = true;
+ }
+ if (tinyMCE.getWindowArg('width').lastIndexOf('%')!=-1) {
+ formObj.width2.value = "%";
+ formObj.width.value = formObj.width.value.substring(0,formObj.width.value.length-1);
+ }
+}
+
+function insertHR() {
+ var formObj = document.forms[0];
+ var width = formObj.width.value;
+ var size = formObj.size.value;
+ var html = '<hr';
+ if (size!='' && size!=0) {
+ html += ' size="' + size + '"';
+ }
+ if (width!='' && width!=0) {
+ html += ' width="' + width;
+ if (formObj.width2.value=='%') {
+ html += '%';
+ }
+ html += '"';
+ }
+ if (formObj.noshade.checked==true) {
+ html += ' noshade';
+ }
+ html += ' />';
+
+ tinyMCEPopup.execCommand("mceInsertContent", true, html);
+ tinyMCEPopup.close();
+}
+
+function cancelAction() {
+ tinyMCEPopup.close();
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Vložit/editovat vodorovný oddělovač',
+insert_advhr_width : 'Šířka',
+insert_advhr_size : 'Výška',
+insert_advhr_noshade : 'Nestínovat'
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Horizontale Linie einfügen / bearbeiten',
+insert_advhr_width : 'Breite',
+insert_advhr_size : 'Höhe',
+insert_advhr_noshade : 'Keinen Schatten'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Insert / edit Horizontale Rule',
+insert_advhr_width : 'Width',
+insert_advhr_size : 'Height',
+insert_advhr_noshade : 'No shadow'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_advhr_desc : '??? ? ?????? ?? ????',
+insert_advhr_width : '???',
+insert_advhr_size : '??????',
+insert_advhr_noshade : '???? ????'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Insérer / éditer une Rčgle Horizontale',
+insert_advhr_width : 'Largeur',
+insert_advhr_size : 'Hauteur',
+insert_advhr_noshade : 'Sans ombre'
+});
--- /dev/null
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Insérer / Modifier Séparateur Horizontal',
+insert_advhr_width : 'Largeur',
+insert_advhr_size : 'Hauteur',
+insert_advhr_noshade : 'Sans ombrage'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'äëðñ/òøåê ÷å àåô÷é',
+insert_advhr_width : 'øåçá',
+insert_advhr_size : 'âåáä',
+insert_advhr_noshade : 'ììà öì'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Invoegen / wijzigen Horizontale lijn',
+insert_advhr_width : 'Breedte',
+insert_advhr_size : 'Hoogte',
+insert_advhr_noshade : 'Geen schaduw'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Wstaw/Edytuj pozioma linie',
+insert_advhr_width : 'Szerokosc',
+insert_advhr_size : 'Wysokosc',
+insert_advhr_noshade : 'Brak cienia'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Inserir / editar Linha Horizontal',
+insert_advhr_width : 'Largura',
+insert_advhr_size : 'Altura',
+insert_advhr_noshade : 'Sem Sombra'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : 'Skapa/Redigera horisontell linje',
+insert_advhr_width : 'Bredd',
+insert_advhr_size : 'Höjd',
+insert_advhr_noshade : 'Ingen skugga'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+insert_advhr_desc : '²åÈë/±à¼ ˮƽ±ê³ß',
+insert_advhr_width : '¿í¶È',
+insert_advhr_size : '¸ß¶È',
+insert_advhr_noshade : 'ÎÞÒõÓ°'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <title>{$lang_insert_link_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/rule.js"></script>
+ <style type="text/css">
+ <!--
+ input.radio {
+ border: 1px none #000000;
+ background-color: transparent;
+ vertical-align: middle;
+ }
+ -->
+ </style>
+</head>
+<body onload="init();">
+ <form onsubmit="insertHR();return false;" action="#">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td colspan="2" class="title">{$lang_insert_advhr_desc}</td>
+ </tr>
+ <tr>
+ <td align="right">{$lang_insert_advhr_width}:</td>
+ <td nowrap="nowrap">
+ <input name="width" type="text" id="width" value="" style="width: 50px; vertical-align: middle;" />
+ <select name="width2" id="width2" style="width: 50px; vertical-align: middle;">
+ <option value="">px</option>
+ <option value="%">%</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td align="right" valign="top">{$lang_insert_advhr_size}:</td>
+ <td><select id="size" name="size" style="width: 100px;">
+ <option value="">Normal</option>
+ <option value="1">1</option>
+ <option value="2">2</option>
+ <option value="3">3</option>
+ <option value="4">4</option>
+ <option value="5">5</option>
+ </select></td>
+ <tr>
+ <td align="right" valign="top"><input type="checkbox" name="noshade" id="noshade" class="radio" /></td>
+ <td><label for="noshade">{$lang_insert_advhr_noshade}</label></td>
+ </tr>
+ <tr>
+ <td><input type="button" name="insert" value="{$lang_insert}" onclick="insertHR();" id="insert" /></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>
--- /dev/null
+/* CSS file for advimage plugin popup */
+
+.mceImageList {
+ width: 280px;
+}
+
+.mceActionPanel {
+ margin-top: 7px;
+}
+
+.alignPreview {
+ border: 1px solid black;
+ width: 140px;
+ height: 140px;
+ overflow: hidden;
+ padding: 5px;
+}
+
+.checkbox {
+ border: 0px;
+}
+
+.panel_wrapper div.current {
+ height: 305px;
+}
+
+#prev {
+ margin:0px;
+ border: 1px
+ solid black;
+ width: 99%;
+ height:150px;
+ overflow: auto;
+}
+
+#align, #classlist {
+ width: 150px;
+}
+
+#width, #height {
+ vertical-align: middle;
+ width: 50px;
+ text-align: center;
+}
+
+#vspace, #hspace, #border {
+ vertical-align: middle;
+ width: 30px;
+ text-align: center;
+}
+
+input {
+ width: 280px;
+}
+
+#constrain, #onmousemovecheck {
+ width: auto;
+}
+
+#id, #dir, #lang, #usemap, #longdesc {
+ width: 200px;
+}
--- /dev/null
+/* 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_getInfo(){return{longname:'Advanced image',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_advimage.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_advimage_getControlHTML(control_name){switch(control_name){case "image":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvImage\');" onmousedown="return false;"><img id="{$editor_id}_advimage" src="{$themeurl}/images/image.gif" title="{$lang_image_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';}return "";}function TinyMCE_advimage_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceAdvImage":var template=new Array();template['file']='../../plugins/advimage/image.htm';template['width']=480;template['height']=380;template['width']+=tinyMCE.getLang('lang_advimage_delta_width',0);template['height']+=tinyMCE.getLang('lang_advimage_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;}return false;}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;}function TinyMCE_advimage_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_advimage','mceButtonNormal');if(node==null)return;do{if(node.nodeName=="IMG"&&tinyMCE.getAttrib(node,'class').indexOf('mceItem')==-1)tinyMCE.switchClassSticky(editor_id+'_advimage','mceButtonSelected');}while((node=node.parentNode));return true;}
\ No newline at end of file
--- /dev/null
+/* 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_getInfo() {
+ return {
+ longname : 'Advanced image',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_advimage.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_advimage_getControlHTML(control_name) {
+ switch (control_name) {
+ case "image":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvImage\');" onmousedown="return false;"><img id="{$editor_id}_advimage" src="{$themeurl}/images/image.gif" title="{$lang_image_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';
+ }
+
+ return "";
+}
+
+function TinyMCE_advimage_execCommand(editor_id, element, command, user_interface, value) {
+ switch (command) {
+ case "mceAdvImage":
+ var template = new Array();
+
+ template['file'] = '../../plugins/advimage/image.htm';
+ template['width'] = 480;
+ template['height'] = 380;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_advimage_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+
+ return true;
+ }
+
+ return false;
+}
+
+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;
+}
+
+function TinyMCE_advimage_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ tinyMCE.switchClassSticky(editor_id + '_advimage', 'mceButtonNormal');
+
+ if (node == null)
+ return;
+
+ do {
+ if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1)
+ tinyMCE.switchClassSticky(editor_id + '_advimage', 'mceButtonSelected');
+ } while ((node = node.parentNode));
+
+ return true;
+}
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_insert_image_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>
+ <link href="css/advimage.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="advimage" onload="init();" style="display: none">
+ <form onsubmit="insertAction();return false;" action="#">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_advimage_tab_general}</a></span></li>
+ <li id="appearance_tab"><span><a href="javascript:mcTabs.displayTab('appearance_tab','appearance_panel');" onmousedown="return false;">{$lang_advimage_tab_appearance}</a></span></li>
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_advimage_tab_advanced}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <fieldset>
+ <legend>{$lang_advimage_general}</legend>
+
+ <table class="properties">
+ <tr>
+ <td class="column1"><label id="srclabel" for="src">{$lang_insert_image_src}</label></td>
+ <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input name="src" type="text" id="src" value="" onchange="showPreviewImage(this.value);" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('srcbrowser','src','image','advimage');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ <script language="javascript" type="text/javascript">renderImageList('imagelistsrc','src','onSelectMainImage');</script>
+ <tr>
+ <td class="column1"><label id="altlabel" for="alt">{$lang_insert_image_alt}</label></td>
+ <td colspan="2"><input id="alt" name="alt" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td class="column1"><label id="titlelabel" for="title">{$lang_advimage_title}</label></td>
+ <td colspan="2"><input id="title" name="title" type="text" value="" /></td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{$lang_advimage_preview}</legend>
+ <div id="prev"></div>
+ </fieldset>
+ </div>
+
+ <div id="appearance_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_advimage_tab_appearance}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label id="alignlabel" for="align">{$lang_insert_image_align}</label></td>
+ <td><select id="align" name="align" onchange="changeAppearance();">
+ <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>
+ <td rowspan="7" valign="top">
+ <div class="alignPreview">
+ <img id="alignSampleImg" src="images/sample.gif" alt="{$lang_advimage_example_img}" />
+ Lorem ipsum, Dolor sit amet, consectetuer adipiscing loreum ipsum edipiscing elit, sed diam
+ nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.Loreum ipsum
+ edipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam
+ erat volutpat.
+ </div>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>
+ <td>
+ <select id="classlist" name="classlist">
+ <option value="" selected>{$lang_not_set}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="widthlabel" for="width">{$lang_insert_image_dimensions}</label></td>
+ <td nowrap="nowrap">
+ <input name="width" type="text" id="width" value="" size="5" maxlength="5" onchange="changeHeight();" /> x
+ <input name="height" type="text" id="height" value="" size="5" maxlength="5" onchange="changeWidth();" /> px
+ </td>
+ </tr>
+
+ <tr>
+ <td> </td>
+ <td><table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="constrain" type="checkbox" name="constrain" class="checkbox" /></td>
+ <td><label id="constrainlabel" for="constrain">{$lang_advimage_constrain_proportions}</label></td>
+ </tr>
+ </table></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="vspacelabel" for="vspace">{$lang_insert_image_vspace}</label></td>
+ <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3" onchange="changeAppearance();updateStyle();" />
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="hspacelabel" for="hspace">{$lang_insert_image_hspace}</label></td>
+ <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3" onchange="changeAppearance();updateStyle();" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="borderlabel" for="border">{$lang_insert_image_border}</label></td>
+ <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changeAppearance();updateStyle();" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="stylelabel" for="style">{$lang_advimage_style}</label></td>
+ <td colspan="2"><input id="style" name="style" type="text" value="" onchange="styleUpdated();" /></td>
+ </tr>
+
+ <!-- <tr>
+ <td class="column1"><label id="classeslabel" for="classes">{$lang_advimage_classes}</label></td>
+ <td colspan="2"><input id="classes" name="classes" type="text" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>
+ </tr> -->
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="advanced_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_advimage_swap_image}</legend>
+
+ <input type="checkbox" id="onmousemovecheck" name="onmousemovecheck" class="checkbox" onclick="changeMouseMove();" />
+ <label id="onmousemovechecklabel" for="onmousemovecheck">{$lang_advimage_alt_image}</label>
+
+ <table border="0" cellpadding="4" cellspacing="0" width="100%">
+ <tr>
+ <td class="column1"><label id="onmouseoversrclabel" for="onmouseoversrc">{$lang_advimage_mouseover}</label></td>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="onmouseoversrc" name="onmouseoversrc" type="text" value="" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('overbrowser','onmouseoversrc','image','advimage');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ <script language="javascript" type="text/javascript">renderImageList('imagelistover','onmouseoversrc');</script>
+ <tr>
+ <td class="column1"><label id="onmouseoutsrclabel" for="onmouseoutsrc">{$lang_advimage_mouseout}</label></td>
+ <td class="column2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="onmouseoutsrc" name="onmouseoutsrc" type="text" value="" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('outbrowser','onmouseoutsrc','image','advimage');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ <script language="javascript" type="text/javascript">renderImageList('imagelistout','onmouseoutsrc');</script>
+ </table>
+ </fieldset>
+
+ <fieldset>
+ <legend>{$lang_advimage_misc}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td class="column1"><label id="idlabel" for="id">{$lang_advimage_id}</label></td>
+ <td><input id="id" name="id" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="dirlabel" for="dir">{$lang_advimage_langdir}</label></td>
+ <td>
+ <select id="dir" name="dir" onchange="changeAppearance();">
+ <option value="">{$lang_not_set}</option>
+ <option value="ltr">{$lang_advimage_ltr}</option>
+ <option value="rtl">{$lang_advimage_rtl}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="langlabel" for="lang">{$lang_advimage_langcode}</label></td>
+ <td>
+ <input id="lang" name="lang" type="text" value="" />
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="usemaplabel" for="usemap">{$lang_advimage_image_map}</label></td>
+ <td>
+ <input id="usemap" name="usemap" type="text" value="" />
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="longdesclabel" for="longdesc">{$lang_advimage_long_desc}</label></td>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="longdesc" name="longdesc" type="text" value="" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('longdescbrowser','longdesc','file','advimage');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="cancelAction();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+/* Functions for the advimage plugin popup */
+
+var preloadImg = null;
+
+function preinit() {
+ // Initialize
+ tinyMCE.setWindowArg('mce_windowresize', false);
+
+ // Import external list url javascript
+ var url = tinyMCE.getParam("external_image_list_url");
+ if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/')
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+ }
+}
+
+function convertURL(url, node, on_save) {
+ return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");
+}
+
+function getImageSrc(str) {
+ var pos = -1;
+
+ if (!str)
+ return "";
+
+ if ((pos = str.indexOf('this.src=')) != -1) {
+ var src = str.substring(pos + 10);
+
+ src = src.substring(0, src.indexOf('\''));
+
+ return src;
+ }
+
+ return "";
+}
+
+function getStyle(elm, st, attrib, style) {
+ var val = tinyMCE.getAttrib(elm, attrib);
+
+ if (typeof(style) == 'undefined')
+ style = attrib;
+
+ return val == '' ? (st[style] ? st[style].replace('px', '') : '') : val;
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var elm = inst.getFocusElement();
+ var action = "insert";
+
+ // Resize some elements
+ if (isVisible('srcbrowser'))
+ document.getElementById('src').style.width = '260px';
+
+ if (isVisible('overbrowser'))
+ document.getElementById('onmouseoversrc').style.width = '260px';
+
+ if (isVisible('outbrowser'))
+ document.getElementById('onmouseoutsrc').style.width = '260px';
+
+ if (isVisible('longdescbrowser'))
+ document.getElementById('longdesc').style.width = '180px';
+
+ // Check action
+ if (elm != null && elm.nodeName == "IMG")
+ action = "update";
+
+ formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
+
+ if (action == "update") {
+ var src = tinyMCE.getAttrib(elm, 'src');
+ var onmouseoversrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));
+ var onmouseoutsrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));
+
+ // Fix for drag-drop/copy paste bug in Mozilla
+ mceRealSrc = tinyMCE.getAttrib(elm, 'mce_real_src');
+ if (mceRealSrc != "")
+ src = mceRealSrc;
+
+ src = convertURL(src, elm, true);
+
+ if (onmouseoversrc != "")
+ onmouseoversrc = convertURL(onmouseoversrc, elm, true);
+
+ if (onmouseoutsrc != "")
+ onmouseoutsrc = convertURL(onmouseoutsrc, elm, true);
+
+ // Setup form data
+ var style = tinyMCE.parseStyle(elm.style.cssText);
+ formObj.src.value = src;
+ formObj.alt.value = tinyMCE.getAttrib(elm, 'alt');
+ formObj.title.value = tinyMCE.getAttrib(elm, 'title');
+ formObj.border.value = getStyle(elm, style, 'border', 'border-width');
+ formObj.vspace.value = tinyMCE.getAttrib(elm, 'vspace');
+ formObj.hspace.value = tinyMCE.getAttrib(elm, 'hspace');
+ formObj.width.value = getStyle(elm, style, 'width');
+ formObj.height.value = getStyle(elm, style, 'height');
+ formObj.onmouseoversrc.value = onmouseoversrc;
+ formObj.onmouseoutsrc.value = onmouseoutsrc;
+ formObj.id.value = tinyMCE.getAttrib(elm, 'id');
+ formObj.dir.value = tinyMCE.getAttrib(elm, 'dir');
+ formObj.lang.value = tinyMCE.getAttrib(elm, 'lang');
+ formObj.longdesc.value = tinyMCE.getAttrib(elm, 'longdesc');
+ formObj.usemap.value = tinyMCE.getAttrib(elm, 'usemap');
+ formObj.style.value = tinyMCE.serializeStyle(style);
+
+ // Select by the values
+ if (tinyMCE.isMSIE)
+ selectByValue(formObj, 'align', getStyle(elm, style, 'align', 'styleFloat'));
+ else
+ selectByValue(formObj, 'align', getStyle(elm, style, 'align', 'cssFloat'));
+
+ selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'));
+ selectByValue(formObj, 'imagelistsrc', src);
+ selectByValue(formObj, 'imagelistover', onmouseoversrc);
+ selectByValue(formObj, 'imagelistout', onmouseoutsrc);
+
+ updateStyle();
+ showPreviewImage(src);
+ changeAppearance();
+
+ window.focus();
+ }
+
+ addClassesToList('classlist', 'advimage_styles');
+
+ // If option enabled default contrain proportions to checked
+ if (tinyMCE.getParam("advimage_constrain_proportions", true))
+ formObj.constrain.checked = true;
+
+ // Check swap image if valid data
+ if (formObj.onmouseoversrc.value != "" || formObj.onmouseoutsrc.value != "")
+ setSwapImageDisabled(false);
+ else
+ setSwapImageDisabled(true);
+}
+
+function setSwapImageDisabled(state) {
+ var formObj = document.forms[0];
+
+ formObj.onmousemovecheck.checked = !state;
+
+ setBrowserDisabled('overbrowser', state);
+ setBrowserDisabled('outbrowser', state);
+
+ if (formObj.imagelistover)
+ formObj.imagelistover.disabled = state;
+
+ if (formObj.imagelistout)
+ formObj.imagelistout.disabled = state;
+
+ formObj.onmouseoversrc.disabled = state;
+ formObj.onmouseoutsrc.disabled = state;
+}
+
+function setAttrib(elm, attrib, value) {
+ var formObj = document.forms[0];
+ var valueElm = formObj.elements[attrib];
+
+ if (typeof(value) == "undefined" || value == null) {
+ value = "";
+
+ if (valueElm)
+ value = valueElm.value;
+ }
+
+ if (value != "") {
+ elm.setAttribute(attrib, value);
+
+ if (attrib == "style")
+ attrib = "style.cssText";
+
+ if (attrib == "longdesc")
+ attrib = "longDesc";
+
+ if (attrib == "width") {
+ attrib = "style.width";
+ value = value + "px";
+ }
+
+ if (attrib == "height") {
+ attrib = "style.height";
+ value = value + "px";
+ }
+
+ if (attrib == "class")
+ attrib = "className";
+
+ eval('elm.' + attrib + "=value;");
+ } else
+ elm.removeAttribute(attrib);
+}
+
+function makeAttrib(attrib, value) {
+ var formObj = document.forms[0];
+ var valueElm = formObj.elements[attrib];
+
+ if (typeof(value) == "undefined" || value == null) {
+ value = "";
+
+ if (valueElm)
+ value = valueElm.value;
+ }
+
+ if (value == "")
+ return "";
+
+ // XML encode it
+ value = value.replace(/&/g, '&');
+ value = value.replace(/\"/g, '"');
+ value = value.replace(/</g, '<');
+ value = value.replace(/>/g, '&gr;');
+
+ return ' ' + attrib + '="' + value + '"';
+}
+
+function insertAction() {
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var elm = inst.getFocusElement();
+ var formObj = document.forms[0];
+ var src = formObj.src.value;
+ var onmouseoversrc = formObj.onmouseoversrc.value;
+ var onmouseoutsrc = formObj.onmouseoutsrc.value;
+
+ // Fix output URLs
+ src = convertURL(src, tinyMCE.imgElement);
+
+ if (onmouseoversrc && onmouseoversrc != "")
+ onmouseoversrc = "this.src='" + convertURL(onmouseoversrc, tinyMCE.imgElement) + "';";
+
+ if (onmouseoutsrc && onmouseoutsrc != "")
+ onmouseoutsrc = "this.src='" + convertURL(onmouseoutsrc, tinyMCE.imgElement) + "';";
+
+ if (elm != null && elm.nodeName == "IMG") {
+ setAttrib(elm, 'src', src);
+ setAttrib(elm, 'mce_real_src', src);
+ setAttrib(elm, 'alt');
+ setAttrib(elm, 'title');
+ setAttrib(elm, 'border');
+ setAttrib(elm, 'vspace');
+ setAttrib(elm, 'hspace');
+ setAttrib(elm, 'width');
+ setAttrib(elm, 'height');
+ setAttrib(elm, 'onmouseover', onmouseoversrc);
+ setAttrib(elm, 'onmouseout', onmouseoutsrc);
+ setAttrib(elm, 'id');
+ setAttrib(elm, 'dir');
+ setAttrib(elm, 'lang');
+ setAttrib(elm, 'longdesc');
+ setAttrib(elm, 'usemap');
+ setAttrib(elm, 'style');
+ setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));
+ setAttrib(elm, 'align', getSelectValue(formObj, 'align'));
+
+ //tinyMCEPopup.execCommand("mceRepaint");
+
+ // Refresh in old MSIE
+ if (tinyMCE.isMSIE5)
+ elm.outerHTML = elm.outerHTML;
+ } else {
+ var html = "<img";
+
+ html += makeAttrib('src', src);
+ html += makeAttrib('alt');
+ html += makeAttrib('title');
+ html += makeAttrib('border');
+ html += makeAttrib('vspace');
+ html += makeAttrib('hspace');
+ html += makeAttrib('width');
+ html += makeAttrib('height');
+ html += makeAttrib('onmouseover', onmouseoutsrc);
+ html += makeAttrib('onmouseout', onmouseoutsrc);
+ html += makeAttrib('id');
+ html += makeAttrib('dir');
+ html += makeAttrib('lang');
+ html += makeAttrib('longdesc');
+ html += makeAttrib('usemap');
+ html += makeAttrib('style');
+ html += makeAttrib('class', getSelectValue(formObj, 'classlist'));
+ html += makeAttrib('align', getSelectValue(formObj, 'align'));
+ html += " />";
+
+ tinyMCEPopup.execCommand("mceInsertContent", false, html);
+ }
+
+ tinyMCEPopup.close();
+}
+
+function cancelAction() {
+ tinyMCEPopup.close();
+}
+
+function changeAppearance() {
+ var formObj = document.forms[0];
+ var img = document.getElementById('alignSampleImg');
+
+ if (img) {
+ img.align = formObj.align.value;
+ img.border = formObj.border.value;
+ img.hspace = formObj.hspace.value;
+ img.vspace = formObj.vspace.value;
+ }
+}
+
+function changeMouseMove() {
+ var formObj = document.forms[0];
+
+ setSwapImageDisabled(!formObj.onmousemovecheck.checked);
+}
+
+function updateStyle() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ if (tinyMCE.getParam('inline_styles', false)) {
+ st['width'] = formObj.width.value == '' ? '' : formObj.width.value + "px";
+ st['height'] = formObj.height.value == '' ? '' : formObj.height.value + "px";
+ st['border-width'] = formObj.border.value == '' ? '' : formObj.border.value + "px";
+ st['margin-top'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";
+ st['margin-bottom'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";
+ st['margin-left'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";
+ st['margin-right'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";
+ } else {
+ st['width'] = st['height'] = st['border-width'] = null;
+
+ if (st['margin-top'] == st['margin-bottom'])
+ st['margin-top'] = st['margin-bottom'] = null;
+
+ if (st['margin-left'] == st['margin-right'])
+ st['margin-left'] = st['margin-right'] = null;
+ }
+
+ formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function styleUpdated() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ if (st['width'])
+ formObj.width.value = st['width'].replace('px', '');
+
+ if (st['height'])
+ formObj.height.value = st['height'].replace('px', '');
+
+ if (st['margin-top'] && st['margin-top'] == st['margin-bottom'])
+ formObj.vspace.value = st['margin-top'].replace('px', '');
+
+ if (st['margin-left'] && st['margin-left'] == st['margin-right'])
+ formObj.hspace.value = st['margin-left'].replace('px', '');
+
+ if (st['border-width'])
+ formObj.border.value = st['border-width'].replace('px', '');
+}
+
+function changeHeight() {
+ var formObj = document.forms[0];
+
+ if (!formObj.constrain.checked || !preloadImg) {
+ updateStyle();
+ return;
+ }
+
+ var temp = (formObj.width.value / preloadImg.width) * preloadImg.height;
+ formObj.height.value = temp.toFixed(0);
+ updateStyle();
+}
+
+function changeWidth() {
+ var formObj = document.forms[0];
+
+ if (!formObj.constrain.checked || !preloadImg) {
+ updateStyle();
+ return;
+ }
+
+ var temp = (formObj.height.value / preloadImg.height) * preloadImg.width;
+ formObj.width.value = temp.toFixed(0);
+ updateStyle();
+}
+
+function onSelectMainImage(target_form_element, name, value) {
+ var formObj = document.forms[0];
+
+ formObj.alt.value = name;
+ formObj.title.value = name;
+
+ resetImageData();
+ showPreviewImage(formObj.elements[target_form_element].value);
+}
+
+function showPreviewImage(src) {
+ selectByValue(document.forms[0], 'imagelistsrc', src);
+
+ var elm = document.getElementById('prev');
+ var src = src == "" ? src : tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
+
+ if (src == "")
+ elm.innerHTML = "";
+ else
+ elm.innerHTML = '<img src="' + src + '" border="0" />'
+
+ getImageData(src);
+}
+
+function getImageData(src) {
+ preloadImg = new Image();
+
+ tinyMCE.addEvent(preloadImg, "load", updateImageData);
+ tinyMCE.addEvent(preloadImg, "error", resetImageData);
+
+ preloadImg.src = src;
+}
+
+function updateImageData() {
+ var formObj = document.forms[0];
+
+ if (formObj.width.value == "")
+ formObj.width.value = preloadImg.width;
+
+ if (formObj.height.value == "")
+ formObj.height.value = preloadImg.height;
+
+ updateStyle();
+}
+
+function resetImageData() {
+ var formObj = document.forms[0];
+ formObj.width.value = formObj.height.value = "";
+}
+
+function getSelectValue(form_obj, field_name) {
+ var elm = form_obj.elements[field_name];
+
+ if (elm == null || elm.options == null)
+ return "";
+
+ return elm.options[elm.selectedIndex].value;
+}
+
+function renderImageList(elm_id, target_form_element, onchange_func) {
+ if (typeof(tinyMCEImageList) == "undefined" || tinyMCEImageList.length == 0)
+ return;
+
+ var html = "";
+
+ html += '<tr><td class="column1"><label for="' + elm_id + '">{$lang_image_list}</label></td>';
+ html += '<td colspan="2"><select id="' + elm_id + '" name="' + elm_id + '"';
+ html += ' class="mceImageList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+ html += 'this.options[this.selectedIndex].value;';
+
+ if (typeof(onchange_func) != "undefined")
+ html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,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>';
+
+ html += '</select></td></tr>';
+
+ document.write(html);
+
+ // tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+// While loading
+preinit();
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Název obrázku',
+insert_image_onmousemove : 'Alternativní obrázek',
+insert_image_mouseover : 'pøi najetí my\9ai',
+insert_image_mouseout : 'pøi odjetí my\9ai'
+});
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Titel des Bildes',
+insert_image_onmousemove : 'Alternatives Bild',
+insert_image_mouseover : 'für Maus darüber',
+insert_image_mouseout : 'für Maus ausserhalb'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'General',
+tab_appearance : 'Appearance',
+tab_advanced : 'Advanced',
+general : 'General',
+title : 'Title',
+preview : 'Preview',
+constrain_proportions : 'Constrain proportions',
+langdir : 'Language direction',
+langcode : 'Language code',
+long_desc : 'Long description link',
+style : 'Style',
+classes : 'Classes',
+ltr : 'Left to right',
+rtl : 'Right to left',
+id : 'Id',
+image_map : 'Image map',
+swap_image : 'Swap image',
+alt_image : 'Alternative image',
+mouseover : 'for mouse over',
+mouseout : 'for mouse out',
+misc : 'Miscellaneous',
+example_img : 'Appearance preview image'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_image_alt2 : '????? ???',
+insert_image_onmousemove : '??? ???????',
+insert_image_mouseover : '??? ??????? ????? ???? ?????? ????',
+insert_image_mouseout : '??? ??????? ????? ???? ?????? ????'
+});
--- /dev/null
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Titre de l\'image',
+insert_image_onmousemove : 'Image alternative',
+insert_image_mouseover : 'pour le «mouse over»',
+insert_image_mouseout : 'pour le «mouse out»'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Titre de l\'image',
+insert_image_onmousemove : 'Image alternative',
+insert_image_mouseover : 'Pour la souris au dessus',
+insert_image_mouseout : 'Pour la souris en dehors'
+});
--- /dev/null
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Titre de l\'image',
+insert_image_onmousemove : 'Image alternative',
+insert_image_mouseover : 'pour le «mouse over»',
+insert_image_mouseout : 'pour le «mouse out»'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'ëåúøú äúîåðä',
+insert_image_onmousemove : 'úîåðä çìåôéú',
+insert_image_mouseover : 'ëùñîï äòëáø îòì äúîåðä',
+insert_image_mouseout : 'ëùñîï äòëáø òåæá àú äúîåðä'
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : '±×¸² Á¦¸ñ',
+insert_image_onmousemove : '´ëü À̹ÌÁö',
+insert_image_mouseover : '¸¶¿ì½º¸¦ ¿Ã·ÈÀ» ¶§',
+insert_image_mouseout : '¸¶¿ì½º¸¦ ³»·ÈÀ» ¶§'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Titel plaatje',
+insert_image_onmousemove : 'Alternatief plaatje',
+insert_image_mouseover : 'voor muis over',
+insert_image_mouseout : 'voor muis out'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Tytul obrazka',
+insert_image_onmousemove : 'Obrazek zastepczy',
+insert_image_mouseover : 'po najechaniu myszy',
+insert_image_mouseout : 'po odjechaniu myszy'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'Título da Imagem',
+insert_image_onmousemove : 'Imagem Alternativa',
+insert_image_mouseover : 'para quando mouse sobre',
+insert_image_mouseout : 'para quando mouse fora'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('advimage',{
+tab_general : 'Generella inställningar',
+tab_appearance : 'Visuella inställningar',
+tab_advanced : 'Avancerade inställningar',
+general : 'Generella',
+title : 'Titel',
+preview : 'Förhandsgranskning',
+constrain_proportions : 'Behåll proportionerna',
+langdir : 'Skrift riktning',
+langcode : 'Språk kåd',
+long_desc : 'Long beskrivning',
+style : 'Stil',
+classes : 'CSS Classer',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster',
+id : 'Id',
+image_map : 'Bild karta',
+swap_image : 'Byt bild',
+alt_image : 'Alternativ bild',
+mouseover : 'när pekaren är över',
+mouseout : 'när pekaren är utanför',
+misc : 'Övrigt',
+example_img : 'Förhandsgransknings bild'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+insert_image_alt2 : 'ͼƬ±êÌâ',
+insert_image_onmousemove : 'Ìæ´úͼÏñ',
+insert_image_mouseover : 'Êó±êÒÆÉÏʱ',
+insert_image_mouseout : 'Êó±êÒÆ¿ªÊ±'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* CSS file for advimage plugin popup */
+
+.mceLinkList, .mceAnchorList, #targetlist {
+ width: 280px;
+}
+
+.mceActionPanel {
+ margin-top: 7px;
+}
+
+.panel_wrapper div.current {
+ height: 320px;
+}
+
+#classlist, #title, #href {
+ width: 280px;
+}
+
+#popupurl, #popupname {
+ width: 200px;
+}
+
+#popupwidth, #popupheight, #popupleft, #popuptop {
+ width: 30px;
+ vertical-align: middle;
+ text-align: center;
+}
+
+#id, #style, #classes, #target, #dir, #hreflang, #lang, #charset, #type, #rel, #rev, #tabindex, #accesskey {
+ width: 200px;
+}
+
+#events_panel input {
+ width: 200px;
+}
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('advlink','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');function TinyMCE_advlink_getInfo(){return{longname:'Advanced link',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_advlink.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_advlink_getControlHTML(control_name){switch(control_name){case "link":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvLink\');" onmousedown="return false;"><img id="{$editor_id}_advlink" src="{$themeurl}/images/link.gif" title="{$lang_link_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';}return "";}function TinyMCE_advlink_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceAdvLink":var anySelection=false;var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();if(tinyMCE.selectedElement)anySelection=(tinyMCE.selectedElement.nodeName.toLowerCase()=="img")||(selectedText&&selectedText.length>0);if(anySelection||(focusElm!=null&&focusElm.nodeName=="A")){var template=new Array();template['file']='../../plugins/advlink/link.htm';template['width']=480;template['height']=400;template['width']+=tinyMCE.getLang('lang_advlink_delta_width',0);template['height']+=tinyMCE.getLang('lang_advlink_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});}return true;}return false;}function TinyMCE_advlink_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_advlink','mceButtonDisabled',true);if(node==null)return;if(any_selection)tinyMCE.switchClassSticky(editor_id+'_advlink','mceButtonNormal',false);do{if(node.nodeName=="A"&&tinyMCE.getAttrib(node,'href')!="")tinyMCE.switchClassSticky(editor_id+'_advlink','mceButtonSelected',false);}while((node=node.parentNode));return true;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('advlink', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');
+
+function TinyMCE_advlink_getInfo() {
+ return {
+ longname : 'Advanced link',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_advlink.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_advlink_getControlHTML(control_name) {
+ switch (control_name) {
+ case "link":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvLink\');" onmousedown="return false;"><img id="{$editor_id}_advlink" src="{$themeurl}/images/link.gif" title="{$lang_link_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';
+ }
+
+ return "";
+}
+
+function TinyMCE_advlink_execCommand(editor_id, element, command, user_interface, value) {
+ switch (command) {
+ case "mceAdvLink":
+ var anySelection = false;
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var focusElm = inst.getFocusElement();
+
+ if (tinyMCE.selectedElement)
+ anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0);
+
+ if (anySelection || (focusElm != null && focusElm.nodeName == "A")) {
+ var template = new Array();
+
+ template['file'] = '../../plugins/advlink/link.htm';
+ template['width'] = 480;
+ template['height'] = 400;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_advlink_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_advlink_delta_height', 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+ }
+
+ return true;
+ }
+
+ return false;
+}
+
+function TinyMCE_advlink_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ tinyMCE.switchClassSticky(editor_id + '_advlink', 'mceButtonDisabled', true);
+
+ if (node == null)
+ return;
+
+ if (any_selection)
+ tinyMCE.switchClassSticky(editor_id + '_advlink', 'mceButtonNormal', false);
+
+ do {
+ if (node.nodeName == "A" && tinyMCE.getAttrib(node, 'href') != "")
+ tinyMCE.switchClassSticky(editor_id + '_advlink', 'mceButtonSelected', false);
+ } while ((node = node.parentNode));
+
+ return true;
+}
--- /dev/null
+/* Functions for the advlink plugin popup */
+
+var templates = {
+ "window.open" : "window.open('${url}','${target}','${options}')"
+};
+
+function preinit() {
+ // Initialize
+ tinyMCE.setWindowArg('mce_windowresize', false);
+
+ // Import external list url javascript
+ var url = tinyMCE.getParam("external_link_list_url");
+ if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/')
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+ }
+}
+
+function changeClass() {
+ var formObj = document.forms[0];
+ formObj.classes.value = getSelectValue(formObj, 'classlist');
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var elm = inst.getFocusElement();
+ var action = "insert";
+
+ // Resize some elements
+ if (isVisible('hrefbrowser'))
+ document.getElementById('href').style.width = '260px';
+
+ if (isVisible('popupurlbrowser'))
+ document.getElementById('popupurl').style.width = '180px';
+
+ elm = tinyMCE.getParentElement(elm, "a");
+ if (elm != null && elm.nodeName == "A")
+ action = "update";
+
+ formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
+
+ setPopupControlsDisabled(true);
+
+ if (action == "update") {
+ var href = tinyMCE.getAttrib(elm, 'href');
+
+ // Fix for drag-drop/copy paste bug in Mozilla
+ mceRealHref = tinyMCE.getAttrib(elm, 'mce_real_href');
+ if (mceRealHref != "")
+ href = mceRealHref;
+
+ href = convertURL(href, elm, true);
+
+ var onclick = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onclick'));
+ if (onclick == null || onclick == "")
+ onclick = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'mce_onclick'));
+
+ // Setup form data
+ setFormValue('href', href);
+ setFormValue('title', tinyMCE.getAttrib(elm, 'title'));
+ setFormValue('id', tinyMCE.getAttrib(elm, 'id'));
+ setFormValue('style', elm.style.cssText.toLowerCase());
+ setFormValue('rel', tinyMCE.getAttrib(elm, 'rel'));
+ setFormValue('rev', tinyMCE.getAttrib(elm, 'rev'));
+ setFormValue('charset', tinyMCE.getAttrib(elm, 'charset'));
+ setFormValue('hreflang', tinyMCE.getAttrib(elm, 'hreflang'));
+ setFormValue('dir', tinyMCE.getAttrib(elm, 'dir'));
+ setFormValue('lang', tinyMCE.getAttrib(elm, 'lang'));
+ setFormValue('tabindex', tinyMCE.getAttrib(elm, 'tabindex', typeof(elm.tabindex) != "undefined" ? elm.tabindex : ""));
+ setFormValue('accesskey', tinyMCE.getAttrib(elm, 'accesskey', typeof(elm.accesskey) != "undefined" ? elm.accesskey : ""));
+ setFormValue('type', tinyMCE.getAttrib(elm, 'type'));
+ setFormValue('onfocus', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onfocus')));
+ setFormValue('onblur', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onblur')));
+ setFormValue('onclick', onclick);
+ setFormValue('ondblclick', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'ondblclick')));
+ setFormValue('onmousedown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousedown')));
+ setFormValue('onmouseup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseup')));
+ setFormValue('onmouseover', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));
+ setFormValue('onmousemove', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmousemove')));
+ setFormValue('onmouseout', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));
+ setFormValue('onkeypress', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeypress')));
+ setFormValue('onkeydown', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeydown')));
+ setFormValue('onkeyup', tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onkeyup')));
+ setFormValue('target', tinyMCE.getAttrib(elm, 'target'));
+ setFormValue('classes', tinyMCE.getAttrib(elm, 'class'));
+
+ // Parse onclick data
+ if (onclick != null && onclick.indexOf('window.open') != -1)
+ parseWindowOpen(onclick);
+ else
+ parseFunction(onclick);
+
+ // Select by the values
+ selectByValue(formObj, 'dir', tinyMCE.getAttrib(elm, 'dir'));
+ selectByValue(formObj, 'rel', tinyMCE.getAttrib(elm, 'rel'));
+ selectByValue(formObj, 'rev', tinyMCE.getAttrib(elm, 'rev'));
+ selectByValue(formObj, 'linklisthref', href);
+
+ if (href.charAt(0) == '#')
+ selectByValue(formObj, 'anchorlist', href);
+
+ selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'), true);
+ selectByValue(formObj, 'targetlist', tinyMCE.getAttrib(elm, 'target'), true);
+ }
+
+ addClassesToList('classlist', 'advlink_styles');
+
+ window.focus();
+}
+
+function setFormValue(name, value) {
+ document.forms[0].elements[name].value = value;
+}
+
+function convertURL(url, node, on_save) {
+ return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");
+}
+
+function parseWindowOpen(onclick) {
+ var formObj = document.forms[0];
+
+ // Preprocess center code
+ if (onclick.indexOf('return false;') != -1) {
+ formObj.popupreturn.checked = true;
+ onclick = onclick.replace('return false;', '');
+ }
+
+ var onClickData = parseLink(onclick);
+
+ if (onClickData != null) {
+ formObj.ispopup.checked = true;
+ setPopupControlsDisabled(false);
+
+ var onClickWindowOptions = parseOptions(onClickData['options']);
+
+ formObj.popupname.value = onClickData['target'];
+ formObj.popupurl.value = onClickData['url'];
+ formObj.popupwidth.value = getOption(onClickWindowOptions, 'width');
+ formObj.popupheight.value = getOption(onClickWindowOptions, 'height');
+
+ formObj.popupleft.value = getOption(onClickWindowOptions, 'left');
+ formObj.popuptop.value = getOption(onClickWindowOptions, 'top');
+
+ if (formObj.popupleft.value.indexOf('screen') != -1)
+ formObj.popupleft.value = "c";
+
+ if (formObj.popuptop.value.indexOf('screen') != -1)
+ formObj.popuptop.value = "c";
+
+ formObj.popuplocation.checked = getOption(onClickWindowOptions, 'location') == "yes";
+ formObj.popupscrollbars.checked = getOption(onClickWindowOptions, 'scrollbars') == "yes";
+ formObj.popupmenubar.checked = getOption(onClickWindowOptions, 'menubar') == "yes";
+ formObj.popupresizable.checked = getOption(onClickWindowOptions, 'resizable') == "yes";
+ formObj.popuptoolbar.checked = getOption(onClickWindowOptions, 'toolbar') == "yes";
+ formObj.popupstatus.checked = getOption(onClickWindowOptions, 'status') == "yes";
+ formObj.popupdependent.checked = getOption(onClickWindowOptions, 'dependent') == "yes";
+ }
+}
+
+function parseFunction(onclick) {
+ var formObj = document.forms[0];
+ var onClickData = parseLink(onclick);
+
+ // TODO: Add stuff here
+}
+
+function getOption(opts, name) {
+ return typeof(opts[name]) == "undefined" ? "" : opts[name];
+}
+
+function setPopupControlsDisabled(state) {
+ var formObj = document.forms[0];
+
+ formObj.popupname.disabled = state;
+ formObj.popupurl.disabled = state;
+ formObj.popupwidth.disabled = state;
+ formObj.popupheight.disabled = state;
+ formObj.popupleft.disabled = state;
+ formObj.popuptop.disabled = state;
+ formObj.popuplocation.disabled = state;
+ formObj.popupscrollbars.disabled = state;
+ formObj.popupmenubar.disabled = state;
+ formObj.popupresizable.disabled = state;
+ formObj.popuptoolbar.disabled = state;
+ formObj.popupstatus.disabled = state;
+ formObj.popupreturn.disabled = state;
+ formObj.popupdependent.disabled = state;
+
+ setBrowserDisabled('popupurlbrowser', state);
+}
+
+function parseLink(link) {
+ link = link.replace(new RegExp(''', 'g'), "'");
+
+ var fnName = link.replace(new RegExp("\\s*([A-Za-z0-9\.]*)\\s*\\(.*", "gi"), "$1");
+
+ // Is function name a template function
+ var template = templates[fnName];
+ if (template) {
+ // Build regexp
+ var variableNames = template.match(new RegExp("'?\\$\\{[A-Za-z0-9\.]*\\}'?", "gi"));
+ var regExp = "\\s*[A-Za-z0-9\.]*\\s*\\(";
+ var replaceStr = "";
+ for (var i=0; i<variableNames.length; i++) {
+ // Is string value
+ if (variableNames[i].indexOf("'${") != -1)
+ regExp += "'(.*)'";
+ else // Number value
+ regExp += "([0-9]*)";
+
+ replaceStr += "$" + (i+1);
+
+ // Cleanup variable name
+ variableNames[i] = variableNames[i].replace(new RegExp("[^A-Za-z0-9]", "gi"), "");
+
+ if (i != variableNames.length-1) {
+ regExp += "\\s*,\\s*";
+ replaceStr += "<delim>";
+ } else
+ regExp += ".*";
+ }
+
+ regExp += "\\);?";
+
+ // Build variable array
+ var variables = new Array();
+ variables["_function"] = fnName;
+ var variableValues = link.replace(new RegExp(regExp, "gi"), replaceStr).split('<delim>');
+ for (var i=0; i<variableNames.length; i++)
+ variables[variableNames[i]] = variableValues[i];
+
+ return variables;
+ }
+
+ return null;
+}
+
+function parseOptions(opts) {
+ if (opts == null || opts == "")
+ return new Array();
+
+ // Cleanup the options
+ opts = opts.toLowerCase();
+ opts = opts.replace(/;/g, ",");
+ opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+ var optionChunks = opts.split(',');
+ var options = new Array();
+
+ for (var i=0; i<optionChunks.length; i++) {
+ var parts = optionChunks[i].split('=');
+
+ if (parts.length == 2)
+ options[parts[0]] = parts[1];
+ }
+
+ return options;
+}
+
+function buildOnClick() {
+ var formObj = document.forms[0];
+
+ if (!formObj.ispopup.checked) {
+ formObj.onclick.value = "";
+ return;
+ }
+
+ var onclick = "window.open('";
+
+ onclick += formObj.popupurl.value + "','";
+ onclick += formObj.popupname.value + "','";
+
+ if (formObj.popuplocation.checked)
+ onclick += "location=yes,";
+
+ if (formObj.popupscrollbars.checked)
+ onclick += "scrollbars=yes,";
+
+ if (formObj.popupmenubar.checked)
+ onclick += "menubar=yes,";
+
+ if (formObj.popupresizable.checked)
+ onclick += "resizable=yes,";
+
+ if (formObj.popuptoolbar.checked)
+ onclick += "toolbar=yes,";
+
+ if (formObj.popupstatus.checked)
+ onclick += "status=yes,";
+
+ if (formObj.popupdependent.checked)
+ onclick += "dependent=yes,";
+
+ if (formObj.popupwidth.value != "")
+ onclick += "width=" + formObj.popupwidth.value + ",";
+
+ if (formObj.popupheight.value != "")
+ onclick += "height=" + formObj.popupheight.value + ",";
+
+ if (formObj.popupleft.value != "") {
+ if (formObj.popupleft.value != "c")
+ onclick += "left=" + formObj.popupleft.value + ",";
+ else
+ onclick += "left='+(screen.availWidth/2-" + (formObj.popupwidth.value/2) + ")+',";
+ }
+
+ if (formObj.popuptop.value != "") {
+ if (formObj.popuptop.value != "c")
+ onclick += "top=" + formObj.popuptop.value + ",";
+ else
+ onclick += "top='+(screen.availHeight/2-" + (formObj.popupheight.value/2) + ")+',";
+ }
+
+ if (onclick.charAt(onclick.length-1) == ',')
+ onclick = onclick.substring(0, onclick.length-1);
+
+ onclick += "');";
+
+ if (formObj.popupreturn.checked)
+ onclick += "return false;";
+
+ // tinyMCE.debug(onclick);
+
+ formObj.onclick.value = onclick;
+}
+
+function setAttrib(elm, attrib, value) {
+ var formObj = document.forms[0];
+ var valueElm = formObj.elements[attrib.toLowerCase()];
+
+ if (typeof(value) == "undefined" || value == null) {
+ value = "";
+
+ if (valueElm)
+ value = valueElm.value;
+ }
+
+ if (value != "") {
+ elm.setAttribute(attrib.toLowerCase(), value);
+
+ if (attrib == "style")
+ attrib = "style.cssText";
+
+ if (attrib == "href")
+ elm.setAttribute("mce_real_href", value);
+
+ if (attrib.substring(0, 2) == 'on')
+ value = 'return true;' + value;
+
+ if (attrib == "class")
+ attrib = "className";
+
+ eval('elm.' + attrib + "=value;");
+ } else
+ elm.removeAttribute(attrib);
+}
+
+function renderAnchorList(id, target) {
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var nodes = inst.getBody().getElementsByTagName("a");
+
+ var html = "";
+
+ html += '<tr><td class="column1"><label for="' + id + '">{$lang_advlink_anchor_names}</label></td><td>';
+ html += '<select id="' + id + '" name="' + id + '" class="mceAnchorList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target + '.value=';
+ html += 'this.options[this.selectedIndex].value;">';
+ html += '<option value="">---</option>';
+
+ for (var i=0; i<nodes.length; i++) {
+ if ((name = tinyMCE.getAttrib(nodes[i], "name")) != "")
+ html += '<option value="#' + name + '">' + name + '</option>';
+ }
+
+ html += '</select>';
+
+ document.write(html);
+}
+
+function insertAction() {
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var elm = inst.getFocusElement();
+
+ elm = tinyMCE.getParentElement(elm, "a");
+
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+ // Create new anchor elements
+ if (elm == null) {
+ if (tinyMCE.isSafari)
+ tinyMCEPopup.execCommand("mceInsertContent", false, '<a href="#mce_temp_url#">' + inst.getSelectedHTML() + '</a>');
+ else
+ tinyMCEPopup.execCommand("createlink", false, "#mce_temp_url#");
+
+ var elementArray = tinyMCE.getElementsByAttributeValue(inst.getBody(), "a", "href", "#mce_temp_url#");
+ for (var i=0; i<elementArray.length; i++) {
+ var elm = elementArray[i];
+
+ // Move cursor behind the new anchor
+ if (tinyMCE.isGecko) {
+ var sp = inst.getDoc().createTextNode(" ");
+
+ if (elm.nextSibling)
+ elm.parentNode.insertBefore(sp, elm.nextSibling);
+ else
+ elm.parentNode.appendChild(sp);
+
+ // Set range after link
+ var rng = inst.getDoc().createRange();
+ rng.setStartAfter(elm);
+ rng.setEndAfter(elm);
+
+ // Update selection
+ var sel = inst.getSel();
+ sel.removeAllRanges();
+ sel.addRange(rng);
+ }
+
+ setAllAttribs(elm);
+ }
+ } else
+ setAllAttribs(elm);
+
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
+ tinyMCEPopup.close();
+}
+
+function setAllAttribs(elm) {
+ var formObj = document.forms[0];
+ var href = formObj.href.value;
+
+ href = convertURL(href, elm);
+
+ setAttrib(elm, 'href', href);
+ setAttrib(elm, 'title');
+ setAttrib(elm, 'target', getSelectValue(formObj, 'targetlist'));
+ setAttrib(elm, 'id');
+ setAttrib(elm, 'style');
+ setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));
+ setAttrib(elm, 'rel');
+ setAttrib(elm, 'rev');
+ setAttrib(elm, 'charset');
+ setAttrib(elm, 'hreflang');
+ setAttrib(elm, 'dir');
+ setAttrib(elm, 'lang');
+ setAttrib(elm, 'tabindex');
+ setAttrib(elm, 'accesskey');
+ setAttrib(elm, 'type');
+ setAttrib(elm, 'onfocus');
+ setAttrib(elm, 'onblur');
+ setAttrib(elm, 'onclick');
+ setAttrib(elm, 'ondblclick');
+ setAttrib(elm, 'onmousedown');
+ setAttrib(elm, 'onmouseup');
+ setAttrib(elm, 'onmouseover');
+ setAttrib(elm, 'onmousemove');
+ setAttrib(elm, 'onmouseout');
+ setAttrib(elm, 'onkeypress');
+ setAttrib(elm, 'onkeydown');
+ setAttrib(elm, 'onkeyup');
+
+ // Refresh in old MSIE
+ if (tinyMCE.isMSIE5)
+ elm.outerHTML = elm.outerHTML;
+}
+
+function getSelectValue(form_obj, field_name) {
+ var elm = form_obj.elements[field_name];
+
+ if (elm == null || elm.options == null)
+ return "";
+
+ return elm.options[elm.selectedIndex].value;
+}
+
+function renderLinkList(elm_id, target_form_element, onchange_func) {
+ if (typeof(tinyMCELinkList) == "undefined" || tinyMCELinkList.length == 0)
+ return;
+
+ var html = "";
+
+ html += '<tr><td class="column1"><label for="' + elm_id + '">{$lang_link_list}</label></td>';
+ html += '<td colspan="2"><select id="' + elm_id + '" name="' + elm_id + '"';
+ html += ' class="mceLinkList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+ html += 'this.options[this.selectedIndex].value;';
+
+ if (typeof(onchange_func) != "undefined")
+ html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';
+
+ html += '"><option value="">---</option>';
+
+ for (var i=0; i<tinyMCELinkList.length; i++)
+ html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';
+
+ html += '</select></td></tr>';
+
+ document.write(html);
+
+ // tinyMCE.debug('-- image list start --', html, '-- image list end --');
+}
+
+function renderTargetList(elm_id, target_form_element) {
+ var targets = tinyMCE.getParam('theme_advanced_link_targets', '').split(';');
+ var html = '';
+
+ html += '<select id="' + elm_id + '" name="' + elm_id + '" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';
+ html += 'this.options[this.selectedIndex].value;">';
+
+ html += '<option value="_self">' + tinyMCE.getLang('lang_advlink_target_same') + '</option>';
+ html += '<option value="_blank">' + tinyMCE.getLang('lang_advlink_target_blank') + ' (_blank)</option>';
+ html += '<option value="_parent">' + tinyMCE.getLang('lang_advlink_target_parent') + ' (_parent)</option>';
+ html += '<option value="_top">' + tinyMCE.getLang('lang_advlink_target_top') + ' (_top)</option>';
+
+ for (var i=0; i<targets.length; i++) {
+ var key, value;
+
+ if (targets[i] == "")
+ continue;
+
+ key = targets[i].split('=')[0];
+ value = targets[i].split('=')[1];
+
+ html += '<option value="' + key + '">' + value + ' (' + key + ')</option>';
+ }
+
+ html += '</select>';
+
+ document.write(html);
+}
+
+// While loading
+preinit();
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Otevřít ve stejném okně/rámu',
+insert_link_target_parent : 'Otevřít v rodičovském okně/rámu',
+insert_link_target_top : 'Otevřít v nejvyšším rámu (přepíše všechny rámy)',
+insert_link_target_blank : 'Otevřít v novém okně',
+insert_link_target_named : 'Otevřít v okně',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Popup URL',
+insert_link_popup_name : 'Název okna',
+insert_link_popup_return : 'Vložit \'return false\'',
+insert_link_popup_scrollbars : 'Ukázat posuvníky',
+insert_link_popup_statusbar : 'Ukázat stavový řádek',
+insert_link_popup_toolbar : 'Ukázat ovládací lištu',
+insert_link_popup_menubar : 'Ukázat menu',
+insert_link_popup_location : 'Ukázat lištu umístění',
+insert_link_popup_resizable : 'Proměnná velikost okna',
+insert_link_popup_size : 'Velikost',
+insert_link_popup_position : 'Umístění (X/Y)',
+insert_link_popup_missingtarget : 'Vložte název cíle nebo vyberte jinou volbu.'
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Im selben Frame öffnen',
+insert_link_target_parent : 'Im darüber liegenden Frame öffnen',
+insert_link_target_top : 'Im obersten Frame öffnen',
+insert_link_target_blank : 'In einem neuen Fenster öffnen',
+insert_link_target_named : 'Öffnen im Fenster/Frame',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Popup URL',
+insert_link_popup_name : 'Fenstername',
+insert_link_popup_return : 'mit \'return false\'',
+insert_link_popup_scrollbars : 'Scrollbars anzeigen',
+insert_link_popup_statusbar : 'Statusbar anzeigen',
+insert_link_popup_toolbar : 'Toolbars anzeigen',
+insert_link_popup_menubar : 'Menu anzeigen',
+insert_link_popup_location : 'Adresszeile anzeigen',
+insert_link_popup_resizable : 'Größe änderbar',
+insert_link_popup_size : 'Größe',
+insert_link_popup_position : 'Position (X/Y)',
+insert_link_popup_missingtarget : 'Bitte geben Sie einen Namen für das Ziel an oder wählen Sie eine andere Option.'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'General',
+popup_tab : 'Popup',
+events_tab : 'Events',
+advanced_tab : 'Advanced',
+general_props : 'General properties',
+popup_props : 'Popup properties',
+event_props : 'Events',
+advanced_props : 'Advanced properties',
+popup_opts : 'Options',
+anchor_names : 'Anchors',
+target_same : 'Open in this window / frame',
+target_parent : 'Open in parent window / frame',
+target_top : 'Open in top frame (replaces all frames)',
+target_blank : 'Open in new window',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Window name',
+popup_return : 'Insert \'return false\'',
+popup_scrollbars : 'Show scrollbars',
+popup_statusbar : 'Show status bar',
+popup_toolbar : 'Show toolbars',
+popup_menubar : 'Show menu bar',
+popup_location : 'Show location bar',
+popup_resizable : 'Make window resizable',
+popup_dependent : 'Dependent (Mozilla/Firefox only)',
+popup_size : 'Size',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Style',
+classes : 'Classes',
+target_name : 'Target name',
+langdir : 'Language direction',
+target_langcode : 'Target language',
+langcode : 'Language code',
+encoding : 'Target character encoding',
+mime : 'Target MIME type',
+rel : 'Relationship page to target',
+rev : 'Relationship target to page',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Left to right',
+rtl : 'Right to left'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_link_target_same : '?? ???? ???? / ???? ??? ??',
+insert_link_target_parent : '?? ???? / ???? ???? ??? ??',
+insert_link_target_top : '?? ???? ???? ??? ?? (??? ?????? ?????? ????? ?????)',
+insert_link_target_blank : '?? ???? ???? ??? ??',
+insert_link_target_named : '?? ????? ??? ??',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'URL ?????',
+insert_link_popup_name : '??? ?????',
+insert_link_popup_return : '?????? \'return false\'',
+insert_link_popup_scrollbars : '????? scrollbars',
+insert_link_popup_statusbar : '????? statusbar',
+insert_link_popup_toolbar : '????? toolbars',
+insert_link_popup_menubar : '????? menubar',
+insert_link_popup_location : '????? locationbar',
+insert_link_popup_resizable : '???? ????? ?????? ????',
+insert_link_popup_size : '??????',
+insert_link_popup_position : '?????? (X/Y)',
+insert_link_popup_missingtarget : '???? ?? ??? ???? ???? ?????? ???? ?? ??? ??? ???? ????? ????? ?? ?????? ??????.'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Ouvre dans la fenętre / Cadre(frame)',
+insert_link_target_parent : 'Ouvre dans fenętre parente / Cadres(frame)',
+insert_link_target_top : 'Ouvre dans le Top frame (remplace toutes les cadres(frames))',
+insert_link_target_blank : 'Ouvre dans la fenętre',
+insert_link_target_named : 'Ouvre dans la fenętre',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'URL de la Popup',
+insert_link_popup_name : 'Nom de la fenętre',
+insert_link_popup_return : 'Insert \'return false\'',
+insert_link_popup_scrollbars : 'Montrer la barre de défilement ',
+insert_link_popup_statusbar : 'Montrer la barre d\'état',
+insert_link_popup_toolbar : 'Montrer la barre d\'outils',
+insert_link_popup_menubar : 'Montrer la barre du menu',
+insert_link_popup_location : 'Montre la barre d\'adresse',
+insert_link_popup_resizable : 'Fabriquer une fenętre redimensionnable',
+insert_link_popup_size : 'Taille',
+insert_link_popup_position : 'Position (X/Y)',
+insert_link_popup_missingtarget : 'Veuillez insérer un nom pour la cible ou choisissez une autre option.'
+});
--- /dev/null
+// CA_FR lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Ouvrir dans la même fenêtre',
+insert_link_target_parent : 'Ouvrir dans la fenêtre parent',
+insert_link_target_top : 'Ouvrir dans le cadre supérieur',
+insert_link_target_blank : 'Ouvrir dans une nouvelle fenêtre',
+insert_link_target_named : 'Ouvrir à la destination',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'URL du popup',
+insert_link_popup_name : 'Nom de la fenêtre',
+insert_link_popup_return : 'Insérer le script \'return false\'',
+insert_link_popup_scrollbars : 'Barres de défilement',
+insert_link_popup_statusbar : 'Barre de statut',
+insert_link_popup_toolbar : 'Barres d\'outils',
+insert_link_popup_menubar : 'Barre de menu',
+insert_link_popup_location : 'Barre d\'adresse',
+insert_link_popup_resizable : 'Fenêtre redimensionnable',
+insert_link_popup_size : 'Dimensions',
+insert_link_popup_position : 'Position (X/Y)',
+insert_link_popup_missingtarget : 'S.v.p., entrer un nom de destination ou choisir une autre option.'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'ôúç áçìåï æä àå îñâøú æå',
+insert_link_target_parent : 'ôúç áçìåï àå áîñâøú äî÷åøééí',
+insert_link_target_top : 'ôúç áîñâøú äòìéåðä (îçìéó àú ëì äîñâøåú)',
+insert_link_target_blank : 'ôúç áçìåï çãù',
+insert_link_target_named : 'ôúç áçìåï',
+insert_link_popup : 'çìåï ÷åôõ JS',
+insert_link_popup_url : 'ëúåáú (URL) äçìåï ä÷åôõ',
+insert_link_popup_name : 'ùí äçìåï',
+insert_link_popup_return : 'insert \'return false\'',
+insert_link_popup_scrollbars : 'äöâ ôñé âìéìä',
+insert_link_popup_statusbar : 'äöâ ùåøú îöá',
+insert_link_popup_toolbar : 'äöâ ñøâìé ëìéí',
+insert_link_popup_menubar : 'äöâ ùåøú úôøéèéí',
+insert_link_popup_location : 'äöâ ùåøú ëúåáú',
+insert_link_popup_resizable : 'çìåï ùðéúï ìäâãéì åìä÷èéï',
+insert_link_popup_size : 'âåãì',
+insert_link_popup_position : 'îé÷åí (X/Y)',
+insert_link_popup_missingtarget : 'àðà äëðñ àú ùí äéòã àå áçø àôùøåú àçøú.'
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : '°°Àº â¿¡¼ ¸µÅ©/ÇÁ·¹ÀÓ ¿±â',
+insert_link_target_parent : 'ºÎ¸ð â¿¡¼ ¸µÅ©/ÇÁ·¹ÀÓ ¿±â',
+insert_link_target_top : 'TOP ÇÁ·¹ÀÓ¿¡¼ ¿±â (¸ðµç ÇÁ·¹ÀÓÀ» ´ëü)',
+insert_link_target_blank : '»õ â¿¡¼ ¿±â',
+insert_link_target_named : '»õ â¿¡¼ ¿±â',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Æ˾÷ URL',
+insert_link_popup_name : 'â À̸§',
+insert_link_popup_return : '\'return false\' ³Ö±â',
+insert_link_popup_scrollbars : '½ºÅ©·Ñ¹Ù¸¦ º¸¿©ÁÜ',
+insert_link_popup_statusbar : '»óÅÂâÀ» º¸¿©ÁÜ',
+insert_link_popup_toolbar : 'Åø¹Ù¸¦ º¸¿©ÁÜ',
+insert_link_popup_menubar : '¸Þ´º¹Ù¸¦ º¸¿©ÁÜ',
+insert_link_popup_location : 'À§Ä¡ Ç¥½ÃÁÙÀ» º¸¿©ÁÜ',
+insert_link_popup_resizable : 'Å©±â Á¶Àý °¡´ÉÇÑ À©µµ¿ì »ý¼º',
+insert_link_popup_size : 'Å©±â',
+insert_link_popup_position : 'À§Ä¡ (X/Y)'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Open in dit window / frame',
+insert_link_target_parent : 'Open in parent window / frame',
+insert_link_target_top : 'Open in top frame (vervangt alle frames)',
+insert_link_target_blank : 'Open in nieuw window',
+insert_link_target_named : 'Open in het window',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Popup URL',
+insert_link_popup_name : 'Window naam',
+insert_link_popup_return : 'invoegen \'return false\'',
+insert_link_popup_scrollbars : 'Laat scrollbars zien',
+insert_link_popup_statusbar : 'Laat statusbar zien',
+insert_link_popup_toolbar : 'Laat toolbars zien',
+insert_link_popup_menubar : 'Laat menubar zien',
+insert_link_popup_location : 'Laat locatiebar zien',
+insert_link_popup_resizable : 'Maak window resizable',
+insert_link_popup_size : 'Grootte',
+insert_link_popup_position : 'Positie (X/Y)',
+insert_link_popup_missingtarget : 'Geef de naam van het target window of kies een andere optie.'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Otwórz w tym samym oknie',
+insert_link_target_parent : 'Open in parent window / frame',
+insert_link_target_top : 'Open in top frame (replaces all frames)',
+insert_link_target_blank : 'Otwórz w nowym oknie',
+insert_link_target_named : 'Open in the window',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Popup URL',
+insert_link_popup_name : 'Window name',
+insert_link_popup_return : 'insert \'return false\'',
+insert_link_popup_scrollbars : 'Show scrollbars',
+insert_link_popup_statusbar : 'Show statusbar',
+insert_link_popup_toolbar : 'Show toolbars',
+insert_link_popup_menubar : 'Show menubar',
+insert_link_popup_location : 'Show locationbar',
+insert_link_popup_resizable : 'Make window resizable',
+insert_link_popup_size : 'Size',
+insert_link_popup_position : 'Position (X/Y)',
+insert_link_popup_missingtarget : 'Please insert a name for the target or choose another option.',
+insert_link_url : 'Adres URL',
+insert_link_target : 'Cel'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'Abrir nesta mesma janela / frame',
+insert_link_target_parent : 'Abrir na janela / frame prévia',
+insert_link_target_top : 'Abrir no frame superior (substitui todos os frames)',
+insert_link_target_blank : 'Abrir em nova janela',
+insert_link_target_named : 'Abrir na janela',
+insert_link_popup : 'JS-Popup',
+insert_link_popup_url : 'Popup URL endereço',
+insert_link_popup_name : 'Nome da janela',
+insert_link_popup_return : 'inserir \'retorna falso\'',
+insert_link_popup_scrollbars : 'Mostra barras de rolagem',
+insert_link_popup_statusbar : 'Mostra barra de status',
+insert_link_popup_toolbar : 'Mostra barras de ferramentas',
+insert_link_popup_menubar : 'Mostra barra de menu',
+insert_link_popup_location : 'Mostra barra de endereço',
+insert_link_popup_resizable : 'Permite redimensionamento da janela',
+insert_link_popup_size : 'Tamanho',
+insert_link_popup_position : 'Posição (X/Y)',
+insert_link_popup_missingtarget : 'Por Favor insira um nome para o alvo ou escolha outra opção.'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('advlink',{
+general_tab : 'Generella inställningar',
+popup_tab : 'Popup',
+events_tab : 'Händelser',
+advanced_tab : 'Avancerade inställningar',
+general_props : 'Generella inställningar',
+popup_props : 'Popup inställningar',
+event_props : 'Händelser',
+advanced_props : 'Generella inställningar',
+popup_opts : 'Inställningar',
+anchor_names : 'Bokmärken',
+target_same : 'Öppna i samma fönster / ram',
+target_parent : 'Öppna i underliggande fönster / ram',
+target_top : 'Öppna i toppramen (ersätter alla ramar)',
+target_blank : 'Öppna i ett nytt fönster',
+popup : 'Javascript popup',
+popup_url : 'Popup URL',
+popup_name : 'Fönster namn',
+popup_return : 'Sättin \'return false\'',
+popup_scrollbars : 'Visa scrollbars',
+popup_statusbar : 'Visa status bar',
+popup_toolbar : 'Visa toolbars',
+popup_menubar : 'Visa menu bar',
+popup_location : 'Visa location bar',
+popup_resizable : 'Gör fönstret skalbart',
+popup_dependent : 'Beroende fönster (Ändast i Mozilla/Firefox)',
+popup_size : 'Storek',
+popup_position : 'Position (X/Y)',
+id : 'Id',
+style: 'Stil',
+classes : 'CSS Classer',
+target_name : 'Mål namn',
+langdir : 'Skrift riktning',
+target_langcode : 'Mål språk',
+langcode : 'Språk kåd',
+encoding : 'Tecken konvertering',
+mime : 'Målets MIME typ',
+rel : 'Relation sida till mål',
+rev : 'Relation mål till sida',
+tabindex : 'Tabindex',
+accesskey : 'Accesskey',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+insert_link_target_same : 'ÔÚ±¾´°¿Ú/¿ò¼ÜÖдò¿ª',
+insert_link_target_parent : 'ÔÚ¸¸´°¿Ú/¿ò¼ÜÖдò¿ª',
+insert_link_target_top : 'ÔÚ¸ù¿ò¼ÜÖдò¿ª£¨Ìæ»»ËùÓпò¼Ü£©',
+insert_link_target_blank : 'ÔÚд°¿ÚÖдò¿ª',
+insert_link_target_named : 'ÔÚ´Ë´°¿ÚÖдò¿ª',
+insert_link_popup : 'JavaScriptµ¯³ö´°¿Ú',
+insert_link_popup_url : 'µ¯³ö´°¿ÚµØÖ·',
+insert_link_popup_name : '´°¿ÚÃû³Æ',
+insert_link_popup_return : '²åÈë \'return false\'',
+insert_link_popup_scrollbars : 'ÏÔʾ¹ö¶¯Ìõ',
+insert_link_popup_statusbar : 'ÏÔʾ״̬À¸',
+insert_link_popup_toolbar : 'ÏÔʾ¹¤¾ßÀ¸',
+insert_link_popup_menubar : 'ÏÔʾ²Ëµ¥À¸',
+insert_link_popup_location : 'ÏÔʾµØÖ·À¸',
+insert_link_popup_resizable : '¿ÉÖض¨Òå´°¿Ú´óС',
+insert_link_popup_size : '³ß´ç',
+insert_link_popup_position : 'λÖÃ(X/Y)',
+insert_link_popup_missingtarget : 'Çë²åÈëÄ¿±êÃû³Æ»òÕßÑ¡ÔñÁíÍâµÄÑ¡Ïî¡£'
+});
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_insert_link_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>
+ <link href="css/advlink.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="advlink" onload="init();" style="display: none">
+ <form onsubmit="insertAction();return false;" action="#">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_advlink_general_tab}</a></span></li>
+ <li id="popup_tab"><span><a href="javascript:mcTabs.displayTab('popup_tab','popup_panel');" onmousedown="return false;">{$lang_advlink_popup_tab}</a></span></li>
+ <li id="events_tab"><span><a href="javascript:mcTabs.displayTab('events_tab','events_panel');" onmousedown="return false;">{$lang_advlink_events_tab}</a></span></li>
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_advlink_advanced_tab}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <fieldset>
+ <legend>{$lang_advlink_general_props}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td nowrap="nowrap"><label id="hreflabel" for="href">{$lang_insert_link_url}</label></td>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="href" name="href" type="text" value="" onchange="selectByValue(this.form,'linklisthref',this.value);" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('hrefbrowser','href','file','advlink');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ <script language="javascript" type="text/javascript">renderLinkList('linklisthref','href');</script>
+ <script language="javascript" type="text/javascript">renderAnchorList('anchorlist','href');</script>
+ <tr>
+ <td><label id="targetlistlabel" for="targetlist">{$lang_insert_link_target}</label></td>
+ <td><script language="javascript" type="text/javascript">renderTargetList('targetlist','target');</script></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label id="titlelabel" for="title">{$lang_theme_insert_link_titlefield}</label></td>
+ <td><input id="title" name="title" type="text" value="" /></td>
+ </tr>
+ <tr>
+ <td><label id="classlabel" for="classlist">{$lang_class_name}</label></td>
+ <td>
+ <select id="classlist" name="classlist" onchange="changeClass();">
+ <option value="" selected>{$lang_not_set}</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="popup_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_advlink_popup_props}</legend>
+
+ <input type="checkbox" id="ispopup" name="ispopup" class="radio" onclick="setPopupControlsDisabled(!this.checked);buildOnClick();" />
+ <label id="ispopuplabel" for="ispopup">{$lang_advlink_popup}</label>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td nowrap="nowrap"><label for="popupurl">{$lang_advlink_popup_url}</label> </td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input type="text" name="popupurl" id="popupurl" value="" onchange="buildOnClick();" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('popupurlbrowser','popupurl','file','advlink');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label for="popupname">{$lang_advlink_popup_name}</label> </td>
+ <td><input type="text" name="popupname" id="popupname" value="" onchange="buildOnClick();" /></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><label>{$lang_advlink_popup_size}</label> </td>
+ <td nowrap="nowrap">
+ <input type="text" id="popupwidth" name="popupwidth" value="" onchange="buildOnClick();" /> x
+ <input type="text" id="popupheight" name="popupheight" value="" onchange="buildOnClick();" /> px
+ </td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap" id="labelleft"><label>{$lang_advlink_popup_position}</label> </td>
+ <td nowrap="nowrap">
+ <input type="text" id="popupleft" name="popupleft" value="" onchange="buildOnClick();" /> /
+ <input type="text" id="popuptop" name="popuptop" value="" onchange="buildOnClick();" /> (c /c = center)
+ </td>
+ </tr>
+ </table>
+
+ <fieldset>
+ <legend>{$lang_advlink_popup_opts}</legend>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td><input type="checkbox" id="popuplocation" name="popuplocation" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popuplocationlabel" for="popuplocation">{$lang_advlink_popup_location}</label></td>
+ <td><input type="checkbox" id="popupscrollbars" name="popupscrollbars" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popupscrollbarslabel" for="popupscrollbars">{$lang_advlink_popup_scrollbars}</label></td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" id="popupmenubar" name="popupmenubar" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popupmenubarlabel" for="popupmenubar">{$lang_advlink_popup_menubar}</label></td>
+ <td><input type="checkbox" id="popupresizable" name="popupresizable" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popupresizablelabel" for="popupresizable">{$lang_advlink_popup_resizable}</label></td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" id="popuptoolbar" name="popuptoolbar" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popuptoolbarlabel" for="popuptoolbar">{$lang_advlink_popup_toolbar}</label></td>
+ <td><input type="checkbox" id="popupdependent" name="popupdependent" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popupdependentlabel" for="popupdependent">{$lang_advlink_popup_dependent}</label></td>
+ </tr>
+ <tr>
+ <td><input type="checkbox" id="popupstatus" name="popupstatus" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popupstatuslabel" for="popupstatus">{$lang_advlink_popup_statusbar}</label></td>
+ <td><input type="checkbox" id="popupreturn" name="popupreturn" class="checkbox" onchange="buildOnClick();" /></td>
+ <td nowrap="nowrap"><label id="popupreturnlabel" for="popupreturn">{$lang_advlink_popup_return}</label></td>
+ </tr>
+ </table>
+ </fieldset>
+ </fieldset>
+ </div>
+
+ <div id="advanced_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_advlink_advanced_props}</legend>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td class="column1"><label id="idlabel" for="id">{$lang_advlink_id}</label></td>
+ <td><input id="id" name="id" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td><label id="stylelabel" for="style">{$lang_advlink_style}</label></td>
+ <td><input type="text" id="style" name="style" value="" /></td>
+ </tr>
+
+ <tr>
+ <td><label id="classeslabel" for="classes">{$lang_advlink_classes}</label></td>
+ <td><input type="text" id="classes" name="classes" value="" onchange="selectByValue(this.form,'classlist',this.value,true);" /></td>
+ </tr>
+
+ <tr>
+ <td><label id="targetlabel" for="target">{$lang_advlink_target_name}</label></td>
+ <td><input type="text" id="target" name="target" value="" onchange="selectByValue(this.form,'targetlist',this.value,true);" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="dirlabel" for="dir">{$lang_advlink_langdir}</label></td>
+ <td>
+ <select id="dir" name="dir">
+ <option value="">{$lang_not_set}</option>
+ <option value="ltr">{$lang_advlink_ltr}</option>
+ <option value="rtl">{$lang_advlink_rtl}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label id="hreflanglabel" for="hreflang">{$lang_advlink_target_langcode}</label></td>
+ <td><input type="text" id="hreflang" name="hreflang" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="langlabel" for="lang">{$lang_advlink_langcode}</label></td>
+ <td>
+ <input id="lang" name="lang" type="text" value="" />
+ </td>
+ </tr>
+
+ <tr>
+ <td><label id="charsetlabel" for="charset">{$lang_advlink_encoding}</label></td>
+ <td><input type="text" id="charset" name="charset" value="" /></td>
+ </tr>
+
+ <tr>
+ <td><label id="typelabel" for="type">{$lang_advlink_mime}</label></td>
+ <td><input type="text" id="type" name="type" value="" /></td>
+ </tr>
+
+ <tr>
+ <td><label id="rellabel" for="rel">{$lang_advlink_rel}</label></td>
+ <td><select id="rel" name="rel">
+ <option value="">{$lang_not_set}</option>
+ <option value="alternate">Alternate</option>
+ <option value="designates">Designates</option>
+ <option value="stylesheet">Stylesheet</option>
+ <option value="start">Start</option>
+ <option value="next">Next</option>
+ <option value="prev">Prev</option>
+ <option value="contents">Contents</option>
+ <option value="index">Index</option>
+ <option value="glossary">Glossary</option>
+ <option value="copyright">Copyright</option>
+ <option value="chapter">Chapter</option>
+ <option value="subsection">Subsection</option>
+ <option value="appendix">Appendix</option>
+ <option value="help">Help</option>
+ <option value="bookmark">Bookmark</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label id="revlabel" for="rev">{$lang_advlink_rev}</label></td>
+ <td><select id="rev" name="rev">
+ <option value="">{$lang_not_set}</option>
+ <option value="alternate">Alternate</option>
+ <option value="designates">Designates</option>
+ <option value="stylesheet">Stylesheet</option>
+ <option value="start">Start</option>
+ <option value="next">Next</option>
+ <option value="prev">Prev</option>
+ <option value="contents">Contents</option>
+ <option value="index">Index</option>
+ <option value="glossary">Glossary</option>
+ <option value="copyright">Copyright</option>
+ <option value="chapter">Chapter</option>
+ <option value="subsection">Subsection</option>
+ <option value="appendix">Appendix</option>
+ <option value="help">Help</option>
+ <option value="bookmark">Bookmark</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label id="tabindexlabel" for="tabindex">{$lang_advlink_tabindex}</label></td>
+ <td><input type="text" id="tabindex" name="tabindex" value="" /></td>
+ </tr>
+
+ <tr>
+ <td><label id="accesskeylabel" for="accesskey">{$lang_advlink_accesskey}</label></td>
+ <td><input type="text" id="accesskey" name="accesskey" value="" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="events_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_advlink_event_props}</legend>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td class="column1"><label for="onfocus">onfocus</label></td>
+ <td><input id="onfocus" name="onfocus" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onblur">onblur</label></td>
+ <td><input id="onblur" name="onblur" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onclick">onclick</label></td>
+ <td><input id="onclick" name="onclick" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="ondblclick">ondblclick</label></td>
+ <td><input id="ondblclick" name="ondblclick" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onmousedown">onmousedown</label></td>
+ <td><input id="onmousedown" name="onmousedown" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onmouseup">onmouseup</label></td>
+ <td><input id="onmouseup" name="onmouseup" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onmouseover">onmouseover</label></td>
+ <td><input id="onmouseover" name="onmouseover" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onmousemove">onmousemove</label></td>
+ <td><input id="onmousemove" name="onmousemove" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onmouseout">onmouseout</label></td>
+ <td><input id="onmouseout" name="onmouseout" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onkeypress">onkeypress</label></td>
+ <td><input id="onkeypress" name="onkeypress" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onkeydown">onkeydown</label></td>
+ <td><input id="onkeydown" name="onkeydown" type="text" value="" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="onkeyup">onkeyup</label></td>
+ <td><input id="onkeyup" name="onkeyup" type="text" value="" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertAction();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('autosave','en,sv,cs');function TinyMCE_autosave_getInfo(){return{longname:'Auto save',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_autosave.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_autosave_beforeUnloadHandler(){var msg=tinyMCE.getLang("lang_autosave_unload_msg");var anyDirty=false;for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];if(inst.isDirty())return msg;}return;}window.onbeforeunload=TinyMCE_autosave_beforeUnloadHandler;
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('autosave', 'en,sv,cs');
+
+function TinyMCE_autosave_getInfo() {
+ return {
+ longname : 'Auto save',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_autosave.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_autosave_beforeUnloadHandler() {
+ var msg = tinyMCE.getLang("lang_autosave_unload_msg");
+
+ var anyDirty = false;
+ for (var n in tinyMCE.instances) {
+ var inst = tinyMCE.instances[n];
+
+ if (inst.isDirty())
+ return msg;
+ }
+
+ return;
+}
+
+window.onbeforeunload = TinyMCE_autosave_beforeUnloadHandler;
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Změny, které jste udělal(a) budou ztraceny, jestliže opustíte tuto stránku.'
+});
+
--- /dev/null
+// EN lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'The changes you made will be lost if you navigate away from this page.'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+autosave_unload_msg : 'Förändringarna du gjorde kommer att gå förlorade om du väljer att lämna denna sida.'
+});
+
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+.contextMenuIEPopup {
+ padding: 0px;
+ margin: 0px;
+ border: 0px;
+ overflow: hidden;
+}
+
+.contextMenu {
+ position: absolute;
+ cursor: default;
+ z-index: 1000;
+ border: 1px solid #D4D0C8;
+ background-color: #FFFFFF;
+}
+
+.contextMenuItem, .contextMenuItemOver {
+}
+
+.contextMenuItemOver {
+ background-color: #B6BDD2;
+}
+
+.contextMenuSeparator {
+ width: 100%;
+ background-color: #D4D0C8;
+ border: 0px;
+}
+
+.contextMenuImage, .contextMenuItemDisabled {
+ border: 0px;
+}
+
+.contextMenuIcon {
+ background-color: #F0F0EE;
+}
+
+.contextMenuItemOver .contextMenuIcon {
+ background-color: #B6BDD2;
+}
+
+.contextMenuIcon {
+ background-color: #F0F0EE;
+}
+
+.contextMenuItemDisabled img {
+ filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+ -moz-opacity:0.3;
+ opacity: 0.3;
+}
+
+.contextMenuText {
+ font-family: Tahoma, Verdana, Arial, Helvetica;
+ font-size: 11px;
+ margin-left: 5px;
+ margin-right: 10px;
+}
+
+.contextMenuItemDisabled {
+ color: #AAAAAA;
+}
--- /dev/null
+/* Import plugin specific language pack */
+ if(!tinyMCE.settings['contextmenu_skip_plugin_css'])tinyMCE.loadCSS(tinyMCE.baseURL+"/plugins/contextmenu/css/contextmenu.css");var TinyMCE_contextmenu_contextMenu=null;function TinyMCE_contextmenu_getInfo(){return{longname:'Context menus',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_contextmenu.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_contextmenu_initInstance(inst){if(tinyMCE.isMSIE5_0)return;tinyMCE.addEvent(inst.getDoc(),"click",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keypress",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(inst.getDoc(),"keydown",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(document,"click",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(document,"keypress",TinyMCE_contextmenu_hideContextMenu);tinyMCE.addEvent(document,"keydown",TinyMCE_contextmenu_hideContextMenu);var contextMenu=new ContextMenu({commandhandler:"TinyMCE_contextmenu_commandHandler",spacer_image:tinyMCE.baseURL+"/plugins/contextmenu/images/spacer.gif"});TinyMCE_contextmenu_contextMenu=contextMenu;if(tinyMCE.isGecko){tinyMCE.addEvent(inst.getDoc(),"contextmenu",function(e){TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE?inst.contentWindow.event:e,inst);});}else tinyMCE.addEvent(inst.getDoc(),"contextmenu",TinyMCE_contextmenu_onContextMenu);}function TinyMCE_contextmenu_onContextMenu(e){var elm=tinyMCE.isMSIE?e.srcElement:e.target;var targetInst,body;if((body=tinyMCE.getParentElement(elm,"body"))!=null){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];if(body==inst.getBody()){targetInst=inst;break;}}return TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE?targetInst.contentWindow.event:e,targetInst);}}function TinyMCE_contextmenu_showContextMenu(e,inst){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";}var x,y,elm,contextMenu;var pos=tinyMCE.getAbsPosition(inst.iframeElement);x=tinyMCE.isMSIE?e.screenX:pos.absLeft+(e.pageX-inst.getBody().scrollLeft);y=tinyMCE.isMSIE?e.screenY:pos.absTop+(e.pageY-inst.getBody().scrollTop);elm=tinyMCE.isMSIE?e.srcElement:e.target;contextMenu=TinyMCE_contextmenu_contextMenu;contextMenu.inst=inst;window.setTimeout(function(){var theme=tinyMCE.getParam("theme");contextMenu.clearAll();var sel=inst.getSelectedText().length!=0||elm.nodeName=="IMG";contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_cut_desc","Cut","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_copy_desc","Copy","",!sel);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_paste_desc","Paste","",false);elm=tinyMCE.getParentElement(elm,"img,table,td");if(elm){switch(elm.nodeName){case "IMG":contextMenu.addSeparator();if(tinyMCE.getAttrib(elm,'class').indexOf('mceItemFlash')==0)contextMenu.addItem(tinyMCE.baseURL+"/plugins/flash/images/flash.gif","$lang_flash_props","mceFlash");else contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/image.gif","$lang_image_props_desc",typeof(TinyMCE_advimage_getControlHTML)!="undefined"?"mceAdvImage":"mceImage");break;case "TABLE":case "TD":if(typeof(TinyMCE_table_getControlHTML)!="undefined"){var colspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"colspan");var rowspan=(elm.nodeName=="TABLE")?"":getAttrib(elm,"rowspan");colspan=colspan==""?"1":colspan;rowspan=rowspan==""?"1":rowspan;contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/cut.gif","$lang_table_cut_row_desc","mceTableCutRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/copy.gif","$lang_table_copy_row_desc","mceTableCopyRow");contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_before_desc","mceTablePasteRowBefore","",inst.tableRowClipboard==null);contextMenu.addItem(tinyMCE.baseURL+"/themes/"+theme+"/images/paste.gif","$lang_table_paste_row_after_desc","mceTablePasteRowAfter","",inst.tableRowClipboard==null);contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_desc","mceInsertTable","insert");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_props_desc","mceInsertTable");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_cell_props.gif","$lang_table_cell_desc","mceTableCellProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete.gif","$lang_table_del","mceTableDelete");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_row_props.gif","$lang_table_row_desc","mceTableRowProps");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_before.gif","$lang_table_row_before_desc","mceTableInsertRowBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_row_after.gif","$lang_table_row_after_desc","mceTableInsertRowAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_row.gif","$lang_table_delete_row_desc","mceTableDeleteRow");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_before.gif","$lang_table_col_before_desc","mceTableInsertColBefore");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_insert_col_after.gif","$lang_table_col_after_desc","mceTableInsertColAfter");contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_delete_col.gif","$lang_table_delete_col_desc","mceTableDeleteCol");contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_split_cells.gif","$lang_table_split_cells_desc","mceTableSplitCells","",(colspan=="1"&&rowspan=="1"));contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table_merge_cells.gif","$lang_table_merge_cells_desc","mceTableMergeCells","",false);}break;}}else{if(typeof(TinyMCE_table_getControlHTML)!="undefined"){contextMenu.addSeparator();contextMenu.addItem(tinyMCE.baseURL+"/plugins/table/images/table.gif","$lang_table_desc","mceInsertTable","insert");}}contextMenu.show(x,y);},10);tinyMCE.cancelEvent(e);return false;}function TinyMCE_contextmenu_hideContextMenu(){TinyMCE_contextmenu_contextMenu.hide();return true;}function TinyMCE_contextmenu_commandHandler(command,value){TinyMCE_contextmenu_contextMenu.hide();var ui=false;if(command=="mceInsertTable"||command=="mceTableCellProps"||command=="mceTableRowProps"||command=="mceTableMergeCells")ui=true;if(command=="Paste")value=null;TinyMCE_contextmenu_contextMenu.inst.execCommand(command,ui,value);}function ContextMenu(settings){function defParam(key,def_val){settings[key]=typeof(settings[key])!="undefined"?settings[key]:def_val;}var self=this;this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.contextMenuDiv=document.createElement("div");this.contextMenuDiv.className="contextMenu";this.contextMenuDiv.setAttribute("class","contextMenu");this.contextMenuDiv.style.display="none";this.contextMenuDiv.style.position='absolute';this.contextMenuDiv.style.zindex=1000;this.contextMenuDiv.style.left='0px';this.contextMenuDiv.style.top='0px';this.contextMenuDiv.unselectable="on";document.body.appendChild(this.contextMenuDiv);defParam("commandhandler","");defParam("spacer_image","images/spacer.gif");this.items=new Array();this.settings=settings;this.html="";if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0){this.pop=window.createPopup();doc=this.pop.document;doc.open();doc.write('<html><head><link href="'+tinyMCE.baseURL+'/plugins/contextmenu/css/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');doc.close();}};ContextMenu.prototype.clearAll=function(){this.html="";this.contextMenuDiv.innerHTML="";};ContextMenu.prototype.addSeparator=function(){this.html+='<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="'+this.settings['spacer_image']+'" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="'+this.settings['spacer_image']+'" /></td></tr>';};ContextMenu.prototype.addItem=function(icon,title,command,value,disabled){if(title.charAt(0)=='$')title=tinyMCE.getLang(title.substring(1));var onMouseDown='';var html='';if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)onMouseDown='contextMenu.execCommand(\''+command+'\', \''+value+'\');return false;';else onMouseDown=this.settings['commandhandler']+'(\''+command+'\', \''+value+'\');return false;';if(icon=="")icon=this.settings['spacer_image'];if(!disabled)html+='<tr class="contextMenuItem" onmousedown="'+onMouseDown+'" onmouseover="tinyMCE.switchClass(this,\'contextMenuItemOver\');" onmouseout="tinyMCE.switchClass(this,\'contextMenuItem\');">';else html+='<tr class="contextMenuItemDisabled">';html+='<td class="contextMenuIcon"><img src="'+icon+'" width="20" height="20" class="contextMenuImage" /></td>';html+='<td><div class="contextMenuText">';html+=title;html+='</div></td>';html+='</tr>';this.html+=html;};ContextMenu.prototype.show=function(x,y){if(this.html=="")return;var html='';html+='<table border="0" cellpadding="0" cellspacing="0">';html+=this.html;html+='</table>';this.contextMenuDiv.innerHTML=html;if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0){var width,height;this.contextMenuDiv.style.display="block";width=this.contextMenuDiv.offsetWidth;height=this.contextMenuDiv.offsetHeight;this.contextMenuDiv.style.display="none";this.pop.document.body.innerHTML='<div class="contextMenu">'+html+"</div>";this.pop.document.tinyMCE=tinyMCE;this.pop.document.contextMenu=this;this.pop.show(x,y,width,height);}else{this.contextMenuDiv.style.left=x+'px';this.contextMenuDiv.style.top=y+'px';this.contextMenuDiv.style.display="block";}};ContextMenu.prototype.hide=function(){if(tinyMCE.isMSIE&&!tinyMCE.isMSIE5_0)this.pop.hide();else this.contextMenuDiv.style.display="none";};ContextMenu.prototype.execCommand=function(command,value){eval(this.settings['commandhandler']+"(command, value);");};
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+//tinyMCE.importPluginLanguagePack('contextmenu', 'en,zh_cn,cs,fa,fr_ca,fr,de');
+if (!tinyMCE.settings['contextmenu_skip_plugin_css'])
+ tinyMCE.loadCSS(tinyMCE.baseURL + "/plugins/contextmenu/css/contextmenu.css");
+
+// Global contextmenu class instance
+var TinyMCE_contextmenu_contextMenu = null;
+
+function TinyMCE_contextmenu_getInfo() {
+ return {
+ longname : 'Context menus',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_contextmenu.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_contextmenu_initInstance(inst) {
+ // Is not working on MSIE 5.0
+ if (tinyMCE.isMSIE5_0)
+ return;
+
+ // Add hide event handles
+ tinyMCE.addEvent(inst.getDoc(), "click", TinyMCE_contextmenu_hideContextMenu);
+ tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_contextmenu_hideContextMenu);
+ tinyMCE.addEvent(inst.getDoc(), "keydown", TinyMCE_contextmenu_hideContextMenu);
+ tinyMCE.addEvent(document, "click", TinyMCE_contextmenu_hideContextMenu);
+ tinyMCE.addEvent(document, "keypress", TinyMCE_contextmenu_hideContextMenu);
+ tinyMCE.addEvent(document, "keydown", TinyMCE_contextmenu_hideContextMenu);
+
+ var contextMenu = new ContextMenu({
+ commandhandler : "TinyMCE_contextmenu_commandHandler",
+ spacer_image : tinyMCE.baseURL + "/plugins/contextmenu/images/spacer.gif"
+ });
+
+ // Register global reference
+ TinyMCE_contextmenu_contextMenu = contextMenu;
+
+ // Attach contextmenu event
+ if (tinyMCE.isGecko) {
+ tinyMCE.addEvent(inst.getDoc(), "contextmenu", function(e) {TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE ? inst.contentWindow.event : e, inst);});
+ } else
+ tinyMCE.addEvent(inst.getDoc(), "contextmenu", TinyMCE_contextmenu_onContextMenu);
+}
+
+function TinyMCE_contextmenu_onContextMenu(e) {
+ var elm = tinyMCE.isMSIE ? e.srcElement : e.target;
+ var targetInst, body;
+
+ // Find instance
+ if ((body = tinyMCE.getParentElement(elm, "body")) != null) {
+ for (var n in tinyMCE.instances) {
+ var inst = tinyMCE.instances[n];
+
+ if (body == inst.getBody()) {
+ targetInst = inst;
+ break;
+ }
+ }
+
+ return TinyMCE_contextmenu_showContextMenu(tinyMCE.isMSIE ? targetInst.contentWindow.event : e, targetInst);
+ }
+}
+
+function TinyMCE_contextmenu_showContextMenu(e, inst) {
+ function getAttrib(elm, name) {
+ return elm.getAttribute(name) ? elm.getAttribute(name) : "";
+ }
+
+ var x, y, elm, contextMenu;
+ var pos = tinyMCE.getAbsPosition(inst.iframeElement);
+
+ x = tinyMCE.isMSIE ? e.screenX : pos.absLeft + (e.pageX - inst.getBody().scrollLeft);
+ y = tinyMCE.isMSIE ? e.screenY : pos.absTop + (e.pageY - inst.getBody().scrollTop);
+ elm = tinyMCE.isMSIE ? e.srcElement : e.target;
+ contextMenu = TinyMCE_contextmenu_contextMenu;
+ contextMenu.inst = inst;
+
+ // Mozilla needs some time
+ window.setTimeout(function () {
+ var theme = tinyMCE.getParam("theme");
+
+ contextMenu.clearAll();
+ var sel = inst.getSelectedText().length != 0 || elm.nodeName == "IMG";
+
+ // Default items
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_cut_desc", "Cut", "", !sel);
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_copy_desc", "Copy", "", !sel);
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_paste_desc", "Paste", "", false);
+
+ // Get element
+ elm = tinyMCE.getParentElement(elm, "img,table,td");
+ if (elm) {
+ switch (elm.nodeName) {
+ case "IMG":
+ contextMenu.addSeparator();
+
+ // If flash
+ if (tinyMCE.getAttrib(elm, 'class').indexOf('mceItemFlash') == 0)
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/flash/images/flash.gif", "$lang_flash_props", "mceFlash");
+ else
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/image.gif", "$lang_image_props_desc", typeof(TinyMCE_advimage_getControlHTML) != "undefined" ? "mceAdvImage" : "mceImage");
+ break;
+
+ case "TABLE":
+ case "TD":
+ // Is table plugin loaded
+ if (typeof(TinyMCE_table_getControlHTML) != "undefined") {
+ var colspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "colspan");
+ var rowspan = (elm.nodeName == "TABLE") ? "" : getAttrib(elm, "rowspan");
+
+ colspan = colspan == "" ? "1" : colspan;
+ rowspan = rowspan == "" ? "1" : rowspan;
+
+ contextMenu.addSeparator();
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/cut.gif", "$lang_table_cut_row_desc", "mceTableCutRow");
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/copy.gif", "$lang_table_copy_row_desc", "mceTableCopyRow");
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_before_desc", "mceTablePasteRowBefore", "", inst.tableRowClipboard == null);
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/paste.gif", "$lang_table_paste_row_after_desc", "mceTablePasteRowAfter", "", inst.tableRowClipboard == null);
+
+/* contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/left.gif", "$lang_justifyleft_desc", "JustifyLeft", "", false);
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/center.gif", "$lang_justifycenter_desc", "JustifyCenter", "", false);
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/right.gif", "$lang_justifyright_desc", "JustifyRight", "", false);
+ contextMenu.addItem(tinyMCE.baseURL + "/themes/" + theme + "/images/full.gif", "$lang_justifyfull_desc", "JustifyFull", "", false);*/
+ contextMenu.addSeparator();
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_props_desc", "mceInsertTable");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_cell_props.gif", "$lang_table_cell_desc", "mceTableCellProps");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete.gif", "$lang_table_del", "mceTableDelete");
+ contextMenu.addSeparator();
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_row_props.gif", "$lang_table_row_desc", "mceTableRowProps");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_before.gif", "$lang_table_row_before_desc", "mceTableInsertRowBefore");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_row_after.gif", "$lang_table_row_after_desc", "mceTableInsertRowAfter");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_row.gif", "$lang_table_delete_row_desc", "mceTableDeleteRow");
+ contextMenu.addSeparator();
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_before.gif", "$lang_table_col_before_desc", "mceTableInsertColBefore");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_insert_col_after.gif", "$lang_table_col_after_desc", "mceTableInsertColAfter");
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_delete_col.gif", "$lang_table_delete_col_desc", "mceTableDeleteCol");
+ contextMenu.addSeparator();
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_split_cells.gif", "$lang_table_split_cells_desc", "mceTableSplitCells", "", (colspan == "1" && rowspan == "1"));
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table_merge_cells.gif", "$lang_table_merge_cells_desc", "mceTableMergeCells", "", false);
+ }
+ break;
+ }
+ } else {
+ // Add table specific
+ if (typeof(TinyMCE_table_getControlHTML) != "undefined") {
+ contextMenu.addSeparator();
+ contextMenu.addItem(tinyMCE.baseURL + "/plugins/table/images/table.gif", "$lang_table_desc", "mceInsertTable", "insert");
+ }
+ }
+
+ contextMenu.show(x, y);
+ }, 10);
+
+ // Cancel default handeling
+ tinyMCE.cancelEvent(e);
+ return false;
+}
+
+function TinyMCE_contextmenu_hideContextMenu() {
+ TinyMCE_contextmenu_contextMenu.hide();
+
+ return true;
+}
+
+function TinyMCE_contextmenu_commandHandler(command, value) {
+ TinyMCE_contextmenu_contextMenu.hide();
+
+ // UI must be true on these
+ var ui = false;
+ if (command == "mceInsertTable" || command == "mceTableCellProps" || command == "mceTableRowProps" || command == "mceTableMergeCells")
+ ui = true;
+
+ if (command == "Paste")
+ value = null;
+
+ TinyMCE_contextmenu_contextMenu.inst.execCommand(command, ui, value);
+}
+
+// Context menu class
+
+function ContextMenu(settings) {
+ // Default value function
+ function defParam(key, def_val) {
+ settings[key] = typeof(settings[key]) != "undefined" ? settings[key] : def_val;
+ }
+
+ var self = this;
+
+ this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+
+ // Setup contextmenu div
+ this.contextMenuDiv = document.createElement("div");
+ this.contextMenuDiv.className = "contextMenu";
+ this.contextMenuDiv.setAttribute("class", "contextMenu");
+ this.contextMenuDiv.style.display = "none";
+ this.contextMenuDiv.style.position = 'absolute';
+ this.contextMenuDiv.style.zindex = 1000;
+ this.contextMenuDiv.style.left = '0px';
+ this.contextMenuDiv.style.top = '0px';
+ this.contextMenuDiv.unselectable = "on";
+
+ document.body.appendChild(this.contextMenuDiv);
+
+ // Setup default values
+ defParam("commandhandler", "");
+ defParam("spacer_image", "images/spacer.gif");
+
+ this.items = new Array();
+ this.settings = settings;
+ this.html = "";
+
+ // IE Popup
+ if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) {
+ this.pop = window.createPopup();
+ doc = this.pop.document;
+ doc.open();
+ doc.write('<html><head><link href="' + tinyMCE.baseURL + '/plugins/contextmenu/css/contextmenu.css" rel="stylesheet" type="text/css" /></head><body unselectable="yes" class="contextMenuIEPopup"></body></html>');
+ doc.close();
+ }
+};
+
+ContextMenu.prototype.clearAll = function() {
+ this.html = "";
+ this.contextMenuDiv.innerHTML = "";
+};
+
+ContextMenu.prototype.addSeparator = function() {
+ this.html += '<tr class="contextMenuItem"><td class="contextMenuIcon"><img src="' + this.settings['spacer_image'] + '" width="20" height="1" class="contextMenuImage" /></td><td><img class="contextMenuSeparator" width="1" height="1" src="' + this.settings['spacer_image'] + '" /></td></tr>';
+};
+
+ContextMenu.prototype.addItem = function(icon, title, command, value, disabled) {
+ if (title.charAt(0) == '$')
+ title = tinyMCE.getLang(title.substring(1));
+
+ var onMouseDown = '';
+ var html = '';
+
+ if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0)
+ onMouseDown = 'contextMenu.execCommand(\'' + command + '\', \'' + value + '\');return false;';
+ else
+ onMouseDown = this.settings['commandhandler'] + '(\'' + command + '\', \'' + value + '\');return false;';
+
+ if (icon == "")
+ icon = this.settings['spacer_image'];
+
+ if (!disabled)
+ html += '<tr class="contextMenuItem" onmousedown="' + onMouseDown + '" onmouseover="tinyMCE.switchClass(this,\'contextMenuItemOver\');" onmouseout="tinyMCE.switchClass(this,\'contextMenuItem\');">';
+ else
+ html += '<tr class="contextMenuItemDisabled">';
+
+ html += '<td class="contextMenuIcon"><img src="' + icon + '" width="20" height="20" class="contextMenuImage" /></td>';
+ html += '<td><div class="contextMenuText">';
+
+ // Add text
+ html += title;
+
+ html += '</div></td>';
+ html += '</tr>';
+
+ // Add to main
+ this.html += html;
+};
+
+ContextMenu.prototype.show = function(x, y) {
+ if (this.html == "")
+ return;
+
+ var html = '';
+
+ html += '<table border="0" cellpadding="0" cellspacing="0">';
+ html += this.html;
+ html += '</table>';
+
+ this.contextMenuDiv.innerHTML = html;
+
+ if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0) {
+ var width, height;
+
+ // Get dimensions
+ this.contextMenuDiv.style.display = "block";
+ width = this.contextMenuDiv.offsetWidth;
+ height = this.contextMenuDiv.offsetHeight;
+ this.contextMenuDiv.style.display = "none";
+
+ // Setup popup and show
+ this.pop.document.body.innerHTML = '<div class="contextMenu">' + html + "</div>";
+ this.pop.document.tinyMCE = tinyMCE;
+ this.pop.document.contextMenu = this;
+ this.pop.show(x, y, width, height);
+ } else {
+ this.contextMenuDiv.style.left = x + 'px';
+ this.contextMenuDiv.style.top = y + 'px';
+ this.contextMenuDiv.style.display = "block";
+ }
+};
+
+ContextMenu.prototype.hide = function() {
+ if (tinyMCE.isMSIE && !tinyMCE.isMSIE5_0)
+ this.pop.hide();
+ else
+ this.contextMenuDiv.style.display = "none";
+};
+
+ContextMenu.prototype.execCommand = function(command, value) {
+ eval(this.settings['commandhandler'] + "(command, value);");
+};
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('directionality','en,sv,fr_ca,zh_cn,cs');function TinyMCE_directionality_getInfo(){return{longname:'Directionality',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_directionality.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_directionality_getControlHTML(control_name){switch(control_name){case "ltr":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionLTR\');" onmousedown="return false;"><img id="{$editor_id}_ltr" src="{$pluginurl}/images/ltr.gif" title="{$lang_directionality_ltr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';case "rtl":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionRTL\');" onmousedown="return false;"><img id="{$editor_id}_rtl" src="{$pluginurl}/images/rtl.gif" title="{$lang_directionality_rtl_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_directionality_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceDirectionLTR":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","ltr");tinyMCE.triggerNodeChange(false);return true;case "mceDirectionRTL":var inst=tinyMCE.getInstanceById(editor_id);var elm=tinyMCE.getParentElement(inst.getFocusElement(),"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(elm)elm.setAttribute("dir","rtl");tinyMCE.triggerNodeChange(false);return true;}return false;}function TinyMCE_directionality_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";}tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonNormal',false);if(node==null)return;var elm=tinyMCE.getParentElement(node,"p,div,td,h1,h2,h3,h4,h5,h6,pre,address");if(!elm){tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonDisabled',true);return;}var dir=getAttrib(elm,"dir");if(dir=="ltr"||dir=="")tinyMCE.switchClassSticky(editor_id+'_ltr','mceButtonSelected',false);else tinyMCE.switchClassSticky(editor_id+'_rtl','mceButtonSelected',false);return true;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('directionality', 'en,sv,fr_ca,zh_cn,cs');
+
+function TinyMCE_directionality_getInfo() {
+ return {
+ longname : 'Directionality',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_directionality.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_directionality_getControlHTML(control_name) {
+ switch (control_name) {
+ case "ltr":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionLTR\');" onmousedown="return false;"><img id="{$editor_id}_ltr" src="{$pluginurl}/images/ltr.gif" title="{$lang_directionality_ltr_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+
+ case "rtl":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceDirectionRTL\');" onmousedown="return false;"><img id="{$editor_id}_rtl" src="{$pluginurl}/images/rtl.gif" title="{$lang_directionality_rtl_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+function TinyMCE_directionality_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceDirectionLTR":
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
+
+ if (elm)
+ elm.setAttribute("dir", "ltr");
+
+ tinyMCE.triggerNodeChange(false);
+ return true;
+
+ case "mceDirectionRTL":
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var elm = tinyMCE.getParentElement(inst.getFocusElement(), "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
+
+ if (elm)
+ elm.setAttribute("dir", "rtl");
+
+ tinyMCE.triggerNodeChange(false);
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_directionality_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ function getAttrib(elm, name) {
+ return elm.getAttribute(name) ? elm.getAttribute(name) : "";
+ }
+
+ tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonNormal', false);
+
+ if (node == null)
+ return;
+
+ var elm = tinyMCE.getParentElement(node, "p,div,td,h1,h2,h3,h4,h5,h6,pre,address");
+ if (!elm) {
+ tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonDisabled', true);
+ return;
+ }
+
+ var dir = getAttrib(elm, "dir");
+ if (dir == "ltr" || dir == "")
+ tinyMCE.switchClassSticky(editor_id + '_ltr', 'mceButtonSelected', false);
+ else
+ tinyMCE.switchClassSticky(editor_id + '_rtl', 'mceButtonSelected', false);
+
+ return true;
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Směr z leva doprava',
+directionality_rtl_desc : 'Směr z prava doleva'
+});
+
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction left to right',
+directionality_rtl_desc : 'Direction right to left'
+});
--- /dev/null
+// fr_ca lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Direction de la gauche vers la droite',
+directionality_rtl_desc : 'Direction de la droite vers la gauche'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'ëéååï ùîàì ìéîéï',
+directionality_rtl_desc : 'ëéååï éîéï ìùîàì'
+});
--- /dev/null
+// SV lang variables
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : 'Riktning från vänster till höger',
+directionality_rtl_desc : 'Riktning från höger till vänster'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+directionality_ltr_desc : '´Ó×óÍùÓҵķ½Ïò',
+directionality_rtl_desc : '´ÓÓÒÍù×óµÄ·½Ïò'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('emotions','en,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br,nl');function TinyMCE_emotions_getInfo(){return{longname:'Emotions',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_emotions.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_emotions_getControlHTML(control_name){switch(control_name){case "emotions":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceEmotion\');" onmousedown="return false;"><img id="{$editor_id}_emotions" src="{$pluginurl}/images/emotions.gif" title="{$lang_emotions_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_emotions_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceEmotion":var template=new Array();template['file']='../../plugins/emotions/emotions.htm';template['width']=160;template['height']=160;template['width']+=tinyMCE.getLang('lang_emotions_delta_width',0);template['height']+=tinyMCE.getLang('lang_emotions_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('emotions', 'en,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br,nl');
+
+function TinyMCE_emotions_getInfo() {
+ return {
+ longname : 'Emotions',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_emotions.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+/**
+ * Returns the HTML contents of the emotions control.
+ */
+function TinyMCE_emotions_getControlHTML(control_name) {
+ switch (control_name) {
+ case "emotions":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceEmotion\');" onmousedown="return false;"><img id="{$editor_id}_emotions" src="{$pluginurl}/images/emotions.gif" title="{$lang_emotions_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mceEmotion command.
+ */
+function TinyMCE_emotions_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceEmotion":
+ var template = new Array();
+
+ template['file'] = '../../plugins/emotions/emotions.htm'; // Relative to theme
+ template['width'] = 160;
+ template['height'] = 160;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_emotions_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_emotions_delta_height', 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_emotions_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/functions.js"></script>
+</head>
+<body style="display: none">
+ <div align="center">
+ <div class="title">{$lang_emotions_title}:<br /><br /></div>
+
+ <table border="0" cellspacing="0" cellpadding="4">
+ <tr>
+ <td><a href="javascript:insertEmotion('smiley-cool.gif','lang_emotions_cool');"><img src="images/smiley-cool.gif" width="18" height="18" border="0" alt="{$lang_emotions_cool}" title="{$lang_emotions_cool}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-cry.gif','lang_emotions_cry');"><img src="images/smiley-cry.gif" width="18" height="18" border="0" alt="{$lang_emotions_cry}" title="{$lang_emotions_cry}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-embarassed.gif','lang_emotions_embarassed');"><img src="images/smiley-embarassed.gif" width="18" height="18" border="0" alt="{$lang_emotions_embarassed}" title="{$lang_emotions_embarassed}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-foot-in-mouth.gif','lang_emotions_foot_in_mouth');"><img src="images/smiley-foot-in-mouth.gif" width="18" height="18" border="0" alt="{$lang_emotions_foot_in_mouth}" title="{$lang_emotions_foot_in_mouth}" /></a></td>
+ </tr>
+ <tr>
+ <td><a href="javascript:insertEmotion('smiley-frown.gif','lang_emotions_frown');"><img src="images/smiley-frown.gif" width="18" height="18" border="0" alt="{$lang_emotions_frown}" title="{$lang_emotions_frown}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-innocent.gif','lang_emotions_innocent');"><img src="images/smiley-innocent.gif" width="18" height="18" border="0" alt="{$lang_emotions_innocent}" title="{$lang_emotions_innocent}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-kiss.gif','lang_emotions_kiss');"><img src="images/smiley-kiss.gif" width="18" height="18" border="0" alt="{$lang_emotions_kiss}" title="{$lang_emotions_kiss}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-laughing.gif','lang_emotions_laughing');"><img src="images/smiley-laughing.gif" width="18" height="18" border="0" alt="{$lang_emotions_laughing}" title="{$lang_emotions_laughing}" /></a></td>
+ </tr>
+ <tr>
+ <td><a href="javascript:insertEmotion('smiley-money-mouth.gif','lang_emotions_money-mouth');"><img src="images/smiley-money-mouth.gif" width="18" height="18" border="0" alt="{$lang_emotions_money-mouth}" title="{$lang_emotions_money_mouth}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-sealed.gif','lang_emotions_sealed');"><img src="images/smiley-sealed.gif" width="18" height="18" border="0" alt="{$lang_emotions_sealed}" title="{$lang_emotions_sealed}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-smile.gif','lang_emotions_smile');"><img src="images/smiley-smile.gif" width="18" height="18" border="0" alt="{$lang_emotions_smile}" title="{$lang_emotions_smile}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-surprised.gif','lang_emotions_surprised');"><img src="images/smiley-surprised.gif" width="18" height="18" border="0" alt="{$lang_emotions_surprised}" title="{$lang_emotions_surprised}" /></a></td>
+ </tr>
+ <tr>
+ <td><a href="javascript:insertEmotion('smiley-tongue-out.gif','lang_emotions_tongue_out');"><img src="images/smiley-tongue-out.gif" width="18" height="18" border="0" alt="{$lang_emotions_tongue-out}" title="{$lang_emotions_tongue_out}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-undecided.gif','lang_emotions_undecided');"><img src="images/smiley-undecided.gif" width="18" height="18" border="0" alt="{$lang_emotions_undecided}" title="{$lang_emotions_undecided}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-wink.gif','lang_emotions_wink');"><img src="images/smiley-wink.gif" width="18" height="18" border="0" alt="{$lang_emotions_wink}" title="{$lang_emotions_wink}" /></a></td>
+ <td><a href="javascript:insertEmotion('smiley-yell.gif','lang_emotions_yell');"><img src="images/smiley-yell.gif" width="18" height="18" border="0" alt="{$lang_emotions_yell}" title="{$lang_emotions_yell}" /></a></td>
+ </tr>
+ </table>
+ </div>
+</body>
+</html>
--- /dev/null
+These emotions where taken from Mozilla Thunderbird.
+I hope they don't get angry if I use them here after all this is a open source project aswell.
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+}
+
+function insertEmotion(file_name, title) {
+ tinyMCE.insertImage(tinyMCE.baseURL + "/plugins/emotions/images/" + file_name, tinyMCE.getLang(title));
+ tinyMCEPopup.close();
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Vložit emotikonu',
+emotions_desc : 'Emotikony'
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Emotion einfügen',
+emotions_desc : 'Emotion'
+});
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'ÅéóáãùãÞ åíüò åéêïíéäßïõ emoticon',
+emotions_desc : 'Åéêïíßäéá emoticons'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Insert emotion',
+desc : 'Emotions',
+cool : 'Cool',
+cry : 'Cry',
+embarassed : 'Embarassed',
+foot_in_mouth : 'Foot in mouth',
+frown : 'Frown',
+innocent : 'Innocent',
+kiss : 'Kiss',
+laughing : 'Laughing',
+money_mouth : 'Money mouth',
+sealed : 'Sealed',
+smile : 'Smile',
+surprised : 'Surprised',
+tongue_out : 'Tongue out',
+undecided : 'Undecided',
+wink : 'Wink',
+yell : 'Yell'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_emotions_title : '?????? ????',
+emotions_desc : '??????'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Insèrer un émoticon',
+emotions_desc : 'Émoticons'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Insérer un émoticon',
+emotions_desc : 'Émoticons'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'äëðñ ôøöåôåï',
+emotions_desc : 'ôøöåôåðéí'
+});
--- /dev/null
+//IT lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Inserisci una emoticon',
+emotions_desc : 'Emoticon'
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'À̸ðƼÄÜ ³Ö±â',
+emotions_desc : 'À̸ðƼÄÜ'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Emotion invoegen',
+emotions_desc : 'Smilie'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Wstaw emtoicone',
+emotions_desc : 'Emtoicony'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+insert_emotions_title : 'Inserir Emoticon',
+emotions_desc : 'Emoticons'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('emotions',{
+title : 'Klistra in känsla',
+desc : 'Känslor',
+cool : 'Cool',
+cry : 'Gråter',
+embarassed : 'Generad',
+foot_in_mouth : 'Fot i munnnen',
+frown : 'Ledsen',
+innocent : 'Oskyldig',
+kiss : 'Kyss',
+laughing : 'Skrattande',
+money_mouth : 'Penga mun',
+sealed : 'Hemlis',
+smile : 'Glad',
+surprised : 'Förvånad',
+tongue_out : 'Räcka ut tungan',
+undecided : 'Fundersam',
+wink : 'Flört',
+yell : 'Skrikandes'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+insert_emotions_title : '²åÈë±íÇé',
+emotions_desc : '񡀂'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+.mceItemFlash {
+ border: 1px dotted #cc0000;
+ background-image: url('../images/flash.gif');
+ background-position: center;
+ background-repeat: no-repeat;
+ background-color: #ffffcc;
+}
--- /dev/null
+.panel_wrapper div.current {
+ height: 100px;
+}
+
+#width, #height {
+ width: 50px;
+}
+
+#file {
+ width: 250px;
+}
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('flash','en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');function TinyMCE_flash_getInfo(){return{longname:'Flash',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_flash.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_flash_initInstance(inst){if(!tinyMCE.settings['flash_skip_plugin_css'])tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/flash/css/content.css");}function TinyMCE_flash_getControlHTML(control_name){switch(control_name){case "flash":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFlash\');" onmousedown="return false;"><img id="{$editor_id}_flash" src="{$pluginurl}/images/flash.gif" title="{$lang_flash_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_flash_parseAttributes(attribute_string){var attributeName="";var attributeValue="";var withInName;var withInValue;var attributes=new Array();var whiteSpaceRegExp=new RegExp('^[ \n\r\t]+','g');if(attribute_string==null||attribute_string.length<2)return null;withInName=withInValue=false;for(var i=0;i<attribute_string.length;i++){var chr=attribute_string.charAt(i);if((chr=='"'||chr=="'")&&!withInValue)withInValue=true;else if((chr=='"'||chr=="'")&&withInValue){withInValue=false;var pos=attributeName.lastIndexOf(' ');if(pos!=-1)attributeName=attributeName.substring(pos+1);attributes[attributeName.toLowerCase()]=attributeValue.substring(1);attributeName="";attributeValue="";}else if(!whiteSpaceRegExp.test(chr)&&!withInName&&!withInValue)withInName=true;if(chr=='='&&withInName)withInName=false;if(withInName)attributeName+=chr;if(withInValue)attributeValue+=chr;}return attributes;}function TinyMCE_flash_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceFlash":var name="",swffile="",swfwidth="",swfheight="",action="insert";var template=new Array();var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();template['file']='../../plugins/flash/flash.htm';template['width']=430;template['height']=175;template['width']+=tinyMCE.getLang('lang_flash_delta_width',0);template['height']+=tinyMCE.getLang('lang_flash_delta_height',0);if(focusElm!=null&&focusElm.nodeName.toLowerCase()=="img"){name=tinyMCE.getAttrib(focusElm,'class');if(name.indexOf('mceItemFlash')==-1)return true;swffile=tinyMCE.getAttrib(focusElm,'alt');swffile=eval(tinyMCE.settings['urlconverter_callback']+"(swffile, null, true);");swfwidth=tinyMCE.getAttrib(focusElm,'width');swfheight=tinyMCE.getAttrib(focusElm,'height');action="update";}tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",swffile:swffile,swfwidth:swfwidth,swfheight:swfheight,action:action});return true;}return false;}function TinyMCE_flash_cleanup(type,content){switch(type){case "insert_to_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){if(tinyMCE.getAttrib(imgs[i],"class")=="mceItemFlash"){var src=tinyMCE.getAttrib(imgs[i],"alt");src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);imgs[i].setAttribute('alt',src);}}break;case "get_from_editor_dom":var imgs=content.getElementsByTagName("img");for(var i=0;i<imgs.length;i++){if(tinyMCE.getAttrib(imgs[i],"class")=="mceItemFlash"){var src=tinyMCE.getAttrib(imgs[i],"alt");src=eval(tinyMCE.settings['urlconverter_callback']+"(src, null, true);");imgs[i].setAttribute('alt',src);}}break;case "insert_to_editor":var startPos=0;var embedList=new Array();content=content.replace(new RegExp('<[ ]*embed','gi'),'<embed');content=content.replace(new RegExp('<[ ]*/embed[ ]*>','gi'),'</embed>');content=content.replace(new RegExp('<[ ]*object','gi'),'<object');content=content.replace(new RegExp('<[ ]*/object[ ]*>','gi'),'</object>');while((startPos=content.indexOf('<embed',startPos+1))!=-1){var endPos=content.indexOf('>',startPos);var attribs=TinyMCE_flash_parseAttributes(content.substring(startPos+6,endPos));embedList[embedList.length]=attribs;}var index=0;while((startPos=content.indexOf('<object',startPos))!=-1){if(index>=embedList.length)break;var attribs=embedList[index];endPos=content.indexOf('</object>',startPos);endPos+=9;var contentAfter=content.substring(endPos);content=content.substring(0,startPos);content+='<img width="'+attribs["width"]+'" height="'+attribs["height"]+'"';content+=' src="'+(tinyMCE.getParam("theme_href")+'/images/spacer.gif')+'" title="'+attribs["src"]+'"';content+=' alt="'+attribs["src"]+'" class="mceItemFlash" />'+content.substring(endPos);content+=contentAfter;index++;startPos++;}break;case "get_from_editor":var startPos=-1;while((startPos=content.indexOf('<img',startPos+1))!=-1){var endPos=content.indexOf('/>',startPos);var attribs=TinyMCE_flash_parseAttributes(content.substring(startPos+4,endPos));if(attribs['class']!="mceItemFlash")continue;endPos+=2;var embedHTML='';var wmode=tinyMCE.getParam("flash_wmode","");var quality=tinyMCE.getParam("flash_quality","high");var menu=tinyMCE.getParam("flash_menu","false");embedHTML+='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';embedHTML+=' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';embedHTML+=' width="'+attribs["width"]+'" height="'+attribs["height"]+'">';embedHTML+='<param name="movie" value="'+attribs["title"]+'" />';embedHTML+='<param name="quality" value="'+quality+'" />';embedHTML+='<param name="menu" value="'+menu+'" />';embedHTML+='<param name="wmode" value="'+wmode+'" />';embedHTML+='<embed src="'+attribs["title"]+'" wmode="'+wmode+'" quality="'+quality+'" menu="'+menu+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+attribs["width"]+'" height="'+attribs["height"]+'"></embed></object>';chunkBefore=content.substring(0,startPos);chunkAfter=content.substring(endPos);content=chunkBefore+embedHTML+chunkAfter;}break;}return content;}function TinyMCE_flash_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_flash','mceButtonNormal');if(node==null)return;do{if(node.nodeName.toLowerCase()=="img"&&tinyMCE.getAttrib(node,'class').indexOf('mceItemFlash')==0)tinyMCE.switchClassSticky(editor_id+'_flash','mceButtonSelected');}while((node=node.parentNode));return true;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('flash', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl');
+
+function TinyMCE_flash_getInfo() {
+ return {
+ longname : 'Flash',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_flash.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_flash_initInstance(inst) {
+ if (!tinyMCE.settings['flash_skip_plugin_css'])
+ tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/flash/css/content.css");
+}
+
+function TinyMCE_flash_getControlHTML(control_name) {
+ switch (control_name) {
+ case "flash":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFlash\');" onmousedown="return false;"><img id="{$editor_id}_flash" src="{$pluginurl}/images/flash.gif" title="{$lang_flash_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+function TinyMCE_flash_parseAttributes(attribute_string) {
+ var attributeName = "";
+ var attributeValue = "";
+ var withInName;
+ var withInValue;
+ var attributes = new Array();
+ var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g');
+
+ if (attribute_string == null || attribute_string.length < 2)
+ return null;
+
+ withInName = withInValue = false;
+
+ for (var i=0; i<attribute_string.length; i++) {
+ var chr = attribute_string.charAt(i);
+
+ if ((chr == '"' || chr == "'") && !withInValue)
+ withInValue = true;
+ else if ((chr == '"' || chr == "'") && withInValue) {
+ withInValue = false;
+
+ var pos = attributeName.lastIndexOf(' ');
+ if (pos != -1)
+ attributeName = attributeName.substring(pos+1);
+
+ attributes[attributeName.toLowerCase()] = attributeValue.substring(1);
+
+ attributeName = "";
+ attributeValue = "";
+ } else if (!whiteSpaceRegExp.test(chr) && !withInName && !withInValue)
+ withInName = true;
+
+ if (chr == '=' && withInName)
+ withInName = false;
+
+ if (withInName)
+ attributeName += chr;
+
+ if (withInValue)
+ attributeValue += chr;
+ }
+
+ return attributes;
+}
+
+function TinyMCE_flash_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceFlash":
+ var name = "", swffile = "", swfwidth = "", swfheight = "", action = "insert";
+ var template = new Array();
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var focusElm = inst.getFocusElement();
+
+ template['file'] = '../../plugins/flash/flash.htm'; // Relative to theme
+ template['width'] = 430;
+ template['height'] = 175;
+
+ template['width'] += tinyMCE.getLang('lang_flash_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_flash_delta_height', 0);
+
+ // Is selection a image
+ if (focusElm != null && focusElm.nodeName.toLowerCase() == "img") {
+ name = tinyMCE.getAttrib(focusElm, 'class');
+
+ if (name.indexOf('mceItemFlash') == -1) // Not a Flash
+ return true;
+
+ // Get rest of Flash items
+ swffile = tinyMCE.getAttrib(focusElm, 'alt');
+ swffile = eval(tinyMCE.settings['urlconverter_callback'] + "(swffile, null, true);");
+ swfwidth = tinyMCE.getAttrib(focusElm, 'width');
+ swfheight = tinyMCE.getAttrib(focusElm, 'height');
+ action = "update";
+ }
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", swffile : swffile, swfwidth : swfwidth, swfheight : swfheight, action : action});
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_flash_cleanup(type, content) {
+ switch (type) {
+ case "insert_to_editor_dom":
+ var imgs = content.getElementsByTagName("img");
+ for (var i=0; i<imgs.length; i++) {
+ if (tinyMCE.getAttrib(imgs[i], "class") == "mceItemFlash") {
+ var src = tinyMCE.getAttrib(imgs[i], "alt");
+
+ src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
+
+ imgs[i].setAttribute('alt', src);
+ }
+ }
+ break;
+
+ case "get_from_editor_dom":
+ var imgs = content.getElementsByTagName("img");
+ for (var i=0; i<imgs.length; i++) {
+ if (tinyMCE.getAttrib(imgs[i], "class") == "mceItemFlash") {
+ var src = tinyMCE.getAttrib(imgs[i], "alt");
+
+ src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
+
+ imgs[i].setAttribute('alt', src);
+ }
+ }
+ break;
+
+ case "insert_to_editor":
+ var startPos = 0;
+ var embedList = new Array();
+
+ // Fix the embed and object elements
+ content = content.replace(new RegExp('<[ ]*embed','gi'),'<embed');
+ content = content.replace(new RegExp('<[ ]*/embed[ ]*>','gi'),'</embed>');
+ content = content.replace(new RegExp('<[ ]*object','gi'),'<object');
+ content = content.replace(new RegExp('<[ ]*/object[ ]*>','gi'),'</object>');
+
+ // Parse all embed tags
+ while ((startPos = content.indexOf('<embed', startPos+1)) != -1) {
+ var endPos = content.indexOf('>', startPos);
+ var attribs = TinyMCE_flash_parseAttributes(content.substring(startPos + 6, endPos));
+ embedList[embedList.length] = attribs;
+ }
+
+ // Parse all object tags and replace them with images from the embed data
+ var index = 0;
+ while ((startPos = content.indexOf('<object', startPos)) != -1) {
+ if (index >= embedList.length)
+ break;
+
+ var attribs = embedList[index];
+
+ // Find end of object
+ endPos = content.indexOf('</object>', startPos);
+ endPos += 9;
+
+ // Insert image
+ var contentAfter = content.substring(endPos);
+ content = content.substring(0, startPos);
+ content += '<img width="' + attribs["width"] + '" height="' + attribs["height"] + '"';
+ content += ' src="' + (tinyMCE.getParam("theme_href") + '/images/spacer.gif') + '" title="' + attribs["src"] + '"';
+ content += ' alt="' + attribs["src"] + '" class="mceItemFlash" />' + content.substring(endPos);
+ content += contentAfter;
+ index++;
+
+ startPos++;
+ }
+ break;
+
+ case "get_from_editor":
+ // Parse all img tags and replace them with object+embed
+ var startPos = -1;
+ while ((startPos = content.indexOf('<img', startPos+1)) != -1) {
+ var endPos = content.indexOf('/>', startPos);
+ var attribs = TinyMCE_flash_parseAttributes(content.substring(startPos + 4, endPos));
+
+ // Is not flash, skip it
+ if (attribs['class'] != "mceItemFlash")
+ continue;
+
+ endPos += 2;
+
+ var embedHTML = '';
+ var wmode = tinyMCE.getParam("flash_wmode", "");
+ var quality = tinyMCE.getParam("flash_quality", "high");
+ var menu = tinyMCE.getParam("flash_menu", "false");
+
+ // Insert object + embed
+ embedHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';
+ embedHTML += ' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';
+ embedHTML += ' width="' + attribs["width"] + '" height="' + attribs["height"] + '">';
+ embedHTML += '<param name="movie" value="' + attribs["title"] + '" />';
+ embedHTML += '<param name="quality" value="' + quality + '" />';
+ embedHTML += '<param name="menu" value="' + menu + '" />';
+ embedHTML += '<param name="wmode" value="' + wmode + '" />';
+ embedHTML += '<embed src="' + attribs["title"] + '" wmode="' + wmode + '" quality="' + quality + '" menu="' + menu + '" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + attribs["width"] + '" height="' + attribs["height"] + '"></embed></object>';
+
+ // Insert embed/object chunk
+ chunkBefore = content.substring(0, startPos);
+ chunkAfter = content.substring(endPos);
+ content = chunkBefore + embedHTML + chunkAfter;
+ }
+ break;
+ }
+
+ // Pass through to next handler in chain
+ return content;
+}
+
+function TinyMCE_flash_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ tinyMCE.switchClassSticky(editor_id + '_flash', 'mceButtonNormal');
+
+ if (node == null)
+ return;
+
+ do {
+ if (node.nodeName.toLowerCase() == "img" && tinyMCE.getAttrib(node, 'class').indexOf('mceItemFlash') == 0)
+ tinyMCE.switchClassSticky(editor_id + '_flash', 'mceButtonSelected');
+ } while ((node = node.parentNode));
+
+ return true;
+}
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_flash_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/flash.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <link href="css/flash.css" rel="stylesheet" type="text/css" />
+</head>
+<body onload="init();" style="display: none">
+ <form onsubmit="insertFlash();return false;" action="#">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_flash_general}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <fieldset>
+ <legend>{$lang_flash_general}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td nowrap="nowrap"><label for="file">{$lang_flash_file}</label></td>
+ <td nowrap="nowrap">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="file" name="file" type="text" value="" onfocus="this.select();" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('filebrowser','file','flash','flash');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <script language="javascript" type="text/javascript">renderFlashList();</script>
+ <tr>
+ <td nowrap="nowrap"><label>{$lang_flash_size}</label></td>
+ <td nowrap="nowrap">
+ <input type="text" id="width" name="width" value="" onfocus="this.select();" />
+ <select name="width2" id="width2" style="width: 50px; vertical-align: middle;">
+ <option value="">px</option>
+ <option value="%">%</option>
+ </select> x <input id="height" name="height" type="text" value="" onfocus="this.select();" />
+ <select name="height2" id="height2" style="width: 50px; vertical-align: middle;">
+ <option value="">px</option>
+ <option value="%">%</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertFlash();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+var url = tinyMCE.getParam("flash_external_list_url");
+if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/')
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+ var swffile = tinyMCE.getWindowArg('swffile');
+ var swfwidth = '' + tinyMCE.getWindowArg('swfwidth');
+ var swfheight = '' + tinyMCE.getWindowArg('swfheight');
+
+ if (swfwidth.indexOf('%')!=-1) {
+ formObj.width2.value = "%";
+ formObj.width.value = swfwidth.substring(0,swfwidth.length-1);
+ } else {
+ formObj.width2.value = "px";
+ formObj.width.value = swfwidth;
+ }
+
+ if (swfheight.indexOf('%')!=-1) {
+ formObj.height2.value = "%";
+ formObj.height.value = swfheight.substring(0,swfheight.length-1);
+ } else {
+ formObj.height2.value = "px";
+ formObj.height.value = swfheight;
+ }
+
+ formObj.file.value = swffile;
+ formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+
+ selectByValue(formObj, 'link_list', swffile);
+
+ // Handle file browser
+ if (isVisible('filebrowser'))
+ document.getElementById('file').style.width = '230px';
+
+ // Auto select flash in list
+ if (typeof(tinyMCEFlashList) != "undefined" && tinyMCEFlashList.length > 0) {
+ for (var i=0; i<formObj.link_list.length; i++) {
+ if (formObj.link_list.options[i].value == tinyMCE.getWindowArg('swffile'))
+ formObj.link_list.options[i].selected = true;
+ }
+ }
+}
+
+function renderFlashList() {
+ if (typeof(tinyMCEFlashList) != "undefined" && tinyMCEFlashList.length > 0) {
+ var html = "";
+
+ html += '<tr><td><label for="link_list">{$lang_flash_list}</label></td>';
+ html += '<td><select id="link_list" name="link_list" style="width: 250px" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.file.value=this.options[this.selectedIndex].value;">';
+ html += '<option value="">---</option>';
+
+ for (var i=0; i<tinyMCEFlashList.length; i++)
+ html += '<option value="' + tinyMCEFlashList[i][1] + '">' + tinyMCEFlashList[i][0] + '</option>';
+
+ html += '</select></td></tr>';
+
+ document.write(html);
+ }
+}
+
+function insertFlash() {
+ var formObj = document.forms[0];
+ var html = '';
+ var file = formObj.file.value;
+ var width = formObj.width.value;
+ var height = formObj.height.value;
+ if (formObj.width2.value=='%') {
+ width = width + '%';
+ }
+ if (formObj.height2.value=='%') {
+ height = height + '%';
+ }
+
+ if (width == "")
+ width = 100;
+
+ if (height == "")
+ height = 100;
+
+ html += ''
+ + '<img src="' + (tinyMCE.getParam("theme_href") + "/images/spacer.gif") + '" '
+ + 'width="' + width + '" height="' + height + '" '
+ + 'border="0" alt="' + file + '" title="' + file + '" class="mceItemFlash" />';
+
+ tinyMCEPopup.execCommand("mceInsertContent", true, html);
+ tinyMCE.selectedInstance.repaint();
+
+ tinyMCEPopup.close();
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+insert_flash : 'Vlo\9eit/editovat Flash Movie',
+insert_flash_file : 'Flash soubor (.swf)',
+insert_flash_size : 'Velikost',
+insert_flash_list : 'Seznam',
+flash_props : 'Vlastnosti Flash'
+});
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insert_flash : 'Flash Movie einfügen / bearbeiten',
+insert_flash_file : 'Flash-Datei',
+insert_flash_size : 'Größe',
+insert_flash_list : 'Flash Dateien',
+flash_props : 'Flash properties'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Insert / edit Flash Movie',
+desc : 'Insert / edit Flash Movie',
+file : 'Flash-File (.swf)',
+size : 'Size',
+list : 'Flash files',
+props : 'Flash properties',
+general : 'General'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+insert_flash : '?????? ? ?????? ???? ???',
+insert_flash_file : '???? ??? (.swf)',
+insert_flash_size : '?????',
+flash_props : 'Flash properties'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+insert_flash : 'Insérer / éditer une animation Flash',
+insert_flash_file : 'Fichier-Flash (.swf)',
+insert_flash_size : 'Taille',
+insert_flash_list : 'Fichiers Flash',
+flash_props : 'Flash properties'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+insert_flash : 'Insérer / Modifier une animation Flash',
+insert_flash_file : 'Fichier Flash (.swf)',
+insert_flash_size : 'Dimension',
+insert_flash_list : 'Fichiers Flash',
+flash_props : 'Propriétés Flash'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insert_flash : 'äëðñ/òøåê ñøèåï Flash',
+insert_flash_file : '÷åáõ Flash (.swf)',
+insert_flash_size : 'âåãì',
+insert_flash_list : '÷áöé ôìàù Flash',
+flash_props : 'îàôééðé Flash'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+insert_flash : 'Invoegen / wijzigen Flash Movie',
+insert_flash_file : 'Flash-Bestand (.swf)',
+insert_flash_size : 'Grootte'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+insert_flash : 'Wstaw/Edytuj animacje Flash',
+insert_flash_file : 'Plik Flash (.swf)',
+insert_flash_size : 'Rozmiar',
+insert_flash_list : 'Pliki Flash',
+flash_props : 'Wlasciwosci animacji Flash'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+insert_flash : 'Inserir / editar Arquivo Flash',
+insert_flash_file : 'Arquivo Flash (.swf)',
+insert_flash_size : 'Tamanho',
+insert_flash_list : 'Lista de arquivos Flash',
+flash_props : 'Propriedades Flash'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('flash',{
+title : 'Skapa/uppdatera flash-film',
+desc : 'Skapa/uppdatera flash-film',
+file : 'Flash-film (.swf)',
+size : 'Storlek',
+list : 'Flash-filer',
+props : 'Flash egenskaper',
+general : 'Generella inställningar'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+insert_flash : '²åÈë/±à¼ FlashµçÓ°',
+insert_flash_file : 'FlashÎļþ(.swf)',
+insert_flash_size : '³ß´ç',
+insert_flash_list : 'FlashÎļþÁбí',
+flash_props : 'FlashÊôÐÔ'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('fullscreen','en,sv,cs,fr_ca,zh_cn');function TinyMCE_fullscreen_getInfo(){return{longname:'Fullscreen',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_fullscreen.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_fullscreen_getControlHTML(control_name){switch(control_name){case "fullscreen":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFullScreen\');" onmousedown="return false;"><img id="{$editor_id}_fullscreen" src="{$pluginurl}/images/fullscreen.gif" title="{$lang_fullscreen_desc}" width="20" height="20" class="mceButton'+(tinyMCE.getParam('fullscreen_is_enabled')?'Selected':'Normal')+'" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_fullscreen_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceFullScreen":if(tinyMCE.getParam('fullscreen_is_enabled')){window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'),'mceSetContent',false,tinyMCE.getContent(editor_id));top.close();}else{tinyMCE.setWindowArg('editor_id',editor_id);var win=window.open(tinyMCE.baseURL+"/plugins/fullscreen/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);}return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('fullscreen', 'en,sv,cs,fr_ca,zh_cn');
+
+function TinyMCE_fullscreen_getInfo() {
+ return {
+ longname : 'Fullscreen',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_fullscreen.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_fullscreen_getControlHTML(control_name) {
+ switch (control_name) {
+ case "fullscreen":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFullScreen\');" onmousedown="return false;"><img id="{$editor_id}_fullscreen" src="{$pluginurl}/images/fullscreen.gif" title="{$lang_fullscreen_desc}" width="20" height="20" class="mceButton' + (tinyMCE.getParam('fullscreen_is_enabled') ? 'Selected' : 'Normal') + '" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+function TinyMCE_fullscreen_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceFullScreen":
+ if (tinyMCE.getParam('fullscreen_is_enabled')) {
+ // In fullscreen mode
+ window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'), 'mceSetContent', false, tinyMCE.getContent(editor_id));
+ top.close();
+ } else {
+ tinyMCE.setWindowArg('editor_id', editor_id);
+
+ var win = window.open(tinyMCE.baseURL + "/plugins/fullscreen/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+
--- /dev/null
+<html>
+<title></title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<script language="javascript" type="text/javascript" src="../../tiny_mce.js"></script>
+<script language="javascript" type="text/javascript">
+ function patchCallback(settings, key) {
+ if (settings[key])
+ settings[key] = "window.opener." + settings[key];
+ }
+
+ var settings = new Array();
+
+ // Clone array
+ for (var name in window.opener.tinyMCE.settings)
+ settings[name] = window.opener.tinyMCE.settings[name];
+
+ // Override options for fullscreen
+ for (var name in window.opener.tinyMCE.settings.fullscreen_settings)
+ settings[name] = window.opener.tinyMCE.settings.fullscreen_settings[name];
+
+ // Patch callbacks, make them point to window.opener
+ patchCallback(settings, 'urlconverter_callback');
+ patchCallback(settings, 'insertlink_callback');
+ patchCallback(settings, 'insertimage_callback');
+ patchCallback(settings, 'setupcontent_callback');
+ patchCallback(settings, 'save_callback');
+ patchCallback(settings, 'onchange_callback');
+ patchCallback(settings, 'init_instance_callback');
+ patchCallback(settings, 'file_browser_callback');
+ patchCallback(settings, 'cleanup_callback');
+ patchCallback(settings, 'oninit');
+
+ // Set options
+ settings['mode'] = 'exact';
+ settings['elements'] = 'fullscreenarea';
+ settings['ask'] = false;
+ settings['setupcontent_callback'] = 'setupContent';
+ settings['fullscreen_is_enabled'] = true;
+ settings['fullscreen_editor_id'] = window.opener.tinyMCE.getWindowArg("editor_id");
+ settings['theme_advanced_resizing'] = false;
+
+ // Init
+ tinyMCE.init(settings);
+ tinyMCE.documentBasePath = window.opener.tinyMCE.documentBasePath;
+
+ function setupContent(editor_id, body, doc) {
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var backInst = window.opener.tinyMCE.getInstanceById(tinyMCE.getParam('fullscreen_editor_id'));
+
+ // Setup title
+ var divElm = document.createElement("div");
+ divElm.innerHTML = tinyMCELang['lang_fullscreen_title'];
+ document.title = divElm.innerHTML;
+
+ // Get content
+ inst.getBody().innerHTML = backInst.getBody().innerHTML;
+ }
+
+ function unloadHandler(e) {
+ window.opener.tinyMCE.execInstanceCommand(tinyMCE.getParam('fullscreen_editor_id'), 'mceSetContent', false, tinyMCE.getContent("mce_editor_0"));
+ }
+
+ // Add onunload
+ tinyMCE.addEvent(window, "beforeunload", unloadHandler);
+</script>
+</head>
+<body style="margin: 0px; overflow: hidden; height: 100%" scrolling="no" scroll="no">
+
+<textarea id="fullscreenarea" style="width: 100%; height: 100%"></textarea>
+
+</body>
+</html>
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Na celou obrazovku',
+fullscreen_desc : 'Přepnout na celou obrazovku'
+});
+
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullscreen mode',
+fullscreen_desc : 'Toggle fullscreen mode'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Mode plein écran',
+fullscreen_desc : 'Basculer le mode plein écrans'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'îöá îñê îìà',
+fullscreen_desc : 'äçìó îöá îñê îìà'
+});
--- /dev/null
+// SV lang variables
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'Fullskärmsläge',
+fullscreen_desc : 'Hoppa från/till fullskärmsläge'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+fullscreen_title : 'È«ÆÁģʽ',
+fullscreen_desc : 'Çл»È«ÆÁģʽ'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('iespell','cs,el,en,fr_ca,it,ko,sv,zh_cn,fr,de,pl,pt_br,nl');function TinyMCE_iespell_getInfo(){return{longname:'IESpell',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_iespell.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_iespell_getControlHTML(control_name){if(control_name=="iespell"&&tinyMCE.isMSIE)return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceIESpell\');" onmousedown="return false;"><img id="{$editor_id}_iespell" src="{$pluginurl}/images/iespell.gif" title="{$lang_iespell_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';return "";}function TinyMCE_iespell_execCommand(editor_id,element,command,user_interface,value){if(command=="mceIESpell"){try{var ieSpell=new ActiveXObject("ieSpell.ieSpellExtension");ieSpell.CheckDocumentNode(tinyMCE.getInstanceById(editor_id).contentDocument.documentElement);}catch(e){if(e.number==-2146827859){if(confirm(tinyMCE.getLang("lang_iespell_download","",true)))window.open('http://www.iespell.com/download.php','ieSpellDownload','');}else alert("Error Loading ieSpell: Exception "+e.number);}return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('iespell', 'cs,el,en,fr_ca,it,ko,sv,zh_cn,fr,de,pl,pt_br,nl');
+
+function TinyMCE_iespell_getInfo() {
+ return {
+ longname : 'IESpell',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_iespell.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+/**
+ * Returns the HTML contents of the iespell control.
+ */
+function TinyMCE_iespell_getControlHTML(control_name) {
+ // Is it the iespell control and is the brower MSIE.
+ if (control_name == "iespell" && tinyMCE.isMSIE)
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceIESpell\');" onmousedown="return false;"><img id="{$editor_id}_iespell" src="{$pluginurl}/images/iespell.gif" title="{$lang_iespell_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+
+ return "";
+}
+
+/**
+ * Executes the mceIESpell command.
+ */
+function TinyMCE_iespell_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle ieSpellCommand
+ if (command == "mceIESpell") {
+ try {
+ var ieSpell = new ActiveXObject("ieSpell.ieSpellExtension");
+ ieSpell.CheckDocumentNode(tinyMCE.getInstanceById(editor_id).contentDocument.documentElement);
+ } catch (e) {
+ if (e.number == -2146827859) {
+ if (confirm(tinyMCE.getLang("lang_iespell_download", "", true)))
+ window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');
+ } else
+ alert("Error Loading ieSpell: Exception " + e.number);
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
\ No newline at end of file
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Spustit kontrolu pravopisu',
+iespell_download : "ieSpell nedetekován. Klikněte na OK a otevřete stahovací stránku."
+});
+
--- /dev/null
+// DE lang variables by Tobias Heer
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Rechtschreibprüfung',
+iespell_download : "ieSpell nicht gefunden. Klicken Sie OK um auf die Download Seite zu gelangen."
+});
+
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Ïñèïãñáöéêüò Ýëåã÷ïò',
+iespell_download : "Ôï ðñüãñáììá ieSpell äåí âñÝèçêå. ÐáôÞóôå OK ãéá íá ìåôáâåßôå óôçí éóôïóåëßäá ëÞøçò ôïõ ðñïãñÜììáôïò."
+});
+
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Run spell checking',
+iespell_download : "ieSpell not detected. Click OK to go to download page."
+});
+
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Executer le vérificateur d\'orthographe',
+iespell_download : "ieSpell n\'a pas été trouvé. Cliquez sur OK pour aller au site de téléchargement."
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Executer le vérificateur d\'orthographe',
+iespell_download : "ieSpell n\'a pas été trouvé. Cliquez sur OK pour aller au site de téléchargement."
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+iespell_desc : 'äôòì áãé÷ú àéåú',
+iespell_download : "ìà ðîöà ieSpell. ìçõ òì àéùåø ëãé ìäâéò ìãó ääåøãä."
+});
--- /dev/null
+// IT lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Avvia il controllo ortografico',
+iespell_download : "ieSpell non trovato. Clicca OK per andare alla pagina di download."
+});
+
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : '¸ÂÃã¹ý °Ë»ç ½ÇÇà',
+iespell_download : "ieSpellÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù. OK¸¦ ´©¸£¸é ´Ù¿î·Îµå ÆäÀÌÁö·Î À̵¿ÇÕ´Ï´Ù."
+});
+
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Spelling checker',
+iespell_download : "ieSpell niet gedetecteerd. Klik OK om naar de download pagina te gaan."
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Uruchom sprawdzanie pisowni',
+iespell_download : "Nie wykryto pluginu, kliknij aby przejsc do strony z pluginami."
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Executar verificação ortográfica',
+iespell_download : "Verificador ieSpell não detectado. Click OK para ir à página de download."
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+iespell_desc : 'Kör rättstavningskontroll',
+iespell_download : "ieSpell verkar inte vara installerad. Klicka OK för att ladda hem."
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+iespell_desc : 'ÔËÐÐƴд¼ì²é',
+iespell_download : "δ¼ì²âµ½ieSpellƴд¼ì²é£¬µã»÷ OK Ç°ÍùÏÂÔØÒ³Ãæ¡£"
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Window classes */
+
+.mceWindow {
+ position: absolute;
+ left: 0px;
+ top: 0px;
+ border: 1px solid black;
+ background-color: #D4D0C8;
+}
+
+.mceWindowHead {
+ background-color: #334F8D;
+ width: 100%;
+ height: 18px;
+ cursor: move;
+ overflow: hidden;
+}
+
+.mceWindowBody {
+ clear: both;
+ background-color: white;
+}
+
+.mceWindowStatusbar {
+ background-color: #D4D0C8;
+ height: 12px;
+ border-top: 1px solid black;
+}
+
+.mceWindowTitle {
+ float: left;
+ font-family: "MS Sans Serif";
+ font-size: 9pt;
+ font-weight: bold;
+ line-height: 18px;
+ color: white;
+ margin-left: 2px;
+ overflow: hidden;
+}
+
+.mceWindowHeadTools {
+ margin-right: 2px;
+}
+
+.mceWindowClose, .mceWindowMinimize, .mceWindowMaximize {
+ display: block;
+ float: right;
+ overflow: hidden;
+ margin-top: 2px;
+}
+
+.mceWindowClose {
+ margin-left: 2px;
+}
+
+.mceWindowMinimize {
+}
+
+.mceWindowMaximize {
+}
+
+.mceWindowResize {
+ display: block;
+ float: right;
+ overflow: hidden;
+ cursor: se-resize;
+ width: 12px;
+ height: 12px;
+}
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * Moxiecode DHTML Windows script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+ function TinyMCE_inlinepopups_getInfo(){return{longname:'Inline Popups',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_inlinepopups.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};TinyMCE.prototype.orgOpenWindow=TinyMCE.prototype.openWindow;TinyMCE.prototype.openWindow=function(template,args){if(args['inline']!="yes"){mcWindows.selectedWindow=null;args['mce_inside_iframe']=false;this.orgOpenWindow(template,args);return;}var url,resizable,scrollbars;args['mce_inside_iframe']=true;tinyMCE.windowArgs=args;if(template['file'].charAt(0)!='/'&&template['file'].indexOf('://')==-1)url=tinyMCE.baseURL+"/themes/"+tinyMCE.getParam("theme")+"/"+template['file'];else url=template['file'];if(!(width=parseInt(template['width'])))width=320;if(!(height=parseInt(template['height'])))height=200;resizable=(args&&args['resizable'])?args['resizable']:"no";scrollbars=(args&&args['scrollbars'])?args['scrollbars']:"no";height+=18;for(var name in args)url=tinyMCE.replaceVar(url,name,escape(args[name]));var elm=document.getElementById(this.selectedInstance.editorId+'_parent');var pos=tinyMCE.getAbsPosition(elm);pos.absLeft+=Math.round((elm.firstChild.clientWidth/2)-(width/2));pos.absTop+=Math.round((elm.firstChild.clientHeight/2)-(height/2));mcWindows.open(url,mcWindows.idCounter++,"modal=yes,width="+width+",height="+height+",resizable="+resizable+",scrollbars="+scrollbars+",statusbar="+resizable+",left="+pos.absLeft+",top="+pos.absTop);};TinyMCE.prototype.orgCloseWindow=TinyMCE.prototype.closeWindow;TinyMCE.prototype.closeWindow=function(win){if(mcWindows.selectedWindow!=null)mcWindows.selectedWindow.close();else this.orgCloseWindow(win);};TinyMCE.prototype.setWindowTitle=function(win_ref,title){for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(win_ref.name==win.id+"_iframe")window.frames[win.id+"_iframe"].document.getElementById(win.id+'_title').innerHTML=title;}};function MCWindows(){this.settings=new Array();this.windows=new Array();this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isGecko=navigator.userAgent.indexOf('Gecko')!=-1;this.isSafari=navigator.userAgent.indexOf('Safari')!=-1;this.isMac=navigator.userAgent.indexOf('Mac')!=-1;this.isMSIE5_0=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1);this.action="none";this.selectedWindow=null;this.lastSelectedWindow=null;this.zindex=100;this.mouseDownScreenX=0;this.mouseDownScreenY=0;this.mouseDownLayerX=0;this.mouseDownLayerY=0;this.mouseDownWidth=0;this.mouseDownHeight=0;this.idCounter=0;};MCWindows.prototype.init=function(settings){this.settings=settings;if(this.isMSIE)this.addEvent(document,"mousemove",mcWindows.eventDispatcher);else this.addEvent(window,"mousemove",mcWindows.eventDispatcher);this.addEvent(document,"mouseup",mcWindows.eventDispatcher);this.doc=document;};MCWindows.prototype.getParam=function(name,default_value){var value=null;value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");return value;};MCWindows.prototype.eventDispatcher=function(e){e=typeof(e)=="undefined"?window.event:e;if(mcWindows.selectedWindow==null)return;if(mcWindows.isGecko&&e.type=="mousedown"){var elm=e.currentTarget;for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(win.headElement==elm||win.resizeElement==elm){win.focus();break;}}}switch(e.type){case "mousemove":mcWindows.selectedWindow.onMouseMove(e);break;case "mouseup":mcWindows.selectedWindow.onMouseUp(e);break;case "mousedown":mcWindows.selectedWindow.onMouseDown(e);break;case "focus":mcWindows.selectedWindow.onFocus(e);break;}};MCWindows.prototype.addEvent=function(obj,name,handler){if(this.isMSIE)obj.attachEvent("on"+name,handler);else obj.addEventListener(name,handler,true);};MCWindows.prototype.cancelEvent=function(e){if(this.isMSIE){e.returnValue=false;e.cancelBubble=true;}else e.preventDefault();};MCWindows.prototype.parseFeatures=function(opts){opts=opts.toLowerCase();opts=opts.replace(/;/g,",");opts=opts.replace(/[^0-9a-z=,]/g,"");var optionChunks=opts.split(',');var options=new Array();options['left']="10";options['top']="10";options['width']="300";options['height']="300";options['resizable']="yes";options['minimizable']="yes";options['maximizable']="yes";options['close']="yes";options['movable']="yes";options['statusbar']="yes";options['scrollbars']="auto";options['modal']="no";if(opts=="")return options;for(var i=0;i<optionChunks.length;i++){var parts=optionChunks[i].split('=');if(parts.length==2)options[parts[0]]=parts[1];}options['left']=parseInt(options['left']);options['top']=parseInt(options['top']);options['width']=parseInt(options['width']);options['height']=parseInt(options['height']);return options;};MCWindows.prototype.open=function(url,name,features){this.lastSelectedWindow=this.selectedWindow;var win=new MCWindow();var winDiv,html="",id;var imgPath=this.getParam("images_path");features=this.parseFeatures(features);id="mcWindow_"+name;win.deltaHeight=18;if(features['statusbar']=="yes"){win.deltaHeight+=13;if(this.isMSIE)win.deltaHeight+=1;}width=parseInt(features['width']);height=parseInt(features['height'])-win.deltaHeight;if(this.isMSIE)width-=2;win.id=id;win.url=url;win.name=name;win.features=features;this.windows[name]=win;iframeWidth=width;iframeHeight=height;html+='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';html+='<html>';html+='<head>';html+='<title>Wrapper iframe</title>';html+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';html+='<link href="'+this.getParam("css_file")+'" rel="stylesheet" type="text/css" />';html+='</head>';html+='<body onload="parent.mcWindows.onLoad(\''+name+'\');">';html+='<div id="'+id+'_container" class="mceWindow">';html+='<div id="'+id+'_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\''+name+'\'].focus();">';html+=' <div id="'+id+'_title" class="mceWindowTitle"';html+=' onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;"></div>';html+=' <div class="mceWindowHeadTools">';html+=' <a href="javascript:parent.mcWindows.windows[\''+name+'\'].close();" onmousedown="return false;" class="mceWindowClose"><img border="0" src="'+imgPath+'/window_close.gif" /></a>';html+=' </div>';html+='</div><div id="'+id+'_body" class="mceWindowBody" style="width: '+width+'px; height: '+height+'px;">';html+='<iframe id="'+id+'_iframe" name="'+id+'_iframe" frameborder="0" width="'+iframeWidth+'" height="'+iframeHeight+'" src="'+url+'" class="mceWindowBodyIframe" scrolling="'+features['scrollbars']+'"></iframe></div>';if(features['statusbar']=="yes"){html+='<div id="'+id+'_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\''+name+'\'].focus();">';if(features['resizable']=="yes"){if(this.isGecko)html+='<div id="'+id+'_resize" class="mceWindowResize"><div style="background-image: url(\''+imgPath+'/window_resize.gif\'); width: 12px; height: 12px;"></div></div>';else html+='<div id="'+id+'_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\''+name+'\'].focus();" border="0" src="'+imgPath+'/window_resize.gif" /></div>';}html+='</div>';}html+='</div>';html+='</body>';html+='</html>';this.createFloatingIFrame(id,features['left'],features['top'],features['width'],features['height'],html);};MCWindows.prototype.setDocumentLock=function(state){if(state){var elm=document.getElementById('mcWindowEventBlocker');if(elm==null){elm=document.createElement("div");elm.id="mcWindowEventBlocker";elm.style.position="absolute";elm.style.left="0px";elm.style.top="0px";document.body.appendChild(elm);}elm.style.display="none";var imgPath=this.getParam("images_path");var width=document.body.clientWidth;var height=document.body.clientHeight;elm.style.width=width;elm.style.height=height;elm.innerHTML='<img src="'+imgPath+'/spacer.gif" width="'+width+'" height="'+height+'" />';elm.style.zIndex=mcWindows.zindex-1;elm.style.display="block";}else{var elm=document.getElementById('mcWindowEventBlocker');if(mcWindows.windows.length==0)elm.parentNode.removeChild(elm);else elm.style.zIndex=mcWindows.zindex-1;}};MCWindows.prototype.onLoad=function(name){var win=mcWindows.windows[name];var id="mcWindow_"+name;var wrapperIframe=window.frames[id+"_iframe"].frames[0];var wrapperDoc=window.frames[id+"_iframe"].document;var doc=window.frames[id+"_iframe"].document;var winDiv=document.getElementById("mcWindow_"+name+"_div");var realIframe=window.frames[id+"_iframe"].frames[0];win.id="mcWindow_"+name;win.winElement=winDiv;win.bodyElement=doc.getElementById(id+'_body');win.iframeElement=doc.getElementById(id+'_iframe');win.headElement=doc.getElementById(id+'_head');win.titleElement=doc.getElementById(id+'_title');win.resizeElement=doc.getElementById(id+'_resize');win.containerElement=doc.getElementById(id+'_container');win.left=win.features['left'];win.top=win.features['top'];win.frame=window.frames[id+'_iframe'].frames[0];win.wrapperFrame=window.frames[id+'_iframe'];win.wrapperIFrameElement=document.getElementById(id+"_iframe");mcWindows.addEvent(win.headElement,"mousedown",mcWindows.eventDispatcher);if(win.resizeElement!=null)mcWindows.addEvent(win.resizeElement,"mousedown",mcWindows.eventDispatcher);if(mcWindows.isMSIE){mcWindows.addEvent(realIframe.document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe.document,"mouseup",mcWindows.eventDispatcher);}else{mcWindows.addEvent(realIframe,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe,"mouseup",mcWindows.eventDispatcher);mcWindows.addEvent(realIframe,"focus",mcWindows.eventDispatcher);}for(var i=0;i<window.frames.length;i++){if(!window.frames[i]._hasMouseHandlers){if(mcWindows.isMSIE){mcWindows.addEvent(window.frames[i].document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(window.frames[i].document,"mouseup",mcWindows.eventDispatcher);}else{mcWindows.addEvent(window.frames[i],"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(window.frames[i],"mouseup",mcWindows.eventDispatcher);}window.frames[i]._hasMouseHandlers=true;}}if(mcWindows.isMSIE){mcWindows.addEvent(win.frame.document,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(win.frame.document,"mouseup",mcWindows.eventDispatcher);}else{mcWindows.addEvent(win.frame,"mousemove",mcWindows.eventDispatcher);mcWindows.addEvent(win.frame,"mouseup",mcWindows.eventDispatcher);mcWindows.addEvent(win.frame,"focus",mcWindows.eventDispatcher);}var func=this.getParam("on_open_window","");if(func!="")eval(func+"(win);");win.focus();if(win.features['modal']=="yes")mcWindows.setDocumentLock(true);};MCWindows.prototype.createFloatingIFrame=function(id_prefix,left,top,width,height,html){var iframe=document.createElement("iframe");var div=document.createElement("div");width=parseInt(width);height=parseInt(height)+1;div.setAttribute("id",id_prefix+"_div");div.setAttribute("width",width);div.setAttribute("height",(height));div.style.position="absolute";div.style.left=left+"px";div.style.top=top+"px";div.style.width=width+"px";div.style.height=(height)+"px";div.style.backgroundColor="white";div.style.display="none";if(this.isGecko){iframeWidth=width+2;iframeHeight=height+2;}else{iframeWidth=width;iframeHeight=height+1;}iframe.setAttribute("id",id_prefix+"_iframe");iframe.setAttribute("name",id_prefix+"_iframe");iframe.setAttribute("border","0");iframe.setAttribute("frameBorder","0");iframe.setAttribute("marginWidth","0");iframe.setAttribute("marginHeight","0");iframe.setAttribute("leftMargin","0");iframe.setAttribute("topMargin","0");iframe.setAttribute("width",iframeWidth);iframe.setAttribute("height",iframeHeight);iframe.setAttribute("scrolling","no");iframe.style.width=iframeWidth+"px";iframe.style.height=iframeHeight+"px";iframe.style.backgroundColor="white";div.appendChild(iframe);document.body.appendChild(div);div.innerHTML=div.innerHTML;if(this.isSafari){window.setTimeout(function(){doc=window.frames[id_prefix+'_iframe'].document;doc.open();doc.write(html);doc.close();},10);}else{doc=window.frames[id_prefix+'_iframe'].window.document;doc.open();doc.write(html);doc.close();}div.style.display="block";return div;};function MCWindow(){};MCWindow.prototype.focus=function(){if(this!=mcWindows.selectedWindow){this.winElement.style.zIndex=++mcWindows.zindex;mcWindows.lastSelectedWindow=mcWindows.selectedWindow;mcWindows.selectedWindow=this;}};MCWindow.prototype.minimize=function(){};MCWindow.prototype.maximize=function(){};MCWindow.prototype.startResize=function(){mcWindows.action="resize";};MCWindow.prototype.startMove=function(e){mcWindows.action="move";};MCWindow.prototype.close=function(){if(mcWindows.lastSelectedWindow!=null)mcWindows.lastSelectedWindow.focus();var mcWindowsNew=new Array();for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(win.name!=this.name)mcWindowsNew[n]=win;}mcWindows.windows=mcWindowsNew;var e=mcWindows.doc.getElementById(this.id+"_iframe");e.parentNode.removeChild(e);var e=mcWindows.doc.getElementById(this.id+"_div");e.parentNode.removeChild(e);mcWindows.setDocumentLock(false);};MCWindow.prototype.onMouseMove=function(e){var scrollX=0;var scrollY=0;var dx=e.screenX-mcWindows.mouseDownScreenX;var dy=e.screenY-mcWindows.mouseDownScreenY;switch(mcWindows.action){case "resize":width=mcWindows.mouseDownWidth+(e.screenX-mcWindows.mouseDownScreenX);height=mcWindows.mouseDownHeight+(e.screenY-mcWindows.mouseDownScreenY);width=width<100?100:width;height=height<100?100:height;this.wrapperIFrameElement.style.width=width+2;this.wrapperIFrameElement.style.height=height+2;this.wrapperIFrameElement.width=width+2;this.wrapperIFrameElement.height=height+2;this.winElement.style.width=width;this.winElement.style.height=height;height=height-this.deltaHeight;this.containerElement.style.width=width;this.iframeElement.style.width=width;this.iframeElement.style.height=height;this.bodyElement.style.width=width;this.bodyElement.style.height=height;this.headElement.style.width=width;mcWindows.cancelEvent(e);break;case "move":this.left=mcWindows.mouseDownLayerX+(e.screenX-mcWindows.mouseDownScreenX);this.top=mcWindows.mouseDownLayerY+(e.screenY-mcWindows.mouseDownScreenY);this.winElement.style.left=this.left+"px";this.winElement.style.top=this.top+"px";mcWindows.cancelEvent(e);break;}};function debug(msg){document.getElementById('debug').value+=msg+"\n";}MCWindow.prototype.onMouseUp=function(e){mcWindows.action="none";};MCWindow.prototype.onFocus=function(e){var winRef=e.currentTarget;for(var n in mcWindows.windows){var win=mcWindows.windows[n];if(winRef.name==win.id+"_iframe"){win.focus();return;}}};MCWindow.prototype.onMouseDown=function(e){var elm=mcWindows.isMSIE?this.wrapperFrame.event.srcElement:e.target;var scrollX=0;var scrollY=0;mcWindows.mouseDownScreenX=e.screenX;mcWindows.mouseDownScreenY=e.screenY;mcWindows.mouseDownLayerX=this.left;mcWindows.mouseDownLayerY=this.top;mcWindows.mouseDownWidth=parseInt(this.winElement.style.width);mcWindows.mouseDownHeight=parseInt(this.winElement.style.height);if(this.resizeElement!=null&&elm==this.resizeElement.firstChild)this.startResize(e);else this.startMove(e);mcWindows.cancelEvent(e);};var mcWindows=new MCWindows();mcWindows.init({images_path:tinyMCE.baseURL+"/plugins/inlinepopups/images",css_file:tinyMCE.baseURL+"/plugins/inlinepopups/css/inlinepopup.css"});
\ No newline at end of file
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * Moxiecode DHTML Windows script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+
+// Patch openWindow, closeWindow TinyMCE functions
+
+function TinyMCE_inlinepopups_getInfo() {
+ return {
+ longname : 'Inline Popups',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_inlinepopups.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+TinyMCE.prototype.orgOpenWindow = TinyMCE.prototype.openWindow;
+
+TinyMCE.prototype.openWindow = function(template, args) {
+ // Does the caller support inline
+ if (args['inline'] != "yes") {
+ mcWindows.selectedWindow = null;
+ args['mce_inside_iframe'] = false;
+ this.orgOpenWindow(template, args);
+ return;
+ }
+
+ var url, resizable, scrollbars;
+
+ args['mce_inside_iframe'] = true;
+ tinyMCE.windowArgs = args;
+
+ if (template['file'].charAt(0) != '/' && template['file'].indexOf('://') == -1)
+ url = tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + "/" + template['file'];
+ else
+ url = template['file'];
+
+ if (!(width = parseInt(template['width'])))
+ width = 320;
+
+ if (!(height = parseInt(template['height'])))
+ height = 200;
+
+ resizable = (args && args['resizable']) ? args['resizable'] : "no";
+ scrollbars = (args && args['scrollbars']) ? args['scrollbars'] : "no";
+
+ height += 18;
+
+ // Replace all args as variables in URL
+ for (var name in args)
+ url = tinyMCE.replaceVar(url, name, escape(args[name]));
+
+ var elm = document.getElementById(this.selectedInstance.editorId + '_parent');
+ var pos = tinyMCE.getAbsPosition(elm);
+
+ // Center div in editor area
+ pos.absLeft += Math.round((elm.firstChild.clientWidth / 2) - (width / 2));
+ pos.absTop += Math.round((elm.firstChild.clientHeight / 2) - (height / 2));
+
+ mcWindows.open(url, mcWindows.idCounter++, "modal=yes,width=" + width+ ",height=" + height + ",resizable=" + resizable + ",scrollbars=" + scrollbars + ",statusbar=" + resizable + ",left=" + pos.absLeft + ",top=" + pos.absTop);
+};
+
+TinyMCE.prototype.orgCloseWindow = TinyMCE.prototype.closeWindow;
+
+TinyMCE.prototype.closeWindow = function(win) {
+ if (mcWindows.selectedWindow != null)
+ mcWindows.selectedWindow.close();
+ else
+ this.orgCloseWindow(win);
+};
+
+TinyMCE.prototype.setWindowTitle = function(win_ref, title) {
+ for (var n in mcWindows.windows) {
+ var win = mcWindows.windows[n];
+
+ if (win_ref.name == win.id + "_iframe")
+ window.frames[win.id + "_iframe"].document.getElementById(win.id + '_title').innerHTML = title;
+ }
+};
+
+// * * * * * MCWindows classes below
+
+// Windows handler
+function MCWindows() {
+ this.settings = new Array();
+ this.windows = new Array();
+ this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+ this.isGecko = navigator.userAgent.indexOf('Gecko') != -1;
+ this.isSafari = navigator.userAgent.indexOf('Safari') != -1;
+ this.isMac = navigator.userAgent.indexOf('Mac') != -1;
+ this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1);
+ this.action = "none";
+ this.selectedWindow = null;
+ this.lastSelectedWindow = null;
+ this.zindex = 100;
+ this.mouseDownScreenX = 0;
+ this.mouseDownScreenY = 0;
+ this.mouseDownLayerX = 0;
+ this.mouseDownLayerY = 0;
+ this.mouseDownWidth = 0;
+ this.mouseDownHeight = 0;
+ this.idCounter = 0;
+};
+
+MCWindows.prototype.init = function(settings) {
+ this.settings = settings;
+
+ if (this.isMSIE)
+ this.addEvent(document, "mousemove", mcWindows.eventDispatcher);
+ else
+ this.addEvent(window, "mousemove", mcWindows.eventDispatcher);
+
+ this.addEvent(document, "mouseup", mcWindows.eventDispatcher);
+
+ this.doc = document;
+};
+
+MCWindows.prototype.getParam = function(name, default_value) {
+ var value = null;
+
+ value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+ // Fix bool values
+ if (value == "true" || value == "false")
+ return (value == "true");
+
+ return value;
+};
+
+MCWindows.prototype.eventDispatcher = function(e) {
+ e = typeof(e) == "undefined" ? window.event : e;
+
+ if (mcWindows.selectedWindow == null)
+ return;
+
+ // Switch focus
+ if (mcWindows.isGecko && e.type == "mousedown") {
+ var elm = e.currentTarget;
+
+ for (var n in mcWindows.windows) {
+ var win = mcWindows.windows[n];
+
+ if (win.headElement == elm || win.resizeElement == elm) {
+ win.focus();
+ break;
+ }
+ }
+ }
+
+ switch (e.type) {
+ case "mousemove":
+ mcWindows.selectedWindow.onMouseMove(e);
+ break;
+
+ case "mouseup":
+ mcWindows.selectedWindow.onMouseUp(e);
+ break;
+
+ case "mousedown":
+ mcWindows.selectedWindow.onMouseDown(e);
+ break;
+
+ case "focus":
+ mcWindows.selectedWindow.onFocus(e);
+ break;
+ }
+};
+
+MCWindows.prototype.addEvent = function(obj, name, handler) {
+ if (this.isMSIE)
+ obj.attachEvent("on" + name, handler);
+ else
+ obj.addEventListener(name, handler, true);
+};
+
+MCWindows.prototype.cancelEvent = function(e) {
+ if (this.isMSIE) {
+ e.returnValue = false;
+ e.cancelBubble = true;
+ } else
+ e.preventDefault();
+};
+
+MCWindows.prototype.parseFeatures = function(opts) {
+ // Cleanup the options
+ opts = opts.toLowerCase();
+ opts = opts.replace(/;/g, ",");
+ opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+ var optionChunks = opts.split(',');
+ var options = new Array();
+
+ options['left'] = "10";
+ options['top'] = "10";
+ options['width'] = "300";
+ options['height'] = "300";
+ options['resizable'] = "yes";
+ options['minimizable'] = "yes";
+ options['maximizable'] = "yes";
+ options['close'] = "yes";
+ options['movable'] = "yes";
+ options['statusbar'] = "yes";
+ options['scrollbars'] = "auto";
+ options['modal'] = "no";
+
+ if (opts == "")
+ return options;
+
+ for (var i=0; i<optionChunks.length; i++) {
+ var parts = optionChunks[i].split('=');
+
+ if (parts.length == 2)
+ options[parts[0]] = parts[1];
+ }
+
+ options['left'] = parseInt(options['left']);
+ options['top'] = parseInt(options['top']);
+ options['width'] = parseInt(options['width']);
+ options['height'] = parseInt(options['height']);
+
+ return options;
+};
+
+MCWindows.prototype.open = function(url, name, features) {
+ this.lastSelectedWindow = this.selectedWindow;
+
+ var win = new MCWindow();
+ var winDiv, html = "", id;
+ var imgPath = this.getParam("images_path");
+
+ features = this.parseFeatures(features);
+
+ // Create div
+ id = "mcWindow_" + name;
+ win.deltaHeight = 18;
+
+ if (features['statusbar'] == "yes") {
+ win.deltaHeight += 13;
+
+ if (this.isMSIE)
+ win.deltaHeight += 1;
+ }
+
+ width = parseInt(features['width']);
+ height = parseInt(features['height'])-win.deltaHeight;
+
+ if (this.isMSIE)
+ width -= 2;
+
+ // Setup first part of window
+ win.id = id;
+ win.url = url;
+ win.name = name;
+ win.features = features;
+ this.windows[name] = win;
+
+ iframeWidth = width;
+ iframeHeight = height;
+
+ // Create inner content
+ html += '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
+ html += '<html>';
+ html += '<head>';
+ html += '<title>Wrapper iframe</title>';
+ html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
+ html += '<link href="' + this.getParam("css_file") + '" rel="stylesheet" type="text/css" />';
+ html += '</head>';
+ html += '<body onload="parent.mcWindows.onLoad(\'' + name + '\');">';
+
+ html += '<div id="' + id + '_container" class="mceWindow">';
+ html += '<div id="' + id + '_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+ html += ' <div id="' + id + '_title" class="mceWindowTitle"';
+ html += ' onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;"></div>';
+ html += ' <div class="mceWindowHeadTools">';
+ html += ' <a href="javascript:parent.mcWindows.windows[\'' + name + '\'].close();" onmousedown="return false;" class="mceWindowClose"><img border="0" src="' + imgPath + '/window_close.gif" /></a>';
+// html += ' <a href="javascript:mcWindows.windows[\'' + name + '\'].maximize();" onmousedown="return false;" class="mceWindowMaximize"></a>';
+// html += ' <a href="javascript:mcWindows.windows[\'' + name + '\'].minimize();" onmousedown="return false;" class="mceWindowMinimize"></a>';
+ html += ' </div>';
+ html += '</div><div id="' + id + '_body" class="mceWindowBody" style="width: ' + width + 'px; height: ' + height + 'px;">';
+ html += '<iframe id="' + id + '_iframe" name="' + id + '_iframe" frameborder="0" width="' + iframeWidth + '" height="' + iframeHeight + '" src="' + url + '" class="mceWindowBodyIframe" scrolling="' + features['scrollbars'] + '"></iframe></div>';
+
+ if (features['statusbar'] == "yes") {
+ html += '<div id="' + id + '_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+
+ if (features['resizable'] == "yes") {
+ if (this.isGecko)
+ html += '<div id="' + id + '_resize" class="mceWindowResize"><div style="background-image: url(\'' + imgPath + '/window_resize.gif\'); width: 12px; height: 12px;"></div></div>';
+ else
+ html += '<div id="' + id + '_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();" border="0" src="' + imgPath + '/window_resize.gif" /></div>';
+ }
+
+ html += '</div>';
+ }
+
+ html += '</div>';
+
+ html += '</body>';
+ html += '</html>';
+
+ // Create iframe
+ this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html);
+};
+
+// Blocks the document events by placing a image over the whole document
+MCWindows.prototype.setDocumentLock = function(state) {
+ if (state) {
+ var elm = document.getElementById('mcWindowEventBlocker');
+ if (elm == null) {
+ elm = document.createElement("div");
+
+ elm.id = "mcWindowEventBlocker";
+ elm.style.position = "absolute";
+ elm.style.left = "0px";
+ elm.style.top = "0px";
+
+ document.body.appendChild(elm);
+ }
+
+ elm.style.display = "none";
+
+ var imgPath = this.getParam("images_path");
+ var width = document.body.clientWidth;
+ var height = document.body.clientHeight;
+
+ elm.style.width = width;
+ elm.style.height = height;
+ elm.innerHTML = '<img src="' + imgPath + '/spacer.gif" width="' + width + '" height="' + height + '" />';
+
+ elm.style.zIndex = mcWindows.zindex-1;
+ elm.style.display = "block";
+ } else {
+ var elm = document.getElementById('mcWindowEventBlocker');
+
+ if (mcWindows.windows.length == 0)
+ elm.parentNode.removeChild(elm);
+ else
+ elm.style.zIndex = mcWindows.zindex-1;
+ }
+};
+
+// Gets called when wrapper iframe is initialized
+MCWindows.prototype.onLoad = function(name) {
+ var win = mcWindows.windows[name];
+ var id = "mcWindow_" + name;
+ var wrapperIframe = window.frames[id + "_iframe"].frames[0];
+ var wrapperDoc = window.frames[id + "_iframe"].document;
+ var doc = window.frames[id + "_iframe"].document;
+ var winDiv = document.getElementById("mcWindow_" + name + "_div");
+ var realIframe = window.frames[id + "_iframe"].frames[0];
+
+ // Set window data
+ win.id = "mcWindow_" + name;
+ win.winElement = winDiv;
+ win.bodyElement = doc.getElementById(id + '_body');
+ win.iframeElement = doc.getElementById(id + '_iframe');
+ win.headElement = doc.getElementById(id + '_head');
+ win.titleElement = doc.getElementById(id + '_title');
+ win.resizeElement = doc.getElementById(id + '_resize');
+ win.containerElement = doc.getElementById(id + '_container');
+ win.left = win.features['left'];
+ win.top = win.features['top'];
+ win.frame = window.frames[id + '_iframe'].frames[0];
+ win.wrapperFrame = window.frames[id + '_iframe'];
+ win.wrapperIFrameElement = document.getElementById(id + "_iframe");
+
+ // Add event handlers
+ mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher);
+
+ if (win.resizeElement != null)
+ mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher);
+
+ if (mcWindows.isMSIE) {
+ mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher);
+ } else {
+ mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher);
+ mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher);
+ }
+
+ for (var i=0; i<window.frames.length; i++) {
+ if (!window.frames[i]._hasMouseHandlers) {
+ if (mcWindows.isMSIE) {
+ mcWindows.addEvent(window.frames[i].document, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(window.frames[i].document, "mouseup", mcWindows.eventDispatcher);
+ } else {
+ mcWindows.addEvent(window.frames[i], "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(window.frames[i], "mouseup", mcWindows.eventDispatcher);
+ }
+
+ window.frames[i]._hasMouseHandlers = true;
+ }
+ }
+
+ if (mcWindows.isMSIE) {
+ mcWindows.addEvent(win.frame.document, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.frame.document, "mouseup", mcWindows.eventDispatcher);
+ } else {
+ mcWindows.addEvent(win.frame, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.frame, "mouseup", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.frame, "focus", mcWindows.eventDispatcher);
+ }
+
+ // Dispatch open window event
+ var func = this.getParam("on_open_window", "");
+ if (func != "")
+ eval(func + "(win);");
+
+ win.focus();
+
+ if (win.features['modal'] == "yes")
+ mcWindows.setDocumentLock(true);
+};
+
+MCWindows.prototype.createFloatingIFrame = function(id_prefix, left, top, width, height, html) {
+ var iframe = document.createElement("iframe");
+ var div = document.createElement("div");
+
+ width = parseInt(width);
+ height = parseInt(height)+1;
+
+ // Create wrapper div
+ div.setAttribute("id", id_prefix + "_div");
+ div.setAttribute("width", width);
+ div.setAttribute("height", (height));
+ div.style.position = "absolute";
+ div.style.left = left + "px";
+ div.style.top = top + "px";
+ div.style.width = width + "px";
+ div.style.height = (height) + "px";
+ div.style.backgroundColor = "white";
+ div.style.display = "none";
+
+ if (this.isGecko) {
+ iframeWidth = width + 2;
+ iframeHeight = height + 2;
+ } else {
+ iframeWidth = width;
+ iframeHeight = height + 1;
+ }
+
+ // Create iframe
+ iframe.setAttribute("id", id_prefix + "_iframe");
+ iframe.setAttribute("name", id_prefix + "_iframe");
+ iframe.setAttribute("border", "0");
+ iframe.setAttribute("frameBorder", "0");
+ iframe.setAttribute("marginWidth", "0");
+ iframe.setAttribute("marginHeight", "0");
+ iframe.setAttribute("leftMargin", "0");
+ iframe.setAttribute("topMargin", "0");
+ iframe.setAttribute("width", iframeWidth);
+ iframe.setAttribute("height", iframeHeight);
+// iframe.setAttribute("src", "../jscripts/tiny_mce/blank.htm");
+ // iframe.setAttribute("allowtransparency", "false");
+ iframe.setAttribute("scrolling", "no");
+ iframe.style.width = iframeWidth + "px";
+ iframe.style.height = iframeHeight + "px";
+ iframe.style.backgroundColor = "white";
+ div.appendChild(iframe);
+
+ document.body.appendChild(div);
+
+ // Fixed MSIE 5.0 issue
+ div.innerHTML = div.innerHTML;
+
+ if (this.isSafari) {
+ // Give Safari some time to setup
+ window.setTimeout(function() {
+ doc = window.frames[id_prefix + '_iframe'].document;
+ doc.open();
+ doc.write(html);
+ doc.close();
+ }, 10);
+ } else {
+ doc = window.frames[id_prefix + '_iframe'].window.document;
+ doc.open();
+ doc.write(html);
+ doc.close();
+ }
+
+ div.style.display = "block";
+
+ return div;
+};
+
+// Window instance
+function MCWindow() {
+};
+
+MCWindow.prototype.focus = function() {
+ if (this != mcWindows.selectedWindow) {
+ this.winElement.style.zIndex = ++mcWindows.zindex;
+ mcWindows.lastSelectedWindow = mcWindows.selectedWindow;
+ mcWindows.selectedWindow = this;
+ }
+};
+
+MCWindow.prototype.minimize = function() {
+};
+
+MCWindow.prototype.maximize = function() {
+
+};
+
+MCWindow.prototype.startResize = function() {
+ mcWindows.action = "resize";
+};
+
+MCWindow.prototype.startMove = function(e) {
+ mcWindows.action = "move";
+};
+
+MCWindow.prototype.close = function() {
+ if (mcWindows.lastSelectedWindow != null)
+ mcWindows.lastSelectedWindow.focus();
+
+ var mcWindowsNew = new Array();
+ for (var n in mcWindows.windows) {
+ var win = mcWindows.windows[n];
+
+ if (win.name != this.name)
+ mcWindowsNew[n] = win;
+ }
+
+ mcWindows.windows = mcWindowsNew;
+
+// alert(mcWindows.doc.getElementById(this.id + "_iframe"));
+
+ var e = mcWindows.doc.getElementById(this.id + "_iframe");
+ e.parentNode.removeChild(e);
+
+ var e = mcWindows.doc.getElementById(this.id + "_div");
+ e.parentNode.removeChild(e);
+
+ mcWindows.setDocumentLock(false);
+};
+
+MCWindow.prototype.onMouseMove = function(e) {
+ var scrollX = 0;//this.doc.body.scrollLeft;
+ var scrollY = 0;//this.doc.body.scrollTop;
+
+ // Calculate real X, Y
+ var dx = e.screenX - mcWindows.mouseDownScreenX;
+ var dy = e.screenY - mcWindows.mouseDownScreenY;
+
+ switch (mcWindows.action) {
+ case "resize":
+ width = mcWindows.mouseDownWidth + (e.screenX - mcWindows.mouseDownScreenX);
+ height = mcWindows.mouseDownHeight + (e.screenY - mcWindows.mouseDownScreenY);
+
+ width = width < 100 ? 100 : width;
+ height = height < 100 ? 100 : height;
+
+ this.wrapperIFrameElement.style.width = width+2;
+ this.wrapperIFrameElement.style.height = height+2;
+ this.wrapperIFrameElement.width = width+2;
+ this.wrapperIFrameElement.height = height+2;
+ this.winElement.style.width = width;
+ this.winElement.style.height = height;
+
+ height = height - this.deltaHeight;
+
+ this.containerElement.style.width = width;
+
+ this.iframeElement.style.width = width;
+ this.iframeElement.style.height = height;
+ this.bodyElement.style.width = width;
+ this.bodyElement.style.height = height;
+ this.headElement.style.width = width;
+ //this.statusElement.style.width = width;
+
+ mcWindows.cancelEvent(e);
+ break;
+
+ case "move":
+ this.left = mcWindows.mouseDownLayerX + (e.screenX - mcWindows.mouseDownScreenX);
+ this.top = mcWindows.mouseDownLayerY + (e.screenY - mcWindows.mouseDownScreenY);
+ this.winElement.style.left = this.left + "px";
+ this.winElement.style.top = this.top + "px";
+
+ mcWindows.cancelEvent(e);
+ break;
+ }
+};
+
+function debug(msg) {
+ document.getElementById('debug').value += msg + "\n";
+}
+
+MCWindow.prototype.onMouseUp = function(e) {
+ mcWindows.action = "none";
+};
+
+MCWindow.prototype.onFocus = function(e) {
+ // Gecko only handler
+ var winRef = e.currentTarget;
+
+ for (var n in mcWindows.windows) {
+ var win = mcWindows.windows[n];
+
+ if (winRef.name == win.id + "_iframe") {
+ win.focus();
+ return;
+ }
+ }
+};
+
+MCWindow.prototype.onMouseDown = function(e) {
+ var elm = mcWindows.isMSIE ? this.wrapperFrame.event.srcElement : e.target;
+
+ var scrollX = 0;//this.doc.body.scrollLeft;
+ var scrollY = 0;//this.doc.body.scrollTop;
+
+ mcWindows.mouseDownScreenX = e.screenX;
+ mcWindows.mouseDownScreenY = e.screenY;
+ mcWindows.mouseDownLayerX = this.left;
+ mcWindows.mouseDownLayerY = this.top;
+ mcWindows.mouseDownWidth = parseInt(this.winElement.style.width);
+ mcWindows.mouseDownHeight = parseInt(this.winElement.style.height);
+
+ if (this.resizeElement != null && elm == this.resizeElement.firstChild)
+ this.startResize(e);
+ else
+ this.startMove(e);
+
+ mcWindows.cancelEvent(e);
+};
+
+// Global instance
+var mcWindows = new MCWindows();
+
+// Initialize windows
+mcWindows.init({
+ images_path : tinyMCE.baseURL + "/plugins/inlinepopups/images",
+ css_file : tinyMCE.baseURL + "/plugins/inlinepopups/css/inlinepopup.css"
+});
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * Moxiecode DHTML Windows script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+
+// Windows handler
+function MCWindows() {
+ this.settings = new Array();
+ this.windows = new Array();
+ this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+ this.isGecko = navigator.userAgent.indexOf('Gecko') != -1;
+ this.isSafari = navigator.userAgent.indexOf('Safari') != -1;
+ this.isMac = navigator.userAgent.indexOf('Mac') != -1;
+ this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1);
+ this.action = "none";
+ this.selectedWindow = null;
+ this.zindex = 100;
+ this.mouseDownScreenX = 0;
+ this.mouseDownScreenY = 0;
+ this.mouseDownLayerX = 0;
+ this.mouseDownLayerY = 0;
+ this.mouseDownWidth = 0;
+ this.mouseDownHeight = 0;
+};
+
+MCWindows.prototype.init = function(settings) {
+ this.settings = settings;
+
+ if (this.isMSIE)
+ this.addEvent(document, "mousemove", mcWindows.eventDispatcher);
+ else
+ this.addEvent(window, "mousemove", mcWindows.eventDispatcher);
+
+ this.addEvent(document, "mouseup", mcWindows.eventDispatcher);
+};
+
+MCWindows.prototype.getParam = function(name, default_value) {
+ var value = null;
+
+ value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+ // Fix bool values
+ if (value == "true" || value == "false")
+ return (value == "true");
+
+ return value;
+};
+
+MCWindows.prototype.eventDispatcher = function(e) {
+ e = typeof(e) == "undefined" ? window.event : e;
+
+ if (mcWindows.selectedWindow == null)
+ return;
+
+ // Switch focus
+ if (mcWindows.isGecko && e.type == "mousedown") {
+ var elm = e.currentTarget;
+
+ for (var n in mcWindows.windows) {
+ var win = mcWindows.windows[n];
+
+ if (win.headElement == elm || win.resizeElement == elm) {
+ win.focus();
+ break;
+ }
+ }
+ }
+
+ switch (e.type) {
+ case "mousemove":
+ mcWindows.selectedWindow.onMouseMove(e);
+ break;
+
+ case "mouseup":
+ mcWindows.selectedWindow.onMouseUp(e);
+ break;
+
+ case "mousedown":
+ mcWindows.selectedWindow.onMouseDown(e);
+ break;
+
+ case "focus":
+ mcWindows.selectedWindow.onFocus(e);
+ break;
+ }
+}
+
+MCWindows.prototype.addEvent = function(obj, name, handler) {
+ if (this.isMSIE)
+ obj.attachEvent("on" + name, handler);
+ else
+ obj.addEventListener(name, handler, true);
+};
+
+MCWindows.prototype.cancelEvent = function(e) {
+ if (this.isMSIE) {
+ e.returnValue = false;
+ e.cancelBubble = true;
+ } else
+ e.preventDefault();
+};
+
+MCWindows.prototype.parseFeatures = function(opts) {
+ // Cleanup the options
+ opts = opts.toLowerCase();
+ opts = opts.replace(/;/g, ",");
+ opts = opts.replace(/[^0-9a-z=,]/g, "");
+
+ var optionChunks = opts.split(',');
+ var options = new Array();
+
+ options['left'] = 10;
+ options['top'] = 10;
+ options['width'] = 300;
+ options['height'] = 300;
+ options['resizable'] = true;
+ options['minimizable'] = true;
+ options['maximizable'] = true;
+ options['close'] = true;
+ options['movable'] = true;
+
+ if (opts == "")
+ return options;
+
+ for (var i=0; i<optionChunks.length; i++) {
+ var parts = optionChunks[i].split('=');
+
+ if (parts.length == 2)
+ options[parts[0]] = parts[1];
+ }
+
+ return options;
+};
+
+MCWindows.prototype.open = function(url, name, features) {
+ var win = new MCWindow();
+ var winDiv, html = "", id;
+
+ features = this.parseFeatures(features);
+
+ // Create div
+ id = "mcWindow_" + name;
+
+ width = parseInt(features['width']);
+ height = parseInt(features['height'])-12-19;
+
+ if (this.isMSIE)
+ width -= 2;
+
+ // Setup first part of window
+ win.id = id;
+ win.url = url;
+ win.name = name;
+ win.features = features;
+ this.windows[name] = win;
+
+ iframeWidth = width;
+ iframeHeight = height;
+
+ // Create inner content
+ html += '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
+ html += '<html>';
+ html += '<head>';
+ html += '<title>Wrapper iframe</title>';
+ html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
+ html += '<link href="../jscripts/tiny_mce/themes/advanced/css/editor_ui.css" rel="stylesheet" type="text/css" />';
+ html += '</head>';
+ html += '<body onload="parent.mcWindows.onLoad(\'' + name + '\');">';
+
+ html += '<div id="' + id + '_container" class="mceWindow">';
+ html += '<div id="' + id + '_head" class="mceWindowHead" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+ html += ' <div id="' + id + '_title" class="mceWindowTitle"';
+ html += ' onselectstart="return false;" unselectable="on" style="-moz-user-select: none !important;">No name window</div>';
+ html += ' <div class="mceWindowHeadTools">';
+ html += ' <a href="javascript:parent.mcWindows.windows[\'' + name + '\'].close();" onmousedown="return false;" class="mceWindowClose"><img border="0" src="../jscripts/tiny_mce/themes/advanced/images/window_close.gif" /></a>';
+// html += ' <a href="javascript:mcWindows.windows[\'' + name + '\'].maximize();" onmousedown="return false;" class="mceWindowMaximize"></a>';
+// html += ' <a href="javascript:mcWindows.windows[\'' + name + '\'].minimize();" onmousedown="return false;" class="mceWindowMinimize"></a>';
+ html += ' </div>';
+ html += '</div><div id="' + id + '_body" class="mceWindowBody" style="width: ' + width + 'px; height: ' + height + 'px;">';
+ html += '<iframe id="' + id + '_iframe" name="' + id + '_iframe" onfocus="parent.mcWindows.windows[\'' + name + '\'].focus();" frameborder="0" width="' + iframeWidth + '" height="' + iframeHeight + '" src="' + url + '" class="mceWindowBodyIframe"></iframe></div>';
+ html += '<div id="' + id + '_statusbar" class="mceWindowStatusbar" onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();">';
+ html += '<div id="' + id + '_resize" class="mceWindowResize"><img onmousedown="parent.mcWindows.windows[\'' + name + '\'].focus();" border="0" src="../jscripts/tiny_mce/themes/advanced/images/window_resize.gif" /></div>';
+ html += '</div>';
+ html += '</div>';
+
+ html += '</body>';
+ html += '</html>';
+
+ // Create iframe
+ this.createFloatingIFrame(id, features['left'], features['top'], features['width'], features['height'], html);
+};
+
+// Gets called when wrapper iframe is initialized
+MCWindows.prototype.onLoad = function(name) {
+ var win = mcWindows.windows[name];
+ var id = "mcWindow_" + name;
+ var wrapperIframe = window.frames[id + "_iframe"].frames[0];
+ var wrapperDoc = window.frames[id + "_iframe"].document;
+ var doc = window.frames[id + "_iframe"].document;
+ var winDiv = document.getElementById("mcWindow_" + name + "_div");
+ var realIframe = window.frames[id + "_iframe"].frames[0];
+
+ // Set window data
+ win.id = "mcWindow_" + name + "_iframe";
+ win.winElement = winDiv;
+ win.bodyElement = doc.getElementById(id + '_body');
+ win.iframeElement = doc.getElementById(id + '_iframe');
+ win.headElement = doc.getElementById(id + '_head');
+ win.titleElement = doc.getElementById(id + '_title');
+ win.resizeElement = doc.getElementById(id + '_resize');
+ win.containerElement = doc.getElementById(id + '_container');
+ win.left = win.features['left'];
+ win.top = win.features['top'];
+ win.frame = window.frames[id + '_iframe'].frames[0];
+ win.wrapperFrame = window.frames[id + '_iframe'];
+ win.wrapperIFrameElement = document.getElementById(id + "_iframe");
+
+ // Add event handlers
+ mcWindows.addEvent(win.headElement, "mousedown", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.resizeElement, "mousedown", mcWindows.eventDispatcher);
+
+ if (mcWindows.isMSIE) {
+ mcWindows.addEvent(realIframe.document, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(realIframe.document, "mouseup", mcWindows.eventDispatcher);
+ } else {
+ mcWindows.addEvent(realIframe, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(realIframe, "mouseup", mcWindows.eventDispatcher);
+ mcWindows.addEvent(realIframe, "focus", mcWindows.eventDispatcher);
+ }
+
+ for (var i=0; i<window.frames.length; i++) {
+ if (!window.frames[i]._hasMouseHandlers) {
+ if (mcWindows.isMSIE) {
+ mcWindows.addEvent(window.frames[i].document, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(window.frames[i].document, "mouseup", mcWindows.eventDispatcher);
+ } else {
+ mcWindows.addEvent(window.frames[i], "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(window.frames[i], "mouseup", mcWindows.eventDispatcher);
+ }
+
+ window.frames[i]._hasMouseHandlers = true;
+ }
+ }
+
+ if (mcWindows.isMSIE) {
+ mcWindows.addEvent(win.frame.document, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.frame.document, "mouseup", mcWindows.eventDispatcher);
+ } else {
+ mcWindows.addEvent(win.frame, "mousemove", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.frame, "mouseup", mcWindows.eventDispatcher);
+ mcWindows.addEvent(win.frame, "focus", mcWindows.eventDispatcher);
+ }
+
+ this.selectedWindow = win;
+};
+
+MCWindows.prototype.createFloatingIFrame = function(id_prefix, left, top, width, height, html) {
+ var iframe = document.createElement("iframe");
+ var div = document.createElement("div");
+
+ width = parseInt(width);
+ height = parseInt(height)+1;
+
+ // Create wrapper div
+ div.setAttribute("id", id_prefix + "_div");
+ div.setAttribute("width", width);
+ div.setAttribute("height", (height));
+ div.style.position = "absolute";
+ div.style.left = left + "px";
+ div.style.top = top + "px";
+ div.style.width = width + "px";
+ div.style.height = (height) + "px";
+ div.style.backgroundColor = "white";
+ div.style.display = "none";
+
+ if (this.isGecko) {
+ iframeWidth = width + 2;
+ iframeHeight = height + 2;
+ } else {
+ iframeWidth = width;
+ iframeHeight = height + 1;
+ }
+
+ // Create iframe
+ iframe.setAttribute("id", id_prefix + "_iframe");
+ iframe.setAttribute("name", id_prefix + "_iframe");
+ iframe.setAttribute("border", "0");
+ iframe.setAttribute("frameBorder", "0");
+ iframe.setAttribute("marginWidth", "0");
+ iframe.setAttribute("marginHeight", "0");
+ iframe.setAttribute("leftMargin", "0");
+ iframe.setAttribute("topMargin", "0");
+ iframe.setAttribute("width", iframeWidth);
+ iframe.setAttribute("height", iframeHeight);
+// iframe.setAttribute("src", "../jscripts/tiny_mce/blank.htm");
+ // iframe.setAttribute("allowtransparency", "false");
+ iframe.setAttribute("scrolling", "no");
+ iframe.style.width = iframeWidth + "px";
+ iframe.style.height = iframeHeight + "px";
+ iframe.style.backgroundColor = "white";
+ div.appendChild(iframe);
+
+ document.body.appendChild(div);
+
+ // Fixed MSIE 5.0 issue
+ div.innerHTML = div.innerHTML;
+
+ if (this.isSafari) {
+ // Give Safari some time to setup
+ window.setTimeout(function() {
+ doc = window.frames[id_prefix + '_iframe'].document;
+ doc.open();
+ doc.write(html);
+ doc.close();
+ }, 10);
+ } else {
+ doc = window.frames[id_prefix + '_iframe'].window.document
+ doc.open();
+ doc.write(html);
+ doc.close();
+ }
+
+ div.style.display = "block";
+
+ return div;
+};
+
+// Window instance
+function MCWindow() {
+};
+
+MCWindow.prototype.focus = function() {
+ this.winElement.style.zIndex = mcWindows.zindex++;
+ mcWindows.selectedWindow = this;
+};
+
+MCWindow.prototype.minimize = function() {
+};
+
+MCWindow.prototype.maximize = function() {
+
+};
+
+MCWindow.prototype.startResize = function() {
+ mcWindows.action = "resize";
+};
+
+MCWindow.prototype.startMove = function(e) {
+ mcWindows.action = "move";
+};
+
+MCWindow.prototype.close = function() {
+ document.body.removeChild(this.winElement);
+ mcWindows.windows[this.name] = null;
+};
+
+MCWindow.prototype.onMouseMove = function(e) {
+ var scrollX = 0;//this.doc.body.scrollLeft;
+ var scrollY = 0;//this.doc.body.scrollTop;
+
+ // Calculate real X, Y
+ var dx = e.screenX - mcWindows.mouseDownScreenX;
+ var dy = e.screenY - mcWindows.mouseDownScreenY;
+
+ switch (mcWindows.action) {
+ case "resize":
+ width = mcWindows.mouseDownWidth + (e.screenX - mcWindows.mouseDownScreenX);
+ height = mcWindows.mouseDownHeight + (e.screenY - mcWindows.mouseDownScreenY);
+
+ width = width < 100 ? 100 : width;
+ height = height < 100 ? 100 : height;
+
+ this.wrapperIFrameElement.style.width = width+2;
+ this.wrapperIFrameElement.style.height = height+2;
+ this.wrapperIFrameElement.width = width+2;
+ this.wrapperIFrameElement.height = height+2;
+ this.winElement.style.width = width;
+ this.winElement.style.height = height;
+
+ height = height-12-19;
+
+ this.containerElement.style.width = width;
+
+ this.iframeElement.style.width = width;
+ this.iframeElement.style.height = height;
+ this.bodyElement.style.width = width;
+ this.bodyElement.style.height = height;
+ this.headElement.style.width = width;
+ //this.statusElement.style.width = width;
+
+ mcWindows.cancelEvent(e);
+ break;
+
+ case "move":
+ this.left = mcWindows.mouseDownLayerX + (e.screenX - mcWindows.mouseDownScreenX);
+ this.top = mcWindows.mouseDownLayerY + (e.screenY - mcWindows.mouseDownScreenY);
+ this.winElement.style.left = this.left + "px";
+ this.winElement.style.top = this.top + "px";
+
+ mcWindows.cancelEvent(e);
+ break;
+ }
+};
+
+function debug(msg) {
+ document.getElementById('debug').value += msg + "\n";
+}
+
+MCWindow.prototype.onMouseUp = function(e) {
+ mcWindows.action = "none";
+};
+
+MCWindow.prototype.onFocus = function(e) {
+ // Gecko only handler
+ var winRef = e.currentTarget;
+
+ for (var n in mcWindows.windows) {
+ var win = mcWindows.windows[n];
+
+ if (winRef.name == win.id) {
+ win.focus();
+ return;
+ }
+ }
+};
+
+MCWindow.prototype.onMouseDown = function(e) {
+ var elm = mcWindows.isMSIE ? this.wrapperFrame.event.srcElement : e.target;
+
+ var scrollX = 0;//this.doc.body.scrollLeft;
+ var scrollY = 0;//this.doc.body.scrollTop;
+
+ mcWindows.mouseDownScreenX = e.screenX;
+ mcWindows.mouseDownScreenY = e.screenY;
+ mcWindows.mouseDownLayerX = this.left;
+ mcWindows.mouseDownLayerY = this.top;
+ mcWindows.mouseDownWidth = parseInt(this.winElement.style.width);
+ mcWindows.mouseDownHeight = parseInt(this.winElement.style.height);
+
+ if (elm == this.resizeElement.firstChild)
+ this.startResize(e);
+ else
+ this.startMove(e);
+
+ mcWindows.cancelEvent(e);
+};
+
+// Global instance
+var mcWindows = new MCWindows();
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('insertdatetime','cs,el,en,fr_ca,it,ko,sv,zh_cn,fa,fr,de,pl,pt_br,nl');function TinyMCE_insertdatetime_getInfo(){return{longname:'Insert date/time',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_insertdatetime.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_insertdatetime_getControlHTML(control_name){switch(control_name){case "insertdate":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceInsertDate\');" onmousedown="return false;"><img id="{$editor_id}_insertdate" src="{$pluginurl}/images/insertdate.gif" title="{$lang_insertdate_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';case "inserttime":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceInsertTime\');" onmousedown="return false;"><img id="{$editor_id}_inserttime" src="{$pluginurl}/images/inserttime.gif" title="{$lang_inserttime_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_insertdatetime_execCommand(editor_id,element,command,user_interface,value){function addZeros(value,len){value=""+value;if(value.length<len){for(var i=0;i<(len-value.length);i++)value="0"+value;}return value;}function getDateTime(date,format){format=tinyMCE.regexpReplace(format,"%D","%m/%d/%y");format=tinyMCE.regexpReplace(format,"%r","%I:%M:%S %p");format=tinyMCE.regexpReplace(format,"%Y",""+date.getFullYear());format=tinyMCE.regexpReplace(format,"%y",""+date.getYear());format=tinyMCE.regexpReplace(format,"%m",addZeros(date.getMonth()+1,2));format=tinyMCE.regexpReplace(format,"%d",addZeros(date.getDate(),2));format=tinyMCE.regexpReplace(format,"%H",""+addZeros(date.getHours(),2));format=tinyMCE.regexpReplace(format,"%M",""+addZeros(date.getMinutes(),2));format=tinyMCE.regexpReplace(format,"%S",""+addZeros(date.getSeconds(),2));format=tinyMCE.regexpReplace(format,"%I",""+(date.getHours()<12?(date.getHours()+1):24-date.getHours()));format=tinyMCE.regexpReplace(format,"%p",""+(date.getHours()<12?"AM":"PM"));format=tinyMCE.regexpReplace(format,"%B",""+tinyMCE.getLang("lang_inserttime_months_long")[date.getMonth()]);format=tinyMCE.regexpReplace(format,"%b",""+tinyMCE.getLang("lang_inserttime_months_short")[date.getMonth()]);format=tinyMCE.regexpReplace(format,"%A",""+tinyMCE.getLang("lang_inserttime_day_long")[date.getDay()]);format=tinyMCE.regexpReplace(format,"%a",""+tinyMCE.getLang("lang_inserttime_day_short")[date.getDay()]);format=tinyMCE.regexpReplace(format,"%%","%");return format;}switch(command){case "mceInsertDate":tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,getDateTime(new Date(),tinyMCE.getParam("plugin_insertdate_dateFormat",tinyMCE.getLang('lang_insertdate_def_fmt'))));return true;case "mceInsertTime":tinyMCE.execInstanceCommand(editor_id,'mceInsertContent',false,getDateTime(new Date(),tinyMCE.getParam("plugin_insertdate_timeFormat",tinyMCE.getLang('lang_inserttime_def_fmt'))));return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('insertdatetime', 'cs,el,en,fr_ca,it,ko,sv,zh_cn,fa,fr,de,pl,pt_br,nl');
+
+function TinyMCE_insertdatetime_getInfo() {
+ return {
+ longname : 'Insert date/time',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_insertdatetime.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+/**
+ * Returns the HTML contents of the insertdate, inserttime controls.
+ */
+function TinyMCE_insertdatetime_getControlHTML(control_name) {
+ switch (control_name) {
+ case "insertdate":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceInsertDate\');" onmousedown="return false;"><img id="{$editor_id}_insertdate" src="{$pluginurl}/images/insertdate.gif" title="{$lang_insertdate_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+
+ case "inserttime":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceInsertTime\');" onmousedown="return false;"><img id="{$editor_id}_inserttime" src="{$pluginurl}/images/inserttime.gif" title="{$lang_inserttime_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mceInsertDate command.
+ */
+function TinyMCE_insertdatetime_execCommand(editor_id, element, command, user_interface, value) {
+ /* Adds zeros infront of value */
+ function addZeros(value, len) {
+ value = "" + value;
+
+ if (value.length < len) {
+ for (var i=0; i<(len-value.length); i++)
+ value = "0" + value;
+ }
+
+ return value;
+ }
+
+ /* Returns the date object in the specified format */
+ function getDateTime(date, format) {
+ format = tinyMCE.regexpReplace(format, "%D", "%m/%d/%y");
+ format = tinyMCE.regexpReplace(format, "%r", "%I:%M:%S %p");
+ format = tinyMCE.regexpReplace(format, "%Y", "" + date.getFullYear());
+ format = tinyMCE.regexpReplace(format, "%y", "" + date.getYear());
+ format = tinyMCE.regexpReplace(format, "%m", addZeros(date.getMonth()+1, 2));
+ format = tinyMCE.regexpReplace(format, "%d", addZeros(date.getDate(), 2));
+ format = tinyMCE.regexpReplace(format, "%H", "" + addZeros(date.getHours(), 2));
+ format = tinyMCE.regexpReplace(format, "%M", "" + addZeros(date.getMinutes(), 2));
+ format = tinyMCE.regexpReplace(format, "%S", "" + addZeros(date.getSeconds(), 2));
+ format = tinyMCE.regexpReplace(format, "%I", "" + (date.getHours() < 12 ? (date.getHours()+1) : 24-date.getHours()));
+ format = tinyMCE.regexpReplace(format, "%p", "" + (date.getHours() < 12 ? "AM" : "PM"));
+ format = tinyMCE.regexpReplace(format, "%B", "" + tinyMCE.getLang("lang_inserttime_months_long")[date.getMonth()]);
+ format = tinyMCE.regexpReplace(format, "%b", "" + tinyMCE.getLang("lang_inserttime_months_short")[date.getMonth()]);
+ format = tinyMCE.regexpReplace(format, "%A", "" + tinyMCE.getLang("lang_inserttime_day_long")[date.getDay()]);
+ format = tinyMCE.regexpReplace(format, "%a", "" + tinyMCE.getLang("lang_inserttime_day_short")[date.getDay()]);
+ format = tinyMCE.regexpReplace(format, "%%", "%");
+
+ return format;
+ }
+
+ // Handle commands
+ switch (command) {
+ case "mceInsertDate":
+ tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_dateFormat", tinyMCE.getLang('lang_insertdate_def_fmt'))));
+ return true;
+
+ case "mceInsertTime":
+ tinyMCE.execInstanceCommand(editor_id, 'mceInsertContent', false, getDateTime(new Date(), tinyMCE.getParam("plugin_insertdate_timeFormat", tinyMCE.getLang('lang_inserttime_def_fmt'))));
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Vložit datum',
+inserttime_desc : 'Vložit čas',
+inserttime_months_long : new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec'),
+inserttime_months_short : new Array('Led','Úno','Bře','Dub','Kvě','Črv','Čvc','Srp','Zář','Říj','Lis','Pro'),
+inserttime_day_long : new Array('Neděle','Pondělí','Úterý','Středa','Čtvrtek','Pátek','Sobota','Neděle'),
+inserttime_day_short : new Array('Ne','Po','Út','St','Čt','Pá','So','Ne')
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Datum einfügen',
+inserttime_desc : 'Zeit einfügen',
+inserttime_months_long : new Array("Januar", "Februar", "M\u00e4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"),
+inserttime_months_short : new Array("Jan", "Feb", "M\u00e4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"),
+inserttime_day_long : new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"),
+inserttime_day_short : new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa", "So")
+});
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'ÅéóáãùãÞ çìåñïìçíßáò',
+inserttime_desc : 'ÅéóáãùãÞ þñáò',
+inserttime_months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"),
+inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Insert date',
+inserttime_desc : 'Insert time',
+inserttime_months_long : new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
+inserttime_months_short : new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"),
+inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+dir : 'rtl',
+insertdate_desc : '?????? ?????',
+inserttime_desc : '?????? ????'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Insèrer la date',
+inserttime_desc : 'Insèrer l\'heure',
+inserttime_months_long : new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"),
+inserttime_months_short : new Array("Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Juil", "Aout", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"),
+inserttime_day_short : new Array("Lun", "Mar", "Mer", "Jeu", "Thu", "Ven", "Sam", "Dim")
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom
+
+tinyMCE.addToLang('',{
+insertdate_desc : 'Insérer la date',
+inserttime_desc : 'Insérer l\'heure',
+inserttime_months_long : new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"),
+inserttime_months_short : new Array("Jan", "Fev", "Mar", "Avr", "Mai", "Juin", "Juil", "Aout", "Sep", "Oct", "Nov", "Dec"),
+inserttime_day_long : new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"),
+inserttime_day_short : new Array("Lun", "Mar", "Mer", "Jeu", "Thu", "Ven", "Sam", "Dim")
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'äëðñ úàøéê',
+inserttime_desc : 'äëðñ ùòä',
+inserttime_months_long : new Array("éðåàø", "ôáøåàø", "îøõ", "àôøéì", "îàé", "éåðé", "éåìé", "àåëåñè", "ñôèîáø", "àå÷èåáø", "ðåáîáø", "ãöîáø"),
+inserttime_months_short : new Array("éðå", "ôáø", "îøõ", "àôø", "îàé", "éåð", "éåì", "àåâ", "ñôè", "àå÷", "ðåá", "ãöî"),
+inserttime_day_long : new Array("éåí øàùåï", "éåí ùðé", "éåí ùìéùé", "éåí øáéòé", "éåí çîéùé", "éåí ùéùé", "éåí ùáú", "éåí øàùåï"),
+inserttime_day_short : new Array("à'", "á'", "â'", "ã'", "ä'", "å'", "ù'", "à'")
+});
--- /dev/null
+// IT lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Inserisci data',
+inserttime_desc : 'Inserisci ora',
+inserttime_months_long : new Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"),
+inserttime_months_short : new Array("Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"),
+inserttime_day_long : new Array("Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"),
+inserttime_day_short : new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : '³¯Â¥ ³Ö±â',
+inserttime_desc : '½Ã°£ ³Ö±â',
+inserttime_months_long : new Array("1¿ù", "2¿ù", "3¿ù", "4¿ù", "5¿ù", "6¿ù", "7¿ù", "8¿ù", "9¿ù", "10¿ù", "11¿ù", "12¿ù"),
+inserttime_months_short : new Array("1¿ù", "2¿ù", "3¿ù", "4¿ù", "5¿ù", "6¿ù", "7¿ù", "8¿ù", "9¿ù", "10¿ù", "11¿ù", "12¿ù"),
+inserttime_day_long : new Array("ÀÏ¿äÀÏ", "¿ù¿äÀÏ", "È¿äÀÏ", "¼ö¿äÀÏ", "¸ñ¿äÀÏ", "±Ý¿äÀÏ", "Åä¿äÀÏ", "ÀÏ¿äÀÏ"),
+inserttime_day_short : new Array("ÀÏ", "¿ù", "È", "¼ö", "¸ñ", "±Ý", "Åä", "ÀÏ")
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Datum invoegen',
+inserttime_desc : 'Tijd invoegen'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Wstaw aktualna date',
+inserttime_desc : 'Wstaw aktualny czas',
+inserttime_months_long : new Array("Styczen", "Luty", "Marzec", "Kwiecien", "Maj", "Czerwiec", "Lipiec", "Sierpien", "Wrzesien", "Pazdziernik", "Listopad", "Grudzien"),
+inserttime_months_short : new Array("Stcz", "Lut", "Mar", "Kwi", "Maj", "Czer", "Lip", "Sier", "Wrze", "Paz", "List", "Grudz"),
+inserttime_day_long : new Array("Niedziela", "Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek", "Sobota", "Niedziela"),
+inserttime_day_short : new Array("Nie", "Pon", "Wto", "Sro", "Czw", "Pia", "Sob", "Nie")
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+insertdate_desc : 'Inserir data',
+inserttime_desc : 'Inserir hora',
+inserttime_months_long : new Array("Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"),
+inserttime_months_short : new Array("Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"),
+inserttime_day_long : new Array("Domindo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "Sábado", "Domingo"),
+inserttime_day_short : new Array("Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab", "Dom")
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+insertdate_def_fmt : '%Y-%m-%d',
+inserttime_def_fmt : '%H:%M:%S',
+insertdate_desc : 'Klistra in datum',
+inserttime_desc : 'Klistra in tid',
+inserttime_months_long : new Array("Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"),
+inserttime_months_short : new Array("Jan","Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"),
+inserttime_day_long : new Array("Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag", "Söndag"),
+inserttime_day_short : new Array("Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör", "Sön")
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+insertdate_desc : '²åÈ뵱ǰÈÕÆÚ',
+inserttime_desc : '²åÈ뵱ǰʱ¼ä',
+inserttime_months_long : new Array("Ò»Ô·Ý", "¶þÔ·Ý", "ÈýÔ·Ý", "ËÄÔ·Ý", "ÎåÔ·Ý", "ÁùÔ·Ý", "ÆßÔ·Ý", "°ËÔ·Ý", "¾ÅÔ·Ý", "ʮԷÝ", "ʮһÔ·Ý", "Ê®¶þÔ·Ý"),
+inserttime_months_short : new Array("Ò»ÔÂ", "¶þÔÂ", "ÈýÔÂ", "ËÄÔÂ", "ÎåÔÂ", "ÁùÔÂ", "ÆßÔÂ", "°ËÔÂ", "¾ÅÔÂ", "Ê®ÔÂ", "ʮһÔÂ", "Ê®¶þÔÂ"),
+inserttime_day_long : new Array("ÐÇÆÚÈÕ", "ÐÇÆÚÒ»", "ÐÇÆÚ¶þ", "ÐÇÆÚÈý", "ÐÇÆÚËÄ", "ÐÇÆÚÎå", "ÐÇÆÚÁù", "ÐÇÆÚÈÕ"),
+inserttime_day_short : new Array("ÖÜÈÕ", "ÖÜÒ»", "Öܶþ", "ÖÜÈý", "ÖÜËÄ", "ÖÜÎå", "ÖÜÁù", "ÖÜÈÕ")
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* This is the CSS file for the noneditable elements plugin */
+
+.mceItemEditable {
+ /*border: 1px dotted #0000cc;*/
+ -moz-user-focus: none;
+ -moz-user-input: auto;
+ -moz-user-modify: auto;
+ -moz-user-select: text;
+}
+
+.mceItemNonEditable {
+ /*border: 1px dotted #cc0000;*/
+ -moz-user-focus: ignore;
+ /*-moz-user-input: disabled;*/
+ -moz-user-modify: read-only;
+ -moz-user-select: all;
+}
--- /dev/null
+function TinyMCE_noneditable_getInfo(){return{longname:'Non editable elements',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_noneditable.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_noneditable_initInstance(inst){tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/plugins/noneditable/css/noneditable.css");if(tinyMCE.isMSIE5_0)tinyMCE.settings['plugins']=tinyMCE.settings['plugins'].replace(/noneditable/gi,'Noneditable');if(tinyMCE.isGecko){tinyMCE.addEvent(inst.getDoc(),"keyup",TinyMCE_noneditable_fixKeyUp);}}function TinyMCE_noneditable_fixKeyUp(e){var inst=tinyMCE.selectedInstance;var sel=inst.getSel();var rng=inst.getRng();var an=sel.anchorNode;if((e.keyCode==38||e.keyCode==37||e.keyCode==40||e.keyCode==39)&&(elm=TinyMCE_noneditable_isNonEditable(an))!=null){rng=inst.getDoc().createRange();rng.selectNode(elm);rng.collapse(true);sel.removeAllRanges();sel.addRange(rng);tinyMCE.cancelEvent(e);}}function TinyMCE_noneditable_selectAll(e){var inst=tinyMCE.selectedInstance;var sel=inst.getSel();var doc=inst.getDoc();if((elm=TinyMCE_noneditable_isNonEditable(sel.focusNode))!=null){inst.selectNode(elm,false);tinyMCE.cancelEvent(e);return;}if((elm=TinyMCE_noneditable_isNonEditable(sel.anchorNode))!=null){inst.selectNode(elm,false);tinyMCE.cancelEvent(e);return;}}function TinyMCE_noneditable_isNonEditable(elm){var editClass=tinyMCE.getParam("noneditable_editable_class","mceItemEditable");var nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceItemNonEditable");if(!elm)return;do{var className=elm.className?elm.className:"";if(className.indexOf(editClass)!=-1)return null;if(className.indexOf(nonEditClass)!=-1)return elm;}while(elm=elm.parentNode);return null;}function TinyMCE_noneditable_cleanup(type,content,inst){switch(type){case "insert_to_editor_dom":var nodes=tinyMCE.getNodeTree(content,new Array(),1);var editClass=tinyMCE.getParam("noneditable_editable_class","mceItemEditable");var nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceItemNonEditable");for(var i=0;i<nodes.length;i++){var elm=nodes[i];var editable=tinyMCE.getAttrib(elm,"contenteditable");if(new RegExp("true|false","gi").test(editable))TinyMCE_noneditable_setEditable(elm,editable=="true");if(tinyMCE.isMSIE){var className=elm.className?elm.className:"";if(className.indexOf(editClass)!=-1)elm.contentEditable=true;if(className.indexOf(nonEditClass)!=-1)elm.contentEditable=false;}}break;case "insert_to_editor":if(tinyMCE.isMSIE){var editClass=tinyMCE.getParam("noneditable_editable_class","mceItemEditable");var nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceItemNonEditable");content=content.replace(new RegExp("<(.*?)class=\"(.*?)("+editClass+")(.*?)\"(.*?)>","gi"),'<$1class="$2$3$4" contenteditable="true"$5>');content=content.replace(new RegExp("<(.*?)class=\"(.*?)("+nonEditClass+")(.*?)\"(.*?)>","gi"),'<$1class="$2$3$4" contenteditable="false"$5>');}break;case "get_from_editor_dom":if(tinyMCE.getParam("noneditable_leave_contenteditable",false)){var nodes=tinyMCE.getNodeTree(content,new Array(),1);for(var i=0;i<nodes.length;i++)nodes[i].removeAttribute("contenteditable");}break;}return content;}function TinyMCE_noneditable_setEditable(elm,state){var editClass=tinyMCE.getParam("noneditable_editable_class","mceItemEditable");var nonEditClass=tinyMCE.getParam("noneditable_noneditable_class","mceItemNonEditable");var className=elm.className?elm.className:"";if(className.indexOf(editClass)!=-1||className.indexOf(nonEditClass)!=-1)return;if((className=tinyMCE.getAttrib(elm,"class"))!="")className+=" ";className+=state?editClass:nonEditClass;elm.setAttribute("class",className);elm.className=className;}
\ No newline at end of file
--- /dev/null
+function TinyMCE_noneditable_getInfo() {
+ return {
+ longname : 'Non editable elements',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_noneditable.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_noneditable_initInstance(inst) {
+ tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/noneditable/css/noneditable.css");
+
+ // Ugly hack
+ if (tinyMCE.isMSIE5_0)
+ tinyMCE.settings['plugins'] = tinyMCE.settings['plugins'].replace(/noneditable/gi, 'Noneditable');
+
+ if (tinyMCE.isGecko) {
+ tinyMCE.addEvent(inst.getDoc(), "keyup", TinyMCE_noneditable_fixKeyUp);
+// tinyMCE.addEvent(inst.getDoc(), "keypress", TinyMCE_noneditable_selectAll);
+// tinyMCE.addEvent(inst.getDoc(), "mouseup", TinyMCE_noneditable_selectAll);
+ }
+}
+
+function TinyMCE_noneditable_fixKeyUp(e) {
+ var inst = tinyMCE.selectedInstance;
+ var sel = inst.getSel();
+ var rng = inst.getRng();
+ var an = sel.anchorNode;
+
+ // Move cursor outside non editable fields
+ if ((e.keyCode == 38 || e.keyCode == 37 || e.keyCode == 40 || e.keyCode == 39) && (elm = TinyMCE_noneditable_isNonEditable(an)) != null) {
+ rng = inst.getDoc().createRange();
+ rng.selectNode(elm);
+ rng.collapse(true);
+ sel.removeAllRanges();
+ sel.addRange(rng);
+ tinyMCE.cancelEvent(e);
+ }
+}
+
+function TinyMCE_noneditable_selectAll(e) {
+ var inst = tinyMCE.selectedInstance;
+ var sel = inst.getSel();
+ var doc = inst.getDoc();
+
+ if ((elm = TinyMCE_noneditable_isNonEditable(sel.focusNode)) != null) {
+ inst.selectNode(elm, false);
+ tinyMCE.cancelEvent(e);
+ return;
+ }
+
+ if ((elm = TinyMCE_noneditable_isNonEditable(sel.anchorNode)) != null) {
+ inst.selectNode(elm, false);
+ tinyMCE.cancelEvent(e);
+ return;
+ }
+}
+
+function TinyMCE_noneditable_isNonEditable(elm) {
+ var editClass = tinyMCE.getParam("noneditable_editable_class", "mceItemEditable");
+ var nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceItemNonEditable");
+
+ if (!elm)
+ return;
+
+ do {
+ var className = elm.className ? elm.className : "";
+
+ if (className.indexOf(editClass) != -1)
+ return null;
+
+ if (className.indexOf(nonEditClass) != -1)
+ return elm;
+ } while (elm = elm.parentNode);
+
+ return null;
+}
+
+function TinyMCE_noneditable_cleanup(type, content, inst) {
+ switch (type) {
+ case "insert_to_editor_dom":
+ var nodes = tinyMCE.getNodeTree(content, new Array(), 1);
+ var editClass = tinyMCE.getParam("noneditable_editable_class", "mceItemEditable");
+ var nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceItemNonEditable");
+
+ for (var i=0; i<nodes.length; i++) {
+ var elm = nodes[i];
+
+ // Convert contenteditable to classes
+ var editable = tinyMCE.getAttrib(elm, "contenteditable");
+ if (new RegExp("true|false","gi").test(editable))
+ TinyMCE_noneditable_setEditable(elm, editable == "true");
+
+ if (tinyMCE.isMSIE) {
+ var className = elm.className ? elm.className : "";
+
+ if (className.indexOf(editClass) != -1)
+ elm.contentEditable = true;
+
+ if (className.indexOf(nonEditClass) != -1)
+ elm.contentEditable = false;
+ }
+ }
+
+ break;
+
+ case "insert_to_editor":
+ if (tinyMCE.isMSIE) {
+ var editClass = tinyMCE.getParam("noneditable_editable_class", "mceItemEditable");
+ var nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceItemNonEditable");
+
+ content = content.replace(new RegExp("<(.*?)class=\"(.*?)(" + editClass + ")(.*?)\"(.*?)>", "gi"), '<$1class="$2$3$4" contenteditable="true"$5>');
+ content = content.replace(new RegExp("<(.*?)class=\"(.*?)(" + nonEditClass + ")(.*?)\"(.*?)>", "gi"), '<$1class="$2$3$4" contenteditable="false"$5>');
+ }
+
+ break;
+
+ case "get_from_editor_dom":
+ if (tinyMCE.getParam("noneditable_leave_contenteditable", false)) {
+ var nodes = tinyMCE.getNodeTree(content, new Array(), 1);
+
+ for (var i=0; i<nodes.length; i++)
+ nodes[i].removeAttribute("contenteditable");
+ }
+
+ break;
+ }
+
+ return content;
+}
+
+function TinyMCE_noneditable_setEditable(elm, state) {
+ var editClass = tinyMCE.getParam("noneditable_editable_class", "mceItemEditable");
+ var nonEditClass = tinyMCE.getParam("noneditable_noneditable_class", "mceItemNonEditable");
+
+ var className = elm.className ? elm.className : "";
+
+ if (className.indexOf(editClass) != -1 || className.indexOf(nonEditClass) != -1)
+ return;
+
+ if ((className = tinyMCE.getAttrib(elm, "class")) != "")
+ className += " ";
+
+ className += state ? editClass : nonEditClass;
+
+ elm.setAttribute("class", className);
+ elm.className = className;
+}
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>blank_page</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <script language="javascript">
+ function init() {
+ document.body.contentEditable = true;
+ document.designMode = 'on';
+ parent.initIframe(document);
+ window.focus();
+ }
+ </script>
+ <link href="css/blank.css" rel="stylesheet" type="text/css" />
+</head>
+<body onload="init();">
+
+</body>
+</html>
--- /dev/null
+body {
+ background-color: #FFFFFF;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ scrollbar-3dlight-color: #F0F0EE;
+ scrollbar-arrow-color: #676662;
+ scrollbar-base-color: #F0F0EE;
+ scrollbar-darkshadow-color: #DDDDDD;
+ scrollbar-face-color: #E0E0DD;
+ scrollbar-highlight-color: #F0F0EE;
+ scrollbar-shadow-color: #F0F0EE;
+ scrollbar-track-color: #F5F5F5;
+}
--- /dev/null
+.sourceIframe {
+ border: 1px solid #808080;
+}
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('paste','en,sv,cs,zh_cn,fr_ca');function TinyMCE_paste_getInfo(){return{longname:'Paste text/word',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_paste.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_paste_initInstance(inst){if(tinyMCE.isMSIE&&tinyMCE.getParam("paste_auto_cleanup_on_paste",false))tinyMCE.addEvent(inst.getBody(),"paste",TinyMCE_paste_handleEvent);}function TinyMCE_paste_handleEvent(e){switch(e.type){case "paste":var html=TinyMCE_paste__clipboardHTML();tinyMCE.execCommand('delete');if(html&&html.length>0)tinyMCE.execCommand('mcePasteWord',false,html);tinyMCE.cancelEvent(e);return false;}return true;}function TinyMCE_paste_getControlHTML(control_name){switch(control_name){case "pastetext":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePasteText\', true);" onmousedown="return false;"><img id="{$editor_id}pastetext" src="{$pluginurl}/images/pastetext.gif" title="{$lang_paste_text_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';case "pasteword":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePasteWord\', true);" onmousedown="return false;"><img id="{$editor_id}pasteword" src="{$pluginurl}/images/pasteword.gif" title="{$lang_paste_word_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';case "selectall":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSelectAll\');" onmousedown="return false;"><img id="{$editor_id}selectall" src="{$pluginurl}/images/selectall.gif" title="{$lang_selectall_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';}return '';}function TinyMCE_paste_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mcePasteText":if(user_interface){if(tinyMCE.isMSIE&&!tinyMCE.getParam('paste_use_dialog',false))TinyMCE_paste__insertText(clipboardData.getData("Text"),true);else{var template=new Array();template['file']='../../plugins/paste/pastetext.htm';template['width']=450;template['height']=400;var plain_text="";tinyMCE.openWindow(template,{editor_id:editor_id,plain_text:plain_text,resizable:"yes",scrollbars:"no",inline:"yes",mceDo:'insert'});}}else TinyMCE_paste__insertText(value['html'],value['linebreaks']);return true;case "mcePasteWord":if(user_interface){if(tinyMCE.isMSIE&&!tinyMCE.getParam('paste_use_dialog',false)){var html=TinyMCE_paste__clipboardHTML();if(html&&html.length>0)TinyMCE_paste__insertWordContent(html);}else{var template=new Array();template['file']='../../plugins/paste/pasteword.htm';template['width']=450;template['height']=400;var plain_text="";tinyMCE.openWindow(template,{editor_id:editor_id,plain_text:plain_text,resizable:"yes",scrollbars:"no",inline:"yes",mceDo:'insert'});}}else TinyMCE_paste__insertWordContent(value);return true;case "mceSelectAll":tinyMCE.execInstanceCommand(editor_id,'selectall');return true;}return false;}function TinyMCE_paste__insertText(content,bLinebreaks){if(content&&content.length>0){if(bLinebreaks){if(tinyMCE.getParam("plaintext_create_paragraphs",true)){content=tinyMCE.regexpReplace(content,"\r\n\r\n","</p><p>","gi");content=tinyMCE.regexpReplace(content,"\r\r","</p><p>","gi");content=tinyMCE.regexpReplace(content,"\n\n","</p><p>","gi");if((pos=content.indexOf('</p><p>'))!=-1){tinyMCE.execCommand("Delete");var node=tinyMCE.selectedInstance.getFocusElement();var breakElms=new Array();do{if(node.nodeType==1){if(node.nodeName=="TD"||node.nodeName=="BODY")break;breakElms[breakElms.length]=node;}}while(node=node.parentNode);var before="",after="</p>";before+=content.substring(0,pos);for(var i=0;i<breakElms.length;i++){before+="</"+breakElms[i].nodeName+">";after+="<"+breakElms[(breakElms.length-1)-i].nodeName+">";}before+="<p>";content=before+content.substring(pos+7)+after;}}content=tinyMCE.regexpReplace(content,"\r\n","<br />","gi");content=tinyMCE.regexpReplace(content,"\r","<br />","gi");content=tinyMCE.regexpReplace(content,"\n","<br />","gi");}tinyMCE.execCommand("mceInsertRawHTML",false,content);}}function TinyMCE_paste__insertWordContent(content){if(content&&content.length>0){var bull=String.fromCharCode(8226);var middot=String.fromCharCode(183);if(tinyMCE.getParam("paste_convert_headers_to_strong",false)){content=content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>','gi'),'<p><b>$1</b></p>');}content=content.replace(new RegExp('tab-stops: list [0-9]+.0pt">','gi'),'">'+"--list--");content=content.replace(new RegExp(bull+"(.*?)<BR>","gi"),"<p>"+middot+"$1</p>");content=content.replace(new RegExp('<SPAN style="mso-list: Ignore">','gi'),"<span>"+bull);content=content.replace(/<o:p><\/o:p>/gi,"");content=content.replace(new RegExp('<br style="page-break-before: always;.*>','gi'),'-- page break --');content=content.replace(new RegExp('<(!--)([^>]*)(--)>','g'),"");content=content.replace(/<\/?span[^>]*>/gi,"");content=content.replace(new RegExp('<(\w[^>]*) style="([^"]*)"([^>]*)','gi'),"<$1$3");content=content.replace(/<\/?font[^>]*>/gi,"");content=content.replace(/<(\w[^>]*)class=([^|>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<(\w[^>]*)lang=([^|>]*)([^>]*)/gi,"<$1$3");content=content.replace(/<\\?\?xml[^>]*>/gi,"");content=content.replace(/<\/?\w+:[^>]*>/gi,"");content=content.replace(/--page break--\s*<p> <\/p>/gi,"");content=content.replace(/--page break--/gi,"");if(!tinyMCE.settings['force_p_newlines']){content=content.replace('','','gi');content=content.replace('</p>','<br /><br />','gi');}if(!tinyMCE.isMSIE&&!tinyMCE.settings['force_p_newlines']){content=content.replace(/<\/?p[^>]*>/gi,"");}content=content.replace(/<\/?div[^>]*>/gi,"");if(tinyMCE.getParam("paste_convert_middot_lists",true)){var div=document.createElement("div");div.innerHTML=content;var className=tinyMCE.getParam("paste_unindented_list_class","unIndentedList");while(TinyMCE_paste_convertMiddots(div,"--list--"));while(TinyMCE_paste_convertMiddots(div,middot,className));while(TinyMCE_paste_convertMiddots(div,bull));content=div.innerHTML;}if(tinyMCE.getParam("paste_convert_headers_to_strong",false)){content=content.replace(/<h[1-6]> <\/h[1-6]>/gi,'<p> </p>');content=content.replace(/<h[1-6]>/gi,'<p><b>');content=content.replace(/<\/h[1-6]>/gi,'</b></p>');content=content.replace(/<b> <\/b>/gi,'<b> </b>');content=content.replace(/^( )*/gi,'');}content=content.replace(/--list--/gi,"");tinyMCE.execCommand("mceInsertContent",false,content);tinyMCE.execCommand("mceCleanup");}}function TinyMCE_paste_convertMiddots(div,search,class_name){var mdot=String.fromCharCode(183);var bull=String.fromCharCode(8226);var nodes=div.getElementsByTagName("p");for(var i=0;i<nodes.length;i++){var p=nodes[i];if(p.innerHTML.indexOf(search)!=-1){var ul=document.createElement("ul");if(class_name)ul.className=class_name;var li=document.createElement("li");li.innerHTML=p.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');ul.appendChild(li);var np=p.nextSibling;while(np){if(np.nodeType!=1||np.innerHTML.indexOf(search)==-1)break;var cp=np.nextSibling;var li=document.createElement("li");li.innerHTML=np.innerHTML.replace(new RegExp(''+mdot+'|'+bull+'|--list--| ',"gi"),'');np.parentNode.removeChild(np);ul.appendChild(li);np=cp;}p.parentNode.replaceChild(ul,p);return true;}}return false;}function TinyMCE_paste__clipboardHTML(){var div=document.getElementById('_TinyMCE_clipboardHTML');if(!div){var div=document.createElement('DIV');div.id='_TinyMCE_clipboardHTML';with(div.style){visibility='hidden';overflow='hidden';position='absolute';width=1;height=1;}document.body.appendChild(div);}div.innerHTML='';var rng=document.body.createTextRange();rng.moveToElementText(div);rng.execCommand('Paste');var html=div.innerHTML;div.innerHTML='';return html;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('paste', 'en,sv,cs,zh_cn,fr_ca');
+
+function TinyMCE_paste_getInfo() {
+ return {
+ longname : 'Paste text/word',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_paste.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_paste_initInstance(inst) {
+ if (tinyMCE.isMSIE && tinyMCE.getParam("paste_auto_cleanup_on_paste", false))
+ tinyMCE.addEvent(inst.getBody(), "paste", TinyMCE_paste_handleEvent);
+}
+
+function TinyMCE_paste_handleEvent(e) {
+ switch (e.type) {
+ case "paste":
+ var html = TinyMCE_paste__clipboardHTML();
+
+ // Removes italic, strong etc
+ tinyMCE.execCommand('delete');
+
+ if (html && html.length > 0)
+ tinyMCE.execCommand('mcePasteWord', false, html);
+
+ tinyMCE.cancelEvent(e);
+ return false;
+ }
+
+ return true;
+}
+
+function TinyMCE_paste_getControlHTML(control_name) {
+ switch (control_name) {
+ case "pastetext":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePasteText\', true);" onmousedown="return false;"><img id="{$editor_id}pastetext" src="{$pluginurl}/images/pastetext.gif" title="{$lang_paste_text_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';
+
+ case "pasteword":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePasteWord\', true);" onmousedown="return false;"><img id="{$editor_id}pasteword" src="{$pluginurl}/images/pasteword.gif" title="{$lang_paste_word_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';
+
+ case "selectall":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSelectAll\');" onmousedown="return false;"><img id="{$editor_id}selectall" src="{$pluginurl}/images/selectall.gif" title="{$lang_selectall_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';
+ }
+
+ return '';
+}
+
+function TinyMCE_paste_execCommand(editor_id, element, command, user_interface, value) {
+ switch (command) {
+ case "mcePasteText":
+ if (user_interface) {
+ if (tinyMCE.isMSIE && !tinyMCE.getParam('paste_use_dialog', false))
+ TinyMCE_paste__insertText(clipboardData.getData("Text"), true);
+ else {
+ var template = new Array();
+ template['file'] = '../../plugins/paste/pastetext.htm'; // Relative to theme
+ template['width'] = 450;
+ template['height'] = 400;
+ var plain_text = "";
+ tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
+ }
+ } else
+ TinyMCE_paste__insertText(value['html'], value['linebreaks']);
+
+ return true;
+
+ case "mcePasteWord":
+ if (user_interface) {
+ if (tinyMCE.isMSIE && !tinyMCE.getParam('paste_use_dialog', false)) {
+ var html = TinyMCE_paste__clipboardHTML();
+
+ if (html && html.length > 0)
+ TinyMCE_paste__insertWordContent(html);
+ } else {
+ var template = new Array();
+ template['file'] = '../../plugins/paste/pasteword.htm'; // Relative to theme
+ template['width'] = 450;
+ template['height'] = 400;
+ var plain_text = "";
+ tinyMCE.openWindow(template, {editor_id : editor_id, plain_text: plain_text, resizable : "yes", scrollbars : "no", inline : "yes", mceDo : 'insert'});
+ }
+ } else
+ TinyMCE_paste__insertWordContent(value);
+
+ return true;
+
+ case "mceSelectAll":
+ tinyMCE.execInstanceCommand(editor_id, 'selectall');
+ return true;
+
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_paste__insertText(content, bLinebreaks) {
+ if (content && content.length > 0) {
+ if (bLinebreaks) {
+ // Special paragraph treatment
+ if (tinyMCE.getParam("plaintext_create_paragraphs", true)) {
+ content = tinyMCE.regexpReplace(content, "\r\n\r\n", "</p><p>", "gi");
+ content = tinyMCE.regexpReplace(content, "\r\r", "</p><p>", "gi");
+ content = tinyMCE.regexpReplace(content, "\n\n", "</p><p>", "gi");
+
+ // Has paragraphs
+ if ((pos = content.indexOf('</p><p>')) != -1) {
+ tinyMCE.execCommand("Delete");
+
+ var node = tinyMCE.selectedInstance.getFocusElement();
+
+ // Get list of elements to break
+ var breakElms = new Array();
+
+ do {
+ if (node.nodeType == 1) {
+ // Don't break tables and break at body
+ if (node.nodeName == "TD" || node.nodeName == "BODY")
+ break;
+
+ breakElms[breakElms.length] = node;
+ }
+ } while(node = node.parentNode);
+
+ var before = "", after = "</p>";
+ before += content.substring(0, pos);
+
+ for (var i=0; i<breakElms.length; i++) {
+ before += "</" + breakElms[i].nodeName + ">";
+ after += "<" + breakElms[(breakElms.length-1)-i].nodeName + ">";
+ }
+
+ before += "<p>";
+ content = before + content.substring(pos+7) + after;
+ }
+ }
+
+ content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
+ content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
+ content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
+ }
+
+ tinyMCE.execCommand("mceInsertRawHTML", false, content);
+ }
+}
+
+function TinyMCE_paste__insertWordContent(content) {
+ if (content && content.length > 0) {
+ // Cleanup Word content
+ var bull = String.fromCharCode(8226);
+ var middot = String.fromCharCode(183);
+
+ if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
+ content = content.replace(new RegExp('<p class=MsoHeading.*?>(.*?)<\/p>', 'gi'), '<p><b>$1</b></p>');
+ }
+
+ content = content.replace(new RegExp('tab-stops: list [0-9]+.0pt">', 'gi'), '">' + "--list--");
+ content = content.replace(new RegExp(bull + "(.*?)<BR>", "gi"), "<p>" + middot + "$1</p>");
+ content = content.replace(new RegExp('<SPAN style="mso-list: Ignore">', 'gi'), "<span>" + bull); // Covert to bull list
+ content = content.replace(/<o:p><\/o:p>/gi, "");
+ content = content.replace(new RegExp('<br style="page-break-before: always;.*>', 'gi'), '-- page break --'); // Replace pagebreaks
+ content = content.replace(new RegExp('<(!--)([^>]*)(--)>', 'g'), ""); // Word comments
+ content = content.replace(/<\/?span[^>]*>/gi, "");
+ content = content.replace(new RegExp('<(\w[^>]*) style="([^"]*)"([^>]*)', 'gi'), "<$1$3");
+ content = content.replace(/<\/?font[^>]*>/gi, "");
+ content = content.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3");
+ content = content.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3");
+ content = content.replace(/<\\?\?xml[^>]*>/gi, "");
+ content = content.replace(/<\/?\w+:[^>]*>/gi, "");
+ content = content.replace(/-- page break --\s*<p> <\/p>/gi, ""); // Remove pagebreaks
+ content = content.replace(/-- page break --/gi, ""); // Remove pagebreaks
+
+// content = content.replace(/\/? */gi, "");
+// content = content.replace(/<p> <\/p>/gi, '');
+
+ if (!tinyMCE.settings['force_p_newlines']) {
+ content = content.replace('', '' ,'gi');
+ content = content.replace('</p>', '<br /><br />' ,'gi');
+ }
+
+ if (!tinyMCE.isMSIE && !tinyMCE.settings['force_p_newlines']) {
+ content = content.replace(/<\/?p[^>]*>/gi, "");
+ }
+
+ content = content.replace(/<\/?div[^>]*>/gi, "");
+
+ // Convert all middlot lists to UL lists
+ if (tinyMCE.getParam("paste_convert_middot_lists", true)) {
+ var div = document.createElement("div");
+ div.innerHTML = content;
+
+ // Convert all middot paragraphs to li elements
+ var className = tinyMCE.getParam("paste_unindented_list_class", "unIndentedList");
+
+ while (TinyMCE_paste_convertMiddots(div, "--list--")) ; // bull
+ while (TinyMCE_paste_convertMiddots(div, middot, className)) ; // Middot
+ while (TinyMCE_paste_convertMiddots(div, bull)) ; // bull
+
+ content = div.innerHTML;
+ }
+
+ // Replace all headers with strong and fix some other issues
+ if (tinyMCE.getParam("paste_convert_headers_to_strong", false)) {
+ content = content.replace(/<h[1-6]> <\/h[1-6]>/gi, '<p> </p>');
+ content = content.replace(/<h[1-6]>/gi, '<p><b>');
+ content = content.replace(/<\/h[1-6]>/gi, '</b></p>');
+ content = content.replace(/<b> <\/b>/gi, '<b> </b>');
+ content = content.replace(/^( )*/gi, '');
+ }
+
+ content = content.replace(/--list--/gi, ""); // Remove --list--
+
+ // Insert cleaned content
+ tinyMCE.execCommand("mceInsertContent", false, content);
+ tinyMCE.execCommand("mceCleanup"); // Do normal cleanup
+ }
+}
+
+function TinyMCE_paste_convertMiddots(div, search, class_name) {
+ var mdot = String.fromCharCode(183);
+ var bull = String.fromCharCode(8226);
+
+ var nodes = div.getElementsByTagName("p");
+ for (var i=0; i<nodes.length; i++) {
+ var p = nodes[i];
+
+ // Is middot
+ if (p.innerHTML.indexOf(search) != -1) {
+ var ul = document.createElement("ul");
+
+ if (class_name)
+ ul.className = class_name;
+
+ // Add the first one
+ var li = document.createElement("li");
+ li.innerHTML = p.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');
+ ul.appendChild(li);
+
+ // Add the rest
+ var np = p.nextSibling;
+ while (np) {
+ // Not element or middot paragraph
+ if (np.nodeType != 1 || np.innerHTML.indexOf(search) == -1)
+ break;
+
+ var cp = np.nextSibling;
+ var li = document.createElement("li");
+ li.innerHTML = np.innerHTML.replace(new RegExp('' + mdot + '|' + bull + '|--list--| ', "gi"), '');
+ np.parentNode.removeChild(np);
+ ul.appendChild(li);
+ np = cp;
+ }
+
+ p.parentNode.replaceChild(ul, p);
+
+ return true;
+ }
+ }
+
+ return false;
+}
+
+function TinyMCE_paste__clipboardHTML() {
+ var div = document.getElementById('_TinyMCE_clipboardHTML');
+
+ if (!div) {
+ var div = document.createElement('DIV');
+ div.id = '_TinyMCE_clipboardHTML';
+
+ with (div.style) {
+ visibility = 'hidden';
+ overflow = 'hidden';
+ position = 'absolute';
+ width = 1;
+ height = 1;
+ }
+
+ document.body.appendChild(div);
+ }
+
+ div.innerHTML = '';
+ var rng = document.body.createTextRange();
+ rng.moveToElementText(div);
+ rng.execCommand('Paste');
+ var html = div.innerHTML;
+ div.innerHTML = '';
+ return html;
+}
--- /dev/null
+function saveContent() {
+ if (document.forms[0].htmlSource.value == '') {
+ tinyMCEPopup.close();
+ return false;
+ }
+
+ tinyMCEPopup.execCommand('mcePasteText', false, {
+ html : document.forms[0].htmlSource.value,
+ linebreaks : document.forms[0].linebreaks.checked
+ });
+
+ tinyMCEPopup.close();
+}
+
+function onLoadInit() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ resizeInputs();
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function resizeInputs() {
+ if (!tinyMCE.isMSIE) {
+ wHeight = self.innerHeight-80;
+ wWidth = self.innerWidth-17;
+ } else {
+ wHeight = document.body.clientHeight-80;
+ wWidth = document.body.clientWidth-17;
+ }
+
+ document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
+ document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';
+}
--- /dev/null
+function saveContent() {
+ var html = document.getElementById("frmData").contentWindow.document.body.innerHTML;
+
+ if (html == ''){
+ tinyMCEPopup.close();
+ return false;
+ }
+
+ tinyMCEPopup.execCommand('mcePasteWord', false, html);
+ tinyMCEPopup.close();
+}
+
+function onLoadInit() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ // Fix for endless reloading in FF
+ window.setTimeout('createIFrame();', 10);
+}
+
+function createIFrame() {
+ document.getElementById('iframecontainer').innerHTML = '<iframe id="frmData" name="frmData" class="sourceIframe" src="blank.htm" height="280" width="400" frameborder="0" style="background-color:#FFFFFF; width:100%;" dir="ltr" wrap="soft"></iframe>';
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function initIframe(doc) {
+ var dir = tinyMCE.selectedInstance.settings['directionality'];
+ doc.body.dir = dir;
+ resizeInputs();
+}
+
+function resizeInputs() {
+ if (!tinyMCE.isMSIE) {
+ wHeight = self.innerHeight - 80;
+ wWidth = self.innerWidth - 18;
+ } else {
+ wHeight = document.body.clientHeight - 80;
+ wWidth = document.body.clientWidth - 18;
+ }
+
+ document.getElementById('frmData').style.height = Math.abs(wHeight) + 'px';
+ document.getElementById('frmData').style.width = Math.abs(wWidth) + 'px';
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Vložit neformátovaný text',
+paste_text_title : 'Použij CTRL + V na klávesnici pro vložení textu do okna.',
+paste_text_linebreaks : 'Nechej přerušení řádků',
+paste_word_desc : 'Vložit text z aplikace Word',
+paste_word_title : 'Použij CTRL + V na klávesnici pro vložení textu do okna.',
+selectall_desc : 'Označit vše'
+});
+
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Paste as Plain Text',
+paste_text_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+paste_text_linebreaks : 'Keep linebreaks',
+paste_word_desc : 'Paste from Word',
+paste_word_title : 'Use CTRL+V on your keyboard to paste the text into the window.',
+selectall_desc : 'Select All'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Coller texte seulement',
+paste_text_title : 'Utilisez CTRL+V sur votre clavier pour coller le texte dans la fenêtre.',
+paste_text_linebreaks : 'Garder les sauts de ligne',
+paste_word_desc : 'Coller à partir de Word',
+paste_word_title : 'Utilisez CTRL+V sur votre clavier pour coller le texte dans la fenêtre.',
+selectall_desc : 'Selectionner tout'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'äãá÷ ëè÷ñè øâéì',
+paste_text_title : 'äùúîù á-CTRL+V ùòì äî÷ìãú ùìê ëãé ìäãáé÷ àú äè÷ñè ìçìåï.',
+paste_text_linebreaks : 'ùîåø òì îòáøé ùåøä',
+paste_word_desc : 'äãá÷ î-Word',
+paste_word_title : 'äùúîù á-CTRL+V ùòì äî÷ìãú ùìê ëãé ìäãáé÷ àú äè÷ñè ìçìåï.',
+selectall_desc : 'áçø äëì'
+});
--- /dev/null
+// SV lang variables
+
+tinyMCE.addToLang('',{
+paste_text_desc : 'Klistra in som vanlig text',
+paste_text_title : 'Använd CTRL+V på ditt tangentbord för att klistra in i detta fönster.',
+paste_text_linebreaks : 'Spara radbrytningar',
+paste_word_desc : 'Klistra in från Word',
+paste_word_title : 'Använd CTRL+V på ditt tangentbord för att klistra in i detta fönster.',
+selectall_desc : 'Select All'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+paste_text_desc : '×÷Ϊ´¿Îı¾Õ³Ìù',
+paste_text_title : 'ʹÓÿì½Ý¼ü CTRL+V ½«Îı¾Õ³Ìùµ½ÒÔÏ´°¿ÚÖÐ.',
+paste_text_linebreaks : '±£Áô»»Ðзû',
+paste_word_desc : '´ÓWordÕ³Ìù',
+paste_word_title : 'ʹÓÿì½Ý¼ü CTRL+V ½«Îı¾Õ³Ìùµ½ÒÔÏ´°¿ÚÖÐ.',
+selectall_desc : 'ȫѡ'
+});
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_paste_text_desc}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/pastetext.js"></script>
+</head>
+<body onload="onLoadInit();" onresize="resizeInputs();" style="display: none">
+<form name="source" onsubmit="saveContent();">
+ <div style="float: left" class="title">{$lang_paste_text_desc}</div>
+
+ <div style="float: right">
+ <input type="checkbox" name="linebreaks" id="linebreaks" class="wordWrapCode" checked="checked" /><label for="linebreaks">{$lang_paste_text_linebreaks}</label>
+ </div>
+
+ <br style="clear: both" />
+
+ <div>{$lang_paste_text_title}</div>
+
+ <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft"></textarea>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" name="insert" value="{$lang_insert}" onclick="saveContent();" id="insert" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
+ </div>
+ </div>
+</form>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>{$lang_paste_word_desc}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/pasteword.js"></script>
+ <link href="css/pasteword.css" rel="stylesheet" type="text/css" />
+</head>
+<body onload="onLoadInit();" onresize="resizeInputs();" style="display: none">
+ <form name="source" onsubmit="saveContent();" action="#">
+ <div class="title">{$lang_paste_word_desc}</div>
+
+ <div>{$lang_paste_word_title}</div>
+
+ <div id="iframecontainer"></div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="saveContent();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('preview','cs,de,el,en,fr_ca,it,ko,pt,sv,zh_cn,fa,fr,pl,pt_br,nl');function TinyMCE_preview_getInfo(){return{longname:'Preview',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_preview.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_preview_getControlHTML(control_name){switch(control_name){case "preview":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePreview\');" onmousedown="return false;"><img id="{$editor_id}_preview" src="{$pluginurl}/images/preview.gif" title="{$lang_preview_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_preview_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mcePreview":var previewPage=tinyMCE.getParam("plugin_preview_pageurl",null);var previewWidth=tinyMCE.getParam("plugin_preview_width","550");var previewHeight=tinyMCE.getParam("plugin_preview_height","600");if(previewPage){var template=new Array();template['file']=previewPage;template['width']=previewWidth;template['height']=previewHeight;tinyMCE.openWindow(template,{editor_id:editor_id,resizable:"yes",scrollbars:"yes",inline:"yes",content:tinyMCE.getContent(),content_css:tinyMCE.getParam("content_css")});}else{var win=window.open("","mcePreview","menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width="+previewWidth+",height="+previewHeight);var html="";html+='<!doctype html public "-//w3c//dtd html 4.0 transitional//en">';html+='<html>';html+='<head>';html+='<title>'+tinyMCE.getLang('lang_preview_desc')+'</title>';html+='<base href="'+tinyMCE.getParam("document_base_url")+'">';html+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';html+='<link href="'+tinyMCE.getParam("content_css")+'" rel="stylesheet" type="text/css">';html+='</head>';html+='<body>';html+=tinyMCE.getContent();html+='</body>';html+='</html>';win.document.write(html);win.document.close();}return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('preview', 'cs,de,el,en,fr_ca,it,ko,pt,sv,zh_cn,fa,fr,pl,pt_br,nl');
+
+function TinyMCE_preview_getInfo() {
+ return {
+ longname : 'Preview',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_preview.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+/**
+ * Returns the HTML contents of the preview control.
+ */
+function TinyMCE_preview_getControlHTML(control_name) {
+ switch (control_name) {
+ case "preview":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePreview\');" onmousedown="return false;"><img id="{$editor_id}_preview" src="{$pluginurl}/images/preview.gif" title="{$lang_preview_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mcePreview command.
+ */
+function TinyMCE_preview_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mcePreview":
+ var previewPage = tinyMCE.getParam("plugin_preview_pageurl", null);
+ var previewWidth = tinyMCE.getParam("plugin_preview_width", "550");
+ var previewHeight = tinyMCE.getParam("plugin_preview_height", "600");
+
+ // Use a custom preview page
+ if (previewPage) {
+ var template = new Array();
+
+ template['file'] = previewPage;
+ template['width'] = previewWidth;
+ template['height'] = previewHeight;
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "yes", inline : "yes", content : tinyMCE.getContent(), content_css : tinyMCE.getParam("content_css")});
+ } else {
+ var win = window.open("", "mcePreview", "menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=" + previewWidth + ",height=" + previewHeight);
+ var html = "";
+
+ html += '<!doctype html public "-//w3c//dtd html 4.0 transitional//en">';
+ html += '<html>';
+ html += '<head>';
+ html += '<title>' + tinyMCE.getLang('lang_preview_desc') + '</title>';
+ html += '<base href="' + tinyMCE.getParam("document_base_url") + '">';
+ html += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
+ html += '<link href="' + tinyMCE.getParam("content_css") + '" rel="stylesheet" type="text/css">';
+ html += '</head>';
+ html += '<body>';
+ html += tinyMCE.getContent();
+ html += '</body>';
+ html += '</html>';
+
+ win.document.write(html);
+ win.document.close();
+ }
+
+ return true;
+ }
+
+ return false;
+}
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<script language="javascript" src="../../tiny_mce_popup.js"></script>
+<title>Example of a custom preview page</title>
+<link href="{$content_css}" rel="stylesheet" type="text/css">
+</head>
+<body>
+
+Editor contents: <br />
+{$content}
+
+</body>
+</html>
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+preview_desc : 'Náhled'
+});
+
--- /dev/null
+// DE lang variables by Tobias Heer
+
+tinyMCE.addToLang('',{
+preview_desc : 'Vorschau'
+});
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+preview_desc : 'Ðñïåðéóêüðçóç éóôïóåëßäáò'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Preview'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+preview_desc : '??? ?????'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+preview_desc : 'Prévisualisation'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+preview_desc : 'Prévisualisation'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+preview_desc : 'úöåâä î÷ãéîä'
+});
--- /dev/null
+// IT lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Anteprima'
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : '¹Ì¸®º¸±â'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Voorbeeld'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Podglad'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Pré-visualização'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Visualizar'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+preview_desc : 'Förhandsgranska'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com)
+
+tinyMCE.addToLang('',{
+preview_desc : 'Ô¤ÀÀ'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import theme specific language pack */
+ tinyMCE.importPluginLanguagePack('print','en,sv,zh_cn,fa,fr_ca,fr,de,pl,pt_br,cs,nl');function TinyMCE_print_getInfo(){return{longname:'Print',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_print.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_print_getControlHTML(control_name){switch(control_name){case "print":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePrint\',true);" onmousedown="return false;"><img id="{$editor_id}_print" src="{$pluginurl}/images/print.gif" title="{$lang_print_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_print_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mcePrint":tinyMCE.getInstanceById(editor_id).contentWindow.print();return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import theme specific language pack */
+tinyMCE.importPluginLanguagePack('print', 'en,sv,zh_cn,fa,fr_ca,fr,de,pl,pt_br,cs,nl');
+
+function TinyMCE_print_getInfo() {
+ return {
+ longname : 'Print',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_print.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_print_getControlHTML(control_name) {
+ switch (control_name) {
+ case "print":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mcePrint\',true);" onmousedown="return false;"><img id="{$editor_id}_print" src="{$pluginurl}/images/print.gif" title="{$lang_print_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the search/replace commands.
+ */
+function TinyMCE_print_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mcePrint":
+ tinyMCE.getInstanceById(editor_id).contentWindow.print();
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+print_desc : 'Tisk'
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Drucken'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Print'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+print_desc : '???'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+print_desc : 'Imprimer'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+print_desc : 'Imprimer'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+print_desc : 'äãôñ'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Afdrukken'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Drukuj'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Imprimir'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+print_desc : 'Skriv ut'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+print_desc : '´òÓ¡'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+This is the location you place TinyMCE plugins.
--- /dev/null
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('save','en,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br,nl,he');function TinyMCE_save_getInfo(){return{longname:'Save',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_save.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_save_getControlHTML(control_name){switch(control_name){case "save":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSave\');" onmousedown="return false;"><img id="{$editor_id}_save" src="{$pluginurl}/images/save.gif" title="{$lang_save_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.switchClass(this,\'mceButtonNormal\');" onmousedown="tinyMCE.switchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_save_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceSave":var formObj=tinyMCE.selectedInstance.formElement.form;if(formObj){tinyMCE.triggerSave();for(var i=0;i<formObj.elements.length;i++){var elementId=formObj.elements[i].name?formObj.elements[i].name:formObj.elements[i].id;if(elementId.indexOf('mce_editor_')==0)formObj.elements[i].disabled=true;}tinyMCE.isNotDirty=true;tinyMCE.selectedInstance.formElement.form.submit();}else alert("Error: No form element found.");return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('save', 'en,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br,nl,he');
+
+function TinyMCE_save_getInfo() {
+ return {
+ longname : 'Save',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_save.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+/**
+ * Returns the HTML contents of the save control.
+ */
+function TinyMCE_save_getControlHTML(control_name) {
+ switch (control_name) {
+ case "save":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSave\');" onmousedown="return false;"><img id="{$editor_id}_save" src="{$pluginurl}/images/save.gif" title="{$lang_save_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.switchClass(this,\'mceButtonNormal\');" onmousedown="tinyMCE.switchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the save command.
+ */
+function TinyMCE_save_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceSave":
+ var formObj = tinyMCE.selectedInstance.formElement.form;
+
+ if (formObj) {
+ tinyMCE.triggerSave();
+
+ // Disable all UI form elements that TinyMCE created
+ for (var i=0; i<formObj.elements.length; i++) {
+ var elementId = formObj.elements[i].name ? formObj.elements[i].name : formObj.elements[i].id;
+
+ if (elementId.indexOf('mce_editor_') == 0)
+ formObj.elements[i].disabled = true;
+ }
+
+ tinyMCE.isNotDirty = true;
+ tinyMCE.selectedInstance.formElement.form.submit();
+ } else
+ alert("Error: No form element found.");
+
+ return true;
+ }
+ // Pass to next handler in chain
+ return false;
+}
\ No newline at end of file
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+save_desc : 'Uložit'
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Speichern'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Save'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+save_desc : '???'
+});
+
\ No newline at end of file
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+save_desc : 'Sauver'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+save_desc : 'Enregistrer'
+});
+,
\ No newline at end of file
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+save_desc : 'ùîåø'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Opslaan'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Zachowaj'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+save_desc : 'Salvar'
+});
--- /dev/null
+// SV lang variables
+
+tinyMCE.addToLang('save',{
+desc : 'Spara'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+save_desc : '±£´æ'
+});
+
\ No newline at end of file
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+/* Import theme specific language pack */
+ tinyMCE.importPluginLanguagePack('searchreplace','en,sv,zh_cn,fa,fr_ca,fr,de,pl,pt_br,cs,nl');function TinyMCE_searchreplace_getInfo(){return{longname:'Search/Replace',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_searchreplace.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_searchreplace_getControlHTML(control_name){switch(control_name){case "search":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSearch\',true);" onmousedown="return false;"><img id="{$editor_id}_search" src="{$pluginurl}/images/search.gif" title="{$lang_searchreplace_search_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';case "replace":return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSearchReplace\',true);" onmousedown="return false;"><img id="{$editor_id}_replace" src="{$pluginurl}/images/replace.gif" title="{$lang_searchreplace_replace_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}return "";}function TinyMCE_searchreplace_execCommand(editor_id,element,command,user_interface,value){function defValue(key,default_value){value[key]=typeof(value[key])=="undefined"?default_value:value[key];}function replaceSel(search_str,str){if(!tinyMCE.isMSIE){var sel=instance.contentWindow.getSelection();var rng=sel.getRangeAt(0);}else{var rng=instance.contentWindow.document.selection.createRange();}if(!tinyMCE.isMSIE){var doc=instance.contentWindow.document;if(str.indexOf(search_str)==-1){rng.deleteContents();rng.insertNode(rng.createContextualFragment(str));rng.collapse(false);}else{doc.execCommand("insertimage",false,"#mce_temp_url#");var elm=tinyMCE.getElementByAttributeValue(doc.body,"img","src","#mce_temp_url#");elm.parentNode.replaceChild(doc.createTextNode(str),elm);}}else{if(rng.item)rng.item(0).outerHTML=str;else rng.pasteHTML(str);}}var instance=tinyMCE.getInstanceById(editor_id);if(!value)value=new Array();defValue("editor_id",editor_id);defValue("searchstring","");defValue("replacestring",null);defValue("replacemode","none");defValue("casesensitive",false);defValue("backwards",false);defValue("wrap",false);defValue("wholeword",false);defValue("inline","yes");switch(command){case "mceResetSearch":tinyMCE.lastSearchRng=null;return true;case "mceSearch":if(user_interface){var template=new Array();if(value['replacestring']!=null){template['file']='../../plugins/searchreplace/replace.htm';template['width']=320;template['height']=120;}else{template['file']='../../plugins/searchreplace/search.htm';template['width']=310;template['height']=105;}tinyMCE.openWindow(template,value);}else{var win=tinyMCE.getInstanceById(editor_id).contentWindow;var doc=tinyMCE.getInstanceById(editor_id).contentWindow.document;var body=tinyMCE.getInstanceById(editor_id).contentWindow.document.body;if(body.innerHTML==""){alert(tinyMCE.getLang('lang_searchreplace_notfound'));return true;}if(value['replacemode']=="current"){replaceSel(value['string'],value['replacestring']);value['replacemode']="none";tinyMCE.execInstanceCommand(editor_id,'mceSearch',user_interface,value,false);return true;}if(tinyMCE.isMSIE){var rng=tinyMCE.lastSearchRng?tinyMCE.lastSearchRng:doc.selection.createRange();var flags=0;if(value['wholeword'])flags=flags|2;if(value['casesensitive'])flags=flags|4;if(value['replacemode']=="all"){while(rng.findText(value['string'],value['backwards']?-1:1,flags)){rng.scrollIntoView();rng.select();rng.collapse(false);replaceSel(value['string'],value['replacestring']);}alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));return true;}if(rng.findText(value['string'],value['backwards']?-1:1,flags)){rng.scrollIntoView();rng.select();rng.collapse(value['backwards']);tinyMCE.lastSearchRng=rng;}else alert(tinyMCE.getLang('lang_searchreplace_notfound'));}else{if(value['replacemode']=="all"){while(win.find(value['string'],value['casesensitive'],value['backwards'],value['wrap'],value['wholeword'],false,false))replaceSel(value['string'],value['replacestring']);alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));return true;}if(!win.find(value['string'],value['casesensitive'],value['backwards'],value['wrap'],value['wholeword'],false,false))alert(tinyMCE.getLang('lang_searchreplace_notfound'));}}return true;case "mceSearchReplace":value['replacestring']="";tinyMCE.execInstanceCommand(editor_id,'mceSearch',user_interface,value,false);return true;}return false;}function TinyMCE_searchreplace_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){return true;}
\ No newline at end of file
--- /dev/null
+/* Import theme specific language pack */
+tinyMCE.importPluginLanguagePack('searchreplace', 'en,sv,zh_cn,fa,fr_ca,fr,de,pl,pt_br,cs,nl');
+
+function TinyMCE_searchreplace_getInfo() {
+ return {
+ longname : 'Search/Replace',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_searchreplace.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_searchreplace_getControlHTML(control_name) {
+ switch (control_name) {
+ case "search":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSearch\',true);" onmousedown="return false;"><img id="{$editor_id}_search" src="{$pluginurl}/images/search.gif" title="{$lang_searchreplace_search_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+
+ case "replace":
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSearchReplace\',true);" onmousedown="return false;"><img id="{$editor_id}_replace" src="{$pluginurl}/images/replace.gif" title="{$lang_searchreplace_replace_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the search/replace commands.
+ */
+function TinyMCE_searchreplace_execCommand(editor_id, element, command, user_interface, value) {
+ function defValue(key, default_value) {
+ value[key] = typeof(value[key]) == "undefined" ? default_value : value[key];
+ }
+
+ function replaceSel(search_str, str) {
+ // Get current selection
+ if (!tinyMCE.isMSIE) {
+ var sel = instance.contentWindow.getSelection();
+ var rng = sel.getRangeAt(0);
+ } else {
+ var rng = instance.contentWindow.document.selection.createRange();
+ }
+
+ // Replace current one
+ if (!tinyMCE.isMSIE) {
+ var doc = instance.contentWindow.document;
+
+ // This way works when the replace doesn't contain the search string
+ if (str.indexOf(search_str) == -1) {
+ rng.deleteContents();
+ rng.insertNode(rng.createContextualFragment(str));
+ rng.collapse(false);
+ } else {
+ // Insert content ugly way! Needed to move selection to after replace item
+ doc.execCommand("insertimage", false, "#mce_temp_url#");
+ var elm = tinyMCE.getElementByAttributeValue(doc.body, "img", "src", "#mce_temp_url#");
+ elm.parentNode.replaceChild(doc.createTextNode(str), elm);
+ }
+ } else {
+ if (rng.item)
+ rng.item(0).outerHTML = str;
+ else
+ rng.pasteHTML(str);
+ }
+ }
+
+ var instance = tinyMCE.getInstanceById(editor_id);
+
+ if (!value)
+ value = new Array();
+
+ // Setup defualt values
+ defValue("editor_id", editor_id);
+ defValue("searchstring", "");
+ defValue("replacestring", null);
+ defValue("replacemode", "none");
+ defValue("casesensitive", false);
+ defValue("backwards", false);
+ defValue("wrap", false);
+ defValue("wholeword", false);
+ defValue("inline", "yes");
+
+ // Handle commands
+ switch (command) {
+ case "mceResetSearch":
+ tinyMCE.lastSearchRng = null;
+ return true;
+
+ case "mceSearch":
+ if (user_interface) {
+ // Open search dialog
+ var template = new Array();
+
+ if (value['replacestring'] != null) {
+ template['file'] = '../../plugins/searchreplace/replace.htm'; // Relative to theme
+ template['width'] = 320;
+ template['height'] = 120;
+ } else {
+ template['file'] = '../../plugins/searchreplace/search.htm'; // Relative to theme
+ template['width'] = 310;
+ template['height'] = 105;
+ }
+
+ tinyMCE.openWindow(template, value);
+ } else {
+ var win = tinyMCE.getInstanceById(editor_id).contentWindow;
+ var doc = tinyMCE.getInstanceById(editor_id).contentWindow.document;
+ var body = tinyMCE.getInstanceById(editor_id).contentWindow.document.body;
+
+ // Whats the point
+ if (body.innerHTML == "") {
+ alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+ return true;
+ }
+
+ // Handle replace current
+ if (value['replacemode'] == "current") {
+ replaceSel(value['string'], value['replacestring']);
+
+ // Search next one
+ value['replacemode'] = "none";
+ tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value, false);
+
+ return true;
+ }
+
+ if (tinyMCE.isMSIE) {
+ var rng = tinyMCE.lastSearchRng ? tinyMCE.lastSearchRng : doc.selection.createRange();
+ var flags = 0;
+
+ if (value['wholeword'])
+ flags = flags | 2;
+
+ if (value['casesensitive'])
+ flags = flags | 4;
+
+ // Handle replace all mode
+ if (value['replacemode'] == "all") {
+ while (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) {
+ rng.scrollIntoView();
+ rng.select();
+ rng.collapse(false);
+ replaceSel(value['string'], value['replacestring']);
+ }
+
+ alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));
+ return true;
+ }
+
+ if (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) {
+ rng.scrollIntoView();
+ rng.select();
+ rng.collapse(value['backwards']);
+ tinyMCE.lastSearchRng = rng;
+ } else
+ alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+ } else {
+ if (value['replacemode'] == "all") {
+ while (win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false))
+ replaceSel(value['string'], value['replacestring']);
+
+ alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));
+ return true;
+ }
+
+ if (!win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false))
+ alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+ }
+ }
+ return true;
+
+ case "mceSearchReplace":
+ value['replacestring'] = "";
+
+ tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value, false);
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_searchreplace_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ return true;
+}
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+
+ formObj.searchstring.value = tinyMCE.getWindowArg("searchstring");
+ formObj.replacestring.value = tinyMCE.getWindowArg("replacestring");
+ formObj.casesensitivebox.checked = tinyMCE.getWindowArg("casesensitive");
+ formObj.backwards[0].checked = tinyMCE.getWindowArg("backwards");
+ formObj.backwards[1].checked = !tinyMCE.getWindowArg("backwards");
+// formObj.wrapatend.checked = tinyMCE.getWindowArg("wrap");
+// formObj.wholeword.checked = tinyMCE.getWindowArg("wholeword");
+
+ tinyMCEPopup.execCommand("mceResetSearch", false, {dummy : ""}, false);
+}
+
+function searchNext(replacemode) {
+ var formObj = document.forms[0];
+
+ // Whats the point?
+ if (formObj.searchstring.value == "" || formObj.searchstring.value == formObj.replacestring.value)
+ return;
+
+ // Do search
+ tinyMCEPopup.execCommand('mceSearch', false, {
+ string : formObj.searchstring.value,
+ replacestring : formObj.replacestring.value,
+ replacemode : replacemode,
+ casesensitive : formObj.casesensitivebox.checked,
+ backwards : formObj.backwards[0].checked
+// wrap : formObj.wrapatend.checked,
+// wholeword : formObj.wholeword.checked
+ }, false);
+}
+
+function cancelAction() {
+ tinyMCEPopup.close();
+}
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+
+ formObj.searchstring.value = tinyMCE.getWindowArg("searchstring");
+ formObj.casesensitivebox.checked = tinyMCE.getWindowArg("casesensitive");
+ formObj.backwards[0].checked = tinyMCE.getWindowArg("backwards");
+ formObj.backwards[1].checked = !tinyMCE.getWindowArg("backwards");
+// formObj.wrapatend.checked = tinyMCE.getWindowArg("wrap");
+// formObj.wholeword.checked = tinyMCE.getWindowArg("wholeword");
+
+ tinyMCEPopup.execCommand("mceResetSearch", false, {dummy : ""}, false);
+}
+
+function searchNext() {
+ var formObj = document.forms[0];
+
+ if (formObj.searchstring.value == "")
+ return;
+
+ // Do search
+ tinyMCEPopup.execCommand('mceSearch', false, {
+ string : formObj.searchstring.value,
+ casesensitive : formObj.casesensitivebox.checked,
+ backwards : formObj.backwards[0].checked
+// wrap : formObj.wrapatend.checked,
+// wholeword : formObj.wholeword.checked
+ }, false);
+}
+
+function cancelAction() {
+ tinyMCEPopup.close();
+}
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Najdi',
+searchreplace_searchnext_desc : 'Najdi znova',
+searchreplace_replace_desc : 'Najdi/Nahradit',
+searchreplace_notfound : 'Vyhledávaní ukončeno. Řetězec nemusel být nalezen.',
+searchreplace_search_title : 'Najdi',
+searchreplace_replace_title : 'Najdi/Nahradit',
+searchreplace_allreplaced : 'Všechny výskyty řetězce byly změněny.',
+searchreplace_findwhat : 'Najít',
+searchreplace_replacewith : 'Nahradit',
+searchreplace_direction : 'Směr',
+searchreplace_up : 'Nahoru',
+searchreplace_down : 'Dolů',
+searchreplace_case : 'Přesná shoda',
+searchreplace_findnext : 'Najdi další',
+searchreplace_replace : 'Nahradit',
+searchreplace_replaceall : 'Nahradit vše',
+searchreplace_cancel : 'Zrušit'
+});
+
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Suchen',
+searchreplace_searchnext_desc : 'Erneut suchen',
+searchreplace_replace_desc : 'Suchen/Ersetzen',
+searchreplace_notfound : 'Die Suche wurde abgeschlossen. Das Suchwort wurde nicht gefunden.',
+searchreplace_search_title : 'Suchen',
+searchreplace_replace_title : 'Suchen/Ersetzen',
+searchreplace_allreplaced : 'Die Suche wurde abgeschlossen. Alle Vorkommen wurden ersetzt.',
+searchreplace_findwhat : 'Suchen nach',
+searchreplace_replacewith : 'Ersetzem durch',
+searchreplace_direction : 'Suchrichtung',
+searchreplace_up : 'Rückwärts',
+searchreplace_down : 'Vorwärts',
+searchreplace_case : 'Groß-/Kleinschreibung beachten',
+searchreplace_findnext : 'Weiter suchen',
+searchreplace_replace : 'Ersetzen',
+searchreplace_replaceall : 'Alle ersetzen',
+searchreplace_cancel : 'Abbrechen'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Find',
+searchreplace_searchnext_desc : 'Find again',
+searchreplace_replace_desc : 'Find/Replace',
+searchreplace_notfound : 'The search has been compleated. The search string could not be found.',
+searchreplace_search_title : 'Find',
+searchreplace_replace_title : 'Find/Replace',
+searchreplace_allreplaced : 'All occurrences of the search string was replaced.',
+searchreplace_findwhat : 'Find what',
+searchreplace_replacewith : 'Replace with',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Up',
+searchreplace_down : 'Down',
+searchreplace_case : 'Match case',
+searchreplace_findnext : 'Find next',
+searchreplace_replace : 'Replace',
+searchreplace_replaceall : 'Replace all',
+searchreplace_cancel : 'Cancel'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+searchreplace_search_desc : '?????',
+searchreplace_searchnext_desc : '?????? ????',
+searchreplace_replace_desc : '?????/????????',
+searchreplace_notfound : '????? ????? ????. ??? ????? ???? ???.',
+searchreplace_search_title : '?????',
+searchreplace_replace_title : '?????/????????',
+searchreplace_allreplaced : '??? ????? ??????? ?????.',
+searchreplace_findwhat : '????? ?? ?????',
+searchreplace_replacewith : '???????? ??',
+searchreplace_direction : '??? ?????',
+searchreplace_up : '?? ??? ????',
+searchreplace_down : '?? ??? ?????',
+searchreplace_case : '????? ???? ???? ? ????',
+searchreplace_findnext : '????-????',
+searchreplace_replace : '???????-??',
+searchreplace_replaceall : '????????-???',
+searchreplace_cancel : '??????'
+});
--- /dev/null
+// Franch lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Trouver',
+searchreplace_searchnext_desc : 'Trouver encore',
+searchreplace_replace_desc : 'Trouver/Remplacer',
+searchreplace_notfound : 'Votre recherche a été compléé. La recherche de la chaine pourra ne pas aboutir.',
+searchreplace_search_title : 'Trouver',
+searchreplace_replace_title : 'Trouver/Remplacer',
+searchreplace_allreplaced : 'Toutes les occurences de la chaine ont été remplcées.',
+searchreplace_findwhat : 'Trouver le mot',
+searchreplace_replacewith : 'Remplacer avec',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Haut',
+searchreplace_down : 'Base',
+searchreplace_case : 'Respecter la casse',
+searchreplace_findnext : 'Trouver le prochain',
+searchreplace_replace : 'Remplacer',
+searchreplace_replaceall : 'Remplacer tout',
+searchreplace_cancel : 'Annuler'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Chercher',
+searchreplace_searchnext_desc : 'Chercher suivant',
+searchreplace_replace_desc : 'Chercher/Remplacer',
+searchreplace_notfound : 'La recherche est terminée. Aucune occurence trouvée.',
+searchreplace_search_title : 'Chercher',
+searchreplace_replace_title : 'Chercher/Remplacer',
+searchreplace_allreplaced : 'Toutes les occurences ont été remplacées.',
+searchreplace_findwhat : 'Chercher quoi',
+searchreplace_replacewith : 'Remplacer par',
+searchreplace_direction : 'Direction',
+searchreplace_up : 'Monter',
+searchreplace_down : 'Descendre',
+searchreplace_case : 'Sensible à la case',
+searchreplace_findnext : 'Chercher ,suivant',
+searchreplace_replace : 'Remplacer',
+searchreplace_replaceall : 'Remplacer ,tous',
+searchreplace_cancel : 'Annuler'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'çôù',
+searchreplace_searchnext_desc : 'çôù ùåá',
+searchreplace_replace_desc : 'çôù/äçìó',
+searchreplace_notfound : 'äçéôåù äåùìí. îçøåæú äçéôåù ìà ðîöàä.',
+searchreplace_search_title : 'çôù',
+searchreplace_replace_title : 'çôù/äçìó',
+searchreplace_allreplaced : 'îçøåæú äçéôåù äåçìôä áëì î÷åí áå äéà ðîöàä.',
+searchreplace_findwhat : 'îä ìçôù',
+searchreplace_replacewith : 'ìäçìéó á-',
+searchreplace_direction : 'ëéååï',
+searchreplace_up : 'ìîòìä',
+searchreplace_down : 'ìîèä',
+searchreplace_case : 'äúàí âåãì àåúéåú',
+searchreplace_findnext : 'îöà àú äáà',
+searchreplace_replace : 'äçìó',
+searchreplace_replaceall : 'äçìó äëì',
+searchreplace_cancel : 'áèì'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Zoeken',
+searchreplace_searchnext_desc : 'Opnieuw zoeken',
+searchreplace_replace_desc : 'Zoeken/Vervang',
+searchreplace_notfound : 'De zoekopdracht is klaar. Het zoekargument was niet gevonden.',
+searchreplace_search_title : 'Zoeken',
+searchreplace_replace_title : 'Zoeken/Vervangen',
+searchreplace_allreplaced : 'Alle zoekargumenten werden vervangen.',
+searchreplace_findwhat : 'Zoek argument',
+searchreplace_replacewith : 'Vervang met',
+searchreplace_direction : 'Richting',
+searchreplace_up : 'Op',
+searchreplace_down : 'Neer',
+searchreplace_case : 'Identieke hoofdletters',
+searchreplace_findnext : 'Volgende zoeken',
+searchreplace_replace : 'Vervang',
+searchreplace_replaceall : 'Vervang alles',
+searchreplace_cancel : 'Annuleer'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Znajdz',
+searchreplace_searchnext_desc : 'Znajdz ponownie',
+searchreplace_replace_desc : 'Znajdz/Zastap',
+searchreplace_notfound : 'Ukonczono wyszukiwanie. Poszukiwana fraza nie zostala odnaleziona.',
+searchreplace_search_title : 'Znajdz',
+searchreplace_replace_title : 'Znajdz/Zastap',
+searchreplace_allreplaced : 'Wszystkie wystapienia poszukiwanej frazy zostaly zastapione. ',
+searchreplace_findwhat : 'Znajdz',
+searchreplace_replacewith : 'Zastap',
+searchreplace_direction : 'Kierunek',
+searchreplace_up : 'Do góry',
+searchreplace_down : 'Do dolu',
+searchreplace_case : 'Wielkosc liter',
+searchreplace_findnext : 'Znajdz nastepny',
+searchreplace_replace : 'Zastap',
+searchreplace_replaceall : 'Zastap wszystkie',
+searchreplace_cancel : 'Wyjdz'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Procurar',
+searchreplace_searchnext_desc : 'Procurar novamente',
+searchreplace_replace_desc : 'Procurar/Substituir',
+searchreplace_notfound : 'A procura foi concluída. A expressão buscada não foi encontrada.',
+searchreplace_search_title : 'Procurar',
+searchreplace_replace_title : 'Procurar/Substituir',
+searchreplace_allreplaced : 'Todas as ocorrências encontradas foram substituídas.',
+searchreplace_findwhat : 'Procurar por',
+searchreplace_replacewith : 'Substituir com',
+searchreplace_direction : 'Direção',
+searchreplace_up : 'Acima',
+searchreplace_down : 'Abaixo',
+searchreplace_case : 'Procurar exatamente',
+searchreplace_findnext : 'Procurar ,próxima',
+searchreplace_replace : 'Substituir',
+searchreplace_replaceall : 'Substituir ,tudo',
+searchreplace_cancel : 'Cancelar'
+});
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : 'Sök',
+searchreplace_searchnext_desc : 'Sök igen',
+searchreplace_replace_desc : 'Sök/Ersätt',
+searchreplace_notfound : 'Sökningen är slutförd. Söksträngen kunde inte hittas.',
+searchreplace_search_title : 'Sök',
+searchreplace_replace_title : 'Sök/Ersätt',
+searchreplace_allreplaced : 'Alla träffar på söksträngen ersattes',
+searchreplace_findwhat : 'Sök på',
+searchreplace_replacewith : 'Ersätt med',
+searchreplace_direction : 'Sökriktning',
+searchreplace_up : 'Uppåt',
+searchreplace_down : 'Neråt',
+searchreplace_case : 'Matcha gemener/VERSALER',
+searchreplace_findnext : 'Sök nästa',
+searchreplace_replace : 'Ersätt',
+searchreplace_replaceall : 'Ersätt alla',
+searchreplace_cancel : 'Avbryt'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+searchreplace_search_desc : '²éÕÒ',
+searchreplace_searchnext_desc : 'ÔٴβéÕÒ',
+searchreplace_replace_desc : '²éÕÒ/Ìæ»»',
+searchreplace_notfound : 'ËÑË÷Íê±Ï£¬Ã»ÓÐÕÒµ½Òª²éÕÒµÄ×Ö·û´®¡£',
+searchreplace_search_title : '²éÕÒ',
+searchreplace_replace_title : '²éÕÒ/Ìæ»»',
+searchreplace_allreplaced : 'ËùÓгöÏÖµÄ×Ö·û´®ÒÑÌæ»»Íê±Ï¡£',
+searchreplace_findwhat : '²éÕÒ',
+searchreplace_replacewith : 'Ì滻Ϊ',
+searchreplace_direction : '·½Ïò',
+searchreplace_up : 'ÏòÉÏ',
+searchreplace_down : 'ÏòÏÂ',
+searchreplace_case : 'Æ¥Åä´óСд',
+searchreplace_findnext : '²éÕÒÏÂÒ»¸ö',
+searchreplace_replace : 'Ìæ»»',
+searchreplace_replaceall : 'È«²¿Ìæ»»',
+searchreplace_cancel : 'È¡Ïû'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_searchreplace_replace_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/replace.js"></script>
+</head>
+<body onload="init();" style="display: none; margin: 4px;">
+<form onsubmit="searchNext('none');return false;" action="#">
+ <table border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td><label for="searchstring">{$lang_searchreplace_findwhat}</label></td>
+ <td><input type="text" id="searchstring" name="searchstring" style="width: 200px" /></td>
+ </tr>
+ <tr>
+ <td><label for="replacestring">{$lang_searchreplace_replacewith}</label></td>
+ <td><input type="text" id="replacestring" name="replacestring" style="width: 200px" /></td>
+ </tr>
+ <tr>
+ <td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><label>{$lang_searchreplace_direction}</label></td>
+ <td><input id="backwardsu" name="backwards" class="radio" type="radio" value="true" /></td>
+ <td><label for="backwardsu">{$lang_searchreplace_up}</label></td>
+ <td><input id="backwardsd" name="backwards" class="radio" type="radio" value="false" /></td>
+ <td><label for="backwardsd">{$lang_searchreplace_down}</label></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+<td colspan="2"><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="casesensitivebox" name="casesensitivebox" class="checkbox" type="checkbox" value="true" /></td>
+ <td><label for="casesensitivebox">{$lang_searchreplace_case}</label></td>
+ </tr>
+</table></td>
+</tr>
+ </table>
+ <table border="0" width="300" cellspacing="0" cellpadding="4">
+ <tr>
+ <td><input id="insertBtn" name="insertBtn" type="button" value="{$lang_searchreplace_findnext}" onclick="searchNext('none');" /></td>
+ <td><input name="replaceBtn" type="button" id="replaceBtn" value="{$lang_searchreplace_replace}" onclick="searchNext('current');" /></td>
+ <td><input name="replaceBtn" type="button" id="replaceAllBtn" value="{$lang_searchreplace_replaceall}" onclick="searchNext('all');" /></td>
+ <td align="right"><input name="cancelBtn" type="button" id="cancelBtn" value="{$lang_searchreplace_cancel}" onclick="cancelAction();" /></td>
+ </tr>
+ </table>
+</form>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_searchreplace_search_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/search.js"></script>
+</head>
+<body onload="init();" style="display: none; margin: 4px;">
+<form onsubmit="searchNext();return false;" action="#">
+ <table border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td><label for="searchstring">{$lang_searchreplace_findwhat}</label> <input type="text" id="searchstring" name="searchstring" style="width: 200px" /></td>
+ </tr>
+ <tr>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><label>{$lang_searchreplace_direction}</label></td>
+ <td><input id="backwardsu" name="backwards" class="radio" type="radio" value="true" /></td>
+ <td><label for="backwardsu">{$lang_searchreplace_up}</label></td>
+ <td><input id="backwardsd" name="backwards" class="radio" type="radio" value="false" /></td>
+ <td><label for="backwardsd">{$lang_searchreplace_down}</label></td>
+ </tr>
+ </table></td>
+ </tr>
+ <tr>
+<td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input id="casesensitivebox" name="casesensitivebox" class="checkbox" type="checkbox" value="true" /></td>
+ <td><label for="casesensitivebox">{$lang_searchreplace_case}</label></td>
+ </tr>
+</table></td>
+</tr>
+ </table>
+ <table border="0" width="300" cellspacing="0" cellpadding="4">
+ <tr>
+ <td><input id="insert" name="insert" type="submit" value="{$lang_searchreplace_findnext}" /></td>
+ <td align="right"><input id="cancel" name="cancel" type="button" value="{$lang_searchreplace_cancel}" onclick="cancelAction();" /></td>
+ </tr>
+ </table>
+</form>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_table_cell_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/cell.js"></script>
+ <link href="css/cell.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="tablecell" onload="init();" style="display: none">
+ <form onsubmit="updateAction();return false;">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <fieldset>
+ <legend>{$lang_table_general_props}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td><label for="align">{$lang_table_align}</label></td>
+ <td>
+ <select id="align" name="align">
+ <option value="">{$lang_not_set}</option>
+ <option value="center">{$lang_table_align_middle}</option>
+ <option value="left">{$lang_table_align_left}</option>
+ <option value="right">{$lang_table_align_right}</option>
+ </select>
+ </td>
+
+ <td><label for="celltype">{$lang_table_cell_type}</label></td>
+ <td>
+ <select id="celltype" name="celltype">
+ <option value="td">{$lang_table_td}</option>
+ <option value="th">{$lang_table_th}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="valign">{$lang_table_valign}</label></td>
+ <td colspan="2">
+ <select id="valign" name="valign">
+ <option value="">{$lang_not_set}</option>
+ <option value="top">{$lang_table_align_top}</option>
+ <option value="middle">{$lang_table_align_middle}</option>
+ <option value="bottom">{$lang_table_align_bottom}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="width">{$lang_table_width}</label></td>
+ <td><input id="width" name="width" type="text" value="" size="4" maxlength="4" /></td>
+
+ <td><label for="height">{$lang_table_height}</label></td>
+ <td><input id="height" name="height" type="text" value="" size="4" maxlength="4" /></td>
+ </tr>
+
+ <tr>
+ <td><label for="class">{$lang_class_name}</label></td>
+ <td colspan="2">
+ <select id="class" name="class">
+ <option value="" selected="selected">{$lang_not_set}</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="advanced_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_table_advanced_props}</legend>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td class="column1"><label for="id">{$lang_table_id}</label></td>
+ <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>
+ </tr>
+
+ <tr>
+ <td><label for="style">{$lang_table_style}</label></td>
+ <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="dir">{$lang_table_langdir}</label></td>
+ <td>
+ <select id="dir" name="dir" style="width: 200px">
+ <option value="">{$lang_not_set}</option>
+ <option value="ltr">{$lang_table_ltr}</option>
+ <option value="rtl">{$lang_table_rtl}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="lang">{$lang_table_langcode}</label></td>
+ <td>
+ <input id="lang" name="lang" type="text" value="" style="width: 200px" />
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('backgroundimagebrowser','backgroundimage','image','table');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');" /></td>
+ <td><script language="javascript" type="text/javascript">renderColorPicker('bordercolor_pick','bordercolor');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');" /></td>
+ <td><script language="javascript" type="text/javascript">renderColorPicker('bgcolor_pick','bgcolor');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div>
+ <select id="action" name="action">
+ <option value="cell">{$lang_table_cell_cell}</option>
+ <option value="row">{$lang_table_cell_row}</option>
+ <option value="all">{$lang_table_cell_all}</option>
+ </select>
+ </div>
+
+ <div style="float: left">
+ <div><input type="button" id="insert" name="insert" value="{$lang_update}" onclick="updateAction();" /></div>
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+/* CSS file for cell dialog in the table plugin */
+
+.panel_wrapper div.current {
+ height: 200px;
+}
+
+.advfield {
+ width: 200px;
+}
+
+#action {
+ margin-bottom: 3px;
+}
--- /dev/null
+/* CSS file for row dialog in the table plugin */
+
+.panel_wrapper div.current {
+ height: 200px;
+}
+
+.advfield {
+ width: 200px;
+}
+
+#action {
+ margin-bottom: 3px;
+}
--- /dev/null
+/* CSS file for table dialog in the table plugin */
+
+.panel_wrapper div.current {
+ height: 220px;
+}
+
+.advfield {
+ width: 200px;
+}
--- /dev/null
+/* Import plugin specific language pack */
+ 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_getInfo(){return{longname:'Tables',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_table.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_table_initInstance(inst){if(tinyMCE.isGecko){var doc=inst.getDoc();tinyMCE.addEvent(doc,"mouseup",TinyMCE_table_mouseDownHandler);try{doc.execCommand('enableInlineTableEditing',false,false);}catch(e){}}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.nodeName=="TH"||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TD")||(focusElm.parentNode&&focusElm.parentNode.nodeName=="TH"))){window.setTimeout(function(){var tableElm=tinyMCE.getParentElement(focusElm,"table");tinyMCE.handleVisualAid(tableElm,true,tinyMCE.settings['visual'],tinyMCE.selectedInstance);},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_col_after_desc}','mceTableInsertColAfter'],['col_before','table_insert_col_before.gif','{$lang_table_col_before_desc}','mceTableInsertColBefore'],['row_after','table_insert_row_after.gif','{$lang_table_row_after_desc}','mceTableInsertRowAfter'],['row_before','table_insert_row_before.gif','{$lang_table_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];if(but[0]==control_name&&(tinyMCE.isMSIE||!tinyMCE.settings['button_tile_map']))return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+');" onmousedown="return false;"><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\');" /></a>';else if(but[0]==control_name)return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+');" onmousedown="return false;"><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\');" /></a>';}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){switch(command){case "mceInsertTable":case "mceTableRowProps":case "mceTableCellProps":case "mceTableSplitCells":case "mceTableMergeCells":case "mceTableInsertRowBefore":case "mceTableInsertRowAfter":case "mceTableDeleteRow":case "mceTableInsertColBefore":case "mceTableInsertColAfter":case "mceTableDeleteCol":case "mceTableCutRow":case "mceTableCopyRow":case "mceTablePasteRowBefore":case "mceTablePasteRowAfter":case "mceTableDelete":var inst=tinyMCE.getInstanceById(editor_id);inst.execCommand('mceBeginUndoLevel');TinyMCE_table_doExecCommand(editor_id,element,command,user_interface,value);inst.execCommand('mceEndUndoLevel');return true;}return false;}function TinyMCE_table_doExecCommand(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,th");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,names){var namesAr=names.split(',');while((node=node.nextSibling)!=null){for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase())return node;}}return null;}function deleteMarked(tbl){if(tbl.rows==0)return;var tr=tbl.rows[0];do{var next=nextElm(tr,"TR");if(tr._delete){tr.parentNode.removeChild(tr);continue;}var td=tr.cells[0];if(td.cells>1){do{var nexttd=nextElm(td,"TD,TH");if(td._delete)td.parentNode.removeChild(td);}while((td=nexttd)!=null);}}while((tr=next)!=null);}function addRows(td_elm,tr_elm,rowspan){td_elm.rowSpan=1;var trNext=nextElm(tr_elm,"TR");for(var i=1;i<rowspan&&trNext;i++){var newTD=doc.createElement("td");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';template['width']=380;template['height']=295;template['width']+=tinyMCE.getLang('lang_table_rowprops_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_rowprops_delta_width',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes"});}return true;case "mceTableCellProps":if(tdElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/cell.htm';template['width']=380;template['height']=295;template['width']+=tinyMCE.getLang('lang_table_cellprops_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_cellprops_delta_width',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes"});}return true;case "mceInsertTable":if(user_interface){var template=new Array();template['file']='../../plugins/table/table.htm';template['width']=380;template['height']=295;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,inline:"yes",action:value});}return true;case "mceTableDelete":var table=tinyMCE.getParentElement(inst.getFocusElement(),"table");if(table){table.parentNode.removeChild(table);inst.repaint();}return true;case "mceTableSplitCells":case "mceTableMergeCells":case "mceTableInsertRowBefore":case "mceTableInsertRowAfter":case "mceTableDeleteRow":case "mceTableInsertColBefore":case "mceTableInsertColAfter":case "mceTableDeleteCol":case "mceTableCutRow":case "mceTableCopyRow":case "mceTablePasteRowBefore":case "mceTablePasteRowAfter":if(!tableElm)return true;if(tableElm!=trElm.parentNode)tableElm=trElm.parentNode;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']=250;template['height']=105;template['width']+=tinyMCE.getLang('lang_table_merge_cells_delta_width',0);template['height']+=tinyMCE.getLang('lang_table_merge_cells_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,inline:"yes",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.selectedInstance);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,th")){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
--- /dev/null
+/* Import plugin specific language pack */
+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_getInfo() {
+ return {
+ longname : 'Tables',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_table.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+function TinyMCE_table_initInstance(inst) {
+ if (tinyMCE.isGecko) {
+ var doc = inst.getDoc();
+
+ tinyMCE.addEvent(doc, "mouseup", TinyMCE_table_mouseDownHandler);
+
+ try {
+ // For future FF versions
+ doc.execCommand('enableInlineTableEditing', false, false);
+ } catch (e) {
+ // Ignore
+ }
+ }
+
+ inst.tableRowClipboard = null;
+}
+
+function TinyMCE_table_mouseDownHandler(e) {
+ var elm = tinyMCE.isMSIE ? event.srcElement : e.target;
+ var focusElm = tinyMCE.selectedInstance.getFocusElement();
+
+ // If press on special Mozilla create TD/TR thingie
+ if (elm.nodeName == "BODY" && (focusElm.nodeName == "TD" || focusElm.nodeName == "TH" || (focusElm.parentNode && focusElm.parentNode.nodeName == "TD") ||(focusElm.parentNode && focusElm.parentNode.nodeName == "TH") )) {
+ window.setTimeout(function() {
+ var tableElm = tinyMCE.getParentElement(focusElm, "table");
+ tinyMCE.handleVisualAid(tableElm, true, tinyMCE.settings['visual'], tinyMCE.selectedInstance);
+ }, 10);
+ }
+}
+
+/**
+ * Returns the HTML contents of the table control.
+ */
+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_col_after_desc}', 'mceTableInsertColAfter'],
+ ['col_before', 'table_insert_col_before.gif', '{$lang_table_col_before_desc}', 'mceTableInsertColBefore'],
+ ['row_after', 'table_insert_row_after.gif', '{$lang_table_row_after_desc}', 'mceTableInsertRowAfter'],
+ ['row_before', 'table_insert_row_before.gif', '{$lang_table_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]);
+
+ // Render table control
+ for (var i=0; i<controls.length; i++) {
+ var but = controls[i];
+
+ if (but[0] == control_name && (tinyMCE.isMSIE || !tinyMCE.settings['button_tile_map']))
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + but[3] + '\', ' + (but.length > 4 ? but[4] : false) + (but.length > 5 ? ', \'' + but[5] + '\'' : '') + ');" onmousedown="return false;"><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\');" /></a>';
+ else if (but[0] == control_name)
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + but[3] + '\', ' + (but.length > 4 ? but[4] : false) + (but.length > 5 ? ', \'' + but[5] + '\'' : '') + ');" onmousedown="return false;"><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\');" /></a>';
+ }
+
+ // Special tablecontrols
+ 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 "";
+}
+
+/**
+ * Executes the table commands.
+ */
+function TinyMCE_table_execCommand(editor_id, element, command, user_interface, value) {
+ // Is table command
+ switch (command) {
+ case "mceInsertTable":
+ case "mceTableRowProps":
+ case "mceTableCellProps":
+ case "mceTableSplitCells":
+ case "mceTableMergeCells":
+ case "mceTableInsertRowBefore":
+ case "mceTableInsertRowAfter":
+ case "mceTableDeleteRow":
+ case "mceTableInsertColBefore":
+ case "mceTableInsertColAfter":
+ case "mceTableDeleteCol":
+ case "mceTableCutRow":
+ case "mceTableCopyRow":
+ case "mceTablePasteRowBefore":
+ case "mceTablePasteRowAfter":
+ case "mceTableDelete":
+ var inst = tinyMCE.getInstanceById(editor_id);
+
+ inst.execCommand('mceBeginUndoLevel');
+ TinyMCE_table_doExecCommand(editor_id, element, command, user_interface, value);
+ inst.execCommand('mceEndUndoLevel');
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+/**
+ * Executes the table commands.
+ */
+function TinyMCE_table_doExecCommand(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,th");
+ var tableElm = tinyMCE.getParentElement(focusElm, "table");
+ var doc = inst.contentWindow.document;
+ var tableBorder = tableElm ? tableElm.getAttribute("border") : "";
+
+ // Get first TD if no TD found
+ if (trElm && tdElm == null)
+ tdElm = trElm.cells[0];
+
+ // ------- Inner functions ---------
+ function inArray(ar, v) {
+ for (var i=0; i<ar.length; i++) {
+ // Is array
+ if (ar[i].length > 0 && inArray(ar[i], v))
+ return true;
+
+ // Found value
+ 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);
+
+ // All ready filled
+ for (xstart = x; grid[y] && grid[y][xstart]; xstart++) ;
+
+ // Fill box
+ 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);
+
+ // Time to crop away some
+ 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);
+
+ // Remove due to rowspan
+ if (inArray(cells, td)) {
+ new_tr.childNodes[x]._delete = true;
+ } else if ((lastElm == null || td != lastElm) && sd.colspan > 1) { // Remove due to colspan
+ for (var i=x; i<x+td.colSpan; i++)
+ new_tr.childNodes[i]._delete = true;
+ }
+
+ if ((lastElm == null || td != lastElm) && sd.rowspan > 1)
+ td.rowSpan = sd.rowspan + 1;
+
+ lastElm = td;
+ }
+
+ deleteMarked(tableElm);
+ }
+ }
+
+ function prevElm(node, name) {
+ while ((node = node.previousSibling) != null) {
+ if (node.nodeName == name)
+ return node;
+ }
+
+ return null;
+ }
+
+ function nextElm(node, names) {
+
+ var namesAr = names.split(',');
+
+ while ((node = node.nextSibling) != null) {
+ for (var i=0; i<namesAr.length; i++) {
+ if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() )
+ return node;
+ }
+ }
+
+ return null;
+ }
+
+ function deleteMarked(tbl) {
+ if (tbl.rows == 0)
+ return;
+
+ var tr = tbl.rows[0];
+ do {
+ var next = nextElm(tr, "TR");
+
+ // Delete row
+ if (tr._delete) {
+ tr.parentNode.removeChild(tr);
+ continue;
+ }
+
+ // Delete cells
+ var td = tr.cells[0];
+ if (td.cells > 1) {
+ do {
+ var nexttd = nextElm(td, "TD,TH");
+
+ if (td._delete)
+ td.parentNode.removeChild(td);
+ } while ((td = nexttd) != null);
+ }
+ } while ((tr = next) != null);
+ }
+
+ function addRows(td_elm, tr_elm, rowspan) {
+ // Add rows
+ 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 = " ";
+ }
+
+ // Reset col/row span
+ newTD.colSpan = 1;
+ newTD.rowSpan = 1;
+
+ newTR.appendChild(newTD);
+
+ lastCell = tdElm;
+ }
+
+ return newTR;
+ }
+
+ // ---- Commands -----
+
+ // Handle commands
+ switch (command) {
+ case "mceTableRowProps":
+ if (trElm == null)
+ return true;
+
+ if (user_interface) {
+ // Setup template
+ var template = new Array();
+
+ template['file'] = '../../plugins/table/row.htm';
+ template['width'] = 380;
+ template['height'] = 295;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_table_rowprops_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_table_rowprops_delta_width', 0);
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes"});
+ }
+
+ return true;
+
+ case "mceTableCellProps":
+ if (tdElm == null)
+ return true;
+
+ if (user_interface) {
+ // Setup template
+ var template = new Array();
+
+ template['file'] = '../../plugins/table/cell.htm';
+ template['width'] = 380;
+ template['height'] = 295;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_table_cellprops_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_table_cellprops_delta_width', 0);
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes"});
+ }
+
+ return true;
+
+ case "mceInsertTable":
+ if (user_interface) {
+ // Setup template
+ var template = new Array();
+
+ template['file'] = '../../plugins/table/table.htm';
+ template['width'] = 380;
+ template['height'] = 295;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_insert_table_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_insert_table_delta_height', 0);
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes", action : value});
+ }
+
+ return true;
+
+ case "mceTableDelete":
+ var table = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+ if (table) {
+ table.parentNode.removeChild(table);
+ inst.repaint();
+ }
+ 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":
+ // No table just return (invalid command)
+ if (!tableElm)
+ return true;
+
+ // Table has a tbody use that reference
+ // Changed logic by ApTest 2005.07.12 (www.aptest.com)
+ // Now lookk at the focused element and take its parentNode. That will be a tbody or a table.
+ if (tableElm != trElm.parentNode)
+ tableElm = trElm.parentNode;
+
+ 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;
+
+ // Create cells
+ 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;
+
+ // Create cells
+ 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);
+
+ // Only one row, remove whole table
+ if (grid.length == 1) {
+ tableElm.parentNode.removeChild(tableElm);
+ return true;
+ }
+
+ // Move down row spanned cells
+ 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);
+ }
+ }
+
+ // Delete cells
+ 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;
+
+ // Only one col, remove whole table
+ if (grid.length > 1 && grid[0].length <= 1) {
+ tableElm.parentNode.removeChild(tableElm);
+ return true;
+ }
+
+ // Delete cells
+ 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"];
+
+ // Needs splitting
+ if (colspan > 1 || rowspan > 1) {
+ // Generate cols
+ 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);
+ }
+
+ // Apply visual aids
+ 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) {
+ // Setup template
+ var template = new Array();
+ var sp = getColRowSpan(tdElm);
+
+ template['file'] = '../../plugins/table/merge_cells.htm';
+ template['width'] = 250;
+ template['height'] = 105;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_table_merge_cells_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_table_merge_cells_height', 0);
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, inline : "yes", 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;
+
+ // Get rows and cells
+ 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);
+
+ // Within range
+ if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)
+ rowCells[rowCells.length] = td;
+ }
+ }
+
+ if (rowCells.length > 0)
+ rows[rows.length] = rowCells;
+ }
+
+ //return true;
+ }
+ } else {
+ var cells = new Array();
+ var sel = inst.getSel();
+ var lastTR = null;
+ var curRow = null;
+ var x1 = -1, y1 = -1, x2, y2;
+
+ // Only one cell selected, whats the point?
+ if (sel.rangeCount < 2)
+ return true;
+
+ // Get all selected cells
+ 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;
+ }
+
+ // Get rows and cells
+ 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;
+ }
+
+ // Find selected cells in grid and box
+ 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]) {
+ // Get start pos
+ if (x1 == -1) {
+ x1 = x;
+ y1 = y;
+ }
+
+ // Get end pos
+ x2 = x;
+ y2 = y;
+
+ grid[y][x]._selected = true;
+ }
+ }
+ }
+ }
+
+ // Is there gaps, if so deny
+ 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;
+ }
+ }
+ }
+ }
+
+ // Validate selection and get total rowspan and colspan
+ var rowSpan = 1, colSpan = 1;
+
+ // Validate horizontal and get total colspan
+ 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;
+ }
+
+ // Validate vertical and get total rowspan
+ 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;
+ }
+
+ // Setup td
+ tdElm = rows[0][0];
+ tdElm.rowSpan = rowSpan;
+ tdElm.colSpan = colSpan;
+
+ // Merge cells
+ 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;
+
+ // Not current cell
+ 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;
+
+ // Empty TR, remove it
+ 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.selectedInstance);
+ tinyMCE.triggerNodeChange();
+ inst.repaint();
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ 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);
+
+ // Reset table controls
+ 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);
+
+ // Within a tr element
+ if (tinyMCE.getParentElement(node, "tr"))
+ tinyMCE.switchClassSticky(editor_id + '_row_props', 'mceButtonSelected', false);
+
+ // Within a td element
+ if (tdElm = tinyMCE.getParentElement(node, "td,th")) {
+ 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);
+ }
+
+ // Within table
+ if (tinyMCE.getParentElement(node, "table")) {
+ tinyMCE.switchClassSticky(editor_id + '_table', 'mceButtonSelected');
+ tinyMCE.switchClassSticky(editor_id + '_merge_cells', 'mceButtonNormal', false);
+ }
+}
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var inst = tinyMCE.selectedInstance;
+ var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(tdElm.style.cssText);
+
+ // Get table cell data
+ var celltype = tdElm.nodeName.toLowerCase();
+ var align = tinyMCE.getAttrib(tdElm, 'align');
+ var valign = tinyMCE.getAttrib(tdElm, 'valign');
+ var width = tinyMCE.getAttrib(tdElm, 'width');
+ var height = tinyMCE.getAttrib(tdElm, 'height');
+ var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tdElm, 'class'), false);
+ var bordercolor = tinyMCE.getAttrib(tdElm, 'bordercolor');
+ var bgcolor = tinyMCE.getAttrib(tdElm, 'bgcolor');
+ var backgroundimage = getStyle(tdElm, st, 'background', 'background-image').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
+ var id = tinyMCE.getAttrib(tdElm, 'id');
+ var lang = tinyMCE.getAttrib(tdElm, 'lang');
+ var dir = tinyMCE.getAttrib(tdElm, 'dir');
+
+ // Setup form
+ addClassesToList('class', 'table_cell_styles');
+ formObj.bordercolor.value = bordercolor;
+ formObj.bgcolor.value = bgcolor;
+ formObj.backgroundimage.value = backgroundimage;
+ formObj.width.value = width;
+ formObj.height.value = height;
+ formObj.id.value = id;
+ formObj.lang.value = lang;
+ formObj.style.value = tinyMCE.serializeStyle(st);
+ selectByValue(formObj, 'align', align);
+ selectByValue(formObj, 'valign', valign);
+ selectByValue(formObj, 'class', className);
+ selectByValue(formObj, 'celltype', celltype);
+ selectByValue(formObj, 'dir', dir);
+
+ // Resize some elements
+ if (isVisible('backgroundimagebrowser'))
+ document.getElementById('backgroundimage').style.width = '180px';
+
+ updateColor('bordercolor_pick', 'bordercolor');
+ updateColor('bgcolor_pick', 'bgcolor');
+}
+
+function updateAction() {
+ var inst = tinyMCE.selectedInstance;
+ var tdElm = tinyMCE.getParentElement(inst.getFocusElement(), "td,th");
+ var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+ var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+ var formObj = document.forms[0];
+
+ inst.execCommand('mceBeginUndoLevel');
+
+ switch (getSelectValue(formObj, 'action')) {
+ case "cell":
+ updateCell(tdElm);
+ break;
+
+ case "row":
+ var cell = trElm.firstChild;
+
+ do {
+ cell = updateCell(cell, true);
+ } while ((cell = nextCell(cell)));
+
+ break;
+
+ case "all":
+ var rows = tableElm.getElementsByTagName("tr");
+
+ for (var i=0; i<rows.length; i++) {
+ var cell = rows[i].firstChild;
+
+ do {
+ cell = updateCell(cell, true);
+ } while ((cell = nextCell(cell)));
+ }
+
+ break;
+ }
+
+ tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+ tinyMCE.triggerNodeChange();
+ inst.execCommand('mceEndUndoLevel');
+ tinyMCEPopup.close();
+}
+
+function nextCell(elm) {
+ while ((elm = elm.nextSibling)) {
+ if (elm.nodeName == "TD" || elm.nodeName == "TH")
+ return elm;
+ }
+
+ return null;
+}
+
+function updateCell(td, skip_id) {
+ var inst = tinyMCE.selectedInstance;
+ var formObj = document.forms[0];
+ var curCellType = td.nodeName.toLowerCase();
+ var celltype = getSelectValue(formObj, 'celltype');
+ var doc = inst.getDoc();
+
+ if (!skip_id)
+ td.setAttribute('id', formObj.id.value);
+
+ td.setAttribute('align', formObj.align.value);
+ td.setAttribute('vAlign', formObj.valign.value);
+ td.setAttribute('width', formObj.width.value);
+ td.setAttribute('height', formObj.height.value);
+ td.setAttribute('borderColor', formObj.bordercolor.value);
+ td.setAttribute('bgColor', formObj.bgcolor.value);
+ td.setAttribute('lang', formObj.lang.value);
+ td.setAttribute('dir', getSelectValue(formObj, 'dir'));
+ td.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
+ tinyMCE.setAttrib(td, 'class', getSelectValue(formObj, 'class'));
+
+ if (curCellType != celltype) {
+ // changing to a different node type
+ var newCell = doc.createElement(celltype);
+
+ for (var c=0; c<td.childNodes.length; c++) {
+ newCell.appendChild(td.childNodes[c].cloneNode(1));
+ }
+
+ for (var a=0; a<td.attributes.length; a++) {
+ var attr = td.attributes[a];
+ newCell.setAttribute(attr.name, attr.value);
+ }
+
+ td.parentNode.replaceChild(newCell, td);
+ td = newCell;
+
+ return newCell;
+ }
+
+ return td;
+}
+
+function getStyle(elm, st, attrib, style) {
+ var val = tinyMCE.getAttrib(elm, attrib);
+
+ if (typeof(style) == 'undefined')
+ style = attrib;
+
+ return val == '' ? (st[style] ? st[style].replace('px', '') : '') : val;
+}
+
+function changedBackgroundImage() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+ formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedStyle() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ if (st['background-image'])
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+ else
+ formObj.backgroundimage.value = '';
+}
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+
+ formObj.numcols.value = tinyMCE.getWindowArg('numcols', 1);
+ formObj.numrows.value = tinyMCE.getWindowArg('numrows', 1);
+}
+
+function mergeCells() {
+ var args = new Array();
+ var formObj = document.forms[0];
+
+ args["numcols"] = formObj.numcols.value;
+ args["numrows"] = formObj.numrows.value;
+
+ tinyMCEPopup.execCommand("mceTableMergeCells", false, args);
+ tinyMCEPopup.close();
+}
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var inst = tinyMCE.selectedInstance;
+ var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(trElm.style.cssText);
+
+ // Get table row data
+ var rowtype = trElm.parentNode.nodeName.toLowerCase();
+ var align = tinyMCE.getAttrib(trElm, 'align');
+ var valign = tinyMCE.getAttrib(trElm, 'valign');
+ var height = tinyMCE.getAttrib(trElm, 'height');
+ var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(trElm, 'class'), false);
+ var bordercolor = tinyMCE.getAttrib(trElm, 'bordercolor');
+ var bgcolor = tinyMCE.getAttrib(trElm, 'bgcolor');
+ var backgroundimage = getStyle(trElm, st, 'background', 'background-image').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");;
+ var id = tinyMCE.getAttrib(trElm, 'id');
+ var lang = tinyMCE.getAttrib(trElm, 'lang');
+ var dir = tinyMCE.getAttrib(trElm, 'dir');
+
+ // Setup form
+ addClassesToList('class', 'table_row_styles');
+ formObj.bordercolor.value = bordercolor;
+ formObj.bgcolor.value = bgcolor;
+ formObj.backgroundimage.value = backgroundimage;
+ formObj.height.value = height;
+ formObj.id.value = id;
+ formObj.lang.value = lang;
+ formObj.style.value = tinyMCE.serializeStyle(st);
+ selectByValue(formObj, 'align', align);
+ selectByValue(formObj, 'valign', valign);
+ selectByValue(formObj, 'class', className);
+ selectByValue(formObj, 'rowtype', rowtype);
+ selectByValue(formObj, 'dir', dir);
+
+ // Resize some elements
+ if (isVisible('backgroundimagebrowser'))
+ document.getElementById('backgroundimage').style.width = '180px';
+
+ updateColor('bordercolor_pick', 'bordercolor');
+ updateColor('bgcolor_pick', 'bgcolor');
+}
+
+function updateAction() {
+ var inst = tinyMCE.selectedInstance;
+ var trElm = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+ var tableElm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+ var formObj = document.forms[0];
+ var action = getSelectValue(formObj, 'action');
+
+ inst.execCommand('mceBeginUndoLevel');
+
+ switch (action) {
+ case "row":
+ updateRow(trElm);
+ break;
+
+ case "all":
+ var rows = tableElm.getElementsByTagName("tr");
+
+ for (var i=0; i<rows.length; i++)
+ updateRow(rows[i], true);
+
+ break;
+
+ case "odd":
+ case "even":
+ var rows = tableElm.getElementsByTagName("tr");
+
+ for (var i=0; i<rows.length; i++) {
+ if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even"))
+ updateRow(rows[i], true, true);
+ }
+
+ break;
+ }
+
+ tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+ tinyMCE.triggerNodeChange();
+ inst.execCommand('mceEndUndoLevel');
+ tinyMCEPopup.close();
+}
+
+function updateRow(tr_elm, skip_id, skip_parent) {
+ var inst = tinyMCE.selectedInstance;
+ var formObj = document.forms[0];
+ var curRowType = tr_elm.parentNode.nodeName.toLowerCase();
+ var rowtype = getSelectValue(formObj, 'rowtype');
+ var doc = inst.getDoc();
+
+ // Update row element
+ if (!skip_id)
+ tr_elm.setAttribute('id', formObj.id.value);
+
+ tr_elm.setAttribute('align', getSelectValue(formObj, 'align'));
+ tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign'));
+ tr_elm.setAttribute('height', formObj.height.value);
+ tr_elm.setAttribute('borderColor', formObj.bordercolor.value);
+ tr_elm.setAttribute('bgColor', formObj.bgcolor.value);
+ tr_elm.setAttribute('lang', formObj.lang.value);
+ tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir'));
+ tr_elm.setAttribute('style', tinyMCE.serializeStyle(tinyMCE.parseStyle(formObj.style.value)));
+ tinyMCE.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class'));
+
+ // Setup new rowtype
+ if (curRowType != rowtype && !skip_parent) {
+ // first, clone the node we are working on
+ var newRow = tr_elm.cloneNode(1);
+
+ // next, find the parent of its new destination (creating it if necessary)
+ var theTable = tinyMCE.getParentElement(tr_elm, "table");
+ var dest = rowtype;
+ var newParent = null;
+ for (var i = 0; i < theTable.childNodes.length; i++) {
+ if (theTable.childNodes[i].nodeName.toLowerCase() == dest)
+ newParent = theTable.childNodes[i];
+ }
+
+ if (newParent == null) {
+ newParent = doc.createElement(dest);
+
+ if (dest == "thead")
+ theTable.insertBefore(newParent, theTable.firstChild);
+ else
+ theTable.appendChild(newParent);
+ }
+
+ // append the row to the new parent
+ newParent.appendChild(newRow);
+
+ // remove the original
+ tr_elm.parentNode.removeChild(tr_elm);
+
+ // set tr_elm to the new node
+ tr_elm = newRow;
+ }
+}
+
+function getStyle(elm, st, attrib, style) {
+ var val = tinyMCE.getAttrib(elm, attrib);
+
+ if (typeof(style) == 'undefined')
+ style = attrib;
+
+ return val == '' ? (st[style] ? st[style].replace('px', '') : '') : val;
+}
+
+function changedBackgroundImage() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+ formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedStyle() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ if (st['background-image'])
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+ else
+ formObj.backgroundimage.value = '';
+}
--- /dev/null
+var action;
+
+function insertTable() {
+ var formObj = document.forms[0];
+ var inst = tinyMCE.selectedInstance;
+ var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className;
+ var html = '';
+ var elm = tinyMCE.tableElm;
+
+ // Get form data
+ cols = formObj.elements['cols'].value;
+ rows = formObj.elements['rows'].value;
+ border = formObj.elements['border'].value != "" ? formObj.elements['border'].value : 0;
+ cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : "";
+ cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : "";
+ align = formObj.elements['align'].options[formObj.elements['align'].selectedIndex].value;
+ width = formObj.elements['width'].value;
+ height = formObj.elements['height'].value;
+ bordercolor = formObj.elements['bordercolor'].value;
+ bgcolor = formObj.elements['bgcolor'].value;
+ className = formObj.elements['class'].options[formObj.elements['class'].selectedIndex].value;
+ id = formObj.elements['id'].value;
+ summary = formObj.elements['summary'].value;
+ style = formObj.elements['style'].value;
+ dir = formObj.elements['dir'].value;
+ lang = formObj.elements['lang'].value;
+ background = formObj.elements['backgroundimage'].value;
+
+ // Update table
+ if (action == "update") {
+ inst.execCommand('mceBeginUndoLevel');
+
+ tinyMCE.setAttrib(elm, 'cellPadding', cellpadding, true);
+ tinyMCE.setAttrib(elm, 'cellSpacing', cellspacing, true);
+ tinyMCE.setAttrib(elm, 'border', border, true);
+ tinyMCE.setAttrib(elm, 'width', width, true);
+ tinyMCE.setAttrib(elm, 'height', height, true);
+ tinyMCE.setAttrib(elm, 'borderColor', bordercolor);
+ tinyMCE.setAttrib(elm, 'bgColor', bgcolor);
+ tinyMCE.setAttrib(elm, 'align', align);
+ tinyMCE.setAttrib(elm, 'class', className);
+ tinyMCE.setAttrib(elm, 'style', style);
+ tinyMCE.setAttrib(elm, 'id', id);
+ tinyMCE.setAttrib(elm, 'summary', summary);
+ tinyMCE.setAttrib(elm, 'dir', dir);
+ tinyMCE.setAttrib(elm, 'lang', lang);
+
+ if (background != '')
+ elm.style.backgroundImage = "url('" + background + "')";
+
+ tinyMCE.handleVisualAid(tinyMCE.tableElm, false, inst.visualAid, inst);
+
+ // Fix for stange MSIE align bug
+ tinyMCE.tableElm.outerHTML = tinyMCE.tableElm.outerHTML;
+
+ tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+ tinyMCE.triggerNodeChange();
+ inst.execCommand('mceEndUndoLevel');
+ tinyMCEPopup.close();
+ return true;
+ }
+
+ // Create new table
+ html += '<table';
+
+ html += makeAttrib('id', id);
+ html += makeAttrib('border', border);
+ html += makeAttrib('cellpadding', cellpadding);
+ html += makeAttrib('cellspacing', cellspacing);
+ html += makeAttrib('width', width);
+ html += makeAttrib('height', height);
+ html += makeAttrib('bordercolor', bordercolor);
+ html += makeAttrib('bgcolor', bgcolor);
+ html += makeAttrib('align', align);
+ html += makeAttrib('class', tinyMCE.getVisualAidClass(className, border == 0));
+ html += makeAttrib('style', style);
+ html += makeAttrib('summary', summary);
+ html += makeAttrib('dir', dir);
+ html += makeAttrib('lang', lang);
+
+ html += '>';
+
+ for (var y=0; y<rows; y++) {
+ html += "<tr>";
+
+ for (var x=0; x<cols; x++)
+ html += '<td> </td>';
+
+ html += "</tr>";
+ }
+
+ html += "</table>";
+
+ inst.execCommand('mceBeginUndoLevel');
+ inst.execCommand('mceInsertContent', false, html);
+ tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']);
+ inst.execCommand('mceEndUndoLevel');
+
+ tinyMCEPopup.close();
+}
+
+function makeAttrib(attrib, value) {
+ var formObj = document.forms[0];
+ var valueElm = formObj.elements[attrib];
+
+ if (typeof(value) == "undefined" || value == null) {
+ value = "";
+
+ if (valueElm)
+ value = valueElm.value;
+ }
+
+ if (value == "")
+ return "";
+
+ // XML encode it
+ value = value.replace(/&/g, '&');
+ value = value.replace(/\"/g, '"');
+ value = value.replace(/</g, '<');
+ value = value.replace(/>/g, '&gr;');
+
+ return ' ' + attrib + '="' + value + '"';
+}
+
+function getStyle(elm, st, attrib, style) {
+ var val = tinyMCE.getAttrib(elm, attrib);
+
+ if (typeof(style) == 'undefined')
+ style = attrib;
+
+ return val == '' ? (st[style] ? st[style].replace('px', '') : '') : val;
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var cols = 2, rows = 2, border = 0, cellpadding = "", cellspacing = "";
+ var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
+ var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "";
+ var inst = tinyMCE.selectedInstance;
+ var formObj = document.forms[0];
+ var elm = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+
+ tinyMCE.tableElm = elm;
+ action = tinyMCE.getWindowArg('action');
+ if (action == null)
+ action = "insert";
+
+ if (tinyMCE.tableElm && action != "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;
+
+ st = tinyMCE.parseStyle(tinyMCE.tableElm.style.cssText);
+ border = getStyle(elm, st, 'border', 'border-width');
+ cellpadding = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellpadding', "");
+ cellspacing = tinyMCE.getAttrib(tinyMCE.tableElm, 'cellspacing', "");
+ width = getStyle(elm, st, 'width');
+ height = getStyle(elm, st, 'height');
+ bordercolor = getStyle(elm, st, 'bordercolor', 'border-color');
+ bgcolor = getStyle(elm, st, 'bgcolor', 'background-color');
+ align = tinyMCE.getAttrib(tinyMCE.tableElm, 'align', align);
+ className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(tinyMCE.tableElm, 'class'), false);
+ id = tinyMCE.getAttrib(tinyMCE.tableElm, 'id');
+ summary = tinyMCE.getAttrib(tinyMCE.tableElm, 'summary');
+ style = tinyMCE.serializeStyle(st);
+ dir = tinyMCE.getAttrib(tinyMCE.tableElm, 'dir');
+ lang = tinyMCE.getAttrib(tinyMCE.tableElm, 'lang');
+ background = getStyle(elm, st, 'background', 'background-image').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+
+ action = "update";
+ }
+
+ addClassesToList('class', "table_styles");
+
+ // Update form
+ selectByValue(formObj, 'align', align);
+ selectByValue(formObj, 'class', className);
+ formObj.cols.value = cols;
+ formObj.rows.value = rows;
+ formObj.border.value = border;
+ formObj.cellpadding.value = cellpadding;
+ formObj.cellspacing.value = cellspacing;
+ formObj.width.value = width;
+ formObj.height.value = height;
+ formObj.bordercolor.value = bordercolor;
+ formObj.bgcolor.value = bgcolor;
+ formObj.id.value = id;
+ formObj.summary.value = summary;
+ formObj.style.value = style;
+ formObj.dir.value = dir;
+ formObj.lang.value = lang;
+ formObj.backgroundimage.value = background;
+ formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
+
+ updateColor('bordercolor_pick', 'bordercolor');
+ updateColor('bgcolor_pick', 'bgcolor');
+
+ // Resize some elements
+ if (isVisible('backgroundimagebrowser'))
+ document.getElementById('backgroundimage').style.width = '180px';
+
+ // Disable some fields in update mode
+ if (action == "update") {
+ formObj.cols.disabled = true;
+ formObj.rows.disabled = true;
+ }
+}
+
+function changedBackgroundImage() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
+
+ formObj.style.value = tinyMCE.serializeStyle(st);
+}
+
+function changedStyle() {
+ var formObj = document.forms[0];
+ var st = tinyMCE.parseStyle(formObj.style.value);
+
+ if (st['background-image'])
+ formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
+ else
+ formObj.backgroundimage.value = '';
+}
--- /dev/null
+// Arabic lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'إدراج/تحرير جدول',
+table_insert_row_before_desc : 'Insert row before',
+table_insert_row_after_desc : 'Insert row after',
+table_delete_row_desc : 'حذف صفوف',
+table_insert_col_before_desc : 'Insert column before',
+table_insert_col_after_desc : 'Insert column after',
+table_delete_col_desc : 'حذف أعمدة',
+insert_table_title : 'إدراج/تحرير جدول',
+insert_table_width : 'العرض',
+insert_table_height : 'الارتفاع',
+insert_table_cols : 'أعمدة',
+insert_table_rows : 'صفوف',
+insert_table_cellspacing : 'تباعد الخلايا',
+insert_table_cellpadding : 'المسافة البادئة',
+insert_table_border : 'سمك الحدود',
+insert_table_align : 'المحاذاة',
+insert_table_align_default : 'Default',
+insert_table_align_left : 'يسار',
+insert_table_align_right : 'يمين',
+insert_table_align_middle : 'وسط',
+insert_table_class : 'Class',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+tinyMCE.addToLang('',{
+table_desc : 'Vložit novou tabulku',
+table_insert_row_before_desc : 'Vložit řádek před',
+table_insert_row_after_desc : 'Vložit řádek po',
+table_delete_row_desc : 'Smazat řádek',
+table_insert_col_before_desc : 'Vložit sloupec před',
+table_insert_col_after_desc : 'Vložit sloupec po',
+table_delete_col_desc : 'Odstranit sloupec',
+insert_table_title : 'Vložit/upravit tabulku',
+insert_table_width : 'Šířka',
+insert_table_height : 'Výška',
+insert_table_cols : 'Sloupce',
+insert_table_rows : 'Řádky',
+insert_table_cellspacing : 'Vnější okraj buněk',
+insert_table_cellpadding : 'Vnitřní okraj buněk',
+insert_table_border : 'Rámeček',
+insert_table_align : 'Zarovnání',
+insert_table_align_default : 'Výchozí',
+insert_table_align_left : 'Vlevo',
+insert_table_align_right : 'Vpravo',
+insert_table_align_middle : 'Na střed',
+insert_table_class : 'Třída',
+table_row_title : 'Vlastnosti řádku',
+table_cell_title : 'Vlastnosti buňky',
+table_row_desc : 'Vlastnosti řádku',
+table_cell_desc : 'Vlastnosti řádku',
+insert_table_valign : 'Vertikální zarovnání',
+insert_table_align_top : 'Nahoru',
+insert_table_align_bottom : 'Dolů',
+table_props_desc : 'Vlastnosti tabulky',
+table_bordercolor : 'Barva rámečku',
+table_bgcolor : 'Barva pozadí',
+table_merge_cells_title : 'Sloučit buňky',
+table_split_cells_desc : 'Rozdělit buňky',
+table_merge_cells_desc : 'Sloučit buňky',
+table_cut_row_desc : 'Vyjmout řádek',
+table_copy_row_desc : 'Kopírovat řádek',
+table_paste_row_before_desc : 'Vložit řádek před',
+table_paste_row_after_desc : 'Vložit řádek za',
+table_insert_desc : 'Vložit tabulku'
+});
+
--- /dev/null
+// DK lang variables contributed by Jan Moelgaard
+
+tinyMCE.addToLang('',{
+table_desc : 'Indsætter en ny tabel',
+table_insert_row_before_desc : 'Indsæt række foran',
+table_insert_row_after_desc : 'Indsæt række efter',
+table_delete_row_desc : 'Slet række',
+table_insert_col_before_desc : 'Indsæt kolonne foran',
+table_insert_col_after_desc : 'Indslt kolonne efter',
+table_delete_col_desc : 'Fjern kolonne',
+insert_table_title : 'Indsæt/rediger tabel',
+insert_table_width : 'Bredde',
+insert_table_height : 'Højde',
+insert_table_cols : 'Kolonner',
+insert_table_rows : 'Rækker',
+insert_table_cellspacing : 'Afstand mellem celler',
+insert_table_cellpadding : 'Cellemargen',
+insert_table_border : 'Kant',
+insert_table_align : 'Justering',
+insert_table_align_default : 'Standard',
+insert_table_align_left : 'Venstre',
+insert_table_align_right : 'Højre',
+insert_table_align_middle : 'Midt i',
+insert_table_class : 'Klasse',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// DE lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Neue Tabelle einfügen / Tabelle bearbeiten',
+table_insert_row_before_desc : 'Zeile davor einfügen',
+table_insert_row_after_desc : 'Zeile danach einfügen',
+table_delete_row_desc : 'Zeile löschen',
+table_insert_col_before_desc : 'Spalte davor einfügen',
+table_insert_col_after_desc : ' Spalte danach einfügen',
+table_delete_col_desc : 'Spalte löschen',
+insert_table_title : 'Tabelle Einfügen/Bearbeiten',
+insert_table_width : 'Breite',
+insert_table_height : 'Höhe',
+insert_table_cols : 'Spalten',
+insert_table_rows : 'Zeilen',
+insert_table_cellspacing : 'Außenabstand',
+insert_table_cellpadding : 'Innenabstand',
+insert_table_border : 'Rahmen',
+insert_table_align : 'Ausrichten',
+insert_table_align_default : 'Normal',
+insert_table_align_left : 'Links',
+insert_table_align_right : 'Rechts',
+insert_table_align_middle : 'Zentriert',
+insert_table_class : 'Klasse',
+table_row_title : 'Zeileneigenschaften',
+table_cell_title : 'Zelleneigenschaften',
+table_row_desc : 'Reiheneigenschaften',
+table_cell_desc : 'Zelleneigenschaften',
+insert_table_valign : 'Vertikale Ausrichtung',
+insert_table_align_top : 'Oben',
+insert_table_align_bottom : 'Unten',
+table_props_desc : 'Tabelleneigenschaften',
+table_bordercolor : 'Rahmenfarbe',
+table_bgcolor : 'Hintergrundfarbe',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+table_desc : 'ÅéóáãùãÞ ðßíáêá',
+table_insert_row_before_desc : 'ÅéóáãùãÞ ãñáììÞò åðÜíù',
+table_insert_row_after_desc : 'ÅéóáãùãÞ ãñáììÞò êÜôù',
+table_delete_row_desc : 'ÄéáãñáöÞ ãñáììÞò',
+table_insert_col_before_desc : 'ÅéóáãùãÞ óôÞëçò áñéóôåñÜ',
+table_insert_col_after_desc : 'ÅéóáãùãÞ óôÞëçò äåîéÜ',
+table_delete_col_desc : 'ÄéáãñáöÞ óôÞëçò',
+insert_table_title : 'ÅéóáãùãÞ/Äéüñèùóç ðßíáêá',
+insert_table_width : 'ÐëÜôïò',
+insert_table_height : '¾øïò',
+insert_table_cols : 'ÓôÞëåò',
+insert_table_rows : 'ÃñáììÝò',
+insert_table_cellspacing : 'ÄéÜóôé÷ï',
+insert_table_cellpadding : 'ÃÝìéóìá',
+insert_table_border : 'Ðåñßãñáììá',
+insert_table_align : 'Óôïß÷éóç',
+insert_table_align_default : 'Ðñïêáè.',
+insert_table_align_left : 'ÁñéóôåñÜ',
+insert_table_align_right : 'ÄåîéÜ',
+insert_table_align_middle : 'Óôï êÝíôñï',
+insert_table_class : 'ÊëÜóç',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'General',
+advanced_tab : 'Advanced',
+general_props : 'General properties',
+advanced_props : 'Advanced properties',
+desc : 'Inserts a new table',
+row_before_desc : 'Insert row before',
+row_after_desc : 'Insert row after',
+delete_row_desc : 'Delete row',
+col_before_desc : 'Insert column before',
+col_after_desc : 'Insert column after',
+delete_col_desc : 'Remove col',
+rowtype : 'Row in table part',
+title : 'Insert/Modify table',
+width : 'Width',
+height : 'Height',
+cols : 'Columns',
+rows : 'Rows',
+cellspacing : 'Cellspacing',
+cellpadding : 'Cellpadding',
+border : 'Border',
+align : 'Alignment',
+align_default : 'Default',
+align_left : 'Left',
+align_right : 'Right',
+align_middle : 'Center',
+row_title : 'Table row properties',
+cell_title : 'Table cell properties',
+cell_type : 'Cell type',
+row_desc : 'Table row properties',
+cell_desc : 'Table cell properties',
+valign : 'Vertical alignment',
+align_top : 'Top',
+align_bottom : 'Bottom',
+props_desc : 'Table properties',
+bordercolor : 'Border color',
+bgcolor : 'Background color',
+merge_cells_title : 'Merge table cells',
+split_cells_desc : 'Split table cells',
+merge_cells_desc : 'Merge table cells',
+cut_row_desc : 'Cut table row',
+copy_row_desc : 'Copy table row',
+paste_row_before_desc : 'Paste table row before',
+paste_row_after_desc : 'Paste table row after',
+id : 'Id',
+style: 'Style',
+langdir : 'Language direction',
+langcode : 'Language code',
+mime : 'Target MIME type',
+ltr : 'Left to right',
+rtl : 'Right to left',
+bgimage : 'Background image',
+summary : 'Summary',
+td : "Data",
+th : "Header",
+cell_cell : 'Update current cell',
+cell_row : 'Update all cells in row',
+cell_all : 'Update all cells in table',
+row_row : 'Update current row',
+row_odd : 'Update odd rows in table',
+row_even : 'Update even rows in table',
+row_all : 'Update all rows in table',
+thead : 'Table Head',
+tbody : 'Table Body',
+tfoot : 'Table Foot',
+del : 'Delete table'
+});
--- /dev/null
+// ES lang variables by Alvaro Velasco
+
+tinyMCE.addToLang('',{
+table_desc : 'Insertar una tabla nueva',
+table_insert_row_before_desc : 'Insertar una fila antes',
+table_insert_row_after_desc : 'Insertar una fila despues',
+table_delete_row_desc : 'Eliminar una fila',
+table_insert_col_before_desc : 'Insertar una columna before',
+table_insert_col_after_desc : 'Insertar columna after',
+table_delete_col_desc : 'Eliminar una columna',
+insert_table_title : 'Insertar/Modificar tabla',
+insert_table_width : 'Anchura',
+insert_table_height : 'Altura',
+insert_table_cols : 'Columnas',
+insert_table_rows : 'Filas',
+insert_table_cellspacing : 'Espacio entre celdas',
+insert_table_cellpadding : 'Desplazamiento entre celdas',
+insert_table_border : 'Borde',
+insert_table_align : 'Alineamiento',
+insert_table_align_default : 'Por defecto',
+insert_table_align_left : 'Izquierda',
+insert_table_align_right : 'Derecha',
+insert_table_align_middle : 'Centro',
+insert_table_class : 'Class',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+table_desc : '??? ???? ????',
+table_insert_row_before_desc : '??? ??? ???? ??? ?? ??? ????',
+table_insert_row_after_desc : '??? ??? ???? ?? ?? ??? ????',
+table_delete_row_desc : '??? ???',
+table_insert_col_before_desc : '??? ???? ???? ??? ?? ???? ????',
+table_insert_col_after_desc : '??? ???? ???? ?? ?? ???? ????',
+table_delete_col_desc : '??? ????',
+insert_table_title : '??? ? ?????? ????',
+insert_table_width : '???',
+insert_table_height : '??????',
+insert_table_cols : '????? ??????',
+insert_table_rows : '????? ?????',
+insert_table_cellspacing : '????? ?? ???? ????',
+insert_table_cellpadding : '????? ??? ?? ?????? ????',
+insert_table_border : '?????',
+insert_table_align : '??? ???? ????',
+insert_table_align_default : '??? ???',
+insert_table_align_left : '??',
+insert_table_align_right : '????',
+insert_table_align_middle : '???',
+insert_table_class : '????',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// FI lang variables by Urho Konttori from Absolutions
+
+tinyMCE.addToLang('',{
+table_desc : 'Lisää uusi taulu',
+table_insert_row_before_desc : 'Lisää rivi edelle',
+table_insert_row_after_desc : 'Lisää rivi jälkeen',
+table_delete_row_desc : 'Posita rivi',
+table_insert_col_before_desc : 'Lisää sarake edelle',
+table_insert_col_after_desc : 'Lisää sarake jälkeen',
+table_delete_col_desc : 'Poista sarake',
+insert_table_title : 'Lisää/muokkaa taulua',
+insert_table_width : 'Leveys',
+insert_table_height : 'Korkeus',
+insert_table_cols : 'Sarakkeet',
+insert_table_rows : 'Rivit',
+insert_table_cellspacing : 'Solujen väli',
+insert_table_cellpadding : 'Solun reunan ja sisällön väli',
+insert_table_border : 'Reuna',
+insert_table_align : 'Asettelu',
+insert_table_align_default : 'Oletus',
+insert_table_align_left : 'Vasen',
+insert_table_align_right : 'Oikea',
+insert_table_align_middle : 'Keskelle',
+insert_table_delta_height'] = 20;
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// French lang variables by Laurent Dran
+
+tinyMCE.addToLang('',{
+table_desc : 'Insérer un nouveau tableau',
+table_insert_row_before_desc : 'Insérer une ligne avant',
+table_insert_row_after_desc : 'Insérer une ligne aprés',
+table_delete_row_desc : 'Supprimer la ligne',
+table_insert_col_before_desc : 'Insérer une colonne avant',
+table_insert_col_after_desc : 'Insérer une colonne aprés',
+table_delete_col_desc : 'Supprimer la colonne',
+insert_table_title : 'Insérer/Modifier le tableau',
+insert_table_width : 'Largeur',
+insert_table_height : 'Hauteur',
+insert_table_cols : 'Colonnes',
+insert_table_rows : 'Lignes',
+insert_table_cellspacing : 'Cellspacing',
+insert_table_cellpadding : 'Cellpadding',
+insert_table_border : 'Bordure',
+insert_table_align : 'Alignement',
+insert_table_align_default : 'Défaut',
+insert_table_align_left : 'Gauche',
+insert_table_align_right : 'Droit',
+insert_table_align_middle : 'Milieu',
+insert_table_class : 'Classe CSS',
+table_row_title : 'Propriétés de la rangée',
+table_cell_title : 'Propriétés de la cellule',
+table_row_desc : 'Propriétés de la rangée',
+table_cell_desc : 'Propriétés de la cellule',
+insert_table_valign : 'Alignement Vertical',
+insert_table_align_top : 'Haut',
+insert_table_align_bottom : 'Bas',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+table_desc : 'Insérer un nouveau tableau',
+table_insert_row_before_desc : 'Insérer une ligne avant',
+table_insert_row_after_desc : 'Insérer une ligne après',
+table_delete_row_desc : 'Supprimer la ligne',
+table_insert_col_before_desc : 'Insérer une colonne avant',
+table_insert_col_after_desc : 'Insérer une colonne après',
+table_delete_col_desc : 'Supprimer la colonne',
+insert_table_title : 'Insérer/Modifier le tableau',
+insert_table_width : 'Largeur',
+insert_table_height : 'Hauteur',
+insert_table_cols : 'Colonnes',
+insert_table_rows : 'Lignes',
+insert_table_cellspacing : 'Cellspacing',
+insert_table_cellpadding : 'Cellpadding',
+insert_table_border : 'Bordure',
+insert_table_align : 'Alignement',
+insert_table_align_default : 'Défaut',
+insert_table_align_left : 'Gauche',
+insert_table_align_right : 'Droit',
+insert_table_align_middle : 'Milieu',
+insert_table_class_name : 'Classe CSS',
+table_row_title : 'Propriétés de ligne',
+table_cell_title : 'Propriétés de cellule',
+table_row_desc : 'Propriétés de ligne',
+table_cell_desc : 'Propriétés de cellule',
+insert_table_valign : 'Alignement vertical',
+insert_table_align_top : 'Haut',
+insert_table_align_bottom : 'Bas',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+table_desc : 'îëðéñ èáìä çãùä',
+table_insert_row_before_desc : 'äëðñ ùåøä ìôðé',
+table_insert_row_after_desc : 'äëðñ ùåøä àçøé',
+table_delete_row_desc : 'îç÷ ùåøä',
+table_insert_col_before_desc : 'äëðñ èåø ìôðé',
+table_insert_col_after_desc : 'äëðñ èåø àçøé',
+table_delete_col_desc : 'äñø èåø',
+insert_table_title : 'äëðñ/ùðä èáìä',
+insert_table_width : 'øåçá',
+insert_table_height : 'âåáä',
+insert_table_cols : 'èåøéí',
+insert_table_rows : 'ùåøåú',
+insert_table_cellspacing : 'øéååç áéï úàéí',
+insert_table_cellpadding : 'øéôåã úàéí',
+insert_table_border : 'âáåì',
+insert_table_align : 'ééùåø',
+insert_table_align_default : 'áøéøú îçãì',
+insert_table_align_left : 'ùîàì',
+insert_table_align_right : 'éîéï',
+insert_table_align_middle : 'îøëæ',
+insert_table_class : 'îçì÷ä',
+table_row_title : 'îàôééðé ùåøú èáìä',
+table_cell_title : 'îàôééðé úà èáìä',
+table_row_desc : 'îàôééðé ùåøú èáìä',
+table_cell_desc : 'îàôééðé úà èáìä',
+insert_table_valign : 'ééùåø àðëé',
+insert_table_align_top : 'ìîòìä',
+insert_table_align_bottom : 'ìîèä',
+table_props_desc : 'îàôééðé èáìä',
+table_bordercolor : 'öáò âáåì',
+table_bgcolor : 'öáò ø÷ò',
+table_merge_cells_title : 'îæâ úàéí áèáìä',
+table_split_cells_desc : 'ôöì úàéí áèáìä',
+table_merge_cells_desc : 'îæâ úàéí áèáìä',
+table_cut_row_desc : 'âæåø ùåøä îäèáìä',
+table_copy_row_desc : 'äòú÷ ùåøä îäèáìä',
+table_paste_row_before_desc : 'äãá÷ ùåøä ìèáìä ìôðé',
+table_paste_row_after_desc : 'äãá÷ ùåøä ìèáìä àçøé',
+table_insert_desc : 'äëðñ èáìä çãùä'
+});
--- /dev/null
+// HU lang variables, Edited by 2XP (2xp@dino.hu)
+
+tinyMCE.addToLang('',{
+table_desc : 'Új táblázat beillesztése',
+table_insert_row_before_desc : 'Sor beillesztése elé',
+table_insert_row_after_desc : 'Sor beillesztése utána',
+table_delete_row_desc : 'Sor törlése',
+table_insert_col_before_desc : 'Oszlop beillsztése elé',
+table_insert_col_after_desc : 'Oszlop beillesztése utána',
+table_delete_col_desc : 'Oszlop eltávolítása',
+insert_table_title : 'Tábla beillesztése/módosítása',
+insert_table_width : 'Szélesség',
+insert_table_height : 'Magasság',
+insert_table_cols : 'Oszlopok',
+insert_table_rows : 'Sorok',
+insert_table_cellspacing : 'Cellspacing',
+insert_table_cellpadding : 'Cellpadding',
+insert_table_border : 'Keret',
+insert_table_align : 'Igazítás',
+insert_table_align_default : 'Alapértelmezett',
+insert_table_align_left : 'Balra',
+insert_table_align_right : 'Jobbra',
+insert_table_align_middle : 'Középre',
+insert_table_class : 'Class',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// Variabili di lingua IT - fabrix.xm@lombardiacom.it
+
+tinyMCE.addToLang('',{
+table_desc : 'Inserisci una nuova tabella',
+table_insert_row_before_desc : 'Inserisci una riga prima',
+table_insert_row_after_desc : 'Inserisci una riga dopo',
+table_delete_row_desc : 'Cancella riga',
+table_insert_col_before_desc : 'Inserisci colonna prima',
+table_insert_col_after_desc : 'Inserisci colonna dopo',
+table_delete_col_desc : 'Rimuovi colonna',
+insert_table_title : 'Inserisci/modifica tabella',
+insert_table_width : 'Larghezza',
+insert_table_height : 'Altezza',
+insert_table_cols : 'Colonne',
+insert_table_rows : 'Righe',
+insert_table_cellspacing : 'Cellspacing',
+insert_table_cellpadding : 'Cellpadding',
+insert_table_border : 'Bordo',
+insert_table_align : 'Allineamento',
+insert_table_align_default : 'Default',
+insert_table_align_left : 'Sinistra',
+insert_table_align_right : 'Destra',
+insert_table_align_middle : 'Centro',
+insert_table_class : 'Classe',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// JP lang variables
+
+tinyMCE.addToLang('',{
+table_desc : '\e$B%F!<%V%k\e(B',
+table_insert_row_before_desc : '\e$B9TA^F~\e(B(\e$BA0\e(B)',
+table_insert_row_after_desc : '\e$B9TA^F~\e(B(\e$B8e\e(B)',
+table_delete_row_desc : '\e$B9T:o=|\e(B',
+table_insert_col_before_desc : '\e$BNsA^F~\e(B(\e$BA0\e(B)',
+table_insert_col_after_desc : '\e$BNsA^F~\e(B(\e$B8e\e(B)',
+table_delete_col_desc : '\e$BNs:o=|\e(B',
+insert_table_title : '\e$B%F!<%V%k$NA^F~\e(B/\e$BJT=8\e(B',
+insert_table_cols : '\e$BNs?t\e(B',
+insert_table_rows : '\e$B9T?t\e(B',
+insert_table_cellspacing : '\e$B%;%kM>Gr\e(B',
+insert_table_cellpadding : '\e$B%;%k5M$a\e(B',
+insert_table_align : '\e$B0LCVD4@0\e(B',
+insert_table_align_default : '\e$B0EL[\e(B',
+insert_table_align_left : '\e$B:85M$a\e(B',
+insert_table_align_right : '\e$B1&5M$a\e(B',
+insert_table_align_middle : '\e$BCf1{4s$;\e(B',
+insert_table_width : '\e$BI}\e(B',
+insert_table_height : '\e$B9b$5\e(B',
+insert_table_border : '\e$B6-3&@~\e(B',
+insert_table_class : '\e$B%/%i%9\e(B',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Ç¥ ³Ö±â',
+table_insert_row_before_desc : '¾Õ¿¡ Çà ³Ö±â',
+table_insert_row_after_desc : 'µÚ¿¡ Çà ³Ö±â',
+table_delete_row_desc : 'Çà Áö¿ì±â',
+table_insert_col_before_desc : '¾Õ¿¡ ¿ ³Ö±â',
+table_insert_col_after_desc : 'µÚ¿¡ ¿ ³Ö±â',
+table_delete_col_desc : '¿ Áö¿ì±â',
+insert_table_title : 'Ç¥ ³Ö±â/°íÄ¡±â',
+insert_table_width : '³Êºñ',
+insert_table_height : '³ôÀÌ',
+insert_table_cols : 'Çà',
+insert_table_rows : '¿',
+insert_table_cellspacing : '¼¿ °£°Ý',
+insert_table_cellpadding : '¼¿ ¿©¹é',
+insert_table_border : 'Å׵θ®',
+insert_table_align : 'Á¤·Ä',
+insert_table_align_default : '±âº»°ª',
+insert_table_align_left : '¿ÞÂÊ',
+insert_table_align_right : '¿À¸¥ÂÊ',
+insert_table_align_middle : '°¡¿îµ¥',
+insert_table_class : 'Ŭ·¡½º',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Voeg een nieuwe tabel in',
+table_insert_row_before_desc : 'Voeg rij in voor ...',
+table_insert_row_after_desc : 'Voeg rij in na ...',
+table_delete_row_desc : 'Verwijder rij',
+table_insert_col_before_desc : 'Voeg kolom in voor ...',
+table_insert_col_after_desc : 'Voeg kolom in na ...',
+table_delete_col_desc : 'Verwijder kolom',
+insert_table_title : 'Invoegen/Bewerken tabel',
+insert_table_width : 'Breedte',
+insert_table_height : 'Hoogte',
+insert_table_cols : 'Kolommen',
+insert_table_rows : 'Rijen',
+insert_table_cellspacing : 'Celafstand',
+insert_table_cellpadding : 'Celvulling',
+insert_table_border : 'Omranding',
+insert_table_align : 'Positionering',
+insert_table_align_default : 'Standaard',
+insert_table_align_left : 'Links',
+insert_table_align_right : 'Rechts',
+insert_table_align_middle : 'Midden',
+insert_table_class : 'CSS-Stijl',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// NO lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Opprett/endre tabell',
+table_insert_row_before_desc : 'Opprett rad før',
+table_insert_row_after_desc : 'Opprett rad etter',
+table_delete_row_desc : 'Fjern rad',
+table_insert_col_before_desc : 'Opprett kolonne før',
+table_insert_col_after_desc : 'Opprett kolonne etter',
+table_delete_col_desc : 'Fjern kolonne',
+insert_table_title : 'Opprett/endre tabell',
+insert_table_width : 'Bredde',
+insert_table_height : 'Høyde',
+insert_table_cols : 'Kolonner',
+insert_table_rows : 'Rader',
+insert_table_cellspacing : 'Celle-mellomrom',
+insert_table_cellpadding : 'Celle-padding',
+insert_table_border : 'Rammebredde',
+insert_table_align : 'Justering',
+insert_table_align_default : 'Ingen',
+insert_table_align_left : 'Venstre',
+insert_table_align_right : 'Høyre',
+insert_table_align_middle : 'Midten',
+insert_table_class : 'Stil',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// PL lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Wstaw nowa tabele',
+table_insert_row_before_desc : 'Wstaw wiersz przed',
+table_insert_row_after_desc : 'Wstaw wiersz po',
+table_delete_row_desc : 'Skasuj wiersz',
+table_insert_col_before_desc : 'Wstaw kolumne przed',
+table_insert_col_after_desc : 'Wstaw kolumne po',
+table_delete_col_desc : 'Skasuj kolumne',
+insert_table_title : 'Wstaw/Modyfikuj tabele',
+insert_table_width : 'Szerokosc',
+insert_table_height : 'Wysokosc',
+insert_table_cols : 'Kolumny',
+insert_table_rows : 'Wiersze',
+insert_table_cellspacing : 'Cellspacing',
+insert_table_cellpadding : 'Cellpadding',
+insert_table_border : 'Ramka',
+insert_table_align : 'Wyrównanie',
+insert_table_align_default : 'Domyslny',
+insert_table_align_left : 'Do lewej',
+insert_table_align_right : 'Do prawej',
+insert_table_align_middle : 'Wycentrowanie',
+insert_table_class : 'Klasa',
+table_row_title : 'Wlasciwosci wiersza',
+table_cell_title : 'Wlasciwosci komórki',
+table_row_desc : 'Wlasciwosci wiersza',
+table_cell_desc : 'Wlasciwosci komórki',
+insert_table_valign : 'Wyrównanie pionowe',
+insert_table_align_top : 'do góry',
+insert_table_align_bottom : 'do dolu',
+table_props_desc : 'Wlasciwosci tabeli',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// PT lang variables
+
+tinyMCE.addToLang('',{
+table_desc : 'Insere uma nova tabela',
+table_insert_row_before_desc : 'Inserir linha antes',
+table_insert_row_after_desc : 'Inserir linha depois',
+table_delete_row_desc : 'Eliminar linha',
+table_insert_col_before_desc : 'Inserir coluna antes',
+table_insert_col_after_desc : 'Inserir coluna depois',
+table_delete_col_desc : 'Remover coluna',
+insert_table_title : 'Inserir/Modificar tabela',
+insert_table_width : 'Largura',
+insert_table_height : 'Altura',
+insert_table_cols : 'Colunas',
+insert_table_rows : 'Linhas',
+insert_table_cellspacing : 'Espaça<br/>mento',
+insert_table_cellpadding : 'Margem interior',
+insert_table_border : 'Borda',
+insert_table_align : 'Alinhamento',
+insert_table_align_default : 'Por omissão',
+insert_table_align_left : 'Esquerda',
+insert_table_align_right : 'Direita',
+insert_table_align_middle : 'Centrado',
+insert_table_class : 'Classe de CSS',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+Theme specific language packs.
+
+The language pack codes are based on ISO-639-2
+http://www.loc.gov/standards/iso639-2/englangn.html
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('table',{
+general_tab : 'Generella inställningar',
+advanced_tab : 'Avancerade inställningar',
+general_props : 'Generella inställningar',
+advanced_props : 'Avancerade inställningar',
+desc : 'Skapa ny tabell',
+before_desc : 'Skapa rad före',
+after_desc : 'Skapa rad efter',
+row_before_desc : 'Skapa rad före',
+row_after_desc : 'Skapa rad efter',
+delete_row_desc : 'Ta bort rad',
+col_before_desc : 'Skapa kolumn före',
+col_after_desc : 'Skapa kolumn efter',
+delete_col_desc : 'Ta bort kolumn',
+rowtype : 'Rad typ',
+title : 'Skapa/redigera ny tabell',
+width : 'Bredd',
+height : 'Höjd',
+cols : 'Columner',
+rows : 'Rader',
+cellspacing : 'Cellmellanrum',
+cellpadding : 'Cellutfyllnad',
+border : 'Ram',
+align : 'Justering',
+align_default : 'Ingen',
+align_left : 'Vänster',
+align_right : 'Höger',
+align_middle : 'Mitten',
+row_title : 'Tabell radsinställningar',
+cell_title : 'Tabell cellsinställningar',
+cell_type : 'Cell typ',
+row_desc : 'Tabell rads inställningar',
+cell_desc : 'Tabell cells inställningar',
+valign : 'Vertical justering',
+align_top : 'Toppen',
+align_bottom : 'Botten',
+props_desc : 'Tabell inställningar',
+bordercolor : 'Ram färg',
+bgcolor : 'Bakgrundsfärg',
+merge_cells_title : 'Sammanfoga tabell celler',
+split_cells_desc : 'Delaupp tabell celler',
+merge_cells_desc : 'Sammanfoga tabell celler',
+cut_row_desc : 'Klipput tabell rad',
+copy_row_desc : 'Kopiera tabell rad',
+paste_row_before_desc : 'Klistra in tabell rad före',
+paste_row_after_desc : 'Klistra in tabell rad efter',
+id : 'Id',
+style: 'Stil',
+langdir : 'Skrift riktning',
+langcode : 'Språk kåd',
+ltr : 'Vänster till höger',
+rtl : 'Höger till vänster',
+bgimage : 'Bakgrundsbild',
+summary : 'Sammanfattning',
+td : "Data",
+th : "Huvud",
+cell_cell : 'Updatera nuvarande cell',
+cell_row : 'Updatera alla celler i raden',
+cell_all : 'Updatera alla celler t tabellen',
+row_row : 'Updatera nuvarande rad',
+row_odd : 'Updatera udda rader i tabellen',
+row_even : 'Updatera jämna rader i tabellen',
+row_all : 'Updatera alla rader i tabellen',
+thead : 'Tabell Huvud',
+tbody : 'Tabell Kropp',
+tfoot : 'Tabell Fot',
+del : 'Tabort tabell'
+});
--- /dev/null
+// TW lang variables contributed by Jim Kou
+
+tinyMCE.addToLang('',{
+insert_table_align : '¹ï»ô',
+insert_table_align_default : '¼Ð·Ç',
+insert_table_align_left : '»ô¥ª',
+insert_table_align_middle : '¸m¤¤',
+insert_table_align_right : '»ô¥k',
+insert_table_border : '®Ø½u',
+insert_table_cellpadding : '¦rÅé»PÀx¦s®æ¶¡»Ø',
+insert_table_cellspacing : 'Àx¦s®æ¶¡»Ø',
+insert_table_class : '¼Ë¦¡',
+insert_table_cols : '¦æ',
+insert_table_height : '°ª«×',
+insert_table_rows : '¦C',
+insert_table_title : 'ªí®æ¼ÐÃD',
+insert_table_width : '¼e«×',
+table_delete_col_desc : '§R°£¤@¦æÀx¦s®æ',
+table_delete_row_desc : '§R°£¤@¦CÀx¦s®æ',
+table_desc : 'ªí®æ',
+table_insert_col_after_desc : '·s¼W¤@¦æÀx¦s®æ(«á)',
+table_insert_col_before_desc : '·s¼W¤@¦æÀx¦s®æ(«e)',
+table_insert_row_after_desc : '·s¼W¤@¦CÀx¦s®æ(«á)',
+table_insert_row_before_desc : '·s¼W¤@¦CÀx¦s®æ(«e)',
+table_row_title : 'Table row properties',
+table_cell_title : 'Table cell properties',
+table_row_desc : 'Table row properties',
+table_cell_desc : 'Table cell properties',
+insert_table_valign : 'Vertical alignment',
+insert_table_align_top : 'Top',
+insert_table_align_bottom : 'Bottom',
+table_props_desc : 'Table properties',
+table_bordercolor : 'Border color',
+table_bgcolor : 'Bg color',
+table_merge_cells_title : 'Merge table cells',
+table_split_cells_desc : 'Split table cells',
+table_merge_cells_desc : 'Merge table cells',
+table_cut_row_desc : 'Cut table row',
+table_copy_row_desc : 'Copy table row',
+table_paste_row_before_desc : 'Paste table row before',
+table_paste_row_after_desc : 'Paste table row after',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+table_desc : '²åÈëбí¸ñ',
+table_insert_row_before_desc : 'ÔÚÇ°Ãæ²åÈëÐÐ',
+table_insert_row_after_desc : 'ÔÚºóÃæ²åÈëÐÐ',
+table_delete_row_desc : 'ɾ³ýÐÐ',
+table_insert_col_before_desc : 'ÔÚÇ°Ãæ²åÈëÁÐ',
+table_insert_col_after_desc : 'ÔÚºóÃæ²åÈëÁÐ',
+table_delete_col_desc : 'ɾ³ýÁÐ',
+insert_table_title : '²åÈë/ÐÞ¸Ä ±í¸ñ',
+insert_table_width : '¿í¶È',
+insert_table_height : '¸ß¶È',
+insert_table_cols : 'ÁÐÊý',
+insert_table_rows : 'ÐÐÊý',
+insert_table_cellspacing : '¼ä¾à',
+insert_table_cellpadding : 'Ìî³ä',
+insert_table_border : '±ß¿ò',
+insert_table_align : '¶ÔÆ뷽ʽ',
+insert_table_align_default : 'ĬÈÏ',
+insert_table_align_left : '×ó¶ÔÆë',
+insert_table_align_right : 'ÓÒ¶ÔÆë',
+insert_table_align_middle : '¾ÓÖжÔÆë',
+insert_table_class_name : 'Àà',
+table_row_title : '±í¸ñÐÐÊôÐÔ',
+table_cell_title : 'µ¥Ôª¸ñÊôÐÔ',
+table_row_desc : '±í¸ñÐÐÊôÐÔ',
+table_cell_desc : 'µ¥Ôª¸ñÊôÐÔ',
+insert_table_valign : '´¹Ö±¶ÔÆë',
+insert_table_align_top : '¶¥¶Ë',
+insert_table_align_bottom : 'µ×²¿',
+table_props_desc : '±í¸ñÊôÐÔ',
+table_bordercolor : '±ß¿òÑÕÉ«',
+table_bgcolor : '±³¾°ÑÕÉ«',
+table_merge_cells_title : 'ºÏ²¢µ¥Ôª¸ñ',
+table_split_cells_desc : '²ð·Öµ¥Ôª¸ñ',
+table_merge_cells_desc : 'ºÏ²¢µ¥Ôª¸ñ',
+table_cut_row_desc : '¼ôÇÐÐÐ',
+table_copy_row_desc : '¸´ÖÆÐÐ',
+table_paste_row_before_desc : 'ÔÚÇ°Ãæ²åÈëÐÐ',
+table_paste_row_after_desc : 'ÔÚºóÃæ²åÈëÐÐ',
+table_insert_desc : 'Insert a new table'
+});
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_table_merge_cells_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/merge_cells.js"></script>
+</head>
+<body onload="init();" style="margin: 8px" style="display: none">
+<form onsubmit="insertTable();return false;" action="#">
+ <fieldset>
+ <legend>{$lang_table_merge_cells_title}</legend>
+ <table border="0" cellpadding="0" cellspacing="3" width="100%">
+ <tr>
+ <td>{$lang_table_cols}:</td>
+ <td align="right"><input type="text" name="numcols" value="" style="width: 30px" /></td>
+ <td>
+ </tr>
+ <tr>
+ <td>{$lang_table_rows}:</td>
+ <td align="right"><input type="text" name="numrows" value="" style="width: 30px" /></td>
+ </tr>
+ </table>
+ </fieldset>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_update}" onclick="mergeCells();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+</form>
+</body>
+</html>
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_table_row_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/row.js"></script>
+ <link href="css/row.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="tablerow" onload="init();" style="display: none">
+ <form onsubmit="updateAction();return false;">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <fieldset>
+ <legend>{$lang_table_general_props}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td><label for="rowtype">{$lang_table_rowtype}</label></td>
+ <td>
+ <select id="rowtype" name="rowtype">
+ <option value="thead">{$lang_table_thead}</option>
+ <option value="tbody">{$lang_table_tbody}</option>
+ <option value="tfoot">{$lang_table_tfoot}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="align">{$lang_table_align}</label></td>
+ <td>
+ <select id="align" name="align">
+ <option value="">{$lang_not_set}</option>
+ <option value="center">{$lang_table_align_middle}</option>
+ <option value="left">{$lang_table_align_left}</option>
+ <option value="right">{$lang_table_align_right}</option>
+ </select>
+ </td>
+
+ <td><label for="class">{$lang_class_name}</label></td>
+ <td>
+ <select id="class" name="class">
+ <option value="" selected="selected">{$lang_not_set}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td><label for="valign">{$lang_table_valign}</label></td>
+ <td>
+ <select id="valign" name="valign">
+ <option value="">{$lang_not_set}</option>
+ <option value="top">{$lang_table_align_top}</option>
+ <option value="middle">{$lang_table_align_middle}</option>
+ <option value="bottom">{$lang_table_align_bottom}</option>
+ </select>
+ </td>
+
+ <td><label for="height">{$lang_table_height}</label></td>
+ <td><input name="height" type="text" id="height" value="" size="4" maxlength="4" /></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="advanced_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_table_advanced_props}</legend>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td class="column1"><label for="id">{$lang_table_id}</label></td>
+ <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>
+ </tr>
+
+ <tr>
+ <td><label for="style">{$lang_table_style}</label></td>
+ <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="dir">{$lang_table_langdir}</label></td>
+ <td>
+ <select id="dir" name="dir" style="width: 200px">
+ <option value="">{$lang_not_set}</option>
+ <option value="ltr">{$lang_table_ltr}</option>
+ <option value="rtl">{$lang_table_rtl}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="lang">{$lang_table_langcode}</label></td>
+ <td>
+ <input id="lang" name="lang" type="text" value="" style="width: 200px" />
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('backgroundimagebrowser','backgroundimage','image','table');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');" /></td>
+ <td><script language="javascript" type="text/javascript">renderColorPicker('bordercolor_pick','bordercolor');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');" /></td>
+ <td><script language="javascript" type="text/javascript">renderColorPicker('bgcolor_pick','bgcolor');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div>
+ <select id="action" name="action">
+ <option value="row">{$lang_table_row_row}</option>
+ <option value="odd">{$lang_table_row_odd}</option>
+ <option value="even">{$lang_table_row_even}</option>
+ <option value="all">{$lang_table_row_all}</option>
+ </select>
+ </div>
+
+ <div style="float: left">
+ <div><input type="button" id="insert" name="insert" value="{$lang_update}" onclick="updateAction();" /></div>
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_table_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/table.js"></script>
+ <link href="css/table.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="table" onload="init();" style="display: none">
+ <form onsubmit="insertTable();return false;" action="#">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_table_general_tab}</a></span></li>
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{$lang_table_advanced_tab}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <fieldset>
+ <legend>{$lang_table_general_props}</legend>
+
+ <table border="0" cellpadding="4" cellspacing="0" width="100%">
+ <tr>
+ <td><label id="colslabel" for="cols">{$lang_table_cols}</label></td>
+ <td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" /></td>
+ <td><label id="rowslabel" for="rows">{$lang_table_rows}</label></td>
+ <td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" /></td>
+ </tr>
+ <tr>
+ <td><label id="cellpaddinglabel" for="cellpadding">{$lang_table_cellpadding}</label></td>
+ <td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" /></td>
+ <td><label id="cellspacinglabel" for="cellspacing">{$lang_table_cellspacing}</label></td>
+ <td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" /></td>
+ </tr>
+ <tr>
+ <td><label id="alignlabel" for="align">{$lang_table_align}</label></td>
+ <td><select id="align" name="align">
+ <option value="">{$lang_not_set}</option>
+ <option value="center">{$lang_table_align_middle}</option>
+ <option value="left">{$lang_table_align_left}</option>
+ <option value="right">{$lang_table_align_right}</option>
+ </select></td>
+ <td><label id="borderlabel" for="border">{$lang_table_border}</label></td>
+ <td><input id="border" name="border" type="text" value="" size="3" maxlength="3" /></td>
+ </tr>
+ <tr>
+ <td><label id="widthlabel" for="width">{$lang_table_width}</label></td>
+ <td><input name="width" type="text" id="width" value="" size="4" maxlength="4" /></td>
+ <td><label id="heightlabel" for="height">{$lang_table_height}</label></td>
+ <td><input name="height" type="text" id="height" value="" size="4" maxlength="4" /></td>
+ </tr>
+ <tr>
+ <td><label id="classlabel" for="class">{$lang_class_name}</label></td>
+ <td colspan="3">
+ <select id="class" name="class">
+ <option value="" selected>{$lang_not_set}</option>
+ </select></td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+
+ <div id="advanced_panel" class="panel">
+ <fieldset>
+ <legend>{$lang_table_advanced_props}</legend>
+
+ <table border="0" cellpadding="0" cellspacing="4">
+ <tr>
+ <td class="column1"><label for="id">{$lang_table_id}</label></td>
+ <td><input id="id" name="id" type="text" value="" class="advfield" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="summary">{$lang_table_summary}</label></td>
+ <td><input id="summary" name="summary" type="text" value="" class="advfield" /></td>
+ </tr>
+
+ <tr>
+ <td><label for="style">{$lang_table_style}</label></td>
+ <td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="dir">{$lang_table_langdir}</label></td>
+ <td>
+ <select id="dir" name="dir" class="advfield">
+ <option value="">{$lang_not_set}</option>
+ <option value="ltr">{$lang_table_ltr}</option>
+ <option value="rtl">{$lang_table_rtl}</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label id="langlabel" for="lang">{$lang_table_langcode}</label></td>
+ <td>
+ <input id="lang" name="lang" type="text" value="" class="advfield" />
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="backgroundimage">{$lang_table_bgimage}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('backgroundimagebrowser','backgroundimage','image','table');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="bordercolor">{$lang_table_bordercolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');" /></td>
+ <td><script language="javascript" type="text/javascript">renderColorPicker('bordercolor_pick','bordercolor');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="column1"><label for="bgcolor">{$lang_table_bgcolor}</label></td>
+ <td>
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr>
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');" /></td>
+ <td><script language="javascript" type="text/javascript">renderColorPicker('bgcolor_pick','bgcolor');</script></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </fieldset>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertTable();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+/* Import plugin specific language pack */
+ function TinyMCE_zoom_getInfo(){return{longname:'Zoom',author:'Moxiecode Systems',authorurl:'http://tinymce.moxiecode.com',infourl:'http://tinymce.moxiecode.com/tinymce/docs/plugin_zoom.html',version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion};};function TinyMCE_zoom_getControlHTML(control_name){if(!tinyMCE.isMSIE||tinyMCE.isMSIE5_0)return "";switch(control_name){case "zoom":return '<select id="{$editor_id}_formatSelect" name="{$editor_id}_zoomSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceZoom\',false,this.options[this.selectedIndex].value);" class="mceSelectList">\
+ <option value="100%">+ 100%</option>\
+ <option value="150%">+ 150%</option>\
+ <option value="200%">+ 200%</option>\
+ <option value="250%">+ 250%</option>\
+ </select>';}return "";}function TinyMCE_zoom_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceZoom":tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom=value;tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom=value;return true;}return false;}
\ No newline at end of file
--- /dev/null
+/* Import plugin specific language pack */
+
+function TinyMCE_zoom_getInfo() {
+ return {
+ longname : 'Zoom',
+ author : 'Moxiecode Systems',
+ authorurl : 'http://tinymce.moxiecode.com',
+ infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_zoom.html',
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
+ };
+};
+
+/**
+ * Returns the HTML contents of the zoom control.
+ */
+function TinyMCE_zoom_getControlHTML(control_name) {
+ if (!tinyMCE.isMSIE || tinyMCE.isMSIE5_0)
+ return "";
+
+ switch (control_name) {
+ case "zoom":
+ return '<select id="{$editor_id}_formatSelect" name="{$editor_id}_zoomSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceZoom\',false,this.options[this.selectedIndex].value);" class="mceSelectList">\
+ <option value="100%">+ 100%</option>\
+ <option value="150%">+ 150%</option>\
+ <option value="200%">+ 200%</option>\
+ <option value="250%">+ 250%</option>\
+ </select>';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mceZoom command.
+ */
+function TinyMCE_zoom_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceZoom":
+ tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom = value;
+ tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom = value;
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+zoom_prefix : 'æåí'
+});
--- /dev/null
+Check the TinyMCE documentation for details on this plugin.
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_about_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/mctabs.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/about.js"></script>
+ <link href="css/dialog_about.css" rel="stylesheet" type="text/css" />
+</head>
+<body id="about" onload="init();" style="display: none">
+ <div class="tabs">
+ <ul>
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{$lang_about}</a></span></li>
+ <li id="help_tab"><span><a href="javascript:mcTabs.displayTab('help_tab','help_panel');" onmousedown="return false;">{$lang_help}</a></span></li>
+ <li id="plugins_tab"><span><a href="javascript:mcTabs.displayTab('plugins_tab','plugins_panel');" onmousedown="return false;">{$lang_plugins}</a></span></li>
+ </ul>
+ </div>
+
+ <div class="panel_wrapper">
+ <div id="general_panel" class="panel current">
+ <h3>{$lang_about_title}</h3>
+ <p>Version: {$tinymce_version} ({$tinymce_releasedate})</p>
+ <p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a>
+ by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p>
+ <p>Copyright © 2005, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
+ <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p>
+
+ <div id="buttoncontainer"></div>
+ </div>
+
+ <div id="plugins_panel" class="panel">
+ <div id="pluginscontainer">
+ <h3>{$lang_loaded_plugins}</h3>
+
+ <div id="plugintablecontainer">
+ </div>
+
+ <p> </p>
+ </div>
+ </div>
+
+ <div id="help_panel" class="panel noscroll" style="overflow: visible;">
+ <div id="iframecontainer"></div>
+ </div>
+ </div>
+
+ <div class="mceActionPanel">
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_close}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_insert_anchor_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/anchor.js"></script>
+</head>
+<body onload="init();" style="display: none">
+<form onsubmit="insertAnchor();return false;" action="#">
+
+ <table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td colspan="2" class="title">{$lang_insert_anchor_title}</td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_anchor_name}:</td>
+ <td><input name="anchorName" type="text" id="anchorName" value="" style="width: 200px" /></td>
+ </tr>
+ </table>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" id="insert" name="insert" value="{$lang_update}" onclick="insertAnchor();" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" />
+ </div>
+ </div>
+
+</form>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_theme_charmap_title}</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/charmap.js"></script>
+</head>
+<body onload="init();" style="display: none">
+<table align="center" border="0" cellspacing="0" cellpadding="2">
+ <tr>
+ <td colspan="2" class="title">{$lang_theme_charmap_title}</td>
+ </tr>
+ <tr>
+ <td rowspan="2" align="left" valign="top">
+ <script language="javascript" type="text/javascript">renderCharMapHTML();</script>
+ </td>
+ <td width="100" align="center" valign="top">
+ <table border="0" cellpadding="0" cellspacing="0" width="100" style="height: 100px">
+ <tr>
+ <td class="charmapOver" style="font-size: 40px; height:80px;" id="codeV"> </td>
+ </tr>
+ <tr>
+ <td style="font-size: 10px; font-family: Arial, Helvetica, sans-serif; text-align:center;" id="codeN"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td valign="bottom" style="padding-bottom: 3px;">
+ <table width="100" align="center" border="0" cellpadding="2" cellspacing="0">
+ <tr>
+ <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">HTML-Code</td>
+ </tr>
+ <tr>
+ <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeA" align="center"> </td>
+ </tr>
+ <tr>
+ <td style="font-size: 1px;"> </td>
+ </tr>
+ <tr>
+ <td align="center" style="border-left: 1px solid #666699; border-top: 1px solid #666699; border-right: 1px solid #666699;">NUM-Code</td>
+ </tr>
+ <tr>
+ <td style="font-size: 16px; font-weight: bold; border-left: 1px solid #666699; border-bottom: 1px solid #666699; border-right: 1px solid #666699;" id="codeB" align="center"> </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_theme_colorpicker_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/color_picker.js"></script>
+</head>
+<body onload="init();" marginheight="3" topmargin="3" leftmargin="3" marginwidth="3" style="display: none">
+ <div align="center">
+ <script language="javascript" type="text/javascript">renderColorMap();</script>
+ </div>
+</body>
+</html>
--- /dev/null
+/* This file contains the CSS data for the editable area(iframe) of TinyMCE */
+/* You can extend this CSS by adding your own CSS file with the the content_css option */
+
+body {
+ background-color: #FFFFFF;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ scrollbar-3dlight-color: #F0F0EE;
+ scrollbar-arrow-color: #676662;
+ scrollbar-base-color: #F0F0EE;
+ scrollbar-darkshadow-color: #DDDDDD;
+ scrollbar-face-color: #E0E0DD;
+ scrollbar-highlight-color: #F0F0EE;
+ scrollbar-shadow-color: #F0F0EE;
+ scrollbar-track-color: #F5F5F5;
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+pre {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+.mceVisualAid {
+ border: 1px dashed #BBBBBB !important;
+}
+
+.mceItemAnchor {
+ width: 12px;
+ line-height: 6px;
+ overflow: hidden;
+ padding-left: 12px;
+ background-image: url('../images/anchor_symbol.gif');
+ background-position: bottom;
+ background-repeat: no-repeat;
+}
+
+/* Important is needed in Gecko browsers inorder to style links */
+/*
+a {
+ color: green !important;
+}
+*/
+
+/* Style selection range colors in Gecko browsers */
+/*
+::-moz-selection {
+ background-color: red;
+ color: green;
+}
+*/
--- /dev/null
+/* This file contains the CSS data for all popups in TinyMCE */
+
+body {
+ background-color: #F0F0EE;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ scrollbar-3dlight-color: #F0F0EE;
+ scrollbar-arrow-color: #676662;
+ scrollbar-base-color: #F0F0EE;
+ scrollbar-darkshadow-color: #DDDDDD;
+ scrollbar-face-color: #E0E0DD;
+ scrollbar-highlight-color: #F0F0EE;
+ scrollbar-shadow-color: #F0F0EE;
+ scrollbar-track-color: #F5F5F5;
+ margin: 8px;
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 11px;
+}
+
+input {
+ background: #FFFFFF;
+ border: 1px solid #cccccc;
+}
+
+td, input, select, textarea {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+input, select, textarea {
+ border: 1px solid #808080;
+}
+
+.input_noborder {
+ border: 0px solid #808080;
+}
+
+#insert {
+ font-weight: bold;
+ width: 90px;
+ height: 21px;
+ border: 0px;
+ background-image: url('../images/insert_button_bg.gif');
+ cursor: pointer;
+}
+
+#cancel {
+ font-weight: bold;
+ width: 90px;
+ height: 21px;
+ border: 0px;
+ background-image: url('../images/cancel_button_bg.gif');
+ cursor: pointer;
+}
+
+/* Mozilla only style */
+html>body #insert, html>body #cancel {
+ padding-bottom: 2px;
+}
+
+.title {
+ font-size: 12px;
+ font-weight: bold;
+ color: #2B6FB6;
+}
+
+table.charmap {
+ border-style: solid;
+ border-width: 1px;
+ border-color: #AAAAAA;
+}
+
+td.charmap, td.charmapOver {
+ color: #000000;
+ border-color: #AAAAAA;
+ border-style: solid;
+ border-width: 1px;
+ text-align: center;
+ font-size: 12px;
+}
+
+td.charmapOver {
+ background-color: #CCCCCC;
+ cursor: arrow;
+}
+
+a.charmap {
+ color: #000000;
+ text-decoration: none
+}
+
+.wordWrapCode {
+ vertical-align: middle;
+ border: 1px none #000000;
+ background-color: transparent;
+}
+
+input.radio {
+ border: 1px none #000000;
+ background-color: transparent;
+ vertical-align: middle;
+}
+
+input.checkbox {
+ border: 1px none #000000;
+ background-color: transparent;
+ vertical-align: middle;
+}
+
+.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected {
+ margin-left: 1px;
+}
+
+.mceButtonNormal {
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-color: #F0F0EE;
+ cursor: arrow;
+}
+
+.mceButtonOver {
+ border: 1px solid #0A246A;
+ cursor: arrow;
+ background-color: #B6BDD2;
+}
+
+.mceButtonDown {
+ cursor: arrow;
+ border: 1px solid #0A246A;
+ background-color: #8592B5;
+}
+
+.mceButtonDisabled {
+ filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+ -moz-opacity:0.3;
+ opacity: 0.3;
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-color: #F0F0EE;
+ cursor: arrow;
+}
+
+.mceActionPanel {
+ margin-top: 5px;
+}
+
+/* Tabs classes */
+
+.tabs {
+ float: left;
+ width: 100%;
+ line-height: normal;
+ background-image: url("../images/xp/tabs_bg.gif");
+}
+
+.tabs ul {
+ margin: 0;
+ padding: 0px 0px 0;
+ list-style: none;
+}
+
+.tabs li {
+ float: left;
+ background: url("../images/xp/tab_bg.gif") no-repeat left top;
+ margin: 0;
+ margin-left: 0px;
+ margin-right: 2px;
+ padding: 0 0 0 10px;
+ line-height: 18px;
+}
+
+.tabs li.current {
+ background: url("../images/xp/tab_sel_bg.gif") no-repeat left top;
+ margin-right: 2px;
+}
+
+.tabs span {
+ float: left;
+ display: block;
+ background: url("../images/xp/tab_end.gif") no-repeat right top;
+ padding: 0px 10px 0px 0px;
+}
+
+.tabs .current span {
+ background: url("../images/xp/tab_sel_end.gif") no-repeat right top;
+}
+
+.tabs a {
+ text-decoration: none;
+ font-family: Verdana, Arial;
+ font-size: 10px;
+}
+
+.tabs a:link, .tabs a:visited, .tabs a:hover {
+ color: black;
+}
+
+.tabs a:hover {
+}
+
+.tabs .current {
+}
+
+.tabs .current a, .tabs .current a:link, .tabs .current a:visited {
+}
+
+.panel_wrapper div.panel {
+ display: none;
+}
+
+.panel_wrapper div.current {
+ display: block;
+ width: 100%;
+ height: 300px;
+ overflow: visible; /* Should be auto but that breaks Safari */
+}
+
+.panel_wrapper {
+ border: 1px solid #919B9C;
+ border-top: 0px;
+ padding: 10px;
+ padding-top: 5px;
+ clear: both;
+ background-color: white;
+}
+
+fieldset {
+ border: 1px solid #919B9C;
+ font-family: Verdana, Arial;
+ font-size: 10px;
+ padding: 0px;
+ margin: 0px;
+ padding: 4px;
+}
+
+legend {
+ color: #2B6FB6;
+ font-weight: bold;
+}
+
+.properties {
+ width: 100%;
+}
+
+.properties .column1 {
+}
+
+.properties .column2 {
+ text-align: left;
+}
+
+a:link, a:visited {
+ color: black;
+}
+
+a:hover {
+ color: #2B6FB6;
+}
+
+#plugintable thead {
+ font-weight: bold;
+ background-color: #DDDDDD;
+}
+
+#plugintable, #about #plugintable td {
+ border: 1px solid #919B9C;
+}
+
+#plugintable {
+ width: 99%;
+ margin-top: 10px;
+}
+
+#pluginscontainer {
+ height: 290px;
+ overflow: auto;
+}
+
+/* MSIE Specific styles */
+
+* html .panel_wrapper {
+ width: 100%;
+}
+
+.column {
+ float: left;
+}
+
+h1, h2, h3, h4 {
+ color: #2B6FB6;
+ margin: 0px;
+ padding: 0px;
+ padding-top: 5px;
+}
+
+h3 {
+ font-size: 14px;
+}
+
+/* Disables the advanced tab in the table plugin. */
+/*
+#table #advanced_tab {
+ display: none;
+}
+*/
+
+/* Disables the border input field and label in the table plugin. */
+/*
+#table #border, #table #borderlabel {
+ display: none;
+}
+*/
--- /dev/null
+/* This file contains the CSS data for the editor UI of TinyMCE instances */
+
+.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected {
+ margin-top: 1px;
+ margin-left: 1px;
+}
+
+.mceButtonNormal {
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-color: #F0F0EE;
+ cursor: arrow;
+}
+
+.mceButtonOver {
+ border: 1px solid #0A246A;
+ cursor: arrow;
+ background-color: #B6BDD2;
+}
+
+.mceButtonDown {
+ cursor: arrow;
+ border: 1px solid #0A246A;
+ background-color: #8592B5;
+}
+
+.mceButtonSelected {
+ border: 1px solid;
+ border-color: #C0C0BB;
+ cursor: arrow;
+}
+
+.mceButtonDisabled {
+ filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+ -moz-opacity:0.3;
+ opacity: 0.3;
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-color: #F0F0EE;
+ cursor: arrow;
+}
+
+.mceSeparator {
+ border-top: 1px solid buttonhighlight;
+ border-left: 1px solid buttonhighlight;
+ border-bottom: 1px solid buttonshadow;
+ border-right: 1px solid buttonshadow;
+ margin-right: 2px;
+ margin-left: 2px;
+}
+
+.mceSeparatorLine {
+ margin:2px;
+ margin-left: 4px;
+ background-color: #F0F0EE;
+ border-top: 1px solid buttonshadow;
+ border-left: 1px solid buttonshadow;
+ border-bottom: 1px solid buttonhighlight;
+ border-right: 1px solid buttonhighlight;
+ width: 0px;
+ height: 15px;
+}
+
+.mceSelectList {
+ font-family: "MS Sans Serif";
+ font-size: 7pt;
+ font-weight: normal;
+ margin-top: 3px;
+ padding: 0px;
+ display: inline;
+ vertical-align: top;
+ background-color: #F0F0EE
+}
+
+.mceLabel, .mceLabelDisabled {
+ font-family: "MS Sans Serif";
+ font-size: 9pt;
+}
+
+.mceLabel {
+ color: #000000;
+}
+
+.mceLabelDisabled {
+ cursor: text;
+ color: #999999;
+}
+
+.mceEditor {
+ background: #F0F0EE;
+ border: 1px solid #cccccc;
+ padding: 0px;
+ margin: 0px;
+}
+
+.mceEditorArea {
+ font-family: "MS Sans Serif";
+ background: #FFFFFF;
+ padding: 0px;
+ margin: 0px;
+}
+
+.mceToolbarTop, .mceToolbarBottom {
+ background: #F0F0EE;
+}
+
+.mceToolbarTop {
+ border-bottom: 1px solid #cccccc;
+}
+
+.mceToolbarBottom {
+ border-top: 1px solid #cccccc;
+}
+
+.mceStatusbarTop, .mceStatusbarBottom, .mceStatusbar {
+ height: 20px;
+}
+
+.mceStatusbarTop .mceStatusbarPathText, .mceStatusbarBottom .mceStatusbarPathText, .mceStatusbar .mceStatusbarPathText {
+ font-family: "MS Sans Serif";
+ font-size: 9pt;
+ padding: 2px;
+ line-height: 16px;
+ overflow: visible;
+}
+
+.mceStatusbarTop {
+ border-bottom: 1px solid #cccccc;
+}
+
+.mceStatusbarBottom {
+ border-top: 1px solid #cccccc;
+}
+
+.mceStatusbar {
+ border-bottom: 1px solid #cccccc;
+}
+
+.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {
+ text-decoration: none;
+ font-family: "MS Sans Serif";
+ font-size: 9pt;
+ color: #000000;
+}
+
+.mcePathItem:hover {
+ text-decoration: underline;
+}
+
+.mceStatusbarPathText {
+ float: left;
+}
+
+.mceStatusbarResize {
+ float: right;
+ background-image: url('../images/statusbar_resize.gif');
+ background-repeat: no-repeat;
+ width: 11px;
+ height: 20px;
+ cursor: se-resize;
+}
+
+.mceResizeBox {
+ width: 10px;
+ height: 10px;
+ display: none;
+ border: 1px dotted gray;
+ margin: 0px;
+ padding: 0px;
+}
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>O TinyMCE</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">O TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Obsah</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE je malý WYSIWYG editor pro webové prohlí¾eèe jako jsou MSIE nebo Mozilla,
+kterým lze HTML obsah upravovat mnohem jednodu¹eji. Obsahuje bì¾né funkce,
+je¾ lze nalézt ve vìt¹inì textových editorù, proto by jeho pou¾ívání nemìlo být slo¾ité.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Jdi na: <a href="index.htm">Obsah</a></td>
+ <td align="right"><a href="#">Nahoru</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Bì¾ná tlaèítka</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Bì¾ná tlaèítka</span></td>
+ <td align="right"><a href="index.htm">Obsah</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Ní¾e je krátce popsáno ka¾dé tlaèítko.
+<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/cut.gif" width="20" height="20"></td>
+ <td>Zkopíruje aktuálnì vybraný obsah do schránky. (Ctrl+C)</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/copy.gif" width="20" height="20"></td>
+ <td>Vyjme aktuálnì vybraný obsah do schránky. (Ctrl+X)</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/paste.gif" width="20" height="20"></td>
+ <td>Vlo¾í obsah schránky do okna editoru. (Ctrl+P)</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Ztuèní text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Naformátuje text kurzívou.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Podtrhne text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Pøe¹krtne text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Zarovná vlevo.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Zarovná na støed.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Zarovná vpravo.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Zarovná do bloku.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Neøazený seznam/seznam s odrá¾ky.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Øazený seznam/èíslovaný seznam.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Pøedsadí/sní¾í odsazení.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Odsadí/zvý¹í odsazení.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Vrátí zpìt naposledy provedenou akci.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Obnoví poslední akci.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Vlo¾í nový odkaz, více o této funkci v èásti <a href="insert_link_button.htm">Vlo¾it odkaz</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Zru¹í odkaz v aktuálním výbìru/odstranit v¹echny vybrané odkazy.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Vlo¾í nový obrázek, více o této funkci v èásti <a href="insert_image_button.htm">Vlo¾it obrázek</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Vyèistí kód/odstraní nechtìné formátování. Tato funkce se hodí kdy¾
+ kopírujete obsah napøíklad z kanceláøského balíku.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Zobrazí tuto nápovìdu.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Otevøe editor s HTML zdrojem. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table.gif" width="20" height="20"></td>
+ <td>Do aktuální pozice vlo¾í novou 2x2 tabulku.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Pøidá øádek pøed aktuální. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Pøidá øádek pod aktuální. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Odstraní øádek. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Pøidá sloupec pøed aktuální.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Pøidá sloupec za aktuální.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Odstraní aktuální sloupec.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Pøidá nový vodorovný oddìlovaè.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Odstraní z výbìru formátování. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Vytvoøí z vybraného textu dolní index. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Vytvoøí z vybraného textu horní index. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Jdi na: <a href="index.htm">Obsah</a></td>
+ <td align="right"><a href="#">Nahoru</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Nápovìda</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Obsah</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Kliknutím na odkazy ní¾e zvolte po¾adovanou èást nápovìdy.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">O TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Bì¾ná tlaèítka</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Tlaèítko vlo¾it obrázek</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Tlaèítko vlo¾it odkaz</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Tlaèítko vlo¾it tabulku</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Tlaèítko vlo¾it obrázek</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Tlaèítko vlo¾it obrázek</span></td>
+ <td align="right"><a href="index.htm">Obsah</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Tlaèítko vlo¾it obrázek otevøe následující okno.<br>
+<br>
+<img src="images/insert_image_window.png" width="348" height="290"><br>
+<br>
+Jen vlo¾te URL obrázku, který chcete pøidat a zadáte jeho popis, jen¾ bude
+zobrazován jako alternativní popisek obrázku.<br>
+<br>
+<strong>Popis políèek:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>URL obrázku</strong></td>
+ <td>URL/cesta k obrázku.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Popis obrázku</strong></td>
+ <td>Alternativní popis toho, co je na obrázku.</td>
+ </tr>
+ <tr>
+ <td><strong>Rozmìry</strong></td>
+ <td>©íøka/vý¹ka obrázku. </td>
+ </tr>
+ <tr>
+ <td><strong>Zarovnání</strong></td>
+ <td>Zarovnání obrázku, vhodné pro obtékání obrázku textem.</td>
+ </tr>
+ <tr>
+ <td><strong>Rámeèek</strong></td>
+ <td>Tlou¹»ka rámeèku. </td>
+ </tr>
+ <tr>
+ <td><strong>Vertikální okraj</strong></td>
+ <td>Vertikální okraj, vhodné pro zalomení textu kolem obrázku.</td>
+ </tr>
+ <tr>
+ <td><strong>Horizontální okraj</strong></td>
+ <td>Horizontální okraj, vhodné pro zalomení textu kolem obrázku.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Jdi na: <a href="index.htm">Obsah</a></td>
+ <td align="right"><a href="#">Nahoru</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Tlaèítko vlo¾it odkaz</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Tlaèítko vlo¾it odkaz</span></td>
+ <td align="right"><a href="index.htm">Obsah</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Toto tlaèítko otevøe nové okno s mo¾ností vlo¾ení/úpravy odkazu.<br>
+<br>
+<img src="images/insert_link_window.png" width="328" height="160"><br>
+<br>
+V tomto oknì jsou dvì políèka. "URL odkazu" je adresa stránky, na
+kterou odkazujeme. "Cíl" urèuje, jak má být odkazovaná stránka otevøena.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Jdi na: <a href="index.htm">Obsah</a></td>
+ <td align="right"><a href="#">Nahoru</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Tlaèítko vlo¾it tabulku</TITLE>
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Tlaèítko vlo¾it tabulku</span></td>
+ <td align="right"><a href="index.htm">Obsah</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Tlaèítko vlo¾it tabulku otevøe následující okno, v nìm¾ mù¾ete definovat novou tabulku.<br>
+<br>
+<img src="images/insert_table_window.png" width="338" height="210"><br>
+<br>
+<strong>Popis políèek:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Sloupce</strong></td>
+ <td>Poèet sloupcù v tabulce.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Øádky</strong></td>
+ <td>Poèet øádkù v tabulce.</td>
+ </tr>
+ <tr>
+ <td><strong>Vnitøní okraj bunìk</strong></td>
+ <td>Vnitøní okraj bunìk tabulky.</td>
+ </tr>
+ <tr>
+ <td><strong>Vnìj¹í okraj bunìk</strong></td>
+ <td>Vnitøní okraj bunìk tabulky.</td>
+ </tr>
+ <tr>
+ <td><strong>Zarovnání</strong></td>
+ <td>Zarovnání tabulky.</td>
+ </tr>
+ <tr>
+ <td><strong>Rámeèek</strong></td>
+ <td>Tlou¹»ka rámeèku tabulky.</td>
+ </tr>
+ <tr>
+ <td><strong>©íøka</strong></td>
+ <td>©íøka tabulky v pixelech.</td>
+ </tr>
+ <tr>
+ <td><strong>Vý¹ka</strong></td>
+ <td>Vý¹ka tabulky v pixelech.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Jdi na: <a href="index.htm">Obsah</a></td>
+ <td align="right"><a href="#">Nahoru</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: 0; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Über TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Über TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Inhalt</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE ist ein kompakter WYSIWYG-Editor für Webbrowser wie MSIE oder Mozilla
+der es Ihnen ermöglicht HTML-Inhalte auf eine benutzerfreundliche Weise zu
+editieren. Es verfügt über die wichtigsten Funktionen die in den meisten
+Textverarbeitungen vorkommen und sollte einfach zu benutzen sein.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gehe zu: <a href="index.htm">Inhaltsverzeichnis</a></td>
+ <td align="right"><a href="#">nach oben</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Allgemeine Schaltflächen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Allgemeine Schaltflächen</span></td>
+ <td align="right"><a href="index.htm">Inhalt</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Untenstehend eine kurze Beschreibung jeder Schaltfläche.<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold_de_se.gif" width="20" height="20"></td>
+ <td>Fetter Text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic_de_se.gif" width="20" height="20"></td>
+ <td>Kursiver Text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Unterstrichener Text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Durchgestrichener Text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Linksbündig.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Zentriert.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Rechtsbündig.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Blocksatz.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Unsortierte Liste / Punktierte Liste.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Sortierte Liste / Nummerierte Liste.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Einzug verkleinern.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Einzug vergrössern.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Letzte Aktion rückgängig machen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Letzte Aktion wiederholen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Einen neuen Hyperlink einfügen, lesen Sie mehr über diese Funktion im Kapitel <a href="insert_link_button.htm">Hyperlink einfügen</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Den gegenwärtige markierten Hyperlink entfernen / Alle gegenwärtig markierten Hyperlinks entfernen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Ein neues Bild einfügen, lesen Sie mehr über diese Funktion im Kapitel <a href="insert_image_button.htm">Bild einfügen</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>unsauberen Code aufräumen / Entfernt ungewollte Formatierungen. Diese Funktion ist nützlich,
+ wenn Sie beispielsweise Inhalte aus einem Office Produkt kopieren.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Zeigt diese Hilfe an.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gehe zu: <a href="index.htm">Inhaltsverzeichnis</a></td>
+ <td align="right"><a href="#">nach oben</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Inhaltsverzeichnis der Hilfe</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Inhaltsverzeichnis</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Klicken Sie auf die untenstehenden Links um die verschiedenen Bereiche der Hilfe zu betrachten.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">Über TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Allgemeine Schaltflächen</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Schaltfläche Bild einfügen</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Schaltfläche Hyperlink einfügen</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Schaltfläche Bild einfügen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Schaltfläche Bild einfügen</span></td>
+ <td align="right"><a href="index.htm">Inhalt</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Die Schaltfläche "Bild einfügen" öffnet das unten gezeigte Fenster.<br>
+<br>
+<img src="images/insert_image_window.gif" width="350" height="166"><br>
+<br>
+Sie geben einfach die URL zu dem Bild ein, das Sie verknüpfen möchten und eine
+Beschreibung des Bildes, welche dann als alternative Textbeschreibung verwendet wird.
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gehe zu: <a href="index.htm">Inhaltsverzeichnis</a></td>
+ <td align="right"><a href="#">nach oben</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Schaltfläche Hyperlink einfügen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Schaltfläche Hyperlink einfügen</span></td>
+ <td align="right"><a href="index.htm">Inhalt</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Diese Schaltfläche öffnet das Fenster für die "Hyperlink einfügen / bearbeiten"-Funktion.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="166"><br>
+<br>
+Zwei Felder sind in diesem Fenster auszufüllen. Das Erste, "Hyperlink URL", ist für
+die URL der Verknüpfung. Das "Ziel" erlaubt Ihnen auszuwählen wie die Verknüpfung
+geöffnet werden soll.
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gehe zu: <a href="index.htm">Inhaltsverzeichnis</a></td>
+ <td align="right"><a href="#">nach oben</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>About TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">About TinyMCE</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE is a small WYSIWYG editor control for web browsers such as MSIE or Mozilla
+that enables you to edit HTML contents in a more user friendly way. It has common
+features that are found in most word processors and should not be difficult to
+use.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Table of contents</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Common buttons</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Common buttons</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Below is a short description about each button.<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Bold text style.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Italic text style.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Underline text style.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Strikethrough text style.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Align left.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Align center.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Align right.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Align full.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Unordered list/bullet list.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Ordered list/numbered list</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Outdent/decrease indentation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Indent/incread indentation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Undo the last operation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Redo the last operation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Insert a new link, read more about this function in the <a href="insert_link_button.htm">Insert
+ link section</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Unlinks the current selection/removes all selected links.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/anchor.gif" width="20" height="20"></td>
+ <td>Insert a new anchor, read more about this function in the <a href="insert_anchor_button.htm">Insert anchor section.</a></td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Insert a new image, read more about this function in the <a href="insert_image_button.htm">Insert
+ image section</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Cleanup code/Removes unwanted formating. This function is useful when
+ you copy contents from for example a office product.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Shows this help window.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Opens HTML source code editor. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Inserts a new 2x2 table at the current location. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Adds a row above the current one. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Adds a row under the current one. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Removes the row. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Adds a column before the current one.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Adds a column after the current one.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Removes the current column.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Inserts a new horizontal ruler </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Removes formatting from the selection. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Makes the selection to be subscript. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Makes the selection to be superscripted. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Table of contents</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Help Index</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Table of contents</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Click the links below to go to the different help sections.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">About TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Common buttons</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Insert image button</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Insert link button</a></li>
+ <li class="toc_li"><a href="insert_anchor_button.htm">Insert anchor button</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Insert table button</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert anchor button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insert anchor button</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+This button opens a new window with the insert/edit anchor function.<br>
+<br>
+<img src="images/insert_anchor_window.gif" width="330" height="139"><br>
+<br>
+There are one field in this window, this is where you enter the name of you anchor point. Remember the anchor name needs to be unique. <br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Table of contents</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert image button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insert image button</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+The insert image button opens the window shown below.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+You simply enter a URL to the image you want to link to and enter a image description,
+this is then displayed as an alternative text descripton of the image on the page.<br>
+<br>
+<strong>Field descriptions:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Image URL </strong></td>
+ <td>URL/path to the image.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Image description </strong></td>
+ <td>Alternative description of image contents.</td>
+ </tr>
+ <tr>
+ <td><strong>Dimentions</strong></td>
+ <td>Image width/height. </td>
+ </tr>
+ <tr>
+ <td><strong>Alignment</strong></td>
+ <td>Image alignment, useful when wrapping text around images.</td>
+ </tr>
+ <tr>
+ <td><strong>Border</strong></td>
+ <td>Border thickness. </td>
+ </tr>
+ <tr>
+ <td><strong>VSpace</strong></td>
+ <td>Vertical space, useful when wrapping text around images.</td>
+ </tr>
+ <tr>
+ <td><strong>HSpace</strong></td>
+ <td>Horizontal space, useful when wrapping text around images.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Table of contents</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert link button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insert link button</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+This button opens a new window with the insert/edit link function.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="159"><br>
+<br>
+There are two fields in this window the first one "Link URL" is the
+URL of the link. The target enables you to select how the link is to be opened.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Table of contents</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert table button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insert table button</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+The insert table button opens the window shown below. This action enables you to create tables. <br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="229" alt="Image of table window" /><br>
+<br>
+<strong>Field descriptions:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Columns</strong></td>
+ <td>Number of columns in the table. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Rows</strong></td>
+ <td>Number of rows in the new table.</td>
+ </tr>
+ <tr>
+ <td><strong>Cellpadding</strong></td>
+ <td>Cellpadding of the table . </td>
+ </tr>
+ <tr>
+ <td><strong>Cellspacing</strong></td>
+ <td>Cellspacing of the table .</td>
+ </tr>
+ <tr>
+ <td><strong>Alignment</strong></td>
+ <td>Table alignment . </td>
+ </tr>
+ <tr>
+ <td><strong>Border</strong></td>
+ <td>Border thinkness of table.</td>
+ </tr>
+ <tr>
+ <td><strong>Width</strong></td>
+ <td>Width in pixels of table .</td>
+ </tr>
+ <tr>
+ <td><strong>Height</strong></td>
+ <td>Height in pixels of table.</td>
+ </tr>
+ <tr>
+ <td><strong>Class</strong></td>
+ <td>Style or CSS class of table.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Table of contents</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Acerca de TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Acerca de TinyMCE</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE es un editor WYSIWYG para navegadores como MSIE o Mozilla que te permite editar el contenido HTML de una manera más amigable. Tiene la mayoría de las opciones de un procesador de texto y no debería ser dificil de usar.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ir a: <a href="index.htm">Lista de contenidos</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Botones de uso común</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Botones de uso común</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Pequeña descripción de cada botoón.<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Texto en negrita.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Texto en cursiva.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Texto subrayado.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Texto tachado.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Alinear a la izquierda.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Alinear al centro.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Alinear a la derecha.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Alinear justificado.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Lista desordenada/lista por puntos.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Lista ordenada/lista numerada</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Disminuir la sangría.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Aumentar la sangría.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Deshacer la última operación.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Rehacer la última operación.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Insertar un enlace, más información en <a href="insert_link_button.htm">insertar enlace</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Quita el enlace al texto seleccionado.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Insertar un imagen, más información en <a href="insert_image_button.htm">insertar imagen</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Limpiar código, esta función es útil cuando copias el código de otra página.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Muestra esta ventana de ayuda.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Abre el editor de HTML. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Inserta una nueva tabla de 2x2. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Añade una fila encima. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Añade una fila debajo. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Elimina una fila. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Añade una columna antes de la actual .</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Añade una columna después de la actual.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Elimina la columna actual.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Inserta un separador horizontal </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Elimina el formato de la selección. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Subíndice. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Superíndice. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ir a: <a href="index.htm">Lista de contenidos</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Índice de la ayuda</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Lista de contenidos</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Selecciona una sección para ver la ayuda.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">Acerca de TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Botones</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Insertar imagen</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Insertar enlaces</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Insertar tabla</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insertar imagen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insertar imagen</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+El botón insertar imagen abre la siguiente ventana.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+Tu sólo tienes que escribir la URL de la imagen que quieres que aparezca y escribir una descripción de esta, esta descripción aparecera como un texto alternativo que describa la imagen.<br>
+<br>
+<strong>Descripción de los campos:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Image URL </strong></td>
+ <td>URL de la imagen.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Image description </strong></td>
+ <td>Descripción alternativa del contenido de la imagen.</td>
+ </tr>
+ <tr>
+ <td><strong>Dimentions</strong></td>
+ <td>Altura/anchura de la imagen. </td>
+ </tr>
+ <tr>
+ <td><strong>Alignment</strong></td>
+ <td>Alineamiento, útil cuando colocas texto alrededor de la imagen.</td>
+ </tr>
+ <tr>
+ <td><strong>Border</strong></td>
+ <td>Anchura del borde. </td>
+ </tr>
+ <tr>
+ <td><strong>VSpace</strong></td>
+ <td>Espacio vertical, útil cuando colocas texto alrededor de la imagen.</td>
+ </tr>
+ <tr>
+ <td><strong>HSpace</strong></td>
+ <td>Espacio horizontal, útil cuando colocas texto alrededor de la imagen.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ir a: <a href="index.htm">Lista de contenidos</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insertar enlaces</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insertar enlaces</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Este botón abre una nueva ventana con la función insertar/editar enlace.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="159"><br>
+<br>
+Hay dos campos en esta ventana, el primero "Link URL" es donde hay que escribir la dirección del enlace. El segundo "Target" indica cómo se abrirá el enlace.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ir a: <a href="index.htm">Lista de contenidos</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insertar tabla</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Insertar tabla</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+El botón insertar tabla abre la siguiente ventana. Esta acci&ocaute;n te permite crear tablas.<br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="209"><br>
+<br>
+<strong>Descripción de los campos:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Columns</strong></td>
+ <td>Número de columnas.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Rows</strong></td>
+ <td>NAúmero de filas.</td>
+ </tr>
+ <tr>
+ <td><strong>Cellpadding</strong></td>
+ <td>Desplazamiento entre celdas . </td>
+ </tr>
+ <tr>
+ <td><strong>Cellspacing</strong></td>
+ <td>Espacio entre celdas .</td>
+ </tr>
+ <tr>
+ <td><strong>Alignment</strong></td>
+ <td>Alineamiento de la tabla. </td>
+ </tr>
+ <tr>
+ <td><strong>Border</strong></td>
+ <td>Anchura del borde de la tabla.</td>
+ </tr>
+ <tr>
+ <td><strong>Width</strong></td>
+ <td>Anchura de la tabla en pixels .</td>
+ </tr>
+ <tr>
+ <td><strong>Height</strong></td>
+ <td>Altura de la tabla en pixels.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ir a: <a href="index.htm">Tabla de contenidos</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>About TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Lisätietoa TinyMCE:stä</span></td>
+ <td align="right"><a href="index.htm">Sisällysluettelo</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE on pieni WYSIWYG sisällönmuokkausohjain webbiselaimille kuten MSIE tai Mozilla joka mahdollistaa HTML sisällön muokkauksen käyttäjäystävällisellä tavalla. Se tarjoaa yleiset tekstinkäsittelyohjelmien tarjoamat toiminnot eikä ole vaikea käyttää.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Mene: <a href="index.htm">Sisällysluetteloon</a></td>
+ <td align="right"><a href="#">Alkuun</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Common buttons</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Yleiset napit</span></td>
+ <td align="right"><a href="index.htm">Sisällysluettelo</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Alla on lyhyt selostus kaikista toimintonapeista.<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Lihavointi.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Kursivointi.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Alleviivaus.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Yliviivaus.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>vasen tasaus.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Keskitys.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Oikea tasaus.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Pakotettu tasaus.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Järjestämätön lista.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Järjestetty lista/numeroitu lista</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Poista / vähennä sisennystä.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Sisennä.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Peruuta viimeinen muutos.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Tee uudelleen viimeinen peruutettu muutos.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Lisää linkki. Lisätietoa tästä toiminnosta <a href="insert_link_button.htm">lisää linkki -osiosta</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Poista linkki valitusta tekstistä.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Lisää kuva. Lue lisää tästä toiminnosta <a href="insert_image_button.htm"> lisää kuva -osiosta</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Siisti koodi. Tämä toiminto on käytännöllinen kun liität tekstiä toimistosovelluksista.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Näyttäää tämän apuikkunan.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Avaa HTML lähdekoodieditorin. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Lisää tualu. Lue lisää tästä toiminnosta <a href="insert_table_button.htm"> lisää taulu -osiosta</a>. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Lisää rivi valitun rivin edelle. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Lisää rivi valitun rivin jälkeen. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Poista valittu rivi. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Lisää saraka valitun sarakkeen jälkeen.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Lisää sarake valitun sarakkeen edelle.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Poistaa valitun sarakkeen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Lisää vaakaviiva. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Poista muotoilu valitusta tekstistä. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Tekee valitusta tekstistä alamääreistä. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Tekee valitusta tekstistä ylämääreistä. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Mene: <a href="index.htm">Sisällysluetteloon</a></td>
+ <td align="right"><a href="#">Alkuun</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Apua sisällysluettelo</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Sisällysluettelo</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Napsauta alla olevista linkeistä mennäksesi eri osa-alueisiin.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">Lisätietoa TinyMCE:stä</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Toimintonapit</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Kuvan lisäysnapit</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Linkin lisäysnapit</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Taulun lisäysnapit</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert image button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Lisää linkki -nappi</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Lisää linkki -nappi avaa alla näkyvän ikkunan.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+Kirjoita haluamasi kuvan URL osoite ja lisää kuvalle selite. Selite näytetään vaihtoehtoisena selitteenä sivulla.
+<br>
+<br>
+<strong>Kenttien selitykset:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Kuvan URL</strong></td>
+ <td>Kuvan URL tai polku.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Kuvan selite</strong></td>
+ <td>Vaihtoehtoinen selite kuvan sisällöstä.</td>
+ </tr>
+ <tr>
+ <td><strong>Ulottuvuudet</strong></td>
+ <td>Kuvan leveys ja korkeus. </td>
+ </tr>
+ <tr>
+ <td><strong>Asettelu</strong></td>
+ <td>Kuvan asettelu, käytännöllinen kun halutaan tekstin rivittyvän kuvan ympärille.</td>
+ </tr>
+ <tr>
+ <td><strong>Reuna</strong></td>
+ <td>Kuvaa ympäröivän reunan leveys. </td>
+ </tr>
+ <tr>
+ <td><strong>Pystyväli</strong></td>
+ <td>Pystyväli, käytännöllinen kun halutaan tekstin rivittyvän kuvan ympärille.</td>
+ </tr>
+ <tr>
+ <td><strong>Vaakaväli</strong></td>
+ <td>Vaakaväli, useful when wrapping text around images.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Mene: <a href="index.htm">Sisällysluetteloon</a></td>
+ <td align="right"><a href="#">Alkuun</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert link button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Lisää linkki</span></td>
+ <td align="right"><a href="index.htm">Sisällysluettelo</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Tämä nappi avaa uuden ikkunan jossa on linkin lisäys- ja muokkaustoiminnallisuus.<br>
+<br>
+<img src="images/insert_link_window.gif" width="336" height="208"><br>
+<br>
+
+Tässä ikkunassa on kaksi kenttää. Ensimmäinen kenttä, "Linkin URL", on linkin osoittama URL -osoite.
+Toinen kenttä, "kohde", vaikuttaa siihen miten linkki avataan.
+The target enables you to select how the link is to be opened.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Mene: <a href="index.htm">Sisällysluetteloon</a></td>
+ <td align="right"><a href="#">Alkuun</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Insert table button</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Lisää taulu -nappi</span></td>
+ <td align="right"><a href="index.htm">Sisällysluettelo</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Lisää taulu -nappi avaa alla näkyvän ikkunan. Tämä toimonto mahdollistaa taulujen luonnin.<br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="209"><br>
+<br>
+<strong>Kenttien selitteet:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Sarakkeet</strong></td>
+ <td>Taulussa olevien saraakkeiden määrä. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Rivit</strong></td>
+ <td>Taulussa olevien rivien määrä.</td>
+ </tr>
+ <tr>
+ <td><strong>Solun reunan ja sisällön väli</strong></td>
+ <td>Taulun sisällä olevan solun reunan ja sisällön väli. </td>
+ </tr>
+ <tr>
+ <td><strong>Solujen väli</strong></td>
+ <td>Taulun sisällä olevien solujen väli.</td>
+ </tr>
+ <tr>
+ <td><strong>Asettelu</strong></td>
+ <td>Taulun asettelu. </td>
+ </tr>
+ <tr>
+ <td><strong>Reuna</strong></td>
+ <td>Reunan leveys.</td>
+ </tr>
+ <tr>
+ <td><strong>Leveys</strong></td>
+ <td>Taulun leveys pikseleinä.</td>
+ </tr>
+ <tr>
+ <td><strong>Korkeus</strong></td>
+ <td>Taulun korkeus pikseleinä.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Mene: <a href="index.htm">Sisällysluetteloon</a></td>
+ <td align="right"><a href="#">Alkuun</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>À propos de TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">À propos de TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE est un petit éditeur "WYSIWYG" pour page Web comme MSIE ou Mozilla qui
+vous permet de manipuler du contenu HTML d'une façon plus intuitive.
+Il est simple d'utilisation et possède les fonctionalités ls plus répendues que l'on peut retrouver dans
+les traitements de texte.
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outils communs</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outils communs</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Ci-dessous une courte description de chacuns des outils.<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold_fr.gif" width="20" height="20"></td>
+ <td>Met le texte sélectionné en gras.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Met le texte sélectionné en italique.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Souligne le texte sélectionné.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Barre le texte sélectionné.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Alignement à gauche.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Alignement au centré.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Alignement à droite.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Texte justifié.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Liste à puces.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Liste numérotée</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Réduit l'indentation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Augmente l'indentation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Annule la dernière opération.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Refait la dernière opération annulée.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Insère ou modifie un hyperlien. Allez à la page <a href="insert_link_button.htm">
+ Outil d'ajout d'hyperliens</a> pour plus de détails.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Efface les hyperliens qui sont sélectionées.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Insère ou modifie une image. Allez à la page <a href="insert_image_button.htm">
+ Outil d'ajout d'images</a> pour plus de détails.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Nettoie le code et retire les paramètres non désirés. Cet outil
+ est très utile lorsque vous copiez du contenu provenant de logiciels
+ de bureatique.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Affiche cette page d'aide.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Ouvre un éditeur permettant de modifier le code HTML. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Insère un nouveau tableau à la position actuelle. Allez à la page <a href="insert_table_button.htm">
+ Outil d'ajout de tableau</a> pour plus de détails.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Ajoute une ligne au tableau avant la ligne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Ajoute une ligne au tableau après la ligne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Supprime la ligne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Ajoute une colonne au tableau avant la colonne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Ajoute une colonne au tableau après la colonne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Supprime la colonne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Insère un séparateur horizontal. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Supprime les formattages du texte sélectionné. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Transforme le texte sélectionné en texte souscrit. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Transforme le texte sélectionné en indice supérieur. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Table des matières de l'aide</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Table des matières</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Faites votre sélection parmis les thèmes suivants:
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">À propos de TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Outils communs</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Outil d'ajout d'images</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Outil d'ajout d'hyperliens</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Outil d'ajout de tableau</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout d'images</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout d'images</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout d'images ouvre la fenêtre ci-dessous.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+Vous entrez tout simplement l'adresse de l'image que vous désirez ajouter et
+entrez une description facultative. La description sera affichée en texte alternatif
+sur l'image lorsqu'elle sera publiée.<br>
+<br>
+<strong>Description des champs:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Adresse de l'image </strong></td>
+ <td>Adresse URL de l'image à insérer.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Description de l'image </strong></td>
+ <td>Description alternative de l'image.</td>
+ </tr>
+ <tr>
+ <td><strong>Dimensions</strong></td>
+ <td>Largeur et Hauteur de l'image en pixel. </td>
+ </tr>
+ <tr>
+ <td><strong>Alignement</strong></td>
+ <td>Alignement de l'image. Très utile pour faire contourner le texte autour des images.</td>
+ </tr>
+ <tr>
+ <td><strong>Bordure</strong></td>
+ <td>Épaisseur en pixel de la bordure. </td>
+ </tr>
+ <tr>
+ <td><strong>VSpace</strong></td>
+ <td>Espacement vertical. Très utile pour faire contourner le texte autour des images.</td>
+ </tr>
+ <tr>
+ <td><strong>HSpace</strong></td>
+ <td>Espacement horizontal. Très utile pour faire contourner le texte autour des images.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout d'hyperliens</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout d'hyperliens</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout d'hyperlien ouvre la fenêtre ci-dessous.<br>
+<br>
+<img src="images/insert_link_window.gif"><br>
+<br>
+Il y a deux champs dans cette fenêtre. L'Adresse URL est l'adresse
+de l'hyperlien. La destination vous permet de choisir de quelle façon
+l'hyperlien sera ouvert.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout de tableau</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout de tableau</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout de tableau ouvre la fenêtre ci-dessous. Elle vous permet de créer dfes talbeaux.<br>
+<br>
+<img src="images/insert_table_window.gif"><br>
+<br>
+<strong>Description des champs:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Colonnes</strong></td>
+ <td>Nombre de colonnes du tableau. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Lignes</strong></td>
+ <td>Nombre de lignes du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Cellpadding</strong></td>
+ <td>Marge à l'intérieur des cellules du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Cellspacing</strong></td>
+ <td>Espacement entre les cellules du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Alignement</strong></td>
+ <td>Alignement du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Bordure</strong></td>
+ <td>Épaisseur des bordures du tableau.</td>
+ </tr>
+ <tr>
+ <td><strong>Largeur</strong></td>
+ <td>Largeur en pixel du tableau.</td>
+ </tr>
+ <tr>
+ <td><strong>Hauteur</strong></td>
+ <td>Hauteur en pixel du tableau.</td>
+ </tr>
+ <tr>
+ <td><strong>Classe CSS</strong></td>
+ <td>Nom de la classe CSS pour appliquer un style.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>À propos de TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">À propos de TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE est un petit éditeur "WYSIWYG" pour page Web comme MSIE ou Mozilla qui
+vous permet de manipuler du contenu HTML d'une façon plus intuitive.
+Il est simple d'utilisation et possède les fonctionalités ls plus répendues que l'on peut retrouver dans
+les traitements de texte.
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outils communs</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outils communs</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Ci-dessous une courte description de chacuns des outils.<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold_fr.gif" width="20" height="20"></td>
+ <td>Met le texte sélectionné en gras.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Met le texte sélectionné en italique.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Souligne le texte sélectionné.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Barre le texte sélectionné.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Alignement à gauche.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Alignement au centré.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Alignement à droite.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Texte justifié.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Liste à puces.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Liste numérotée</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Réduit l'indentation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Augmente l'indentation.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Annule la dernière opération.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Refait la dernière opération annulée.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Insère ou modifie un hyperlien. Allez à la page <a href="insert_link_button.htm">
+ Outil d'ajout d'hyperliens</a> pour plus de détails.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Efface les hyperliens qui sont sélectionées.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Insère ou modifie une image. Allez à la page <a href="insert_image_button.htm">
+ Outil d'ajout d'images</a> pour plus de détails.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Nettoie le code et retire les paramètres non désirés. Cet outil
+ est très utile lorsque vous copiez du contenu provenant de logiciels
+ de bureatique.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Affiche cette page d'aide.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Ouvre un éditeur permettant de modifier le code HTML. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Insère un nouveau tableau à la position actuelle. Allez à la page <a href="insert_table_button.htm">
+ Outil d'ajout de tableau</a> pour plus de détails.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Ajoute une ligne au tableau avant la ligne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Ajoute une ligne au tableau après la ligne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Supprime la ligne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Ajoute une colonne au tableau avant la colonne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Ajoute une colonne au tableau après la colonne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Supprime la colonne courante. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Insère un séparateur horizontal. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Supprime les formattages du texte sélectionné. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Transforme le texte sélectionné en texte souscrit. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Transforme le texte sélectionné en indice supérieur. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Table des matières de l'aide</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Table des matières</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Faites votre sélection parmis les thèmes suivants:
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">À propos de TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Outils communs</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Outil d'ajout d'images</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Outil d'ajout d'hyperliens</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Outil d'ajout de tableau</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout d'ancres</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout d'ancres</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout d'ancres ouvre la fenêtre ci-dessous.<br>
+<br>
+<img src="images/insert_anchor_window.gif"><br>
+<br>
+Il y a un seul champ dans cette fenêtre, c'est le nom de cette ancre. Rappelez-vous, les noms doivent être unique dans la page.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout d'images</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout d'images</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout d'images ouvre la fenêtre ci-dessous.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+Vous entrez tout simplement l'adresse de l'image que vous désirez ajouter et
+entrez une description facultative. La description sera affichée en texte alternatif
+sur l'image lorsqu'elle sera publiée.<br>
+<br>
+<strong>Description des champs:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Adresse de l'image </strong></td>
+ <td>Adresse URL de l'image à insérer.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Description de l'image </strong></td>
+ <td>Description alternative de l'image.</td>
+ </tr>
+ <tr>
+ <td><strong>Dimensions</strong></td>
+ <td>Largeur et Hauteur de l'image en pixel. </td>
+ </tr>
+ <tr>
+ <td><strong>Alignement</strong></td>
+ <td>Alignement de l'image. Très utile pour faire contourner le texte autour des images.</td>
+ </tr>
+ <tr>
+ <td><strong>Bordure</strong></td>
+ <td>Épaisseur en pixel de la bordure. </td>
+ </tr>
+ <tr>
+ <td><strong>VSpace</strong></td>
+ <td>Espacement vertical. Très utile pour faire contourner le texte autour des images.</td>
+ </tr>
+ <tr>
+ <td><strong>HSpace</strong></td>
+ <td>Espacement horizontal. Très utile pour faire contourner le texte autour des images.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout d'hyperliens</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout d'hyperliens</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout d'hyperlien ouvre la fenêtre ci-dessous.<br>
+<br>
+<img src="images/insert_link_window.gif"><br>
+<br>
+Il y a deux champs dans cette fenêtre. L'Adresse URL est l'adresse
+de l'hyperlien. La destination vous permet de choisir de quelle façon
+l'hyperlien sera ouvert.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Outil d'ajout de tableau</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Outil d'ajout de tableau</span></td>
+ <td align="right"><a href="index.htm">Table des matières</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+L'outil d'ajout de tableau ouvre la fenêtre ci-dessous. Elle vous permet de créer dfes talbeaux.<br>
+<br>
+<img src="images/insert_table_window.gif"><br>
+<br>
+<strong>Description des champs:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Colonnes</strong></td>
+ <td>Nombre de colonnes du tableau. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Lignes</strong></td>
+ <td>Nombre de lignes du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Cellpadding</strong></td>
+ <td>Marge à l'intérieur des cellules du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Cellspacing</strong></td>
+ <td>Espacement entre les cellules du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Alignement</strong></td>
+ <td>Alignement du tableau. </td>
+ </tr>
+ <tr>
+ <td><strong>Bordure</strong></td>
+ <td>Épaisseur des bordures du tableau.</td>
+ </tr>
+ <tr>
+ <td><strong>Largeur</strong></td>
+ <td>Largeur en pixel du tableau.</td>
+ </tr>
+ <tr>
+ <td><strong>Hauteur</strong></td>
+ <td>Hauteur en pixel du tableau.</td>
+ </tr>
+ <tr>
+ <td><strong>Classe CSS</strong></td>
+ <td>Nom de la classe CSS pour appliquer un style.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Aller à: <a href="index.htm">Table des matières</a></td>
+ <td align="right"><a href="#">Haut de page</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Über TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">A TinyMCE-ről</span></td>
+ <td align="right"><a href="index.htm">Tartalom</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+A TinyMCE egy kompakt WYSIWYG-szerkesztő az MSIE-hoz és a Mozillához hasonló webböngészők számára, mely lehetőséget nyújt önnek a HTML tartalmak egyszerű szerkesztésére. A legtöbb szövegszerkesztőben elérhető funkciókat nyújtja egyszerűen kezelhető formában.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ugrás a <a href="index.htm">Tartalomjegyzékre</a></td>
+ <td align="right"><a href="#">ugrás a lap tetejére </a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Allgemeine Schaltflächen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Allgemeine Schaltflächen</span></td>
+ <td align="right"><a href="index.htm">Tartalom</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Untenstehend eine kurze Beschreibung jeder Schaltfläche.<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Félkövér szöveg.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Dõlt szöveg .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Aláhúzott szöveg .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Áthúzott szöveg .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Balra igazítás .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Középre igazítás .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Jobbra igazíás .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Sorkizárt.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Felsorolás / pontozott lista. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Felsorolás / számozott lista.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Behúzás balra .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>behúzás jobbra .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Utolsó parancs visszavonása .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Utolsó parancs ismétlése .</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Új link beillesztése, bõvebb információért olvassa el a <a href="insert_link_button.htm">Link beillesztését</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>A kijelölt link eltávolítása / Az összes kijelölt link eltávolítása.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Egy új kép beillesztése, bõvebb információért olvassa el a <a href="insert_image_button.htm">Kép beillesztését </a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Kód tisztítása / Eltávolítja a nemkívánt formázásokat. Ez a funkció akkor hasznos, ha például Office dokumentumból másol tartalmat.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Ennek a segítségnek az elérése.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ugrás a <a href="index.htm">Tartalomjegyzékre</a></td>
+ <td align="right"><a href="#">ugrás a lap tetejére </a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Inhaltsverzeichnis der Hilfe</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Tartalomjegyzék</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Kattintson az alábbi linkekre a segítség különbözõ részeinek eléréséhez.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">A TinyMCE-rõl</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Általános gombok </a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Kép beillesztése gomb </a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Link beillesztése gomb </a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Schaltfläche Bild einfügen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Kép beillesztése gomb </span></td>
+ <td align="right"><a href="index.htm">Tartalom</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+A Kép beillesztése gomb az alábbi ablakot nyitja meg.
+<br>
+<br>
+<img src="images/insert_image_window.gif" width="350" height="166"><br>
+<br>
+Egyszerűen meg kell adni a beilleszteni kívánt kép elérésének URL-jét, valamint egy rövd leírást, mely alternatív szövegként kerül megjelenítésre (pl. nem grafikus böngészőkben).<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ugrás a <a href="index.htm">Tartalomjegyzékre</a></td>
+ <td align="right"><a href="#">ugrás a lap tetejére </a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Schaltfläche Hyperlink einfügen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Link beillesztése gomb </span></td>
+ <td align="right"><a href="index.htm">Tartalom</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+A Link beillesztése gomb az alábbi ablakot nyitja meg.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="166"><br>
+<br>
+Két mezőt kell kitöltenie ebben az ablakban. Az első - "Link URL" - a hivatkozás URL-je. A második lehetőséget ad Önnek a hivatkoztás megjelenítésének kiválasztásához.<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ugrás a <a href="index.htm">Tartalomjegyzékre</a></td>
+ <td align="right"><a href="#">ugrás a lap tetejére </a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Informazioni su TinyMCE</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+<table class="pageheader" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td><span class="title">Informazioni su TinyMCE</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+ </tbody>
+</table>
+<hr noshade="noshade">
+<br>
+TinyMCE è un piccolo WYSIWYG (What You See Is What You Get,
+quello che vedi è quello che ottieni) editor per i web browser
+come MSIE o Mozilla che permette di editare HTML in modo comodo. Ha le
+funzionalità comuni di molti word processor e non dovrebbe
+essere difficile da usare.<br>
+<br>
+<hr noshade="noshade">
+<table class="pagefooter" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td>Vai a: <a href="index.htm">Tavola dei contenuti</a></td>
+ <td align="right"><a href="#">Su</a></td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<br>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Pulsanti comuni</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+<table class="pageheader" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td><span class="title">Pulsanti comuni<br>
+ </span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+ </tbody>
+</table>
+<hr noshade="noshade">
+<br>
+Di seguito una breve descrizione di ogni pulsante.<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tbody>
+ <tr>
+ <td><img src="../../images/bold.gif" height="20" width="20"></td>
+ <td>Testo <span style="font-weight: bold;">grassetto</span>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" height="20" width="20"></td>
+ <td>Testo <span style="font-style: italic;">corsivo</span>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" height="20" width="20"></td>
+ <td>Testo <span style="text-decoration: underline;">sottolineato</span>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" height="20"
+ width="20"></td>
+ <td>Testo <span style="text-decoration: line-through;">barrato</span>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" height="20" width="20"></td>
+ <td>Allinea a sinistra.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" height="20" width="20"></td>
+ <td>Allinea al centro.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" height="20" width="20"></td>
+ <td>Allinea a destra.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" height="20" width="20"></td>
+ <td>Giustifica.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" height="20" width="20"></td>
+ <td>Lista non ordinata.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" height="20" width="20"></td>
+ <td>Lista ordianta.<br>
+ </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" height="20" width="20"></td>
+ <td>Diminuisci l'indentazione.<br>
+ </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" height="20" width="20"></td>
+ <td>Aumenta l'indentazione.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" height="20" width="20"></td>
+ <td>Annulla l'ultima operazione.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" height="20" width="20"></td>
+ <td>Ripeti l'ultima operazione.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" height="20" width="20"></td>
+ <td>Inserieci un nuovo collegamento, maggiori informazioni su
+questa funzione nella <a href="insert_link_button.htm">Sezione
+'Inserisci un collegamento'</a></td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" height="20" width="20"></td>
+ <td>Rimuovi tutti i collegamenti selezionati<br>
+ </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/anchor.gif" height="20" width="20"></td>
+ <td>Inserisci una nuova àncora, maggiori informazioni su
+questa funzione nella <a href="insert_anchor_button.htm">Sezione 'Inserisci un'àncora'.</a></td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" height="20" width="20"></td>
+ <td>Inserieci una nuova immagine, maggiori informazioni su questa
+funzione nella <a href="insert_image_button.htm">Sezione 'Inserisci
+una immagine'</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" height="20" width="20"></td>
+ <td>Ripulisci il codice/rimuovi la formattazione non voluta.
+Questa funzione è utile quando si copia per esempio da un
+programma office<br>
+ </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" height="20" width="20"></td>
+ <td>Mostra questa guida<br>
+ </td>
+ </tr>
+
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Apre l'editor del sorgente HTML. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Inserisce una nuova tabella 2x2 alla posizione corrente.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Aggiunge una riga sopra quella corrente.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Aggiunge una roga sotto quella corrente.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Rimuove la riga corrente. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Aggiunge una colonna prima di quella corrente.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Aggiunge una colonna dopo quella corrente.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Rimuove la colonna corrente.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Inserisce una nuova riga orizzontale.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Rimuove la formattazione dalla selezione. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Formatta la selezione come pedice. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Formatta la selezione come apice. </td>
+ </tr>
+
+ </tbody>
+</table>
+<br>
+<hr noshade="noshade">
+<table class="pagefooter" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td>Vai a: <a href="index.htm">Tavola dei contenuti</a></td>
+ <td align="right"><a href="#">Su</a></td>
+ </tr>
+ </tbody>
+</table>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Indice della guida</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+</head>
+<body onload="window.focus();">
+<table class="pageheader" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td><span class="title">Tavola dei contenuti<br>
+ </span></td>
+ <td align="right"> </td>
+ </tr>
+ </tbody>
+</table>
+<hr noshade="noshade">
+<br>
+Seleziona un argomento:<br>
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">Informazioni su TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Pulsanti comuni</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Pulsante 'Inserisci immagine'<br></a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Pulsante 'Inserisci collegamento'</a></li>
+ <li class="toc_li"><a href="insert_anchor_button.htm">Pulsante 'Inserisci àncora'</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Pulsante 'Inserisci tabella'</a></li>
+</ul>
+<hr noshade="noshade">
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Bottone 'Inserisci àncora'</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Bottone 'Inserisci àncora'</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Questo bottone apre una nuova finestra che permette di aggiungere o modificare un'àncora<br>
+<br>
+<img src="images/insert_anchor_window.gif" width="326" height="117"><br>
+<br>
+C'è un solo campo in questa finestra, dove devi inserire il nome del tuo punto di àncoraggio. Ricorda che il nome dell' àncora deve essere univoco. <br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Vai a: <a href="index.htm">Tavola dei contenuti</a></td>
+ <td align="right"><a href="#">Top</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Pulsante 'Inserisci immagine'</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Pulsante 'Inserisci immagine'</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Il pulsante 'inserisci immagine' apre la finestra mostrata qui sotto.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+Si inserisce semplicemente l'url dell'immagine che si vuole collegare e una descrizione di quell'immagine,
+che sarà mostrato come testo alternativo dell'immagine sulla pagina.
+<br>
+<br>
+<strong>Descrizione dei parametri:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>URL immagine </strong></td>
+ <td>URL/indirizzo dell'immagine.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Descrizione dell'immagine </strong></td>
+ <td>Descrizione alternativa del contenuto dell'immagine.</td>
+ </tr>
+ <tr>
+ <td><strong>Dimensioni</strong></td>
+ <td>Larghezza/Altezza dell'immagine. </td>
+ </tr>
+ <tr>
+ <td><strong>Allineamento</strong></td>
+ <td>Allineamento dell'immagine, utile quando si inserisce del testo attorno all'immagine.</td>
+ </tr>
+ <tr>
+ <td><strong>Bordo</strong></td>
+ <td>Spessore del bordo. </td>
+ </tr>
+ <tr>
+ <td><strong>Spazio verticale</strong></td>
+ <td>Spazio verticale, utile quando si inserisce del testo attorno all'immagine.</td>
+ </tr>
+ <tr>
+ <td><strong>Spazio orizzontale</strong></td>
+ <td>Spazio orizzontale, utile quando si inserisce del testo attorno all'immagine.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Vai a: <a href="index.htm">Tavola dei contenuti</a></td>
+ <td align="right"><a href="#">Su</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Pulsante 'Inserisci collegamento'</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+<table class="pageheader" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td><span class="title">Pulsante 'Inserisci collegamento'<br>
+ </span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+ </tbody>
+</table>
+<hr noshade="noshade">
+<br>
+Questo pulsante apre una nuova finstra con le funzioni di
+inserimento/modifica del collegamento.<br>
+<br>
+<img src="images/insert_link_window.gif" height="156" width="326"><br>
+<br>
+Ci sono due campi in questa finestra: il primo, "Link URL" è
+l'indirizzo del collegamento. Il 'target' permette di selezionare come
+il collegamento deve essere aperto.<br>
+<br>
+<hr noshade="noshade">
+<table class="pagefooter" border="0" cellpadding="1" cellspacing="3"
+ width="100%">
+ <tbody>
+ <tr>
+ <td>Vai a: <a href="index.htm">Tavola dei contenuti</a></td>
+ <td align="right"><a href="#">Su</a></td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<br>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Pulsante 'Inserisci tabella'</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Pulsante 'Inserisci tabella'</span></td>
+ <td align="right"><a href="index.htm"><acronym title="Table of contents">TOC</acronym></a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Il pulsante 'Inserisci tabella' apre la finestra mostrata qui sotto. Questa azione permette di creare tabelle.<br>
+<br>
+<img src="images/insert_table_window.gif" width="346" height="225"><br>
+<br>
+<strong>Descrizione dei parametri:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Colonne</strong></td>
+ <td>Numero di colonne nella nuova tabella. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Righe</strong></td>
+ <td>Numero di righe nella nuova tabella.</td>
+ </tr>
+ <tr>
+ <td><strong>Cellpadding</strong></td>
+ <td>Spazio tra il bordo di una cella e il suo contenuto. </td>
+ </tr>
+ <tr>
+ <td><strong>Cellspacing</strong></td>
+ <td>Spazio tra le celle della tabella.</td>
+ </tr>
+ <tr>
+ <td><strong>Allineamento</strong></td>
+ <td>Allineamento della tabella. </td>
+ </tr>
+ <tr>
+ <td><strong>Bordo</strong></td>
+ <td>Spessore del bordo della tabella.</td>
+ </tr>
+ <tr>
+ <td><strong>Larghezza</strong></td>
+ <td>Larghezza, in pixel, della tabella.</td>
+ </tr>
+ <tr>
+ <td><strong>Altezza</strong></td>
+ <td>Altezza, in pixel, della tabella.</td>
+ </tr>
+ <tr>
+ <td><strong>Classe</strong></td>
+ <td>Stile o classe CSS della tabella.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Vai a: <a href="index.htm">Tavola dei contenuti</a></td>
+ <td align="right"><a href="#">Su</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Over TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Over TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE is een kleine <i>What-You-See-Is-What-You-Get</i> (WYSIWYG)
+editor voor teksten. De bediening vindt plaats in de web browser, zoals MSIE of Mozilla.
+Het werken met deze editor is eenvoudig, omdat de bediening veel lijkt op het werken
+met teksten in (office-)tekstverwerkers.
+<br><br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Functies van TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Functies van TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Het werken met de editor komt sterk overeen met wat u gewend bent van uw tekstverwerker:
+Dubbel-klik op een woord in de tekst, of trek een kader met de muis terwijl u
+de linkerknop inhoudt om een gedeelte van de tekst te kiezen. Het aldus gemarkeerde woord of
+tekstfragment noemen we 'selecteerd'. Met de knoppen en stijl-keuzelijsten
+in de editor kunt u hiervan vervolgens de opmaak aanpassen of (indien deze reeds was toegekend) verwijderen.
+<br><br>
+De meeste functies voert u eenvoudig uit door het klikken
+van de knoppen (buttons) boven het tekstvenster in de editor. Hieronder vindt u van elk van deze
+knoppen een beknopte beschrijving.
+<br>
+<br>
+<table width=100% border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td width=20><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment 'Vet' (Bold) maken.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment 'Cursief' (Italic) maken.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment 'Onderstrepen' (Underline).</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment 'Doorstrepen' (Strikethrough).</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment naar links uitlijnen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment centreren.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment naar rechts uitlijnen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment 'uitvullen' tot complete regels.</td>
+ </tr>
+</table>
+<br>
+<table width=100% border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment omzetten naar ongeordende (bullet-)lijst of opsomming.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Gekozen tekstfragment omzetten naar doorgenummerde lijst.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Inspringniveau van het gekozen tekstfragment verkleinen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Inspringniveau van het gekozen tekstfragment vergroten.</td>
+ </tr>
+ <tr>
+ <td width=20><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>De laaste bewerking ongedaan maken. De toetscombinatie CRTL-Z doet hetzelfde.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>De laatste bewerking opnieuw uitvoeren.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Invoegen van een <i>Link</i> (Cross-Link) via dialoogmenu.<br>
+ Zie de beschrijving bij <a href="insert_link_button.htm">Links en verwijzingen in tekst invoegen</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Verwijdert alle gevonden <i>Links</i> (Cross-Links) uit de tekstselectie.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/anchor.gif" width="20" height="20"></td>
+ <td>Anker aan de tekstselectie toekennen of wijzigen.<br>
+ Zie de beschrijving bij <a href="insert_anchor_button.htm">Anker Toevoegen.</a></td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Voegt een afbeelding in.<br>
+ Zie de beschrijving bij <a href="insert_image_button.htm">Afbeeldingen invoegen</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Schoont ongewenste opmaak en codering van de tekstselectie op. Deze functie is erg nuttig na het
+ overkopiëren van teksten vanuit uw (Office-)tekstverwerker.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Toont dit helpvenster met uitleg van alle functionaliteit van de editor.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Opent het venster met de HTML-broncode voor het direct maken van wijzigingen
+ in de achterliggende pagina-codering. Kennis van de HTML-taal is vereist.</td>
+ </tr>
+</table>
+
+<br>
+<table width=100% border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Voegt een nieuwe tabel met 2 rijen en kolommen in op de huidige positie in te tekst. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Voegt een nieuwe rij toe aan de tabel boven de huidige.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Voegt een nieuwe rij toe aan de tabel onder de huidige.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Verwijdert de huidige rij uit de tabel.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Voegt een nieuwe kolom toe aan de tabel voor de huidige.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Voegt een nieuwe kolom toe aan de tabel achter de huidige.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Verwijdert de huidige kolom uit de tabel.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Voegt een horizontale lijn in de tekst toe.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Verwijdert alle tekst-opmaak van de tekstselectie.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/visualaid.gif" width="20" height="20"></td>
+ <td>Toon of verberg hulplijnen voor tabellen in het tekstvenster.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Verandert het gekozen tekstfragment in <i>Subscript</i>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Verandert het gekozen tekstfragment in <i>Superscript</i>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/charmap.gif" width="20" height="20"></td>
+ <td>De <i>Karaktertabel</i> maakt het eenvoudig invoegen van bijzondere karakters mogelijk.<br>
+ Zie de beschrijving bij <a href="insert_specchar_button.htm">Bijzondere karakers in de tekst invoegen.</a></td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Help Index</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Inhoudsopgave</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Klik op de onderwerpen in onderstaande inhoudsopgave voor meer informatie.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">Over TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Functies van TinyMCE</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Afbeeldingen invoegen</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Links en verwijzingen in tekst invoegen</a></li>
+ <li class="toc_li"><a href="insert_specchar_button.htm">Bijzondere karakers in de tekst invoegen</a></li>
+ <li class="toc_li"><a href="insert_anchor_button.htm">Ankers in de tekst gebruiken</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Tabellen invoegen en aanpassen</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Ankers in de tekst gebruiken</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Ankers in de tekst gebruiken</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Met de knop 'Invoegen Anker' kunt u in de tekst z.g. HTML-ankers invoegen en
+aanpassen. Deze ankers maken het mogelijk snel naar bepaalde tekstfragmenten te springen.
+Door het toevoegen van de ankernaam (voorafgegaan door een '#')
+aan de link naar een pagina (Zie <a href="insert_link_button.htm">'Links en verwijzingen in tekst invoegen'</a>)
+kan op deze wijze desgewenst direct naar een bepaalde passage in een pagina worden doorgelinkt.
+<br><br>
+Voor het toevoegen of aanpassen van een anker wordt onderstaand dialoogvenster getoond.<br>
+<br>
+<center><img src="images/insert_anchor_window.gif"></center>
+<br>
+Bij het veld 'Anker naam' kan de gewenste naam van het anker worden ingevuld.
+Let op: Binnen een complete pagina binnen uw website dient de naam van dit anker uniek zijn.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Afbeeldingen invoegen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Afbeeldingen invoegen</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Voer simpelweg de URL van de afbeelding en de beschrijving in.
+De omschrijvende tekst wordt in sommige browsers bij de muiswijzer getoond
+wanneer deze boven de afbeelding wordt stilgehouden.
+De knop 'Afbeelding Invoegen' opent onderstaand dialoogvenster.<br>
+<br>
+<center><img src="images/insert_image_window.gif"></center>
+<br>
+<strong>Omschrijving van de velden:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Afbeelding</strong></td>
+ <td>In dit veld dient u een complete URL op te geven van de afbeelding.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Beschrijving</strong></td>
+ <td>Omschrijvende tekst die in sommige browsers bij de muiswijzer wordt getoond wanneer deze boven de afbeelding wordt stilgehouden.</td>
+ </tr>
+ <tr>
+ <td><strong>Uitlijning</strong></td>
+ <td>Uit de lijst kan worden gekozen op welke wijze de afbeelding in de tekst wordt ingebed.</td>
+ </tr>
+ <tr>
+ <td><strong>Afmetingen</strong></td>
+ <td>De breedte en hoogte van de afbeelding in pixels. Laat deze velden leeg als de originele afmetingen gewenst zijn.</td>
+ </tr>
+ <tr>
+ <td><strong>Omranding</strong></td>
+ <td>De dikte (in pixels) van de omranding om de afbeelding.</td>
+ </tr>
+ <tr>
+ <td><strong>Verticale marge</strong></td>
+ <td>De verticale marge (in pixels) gebruikt voor de omloop van teksten om de afbeelding.</td>
+ </tr>
+ <tr>
+ <td><strong>Horizontale marge</strong></td>
+ <td>De horizontale marge (in pixels) gebruikt voor de omloop van teksten om de afbeelding.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Links en verwijzingen in tekst invoegen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Links en verwijzingen in tekst invoegen</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+De knop 'Link Invoegen' leidt u naar onderstaand dialoogvenster waarmee u eenvoudig
+een <i>Link</i> (Cross-Link) kunt aanbrengen in uw teksten.
+<br><br>
+<center><img src="images/insert_link_window.gif"></center>
+<br>
+Bij 'Link URL' dient de de url van
+de link te worden ingevuld (desgewenst voorafgegaan door 'http://' voor een externe
+website), bij 'target' kan worden bepaald hoe de link moet openen.
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Bijzondere karakers in de tekst invoegen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Bijzondere karakers in de tekst invoegen</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Met de knop 'Bijzondere Karakters' kunt u in de tekst bijzondere karakters, die soms
+op het toetsenbord lastig te vinden zijn, invoegen.
+<br><br>
+Voor het invoegen van een deze karakters wordt onderstaand keuzevenster getoond.
+Door het eenvoudigweg klikken op het gewenste karakter in het overzicht, wordt het op de huidige positie in de tekst ingevoegd.<br>
+<br>
+<center><img src="images/insert_specchar_window.gif"></center>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Tabellen invoegen en aanpassen</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Tabellen invoegen en aanpassen</span></td>
+ <td align="right"><a href="index.htm">Inhoudsopgave</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+De knop 'Invoegen Tabel' stelt u in staat op de huidige plek een nieuwe tabel
+in uw tekst in te voegen en opent onderstaand dialoogvenster.<br>
+<br>
+<center><img src="images/insert_table_window.gif"></center>
+<br>
+<strong>Omschrijving van de velden:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Kolommen</strong></td>
+ <td>Het gewenste aantal kolommen in de tabel.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Rijen</strong></td>
+ <td>Het gewenste aantal rijen in de tabel.</td>
+ </tr>
+ <tr>
+ <td><strong>Celvulling</strong></td>
+ <td>De 'Celvulling' (Cellpadding)<br>
+ De opvulmarge rondom binnen elke cel in de tabel in pixels.</td>
+ </tr>
+ <tr>
+ <td><strong>Celafstand</strong></td>
+ <td>De 'Celafstand' (Cellspacing)<br>
+ De ruimte tussen de cellen onderling binnen de tabel in pixels.</td>
+ </tr>
+ <tr>
+ <td><strong>Positionering</strong></td>
+ <td>De positionering van de tabel in de paragraaf.</td>
+ </tr>
+ <tr>
+ <td><strong>Omranding</strong></td>
+ <td>De dikte in pixels van de omranding van de tabel.</td>
+ </tr>
+ <tr>
+ <td><strong>Breedte</strong></td>
+ <td>De breedte van de tabel (in pixels of percentuele notatie).</td>
+ </tr>
+ <tr>
+ <td><strong>Hoogte</strong></td>
+ <td>De breedte van de tabel (in pixels of percentuele notatie).</td>
+ </tr>
+ <tr>
+ <td><strong>CSS-Stijl</strong></td>
+ <td>Optionele stijlkeuze uit de voor de website aangemaakte <i>Cascading Style Sheet</i> (CSS).</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Ga naar: <a href="index.htm">Inhoudsopgave</a></td>
+ <td align="right"><a href="#">Naar boven</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+/* body { background-color: #FFFFFF; } */
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>O TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">O TinyMCE</span></td>
+ <td align="right"><a href="index.htm">Spis tre¶ci</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE jest ma³ym edytorem WYSWIWYG dla przegl±darek internetowych takich jak MSIE
+lub Mozilla, pozwalaj±cym na edytowanie zawarto¶ci strony HTML w sposób przyjazny dla
+u¿ytkownika. Posiada szeref funkcji znanych z popularnych edytorów tekstu, wiêc powinien
+byæ ³atwy w u¿yciu.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Go to: <a href="index.htm">Spis tre¶ci</a></td>
+ <td align="right"><a href="#">Do góry</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Wa¿niejsze przyciski</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Wa¿niejsze przyciski</span></td>
+ <td align="right"><a href="index.htm">Spis tre¶ci</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Poni¿ej znajduje siê krótki opis ka¿dego przycisku<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>Pogrubienie tekstu.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>Pochylenie tekstu.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Podkre¶lenie tekstu.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Przekre¶lenie tekstu.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Wyrównanie do lewej</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Wy¶rodkowanie.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Wyrównanie do prawej.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Wyjustowanie.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Lista nieuporz±dkowana/lista punktów.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Lista uporz±dkowana/lista ponumerowana</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Wysuniêcie/zmniejsz wciêcie.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Wciêcie/zwiêksz wciêcie.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Cofniêcie ostatnio wykonanej czynno¶ci</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Ponowienie ostatnio wykonanej czynno¶ci</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Wstawienie nowego ³±cza, przeczytaj wiêcej o tej funkcji sekcji <a href="insert_link_button.htm">Wstaw
+ ³±cze</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Usuniêcie ³±cz z zaznaczonej czê¶ci/usuniêcie wszystkich zaznaczonych ³±cz.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/anchor.gif" width="20" height="20"></td>
+ <td>Wstawienie nowego zakotwiczenia, przeczytaj wiêcej o tej funkcji w sekcji <a href="insert_anchor_button.htm">Wstaw zakotwiczenie.</a></td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Wstawienie nowego zdjêcia, przeczytaj wiêcej o tej funkcji w sekcji <a href="insert_image_button.htm">Wstaw
+ zdjêcie</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Oczyszczenie kodu/usuniêcie niechcianeg formatowania. Ta funkcja jest pomocna kiedy
+ kopiujesz zawarto¶æ np. z worda.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Pokazanie tego okna pomocy.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Otwarcie edytora kodu HTML.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Wstawienie nowej tabeli 2x2 w bie¿±cej pozycji.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Wstawienie wiersza ponad aktualnie zaznaczonym.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Wstawienie wiersz poni¿ej aktualnie zaznaczonego.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Usuniêcie wiersza.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Wstawienie kolumny przed aktualnie zaznaczon±.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Wstawienie kolumny za aktualnie zaznaczon±.</td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Usuniêcie kolumny.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Wstawienie poziomej linii.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Usuniêcie formatowania z zaznaczonej czê¶ci.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Przekszta³cenie w indeks dolny. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Przekszta³cenie w indeks górny. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Id¼ do: <a href="index.htm">Spis tre¶ci</a></td>
+ <td align="right"><a href="#">Góra</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Spis pomocy</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Spis tre¶ci</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Aby zobaczyæ poszczególne sekcje pomocy kliknij jeden z poni¿szych linków
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">O TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Lista wa¿niejszych przycisków</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Przycisk "Wstaw zdjêcie"</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Przycisk "Wstaw ³±cze"</a></li>
+ <li class="toc_li"><a href="insert_anchor_button.htm">Przycisk "Wstaw zakotwiczenie"</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Przycisk "Wstaw tabelê"</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Przycisk "Wstaw zakotwiczenie"</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Przycisk "Wstaw zakotwiczenie"</span></td>
+ <td align="right"><a href="index.htm">Spis tre¶ci</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Ten przycisk otwiera nowe okno z funkcj± wstawienia/edycja zakotwiczenia.<br>
+<br>
+<img src="images/insert_anchor_window.gif" width="330" height="139"><br>
+<br>
+Jest tylko jedno pole w tym oknie, nale¿y tam wpisaæ nazwê punktu zakotwiczenia. Nale¿y pamiêtaæ, ¿e nazwa musi byæ
+unikatowa, nie powtarzaj±ca siê.
+<br><br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Id¼ do: <a href="index.htm">Spis tre¶ci</a></td>
+ <td align="right"><a href="#">Do góry</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Przycisk "Wstaw zdjêcie"</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Przycisk "Wstaw ³±cze"</span></td>
+ <td align="right"><a href="index.htm">Spis tre¶ci</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Przycisk "Wstaw zdjêcie" otwiera okno pokazane poni¿ej.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+Nale¿y podaæ adres URL lub scie¿kê dostêpu do zdjêcia które ma byæ wstawione i podaæ krótki opis
+zdjêcia, jest on wy¶wietlany jako alternatyny tekstowy opis zdjêcia umieszczonego na stronie.
+<br><br>
+<strong>Opis pól:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Adres URL lub ¶cie¿ka dostêpu do zdjêcia</strong></td>
+ <td>URL/scie¿ka dostêpu do zdjêcia.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Opis zdjêcia</strong></td>
+ <td>Tekst opisuj±cy zdjêcia.</td>
+ </tr>
+ <tr>
+ <td><strong>Wymiary</strong></td>
+ <td>D³ugo¶æ/szeroko¶æ zdjêcia . </td>
+ </tr>
+ <tr>
+ <td><strong>Wyrównanie</strong></td>
+ <td>Wyrównanie zdjêcia, u¿yteczne przy zawijaniu tekstu wokó³ zdjêcia.</td>
+ </tr>
+ <tr>
+ <td><strong>Krawêdzie</strong></td>
+ <td>Grubo¶æ krawêdzi.</td>
+ </tr>
+ <tr>
+ <td><strong>Odstêp poziomy</strong></td>
+ <td>Odstêp poziomy, pomocne przy zawijaniu tesktu wokó³ zdjêcia.</td>
+ </tr>
+ <tr>
+ <td><strong>Odstêp pionowy</strong></td>
+ <td>Odstêp pionowy, pomocne przy zawijaniu tesktu wokó³ zdjêcia.</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Id¼ do: <a href="index.htm">Spis tre¶ci</a></td>
+ <td align="right"><a href="#">Do góry</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Przycisk "Wstaw ³±cze"</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Przycisk "Wstaw ³±cze"</span></td>
+ <td align="right"><a href="index.htm">Spis tre¶ci</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Ten przycisk otwiera nowe okno, pozwalaj±ce na wstawienie lub edytowanie ³±cza.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="159"><br>
+<br>
+S± dwa pola w tym oknie, pierwsze "Adres URL" jest adresem URL ³±cza
+. "Cel" umo¿liwia ustalenie jak ³±cze ma byæ otwarte.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Id¼ do: <a href="index.htm">Spis tre¶ci</a></td>
+ <td align="right"><a href="#">Do góry</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<meta name="generator" content="WebSite PRO 4.3" />
+<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
+<TITLE>Przycisk "Wstaw tabelê"</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Przycisk "Wstaw tabelê"</span></td>
+ <td align="right"><a href="index.htm">Spis tre¶ci</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Przycisk "Wstaw tabelê" otwiera okno pokazane poni¿ej. Mo¿na w ten sposób stworzyæ now± tabelê. <br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="229"><br>
+<br>
+<strong>Opis pól:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Kolumny</strong></td>
+ <td>Liczba kolumn w tabeli. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Wiersze</strong></td>
+ <td>Liczba wierszy w tabeli.</td>
+ </tr>
+ <tr>
+ <td><strong>Cellpadding</strong></td>
+ <td>Odleg³o¶æ akapitu od krawêdzi komórki tabeli.</td>
+ </tr>
+ <tr>
+ <td><strong>Cellspacing</strong></td>
+ <td>Szeroko¶æ krawêdzi komórek tabeli.</td>
+ </tr>
+ <tr>
+ <td><strong>Wyrównanie</strong></td>
+ <td>Wyrównanie tabeli.</td>
+ </tr>
+ <tr>
+ <td><strong>Krawêdzie</strong></td>
+ <td>Grubo¶æ krawêdzi tabeli.</td>
+ </tr>
+ <tr>
+ <td><strong>Szeroko¶æ</strong></td>
+ <td>Szeroko¶æ tabeli w pikselach.</td>
+ </tr>
+ <tr>
+ <td><strong>Wysoko¶æ</strong></td>
+ <td>Wysoko¶æ tabeli w pikselach.</td>
+ </tr>
+ <tr>
+ <td><strong>Klasa</strong></td>
+ <td>Styl lub klasa CSS tabeli.</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Id¼ do: <a href="index.htm">Spis tre¶ci</a></td>
+ <td align="right"><a href="#">Do góry</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>About TinyMCE</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Om TinyMCE</span></td>
+ <td align="right"><a href="index.htm">IF</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCE är en liten WYSIWYG-editor för webläsare som
+MSIE och Mozilla vilken möjliggör för användare att redigera
+HTML-innehåll på ett mer användarvänligt sätt.
+Applikationen har funktioner som liknar dem man finner i vanliga ordbehandlare
+och borde inte vara speciellt svårt att använda.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gå till: <a href="index.htm">Innehållsförteckning</a></td>
+ <td align="right"><a href="#">Toppen</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Common buttons</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Grundläggande knappar</span></td>
+ <td align="right"><a href="index.htm">IF</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Nedan finner du en kort beskrivning av varje knapp/funktion.<br>
+<br>
+<table border="1" cellpadding="3" cellspacing="0">
+ <tr>
+ <td><img src="../../images/bold_de_se.gif" width="20" height="20"></td>
+ <td>Fet text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/italic_de_se.gif" width="20" height="20"></td>
+ <td>Kursiv text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Understruken text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>Genomstruken text.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>Rak vänstermarginal.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>Centrera.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>Rak högermarginal.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Raka marginaler.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>Punktlista.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>Numrerad lista</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>Minska indrag.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Öka utdrag.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>Ångra senaste ändringen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>Gör om senaste ändringen.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>Skapa/Redigera länk, läs mer om denna funktion i
+ kapitlet <a href="insert_link_button.htm">Skapa/Redigera länk</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>Ta bort länkar från markerade länkar.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/anchor.gif" width="20" height="20"></td>
+ <td>Skapa/Redigera ankare, lär mer om denna funktion i
+ kapitlet <a href="insert_anchor_button.htm">Skapa/Redigera ankare</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>Skapa/Redigera bild, lär mer om denna funktion i
+ kapitlet <a href="insert_image_button.htm">Skapa/Redigera bild</a>.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>Rensa/Städa kåden. Denna funktion tar bort onödig
+ formatering. Bör användas när man t.ex. kopierar text
+ från Office-program. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>Visad denna hjälp.</td>
+ </tr>
+ <tr>
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>Öppnar en HTML-käkodseditor . </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>Skapar en ny tabell (2x2) . </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>Skapar en rad ovanför den nuvarande raden . </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>Skapar en rad under den nuvarande raden . </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>Tar bort en rad. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>Skapar en kolumn före den nuvarande kolumnen. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>Skapar en kolumn efter den nuvarande kolumnen. </td>
+ </tr>
+ <tr>
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>Tar bort en kolumn. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>Skapar en horisontell linje. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>Tar bort formatering från markerat område. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>Skapar nedsänkt text. </td>
+ </tr>
+ <tr>
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>Skapar upphöjd text. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gå till: <a href="index.htm">Innehållsförteckning</a></td>
+ <td align="right"><a href="#">Toppen</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Help Index</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Innehållsförteckning</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Klicka på länkarna nedan för att gå till olika
+hjälp-kapitel.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">Om TinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">Grundläggande funktioner</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">Skapa/Redigera bild</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">Skapa/Redigera länk</a></li>
+ <li class="toc_li"><a href="insert_anchor_button.htm">Skapa/Redigera ankare </a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">Skapa/Redigera tabell</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Skapa/Redigera länk</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Skapa/Redigera ankare </span></td>
+ <td align="right"><a href="index.htm">IF</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Denna funktion öppnar ett nytt fönster liknande det nedan.<br>
+<br>
+<img src="images/insert_anchor_window.gif" width="330" height="139"><br>
+<br>
+Detta fönster har ett fält som man skall fylla i med ett unik
+namn, denna funktion gör det möjligt att skapa
+ankarpunkter/bokmärken.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gå till: <a href="index.htm">Innehållsförteckning</a></td>
+ <td align="right"><a href="#">Toppen</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Skapa/Redigera bild</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Skapa/Redigera bild</span></td>
+ <td align="right"><a href="index.htm">IF</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Funktionen "Skapa/Redigera bild" öppnar ett nytt fönster som ser ut som
+bilden nedan.<br>
+<br>
+<img src="images/insert_image_window.gif"><br>
+<br>
+I detta fönster skriver du in URL:en till bilden du vill länka till
+samt en bildbeskrivning, denna beskrivning kommer att visas som en alternativ
+text till bilden.<br>
+<br>
+<strong>Fältförklaring:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Bilderns URL </strong></td>
+ <td>URL/sökväg till bilden.</td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Bildens beskrivning</strong></td>
+ <td>Bildens beskrivning, denna beskrivning kommer att visas som en
+ alternativ text till bilden.</td>
+ </tr>
+ <tr>
+ <td><strong>Dimensioner</strong></td>
+ <td>Bildens bredd och höjd. </td>
+ </tr>
+ <tr>
+ <td><strong>Justering</strong></td>
+ <td>Bildens justering, kan vara användbart när man vill att
+ text skall flyta runt bilden. </td>
+ </tr>
+ <tr>
+ <td><strong>Ram</strong></td>
+ <td>Bildramens bredd. </td>
+ </tr>
+ <tr>
+ <td><strong>Vertikalt tomrum </strong></td>
+ <td>Vertikalt tomrum , kan vara användbart när man vill
+ att text skall flyta runt bilden. </td>
+ </tr>
+ <tr>
+ <td><strong>Horizontellt tomrom</strong></td>
+ <td>Horisontellt tomrum, kan vara användbart när man vill
+ att text skall flyta runt bilden. </td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gå till: <a href="index.htm">Innehållsförteckning</a></td>
+ <td align="right"><a href="#">Toppen</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Skapa/Redigera länk</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Skapa/Redigera länk</span></td>
+ <td align="right"><a href="index.htm">IF</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Denna funktion öppnar ett nytt fönster liknande det nedan.<br>
+<br>
+<img src="images/insert_link_window.gif" width="330" height="159"><br>
+<br>
+Detta fönster har två fält länkens URL/adress samt hur länken
+skall öppnas.<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gå till: <a href="index.htm">Innehållsförteckning</a></td>
+ <td align="right"><a href="#">Toppen</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>Skapa/Redigera tabell</TITLE>
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">Skapa/Redigera tabell </span></td>
+ <td align="right"><a href="index.htm">IF</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Skapa tabell-knappen öppnar ett nytt fönster, med hjälp av
+detta fönster kan du skapa tabeller. <br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="229"><br>
+<br>
+<strong>Fältförklaring:</strong><br>
+<table border="1" cellspacing="0">
+ <tr>
+ <td width="150"><strong>Kolumner</strong></td>
+ <td>Antal kolumner i tabellen. </td>
+ </tr>
+ <tr>
+ <td width="150"><strong>Rader</strong></td>
+ <td>Antal rader i tabellen .</td>
+ </tr>
+ <tr>
+ <td><strong>Cellutfyllnad</strong></td>
+ <td>Antal pixlars utfyllnad i varje cell. </td>
+ </tr>
+ <tr>
+ <td><strong>Cellmellanrum</strong></td>
+ <td>Antal pixlars mellanrum mellan cellerna.</td>
+ </tr>
+ <tr>
+ <td><strong>Justering</strong></td>
+ <td>Tabellens justering. </td>
+ </tr>
+ <tr>
+ <td><strong>Rambredd</strong></td>
+ <td>Ramens bredd .</td>
+ </tr>
+ <tr>
+ <td><strong>Bredd</strong></td>
+ <td>Bredd i pixlar.</td>
+ </tr>
+ <tr>
+ <td><strong>Höjd</strong></td>
+ <td>Höjd i pixlar. </td>
+ </tr>
+ <tr>
+ <td><strong>Stil</strong></td>
+ <td>Stilmall på tabellen. </td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>Gå till: <a href="index.htm">Innehållsförteckning</a></td>
+ <td align="right"><a href="#">Toppen</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>¹ØÓÚTinyMCE</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">¹ØÓÚ TinyMCE</span></td>
+ <td align="right"><a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+TinyMCEÊÇÒ»ÖÖÊÊÓÃÓÚMSIEºÍMozillaµÈä¯ÀÀÆ÷µÄÇáÁ¿¼¶Ëù¼û¼´ËùµÃ±à¼Æ÷£¬ÒÔ¸ü¼ÓÓѺõķ½Ê½¹©Óû§±à¼HTMLÄÚÈÝ¡£Ëü¾ßÓд󲿷ÖÎÄ×Ö´¦ÀíÆ÷Ëù³£¼ûµÄ¹¦ÄÜ£¬²¢ÇÒÒ×ÓÚʹÓá£<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>·µ»Ø <a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ <td align="right"><a href="#">¶¥²¿</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>³£Óð´Å¥</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">³£Óð´Å¥</span></td>
+ <td align="right"><a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+ÒÔÏÂÊÇÿ¸ö°´Å¥µÄ¼ò¶Ì˵Ã÷<img src="../../images/spacer.gif" width="1" height="1">
+<br>
+<br>
+<table cellpadding="3" cellspacing="1" bgcolor="#000000">
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/bold.gif" width="20" height="20"></td>
+ <td>´ÖÌåÎÄ×ÖÑùʽ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/italic.gif" width="20" height="20"></td>
+ <td>бÌåÎÄ×ÖÑùʽ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/underline.gif" width="20" height="20"></td>
+ <td>Ï»®ÏßÎÄ×ÖÑùʽ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/strikethrough.gif" width="20" height="20"></td>
+ <td>ɾ³ýÏßÎÄ×ÖÑùʽ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/left.gif" width="20" height="20"></td>
+ <td>×ó¶ÔÆë</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/center.gif" width="20" height="20"></td>
+ <td>¾ÓÖжÔÆë</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/right.gif" width="20" height="20"></td>
+ <td>ÓÒ¶ÔÆë</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/full.gif" width="20" height="20"></td>
+ <td>Á½¶Ë¶ÔÆë</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/bullist.gif" width="20" height="20"></td>
+ <td>ÎÞÐòÁбí</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/numlist.gif" width="20" height="20"></td>
+ <td>ÓÐÐòÁбí</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/outdent.gif" width="20" height="20"></td>
+ <td>¼õÉÙËõ½øÁ¿</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/indent.gif" width="20" height="20"></td>
+ <td>Ôö¼ÓËõ½øÁ¿</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/undo.gif" width="20" height="20"></td>
+ <td>³·ÏûÉÏÒ»²Ù×÷</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/redo.gif" width="20" height="20"></td>
+ <td>ÖØ×öÉÏÒ»²Ù×÷</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/link.gif" width="20" height="20"></td>
+ <td>²åÈëÐÂÁ´½Ó£¬µã»÷ <a href="insert_link_button.htm">²åÈëÁ´½Ó°´Å¥</a> Õ½ÚÒԲ鿴¸ü¶àÄÚÈÝ¡£</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/unlink.gif" width="20" height="20"></td>
+ <td>ɾ³ýµ±Ç°Ñ¡¶¨µÄÁ´½Ó/ÒƳýÈ«²¿Ñ¡¶¨µÄÁ´½Ó</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/anchor.gif" width="20" height="20"></td>
+ <td>²åÈëÐÂêµã£¬µã»÷ <a href="insert_anchor_button.htm">²åÈëêµã°´Å¥</a> Õ½ÚÒԲ鿴¸ü¶àÄÚÈÝ¡£</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/image.gif" width="20" height="20"></td>
+ <td>²åÈëÐÂͼÏñ£¬µã»÷ <a href="insert_image_button.htm">²åÈëͼÏñ°´Å¥</a> Õ½ÚÒԲ鿴¸ü¶àÄÚÈÝ¡£</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/cleanup.gif" width="20" height="20"></td>
+ <td>ÇåÀí´úÂë/Çå³ýËùÓв»ÐèÒªµÄ¸ñʽ¡£´Ë¹¦ÄÜÔÚÄã´ÓofficeµÈ²úÆ·Öи´ÖÆÄÚÈݽøÀ´µÄʱºòÌرðÓÐÓá£</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/help.gif" width="20" height="20"></td>
+ <td>ÏÔʾ´Ë°ïÖú´°¿Ú</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/code.gif" width="20" height="20"></td>
+ <td>´ò¿ªHTML´úÂë±à¼Æ÷</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table.gif" width="20" height="20"></td>
+ <td>ÔÚµ±Ç°Î»ÖòåÈëÒ»ÕÅ2¡Á2µÄ±í¸ñ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table_insert_row_before.gif" width="20" height="20"></td>
+ <td>ÔÚµ±Ç°ÐеÄÇ°Ãæ²åÈëÐÂÐÐ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table_insert_row_after.gif" width="20" height="20"></td>
+ <td>ÔÚµ±Ç°ÐеĺóÃæ²åÈëÐÂÐÐ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table_delete_row.gif" width="20" height="20"></td>
+ <td>ɾ³ýµ±Ç°ÐÐ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table_insert_col_before.gif" width="20" height="20"></td>
+ <td>ÔÚµ±Ç°ÁеÄÇ°Ãæ²åÈëÐÂÁÐ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table_insert_col_after.gif" width="20" height="20"></td>
+ <td>ÔÚµ±Ç°ÁеĺóÃæ²åÈëÐÂÁÐ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../images/table_delete_col.gif" width="20" height="20"></td>
+ <td>ɾ³ýµ±Ç°ÁÐ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/hr.gif" width="20" height="20"></td>
+ <td>²åÈëˮƽÏß</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/removeformat.gif" width="20" height="20"></td>
+ <td>ÒƳýËùÑ¡ÎÄ×ֵĸñʽ</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/sub.gif" width="20" height="20"></td>
+ <td>½«ËùÑ¡ÎÄ×Ö×öΪϱê</td>
+ </tr>
+ <tr bgcolor="#FFFFFF">
+ <td><img src="../../images/sup.gif" width="20" height="20"></td>
+ <td>½«ËùÑ¡ÎÄ×Ö×öΪÉϱê</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>·µ»Ø <a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ <td align="right"><a href="#">¶¥²¿</a></td>
+ </tr>
+</table>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>°ïÖúË÷Òý</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+<BODY onload="window.focus();">
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">ÄÚÈÝÌáÒª</span></td>
+ <td align="right"> </td>
+ </tr>
+</table>
+<hr noshade>
+<br>
+Çëµã»÷ÒÔÏÂÁ´½ÓÀ´²é¿´°ïÖúÄÚÈÝÖеIJ»Í¬Õ½Ú.
+<ul class="toc_ul">
+ <li class="toc_li"><a href="about.htm">¹ØÓÚTinyMCE</a></li>
+ <li class="toc_li"><a href="common_buttons.htm">³£Óð´Å¥</a></li>
+ <li class="toc_li"><a href="insert_image_button.htm">²åÈëͼÏñ°´Å¥</a></li>
+ <li class="toc_li"><a href="insert_link_button.htm">²åÈëÁ´½Ó°´Å¥</a></li>
+ <li class="toc_li"><a href="insert_anchor_button.htm">²åÈëêµã°´Å¥</a></li>
+ <li class="toc_li"><a href="insert_table_button.htm">²åÈë±í¸ñ°´Å¥</a></li>
+</ul>
+<hr noshade>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>²åÈëêµã°´Å¥</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">²åÈëêµã°´Å¥</span></td>
+ <td align="right"><a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>´Ë°´Å¥»á´ò¿ª²åÈë/±à¼ÃªµãµÄ¶Ô»°´°¿Ú£º<br>
+<br>
+<img src="images/insert_anchor_window.gif" width="320" height="127"><br>
+<br>´°¿ÚÖÐÖ»ÓÐÒ»¸öÎı¾Óò£¬Äã¿ÉÒÔÔÚ´ËÊäÈëêµãÃû³Æ£¬ÐèҪעÒâµÄÊÇêµãÃû³Æ±ØÐëÊÇΨһµÄ¡£<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>·µ»Ø <a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ <td align="right"><a href="#">¶¥²¿</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>²åÈëͼÏñ°´Å¥</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">²åÈëͼÏñ°´Å¥</span></td>
+ <td align="right"><a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>µã»÷<U>²åÈëͼƬ</U>°´Å¥ºó»á´ò¿ªÒÔÏ´°¿Ú£º<br>
+<br>
+<img src="images/insert_image_window.gif" width="340" height="295"><br>
+<br>ÄãÖ»Ðè¼òµ¥µÄÊäÈëÐèÒªÁ¬½ÓµÄͼÏñµØÖ·¼°Í¼ÏñÃèÊö£¨Í¼ÏñµÄÌæ´úÎÄ×Ö£©<br>
+<br>
+<strong>²ÎÊý˵Ã÷£º</strong><br>
+<table cellpadding="3" cellspacing="1" bgcolor="#000000">
+ <tr>
+ <td width="150" bgcolor="#EEEEEE"><strong>ͼÏñµØÖ·</strong></td>
+ <td bgcolor="#FFFFFF">Òª²åÈëµÄͼƬµÄURL</td>
+ </tr>
+ <tr>
+ <td width="150" bgcolor="#EEEEEE"><strong>ͼÏñÃèÊö</strong></td>
+ <td bgcolor="#FFFFFF">ͼƬÄÚÈݵÄÌæ´úÎÄ×ÖÃèÊö</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>άÊý</strong></td>
+ <td bgcolor="#FFFFFF">ͼÏñ¿í¶ÈÓë¸ß¶È</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>¶ÔÆ뷽ʽ</strong></td>
+ <td bgcolor="#FFFFFF">ͼÏñµÄ¶ÔÆ뷽ʽ£¬ÔÚÎÄ×Ö»·ÈÆͼÏñʱÌرðÓÐÓá£</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>±ß¿ò</strong></td>
+ <td bgcolor="#FFFFFF">ͼÏñ±ß¿òµÄºñ¶È</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>ˮƽ¼ä¾à</strong></td>
+ <td bgcolor="#FFFFFF">ͼÏñˮƽ¼ä¾à£¬ÔÚÎÄ×Ö»·ÈÆͼÏñʱÌرðÓÐÓá£</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>´¹Ö±¼ä¾à</strong></td>
+ <td bgcolor="#FFFFFF">ͼÏñ´¹Ö±¼ä¾à£¬ÔÚÎÄ×Ö»·ÈÆͼÏñʱÌرðÓÐÓá£</td>
+ </tr>
+</table>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>·µ»Ø <a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ <td align="right"><a href="#">¶¥²¿</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>²åÈëÁ´½Ó°´Å¥</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">²åÈëÁ´½Ó°´Å¥</span></td>
+ <td align="right"><a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>´Ë°´Å¥»á´ò¿ª²åÈë/±à¼Á´½ÓµÄ¶Ô»°´°¿Ú£º<br>
+<br>
+<img src="images/insert_link_window.gif" width="320" height="155" border="0"><br>
+<br>´°¿ÚÖÐÓÐÁ½¸ö±íµ¥Óò£¬µÚÒ»¸öÊÇÁ´½ÓµÄµØÖ·£¬µÚ¶þ¸öÊÇÁ´½ÓµÄ´ò¿ª·½Ê½¡£
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>·µ»Ø <a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ <td align="right"><a href="#">¶¥²¿</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<HEAD>
+<TITLE>²åÈë±í¸ñ°´Å¥</TITLE>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
+<link href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pageheader">
+ <tr>
+ <td><span class="title">²åÈë±í¸ñ°´Å¥</span></td>
+ <td align="right"><a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ </tr>
+</table>
+<hr noshade>
+<br>µã»÷<U>²åÈë±í¸ñ</U>°´Å¥»á´ò¿ªÒÔÏ´°¿Ú£¬´Ë²Ù×÷ÔÊÐíÄã´´½¨±í¸ñ¡£<br>
+<br>
+<img src="images/insert_table_window.gif" width="340" height="239" border="0"><br>
+<br>
+<strong>²ÎÊý˵Ã÷£º</strong><br>
+<table cellpadding="3" cellspacing="1" bgcolor="#000000">
+ <tr>
+ <td width="150" bgcolor="#EEEEEE"><strong>ÁÐÊý</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñÁÐÊý</td>
+ </tr>
+ <tr>
+ <td width="150" bgcolor="#EEEEEE"><strong>ÐÐÊý</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñÐÐÊý</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>Ìî³ä</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñµ¥Ôª¸ñµÄÌî³äÖµ</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>¼ä¾à</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñµ¥Ôª¸ñ¼ä¾à</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>¶ÔÆ뷽ʽ</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñ¶ÔÆ뷽ʽ</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>±ß¿ò</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñ±ß¿ò¿í¶È</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>¿í¶È</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñ¿í¶È£¬ÒÔÏóËØΪµ¥Î»¡£</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>¸ß¶È</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñ¸ß¶È£¬ÒÔÏóËØΪµ¥Î»¡£</td>
+ </tr>
+ <tr>
+ <td bgcolor="#EEEEEE"><strong>ˈ̞</strong></td>
+ <td bgcolor="#FFFFFF">±í¸ñcssÑùʽÃû</td>
+ </tr>
+</table>
+<br>
+<br>
+<hr noshade>
+<table width="100%" border="0" cellpadding="1" cellspacing="3" class="pagefooter">
+ <tr>
+ <td>·µ»Ø <a href="index.htm">ÄÚÈÝÌáÒª</a></td>
+ <td align="right"><a href="#">¶¥²¿</a></td>
+ </tr>
+</table>
+<br>
+</BODY>
+</HTML>
--- /dev/null
+body { background-color: #FFFFFF; }
+body, td, .content { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 12px; }
+.title { font-family: Verdana, Arial, helvetica, sans-serif; font-size: 16px; font-weight: bold; }
+.subtitle { font-size: 12px; font-weight: bold; }
+
+.toc_ul, .toc_li { margin-left: 8 px; line-height: 16px; }
+.step_ol, .step_li { margin-left: 11 px; line-height: 16px; }
+img { border: #000000 solid 1px; }
+
+a:visited { color: #666666; text-decoration: underline; }
+a:active { color: #666666; text-decoration: underline; }
+a:hover { color: #666666; text-decoration: underline; }
+a { color: #666666; text-decoration: underline; }
+
+.pageheader { border: #E0E0E0 solid 1px; }
+.pagefooter { border: #E0E0E0 solid 1px; }
+.sample { background-color: #FFFFFF; border: #000000 solid 1px; }
+.samplecontent { font-size: 10px; }
+
+.code { background-color: #FFFFFF; border: #000000 solid 1px; }
+.codecontent { font-size: 10px; }
+.codecontent a:visited { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:active { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a:hover { color: #666666; text-decoration: none; font-weight: bold }
+.codecontent a { color: #666666; text-decoration: none; font-weight: bold }
+
+hr { height: 1px; }
+
--- /dev/null
+/* Import theme specific language pack */
+ tinyMCE.importThemeLanguagePack('advanced');var TinyMCE_advanced_autoImportCSSClasses=true;var TinyMCE_advanced_resizer=new Object();var TinyMCE_advanced_buttons=[['bold','{$lang_bold_img}','{$lang_bold_desc}','Bold'],['italic','{$lang_italic_img}','{$lang_italic_desc}','Italic'],['underline','{$lang_underline_img}','{$lang_underline_desc}','Underline'],['strikethrough','strikethrough.gif','{$lang_striketrough_desc}','Strikethrough'],['justifyleft','left.gif','{$lang_justifyleft_desc}','JustifyLeft'],['justifycenter','center.gif','{$lang_justifycenter_desc}','JustifyCenter'],['justifyright','right.gif','{$lang_justifyright_desc}','JustifyRight'],['justifyfull','full.gif','{$lang_justifyfull_desc}','JustifyFull'],['bullist','bullist.gif','{$lang_bullist_desc}','InsertUnorderedList'],['numlist','numlist.gif','{$lang_numlist_desc}','InsertOrderedList'],['outdent','outdent.gif','{$lang_outdent_desc}','Outdent'],['indent','indent.gif','{$lang_indent_desc}','Indent'],['cut','cut.gif','{$lang_cut_desc}','Cut'],['copy','copy.gif','{$lang_copy_desc}','Copy'],['paste','paste.gif','{$lang_paste_desc}','Paste'],['undo','undo.gif','{$lang_undo_desc}','Undo'],['redo','redo.gif','{$lang_redo_desc}','Redo'],['link','link.gif','{$lang_link_desc}','mceLink',true],['unlink','unlink.gif','{$lang_unlink_desc}','unlink'],['image','image.gif','{$lang_image_desc}','mceImage',true],['cleanup','cleanup.gif','{$lang_cleanup_desc}','mceCleanup'],['help','help.gif','{$lang_help_desc}','mceHelp'],['code','code.gif','{$lang_theme_code_desc}','mceCodeEditor'],['hr','hr.gif','{$lang_theme_hr_desc}','inserthorizontalrule'],['removeformat','removeformat.gif','{$lang_theme_removeformat_desc}','removeformat'],['sub','sub.gif','{$lang_theme_sub_desc}','subscript'],['sup','sup.gif','{$lang_theme_sup_desc}','superscript'],['forecolor','forecolor.gif','{$lang_theme_forecolor_desc}','mceForeColor',true],['backcolor','backcolor.gif','{$lang_theme_backcolor_desc}','mceBackColor',true],['charmap','charmap.gif','{$lang_theme_charmap_desc}','mceCharMap'],['visualaid','visualaid.gif','{$lang_theme_visualaid_desc}','mceToggleVisualAid'],['anchor','anchor.gif','{$lang_theme_anchor_desc}','mceInsertAnchor'],['newdocument','newdocument.gif','{$lang_newdocument_desc}','mceNewDocument']];function TinyMCE_advanced_getControlHTML(button_name){var buttonTileMap=new Array('anchor.gif','backcolor.gif','bullist.gif','center.gif','charmap.gif','cleanup.gif','code.gif','copy.gif','custom_1.gif','cut.gif','forecolor.gif','full.gif','help.gif','hr.gif','image.gif','indent.gif','left.gif','link.gif','numlist.gif','outdent.gif','paste.gif','redo.gif','removeformat.gif','right.gif','strikethrough.gif','sub.gif','sup.gif','undo.gif','unlink.gif','visualaid.gif');for(var i=0;i<TinyMCE_advanced_buttons.length;i++){var but=TinyMCE_advanced_buttons[i];if(but[0]==button_name){if(tinyMCE.settings['button_tile_map']){for(var x=0;!tinyMCE.isMSIE&&x<buttonTileMap.length;x++){if(buttonTileMap[x]==but[1]){return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+')" onmousedown="return false;"><img id="{$editor_id}_'+but[0]+'" src="{$themeurl}/images/spacer.gif" style="background-image:url({$themeurl}/images/buttons.gif); background-position: '+(0-(x*20))+'px 0px" title="'+but[2]+'" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}}}return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\''+but[3]+'\', '+(but.length>4?but[4]:false)+(but.length>5?', \''+but[5]+'\'':'')+')" onmousedown="return false;"><img id="{$editor_id}_'+but[0]+'" src="{$themeurl}/images/'+but[1]+'" title="'+but[2]+'" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';}}switch(button_name){case "formatselect":var html='<select id="{$editor_id}_formatSelect" name="{$editor_id}_formatSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FormatBlock\',false,this.options[this.selectedIndex].value);" class="mceSelectList">';var formats=tinyMCE.getParam("theme_advanced_blockformats","p,address,pre,h1,h2,h3,h4,h5,h6",true).split(',');var lookup=[['p','{$lang_theme_paragraph}'],['address','{$lang_theme_address}'],['pre','{$lang_theme_pre}'],['h1','{$lang_theme_h1}'],['h2','{$lang_theme_h2}'],['h3','{$lang_theme_h3}'],['h4','{$lang_theme_h4}'],['h5','{$lang_theme_h5}'],['h6','{$lang_theme_h6}']];html+='<option value="">{$lang_theme_block}</option>';for(var i=0;i<formats.length;i++){for(var x=0;x<lookup.length;x++){if(formats[i]==lookup[x][0]){html+='<option value="<'+lookup[x][0]+'>">'+lookup[x][1]+'</option>';}}}html+='</select>';return html;case "styleselect":return '<select id="{$editor_id}_styleSelect" onmousedown="TinyMCE_advanced_setupCSSClasses(\'{$editor_id}\');" name="{$editor_id}_styleSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSetCSSClass\',false,this.options[this.selectedIndex].value);" class="mceSelectList">{$style_select_options}</select>';case "fontselect":var fontHTML='<select id="{$editor_id}_fontNameSelect" name="{$editor_id}_fontNameSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontName\',false,this.options[this.selectedIndex].value);" class="mceSelectList"><option value="">{$lang_theme_fontdefault}</option>';var iFonts='Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';var nFonts='Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sand;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats';var fonts=tinyMCE.getParam("theme_advanced_fonts",nFonts).split(';');for(var i=0;i<fonts.length;i++){if(fonts[i]!=''){var parts=fonts[i].split('=');fontHTML+='<option value="'+parts[1]+'">'+parts[0]+'</option>';}}fontHTML+='</select>';return fontHTML;case "fontsizeselect":return '<select id="{$editor_id}_fontSizeSelect" name="{$editor_id}_fontSizeSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontSize\',false,this.options[this.selectedIndex].value);" class="mceSelectList">\
+ <option value="0">{$lang_theme_font_size}</option>\
+ <option value="1">1 (8 pt)</option>\
+ <option value="2">2 (10 pt)</option>\
+ <option value="3">3 (12 pt)</option>\
+ <option value="4">4 (14 pt)</option>\
+ <option value="5">5 (18 pt)</option>\
+ <option value="6">6 (24 pt)</option>\
+ <option value="7">7 (36 pt)</option>\
+ </select>';case "|":case "separator":return '<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">';case "spacer":return '<img src="{$themeurl}/images/spacer.gif" width="1" height="15" border="0" class="mceSeparatorLine" style="vertical-align: middle" />';case "rowseparator":return '<br />';}return "";}function TinyMCE_advanced_execCommand(editor_id,element,command,user_interface,value){switch(command){case "mceForeColor":var template=new Array();var elm=tinyMCE.selectedInstance.getFocusElement();var inputColor=tinyMCE.getAttrib(elm,"color");if(inputColor=='')inputColor=elm.style.color;if(!inputColor)inputColor="#000000";template['file']='color_picker.htm';template['width']=220;template['height']=190;tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",command:"forecolor",input_color:inputColor});return true;case "mceBackColor":var template=new Array();var elm=tinyMCE.selectedInstance.getFocusElement();var inputColor=elm.style.backgroundColor;if(!inputColor)inputColor="#000000";template['file']='color_picker.htm';template['width']=220;template['height']=190;template['width']+=tinyMCE.getLang('lang_theme_advanced_backcolor_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_backcolor_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes",command:"HiliteColor",input_color:inputColor});return true;case "mceColorPicker":if(user_interface){var template=new Array();var inputColor=value['document'].getElementById(value['element_id']).value;template['file']='color_picker.htm';template['width']=220;template['height']=190;template['width']+=tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_height',0);if(typeof(value['store_selection'])=="undefined")value['store_selection']=true;tinyMCE.lastColorPickerValue=value;tinyMCE.openWindow(template,{editor_id:editor_id,mce_store_selection:value['store_selection'],inline:"yes",command:"mceColorPicker",input_color:inputColor});}else{var savedVal=tinyMCE.lastColorPickerValue;var elm=savedVal['document'].getElementById(savedVal['element_id']);elm.value=value;eval('elm.onchange();');}return true;case "mceCodeEditor":var template=new Array();template['file']='source_editor.htm';template['width']=parseInt(tinyMCE.getParam("theme_advanced_source_editor_width",500));template['height']=parseInt(tinyMCE.getParam("theme_advanced_source_editor_height",400));tinyMCE.openWindow(template,{editor_id:editor_id,resizable:"yes",scrollbars:"no",inline:"yes"});return true;case "mceCharMap":var template=new Array();template['file']='charmap.htm';template['width']=550;template['height']=250;template['width']+=tinyMCE.getLang('lang_theme_advanced_charmap_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_charmap_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case "mceInsertAnchor":var template=new Array();template['file']='anchor.htm';template['width']=320;template['height']=90;template['width']+=tinyMCE.getLang('lang_theme_advanced_anchor_delta_width',0);template['height']+=tinyMCE.getLang('lang_theme_advanced_anchor_delta_height',0);tinyMCE.openWindow(template,{editor_id:editor_id,inline:"yes"});return true;case "mceNewDocument":if(confirm(tinyMCE.getLang('lang_newdocument')))tinyMCE.execInstanceCommand(editor_id,'mceSetContent',false,'');return true;}return false;}function TinyMCE_advanced_getEditorTemplate(settings,editorId){function removeFromArray(in_array,remove_array){var outArray=new Array();for(var i=0;i<in_array.length;i++){skip=false;for(var j=0;j<remove_array.length;j++){if(in_array[i]==remove_array[j]){skip=true;}}if(!skip){outArray[outArray.length]=in_array[i];}}return outArray;}function addToArray(in_array,add_array){for(var i=0;i<add_array.length;i++){in_array[in_array.length]=add_array[i];}return in_array;}var template=new Array();var deltaHeight=0;var resizing=tinyMCE.getParam("theme_advanced_resizing",false);var path=tinyMCE.getParam("theme_advanced_path",true);var statusbarHTML='<div id="{$editor_id}_path" class="mceStatusbarPathText" style="display: '+(path?"block":"none")+'"> </div><div id="{$editor_id}_resize" class="mceStatusbarResize" style="display: '+(resizing?"block":"none")+'" onmousedown="TinyMCE_advanced_setResizing(event,\'{$editor_id}\',true);"></div><br style="clear: both" />';var layoutManager=tinyMCE.getParam("theme_advanced_layout_manager","SimpleLayout");var styleSelectHTML='<option value="">{$lang_theme_style_select}</option>';if(settings['theme_advanced_styles']){var stylesAr=settings['theme_advanced_styles'].split(';');for(var i=0;i<stylesAr.length;i++){var key,value;key=stylesAr[i].split('=')[0];value=stylesAr[i].split('=')[1];styleSelectHTML+='<option value="'+value+'">'+key+'</option>';}TinyMCE_advanced_autoImportCSSClasses=false;}switch(layoutManager){case "SimpleLayout":var toolbarHTML="";var toolbarLocation=tinyMCE.getParam("theme_advanced_toolbar_location","bottom");var toolbarAlign=tinyMCE.getParam("theme_advanced_toolbar_align","center");var pathLocation=tinyMCE.getParam("theme_advanced_path_location","none");var statusbarLocation=tinyMCE.getParam("theme_advanced_statusbar_location",pathLocation);var defVals={theme_advanced_buttons1:"bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,separator,sub,sup,separator,charmap"};for(var i=1;i<100;i++){var def=defVals["theme_advanced_buttons"+i];buttons=tinyMCE.getParam("theme_advanced_buttons"+i,def==null?'':def,true,',');if(buttons.length==0)break;buttons=removeFromArray(buttons,tinyMCE.getParam("theme_advanced_disable","",true,','));buttons=addToArray(buttons,tinyMCE.getParam("theme_advanced_buttons"+i+"_add","",true,','));buttons=addToArray(tinyMCE.getParam("theme_advanced_buttons"+i+"_add_before","",true,','),buttons);for(var b=0;b<buttons.length;b++)toolbarHTML+=tinyMCE.getControlHTML(buttons[b]);if(buttons.length>0){toolbarHTML+="<br />";deltaHeight-=23;}}template['html']='<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width}px;height:{$height}px"><tbody>';if(toolbarLocation=="top"){template['html']+='<tr><td class="mceToolbarTop" align="'+toolbarAlign+'" height="1" nowrap="nowrap">'+toolbarHTML+'</td></tr>';}if(statusbarLocation=="top"){template['html']+='<tr><td class="mceStatusbarTop" height="1">'+statusbarHTML+'</td></tr>';deltaHeight-=23;}template['html']+='<tr><td align="center"><span id="{$editor_id}"></span></td></tr>';if(toolbarLocation=="bottom"){template['html']+='<tr><td class="mceToolbarBottom" align="'+toolbarAlign+'" height="1">'+toolbarHTML+'</td></tr>';}if(toolbarLocation=="external"){var bod=document.body;var elm=document.createElement("div");toolbarHTML=tinyMCE.replaceVars(toolbarHTML,tinyMCE.settings);toolbarHTML=tinyMCE.replaceVars(toolbarHTML,tinyMCELang);toolbarHTML=tinyMCE.replaceVar(toolbarHTML,'style_select_options',styleSelectHTML);toolbarHTML=tinyMCE.replaceVar(toolbarHTML,"editor_id",editorId);toolbarHTML=tinyMCE.applyTemplate(toolbarHTML);elm.className="mceToolbarExternal";elm.id=editorId+"_toolbar";elm.innerHTML='<table width="100%" border="0" align="center"><tr><td align="center">'+toolbarHTML+'</td></tr></table>';bod.appendChild(elm);deltaHeight=0;tinyMCE.getInstanceById(editorId).toolbarElement=elm;}else{tinyMCE.getInstanceById(editorId).toolbarElement=null;}if(statusbarLocation=="bottom"){template['html']+='<tr><td class="mceStatusbarBottom" height="1">'+statusbarHTML+'</td></tr>';deltaHeight-=23;}template['html']+='</table>';break;case "RowLayout":template['html']='<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width}px;height:{$height}px"><tbody>';var containers=tinyMCE.getParam("theme_advanced_containers","",true,",");var defaultContainerCSS=tinyMCE.getParam("theme_advanced_containers_default_class","container");var defaultContainerAlign=tinyMCE.getParam("theme_advanced_containers_default_align","center");for(var i=0;i<containers.length;i++){if(containers[i]=="mceEditor"){template['html']+='<tr><td align="center" class="mceEditor_border">\
+ <span id="{$editor_id}"></span>\
+ </td></tr>';}else if(containers[i]=="mceElementpath"||containers[i]=="mceStatusbar"){var pathClass="mceStatusbar";if(i==containers.length-1){pathClass="mceStatusbarBottom";}else if(i==0){pathClass="mceStatusbar";}else{deltaHeight-=2;}template['html']+='<tr><td class="'+pathClass+'" height="1">'+statusbarHTML+'</td></tr>';deltaHeight-=22;}else{var curContainer=tinyMCE.getParam("theme_advanced_container_"+containers[i],"",true,',');var curContainerHTML="";var curAlign=tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align",defaultContainerAlign);var curCSS=tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class",defaultContainerCSS);for(var j=0;j<curContainer.length;j++){curContainerHTML+=tinyMCE.getControlHTML(curContainer[j]);}if(curContainer.length>0){curContainerHTML+="<br />";deltaHeight-=23;}template['html']+='<tr><td class="'+curCSS+'" align="'+curAlign+'" height="1">'+curContainerHTML+'</td></tr>';}}template['html']+='</tbody></table>';break;case "BorderLayout":break;case "CustomLayout":var customLayout=tinyMCE.getParam("theme_advanced_custom_layout","");if(customLayout!=""&&eval("typeof("+customLayout+")")!="undefined"){template=eval(customLayout+"(template);");}break;default:alert('UNDEFINED LAYOUT MANAGER! PLEASE CHECK YOUR TINYMCE CONFIG!');break;}template['html']+='<div id="{$editor_id}_resize_box" class="mceResizeBox"></div>';template['html']=tinyMCE.replaceVar(template['html'],'style_select_options',styleSelectHTML);template['delta_width']=0;template['delta_height']=deltaHeight;return template;}function TinyMCE_advanced_setResizing(e,editor_id,state){e=typeof(e)=="undefined"?window.event:e;var resizer=TinyMCE_advanced_resizer;var editorContainer=document.getElementById(editor_id+'_parent');var editorArea=document.getElementById(editor_id+'_parent').firstChild;var resizeBox=document.getElementById(editor_id+'_resize_box');var inst=tinyMCE.getInstanceById(editor_id);if(state){var width=editorArea.clientWidth;var height=editorArea.clientHeight;resizeBox.style.width=width+"px";resizeBox.style.height=height+"px";resizer.iframeWidth=inst.iframeElement.clientWidth;resizer.iframeHeight=inst.iframeElement.clientHeight;editorArea.style.display="none";resizeBox.style.display="block";if(!resizer.eventHandlers){if(tinyMCE.isMSIE)tinyMCE.addEvent(document,"mousemove",TinyMCE_advanced_resizeEventHandler);else tinyMCE.addEvent(window,"mousemove",TinyMCE_advanced_resizeEventHandler);tinyMCE.addEvent(document,"mouseup",TinyMCE_advanced_resizeEventHandler);resizer.eventHandlers=true;}resizer.resizing=true;resizer.downX=e.screenX;resizer.downY=e.screenY;resizer.width=parseInt(resizeBox.style.width);resizer.height=parseInt(resizeBox.style.height);resizer.editorId=editor_id;resizer.resizeBox=resizeBox;resizer.horizontal=tinyMCE.getParam("theme_advanced_resize_horizontal",true);}else{resizer.resizing=false;resizeBox.style.display="none";editorArea.style.display=tinyMCE.isMSIE?"block":"table";tinyMCE.execCommand('mceResetDesignMode');}}function TinyMCE_advanced_initInstance(inst){if(tinyMCE.getParam("theme_advanced_resizing",false)){var w=TinyMCE_advanced_getCookie("TinyMCE_"+inst.editorId+"_width");var h=TinyMCE_advanced_getCookie("TinyMCE_"+inst.editorId+"_height");TinyMCE_advanced_resizeTo(inst,w,h,tinyMCE.getParam("theme_advanced_resize_horizontal",true));}}function TinyMCE_advanced_setCookie(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+((expires)?"; expires="+expires.toGMTString():"")+((path)?"; path="+escape(path):"")+((domain)?"; domain="+domain:"")+((secure)?"; secure":"");document.cookie=curCookie;}function TinyMCE_advanced_getCookie(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null;}else begin+=2;var end=document.cookie.indexOf(";",begin);if(end==-1)end=dc.length;return unescape(dc.substring(begin+prefix.length,end));}function TinyMCE_advanced_resizeTo(inst,w,h,set_w){var editorContainer=document.getElementById(inst.editorId+'_parent');var tableElm=editorContainer.firstChild;var iframe=inst.iframeElement;if(w==null||w=="null"){set_w=false;w=0;}if(h==null||h=="null")return;w=parseInt(w);h=parseInt(h);if(tinyMCE.isGecko){w+=2;h+=2;}var dx=w-tableElm.clientWidth;var dy=h-tableElm.clientHeight;if(set_w)tableElm.style.width=w+"px";tableElm.style.height=h+"px";iw=iframe.clientWidth+dx;ih=iframe.clientHeight+dy;if(tinyMCE.isGecko){iw-=2;ih-=2;}if(set_w)iframe.style.width=iw+"px";iframe.style.height=ih+"px";if(set_w){var tableBodyElm=tableElm.firstChild;var minIframeWidth=tableBodyElm.scrollWidth;if(inst.iframeElement.clientWidth<minIframeWidth){dx=minIframeWidth-inst.iframeElement.clientWidth;inst.iframeElement.style.width=(iw+dx)+"px";}}}function TinyMCE_advanced_resizeEventHandler(e){var resizer=TinyMCE_advanced_resizer;if(!resizer.resizing)return;e=typeof(e)=="undefined"?window.event:e;var dx=e.screenX-resizer.downX;var dy=e.screenY-resizer.downY;var resizeBox=resizer.resizeBox;var editorId=resizer.editorId;switch(e.type){case "mousemove":if(resizer.horizontal)resizeBox.style.width=(resizer.width+dx)+"px";resizeBox.style.height=(resizer.height+dy)+"px";break;case "mouseup":TinyMCE_advanced_setResizing(e,editorId,false);TinyMCE_advanced_resizeTo(tinyMCE.getInstanceById(editorId),resizer.width+dx,resizer.height+dy,resizer.horizontal);var expires=new Date();expires.setTime(expires.getTime()+3600000*24*30);TinyMCE_advanced_setCookie("TinyMCE_"+editorId+"_width",""+(resizer.horizontal?resizer.width+dx:""),expires);TinyMCE_advanced_setCookie("TinyMCE_"+editorId+"_height",""+(resizer.height+dy),expires);break;}}function TinyMCE_advanced_getInsertLinkTemplate(){var template=new Array();template['file']='link.htm';template['width']=330;template['height']=170;template['width']+=tinyMCE.getLang('lang_insert_link_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_link_delta_height',0);return template;};function TinyMCE_advanced_getInsertImageTemplate(){var template=new Array();template['file']='image.htm?src={$src}';template['width']=340;template['height']=245;template['width']+=tinyMCE.getLang('lang_insert_image_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_image_delta_height',0);return template;};function TinyMCE_advanced_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){function selectByValue(select_elm,value){if(select_elm){for(var i=0;i<select_elm.options.length;i++){if(select_elm.options[i].value==value){select_elm.selectedIndex=i;return true;}}}return false;};function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";};if(node==null){return;}var pathElm=document.getElementById(editor_id+"_path");if(pathElm){var parentNode=node;var path=new Array();while(parentNode){if(parentNode.nodeName.toLowerCase()=="body"){break;}if(parentNode.nodeType==1){path[path.length]=parentNode;}parentNode=parentNode.parentNode;}var html="";for(var i=path.length-1;i>=0;i--){var nodeName=path[i].nodeName.toLowerCase();var nodeData="";if(nodeName=="b"){nodeName="strong";}if(nodeName=="i"){nodeName="em";}if(getAttrib(path[i],'id')!=""){nodeData+="id: "+path[i].getAttribute('id')+" ";}var className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i],"class"),false);if(className!=""&&className.indexOf('mceItem')==-1)nodeData+="class: "+className+" ";if(getAttrib(path[i],'src')!=""){nodeData+="src: "+path[i].getAttribute('src')+" ";}if(getAttrib(path[i],'href')!=""){nodeData+="href: "+path[i].getAttribute('href')+" ";}if(nodeName=="img"&&tinyMCE.getAttrib(path[i],"class").indexOf('mceItemFlash')!=-1){nodeName="flash";nodeData="";}if(nodeName=="a"&&(anchor=tinyMCE.getAttrib(path[i],"name"))!=""){nodeName="a";nodeName+="#"+anchor;nodeData="";}if(getAttrib(path[i],'name').indexOf("mce_")!=0){var className=tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i],"class"),false);if(className!=""&&className.indexOf('mceItem')==-1)nodeName+="."+className;}if(tinyMCE.isMSIE){html+='<a title="'+nodeData+'" href="javascript:void(0);" onmousedown="tinyMCE.execInstanceCommand(\''+editor_id+'\',\'mceSelectNodeDepth\',false,\''+i+'\');return false;" class="mcePathItem">'+nodeName+'</a>';}else{html+='<a title="'+nodeData+'" href="javascript:tinyMCE.execInstanceCommand(\''+editor_id+'\',\'mceSelectNodeDepth\',false,\''+i+'\');" class="mcePathItem">'+nodeName+'</a>';}if(i>0){html+=" » ";}}pathElm.innerHTML=tinyMCE.getLang('lang_theme_path')+": "+html+' ';}tinyMCE.switchClassSticky(editor_id+'_justifyleft','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_justifyright','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_justifycenter','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_justifyfull','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_numlist','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_sub','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_sup','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_anchor','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_link','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_unlink','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_outdent','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_image','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_hr','mceButtonNormal');if(node.nodeName=="A"&&tinyMCE.getAttrib(node,"class").indexOf('mceItemAnchor')!=-1)tinyMCE.switchClassSticky(editor_id+'_anchor','mceButtonSelected');var anchorLink=tinyMCE.getParentElement(node,"a","href");if(anchorLink||any_selection){tinyMCE.switchClassSticky(editor_id+'_link',anchorLink?'mceButtonSelected':'mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_unlink',anchorLink?'mceButtonSelected':'mceButtonNormal',false);}tinyMCE.switchClassSticky(editor_id+'_visualaid',visual_aid?'mceButtonSelected':'mceButtonNormal',false);if(undo_levels!=-1){tinyMCE.switchClassSticky(editor_id+'_undo','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_redo','mceButtonDisabled',true);}if(tinyMCE.getParentElement(node,"li,blockquote")){tinyMCE.switchClassSticky(editor_id+'_outdent','mceButtonNormal',false);}if(undo_index!=-1&&(undo_index<undo_levels-1&&undo_levels>0)){tinyMCE.switchClassSticky(editor_id+'_redo','mceButtonNormal',false);}if(undo_index!=-1&&(undo_index>0&&undo_levels>0)){tinyMCE.switchClassSticky(editor_id+'_undo','mceButtonNormal',false);}var selectElm=document.getElementById(editor_id+"_styleSelect");if(selectElm){TinyMCE_advanced_setupCSSClasses(editor_id);classNode=node;breakOut=false;var index=0;do{if(classNode&&classNode.className){for(var i=0;i<selectElm.options.length;i++){if(selectElm.options[i].value==classNode.className){index=i;breakOut=true;break;}}}}while(!breakOut&&classNode!=null&&(classNode=classNode.parentNode));selectElm.selectedIndex=index;}var selectElm=document.getElementById(editor_id+"_formatSelect");if(selectElm){var elm=tinyMCE.getParentElement(node,"p,div,h1,h2,h3,h4,h5,h6,pre,address");if(elm){selectByValue(selectElm,"<"+elm.nodeName.toLowerCase()+">");}else{selectByValue(selectElm,"");}}var selectElm=document.getElementById(editor_id+"_fontNameSelect");if(selectElm){var elm=tinyMCE.getParentElement(node);if(elm){var family=tinyMCE.getAttrib(elm,"face");if(family=='')family=''+elm.style.fontFamily;if(!selectByValue(selectElm,family))selectByValue(selectElm,"");}else selectByValue(selectElm,"");}var selectElm=document.getElementById(editor_id+"_fontSizeSelect");if(selectElm){var elm=tinyMCE.getParentElement(node);if(elm){var size=tinyMCE.getAttrib(elm,"size");if(size==''){var sizes=new Array('','8px','10px','12px','14px','18px','24px','36px');size=''+elm.style.fontSize;for(var i=0;i<sizes.length;i++){if((''+sizes[i])==size){size=i;break;}}}if(!selectByValue(selectElm,size))selectByValue(selectElm,"");}else selectByValue(selectElm,"0");}alignNode=node;breakOut=false;do{if(!alignNode.getAttribute||!alignNode.getAttribute('align')){continue;}switch(alignNode.getAttribute('align').toLowerCase()){case "left":tinyMCE.switchClassSticky(editor_id+'_justifyleft','mceButtonSelected');breakOut=true;break;case "right":tinyMCE.switchClassSticky(editor_id+'_justifyright','mceButtonSelected');breakOut=true;break;case "middle":case "center":tinyMCE.switchClassSticky(editor_id+'_justifycenter','mceButtonSelected');breakOut=true;break;case "justify":tinyMCE.switchClassSticky(editor_id+'_justifyfull','mceButtonSelected');breakOut=true;break;}}while(!breakOut&&(alignNode=alignNode.parentNode));var div=tinyMCE.getParentElement(node,"div");if(div&&div.style.textAlign=="center")tinyMCE.switchClassSticky(editor_id+'_justifycenter','mceButtonSelected');if(tinyMCE.isGecko&&node.nodeType==3){var inst=tinyMCE.getInstanceById(editor_id);var doc=inst.getDoc();if(doc.queryCommandState("Bold")){tinyMCE.switchClassSticky(editor_id+'_bold','mceButtonSelected');}if(doc.queryCommandState("Italic")){tinyMCE.switchClassSticky(editor_id+'_italic','mceButtonSelected');}if(doc.queryCommandState("Underline")&&(node.parentNode==null||node.parentNode.nodeName!="A")){tinyMCE.switchClassSticky(editor_id+'_underline','mceButtonSelected');}if(doc.queryCommandState("Strikethrough")){tinyMCE.switchClassSticky(editor_id+'_strikethrough','mceButtonSelected');}}do{switch(node.nodeName.toLowerCase()){case "b":case "strong":tinyMCE.switchClassSticky(editor_id+'_bold','mceButtonSelected');break;case "i":case "em":tinyMCE.switchClassSticky(editor_id+'_italic','mceButtonSelected');break;case "u":tinyMCE.switchClassSticky(editor_id+'_underline','mceButtonSelected');break;case "strike":tinyMCE.switchClassSticky(editor_id+'_strikethrough','mceButtonSelected');break;case "ul":tinyMCE.switchClassSticky(editor_id+'_bullist','mceButtonSelected');break;case "ol":tinyMCE.switchClassSticky(editor_id+'_numlist','mceButtonSelected');break;case "sub":tinyMCE.switchClassSticky(editor_id+'_sub','mceButtonSelected');break;case "sup":tinyMCE.switchClassSticky(editor_id+'_sup','mceButtonSelected');break;case "hr":tinyMCE.switchClassSticky(editor_id+'_hr','mceButtonSelected');break;case "img":if(getAttrib(node,'name').indexOf('mce_')!=0){tinyMCE.switchClassSticky(editor_id+'_image','mceButtonSelected');}break;}}while((node=node.parentNode));};function TinyMCE_advanced_setupCSSClasses(editor_id){if(!TinyMCE_advanced_autoImportCSSClasses){return;}var selectElm=document.getElementById(editor_id+'_styleSelect');if(selectElm&&selectElm.getAttribute('cssImported')!='true'){var csses=tinyMCE.getCSSClasses(editor_id);if(csses&&selectElm){for(var i=0;i<csses.length;i++){selectElm.options[selectElm.length]=new Option(csses[i],csses[i]);}}if(csses!=null&&csses.length>0){selectElm.setAttribute('cssImported','true');}}};
\ No newline at end of file
--- /dev/null
+/* Import theme specific language pack */
+tinyMCE.importThemeLanguagePack('advanced');
+
+// Variable declarations
+var TinyMCE_advanced_autoImportCSSClasses = true;
+var TinyMCE_advanced_resizer = new Object();
+var TinyMCE_advanced_buttons = [
+ // Control id, button img, button title, command, user_interface, value
+ ['bold', '{$lang_bold_img}', '{$lang_bold_desc}', 'Bold'],
+ ['italic', '{$lang_italic_img}', '{$lang_italic_desc}', 'Italic'],
+ ['underline', '{$lang_underline_img}', '{$lang_underline_desc}', 'Underline'],
+ ['strikethrough', 'strikethrough.gif', '{$lang_striketrough_desc}', 'Strikethrough'],
+ ['justifyleft', 'left.gif', '{$lang_justifyleft_desc}', 'JustifyLeft'],
+ ['justifycenter', 'center.gif', '{$lang_justifycenter_desc}', 'JustifyCenter'],
+ ['justifyright', 'right.gif', '{$lang_justifyright_desc}', 'JustifyRight'],
+ ['justifyfull', 'full.gif', '{$lang_justifyfull_desc}', 'JustifyFull'],
+ ['bullist', 'bullist.gif', '{$lang_bullist_desc}', 'InsertUnorderedList'],
+ ['numlist', 'numlist.gif', '{$lang_numlist_desc}', 'InsertOrderedList'],
+ ['outdent', 'outdent.gif', '{$lang_outdent_desc}', 'Outdent'],
+ ['indent', 'indent.gif', '{$lang_indent_desc}', 'Indent'],
+ ['cut', 'cut.gif', '{$lang_cut_desc}', 'Cut'],
+ ['copy', 'copy.gif', '{$lang_copy_desc}', 'Copy'],
+ ['paste', 'paste.gif', '{$lang_paste_desc}', 'Paste'],
+ ['undo', 'undo.gif', '{$lang_undo_desc}', 'Undo'],
+ ['redo', 'redo.gif', '{$lang_redo_desc}', 'Redo'],
+ ['link', 'link.gif', '{$lang_link_desc}', 'mceLink', true],
+ ['unlink', 'unlink.gif', '{$lang_unlink_desc}', 'unlink'],
+ ['image', 'image.gif', '{$lang_image_desc}', 'mceImage', true],
+ ['cleanup', 'cleanup.gif', '{$lang_cleanup_desc}', 'mceCleanup'],
+ ['help', 'help.gif', '{$lang_help_desc}', 'mceHelp'],
+ ['code', 'code.gif', '{$lang_theme_code_desc}', 'mceCodeEditor'],
+ ['hr', 'hr.gif', '{$lang_theme_hr_desc}', 'inserthorizontalrule'],
+ ['removeformat', 'removeformat.gif', '{$lang_theme_removeformat_desc}', 'removeformat'],
+ ['sub', 'sub.gif', '{$lang_theme_sub_desc}', 'subscript'],
+ ['sup', 'sup.gif', '{$lang_theme_sup_desc}', 'superscript'],
+ ['forecolor', 'forecolor.gif', '{$lang_theme_forecolor_desc}', 'mceForeColor', true],
+ ['backcolor', 'backcolor.gif', '{$lang_theme_backcolor_desc}', 'mceBackColor', true],
+ ['charmap', 'charmap.gif', '{$lang_theme_charmap_desc}', 'mceCharMap'],
+ ['visualaid', 'visualaid.gif', '{$lang_theme_visualaid_desc}', 'mceToggleVisualAid'],
+ ['anchor', 'anchor.gif', '{$lang_theme_anchor_desc}', 'mceInsertAnchor'],
+ ['newdocument', 'newdocument.gif', '{$lang_newdocument_desc}', 'mceNewDocument']
+];
+
+/**
+ * Returns HTML code for the specificed control.
+ */
+function TinyMCE_advanced_getControlHTML(button_name)
+{
+ var buttonTileMap = new Array('anchor.gif','backcolor.gif','bullist.gif','center.gif',
+ 'charmap.gif','cleanup.gif','code.gif','copy.gif','custom_1.gif',
+ 'cut.gif','forecolor.gif','full.gif','help.gif','hr.gif',
+ 'image.gif','indent.gif','left.gif','link.gif','numlist.gif',
+ 'outdent.gif','paste.gif','redo.gif','removeformat.gif',
+ 'right.gif','strikethrough.gif','sub.gif','sup.gif','undo.gif',
+ 'unlink.gif','visualaid.gif');
+
+ // Lookup button in button list
+ for (var i=0; i<TinyMCE_advanced_buttons.length; i++)
+ {
+ var but = TinyMCE_advanced_buttons[i];
+
+ if (but[0] == button_name)
+ {
+ // Check for it in tilemap
+ if (tinyMCE.settings['button_tile_map'])
+ {
+ for (var x=0; !tinyMCE.isMSIE && x<buttonTileMap.length; x++)
+ {
+ if (buttonTileMap[x] == but[1])
+ {
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + but[3] + '\', ' + (but.length > 4 ? but[4] : false) + (but.length > 5 ? ', \'' + but[5] + '\'' : '') + ')" onmousedown="return false;"><img id="{$editor_id}_' + but[0] +'" src="{$themeurl}/images/spacer.gif" style="background-image:url({$themeurl}/images/buttons.gif); background-position: ' + (0-(x*20)) + 'px 0px" title="' + but[2] + '" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+ }
+ }
+
+ // Old style
+ return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'' + but[3] + '\', ' + (but.length > 4 ? but[4] : false) + (but.length > 5 ? ', \'' + but[5] + '\'' : '') + ')" onmousedown="return false;"><img id="{$editor_id}_' + but[0] + '" src="{$themeurl}/images/' + but[1] + '" title="' + but[2] + '" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';
+ }
+ }
+
+ // Custom controlls other than buttons
+ switch (button_name)
+ {
+ case "formatselect":
+ var html = '<select id="{$editor_id}_formatSelect" name="{$editor_id}_formatSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FormatBlock\',false,this.options[this.selectedIndex].value);" class="mceSelectList">';
+ var formats = tinyMCE.getParam("theme_advanced_blockformats", "p,address,pre,h1,h2,h3,h4,h5,h6", true).split(',');
+ var lookup = [
+ ['p', '{$lang_theme_paragraph}'],
+ ['address', '{$lang_theme_address}'],
+ ['pre', '{$lang_theme_pre}'],
+ ['h1', '{$lang_theme_h1}'],
+ ['h2', '{$lang_theme_h2}'],
+ ['h3', '{$lang_theme_h3}'],
+ ['h4', '{$lang_theme_h4}'],
+ ['h5', '{$lang_theme_h5}'],
+ ['h6', '{$lang_theme_h6}']
+ ];
+
+ html += '<option value="">{$lang_theme_block}</option>';
+
+ // Build format select
+ for (var i=0; i<formats.length; i++)
+ {
+ for (var x=0; x<lookup.length; x++)
+ {
+ if (formats[i] == lookup[x][0])
+ {
+ html += '<option value="<' + lookup[x][0] + '>">' + lookup[x][1] + '</option>';
+ }
+ }
+ }
+
+ html += '</select>';
+ //formatselect
+ return html;
+
+ case "styleselect":
+ //styleselect
+ return '<select id="{$editor_id}_styleSelect" onmousedown="TinyMCE_advanced_setupCSSClasses(\'{$editor_id}\');" name="{$editor_id}_styleSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceSetCSSClass\',false,this.options[this.selectedIndex].value);" class="mceSelectList">{$style_select_options}</select>';
+
+ case "fontselect":
+ var fontHTML = '<select id="{$editor_id}_fontNameSelect" name="{$editor_id}_fontNameSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontName\',false,this.options[this.selectedIndex].value);" class="mceSelectList"><option value="">{$lang_theme_fontdefault}</option>';
+ var iFonts = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
+ var nFonts = 'Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sand;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats';
+ var fonts = tinyMCE.getParam("theme_advanced_fonts", nFonts).split(';');
+ for (var i=0; i<fonts.length; i++) {
+ if (fonts[i] != '') {
+ var parts = fonts[i].split('=');
+ fontHTML += '<option value="' + parts[1] + '">' + parts[0] + '</option>';
+ }
+ }
+
+ fontHTML += '</select>';
+ return fontHTML;
+
+ case "fontsizeselect":
+ //fontsizeselect
+ return '<select id="{$editor_id}_fontSizeSelect" name="{$editor_id}_fontSizeSelect" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="tinyMCE.execInstanceCommand(\'{$editor_id}\',\'FontSize\',false,this.options[this.selectedIndex].value);" class="mceSelectList">\
+ <option value="0">{$lang_theme_font_size}</option>\
+ <option value="1">1 (8 pt)</option>\
+ <option value="2">2 (10 pt)</option>\
+ <option value="3">3 (12 pt)</option>\
+ <option value="4">4 (14 pt)</option>\
+ <option value="5">5 (18 pt)</option>\
+ <option value="6">6 (24 pt)</option>\
+ <option value="7">7 (36 pt)</option>\
+ </select>';
+
+ case "|":
+ case "separator":
+ return '<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">';
+
+ case "spacer":
+ return '<img src="{$themeurl}/images/spacer.gif" width="1" height="15" border="0" class="mceSeparatorLine" style="vertical-align: middle" />';
+
+ case "rowseparator":
+ return '<br />';
+ }
+
+ return "";
+}
+
+/**
+ * Theme specific exec command handeling.
+ */
+function TinyMCE_advanced_execCommand(editor_id, element, command, user_interface, value)
+{
+ switch (command)
+ {
+ case "mceForeColor":
+ var template = new Array();
+ var elm = tinyMCE.selectedInstance.getFocusElement();
+ var inputColor = tinyMCE.getAttrib(elm, "color");
+
+ if (inputColor == '')
+ inputColor = elm.style.color;
+
+ if (!inputColor)
+ inputColor = "#000000";
+
+ template['file'] = 'color_picker.htm';
+ template['width'] = 220;
+ template['height'] = 190;
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", command : "forecolor", input_color : inputColor});
+ return true;
+
+ case "mceBackColor":
+ var template = new Array();
+ var elm = tinyMCE.selectedInstance.getFocusElement();
+ var inputColor = elm.style.backgroundColor;
+
+ if (!inputColor)
+ inputColor = "#000000";
+
+ template['file'] = 'color_picker.htm';
+ template['width'] = 220;
+ template['height'] = 190;
+
+ template['width'] += tinyMCE.getLang('lang_theme_advanced_backcolor_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_theme_advanced_backcolor_delta_height', 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", command : "HiliteColor", input_color : inputColor});
+ //mceBackColor
+ return true;
+
+ case "mceColorPicker":
+ if (user_interface) {
+ var template = new Array();
+ var inputColor = value['document'].getElementById(value['element_id']).value;
+
+ template['file'] = 'color_picker.htm';
+ template['width'] = 220;
+ template['height'] = 190;
+
+ template['width'] += tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_theme_advanced_colorpicker_delta_height', 0);
+
+ if (typeof(value['store_selection']) == "undefined")
+ value['store_selection'] = true;
+
+ tinyMCE.lastColorPickerValue = value;
+ tinyMCE.openWindow(template, {editor_id : editor_id, mce_store_selection : value['store_selection'], inline : "yes", command : "mceColorPicker", input_color : inputColor});
+ } else {
+ var savedVal = tinyMCE.lastColorPickerValue;
+ var elm = savedVal['document'].getElementById(savedVal['element_id']);
+ elm.value = value;
+ eval('elm.onchange();');
+ }
+ return true;
+
+ case "mceCodeEditor":
+ var template = new Array();
+
+ template['file'] = 'source_editor.htm';
+ template['width'] = parseInt(tinyMCE.getParam("theme_advanced_source_editor_width", 500));
+ template['height'] = parseInt(tinyMCE.getParam("theme_advanced_source_editor_height", 400));
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "no", inline : "yes"});
+ //mceCodeEditor
+ return true;
+
+ case "mceCharMap":
+ var template = new Array();
+
+ template['file'] = 'charmap.htm';
+ template['width'] = 550;
+ template['height'] = 250;
+
+ template['width'] += tinyMCE.getLang('lang_theme_advanced_charmap_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_theme_advanced_charmap_delta_height', 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+ //mceCharMap
+ return true;
+
+ case "mceInsertAnchor":
+ var template = new Array();
+
+ template['file'] = 'anchor.htm';
+ template['width'] = 320;
+ template['height'] = 90;
+
+ template['width'] += tinyMCE.getLang('lang_theme_advanced_anchor_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_theme_advanced_anchor_delta_height', 0);
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
+ return true;
+
+ case "mceNewDocument":
+ if (confirm(tinyMCE.getLang('lang_newdocument')))
+ tinyMCE.execInstanceCommand(editor_id, 'mceSetContent', false, '');
+
+ return true;
+ }
+
+ // Default behavior
+ return false;
+}
+
+/**
+ * Editor instance template function.
+ */
+function TinyMCE_advanced_getEditorTemplate(settings, editorId)
+{
+ function removeFromArray(in_array, remove_array)
+ {
+ var outArray = new Array();
+
+ for (var i=0; i<in_array.length; i++)
+ {
+ skip = false;
+
+ for (var j=0; j<remove_array.length; j++)
+ {
+ if (in_array[i] == remove_array[j])
+ {
+ skip = true;
+ }
+ }
+
+ if (!skip)
+ {
+ outArray[outArray.length] = in_array[i];
+ }
+ }
+
+ return outArray;
+ }
+
+ function addToArray(in_array, add_array)
+ {
+ for (var i=0; i<add_array.length; i++)
+ {
+ in_array[in_array.length] = add_array[i];
+ }
+
+ return in_array;
+ }
+
+ var template = new Array();
+ var deltaHeight = 0;
+
+ var resizing = tinyMCE.getParam("theme_advanced_resizing", false);
+ var path = tinyMCE.getParam("theme_advanced_path", true);
+ var statusbarHTML = '<div id="{$editor_id}_path" class="mceStatusbarPathText" style="display: ' + (path ? "block" : "none") + '"> </div><div id="{$editor_id}_resize" class="mceStatusbarResize" style="display: ' + (resizing ? "block" : "none") + '" onmousedown="TinyMCE_advanced_setResizing(event,\'{$editor_id}\',true);"></div><br style="clear: both" />';
+ var layoutManager = tinyMCE.getParam("theme_advanced_layout_manager", "SimpleLayout");
+
+ // Setup style select options -- MOVED UP FOR EXTERNAL TOOLBAR COMPATABILITY!
+ var styleSelectHTML = '<option value="">{$lang_theme_style_select}</option>';
+ if (settings['theme_advanced_styles'])
+ {
+ var stylesAr = settings['theme_advanced_styles'].split(';');
+
+ for (var i=0; i<stylesAr.length; i++)
+ {
+ var key, value;
+
+ key = stylesAr[i].split('=')[0];
+ value = stylesAr[i].split('=')[1];
+
+ styleSelectHTML += '<option value="' + value + '">' + key + '</option>';
+ }
+
+ TinyMCE_advanced_autoImportCSSClasses = false;
+ }
+
+ switch(layoutManager)
+ {
+ case "SimpleLayout" : //the default TinyMCE Layout (for backwards compatibility)...
+ var toolbarHTML = "";
+ var toolbarLocation = tinyMCE.getParam("theme_advanced_toolbar_location", "bottom");
+ var toolbarAlign = tinyMCE.getParam("theme_advanced_toolbar_align", "center");
+ var pathLocation = tinyMCE.getParam("theme_advanced_path_location", "none"); // Compatiblity
+ var statusbarLocation = tinyMCE.getParam("theme_advanced_statusbar_location", pathLocation);
+ var defVals = {
+ theme_advanced_buttons1 : "bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect",
+ theme_advanced_buttons2 : "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code",
+ theme_advanced_buttons3 : "hr,removeformat,visualaid,separator,sub,sup,separator,charmap"
+ };
+
+ // Render rows
+ for (var i=1; i<100; i++) {
+ var def = defVals["theme_advanced_buttons" + i];
+
+ buttons = tinyMCE.getParam("theme_advanced_buttons" + i, def == null ? '' : def, true, ',');
+ if (buttons.length == 0)
+ break;
+
+ buttons = removeFromArray(buttons, tinyMCE.getParam("theme_advanced_disable", "", true, ','));
+ buttons = addToArray(buttons, tinyMCE.getParam("theme_advanced_buttons" + i + "_add", "", true, ','));
+ buttons = addToArray(tinyMCE.getParam("theme_advanced_buttons" + i + "_add_before", "", true, ','), buttons);
+
+ for (var b=0; b<buttons.length; b++)
+ toolbarHTML += tinyMCE.getControlHTML(buttons[b]);
+
+ if (buttons.length > 0) {
+ toolbarHTML += "<br />";
+ deltaHeight -= 23;
+ }
+ }
+
+ // Setup template html
+ template['html'] = '<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width}px;height:{$height}px"><tbody>';
+
+ if (toolbarLocation == "top")
+ {
+ template['html'] += '<tr><td class="mceToolbarTop" align="' + toolbarAlign + '" height="1" nowrap="nowrap">' + toolbarHTML + '</td></tr>';
+ }
+
+ if (statusbarLocation == "top")
+ {
+ template['html'] += '<tr><td class="mceStatusbarTop" height="1">' + statusbarHTML + '</td></tr>';
+ deltaHeight -= 23;
+ }
+
+ template['html'] += '<tr><td align="center"><span id="{$editor_id}"></span></td></tr>';
+
+ if (toolbarLocation == "bottom")
+ {
+ template['html'] += '<tr><td class="mceToolbarBottom" align="' + toolbarAlign + '" height="1">' + toolbarHTML + '</td></tr>';
+ }
+
+ // External toolbar changes
+ if (toolbarLocation == "external")
+ {
+ var bod = document.body;
+ var elm = document.createElement ("div");
+
+ toolbarHTML = tinyMCE.replaceVars(toolbarHTML, tinyMCE.settings);
+ toolbarHTML = tinyMCE.replaceVars(toolbarHTML, tinyMCELang);
+ toolbarHTML = tinyMCE.replaceVar(toolbarHTML, 'style_select_options', styleSelectHTML);
+ toolbarHTML = tinyMCE.replaceVar(toolbarHTML, "editor_id", editorId);
+ toolbarHTML = tinyMCE.applyTemplate(toolbarHTML);
+
+ elm.className = "mceToolbarExternal";
+ elm.id = editorId+"_toolbar";
+ elm.innerHTML = '<table width="100%" border="0" align="center"><tr><td align="center">'+toolbarHTML+'</td></tr></table>';
+ bod.appendChild (elm);
+ // bod.style.marginTop = elm.offsetHeight + "px";
+
+ deltaHeight = 0;
+ tinyMCE.getInstanceById(editorId).toolbarElement = elm;
+
+ //template['html'] = '<div id="mceExternalToolbar" align="center" class="mceToolbarExternal"><table width="100%" border="0" align="center"><tr><td align="center">'+toolbarHTML+'</td></tr></table></div>' + template["html"];
+ }
+ else
+ {
+ tinyMCE.getInstanceById(editorId).toolbarElement = null;
+ }
+
+ if (statusbarLocation == "bottom")
+ {
+ template['html'] += '<tr><td class="mceStatusbarBottom" height="1">' + statusbarHTML + '</td></tr>';
+ deltaHeight -= 23;
+ }
+
+ template['html'] += '</table>';
+ //"SimpleLayout"
+ break;
+
+ case "RowLayout" : //Container Layout - containers defined in "theme_advanced_containers" are rendered from top to bottom.
+ template['html'] = '<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}" style="width:{$width}px;height:{$height}px"><tbody>';
+
+ var containers = tinyMCE.getParam("theme_advanced_containers", "", true, ",");
+ var defaultContainerCSS = tinyMCE.getParam("theme_advanced_containers_default_class", "container");
+ var defaultContainerAlign = tinyMCE.getParam("theme_advanced_containers_default_align", "center");
+
+ //Render Containers:
+ for (var i = 0; i < containers.length; i++)
+ {
+ if (containers[i] == "mceEditor") //Exceptions for mceEditor and ...
+ {
+ template['html'] += '<tr><td align="center" class="mceEditor_border">\
+ <span id="{$editor_id}"></span>\
+ </td></tr>';
+ }
+ else if (containers[i] == "mceElementpath" || containers[i] == "mceStatusbar") // ... mceElementpath:
+ {
+ var pathClass = "mceStatusbar";
+
+ if (i == containers.length-1)
+ {
+ pathClass = "mceStatusbarBottom";
+ }
+ else if (i == 0)
+ {
+ pathClass = "mceStatusbar";
+ }
+ else
+ {
+ deltaHeight-=2;
+ }
+
+ template['html'] += '<tr><td class="' + pathClass + '" height="1">' + statusbarHTML + '</td></tr>';
+ deltaHeight -= 22;
+ }
+ else //Render normal Container:
+ {
+ var curContainer = tinyMCE.getParam("theme_advanced_container_"+containers[i], "", true, ',');
+ var curContainerHTML = "";
+ var curAlign = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align", defaultContainerAlign);
+ var curCSS = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class", defaultContainerCSS);
+
+ for (var j=0; j<curContainer.length; j++)
+ {
+ curContainerHTML += tinyMCE.getControlHTML(curContainer[j]);
+ }
+
+ if (curContainer.length > 0)
+ {
+ curContainerHTML += "<br />";
+ deltaHeight -= 23;
+ }
+
+ template['html'] += '<tr><td class="' + curCSS + '" align="' + curAlign + '" height="1">' + curContainerHTML + '</td></tr>';
+ }
+ }
+
+ template['html'] += '</tbody></table>';
+ //RowLayout
+ break;
+
+ case "BorderLayout" : //will be like java.awt.BorderLayout of SUN Java...
+ // Not implemented yet...
+ break;
+
+ case "CustomLayout" : //User defined layout callback...
+ var customLayout = tinyMCE.getParam("theme_advanced_custom_layout","");
+
+ if (customLayout != "" && eval("typeof(" + customLayout + ")") != "undefined")
+ {
+ template = eval(customLayout + "(template);");
+ }
+ break;
+
+ default:
+ alert('UNDEFINED LAYOUT MANAGER! PLEASE CHECK YOUR TINYMCE CONFIG!');
+ //CustomLayout
+ break;
+ }
+
+ template['html'] += '<div id="{$editor_id}_resize_box" class="mceResizeBox"></div>';
+ template['html'] = tinyMCE.replaceVar(template['html'], 'style_select_options', styleSelectHTML);
+ template['delta_width'] = 0;
+ template['delta_height'] = deltaHeight;
+
+ return template;
+}
+
+/**
+ * Starts/stops the editor resizing.
+ */
+function TinyMCE_advanced_setResizing(e, editor_id, state) {
+ e = typeof(e) == "undefined" ? window.event : e;
+
+ var resizer = TinyMCE_advanced_resizer;
+ var editorContainer = document.getElementById(editor_id + '_parent');
+ var editorArea = document.getElementById(editor_id + '_parent').firstChild;
+ var resizeBox = document.getElementById(editor_id + '_resize_box');
+ var inst = tinyMCE.getInstanceById(editor_id);
+
+ if (state) {
+ // Place box over editor area
+ var width = editorArea.clientWidth;
+ var height = editorArea.clientHeight;
+
+ resizeBox.style.width = width + "px";
+ resizeBox.style.height = height + "px";
+
+ resizer.iframeWidth = inst.iframeElement.clientWidth;
+ resizer.iframeHeight = inst.iframeElement.clientHeight;
+
+ // Hide editor and show resize box
+ editorArea.style.display = "none";
+ resizeBox.style.display = "block";
+
+ // Add event handlers, only once
+ if (!resizer.eventHandlers) {
+ if (tinyMCE.isMSIE)
+ tinyMCE.addEvent(document, "mousemove", TinyMCE_advanced_resizeEventHandler);
+ else
+ tinyMCE.addEvent(window, "mousemove", TinyMCE_advanced_resizeEventHandler);
+
+ tinyMCE.addEvent(document, "mouseup", TinyMCE_advanced_resizeEventHandler);
+
+ resizer.eventHandlers = true;
+ }
+
+ resizer.resizing = true;
+ resizer.downX = e.screenX;
+ resizer.downY = e.screenY;
+ resizer.width = parseInt(resizeBox.style.width);
+ resizer.height = parseInt(resizeBox.style.height);
+ resizer.editorId = editor_id;
+ resizer.resizeBox = resizeBox;
+ resizer.horizontal = tinyMCE.getParam("theme_advanced_resize_horizontal", true);
+ } else {
+ resizer.resizing = false;
+ resizeBox.style.display = "none";
+ editorArea.style.display = tinyMCE.isMSIE ? "block" : "table";
+ tinyMCE.execCommand('mceResetDesignMode');
+ }
+}
+
+function TinyMCE_advanced_initInstance(inst) {
+ if (tinyMCE.getParam("theme_advanced_resizing", false)) {
+ var w = TinyMCE_advanced_getCookie("TinyMCE_" + inst.editorId + "_width");
+ var h = TinyMCE_advanced_getCookie("TinyMCE_" + inst.editorId + "_height");
+
+ TinyMCE_advanced_resizeTo(inst, w, h, tinyMCE.getParam("theme_advanced_resize_horizontal", true));
+ }
+}
+
+function TinyMCE_advanced_setCookie(name, value, expires, path, domain, secure) {
+ var curCookie = name + "=" + escape(value) +
+ ((expires) ? "; expires=" + expires.toGMTString() : "") +
+ ((path) ? "; path=" + escape(path) : "") +
+ ((domain) ? "; domain=" + domain : "") +
+ ((secure) ? "; secure" : "");
+
+ document.cookie = curCookie;
+}
+
+function TinyMCE_advanced_getCookie(name) {
+ var dc = document.cookie;
+ var prefix = name + "=";
+ var begin = dc.indexOf("; " + prefix);
+
+ if (begin == -1) {
+ begin = dc.indexOf(prefix);
+
+ if (begin != 0)
+ return null;
+ } else
+ begin += 2;
+
+ var end = document.cookie.indexOf(";", begin);
+
+ if (end == -1)
+ end = dc.length;
+
+ return unescape(dc.substring(begin + prefix.length, end));
+}
+
+function TinyMCE_advanced_resizeTo(inst, w, h, set_w) {
+ var editorContainer = document.getElementById(inst.editorId + '_parent');
+ var tableElm = editorContainer.firstChild;
+ var iframe = inst.iframeElement;
+
+ if (w == null || w == "null") {
+ set_w = false;
+ w = 0;
+ }
+
+ if (h == null || h == "null")
+ return;
+
+ w = parseInt(w);
+ h = parseInt(h);
+
+ if (tinyMCE.isGecko) {
+ w += 2;
+ h += 2;
+ }
+
+ var dx = w - tableElm.clientWidth;
+ var dy = h - tableElm.clientHeight;
+
+ if (set_w)
+ tableElm.style.width = w + "px";
+
+ tableElm.style.height = h + "px";
+
+ iw = iframe.clientWidth + dx;
+ ih = iframe.clientHeight + dy;
+
+ if (tinyMCE.isGecko) {
+ iw -= 2;
+ ih -= 2;
+ }
+
+ if (set_w)
+ iframe.style.width = iw + "px";
+
+ iframe.style.height = ih + "px";
+
+ // Is it to small, make it bigger again
+ if (set_w) {
+ var tableBodyElm = tableElm.firstChild;
+ var minIframeWidth = tableBodyElm.scrollWidth;
+ if (inst.iframeElement.clientWidth < minIframeWidth) {
+ dx = minIframeWidth - inst.iframeElement.clientWidth;
+
+ inst.iframeElement.style.width = (iw + dx) + "px";
+ }
+ }
+}
+
+/**
+ * Handles resizing events.
+ */
+function TinyMCE_advanced_resizeEventHandler(e) {
+ var resizer = TinyMCE_advanced_resizer;
+
+ // Do nothing
+ if (!resizer.resizing)
+ return;
+
+ e = typeof(e) == "undefined" ? window.event : e;
+
+ var dx = e.screenX - resizer.downX;
+ var dy = e.screenY - resizer.downY;
+ var resizeBox = resizer.resizeBox;
+ var editorId = resizer.editorId;
+
+ switch (e.type) {
+ case "mousemove":
+ if (resizer.horizontal)
+ resizeBox.style.width = (resizer.width + dx) + "px";
+
+ resizeBox.style.height = (resizer.height + dy) + "px";
+ break;
+
+ case "mouseup":
+ TinyMCE_advanced_setResizing(e, editorId, false);
+ TinyMCE_advanced_resizeTo(tinyMCE.getInstanceById(editorId), resizer.width + dx, resizer.height + dy, resizer.horizontal);
+
+ // Expire in a month
+ var expires = new Date();
+ expires.setTime(expires.getTime() + 3600000 * 24 * 30);
+
+ // Set the cookies
+ TinyMCE_advanced_setCookie("TinyMCE_" + editorId + "_width", "" + (resizer.horizontal ? resizer.width + dx : ""), expires);
+ TinyMCE_advanced_setCookie("TinyMCE_" + editorId + "_height", "" + (resizer.height + dy), expires);
+ break;
+ }
+}
+
+/**
+ * Insert link template function.
+ */
+function TinyMCE_advanced_getInsertLinkTemplate()
+{
+ var template = new Array();
+
+ template['file'] = 'link.htm';
+ template['width'] = 330;
+ template['height'] = 170;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_insert_link_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_insert_link_delta_height', 0);
+
+ return template;
+};
+
+/**
+ * Insert image template function.
+ */
+function TinyMCE_advanced_getInsertImageTemplate()
+{
+ var template = new Array();
+
+ template['file'] = 'image.htm?src={$src}';
+ template['width'] = 340;
+ template['height'] = 245;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_insert_image_delta_height', 0);
+
+ return template;
+};
+
+/**
+ * Node change handler.
+ */
+function TinyMCE_advanced_handleNodeChange (editor_id, node, undo_index,
+ undo_levels, visual_aid, any_selection)
+{
+ function selectByValue(select_elm, value)
+ {
+ if (select_elm)
+ {
+ for (var i=0; i<select_elm.options.length; i++)
+ {
+ if (select_elm.options[i].value == value)
+ {
+ select_elm.selectedIndex = i;
+ return true;
+ }
+ }
+ }
+
+ return false;
+ };
+
+ function getAttrib(elm, name)
+ {
+ return elm.getAttribute(name) ? elm.getAttribute(name) : "";
+ };
+
+ // No node provided
+ if (node == null)
+ {
+ return;
+ }
+
+ // Update path
+ var pathElm = document.getElementById(editor_id + "_path");
+
+ if (pathElm)
+ {
+ // Get node path
+ var parentNode = node;
+ var path = new Array();
+
+ while (parentNode)
+ {
+ if (parentNode.nodeName.toLowerCase() == "body")
+ {
+ break;
+ }
+
+ // Only append element nodes to path
+ if (parentNode.nodeType == 1)
+ {
+ path[path.length] = parentNode;
+ }
+
+ parentNode = parentNode.parentNode;
+ }
+
+ // Setup HTML
+ var html = "";
+ for (var i=path.length-1; i>=0; i--)
+ {
+ var nodeName = path[i].nodeName.toLowerCase();
+ var nodeData = "";
+
+ if (nodeName == "b")
+ {
+ nodeName = "strong";
+ }
+
+ if (nodeName == "i")
+ {
+ nodeName = "em";
+ }
+
+ if (getAttrib(path[i], 'id') != "")
+ {
+ nodeData += "id: " + path[i].getAttribute('id') + " ";
+ }
+
+ var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false);
+ if (className != "" && className.indexOf('mceItem') == -1)
+ nodeData += "class: " + className + " ";
+
+ if (getAttrib(path[i], 'src') != "")
+ {
+ nodeData += "src: " + path[i].getAttribute('src') + " ";
+ }
+
+ if (getAttrib(path[i], 'href') != "")
+ {
+ nodeData += "href: " + path[i].getAttribute('href') + " ";
+ }
+
+ if (nodeName == "img" && tinyMCE.getAttrib(path[i], "class").indexOf('mceItemFlash') != -1)
+ {
+ nodeName = "flash";
+ nodeData = "";
+ }
+
+ if (nodeName == "a" && (anchor = tinyMCE.getAttrib(path[i], "name")) != "")
+ {
+ nodeName = "a";
+ nodeName += "#" + anchor;
+ nodeData = "";
+ }
+
+ if (getAttrib(path[i], 'name').indexOf("mce_") != 0)
+ {
+ var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false);
+ if (className != "" && className.indexOf('mceItem') == -1)
+ nodeName += "." + className;
+ }
+
+ if (tinyMCE.isMSIE)
+ {
+ html += '<a title="' + nodeData + '" href="javascript:void(0);" onmousedown="tinyMCE.execInstanceCommand(\'' + editor_id + '\',\'mceSelectNodeDepth\',false,\'' + i + '\');return false;" class="mcePathItem">' + nodeName + '</a>';
+ }
+ else
+ {
+ html += '<a title="' + nodeData + '" href="javascript:tinyMCE.execInstanceCommand(\'' + editor_id + '\',\'mceSelectNodeDepth\',false,\'' + i + '\');" class="mcePathItem">' + nodeName + '</a>';
+ }
+
+ if (i > 0)
+ {
+ html += " » ";
+ }
+ }
+
+ pathElm.innerHTML = tinyMCE.getLang('lang_theme_path') + ": " + html + ' ';
+ }
+
+ // Reset old states
+ tinyMCE.switchClassSticky(editor_id + '_justifyleft', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_justifyright', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_justifyfull', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_sub', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_sup', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_anchor', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_link', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_unlink', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_outdent', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_hr', 'mceButtonNormal');
+
+ if (node.nodeName == "A" && tinyMCE.getAttrib(node, "class").indexOf('mceItemAnchor') != -1)
+ tinyMCE.switchClassSticky(editor_id + '_anchor', 'mceButtonSelected');
+
+ // Get link
+ var anchorLink = tinyMCE.getParentElement(node, "a", "href");
+
+ if (anchorLink || any_selection)
+ {
+ tinyMCE.switchClassSticky(editor_id + '_link', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_unlink', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal', false);
+ }
+
+ // Handle visual aid
+ tinyMCE.switchClassSticky(editor_id + '_visualaid', visual_aid ? 'mceButtonSelected' : 'mceButtonNormal', false);
+
+ if (undo_levels != -1)
+ {
+ tinyMCE.switchClassSticky(editor_id + '_undo', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_redo', 'mceButtonDisabled', true);
+ }
+
+ // Within li, blockquote
+ if (tinyMCE.getParentElement(node, "li,blockquote"))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_outdent', 'mceButtonNormal', false);
+ }
+
+ // Has redo levels
+ if (undo_index != -1 && (undo_index < undo_levels-1 && undo_levels > 0))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_redo', 'mceButtonNormal', false);
+ }
+
+ // Has undo levels
+ if (undo_index != -1 && (undo_index > 0 && undo_levels > 0))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_undo', 'mceButtonNormal', false);
+ }
+
+ // Select class in select box
+ var selectElm = document.getElementById(editor_id + "_styleSelect");
+
+ if (selectElm)
+ {
+ TinyMCE_advanced_setupCSSClasses(editor_id);
+
+ classNode = node;
+ breakOut = false;
+ var index = 0;
+
+ do
+ {
+ if (classNode && classNode.className)
+ {
+ for (var i=0; i<selectElm.options.length; i++)
+ {
+ if (selectElm.options[i].value == classNode.className)
+ {
+ index = i;
+ breakOut = true;
+ break;
+ }
+ }
+ }
+ } while (!breakOut && classNode != null && (classNode = classNode.parentNode));
+
+ selectElm.selectedIndex = index;
+ }
+
+ // Select formatblock
+ var selectElm = document.getElementById(editor_id + "_formatSelect");
+
+ if (selectElm)
+ {
+ var elm = tinyMCE.getParentElement(node, "p,div,h1,h2,h3,h4,h5,h6,pre,address");
+
+ if (elm)
+ {
+ selectByValue(selectElm, "<" + elm.nodeName.toLowerCase() + ">");
+ }
+ else
+ {
+ selectByValue(selectElm, "");
+ }
+ }
+
+ // Select fontselect
+ var selectElm = document.getElementById(editor_id + "_fontNameSelect");
+ if (selectElm) {
+ var elm = tinyMCE.getParentElement(node);
+
+ if (elm) {
+ var family = tinyMCE.getAttrib(elm, "face");
+ if (family == '')
+ family = '' + elm.style.fontFamily;
+
+ if (!selectByValue(selectElm, family))
+ selectByValue(selectElm, "");
+ } else
+ selectByValue(selectElm, "");
+ }
+
+ // Select fontsize
+ var selectElm = document.getElementById(editor_id + "_fontSizeSelect");
+ if (selectElm) {
+ var elm = tinyMCE.getParentElement(node);
+
+ if (elm) {
+ var size = tinyMCE.getAttrib(elm, "size");
+ if (size == '') {
+ var sizes = new Array('', '8px', '10px', '12px', '14px', '18px', '24px', '36px');
+
+ size = '' + elm.style.fontSize;
+
+ for (var i=0; i<sizes.length; i++) {
+ if (('' + sizes[i]) == size) {
+ size = i;
+ break;
+ }
+ }
+ }
+
+ if (!selectByValue(selectElm, size))
+ selectByValue(selectElm, "");
+ } else
+ selectByValue(selectElm, "0");
+ }
+
+ // Handle align attributes
+ alignNode = node;
+ breakOut = false;
+ do
+ {
+ if (!alignNode.getAttribute || !alignNode.getAttribute('align'))
+ {
+ continue;
+ }
+
+ switch (alignNode.getAttribute('align').toLowerCase())
+ {
+ case "left":
+ tinyMCE.switchClassSticky(editor_id + '_justifyleft', 'mceButtonSelected');
+ breakOut = true;
+ break;
+
+ case "right":
+ tinyMCE.switchClassSticky(editor_id + '_justifyright', 'mceButtonSelected');
+ breakOut = true;
+ break;
+
+ case "middle":
+ case "center":
+ tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonSelected');
+ breakOut = true;
+ break;
+
+ case "justify":
+ tinyMCE.switchClassSticky(editor_id + '_justifyfull', 'mceButtonSelected');
+ breakOut = true;
+ break;
+ }
+ } while (!breakOut && (alignNode = alignNode.parentNode));
+
+ // Div justification
+ var div = tinyMCE.getParentElement(node, "div");
+ if (div && div.style.textAlign == "center")
+ tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonSelected');
+
+ // Do special text
+ if (tinyMCE.isGecko && node.nodeType == 3)
+ {
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var doc = inst.getDoc();
+
+ if (doc.queryCommandState("Bold"))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
+ }
+
+ if (doc.queryCommandState("Italic"))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
+ }
+
+ if (doc.queryCommandState("Underline") &&
+ (node.parentNode == null || node.parentNode.nodeName != "A"))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
+ }
+
+ if (doc.queryCommandState("Strikethrough"))
+ {
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
+ }
+ }
+
+ // Handle elements
+ do
+ {
+ switch (node.nodeName.toLowerCase())
+ {
+ case "b":
+ case "strong":
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
+ break;
+
+ case "i":
+ case "em":
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
+ break;
+
+ case "u":
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
+ break;
+
+ case "strike":
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
+ break;
+
+ case "ul":
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonSelected');
+ break;
+
+ case "ol":
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonSelected');
+ break;
+
+ case "sub":
+ tinyMCE.switchClassSticky(editor_id + '_sub', 'mceButtonSelected');
+ break;
+
+ case "sup":
+ tinyMCE.switchClassSticky(editor_id + '_sup', 'mceButtonSelected');
+ break;
+
+ case "hr":
+ tinyMCE.switchClassSticky(editor_id + '_hr', 'mceButtonSelected');
+ break;
+
+ case "img":
+ if (getAttrib(node, 'name').indexOf('mce_') != 0)
+ {
+ tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonSelected');
+ }
+ break;
+ }
+ } while ((node = node.parentNode));
+};
+
+// This function auto imports CSS classes into the class selection droplist
+function TinyMCE_advanced_setupCSSClasses(editor_id)
+{
+ if (!TinyMCE_advanced_autoImportCSSClasses)
+ {
+ return;
+ }
+
+ var selectElm = document.getElementById(editor_id + '_styleSelect');
+
+ if (selectElm && selectElm.getAttribute('cssImported') != 'true')
+ {
+ var csses = tinyMCE.getCSSClasses(editor_id);
+ if (csses && selectElm)
+ {
+ for (var i=0; i<csses.length; i++)
+ {
+ selectElm.options[selectElm.length] = new Option(csses[i], csses[i]);
+ }
+ }
+
+ // Only do this once
+ if (csses != null && csses.length > 0)
+ {
+ selectElm.setAttribute('cssImported', 'true');
+ }
+ }
+};
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_insert_image_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/image.js"></script>
+</head>
+<body onload="init();" style="display: none">
+<form onsubmit="insertImage();return false;">
+ <table border="0" cellpadding="0" cellspacing="0" width="200">
+ <tr>
+ <td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td colspan="2" class="title" nowrap="nowrap">{$lang_insert_image_title}</td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_image_src}:</td>
+ <td><table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input name="src" type="text" id="src" value="" style="width: 200px" onchange="getImageData();"></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('srcbrowser','src','image','theme_advanced_image');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ <!-- Image list -->
+ <script language="javascript">
+ if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+ var html = "";
+
+ html += '<tr><td>{$lang_image_list}:</td>';
+ html += '<td><select name="image_list" style="width: 200px" onchange="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>';
+
+ html += '</select></td></tr>';
+
+ document.write(html);
+ }
+ </script>
+ <!-- /Image list -->
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_image_alt}:</td>
+ <td><input name="alt" type="text" id="alt" value="" style="width: 200px"></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_image_align}:</td>
+ <td><select name="align">
+ <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 nowrap="nowrap">{$lang_insert_image_dimensions}:</td>
+ <td><input name="width" type="text" id="width" value="" size="3" maxlength="3">
+ x
+ <input name="height" type="text" id="height" value="" size="3" maxlength="3"></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_image_border}:</td>
+ <td><input name="border" type="text" id="border" value="" size="3" maxlength="3"></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_image_vspace}:</td>
+ <td><input name="vspace" type="text" id="vspace" value="" size="3" maxlength="3"></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_image_hspace}:</td>
+ <td><input name="hspace" type="text" id="hspace" value="" size="3" maxlength="3"></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap"><input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertImage();">
+ </td>
+ <td align="right"><input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();"></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table>
+</form>
+</body>
+</html>
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ // Give FF some time
+ window.setTimeout('insertHelpIFrame();', 10);
+
+ var tcont = document.getElementById('plugintablecontainer');
+ var plugins = tinyMCE.getParam('plugins', '', true, ',');
+ if (plugins.length == 0)
+ document.getElementById('plugins_tab').style.display = 'none';
+
+ var html = "";
+ html += '<table id="plugintable">';
+ html += '<thead>';
+ html += '<tr>';
+ html += '<td>' + tinyMCE.getLang('lang_plugin') + '</td>';
+ html += '<td>' + tinyMCE.getLang('lang_author') + '</td>';
+ html += '<td>' + tinyMCE.getLang('lang_version') + '</td>';
+ html += '</tr>';
+ html += '</thead>';
+ html += '<tbody>';
+
+ for (var i=0; i<plugins.length; i++) {
+ var info = getPluginInfo(plugins[i]);
+
+ html += '<tr>';
+
+ if (info.infourl != null && info.infourl != '')
+ html += '<td width="50%" title="' + plugins[i] + '"><a href="' + info.infourl + '" target="_blank">' + info.longname + '</a></td>';
+ else
+ html += '<td width="50%" title="' + plugins[i] + '">' + info.longname + '</td>';
+
+ if (info.authorurl != null && info.authorurl != '')
+ html += '<td width="35%"><a href="' + info.authorurl + '" target="_blank">' + info.author + '</a></td>';
+ else
+ html += '<td width="35%">' + info.author + '</td>';
+
+ html += '<td width="15%">' + info.version + '</td>';
+ html += '</tr>';
+ }
+
+ html += '</tbody>';
+ html += '</table>';
+
+ tcont.innerHTML = html;
+}
+
+function getPluginInfo(name) {
+ var fn = eval('tinyMCEPopup.windowOpener.TinyMCE_' + name + '_getInfo');
+
+ if (typeof(fn) != 'undefined')
+ return fn();
+
+ return {
+ longname : name,
+ authorurl : '',
+ infourl : '',
+ author : '--',
+ version : '--'
+ };
+}
+
+function insertHelpIFrame() {
+ var html = '<iframe width="100%" height="300" src="' + tinyMCE.themeURL + "/docs/" + tinyMCE.settings['docs_language'] + "/index.htm" + '"></iframe>';
+
+ document.getElementById('iframecontainer').innerHTML = html;
+
+ html = '';
+ html += '<a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a> ';
+ html += '<a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a> ';
+ html += '<a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a> ';
+
+ document.getElementById('buttoncontainer').innerHTML = html;
+}
--- /dev/null
+var action, element;
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var anchor = tinyMCE.getParentElement(inst.getFocusElement(), "a", "name");
+ var img = inst.getFocusElement();
+ action = 'insert';
+
+ if (anchor != null) {
+ element = anchor;
+ action = "update";
+ }
+
+ if (tinyMCE.getAttrib(img, "class") == "mceItemAnchor") {
+ element = img;
+ action = "update";
+ }
+
+ if (action == "update")
+ document.forms[0].anchorName.value = element.nodeName == "IMG" ? element.getAttribute("title") : element.getAttribute("name");
+
+ document.forms[0].insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
+}
+
+function insertAnchor() {
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var name = document.forms[0].anchorName.value;
+
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+ if (action == "update") {
+ if (element.nodeName == "IMG")
+ element.setAttribute("title", name);
+ else
+ element.setAttribute("name", name);
+ } else {
+ var rng = inst.getRng();
+
+ if (rng.collapse)
+ rng.collapse(false);
+
+ name = name.replace(/&/g, '&');
+ name = name.replace(/\"/g, '"');
+ name = name.replace(/</g, '<');
+ name = name.replace(/>/g, '&gr;');
+
+ html = '<a name="' + name + '"></a>';
+
+ tinyMCEPopup.execCommand("mceInsertContent", false, html);
+ tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+ }
+
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
+
+ tinyMCE.triggerNodeChange();
+ tinyMCEPopup.close();
+}
--- /dev/null
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+}
+
+var charmap = new Array();
+
+// for mor details please see w3c.org
+// now here is the complete list ;)
+
+charmap = [
+ [' ', ' ', true, 'no-break space'],
+ ['&', '&', true, 'ampersand'],
+ ['"', '"', true, 'quotation mark'],
+// finance
+ ['¢', '¢', true, 'cent sign'],
+ ['€', '€', true, 'euro sign'],
+ ['£', '£', true, 'pound sign'],
+ ['¥', '¥', true, 'yen sign'],
+// signs
+ ['©', '©', true, 'copyright sign'],
+ ['®', '®', true, 'registered sign'],
+ ['™', '™', true, 'trade mark sign'],
+ ['‰', '‰', true, 'per mille sign'],
+ ['µ', 'µ', true, 'micro sign'],
+ ['·', '·', true, 'middle dot'],
+ ['•', '•', true, 'bullet'],
+ ['…', '…', true, 'three dot leader'],
+ ['′', '′', true, 'minutes / feet'],
+ ['″', '″', true, 'seconds / inches'],
+ ['§', '§', true, 'section sign'],
+ ['¶', '¶', true, 'paragraph sign'],
+ ['ß', 'ß', true, 'sharp s / ess-zed'],
+// quotations
+ ['‹', '‹', true, 'single left-pointing angle quotation mark'],
+ ['›', '›', true, 'single right-pointing angle quotation mark'],
+ ['«', '«', true, 'left pointing guillemet'],
+ ['»', '»', true, 'right pointing guillemet'],
+ ['‘', '‘', true, 'left single quotation mark'],
+ ['’', '’', true, 'right single quotation mark'],
+ ['“', '“', true, 'left double quotation mark'],
+ ['”', '”', true, 'right double quotation mark'],
+ ['‚', '‚', true, 'single low-9 quotation mark'],
+ ['„', '„', true, 'double low-9 quotation mark'],
+ ['<', '<', true, 'less-than sign'],
+ ['>', '>', true, 'greater-than sign'],
+ ['≤', '≤', true, 'less-than or equal to'],
+ ['≥', '≥', true, 'greater-than or equal to'],
+ ['–', '–', true, 'en dash'],
+ ['—', '—', true, 'em dash'],
+ ['¯', '¯', true, 'macron'],
+ ['‾', '‾', true, 'overline'],
+ ['¤', '¤', true, 'currency sign'],
+ ['¦', '¦', true, 'broken bar'],
+ ['¨', '¨', true, 'diaeresis'],
+ ['¡', '¡', true, 'inverted exclamation mark'],
+ ['¿', '¿', true, 'turned question mark'],
+ ['ˆ', 'ˆ', true, 'circumflex accent'],
+ ['˜', '˜', true, 'small tilde'],
+ ['°', '°', true, 'degree sign'],
+ ['−', '−', true, 'minus sign'],
+ ['±', '±', true, 'plus-minus sign'],
+ ['÷', '÷', true, 'division sign'],
+ ['⁄', '⁄', true, 'fraction slash'],
+ ['×', '×', true, 'multiplication sign'],
+ ['¹', '¹', true, 'superscript one'],
+ ['²', '²', true, 'superscript two'],
+ ['³', '³', true, 'superscript three'],
+ ['¼', '¼', true, 'fraction one quarter'],
+ ['½', '½', true, 'fraction one half'],
+ ['¾', '¾', true, 'fraction three quarters'],
+// math / logical
+ ['ƒ', 'ƒ', true, 'function / florin'],
+ ['∫', '∫', true, 'integral'],
+ ['∑', '∑', true, 'n-ary sumation'],
+ ['∞', '∞', true, 'infinity'],
+ ['√', '√', true, 'square root'],
+ ['∼', '∼', false,'similar to'],
+ ['≅', '≅', false,'approximately equal to'],
+ ['≈', '≈', true, 'almost equal to'],
+ ['≠', '≠', true, 'not equal to'],
+ ['≡', '≡', true, 'identical to'],
+ ['∈', '∈', false,'element of'],
+ ['∉', '∉', false,'not an element of'],
+ ['∋', '∋', false,'contains as member'],
+ ['∏', '∏', true, 'n-ary product'],
+ ['∧', '∧', false,'logical and'],
+ ['∨', '∨', false,'logical or'],
+ ['¬', '¬', true, 'not sign'],
+ ['∩', '∩', true, 'intersection'],
+ ['∪', '∪', false,'union'],
+ ['∂', '∂', true, 'partial differential'],
+ ['∀', '∀', false,'for all'],
+ ['∃', '∃', false,'there exists'],
+ ['∅', '∅', false,'diameter'],
+ ['∇', '∇', false,'backward difference'],
+ ['∗', '∗', false,'asterisk operator'],
+ ['∝', '∝', false,'proportional to'],
+ ['∠', '∠', false,'angle'],
+// undefined
+ ['´', '´', true, 'acute accent'],
+ ['¸', '¸', true, 'cedilla'],
+ ['ª', 'ª', true, 'feminine ordinal indicator'],
+ ['º', 'º', true, 'masculine ordinal indicator'],
+ ['†', '†', true, 'dagger'],
+ ['‡', '‡', true, 'double dagger'],
+// alphabetical special chars
+ ['À', 'À', true, 'A - grave'],
+ ['Á', 'Á', true, 'A - acute'],
+ ['Â', 'Â', true, 'A - circumflex'],
+ ['Ã', 'Ã', true, 'A - tilde'],
+ ['Ä', 'Ä', true, 'A - diaeresis'],
+ ['Å', 'Å', true, 'A - ring above'],
+ ['Æ', 'Æ', true, 'ligature AE'],
+ ['Ç', 'Ç', true, 'C - cedilla'],
+ ['È', 'È', true, 'E - grave'],
+ ['É', 'É', true, 'E - acute'],
+ ['Ê', 'Ê', true, 'E - circumflex'],
+ ['Ë', 'Ë', true, 'E - diaeresis'],
+ ['Ì', 'Ì', true, 'I - grave'],
+ ['Í', 'Í', true, 'I - acute'],
+ ['Î', 'Î', true, 'I - circumflex'],
+ ['Ï', 'Ï', true, 'I - diaeresis'],
+ ['Ð', 'Ð', true, 'ETH'],
+ ['Ñ', 'Ñ', true, 'N - tilde'],
+ ['Ò', 'Ò', true, 'O - grave'],
+ ['Ó', 'Ó', true, 'O - acute'],
+ ['Ô', 'Ô', true, 'O - circumflex'],
+ ['Õ', 'Õ', true, 'O - tilde'],
+ ['Ö', 'Ö', true, 'O - diaeresis'],
+ ['Ø', 'Ø', true, 'O - slash'],
+ ['Œ', 'Œ', true, 'ligature OE'],
+ ['Š', 'Š', true, 'S - caron'],
+ ['Ù', 'Ù', true, 'U - grave'],
+ ['Ú', 'Ú', true, 'U - acute'],
+ ['Û', 'Û', true, 'U - circumflex'],
+ ['Ü', 'Ü', true, 'U - diaeresis'],
+ ['Ý', 'Ý', true, 'Y - acute'],
+ ['Ÿ', 'Ÿ', true, 'Y - diaeresis'],
+ ['Þ', 'Þ', true, 'THORN'],
+ ['à', 'à', true, 'a - grave'],
+ ['á', 'á', true, 'a - acute'],
+ ['â', 'â', true, 'a - circumflex'],
+ ['ã', 'ã', true, 'a - tilde'],
+ ['ä', 'ä', true, 'a - diaeresis'],
+ ['å', 'å', true, 'a - ring above'],
+ ['æ', 'æ', true, 'ligature ae'],
+ ['ç', 'ç', true, 'c - cedilla'],
+ ['è', 'è', true, 'e - grave'],
+ ['é', 'é', true, 'e - acute'],
+ ['ê', 'ê', true, 'e - circumflex'],
+ ['ë', 'ë', true, 'e - diaeresis'],
+ ['ì', 'ì', true, 'i - grave'],
+ ['í', 'í', true, 'i - acute'],
+ ['î', 'î', true, 'i - circumflex'],
+ ['ï', 'ï', true, 'i - diaeresis'],
+ ['ð', 'ð', true, 'eth'],
+ ['ñ', 'ñ', true, 'n - tilde'],
+ ['ò', 'ò', true, 'o - grave'],
+ ['ó', 'ó', true, 'o - acute'],
+ ['ô', 'ô', true, 'o - circumflex'],
+ ['õ', 'õ', true, 'o - tilde'],
+ ['ö', 'ö', true, 'o - diaeresis'],
+ ['ø', 'ø', true, 'o slash'],
+ ['œ', 'œ', true, 'ligature oe'],
+ ['š', 'š', true, 's - caron'],
+ ['ù', 'ù', true, 'u - grave'],
+ ['ú', 'ú', true, 'u - acute'],
+ ['û', 'û', true, 'u - circumflex'],
+ ['ü', 'ü', true, 'u - diaeresis'],
+ ['ý', 'ý', true, 'y - acute'],
+ ['þ', 'þ', true, 'thorn'],
+ ['ÿ', 'ÿ', true, 'y - diaeresis'],
+// ['Α', 'Α', true, 'Alpha'],
+ ['Β', 'Β', true, 'Beta'],
+ ['Γ', 'Γ', true, 'Gamma'],
+ ['Δ', 'Δ', true, 'Delta'],
+ ['Ε', 'Ε', true, 'Epsilon'],
+ ['Ζ', 'Ζ', true, 'Zeta'],
+ ['Η', 'Η', true, 'Eta'],
+ ['Θ', 'Θ', true, 'Theta'],
+ ['Ι', 'Ι', true, 'Iota'],
+ ['Κ', 'Κ', true, 'Kappa'],
+ ['Λ', 'Λ', true, 'Lambda'],
+ ['Μ', 'Μ', true, 'Mu'],
+ ['Ν', 'Ν', true, 'Nu'],
+ ['Ξ', 'Ξ', true, 'Xi'],
+ ['Ο', 'Ο', true, 'Omicron'],
+ ['Π', 'Π', true, 'Pi'],
+ ['Ρ', 'Ρ', true, 'Rho'],
+ ['Σ', 'Σ', true, 'Sigma'],
+ ['Τ', 'Τ', true, 'Tau'],
+ ['Υ', 'Υ', true, 'Upsilon'],
+ ['Φ', 'Φ', true, 'Phi'],
+ ['Χ', 'Χ', true, 'Chi'],
+ ['Ψ', 'Ψ', true, 'Psi'],
+ ['Ω', 'Ω', true, 'Omega'],
+ ['α', 'α', true, 'alpha'],
+ ['β', 'β', true, 'beta'],
+ ['γ', 'γ', true, 'gamma'],
+ ['δ', 'δ', true, 'delta'],
+ ['ε', 'ε', true, 'epsilon'],
+ ['ζ', 'ζ', true, 'zeta'],
+ ['η', 'η', true, 'eta'],
+ ['θ', 'θ', true, 'theta'],
+ ['ι', 'ι', true, 'iota'],
+ ['κ', 'κ', true, 'kappa'],
+ ['λ', 'λ', true, 'lambda'],
+ ['μ', 'μ', true, 'mu'],
+ ['ν', 'ν', true, 'nu'],
+ ['ξ', 'ξ', true, 'xi'],
+ ['ο', 'ο', true, 'omicron'],
+ ['π', 'π', true, 'pi'],
+ ['ρ', 'ρ', true, 'rho'],
+ ['ς', 'ς', true, 'final sigma'],
+ ['σ', 'σ', true, 'sigma'],
+ ['τ', 'τ', true, 'tau'],
+ ['υ', 'υ', true, 'upsilon'],
+ ['φ', 'φ', true, 'phi'],
+ ['χ', 'χ', true, 'chi'],
+ ['ψ', 'ψ', true, 'psi'],
+ ['ω', 'ω', true, 'omega'],
+// symbols
+ ['ℵ', 'ℵ', false,'alef symbol'],
+ ['ϖ', 'ϖ', false,'pi symbol'],
+ ['ℜ', 'ℜ', false,'real part symbol'],
+ ['ϑ','ϑ', false,'theta symbol'],
+ ['ϒ', 'ϒ', false,'upsilon - hook symbol'],
+ ['℘', '℘', false,'Weierstrass p'],
+ ['ℑ', 'ℑ', false,'imaginary part'],
+// arrows
+ ['←', '←', true, 'leftwards arrow'],
+ ['↑', '↑', true, 'upwards arrow'],
+ ['→', '→', true, 'rightwards arrow'],
+ ['↓', '↓', true, 'downwards arrow'],
+ ['↔', '↔', true, 'left right arrow'],
+ ['↵', '↵', false,'carriage return'],
+ ['⇐', '⇐', false,'leftwards double arrow'],
+ ['⇑', '⇑', false,'upwards double arrow'],
+ ['⇒', '⇒', false,'rightwards double arrow'],
+ ['⇓', '⇓', false,'downwards double arrow'],
+ ['⇔', '⇔', false,'left right double arrow'],
+ ['∴', '∴', false,'therefore'],
+ ['⊂', '⊂', false,'subset of'],
+ ['⊃', '⊃', false,'superset of'],
+ ['⊄', '⊄', false,'not a subset of'],
+ ['⊆', '⊆', false,'subset of or equal to'],
+ ['⊇', '⊇', false,'superset of or equal to'],
+ ['⊕', '⊕', false,'circled plus'],
+ ['⊗', '⊗', false,'circled times'],
+ ['⊥', '⊥', false,'perpendicular'],
+ ['⋅', '⋅', false,'dot operator'],
+ ['⌈', '⌈', false,'left ceiling'],
+ ['⌉', '⌉', false,'right ceiling'],
+ ['⌊', '⌊', false,'left floor'],
+ ['⌋', '⌋', false,'right floor'],
+ ['⟨', '〈', false,'left-pointing angle bracket'],
+ ['⟩', '〉', false,'right-pointing angle bracket'],
+ ['◊', '◊', true,'lozenge'],
+ ['♠', '♠', false,'black spade suit'],
+ ['♣', '♣', true, 'black club suit'],
+ ['♥', '♥', true, 'black heart suit'],
+ ['♦', '♦', true, 'black diamond suit'],
+ [' ', ' ', false,'en space'],
+ [' ', ' ', false,'em space'],
+ [' ', ' ', false,'thin space'],
+ ['‌', '‌', false,'zero width non-joiner'],
+ ['‍', '‍', false,'zero width joiner'],
+ ['‎', '‎', false,'left-to-right mark'],
+ ['‏', '‏', false,'right-to-left mark'],
+ ['­', '­', false,'soft hyphen']
+];
+
+function renderCharMapHTML() {
+ var charsPerRow = 20, tdWidth=20, tdHeight=20;
+ var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';
+ var cols=-1;
+ for (var i=0; i<charmap.length; i++) {
+ if (charmap[i][2]==true) {
+ cols++;
+ html += ''
+ + '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"'
+ + ' onmouseover="tinyMCE.switchClass(this,\'charmapOver\');'
+ + 'previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');"'
+ + ' onmouseout="tinyMCE.restoreClass(this,\'charmapOver\');"'
+ + ' onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');return false;"'
+ + ' title="' + charmap[i][3] + '" nowrap="nowrap">'
+ + charmap[i][1]
+ + '</td>';
+ if ((cols+1) % charsPerRow == 0)
+ html += '</tr><tr height="' + tdHeight + '">';
+ }
+ }
+ if (cols % charsPerRow > 0) {
+ var padd = charsPerRow - (cols % charsPerRow);
+ for (var i=0; i<padd-1; i++)
+ html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>';
+ }
+ html += '</tr></table>';
+ document.write(html);
+}
+
+function insertChar(chr) {
+ tinyMCEPopup.execCommand('mceInsertContent', false, '\&#' + chr + ';');
+
+ // Refocus in window
+ if (tinyMCEPopup.isWindow)
+ window.focus();
+}
+
+function previewChar(codeA, codeB, codeN) {
+ var elmA = document.getElementById('codeA');
+ var elmB = document.getElementById('codeB');
+ var elmV = document.getElementById('codeV');
+ var elmN = document.getElementById('codeN');
+
+ if (codeA=='#160;') {
+ elmV.innerHTML = '__';
+ } else {
+ elmV.innerHTML = '&' + codeA;
+ }
+
+ elmB.innerHTML = '&' + codeA;
+ elmA.innerHTML = '&' + codeB;
+ elmN.innerHTML = codeN;
+}
--- /dev/null
+function init() {
+ if (tinyMCE.isMSIE)
+ tinyMCEPopup.resizeToInnerSize();
+}
+
+function selectColor() {
+ var color = document.getElementById("selectedColorBox").value;
+
+ tinyMCEPopup.execCommand(tinyMCE.getWindowArg('command'), false, color);
+ tinyMCEPopup.close();
+}
+
+function showColor(color) {
+ document.getElementById("selectedColor").style.backgroundColor = color;
+ document.getElementById("selectedColorBox").value = color;
+}
+
+var colors = new Array(
+ "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",
+ "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",
+ "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",
+ "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",
+ "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",
+ "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",
+ "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",
+ "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",
+ "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",
+ "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",
+ "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",
+ "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",
+ "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",
+ "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",
+ "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",
+ "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",
+ "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",
+ "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",
+ "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",
+ "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",
+ "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",
+ "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",
+ "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",
+ "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",
+ "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",
+ "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",
+ "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"
+);
+
+function convertRGBToHex(col) {
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
+
+ var rgb = col.replace(re, "$1,$2,$3").split(',');
+ if (rgb.length == 3) {
+ r = parseInt(rgb[0]).toString(16);
+ g = parseInt(rgb[1]).toString(16);
+ b = parseInt(rgb[2]).toString(16);
+
+ r = r.length == 1 ? '0' + r : r;
+ g = g.length == 1 ? '0' + g : g;
+ b = b.length == 1 ? '0' + b : b;
+
+ return "#" + r + g + b;
+ }
+
+ return col;
+}
+
+function convertHexToRGB(col) {
+ if (col.indexOf('#') != -1) {
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
+
+ r = parseInt(col.substring(0, 2), 16);
+ g = parseInt(col.substring(2, 4), 16);
+ b = parseInt(col.substring(4, 6), 16);
+
+ return "rgb(" + r + "," + g + "," + b + ")";
+ }
+
+ return col;
+}
+
+function renderColorMap() {
+ var html = "";
+ var inputColor = convertRGBToHex(tinyMCE.getWindowArg('input_color'));
+
+ html += '<table border="0" cellspacing="1" cellpadding="0">'
+ + '<tr>';
+ for (var i=0; i<colors.length; i++) {
+ html += '<td bgcolor="' + colors[i] + '">'
+ + '<a href="javascript:selectColor();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');">'
+ + '<img border="0" src="images/spacer.gif" width="10" height="10" title="' + colors[i] + '" alt="' + colors[i] + '" /></a></td>';
+ if ((i+1) % 18 == 0)
+ html += '</tr><tr>';
+ }
+ html += '<tr><td colspan="18">'
+ + '<table width="100%" border="0" cellspacing="0" cellpadding="0">'
+ + '<tr><td>'
+ + '<img id="selectedColor" style="background-color:' + tinyMCE.getWindowArg('input_color') + '" border="0" src="images/spacer.gif" width="80" height="16" />'
+ + '</td><td align="right">'
+ + '<input id="selectedColorBox" name="selectedColorBox" type="text" size="7" maxlength="7" style="width:65px" value="' + inputColor + '" />'
+ + '</td></tr>'
+ + '</table>'
+ + '<input type="button" id="insert" name="insert" value="{$lang_theme_colorpicker_apply}" style="margin-top:3px" onclick="selectColor();">'
+ + '</td></tr>'
+ + '</table>';
+
+ document.write(html);
+}
\ No newline at end of file
--- /dev/null
+var url = tinyMCE.getParam("external_image_list_url");
+if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/')
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function insertImage() {
+ if (window.opener) {
+ var src = document.forms[0].src.value;
+ var alt = document.forms[0].alt.value;
+ var border = document.forms[0].border.value;
+ var vspace = document.forms[0].vspace.value;
+ var hspace = document.forms[0].hspace.value;
+ var width = document.forms[0].width.value;
+ var height = document.forms[0].height.value;
+ var align = document.forms[0].align.options[document.forms[0].align.selectedIndex].value;
+
+ window.opener.tinyMCE.insertImage(src, alt, border, hspace, vspace, width, height, align);
+ top.close();
+ }
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+
+ for (var i=0; i<document.forms[0].align.options.length; i++) {
+ if (document.forms[0].align.options[i].value == tinyMCE.getWindowArg('align'))
+ document.forms[0].align.options.selectedIndex = i;
+ }
+
+ formObj.src.value = tinyMCE.getWindowArg('src');
+ formObj.alt.value = tinyMCE.getWindowArg('alt');
+ formObj.border.value = tinyMCE.getWindowArg('border');
+ formObj.vspace.value = tinyMCE.getWindowArg('vspace');
+ formObj.hspace.value = tinyMCE.getWindowArg('hspace');
+ formObj.width.value = tinyMCE.getWindowArg('width');
+ formObj.height.value = tinyMCE.getWindowArg('height');
+ formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+
+ // Handle file browser
+ if (isVisible('srcbrowser'))
+ document.getElementById('src').style.width = '180px';
+
+ // Auto select image in list
+ if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+ for (var i=0; i<formObj.image_list.length; i++) {
+ if (formObj.image_list.options[i].value == tinyMCE.getWindowArg('src'))
+ formObj.image_list.options[i].selected = true;
+ }
+ }
+}
+
+var preloadImg = new Image();
+
+function resetImageData() {
+ var formObj = document.forms[0];
+ formObj.width.value = formObj.height.value = "";
+}
+
+function updateImageData() {
+ var formObj = document.forms[0];
+
+ if (formObj.width.value == "")
+ formObj.width.value = preloadImg.width;
+
+ if (formObj.height.value == "")
+ formObj.height.value = preloadImg.height;
+}
+
+function getImageData() {
+ preloadImg = new Image();
+ tinyMCE.addEvent(preloadImg, "load", updateImageData);
+ tinyMCE.addEvent(preloadImg, "error", function () {var formObj = document.forms[0];formObj.width.value = formObj.height.value = "";});
+ preloadImg.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
+}
--- /dev/null
+var url = tinyMCE.getParam("external_link_list_url");
+if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/')
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var formObj = document.forms[0];
+
+ for (var i=0; i<document.forms[0].target.options.length; i++) {
+ var option = document.forms[0].target.options[i];
+
+ if (option.value == tinyMCE.getWindowArg('target'))
+ option.selected = true;
+ }
+
+ document.forms[0].href.value = tinyMCE.getWindowArg('href');
+ document.forms[0].linktitle.value = tinyMCE.getWindowArg('title');
+ document.forms[0].insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+
+ addClassesToList('styleSelect', 'theme_advanced_link_styles');
+ selectByValue(formObj, 'styleSelect', tinyMCE.getWindowArg('className'), true);
+
+ // Handle file browser
+ if (isVisible('hrefbrowser'))
+ document.getElementById('href').style.width = '180px';
+
+ // Auto select link in list
+ if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
+ var formObj = document.forms[0];
+
+ for (var i=0; i<formObj.link_list.length; i++) {
+ if (formObj.link_list.options[i].value == tinyMCE.getWindowArg('href'))
+ formObj.link_list.options[i].selected = true;
+ }
+ }
+}
+
+function insertLink() {
+ if (window.opener) {
+ var href = document.forms[0].href.value;
+ var target = document.forms[0].target.options[document.forms[0].target.selectedIndex].value;
+ var title = document.forms[0].linktitle.value;
+ var style_class = document.forms[0].styleSelect.value;
+ var dummy;
+
+ window.opener.tinyMCE.insertLink(href, target, title, dummy, style_class);
+ tinyMCEPopup.close();
+ }
+}
--- /dev/null
+function saveContent() {
+ tinyMCE.setContent(document.getElementById('htmlSource').value);
+ tinyMCE.closeWindow(window);
+}
+
+// Fixes some charcode issues
+function fixContent(html) {
+ html = html.replace(new RegExp('<(p|hr|table|tr|td|ol|ul|object|embed|li|blockquote)', 'gi'),'\n<$1');
+ html = html.replace(new RegExp('<\/(p|ol|ul|li|table|tr|td|blockquote|object)>', 'gi'),'</$1>\n');
+ html = tinyMCE.regexpReplace(html, '<br />','<br />\n','gi');
+ html = tinyMCE.regexpReplace(html, '\n\n','\n','gi');
+ return html;
+}
+
+function onLoadInit() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ document.forms[0].htmlSource.value = fixContent(tinyMCE.getContent(tinyMCE.getWindowArg('editor_id')));
+ resizeInputs();
+ setWrap('off');
+}
+
+function setWrap(val) {
+ // hard soft off
+ document.forms[0].htmlSource.wrap = val;
+}
+
+function toggleWordWrap(elm) {
+ if (elm.checked)
+ setWrap('soft');
+ else
+ setWrap('off');
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function resizeInputs() {
+ if (!tinyMCE.isMSIE) {
+ wHeight = self.innerHeight-80;
+ wWidth = self.innerWidth-16;
+ } else {
+ wHeight = document.body.clientHeight-80;
+ wWidth = document.body.clientWidth-16;
+ }
+
+ document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
+ document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';
+
+}
+
+function renderWordWrap() {
+ if (tinyMCE.isMSIE)
+ document.write('<input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{$lang_theme_code_wordwrap}</label>');
+}
--- /dev/null
+// Arabic lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : 'تصاميم',
+theme_code_desc : 'شفرة المصدر',
+theme_code_title : 'شفرة المصدر',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'منخفض',
+theme_sup_desc : 'مرتفع',
+theme_hr_desc : 'إدراج خط فاصل',
+theme_removeformat_desc : 'إزالة التنسيقات',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : 'سمك الحدود',
+insert_image_dimensions : 'المواصفات',
+insert_image_vspace : 'تباعد عمودي',
+insert_image_hspace : 'تباعد أفقي',
+insert_image_align : 'محاذاة',
+insert_image_align_default : 'Default',
+insert_image_align_baseline : 'على السطر',
+insert_image_align_top : 'أعلى',
+insert_image_align_middle : 'وسط',
+insert_image_align_bottom : 'أسفل',
+insert_image_align_texttop : 'أعلى النص',
+insert_image_align_absmiddle : 'وسط السطر',
+insert_image_align_absbottom : 'أسفل النص',
+insert_image_align_left : 'يسار',
+insert_image_align_right : 'يمين',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraph',
+theme_div : 'Div',
+theme_address : 'Address',
+theme_pre : 'Preformatted',
+theme_h1 : 'Heading 1',
+theme_h2 : 'Heading 2',
+theme_h3 : 'Heading 3',
+theme_h4 : 'Heading 4',
+theme_h5 : 'Heading 5',
+theme_h6 : 'Heading 6',
+theme_colorpicker_title : 'لون النص',
+theme_colorpicker_apply : 'Apply',
+theme_forecolor_desc : 'لون النص',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'إدراج رمز..ِ',
+theme_charmap_desc : 'إدراج رمز..ِ',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Insert/edit anchor',
+insert_anchor_name : 'Anchor name',
+theme_anchor_desc : 'Insert/edit anchor',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// CA lang variables by Marc Bria
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Estils',
+theme_code_desc : 'Editar codi HTML',
+theme_code_title : 'Editor codi HTML',
+theme_code_wordwrap : 'Ajustar salt de línea',
+theme_sub_desc : 'Subíndex',
+theme_sup_desc : 'Superíndex',
+theme_hr_desc : 'Insertar un separador horitzontal',
+theme_removeformat_desc : 'Eliminar format',
+theme_custom1_desc : 'La teva descripció',
+insert_image_border : 'Marc',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'Espai vertical',
+insert_image_hspace : 'Espai horizontal',
+insert_image_align : 'Alineament',
+insert_image_align_default : 'Per defecte',
+insert_image_align_baseline : 'Línea base',
+insert_image_align_top : 'Superior',
+insert_image_align_middle : 'Centre',
+insert_image_align_bottom : 'Inferior',
+insert_image_align_texttop : 'Alinear text amunt',
+insert_image_align_absmiddle : 'Centrat horitzontal',
+insert_image_align_absbottom : 'Centrat a baix',
+insert_image_align_left : 'Esquerra',
+insert_image_align_right : 'Dreta',
+insert_image_delta_height'] = 10;
+theme_font_size : '-- Mida font --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraph',
+theme_div : 'Div',
+theme_address : 'Address',
+theme_pre : 'Preformatejat',
+theme_h1 : 'Capçalera 1',
+theme_h2 : 'Capçalera 2',
+theme_h3 : 'Capçalera 3',
+theme_h4 : 'Capçalera 4',
+theme_h5 : 'Capçalera 5',
+theme_h6 : 'Capçalera 6',
+theme_colorpicker_title : 'Selecciona el color',
+theme_colorpicker_apply : 'Apply',
+theme_forecolor_desc : 'Selecciona color frontal',
+theme_backcolor_desc : 'Selecciona color de fons',
+theme_charmap_title : 'Selecciona un caràcter especial',
+theme_charmap_desc : 'Inserta un caràcter especial',
+theme_visualaid_desc : 'Alterna líniesguia/elements invisibles',
+insert_anchor_title : 'Inserta/edita àncora',
+insert_anchor_name : 'Nom de l´àncora',
+theme_anchor_desc : 'Inserta/edita un àncora',
+theme_insert_link_titlefield : 'Títlo',
+theme_clipboard_msg : 'Copiar/Tallar/Enganxar no és possible amb Mozilla i Firefox.\nVols més informació sobre aquest problema de seguretat?',
+theme_path : 'Camí',
+cut_desc : 'Retallar',
+copy_desc : 'Copiar',
+paste_desc : 'Enganxar',
+link_list : 'Llistat d´enllaços',
+image_list : 'Llistat d´imatges',
+browse : 'Explorar',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+/**
+ * Czech lang variables
+ * encoding: utf-8
+ *
+ * $Id$
+ */
+
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Styly',
+theme_code_desc : 'Zobrazit HTML',
+theme_code_title : 'Editace HTML',
+theme_code_wordwrap : 'Bez dělení slov',
+theme_sub_desc : 'Dolní index',
+theme_sup_desc : 'Horní index',
+theme_hr_desc : 'Vložit vodorovný oddělovač',
+theme_removeformat_desc : 'Zrušit formátování',
+theme_custom1_desc : 'Libovolný popisek',
+insert_image_border : 'Rámeček',
+insert_image_dimensions : 'Rozměry',
+insert_image_vspace : 'Vertikální okraj',
+insert_image_hspace : 'Horizontální okraj',
+insert_image_align : 'Zarovnání',
+insert_image_align_default : 'Výchozí',
+insert_image_align_baseline : 'Na účaří',
+insert_image_align_top : 'Nahoru',
+insert_image_align_middle : 'Na střed',
+insert_image_align_bottom : 'Dolů',
+insert_image_align_texttop : 'Nejvyšší bod textu',
+insert_image_align_absmiddle : 'Střed řádku',
+insert_image_align_absbottom : 'Spodek řádku',
+insert_image_align_left : 'Vlevo',
+insert_image_align_right : 'Vpravo',
+theme_font_size : '-- Velikost textu --',
+theme_fontdefault : '-- Písmo --',
+theme_block : '-- Formát --',
+theme_paragraph : 'Odstavec',
+theme_div : 'Div',
+theme_address : 'Adresa',
+theme_pre : 'Předformát',
+theme_h1 : 'Nadpis 1',
+theme_h2 : 'Nadpis 2',
+theme_h3 : 'Nadpis 3',
+theme_h4 : 'Nadpis 4',
+theme_h5 : 'Nadpis 5',
+theme_h6 : 'Nadpis 6',
+theme_colorpicker_title : 'Výběr barvy',
+theme_colorpicker_apply : 'Vybrat',
+theme_forecolor_desc : 'Barva popředí',
+theme_backcolor_desc : 'Barva pozadí',
+theme_charmap_title : 'Výběr znaku',
+theme_charmap_desc : 'Vložit znak',
+theme_visualaid_desc : 'Zapnout značky/neviditelné prvky',
+insert_anchor_title : 'Vložení/editace záložky',
+insert_anchor_name : 'Název',
+theme_anchor_desc : 'Vložit/editovat záložku',
+theme_insert_link_titlefield : 'Název',
+theme_clipboard_msg : 'Funkce Kopírovat/vyjmout/vložit nejsou použitelné v Mozille a Firefoxu.\nChcete více informací o tomto problému?',
+theme_path : 'Cesta',
+cut_desc : 'Vyjmout',
+copy_desc : 'Kopírovat',
+paste_desc : 'Vložit',
+link_list : 'Seznam',
+image_list : 'Seznam',
+browse : 'Procházet',
+image_props_desc : 'Vlastnosti obrázku',
+newdocument_desc : 'Nový dokument',
+newdocument : 'Jste si opravdu jistý(á), že chcete vymazat veškerý obsah?'
+});
+
--- /dev/null
+// DK lang variables contributed by Jan Moelgaard
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Styles',
+theme_code_desc : 'Rediger html-kode',
+theme_code_title : 'HTML Kodeeditor',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Sænket skrift',
+theme_sup_desc : 'Hævet skrift',
+theme_hr_desc : 'Indsæt horisontal linje',
+theme_removeformat_desc : 'Fjern formatering',
+theme_custom1_desc : 'Indsæt din egen beskrivelse her',
+insert_image_border : 'Kant',
+insert_image_dimensions : 'Dimensioner',
+insert_image_vspace : 'VSpace',
+insert_image_hspace : 'HSpace',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Standard',
+insert_image_align_baseline : 'Bundlinje',
+insert_image_align_top : 'Top',
+insert_image_align_middle : 'Midt i',
+insert_image_align_bottom : 'I bunden',
+insert_image_align_texttop : 'I toppen af teksten',
+insert_image_align_absmiddle : 'Absolut midte',
+insert_image_align_absbottom : 'Absolut bund',
+insert_image_align_left : 'Venstre',
+insert_image_align_right : 'Højre',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Afsnit',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Præformateret',
+theme_h1 : 'Overskrift 1',
+theme_h2 : 'Overskrift 2',
+theme_h3 : 'Overskrift 3',
+theme_h4 : 'Overskrift 4',
+theme_h5 : 'Overskrift 5',
+theme_h6 : 'Overskrift 6',
+theme_colorpicker_title : 'Vælg en farve',
+theme_colorpicker_apply : 'Anvend',
+theme_forecolor_desc : 'Vælg forgrundsfarve',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Vælg specialkarakter',
+theme_charmap_desc : 'Indsæt specialkarakter',
+theme_visualaid_desc : 'Slå linjer/usynlige elementer til og fra',
+insert_anchor_title : 'Indsæt/rediger bogmærke',
+insert_anchor_name : 'Bogmærkets navn',
+theme_anchor_desc : 'Indsæt/rediger bogmærke',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Klasse',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// DE lang variables
+// Translated 2004 by Crazy Chrissi
+// Edited 2004 by Krokogras
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Styles',
+theme_code_desc : 'HTML-Modus',
+theme_code_title : 'HTML-Code Editor',
+theme_code_wordwrap : 'Zeilenumbruch',
+theme_sub_desc : 'Tiefergestellt',
+theme_sup_desc : 'Höhergestellt',
+theme_hr_desc : 'Horizontale Linie einfügen',
+theme_removeformat_desc : 'Formatierung löschen',
+theme_custom1_desc : 'Beschreibung eingeben',
+insert_image_border : 'Rahmen',
+insert_image_dimensions : 'Größe',
+insert_image_vspace : 'Vertikal einrücken',
+insert_image_hspace : 'Horizontal einrücken',
+insert_image_align : 'Ausrichten',
+insert_image_align_default : 'Normal',
+insert_image_align_baseline : 'Grundlinie',
+insert_image_align_top : 'Oben',
+insert_image_align_middle : 'Mitte',
+insert_image_align_bottom : 'Unten',
+insert_image_align_texttop : 'Textoberkante',
+insert_image_align_absmiddle : 'Absolute Mitte',
+insert_image_align_absbottom : 'Absolut unten',
+insert_image_align_left : 'Links',
+insert_image_align_right : 'Rechts',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Standard-Text',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Vorformatiert (pre)',
+theme_h1 : 'Überschrift 1',
+theme_h2 : 'Überschrift 2',
+theme_h3 : 'Überschrift 3',
+theme_h4 : 'Überschrift 4',
+theme_h5 : 'Überschrift 5',
+theme_h6 : 'Überschrift 6',
+theme_colorpicker_title : 'Wähle eine Farbe',
+theme_colorpicker_apply : 'Übernehmen',
+theme_forecolor_desc : 'Schriftfarbe ausw\84hlen',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Wähle ein Sonderzeichen',
+theme_charmap_desc : 'Sonderzeichen einfügen',
+theme_visualaid_desc : 'Anzeige von Hilfslinien / unsichtbaren Elementen an/aus',
+insert_anchor_title : 'Anker einfügen/bearbeiten',
+insert_anchor_name : 'Ankername',
+theme_anchor_desc : 'Anker einfügen/bearbeiten',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Kopieren/Ausschneiden/Einfügen sind in Mozilla und Firefox nicht verfügbar.\nMöchten sie weitere Informationen zu diesem Thema?',
+theme_path : 'Pfad',
+cut_desc : 'Ausschneiden',
+copy_desc : 'Kopieren',
+paste_desc : 'Einfügen',
+link_list : 'Verweisliste',
+image_list : 'Bildliste',
+browse : 'Durchsuchen',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Klasse',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// Greek lang variables by Jacaranda Bill
+
+tinyMCE.addToLang('',{
+theme_style_select : 'ÈÝìáôá',
+theme_code_desc : 'Åðåîåñãáóßá HTML êþäéêá',
+theme_code_title : 'ÅðåîåñãáóôÞò HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Äåßêôçò',
+theme_sup_desc : 'ÅêèÝôçò',
+theme_hr_desc : 'ÅéóáãùãÞ ïñéæüíôéáò ãñáììÞò',
+theme_removeformat_desc : 'ÁðáëïéöÞ ìïñöïðïßçóçò',
+theme_custom1_desc : 'ÐåñéãñáöÞ',
+insert_image_border : 'Ðåñßãñáììá',
+insert_image_dimensions : 'ÄéáóôÜóåéò',
+insert_image_vspace : 'ÊÜè. ðåñéèþñéï',
+insert_image_hspace : 'Ïñéæ. ðåñéèþñéï',
+insert_image_align : 'Óôïß÷éóç',
+insert_image_align_default : 'ÐñïêáèïñéóìÝíç',
+insert_image_align_baseline : 'Óå åõèõãñÜììéóç ìå ôï êåßìåíï',
+insert_image_align_top : 'ÐÜíù',
+insert_image_align_middle : 'Óôï êÝíôñï',
+insert_image_align_bottom : 'ÊÜôù',
+insert_image_align_texttop : 'Ôï êåßìåíï ðÜíù',
+insert_image_align_absmiddle : 'Áðüëõôá óôï êÝíôñï',
+insert_image_align_absbottom : 'Áðüëõôá êÜôù',
+insert_image_align_left : 'ÁñéóôåñÜ',
+insert_image_align_right : 'ÄåîéÜ',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'ÐáñÜãñáöïò',
+theme_div : 'Div',
+theme_address : 'Äéåýèõíóç',
+theme_pre : 'Preformatted',
+theme_h1 : 'Åðéêåöáëßäá 1',
+theme_h2 : 'Åðéêåöáëßäá 2',
+theme_h3 : 'Åðéêåöáëßäá 3',
+theme_h4 : 'Åðéêåöáëßäá 4',
+theme_h5 : 'Åðéêåöáëßäá 5',
+theme_h6 : 'Åðéêåöáëßäá 6',
+theme_colorpicker_title : '×ñþìáôá',
+theme_colorpicker_apply : 'ÅöáñìïãÞ',
+theme_forecolor_desc : 'ÅðéëïãÞ ÷ñþìáôïò ãñáììáôïóåéñÜò',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'ÅðéëïãÞ åéäéêïý ÷áñáêôÞñá',
+theme_charmap_desc : 'ÅéóáãùãÞ åéäéêïý ÷áñáêôÞñá',
+theme_visualaid_desc : 'ÅìöÜíéóç/Áðüêñõøç ãñáììþí',
+insert_anchor_title : 'ÅéóáãùãÞ/Äéüñèùóç Üãêõñáò',
+insert_anchor_name : 'Ïíïìáóßá Üãêõñáò',
+theme_anchor_desc : 'ÅéóáãùãÞ/Äéüñèùóç Üãêõñáò',
+theme_insert_link_titlefield : 'Ôßôëïò',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'ÊëÜóç',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Styles --',
+theme_code_desc : 'Edit HTML Source',
+theme_code_title : 'HTML Source Editor',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Insert horizontal ruler',
+theme_removeformat_desc : 'Remove formatting',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : 'Border',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'Vertical space',
+insert_image_hspace : 'Horizontal space',
+insert_image_align : 'Alignment',
+insert_image_align_default : '-- Not set --',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Top',
+insert_image_align_middle : 'Middle',
+insert_image_align_bottom : 'Bottom',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Absolute Middle',
+insert_image_align_absbottom : 'Absolute Bottom',
+insert_image_align_left : 'Left',
+insert_image_align_right : 'Right',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraph',
+theme_div : 'Div',
+theme_address : 'Address',
+theme_pre : 'Preformatted',
+theme_h1 : 'Heading 1',
+theme_h2 : 'Heading 2',
+theme_h3 : 'Heading 3',
+theme_h4 : 'Heading 4',
+theme_h5 : 'Heading 5',
+theme_h6 : 'Heading 6',
+theme_colorpicker_title : 'Select a color',
+theme_colorpicker_apply : 'Apply',
+theme_forecolor_desc : 'Select text color',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Insert/edit anchor',
+insert_anchor_name : 'Anchor name',
+theme_anchor_desc : 'Insert/edit anchor',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Class',
+newdocument : 'Are you sure you want clear all contents?',
+about_title : 'About TinyMCE',
+about : 'About',
+license : 'License',
+plugins : 'Plugins',
+plugin : 'Plugin',
+author : 'Author',
+version : 'Version',
+loaded_plugins : 'Loaded plugins',
+help : 'Help',
+not_set : '-- Not set --',
+close : 'Close'
+});
--- /dev/null
+// ES lang variables by Alvaro Velasco
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Estilos',
+theme_code_desc : 'Editar codigo HTML',
+theme_code_title : 'Editor codigo HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Subindice',
+theme_sup_desc : 'Superindice',
+theme_hr_desc : 'Insertar un separador horizontal',
+theme_removeformat_desc : 'Quitar formato',
+theme_custom1_desc : 'Tu descricion',
+insert_image_border : 'Borde',
+insert_image_dimensions : 'Dimensiones',
+insert_image_vspace : 'Espacio vertical',
+insert_image_hspace : 'Espacio horizontal',
+insert_image_align : 'Alineamiento',
+insert_image_align_default : 'Por defecto',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Superior',
+insert_image_align_middle : 'Centro',
+insert_image_align_bottom : 'Inferior',
+insert_image_align_texttop : 'Alinear texto arriba',
+insert_image_align_absmiddle : 'Centrado horizontal',
+insert_image_align_absbottom : 'Centrado abajo',
+insert_image_align_left : 'Izquierda',
+insert_image_align_right : 'Derecha',
+insert_image_delta_height'] = 10;
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraph',
+theme_div : 'Div',
+theme_address : 'Address',
+theme_pre : 'Preformatted',
+theme_h1 : 'Heading 1',
+theme_h2 : 'Heading 2',
+theme_h3 : 'Heading 3',
+theme_h4 : 'Heading 4',
+theme_h5 : 'Heading 5',
+theme_h6 : 'Heading 6',
+theme_colorpicker_title : 'Select a color',
+theme_colorpicker_apply : 'Apply',
+theme_forecolor_desc : 'Select forecolor',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Insert/edit anchor',
+insert_anchor_name : 'Anchor name',
+theme_anchor_desc : 'Insert/edit anchor',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// IR lang variables
+// Persian (Farsi) language pack (for IRAN)
+// By: Morteza Zafari
+// Lost@LostLord.com
+// http://www.LostLord.com
+
+tinyMCE.addToLang('',{
+dir : 'rtl',
+theme_style_select : '????',
+theme_code_desc : '?????? ????',
+theme_code_title : 'HTML ???????? ????',
+theme_code_wordwrap : '?? ???',
+theme_sub_desc : '??? ????',
+theme_sup_desc : '???? ????',
+theme_hr_desc : '??? ?? ????',
+theme_removeformat_desc : '??? ?? ??? ???? ????',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : '?????',
+insert_image_dimensions : '?????',
+insert_image_vspace : '????? ?????',
+insert_image_hspace : '????? ????',
+insert_image_align : '??? ????????',
+insert_image_align_default : '??? ???',
+insert_image_align_baseline : '?? ????',
+insert_image_align_top : '????',
+insert_image_align_middle : '???',
+insert_image_align_bottom : '?????',
+insert_image_align_texttop : '????? ???',
+insert_image_align_absmiddle : '??? ????',
+insert_image_align_absbottom : '????? ????',
+insert_image_align_left : '??',
+insert_image_align_right : '????',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : '????????',
+theme_div : 'Div',
+theme_address : '????',
+theme_pre : '?? ??? ????? ???',
+theme_h1 : '???? 1',
+theme_h2 : '???? 2',
+theme_h3 : '???? 3',
+theme_h4 : '???? 4',
+theme_h5 : '???? 5',
+theme_h6 : '???? 6',
+theme_colorpicker_title : '??? ?? ?????? ????',
+theme_colorpicker_apply : '?????',
+theme_forecolor_desc : '?????? ??? ???',
+theme_backcolor_desc : '?????? ??? ?????',
+theme_charmap_title : '?????? ??????? ????',
+theme_charmap_desc : '??? ??????? ????',
+theme_visualaid_desc : '????? ???? ???? ? ????? ??????',
+insert_anchor_title : '??? ? ?????? Anchor',
+insert_anchor_name : '??? Anchor',
+theme_anchor_desc : '??? ? ?????? Anchor',
+theme_insert_link_titlefield : '?????',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : '????',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// FI lang variables by Urho Konttori from Absolutions
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Tyylit',
+theme_code_desc : 'Muokkaa HTML lähdekoodia',
+theme_code_title : 'HTML Lähdekoodin muokkaus',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Alamääre',
+theme_sup_desc : 'Ylämääre',
+theme_hr_desc : 'Lisää vaakaviiva',
+theme_removeformat_desc : 'Poista muotoilu',
+theme_custom1_desc : 'Kirjoita oma selityksesi tähän',
+insert_image_border : 'Reuna',
+insert_image_dimensions : 'Mitat',
+insert_image_vspace : 'Pystyväli',
+insert_image_hspace : 'Vaakaväli',
+insert_image_align : 'Asettelu',
+insert_image_align_default : 'Oletus',
+insert_image_align_baseline : 'Perustasoon',
+insert_image_align_top : 'Ylälaitaan',
+insert_image_align_middle : 'Keskelle',
+insert_image_align_bottom : 'Alalaitaan',
+insert_image_align_texttop : 'Tekstin ylälaitaan',
+insert_image_align_absmiddle : 'Absoluuttisen keskelle',
+insert_image_align_absbottom : 'Absoluuttisen alas',
+insert_image_align_left : 'Vasemmalle',
+insert_image_align_right : 'Oikealle',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Kappale',
+theme_div : 'Div',
+theme_address : 'Osoite',
+theme_pre : 'Etukäteen muotoiltu',
+theme_h1 : 'Otsikko 1',
+theme_h2 : 'Otsikko 2',
+theme_h3 : 'Otsikko 3',
+theme_h4 : 'Otsikko 4',
+theme_h5 : 'Otsikko 5',
+theme_h6 : 'Otsikko 6',
+theme_colorpicker_title : 'Valitse väri',
+theme_colorpicker_apply : 'Aseta väri',
+theme_forecolor_desc : 'Valitse etuväri',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Insert/edit anchor',
+insert_anchor_name : 'Anchor name',
+theme_anchor_desc : 'Insert/edit anchor',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom
+// Modify by Laurent Dran 13-02-2006
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Styles',
+theme_code_desc : 'Modifier le code source HTML',
+theme_code_title : 'Éditeur de code source HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Souscrit',
+theme_sup_desc : 'Indice supérieur',
+theme_hr_desc : 'Insérer un séparateur horizontal',
+theme_removeformat_desc : 'Supprimer le formattage',
+theme_custom1_desc : 'Votre description personnalisée ici',
+insert_image_border : 'Bordure',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'VSpace',
+insert_image_hspace : 'HSpace',
+insert_image_align : 'Alignement',
+insert_image_align_default : 'Défaut',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Haut',
+insert_image_align_middle : 'Milieu',
+insert_image_align_bottom : 'Bas',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Milieu absolu',
+insert_image_align_absbottom : 'Bas absolu',
+insert_image_align_left : 'Gauche',
+insert_image_align_right : 'Droit',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraphe',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Préformatté',
+theme_h1 : 'Entête 1',
+theme_h2 : 'Entête 2',
+theme_h3 : 'Entête 3',
+theme_h4 : 'Entête 4',
+theme_h5 : 'Entête 5',
+theme_h6 : 'Entête 6',
+theme_colorpicker_title : 'Choisir une couleur',
+theme_colorpicker_apply : 'Appliquer',
+theme_forecolor_desc : 'Choisir la couleur d\'avant plan',
+theme_backcolor_desc : 'Choisir la couleur de fond',
+theme_charmap_title : 'Sélectionner un charactère spécial',
+theme_charmap_desc : 'Insérer un charactère spécial',
+theme_visualaid_desc : 'Active/Désactive les lignes guides et les éléments invisibles',
+insert_anchor_title : 'Insérer/Modifier une ancre',
+insert_anchor_name : 'Nom de l\'ancre',
+theme_anchor_desc : 'Insérer/Modifier une ancre',
+theme_insert_link_titlefield : 'Titre',
+theme_clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles pour Mozilla et Firefox.\nVoulez vous plus d\'informations à ce sujet?',
+theme_path : 'Chemin',
+cut_desc : 'Couper',
+copy_desc : 'Copier',
+paste_desc : 'Coller',
+link_list : 'Lien de la liste',
+image_list : 'Image de la liste',
+browse : 'Naviguer',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Classe CSS',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// Canadian French lang variables by Virtuelcom last modification: 2005-06-15
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Styles --',
+theme_code_desc : 'Modifier le code source HTML',
+theme_code_title : 'Éditeur de code source HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Souscrit',
+theme_sup_desc : 'Indice supérieur',
+theme_hr_desc : 'Insérer un séparateur horizontal',
+theme_removeformat_desc : 'Supprimer le formattage',
+theme_custom1_desc : 'Votre description personnalisée ici',
+insert_image_border : 'Bordure',
+insert_image_dimensions : 'Dimensions',
+insert_image_vspace : 'VSpace',
+insert_image_hspace : 'HSpace',
+insert_image_align : 'Alignement',
+insert_image_align_default : 'Défaut',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Haut',
+insert_image_align_middle : 'Milieu',
+insert_image_align_bottom : 'Bas',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Milieu absolu',
+insert_image_align_absbottom : 'Bas absolu',
+insert_image_align_left : 'Gauche',
+insert_image_align_right : 'Droit',
+theme_font_size : 'Taille',
+theme_fontdefault : '-- Police --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraphe',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Préformatté',
+theme_h1 : 'Entête 1',
+theme_h2 : 'Entête 2',
+theme_h3 : 'Entête 3',
+theme_h4 : 'Entête 4',
+theme_h5 : 'Entête 5',
+theme_h6 : 'Entête 6',
+theme_colorpicker_title : 'Choisir une couleur',
+theme_colorpicker_apply : 'Appliquer',
+theme_forecolor_desc : 'Choisir la couleur d\'avant plan',
+theme_backcolor_desc : 'Choisir une couleur d\'arrière plan',
+theme_charmap_title : 'Sélectionner un charactère spécial',
+theme_charmap_desc : 'Insérer un charactère spécial',
+theme_visualaid_desc : 'Active/Désactive les lignes guides et les éléments invisibles',
+insert_anchor_title : 'Insérer/Modifier une ancre',
+insert_anchor_name : 'Nom de l\'ancre',
+theme_anchor_desc : 'Insérer / Modifier une ancre',
+theme_insert_link_titlefield : 'Titre',
+theme_clipboard_msg : 'Copier/Couper/Coller ne sont pas disponibles dans Mozilla et FireFox.\nDésirez-vous consulter de plus amples informations à ce sujet?',
+theme_path : 'Chemin',
+cut_desc : 'Couper',
+copy_desc : 'Copier',
+paste_desc : 'Coller',
+link_list : 'Liste de liens',
+image_list : 'Liste d\'images',
+browse : 'Sélectionner',
+image_props_desc : 'Propriétés de l\'image',
+newdocument_desc : 'Nouveau Document',
+class_name : 'Classe',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// HE lang variables by Liron Newman, http://eesh.net
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- ñéâðåðåú --',
+theme_code_desc : 'òøåê àú ÷åã ä-HTML',
+theme_code_title : 'òåøê ÷åã HTML',
+theme_code_wordwrap : 'âìéùú ùåøåú',
+theme_sub_desc : 'ëúá úçúé',
+theme_sup_desc : 'ëúá òéìé',
+theme_hr_desc : 'äëðñ ÷å àåô÷é',
+theme_removeformat_desc : 'äñø òéöåá',
+theme_custom1_desc : 'äúéàåø ùìê ëàï',
+insert_image_border : 'âáåì',
+insert_image_dimensions : 'îéîãéí',
+insert_image_vspace : 'çìì àðëé',
+insert_image_hspace : 'çìì àåô÷é',
+insert_image_align : 'ééùåø',
+insert_image_align_default : 'áøéøú îçãì',
+insert_image_align_baseline : 'ì÷å äáñéñ',
+insert_image_align_top : 'ìîòìä',
+insert_image_align_middle : 'ìàîöò',
+insert_image_align_bottom : 'ìîèä',
+insert_image_align_texttop : 'ìøàù äè÷ñè',
+insert_image_align_absmiddle : 'ìàîöò îåçìè',
+insert_image_align_absbottom : 'ì÷öä úçúåï îåçìè',
+insert_image_align_left : 'ìùîàì',
+insert_image_align_right : 'ìéîéï',
+theme_font_size : 'âåãì âåôï',
+theme_fontdefault : '-- îùôçú âåôðéí --',
+theme_block : '-- òéöåá --',
+theme_paragraph : 'ôñ÷ä',
+theme_div : '÷èò',
+theme_address : 'ëúåáú',
+theme_pre : 'îòåöá îøàù',
+theme_h1 : 'ëåúøú 1',
+theme_h2 : 'ëåúøú 2',
+theme_h3 : 'ëåúøú 3',
+theme_h4 : 'ëåúøú 4',
+theme_h5 : 'ëåúøú 5',
+theme_h6 : 'ëåúøú 6',
+theme_colorpicker_title : 'áçø öáò',
+theme_colorpicker_apply : 'äçì',
+theme_forecolor_desc : 'áçø öáò è÷ñè',
+theme_backcolor_desc : 'áçø öáò ø÷ò',
+theme_charmap_title : 'áçø úå îéåçã',
+theme_charmap_desc : 'äëðñ úå îéåçã',
+theme_visualaid_desc : 'äçìó îöá ÷ååéí îðçéí/øëéáéí áìúé-ðøàéí',
+insert_anchor_title : 'äëðñ/òøåê òåâï',
+insert_anchor_name : 'ùí äòåâï',
+theme_anchor_desc : 'äëðñ/òøåê òåâï',
+theme_insert_link_titlefield : 'ëåúøú',
+theme_clipboard_msg : 'ôòåìåú äòú÷ä/âæéøä/äãá÷ä àéðï ðúîëåú úçú Mozilla å-Firefox.\näàí áøöåðê ì÷áì îéãò ðåñó àåãåú ðåùà æä?',
+theme_path : 'ðúéá',
+cut_desc : 'âæåø',
+copy_desc : 'äòú÷',
+paste_desc : 'äãá÷',
+link_list : 'øùéîú ÷éùåøéí',
+image_list : 'øùéîú úîåðåú',
+browse : 'ñééø',
+image_props_desc : 'îàôééðé úîåðä',
+newdocument_desc : 'îñîê çãù',
+class_name : 'îçì÷ä',
+newdocument : 'äàí àúä áèåç ùáøöåðê ìð÷åú àú ëì äúåëï?'
+});
--- /dev/null
+// HU lang variables
+// Edited by 2XP (2xp@dino.hu)
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Stílusok',
+theme_code_desc : 'HTML kód szerkesztése',
+theme_code_title : 'HTML kódszerkeztõ',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Alsó index',
+theme_sup_desc : 'Felsõ index',
+theme_hr_desc : 'Vízszintes vonal beillesztése',
+theme_removeformat_desc : 'Formázás eltávolítása',
+theme_custom1_desc : 'Az Ön által kiválasztott leírás',
+insert_image_border : 'Keret',
+insert_image_dimensions : 'Méretek',
+insert_image_vspace : 'Függõleges térköz',
+insert_image_hspace : 'Vízszintes térköz',
+insert_image_align : 'Igazítés',
+insert_image_align_default : 'Alapértelmezett',
+insert_image_align_baseline : 'Alapvonalra',
+insert_image_align_top : 'Felülre',
+insert_image_align_middle : 'Középre',
+insert_image_align_bottom : 'Alulra',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Abszolút középre',
+insert_image_align_absbottom : 'Abszolút alulra',
+insert_image_align_left : 'Balra',
+insert_image_align_right : 'Jobbra',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraph',
+theme_div : 'Div',
+theme_address : 'Address',
+theme_pre : 'Preformatted',
+theme_h1 : 'Heading 1',
+theme_h2 : 'Heading 2',
+theme_h3 : 'Heading 3',
+theme_h4 : 'Heading 4',
+theme_h5 : 'Heading 5',
+theme_h6 : 'Heading 6',
+theme_colorpicker_title : 'Select a color',
+theme_colorpicker_apply : 'Apply',
+theme_forecolor_desc : 'Select forecolor',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Insert/edit anchor',
+insert_anchor_name : 'Anchor name',
+theme_anchor_desc : 'Insert/edit anchor',
+theme_insert_link_titlefield : 'Title',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// Variabili di lingua IT - fabrix.xm@lombardiacom.it
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Stili',
+theme_code_desc : 'Edita il sorgente HTML',
+theme_code_title : 'Editor Sorgente HTML',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Pedice',
+theme_sup_desc : 'Apice',
+theme_hr_desc : 'Inserisce linea orizzontale',
+theme_removeformat_desc : 'Rimuovi formattazione',
+theme_custom1_desc : 'Scrivi qui la tua descrizione personalizzata',
+insert_image_border : 'Bordo',
+insert_image_dimensions : 'Dimensioni',
+insert_image_vspace : 'Spazio verticale',
+insert_image_hspace : 'Spazio orizzontale',
+insert_image_align : 'Allineamento',
+insert_image_align_default : 'Default',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Superiore',
+insert_image_align_middle : 'Centrale',
+insert_image_align_bottom : 'Inferiore',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Centro assoluto',
+insert_image_align_absbottom : 'Inferiore assoluto',
+insert_image_align_left : 'Sinistra',
+insert_image_align_right : 'Destra',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragrafo',
+theme_div : 'Div',
+theme_address : 'Indirizzo',
+theme_pre : 'Preformattato',
+theme_h1 : 'Intestazione 1',
+theme_h2 : 'Intestazione 2',
+theme_h3 : 'Intestazione 3',
+theme_h4 : 'Intestazione 4',
+theme_h5 : 'Intestazione 5',
+theme_h6 : 'Intestazione 6',
+theme_colorpicker_title : 'Seleziona un colore',
+theme_colorpicker_apply : 'Appplica',
+theme_forecolor_desc : 'Seleziona il colore',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Seleziona un carattere custom',
+theme_charmap_desc : 'Inserisci un carattere custom',
+theme_visualaid_desc : 'Mostra/nascondi linee guida e elementi invisibili',
+insert_anchor_title : 'Inserisci/modifica àncora',
+insert_anchor_name : 'Nome àncora',
+theme_anchor_desc : 'Inserisci/modifica àncora',
+theme_insert_link_titlefield : 'Titolo',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Classe',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// JP lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '\e$B%9%?%$%k\e(B',
+theme_paragraph : '\e$BJ8L.\e(B',
+theme_address : '\e$B%"%I%l%9\e(B',
+theme_pre : '\e$B@07A:Q$_\e(B',
+theme_h1 : 'H1',
+theme_h2 : 'H2',
+theme_h3 : 'H3',
+theme_h4 : 'H4',
+theme_h5 : 'H5',
+theme_h6 : 'H6',
+theme_div : 'Div',
+insert_anchor_title : '\e$B%"%s%+!<$NA^F~\e(B/\e$BJT=8\e(B',
+insert_anchor_name : '\e$B%"%s%+!<$NL>A0\e(B',
+theme_anchor_desc : '\e$B%"%s%+!<$NA^F~\e(B/\e$BJT=8\e(B',
+theme_code_desc : 'HTML\e$B$ND>@\JT=8\e(B',
+theme_code_title : 'HTML\e$B$NJT=8\e(B',
+theme_code_wordwrap : 'Word wrap',
+theme_hr_desc : '\e$B?eJ?@~\e(B',
+theme_removeformat_desc : '\e$B@07A>pJs:o=|\e(B',
+theme_visualaid_desc : '\e$BJd=u>pJs$N;k3P2=\e(B(\e$B%H%0%k\e(B)',
+theme_sub_desc : '\e$BE:;z2<\e(B',
+theme_sup_desc : '\e$BE:;z>e\e(B',
+theme_charmap_desc : '\e$BFC<lJ8;z$NF~NO\e(B',
+theme_charmap_title : '\e$BFC<lJ8;z$rA*Br$7$F2<$5$$\e(B',
+insert_image_dimensions : '\e$BBg$-$5;XDj\e(B',
+insert_image_border : '\e$B6-3&I}\e(B',
+insert_image_vspace : '\e$B=DM>Gr\e(B',
+insert_image_hspace : '\e$B2#M>Gr\e(B',
+insert_image_align : '\e$B0LCV9g$o$;\e(B',
+insert_image_align_default : '\e$B0EL[\e(B',
+insert_image_align_baseline : '\e$B4p=`@~\e(B',
+insert_image_align_top : '\e$B>e\e(B',
+insert_image_align_middle : '\e$BCf\e(B',
+insert_image_align_bottom : '\e$B2<\e(B',
+insert_image_align_texttop : '\e$BJ8;z$N>e\e(B',
+insert_image_align_absmiddle : '\e$B@dBP$KCf\e(B',
+insert_image_align_absbottom : '\e$B@dBP$K2<\e(B',
+insert_image_align_left : '\e$B:8\e(B',
+insert_image_align_right : '\e$B1&\e(B',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_colorpicker_title : '\e$B?\'$N;XDj\e(B',
+theme_colorpicker_apply : '\e$BE,MQ\e(B',
+theme_forecolor_desc : '\e$BA07J?\'\e(B',
+theme_backcolor_desc : 'Select background color',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : '\e$B%/%i%9\e(B',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// KO lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '½ºÅ¸ÀÏ',
+theme_code_desc : 'HTML ¼Ò½º °íÄ¡±â',
+theme_code_title : 'HTML ¼Ò½º ÆíÁý±â',
+theme_code_wordwrap : 'Word wrap',
+theme_code_save : 'ÀúÀå',
+theme_sub_desc : '¾Æ·¡Ã·ÀÚ',
+theme_sup_desc : 'À§Ã·ÀÚ',
+theme_hr_desc : '°¡·ÎÁÙ ³Ö±â',
+theme_removeformat_desc : '¼Ó¼º Áö¿ì±â',
+theme_custom1_desc : 'Your custom description here',
+insert_image_border : 'Å׵θ®',
+insert_image_dimensions : 'Å©±â',
+insert_image_vspace : '¼¼·Î ¿©¹é',
+insert_image_hspace : '°¡·Î ¿©¹é',
+insert_image_align : 'Á¤·Ä',
+insert_image_align_default : '±âº»°ª',
+insert_image_align_baseline : 'Baseline',
+insert_image_align_top : 'Top',
+insert_image_align_middle : 'Middle',
+insert_image_align_bottom : 'Bottom',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Absolute Middle',
+insert_image_align_absbottom : 'Absolute Bottom',
+insert_image_align_left : 'Left',
+insert_image_align_right : 'Right',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : '´Ü¶ô',
+theme_div : 'Div',
+theme_address : 'ÁÖ¼Ò',
+theme_pre : '¼½Ä ÀÖÀ½',
+theme_h1 : 'Á¦¸ñ 1',
+theme_h2 : 'Á¦¸ñ 2',
+theme_h3 : 'Á¦¸ñ 3',
+theme_h4 : 'Á¦¸ñ 4',
+theme_h5 : 'Á¦¸ñ 5',
+theme_h6 : 'Á¦¸ñ 6',
+theme_colorpicker_title : '»ö»ó ¼±ÅÃ',
+theme_colorpicker_apply : 'Àû¿ë',
+theme_forecolor_desc : '±ÛÀÚ »ö»ó',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Select custom character',
+theme_charmap_desc : 'Insert custom character',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : '¾ÞÄ¿ ³Ö±â/°íÄ¡±â',
+insert_anchor_name : '¾ÞÄ¿ À̸§',
+theme_anchor_desc : '¾ÞÄ¿ ³Ö±â/°íÄ¡±â',
+theme_insert_link_titlefield : 'Á¦¸ñ',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Ŭ·¡½º',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// NL lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Stijlen',
+theme_code_desc : 'Toon/bewerk HTML broncode',
+theme_code_title : 'HTML broncode editor',
+theme_code_wordwrap : 'Word wrap',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Invoegen horizontale lijn',
+theme_removeformat_desc : 'Verwijder opmaak',
+theme_custom1_desc : 'Uw eigen omschrijving hier',
+insert_image_border : 'Omranding (pixels)',
+insert_image_dimensions : 'Afmetingen (Leeg: Originele afm.)',
+insert_image_vspace : 'Verticale marge (pixels)',
+insert_image_hspace : 'Horizontale marge (pixels)',
+insert_image_align : 'Uitlijning',
+insert_image_align_default : 'Standaard',
+insert_image_align_baseline : 'Basislijn',
+insert_image_align_top : 'Boven',
+insert_image_align_middle : 'Midden',
+insert_image_align_bottom : 'Onder',
+insert_image_align_texttop : 'TextTop',
+insert_image_align_absmiddle : 'Absoluut Midden',
+insert_image_align_absbottom : 'Absoluut Onder',
+insert_image_align_left : 'Links',
+insert_image_align_right : 'Rechts',
+insert_image_delta_height'] = 0;
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraaf',
+theme_div : 'Div',
+theme_address : 'Adres',
+theme_pre : 'voorgeformatteerd',
+theme_h1 : 'Titel 1',
+theme_h2 : 'Titel 2',
+theme_h3 : 'Titel 3',
+theme_h4 : 'Titel 4',
+theme_h5 : 'Titel 5',
+theme_h6 : 'Titel 6',
+theme_colorpicker_title : 'Kies een kleur',
+theme_colorpicker_apply : 'Toepassen',
+theme_forecolor_desc : 'Selecteer voorgrondkleur',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Kies een bijzonder karakter',
+theme_charmap_desc : 'Voeg een bijzonder karakter in',
+theme_preview_desc : 'Toon de pagina in een nieuw venster',
+theme_visualaid_desc : 'Toon/verberg hulplijnen',
+insert_anchor_title : 'Anker toevoegen/wijzigen',
+insert_anchor_name : 'Anker naam',
+theme_anchor_desc : 'Anker toevoegen/wijzigen',
+theme_insert_link_titlefield : 'Titel',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'CSS-Stijl',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// NO lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Stiler',
+theme_code_desc : 'Redigere HTML Koden',
+theme_code_title : 'HTML Kildekode Redigering',
+theme_code_wordwrap : 'Word wrap',
+theme_code_save : 'Lagre',
+theme_sub_desc : 'Subscript',
+theme_sup_desc : 'Superscript',
+theme_hr_desc : 'Sett in horisontal linie',
+theme_removeformat_desc : 'Fjern formatering',
+theme_custom1_desc : 'Din spesialfunksjons beskriving her',
+insert_image_border : 'Ramme',
+insert_image_dimensions : 'Dimensjoner',
+insert_image_vspace : 'Vertikalt tomrom',
+insert_image_hspace : 'Horizontellt tomrom',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Intet',
+insert_image_align_baseline : 'Buttenlinjen',
+insert_image_align_top : 'Lengst opp',
+insert_image_align_middle : 'Midten',
+insert_image_align_bottom : 'Lengst ned',
+insert_image_align_texttop : 'Tekstens top',
+insert_image_align_absmiddle : 'Absolutt midten',
+insert_image_align_absbottom : 'Absolutt lengst ned',
+insert_image_align_left : 'Venstre',
+insert_image_align_right : 'Høyre',
+insert_image_delta_width : '',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Addresse',
+theme_pre : 'Pre-formattert',
+theme_h1 : 'Overskrift 1',
+theme_h2 : 'Overskrift 2',
+theme_h3 : 'Overskrift 3',
+theme_h4 : 'Overskrift 4',
+theme_h5 : 'Overskrift 5',
+theme_h6 : 'Overskrift 6',
+theme_colorpicker_title : 'Velg en farge',
+theme_colorpicker_apply : 'Bruk',
+theme_forecolor_desc : 'Velg forgrunnsfarge',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Velg spesialtegn',
+theme_charmap_desc : 'Sett inn spesialtegn',
+theme_visualaid_desc : 'Slå av/på usynlige elementer',
+insert_anchor_title : 'Opprette/endre anker',
+insert_anchor_name : 'Ankernavn',
+theme_anchor_desc : 'Opprett/endre anker',
+theme_insert_link_titlefield : 'Tittel',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Stil',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// UK lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Styl',
+theme_code_desc : 'Edytuj zródlo html',
+theme_code_title : 'Edytor zródla html',
+theme_code_wordwrap : 'Zwijanie wierszy',
+theme_sub_desc : 'Nadpisywanie',
+theme_sup_desc : 'Podpisywanie',
+theme_hr_desc : 'Wstaw pozioma linie',
+theme_removeformat_desc : 'Usun formatowanie',
+theme_custom1_desc : 'Wstaw wlasny opis',
+insert_image_border : 'Ramka',
+insert_image_dimensions : 'Wymiary',
+insert_image_vspace : 'VSpace',
+insert_image_hspace : 'HSpace',
+insert_image_align : 'Otaczanie',
+insert_image_align_default : 'Domyslne',
+insert_image_align_baseline : 'Glówne',
+insert_image_align_top : 'Górne',
+insert_image_align_middle : 'Srodkowe',
+insert_image_align_bottom : 'Dolne',
+insert_image_align_texttop : 'Tekst powyzej',
+insert_image_align_absmiddle : 'Absolutny srodek',
+insert_image_align_absbottom : 'Absolutny dól',
+insert_image_align_left : 'Lewe',
+insert_image_align_right : 'Prawe',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : '-- Paragraf --',
+theme_div : 'Div',
+theme_address : 'Adres',
+theme_pre : 'Preformatowanie',
+theme_h1 : 'Naglówek 1',
+theme_h2 : 'Naglówek 2',
+theme_h3 : 'Naglówek 3',
+theme_h4 : 'Naglówek 4',
+theme_h5 : 'Naglówek 5',
+theme_h6 : 'Naglówek 6',
+theme_colorpicker_title : 'Wybierz kolor',
+theme_colorpicker_apply : 'Wybierz',
+theme_forecolor_desc : 'Wybierz kolor tekstu',
+theme_backcolor_desc : 'Wybierz kolor tla',
+theme_charmap_title : 'Wybierz znak',
+theme_charmap_desc : 'Wstaw znak',
+theme_visualaid_desc : 'Toggle guidelines/invisible elements',
+insert_anchor_title : 'Kotwica',
+insert_anchor_name : 'Nazwa kotwicy',
+theme_anchor_desc : 'Wstaw/Edytuj kotwice',
+theme_insert_link_titlefield : 'Tytul',
+theme_clipboard_msg : 'Kopiuj/Edytuj/Wklej nie jest dostepne w przegladarkach Mozilla and Firefox.\nPotrzebujesz wiecej informacji na ten temat?',
+theme_path : 'Sciezka',
+cut_desc : 'Wytnij',
+copy_desc : 'Kopiuj',
+paste_desc : 'Wklej',
+link_list : 'Lista linków',
+image_list : 'Lista obrazków',
+browse : 'Przegladaj',
+image_props_desc : 'Wlasciwosci obrazka',
+newdocument_desc : 'New document',
+class_name : 'Klasa',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// PT lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Estilos CSS',
+theme_code_desc : 'Editar Fonte HTML',
+theme_code_title : 'Editor de fonte HTML',
+theme_code_save : 'Guardar',
+theme_code_wordwrap : 'Translinear palavras',
+theme_sub_desc : 'Subscrito',
+theme_sup_desc : 'Superscrito',
+theme_hr_desc : 'Inserir linha horizontal',
+theme_removeformat_desc : 'Remover formatação',
+theme_custom1_desc : 'Descrição customizada aqui',
+insert_image_border : 'Borda',
+insert_image_dimensions : 'Dimensões',
+insert_image_vspace : 'Espaçamento Vert.',
+insert_image_hspace : 'Espaçamento Horiz.',
+insert_image_align : 'Alinhamento',
+insert_image_align_default : 'Por omissão',
+insert_image_align_baseline : 'Linha de base',
+insert_image_align_top : 'Topo',
+insert_image_align_middle : 'Centrado',
+insert_image_align_bottom : 'Fundo',
+insert_image_align_texttop : 'Topo do Texto',
+insert_image_align_absmiddle : 'Centrado absoluto',
+insert_image_align_absbottom : 'Fundo absoluto',
+insert_image_align_left : 'Esquerda',
+insert_image_align_right : 'Direita',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Parágrafo',
+theme_div : 'Bloco HTML',
+theme_address : 'Morada',
+theme_pre : 'Pré formatado',
+theme_h1 : 'Título 1',
+theme_h2 : 'Título 2',
+theme_h3 : 'Título 3',
+theme_h4 : 'Título 4',
+theme_h5 : 'Título 5',
+theme_h6 : 'Título 6',
+theme_colorpicker_title : 'Seleccione uma côr',
+theme_colorpicker_apply : 'Aplicar',
+theme_forecolor_desc : 'Seleccione côr da frente',
+theme_backcolor_desc : 'Select background color',
+theme_charmap_title : 'Seleccione símbolo customizado',
+theme_charmap_desc : 'Inserir símbolo customizado',
+theme_visualaid_desc : 'Ligar/Desligar guias/elementos invisíveis',
+insert_anchor_title : 'Inserir/editar âncora',
+insert_anchor_name : 'Nome da âncora',
+theme_anchor_desc : 'Inserir/editar âncora',
+theme_insert_link_titlefield : 'Título',
+theme_clipboard_msg : 'Copiar/Cortar/Colar não está disponível em Mozilla e Firefox.\nPretende obter mais informação acerca deste assunto?',
+theme_path : 'Path',
+cut_desc : 'Cortar',
+copy_desc : 'Copiar',
+paste_desc : 'Colar',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+class_name : 'Classe de CSS',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// pt_BR lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : 'Estilos',
+theme_code_desc : 'Editar Código HTML',
+theme_code_title : 'Editor de Código HTML',
+theme_code_wordwrap : 'Quebrar Linhas',
+theme_sub_desc : 'Subscrito',
+theme_sup_desc : 'Subrescrito',
+theme_hr_desc : 'Inserir linha horizontal',
+theme_removeformat_desc : 'Remover formatação',
+theme_custom1_desc : 'Sua descrição personalizada aqui',
+insert_image_border : 'Borda',
+insert_image_dimensions : 'Dimensões',
+insert_image_vspace : 'Espaço Vertical',
+insert_image_hspace : 'Espaço Horizontal',
+insert_image_align : 'Alinhamento',
+insert_image_align_default : 'Padrão',
+insert_image_align_baseline : 'Linha base',
+insert_image_align_top : 'Topo',
+insert_image_align_middle : 'Centro',
+insert_image_align_bottom : 'Fundo',
+insert_image_align_texttop : 'Texto ao Topo',
+insert_image_align_absmiddle : 'Centro Absoluto',
+insert_image_align_absbottom : 'Fundo Absoluto',
+insert_image_align_left : 'Esquerda',
+insert_image_align_right : 'Direita',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : 'Parágrafo',
+theme_div : 'Div',
+theme_address : 'Endereço',
+theme_pre : 'Pré-formatado',
+theme_h1 : 'Cabeçalho 1',
+theme_h2 : 'Cabeçalho 2',
+theme_h3 : 'Cabeçalho 3',
+theme_h4 : 'Cabeçalho 4',
+theme_h5 : 'Cabeçalho 5',
+theme_h6 : 'Cabeçalho 6',
+theme_colorpicker_title : 'Selecionar cor',
+theme_colorpicker_apply : 'Aplicar',
+theme_forecolor_desc : 'Selecionar cor do texto',
+theme_backcolor_desc : 'Selecionar cor de fundo',
+theme_charmap_title : 'Selecionar caractere especial',
+theme_charmap_desc : 'Inserir caractere especial',
+theme_visualaid_desc : 'Tornar linhas visíveis/invisíveis',
+insert_anchor_title : 'Inserir/editar âncora',
+insert_anchor_name : 'Nome da âncora',
+theme_anchor_desc : 'Inserir/editar âncora',
+theme_insert_link_titlefield : 'Título',
+theme_clipboard_msg : 'Copiar/Recortar/Colar não é permitido no Mozilla e Firefox.\nQuer mais informações sobre isso?',
+theme_path : 'Caminho',
+cut_desc : 'Recortar',
+copy_desc : 'Copiar',
+paste_desc : 'Colar',
+link_list : 'Lista de Links',
+image_list : 'Lista de Imagens',
+browse : 'Navegar',
+image_props_desc : 'Propriedades da Imagem',
+newdocument_desc : 'New document',
+class_name : 'Class',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+Theme specific language packs.
+
+The language pack codes are based on ISO-639-2
+http://www.loc.gov/standards/iso639-2/englangn.html
--- /dev/null
+// SE lang variables
+
+tinyMCE.addToLang('',{
+theme_style_select : '-- Stilar --',
+theme_code_desc : 'Editera HTML-koden',
+theme_code_title : 'HTML-källkodseditor',
+theme_code_wordwrap : 'Automatiskt radbyte',
+theme_sub_desc : 'Nedsänkt text',
+theme_sup_desc : 'Upphöjd text',
+theme_hr_desc : 'Sätt in horisontell linje',
+theme_removeformat_desc : 'Ta bort formatering',
+theme_custom1_desc : 'Din specialbeskriving här',
+insert_image_border : 'Ram',
+insert_image_dimensions : 'Dimensioner',
+insert_image_vspace : 'Vertikalt tomrum',
+insert_image_hspace : 'Horisontellt tomrum',
+insert_image_align : 'Justering',
+insert_image_align_default : 'Ingen',
+insert_image_align_baseline : 'Bottenlinjen',
+insert_image_align_top : 'Längst upp',
+insert_image_align_middle : 'Mitten',
+insert_image_align_bottom : 'Längst ner',
+insert_image_align_texttop : 'Textens top',
+insert_image_align_absmiddle : 'Absoluta mitten',
+insert_image_align_absbottom : 'Absolut längst ner',
+insert_image_align_left : 'Vänster',
+insert_image_align_right : 'Höger',
+insert_image_delta_width : 30,
+insert_image_delta_height : 10,
+theme_font_size : '-- Fontstorlek --',
+theme_fontdefault : '-- Font familj --',
+theme_block : '-- Stycke --',
+theme_paragraph : 'Paragraf',
+theme_div : 'Div',
+theme_address : 'Adress',
+theme_pre : 'Förformatterad',
+theme_h1 : 'Rubrik 1',
+theme_h2 : 'Rubrik 2',
+theme_h3 : 'Rubrik 3',
+theme_h4 : 'Rubrik 4',
+theme_h5 : 'Rubrik 5',
+theme_h6 : 'Rubrik 6',
+theme_colorpicker_title : 'Välj en färg',
+theme_colorpicker_apply : 'Verkställ',
+theme_forecolor_desc : 'Välj förgrundsfärg',
+theme_backcolor_desc : 'Välj bakgrundsfärg',
+theme_charmap_title : 'Välj specialtecken',
+theme_charmap_desc : 'Sätt in specialtecken',
+theme_visualaid_desc : 'Slå av/på osynliga element',
+insert_anchor_title : 'Skapa/redigera ankare',
+insert_anchor_name : 'Ankarnamn',
+theme_anchor_desc : 'Skapa/redigera ankare',
+theme_insert_link_titlefield : 'Titel',
+theme_clipboard_msg : 'Klipput/Kopiera/Klistra fungerar inte Mozilla och Firefox. Vill du veta mer om detta?',
+theme_path : 'Sökväg',
+cut_desc : 'Klipp ut',
+copy_desc : 'Kopiera',
+paste_desc : 'Klistra in',
+link_list : 'Länkar',
+image_list : 'Bilder',
+browse : 'Bläddra',
+image_props_desc : 'Bild egenskaper',
+newdocument_desc : 'Nytt dokument',
+class_name : 'Stil',
+newdocument : 'Är du säker på att du vill tömma hela redigerings ytan?',
+about_title : 'Om TinyMCE',
+about : 'Om',
+license : 'Licens',
+plugins : 'Insticksprogram',
+plugin : 'Insticksprogram',
+author : 'Utvecklare',
+version : 'Version',
+loaded_plugins : 'Laddade insticksprogram',
+help : 'Hjälp',
+not_set : '-- Inte satt --',
+close : 'Stäng'
+});
--- /dev/null
+// TW lang variables contributed by Jim Kou
+
+tinyMCE.addToLang('',{
+bold_desc : '²ÊÅé',
+bold_img : "bold.gif",
+bullist_desc : '²Å¸¹¶µ¥Ø',
+cancel : '¨ú®ø',
+cleanup_desc : '²M°£',
+help_desc : '»²§U»¡©ú',
+image_desc : '¹Ï¤ù',
+indent_desc : 'ÁY±Æ',
+insert : '·s¼W',
+insert_anchor_name : '¼Ðµù¦WºÙ',
+insert_anchor_title : '·s¼W¼Ðµù',
+insert_image_align : '¹ï»ô',
+insert_image_align_absbottom : '±j¨î»ô¤U',
+insert_image_align_absmiddle : '±j¨î¸m¤¤',
+insert_image_align_baseline : '°ò·Ç½u',
+insert_image_align_bottom : '»ô¤U',
+insert_image_align_default : '¼Ð·Ç',
+insert_image_align_left : '»ô¥ª',
+insert_image_align_middle : '¸m¤¤',
+insert_image_align_right : '»ô¥k',
+insert_image_align_texttop : '¤å¦r¤W¤è',
+insert_image_align_top : '»ô¤W',
+insert_image_alt : '¹Ï¤ù»¡©ú',
+insert_image_border : '¥~®Ø',
+insert_image_dimensions : '¤Ø¤o',
+insert_image_hspace : '¤ô¥¶¡»Ø',
+insert_image_src : '¹Ï¤ù¨Ó·½',
+insert_image_title : '·s¼W¹Ï¤ù',
+insert_image_vspace : '««ª½¶¡»Ø',
+insert_link_target : '¥Ø¼Ð',
+insert_link_target_blank : 'Åã¥Ü©ó·sµøµ¡¤¤',
+insert_link_target_same : 'Åã¥Ü©ó¦P¤@µøµ¡¤¤',
+insert_link_title : '·s¼W¶W³sµ²',
+insert_link_url : '¶W³sµ²',
+italic_desc : '±×Åé',
+italic_img : "italic.gif",
+justifycenter_desc : '»ô¤¤',
+justifyfull_desc : '¶ñº¡',
+justifyleft_desc : '»ô¥ª',
+justifyright_desc : '»ô¥k',
+link_desc : '«Ø¥ß³sµ²',
+numlist_desc : '¼Æ¦r¶µ¥Ø',
+outdent_desc : '¥Y±Æ',
+redo_desc : '«°µ',
+striketrough_desc : '§R°£½u',
+theme_address : '¦a§}',
+theme_anchor_desc : '¼Ðµù',
+theme_charmap_desc : '¯S®í¦r¤¸',
+theme_charmap_title : '¯S®í¦r¤¸²M³æ',
+theme_code_desc : 'Åã¥Ü HTML ì©l½X',
+theme_code_wordwrap : 'Word wrap',
+theme_code_title : 'HTML ì©l½X',
+theme_colorpicker_apply : 'Åܧó',
+theme_colorpicker_title : 'ÃC¦â',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_forecolor_desc : '¦r«¬ÃC¦â',
+theme_backcolor_desc : 'Select background color',
+theme_h1 : '¼ÐÃD1',
+theme_h2 : '¼ÐÃD2',
+theme_h3 : '¼ÐÃD3',
+theme_h4 : '¼ÐÃD4',
+theme_h5 : '¼ÐÃD5',
+theme_h6 : '¼ÐÃD6',
+theme_hr_desc : '·s¼W¾î½u',
+theme_paragraph : '¬q¸¨',
+theme_pre : '¤º©w®æ¦¡',
+theme_removeformat_desc : '²M°£®æ¦¡³]©w',
+theme_style_select : '¼Ë¦¡',
+theme_sub_desc : '¤U¼Ð',
+theme_sup_desc : '¤W¼Ð',
+theme_visualaid_desc : 'Åã¥Ü/ÁôÂëD¥i¨£ªº¤¸¯À',
+underline_desc : '©³½u',
+undo_desc : '´_ì',
+unlink_desc : '¨ú®ø³sµ²',
+theme_clipboard_msg : 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?',
+theme_path : 'Path',
+cut_desc : 'Cut',
+copy_desc : 'Copy',
+paste_desc : 'Paste',
+link_list : 'Link list',
+image_list : 'Image list',
+browse : 'Browse',
+image_props_desc : 'Image properties',
+newdocument_desc : 'New document',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+// Simplified Chinese lang variables contributed by cube316 (cube316@gmail.com)
+//Çë·ÃÎÊ http://www.cube316.net/ ÒÔ»ñÈ¡TinyMCEµÄÖÐÎÄÖ§³Ö
+
+tinyMCE.addToLang('',{
+theme_style_select : '¸ñʽ',
+theme_code_desc : '±à¼HTMLÔ´´úÂë',
+theme_code_title : 'HTMLÔ´´úÂë±à¼Æ÷',
+theme_code_wordwrap : '×Ô¶¯»»ÐÐ',
+theme_sub_desc : '챐',
+theme_sup_desc : 'Éϱê',
+theme_hr_desc : '²åÈëˮƽÏß',
+theme_removeformat_desc : 'ÒƳý¸ñʽ',
+theme_custom1_desc : 'ÕâÀïÌîдÓû§×Ô¶¨ÒåµÄÃèÊö',
+insert_image_border : '±ß¿ò',
+insert_image_dimensions : 'άÊý',
+insert_image_vspace : 'ˮƽ¼ä¾à',
+insert_image_hspace : '´¹Ö±¼ä¾à',
+insert_image_align : '¶ÔÆ뷽ʽ',
+insert_image_align_default : 'ĬÈÏ',
+insert_image_align_baseline : '»ùÏß',
+insert_image_align_top : '¶¥¶Ë',
+insert_image_align_middle : '¾ÓÖжÔÆë',
+insert_image_align_bottom : 'µ×²¿',
+insert_image_align_texttop : 'ÎÄ×ÖÉÏ·½',
+insert_image_align_absmiddle : '¾ø¶Ô¾ÓÖÐ',
+insert_image_align_absbottom : '¾ø¶Ôµ×²¿',
+insert_image_align_left : '×ó¶ÔÆë',
+insert_image_align_right : 'ÓÒ¶ÔÆë',
+theme_font_size : '-- Font size --',
+theme_fontdefault : '-- Font family --',
+theme_block : '-- Format --',
+theme_paragraph : '¶ÎÂä',
+theme_div : '²ã',
+theme_address : 'µØÖ·',
+theme_pre : 'Ô¤¸ñʽ»¯µÄ',
+theme_h1 : '±êÌâ 1',
+theme_h2 : '±êÌâ 2',
+theme_h3 : '±êÌâ 3',
+theme_h4 : '±êÌâ 4',
+theme_h5 : '±êÌâ 5',
+theme_h6 : '±êÌâ 6',
+theme_colorpicker_title : 'Ñ¡ÔñÑÕÉ«',
+theme_colorpicker_apply : 'Ó¦ÓÃ',
+theme_forecolor_desc : 'Ñ¡ÔñÎÄ×ÖÑÕÉ«',
+theme_backcolor_desc : 'Ñ¡Ôñ±³¾°ÑÕÉ«',
+theme_charmap_title : 'Ñ¡ÔñÌØÊâ·ûºÅ',
+theme_charmap_desc : '²åÈëÌØÊâ·ûºÅ',
+theme_visualaid_desc : '¿ª¹Ø²»¿É¼ûÔªËØ',
+insert_anchor_title : '²åÈë/±à¼ êµã',
+insert_anchor_name : 'êµãÃû³Æ',
+theme_anchor_desc : '²åÈë/±à¼ êµã',
+theme_insert_link_titlefield : '±êÌâ',
+theme_clipboard_msg : '¼ôÇÐ/¸´ÖÆ/Õ³Ìù¹¦ÄÜÔÚMozillaºÍFirefoxÉÏÉв»¿ÉÓá£\nÄãÏëÁ˽â¹ØÓÚÕâ¸öÎÊÌâµÄ¸ü¶àÐÅÏ¢Âð£¿',
+theme_path : '·¾¶',
+cut_desc : '¼ôÇÐ',
+copy_desc : '¸´ÖÆ',
+paste_desc : 'Õ³Ìù',
+link_list : 'Á´½ÓÁбí',
+image_list : 'ͼÏñÁбí',
+browse : 'ä¯ÀÀ',
+image_props_desc : 'ͼÏñÊôÐÔ',
+newdocument_desc : 'н¨Îĵµ',
+class_name : 'Àà',
+newdocument : 'Are you sure you want clear all contents?'
+});
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>{$lang_insert_link_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="../../utils/form_utils.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/link.js"></script>
+</head>
+<body onload="init();" style="display: none">
+<form onsubmit="insertLink();return false;">
+ <table border="0" cellpadding="0" cellspacing="0" width="100">
+ <tr>
+ <td align="center" valign="middle"><table border="0" cellpadding="4" cellspacing="0">
+ <tr>
+ <td colspan="2" class="title" nowrap="nowrap">{$lang_insert_link_title}</td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_link_url}:</td>
+ <td> <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><input name="href" type="text" id="href" value="" style="width: 200px"></td>
+ <td><script language="javascript" type="text/javascript">renderBrowser('hrefbrowser','href','file','theme_advanced_link');</script></td>
+ </tr>
+ </table></td>
+ </tr>
+ <!-- Link list -->
+ <script language="javascript">
+ if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
+ var html = "";
+
+ html += '<tr><td>{$lang_link_list}:</td>';
+ html += '<td><select name="link_list" style="width: 200px" onchange="this.form.href.value=this.options[this.selectedIndex].value;">';
+ html += '<option value="">---</option>';
+
+ for (var i=0; i<tinyMCELinkList.length; i++)
+ html += '<option value="' + tinyMCELinkList[i][1] + '">' + tinyMCELinkList[i][0] + '</option>';
+
+ html += '</select></td></tr>';
+
+ document.write(html);
+ }
+ </script>
+ <!-- /Link list -->
+ <tr>
+ <td nowrap="nowrap">{$lang_insert_link_target}:</td>
+ <td><select name="target" style="width: 200px">
+ <option value="_self">{$lang_insert_link_target_same}</option>
+ <option value="_blank">{$lang_insert_link_target_blank}</option>
+ <script language="javascript">
+ var html = "";
+ var targets = tinyMCE.getParam('theme_advanced_link_targets', '').split(';');
+
+ for (var i=0; i<targets.length; i++) {
+ var key, value;
+
+ if (targets[i] == "")
+ continue;
+
+ key = targets[i].split('=')[0];
+ value = targets[i].split('=')[1];
+
+ html += '<option value="' + value + '">' + key + '</option>';
+ }
+
+ document.write(html);
+ </script>
+ </select></td>
+ </tr>
+ <tr>
+ <td nowrap="nowrap">{$lang_theme_insert_link_titlefield}:</td>
+ <td><input name="linktitle" type="text" id="linktitle" value="" style="width: 200px"></td>
+ </tr>
+ <tr id="styleSelectRow">
+ <td>{$lang_class_name}:</td>
+ <td>
+ <select id="styleSelect" name="styleSelect">
+ <option value="" selected>{$lang_theme_style_select}</option>
+ </select></td>
+ <td align="right"> </td>
+ <td align="right"> </td>
+ </tr>
+ <tr>
+ <td><input type="button" id="insert" name="insert" value="{$lang_insert}" onclick="insertLink();">
+ </td>
+ <td align="right"><input type="button" id="cancel" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();"></td>
+ </tr>
+ </table></td>
+ </tr>
+ </table>
+</form>
+</body>
+</html>
--- /dev/null
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>{$lang_theme_code_title}</title>
+ <script language="javascript" type="text/javascript" src="../../tiny_mce_popup.js"></script>
+ <script language="javascript" type="text/javascript" src="jscripts/source_editor.js"></script>
+</head>
+<body onload="onLoadInit();" onresize="resizeInputs();" style="display: none">
+ <form name="source" onsubmit="saveContent();" action="#">
+ <div style="float: left" class="title">{$lang_theme_code_title}</div>
+
+ <div style="float: right">
+ <script language="javascript" type="text/javascript">renderWordWrap();</script>
+ </div>
+
+ <textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft"></textarea>
+
+ <div class="mceActionPanel">
+ <div style="float: left">
+ <input type="button" name="insert" value="{$lang_update}" onclick="saveContent();" id="insert" />
+ </div>
+
+ <div style="float: right">
+ <input type="button" name="cancel" value="{$lang_cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
--- /dev/null
+body {
+ background-color: #FFFFFF;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+ scrollbar-3dlight-color: #F0F0EE;
+ scrollbar-arrow-color: #676662;
+ scrollbar-base-color: #F0F0EE;
+ scrollbar-darkshadow-color: #DDDDDD;
+ scrollbar-face-color: #E0E0DD;
+ scrollbar-highlight-color: #F0F0EE;
+ scrollbar-shadow-color: #F0F0EE;
+ scrollbar-track-color: #F5F5F5;
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+pre {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+.mceVisualAid {
+ border: 1px dashed #BBBBBB;
+}
--- /dev/null
+body {
+ background-color: #F0F0EE;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 11px;
+ scrollbar-3dlight-color: #F0F0EE;
+ scrollbar-arrow-color: #676662;
+ scrollbar-base-color: #F0F0EE;
+ scrollbar-darkshadow-color: #DDDDDD;
+ scrollbar-face-color: #E0E0DD;
+ scrollbar-highlight-color: #F0F0EE;
+ scrollbar-shadow-color: #F0F0EE;
+ scrollbar-track-color: #F5F5F5;
+}
+
+td {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 11px;
+}
+
+input {
+ background: #FFFFFF;
+ border: 1px solid #cccccc;
+}
+
+td, input, select, textarea {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 10px;
+}
+
+input, select, textarea {
+ border: 1px solid #808080;
+}
+
+.input_noborder {
+ border: 0px solid #808080;
+}
+
+.title {
+ font-size: 12px;
+ font-weight: bold;
+}
\ No newline at end of file
--- /dev/null
+.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected {
+ margin-top: 1px;
+ margin-left: 1px;
+}
+
+.mceButtonNormal {
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-color: #F0F0EE;
+ cursor: arrow;
+}
+
+.mceButtonOver {
+ border: 1px solid #0A246A;
+ cursor: arrow;
+ background-color: #B6BDD2;
+}
+
+.mceButtonDown {
+ cursor: arrow;
+ border: 1px solid #0A246A;
+ background-color: #8592B5;
+}
+
+.mceButtonSelected {
+ border: 1px solid;
+ border-color: #C0C0BB;
+ cursor: arrow;
+}
+
+.mceButtonDisabled {
+ filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
+ -moz-opacity:0.3;
+ opacity: 0.3;
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-color: #F0F0EE;
+ cursor: arrow;
+}
+
+.mceSeparator {
+ border-top: 1px solid buttonhighlight;
+ border-left: 1px solid buttonhighlight;
+ border-bottom: 1px solid buttonshadow;
+ border-right: 1px solid buttonshadow;
+ margin-right: 2px;
+ margin-left: 2px;
+}
+
+.mceSeparatorLine {
+ margin:2px;
+ margin-left: 4px;
+ background-color: #F0F0EE;
+ border-top: 1px solid buttonshadow;
+ border-left: 1px solid buttonshadow;
+ border-bottom: 1px solid buttonhighlight;
+ border-right: 1px solid buttonhighlight;
+ width: 0px;
+ height: 15px;
+}
+
+.mceSelectList {
+ font-family: "MS Sans Serif";
+ font-size: 7pt;
+ font-weight: normal;
+ margin-top: 2px;
+}
+
+.mceLabel, .mceLabelDisabled {
+ font-family: "MS Sans Serif";
+ font-size: 9pt;
+}
+
+.mceLabel {
+ color: #000000;
+}
+
+.mceLabelDisabled {
+ cursor: text;
+ color: #999999;
+}
+
+.mceEditor {
+ background: #F0F0EE;
+ border: 1px solid #cccccc;
+}
+
+.mceEditorArea {
+ font-family: "MS Sans Serif";
+ background: #FFFFFF;
+}
+
+.mceToolbar {
+ background: #F0F0EE;
+ border-top: 1px solid #cccccc;
+}
\ No newline at end of file
--- /dev/null
+function TinyMCE_simple_getEditorTemplate(){var template=new Array();template['html']='\
+<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}">\
+<tr><td align="center">\
+<span id="{$editor_id}">IFRAME</span>\
+</td></tr>\
+<tr><td class="mceToolbar" align="center" height="1">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Bold\');" onmousedown="return false;"><img id="{$editor_id}_bold" src="{$themeurl}/images/{$lang_bold_img}" title="{$lang_bold_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');"></a>\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Italic\');" onmousedown="return false;"><img id="{$editor_id}_italic" src="{$themeurl}/images/{$lang_italic_img}" title="{$lang_italic_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Underline\');" onmousedown="return false;"><img id="{$editor_id}_underline" src="{$themeurl}/images/{$lang_underline_img}" title="{$lang_underline_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Strikethrough\');" onmousedown="return false;"><img id="{$editor_id}_strikethrough" src="{$themeurl}/images/strikethrough.gif" title="{$lang_striketrough_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Undo\');" onmousedown="return false;"><img src="{$themeurl}/images/undo.gif" title="{$lang_undo_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Redo\');" onmousedown="return false;"><img src="{$themeurl}/images/redo.gif" title="{$lang_redo_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceCleanup\');" onmousedown="return false;"><img src="{$themeurl}/images/cleanup.gif" title="{$lang_cleanup_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'InsertUnorderedList\');" onmousedown="return false;"><img id="{$editor_id}_bullist" src="{$themeurl}/images/bullist.gif" title="{$lang_bullist_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'InsertOrderedList\');" onmousedown="return false;"><img id="{$editor_id}_numlist" src="{$themeurl}/images/numlist.gif" title="{$lang_numlist_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+</td></tr>\
+</table>';template['delta_width']=0;template['delta_height']=-20;return template;}function TinyMCE_simple_handleNodeChange(editor_id,node){tinyMCE.switchClassSticky(editor_id+'_bold','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_italic','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_underline','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_strikethrough','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_bullist','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_numlist','mceButtonNormal');do{switch(node.nodeName.toLowerCase()){case "b":case "strong":tinyMCE.switchClassSticky(editor_id+'_bold','mceButtonSelected');break;case "i":case "em":tinyMCE.switchClassSticky(editor_id+'_italic','mceButtonSelected');break;case "u":tinyMCE.switchClassSticky(editor_id+'_underline','mceButtonSelected');break;case "strike":tinyMCE.switchClassSticky(editor_id+'_strikethrough','mceButtonSelected');break;case "ul":tinyMCE.switchClassSticky(editor_id+'_bullist','mceButtonSelected');break;case "ol":tinyMCE.switchClassSticky(editor_id+'_numlist','mceButtonSelected');break;}}while((node=node.parentNode));}
\ No newline at end of file
--- /dev/null
+function TinyMCE_simple_getEditorTemplate() {
+ var template = new Array();
+
+ template['html'] = '\
+<table class="mceEditor" border="0" cellpadding="0" cellspacing="0" width="{$width}" height="{$height}">\
+<tr><td align="center">\
+<span id="{$editor_id}">IFRAME</span>\
+</td></tr>\
+<tr><td class="mceToolbar" align="center" height="1">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Bold\');" onmousedown="return false;"><img id="{$editor_id}_bold" src="{$themeurl}/images/{$lang_bold_img}" title="{$lang_bold_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');"></a>\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Italic\');" onmousedown="return false;"><img id="{$editor_id}_italic" src="{$themeurl}/images/{$lang_italic_img}" title="{$lang_italic_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Underline\');" onmousedown="return false;"><img id="{$editor_id}_underline" src="{$themeurl}/images/{$lang_underline_img}" title="{$lang_underline_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Strikethrough\');" onmousedown="return false;"><img id="{$editor_id}_strikethrough" src="{$themeurl}/images/strikethrough.gif" title="{$lang_striketrough_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Undo\');" onmousedown="return false;"><img src="{$themeurl}/images/undo.gif" title="{$lang_undo_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'Redo\');" onmousedown="return false;"><img src="{$themeurl}/images/redo.gif" title="{$lang_redo_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceCleanup\');" onmousedown="return false;"><img src="{$themeurl}/images/cleanup.gif" title="{$lang_cleanup_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<img src="{$themeurl}/images/spacer.gif" width="1" height="15" class="mceSeparatorLine">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'InsertUnorderedList\');" onmousedown="return false;"><img id="{$editor_id}_bullist" src="{$themeurl}/images/bullist.gif" title="{$lang_bullist_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'InsertOrderedList\');" onmousedown="return false;"><img id="{$editor_id}_numlist" src="{$themeurl}/images/numlist.gif" title="{$lang_numlist_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');">\
+</td></tr>\
+</table>';
+
+ template['delta_width'] = 0;
+ template['delta_height'] = -20;
+
+ return template;
+}
+
+function TinyMCE_simple_handleNodeChange(editor_id, node) {
+ // Reset old states
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonNormal');
+
+ // Handle elements
+ do {
+ switch (node.nodeName.toLowerCase()) {
+ case "b":
+ case "strong":
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
+ break;
+
+ case "i":
+ case "em":
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
+ break;
+
+ case "u":
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
+ break;
+
+ case "strike":
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
+ break;
+
+ case "ul":
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonSelected');
+ break;
+
+ case "ol":
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonSelected');
+ break;
+ }
+ } while ((node = node.parentNode));
+}
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+ function TinyMCE(){this.majorVersion="2";this.minorVersion="0RC2";this.releaseDate="2005-09-12";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("editor_selector","");this.defParam("editor_deselector","mceNoEditor");this.defParam("valid_elements","+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/b[class|style],-em/i[class|style],-strike[class|style],-u[class|style],+p[style|dir|class|align],-ol[class],-ul[class],-li[class],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border=0|alt|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],-td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align],address[class|align],-h1[style|dir|class|align],-h2[style|dir|class|align],-h3[style|dir|class|align],-h4[style|dir|class|align],-h5[style|dir|class|align],-h6[style|dir|class|align],hr[class]");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("verify_html",true);this.defParam("apply_source_formatting",false);this.defParam("directionality","ltr");this.defParam("cleanup_on_startup",false);this.defParam("inline_styles",false);this.defParam("convert_newlines_to_brs",false);this.defParam("auto_reset_designmode",true);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,237,iacute,243,oacute,250,uacute,193,Aacute,225,aacute,201,Eacute,205,Iacute,211,Oacute,218,Uacute,221,Yacute,253,yacute");this.defParam("entity_encoding","named");this.defParam("cleanup_callback","");this.defParam("add_unload_trigger",true);this.defParam("ask",false);this.defParam("nowrap",false);this.defParam("auto_resize",false);this.defParam("auto_focus",false);this.defParam("cleanup",true);this.defParam("remove_linebreaks",true);this.defParam("button_tile_map",false);this.defParam("submit_patch",true);this.defParam("browsers","msie,safari,gecko");this.defParam("dialog_type","window");this.defParam("convert_fonts_to_styles",true);if(this.isMSIE&&this.settings['browsers'].indexOf('msie')==-1)return;if(this.isGecko&&this.settings['browsers'].indexOf('gecko')==-1)return;if(this.isSafari&&this.settings['browsers'].indexOf('safari')==-1)return;var baseHREF=tinyMCE.settings['document_base_url'];if(baseHREF.indexOf('?')!=-1)baseHREF=baseHREF.substring(0,baseHREF.indexOf('?'));this.settings['base_href']=baseHREF.substring(0,baseHREF.lastIndexOf('/'))+"/";theme=this.settings['theme'];this.blockRegExp=new RegExp("^(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td)$","i");this.posKeyCodes=new Array(13,45,36,35,33,34,37,38,39,40);this.settings['theme_href']=tinyMCE.baseURL+"/themes/"+theme;if(!tinyMCE.isMSIE)this.settings['force_br_newlines']=false;if(tinyMCE.getParam("content_css",false)){var cssPath=tinyMCE.getParam("content_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings['content_css']=this.documentBasePath+"/"+cssPath;else this.settings['content_css']=cssPath;}else this.settings['content_css']='';if(tinyMCE.getParam("popups_css",false)){var cssPath=tinyMCE.getParam("popups_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings['popups_css']=this.documentBasePath+"/"+cssPath;else this.settings['popups_css']=cssPath;}else this.settings['popups_css']=tinyMCE.baseURL+"/themes/"+theme+"/css/editor_popup.css";if(tinyMCE.getParam("editor_css",false)){var cssPath=tinyMCE.getParam("editor_css","");if(cssPath.indexOf('://')==-1&&cssPath.charAt(0)!='/')this.settings['editor_css']=this.documentBasePath+"/"+cssPath;else this.settings['editor_css']=cssPath;}else this.settings['editor_css']=tinyMCE.baseURL+"/themes/"+theme+"/css/editor_ui.css";if(tinyMCE.settings['debug']){var msg="Debug: \n";msg+="baseURL: "+this.baseURL+"\n";msg+="documentBasePath: "+this.documentBasePath+"\n";msg+="content_css: "+this.settings['content_css']+"\n";msg+="popups_css: "+this.settings['popups_css']+"\n";msg+="editor_css: "+this.settings['editor_css']+"\n";alert(msg);}this._initCleanup();if(this.configs.length==0){if(this.isSafari&&this.getParam('safari_warning',true))alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version.");tinyMCE.addEvent(window,"load",TinyMCE.prototype.onLoad);if(tinyMCE.isMSIE){if(tinyMCE.settings['add_unload_trigger']){tinyMCE.addEvent(window,"unload",TinyMCE.prototype.unloadHandler);tinyMCE.addEvent(window.document,"beforeunload",TinyMCE.prototype.unloadHandler);}}else{if(tinyMCE.settings['add_unload_trigger'])tinyMCE.addEvent(window,"unload",function(){tinyMCE.triggerSave(true,true);});}}this.loadScript(tinyMCE.baseURL+'/themes/'+this.settings['theme']+'/editor_template'+tinyMCE.srcMode+'.js');this.loadScript(tinyMCE.baseURL+'/langs/'+this.settings['language']+'.js');this.loadCSS(this.settings['editor_css']);var themePlugins=tinyMCE.getParam('plugins','',true,',');if(this.settings['plugins']!=''){for(var i=0;i<themePlugins.length;i++)this.loadScript(tinyMCE.baseURL+'/plugins/'+themePlugins[i]+'/editor_plugin'+tinyMCE.srcMode+'.js');}settings['index']=this.configs.length;this.configs[this.configs.length]=settings;};TinyMCE.prototype.loadScript=function(url){for(var i=0;i<this.loadedFiles.length;i++){if(this.loadedFiles[i]==url)return;}document.write('<sc'+'ript language="javascript" type="text/javascript" src="'+url+'"></script>');this.loadedFiles[this.loadedFiles.length]=url;};TinyMCE.prototype.loadCSS=function(url){for(var i=0;i<this.loadedFiles.length;i++){if(this.loadedFiles[i]==url)return;}document.write('<link href="'+url+'" rel="stylesheet" type="text/css" />');this.loadedFiles[this.loadedFiles.length]=url;};TinyMCE.prototype.importCSS=function(doc,css_file){if(css_file=='')return;if(tinyMCE.isMSIE)var styleSheet=doc.createStyleSheet(css_file);else{var elm=doc.createElement("link");elm.rel="stylesheet";elm.href=css_file;if(headArr=doc.getElementsByTagName("head"))headArr[0].appendChild(elm);}};TinyMCE.prototype.confirmAdd=function(e,settings){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var elementId=elm.name?elm.name:elm.id;tinyMCE.settings=settings;if(!elm.getAttribute('mce_noask')&&confirm(tinyMCELang['lang_edit_confirm']))tinyMCE.addMCEControl(elm,elementId);elm.setAttribute('mce_noask','true');};TinyMCE.prototype.updateContent=function(form_element_name){var formElement=document.getElementById(form_element_name);for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();if(inst.formElement==formElement){var doc=inst.getDoc();tinyMCE._setHTML(doc,inst.formElement.value);if(!tinyMCE.isMSIE)doc.body.innerHTML=tinyMCE._cleanupHTML(inst,doc,this.settings,doc.body,inst.visualAid);}}};TinyMCE.prototype.addMCEControl=function(replace_element,form_element_name,target_document){var id="mce_editor_"+tinyMCE.idCounter++;var inst=new TinyMCEControl(tinyMCE.settings);inst.editorId=id;this.instances[id]=inst;inst.onAdd(replace_element,form_element_name,target_document);};TinyMCE.prototype.triggerSave=function(skip_cleanup,skip_callback){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();tinyMCE.settings['preformatted']=false;if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;if(typeof(skip_callback)=="undefined")skip_callback=false;tinyMCE._setHTML(inst.getDoc(),inst.getBody().innerHTML);if(inst.settings['cleanup']==false){tinyMCE.handleVisualAid(inst.getBody(),true,false,inst);tinyMCE._setEventsEnabled(inst.getBody(),false);}tinyMCE._customCleanup(inst,"submit_content_dom",inst.contentWindow.document.body);var htm=skip_cleanup?inst.getBody().innerHTML:tinyMCE._cleanupHTML(inst,inst.getDoc(),this.settings,inst.getBody(),this.visualAid,true);htm=tinyMCE._customCleanup(inst,"submit_content",htm);if(tinyMCE.settings["encoding"]=="xml"||tinyMCE.settings["encoding"]=="html")htm=tinyMCE.convertStringToXML(htm);if(!skip_callback&&tinyMCE.settings['save_callback']!="")var content=eval(tinyMCE.settings['save_callback']+"(inst.formTargetElementId,htm,inst.getBody());");if((typeof(content)!="undefined")&&content!=null)htm=content;htm=tinyMCE.regexpReplace(htm,"(","(","gi");htm=tinyMCE.regexpReplace(htm,")",")","gi");htm=tinyMCE.regexpReplace(htm,";",";","gi");htm=tinyMCE.regexpReplace(htm,""",""","gi");htm=tinyMCE.regexpReplace(htm,"^","^","gi");if(inst.formElement)inst.formElement.value=htm;}};TinyMCE.prototype._setEventsEnabled=function(node,state){var events=new Array('onfocus','onblur','onclick','ondblclick','onmousedown','onmouseup','onmouseover','onmousemove','onmouseout','onkeypress','onkeydown','onkeydown','onkeyup');var elms=node.getElementsByTagName("a");for(var i=0;i<elms.length;i++){var event="";for(var x=0;x<events.length;x++){if((event=tinyMCE.getAttrib(elms[i],events[x]))!=''){event=tinyMCE.cleanupEventStr(""+event);if(state)event="return true;"+event;else event=event.replace(/^return true;/gi,'');elms[i].removeAttribute(events[x]);elms[i].setAttribute(events[x],event);}}}};TinyMCE.prototype.resetForm=function(form_index){var formObj=document.forms[form_index];for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();for(var i=0;i<formObj.elements.length;i++){if(inst.formTargetElementId==formObj.elements[i].name){inst.getBody().innerHTML=formObj.elements[i].value;return;}}}};TinyMCE.prototype.execInstanceCommand=function(editor_id,command,user_interface,value,focus){var inst=tinyMCE.getInstanceById(editor_id);if(inst){if(typeof(focus)=="undefined")focus=true;if(focus)inst.contentWindow.focus();inst.autoResetDesignMode();this.selectedElement=inst.getFocusElement();this.selectedInstance=inst;tinyMCE.execCommand(command,user_interface,value);}};TinyMCE.prototype.execCommand=function(command,user_interface,value){user_interface=user_interface?user_interface:false;value=value?value:null;if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();switch(command){case 'mceHelp':var template=new Array();template['file']='about.htm';template['width']=480;template['height']=380;tinyMCE.openWindow(template,{tinymce_version:tinyMCE.majorVersion+"."+tinyMCE.minorVersion,tinymce_releasedate:tinyMCE.releaseDate,inline:"yes"});return;case 'mceFocus':var inst=tinyMCE.getInstanceById(value);if(inst)inst.contentWindow.focus();return;case "mceAddControl":case "mceAddEditor":tinyMCE.addMCEControl(tinyMCE._getElementById(value),value);return;case "mceAddFrameControl":tinyMCE.addMCEControl(tinyMCE._getElementById(value),value['element'],value['document']);return;case "mceRemoveControl":case "mceRemoveEditor":tinyMCE.removeMCEControl(value);return;case "mceResetDesignMode":if(!tinyMCE.isMSIE){for(var n in tinyMCE.instances){try{tinyMCE.instances[n].getDoc().designMode="on";}catch(e){}}}return;}if(this.selectedInstance)this.selectedInstance.execCommand(command,user_interface,value);else if(tinyMCE.settings['focus_alert'])alert(tinyMCELang['lang_focus_alert']);};TinyMCE.prototype.eventPatch=function(editor_id){if(typeof(tinyMCE)=="undefined")return true;for(var i=0;i<document.frames.length;i++){if(document.frames[i].event){var event=document.frames[i].event;event.target=event.srcElement;TinyMCE.prototype.handleEvent(event);return;}}};TinyMCE.prototype.unloadHandler=function(){tinyMCE.triggerSave(true,true);};TinyMCE.prototype.addEventHandlers=function(editor_id){if(tinyMCE.isMSIE){var doc=document.frames[editor_id].document;tinyMCE.addEvent(doc,"keypress",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(doc,"keyup",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(doc,"keydown",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(doc,"mouseup",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(doc,"click",TinyMCE.prototype.eventPatch);}else{var inst=tinyMCE.instances[editor_id];var doc=inst.getDoc();inst.switchSettings();tinyMCE.addEvent(doc,"keypress",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"keydown",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"keyup",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"click",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"mouseup",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"mousedown",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"focus",tinyMCE.handleEvent);tinyMCE.addEvent(doc,"blur",tinyMCE.handleEvent);eval('try { doc.designMode = "On"; } catch(e) {}');}};TinyMCE.prototype._createIFrame=function(replace_element){var iframe=document.createElement("iframe");var id=replace_element.getAttribute("id");iframe.setAttribute("id",id);iframe.setAttribute("border","0");iframe.setAttribute("frameBorder","0");iframe.setAttribute("marginWidth","0");iframe.setAttribute("marginHeight","0");iframe.setAttribute("leftMargin","0");iframe.setAttribute("topMargin","0");iframe.setAttribute("width",tinyMCE.settings['area_width']);iframe.setAttribute("height",tinyMCE.settings['area_height']);iframe.setAttribute("allowtransparency","true");if(tinyMCE.settings["auto_resize"])iframe.setAttribute("scrolling","no");if(tinyMCE.isMSIE)iframe.setAttribute("src",this.settings['default_document']);iframe.style.width=tinyMCE.settings['area_width'];iframe.style.height=tinyMCE.settings['area_height'];if(tinyMCE.isMSIE)replace_element.outerHTML=iframe.outerHTML;else replace_element.parentNode.replaceChild(iframe,replace_element);if(tinyMCE.isMSIE)return window.frames[id];else return iframe;};TinyMCE.prototype.setupContent=function(editor_id){var inst=tinyMCE.instances[editor_id];var doc=inst.getDoc();var head=doc.getElementsByTagName('head').item(0);var content=inst.startContent;inst.switchSettings();if(!tinyMCE.isMSIE&&doc.title!="blank_page"){doc.location.href=tinyMCE.baseURL+"/blank.htm";window.setTimeout("tinyMCE.setupContent('"+editor_id+"');",1000);return;}if(!head){window.setTimeout("tinyMCE.setupContent('"+editor_id+"');",10);return;}tinyMCE.importCSS(inst.getDoc(),tinyMCE.baseURL+"/themes/"+inst.settings['theme']+"/css/editor_content.css");tinyMCE.importCSS(inst.getDoc(),inst.settings['content_css']);tinyMCE.executeCallback('init_instance_callback','_initInstance',0,inst);if(tinyMCE.settings['nowrap'])doc.body.style.whiteSpace="nowrap";doc.body.dir=this.settings['directionality'];doc.editorId=editor_id;if(!tinyMCE.isMSIE)doc.documentElement.editorId=editor_id;base=doc.createElement("base");base.setAttribute('href',tinyMCE.settings['base_href']);head.appendChild(base);if(tinyMCE.settings['convert_newlines_to_brs']){content=tinyMCE.regexpReplace(content,"\r\n","<br />","gi");content=tinyMCE.regexpReplace(content,"\r","<br />","gi");content=tinyMCE.regexpReplace(content,"\n","<br />","gi");}content=tinyMCE._customCleanup(inst,"insert_to_editor",content);if(tinyMCE.isMSIE){window.setInterval('try{tinyMCE.getCSSClasses(document.frames["'+editor_id+'"].document, "'+editor_id+'");}catch(e){}',500);if(tinyMCE.settings["force_br_newlines"])document.frames[editor_id].document.styleSheets[0].addRule("p","margin: 0px;");var body=document.frames[editor_id].document.body;tinyMCE.addEvent(body,"beforepaste",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(body,"beforecut",TinyMCE.prototype.eventPatch);body.editorId=editor_id;}if(!tinyMCE.isMSIE){var contentElement=inst.getDoc().createElement("body");var doc=inst.getDoc();contentElement.innerHTML=content;if(tinyMCE.settings['force_p_newlines'])content=content.replace(new RegExp('<>','g'),"");if(tinyMCE.settings['cleanup_on_startup'])inst.getBody().innerHTML=tinyMCE._cleanupHTML(inst,doc,this.settings,contentElement);else{content=tinyMCE.regexpReplace(content,"<strong","<b","gi");content=tinyMCE.regexpReplace(content,"<em(/?)>","<i$1>","gi");content=tinyMCE.regexpReplace(content,"<em ","<i ","gi");content=tinyMCE.regexpReplace(content,"</strong>","</b>","gi");content=tinyMCE.regexpReplace(content,"</em>","</i>","gi");inst.getBody().innerHTML=content;}inst.convertAllRelativeURLs();}else{if(tinyMCE.settings['cleanup_on_startup']){tinyMCE._setHTML(inst.getDoc(),content);eval('try {inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst, inst.contentDocument, this.settings, inst.getBody());} catch(e) {}');}else tinyMCE._setHTML(inst.getDoc(),content);}var parentElm=document.getElementById(inst.editorId+'_parent');if(parentElm.lastChild.nodeName.toLowerCase()=="input")inst.formElement=parentElm.lastChild;else inst.formElement=parentElm.nextSibling;tinyMCE.handleVisualAid(inst.getBody(),true,tinyMCE.settings['visual'],inst);tinyMCE.executeCallback('setupcontent_callback','_setupContent',0,editor_id,inst.getBody(),inst.getDoc());if(!tinyMCE.isMSIE)TinyMCE.prototype.addEventHandlers(editor_id);if(tinyMCE.isMSIE)tinyMCE.addEvent(inst.getBody(),"blur",TinyMCE.prototype.eventPatch);tinyMCE.selectedInstance=inst;tinyMCE.selectedElement=inst.contentWindow.document.body;tinyMCE.triggerNodeChange(false,true);tinyMCE._customCleanup(inst,"insert_to_editor_dom",inst.getBody());tinyMCE._customCleanup(inst,"setup_content_dom",inst.getBody());tinyMCE._setEventsEnabled(inst.getBody(),true);inst.startContent=tinyMCE.trim(inst.getBody().innerHTML);inst.undoLevels[inst.undoLevels.length]=inst.startContent;};TinyMCE.prototype.cancelEvent=function(e){if(tinyMCE.isMSIE){e.returnValue=false;e.cancelBubble=true;}else e.preventDefault();};TinyMCE.prototype.removeTinyMCEFormElements=function(form_obj){for(var i=0;i<form_obj.elements.length;i++){var elementId=form_obj.elements[i].name?form_obj.elements[i].name:form_obj.elements[i].id;if(elementId.indexOf('mce_editor_')==0)form_obj.elements[i].disabled=true;}};TinyMCE.prototype.accessibleEventHandler=function(e){var win=this._win;e=tinyMCE.isMSIE?win.event:e;var elm=tinyMCE.isMSIE?e.srcElement:e.target;if(elm.nodeName=="SELECT"&&!elm.oldonchange){elm.oldonchange=elm.onchange;elm.onchange=null;}if(e.keyCode==13){elm.onchange=elm.oldonchange;elm.onchange();elm.oldonchange=null;tinyMCE.cancelEvent(e);}};TinyMCE.prototype.addSelectAccessibility=function(e,select,win){if(!select._isAccessible){select.onkeydown=tinyMCE.accessibleEventHandler;select._isAccessible=true;select._win=win;}};TinyMCE.prototype.handleEvent=function(e){if(typeof(tinyMCE)=="undefined")return true;switch(e.type){case "blur":if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.execCommand('mceEndTyping');return;case "submit":tinyMCE.removeTinyMCEFormElements(tinyMCE.isMSIE?window.event.srcElement:e.target);tinyMCE.triggerSave();tinyMCE.isNotDirty=true;return;case "reset":var formObj=tinyMCE.isMSIE?window.event.srcElement:e.target;for(var i=0;i<document.forms.length;i++){if(document.forms[i]==formObj)window.setTimeout('tinyMCE.resetForm('+i+');',10);}return;case "keypress":if(e.target.editorId){tinyMCE.selectedInstance=tinyMCE.instances[e.target.editorId];}else{if(e.target.ownerDocument.editorId)tinyMCE.selectedInstance=tinyMCE.instances[e.target.ownerDocument.editorId];}if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();if(tinyMCE.isGecko&&tinyMCE.settings['force_p_newlines']&&e.keyCode==13&&!e.shiftKey){if(tinyMCE.selectedInstance._insertPara(e)){tinyMCE.execCommand("mceAddUndoLevel");e.preventDefault();return false;}}if(tinyMCE.isGecko&&tinyMCE.settings['force_p_newlines']&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(tinyMCE.selectedInstance._handleBackSpace(e.type)){tinyMCE.execCommand("mceAddUndoLevel");e.preventDefault();return false;}}if(tinyMCE.isGecko&&e.ctrlKey&&tinyMCE.settings['custom_undo_redo']){if(tinyMCE.settings['custom_undo_redo_keyboard_shortcuts']){if(e.charCode==122){tinyMCE.selectedInstance.execCommand("Undo");e.preventDefault();return false;}if(e.charCode==121){tinyMCE.selectedInstance.execCommand("Redo");e.preventDefault();return false;}}if(e.charCode==98){tinyMCE.selectedInstance.execCommand("Bold");e.preventDefault();return false;}if(e.charCode==105){tinyMCE.selectedInstance.execCommand("Italic");e.preventDefault();return false;}if(e.charCode==117){tinyMCE.selectedInstance.execCommand("Underline");e.preventDefault();return false;}}if(tinyMCE.isMSIE&&tinyMCE.settings['force_br_newlines']&&e.keyCode==13){if(e.target.editorId)tinyMCE.selectedInstance=tinyMCE.instances[e.target.editorId];if(tinyMCE.selectedInstance){var sel=tinyMCE.selectedInstance.getDoc().selection;var rng=sel.createRange();if(tinyMCE.getParentElement(rng.parentElement(),"li")!=null)return false;e.returnValue=false;e.cancelBubble=true;rng.pasteHTML("<br />");rng.collapse(false);rng.select();tinyMCE.execCommand("mceAddUndoLevel");tinyMCE.triggerNodeChange(false);return false;}}if(e.keyCode==8||e.keyCode==46){tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(e.target,"a");tinyMCE.imgElement=tinyMCE.getParentElement(e.target,"img");tinyMCE.triggerNodeChange(false);}return false;break;case "keyup":case "keydown":if(e.target.editorId)tinyMCE.selectedInstance=tinyMCE.instances[e.target.editorId];else return;if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();var inst=tinyMCE.selectedInstance;if(tinyMCE.isGecko&&tinyMCE.settings['force_p_newlines']&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(tinyMCE.selectedInstance._handleBackSpace(e.type)){tinyMCE.execCommand("mceAddUndoLevel");e.preventDefault();return false;}}tinyMCE.selectedElement=null;tinyMCE.selectedNode=null;var elm=tinyMCE.selectedInstance.getFocusElement();tinyMCE.linkElement=tinyMCE.getParentElement(elm,"a");tinyMCE.imgElement=tinyMCE.getParentElement(elm,"img");tinyMCE.selectedElement=elm;if(tinyMCE.isGecko&&e.type=="keyup"&&e.keyCode==9)tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(),true,tinyMCE.settings['visual'],tinyMCE.selectedInstance);if(tinyMCE.isGecko&&tinyMCE.settings['document_base_url']!=""+document.location.href&&e.type=="keyup"&&e.ctrlKey&&e.keyCode==86)tinyMCE.selectedInstance.fixBrokenURLs();if(tinyMCE.isMSIE&&e.type=="keydown"&&e.keyCode==13)tinyMCE.enterKeyElement=tinyMCE.selectedInstance.getFocusElement();if(tinyMCE.isMSIE&&e.type=="keyup"&&e.keyCode==13){var elm=tinyMCE.enterKeyElement;if(elm){var re=new RegExp('^HR|IMG|BR$','g');var dre=new RegExp('^H[1-6]$','g');if(!elm.hasChildNodes()&&!re.test(elm.nodeName)){if(dre.test(elm.nodeName))elm.innerHTML=" ";else elm.innerHTML=" ";}}}var keys=tinyMCE.posKeyCodes;var posKey=false;for(var i=0;i<keys.length;i++){if(keys[i]==e.keyCode){posKey=true;break;}}if(tinyMCE.isMSIE&&tinyMCE.settings['custom_undo_redo']){var keys=new Array(8,46);for(var i=0;i<keys.length;i++){if(keys[i]==e.keyCode){if(e.type=="keyup")tinyMCE.triggerNodeChange(false);}}if(tinyMCE.settings['custom_undo_redo_keyboard_shortcuts']){if(e.keyCode==90&&e.ctrlKey&&e.type=="keydown"){tinyMCE.selectedInstance.execCommand("Undo");tinyMCE.triggerNodeChange(false);}if(e.keyCode==89&&e.ctrlKey&&e.type=="keydown"){tinyMCE.selectedInstance.execCommand("Redo");tinyMCE.triggerNodeChange(false);}if((e.keyCode==90||e.keyCode==89)&&e.ctrlKey){e.returnValue=false;e.cancelBubble=true;return false;}}}if(!posKey&&e.type=="keyup")tinyMCE.execCommand("mceStartTyping");if(e.type=="keyup"&&(posKey||e.ctrlKey))tinyMCE.execCommand("mceEndTyping");if(posKey&&e.type=="keyup")tinyMCE.triggerNodeChange(false);break;case "mousedown":case "mouseup":case "click":case "focus":if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();var targetBody=tinyMCE.getParentElement(e.target,"body");for(var instanceName in tinyMCE.instances){var inst=tinyMCE.instances[instanceName];inst.autoResetDesignMode();if(inst.getBody()==targetBody){tinyMCE.selectedInstance=inst;tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(tinyMCE.selectedElement,"a");tinyMCE.imgElement=tinyMCE.getParentElement(tinyMCE.selectedElement,"img");break;}}if(tinyMCE.isSafari){tinyMCE.selectedInstance.lastSafariSelection=tinyMCE.selectedInstance.getBookmark();tinyMCE.selectedInstance.lastSafariSelectedElement=tinyMCE.selectedElement;var lnk=tinyMCE.getParentElement(tinyMCE.selectedElement,"a");if(lnk&&e.type=="mousedown"){lnk.setAttribute("mce_real_href",lnk.getAttribute("href"));lnk.setAttribute("href","javascript:void(0);");}if(lnk&&e.type=="click"){window.setTimeout(function(){lnk.setAttribute("href",lnk.getAttribute("mce_real_href"));lnk.removeAttribute("mce_real_href");},10);}}if(e.type!="focus")tinyMCE.selectedNode=null;tinyMCE.triggerNodeChange(false);tinyMCE.execCommand("mceEndTyping");if(e.type=="mouseup")tinyMCE.execCommand("mceAddUndoLevel");if(!tinyMCE.selectedInstance&&e.target.editorId)tinyMCE.selectedInstance=tinyMCE.instances[e.target.editorId];if(tinyMCE.isGecko&&tinyMCE.settings['document_base_url']!=""+document.location.href)window.setTimeout('tinyMCE.getInstanceById("'+inst.editorId+'").fixBrokenURLs();',10);return false;break;}};TinyMCE.prototype.switchClass=function(element,class_name,lock_state){var lockChanged=false;if(typeof(lock_state)!="undefined"&&element!=null){element.classLock=lock_state;lockChanged=true;}if(element!=null&&(lockChanged||!element.classLock)){element.oldClassName=element.className;element.className=class_name;}};TinyMCE.prototype.restoreAndSwitchClass=function(element,class_name){if(element!=null&&!element.classLock){this.restoreClass(element);this.switchClass(element,class_name);}};TinyMCE.prototype.switchClassSticky=function(element_name,class_name,lock_state){var element,lockChanged=false;if(!this.stickyClassesLookup[element_name])this.stickyClassesLookup[element_name]=document.getElementById(element_name);element=this.stickyClassesLookup[element_name];if(typeof(lock_state)!="undefined"&&element!=null){element.classLock=lock_state;lockChanged=true;}if(element!=null&&(lockChanged||!element.classLock)){element.className=class_name;element.oldClassName=class_name;}};TinyMCE.prototype.restoreClass=function(element){if(element!=null&&element.oldClassName&&!element.classLock){element.className=element.oldClassName;element.oldClassName=null;}};TinyMCE.prototype.setClassLock=function(element,lock_state){if(element!=null)element.classLock=lock_state;};TinyMCE.prototype.addEvent=function(obj,name,handler){if(tinyMCE.isMSIE){obj.attachEvent("on"+name,handler);}else obj.addEventListener(name,handler,false);};TinyMCE.prototype.submitPatch=function(){tinyMCE.removeTinyMCEFormElements(this);tinyMCE.triggerSave();this.oldSubmit();tinyMCE.isNotDirty=true;};TinyMCE.prototype.onLoad=function(){for(var c=0;c<tinyMCE.configs.length;c++){tinyMCE.settings=tinyMCE.configs[c];var selector=tinyMCE.getParam("editor_selector");var deselector=tinyMCE.getParam("editor_deselector");var elementRefAr=new Array();if(document.forms&&tinyMCE.settings['add_form_submit_trigger']&&!tinyMCE.submitTriggers){for(var i=0;i<document.forms.length;i++){var form=document.forms[i];tinyMCE.addEvent(form,"submit",TinyMCE.prototype.handleEvent);tinyMCE.addEvent(form,"reset",TinyMCE.prototype.handleEvent);tinyMCE.submitTriggers=true;if(tinyMCE.settings['submit_patch']){try{form.oldSubmit=form.submit;form.submit=TinyMCE.prototype.submitPatch;}catch(e){}}}}var mode=tinyMCE.settings['mode'];switch(mode){case "exact":var elements=tinyMCE.getParam('elements','',true,',');for(var i=0;i<elements.length;i++){var element=tinyMCE._getElementById(elements[i]);var trigger=element?element.getAttribute(tinyMCE.settings['textarea_trigger']):"";if(tinyMCE.getAttrib(element,"class").indexOf(deselector)!=-1)continue;if(trigger=="false")continue;if(tinyMCE.settings['ask']&&element){elementRefAr[elementRefAr.length]=element;continue;}if(element)tinyMCE.addMCEControl(element,elements[i]);else if(tinyMCE.settings['debug'])alert("Error: Could not find element by id or name: "+elements[i]);}break;case "specific_textareas":case "textareas":var nodeList=document.getElementsByTagName("textarea");for(var i=0;i<nodeList.length;i++){var elm=nodeList.item(i);var trigger=elm.getAttribute(tinyMCE.settings['textarea_trigger']);if(selector!=''&&tinyMCE.getAttrib(elm,"class").indexOf(selector)==-1)continue;if(tinyMCE.getAttrib(elm,"class").indexOf(deselector)!=-1)continue;if((mode=="specific_textareas"&&trigger=="true")||(mode=="textareas"&&trigger!="false"))elementRefAr[elementRefAr.length]=elm;}break;}for(var i=0;i<elementRefAr.length;i++){var element=elementRefAr[i];var elementId=element.name?element.name:element.id;if(tinyMCE.settings['ask']){if(tinyMCE.isGecko){var settings=tinyMCE.settings;tinyMCE.addEvent(element,"focus",function(e){window.setTimeout(function(){TinyMCE.prototype.confirmAdd(e,settings);},10);});}else{var settings=tinyMCE.settings;tinyMCE.addEvent(element,"focus",function(){TinyMCE.prototype.confirmAdd(null,settings);});}}else tinyMCE.addMCEControl(element,elementId);}if(tinyMCE.settings['auto_focus']){window.setTimeout(function(){var inst=tinyMCE.getInstanceById(tinyMCE.settings['auto_focus']);inst.selectNode(inst.getBody(),true,true);inst.contentWindow.focus();},10);}tinyMCE.executeCallback('oninit','_oninit',0);}};TinyMCE.prototype.removeMCEControl=function(editor_id){var inst=tinyMCE.getInstanceById(editor_id);if(inst){inst.switchSettings();editor_id=inst.editorId;var html=tinyMCE.getContent(editor_id);var tmpInstances=new Array();for(var instanceName in tinyMCE.instances){var instance=tinyMCE.instances[instanceName];if(instanceName!=editor_id)tmpInstances[instanceName]=instance;}tinyMCE.instances=tmpInstances;tinyMCE.selectedElement=null;tinyMCE.selectedInstance=null;var replaceElement=document.getElementById(editor_id+"_parent");var oldTargetElement=inst.oldTargetElement;var targetName=oldTargetElement.nodeName.toLowerCase();if(targetName=="textarea"||targetName=="input"){replaceElement.parentNode.removeChild(replaceElement);oldTargetElement.style.display="inline";oldTargetElement.value=html;}else{oldTargetElement.innerHTML=html;replaceElement.parentNode.insertBefore(oldTargetElement,replaceElement);replaceElement.parentNode.removeChild(replaceElement);}}};TinyMCE.prototype._cleanupElementName=function(element_name,element){var name="";element_name=element_name.toLowerCase();if(element_name=="body")return null;if(tinyMCE.cleanup_verify_html){for(var i=0;i<tinyMCE.cleanup_invalidElements.length;i++){if(tinyMCE.cleanup_invalidElements[i]==element_name)return null;}var validElement=false;var elementAttribs=null;for(var i=0;i<tinyMCE.cleanup_validElements.length&&!elementAttribs;i++){for(var x=0,n=tinyMCE.cleanup_validElements[i][0].length;x<n;x++){var elmMatch=tinyMCE.cleanup_validElements[i][0][x];if(elmMatch.charAt(0)=='+'||elmMatch.charAt(0)=='-')elmMatch=elmMatch.substring(1);if(elmMatch.match(new RegExp('\\*|\\?|\\+','g'))!=null){elmMatch=elmMatch.replace(new RegExp('\\?','g'),'(\\S?)');elmMatch=elmMatch.replace(new RegExp('\\+','g'),'(\\S+)');elmMatch=elmMatch.replace(new RegExp('\\*','g'),'(\\S*)');elmMatch="^"+elmMatch+"$";if(element_name.match(new RegExp(elmMatch,'g'))){elementAttribs=tinyMCE.cleanup_validElements[i];validElement=true;break;}}if(element_name==elmMatch){elementAttribs=tinyMCE.cleanup_validElements[i];validElement=true;element_name=elementAttribs[0][0];break;}}}if(!validElement)return null;}if(element_name.charAt(0)=='+'||element_name.charAt(0)=='-')name=element_name.substring(1);if(!tinyMCE.isMSIE){if(name=="strong"&&!tinyMCE.cleanup_on_save)element_name="b";else if(name=="em"&&!tinyMCE.cleanup_on_save)element_name="i";}var elmData=new Object();elmData.element_name=element_name;elmData.valid_attribs=elementAttribs;return elmData;};TinyMCE.prototype._moveStyle=function(elm,style,attrib){if(tinyMCE.cleanup_inline_styles){var val=tinyMCE.getAttrib(elm,attrib);if(val!=''){val=''+val;switch(attrib){case "background":val="url('"+val+"');";break;case "bordercolor":if(elm.style.borderStyle==''||elm.style.borderStyle=='none')elm.style.borderStyle='solid';break;case "border":case "width":case "height":if(attrib=="border"&&elm.style.borderWidth>0)return;if(val.indexOf('%')==-1)val+='px';break;case "vspace":case "hspace":elm.style.marginTop=val+"px";elm.style.marginBottom=val+"px";elm.removeAttribute(attrib);return;case "align":if(elm.nodeName=="IMG"){if(tinyMCE.isMSIE)elm.style.styleFloat=val;else elm.style.cssFloat=val;}else elm.style.textAlign=val;elm.removeAttribute(attrib);return;}if(val!=''){eval('elm.style.'+style+' = val;');elm.removeAttribute(attrib);}}}else{if(style=='')return;var val=eval('elm.style.'+style)==''?tinyMCE.getAttrib(elm,attrib):eval('elm.style.'+style);val=val==null?'':''+val;switch(attrib){case "background":if(val.indexOf('url')==-1&&val!='')val="url('"+val+"');";if(val!=''){elm.style.backgroundImage=val;elm.removeAttribute(attrib);}return;case "border":case "width":case "height":val=val.replace('px','');break;case "align":if(tinyMCE.getAttrib(elm,'align')==''){if(elm.nodeName=="IMG"){if(tinyMCE.isMSIE&&elm.style.styleFloat!=''){val=elm.style.styleFloat;style='styleFloat';}else if(tinyMCE.isGecko&&elm.style.cssFloat!=''){val=elm.style.cssFloat;style='cssFloat';}}}break;}if(val!=''){elm.removeAttribute(attrib);elm.setAttribute(attrib,val);eval('elm.style.'+style+' = "";');}}};TinyMCE.prototype._cleanupAttribute=function(valid_attributes,element_name,attribute_node,element_node){var attribName=attribute_node.nodeName.toLowerCase();var attribValue=attribute_node.nodeValue;var attribMustBeValue=null;var verified=false;if(attribName.indexOf('moz_')!=-1)return null;if(!tinyMCE.isMSIE&&(attribName=="mce_real_href"||attribName=="mce_real_src")){if(!tinyMCE.cleanup_on_save){var attrib=new Object();attrib.name=attribName;attrib.value=attribValue;return attrib;}else return null;}if(attribName=="mce_onclick")verified=true;if(tinyMCE.cleanup_verify_html&&!verified){for(var i=1;i<valid_attributes.length;i++){var attribMatch=valid_attributes[i][0];var re=null;if(attribMatch.match(new RegExp('\\*|\\?|\\+','g'))!=null){attribMatch=attribMatch.replace(new RegExp('\\?','g'),'(\\S?)');attribMatch=attribMatch.replace(new RegExp('\\+','g'),'(\\S+)');attribMatch=attribMatch.replace(new RegExp('\\*','g'),'(\\S*)');attribMatch="^"+attribMatch+"$";re=new RegExp(attribMatch,'g');}if((re&&attribName.match(re)!=null)||attribName==attribMatch){verified=true;attribMustBeValue=valid_attributes[i][3];break;}}if(!verified)return false;}else verified=true;switch(attribName){case "size":if(tinyMCE.isMSIE5&&element_name=="font")attribValue=element_node.size;break;case "width":case "height":case "border":if(tinyMCE.isMSIE5)attribValue=eval("element_node."+attribName);break;case "color":if(tinyMCE.isMSIE5&&element_name=="font")attribValue=element_node.color;break;case "class":if(element_name=="table"||element_name=="td"){if(tinyMCE.cleanup_visual_table_class!="")attribValue=tinyMCE.getVisualAidClass(attribValue,!tinyMCE.cleanup_on_save);}if(!tinyMCE._verifyClass(element_node)||attribValue=="")return null;break;case "onfocus":case "onblur":case "onclick":case "ondblclick":case "onmousedown":case "onmouseup":case "onmouseover":case "onmousemove":case "onmouseout":case "onkeypress":case "onkeydown":case "onkeydown":case "onkeyup":attribValue=tinyMCE.cleanupEventStr(""+attribValue);if(attribValue.indexOf('return false;')==0)attribValue=attribValue.substring(14);break;case "style":attribValue=tinyMCE.serializeStyle(tinyMCE.parseStyle(element_node.style.cssText));break;case "href":case "src":if(!tinyMCE.isMSIE&&attribName=="href"&&element_node.getAttribute("mce_real_href"))attribValue=element_node.getAttribute("mce_real_href");if(!tinyMCE.isMSIE&&attribName=="src"&&element_node.getAttribute("mce_real_src"))attribValue=element_node.getAttribute("mce_real_src");if(tinyMCE.isGecko&&!tinyMCE.settings['relative_urls'])attribValue=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],attribValue);attribValue=eval(tinyMCE.cleanup_urlconverter_callback+"(attribValue, element_node, tinyMCE.cleanup_on_save);");break;case "colspan":case "rowspan":if(attribValue=="1")return null;break;case "_moz-userdefined":case "editorid":case "mce_real_href":case "mce_real_src":return null;}if(attribMustBeValue!=null){var isCorrect=false;for(var i=0;i<attribMustBeValue.length;i++){if(attribValue==attribMustBeValue[i]){isCorrect=true;break;}}if(!isCorrect)return null;}var attrib=new Object();attrib.name=attribName;attrib.value=attribValue;return attrib;};TinyMCE.prototype.parseStyle=function(str){var ar=new Array();var st=str.split(';');for(var i=0;i<st.length;i++){if(st[i]=='')continue;var re=new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');var pa=st[i].replace(re,'$1||$2').split('||');if(pa.length==2)ar[pa[0].toLowerCase()]=pa[1];}return ar;};TinyMCE.prototype.compressStyle=function(ar,pr,sf,res){var box=new Array();box[0]=ar[pr+'-top'+sf];box[1]=ar[pr+'-left'+sf];box[2]=ar[pr+'-right'+sf];box[3]=ar[pr+'-bottom'+sf];for(var i=0;i<box.length;i++){if(box[i]==null)return;for(var a=0;a<box.length;a++){if(box[a]!=box[i])return;}}ar[res]=box[0];ar[pr+'-top'+sf]=null;ar[pr+'-left'+sf]=null;ar[pr+'-right'+sf]=null;ar[pr+'-bottom'+sf]=null;};TinyMCE.prototype.serializeStyle=function(ar){var str="";tinyMCE.compressStyle(ar,"border","","border");tinyMCE.compressStyle(ar,"border","-width","border-width");tinyMCE.compressStyle(ar,"border","-color","border-color");for(var key in ar){var val=ar[key];if(val!=null&&val!=''){val=''+val;val=val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)",'gi'),"url('$1')");if(val!="url('')")str+=key.toLowerCase()+": "+val+"; ";}}if(new RegExp('; $').test(str))str=str.substring(0,str.length-2);return str;};TinyMCE.prototype._verifyClass=function(node){if(tinyMCE.isGecko){var className=node.getAttribute('class');if(!className)return false;}if(tinyMCE.isMSIE)var className=node.getAttribute('className');if(tinyMCE.cleanup_verify_css_classes&&tinyMCE.cleanup_on_save){var csses=tinyMCE.getCSSClasses();nonDefinedCSS=true;for(var c=0;c<csses.length;c++){if(csses[c]==className){nonDefinedCSS=false;break;}}if(nonDefinedCSS&&className.indexOf('mce_')!=0){node.removeAttribute('className');node.removeAttribute('class');return false;}}return true;};TinyMCE.prototype.cleanupNode=function(node){var output="";switch(node.nodeType){case 1:var elementData=tinyMCE._cleanupElementName(node.nodeName,node);var elementName=elementData?elementData.element_name:null;var elementValidAttribs=elementData?elementData.valid_attribs:null;var elementAttribs="";var openTag=false,nonEmptyTag=false;if(elementName!=null&&elementName.charAt(0)=='+'){elementName=elementName.substring(1);openTag=true;}if(elementName!=null&&elementName.charAt(0)=='-'){elementName=elementName.substring(1);nonEmptyTag=true;}if(tinyMCE.isMSIE&&tinyMCE.settings['fix_content_duplication']){var lookup=tinyMCE.cleanup_elementLookupTable;for(var i=0;i<lookup.length;i++){if(lookup[i]==node)return output;}lookup[lookup.length]=node;}if(!elementName){if(node.hasChildNodes()){for(var i=0;i<node.childNodes.length;i++)output+=this.cleanupNode(node.childNodes[i]);}return output;}if(tinyMCE.cleanup_on_save){if(node.nodeName=="A"&&node.className=="mceItemAnchor")return '<a name="'+this.convertStringToXML(node.getAttribute("name"))+'"></a>';}if(tinyMCE.cleanup_inline_styles){var re=new RegExp("^(TABLE|TD|TR|IMG|HR)$");if(re.test(node.nodeName)){tinyMCE._moveStyle(node,'width','width');tinyMCE._moveStyle(node,'height','height');tinyMCE._moveStyle(node,'borderWidth','border');tinyMCE._moveStyle(node,'','vspace');tinyMCE._moveStyle(node,'','hspace');tinyMCE._moveStyle(node,'textAlign','align');tinyMCE._moveStyle(node,'backgroundColor','bgColor');tinyMCE._moveStyle(node,'borderColor','borderColor');tinyMCE._moveStyle(node,'backgroundImage','background');if(tinyMCE.isMSIE5)node.outerHTML=node.outerHTML;}else if(tinyMCE.isBlockElement(node))tinyMCE._moveStyle(node,'textAlign','align');if(node.nodeName=="FONT")tinyMCE._moveStyle(node,'color','color');}if(elementValidAttribs){for(var a=1;a<elementValidAttribs.length;a++){var attribName,attribDefaultValue,attribForceValue,attribValue;attribName=elementValidAttribs[a][0];attribDefaultValue=elementValidAttribs[a][1];attribForceValue=elementValidAttribs[a][2];if(attribDefaultValue!=null||attribForceValue!=null){var attribValue=node.getAttribute(attribName);if(node.getAttribute(attribName)==null||node.getAttribute(attribName)=="")attribValue=attribDefaultValue;attribValue=attribForceValue?attribForceValue:attribValue;if(attribValue=="{$uid}")attribValue="uid_"+(tinyMCE.cleanup_idCount++);if(attribName=="class")attribValue=tinyMCE.getVisualAidClass(attribValue,tinyMCE.cleanup_on_save);node.setAttribute(attribName,attribValue);}}}if(elementName=="table"&&!node.hasChildNodes())return "";if(node.attributes.length>0){for(var i=0;i<node.attributes.length;i++){if(node.attributes[i].specified){var attrib=tinyMCE._cleanupAttribute(elementValidAttribs,elementName,node.attributes[i],node);if(attrib&&attrib.value!="")elementAttribs+=" "+attrib.name+"="+'"'+this.convertStringToXML(""+attrib.value)+'"';}}}if(tinyMCE.isMSIE&&elementName=="table"&&node.getAttribute("summary")!=null&&elementAttribs.indexOf('summary')==-1){elementAttribs+=" summary="+'"'+this.convertStringToXML(""+node.getAttribute("summary"))+'"';}if(tinyMCE.isMSIE&&elementName=="input"){if(node.type){if(!elementAttribs.match(/type=/g))elementAttribs+=" type="+'"'+node.type+'"';}if(node.value){if(!elementAttribs.match(/value=/g))elementAttribs+=" value="+'"'+node.value+'"';}}if((elementName=="p"||elementName=="td")&&(node.innerHTML==""||node.innerHTML==" "))return "<"+elementName+elementAttribs+">"+this.convertStringToXML(String.fromCharCode(160))+"</"+elementName+">";if(tinyMCE.isMSIE&&elementName=="script")return "<"+elementName+elementAttribs+">"+node.text+"</"+elementName+">";if(node.hasChildNodes()){if(elementName=="p"&&tinyMCE.cleanup_force_br_newlines)output+="<div"+elementAttribs+">";else output+="<"+elementName+elementAttribs+">";for(var i=0;i<node.childNodes.length;i++)output+=this.cleanupNode(node.childNodes[i]);if(elementName=="p"&&tinyMCE.cleanup_force_br_newlines)output+="</div><br />";else output+="</"+elementName+">";}else{if(!nonEmptyTag){if(openTag)output+="<"+elementName+elementAttribs+"></"+elementName+">";else output+="<"+elementName+elementAttribs+" />";}}return output;case 3:if(node.parentNode.nodeName.toLowerCase()=="script")return node.nodeValue;return this.convertStringToXML(node.nodeValue);case 8:return "<!--"+node.nodeValue+"-->";default:return "[UNKNOWN NODETYPE "+node.nodeType+"]";}};TinyMCE.prototype.convertStringToXML=function(html_data){var output="";for(var i=0;i<html_data.length;i++){var chr=html_data.charCodeAt(i);if(tinyMCE.settings['entity_encoding']=="numeric"){if(chr>127)output+='&#'+chr+";";else output+=String.fromCharCode(chr);continue;}if(tinyMCE.settings['entity_encoding']=="raw"){output+=String.fromCharCode(chr);continue;}if(typeof(tinyMCE.cleanup_entities["c"+chr])!='undefined'&&tinyMCE.cleanup_entities["c"+chr]!='')output+='&'+tinyMCE.cleanup_entities["c"+chr]+';';else output+=''+String.fromCharCode(chr);}return output;};TinyMCE.prototype._getCleanupElementName=function(chunk){var pos;if(chunk.charAt(0)=='+')chunk=chunk.substring(1);if(chunk.charAt(0)=='-')chunk=chunk.substring(1);if((pos=chunk.indexOf('/'))!=-1)chunk=chunk.substring(0,pos);if((pos=chunk.indexOf('['))!=-1)chunk=chunk.substring(0,pos);return chunk;};TinyMCE.prototype._initCleanup=function(){var validElements=tinyMCE.settings["valid_elements"];validElements=validElements.split(',');var extendedValidElements=tinyMCE.settings["extended_valid_elements"];extendedValidElements=extendedValidElements.split(',');for(var i=0;i<extendedValidElements.length;i++){var elementName=this._getCleanupElementName(extendedValidElements[i]);var skipAdd=false;for(var x=0;x<validElements.length;x++){if(this._getCleanupElementName(validElements[x])==elementName){validElements[x]=extendedValidElements[i];skipAdd=true;break;}}if(!skipAdd)validElements[validElements.length]=extendedValidElements[i];}for(var i=0;i<validElements.length;i++){var item=validElements[i];item=item.replace('[','|');item=item.replace(']','');var attribs=item.split('|');for(var x=0;x<attribs.length;x++)attribs[x]=attribs[x].toLowerCase();attribs[0]=attribs[0].split('/');for(var x=1;x<attribs.length;x++){var attribName=attribs[x];var attribDefault=null;var attribForce=null;var attribMustBe=null;if((pos=attribName.indexOf('='))!=-1){attribDefault=attribName.substring(pos+1);attribName=attribName.substring(0,pos);}if((pos=attribName.indexOf(':'))!=-1){attribForce=attribName.substring(pos+1);attribName=attribName.substring(0,pos);}if((pos=attribName.indexOf('<'))!=-1){attribMustBe=attribName.substring(pos+1).split('?');attribName=attribName.substring(0,pos);}attribs[x]=new Array(attribName,attribDefault,attribForce,attribMustBe);}validElements[i]=attribs;}var invalidElements=tinyMCE.settings['invalid_elements'].split(',');for(var i=0;i<invalidElements.length;i++)invalidElements[i]=invalidElements[i].toLowerCase();tinyMCE.settings['cleanup_validElements']=validElements;tinyMCE.settings['cleanup_invalidElements']=invalidElements;tinyMCE.settings['cleanup_entities']=new Array();var entities=tinyMCE.getParam('entities','',true,',');for(var i=0;i<entities.length;i+=2)tinyMCE.settings['cleanup_entities']['c'+entities[i]]=entities[i+1];};TinyMCE.prototype._cleanupHTML=function(inst,doc,config,element,visual,on_save){if(!tinyMCE.settings['cleanup'])return element.innerHTML;tinyMCE._customCleanup(inst,on_save?"get_from_editor_dom":"insert_to_editor_dom",doc.body);tinyMCE.cleanup_validElements=tinyMCE.settings['cleanup_validElements'];tinyMCE.cleanup_entities=tinyMCE.settings['cleanup_entities'];tinyMCE.cleanup_invalidElements=tinyMCE.settings['cleanup_invalidElements'];tinyMCE.cleanup_verify_html=tinyMCE.settings['verify_html'];tinyMCE.cleanup_force_br_newlines=tinyMCE.settings['force_br_newlines'];tinyMCE.cleanup_urlconverter_callback=tinyMCE.settings['urlconverter_callback'];tinyMCE.cleanup_verify_css_classes=tinyMCE.settings['verify_css_classes'];tinyMCE.cleanup_visual_table_class=tinyMCE.settings['visual_table_class'];tinyMCE.cleanup_apply_source_formatting=tinyMCE.settings['apply_source_formatting'];tinyMCE.cleanup_inline_styles=tinyMCE.settings['inline_styles'];tinyMCE.cleanup_visual_aid=visual;tinyMCE.cleanup_on_save=on_save;tinyMCE.cleanup_idCount=0;tinyMCE.cleanup_elementLookupTable=new Array();var startTime=new Date().getTime();if(tinyMCE.isMSIE){var nodes=element.getElementsByTagName("hr");for(var i=0;i<nodes.length;i++){if(nodes[i].id=="null")nodes[i].removeAttribute("id");}element.innerHTML=tinyMCE.regexpReplace(element.innerHTML,'<p>[ \n\r]*<hr.*>[ \n\r]*</p>','<hr />','gi');element.innerHTML=tinyMCE.regexpReplace(element.innerHTML,'<!([^-(DOCTYPE)]* )|<!/[^-]*>','','gi');}var html=this.cleanupNode(element);if(tinyMCE.settings['debug'])tinyMCE.debug("Cleanup process executed in: "+(new Date().getTime()-startTime)+" ms.");html=tinyMCE.regexpReplace(html,'<p><hr /></p>','<hr />');html=tinyMCE.regexpReplace(html,'<p> </p><hr /><p> </p>','<hr />');html=tinyMCE.regexpReplace(html,'<td>\\s*<br />\\s*</td>','<td> </td>');html=html.replace(new RegExp('<a>(.*?)</a>','gi'),'$1');if(!tinyMCE.isMSIE)html=html.replace(new RegExp('<o:p _moz-userdefined="" />','g'),"");if(tinyMCE.settings['apply_source_formatting']){html=html.replace(new RegExp('<(p|div)([^>]*)>','g'),"\n<$1$2>\n");html=html.replace(new RegExp('<\/(p|div)([^>]*)>','g'),"\n</$1$2>\n");html=html.replace(new RegExp('<br />','g'),"<br />\n");}if(tinyMCE.settings['force_br_newlines']){var re=new RegExp('<p> </p>','g');html=html.replace(re,"<br />");}if(tinyMCE.settings['force_p_newlines']){var re=new RegExp('<>','g');html=html.replace(re,"");}if(tinyMCE.settings['remove_linebreaks'])html=html.replace(new RegExp('\r|\n','g'),' ');html=tinyMCE._customCleanup(inst,on_save?"get_from_editor":"insert_to_editor",html);var chk=tinyMCE.regexpReplace(html,"[ \t\r\n]","").toLowerCase();if(chk=="<br/>"||chk=="<br>"||chk=="<p> </p>"||chk=="<p> </p>"||chk=="<p></p>")html="";if(tinyMCE.settings["preformatted"])return "<pre>"+html+"</pre>";return html;};TinyMCE.prototype.insertLink=function(href,target,title,onclick,style_class){tinyMCE.execCommand('mceBeginUndoLevel');if(this.selectedInstance&&this.selectedElement&&this.selectedElement.nodeName.toLowerCase()=="img"){var doc=this.selectedInstance.getDoc();var linkElement=tinyMCE.getParentElement(this.selectedElement,"a");var newLink=false;if(!linkElement){linkElement=doc.createElement("a");newLink=true;}href=eval(tinyMCE.settings['urlconverter_callback']+"(href, linkElement);");tinyMCE.setAttrib(linkElement,'href',href);tinyMCE.setAttrib(linkElement,'target',target);tinyMCE.setAttrib(linkElement,'title',title);tinyMCE.setAttrib(linkElement,'onclick',onclick);tinyMCE.setAttrib(linkElement,'class',style_class);if(newLink){linkElement.appendChild(this.selectedElement.cloneNode(true));this.selectedElement.parentNode.replaceChild(linkElement,this.selectedElement);}return;}if(!this.linkElement&&this.selectedInstance){if(tinyMCE.isSafari){tinyMCE.execCommand("mceInsertContent",false,'<a href="#mce_temp_url#">'+this.selectedInstance.getSelectedHTML()+'</a>');}else this.selectedInstance.contentDocument.execCommand("createlink",false,"#mce_temp_url#");tinyMCE.linkElement=this.getElementByAttributeValue(this.selectedInstance.contentDocument.body,"a","href","#mce_temp_url#");var elementArray=this.getElementsByAttributeValue(this.selectedInstance.contentDocument.body,"a","href","#mce_temp_url#");for(var i=0;i<elementArray.length;i++){href=eval(tinyMCE.settings['urlconverter_callback']+"(href, elementArray[i]);");tinyMCE.setAttrib(elementArray[i],'href',href);tinyMCE.setAttrib(elementArray[i],'mce_real_href',href);tinyMCE.setAttrib(elementArray[i],'target',target);tinyMCE.setAttrib(elementArray[i],'title',title);tinyMCE.setAttrib(elementArray[i],'onclick',onclick);tinyMCE.setAttrib(elementArray[i],'class',style_class);}tinyMCE.linkElement=elementArray[0];}if(this.linkElement){href=eval(tinyMCE.settings['urlconverter_callback']+"(href, this.linkElement);");tinyMCE.setAttrib(this.linkElement,'href',href);tinyMCE.setAttrib(this.linkElement,'mce_real_href',href);tinyMCE.setAttrib(this.linkElement,'target',target);tinyMCE.setAttrib(this.linkElement,'title',title);tinyMCE.setAttrib(this.linkElement,'onclick',onclick);tinyMCE.setAttrib(this.linkElement,'class',style_class);}tinyMCE.execCommand('mceEndUndoLevel');};TinyMCE.prototype.insertImage=function(src,alt,border,hspace,vspace,width,height,align,title,onmouseover,onmouseout){tinyMCE.execCommand('mceBeginUndoLevel');if(src=="")return;if(!this.imgElement&&tinyMCE.isSafari){var html="";html+='<img src="'+src+'" alt="'+alt+'"';html+=' border="'+border+'" hspace="'+hspace+'"';html+=' vspace="'+vspace+'" width="'+width+'"';html+=' height="'+height+'" align="'+align+'" title="'+title+'" onmouseover="'+onmouseover+'" onmouseout="'+onmouseout+'" />';tinyMCE.execCommand("mceInsertContent",false,html);}else{if(!this.imgElement&&this.selectedInstance){if(tinyMCE.isSafari)tinyMCE.execCommand("mceInsertContent",false,'<img src="#mce_temp_url#" />');else this.selectedInstance.contentDocument.execCommand("insertimage",false,"#mce_temp_url#");tinyMCE.imgElement=this.getElementByAttributeValue(this.selectedInstance.contentDocument.body,"img","src","#mce_temp_url#");}}if(this.imgElement){var needsRepaint=false;src=eval(tinyMCE.settings['urlconverter_callback']+"(src, tinyMCE.imgElement);");if(onmouseover&&onmouseover!="")onmouseover="this.src='"+eval(tinyMCE.settings['urlconverter_callback']+"(onmouseover, tinyMCE.imgElement);")+"';";if(onmouseout&&onmouseout!="")onmouseout="this.src='"+eval(tinyMCE.settings['urlconverter_callback']+"(onmouseout, tinyMCE.imgElement);")+"';";if(typeof(title)=="undefined")title=alt;if(width!=this.imgElement.getAttribute("width")||height!=this.imgElement.getAttribute("height")||align!=this.imgElement.getAttribute("align"))needsRepaint=true;tinyMCE.setAttrib(this.imgElement,'src',src);tinyMCE.setAttrib(this.imgElement,'mce_real_src',src);tinyMCE.setAttrib(this.imgElement,'alt',alt);tinyMCE.setAttrib(this.imgElement,'title',title);tinyMCE.setAttrib(this.imgElement,'align',align);tinyMCE.setAttrib(this.imgElement,'border',border,true);tinyMCE.setAttrib(this.imgElement,'hspace',hspace,true);tinyMCE.setAttrib(this.imgElement,'vspace',vspace,true);tinyMCE.setAttrib(this.imgElement,'width',width,true);tinyMCE.setAttrib(this.imgElement,'height',height,true);tinyMCE.setAttrib(this.imgElement,'onmouseover',onmouseover);tinyMCE.setAttrib(this.imgElement,'onmouseout',onmouseout);if(width&&width!="")this.imgElement.style.pixelWidth=width;if(height&&height!="")this.imgElement.style.pixelHeight=height;if(needsRepaint)tinyMCE.selectedInstance.repaint();}tinyMCE.execCommand('mceEndUndoLevel');};TinyMCE.prototype.getElementByAttributeValue=function(node,element_name,attrib,value){var elements=this.getElementsByAttributeValue(node,element_name,attrib,value);if(elements.length==0)return null;return elements[0];};TinyMCE.prototype.getElementsByAttributeValue=function(node,element_name,attrib,value){var elements=new Array();if(node&&node.nodeName.toLowerCase()==element_name){if(node.getAttribute(attrib)&&node.getAttribute(attrib).indexOf(value)!=-1)elements[elements.length]=node;}if(node.hasChildNodes){for(var x=0,n=node.childNodes.length;x<n;x++){var childElements=this.getElementsByAttributeValue(node.childNodes[x],element_name,attrib,value);for(var i=0,m=childElements.length;i<m;i++)elements[elements.length]=childElements[i];}}return elements;};TinyMCE.prototype.isBlockElement=function(node){return node!=null&&node.nodeType==1&&this.blockRegExp.test(node.nodeName);};TinyMCE.prototype.getParentBlockElement=function(node){while(node){if(this.blockRegExp.test(node.nodeName))return node;node=node.parentNode;}return null;};TinyMCE.prototype.getNodeTree=function(node,node_array,type,node_name){if(typeof(type)=="undefined"||node.nodeType==type&&(typeof(node_name)=="undefined"||node.nodeName==node_name))node_array[node_array.length]=node;if(node.hasChildNodes()){for(var i=0;i<node.childNodes.length;i++)tinyMCE.getNodeTree(node.childNodes[i],node_array,type,node_name);}return node_array;};TinyMCE.prototype.getParentElement=function(node,names,attrib_name,attrib_value){if(typeof(names)=="undefined"){if(node.nodeType==1)return node;while((node=node.parentNode)!=null&&node.nodeType!=1);return node;}var namesAr=names.split(',');if(node==null)return null;do{for(var i=0;i<namesAr.length;i++){if(node.nodeName.toLowerCase()==namesAr[i].toLowerCase()||names=="*"){if(typeof(attrib_name)=="undefined")return node;else if(node.getAttribute(attrib_name)){if(typeof(attrib_value)=="undefined"){if(node.getAttribute(attrib_name)!="")return node;}else if(node.getAttribute(attrib_name)==attrib_value)return node;}}}}while(node=node.parentNode);return null;};TinyMCE.prototype.convertURL=function(url,node,on_save){var prot=document.location.protocol;var host=document.location.hostname;var port=document.location.port;var fileProto=(prot=="file:");url=tinyMCE.regexpReplace(url,'(http|https):///','/');if(url.indexOf('mailto:')!=-1||url.indexOf('javascript:')!=-1||tinyMCE.regexpReplace(url,'[ \t\r\n\+]|%20','').charAt(0)=="#")return url;if(!tinyMCE.isMSIE&&!on_save&&url.indexOf("://")==-1&&url.charAt(0)!='/')return tinyMCE.settings['base_href']+url;if(!tinyMCE.settings['relative_urls']){var urlParts=tinyMCE.parseURL(url);var baseUrlParts=tinyMCE.parseURL(tinyMCE.settings['base_href']);if(urlParts['anchor']&&urlParts['path']==baseUrlParts['path'])return "#"+urlParts['anchor'];}if(on_save&&tinyMCE.settings['relative_urls']){var urlParts=tinyMCE.parseURL(url);var tmpUrlParts=tinyMCE.parseURL(tinyMCE.settings['document_base_url']);if(urlParts['host']==tmpUrlParts['host']&&(!urlParts['port']||urlParts['port']==tmpUrlParts['port']))return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings['document_base_url'],url);}if(!fileProto&&tinyMCE.settings['remove_script_host']){var start="",portPart="";if(port!="")portPart=":"+port;start=prot+"//"+host+portPart+"/";if(url.indexOf(start)==0)url=url.substring(start.length-1);if(!tinyMCE.settings['relative_urls']&&url.indexOf('://')==-1&&url.charAt(0)!='/')url='/'+url;}return url;};TinyMCE.prototype.parseURL=function(url_str){var urlParts=new Array();if(url_str){var pos,lastPos;pos=url_str.indexOf('://');if(pos!=-1){urlParts['protocol']=url_str.substring(0,pos);lastPos=pos+3;}for(var i=lastPos;i<url_str.length;i++){var chr=url_str.charAt(i);if(chr==':')break;if(chr=='/')break;}pos=i;urlParts['host']=url_str.substring(lastPos,pos);lastPos=pos;if(url_str.charAt(pos)==':'){pos=url_str.indexOf('/',lastPos);urlParts['port']=url_str.substring(lastPos+1,pos);}lastPos=pos;pos=url_str.indexOf('?',lastPos);if(pos==-1)pos=url_str.indexOf('#',lastPos);if(pos==-1)pos=url_str.length;urlParts['path']=url_str.substring(lastPos,pos);lastPos=pos;if(url_str.charAt(pos)=='?'){pos=url_str.indexOf('#');pos=(pos==-1)?url_str.length:pos;urlParts['query']=url_str.substring(lastPos+1,pos);}lastPos=pos;if(url_str.charAt(pos)=='#'){pos=url_str.length;urlParts['anchor']=url_str.substring(lastPos+1,pos);}}return urlParts;};TinyMCE.prototype.convertAbsoluteURLToRelativeURL=function(base_url,url_to_relative){var strTok1;var strTok2;var breakPoint=0;var outputString="";base_url=base_url.substring(0,base_url.lastIndexOf('/'));strTok1=base_url.split('/');strTok2=url_to_relative.split('/');if(strTok1.length>=strTok2.length){for(var i=0;i<strTok1.length;i++){if(i>=strTok2.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break;}}}if(strTok1.length<strTok2.length){for(var i=0;i<strTok2.length;i++){if(i>=strTok1.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break;}}}if(breakPoint==1)return url_to_relative;for(var i=0;i<(strTok1.length-(breakPoint-1));i++)outputString+="../";for(var i=breakPoint-1;i<strTok2.length;i++){if(i!=(breakPoint-1))outputString+="/"+strTok2[i];else outputString+=strTok2[i];}return outputString;};TinyMCE.prototype.convertRelativeToAbsoluteURL=function(base_url,relative_url){var baseURL=TinyMCE.prototype.parseURL(base_url);var relURL=TinyMCE.prototype.parseURL(relative_url);if(relative_url==""||relative_url.charAt(0)=='/'||relative_url.indexOf('://')!=-1||relative_url.indexOf('mailto:')!=-1||relative_url.indexOf('javascript:')!=-1||tinyMCE.regexpReplace(relative_url,'[ \t\r\n\+]|%20','').charAt(0)=="#")return relative_url;baseURLParts=baseURL['path'].split('/');relURLParts=relURL['path'].split('/');var newBaseURLParts=new Array();for(var i=baseURLParts.length-1;i>=0;i--){if(baseURLParts[i].length==0)continue;newBaseURLParts[newBaseURLParts.length]=baseURLParts[i];}baseURLParts=newBaseURLParts.reverse();var newRelURLParts=new Array();var numBack=0;for(var i=relURLParts.length-1;i>=0;i--){if(relURLParts[i].length==0||relURLParts[i]==".")continue;if(relURLParts[i]=='..'){numBack++;continue;}if(numBack>0){numBack--;continue;}newRelURLParts[newRelURLParts.length]=relURLParts[i];}relURLParts=newRelURLParts.reverse();var len=baseURLParts.length-numBack;var absPath=(len<=0?"":"/")+baseURLParts.slice(0,len).join('/')+"/"+relURLParts.join('/');var start="",end="";if(baseURL['protocol'])start+=baseURL['protocol']+"://";if(baseURL['host'])start+=baseURL['host'];if(baseURL['port'])start+=":"+baseURL['port'];if(relURL['query'])end+="?"+relURL['query'];if(relURL['anchor'])end+="#"+relURL['anchor'];if(relative_url.charAt(relative_url.length-1)=="/")end+="/";return start+absPath+end;};TinyMCE.prototype.getParam=function(name,default_value,strip_whitespace,split_chr){var value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");if(strip_whitespace)value=tinyMCE.regexpReplace(value,"[ \t\r\n]","");if(typeof(split_chr)!="undefined"&&split_chr!=null){value=value.split(split_chr);var outArray=new Array();for(var i=0;i<value.length;i++){if(value[i]&&value[i]!="")outArray[outArray.length]=value[i];}value=outArray;}return value;};TinyMCE.prototype.getLang=function(name,default_value,parse_entities){var value=(typeof(tinyMCELang[name])=="undefined")?default_value:tinyMCELang[name];if(parse_entities){var el=document.createElement("div");el.innerHTML=value;value=el.innerHTML;}return value;};TinyMCE.prototype.addToLang=function(prefix,ar){for(var key in ar)tinyMCELang[(key.indexOf('lang_')==-1?'lang_':'')+(prefix!=''?(prefix+"_"):'')+key]=ar[key];};TinyMCE.prototype.replaceVar=function(replace_haystack,replace_var,replace_str){var re=new RegExp('{\\\$'+replace_var+'}','g');return replace_haystack.replace(re,replace_str);};TinyMCE.prototype.replaceVars=function(replace_haystack,replace_vars){for(var key in replace_vars){var value=replace_vars[key];replace_haystack=tinyMCE.replaceVar(replace_haystack,key,value);}return replace_haystack;};TinyMCE.prototype.triggerNodeChange=function(focus,setup_content){if(tinyMCE.settings['handleNodeChangeCallback']){if(tinyMCE.selectedInstance){var inst=tinyMCE.selectedInstance;var editorId=inst.editorId;var elm=(typeof(setup_content)!="undefined"&&setup_content)?tinyMCE.selectedElement:inst.getFocusElement();var undoIndex=-1;var undoLevels=-1;var anySelection=false;var selectedText=inst.getSelectedText();if(tinyMCE.settings["auto_resize"]){var doc=inst.getDoc();inst.iframeElement.style.width=doc.body.offsetWidth+"px";inst.iframeElement.style.height=doc.body.offsetHeight+"px";}if(tinyMCE.selectedElement)anySelection=(tinyMCE.selectedElement.nodeName.toLowerCase()=="img")||(selectedText&&selectedText.length>0);if(tinyMCE.settings['custom_undo_redo']){undoIndex=inst.undoIndex;undoLevels=inst.undoLevels.length;}tinyMCE.executeCallback('handleNodeChangeCallback','_handleNodeChange',0,editorId,elm,undoIndex,undoLevels,inst.visualAid,anySelection);}}if(this.selectedInstance&&(typeof(focus)=="undefined"||focus))this.selectedInstance.contentWindow.focus();};TinyMCE.prototype._customCleanup=function(inst,type,content){var customCleanup=tinyMCE.settings['cleanup_callback'];if(customCleanup!=""&&eval("typeof("+customCleanup+")")!="undefined")content=eval(customCleanup+"(type, content, inst);");var plugins=tinyMCE.getParam('plugins','',true,',');for(var i=0;i<plugins.length;i++){if(eval("typeof(TinyMCE_"+plugins[i]+"_cleanup)")!="undefined")content=eval("TinyMCE_"+plugins[i]+"_cleanup(type, content, inst);");}return content;};TinyMCE.prototype.getContent=function(editor_id){if(typeof(editor_id)!="undefined")tinyMCE.selectedInstance=tinyMCE.getInstanceById(editor_id);if(tinyMCE.selectedInstance)return tinyMCE._cleanupHTML(this.selectedInstance,this.selectedInstance.getDoc(),tinyMCE.settings,this.selectedInstance.getBody(),false,true);return null;};TinyMCE.prototype.setContent=function(html_content){if(tinyMCE.selectedInstance){tinyMCE.selectedInstance.execCommand('mceSetContent',false,html_content);tinyMCE.selectedInstance.repaint();}};TinyMCE.prototype.importThemeLanguagePack=function(name){if(typeof(name)=="undefined")name=tinyMCE.settings['theme'];tinyMCE.loadScript(tinyMCE.baseURL+'/themes/'+name+'/langs/'+tinyMCE.settings['language']+'.js');};TinyMCE.prototype.importPluginLanguagePack=function(name,valid_languages){var lang="en";valid_languages=valid_languages.split(',');for(var i=0;i<valid_languages.length;i++){if(tinyMCE.settings['language']==valid_languages[i])lang=tinyMCE.settings['language'];}tinyMCE.loadScript(tinyMCE.baseURL+'/plugins/'+name+'/langs/'+lang+'.js');};TinyMCE.prototype.applyTemplate=function(html,args){html=tinyMCE.replaceVar(html,"themeurl",tinyMCE.themeURL);if(typeof(args)!="undefined")html=tinyMCE.replaceVars(html,args);html=tinyMCE.replaceVars(html,tinyMCE.settings);html=tinyMCE.replaceVars(html,tinyMCELang);return html;};TinyMCE.prototype.openWindow=function(template,args){var html,width,height,x,y,resizable,scrollbars,url;args['mce_template_file']=template['file'];args['mce_width']=template['width'];args['mce_height']=template['height'];tinyMCE.windowArgs=args;html=template['html'];if(!(width=parseInt(template['width'])))width=320;if(!(height=parseInt(template['height'])))height=200;if(tinyMCE.isMSIE)height+=40;else height+=20;x=parseInt(screen.width/2.0)-(width/2.0);y=parseInt(screen.height/2.0)-(height/2.0);resizable=(args&&args['resizable'])?args['resizable']:"no";scrollbars=(args&&args['scrollbars'])?args['scrollbars']:"no";if(template['file'].charAt(0)!='/'&&template['file'].indexOf('://')==-1)url=tinyMCE.baseURL+"/themes/"+tinyMCE.getParam("theme")+"/"+template['file'];else url=template['file'];for(var name in args)url=tinyMCE.replaceVar(url,name,escape(args[name]));if(html){html=tinyMCE.replaceVar(html,"css",this.settings['popups_css']);html=tinyMCE.applyTemplate(html,args);var win=window.open("","mcePopup"+new Date().getTime(),"top="+y+",left="+x+",scrollbars="+scrollbars+",dialog=yes,minimizable="+resizable+",modal=yes,width="+width+",height="+height+",resizable="+resizable);if(win==null){alert(tinyMCELang['lang_popup_blocked']);return;}win.document.write(html);win.document.close();win.resizeTo(width,height);win.focus();}else{if(tinyMCE.isMSIE&&resizable!='yes'&&tinyMCE.settings["dialog_type"]=="modal"){var features="resizable:"+resizable+";scroll:"+scrollbars+";status:yes;center:yes;help:no;dialogWidth:"+width+"px;dialogHeight:"+height+"px;";window.showModalDialog(url,window,features);}else{var modal=(resizable=="yes")?"no":"yes";if(tinyMCE.isGecko&&tinyMCE.isMac)modal="no";var win=window.open(url,"mcePopup"+new Date().getTime(),"top="+y+",left="+x+",scrollbars="+scrollbars+",dialog="+modal+",minimizable="+resizable+",modal="+modal+",width="+width+",height="+height+",resizable="+resizable);if(win==null){alert(tinyMCELang['lang_popup_blocked']);return;}eval('try { win.resizeTo(width, height); } catch(e) { }');if(tinyMCE.isGecko){if(win.document.defaultView.statusbar.visible)win.resizeBy(0,tinyMCE.isMac?10:24);}win.focus();}}};TinyMCE.prototype.closeWindow=function(win){win.close();};TinyMCE.prototype.getVisualAidClass=function(class_name,state){var aidClass=tinyMCE.settings['visual_table_class'];if(typeof(state)=="undefined")state=tinyMCE.settings['visual'];var classNames=new Array();var ar=class_name.split(' ');for(var i=0;i<ar.length;i++){if(ar[i]==aidClass)ar[i]="";if(ar[i]!="")classNames[classNames.length]=ar[i];}if(state)classNames[classNames.length]=aidClass;var className="";for(var i=0;i<classNames.length;i++){if(i>0)className+=" ";className+=classNames[i];}return className;};TinyMCE.prototype.handleVisualAid=function(element,deep,state,inst){if(!element)return;var tableElement=null;switch(element.nodeName){case "TABLE":var oldW=element.style.width;var oldH=element.style.height;element.className=tinyMCE.getVisualAidClass(element.className,state&&element.getAttribute("border")==0);element.style.width=oldW;element.style.height=oldH;for(var y=0;y<element.rows.length;y++){for(var x=0;x<element.rows[y].cells.length;x++){var className=tinyMCE.getVisualAidClass(element.rows[y].cells[x].className,state&&element.getAttribute("border")==0);element.rows[y].cells[x].className=className;}}break;case "A":var anchorName=tinyMCE.getAttrib(element,"name");if(anchorName!=''&&state){element.title=anchorName;element.className='mceItemAnchor';}else if(anchorName!=''&&!state)element.className='';break;}if(deep&&element.hasChildNodes()){for(var i=0;i<element.childNodes.length;i++)tinyMCE.handleVisualAid(element.childNodes[i],deep,state,inst);}};TinyMCE.prototype.getAttrib=function(elm,name,default_value){if(typeof(default_value)=="undefined")default_value="";if(!elm||elm.nodeType!=1)return default_value;var v=elm.getAttribute(name);if(name=="class"&&!v)v=elm.className;if(name=="style")v=elm.style.cssText;return(v&&v!="")?v:default_value;};TinyMCE.prototype.setAttrib=function(element,name,value,fix_value){if(typeof(value)=="number"&&value!=null)value=""+value;if(fix_value){if(value==null)value="";var re=new RegExp('[^0-9%]','g');value=value.replace(re,'');}if(name=="style")element.style.cssText=value;if(name=="class")element.className=value;if(value!=null&&value!=""&&value!=-1)element.setAttribute(name,value);else element.removeAttribute(name);};TinyMCE.prototype._setHTML=function(doc,html_content){if(tinyMCE.isMSIE){var re=new RegExp('<p><hr /></p>','g');html_content=html_content.replace(re,"<hr>");}try{doc.body.innerHTML=html_content;}catch(e){if(this.isMSIE)doc.body.createTextRange().pasteHTML(html_content);}if(tinyMCE.isMSIE&&tinyMCE.settings['fix_content_duplication']){var paras=doc.getElementsByTagName("P");for(var i=0;i<paras.length;i++){var node=paras[i];while((node=node.parentNode)!=null){if(node.nodeName.toLowerCase()=="p")node.outerHTML=node.innerHTML;}}var html=doc.body.innerHTML;if(html.indexOf('="mso')!=-1){for(var i=0;i<doc.body.all.length;i++){var el=doc.body.all[i];el.removeAttribute("className","",0);el.removeAttribute("style","",0);}html=doc.body.innerHTML;html=tinyMCE.regexpReplace(html,"<o:p><\/o:p>","<br />");html=tinyMCE.regexpReplace(html,"<o:p> <\/o:p>","");html=tinyMCE.regexpReplace(html,"<st1:.*?>","");html=tinyMCE.regexpReplace(html,"<p><\/p>","");html=tinyMCE.regexpReplace(html,"<p><\/p>\r\n<p><\/p>","");html=tinyMCE.regexpReplace(html,"<p> <\/p>","<br />");html=tinyMCE.regexpReplace(html,"<p>\s*(<p>\s*)?","<p>");html=tinyMCE.regexpReplace(html,"<\/p>\s*(<\/p>\s*)?","</p>");}doc.body.innerHTML=html;}};TinyMCE.prototype.getImageSrc=function(str){var pos=-1;if(!str)return "";if((pos=str.indexOf('this.src='))!=-1){var src=str.substring(pos+10);src=src.substring(0,src.indexOf('\''));return src;}return "";};TinyMCE.prototype._getElementById=function(element_id){var elm=document.getElementById(element_id);if(!elm){for(var j=0;j<document.forms.length;j++){for(var k=0;k<document.forms[j].elements.length;k++){if(document.forms[j].elements[k].name==element_id){elm=document.forms[j].elements[k];break;}}}}return elm;};TinyMCE.prototype.getEditorId=function(form_element){var inst=this.getInstanceById(form_element);if(!inst)return null;return inst.editorId;};TinyMCE.prototype.getInstanceById=function(editor_id){var inst=this.instances[editor_id];if(!inst){for(var instanceName in tinyMCE.instances){var instance=tinyMCE.instances[instanceName];if(instance.formTargetElementId==editor_id){inst=instance;break;}}}return inst;};TinyMCE.prototype.queryInstanceCommandValue=function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.queryCommandValue(command);return false;};TinyMCE.prototype.queryInstanceCommandState=function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.queryCommandState(command);return null;};TinyMCE.prototype.setWindowArg=function(name,value){this.windowArgs[name]=value;};TinyMCE.prototype.getWindowArg=function(name,default_value){return(typeof(this.windowArgs[name])=="undefined")?default_value:this.windowArgs[name];};TinyMCE.prototype.getCSSClasses=function(editor_id,doc){var output=new Array();if(typeof(tinyMCE.cssClasses)!="undefined")return tinyMCE.cssClasses;if(typeof(editor_id)=="undefined"&&typeof(doc)=="undefined"){var instance;for(var instanceName in tinyMCE.instances){instance=tinyMCE.instances[instanceName];break;}doc=instance.getDoc();}if(typeof(doc)=="undefined"){var instance=tinyMCE.getInstanceById(editor_id);doc=instance.getDoc();}if(doc){var styles=tinyMCE.isMSIE?doc.styleSheets:doc.styleSheets;if(styles&&styles.length>0){for(var x=0;x<styles.length;x++){var csses=null;eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets("+x+").rules : doc.styleSheets["+x+"].cssRules;} catch(e) {}");if(!csses)return new Array();for(var i=0;i<csses.length;i++){var selectorText=csses[i].selectorText;if(selectorText){var rules=selectorText.split(',');for(var c=0;c<rules.length;c++){if(rules[c].indexOf(' ')!=-1||rules[c].indexOf(':')!=-1||rules[c].indexOf('mceItem')!=-1)continue;if(rules[c]=="."+tinyMCE.settings['visual_table_class'])continue;if(rules[c].indexOf('.')!=-1){output[output.length]=rules[c].substring(rules[c].indexOf('.')+1);}}}}}}}if(output.length>0)tinyMCE.cssClasses=output;return output;};TinyMCE.prototype.regexpReplace=function(in_str,reg_exp,replace_str,opts){if(typeof(opts)=="undefined")opts='g';var re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);};TinyMCE.prototype.trim=function(str){return str.replace(/^\s*|\s*$/g,"");};TinyMCE.prototype.cleanupEventStr=function(str){str=""+str;str=str.replace('function anonymous()\n{\n','');str=str.replace('\n}','');str=str.replace(/^return true;/gi,'');return str;};TinyMCE.prototype.getAbsPosition=function(node){var pos=new Object();pos.absLeft=pos.absTop=0;var parentNode=node;while(parentNode){pos.absLeft+=parentNode.offsetLeft;pos.absTop+=parentNode.offsetTop;parentNode=parentNode.offsetParent;}return pos;};TinyMCE.prototype.getControlHTML=function(control_name){var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+"_getControlHTML";if(eval("typeof("+templateFunction+")")!='undefined'){var html=eval(templateFunction+"('"+control_name+"');");if(html!="")return tinyMCE.replaceVar(html,"pluginurl",tinyMCE.baseURL+"/plugins/"+themePlugins[i]);}}return eval('TinyMCE_'+tinyMCE.settings['theme']+"_getControlHTML"+"('"+control_name+"');");};TinyMCE.prototype._themeExecCommand=function(editor_id,element,command,user_interface,value){var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+"_execCommand";if(eval("typeof("+templateFunction+")")!='undefined'){if(eval(templateFunction+"(editor_id, element, command, user_interface, value);"))return true;}}templateFunction='TinyMCE_'+tinyMCE.settings['theme']+"_execCommand";if(eval("typeof("+templateFunction+")")!='undefined')return eval(templateFunction+"(editor_id, element, command, user_interface, value);");return false;};TinyMCE.prototype._getThemeFunction=function(suffix,skip_plugins){if(skip_plugins)return 'TinyMCE_'+tinyMCE.settings['theme']+suffix;var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+suffix;if(eval("typeof("+templateFunction+")")!='undefined')return templateFunction;}return 'TinyMCE_'+tinyMCE.settings['theme']+suffix;};TinyMCE.prototype.isFunc=function(func_name){if(func_name==null||func_name=="")return false;return eval("typeof("+func_name+")")!="undefined";};TinyMCE.prototype.exec=function(func_name,args){var str=func_name+'(';for(var i=3;i<args.length;i++){str+='args['+i+']';if(i<args.length-1)str+=',';}str+=');';return eval(str);};TinyMCE.prototype.executeCallback=function(param,suffix,mode){switch(mode){case 0:var state=false;var plugins=tinyMCE.getParam('plugins','',true,',');for(var i=0;i<plugins.length;i++){var func="TinyMCE_"+plugins[i]+suffix;if(tinyMCE.isFunc(func)){tinyMCE.exec(func,this.executeCallback.arguments);state=true;}}var func='TinyMCE_'+tinyMCE.settings['theme']+suffix;if(tinyMCE.isFunc(func)){tinyMCE.exec(func,this.executeCallback.arguments);state=true;}var func=tinyMCE.getParam(param,'');if(tinyMCE.isFunc(func)){tinyMCE.exec(func,this.executeCallback.arguments);state=true;}return state;case 1:var plugins=tinyMCE.getParam('plugins','',true,',');for(var i=0;i<plugins.length;i++){var func="TinyMCE_"+plugins[i]+suffix;if(tinyMCE.isFunc(func)){if(tinyMCE.exec(func,this.executeCallback.arguments))return true;}}var func='TinyMCE_'+tinyMCE.settings['theme']+suffix;if(tinyMCE.isFunc(func)){if(tinyMCE.exec(func,this.executeCallback.arguments))return true;}var func=tinyMCE.getParam(param,'');if(tinyMCE.isFunc(func)){if(tinyMCE.exec(func,this.executeCallback.arguments))return true;}return false;}};TinyMCE.prototype.debug=function(){var msg="";var elm=document.getElementById("tinymce_debug");if(!elm){var debugDiv=document.createElement("div");debugDiv.setAttribute("className","debugger");debugDiv.className="debugger";debugDiv.innerHTML='\
+ Debug output:\
+ <textarea id="tinymce_debug" style="width: 100%; height: 300px"></textarea>';document.body.appendChild(debugDiv);elm=document.getElementById("tinymce_debug");}var args=this.debug.arguments;for(var i=0;i<args.length;i++){msg+=args[i];if(i<args.length-1)msg+=', ';}elm.value+=msg+"\n";};function TinyMCEControl(settings){this.undoLevels=new Array();this.undoIndex=0;this.typingUndoIndex=-1;this.undoRedo=true;this.settings=settings;this.settings['theme']=tinyMCE.getParam("theme","default");this.settings['width']=tinyMCE.getParam("width",-1);this.settings['height']=tinyMCE.getParam("height",-1);};TinyMCEControl.prototype.repaint=function(){if(tinyMCE.isMSIE)return;this.getBody().style.display='none';this.getBody().style.display='block';};TinyMCEControl.prototype.switchSettings=function(){if(tinyMCE.configs.length>1&&tinyMCE.currentConfig!=this.settings['index']){tinyMCE.settings=this.settings;tinyMCE.currentConfig=this.settings['index'];}};TinyMCEControl.prototype.fixBrokenURLs=function(){var body=this.getBody();var elms=body.getElementsByTagName("img");for(var i=0;i<elms.length;i++){var src=elms[i].getAttribute('mce_real_src');if(src&&src!="")elms[i].setAttribute("src",src);}var elms=body.getElementsByTagName("a");for(var i=0;i<elms.length;i++){var href=elms[i].getAttribute('mce_real_href');if(href&&href!="")elms[i].setAttribute("href",href);}};TinyMCEControl.prototype.convertAllRelativeURLs=function(){var body=this.getBody();var elms=body.getElementsByTagName("img");for(var i=0;i<elms.length;i++){var src=elms[i].getAttribute('src');if(src&&src!=""){src=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],src);elms[i].setAttribute("src",src);elms[i].setAttribute("mce_real_src",src);}}var elms=body.getElementsByTagName("a");for(var i=0;i<elms.length;i++){var href=elms[i].getAttribute('href');if(href&&href!=""){href=tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'],href);elms[i].setAttribute("href",href);elms[i].setAttribute("mce_real_href",href);}}};TinyMCEControl.prototype.getSelectedHTML=function(){if(tinyMCE.isSafari){return this.getRng().toString();}var elm=document.createElement("body");if(tinyMCE.isGecko)elm.appendChild(this.getRng().cloneContents());else elm.innerHTML=this.getRng().htmlText;return tinyMCE._cleanupHTML(this,this.contentDocument,this.settings,elm,this.visualAid);};TinyMCEControl.prototype.getBookmark=function(){var rng=this.getRng();if(tinyMCE.isSafari)return rng;if(tinyMCE.isMSIE)return rng;if(tinyMCE.isGecko)return rng.cloneRange();return null;};TinyMCEControl.prototype.moveToBookmark=function(bookmark){if(tinyMCE.isSafari){var sel=this.getSel().realSelection;sel.setBaseAndExtent(bookmark.startContainer,bookmark.startOffset,bookmark.endContainer,bookmark.endOffset);return true;}if(tinyMCE.isMSIE)return bookmark.select();if(tinyMCE.isGecko){var rng=this.getDoc().createRange();var sel=this.getSel();rng.setStart(bookmark.startContainer,bookmark.startOffset);rng.setEnd(bookmark.endContainer,bookmark.endOffset);sel.removeAllRanges();sel.addRange(rng);return true;}return false;};TinyMCEControl.prototype.getSelectedText=function(){if(tinyMCE.isMSIE){var doc=this.getDoc();if(doc.selection.type=="Text"){var rng=doc.selection.createRange();selectedText=rng.text;}else selectedText='';}else{var sel=this.getSel();if(sel&&sel.toString)selectedText=sel.toString();else selectedText='';}return selectedText;};TinyMCEControl.prototype.selectNode=function(node,collapse,select_text_node,to_start){if(!node)return;if(typeof(collapse)=="undefined")collapse=true;if(typeof(select_text_node)=="undefined")select_text_node=false;if(typeof(to_start)=="undefined")to_start=true;if(tinyMCE.isMSIE){var rng=this.getBody().createTextRange();try{rng.moveToElementText(node);if(collapse)rng.collapse(to_start);rng.select();}catch(e){}}else{var sel=this.getSel();if(!sel)return;if(tinyMCE.isSafari){sel.realSelection.setBaseAndExtent(node,0,node,node.innerText.length);if(collapse){if(to_start)sel.realSelection.collapseToStart();else sel.realSelection.collapseToEnd();}this.scrollToNode(node);return;}var rng=this.getDoc().createRange();if(select_text_node){var nodes=tinyMCE.getNodeTree(node,new Array(),3);if(nodes.length>0)rng.selectNodeContents(nodes[0]);else rng.selectNodeContents(node);}else rng.selectNode(node);if(collapse){if(!to_start&&node.nodeType==3){rng.setStart(node,node.nodeValue.length);rng.setEnd(node,node.nodeValue.length);}else rng.collapse(to_start);}sel.removeAllRanges();sel.addRange(rng);}this.scrollToNode(node);tinyMCE.selectedElement=null;if(node.nodeType==1)tinyMCE.selectedElement=node;};TinyMCEControl.prototype.scrollToNode=function(node){var pos=tinyMCE.getAbsPosition(node);var doc=this.getDoc();var scrollX=doc.body.scrollLeft+doc.documentElement.scrollLeft;var scrollY=doc.body.scrollTop+doc.documentElement.scrollTop;var height=tinyMCE.isMSIE?document.getElementById(this.editorId).style.pixelHeight:this.targetElement.clientHeight;if(!tinyMCE.settings['auto_resize']&&!(node.absTop>scrollY&&node.absTop<(scrollY-25+height)))this.contentWindow.scrollTo(pos.absLeft,pos.absTop-height+25);};TinyMCEControl.prototype.getBody=function(){return this.getDoc().body;};TinyMCEControl.prototype.getDoc=function(){return this.contentWindow.document;};TinyMCEControl.prototype.getWin=function(){return this.contentWindow;};TinyMCEControl.prototype.getSel=function(){if(tinyMCE.isMSIE)return this.getDoc().selection;var sel=this.contentWindow.getSelection();if(tinyMCE.isSafari&&!sel.getRangeAt){var newSel=new Object();var doc=this.getDoc();function getRangeAt(idx){var rng=new Object();rng.startContainer=this.focusNode;rng.endContainer=this.anchorNode;rng.commonAncestorContainer=this.focusNode;rng.createContextualFragment=function(html){if(html.charAt(0)=='<'){var elm=doc.createElement("div");elm.innerHTML=html;return elm.firstChild;}return doc.createTextNode("UNSUPPORTED, DUE TO LIMITATIONS IN SAFARI!");};rng.deleteContents=function(){doc.execCommand("Delete",false,"");};return rng;}newSel.focusNode=sel.baseNode;newSel.focusOffset=sel.baseOffset;newSel.anchorNode=sel.extentNode;newSel.anchorOffset=sel.extentOffset;newSel.getRangeAt=getRangeAt;newSel.text=""+sel;newSel.realSelection=sel;newSel.toString=function(){return this.text;};return newSel;}return sel;};TinyMCEControl.prototype.getRng=function(){var sel=this.getSel();if(sel==null)return null;if(tinyMCE.isMSIE)return sel.createRange();if(tinyMCE.isSafari){var rng=this.getDoc().createRange();var sel=this.getSel().realSelection;rng.setStart(sel.baseNode,sel.baseOffset);rng.setEnd(sel.extentNode,sel.extentOffset);return rng;}return this.getSel().getRangeAt(0);};TinyMCEControl.prototype._insertPara=function(e){function isEmpty(para){function isEmptyHTML(html){return html.replace(new RegExp('[ \t\r\n]+','g'),'').toLowerCase()=="";}if(para.getElementsByTagName("img").length>0)return false;if(para.getElementsByTagName("table").length>0)return false;if(para.getElementsByTagName("hr").length>0)return false;var nodes=tinyMCE.getNodeTree(para,new Array(),3);for(var i=0;i<nodes.length;i++){if(!isEmptyHTML(nodes[i].nodeValue))return false;}return true;}var doc=this.getDoc();var sel=this.getSel();var win=this.contentWindow;var rng=sel.getRangeAt(0);var body=doc.body;var rootElm=doc.documentElement;var self=this;var blockName="P";var rngBefore=doc.createRange();rngBefore.setStart(sel.anchorNode,sel.anchorOffset);rngBefore.collapse(true);var rngAfter=doc.createRange();rngAfter.setStart(sel.focusNode,sel.focusOffset);rngAfter.collapse(true);var direct=rngBefore.compareBoundaryPoints(rngBefore.START_TO_END,rngAfter)<0;var startNode=direct?sel.anchorNode:sel.focusNode;var startOffset=direct?sel.anchorOffset:sel.focusOffset;var endNode=direct?sel.focusNode:sel.anchorNode;var endOffset=direct?sel.focusOffset:sel.anchorOffset;var startBlock=tinyMCE.getParentBlockElement(startNode);var endBlock=tinyMCE.getParentBlockElement(endNode);if(startBlock!=null){blockName=startBlock.nodeName.toUpperCase();if(blockName=="TD"||blockName=="TABLE")blockName="P";}if((startBlock!=null&&startBlock.nodeName.toLowerCase()=="li")||(endBlock!=null&&endBlock.nodeName.toLowerCase()=="li"))return false;if((startBlock!=null&&startBlock.nodeName.toLowerCase()=="table")||(endBlock!=null&&endBlock.nodeName.toLowerCase()=="table"))startBlock=endBlock=null;var paraBefore=(startBlock!=null&&startBlock.nodeName.toUpperCase()==blockName)?startBlock.cloneNode(false):doc.createElement(blockName);var paraAfter=(endBlock!=null&&endBlock.nodeName.toUpperCase()==blockName)?endBlock.cloneNode(false):doc.createElement(blockName);var startChop=startNode;var endChop=endNode;node=startChop;do{if(node==body||node.nodeType==9||tinyMCE.isBlockElement(node))break;startChop=node;}while((node=node.previousSibling?node.previousSibling:node.parentNode));node=endChop;do{if(node==body||node.nodeType==9||tinyMCE.isBlockElement(node))break;endChop=node;}while((node=node.nextSibling?node.nextSibling:node.parentNode));if(startBlock==null){rng.deleteContents();sel.removeAllRanges();if(startChop!=rootElm&&endChop!=rootElm){rngBefore=rng.cloneRange();if(startChop==body)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);paraBefore.appendChild(rngBefore.cloneContents());if(endChop.parentNode.nodeName==blockName)endChop=endChop.parentNode;rng.setEndAfter(endChop);var contents=rng.cloneContents();if(contents.firstChild&&(contents.firstChild.nodeName==blockName||contents.firstChild.nodeName.toLowerCase()=="body")){var nodes=contents.firstChild.childNodes;for(var i=0;i<nodes.length;i++){if(nodes[i].nodeName.toLowerCase()!="body")paraAfter.appendChild(nodes[i]);}}else paraAfter.appendChild(contents);if(isEmpty(paraBefore))paraBefore.innerHTML=" ";if(isEmpty(paraAfter))paraAfter.innerHTML=" ";rng.deleteContents();rngAfter.deleteContents();rngBefore.deleteContents();paraAfter.normalize();rngBefore.insertNode(paraAfter);paraBefore.normalize();rngBefore.insertNode(paraBefore);}else{body.innerHTML="<"+blockName+"> </"+blockName+"><"+blockName+"> </"+blockName+">";paraAfter=body.childNodes[1];}this.selectNode(paraAfter,true,true);return true;}if(startChop.nodeName==blockName)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);rngBefore.setEnd(startNode,startOffset);paraBefore.appendChild(rngBefore.cloneContents());rngAfter.setEndAfter(endChop);rngAfter.setStart(endNode,endOffset);var contents=rngAfter.cloneContents();if(contents.firstChild&&contents.firstChild.nodeName==blockName){var nodes=contents.firstChild.childNodes;for(var i=0;i<nodes.length;i++){if(nodes[i].nodeName.toLowerCase()!="body")paraAfter.appendChild(nodes[i]);}}else paraAfter.appendChild(contents);if(isEmpty(paraBefore))paraBefore.innerHTML=" ";if(isEmpty(paraAfter))paraAfter.innerHTML=" ";var rng=doc.createRange();if(!startChop.previousSibling&&startChop.parentNode.nodeName.toUpperCase()==blockName){rng.setStartBefore(startChop.parentNode);}else{if(rngBefore.startContainer.nodeName.toUpperCase()==blockName&&rngBefore.startOffset==0)rng.setStartBefore(rngBefore.startContainer);else rng.setStart(rngBefore.startContainer,rngBefore.startOffset);}if(!endChop.nextSibling&&endChop.parentNode.nodeName.toUpperCase()==blockName)rng.setEndAfter(endChop.parentNode);else rng.setEnd(rngAfter.endContainer,rngAfter.endOffset);rng.deleteContents();rng.insertNode(paraAfter);rng.insertNode(paraBefore);paraAfter.normalize();paraBefore.normalize();this.selectNode(paraAfter,true,true);return true;};TinyMCEControl.prototype._handleBackSpace=function(evt_type){var doc=this.getDoc();var sel=this.getSel();if(sel==null)return false;var rng=sel.getRangeAt(0);var node=rng.startContainer;var elm=node.nodeType==3?node.parentNode:node;if(node==null)return;if(elm&&elm.nodeName==""){var para=doc.createElement("p");while(elm.firstChild)para.appendChild(elm.firstChild);elm.parentNode.insertBefore(para,elm);elm.parentNode.removeChild(elm);var rng=rng.cloneRange();rng.setStartBefore(node.nextSibling);rng.setEndAfter(node.nextSibling);rng.extractContents();this.selectNode(node.nextSibling,true,true);}var para=tinyMCE.getParentBlockElement(node);if(para!=null&¶.nodeName.toLowerCase()=='p'&&evt_type=="keypress"){var htm=para.innerHTML;var block=tinyMCE.getParentBlockElement(node);if(htm==""||htm==" "||block.nodeName.toLowerCase()=="li"){var prevElm=para.previousSibling;while(prevElm!=null&&prevElm.nodeType!=1)prevElm=prevElm.previousSibling;if(prevElm==null)return false;var nodes=tinyMCE.getNodeTree(prevElm,new Array(),3);var lastTextNode=nodes.length==0?null:nodes[nodes.length-1];if(lastTextNode!=null)this.selectNode(lastTextNode,true,false,false);para.parentNode.removeChild(para);return true;}}return false;};TinyMCEControl.prototype._insertSpace=function(){return true;};TinyMCEControl.prototype.autoResetDesignMode=function(){if(!tinyMCE.isMSIE&&tinyMCE.settings['auto_reset_designmode']){var sel=this.getSel();if(!sel||!sel.rangeCount||sel.rangeCount==0)eval('try { this.getDoc().designMode = "On"; } catch(e) {}');}};TinyMCEControl.prototype.isDirty=function(){return this.startContent!=tinyMCE.trim(this.getBody().innerHTML)&&!tinyMCE.isNotDirty;};TinyMCEControl.prototype._mergeElements=function(pa,ch,override){ch=ch.cloneNode(true);var st=tinyMCE.parseStyle(tinyMCE.getAttrib(pa,"style"));var stc=tinyMCE.parseStyle(tinyMCE.getAttrib(ch,"style"));var className=tinyMCE.getAttrib(pa,"class");className+=" "+tinyMCE.getAttrib(ch,"class");if(override){for(var n in st)stc[n]=st[n];}else{for(var n in stc)st[n]=stc[n];}tinyMCE.setAttrib(ch,"style",tinyMCE.serializeStyle(st));tinyMCE.setAttrib(ch,"class",tinyMCE.trim(className));pa.parentNode.replaceChild(ch,pa);};TinyMCEControl.prototype.execCommand=function(command,user_interface,value){var doc=this.getDoc();var win=this.getWin();var focusElm=this.getFocusElement();if(this.lastSafariSelection&&!new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel','gi').test(command)){this.moveToBookmark(this.lastSafariSelection);tinyMCE.selectedElement=this.lastSafariSelectedElement;}if(!tinyMCE.isMSIE&&!this.useCSS){doc.execCommand("useCSS",false,true);this.useCSS=true;}this.contentDocument=doc;if(tinyMCE._themeExecCommand(this.editorId,this.getBody(),command,user_interface,value))return;if(focusElm&&focusElm.nodeName=="IMG"){var align=focusElm.getAttribute('align');var img=command=="JustifyCenter"?focusElm.cloneNode(false):focusElm;switch(command){case "JustifyLeft":if(align=='left')img.removeAttribute('align');else img.setAttribute('align','left');var div=focusElm.parentNode;if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);this.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;case "JustifyCenter":img.removeAttribute('align');var div=tinyMCE.getParentElement(focusElm,"div");if(div&&div.style.textAlign=="center"){if(div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);}else{var div=this.getDoc().createElement("div");div.style.textAlign='center';div.appendChild(img);focusElm.parentNode.replaceChild(div,focusElm);}this.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;case "JustifyRight":if(align=='right')img.removeAttribute('align');else img.setAttribute('align','right');var div=focusElm.parentNode;if(div&&div.nodeName=="DIV"&&div.childNodes.length==1&&div.parentNode)div.parentNode.replaceChild(img,div);this.selectNode(img);this.repaint();tinyMCE.triggerNodeChange();return;}}if(tinyMCE.settings['force_br_newlines']){var alignValue="";if(doc.selection.type!="Control"){switch(command){case "JustifyLeft":alignValue="left";break;case "JustifyCenter":alignValue="center";break;case "JustifyFull":alignValue="justify";break;case "JustifyRight":alignValue="right";break;}if(alignValue!=""){var rng=doc.selection.createRange();if((divElm=tinyMCE.getParentElement(rng.parentElement(),"div"))!=null)divElm.setAttribute("align",alignValue);else if(rng.pasteHTML&&rng.htmlText.length>0)rng.pasteHTML('<div align="'+alignValue+'">'+rng.htmlText+"</div>");tinyMCE.triggerNodeChange();return;}}}switch(command){case "mceRepaint":this.repaint();return true;case "mceStoreSelection":this.selectionBookmark=this.getBookmark();return true;case "mceRestoreSelection":this.moveToBookmark(this.selectionBookmark);return true;case "InsertUnorderedList":case "InsertOrderedList":var tag=(command=="InsertUnorderedList")?"ul":"ol";if(tinyMCE.isSafari)this.execCommand("mceInsertContent",false,"<"+tag+"><li> </li><"+tag+">");else this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();break;case "Strikethrough":if(tinyMCE.isSafari)this.execCommand("mceInsertContent",false,"<strike>"+this.getSelectedHTML()+"</strike>");else this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();break;case "mceSelectNode":this.selectNode(value);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=value;break;case "FormatBlock":if(value==null||value==""){var elm=tinyMCE.getParentElement(this.getFocusElement(),"p,div,h1,h2,h3,h4,h5,h6,pre,address");if(elm)this.execCommand("mceRemoveNode",false,elm);}else this.getDoc().execCommand("FormatBlock",false,value);tinyMCE.triggerNodeChange();break;case "mceRemoveNode":if(!value)value=tinyMCE.getParentElement(this.getFocusElement());if(tinyMCE.isMSIE){value.outerHTML=value.innerHTML;}else{var rng=value.ownerDocument.createRange();rng.setStartBefore(value);rng.setEndAfter(value);rng.deleteContents();rng.insertNode(rng.createContextualFragment(value.innerHTML));}tinyMCE.triggerNodeChange();break;case "mceSelectNodeDepth":var parentNode=this.getFocusElement();for(var i=0;parentNode;i++){if(parentNode.nodeName.toLowerCase()=="body")break;if(parentNode.nodeName.toLowerCase()=="#text"){i--;parentNode=parentNode.parentNode;continue;}if(i==value){this.selectNode(parentNode,false);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=parentNode;return;}parentNode=parentNode.parentNode;}break;case "SetStyleInfo":var rng=this.getRng();var sel=this.getSel();var scmd=value['command'];var sname=value['name'];var svalue=value['value'];var wrapper=value['wrapper']?value['wrapper']:"span";var parentElm=null;if(tinyMCE.isMSIE){if(rng.item)parentElm=rng.item(0);else{var pelm=rng.parentElement();var prng=doc.selection.createRange();prng.moveToElementText(pelm);if(rng.htmlText==prng.htmlText||rng.boundingWidth==0)parentElm=pelm;}}else{var felm=this.getFocusElement();if(sel.isCollapsed||(/td|tr|tbody|table/ig.test(felm.nodeName)&&sel.anchorNode==felm.parentNode))parentElm=felm;}if(parentElm){if(scmd=="setstyle")eval("parentElm.style."+sname+" = svalue;");if(scmd=="setattrib")tinyMCE.setAttrib(parentElm,sname,svalue);}else{doc.execCommand("fontname",false,"#mce_temp_font#");var elementArray=tinyMCE.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");for(var x=0;x<elementArray.length;x++){elm=elementArray[x];if(elm){var spanElm=doc.createElement(wrapper);if(scmd=="setstyle")eval("spanElm.style."+sname+" = svalue;");if(scmd=="setattrib")tinyMCE.setAttrib(spanElm,sname,svalue);if(elm.hasChildNodes()){for(var i=0;i<elm.childNodes.length;i++)spanElm.appendChild(elm.childNodes[i].cloneNode(true));}spanElm.setAttribute("mce_new","true");elm.parentNode.replaceChild(spanElm,elm);}}}var nodes=doc.getElementsByTagName(wrapper);for(var i=nodes.length-1;i>=0;i--){var elm=nodes[i];var isNew=tinyMCE.getAttrib(elm,"mce_new")=="true";elm.removeAttribute("mce_new");if(elm.childNodes&&elm.childNodes.length==1&&elm.childNodes[0].nodeType==1){this._mergeElements(elm,elm.childNodes[0],isNew);continue;}if(elm.parentNode.childNodes.length==1){this._mergeElements(elm.parentNode,elm,false);}}var nodes=doc.getElementsByTagName(wrapper);for(var i=nodes.length-1;i>=0;i--){var elm=nodes[i];var isEmpty=true;var tmp=doc.createElement("body");tmp.appendChild(elm.cloneNode(false));if(new RegExp('<span>|<span style="">','gi').test(tmp.innerHTML)){for(var i=elm.childNodes.length-1;i>=0;i--){if(elm.parentNode!=null){elm.parentNode.insertBefore(elm.childNodes[i].cloneNode(true),elm);elm.parentNode.removeChild(elm);}}}}tinyMCE.triggerNodeChange();break;case "FontName":if(tinyMCE.getParam("convert_fonts_to_styles"))this.execCommand("SetStyleInfo",false,{command:"setstyle",name:"fontFamily",value:value});else this.getDoc().execCommand('FontName',false,value);break;case "FontSize":if(tinyMCE.getParam("convert_fonts_to_styles")){var sizes=new Array('',8,10,12,14,18,24,36);var size=sizes[value]==''?'':sizes[value]+'px';this.execCommand("SetStyleInfo",false,{command:"setstyle",name:"fontSize",value:size});}else this.getDoc().execCommand('FontSize',false,value);break;case "forecolor":if(tinyMCE.getParam("convert_fonts_to_styles"))this.execCommand("SetStyleInfo",false,{command:"setstyle",name:"color",value:value});else{if(tinyMCE.isGecko){this.getDoc().execCommand("useCSS",false,true);this.getDoc().execCommand('forecolor',false,value);this.getDoc().execCommand("useCSS",false,true);}else this.getDoc().execCommand('forecolor',false,value);}break;case "HiliteColor":if(tinyMCE.getParam("convert_fonts_to_styles"))this.execCommand("SetStyleInfo",false,{command:"setstyle",name:"backgroundColor",value:value});else{if(tinyMCE.isGecko){this.getDoc().execCommand("useCSS",false,false);this.getDoc().execCommand('hilitecolor',false,value);this.getDoc().execCommand("useCSS",false,true);}else this.getDoc().execCommand('BackColor',false,value);}break;case "Cut":case "Copy":case "Paste":var cmdFailed=false;eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');if(tinyMCE.isGecko&&cmdFailed){if(confirm(tinyMCE.getLang('lang_clipboard_msg')))window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');return;}else tinyMCE.triggerNodeChange();break;case "mceSetContent":if(!value)value="";value=tinyMCE._customCleanup(this,"insert_to_editor",value);tinyMCE._setHTML(doc,value);doc.body.innerHTML=tinyMCE._cleanupHTML(this,doc,tinyMCE.settings,doc.body);tinyMCE.handleVisualAid(doc.body,true,this.visualAid,this);tinyMCE._setEventsEnabled(doc.body,true);return true;case "mceLink":var selectedText="";if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=rng.text;}else selectedText=this.getSel().toString();if(!tinyMCE.linkElement){if((tinyMCE.selectedElement.nodeName.toLowerCase()!="img")&&(selectedText.length<=0))return;}var href="",target="",title="",onclick="",action="insert",style_class="";if(tinyMCE.selectedElement.nodeName.toLowerCase()=="a")tinyMCE.linkElement=tinyMCE.selectedElement;if(tinyMCE.linkElement!=null&&tinyMCE.getAttrib(tinyMCE.linkElement,'href')=="")tinyMCE.linkElement=null;if(tinyMCE.linkElement){href=tinyMCE.getAttrib(tinyMCE.linkElement,'href');target=tinyMCE.getAttrib(tinyMCE.linkElement,'target');title=tinyMCE.getAttrib(tinyMCE.linkElement,'title');onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');style_class=tinyMCE.getAttrib(tinyMCE.linkElement,'class');if(onclick=="")onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');onclick=tinyMCE.cleanupEventStr(onclick);mceRealHref=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_real_href');if(mceRealHref!="")href=mceRealHref;href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);");action="update";}if(this.settings['insertlink_callback']){var returnVal=eval(this.settings['insertlink_callback']+"(href, target, title, onclick, action, style_class);");if(returnVal&&returnVal['href'])tinyMCE.insertLink(returnVal['href'],returnVal['target'],returnVal['title'],returnVal['onclick'],returnVal['style_class']);}else{tinyMCE.openWindow(this.insertLinkTemplate,{href:href,target:target,title:title,onclick:onclick,action:action,className:style_class});}break;case "mceImage":var src="",alt="",border="",hspace="",vspace="",width="",height="",align="";var title="",onmouseover="",onmouseout="",action="insert";var img=tinyMCE.imgElement;if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){img=tinyMCE.selectedElement;tinyMCE.imgElement=img;}if(img){if(tinyMCE.getAttrib(img,'name').indexOf('mce_')==0)return;src=tinyMCE.getAttrib(img,'src');alt=tinyMCE.getAttrib(img,'alt');if(alt=="")alt=tinyMCE.getAttrib(img,'title');if(tinyMCE.isGecko){var w=img.style.width;if(w!=null&&w!="")img.setAttribute("width",w);var h=img.style.height;if(h!=null&&h!="")img.setAttribute("height",h);}border=tinyMCE.getAttrib(img,'border');hspace=tinyMCE.getAttrib(img,'hspace');vspace=tinyMCE.getAttrib(img,'vspace');width=tinyMCE.getAttrib(img,'width');height=tinyMCE.getAttrib(img,'height');align=tinyMCE.getAttrib(img,'align');onmouseover=tinyMCE.getAttrib(img,'onmouseover');onmouseout=tinyMCE.getAttrib(img,'onmouseout');title=tinyMCE.getAttrib(img,'title');if(tinyMCE.isMSIE){width=img.attributes['width'].specified?width:"";height=img.attributes['height'].specified?height:"";}onmouseover=tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover));onmouseout=tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout));mceRealSrc=tinyMCE.getAttrib(img,'mce_real_src');if(mceRealSrc!="")src=mceRealSrc;src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);");if(onmouseover!="")onmouseover=eval(tinyMCE.settings['urlconverter_callback']+"(onmouseover, img, true);");if(onmouseout!="")onmouseout=eval(tinyMCE.settings['urlconverter_callback']+"(onmouseout, img, true);");action="update";}if(this.settings['insertimage_callback']){var returnVal=eval(this.settings['insertimage_callback']+"(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");if(returnVal&&returnVal['src'])tinyMCE.insertImage(returnVal['src'],returnVal['alt'],returnVal['border'],returnVal['hspace'],returnVal['vspace'],returnVal['width'],returnVal['height'],returnVal['align'],returnVal['title'],returnVal['onmouseover'],returnVal['onmouseout']);}else tinyMCE.openWindow(this.insertImageTemplate,{src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout,action:action});break;case "mceCleanup":tinyMCE._setHTML(this.contentDocument,this.getBody().innerHTML);this.getBody().innerHTML=tinyMCE._cleanupHTML(this,this.contentDocument,this.settings,this.getBody(),this.visualAid);tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid,this);tinyMCE._setEventsEnabled(this.getBody(),true);this.repaint();tinyMCE.triggerNodeChange();break;case "mceReplaceContent":var selectedText="";if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=rng.text;}else selectedText=this.getSel().toString();if(selectedText.length>0){value=tinyMCE.replaceVar(value,"selection",selectedText);tinyMCE.execCommand('mceInsertContent',false,value);}tinyMCE.triggerNodeChange();break;case "mceSetAttribute":if(typeof(value)=='object'){var targetElms=(typeof(value['targets'])=="undefined")?"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address":value['targets'];var targetNode=tinyMCE.getParentElement(this.getFocusElement(),targetElms);if(targetNode){targetNode.setAttribute(value['name'],value['value']);tinyMCE.triggerNodeChange();}}break;case "mceSetCSSClass":this.execCommand("SetStyleInfo",false,{command:"setattrib",name:"class",value:value});break;case "mceInsertRawHTML":var key='tiny_mce_marker';this.execCommand('mceBeginUndoLevel');this.execCommand('mceInsertContent',false,key);var scrollX=this.getDoc().body.scrollLeft+this.getDoc().documentElement.scrollLeft;var scrollY=this.getDoc().body.scrollTop+this.getDoc().documentElement.scrollTop;var html=this.getBody().innerHTML;if((pos=html.indexOf(key))!=-1)this.getBody().innerHTML=html.substring(0,pos)+value+html.substring(pos+key.length);this.contentWindow.scrollTo(scrollX,scrollY);this.execCommand('mceEndUndoLevel');break;case "mceInsertContent":if(!tinyMCE.isMSIE){var sel=this.getSel();var rng=this.getRng();var isHTML=value.indexOf('<')!=-1;if(isHTML){if(tinyMCE.isSafari){var tmpRng=this.getDoc().createRange();tmpRng.setStart(this.getBody(),0);tmpRng.setEnd(this.getBody(),0);value=tmpRng.createContextualFragment(value);}else value=rng.createContextualFragment(value);}else{var el=document.createElement("div");el.innerHTML=value;value=el.firstChild.nodeValue;value=doc.createTextNode(value);}if(tinyMCE.isSafari&&!isHTML){this.execCommand('InsertText',false,value.nodeValue);tinyMCE.triggerNodeChange();return true;}else if(tinyMCE.isSafari&&isHTML){rng.deleteContents();rng.insertNode(value);tinyMCE.triggerNodeChange();return true;}rng.deleteContents();if(rng.startContainer.nodeType==3){var node=rng.startContainer.splitText(rng.startOffset);node.parentNode.insertBefore(value,node);}else rng.insertNode(value);if(!isHTML){sel.selectAllChildren(doc.body);sel.removeAllRanges();var rng=doc.createRange();rng.selectNode(value);rng.collapse(false);sel.addRange(rng);}else rng.collapse(false);}else{var rng=doc.selection.createRange();if(rng.item)rng.item(0).outerHTML=value;else rng.pasteHTML(value);}tinyMCE.triggerNodeChange();break;case "mceStartTyping":if(tinyMCE.settings['custom_undo_redo']&&this.typingUndoIndex==-1){this.typingUndoIndex=this.undoIndex;this.execCommand('mceAddUndoLevel');}break;case "mceEndTyping":if(tinyMCE.settings['custom_undo_redo']&&this.typingUndoIndex!=-1){this.execCommand('mceAddUndoLevel');this.typingUndoIndex=-1;}break;case "mceBeginUndoLevel":this.undoRedo=false;break;case "mceEndUndoLevel":this.undoRedo=true;this.execCommand('mceAddUndoLevel');break;case "mceAddUndoLevel":if(tinyMCE.settings['custom_undo_redo']&&this.undoRedo){if(this.typingUndoIndex!=-1){this.undoIndex=this.typingUndoIndex;}var newHTML=tinyMCE.trim(this.getBody().innerHTML);if(newHTML!=this.undoLevels[this.undoIndex]){tinyMCE.executeCallback('onchange_callback','_onchange',0,this);var customUndoLevels=tinyMCE.settings['custom_undo_redo_levels'];if(customUndoLevels!=-1&&this.undoLevels.length>customUndoLevels){for(var i=0;i<this.undoLevels.length-1;i++){this.undoLevels[i]=this.undoLevels[i+1];}this.undoLevels.length--;this.undoIndex--;}this.undoIndex++;this.undoLevels[this.undoIndex]=newHTML;this.undoLevels.length=this.undoIndex+1;tinyMCE.triggerNodeChange(false);}}break;case "Undo":if(tinyMCE.settings['custom_undo_redo']){tinyMCE.execCommand("mceEndTyping");if(this.undoIndex>0){this.undoIndex--;this.getBody().innerHTML=this.undoLevels[this.undoIndex];this.repaint();}tinyMCE.triggerNodeChange();}else this.getDoc().execCommand(command,user_interface,value);break;case "Redo":if(tinyMCE.settings['custom_undo_redo']){tinyMCE.execCommand("mceEndTyping");if(this.undoIndex<(this.undoLevels.length-1)){this.undoIndex++;this.getBody().innerHTML=this.undoLevels[this.undoIndex];this.repaint();}tinyMCE.triggerNodeChange();}else this.getDoc().execCommand(command,user_interface,value);break;case "mceToggleVisualAid":this.visualAid=!this.visualAid;tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid,this);tinyMCE.triggerNodeChange();break;case "removeformat":var text=this.getSelectedText();if(tinyMCE.isMSIE){try{win.focus();var rng=doc.selection.createRange();rng.execCommand("RemoveFormat",false,null);if(rng.text==rng.parentElement().innerText){rng.moveToElementText(rng.parentElement());rng.select();}rng.pasteHTML(rng.text);}catch(e){}}else this.getDoc().execCommand(command,user_interface,value);if(text.length==0)this.execCommand("mceSetCSSClass",false,"");tinyMCE.triggerNodeChange();break;default:this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();}if(command!="mceAddUndoLevel"&&command!="Undo"&&command!="Redo"&&command!="mceStartTyping"&&command!="mceEndTyping")tinyMCE.execCommand("mceAddUndoLevel");};TinyMCEControl.prototype.queryCommandValue=function(command){return this.getDoc().queryCommandValue(command);};TinyMCEControl.prototype.queryCommandState=function(command){return this.getDoc().queryCommandState(command);};TinyMCEControl.prototype.onAdd=function(replace_element,form_element_name,target_document){var targetDoc=target_document?target_document:document;this.targetDoc=targetDoc;tinyMCE.themeURL=tinyMCE.baseURL+"/themes/"+this.settings['theme'];this.settings['themeurl']=tinyMCE.themeURL;if(!replace_element){alert("Error: Could not find the target element.");return false;}var templateFunction=tinyMCE._getThemeFunction('_getInsertLinkTemplate');if(eval("typeof("+templateFunction+")")!='undefined')this.insertLinkTemplate=eval(templateFunction+'(this.settings);');var templateFunction=tinyMCE._getThemeFunction('_getInsertImageTemplate');if(eval("typeof("+templateFunction+")")!='undefined')this.insertImageTemplate=eval(templateFunction+'(this.settings);');var templateFunction=tinyMCE._getThemeFunction('_getEditorTemplate');if(eval("typeof("+templateFunction+")")=='undefined'){alert("Error: Could not find the template function: "+templateFunction);return false;}var editorTemplate=eval(templateFunction+'(this.settings, this.editorId);');var deltaWidth=editorTemplate['delta_width']?editorTemplate['delta_width']:0;var deltaHeight=editorTemplate['delta_height']?editorTemplate['delta_height']:0;var html='<span id="'+this.editorId+'_parent">'+editorTemplate['html'];var templateFunction=tinyMCE._getThemeFunction('_handleNodeChange',true);if(eval("typeof("+templateFunction+")")!='undefined')this.settings['handleNodeChangeCallback']=templateFunction;html=tinyMCE.replaceVar(html,"editor_id",this.editorId);this.settings['default_document']=tinyMCE.baseURL+"/blank.htm";this.settings['old_width']=this.settings['width'];this.settings['old_height']=this.settings['height'];if(this.settings['width']==-1)this.settings['width']=replace_element.offsetWidth;if(this.settings['height']==-1)this.settings['height']=replace_element.offsetHeight;if(this.settings['width']==0)this.settings['width']=replace_element.style.width;if(this.settings['height']==0)this.settings['height']=replace_element.style.height;if(this.settings['width']==0)this.settings['width']=320;if(this.settings['height']==0)this.settings['height']=240;this.settings['area_width']=parseInt(this.settings['width']);this.settings['area_height']=parseInt(this.settings['height']);this.settings['area_width']+=deltaWidth;this.settings['area_height']+=deltaHeight;if((""+this.settings['width']).indexOf('%')!=-1)this.settings['area_width']="100%";if((""+this.settings['height']).indexOf('%')!=-1)this.settings['area_height']="100%";if((""+replace_element.style.width).indexOf('%')!=-1){this.settings['width']=replace_element.style.width;this.settings['area_width']="100%";}if((""+replace_element.style.height).indexOf('%')!=-1){this.settings['height']=replace_element.style.height;this.settings['area_height']="100%";}html=tinyMCE.applyTemplate(html);this.settings['width']=this.settings['old_width'];this.settings['height']=this.settings['old_height'];this.visualAid=this.settings['visual'];this.formTargetElementId=form_element_name;if(replace_element.nodeName=="TEXTAREA"||replace_element.nodeName=="INPUT")this.startContent=replace_element.value;else this.startContent=replace_element.innerHTML;if(replace_element.nodeName.toLowerCase()!="textarea"){this.oldTargetElement=replace_element.cloneNode(true);if(tinyMCE.settings['debug'])html+='<textarea wrap="off" id="'+form_element_name+'" name="'+form_element_name+'" cols="100" rows="15"></textarea>';else html+='<input type="hidden" type="text" id="'+form_element_name+'" name="'+form_element_name+'" />';html+='</span>';if(!tinyMCE.isMSIE){var rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);var fragment=rng.createContextualFragment(html);replace_element.parentNode.replaceChild(fragment,replace_element);}else replace_element.outerHTML=html;}else{html+='</span>';this.oldTargetElement=replace_element;if(!tinyMCE.settings['debug'])this.oldTargetElement.style.display="none";if(!tinyMCE.isMSIE){var rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);var fragment=rng.createContextualFragment(html);replace_element.parentNode.insertBefore(fragment,replace_element);}else replace_element.insertAdjacentHTML("beforeBegin",html);}var dynamicIFrame=false;var tElm=targetDoc.getElementById(this.editorId);if(!tinyMCE.isMSIE){if(tElm&&tElm.nodeName.toLowerCase()=="span"){tElm=tinyMCE._createIFrame(tElm);dynamicIFrame=true;}this.targetElement=tElm;this.iframeElement=tElm;this.contentDocument=tElm.contentDocument;this.contentWindow=tElm.contentWindow;}else{if(tElm&&tElm.nodeName.toLowerCase()=="span")tElm=tinyMCE._createIFrame(tElm);else tElm=targetDoc.frames[this.editorId];this.targetElement=tElm;this.iframeElement=targetDoc.getElementById(this.editorId);this.contentDocument=tElm.window.document;this.contentWindow=tElm.window;this.getDoc().designMode="on";}var doc=this.contentDocument;if(dynamicIFrame){var html='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><base href="'+tinyMCE.settings['base_href']+'" /><title>blank_page</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body class="mceContentBody"></body></html>';try{this.getDoc().designMode="on";doc.open();doc.write(html);doc.close();}catch(e){this.getDoc().location.href=tinyMCE.baseURL+"/blank.htm";}}if(tinyMCE.isMSIE)window.setTimeout("TinyMCE.prototype.addEventHandlers('"+this.editorId+"');",1);tinyMCE.setupContent(this.editorId,true);return true;};TinyMCEControl.prototype.getFocusElement=function(){if(tinyMCE.isMSIE){var doc=this.getDoc();var rng=doc.selection.createRange();if(rng.collapse)rng.collapse(true);var elm=rng.item?rng.item(0):rng.parentElement();}else{var sel=this.getSel();var rng=this.getRng();var elm=rng.commonAncestorContainer;if(!rng.collapsed){if(rng.startContainer==rng.endContainer){if(rng.startOffset-rng.endOffset<2){if(rng.startContainer.hasChildNodes())elm=rng.startContainer.childNodes[rng.startOffset];}}}elm=tinyMCE.getParentElement(elm);}return elm;};var tinyMCE=new TinyMCE();var tinyMCELang=new Array();
\ No newline at end of file
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+
+var tinyMCE = null, tinyMCELang = null;
+
+function TinyMCEPopup() {
+};
+
+TinyMCEPopup.prototype.init = function() {
+ var win = window.opener ? window.opener : window.dialogArguments;
+
+ if (!win)
+ win = top;
+
+ window.opener = win;
+ this.windowOpener = win;
+
+ // Setup parent references
+ tinyMCE = win.tinyMCE;
+ tinyMCELang = win.tinyMCELang;
+
+ if (!tinyMCE) {
+ alert("tinyMCE object reference not found from popup.");
+ return;
+ }
+
+ this.isWindow = tinyMCE.getWindowArg('mce_inside_iframe', false) == false;
+ this.storeSelection = tinyMCE.isMSIE && !this.isWindow && tinyMCE.getWindowArg('mce_store_selection', true);
+
+ // Store selection
+ if (this.storeSelection)
+ tinyMCE.selectedInstance.execCommand('mceStoreSelection');
+
+ // Setup dir
+ if (tinyMCELang['lang_dir'])
+ document.dir = tinyMCELang['lang_dir'];
+
+ // Setup title
+ var re = new RegExp('{|\\\$|}', 'g');
+ var title = document.title.replace(re, "");
+ if (typeof tinyMCELang[title] != "undefined") {
+ var divElm = document.createElement("div");
+ divElm.innerHTML = tinyMCELang[title];
+ document.title = divElm.innerHTML;
+
+ if (tinyMCE.setWindowTitle != null)
+ tinyMCE.setWindowTitle(window, divElm.innerHTML);
+ }
+
+ // Output Popup CSS class
+ document.write('<link href="' + tinyMCE.getParam("popups_css") + '" rel="stylesheet" type="text/css">');
+
+ tinyMCE.addEvent(window, "load", this.onLoad);
+};
+
+TinyMCEPopup.prototype.onLoad = function() {
+ var body = document.body;
+
+ if (tinyMCE.getWindowArg('mce_replacevariables', true))
+ body.innerHTML = tinyMCE.applyTemplate(body.innerHTML, tinyMCE.windowArgs);
+
+ var dir = tinyMCE.selectedInstance.settings['directionality'];
+ if (dir == "rtl") {
+ var elms = document.forms[0].elements;
+ for (var i=0; i<elms.length; i++) {
+ if ((elms[i].type == "text" || elms[i].type == "textarea") && elms[i].getAttribute("dir") != "ltr")
+ elms[i].dir = dir;
+ }
+ }
+
+ if (body.style.display == 'none')
+ body.style.display = 'block';
+};
+
+TinyMCEPopup.prototype.resizeToInnerSize = function() {
+ if (this.isWindow) {
+ var doc = document;
+ var body = doc.body;
+ var oldMargin, wrapper, iframe, nodes, dx, dy;
+
+ if (body.style.display == 'none')
+ body.style.display = 'block';
+
+ // Remove margin
+ oldMargin = body.style.margin;
+ body.style.margin = '0px';
+
+ // Create wrapper
+ wrapper = doc.createElement("div");
+ wrapper.id = 'mcBodyWrapper';
+ wrapper.style.display = 'none';
+ wrapper.style.margin = '0px';
+
+ // Wrap body elements
+ nodes = doc.body.childNodes;
+ for (var i=nodes.length-1; i>=0; i--) {
+ if (wrapper.hasChildNodes())
+ wrapper.insertBefore(nodes[i].cloneNode(true), wrapper.firstChild);
+ else
+ wrapper.appendChild(nodes[i].cloneNode(true));
+
+ nodes[i].parentNode.removeChild(nodes[i]);
+ }
+
+ // Add wrapper
+ doc.body.appendChild(wrapper);
+
+ // Create iframe
+ iframe = document.createElement("iframe");
+ iframe.id = "mcWinIframe";
+ iframe.src = "about:blank";
+ iframe.width = "100%";
+ iframe.height = "100%";
+ iframe.style.margin = '0px';
+
+ // Add iframe
+ doc.body.appendChild(iframe);
+
+ // Measure iframe
+ iframe = document.getElementById('mcWinIframe');
+ dx = tinyMCE.getWindowArg('mce_width') - iframe.clientWidth;
+ dy = tinyMCE.getWindowArg('mce_height') - iframe.clientHeight;
+
+ // Resize window
+ // tinyMCE.debug(tinyMCE.getWindowArg('mce_width') + "," + tinyMCE.getWindowArg('mce_height') + " - " + dx + "," + dy);
+ window.resizeBy(dx, dy);
+
+ // Hide iframe and show wrapper
+ body.style.margin = oldMargin;
+ iframe.style.display = 'none';
+ wrapper.style.display = 'block';
+ }
+};
+
+TinyMCEPopup.prototype.resizeToContent = function() {
+ var isMSIE = (navigator.appName == "Microsoft Internet Explorer");
+ var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
+
+ if (isOpera)
+ return;
+
+ if (isMSIE) {
+ try { window.resizeTo(10, 10); } catch (e) {}
+
+ var elm = document.body;
+ var width = elm.offsetWidth;
+ var height = elm.offsetHeight;
+ var dx = (elm.scrollWidth - width) + 4;
+ var dy = elm.scrollHeight - height;
+
+ try { window.resizeBy(dx, dy); } catch (e) {}
+ } else {
+ window.scrollBy(1000, 1000);
+ if (window.scrollX > 0 || window.scrollY > 0) {
+ window.resizeBy(window.innerWidth * 2, window.innerHeight * 2);
+ window.sizeToContent();
+ window.scrollTo(0, 0);
+ var x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0);
+ var y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0);
+ window.moveTo(x, y);
+ }
+ }
+};
+
+TinyMCEPopup.prototype.getWindowArg = function(name, default_value) {
+ return tinyMCE.getWindowArg(name, default_value);
+};
+
+TinyMCEPopup.prototype.execCommand = function(command, user_interface, value) {
+ var inst = tinyMCE.selectedInstance;
+
+ // Restore selection
+ if (this.storeSelection) {
+ inst.getWin().focus();
+ inst.execCommand('mceRestoreSelection');
+ }
+
+ inst.execCommand(command, user_interface, value);
+
+ // Store selection
+ if (this.storeSelection)
+ inst.execCommand('mceStoreSelection');
+};
+
+TinyMCEPopup.prototype.close = function() {
+ tinyMCE.closeWindow(window);
+};
+
+TinyMCEPopup.prototype.pickColor = function(e, element_id) {
+ tinyMCE.selectedInstance.execCommand('mceColorPicker', true, {
+ element_id : element_id,
+ document : document,
+ window : window,
+ store_selection : false
+ });
+};
+
+TinyMCEPopup.prototype.openBrowser = function(element_id, type, option) {
+ var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback"));
+ var url = document.getElementById(element_id).value;
+
+ tinyMCE.setWindowArg("window", window);
+ tinyMCE.setWindowArg("document", document);
+
+ // Call to external callback
+ if (eval('typeof(tinyMCEPopup.windowOpener.' + cb + ')') == "undefined")
+ alert("Callback function: " + cb + " could not be found.");
+ else
+ eval("tinyMCEPopup.windowOpener." + cb + "(element_id, url, type, window);");
+};
+
+// Setup global instance
+var tinyMCEPopup = new TinyMCEPopup();
+
+tinyMCEPopup.init();
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+
+function TinyMCE() {
+ this.majorVersion = "2";
+ this.minorVersion = "0RC2";
+ this.releaseDate = "2005-09-12";
+
+ 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();
+
+ // Browser check
+ 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;
+
+ // TinyMCE editor id instance counter
+ 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;
+
+ // Check if valid browser has execcommand support
+ if (typeof(document.execCommand) == 'undefined')
+ return;
+
+ // Get script base path
+ 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;
+ }
+ }
+ }
+
+ // Get document base path
+ 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 not HTTP absolute
+ if (tinyMCE.baseURL.indexOf('://') == -1 && tinyMCE.baseURL.charAt(0) != '/') {
+ // If site absolute
+ tinyMCE.baseURL = this.documentBasePath + "/" + tinyMCE.baseURL;
+ }
+
+ // Set default values on settings
+ 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("editor_selector", "");
+ this.defParam("editor_deselector", "mceNoEditor");
+ this.defParam("valid_elements", "+a[id|style|rel|rev|charset|hreflang|dir|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],-strong/b[class|style],-em/i[class|style],-strike[class|style],-u[class|style],+p[style|dir|class|align],-ol[class],-ul[class],-li[class],br,img[id|dir|lang|longdesc|usemap|style|class|src|onmouseover|onmouseout|border=0|alt|title|hspace|vspace|width|height|align],-sub[style|class],-sup[style|class],-blockquote[dir|style],-table[border=0|cellspacing|cellpadding|width|height|class|align|summary|style|dir|id|lang|bgcolor|background|bordercolor],-tr[id|lang|dir|class|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],tbody[id|class],thead[id|class],tfoot[id|class],-td[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style|bgcolor|background|bordercolor],-th[id|lang|dir|class|colspan|rowspan|width|height|align|valign|style],caption[id|lang|dir|class|style],-div[id|dir|class|align|style],-span[style|class|align],-pre[class|align],address[class|align],-h1[style|dir|class|align],-h2[style|dir|class|align],-h3[style|dir|class|align],-h4[style|dir|class|align],-h5[style|dir|class|align],-h6[style|dir|class|align],hr[class]");
+ 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("verify_html", true);
+ this.defParam("apply_source_formatting", false);
+ this.defParam("directionality", "ltr");
+ this.defParam("cleanup_on_startup", false);
+ this.defParam("inline_styles", false);
+ this.defParam("convert_newlines_to_brs", false);
+ this.defParam("auto_reset_designmode", true);
+ 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,237,iacute,243,oacute,250,uacute,193,Aacute,225,aacute,201,Eacute,205,Iacute,211,Oacute,218,Uacute,221,Yacute,253,yacute");
+ this.defParam("entity_encoding", "named");
+ this.defParam("cleanup_callback", "");
+ this.defParam("add_unload_trigger", true);
+ this.defParam("ask", false);
+ this.defParam("nowrap", false);
+ this.defParam("auto_resize", false);
+ this.defParam("auto_focus", false);
+ this.defParam("cleanup", true);
+ this.defParam("remove_linebreaks", true);
+ this.defParam("button_tile_map", false);
+ this.defParam("submit_patch", true);
+ this.defParam("browsers", "msie,safari,gecko");
+ this.defParam("dialog_type", "window");
+ this.defParam("convert_fonts_to_styles", true);
+
+ // Browser check IE
+ if (this.isMSIE && this.settings['browsers'].indexOf('msie') == -1)
+ return;
+
+ // Browser check Gecko
+ if (this.isGecko && this.settings['browsers'].indexOf('gecko') == -1)
+ return;
+
+ // Browser check Safari
+ if (this.isSafari && this.settings['browsers'].indexOf('safari') == -1)
+ return;
+
+ // Setup baseHREF
+ var baseHREF = tinyMCE.settings['document_base_url'];
+ if (baseHREF.indexOf('?') != -1)
+ baseHREF = baseHREF.substring(0, baseHREF.indexOf('?'));
+ this.settings['base_href'] = baseHREF.substring(0, baseHREF.lastIndexOf('/')) + "/";
+
+ theme = this.settings['theme'];
+
+ this.blockRegExp = new RegExp("^(h[1-6]|p|div|address|pre|form|table|li|ol|ul|td)$", "i");
+ this.posKeyCodes = new Array(13,45,36,35,33,34,37,38,39,40);
+
+ // Theme url
+ this.settings['theme_href'] = tinyMCE.baseURL + "/themes/" + theme;
+
+ if (!tinyMCE.isMSIE)
+ this.settings['force_br_newlines'] = false;
+
+ if (tinyMCE.getParam("content_css", false)) {
+ var cssPath = tinyMCE.getParam("content_css", "");
+
+ // Is relative
+ if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
+ this.settings['content_css'] = this.documentBasePath + "/" + cssPath;
+ else
+ this.settings['content_css'] = cssPath;
+ } else
+ this.settings['content_css'] = '';
+
+ if (tinyMCE.getParam("popups_css", false)) {
+ var cssPath = tinyMCE.getParam("popups_css", "");
+
+ // Is relative
+ if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
+ this.settings['popups_css'] = this.documentBasePath + "/" + cssPath;
+ else
+ this.settings['popups_css'] = cssPath;
+ } else
+ this.settings['popups_css'] = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_popup.css";
+
+ if (tinyMCE.getParam("editor_css", false)) {
+ var cssPath = tinyMCE.getParam("editor_css", "");
+
+ // Is relative
+ if (cssPath.indexOf('://') == -1 && cssPath.charAt(0) != '/')
+ this.settings['editor_css'] = this.documentBasePath + "/" + cssPath;
+ else
+ this.settings['editor_css'] = cssPath;
+ } else
+ this.settings['editor_css'] = tinyMCE.baseURL + "/themes/" + theme + "/css/editor_ui.css";
+
+ if (tinyMCE.settings['debug']) {
+ var msg = "Debug: \n";
+
+ msg += "baseURL: " + this.baseURL + "\n";
+ msg += "documentBasePath: " + this.documentBasePath + "\n";
+ msg += "content_css: " + this.settings['content_css'] + "\n";
+ msg += "popups_css: " + this.settings['popups_css'] + "\n";
+ msg += "editor_css: " + this.settings['editor_css'] + "\n";
+
+ alert(msg);
+ }
+
+ // Init HTML cleanup
+ this._initCleanup();
+
+ // Only do this once
+ if (this.configs.length == 0) {
+ // Is Safari enabled
+ if (this.isSafari && this.getParam('safari_warning', true))
+ alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version.");
+
+ tinyMCE.addEvent(window, "load", TinyMCE.prototype.onLoad);
+
+ if (tinyMCE.isMSIE) {
+ if (tinyMCE.settings['add_unload_trigger']) {
+ tinyMCE.addEvent(window, "unload", TinyMCE.prototype.unloadHandler);
+ tinyMCE.addEvent(window.document, "beforeunload", TinyMCE.prototype.unloadHandler);
+ }
+ } else {
+ if (tinyMCE.settings['add_unload_trigger'])
+ tinyMCE.addEvent(window, "unload", function () {tinyMCE.triggerSave(true, true);});
+ }
+ }
+
+ this.loadScript(tinyMCE.baseURL + '/themes/' + this.settings['theme'] + '/editor_template' + tinyMCE.srcMode + '.js');
+ this.loadScript(tinyMCE.baseURL + '/langs/' + this.settings['language'] + '.js');
+ this.loadCSS(this.settings['editor_css']);
+
+ // Add theme plugins
+ var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
+ if (this.settings['plugins'] != '') {
+ for (var i=0; i<themePlugins.length; i++)
+ this.loadScript(tinyMCE.baseURL + '/plugins/' + themePlugins[i] + '/editor_plugin' + tinyMCE.srcMode + '.js');
+ }
+
+ // Save away this config
+ settings['index'] = this.configs.length;
+ this.configs[this.configs.length] = settings;
+};
+
+TinyMCE.prototype.loadScript = function(url) {
+ for (var i=0; i<this.loadedFiles.length; i++) {
+ if (this.loadedFiles[i] == url)
+ return;
+ }
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></script>');
+
+ this.loadedFiles[this.loadedFiles.length] = url;
+};
+
+TinyMCE.prototype.loadCSS = function(url) {
+ for (var i=0; i<this.loadedFiles.length; i++) {
+ if (this.loadedFiles[i] == url)
+ return;
+ }
+
+ document.write('<link href="' + url + '" rel="stylesheet" type="text/css" />');
+
+ this.loadedFiles[this.loadedFiles.length] = url;
+};
+
+TinyMCE.prototype.importCSS = function(doc, css_file) {
+ if (css_file == '')
+ return;
+
+ if (tinyMCE.isMSIE)
+ var styleSheet = doc.createStyleSheet(css_file);
+ else {
+ var elm = doc.createElement("link");
+
+ elm.rel = "stylesheet";
+ elm.href = css_file;
+
+ if (headArr = doc.getElementsByTagName("head"))
+ headArr[0].appendChild(elm);
+ }
+};
+
+TinyMCE.prototype.confirmAdd = function(e, settings) {
+ var elm = tinyMCE.isMSIE ? event.srcElement : e.target;
+ var elementId = elm.name ? elm.name : elm.id;
+
+ tinyMCE.settings = settings;
+
+ if (!elm.getAttribute('mce_noask') && confirm(tinyMCELang['lang_edit_confirm']))
+ tinyMCE.addMCEControl(elm, elementId);
+
+ elm.setAttribute('mce_noask', 'true');
+};
+
+TinyMCE.prototype.updateContent = function(form_element_name) {
+ // Find MCE instance linked to given form element and copy it's value
+ var formElement = document.getElementById(form_element_name);
+ for (var n in tinyMCE.instances) {
+ var inst = tinyMCE.instances[n];
+
+ inst.switchSettings();
+
+ if (inst.formElement == formElement) {
+ var doc = inst.getDoc();
+
+ tinyMCE._setHTML(doc, inst.formElement.value);
+
+ if (!tinyMCE.isMSIE)
+ doc.body.innerHTML = tinyMCE._cleanupHTML(inst, doc, this.settings, doc.body, inst.visualAid);
+ }
+ }
+};
+
+TinyMCE.prototype.addMCEControl = function(replace_element, form_element_name, target_document) {
+ var id = "mce_editor_" + tinyMCE.idCounter++;
+ var inst = new TinyMCEControl(tinyMCE.settings);
+
+ inst.editorId = id;
+ this.instances[id] = inst;
+
+ inst.onAdd(replace_element, form_element_name, target_document);
+};
+
+TinyMCE.prototype.triggerSave = function(skip_cleanup, skip_callback) {
+ // Cleanup and set all form fields
+ for (var n in tinyMCE.instances) {
+ var inst = tinyMCE.instances[n];
+
+ inst.switchSettings();
+
+ tinyMCE.settings['preformatted'] = false;
+
+ // Default to false
+ if (typeof(skip_cleanup) == "undefined")
+ skip_cleanup = false;
+
+ // Default to false
+ if (typeof(skip_callback) == "undefined")
+ skip_callback = false;
+
+ tinyMCE._setHTML(inst.getDoc(), inst.getBody().innerHTML);
+
+ // Remove visual aids when cleanup is disabled
+ if (inst.settings['cleanup'] == false) {
+ tinyMCE.handleVisualAid(inst.getBody(), true, false, inst);
+ tinyMCE._setEventsEnabled(inst.getBody(), false);
+ }
+
+ tinyMCE._customCleanup(inst, "submit_content_dom", inst.contentWindow.document.body);
+ var htm = skip_cleanup ? inst.getBody().innerHTML : tinyMCE._cleanupHTML(inst, inst.getDoc(), this.settings, inst.getBody(), this.visualAid, true);
+ htm = tinyMCE._customCleanup(inst, "submit_content", htm);
+
+ if (tinyMCE.settings["encoding"] == "xml" || tinyMCE.settings["encoding"] == "html")
+ htm = tinyMCE.convertStringToXML(htm);
+
+ if (!skip_callback && tinyMCE.settings['save_callback'] != "")
+ var content = eval(tinyMCE.settings['save_callback'] + "(inst.formTargetElementId,htm,inst.getBody());");
+
+ // Use callback content if available
+ if ((typeof(content) != "undefined") && content != null)
+ htm = content;
+
+ // Replace some weird entities (Bug: #1056343)
+ htm = tinyMCE.regexpReplace(htm, "(", "(", "gi");
+ htm = tinyMCE.regexpReplace(htm, ")", ")", "gi");
+ htm = tinyMCE.regexpReplace(htm, ";", ";", "gi");
+ htm = tinyMCE.regexpReplace(htm, """, """, "gi");
+ htm = tinyMCE.regexpReplace(htm, "^", "^", "gi");
+
+ if (inst.formElement)
+ inst.formElement.value = htm;
+ }
+};
+
+TinyMCE.prototype._setEventsEnabled = function(node, state) {
+ var events = new Array('onfocus','onblur','onclick','ondblclick',
+ 'onmousedown','onmouseup','onmouseover','onmousemove',
+ 'onmouseout','onkeypress','onkeydown','onkeydown','onkeyup');
+
+ var elms = node.getElementsByTagName("a");
+ for (var i=0; i<elms.length; i++) {
+ var event = "";
+
+ for (var x=0; x<events.length; x++) {
+ if ((event = tinyMCE.getAttrib(elms[i], events[x])) != '') {
+ event = tinyMCE.cleanupEventStr("" + event);
+
+ if (state)
+ event = "return true;" + event;
+ else
+ event = event.replace(/^return true;/gi, '');
+
+ elms[i].removeAttribute(events[x]);
+ elms[i].setAttribute(events[x], event);
+ }
+ }
+ }
+};
+
+TinyMCE.prototype.resetForm = function(form_index) {
+ var formObj = document.forms[form_index];
+
+ for (var n in tinyMCE.instances) {
+ var inst = tinyMCE.instances[n];
+
+ inst.switchSettings();
+
+ for (var i=0; i<formObj.elements.length; i++) {
+ if (inst.formTargetElementId == formObj.elements[i].name) {
+ inst.getBody().innerHTML = formObj.elements[i].value;
+ return;
+ }
+ }
+ }
+};
+
+TinyMCE.prototype.execInstanceCommand = function(editor_id, command, user_interface, value, focus) {
+ var inst = tinyMCE.getInstanceById(editor_id);
+ if (inst) {
+ if (typeof(focus) == "undefined")
+ focus = true;
+
+ if (focus)
+ inst.contentWindow.focus();
+
+ // Reset design mode if lost
+ inst.autoResetDesignMode();
+
+ this.selectedElement = inst.getFocusElement();
+ this.selectedInstance = inst;
+ tinyMCE.execCommand(command, user_interface, value);
+ }
+};
+
+TinyMCE.prototype.execCommand = function(command, user_interface, value) {
+ // Default input
+ user_interface = user_interface ? user_interface : false;
+ value = value ? value : null;
+
+ if (tinyMCE.selectedInstance)
+ tinyMCE.selectedInstance.switchSettings();
+
+ switch (command) {
+ case 'mceHelp':
+ var template = new Array();
+
+ template['file'] = 'about.htm';
+ template['width'] = 480;
+ template['height'] = 380;
+
+ tinyMCE.openWindow(template, {
+ tinymce_version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion,
+ tinymce_releasedate : tinyMCE.releaseDate,
+ inline : "yes"
+ });
+ return;
+
+ case 'mceFocus':
+ var inst = tinyMCE.getInstanceById(value);
+ if (inst)
+ inst.contentWindow.focus();
+ return;
+
+ case "mceAddControl":
+ case "mceAddEditor":
+ tinyMCE.addMCEControl(tinyMCE._getElementById(value), value);
+ return;
+
+ case "mceAddFrameControl":
+ tinyMCE.addMCEControl(tinyMCE._getElementById(value), value['element'], value['document']);
+ return;
+
+ case "mceRemoveControl":
+ case "mceRemoveEditor":
+ tinyMCE.removeMCEControl(value);
+ return;
+
+ case "mceResetDesignMode":
+ // Resets the designmode state of the editors in Gecko
+ if (!tinyMCE.isMSIE) {
+ for (var n in tinyMCE.instances) {
+ try {
+ tinyMCE.instances[n].getDoc().designMode = "on";
+ } catch (e) {
+ // Ignore any errors
+ }
+ }
+ }
+
+ return;
+ }
+
+ if (this.selectedInstance)
+ this.selectedInstance.execCommand(command, user_interface, value);
+ else if (tinyMCE.settings['focus_alert'])
+ alert(tinyMCELang['lang_focus_alert']);
+};
+
+TinyMCE.prototype.eventPatch = function(editor_id) {
+ // Remove odd, error
+ if (typeof(tinyMCE) == "undefined")
+ return true;
+
+ for (var i=0; i<document.frames.length; i++) {
+ if (document.frames[i].event) {
+ var event = document.frames[i].event;
+
+ event.target = event.srcElement;
+
+ TinyMCE.prototype.handleEvent(event);
+ return;
+ }
+ }
+};
+
+TinyMCE.prototype.unloadHandler = function() {
+ tinyMCE.triggerSave(true, true);
+};
+
+TinyMCE.prototype.addEventHandlers = function(editor_id) {
+ if (tinyMCE.isMSIE) {
+ var doc = document.frames[editor_id].document;
+
+ // Event patch
+ tinyMCE.addEvent(doc, "keypress", TinyMCE.prototype.eventPatch);
+ tinyMCE.addEvent(doc, "keyup", TinyMCE.prototype.eventPatch);
+ tinyMCE.addEvent(doc, "keydown", TinyMCE.prototype.eventPatch);
+ tinyMCE.addEvent(doc, "mouseup", TinyMCE.prototype.eventPatch);
+ tinyMCE.addEvent(doc, "click", TinyMCE.prototype.eventPatch);
+ } else {
+ var inst = tinyMCE.instances[editor_id];
+ var doc = inst.getDoc();
+
+ inst.switchSettings();
+
+ tinyMCE.addEvent(doc, "keypress", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "keydown", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "keyup", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "click", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "mouseup", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "mousedown", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "focus", tinyMCE.handleEvent);
+ tinyMCE.addEvent(doc, "blur", tinyMCE.handleEvent);
+
+ eval('try { doc.designMode = "On"; } catch(e) {}');
+ }
+};
+
+TinyMCE.prototype._createIFrame = function(replace_element) {
+ var iframe = document.createElement("iframe");
+ var id = replace_element.getAttribute("id");
+
+ iframe.setAttribute("id", id);
+ //iframe.setAttribute("className", "mceEditorArea");
+ iframe.setAttribute("border", "0");
+ iframe.setAttribute("frameBorder", "0");
+ iframe.setAttribute("marginWidth", "0");
+ iframe.setAttribute("marginHeight", "0");
+ iframe.setAttribute("leftMargin", "0");
+ iframe.setAttribute("topMargin", "0");
+ iframe.setAttribute("width", tinyMCE.settings['area_width']);
+ iframe.setAttribute("height", tinyMCE.settings['area_height']);
+ iframe.setAttribute("allowtransparency", "true");
+
+ if (tinyMCE.settings["auto_resize"])
+ iframe.setAttribute("scrolling", "no");
+
+ // Must have a src element in MSIE HTTPs breaks aswell as absoute URLs
+ if (tinyMCE.isMSIE)
+ iframe.setAttribute("src", this.settings['default_document']);
+
+ iframe.style.width = tinyMCE.settings['area_width'];
+ iframe.style.height = tinyMCE.settings['area_height'];
+
+ // MSIE 5.0 issue
+ if (tinyMCE.isMSIE)
+ replace_element.outerHTML = iframe.outerHTML;
+ else
+ replace_element.parentNode.replaceChild(iframe, replace_element);
+
+ if (tinyMCE.isMSIE)
+ return window.frames[id];
+ else
+ return iframe;
+};
+
+TinyMCE.prototype.setupContent = function(editor_id) {
+ var inst = tinyMCE.instances[editor_id];
+ var doc = inst.getDoc();
+ var head = doc.getElementsByTagName('head').item(0);
+ var content = inst.startContent;
+
+ inst.switchSettings();
+
+ // Not loaded correctly hit it again, Mozilla bug #997860
+ if (!tinyMCE.isMSIE && doc.title != "blank_page") {
+ // This part will remove the designMode status
+ doc.location.href = tinyMCE.baseURL + "/blank.htm";
+ window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 1000);
+ return;
+ }
+
+ if (!head) {
+ window.setTimeout("tinyMCE.setupContent('" + editor_id + "');", 10);
+ return;
+ }
+
+ // Import theme specific content CSS the user specific
+ tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/themes/" + inst.settings['theme'] + "/css/editor_content.css");
+ tinyMCE.importCSS(inst.getDoc(), inst.settings['content_css']);
+ tinyMCE.executeCallback('init_instance_callback', '_initInstance', 0, inst);
+
+ if (tinyMCE.settings['nowrap'])
+ doc.body.style.whiteSpace = "nowrap";
+
+ doc.body.dir = this.settings['directionality'];
+ doc.editorId = editor_id;
+
+ // Add on document element in Mozilla
+ if (!tinyMCE.isMSIE)
+ doc.documentElement.editorId = editor_id;
+
+ // Setup base element
+ base = doc.createElement("base");
+ base.setAttribute('href', tinyMCE.settings['base_href']);
+ head.appendChild(base);
+
+ // Replace new line characters to BRs
+ if (tinyMCE.settings['convert_newlines_to_brs']) {
+ content = tinyMCE.regexpReplace(content, "\r\n", "<br />", "gi");
+ content = tinyMCE.regexpReplace(content, "\r", "<br />", "gi");
+ content = tinyMCE.regexpReplace(content, "\n", "<br />", "gi");
+ }
+
+ // Call custom cleanup code
+ content = tinyMCE._customCleanup(inst, "insert_to_editor", content);
+
+ if (tinyMCE.isMSIE) {
+ // Ugly!!!
+ window.setInterval('try{tinyMCE.getCSSClasses(document.frames["' + editor_id + '"].document, "' + editor_id + '");}catch(e){}', 500);
+
+ if (tinyMCE.settings["force_br_newlines"])
+ document.frames[editor_id].document.styleSheets[0].addRule("p", "margin: 0px;");
+
+ var body = document.frames[editor_id].document.body;
+
+ tinyMCE.addEvent(body, "beforepaste", TinyMCE.prototype.eventPatch);
+ tinyMCE.addEvent(body, "beforecut", TinyMCE.prototype.eventPatch);
+
+ body.editorId = editor_id;
+ }
+
+ // Fix for bug #958637
+ if (!tinyMCE.isMSIE) {
+ var contentElement = inst.getDoc().createElement("body");
+ var doc = inst.getDoc();
+
+ contentElement.innerHTML = content;
+
+ // Remove weridness!
+ if (tinyMCE.settings['force_p_newlines'])
+ content = content.replace(new RegExp('<>', 'g'), "");
+
+ if (tinyMCE.settings['cleanup_on_startup'])
+ inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst, doc, this.settings, contentElement);
+ else {
+ // Convert all strong/em to b/i
+ content = tinyMCE.regexpReplace(content, "<strong", "<b", "gi");
+ content = tinyMCE.regexpReplace(content, "<em(/?)>", "<i$1>", "gi");
+ content = tinyMCE.regexpReplace(content, "<em ", "<i ", "gi");
+ content = tinyMCE.regexpReplace(content, "</strong>", "</b>", "gi");
+ content = tinyMCE.regexpReplace(content, "</em>", "</i>", "gi");
+ inst.getBody().innerHTML = content;
+ }
+
+ inst.convertAllRelativeURLs();
+ } else {
+ if (tinyMCE.settings['cleanup_on_startup']) {
+ tinyMCE._setHTML(inst.getDoc(), content);
+
+ // Produces permission denied error in MSIE 5.5
+ eval('try {inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst, inst.contentDocument, this.settings, inst.getBody());} catch(e) {}');
+ } else
+ tinyMCE._setHTML(inst.getDoc(), content);
+ }
+
+ // Fix for bug #957681
+ //inst.getDoc().designMode = inst.getDoc().designMode;
+
+ // Setup element references
+ var parentElm = document.getElementById(inst.editorId + '_parent');
+ if (parentElm.lastChild.nodeName.toLowerCase() == "input")
+ inst.formElement = parentElm.lastChild;
+ else
+ inst.formElement = parentElm.nextSibling;
+
+ tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual'], inst);
+ tinyMCE.executeCallback('setupcontent_callback', '_setupContent', 0, editor_id, inst.getBody(), inst.getDoc());
+
+ // Re-add design mode on mozilla
+ if (!tinyMCE.isMSIE)
+ TinyMCE.prototype.addEventHandlers(editor_id);
+
+ // Add blur handler
+ if (tinyMCE.isMSIE)
+ tinyMCE.addEvent(inst.getBody(), "blur", TinyMCE.prototype.eventPatch);
+
+ // Trigger node change, this call locks buttons for tables and so forth
+ tinyMCE.selectedInstance = inst;
+ tinyMCE.selectedElement = inst.contentWindow.document.body;
+ tinyMCE.triggerNodeChange(false, true);
+
+ // Call custom DOM cleanup
+ tinyMCE._customCleanup(inst, "insert_to_editor_dom", inst.getBody());
+ tinyMCE._customCleanup(inst, "setup_content_dom", inst.getBody());
+ tinyMCE._setEventsEnabled(inst.getBody(), true);
+
+ inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);
+ inst.undoLevels[inst.undoLevels.length] = inst.startContent;
+};
+
+TinyMCE.prototype.cancelEvent = function(e) {
+ if (tinyMCE.isMSIE) {
+ e.returnValue = false;
+ e.cancelBubble = true;
+ } else
+ e.preventDefault();
+};
+
+TinyMCE.prototype.removeTinyMCEFormElements = function(form_obj) {
+ // Disable all UI form elements that TinyMCE created
+ for (var i=0; i<form_obj.elements.length; i++) {
+ var elementId = form_obj.elements[i].name ? form_obj.elements[i].name : form_obj.elements[i].id;
+
+ if (elementId.indexOf('mce_editor_') == 0)
+ form_obj.elements[i].disabled = true;
+ }
+};
+
+TinyMCE.prototype.accessibleEventHandler = function(e) {
+ var win = this._win;
+ e = tinyMCE.isMSIE ? win.event : e;
+ var elm = tinyMCE.isMSIE ? e.srcElement : e.target;
+
+ // Piggyback onchange
+ if (elm.nodeName == "SELECT" && !elm.oldonchange) {
+ elm.oldonchange = elm.onchange;
+ elm.onchange = null;
+ }
+
+ // Execute onchange and remove piggyback
+ if (e.keyCode == 13) {
+ elm.onchange = elm.oldonchange;
+ elm.onchange();
+ elm.oldonchange = null;
+ tinyMCE.cancelEvent(e);
+ }
+};
+
+TinyMCE.prototype.addSelectAccessibility = function(e, select, win) {
+ // Add event handlers
+ if (!select._isAccessible) {
+ select.onkeydown = tinyMCE.accessibleEventHandler;
+ select._isAccessible = true;
+ select._win = win;
+ }
+};
+
+TinyMCE.prototype.handleEvent = function(e) {
+ // Remove odd, error
+ if (typeof(tinyMCE) == "undefined")
+ return true;
+
+ //tinyMCE.debug(e.type + " " + e.target.nodeName + " " + (e.relatedTarget ? e.relatedTarget.nodeName : ""));
+
+ switch (e.type) {
+ case "blur":
+ if (tinyMCE.selectedInstance)
+ tinyMCE.selectedInstance.execCommand('mceEndTyping');
+
+ return;
+
+ case "submit":
+ tinyMCE.removeTinyMCEFormElements(tinyMCE.isMSIE ? window.event.srcElement : e.target);
+ tinyMCE.triggerSave();
+ tinyMCE.isNotDirty = true;
+ return;
+
+ case "reset":
+ var formObj = tinyMCE.isMSIE ? window.event.srcElement : e.target;
+
+ for (var i=0; i<document.forms.length; i++) {
+ if (document.forms[i] == formObj)
+ window.setTimeout('tinyMCE.resetForm(' + i + ');', 10);
+ }
+
+ return;
+
+ case "keypress":
+ if (e.target.editorId) {
+ tinyMCE.selectedInstance = tinyMCE.instances[e.target.editorId];
+ } else {
+ if (e.target.ownerDocument.editorId)
+ tinyMCE.selectedInstance = tinyMCE.instances[e.target.ownerDocument.editorId];
+ }
+
+ if (tinyMCE.selectedInstance)
+ tinyMCE.selectedInstance.switchSettings();
+
+ // Insert space instead of
+/* if (tinyMCE.isGecko && e.charCode == 32) {
+ if (tinyMCE.selectedInstance._insertSpace()) {
+ // Cancel event
+ e.preventDefault();
+ return false;
+ }
+ }*/
+
+ // Insert P element
+ if (tinyMCE.isGecko && tinyMCE.settings['force_p_newlines'] && e.keyCode == 13 && !e.shiftKey) {
+ // Insert P element instead of BR
+ if (tinyMCE.selectedInstance._insertPara(e)) {
+ // Cancel event
+ tinyMCE.execCommand("mceAddUndoLevel");
+ e.preventDefault();
+ return false;
+ }
+ }
+
+ // Handle backspace
+ if (tinyMCE.isGecko && tinyMCE.settings['force_p_newlines'] && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
+ // Insert P element instead of BR
+ if (tinyMCE.selectedInstance._handleBackSpace(e.type)) {
+ // Cancel event
+ tinyMCE.execCommand("mceAddUndoLevel");
+ e.preventDefault();
+ return false;
+ }
+ }
+
+ // Mozilla custom key handling
+ if (tinyMCE.isGecko && e.ctrlKey && tinyMCE.settings['custom_undo_redo']) {
+ if (tinyMCE.settings['custom_undo_redo_keyboard_shortcuts']) {
+ if (e.charCode == 122) { // Ctrl+Z
+ tinyMCE.selectedInstance.execCommand("Undo");
+
+ // Cancel event
+ e.preventDefault();
+ return false;
+ }
+
+ if (e.charCode == 121) { // Ctrl+Y
+ tinyMCE.selectedInstance.execCommand("Redo");
+
+ // Cancel event
+ e.preventDefault();
+ return false;
+ }
+ }
+
+ if (e.charCode == 98) { // Ctrl+B
+ tinyMCE.selectedInstance.execCommand("Bold");
+
+ // Cancel event
+ e.preventDefault();
+ return false;
+ }
+
+ if (e.charCode == 105) { // Ctrl+I
+ tinyMCE.selectedInstance.execCommand("Italic");
+
+ // Cancel event
+ e.preventDefault();
+ return false;
+ }
+
+ if (e.charCode == 117) { // Ctrl+U
+ tinyMCE.selectedInstance.execCommand("Underline");
+
+ // Cancel event
+ e.preventDefault();
+ return false;
+ }
+ }
+
+ // Return key pressed
+ if (tinyMCE.isMSIE && tinyMCE.settings['force_br_newlines'] && e.keyCode == 13) {
+ if (e.target.editorId)
+ tinyMCE.selectedInstance = tinyMCE.instances[e.target.editorId];
+
+ if (tinyMCE.selectedInstance) {
+ var sel = tinyMCE.selectedInstance.getDoc().selection;
+ var rng = sel.createRange();
+
+ if (tinyMCE.getParentElement(rng.parentElement(), "li") != null)
+ return false;
+
+ // Cancel event
+ e.returnValue = false;
+ e.cancelBubble = true;
+
+ // Insert BR element
+ rng.pasteHTML("<br />");
+ rng.collapse(false);
+ rng.select();
+
+ tinyMCE.execCommand("mceAddUndoLevel");
+ tinyMCE.triggerNodeChange(false);
+ return false;
+ }
+ }
+
+ // Backspace or delete
+ if (e.keyCode == 8 || e.keyCode == 46) {
+ tinyMCE.selectedElement = e.target;
+ tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a");
+ tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img");
+ tinyMCE.triggerNodeChange(false);
+ }
+
+ return false;
+ break;
+
+ case "keyup":
+ case "keydown":
+ if (e.target.editorId)
+ tinyMCE.selectedInstance = tinyMCE.instances[e.target.editorId];
+ else
+ return;
+
+ if (tinyMCE.selectedInstance)
+ tinyMCE.selectedInstance.switchSettings();
+
+ var inst = tinyMCE.selectedInstance;
+
+ // Handle backspace
+ if (tinyMCE.isGecko && tinyMCE.settings['force_p_newlines'] && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
+ // Insert P element instead of BR
+ if (tinyMCE.selectedInstance._handleBackSpace(e.type)) {
+ // Cancel event
+ tinyMCE.execCommand("mceAddUndoLevel");
+ e.preventDefault();
+ return false;
+ }
+ }
+
+ tinyMCE.selectedElement = null;
+ tinyMCE.selectedNode = null;
+ var elm = tinyMCE.selectedInstance.getFocusElement();
+ tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a");
+ tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img");
+ tinyMCE.selectedElement = elm;
+
+ // Update visualaids on tabs
+ if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9)
+ tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings['visual'], tinyMCE.selectedInstance);
+
+ // Run image/link fix on Gecko if diffrent document base on paste
+ if (tinyMCE.isGecko && tinyMCE.settings['document_base_url'] != "" + document.location.href && e.type == "keyup" && e.ctrlKey && e.keyCode == 86)
+ tinyMCE.selectedInstance.fixBrokenURLs();
+
+ // Fix empty elements on return/enter, check where enter occured
+ if (tinyMCE.isMSIE && e.type == "keydown" && e.keyCode == 13)
+ tinyMCE.enterKeyElement = tinyMCE.selectedInstance.getFocusElement();
+
+ // Fix empty elements on return/enter
+ if (tinyMCE.isMSIE && e.type == "keyup" && e.keyCode == 13) {
+ var elm = tinyMCE.enterKeyElement;
+ if (elm) {
+ var re = new RegExp('^HR|IMG|BR$','g'); // Skip these
+ var dre = new RegExp('^H[1-6]$','g'); // Add double on these
+
+ if (!elm.hasChildNodes() && !re.test(elm.nodeName)) {
+ if (dre.test(elm.nodeName))
+ elm.innerHTML = " ";
+ else
+ elm.innerHTML = " ";
+ }
+ }
+ }
+
+ // Check if it's a position key
+ var keys = tinyMCE.posKeyCodes;
+ var posKey = false;
+ for (var i=0; i<keys.length; i++) {
+ if (keys[i] == e.keyCode) {
+ posKey = true;
+ break;
+ }
+ }
+
+ //tinyMCE.debug(e.keyCode);
+
+ // MSIE custom key handling
+ if (tinyMCE.isMSIE && tinyMCE.settings['custom_undo_redo']) {
+ var keys = new Array(8,46); // Backspace,Delete
+ for (var i=0; i<keys.length; i++) {
+ if (keys[i] == e.keyCode) {
+ if (e.type == "keyup")
+ tinyMCE.triggerNodeChange(false);
+ }
+ }
+
+ if (tinyMCE.settings['custom_undo_redo_keyboard_shortcuts']) {
+ if (e.keyCode == 90 && e.ctrlKey && e.type == "keydown") { // Ctrl+Z
+ tinyMCE.selectedInstance.execCommand("Undo");
+ tinyMCE.triggerNodeChange(false);
+ }
+
+ if (e.keyCode == 89 && e.ctrlKey && e.type == "keydown") { // Ctrl+Y
+ tinyMCE.selectedInstance.execCommand("Redo");
+ tinyMCE.triggerNodeChange(false);
+ }
+
+ if ((e.keyCode == 90 || e.keyCode == 89) && e.ctrlKey) {
+ // Cancel event
+ e.returnValue = false;
+ e.cancelBubble = true;
+ return false;
+ }
+ }
+ }
+
+ // Handle Undo/Redo when typing content
+
+ // Start typing (non position key)
+ if (!posKey && e.type == "keyup")
+ tinyMCE.execCommand("mceStartTyping");
+
+ // End typing (position key) or some Ctrl event
+ if (e.type == "keyup" && (posKey || e.ctrlKey))
+ tinyMCE.execCommand("mceEndTyping");
+
+ if (posKey && e.type == "keyup")
+ tinyMCE.triggerNodeChange(false);
+ break;
+
+ case "mousedown":
+ case "mouseup":
+ case "click":
+ case "focus":
+ if (tinyMCE.selectedInstance)
+ tinyMCE.selectedInstance.switchSettings();
+
+ // Check instance event trigged on
+ var targetBody = tinyMCE.getParentElement(e.target, "body");
+ for (var instanceName in tinyMCE.instances) {
+ var inst = tinyMCE.instances[instanceName];
+
+ // Reset design mode if lost (on everything just in case)
+ inst.autoResetDesignMode();
+
+ if (inst.getBody() == targetBody) {
+ tinyMCE.selectedInstance = inst;
+ tinyMCE.selectedElement = e.target;
+ tinyMCE.linkElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "a");
+ tinyMCE.imgElement = tinyMCE.getParentElement(tinyMCE.selectedElement, "img");
+ break;
+ }
+ }
+
+ if (tinyMCE.isSafari) {
+ tinyMCE.selectedInstance.lastSafariSelection = tinyMCE.selectedInstance.getBookmark();
+ tinyMCE.selectedInstance.lastSafariSelectedElement = tinyMCE.selectedElement;
+
+ var lnk = tinyMCE.getParentElement(tinyMCE.selectedElement, "a");
+
+ // Patch the darned link
+ if (lnk && e.type == "mousedown") {
+ lnk.setAttribute("mce_real_href", lnk.getAttribute("href"));
+ lnk.setAttribute("href", "javascript:void(0);");
+ }
+
+ // Patch back
+ if (lnk && e.type == "click") {
+ window.setTimeout(function() {
+ lnk.setAttribute("href", lnk.getAttribute("mce_real_href"));
+ lnk.removeAttribute("mce_real_href");
+ }, 10);
+ }
+ }
+
+ // Reset selected node
+ if (e.type != "focus")
+ tinyMCE.selectedNode = null;
+
+ tinyMCE.triggerNodeChange(false);
+ tinyMCE.execCommand("mceEndTyping");
+
+ if (e.type == "mouseup")
+ tinyMCE.execCommand("mceAddUndoLevel");
+
+ // Just in case
+ if (!tinyMCE.selectedInstance && e.target.editorId)
+ tinyMCE.selectedInstance = tinyMCE.instances[e.target.editorId];
+
+ // Run image/link fix on Gecko if diffrent document base
+ if (tinyMCE.isGecko && tinyMCE.settings['document_base_url'] != "" + document.location.href)
+ window.setTimeout('tinyMCE.getInstanceById("' + inst.editorId + '").fixBrokenURLs();', 10);
+
+ return false;
+ break;
+ } // end switch
+}; // end function
+
+TinyMCE.prototype.switchClass = function(element, class_name, lock_state) {
+ var lockChanged = false;
+
+ if (typeof(lock_state) != "undefined" && element != null) {
+ element.classLock = lock_state;
+ lockChanged = true;
+ }
+
+ if (element != null && (lockChanged || !element.classLock)) {
+ element.oldClassName = element.className;
+ element.className = class_name;
+ }
+};
+
+TinyMCE.prototype.restoreAndSwitchClass = function(element, class_name) {
+ if (element != null && !element.classLock) {
+ this.restoreClass(element);
+ this.switchClass(element, class_name);
+ }
+};
+
+TinyMCE.prototype.switchClassSticky = function(element_name, class_name, lock_state) {
+ var element, lockChanged = false;
+
+ // Performance issue
+ if (!this.stickyClassesLookup[element_name])
+ this.stickyClassesLookup[element_name] = document.getElementById(element_name);
+
+// element = document.getElementById(element_name);
+ element = this.stickyClassesLookup[element_name];
+
+ if (typeof(lock_state) != "undefined" && element != null) {
+ element.classLock = lock_state;
+ lockChanged = true;
+ }
+
+ if (element != null && (lockChanged || !element.classLock)) {
+ element.className = class_name;
+ element.oldClassName = class_name;
+ }
+};
+
+TinyMCE.prototype.restoreClass = function(element) {
+ if (element != null && element.oldClassName && !element.classLock) {
+ element.className = element.oldClassName;
+ element.oldClassName = null;
+ }
+};
+
+TinyMCE.prototype.setClassLock = function(element, lock_state) {
+ if (element != null)
+ element.classLock = lock_state;
+};
+
+TinyMCE.prototype.addEvent = function(obj, name, handler) {
+ if (tinyMCE.isMSIE) {
+ obj.attachEvent("on" + name, handler);
+ } else
+ obj.addEventListener(name, handler, false);
+};
+
+TinyMCE.prototype.submitPatch = function() {
+ tinyMCE.removeTinyMCEFormElements(this);
+ tinyMCE.triggerSave();
+ this.oldSubmit();
+ tinyMCE.isNotDirty = true;
+};
+
+TinyMCE.prototype.onLoad = function() {
+ for (var c=0; c<tinyMCE.configs.length; c++) {
+ tinyMCE.settings = tinyMCE.configs[c];
+
+ var selector = tinyMCE.getParam("editor_selector");
+ var deselector = tinyMCE.getParam("editor_deselector");
+ var elementRefAr = new Array();
+
+ // Add submit triggers
+ if (document.forms && tinyMCE.settings['add_form_submit_trigger'] && !tinyMCE.submitTriggers) {
+ for (var i=0; i<document.forms.length; i++) {
+ var form = document.forms[i];
+
+ tinyMCE.addEvent(form, "submit", TinyMCE.prototype.handleEvent);
+ tinyMCE.addEvent(form, "reset", TinyMCE.prototype.handleEvent);
+ tinyMCE.submitTriggers = true; // Do it only once
+
+ // Patch the form.submit function
+ if (tinyMCE.settings['submit_patch']) {
+ try {
+ form.oldSubmit = form.submit;
+ form.submit = TinyMCE.prototype.submitPatch;
+ } catch (e) {
+ // Do nothing
+ }
+ }
+ }
+ }
+
+ // Add editor instances based on mode
+ var mode = tinyMCE.settings['mode'];
+ switch (mode) {
+ case "exact":
+ var elements = tinyMCE.getParam('elements', '', true, ',');
+
+ for (var i=0; i<elements.length; i++) {
+ var element = tinyMCE._getElementById(elements[i]);
+ var trigger = element ? element.getAttribute(tinyMCE.settings['textarea_trigger']) : "";
+
+ if (tinyMCE.getAttrib(element, "class").indexOf(deselector) != -1)
+ continue;
+
+ if (trigger == "false")
+ continue;
+
+ if (tinyMCE.settings['ask'] && element) {
+ elementRefAr[elementRefAr.length] = element;
+ continue;
+ }
+
+ if (element)
+ tinyMCE.addMCEControl(element, elements[i]);
+ else if (tinyMCE.settings['debug'])
+ alert("Error: Could not find element by id or name: " + elements[i]);
+ }
+ break;
+
+ case "specific_textareas":
+ case "textareas":
+ var nodeList = document.getElementsByTagName("textarea");
+
+ for (var i=0; i<nodeList.length; i++) {
+ var elm = nodeList.item(i);
+ var trigger = elm.getAttribute(tinyMCE.settings['textarea_trigger']);
+
+ if (selector != '' && tinyMCE.getAttrib(elm, "class").indexOf(selector) == -1)
+ continue;
+
+ if (tinyMCE.getAttrib(elm, "class").indexOf(deselector) != -1)
+ continue;
+
+ if ((mode == "specific_textareas" && trigger == "true") || (mode == "textareas" && trigger != "false"))
+ elementRefAr[elementRefAr.length] = elm;
+ }
+ break;
+ }
+
+ for (var i=0; i<elementRefAr.length; i++) {
+ var element = elementRefAr[i];
+ var elementId = element.name ? element.name : element.id;
+
+ if (tinyMCE.settings['ask']) {
+ // Focus breaks in Mozilla
+ if (tinyMCE.isGecko) {
+ var settings = tinyMCE.settings;
+
+ tinyMCE.addEvent(element, "focus", function (e) {window.setTimeout(function() {TinyMCE.prototype.confirmAdd(e, settings);}, 10);});
+ } else {
+ var settings = tinyMCE.settings;
+
+ tinyMCE.addEvent(element, "focus", function () { TinyMCE.prototype.confirmAdd(null, settings); });
+ }
+ } else
+ tinyMCE.addMCEControl(element, elementId);
+ }
+
+ // Handle auto focus
+ if (tinyMCE.settings['auto_focus']) {
+ window.setTimeout(function () {
+ var inst = tinyMCE.getInstanceById(tinyMCE.settings['auto_focus']);
+ inst.selectNode(inst.getBody(), true, true);
+ inst.contentWindow.focus();
+ }, 10);
+ }
+
+ tinyMCE.executeCallback('oninit', '_oninit', 0);
+ }
+};
+
+TinyMCE.prototype.removeMCEControl = function(editor_id) {
+ var inst = tinyMCE.getInstanceById(editor_id);
+
+ if (inst) {
+ inst.switchSettings();
+
+ editor_id = inst.editorId;
+ var html = tinyMCE.getContent(editor_id);
+
+ // Remove editor instance from instances array
+ var tmpInstances = new Array();
+ for (var instanceName in tinyMCE.instances) {
+ var instance = tinyMCE.instances[instanceName];
+ if (instanceName != editor_id)
+ tmpInstances[instanceName] = instance;
+ }
+ tinyMCE.instances = tmpInstances;
+
+ tinyMCE.selectedElement = null;
+ tinyMCE.selectedInstance = null;
+
+ // Remove element
+ var replaceElement = document.getElementById(editor_id + "_parent");
+ var oldTargetElement = inst.oldTargetElement;
+ var targetName = oldTargetElement.nodeName.toLowerCase();
+
+ if (targetName == "textarea" || targetName == "input") {
+ // Just show the old text area
+ replaceElement.parentNode.removeChild(replaceElement);
+ oldTargetElement.style.display = "inline";
+ oldTargetElement.value = html;
+ } else {
+ oldTargetElement.innerHTML = html;
+
+ replaceElement.parentNode.insertBefore(oldTargetElement, replaceElement);
+ replaceElement.parentNode.removeChild(replaceElement);
+ }
+ }
+};
+
+TinyMCE.prototype._cleanupElementName = function(element_name, element) {
+ var name = "";
+
+ element_name = element_name.toLowerCase();
+
+ // Never include body
+ if (element_name == "body")
+ return null;
+
+ // If verification mode
+ if (tinyMCE.cleanup_verify_html) {
+ // Check if invalid element
+ for (var i=0; i<tinyMCE.cleanup_invalidElements.length; i++) {
+ if (tinyMCE.cleanup_invalidElements[i] == element_name)
+ return null;
+ }
+
+ // Check if valid element
+ var validElement = false;
+ var elementAttribs = null;
+ for (var i=0; i<tinyMCE.cleanup_validElements.length && !elementAttribs; i++) {
+ for (var x=0, n=tinyMCE.cleanup_validElements[i][0].length; x<n; x++) {
+ var elmMatch = tinyMCE.cleanup_validElements[i][0][x];
+
+ if (elmMatch.charAt(0) == '+' || elmMatch.charAt(0) == '-')
+ elmMatch = elmMatch.substring(1);
+
+ // Handle wildcard/regexp
+ if (elmMatch.match(new RegExp('\\*|\\?|\\+', 'g')) != null) {
+ elmMatch = elmMatch.replace(new RegExp('\\?', 'g'), '(\\S?)');
+ elmMatch = elmMatch.replace(new RegExp('\\+', 'g'), '(\\S+)');
+ elmMatch = elmMatch.replace(new RegExp('\\*', 'g'), '(\\S*)');
+ elmMatch = "^" + elmMatch + "$";
+ if (element_name.match(new RegExp(elmMatch, 'g'))) {
+ elementAttribs = tinyMCE.cleanup_validElements[i];
+ validElement = true;
+ break;
+ }
+ }
+
+ // Handle non regexp
+ if (element_name == elmMatch) {
+ elementAttribs = tinyMCE.cleanup_validElements[i];
+ validElement = true;
+ element_name = elementAttribs[0][0];
+ break;
+ }
+ }
+ }
+
+ if (!validElement)
+ return null;
+ }
+
+ if (element_name.charAt(0) == '+' || element_name.charAt(0) == '-')
+ name = element_name.substring(1);
+
+ // Special Mozilla stuff
+ if (!tinyMCE.isMSIE) {
+ // Fix for bug #958498
+ if (name == "strong" && !tinyMCE.cleanup_on_save)
+ element_name = "b";
+ else if (name == "em" && !tinyMCE.cleanup_on_save)
+ element_name = "i";
+ }
+
+ var elmData = new Object();
+
+ elmData.element_name = element_name;
+ elmData.valid_attribs = elementAttribs;
+
+ return elmData;
+};
+
+/**
+ * This function moves CSS styles to/from attributes.
+ */
+TinyMCE.prototype._moveStyle = function(elm, style, attrib) {
+ if (tinyMCE.cleanup_inline_styles) {
+ var val = tinyMCE.getAttrib(elm, attrib);
+
+ if (val != '') {
+ val = '' + val;
+
+ switch (attrib) {
+ case "background":
+ val = "url('" + val + "');";
+ break;
+
+ case "bordercolor":
+ if (elm.style.borderStyle == '' || elm.style.borderStyle == 'none')
+ elm.style.borderStyle = 'solid';
+ break;
+
+ case "border":
+ case "width":
+ case "height":
+ if (attrib == "border" && elm.style.borderWidth > 0)
+ return;
+
+ if (val.indexOf('%') == -1)
+ val += 'px';
+ break;
+
+ case "vspace":
+ case "hspace":
+ elm.style.marginTop = val + "px";
+ elm.style.marginBottom = val + "px";
+ elm.removeAttribute(attrib);
+ return;
+
+ case "align":
+ if (elm.nodeName == "IMG") {
+ if (tinyMCE.isMSIE)
+ elm.style.styleFloat = val;
+ else
+ elm.style.cssFloat = val;
+ } else
+ elm.style.textAlign = val;
+
+ elm.removeAttribute(attrib);
+ return;
+ }
+
+ if (val != '') {
+ eval('elm.style.' + style + ' = val;');
+ elm.removeAttribute(attrib);
+ }
+ }
+ } else {
+ if (style == '')
+ return;
+
+ var val = eval('elm.style.' + style) == '' ? tinyMCE.getAttrib(elm, attrib) : eval('elm.style.' + style);
+ val = val == null ? '' : '' + val;
+
+ switch (attrib) {
+ // Always move background to style
+ case "background":
+ if (val.indexOf('url') == -1 && val != '')
+ val = "url('" + val + "');";
+
+ if (val != '') {
+ elm.style.backgroundImage = val;
+ elm.removeAttribute(attrib);
+ }
+ return;
+
+ case "border":
+ case "width":
+ case "height":
+ val = val.replace('px', '');
+ break;
+
+ case "align":
+ if (tinyMCE.getAttrib(elm, 'align') == '') {
+ if (elm.nodeName == "IMG") {
+ if (tinyMCE.isMSIE && elm.style.styleFloat != '') {
+ val = elm.style.styleFloat;
+ style = 'styleFloat';
+ } else if (tinyMCE.isGecko && elm.style.cssFloat != '') {
+ val = elm.style.cssFloat;
+ style = 'cssFloat';
+ }
+ }
+ }
+ break;
+ }
+
+ if (val != '') {
+ elm.removeAttribute(attrib);
+ elm.setAttribute(attrib, val);
+ eval('elm.style.' + style + ' = "";');
+ }
+ }
+};
+
+TinyMCE.prototype._cleanupAttribute = function(valid_attributes, element_name, attribute_node, element_node) {
+ var attribName = attribute_node.nodeName.toLowerCase();
+ var attribValue = attribute_node.nodeValue;
+ var attribMustBeValue = null;
+ var verified = false;
+
+ // Mozilla attibute, remove them
+ if (attribName.indexOf('moz_') != -1)
+ return null;
+
+ // Mozilla fix for drag-drop/copy/paste images
+ if (!tinyMCE.isMSIE && (attribName == "mce_real_href" || attribName == "mce_real_src")) {
+ if (!tinyMCE.cleanup_on_save) {
+ var attrib = new Object();
+
+ attrib.name = attribName;
+ attrib.value = attribValue;
+
+ return attrib;
+ } else
+ return null;
+ }
+
+ // Auto verify
+ if (attribName == "mce_onclick")
+ verified = true;
+
+ // Verify attrib
+ if (tinyMCE.cleanup_verify_html && !verified) {
+ for (var i=1; i<valid_attributes.length; i++) {
+ var attribMatch = valid_attributes[i][0];
+ var re = null;
+
+ // Build regexp from wildcard
+ if (attribMatch.match(new RegExp('\\*|\\?|\\+', 'g')) != null) {
+ attribMatch = attribMatch.replace(new RegExp('\\?', 'g'), '(\\S?)');
+ attribMatch = attribMatch.replace(new RegExp('\\+', 'g'), '(\\S+)');
+ attribMatch = attribMatch.replace(new RegExp('\\*', 'g'), '(\\S*)');
+ attribMatch = "^" + attribMatch + "$";
+ re = new RegExp(attribMatch, 'g');
+ }
+
+ if ((re && attribName.match(re) != null) || attribName == attribMatch) {
+ verified = true;
+ attribMustBeValue = valid_attributes[i][3];
+ break;
+ }
+ }
+
+ if (!verified)
+ return false;
+ } else
+ verified = true;
+
+ // Treat some attribs diffrent
+ switch (attribName) {
+ case "size":
+ if (tinyMCE.isMSIE5 && element_name == "font")
+ attribValue = element_node.size;
+ break;
+
+ case "width":
+ case "height":
+ case "border":
+ // Old MSIE needs this
+ if (tinyMCE.isMSIE5)
+ attribValue = eval("element_node." + attribName);
+ break;
+
+ case "color":
+ if (tinyMCE.isMSIE5 && element_name == "font")
+ attribValue = element_node.color;
+ break;
+
+ case "class":
+ if (element_name == "table" || element_name == "td") {
+ // Handle visual aid
+ if (tinyMCE.cleanup_visual_table_class != "")
+ attribValue = tinyMCE.getVisualAidClass(attribValue, !tinyMCE.cleanup_on_save);
+ }
+
+ if (!tinyMCE._verifyClass(element_node) || attribValue == "")
+ return null;
+
+ break;
+
+ case "onfocus":
+ case "onblur":
+ case "onclick":
+ case "ondblclick":
+ case "onmousedown":
+ case "onmouseup":
+ case "onmouseover":
+ case "onmousemove":
+ case "onmouseout":
+ case "onkeypress":
+ case "onkeydown":
+ case "onkeydown":
+ case "onkeyup":
+ attribValue = tinyMCE.cleanupEventStr("" + attribValue);
+
+ if (attribValue.indexOf('return false;') == 0)
+ attribValue = attribValue.substring(14);
+
+ break;
+
+ case "style":
+ attribValue = tinyMCE.serializeStyle(tinyMCE.parseStyle(element_node.style.cssText));
+ break;
+
+ // Convert the URLs of these
+ case "href":
+ case "src":
+ // Fix for dragdrop/copy paste Mozilla issue
+ if (!tinyMCE.isMSIE && attribName == "href" && element_node.getAttribute("mce_real_href"))
+ attribValue = element_node.getAttribute("mce_real_href");
+
+ // Fix for dragdrop/copy paste Mozilla issue
+ if (!tinyMCE.isMSIE && attribName == "src" && element_node.getAttribute("mce_real_src"))
+ attribValue = element_node.getAttribute("mce_real_src");
+
+ // Force absolute URLs in Firefox
+ if (tinyMCE.isGecko && !tinyMCE.settings['relative_urls'])
+ attribValue = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], attribValue);
+
+ attribValue = eval(tinyMCE.cleanup_urlconverter_callback + "(attribValue, element_node, tinyMCE.cleanup_on_save);");
+ break;
+
+ case "colspan":
+ case "rowspan":
+ // Not needed
+ if (attribValue == "1")
+ return null;
+ break;
+
+ // Skip these
+ case "_moz-userdefined":
+ case "editorid":
+ case "mce_real_href":
+ case "mce_real_src":
+ return null;
+ }
+
+ // Not the must be value
+ if (attribMustBeValue != null) {
+ var isCorrect = false;
+ for (var i=0; i<attribMustBeValue.length; i++) {
+ if (attribValue == attribMustBeValue[i]) {
+ isCorrect = true;
+ break;
+ }
+ }
+
+ if (!isCorrect)
+ return null;
+ }
+
+ var attrib = new Object();
+
+ attrib.name = attribName;
+ attrib.value = attribValue;
+
+ return attrib;
+};
+
+TinyMCE.prototype.parseStyle = function(str) {
+ var ar = new Array();
+ var st = str.split(';');
+
+ for (var i=0; i<st.length; i++) {
+ if (st[i] == '')
+ continue;
+
+ var re = new RegExp('^\\s*([^:]*):\\s*(.*)\\s*$');
+ var pa = st[i].replace(re, '$1||$2').split('||');
+//tinyMCE.debug(str, pa[0] + "=" + pa[1], st[i].replace(re, '$1||$2'));
+ if (pa.length == 2)
+ ar[pa[0].toLowerCase()] = pa[1];
+ }
+
+ return ar;
+};
+
+TinyMCE.prototype.compressStyle = function(ar, pr, sf, res) {
+ var box = new Array();
+
+ box[0] = ar[pr + '-top' + sf];
+ box[1] = ar[pr + '-left' + sf];
+ box[2] = ar[pr + '-right' + sf];
+ box[3] = ar[pr + '-bottom' + sf];
+
+ for (var i=0; i<box.length; i++) {
+ if (box[i] == null)
+ return;
+
+ for (var a=0; a<box.length; a++) {
+ if (box[a] != box[i])
+ return;
+ }
+ }
+
+ // They are all the same
+ ar[res] = box[0];
+ ar[pr + '-top' + sf] = null;
+ ar[pr + '-left' + sf] = null;
+ ar[pr + '-right' + sf] = null;
+ ar[pr + '-bottom' + sf] = null;
+};
+
+TinyMCE.prototype.serializeStyle = function(ar) {
+ var str = "";
+
+ // Compress box
+ tinyMCE.compressStyle(ar, "border", "", "border");
+ tinyMCE.compressStyle(ar, "border", "-width", "border-width");
+ tinyMCE.compressStyle(ar, "border", "-color", "border-color");
+
+ for (var key in ar) {
+ var val = ar[key];
+
+ if (val != null && val != '') {
+ val = '' + val; // Force string
+
+ // Fix style URL
+ val = val.replace(new RegExp("url\\(\\'?([^\\']*)\\'?\\)", 'gi'), "url('$1')");
+
+ if (val != "url('')")
+ str += key.toLowerCase() + ": " + val + "; ";
+ }
+ }
+
+ if (new RegExp('; $').test(str))
+ str = str.substring(0, str.length - 2);
+
+ return str;
+};
+
+TinyMCE.prototype._verifyClass = function(node) {
+ // Sometimes the class gets set to null, weird Gecko bug?
+ if (tinyMCE.isGecko) {
+ var className = node.getAttribute('class');
+ if (!className)
+ return false;
+ }
+
+ // Trim CSS class
+ if (tinyMCE.isMSIE)
+ var className = node.getAttribute('className');
+
+ if (tinyMCE.cleanup_verify_css_classes && tinyMCE.cleanup_on_save) {
+ var csses = tinyMCE.getCSSClasses();
+ nonDefinedCSS = true;
+ for (var c=0; c<csses.length; c++) {
+ if (csses[c] == className) {
+ nonDefinedCSS = false;
+ break;
+ }
+ }
+
+ if (nonDefinedCSS && className.indexOf('mce_') != 0) {
+ node.removeAttribute('className');
+ node.removeAttribute('class');
+ return false;
+ }
+ }
+
+ return true;
+};
+
+TinyMCE.prototype.cleanupNode = function(node) {
+ var output = "";
+
+ switch (node.nodeType) {
+ case 1: // Element
+ var elementData = tinyMCE._cleanupElementName(node.nodeName, node);
+ var elementName = elementData ? elementData.element_name : null;
+ var elementValidAttribs = elementData ? elementData.valid_attribs : null;
+ var elementAttribs = "";
+ var openTag = false, nonEmptyTag = false;
+
+ if (elementName != null && elementName.charAt(0) == '+') {
+ elementName = elementName.substring(1);
+ openTag = true;
+ }
+
+ if (elementName != null && elementName.charAt(0) == '-') {
+ elementName = elementName.substring(1);
+ nonEmptyTag = true;
+ }
+
+ // Checking DOM tree for MSIE weirdness!!
+ if (tinyMCE.isMSIE && tinyMCE.settings['fix_content_duplication']) {
+ var lookup = tinyMCE.cleanup_elementLookupTable;
+
+ for (var i=0; i<lookup.length; i++) {
+ // Found element reference else were, hmm?
+ if (lookup[i] == node)
+ return output;
+ }
+
+ // Add element to lookup table
+ lookup[lookup.length] = node;
+ }
+
+ // Element not valid (only render children)
+ if (!elementName) {
+ if (node.hasChildNodes()) {
+ for (var i=0; i<node.childNodes.length; i++)
+ output += this.cleanupNode(node.childNodes[i]);
+ }
+
+ return output;
+ }
+
+ if (tinyMCE.cleanup_on_save) {
+ if (node.nodeName == "A" && node.className == "mceItemAnchor")
+ return '<a name="' + this.convertStringToXML(node.getAttribute("name")) + '"></a>';
+ }
+
+ // Handle inline/outline styles
+ if (tinyMCE.cleanup_inline_styles) {
+ var re = new RegExp("^(TABLE|TD|TR|IMG|HR)$");
+ if (re.test(node.nodeName)) {
+ tinyMCE._moveStyle(node, 'width', 'width');
+ tinyMCE._moveStyle(node, 'height', 'height');
+ tinyMCE._moveStyle(node, 'borderWidth', 'border');
+ tinyMCE._moveStyle(node, '', 'vspace');
+ tinyMCE._moveStyle(node, '', 'hspace');
+ tinyMCE._moveStyle(node, 'textAlign', 'align');
+ tinyMCE._moveStyle(node, 'backgroundColor', 'bgColor');
+ tinyMCE._moveStyle(node, 'borderColor', 'borderColor');
+ tinyMCE._moveStyle(node, 'backgroundImage', 'background');
+
+ // Refresh element in old MSIE
+ if (tinyMCE.isMSIE5)
+ node.outerHTML = node.outerHTML;
+ } else if (tinyMCE.isBlockElement(node))
+ tinyMCE._moveStyle(node, 'textAlign', 'align');
+
+ if (node.nodeName == "FONT")
+ tinyMCE._moveStyle(node, 'color', 'color');
+ }
+
+ // Set attrib data
+ if (elementValidAttribs) {
+ for (var a=1; a<elementValidAttribs.length; a++) {
+ var attribName, attribDefaultValue, attribForceValue, attribValue;
+
+ attribName = elementValidAttribs[a][0];
+ attribDefaultValue = elementValidAttribs[a][1];
+ attribForceValue = elementValidAttribs[a][2];
+
+ if (attribDefaultValue != null || attribForceValue != null) {
+ var attribValue = node.getAttribute(attribName);
+
+ if (node.getAttribute(attribName) == null || node.getAttribute(attribName) == "")
+ attribValue = attribDefaultValue;
+
+ attribValue = attribForceValue ? attribForceValue : attribValue;
+
+ // Is to generate id
+ if (attribValue == "{$uid}")
+ attribValue = "uid_" + (tinyMCE.cleanup_idCount++);
+
+ // Add visual aid class
+ if (attribName == "class")
+ attribValue = tinyMCE.getVisualAidClass(attribValue, tinyMCE.cleanup_on_save);
+
+ node.setAttribute(attribName, attribValue);
+ //alert(attribName + "=" + attribValue);
+ }
+ }
+ }
+
+ // Remove empty tables
+ if (elementName == "table" && !node.hasChildNodes())
+ return "";
+
+ // Handle element attributes
+ if (node.attributes.length > 0) {
+ for (var i=0; i<node.attributes.length; i++) {
+ if (node.attributes[i].specified) {
+ // tinyMCE.debug(node.attributes[i].nodeName + "=" + node.attributes[i].nodeValue);
+ var attrib = tinyMCE._cleanupAttribute(elementValidAttribs, elementName, node.attributes[i], node);
+ if (attrib && attrib.value != "")
+ elementAttribs += " " + attrib.name + "=" + '"' + this.convertStringToXML("" + attrib.value) + '"';
+ }
+ }
+ }
+
+ // MSIE table summary fix
+ if (tinyMCE.isMSIE && elementName == "table" && node.getAttribute("summary") != null && elementAttribs.indexOf('summary') == -1) {
+ elementAttribs += " summary=" + '"' + this.convertStringToXML("" + node.getAttribute("summary")) + '"';
+ }
+
+ // MSIE form element issue
+ if (tinyMCE.isMSIE && elementName == "input") {
+ if (node.type) {
+ if (!elementAttribs.match(/ type=/g))
+ elementAttribs += " type=" + '"' + node.type + '"';
+ }
+
+ if (node.value) {
+ if (!elementAttribs.match(/ value=/g))
+ elementAttribs += " value=" + '"' + node.value + '"';
+ }
+ }
+
+ // Add nbsp to some elements
+ if ((elementName == "p" || elementName == "td") && (node.innerHTML == "" || node.innerHTML == " "))
+ return "<" + elementName + elementAttribs + ">" + this.convertStringToXML(String.fromCharCode(160)) + "</" + elementName + ">";
+
+ // Is MSIE script element
+ if (tinyMCE.isMSIE && elementName == "script")
+ return "<" + elementName + elementAttribs + ">" + node.text + "</" + elementName + ">";
+
+ // Clean up children
+ if (node.hasChildNodes()) {
+ // Force BR
+ if (elementName == "p" && tinyMCE.cleanup_force_br_newlines)
+ output += "<div" + elementAttribs + ">";
+ else
+ output += "<" + elementName + elementAttribs + ">";
+
+ for (var i=0; i<node.childNodes.length; i++)
+ output += this.cleanupNode(node.childNodes[i]);
+
+ // Force BR
+ if (elementName == "p" && tinyMCE.cleanup_force_br_newlines)
+ output += "</div><br />";
+ else
+ output += "</" + elementName + ">";
+ } else {
+ if (!nonEmptyTag) {
+ if (openTag)
+ output += "<" + elementName + elementAttribs + "></" + elementName + ">";
+ else
+ output += "<" + elementName + elementAttribs + " />";
+ }
+ }
+
+ return output;
+
+ case 3: // Text
+ // Do not convert script elements
+ if (node.parentNode.nodeName.toLowerCase() == "script")
+ return node.nodeValue;
+
+ return this.convertStringToXML(node.nodeValue);
+
+ case 8: // Comment
+ return "<!--" + node.nodeValue + "-->";
+
+ default: // Unknown
+ return "[UNKNOWN NODETYPE " + node.nodeType + "]";
+ }
+};
+
+TinyMCE.prototype.convertStringToXML = function(html_data) {
+ var output = "";
+
+ for (var i=0; i<html_data.length; i++) {
+ var chr = html_data.charCodeAt(i);
+
+ // Numeric entities
+ if (tinyMCE.settings['entity_encoding'] == "numeric") {
+ if (chr > 127)
+ output += '&#' + chr + ";";
+ else
+ output += String.fromCharCode(chr);
+
+ continue;
+ }
+
+ // Raw entities
+ if (tinyMCE.settings['entity_encoding'] == "raw") {
+ output += String.fromCharCode(chr);
+ continue;
+ }
+
+ // Named entities
+ if (typeof(tinyMCE.cleanup_entities["c" + chr]) != 'undefined' && tinyMCE.cleanup_entities["c" + chr] != '')
+ output += '&' + tinyMCE.cleanup_entities["c" + chr] + ';';
+ else
+ output += '' + String.fromCharCode(chr);
+ }
+
+ return output;
+};
+
+TinyMCE.prototype._getCleanupElementName = function(chunk) {
+ var pos;
+
+ if (chunk.charAt(0) == '+')
+ chunk = chunk.substring(1);
+
+ if (chunk.charAt(0) == '-')
+ chunk = chunk.substring(1);
+
+ if ((pos = chunk.indexOf('/')) != -1)
+ chunk = chunk.substring(0, pos);
+
+ if ((pos = chunk.indexOf('[')) != -1)
+ chunk = chunk.substring(0, pos);
+
+ return chunk;
+};
+
+TinyMCE.prototype._initCleanup = function() {
+ // Parse valid elements and attributes
+ var validElements = tinyMCE.settings["valid_elements"];
+ validElements = validElements.split(',');
+
+ // Handle extended valid elements
+ var extendedValidElements = tinyMCE.settings["extended_valid_elements"];
+ extendedValidElements = extendedValidElements.split(',');
+ for (var i=0; i<extendedValidElements.length; i++) {
+ var elementName = this._getCleanupElementName(extendedValidElements[i]);
+ var skipAdd = false;
+
+ // Check if it's defined before, if so override that one
+ for (var x=0; x<validElements.length; x++) {
+ if (this._getCleanupElementName(validElements[x]) == elementName) {
+ validElements[x] = extendedValidElements[i];
+ skipAdd = true;
+ break;
+ }
+ }
+
+ if (!skipAdd)
+ validElements[validElements.length] = extendedValidElements[i];
+ }
+
+ for (var i=0; i<validElements.length; i++) {
+ var item = validElements[i];
+
+ item = item.replace('[','|');
+ item = item.replace(']','');
+
+ // Split and convert
+ var attribs = item.split('|');
+ for (var x=0; x<attribs.length; x++)
+ attribs[x] = attribs[x].toLowerCase();
+
+ // Handle change elements
+ attribs[0] = attribs[0].split('/');
+
+ // Handle default attribute values
+ for (var x=1; x<attribs.length; x++) {
+ var attribName = attribs[x];
+ var attribDefault = null;
+ var attribForce = null;
+ var attribMustBe = null;
+
+ // Default value
+ if ((pos = attribName.indexOf('=')) != -1) {
+ attribDefault = attribName.substring(pos+1);
+ attribName = attribName.substring(0, pos);
+ }
+
+ // Force check
+ if ((pos = attribName.indexOf(':')) != -1) {
+ attribForce = attribName.substring(pos+1);
+ attribName = attribName.substring(0, pos);
+ }
+
+ // Force check
+ if ((pos = attribName.indexOf('<')) != -1) {
+ attribMustBe = attribName.substring(pos+1).split('?');
+ attribName = attribName.substring(0, pos);
+ }
+
+ attribs[x] = new Array(attribName, attribDefault, attribForce, attribMustBe);
+ }
+
+ validElements[i] = attribs;
+ }
+
+ var invalidElements = tinyMCE.settings['invalid_elements'].split(',');
+ for (var i=0; i<invalidElements.length; i++)
+ invalidElements[i] = invalidElements[i].toLowerCase();
+
+ // Set these for performance
+ tinyMCE.settings['cleanup_validElements'] = validElements;
+ tinyMCE.settings['cleanup_invalidElements'] = invalidElements;
+
+ // Setup entities
+ tinyMCE.settings['cleanup_entities'] = new Array();
+ var entities = tinyMCE.getParam('entities', '', true, ',');
+ for (var i=0; i<entities.length; i+=2)
+ tinyMCE.settings['cleanup_entities']['c' + entities[i]] = entities[i+1];
+};
+
+TinyMCE.prototype._cleanupHTML = function(inst, doc, config, element, visual, on_save) {
+ if (!tinyMCE.settings['cleanup'])
+ return element.innerHTML;
+
+ // Call custom cleanup code
+ tinyMCE._customCleanup(inst, on_save ? "get_from_editor_dom" : "insert_to_editor_dom", doc.body);
+
+ // Set these for performance
+ tinyMCE.cleanup_validElements = tinyMCE.settings['cleanup_validElements'];
+ tinyMCE.cleanup_entities = tinyMCE.settings['cleanup_entities'];
+ tinyMCE.cleanup_invalidElements = tinyMCE.settings['cleanup_invalidElements'];
+ tinyMCE.cleanup_verify_html = tinyMCE.settings['verify_html'];
+ tinyMCE.cleanup_force_br_newlines = tinyMCE.settings['force_br_newlines'];
+ tinyMCE.cleanup_urlconverter_callback = tinyMCE.settings['urlconverter_callback'];
+ tinyMCE.cleanup_verify_css_classes = tinyMCE.settings['verify_css_classes'];
+ tinyMCE.cleanup_visual_table_class = tinyMCE.settings['visual_table_class'];
+ tinyMCE.cleanup_apply_source_formatting = tinyMCE.settings['apply_source_formatting'];
+ tinyMCE.cleanup_inline_styles = tinyMCE.settings['inline_styles'];
+ tinyMCE.cleanup_visual_aid = visual;
+ tinyMCE.cleanup_on_save = on_save;
+ tinyMCE.cleanup_idCount = 0;
+ tinyMCE.cleanup_elementLookupTable = new Array();
+
+ var startTime = new Date().getTime();
+
+ // Cleanup madness that breaks the editor in MSIE
+ if (tinyMCE.isMSIE) {
+ // Remove null ids from HR elements, results in runtime error
+ var nodes = element.getElementsByTagName("hr");
+ for (var i=0; i<nodes.length; i++) {
+ if (nodes[i].id == "null")
+ nodes[i].removeAttribute("id");
+ }
+
+ element.innerHTML = tinyMCE.regexpReplace(element.innerHTML, '<p>[ \n\r]*<hr.*>[ \n\r]*</p>', '<hr />', 'gi');
+ element.innerHTML = tinyMCE.regexpReplace(element.innerHTML, '<!([^-(DOCTYPE)]* )|<!/[^-]*>', '', 'gi');
+ }
+
+ var html = this.cleanupNode(element);
+
+ if (tinyMCE.settings['debug'])
+ tinyMCE.debug("Cleanup process executed in: " + (new Date().getTime()-startTime) + " ms.");
+
+ // Remove pesky HR paragraphs
+ html = tinyMCE.regexpReplace(html, '<p><hr /></p>', '<hr />');
+ html = tinyMCE.regexpReplace(html, '<p> </p><hr /><p> </p>', '<hr />');
+ html = tinyMCE.regexpReplace(html, '<td>\\s*<br />\\s*</td>', '<td> </td>');
+
+ // Remove empty achors
+ html = html.replace(new RegExp('<a>(.*?)</a>', 'gi'), '$1');
+
+ // Remove some mozilla crap
+ if (!tinyMCE.isMSIE)
+ html = html.replace(new RegExp('<o:p _moz-userdefined="" />', 'g'), "");
+
+ if (tinyMCE.settings['apply_source_formatting']) {
+ html = html.replace(new RegExp('<(p|div)([^>]*)>', 'g'), "\n<$1$2>\n");
+ html = html.replace(new RegExp('<\/(p|div)([^>]*)>', 'g'), "\n</$1$2>\n");
+ html = html.replace(new RegExp('<br />', 'g'), "<br />\n");
+ }
+
+ if (tinyMCE.settings['force_br_newlines']) {
+ var re = new RegExp('<p> </p>', 'g');
+ html = html.replace(re, "<br />");
+ }
+
+ if (tinyMCE.settings['force_p_newlines']) {
+ // Remove weridness!
+ var re = new RegExp('<>', 'g');
+ html = html.replace(re, "");
+ }
+
+ if (tinyMCE.settings['remove_linebreaks'])
+ html = html.replace(new RegExp('\r|\n', 'g'), ' ');
+
+ // Call custom cleanup code
+ html = tinyMCE._customCleanup(inst, on_save ? "get_from_editor" : "insert_to_editor", html);
+
+ // Emtpy node, return empty
+ var chk = tinyMCE.regexpReplace(html, "[ \t\r\n]", "").toLowerCase();
+ if (chk == "<br/>" || chk == "<br>" || chk == "<p> </p>" || chk == "<p> </p>" || chk == "<p></p>")
+ html = "";
+
+ if (tinyMCE.settings["preformatted"])
+ return "<pre>" + html + "</pre>";
+
+ return html;
+};
+
+TinyMCE.prototype.insertLink = function(href, target, title, onclick, style_class) {
+ tinyMCE.execCommand('mceBeginUndoLevel');
+
+ if (this.selectedInstance && this.selectedElement && this.selectedElement.nodeName.toLowerCase() == "img") {
+ var doc = this.selectedInstance.getDoc();
+ var linkElement = tinyMCE.getParentElement(this.selectedElement, "a");
+ var newLink = false;
+
+ if (!linkElement) {
+ linkElement = doc.createElement("a");
+ newLink = true;
+ }
+
+ href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, linkElement);");
+ tinyMCE.setAttrib(linkElement, 'href', href);
+ tinyMCE.setAttrib(linkElement, 'target', target);
+ tinyMCE.setAttrib(linkElement, 'title', title);
+ tinyMCE.setAttrib(linkElement, 'onclick', onclick);
+ tinyMCE.setAttrib(linkElement, 'class', style_class);
+
+ if (newLink) {
+ linkElement.appendChild(this.selectedElement.cloneNode(true));
+ this.selectedElement.parentNode.replaceChild(linkElement, this.selectedElement);
+ }
+
+ return;
+ }
+
+ if (!this.linkElement && this.selectedInstance) {
+ if (tinyMCE.isSafari) {
+ tinyMCE.execCommand("mceInsertContent", false, '<a href="#mce_temp_url#">' + this.selectedInstance.getSelectedHTML() + '</a>');
+ } else
+ this.selectedInstance.contentDocument.execCommand("createlink", false, "#mce_temp_url#");
+
+ tinyMCE.linkElement = this.getElementByAttributeValue(this.selectedInstance.contentDocument.body, "a", "href", "#mce_temp_url#");
+
+ var elementArray = this.getElementsByAttributeValue(this.selectedInstance.contentDocument.body, "a", "href", "#mce_temp_url#");
+
+ for (var i=0; i<elementArray.length; i++) {
+ href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, elementArray[i]);");
+ tinyMCE.setAttrib(elementArray[i], 'href', href);
+ tinyMCE.setAttrib(elementArray[i], 'mce_real_href', href);
+ tinyMCE.setAttrib(elementArray[i], 'target', target);
+ tinyMCE.setAttrib(elementArray[i], 'title', title);
+ tinyMCE.setAttrib(elementArray[i], 'onclick', onclick);
+ tinyMCE.setAttrib(elementArray[i], 'class', style_class);
+ }
+
+ tinyMCE.linkElement = elementArray[0];
+ }
+
+ if (this.linkElement) {
+ href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, this.linkElement);");
+ tinyMCE.setAttrib(this.linkElement, 'href', href);
+ tinyMCE.setAttrib(this.linkElement, 'mce_real_href', href);
+ tinyMCE.setAttrib(this.linkElement, 'target', target);
+ tinyMCE.setAttrib(this.linkElement, 'title', title);
+ tinyMCE.setAttrib(this.linkElement, 'onclick', onclick);
+ tinyMCE.setAttrib(this.linkElement, 'class', style_class);
+ }
+
+ tinyMCE.execCommand('mceEndUndoLevel');
+};
+
+TinyMCE.prototype.insertImage = function(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout) {
+ tinyMCE.execCommand('mceBeginUndoLevel');
+
+ if (src == "")
+ return;
+
+ if (!this.imgElement && tinyMCE.isSafari) {
+ var html = "";
+
+ html += '<img src="' + src + '" alt="' + alt + '"';
+ html += ' border="' + border + '" hspace="' + hspace + '"';
+ html += ' vspace="' + vspace + '" width="' + width + '"';
+ html += ' height="' + height + '" align="' + align + '" title="' + title + '" onmouseover="' + onmouseover + '" onmouseout="' + onmouseout + '" />';
+
+ tinyMCE.execCommand("mceInsertContent", false, html);
+ } else {
+ if (!this.imgElement && this.selectedInstance) {
+ if (tinyMCE.isSafari)
+ tinyMCE.execCommand("mceInsertContent", false, '<img src="#mce_temp_url#" />');
+ else
+ this.selectedInstance.contentDocument.execCommand("insertimage", false, "#mce_temp_url#");
+
+ tinyMCE.imgElement = this.getElementByAttributeValue(this.selectedInstance.contentDocument.body, "img", "src", "#mce_temp_url#");
+ }
+ }
+
+ if (this.imgElement) {
+ var needsRepaint = false;
+
+ src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, tinyMCE.imgElement);");
+
+ if (onmouseover && onmouseover != "")
+ onmouseover = "this.src='" + eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseover, tinyMCE.imgElement);") + "';";
+
+ if (onmouseout && onmouseout != "")
+ onmouseout = "this.src='" + eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseout, tinyMCE.imgElement);") + "';";
+
+ // Use alt as title if it's undefined
+ if (typeof(title) == "undefined")
+ title = alt;
+
+ if (width != this.imgElement.getAttribute("width") || height != this.imgElement.getAttribute("height") || align != this.imgElement.getAttribute("align"))
+ needsRepaint = true;
+
+ tinyMCE.setAttrib(this.imgElement, 'src', src);
+ tinyMCE.setAttrib(this.imgElement, 'mce_real_src', src);
+ tinyMCE.setAttrib(this.imgElement, 'alt', alt);
+ tinyMCE.setAttrib(this.imgElement, 'title', title);
+ tinyMCE.setAttrib(this.imgElement, 'align', align);
+ tinyMCE.setAttrib(this.imgElement, 'border', border, true);
+ tinyMCE.setAttrib(this.imgElement, 'hspace', hspace, true);
+ tinyMCE.setAttrib(this.imgElement, 'vspace', vspace, true);
+ tinyMCE.setAttrib(this.imgElement, 'width', width, true);
+ tinyMCE.setAttrib(this.imgElement, 'height', height, true);
+ tinyMCE.setAttrib(this.imgElement, 'onmouseover', onmouseover);
+ tinyMCE.setAttrib(this.imgElement, 'onmouseout', onmouseout);
+
+ // Fix for bug #989846 - Image resize bug
+ if (width && width != "")
+ this.imgElement.style.pixelWidth = width;
+
+ if (height && height != "")
+ this.imgElement.style.pixelHeight = height;
+
+ if (needsRepaint)
+ tinyMCE.selectedInstance.repaint();
+ }
+
+ tinyMCE.execCommand('mceEndUndoLevel');
+};
+
+TinyMCE.prototype.getElementByAttributeValue = function(node, element_name, attrib, value) {
+ var elements = this.getElementsByAttributeValue(node, element_name, attrib, value);
+ if (elements.length == 0)
+ return null;
+
+ return elements[0];
+};
+
+TinyMCE.prototype.getElementsByAttributeValue = function(node, element_name, attrib, value) {
+ var elements = new Array();
+
+ if (node && node.nodeName.toLowerCase() == element_name) {
+ if (node.getAttribute(attrib) && node.getAttribute(attrib).indexOf(value) != -1)
+ elements[elements.length] = node;
+ }
+
+ if (node.hasChildNodes) {
+ for (var x=0, n=node.childNodes.length; x<n; x++) {
+ var childElements = this.getElementsByAttributeValue(node.childNodes[x], element_name, attrib, value);
+ for (var i=0, m=childElements.length; i<m; i++)
+ elements[elements.length] = childElements[i];
+ }
+ }
+
+ return elements;
+};
+
+TinyMCE.prototype.isBlockElement = function(node) {
+ return node != null && node.nodeType == 1 && this.blockRegExp.test(node.nodeName);
+};
+
+TinyMCE.prototype.getParentBlockElement = function(node) {
+ // Search up the tree for block element
+ while (node) {
+ if (this.blockRegExp.test(node.nodeName))
+ return node;
+
+ node = node.parentNode;
+ }
+
+ return null;
+};
+
+TinyMCE.prototype.getNodeTree = function(node, node_array, type, node_name) {
+ if (typeof(type) == "undefined" || node.nodeType == type && (typeof(node_name) == "undefined" || node.nodeName == node_name))
+ node_array[node_array.length] = node;
+
+ if (node.hasChildNodes()) {
+ for (var i=0; i<node.childNodes.length; i++)
+ tinyMCE.getNodeTree(node.childNodes[i], node_array, type, node_name);
+ }
+
+ return node_array;
+};
+
+TinyMCE.prototype.getParentElement = function(node, names, attrib_name, attrib_value) {
+ if (typeof(names) == "undefined") {
+ if (node.nodeType == 1)
+ return node;
+
+ // Find parent node that is a element
+ while ((node = node.parentNode) != null && node.nodeType != 1) ;
+
+ return node;
+ }
+
+ var namesAr = names.split(',');
+
+ if (node == null)
+ return null;
+
+ do {
+ for (var i=0; i<namesAr.length; i++) {
+ if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() || names == "*") {
+ if (typeof(attrib_name) == "undefined")
+ return node;
+ else if (node.getAttribute(attrib_name)) {
+ if (typeof(attrib_value) == "undefined") {
+ if (node.getAttribute(attrib_name) != "")
+ return node;
+ } else if (node.getAttribute(attrib_name) == attrib_value)
+ return node;
+ }
+ }
+ }
+ } while (node = node.parentNode);
+
+ return null;
+};
+
+TinyMCE.prototype.convertURL = function(url, node, on_save) {
+ var prot = document.location.protocol;
+ var host = document.location.hostname;
+ var port = document.location.port;
+
+ var fileProto = (prot == "file:");
+
+ // Something is wrong, remove weirdness
+ url = tinyMCE.regexpReplace(url, '(http|https):///', '/');
+
+ // Mailto link or anchor (Pass through)
+ if (url.indexOf('mailto:') != -1 || url.indexOf('javascript:') != -1 || tinyMCE.regexpReplace(url,'[ \t\r\n\+]|%20','').charAt(0) == "#")
+ return url;
+
+ // Fix relative/Mozilla
+ if (!tinyMCE.isMSIE && !on_save && url.indexOf("://") == -1 && url.charAt(0) != '/')
+ return tinyMCE.settings['base_href'] + url;
+
+ // Handle absolute url anchors
+ if (!tinyMCE.settings['relative_urls']) {
+ var urlParts = tinyMCE.parseURL(url);
+ var baseUrlParts = tinyMCE.parseURL(tinyMCE.settings['base_href']);
+
+ // If anchor and path is the same page
+ if (urlParts['anchor'] && urlParts['path'] == baseUrlParts['path'])
+ return "#" + urlParts['anchor'];
+ }
+
+ // Convert to relative urls
+ if (on_save && tinyMCE.settings['relative_urls']) {
+ var urlParts = tinyMCE.parseURL(url);
+
+ // If not absolute url, do nothing (Mozilla)
+ // WEIRD STUFF?!
+/* if (!urlParts['protocol'] && !tinyMCE.isMSIE) {
+ var urlPrefix = "http://";
+ urlPrefix += host;
+ if (port != "")
+ urlPrefix += ":" + port;
+
+ url = urlPrefix + url;
+ urlParts = tinyMCE.parseURL(url);
+ }*/
+
+ var tmpUrlParts = tinyMCE.parseURL(tinyMCE.settings['document_base_url']);
+
+ // Link is within this site
+ if (urlParts['host'] == tmpUrlParts['host'] && (!urlParts['port'] || urlParts['port'] == tmpUrlParts['port']))
+ return tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings['document_base_url'], url);
+ }
+
+ // Remove current domain
+ if (!fileProto && tinyMCE.settings['remove_script_host']) {
+ var start = "", portPart = "";
+
+ if (port != "")
+ portPart = ":" + port;
+
+ start = prot + "//" + host + portPart + "/";
+
+ if (url.indexOf(start) == 0)
+ url = url.substring(start.length-1);
+
+ // Add first slash if missing on a absolute URL
+ if (!tinyMCE.settings['relative_urls'] && url.indexOf('://') == -1 && url.charAt(0) != '/')
+ url = '/' + url;
+ }
+
+ return url;
+};
+
+/**
+ * Parses a URL in to its diffrent components.
+ */
+TinyMCE.prototype.parseURL = function(url_str) {
+ var urlParts = new Array();
+
+ if (url_str) {
+ var pos, lastPos;
+
+ // Parse protocol part
+ pos = url_str.indexOf('://');
+ if (pos != -1) {
+ urlParts['protocol'] = url_str.substring(0, pos);
+ lastPos = pos + 3;
+ }
+
+ // Find port or path start
+ for (var i=lastPos; i<url_str.length; i++) {
+ var chr = url_str.charAt(i);
+
+ if (chr == ':')
+ break;
+
+ if (chr == '/')
+ break;
+ }
+ pos = i;
+
+ // Get host
+ urlParts['host'] = url_str.substring(lastPos, pos);
+
+ // Get port
+ lastPos = pos;
+ if (url_str.charAt(pos) == ':') {
+ pos = url_str.indexOf('/', lastPos);
+ urlParts['port'] = url_str.substring(lastPos+1, pos);
+ }
+
+ // Get path
+ lastPos = pos;
+ pos = url_str.indexOf('?', lastPos);
+
+ if (pos == -1)
+ pos = url_str.indexOf('#', lastPos);
+
+ if (pos == -1)
+ pos = url_str.length;
+
+ urlParts['path'] = url_str.substring(lastPos, pos);
+
+ // Get query
+ lastPos = pos;
+ if (url_str.charAt(pos) == '?') {
+ pos = url_str.indexOf('#');
+ pos = (pos == -1) ? url_str.length : pos;
+ urlParts['query'] = url_str.substring(lastPos+1, pos);
+ }
+
+ // Get anchor
+ lastPos = pos;
+ if (url_str.charAt(pos) == '#') {
+ pos = url_str.length;
+ urlParts['anchor'] = url_str.substring(lastPos+1, pos);
+ }
+ }
+
+ return urlParts;
+};
+
+/**
+ * Converts an absolute path to relative path.
+ */
+TinyMCE.prototype.convertAbsoluteURLToRelativeURL = function(base_url, url_to_relative) {
+ var strTok1;
+ var strTok2;
+ var breakPoint = 0;
+ var outputString = "";
+
+ // Crop away last path part
+ base_url = base_url.substring(0, base_url.lastIndexOf('/'));
+ strTok1 = base_url.split('/');
+ strTok2 = url_to_relative.split('/');
+
+ if (strTok1.length >= strTok2.length) {
+ for (var i=0; i<strTok1.length; i++) {
+ if (i >= strTok2.length || strTok1[i] != strTok2[i]) {
+ breakPoint = i + 1;
+ break;
+ }
+ }
+ }
+
+ if (strTok1.length < strTok2.length) {
+ for (var i=0; i<strTok2.length; i++) {
+ if (i >= strTok1.length || strTok1[i] != strTok2[i]) {
+ breakPoint = i + 1;
+ break;
+ }
+ }
+ }
+
+ if (breakPoint == 1)
+ return url_to_relative;
+
+ for (var i=0; i<(strTok1.length-(breakPoint-1)); i++)
+ outputString += "../";
+
+ for (var i=breakPoint-1; i<strTok2.length; i++) {
+ if (i != (breakPoint-1))
+ outputString += "/" + strTok2[i];
+ else
+ outputString += strTok2[i];
+ }
+
+ return outputString;
+};
+
+TinyMCE.prototype.convertRelativeToAbsoluteURL = function(base_url, relative_url) {
+ var baseURL = TinyMCE.prototype.parseURL(base_url);
+ var relURL = TinyMCE.prototype.parseURL(relative_url);
+
+ if (relative_url == "" || relative_url.charAt(0) == '/' || relative_url.indexOf('://') != -1 || relative_url.indexOf('mailto:') != -1 || relative_url.indexOf('javascript:') != -1 || tinyMCE.regexpReplace(relative_url,'[ \t\r\n\+]|%20','').charAt(0) == "#")
+ return relative_url;
+
+ // Split parts
+ baseURLParts = baseURL['path'].split('/');
+ relURLParts = relURL['path'].split('/');
+
+ // Remove empty chunks
+ var newBaseURLParts = new Array();
+ for (var i=baseURLParts.length-1; i>=0; i--) {
+ if (baseURLParts[i].length == 0)
+ continue;
+
+ newBaseURLParts[newBaseURLParts.length] = baseURLParts[i];
+ }
+ baseURLParts = newBaseURLParts.reverse();
+
+ // Merge relURLParts chunks
+ var newRelURLParts = new Array();
+ var numBack = 0;
+ for (var i=relURLParts.length-1; i>=0; i--) {
+ if (relURLParts[i].length == 0 || relURLParts[i] == ".")
+ continue;
+
+ if (relURLParts[i] == '..') {
+ numBack++;
+ continue;
+ }
+
+ if (numBack > 0) {
+ numBack--;
+ continue;
+ }
+
+ newRelURLParts[newRelURLParts.length] = relURLParts[i];
+ }
+
+ relURLParts = newRelURLParts.reverse();
+
+ // Remove end from absolute path
+ var len = baseURLParts.length-numBack;
+ var absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/');
+ var start = "", end = "";
+
+ // Build start part
+ if (baseURL['protocol'])
+ start += baseURL['protocol'] + "://";
+
+ if (baseURL['host'])
+ start += baseURL['host'];
+
+ if (baseURL['port'])
+ start += ":" + baseURL['port'];
+
+ // Build end part
+ if (relURL['query'])
+ end += "?" + relURL['query'];
+
+ if (relURL['anchor'])
+ end += "#" + relURL['anchor'];
+
+ // Re-add trailing slash if it's removed
+ if (relative_url.charAt(relative_url.length-1) == "/")
+ end += "/";
+
+ return start + absPath + end;
+};
+
+TinyMCE.prototype.getParam = function(name, default_value, strip_whitespace, split_chr) {
+ var value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+ // Fix bool values
+ if (value == "true" || value == "false")
+ return (value == "true");
+
+ if (strip_whitespace)
+ value = tinyMCE.regexpReplace(value, "[ \t\r\n]", "");
+
+ if (typeof(split_chr) != "undefined" && split_chr != null) {
+ value = value.split(split_chr);
+ var outArray = new Array();
+
+ for (var i=0; i<value.length; i++) {
+ if (value[i] && value[i] != "")
+ outArray[outArray.length] = value[i];
+ }
+
+ value = outArray;
+ }
+
+ return value;
+};
+
+TinyMCE.prototype.getLang = function(name, default_value, parse_entities) {
+ var value = (typeof(tinyMCELang[name]) == "undefined") ? default_value : tinyMCELang[name];
+
+ if (parse_entities) {
+ var el = document.createElement("div");
+ el.innerHTML = value;
+ value = el.innerHTML;
+ }
+
+ return value;
+};
+
+TinyMCE.prototype.addToLang = function(prefix, ar) {
+ for (var key in ar)
+ tinyMCELang[(key.indexOf('lang_') == -1 ? 'lang_' : '') + (prefix != '' ? (prefix + "_") : '') + key] = ar[key];
+
+// for (var key in ar)
+// tinyMCELang[(key.indexOf('lang_') == -1 ? 'lang_' : '') + (prefix != '' ? (prefix + "_") : '') + key] = "|" + ar[key] + "|";
+};
+
+TinyMCE.prototype.replaceVar = function(replace_haystack, replace_var, replace_str) {
+ var re = new RegExp('{\\\$' + replace_var + '}', 'g');
+ return replace_haystack.replace(re, replace_str);
+};
+
+TinyMCE.prototype.replaceVars = function(replace_haystack, replace_vars) {
+ for (var key in replace_vars) {
+ var value = replace_vars[key];
+ replace_haystack = tinyMCE.replaceVar(replace_haystack, key, value);
+ }
+
+ return replace_haystack;
+};
+
+TinyMCE.prototype.triggerNodeChange = function(focus, setup_content) {
+ if (tinyMCE.settings['handleNodeChangeCallback']) {
+ if (tinyMCE.selectedInstance) {
+ var inst = tinyMCE.selectedInstance;
+ var editorId = inst.editorId;
+ var elm = (typeof(setup_content) != "undefined" && setup_content) ? tinyMCE.selectedElement : inst.getFocusElement();
+ var undoIndex = -1;
+ var undoLevels = -1;
+ var anySelection = false;
+ var selectedText = inst.getSelectedText();
+
+ if (tinyMCE.settings["auto_resize"]) {
+ var doc = inst.getDoc();
+
+ inst.iframeElement.style.width = doc.body.offsetWidth + "px";
+ inst.iframeElement.style.height = doc.body.offsetHeight + "px";
+ }
+
+ if (tinyMCE.selectedElement)
+ anySelection = (tinyMCE.selectedElement.nodeName.toLowerCase() == "img") || (selectedText && selectedText.length > 0);
+
+ if (tinyMCE.settings['custom_undo_redo']) {
+ undoIndex = inst.undoIndex;
+ undoLevels = inst.undoLevels.length;
+ }
+
+ tinyMCE.executeCallback('handleNodeChangeCallback', '_handleNodeChange', 0, editorId, elm, undoIndex, undoLevels, inst.visualAid, anySelection);
+ }
+ }
+
+ if (this.selectedInstance && (typeof(focus) == "undefined" || focus))
+ this.selectedInstance.contentWindow.focus();
+};
+
+TinyMCE.prototype._customCleanup = function(inst, type, content) {
+ // Call custom cleanup
+ var customCleanup = tinyMCE.settings['cleanup_callback'];
+ if (customCleanup != "" && eval("typeof(" + customCleanup + ")") != "undefined")
+ content = eval(customCleanup + "(type, content, inst);");
+
+ // Trigger plugin cleanups
+ var plugins = tinyMCE.getParam('plugins', '', true, ',');
+ for (var i=0; i<plugins.length; i++) {
+ if (eval("typeof(TinyMCE_" + plugins[i] + "_cleanup)") != "undefined")
+ content = eval("TinyMCE_" + plugins[i] + "_cleanup(type, content, inst);");
+ }
+
+ return content;
+};
+
+TinyMCE.prototype.getContent = function(editor_id) {
+ if (typeof(editor_id) != "undefined")
+ tinyMCE.selectedInstance = tinyMCE.getInstanceById(editor_id);
+
+ if (tinyMCE.selectedInstance)
+ return tinyMCE._cleanupHTML(this.selectedInstance, this.selectedInstance.getDoc(), tinyMCE.settings, this.selectedInstance.getBody(), false, true);
+
+ return null;
+};
+
+TinyMCE.prototype.setContent = function(html_content) {
+ if (tinyMCE.selectedInstance) {
+ tinyMCE.selectedInstance.execCommand('mceSetContent', false, html_content);
+ tinyMCE.selectedInstance.repaint();
+ }
+};
+
+TinyMCE.prototype.importThemeLanguagePack = function(name) {
+ if (typeof(name) == "undefined")
+ name = tinyMCE.settings['theme'];
+
+ tinyMCE.loadScript(tinyMCE.baseURL + '/themes/' + name + '/langs/' + tinyMCE.settings['language'] + '.js');
+};
+
+TinyMCE.prototype.importPluginLanguagePack = function(name, valid_languages) {
+ var lang = "en";
+
+ valid_languages = valid_languages.split(',');
+ for (var i=0; i<valid_languages.length; i++) {
+ if (tinyMCE.settings['language'] == valid_languages[i])
+ lang = tinyMCE.settings['language'];
+ }
+
+ tinyMCE.loadScript(tinyMCE.baseURL + '/plugins/' + name + '/langs/' + lang + '.js');
+};
+
+/**
+ * Adds themeurl, settings and lang to HTML code.
+ */
+TinyMCE.prototype.applyTemplate = function(html, args) {
+ html = tinyMCE.replaceVar(html, "themeurl", tinyMCE.themeURL);
+
+ if (typeof(args) != "undefined")
+ html = tinyMCE.replaceVars(html, args);
+
+ html = tinyMCE.replaceVars(html, tinyMCE.settings);
+ html = tinyMCE.replaceVars(html, tinyMCELang);
+
+ return html;
+};
+
+TinyMCE.prototype.openWindow = function(template, args) {
+ var html, width, height, x, y, resizable, scrollbars, url;
+
+ args['mce_template_file'] = template['file'];
+ args['mce_width'] = template['width'];
+ args['mce_height'] = template['height'];
+ tinyMCE.windowArgs = args;
+
+ html = template['html'];
+ if (!(width = parseInt(template['width'])))
+ width = 320;
+
+ if (!(height = parseInt(template['height'])))
+ height = 200;
+
+ // Add to height in M$ due to SP2 WHY DON'T YOU GUYS IMPLEMENT innerWidth of windows!!
+ if (tinyMCE.isMSIE)
+ height += 40;
+ else
+ height += 20;
+
+ x = parseInt(screen.width / 2.0) - (width / 2.0);
+ y = parseInt(screen.height / 2.0) - (height / 2.0);
+
+ resizable = (args && args['resizable']) ? args['resizable'] : "no";
+ scrollbars = (args && args['scrollbars']) ? args['scrollbars'] : "no";
+
+ if (template['file'].charAt(0) != '/' && template['file'].indexOf('://') == -1)
+ url = tinyMCE.baseURL + "/themes/" + tinyMCE.getParam("theme") + "/" + template['file'];
+ else
+ url = template['file'];
+
+ // Replace all args as variables in URL
+ for (var name in args)
+ url = tinyMCE.replaceVar(url, name, escape(args[name]));
+
+ if (html) {
+ html = tinyMCE.replaceVar(html, "css", this.settings['popups_css']);
+ html = tinyMCE.applyTemplate(html, args);
+
+ var win = window.open("", "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=yes,minimizable=" + resizable + ",modal=yes,width=" + width + ",height=" + height + ",resizable=" + resizable);
+ if (win == null) {
+ alert(tinyMCELang['lang_popup_blocked']);
+ return;
+ }
+
+ win.document.write(html);
+ win.document.close();
+ win.resizeTo(width, height);
+ win.focus();
+ } else {
+ if (tinyMCE.isMSIE && resizable != 'yes' && tinyMCE.settings["dialog_type"] == "modal") {
+ var features = "resizable:" + resizable
+ + ";scroll:"
+ + scrollbars + ";status:yes;center:yes;help:no;dialogWidth:"
+ + width + "px;dialogHeight:" + height + "px;";
+
+ window.showModalDialog(url, window, features);
+ } else {
+ var modal = (resizable == "yes") ? "no" : "yes";
+
+ if (tinyMCE.isGecko && tinyMCE.isMac)
+ modal = "no";
+
+ var win = window.open(url, "mcePopup" + new Date().getTime(), "top=" + y + ",left=" + x + ",scrollbars=" + scrollbars + ",dialog=" + modal + ",minimizable=" + resizable + ",modal=" + modal + ",width=" + width + ",height=" + height + ",resizable=" + resizable);
+ if (win == null) {
+ alert(tinyMCELang['lang_popup_blocked']);
+ return;
+ }
+
+ eval('try { win.resizeTo(width, height); } catch(e) { }');
+
+ // Make it bigger if statusbar is forced
+ if (tinyMCE.isGecko) {
+ if (win.document.defaultView.statusbar.visible)
+ win.resizeBy(0, tinyMCE.isMac ? 10 : 24);
+ }
+
+ win.focus();
+ }
+ }
+};
+
+TinyMCE.prototype.closeWindow = function(win) {
+ win.close();
+};
+
+TinyMCE.prototype.getVisualAidClass = function(class_name, state) {
+ var aidClass = tinyMCE.settings['visual_table_class'];
+
+ if (typeof(state) == "undefined")
+ state = tinyMCE.settings['visual'];
+
+ // Split
+ var classNames = new Array();
+ var ar = class_name.split(' ');
+ for (var i=0; i<ar.length; i++) {
+ if (ar[i] == aidClass)
+ ar[i] = "";
+
+ if (ar[i] != "")
+ classNames[classNames.length] = ar[i];
+ }
+
+ if (state)
+ classNames[classNames.length] = aidClass;
+
+ // Glue
+ var className = "";
+ for (var i=0; i<classNames.length; i++) {
+ if (i > 0)
+ className += " ";
+
+ className += classNames[i];
+ }
+
+ return className;
+};
+
+TinyMCE.prototype.handleVisualAid = function(element, deep, state, inst) {
+ if (!element)
+ return;
+
+ var tableElement = null;
+
+ switch (element.nodeName) {
+ case "TABLE":
+ var oldW = element.style.width;
+ var oldH = element.style.height;
+
+ element.className = tinyMCE.getVisualAidClass(element.className, state && element.getAttribute("border") == 0);
+
+ element.style.width = oldW;
+ element.style.height = oldH;
+
+ for (var y=0; y<element.rows.length; y++) {
+ for (var x=0; x<element.rows[y].cells.length; x++) {
+ var className = tinyMCE.getVisualAidClass(element.rows[y].cells[x].className, state && element.getAttribute("border") == 0);
+ element.rows[y].cells[x].className = className;
+ }
+ }
+
+ break;
+
+ case "A":
+ var anchorName = tinyMCE.getAttrib(element, "name");
+
+ if (anchorName != '' && state) {
+ element.title = anchorName;
+ element.className = 'mceItemAnchor';
+ } else if (anchorName != '' && !state)
+ element.className = '';
+
+ break;
+ }
+
+ if (deep && element.hasChildNodes()) {
+ for (var i=0; i<element.childNodes.length; i++)
+ tinyMCE.handleVisualAid(element.childNodes[i], deep, state, inst);
+ }
+};
+
+TinyMCE.prototype.getAttrib = function(elm, name, default_value) {
+ if (typeof(default_value) == "undefined")
+ default_value = "";
+
+ // Not a element
+ if (!elm || elm.nodeType != 1)
+ return default_value;
+
+ var v = elm.getAttribute(name);
+
+ // Try className for class attrib
+ if (name == "class" && !v)
+ v = elm.className;
+
+ if (name == "style")
+ v = elm.style.cssText;
+
+ return (v && v != "") ? v : default_value;
+};
+
+TinyMCE.prototype.setAttrib = function(element, name, value, fix_value) {
+ if (typeof(value) == "number" && value != null)
+ value = "" + value;
+
+ if (fix_value) {
+ if (value == null)
+ value = "";
+
+ var re = new RegExp('[^0-9%]', 'g');
+ value = value.replace(re, '');
+ }
+
+ if (name == "style")
+ element.style.cssText = value;
+
+ if (name == "class")
+ element.className = value;
+
+ if (value != null && value != "" && value != -1)
+ element.setAttribute(name, value);
+ else
+ element.removeAttribute(name);
+};
+
+TinyMCE.prototype._setHTML = function(doc, html_content) {
+ // Weird MSIE bug, <p><hr /></p> breaks runtime?
+ if (tinyMCE.isMSIE) {
+ var re = new RegExp('<p><hr /></p>', 'g');
+ html_content = html_content.replace(re, "<hr>");
+ }
+
+ // Try innerHTML if it fails use pasteHTML in MSIE
+ try {
+ doc.body.innerHTML = html_content;
+ } catch (e) {
+ if (this.isMSIE)
+ doc.body.createTextRange().pasteHTML(html_content);
+ }
+
+ // Content duplication bug fix
+ if (tinyMCE.isMSIE && tinyMCE.settings['fix_content_duplication']) {
+ // Remove P elements in P elements
+ var paras = doc.getElementsByTagName("P");
+ for (var i=0; i<paras.length; i++) {
+ var node = paras[i];
+ while ((node = node.parentNode) != null) {
+ if (node.nodeName.toLowerCase() == "p")
+ node.outerHTML = node.innerHTML;
+ }
+ }
+
+ // Content duplication bug fix (Seems to be word crap)
+ var html = doc.body.innerHTML;
+
+ if (html.indexOf('="mso') != -1) {
+ for (var i=0; i<doc.body.all.length; i++) {
+ var el = doc.body.all[i];
+ el.removeAttribute("className","",0);
+ el.removeAttribute("style","",0);
+ }
+
+ html = doc.body.innerHTML;
+ html = tinyMCE.regexpReplace(html, "<o:p><\/o:p>", "<br />");
+ html = tinyMCE.regexpReplace(html, "<o:p> <\/o:p>", "");
+ html = tinyMCE.regexpReplace(html, "<st1:.*?>", "");
+ html = tinyMCE.regexpReplace(html, "<p><\/p>", "");
+ html = tinyMCE.regexpReplace(html, "<p><\/p>\r\n<p><\/p>", "");
+ html = tinyMCE.regexpReplace(html, "<p> <\/p>", "<br />");
+ html = tinyMCE.regexpReplace(html, "<p>\s*(<p>\s*)?", "<p>");
+ html = tinyMCE.regexpReplace(html, "<\/p>\s*(<\/p>\s*)?", "</p>");
+ }
+
+ // Always set the htmlText output
+ doc.body.innerHTML = html;
+ }
+};
+
+TinyMCE.prototype.getImageSrc = function(str) {
+ var pos = -1;
+
+ if (!str)
+ return "";
+
+ if ((pos = str.indexOf('this.src=')) != -1) {
+ var src = str.substring(pos + 10);
+
+ src = src.substring(0, src.indexOf('\''));
+
+ return src;
+ }
+
+ return "";
+};
+
+TinyMCE.prototype._getElementById = function(element_id) {
+ var elm = document.getElementById(element_id);
+ if (!elm) {
+ // Check for element in forms
+ for (var j=0; j<document.forms.length; j++) {
+ for (var k=0; k<document.forms[j].elements.length; k++) {
+ if (document.forms[j].elements[k].name == element_id) {
+ elm = document.forms[j].elements[k];
+ break;
+ }
+ }
+ }
+ }
+
+ return elm;
+};
+
+TinyMCE.prototype.getEditorId = function(form_element) {
+ var inst = this.getInstanceById(form_element);
+ if (!inst)
+ return null;
+
+ return inst.editorId;
+};
+
+TinyMCE.prototype.getInstanceById = function(editor_id) {
+ var inst = this.instances[editor_id];
+ if (!inst) {
+ for (var instanceName in tinyMCE.instances) {
+ var instance = tinyMCE.instances[instanceName];
+ if (instance.formTargetElementId == editor_id) {
+ inst = instance;
+ break;
+ }
+ }
+ }
+
+ return inst;
+};
+
+TinyMCE.prototype.queryInstanceCommandValue = function(editor_id, command) {
+ var inst = tinyMCE.getInstanceById(editor_id);
+ if (inst)
+ return inst.queryCommandValue(command);
+
+ return false;
+};
+
+TinyMCE.prototype.queryInstanceCommandState = function(editor_id, command) {
+ var inst = tinyMCE.getInstanceById(editor_id);
+ if (inst)
+ return inst.queryCommandState(command);
+
+ return null;
+};
+
+TinyMCE.prototype.setWindowArg = function(name, value) {
+ this.windowArgs[name] = value;
+};
+
+TinyMCE.prototype.getWindowArg = function(name, default_value) {
+ return (typeof(this.windowArgs[name]) == "undefined") ? default_value : this.windowArgs[name];
+};
+
+TinyMCE.prototype.getCSSClasses = function(editor_id, doc) {
+ var output = new Array();
+
+ // Is cached, use that
+ if (typeof(tinyMCE.cssClasses) != "undefined")
+ return tinyMCE.cssClasses;
+
+ if (typeof(editor_id) == "undefined" && typeof(doc) == "undefined") {
+ var instance;
+
+ for (var instanceName in tinyMCE.instances) {
+ instance = tinyMCE.instances[instanceName];
+ break;
+ }
+
+ doc = instance.getDoc();
+ }
+
+ if (typeof(doc) == "undefined") {
+ var instance = tinyMCE.getInstanceById(editor_id);
+ doc = instance.getDoc();
+ }
+
+ if (doc) {
+ var styles = tinyMCE.isMSIE ? doc.styleSheets : doc.styleSheets;
+
+ if (styles && styles.length > 0) {
+ for (var x=0; x<styles.length; x++) {
+ var csses = null;
+
+ // Just ignore any errors
+ eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets(" + x + ").rules : doc.styleSheets[" + x + "].cssRules;} catch(e) {}");
+ if (!csses)
+ return new Array();
+
+ for (var i=0; i<csses.length; i++) {
+ var selectorText = csses[i].selectorText;
+
+ // Can be multiple rules per selector
+ if (selectorText) {
+ var rules = selectorText.split(',');
+ for (var c=0; c<rules.length; c++) {
+ // Invalid rule
+ if (rules[c].indexOf(' ') != -1 || rules[c].indexOf(':') != -1 || rules[c].indexOf('mceItem') != -1)
+ continue;
+
+ if (rules[c] == "." + tinyMCE.settings['visual_table_class'])
+ continue;
+
+ // Is class rule
+ if (rules[c].indexOf('.') != -1) {
+ //alert(rules[c].substring(rules[c].indexOf('.')));
+ output[output.length] = rules[c].substring(rules[c].indexOf('.')+1);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // Cache em
+ if (output.length > 0)
+ tinyMCE.cssClasses = output;
+
+ return output;
+};
+
+TinyMCE.prototype.regexpReplace = function(in_str, reg_exp, replace_str, opts) {
+ if (typeof(opts) == "undefined")
+ opts = 'g';
+
+ var re = new RegExp(reg_exp, opts);
+ return in_str.replace(re, replace_str);
+};
+
+TinyMCE.prototype.trim = function(str) {
+ return str.replace(/^\s*|\s*$/g, "");
+};
+
+TinyMCE.prototype.cleanupEventStr = function(str) {
+ str = "" + str;
+ str = str.replace('function anonymous()\n{\n', '');
+ str = str.replace('\n}', '');
+ str = str.replace(/^return true;/gi, '');
+
+ return str;
+};
+
+TinyMCE.prototype.getAbsPosition = function(node) {
+ var pos = new Object();
+
+ pos.absLeft = pos.absTop = 0;
+
+ var parentNode = node;
+ while (parentNode) {
+ pos.absLeft += parentNode.offsetLeft;
+ pos.absTop += parentNode.offsetTop;
+
+ parentNode = parentNode.offsetParent;
+ }
+
+ return pos;
+};
+
+TinyMCE.prototype.getControlHTML = function(control_name) {
+ var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
+ var templateFunction;
+
+ // Is it defined in any plugins
+ for (var i=themePlugins.length; i>=0; i--) {
+ templateFunction = 'TinyMCE_' + themePlugins[i] + "_getControlHTML";
+ if (eval("typeof(" + templateFunction + ")") != 'undefined') {
+ var html = eval(templateFunction + "('" + control_name + "');");
+ if (html != "")
+ return tinyMCE.replaceVar(html, "pluginurl", tinyMCE.baseURL + "/plugins/" + themePlugins[i]);
+ }
+ }
+
+ return eval('TinyMCE_' + tinyMCE.settings['theme'] + "_getControlHTML" + "('" + control_name + "');");
+};
+
+TinyMCE.prototype._themeExecCommand = function(editor_id, element, command, user_interface, value) {
+ var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
+ var templateFunction;
+
+ // Is it defined in any plugins
+ for (var i=themePlugins.length; i>=0; i--) {
+ templateFunction = 'TinyMCE_' + themePlugins[i] + "_execCommand";
+ if (eval("typeof(" + templateFunction + ")") != 'undefined') {
+ if (eval(templateFunction + "(editor_id, element, command, user_interface, value);"))
+ return true;
+ }
+ }
+
+ // Theme funtion
+ templateFunction = 'TinyMCE_' + tinyMCE.settings['theme'] + "_execCommand";
+ if (eval("typeof(" + templateFunction + ")") != 'undefined')
+ return eval(templateFunction + "(editor_id, element, command, user_interface, value);");
+
+ // Pass to normal
+ return false;
+};
+
+TinyMCE.prototype._getThemeFunction = function(suffix, skip_plugins) {
+ if (skip_plugins)
+ return 'TinyMCE_' + tinyMCE.settings['theme'] + suffix;
+
+ var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
+ var templateFunction;
+
+ // Is it defined in any plugins
+ for (var i=themePlugins.length; i>=0; i--) {
+ templateFunction = 'TinyMCE_' + themePlugins[i] + suffix;
+ if (eval("typeof(" + templateFunction + ")") != 'undefined')
+ return templateFunction;
+ }
+
+ return 'TinyMCE_' + tinyMCE.settings['theme'] + suffix;
+};
+
+
+TinyMCE.prototype.isFunc = function(func_name) {
+ if (func_name == null || func_name == "")
+ return false;
+
+ return eval("typeof(" + func_name + ")") != "undefined";
+};
+
+TinyMCE.prototype.exec = function(func_name, args) {
+ var str = func_name + '(';
+
+ // Add all arguments
+ for (var i=3; i<args.length; i++) {
+ str += 'args[' + i + ']';
+
+ if (i < args.length-1)
+ str += ',';
+ }
+
+ str += ');';
+
+ return eval(str);
+};
+
+TinyMCE.prototype.executeCallback = function(param, suffix, mode) {
+ switch (mode) {
+ // No chain
+ case 0:
+ var state = false;
+
+ // Execute each plugin callback
+ var plugins = tinyMCE.getParam('plugins', '', true, ',');
+ for (var i=0; i<plugins.length; i++) {
+ var func = "TinyMCE_" + plugins[i] + suffix;
+ if (tinyMCE.isFunc(func)) {
+ tinyMCE.exec(func, this.executeCallback.arguments);
+ state = true;
+ }
+ }
+
+ // Execute theme callback
+ var func = 'TinyMCE_' + tinyMCE.settings['theme'] + suffix;
+ if (tinyMCE.isFunc(func)) {
+ tinyMCE.exec(func, this.executeCallback.arguments);
+ state = true;
+ }
+
+ // Execute settings callback
+ var func = tinyMCE.getParam(param, '');
+ if (tinyMCE.isFunc(func)) {
+ tinyMCE.exec(func, this.executeCallback.arguments);
+ state = true;
+ }
+
+ return state;
+
+ // Chain mode
+ case 1:
+ // Execute each plugin callback
+ var plugins = tinyMCE.getParam('plugins', '', true, ',');
+ for (var i=0; i<plugins.length; i++) {
+ var func = "TinyMCE_" + plugins[i] + suffix;
+ if (tinyMCE.isFunc(func)) {
+ if (tinyMCE.exec(func, this.executeCallback.arguments))
+ return true;
+ }
+ }
+
+ // Execute theme callback
+ var func = 'TinyMCE_' + tinyMCE.settings['theme'] + suffix;
+ if (tinyMCE.isFunc(func)) {
+ if (tinyMCE.exec(func, this.executeCallback.arguments))
+ return true;
+ }
+
+ // Execute settings callback
+ var func = tinyMCE.getParam(param, '');
+ if (tinyMCE.isFunc(func)) {
+ if (tinyMCE.exec(func, this.executeCallback.arguments))
+ return true;
+ }
+
+ return false;
+ }
+};
+
+TinyMCE.prototype.debug = function() {
+ var msg = "";
+
+ var elm = document.getElementById("tinymce_debug");
+ if (!elm) {
+ var debugDiv = document.createElement("div");
+ debugDiv.setAttribute("className", "debugger");
+ debugDiv.className = "debugger";
+ debugDiv.innerHTML = '\
+ Debug output:\
+ <textarea id="tinymce_debug" style="width: 100%; height: 300px"></textarea>';
+
+ document.body.appendChild(debugDiv);
+ elm = document.getElementById("tinymce_debug");
+ }
+
+ var args = this.debug.arguments;
+ for (var i=0; i<args.length; i++) {
+ msg += args[i];
+ if (i<args.length-1)
+ msg += ', ';
+ }
+
+ elm.value += msg + "\n";
+};
+
+// TinyMCEControl
+function TinyMCEControl(settings) {
+ // Undo levels
+ this.undoLevels = new Array();
+ this.undoIndex = 0;
+ this.typingUndoIndex = -1;
+ this.undoRedo = true;
+
+ // Default settings
+ this.settings = settings;
+ this.settings['theme'] = tinyMCE.getParam("theme", "default");
+ this.settings['width'] = tinyMCE.getParam("width", -1);
+ this.settings['height'] = tinyMCE.getParam("height", -1);
+};
+
+TinyMCEControl.prototype.repaint = function() {
+ if (tinyMCE.isMSIE)
+ return;
+
+ this.getBody().style.display = 'none';
+ this.getBody().style.display = 'block';
+};
+
+TinyMCEControl.prototype.switchSettings = function() {
+ if (tinyMCE.configs.length > 1 && tinyMCE.currentConfig != this.settings['index']) {
+ tinyMCE.settings = this.settings;
+ tinyMCE.currentConfig = this.settings['index'];
+ }
+};
+
+TinyMCEControl.prototype.fixBrokenURLs = function() {
+ var body = this.getBody();
+
+ var elms = body.getElementsByTagName("img");
+ for (var i=0; i<elms.length; i++) {
+ var src = elms[i].getAttribute('mce_real_src');
+ if (src && src != "")
+ elms[i].setAttribute("src", src);
+ }
+
+ var elms = body.getElementsByTagName("a");
+ for (var i=0; i<elms.length; i++) {
+ var href = elms[i].getAttribute('mce_real_href');
+ if (href && href != "")
+ elms[i].setAttribute("href", href);
+ }
+};
+
+TinyMCEControl.prototype.convertAllRelativeURLs = function() {
+ var body = this.getBody();
+
+ // Convert all image URL:s to absolute URL
+ var elms = body.getElementsByTagName("img");
+ for (var i=0; i<elms.length; i++) {
+ var src = elms[i].getAttribute('src');
+ if (src && src != "") {
+ src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
+ elms[i].setAttribute("src", src);
+ elms[i].setAttribute("mce_real_src", src);
+ }
+ }
+
+ // Convert all link URL:s to absolute URL
+ var elms = body.getElementsByTagName("a");
+ for (var i=0; i<elms.length; i++) {
+ var href = elms[i].getAttribute('href');
+ if (href && href != "") {
+ href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], href);
+ elms[i].setAttribute("href", href);
+ elms[i].setAttribute("mce_real_href", href);
+ }
+ }
+};
+
+TinyMCEControl.prototype.getSelectedHTML = function() {
+ if (tinyMCE.isSafari) {
+ // Not realy perfect!!
+
+ return this.getRng().toString();
+ }
+
+ var elm = document.createElement("body");
+
+ if (tinyMCE.isGecko)
+ elm.appendChild(this.getRng().cloneContents());
+ else
+ elm.innerHTML = this.getRng().htmlText;
+
+ return tinyMCE._cleanupHTML(this, this.contentDocument, this.settings, elm, this.visualAid);
+};
+
+TinyMCEControl.prototype.getBookmark = function() {
+ var rng = this.getRng();
+
+ if (tinyMCE.isSafari)
+ return rng;
+
+ if (tinyMCE.isMSIE)
+ return rng;
+
+ if (tinyMCE.isGecko)
+ return rng.cloneRange();
+
+ return null;
+};
+
+TinyMCEControl.prototype.moveToBookmark = function(bookmark) {
+ if (tinyMCE.isSafari) {
+ var sel = this.getSel().realSelection;
+
+ sel.setBaseAndExtent(bookmark.startContainer, bookmark.startOffset, bookmark.endContainer, bookmark.endOffset);
+
+ return true;
+ }
+
+ if (tinyMCE.isMSIE)
+ return bookmark.select();
+
+ if (tinyMCE.isGecko) {
+ var rng = this.getDoc().createRange();
+ var sel = this.getSel();
+
+ rng.setStart(bookmark.startContainer, bookmark.startOffset);
+ rng.setEnd(bookmark.endContainer, bookmark.endOffset);
+
+ sel.removeAllRanges();
+ sel.addRange(rng);
+
+ return true;
+ }
+
+ return false;
+};
+
+TinyMCEControl.prototype.getSelectedText = function() {
+ if (tinyMCE.isMSIE) {
+ var doc = this.getDoc();
+
+ if (doc.selection.type == "Text") {
+ var rng = doc.selection.createRange();
+ selectedText = rng.text;
+ } else
+ selectedText = '';
+ } else {
+ var sel = this.getSel();
+
+ if (sel && sel.toString)
+ selectedText = sel.toString();
+ else
+ selectedText = '';
+ }
+
+ return selectedText;
+};
+
+TinyMCEControl.prototype.selectNode = function(node, collapse, select_text_node, to_start) {
+ if (!node)
+ return;
+
+ if (typeof(collapse) == "undefined")
+ collapse = true;
+
+ if (typeof(select_text_node) == "undefined")
+ select_text_node = false;
+
+ if (typeof(to_start) == "undefined")
+ to_start = true;
+
+ if (tinyMCE.isMSIE) {
+ var rng = this.getBody().createTextRange();
+
+ try {
+ rng.moveToElementText(node);
+
+ if (collapse)
+ rng.collapse(to_start);
+
+ rng.select();
+ } catch (e) {
+ // Throws illigal agrument in MSIE some times
+ }
+ } else {
+ var sel = this.getSel();
+
+ if (!sel)
+ return;
+
+ if (tinyMCE.isSafari) {
+ sel.realSelection.setBaseAndExtent(node, 0, node, node.innerText.length);
+
+ if (collapse) {
+ if (to_start)
+ sel.realSelection.collapseToStart();
+ else
+ sel.realSelection.collapseToEnd();
+ }
+
+ this.scrollToNode(node);
+
+ return;
+ }
+
+ var rng = this.getDoc().createRange();
+
+ if (select_text_node) {
+ // Find first textnode in tree
+ var nodes = tinyMCE.getNodeTree(node, new Array(), 3);
+ if (nodes.length > 0)
+ rng.selectNodeContents(nodes[0]);
+ else
+ rng.selectNodeContents(node);
+ } else
+ rng.selectNode(node);
+
+ if (collapse) {
+ // Special treatment of textnode collapse
+ if (!to_start && node.nodeType == 3) {
+ rng.setStart(node, node.nodeValue.length);
+ rng.setEnd(node, node.nodeValue.length);
+ } else
+ rng.collapse(to_start);
+ }
+
+ sel.removeAllRanges();
+ sel.addRange(rng);
+ }
+
+ this.scrollToNode(node);
+
+ // Set selected element
+ tinyMCE.selectedElement = null;
+ if (node.nodeType == 1)
+ tinyMCE.selectedElement = node;
+};
+
+TinyMCEControl.prototype.scrollToNode = function(node) {
+ // Scroll to node position
+ var pos = tinyMCE.getAbsPosition(node);
+ var doc = this.getDoc();
+ var scrollX = doc.body.scrollLeft + doc.documentElement.scrollLeft;
+ var scrollY = doc.body.scrollTop + doc.documentElement.scrollTop;
+ var height = tinyMCE.isMSIE ? document.getElementById(this.editorId).style.pixelHeight : this.targetElement.clientHeight;
+
+ // Only scroll if out of visible area
+ if (!tinyMCE.settings['auto_resize'] && !(node.absTop > scrollY && node.absTop < (scrollY - 25 + height)))
+ this.contentWindow.scrollTo(pos.absLeft, pos.absTop - height + 25);
+};
+
+TinyMCEControl.prototype.getBody = function() {
+ return this.getDoc().body;
+};
+
+TinyMCEControl.prototype.getDoc = function() {
+ return this.contentWindow.document;
+};
+
+TinyMCEControl.prototype.getWin = function() {
+ return this.contentWindow;
+};
+
+TinyMCEControl.prototype.getSel = function() {
+ if (tinyMCE.isMSIE)
+ return this.getDoc().selection;
+
+ var sel = this.contentWindow.getSelection();
+
+ // Fake getRangeAt
+ if (tinyMCE.isSafari && !sel.getRangeAt) {
+ var newSel = new Object();
+ var doc = this.getDoc();
+
+ function getRangeAt(idx) {
+ var rng = new Object();
+
+ rng.startContainer = this.focusNode;
+ rng.endContainer = this.anchorNode;
+ rng.commonAncestorContainer = this.focusNode;
+ rng.createContextualFragment = function (html) {
+ // Seems to be a tag
+ if (html.charAt(0) == '<') {
+ var elm = doc.createElement("div");
+
+ elm.innerHTML = html;
+
+ return elm.firstChild;
+ }
+
+ return doc.createTextNode("UNSUPPORTED, DUE TO LIMITATIONS IN SAFARI!");
+ };
+
+ rng.deleteContents = function () {
+ doc.execCommand("Delete", false, "");
+ };
+
+ return rng;
+ }
+
+ // Patch selection
+
+ newSel.focusNode = sel.baseNode;
+ newSel.focusOffset = sel.baseOffset;
+ newSel.anchorNode = sel.extentNode;
+ newSel.anchorOffset = sel.extentOffset;
+ newSel.getRangeAt = getRangeAt;
+ newSel.text = "" + sel;
+ newSel.realSelection = sel;
+
+ newSel.toString = function () {return this.text;};
+
+ return newSel;
+ }
+
+ return sel;
+};
+
+TinyMCEControl.prototype.getRng = function() {
+ var sel = this.getSel();
+ if (sel == null)
+ return null;
+
+ if (tinyMCE.isMSIE)
+ return sel.createRange();
+
+ if (tinyMCE.isSafari) {
+ var rng = this.getDoc().createRange();
+ var sel = this.getSel().realSelection;
+
+ rng.setStart(sel.baseNode, sel.baseOffset);
+ rng.setEnd(sel.extentNode, sel.extentOffset);
+
+ return rng;
+ }
+
+ return this.getSel().getRangeAt(0);
+};
+
+TinyMCEControl.prototype._insertPara = function(e) {
+ function isEmpty(para) {
+ function isEmptyHTML(html) {
+ return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() == "";
+ }
+
+ // Check for images
+ if (para.getElementsByTagName("img").length > 0)
+ return false;
+
+ // Check for tables
+ if (para.getElementsByTagName("table").length > 0)
+ return false;
+
+ // Check for HRs
+ if (para.getElementsByTagName("hr").length > 0)
+ return false;
+
+ // Check all textnodes
+ var nodes = tinyMCE.getNodeTree(para, new Array(), 3);
+ for (var i=0; i<nodes.length; i++) {
+ if (!isEmptyHTML(nodes[i].nodeValue))
+ return false;
+ }
+
+ // No images, no tables, no hrs, no text content then it's empty
+ return true;
+ }
+
+ var doc = this.getDoc();
+ var sel = this.getSel();
+ var win = this.contentWindow;
+ var rng = sel.getRangeAt(0);
+ var body = doc.body;
+ var rootElm = doc.documentElement;
+ var self = this;
+ var blockName = "P";
+
+// debug(e.target, sel.anchorNode.nodeName, sel.focusNode.nodeName, rng.startContainer, rng.endContainer, rng.commonAncestorContainer, sel.anchorOffset, sel.focusOffset, rng.toString());
+
+ // Setup before range
+ var rngBefore = doc.createRange();
+ rngBefore.setStart(sel.anchorNode, sel.anchorOffset);
+ rngBefore.collapse(true);
+
+ // Setup after range
+ var rngAfter = doc.createRange();
+ rngAfter.setStart(sel.focusNode, sel.focusOffset);
+ rngAfter.collapse(true);
+
+ // Setup start/end points
+ var direct = rngBefore.compareBoundaryPoints(rngBefore.START_TO_END, rngAfter) < 0;
+ var startNode = direct ? sel.anchorNode : sel.focusNode;
+ var startOffset = direct ? sel.anchorOffset : sel.focusOffset;
+ var endNode = direct ? sel.focusNode : sel.anchorNode;
+ var endOffset = direct ? sel.focusOffset : sel.anchorOffset;
+
+ // Get block elements
+ var startBlock = tinyMCE.getParentBlockElement(startNode);
+ var endBlock = tinyMCE.getParentBlockElement(endNode);
+
+ // Use current block name
+ if (startBlock != null) {
+ blockName = startBlock.nodeName.toUpperCase();
+
+ // Use P instead
+ if (blockName == "TD" || blockName == "TABLE")
+ blockName = "P";
+ }
+
+ // Within a list item (use normal behavior)
+ if ((startBlock != null && startBlock.nodeName.toLowerCase() == "li") || (endBlock != null && endBlock.nodeName.toLowerCase() == "li"))
+ return false;
+
+ // Within a table create new paragraphs
+ if ((startBlock != null && startBlock.nodeName.toLowerCase() == "table") || (endBlock != null && endBlock.nodeName.toLowerCase() == "table"))
+ startBlock = endBlock = null;
+
+ // Setup new paragraphs
+ var paraBefore = (startBlock != null && startBlock.nodeName.toUpperCase() == blockName) ? startBlock.cloneNode(false) : doc.createElement(blockName);
+ var paraAfter = (endBlock != null && endBlock.nodeName.toUpperCase() == blockName) ? endBlock.cloneNode(false) : doc.createElement(blockName);
+
+ // Setup chop nodes
+ var startChop = startNode;
+ var endChop = endNode;
+
+ // Get startChop node
+ node = startChop;
+ do {
+ if (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
+ break;
+
+ startChop = node;
+ } while ((node = node.previousSibling ? node.previousSibling : node.parentNode));
+
+ // Get endChop node
+ node = endChop;
+ do {
+ if (node == body || node.nodeType == 9 || tinyMCE.isBlockElement(node))
+ break;
+
+ endChop = node;
+ } while ((node = node.nextSibling ? node.nextSibling : node.parentNode));
+
+ // If not in a block element
+ if (startBlock == null) {
+ // Delete selection
+ rng.deleteContents();
+ sel.removeAllRanges();
+
+ if (startChop != rootElm && endChop != rootElm) {
+ // Insert paragraph before
+ rngBefore = rng.cloneRange();
+
+ if (startChop == body)
+ rngBefore.setStart(startChop, 0);
+ else
+ rngBefore.setStartBefore(startChop);
+
+ paraBefore.appendChild(rngBefore.cloneContents());
+
+ // Insert paragraph after
+ if (endChop.parentNode.nodeName == blockName)
+ endChop = endChop.parentNode;
+
+ rng.setEndAfter(endChop);
+
+ var contents = rng.cloneContents();
+ if (contents.firstChild && (contents.firstChild.nodeName == blockName || contents.firstChild.nodeName.toLowerCase() == "body")) {
+ var nodes = contents.firstChild.childNodes;
+ for (var i=0; i<nodes.length; i++) {
+ if (nodes[i].nodeName.toLowerCase() != "body")
+ paraAfter.appendChild(nodes[i]);
+ }
+ } else
+ paraAfter.appendChild(contents);
+
+ // Check if it's a empty paragraph
+ if (isEmpty(paraBefore))
+ paraBefore.innerHTML = " ";
+
+ // Check if it's a empty paragraph
+ if (isEmpty(paraAfter))
+ paraAfter.innerHTML = " ";
+
+ // Delete old contents
+ rng.deleteContents();
+ rngAfter.deleteContents();
+ rngBefore.deleteContents();
+
+ // Insert new paragraphs
+ paraAfter.normalize();
+ rngBefore.insertNode(paraAfter);
+ paraBefore.normalize();
+ rngBefore.insertNode(paraBefore);
+
+// tinyMCE.debug("1: ", paraBefore.innerHTML, paraAfter.innerHTML);
+ } else {
+ body.innerHTML = "<" + blockName + "> </" + blockName + "><" + blockName + "> </" + blockName + ">";
+ paraAfter = body.childNodes[1];
+ }
+
+ this.selectNode(paraAfter, true, true);
+
+ return true;
+ }
+
+ // Place first part within new paragraph
+ if (startChop.nodeName == blockName)
+ rngBefore.setStart(startChop, 0);
+ else
+ rngBefore.setStartBefore(startChop);
+ rngBefore.setEnd(startNode, startOffset);
+ paraBefore.appendChild(rngBefore.cloneContents());
+
+ // Place secound part within new paragraph
+ rngAfter.setEndAfter(endChop);
+ rngAfter.setStart(endNode, endOffset);
+ var contents = rngAfter.cloneContents();
+ if (contents.firstChild && contents.firstChild.nodeName == blockName) {
+ var nodes = contents.firstChild.childNodes;
+ for (var i=0; i<nodes.length; i++) {
+ if (nodes[i].nodeName.toLowerCase() != "body")
+ paraAfter.appendChild(nodes[i]);
+ }
+ } else
+ paraAfter.appendChild(contents);
+
+ // Check if it's a empty paragraph
+ if (isEmpty(paraBefore))
+ paraBefore.innerHTML = " ";
+
+ // Check if it's a empty paragraph
+ if (isEmpty(paraAfter))
+ paraAfter.innerHTML = " ";
+
+ // Create a range around everything
+ var rng = doc.createRange();
+
+ if (!startChop.previousSibling && startChop.parentNode.nodeName.toUpperCase() == blockName) {
+ rng.setStartBefore(startChop.parentNode);
+ } else {
+ if (rngBefore.startContainer.nodeName.toUpperCase() == blockName && rngBefore.startOffset == 0)
+ rng.setStartBefore(rngBefore.startContainer);
+ else
+ rng.setStart(rngBefore.startContainer, rngBefore.startOffset);
+ }
+
+ if (!endChop.nextSibling && endChop.parentNode.nodeName.toUpperCase() == blockName)
+ rng.setEndAfter(endChop.parentNode);
+ else
+ rng.setEnd(rngAfter.endContainer, rngAfter.endOffset);
+
+ // Delete all contents and insert new paragraphs
+ rng.deleteContents();
+ rng.insertNode(paraAfter);
+ rng.insertNode(paraBefore);
+ // debug("2", paraBefore.innerHTML, paraAfter.innerHTML);
+
+ // Normalize
+ paraAfter.normalize();
+ paraBefore.normalize();
+
+ this.selectNode(paraAfter, true, true);
+
+ return true;
+};
+
+TinyMCEControl.prototype._handleBackSpace = function(evt_type) {
+ var doc = this.getDoc();
+ var sel = this.getSel();
+ if (sel == null)
+ return false;
+
+ var rng = sel.getRangeAt(0);
+ var node = rng.startContainer;
+ var elm = node.nodeType == 3 ? node.parentNode : node;
+
+ if (node == null)
+ return;
+
+ // Empty node, wrap contents in paragraph
+ if (elm && elm.nodeName == "") {
+ var para = doc.createElement("p");
+
+ while (elm.firstChild)
+ para.appendChild(elm.firstChild);
+
+ elm.parentNode.insertBefore(para, elm);
+ elm.parentNode.removeChild(elm);
+
+ var rng = rng.cloneRange();
+ rng.setStartBefore(node.nextSibling);
+ rng.setEndAfter(node.nextSibling);
+ rng.extractContents();
+
+ this.selectNode(node.nextSibling, true, true);
+ }
+
+ // Remove empty paragraphs
+ var para = tinyMCE.getParentBlockElement(node);
+ if (para != null && para.nodeName.toLowerCase() == 'p' && evt_type == "keypress") {
+ var htm = para.innerHTML;
+ var block = tinyMCE.getParentBlockElement(node);
+
+ // Empty node, we do the killing!!
+ if (htm == "" || htm == " " || block.nodeName.toLowerCase() == "li") {
+ var prevElm = para.previousSibling;
+
+ while (prevElm != null && prevElm.nodeType != 1)
+ prevElm = prevElm.previousSibling;
+
+ if (prevElm == null)
+ return false;
+
+ // Get previous elements last text node
+ var nodes = tinyMCE.getNodeTree(prevElm, new Array(), 3);
+ var lastTextNode = nodes.length == 0 ? null : nodes[nodes.length-1];
+
+ // Select the last text node and move curstor to end
+ if (lastTextNode != null)
+ this.selectNode(lastTextNode, true, false, false);
+
+ // Remove the empty paragrapsh
+ para.parentNode.removeChild(para);
+
+ //debug("within p element" + para.innerHTML);
+ //showHTML(this.getBody().innerHTML);
+ return true;
+ }
+ }
+
+ // Remove BR elements
+/* while (node != null && (node = node.nextSibling) != null) {
+ if (node.nodeName.toLowerCase() == 'br')
+ node.parentNode.removeChild(node);
+ else if (node.nodeType == 1) // Break at other element
+ break;
+ }*/
+
+ //showHTML(this.getBody().innerHTML);
+
+ return false;
+};
+
+TinyMCEControl.prototype._insertSpace = function() {
+ return true;
+};
+
+TinyMCEControl.prototype.autoResetDesignMode = function() {
+ // Add fix for tab/style.display none/block problems in Gecko
+ if (!tinyMCE.isMSIE && tinyMCE.settings['auto_reset_designmode']) {
+ var sel = this.getSel();
+
+ // Weird, wheres that cursor selection?
+ if (!sel || !sel.rangeCount || sel.rangeCount == 0)
+ eval('try { this.getDoc().designMode = "On"; } catch(e) {}');
+ }
+};
+
+TinyMCEControl.prototype.isDirty = function() {
+ // Is content modified and not in a submit procedure
+ return this.startContent != tinyMCE.trim(this.getBody().innerHTML) && !tinyMCE.isNotDirty;
+};
+
+TinyMCEControl.prototype._mergeElements = function(pa, ch, override) {
+ ch = ch.cloneNode(true);
+ var st = tinyMCE.parseStyle(tinyMCE.getAttrib(pa, "style"));
+ var stc = tinyMCE.parseStyle(tinyMCE.getAttrib(ch, "style"));
+ var className = tinyMCE.getAttrib(pa, "class");
+
+ className += " " + tinyMCE.getAttrib(ch, "class");
+
+ if (override) {
+ for (var n in st)
+ stc[n] = st[n];
+ } else {
+ for (var n in stc)
+ st[n] = stc[n];
+ }
+
+ tinyMCE.setAttrib(ch, "style", tinyMCE.serializeStyle(st));
+ tinyMCE.setAttrib(ch, "class", tinyMCE.trim(className));
+ pa.parentNode.replaceChild(ch, pa);
+};
+
+TinyMCEControl.prototype.execCommand = function(command, user_interface, value) {
+ var doc = this.getDoc();
+ var win = this.getWin();
+ var focusElm = this.getFocusElement();
+
+ if (this.lastSafariSelection && !new RegExp('mceStartTyping|mceEndTyping|mceBeginUndoLevel|mceEndUndoLevel|mceAddUndoLevel', 'gi').test(command)) {
+ this.moveToBookmark(this.lastSafariSelection);
+ tinyMCE.selectedElement = this.lastSafariSelectedElement;
+ }
+
+ // Mozilla issue
+ if (!tinyMCE.isMSIE && !this.useCSS) {
+ doc.execCommand("useCSS", false, true);
+ this.useCSS = true;
+ }
+
+ //debug("command: " + command + ", user_interface: " + user_interface + ", value: " + value);
+ this.contentDocument = doc; // <-- Strange, unless this is applied Mozilla 1.3 breaks
+
+ // Call theme execcommand
+ if (tinyMCE._themeExecCommand(this.editorId, this.getBody(), command, user_interface, value))
+ return;
+
+ // Fix align on images
+ if (focusElm && focusElm.nodeName == "IMG") {
+ var align = focusElm.getAttribute('align');
+ var img = command == "JustifyCenter" ? focusElm.cloneNode(false) : focusElm;
+
+ switch (command) {
+ case "JustifyLeft":
+ if (align == 'left')
+ img.removeAttribute('align');
+ else
+ img.setAttribute('align', 'left');
+
+ // Remove the div
+ var div = focusElm.parentNode;
+ if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
+ div.parentNode.replaceChild(img, div);
+
+ this.selectNode(img);
+ this.repaint();
+ tinyMCE.triggerNodeChange();
+ return;
+
+ case "JustifyCenter":
+ img.removeAttribute('align');
+
+ // Is centered
+ var div = tinyMCE.getParentElement(focusElm, "div");
+ if (div && div.style.textAlign == "center") {
+ // Remove div
+ if (div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
+ div.parentNode.replaceChild(img, div);
+ } else {
+ // Add div
+ var div = this.getDoc().createElement("div");
+ div.style.textAlign = 'center';
+ div.appendChild(img);
+ focusElm.parentNode.replaceChild(div, focusElm);
+ }
+
+ this.selectNode(img);
+ this.repaint();
+ tinyMCE.triggerNodeChange();
+ return;
+
+ case "JustifyRight":
+ if (align == 'right')
+ img.removeAttribute('align');
+ else
+ img.setAttribute('align', 'right');
+
+ // Remove the div
+ var div = focusElm.parentNode;
+ if (div && div.nodeName == "DIV" && div.childNodes.length == 1 && div.parentNode)
+ div.parentNode.replaceChild(img, div);
+
+ this.selectNode(img);
+ this.repaint();
+ tinyMCE.triggerNodeChange();
+ return;
+ }
+ }
+
+ if (tinyMCE.settings['force_br_newlines']) {
+ var alignValue = "";
+
+ if (doc.selection.type != "Control") {
+ switch (command) {
+ case "JustifyLeft":
+ alignValue = "left";
+ break;
+
+ case "JustifyCenter":
+ alignValue = "center";
+ break;
+
+ case "JustifyFull":
+ alignValue = "justify";
+ break;
+
+ case "JustifyRight":
+ alignValue = "right";
+ break;
+ }
+
+ if (alignValue != "") {
+ var rng = doc.selection.createRange();
+
+ if ((divElm = tinyMCE.getParentElement(rng.parentElement(), "div")) != null)
+ divElm.setAttribute("align", alignValue);
+ else if (rng.pasteHTML && rng.htmlText.length > 0)
+ rng.pasteHTML('<div align="' + alignValue + '">' + rng.htmlText + "</div>");
+
+ tinyMCE.triggerNodeChange();
+ return;
+ }
+ }
+ }
+
+ switch (command) {
+ case "mceRepaint":
+ this.repaint();
+ return true;
+
+ case "mceStoreSelection":
+ this.selectionBookmark = this.getBookmark();
+ return true;
+
+ case "mceRestoreSelection":
+ this.moveToBookmark(this.selectionBookmark);
+ return true;
+
+ case "InsertUnorderedList":
+ case "InsertOrderedList":
+ var tag = (command == "InsertUnorderedList") ? "ul" : "ol";
+
+ if (tinyMCE.isSafari)
+ this.execCommand("mceInsertContent", false, "<" + tag + "><li> </li><" + tag + ">");
+ else
+ this.getDoc().execCommand(command, user_interface, value);
+
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "Strikethrough":
+ if (tinyMCE.isSafari)
+ this.execCommand("mceInsertContent", false, "<strike>" + this.getSelectedHTML() + "</strike>");
+ else
+ this.getDoc().execCommand(command, user_interface, value);
+
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "mceSelectNode":
+ this.selectNode(value);
+ tinyMCE.triggerNodeChange();
+ tinyMCE.selectedNode = value;
+ break;
+
+ case "FormatBlock":
+ if (value == null || value == "") {
+ var elm = tinyMCE.getParentElement(this.getFocusElement(), "p,div,h1,h2,h3,h4,h5,h6,pre,address");
+
+ if (elm)
+ this.execCommand("mceRemoveNode", false, elm);
+ } else
+ this.getDoc().execCommand("FormatBlock", false, value);
+
+ tinyMCE.triggerNodeChange();
+
+ break;
+
+ case "mceRemoveNode":
+ if (!value)
+ value = tinyMCE.getParentElement(this.getFocusElement());
+
+ if (tinyMCE.isMSIE) {
+ value.outerHTML = value.innerHTML;
+ } else {
+ var rng = value.ownerDocument.createRange();
+ rng.setStartBefore(value);
+ rng.setEndAfter(value);
+ rng.deleteContents();
+ rng.insertNode(rng.createContextualFragment(value.innerHTML));
+ }
+
+ tinyMCE.triggerNodeChange();
+
+ break;
+
+ case "mceSelectNodeDepth":
+ var parentNode = this.getFocusElement();
+ for (var i=0; parentNode; i++) {
+ if (parentNode.nodeName.toLowerCase() == "body")
+ break;
+
+ if (parentNode.nodeName.toLowerCase() == "#text") {
+ i--;
+ parentNode = parentNode.parentNode;
+ continue;
+ }
+
+ if (i == value) {
+ this.selectNode(parentNode, false);
+ tinyMCE.triggerNodeChange();
+ tinyMCE.selectedNode = parentNode;
+ return;
+ }
+
+ parentNode = parentNode.parentNode;
+ }
+
+ break;
+
+ case "SetStyleInfo":
+ var rng = this.getRng();
+ var sel = this.getSel();
+ var scmd = value['command'];
+ var sname = value['name'];
+ var svalue = value['value'];
+ var wrapper = value['wrapper'] ? value['wrapper'] : "span";
+ var parentElm = null;
+
+ // Whole element selected check
+ if (tinyMCE.isMSIE) {
+ // Control range
+ if (rng.item)
+ parentElm = rng.item(0);
+ else {
+ var pelm = rng.parentElement();
+ var prng = doc.selection.createRange();
+ prng.moveToElementText(pelm);
+
+ if (rng.htmlText == prng.htmlText || rng.boundingWidth == 0)
+ parentElm = pelm;
+ }
+ } else {
+ var felm = this.getFocusElement();
+ if (sel.isCollapsed || (/td|tr|tbody|table/ig.test(felm.nodeName) && sel.anchorNode == felm.parentNode))
+ parentElm = felm;
+ }
+
+ // Whole element selected
+ if (parentElm) {
+ if (scmd == "setstyle")
+ eval("parentElm.style." + sname + " = svalue;");
+
+ if (scmd == "setattrib")
+ tinyMCE.setAttrib(parentElm, sname, svalue);
+ } else {
+ doc.execCommand("fontname", false, "#mce_temp_font#");
+ var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#");
+
+ // Change them all
+ for (var x=0; x<elementArray.length; x++) {
+ elm = elementArray[x];
+ if (elm) {
+ var spanElm = doc.createElement(wrapper);
+
+ if (scmd == "setstyle")
+ eval("spanElm.style." + sname + " = svalue;");
+
+ if (scmd == "setattrib")
+ tinyMCE.setAttrib(spanElm, sname, svalue);
+
+ if (elm.hasChildNodes()) {
+ for (var i=0; i<elm.childNodes.length; i++)
+ spanElm.appendChild(elm.childNodes[i].cloneNode(true));
+ }
+
+ spanElm.setAttribute("mce_new", "true");
+ elm.parentNode.replaceChild(spanElm, elm);
+ }
+ }
+ }
+
+ // Cleaup wrappers
+ var nodes = doc.getElementsByTagName(wrapper);
+ for (var i=nodes.length-1; i>=0; i--) {
+ var elm = nodes[i];
+ var isNew = tinyMCE.getAttrib(elm, "mce_new") == "true";
+
+ elm.removeAttribute("mce_new");
+
+ // Is only child a element
+ if (elm.childNodes && elm.childNodes.length == 1 && elm.childNodes[0].nodeType == 1) {
+ // tinyMCE.debug("merge1" + isNew);
+ this._mergeElements(elm, elm.childNodes[0], isNew);
+ continue;
+ }
+
+ // Is I the only child
+ if (elm.parentNode.childNodes.length == 1) {
+ // tinyMCE.debug("merge2" + isNew);
+ this._mergeElements(elm.parentNode, elm, false);
+ }
+ }
+
+ // Remove empty wrappers
+ var nodes = doc.getElementsByTagName(wrapper);
+ for (var i=nodes.length-1; i>=0; i--) {
+ var elm = nodes[i];
+ var isEmpty = true;
+
+ // Check if it has any attribs
+ var tmp = doc.createElement("body");
+ tmp.appendChild(elm.cloneNode(false));
+
+ // Is empty span, remove it
+ if (new RegExp('<span>|<span style="">', 'gi').test(tmp.innerHTML)) {
+ for (var i=elm.childNodes.length-1; i>=0; i--) {
+ if (elm.parentNode != null) {
+ elm.parentNode.insertBefore(elm.childNodes[i].cloneNode(true), elm);
+ elm.parentNode.removeChild(elm);
+ }
+ }
+ }
+ }
+
+ tinyMCE.triggerNodeChange();
+
+ break;
+
+ case "FontName":
+ if (tinyMCE.getParam("convert_fonts_to_styles"))
+ this.execCommand("SetStyleInfo", false, {command : "setstyle", name : "fontFamily", value : value});
+ else
+ this.getDoc().execCommand('FontName', false, value);
+ break;
+
+ case "FontSize":
+ if (tinyMCE.getParam("convert_fonts_to_styles")) {
+ var sizes = new Array('', 8, 10, 12, 14, 18, 24, 36);
+ var size = sizes[value] == '' ? '' : sizes[value] + 'px';
+
+ this.execCommand("SetStyleInfo", false, {command : "setstyle", name : "fontSize", value : size});
+ } else
+ this.getDoc().execCommand('FontSize', false, value);
+
+ break;
+
+ case "forecolor":
+ if (tinyMCE.getParam("convert_fonts_to_styles"))
+ this.execCommand("SetStyleInfo", false, {command : "setstyle", name : "color", value : value});
+ else {
+ if (tinyMCE.isGecko) {
+ this.getDoc().execCommand("useCSS", false, true);
+ this.getDoc().execCommand('forecolor', false, value);
+ this.getDoc().execCommand("useCSS", false, true);
+ } else
+ this.getDoc().execCommand('forecolor', false, value);
+ }
+ break;
+
+ case "HiliteColor":
+ if (tinyMCE.getParam("convert_fonts_to_styles"))
+ this.execCommand("SetStyleInfo", false, {command : "setstyle", name : "backgroundColor", value : value});
+ else {
+ if (tinyMCE.isGecko) {
+ this.getDoc().execCommand("useCSS", false, false);
+ this.getDoc().execCommand('hilitecolor', false, value);
+ this.getDoc().execCommand("useCSS", false, true);
+ } else
+ this.getDoc().execCommand('BackColor', false, value);
+ }
+
+ break;
+
+ case "Cut":
+ case "Copy":
+ case "Paste":
+ var cmdFailed = false;
+
+ // Try executing command
+ eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');
+
+ // Alert error in gecko if command failed
+ if (tinyMCE.isGecko && cmdFailed) {
+ // Confirm more info
+ if (confirm(tinyMCE.getLang('lang_clipboard_msg')))
+ window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal');
+
+ return;
+ } else
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "mceSetContent":
+ if (!value)
+ value = "";
+
+ // Call custom cleanup code
+ value = tinyMCE._customCleanup(this, "insert_to_editor", value);
+ tinyMCE._setHTML(doc, value);
+ doc.body.innerHTML = tinyMCE._cleanupHTML(this, doc, tinyMCE.settings, doc.body);
+ tinyMCE.handleVisualAid(doc.body, true, this.visualAid, this);
+ tinyMCE._setEventsEnabled(doc.body, true);
+ return true;
+
+ case "mceLink":
+ var selectedText = "";
+
+ if (tinyMCE.isMSIE) {
+ var rng = doc.selection.createRange();
+ selectedText = rng.text;
+ } else
+ selectedText = this.getSel().toString();
+
+ if (!tinyMCE.linkElement) {
+ if ((tinyMCE.selectedElement.nodeName.toLowerCase() != "img") && (selectedText.length <= 0))
+ return;
+ }
+
+ var href = "", target = "", title = "", onclick = "", action = "insert", style_class = "";
+
+ if (tinyMCE.selectedElement.nodeName.toLowerCase() == "a")
+ tinyMCE.linkElement = tinyMCE.selectedElement;
+
+ // Is anchor not a link
+ if (tinyMCE.linkElement != null && tinyMCE.getAttrib(tinyMCE.linkElement, 'href') == "")
+ tinyMCE.linkElement = null;
+
+ if (tinyMCE.linkElement) {
+ href = tinyMCE.getAttrib(tinyMCE.linkElement, 'href');
+ target = tinyMCE.getAttrib(tinyMCE.linkElement, 'target');
+ title = tinyMCE.getAttrib(tinyMCE.linkElement, 'title');
+ onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick');
+ style_class = tinyMCE.getAttrib(tinyMCE.linkElement, 'class');
+
+ // Try old onclick to if copy/pasted content
+ if (onclick == "")
+ onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick');
+
+ onclick = tinyMCE.cleanupEventStr(onclick);
+
+ // Fix for drag-drop/copy paste bug in Mozilla
+ mceRealHref = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_real_href');
+ if (mceRealHref != "")
+ href = mceRealHref;
+
+ href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);");
+ action = "update";
+ }
+
+ if (this.settings['insertlink_callback']) {
+ var returnVal = eval(this.settings['insertlink_callback'] + "(href, target, title, onclick, action, style_class);");
+ if (returnVal && returnVal['href'])
+ tinyMCE.insertLink(returnVal['href'], returnVal['target'], returnVal['title'], returnVal['onclick'], returnVal['style_class']);
+ } else {
+ tinyMCE.openWindow(this.insertLinkTemplate, {href : href, target : target, title : title, onclick : onclick, action : action, className : style_class});
+ }
+ break;
+
+ case "mceImage":
+ var src = "", alt = "", border = "", hspace = "", vspace = "", width = "", height = "", align = "";
+ var title = "", onmouseover = "", onmouseout = "", action = "insert";
+ var img = tinyMCE.imgElement;
+
+ if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") {
+ img = tinyMCE.selectedElement;
+ tinyMCE.imgElement = img;
+ }
+
+ if (img) {
+ // Is it a internal MCE visual aid image, then skip this one.
+ if (tinyMCE.getAttrib(img, 'name').indexOf('mce_') == 0)
+ return;
+
+ src = tinyMCE.getAttrib(img, 'src');
+ alt = tinyMCE.getAttrib(img, 'alt');
+
+ // Try polling out the title
+ if (alt == "")
+ alt = tinyMCE.getAttrib(img, 'title');
+
+ // Fix width/height attributes if the styles is specified
+ if (tinyMCE.isGecko) {
+ var w = img.style.width;
+ if (w != null && w != "")
+ img.setAttribute("width", w);
+
+ var h = img.style.height;
+ if (h != null && h != "")
+ img.setAttribute("height", h);
+ }
+
+ border = tinyMCE.getAttrib(img, 'border');
+ hspace = tinyMCE.getAttrib(img, 'hspace');
+ vspace = tinyMCE.getAttrib(img, 'vspace');
+ width = tinyMCE.getAttrib(img, 'width');
+ height = tinyMCE.getAttrib(img, 'height');
+ align = tinyMCE.getAttrib(img, 'align');
+ onmouseover = tinyMCE.getAttrib(img, 'onmouseover');
+ onmouseout = tinyMCE.getAttrib(img, 'onmouseout');
+ title = tinyMCE.getAttrib(img, 'title');
+
+ // Is realy specified?
+ if (tinyMCE.isMSIE) {
+ width = img.attributes['width'].specified ? width : "";
+ height = img.attributes['height'].specified ? height : "";
+ }
+
+ onmouseover = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover));
+ onmouseout = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout));
+
+ // Fix for drag-drop/copy paste bug in Mozilla
+ mceRealSrc = tinyMCE.getAttrib(img, 'mce_real_src');
+ if (mceRealSrc != "")
+ src = mceRealSrc;
+
+ src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);");
+
+ if (onmouseover != "")
+ onmouseover = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseover, img, true);");
+
+ if (onmouseout != "")
+ onmouseout = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseout, img, true);");
+
+ action = "update";
+ }
+
+ if (this.settings['insertimage_callback']) {
+ var returnVal = eval(this.settings['insertimage_callback'] + "(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");
+ if (returnVal && returnVal['src'])
+ tinyMCE.insertImage(returnVal['src'], returnVal['alt'], returnVal['border'], returnVal['hspace'], returnVal['vspace'], returnVal['width'], returnVal['height'], returnVal['align'], returnVal['title'], returnVal['onmouseover'], returnVal['onmouseout']);
+ } else
+ tinyMCE.openWindow(this.insertImageTemplate, {src : src, alt : alt, border : border, hspace : hspace, vspace : vspace, width : width, height : height, align : align, title : title, onmouseover : onmouseover, onmouseout : onmouseout, action : action});
+ break;
+
+ case "mceCleanup":
+ tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML);
+ this.getBody().innerHTML = tinyMCE._cleanupHTML(this, this.contentDocument, this.settings, this.getBody(), this.visualAid);
+ tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
+ tinyMCE._setEventsEnabled(this.getBody(), true);
+ this.repaint();
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "mceReplaceContent":
+ var selectedText = "";
+
+ if (tinyMCE.isMSIE) {
+ var rng = doc.selection.createRange();
+ selectedText = rng.text;
+ } else
+ selectedText = this.getSel().toString();
+
+ if (selectedText.length > 0) {
+ value = tinyMCE.replaceVar(value, "selection", selectedText);
+ tinyMCE.execCommand('mceInsertContent', false, value);
+ }
+
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "mceSetAttribute":
+ if (typeof(value) == 'object') {
+ var targetElms = (typeof(value['targets']) == "undefined") ? "p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value['targets'];
+ var targetNode = tinyMCE.getParentElement(this.getFocusElement(), targetElms);
+
+ if (targetNode) {
+ targetNode.setAttribute(value['name'], value['value']);
+ tinyMCE.triggerNodeChange();
+ }
+ }
+ break;
+
+ case "mceSetCSSClass":
+ this.execCommand("SetStyleInfo", false, {command : "setattrib", name : "class", value : value});
+ break;
+
+ case "mceInsertRawHTML":
+ var key = 'tiny_mce_marker';
+
+ this.execCommand('mceBeginUndoLevel');
+
+ // Insert marker key
+ this.execCommand('mceInsertContent', false, key);
+
+ // Store away scroll pos
+ var scrollX = this.getDoc().body.scrollLeft + this.getDoc().documentElement.scrollLeft;
+ var scrollY = this.getDoc().body.scrollTop + this.getDoc().documentElement.scrollTop;
+
+ // Find marker and replace with RAW HTML
+ var html = this.getBody().innerHTML;
+ if ((pos = html.indexOf(key)) != -1)
+ this.getBody().innerHTML = html.substring(0, pos) + value + html.substring(pos + key.length);
+
+ // Restore scoll pos
+ this.contentWindow.scrollTo(scrollX, scrollY);
+
+ this.execCommand('mceEndUndoLevel');
+
+ break;
+
+ case "mceInsertContent":
+ if (!tinyMCE.isMSIE) {
+ var sel = this.getSel();
+ var rng = this.getRng();
+ var isHTML = value.indexOf('<') != -1;
+
+ if (isHTML) {
+ if (tinyMCE.isSafari) {
+ var tmpRng = this.getDoc().createRange();
+
+ tmpRng.setStart(this.getBody(), 0);
+ tmpRng.setEnd(this.getBody(), 0);
+
+ value = tmpRng.createContextualFragment(value);
+ } else
+ value = rng.createContextualFragment(value);
+ } else {
+ // Setup text node
+ var el = document.createElement("div");
+ el.innerHTML = value;
+ value = el.firstChild.nodeValue;
+ value = doc.createTextNode(value);
+ }
+
+ // Insert plain text in Safari
+ if (tinyMCE.isSafari && !isHTML) {
+ this.execCommand('InsertText', false, value.nodeValue);
+ tinyMCE.triggerNodeChange();
+ return true;
+ } else if (tinyMCE.isSafari && isHTML) {
+ rng.deleteContents();
+ rng.insertNode(value);
+ tinyMCE.triggerNodeChange();
+ return true;
+ }
+
+ rng.deleteContents();
+
+ // If target node is text do special treatment, (Mozilla 1.3 fix)
+ if (rng.startContainer.nodeType == 3) {
+ var node = rng.startContainer.splitText(rng.startOffset);
+ node.parentNode.insertBefore(value, node);
+ } else
+ rng.insertNode(value);
+
+ if (!isHTML) {
+ // Removes weird selection trails
+ sel.selectAllChildren(doc.body);
+ sel.removeAllRanges();
+
+ // Move cursor to end of content
+ var rng = doc.createRange();
+
+ rng.selectNode(value);
+ rng.collapse(false);
+
+ sel.addRange(rng);
+ } else
+ rng.collapse(false);
+ } else {
+ var rng = doc.selection.createRange();
+
+ if (rng.item)
+ rng.item(0).outerHTML = value;
+ else
+ rng.pasteHTML(value);
+ }
+
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "mceStartTyping":
+ if (tinyMCE.settings['custom_undo_redo'] && this.typingUndoIndex == -1) {
+ this.typingUndoIndex = this.undoIndex;
+ this.execCommand('mceAddUndoLevel');
+ //tinyMCE.debug("mceStartTyping");
+ }
+ break;
+
+ case "mceEndTyping":
+ if (tinyMCE.settings['custom_undo_redo'] && this.typingUndoIndex != -1) {
+ this.execCommand('mceAddUndoLevel');
+ this.typingUndoIndex = -1;
+ //tinyMCE.debug("mceEndTyping");
+ }
+ break;
+
+ case "mceBeginUndoLevel":
+ this.undoRedo = false;
+ break;
+
+ case "mceEndUndoLevel":
+ this.undoRedo = true;
+ this.execCommand('mceAddUndoLevel');
+ break;
+
+ case "mceAddUndoLevel":
+ if (tinyMCE.settings['custom_undo_redo'] && this.undoRedo) {
+ // tinyMCE.debug("add level");
+
+ if (this.typingUndoIndex != -1) {
+ this.undoIndex = this.typingUndoIndex;
+ // tinyMCE.debug("Override: " + this.undoIndex);
+ }
+
+ var newHTML = tinyMCE.trim(this.getBody().innerHTML);
+ if (newHTML != this.undoLevels[this.undoIndex]) {
+ // tinyMCE.debug("[" + newHTML + "," + this.undoLevels[this.undoIndex] + "]");
+
+ tinyMCE.executeCallback('onchange_callback', '_onchange', 0, this);
+
+ // Time to compress
+ var customUndoLevels = tinyMCE.settings['custom_undo_redo_levels'];
+ if (customUndoLevels != -1 && this.undoLevels.length > customUndoLevels) {
+ for (var i=0; i<this.undoLevels.length-1; i++) {
+ //tinyMCE.debug(this.undoLevels[i] + "=" + this.undoLevels[i+1]);
+ this.undoLevels[i] = this.undoLevels[i+1];
+ }
+
+ this.undoLevels.length--;
+ this.undoIndex--;
+ }
+
+ this.undoIndex++;
+ this.undoLevels[this.undoIndex] = newHTML;
+ this.undoLevels.length = this.undoIndex + 1;
+
+ // tinyMCE.debug("level added" + this.undoIndex);
+ tinyMCE.triggerNodeChange(false);
+
+ // tinyMCE.debug(this.undoIndex + "," + (this.undoLevels.length-1));
+ }
+ }
+ break;
+
+ case "Undo":
+ if (tinyMCE.settings['custom_undo_redo']) {
+ tinyMCE.execCommand("mceEndTyping");
+
+ // Do undo
+ if (this.undoIndex > 0) {
+ this.undoIndex--;
+ this.getBody().innerHTML = this.undoLevels[this.undoIndex];
+ this.repaint();
+ }
+
+ // tinyMCE.debug("Undo - undo levels:" + this.undoLevels.length + ", undo index: " + this.undoIndex);
+ tinyMCE.triggerNodeChange();
+ } else
+ this.getDoc().execCommand(command, user_interface, value);
+ break;
+
+ case "Redo":
+ if (tinyMCE.settings['custom_undo_redo']) {
+ tinyMCE.execCommand("mceEndTyping");
+
+ if (this.undoIndex < (this.undoLevels.length-1)) {
+ this.undoIndex++;
+ this.getBody().innerHTML = this.undoLevels[this.undoIndex];
+ this.repaint();
+ // tinyMCE.debug("Redo - undo levels:" + this.undoLevels.length + ", undo index: " + this.undoIndex);
+ }
+
+ tinyMCE.triggerNodeChange();
+ } else
+ this.getDoc().execCommand(command, user_interface, value);
+ break;
+
+ case "mceToggleVisualAid":
+ this.visualAid = !this.visualAid;
+ tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid, this);
+ tinyMCE.triggerNodeChange();
+ break;
+
+ case "removeformat":
+ var text = this.getSelectedText();
+
+ if (tinyMCE.isMSIE) {
+ try {
+ win.focus();
+ var rng = doc.selection.createRange();
+ rng.execCommand("RemoveFormat", false, null);
+
+ // If all element contents is selected, move selection around element
+ if (rng.text == rng.parentElement().innerText) {
+ rng.moveToElementText(rng.parentElement());
+ rng.select();
+ }
+
+ rng.pasteHTML(rng.text);
+ } catch (e) {
+ // Do nothing
+ }
+ } else
+ this.getDoc().execCommand(command, user_interface, value);
+
+ // Remove class
+ if (text.length == 0)
+ this.execCommand("mceSetCSSClass", false, "");
+
+ tinyMCE.triggerNodeChange();
+ break;
+
+ default:
+ this.getDoc().execCommand(command, user_interface, value);
+ tinyMCE.triggerNodeChange();
+ }
+
+ // Add undo level after modification
+ if (command != "mceAddUndoLevel" && command != "Undo" && command != "Redo" && command != "mceStartTyping" && command != "mceEndTyping")
+ tinyMCE.execCommand("mceAddUndoLevel");
+};
+
+TinyMCEControl.prototype.queryCommandValue = function(command) {
+ return this.getDoc().queryCommandValue(command);
+};
+
+TinyMCEControl.prototype.queryCommandState = function(command) {
+ return this.getDoc().queryCommandState(command);
+};
+
+TinyMCEControl.prototype.onAdd = function(replace_element, form_element_name, target_document) {
+ var targetDoc = target_document ? target_document : document;
+
+ this.targetDoc = targetDoc;
+
+ tinyMCE.themeURL = tinyMCE.baseURL + "/themes/" + this.settings['theme'];
+ this.settings['themeurl'] = tinyMCE.themeURL;
+
+ if (!replace_element) {
+ alert("Error: Could not find the target element.");
+ return false;
+ }
+
+ var templateFunction = tinyMCE._getThemeFunction('_getInsertLinkTemplate');
+ if (eval("typeof(" + templateFunction + ")") != 'undefined')
+ this.insertLinkTemplate = eval(templateFunction + '(this.settings);');
+
+ var templateFunction = tinyMCE._getThemeFunction('_getInsertImageTemplate');
+ if (eval("typeof(" + templateFunction + ")") != 'undefined')
+ this.insertImageTemplate = eval(templateFunction + '(this.settings);');
+
+ var templateFunction = tinyMCE._getThemeFunction('_getEditorTemplate');
+ if (eval("typeof(" + templateFunction + ")") == 'undefined') {
+ alert("Error: Could not find the template function: " + templateFunction);
+ return false;
+ }
+
+ var editorTemplate = eval(templateFunction + '(this.settings, this.editorId);');
+
+ var deltaWidth = editorTemplate['delta_width'] ? editorTemplate['delta_width'] : 0;
+ var deltaHeight = editorTemplate['delta_height'] ? editorTemplate['delta_height'] : 0;
+ var html = '<span id="' + this.editorId + '_parent">' + editorTemplate['html'];
+
+ var templateFunction = tinyMCE._getThemeFunction('_handleNodeChange', true);
+ if (eval("typeof(" + templateFunction + ")") != 'undefined')
+ this.settings['handleNodeChangeCallback'] = templateFunction;
+
+ html = tinyMCE.replaceVar(html, "editor_id", this.editorId);
+ this.settings['default_document'] = tinyMCE.baseURL + "/blank.htm";
+
+ this.settings['old_width'] = this.settings['width'];
+ this.settings['old_height'] = this.settings['height'];
+
+ // Set default width, height
+ if (this.settings['width'] == -1)
+ this.settings['width'] = replace_element.offsetWidth;
+
+ if (this.settings['height'] == -1)
+ this.settings['height'] = replace_element.offsetHeight;
+
+ // Try the style width
+ if (this.settings['width'] == 0)
+ this.settings['width'] = replace_element.style.width;
+
+ // Try the style height
+ if (this.settings['height'] == 0)
+ this.settings['height'] = replace_element.style.height;
+
+ // If no width/height then default to 320x240, better than nothing
+ if (this.settings['width'] == 0)
+ this.settings['width'] = 320;
+
+ if (this.settings['height'] == 0)
+ this.settings['height'] = 240;
+
+ this.settings['area_width'] = parseInt(this.settings['width']);
+ this.settings['area_height'] = parseInt(this.settings['height']);
+ this.settings['area_width'] += deltaWidth;
+ this.settings['area_height'] += deltaHeight;
+
+ // Special % handling
+ if (("" + this.settings['width']).indexOf('%') != -1)
+ this.settings['area_width'] = "100%";
+
+ if (("" + this.settings['height']).indexOf('%') != -1)
+ this.settings['area_height'] = "100%";
+
+ if (("" + replace_element.style.width).indexOf('%') != -1) {
+ this.settings['width'] = replace_element.style.width;
+ this.settings['area_width'] = "100%";
+ }
+
+ if (("" + replace_element.style.height).indexOf('%') != -1) {
+ this.settings['height'] = replace_element.style.height;
+ this.settings['area_height'] = "100%";
+ }
+
+ html = tinyMCE.applyTemplate(html);
+
+ this.settings['width'] = this.settings['old_width'];
+ this.settings['height'] = this.settings['old_height'];
+
+ this.visualAid = this.settings['visual'];
+ this.formTargetElementId = form_element_name;
+
+ // Get replace_element contents
+ if (replace_element.nodeName == "TEXTAREA" || replace_element.nodeName == "INPUT")
+ this.startContent = replace_element.value;
+ else
+ this.startContent = replace_element.innerHTML;
+
+ // If not text area
+ if (replace_element.nodeName.toLowerCase() != "textarea") {
+ this.oldTargetElement = replace_element.cloneNode(true);
+
+ // Debug mode
+ if (tinyMCE.settings['debug'])
+ html += '<textarea wrap="off" id="' + form_element_name + '" name="' + form_element_name + '" cols="100" rows="15"></textarea>';
+ else
+ html += '<input type="hidden" type="text" id="' + form_element_name + '" name="' + form_element_name + '" />';
+
+ html += '</span>';
+
+ // Output HTML and set editable
+ if (!tinyMCE.isMSIE) {
+ var rng = replace_element.ownerDocument.createRange();
+ rng.setStartBefore(replace_element);
+
+ var fragment = rng.createContextualFragment(html);
+ replace_element.parentNode.replaceChild(fragment, replace_element);
+ } else
+ replace_element.outerHTML = html;
+ } else {
+ html += '</span>';
+
+ // Just hide the textarea element
+ this.oldTargetElement = replace_element;
+
+ if (!tinyMCE.settings['debug'])
+ this.oldTargetElement.style.display = "none";
+
+ // Output HTML and set editable
+ if (!tinyMCE.isMSIE) {
+ var rng = replace_element.ownerDocument.createRange();
+ rng.setStartBefore(replace_element);
+
+ var fragment = rng.createContextualFragment(html);
+ replace_element.parentNode.insertBefore(fragment, replace_element);
+ } else
+ replace_element.insertAdjacentHTML("beforeBegin", html);
+ }
+
+ // Setup iframe
+ var dynamicIFrame = false;
+ var tElm = targetDoc.getElementById(this.editorId);
+
+ if (!tinyMCE.isMSIE) {
+ if (tElm && tElm.nodeName.toLowerCase() == "span") {
+ tElm = tinyMCE._createIFrame(tElm);
+ dynamicIFrame = true;
+ }
+
+ this.targetElement = tElm;
+ this.iframeElement = tElm;
+ this.contentDocument = tElm.contentDocument;
+ this.contentWindow = tElm.contentWindow;
+
+ //this.getDoc().designMode = "on";
+ } else {
+ if (tElm && tElm.nodeName.toLowerCase() == "span")
+ tElm = tinyMCE._createIFrame(tElm);
+ else
+ tElm = targetDoc.frames[this.editorId];
+
+ this.targetElement = tElm;
+ this.iframeElement = targetDoc.getElementById(this.editorId);
+ this.contentDocument = tElm.window.document;
+ this.contentWindow = tElm.window;
+ this.getDoc().designMode = "on";
+ }
+
+ // Setup base HTML
+ var doc = this.contentDocument;
+ if (dynamicIFrame) {
+ var html = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><base href="' + tinyMCE.settings['base_href'] + '" /><title>blank_page</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body class="mceContentBody"></body></html>';
+
+ try {
+ this.getDoc().designMode = "on";
+ doc.open();
+ doc.write(html);
+ doc.close();
+ } catch (e) {
+ // Failed Mozilla 1.3
+ this.getDoc().location.href = tinyMCE.baseURL + "/blank.htm";
+ }
+ }
+
+ // This timeout is needed in MSIE 5.5 for some odd reason
+ // it seems that the document.frames isn't initialized yet?
+ if (tinyMCE.isMSIE)
+ window.setTimeout("TinyMCE.prototype.addEventHandlers('" + this.editorId + "');", 1);
+
+ tinyMCE.setupContent(this.editorId, true);
+
+ return true;
+};
+
+TinyMCEControl.prototype.getFocusElement = function() {
+ if (tinyMCE.isMSIE) {
+ var doc = this.getDoc();
+ var rng = doc.selection.createRange();
+
+ if (rng.collapse)
+ rng.collapse(true);
+
+ var elm = rng.item ? rng.item(0) : rng.parentElement();
+ } else {
+ var sel = this.getSel();
+ var rng = this.getRng();
+ var elm = rng.commonAncestorContainer;
+ //var elm = (sel && sel.anchorNode) ? sel.anchorNode : null;
+
+ // Handle selection a image or other control like element such as anchors
+ if (!rng.collapsed) {
+ // Is selection small
+ if (rng.startContainer == rng.endContainer) {
+ if (rng.startOffset - rng.endOffset < 2) {
+ if (rng.startContainer.hasChildNodes())
+ elm = rng.startContainer.childNodes[rng.startOffset];
+ }
+ }
+ }
+
+ // Get the element parent of the node
+ elm = tinyMCE.getParentElement(elm);
+
+ //if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img")
+ // elm = tinyMCE.selectedElement;
+ }
+
+ return elm;
+};
+
+// Global instances
+var tinyMCE = new TinyMCE();
+var tinyMCELang = new Array();
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * Various form utilitiy functions.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2005, Moxiecode Systems AB, All rights reserved.
+ */
+
+function renderColorPicker(id, target_form_element) {
+ var html = "";
+
+ html += '<a id="' + id + '_link" href="javascript:tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;">';
+ html += '<img id="' + id + '" src="../../themes/advanced/images/color.gif"';
+ html += ' onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');"';
+ html += ' onmouseout="tinyMCE.restoreClass(this);"';
+ html += ' onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');"';
+ html += ' width="20" height="16" border="0" title="' + tinyMCE.getLang('lang_browse') + '"';
+ html += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" /></a>';
+
+ document.write(html);
+}
+
+function updateColor(img_id, form_element_id) {
+ document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value;
+}
+
+function setBrowserDisabled(id, state) {
+ var img = document.getElementById(id);
+ var lnk = document.getElementById(id + "_link");
+
+ if (lnk) {
+ if (state) {
+ lnk.setAttribute("realhref", lnk.getAttribute("href"));
+ lnk.removeAttribute("href");
+ tinyMCE.switchClass(img, 'mceButtonDisabled', true);
+ } else {
+ lnk.setAttribute("href", lnk.getAttribute("realhref"));
+ tinyMCE.switchClass(img, 'mceButtonNormal', false);
+ }
+ }
+}
+
+function renderBrowser(id, target_form_element, type, prefix) {
+ var option = prefix + "_" + type + "_browser_callback";
+ var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback"));
+ if (cb == null)
+ return;
+
+ var html = "";
+
+ html += '<a id="' + id + '_link" href="javascript:openBrower(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;">';
+ html += '<img id="' + id + '" src="../../themes/advanced/images/browse.gif"';
+ html += ' onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');"';
+ html += ' onmouseout="tinyMCE.restoreClass(this);"';
+ html += ' onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');"';
+ html += ' width="20" height="18" border="0" title="' + tinyMCE.getLang('lang_browse') + '"';
+ html += ' class="mceButtonNormal" alt="' + tinyMCE.getLang('lang_browse') + '" /></a>';
+
+ document.write(html);
+}
+
+function openBrower(img_id, target_form_element, type, option) {
+ var img = document.getElementById(img_id);
+
+ if (img.className != "mceButtonDisabled")
+ tinyMCEPopup.openBrowser(target_form_element, type, option);
+}
+
+function selectByValue(form_obj, field_name, value, add_custom) {
+ if (!form_obj || !form_obj.elements[field_name])
+ return;
+
+ var sel = form_obj.elements[field_name];
+
+ var found = false;
+ for (var i=0; i<sel.options.length; i++) {
+ var option = sel.options[i];
+
+ if (option.value == value) {
+ option.selected = true;
+ found = true;
+ } else
+ option.selected = false;
+ }
+
+ if (!found && add_custom && value != '') {
+ var option = new Option('Value: ' + value, value);
+ option.selected = true;
+ sel.options[sel.options.length] = option;
+ }
+
+ return found;
+}
+
+function getSelectValue(form_obj, field_name) {
+ var elm = form_obj.elements[field_name];
+
+ if (elm == null || elm.options == null)
+ return "";
+
+ return elm.options[elm.selectedIndex].value;
+}
+
+function addClassesToList(list_id, specific_option) {
+ // Setup class droplist
+ var styleSelectElm = document.getElementById(list_id);
+ var styles = tinyMCE.getParam('theme_advanced_styles', false);
+ styles = tinyMCE.getParam(specific_option, styles);
+
+ if (styles) {
+ var stylesAr = styles.split(';');
+
+ for (var i=0; i<stylesAr.length; i++) {
+ if (stylesAr != "") {
+ var key, value;
+
+ key = stylesAr[i].split('=')[0];
+ value = stylesAr[i].split('=')[1];
+
+ styleSelectElm.options[styleSelectElm.length] = new Option(key, value);
+ }
+ }
+ } else {
+ // Use auto impored classes
+ var csses = tinyMCE.getCSSClasses(tinyMCE.getWindowArg('editor_id'));
+ for (var i=0; i<csses.length; i++)
+ styleSelectElm.options[styleSelectElm.length] = new Option(csses[i], csses[i]);
+ }
+}
+
+function isVisible(element_id) {
+ var elm = document.getElementById(element_id);
+
+ return elm && elm.style.display != "none";
+}
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * Moxiecode DHTML Tabs script.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
+ */
+
+function MCTabs() {
+ this.settings = new Array();
+};
+
+MCTabs.prototype.init = function(settings) {
+ this.settings = settings;
+};
+
+MCTabs.prototype.getParam = function(name, default_value) {
+ var value = null;
+
+ value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
+
+ // Fix bool values
+ if (value == "true" || value == "false")
+ return (value == "true");
+
+ return value;
+};
+
+MCTabs.prototype.displayTab = function(tab_id, panel_id) {
+ var panelElm = document.getElementById(panel_id);
+ var panelContainerElm = panelElm ? panelElm.parentNode : null;
+ var tabElm = document.getElementById(tab_id);
+ var tabContainerElm = tabElm ? tabElm.parentNode : null;
+ var selectionClass = this.getParam('selection_class', 'current');
+
+ if (tabElm && tabContainerElm) {
+ var nodes = tabContainerElm.childNodes;
+
+ // Hide all other tabs
+ for (var i=0; i<nodes.length; i++) {
+ if (nodes[i].nodeName == "LI")
+ nodes[i].className = '';
+ }
+
+ // Show selected tab
+ tabElm.className = 'current';
+ }
+
+ if (panelElm && panelContainerElm) {
+ var nodes = panelContainerElm.childNodes;
+
+ // Hide all other panels
+ for (var i=0; i<nodes.length; i++) {
+ if (nodes[i].nodeName == "DIV")
+ nodes[i].className = 'panel';
+ }
+
+ // Show selected panel
+ panelElm.className = 'current';
+ }
+};
+
+MCTabs.prototype.getAnchor = function() {
+ var pos, url = document.location.href;
+
+ if ((pos = url.lastIndexOf('#')) != -1)
+ return url.substring(pos + 1);
+
+ return "";
+};
+
+// Global instance
+var mcTabs = new MCTabs();
--- /dev/null
+/**
+ * $RCSfile$
+ * $Revision$
+ * $Date$
+ *
+ * Various form validation methods.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2005, Moxiecode Systems AB, All rights reserved.
+ */
+
+function testRegExp(form_name, element_name, re) {
+ return new RegExp(re).test(document.forms[form_name].elements[element_name].value);
+}
+
+function validateString(form_name, element_name) {
+ return (document.forms[form_name].elements[element_name].value.length > 0);
+}
+
+function validateSelection(form_name, element_name) {
+ return (document.forms[form_name].elements[element_name].selectedIndex > 0);
+}
+
+function validateCheckBox(form_name, element_name) {
+ return document.forms[form_name].elements[element_name].checked;
+}
+
+function validateCleanString(form_name, element_name) {
+ return testRegExp(form_name, element_name, '^[A-Za-z0-9_]+$');
+}
+
+function validateEmail(form_name, element_name) {
+ return testRegExp(form_name, element_name, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
+}
+
+function validateAbsUrl(form_name, element_name) {
+ return testRegExp(form_name, element_name, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+$');
+}
+
+function validateNumber(form_name, element_name, allow_blank) {
+ return (!allow_blank && value == '') ? false : testRegExp(form_name, element_name, '^-?[0-9]*\\.?[0-9]*$');
+}
+
+function validateSize(form_name, element_name,) {
+ return testRegExp(form_name, element_name, '^[0-9]+(px|%)?$');
+}
+
+function validateID(form_name, element_name,) {
+ return testRegExp(form_name, element_name, '^[A-Za-z_]([A-Za-z0-9_])*$');
+}
* Subdirectories from which the client may request static content
*/
char *static_content_dirs[] = {
- "static"
+ "static",
+ "tiny_mce"
};
/*
fp = fopen(what, "rb");
if (fp == NULL) {
+ lprintf(9, "output_static('%s') -- NOT FOUND --\n", what);
wprintf("HTTP/1.1 404 %s\n", strerror(errno));
wprintf("Content-Type: text/plain\r\n");
wprintf("\r\n");
fread(bigbuffer, bytes, 1, fp);
fclose(fp);
+ lprintf(9, "output_static('%s') %s\n", what, content_type);
http_transmit_thing(bigbuffer, (size_t)bytes, content_type, 1);
free(bigbuffer);
}
char arg3[128];
char arg4[128];
char arg5[128];
+ char arg6[128];
+ char arg7[128];
char buf[SIZ];
char request_method[128];
char pathname[512];
if (strstr(arg3, "&")) *strstr(arg3, "&") = 0;
if (strstr(arg3, " ")) *strstr(arg3, " ") = 0;
- extract_token(arg4, pathname, 4, '/', sizeof arg4);
+ extract_token(arg4, pathname, 5, '/', sizeof arg4);
if (strstr(arg4, "?")) *strstr(arg4, "?") = 0;
if (strstr(arg4, "&")) *strstr(arg4, "&") = 0;
if (strstr(arg4, " ")) *strstr(arg4, " ") = 0;
- extract_token(arg5, pathname, 4, '/', sizeof arg5);
+ extract_token(arg5, pathname, 6, '/', sizeof arg5);
if (strstr(arg5, "?")) *strstr(arg5, "?") = 0;
if (strstr(arg5, "&")) *strstr(arg5, "&") = 0;
if (strstr(arg5, " ")) *strstr(arg5, " ") = 0;
+ extract_token(arg6, pathname, 7, '/', sizeof arg6);
+ if (strstr(arg6, "?")) *strstr(arg6, "?") = 0;
+ if (strstr(arg6, "&")) *strstr(arg6, "&") = 0;
+ if (strstr(arg6, " ")) *strstr(arg6, " ") = 0;
+
+ extract_token(arg7, pathname, 8, '/', sizeof arg7);
+ if (strstr(arg7, "?")) *strstr(arg7, "?") = 0;
+ if (strstr(arg7, "&")) *strstr(arg7, "&") = 0;
+ if (strstr(arg7, " ")) *strstr(arg7, " ") = 0;
+
while (hptr != NULL) {
safestrncpy(buf, hptr->line, sizeof buf);
hptr = hptr->next;
}
}
if (is_static) {
- snprintf(buf, sizeof buf, "%s/%s/%s/%s/%s/%s", action, arg1, arg2, arg3, arg4, arg5);
- for (a=0; a<4; ++a) {
+ snprintf(buf, sizeof buf, "%s/%s/%s/%s/%s/%s/%s/%s",
+ action, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
+ for (a=0; a<8; ++a) {
if (buf[strlen(buf)-1] == '/') {
buf[strlen(buf)-1] = 0;
}