Fixed bug 5177: RTEhtmlarea not correctly displayed in IRRE child form-fields and...
authorOliver Hader <oliver.hader@typo3.org>
Wed, 28 Mar 2007 15:02:52 +0000 (15:02 +0000)
committerOliver Hader <oliver.hader@typo3.org>
Wed, 28 Mar 2007 15:02:52 +0000 (15:02 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@2225 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_tceforms.php
t3lib/class.t3lib_tceforms_inline.php
typo3/sysext/rtehtmlarea/class.tx_rtehtmlarea_base.php
typo3/sysext/rtehtmlarea/htmlarea/htmlarea-compressed.js
typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko-compressed.js
typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js
typo3/sysext/rtehtmlarea/htmlarea/htmlarea-ie-compressed.js
typo3/sysext/rtehtmlarea/htmlarea/htmlarea-ie.js
typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js

index f64f457..ef77bf5 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2007-03-28  Oliver Hader  <oh@inpublica.de>
 
        * Fixed bug 5288: Missing parameter in recursion of t3lib_div::array_merge_recursive_overrule (thanks to Simon Tuck)
+       * Fixed bug 5177: RTEhtmlarea not correctly displayed in IRRE child form-fields and tabs
 
 2007-03-28  Ingmar Schlecht  <ingmar@typo3.org>
 
index a17be0c..4162f8e 100755 (executable)
@@ -285,7 +285,7 @@ class t3lib_TCEforms        {
        var $requiredElements=array();                          // Used to register the min and max number of elements for selectorboxes where that apply (in the "group" type for instance)
        var $renderDepth=0;                                                     // Keeps track of the rendering depth of nested records.
        var $savedSchemes=array();                                      // Color scheme buffer.
-       var $dynTabLevelStack = array();                        // holds tab dividers which were cascaded, required for RTE&IRRE
+       var $dynNestedStack = array();                          // holds the path an element is nested in (e.g. required for RTEhtmlarea)
 
                // Internal, registers for user defined functions etc.
        var $additionalCode_pre = array();                      // Additional HTML code, printed before the form.
@@ -497,7 +497,6 @@ class t3lib_TCEforms        {
                                        if (strstr($itemList, '--div--') !== false && $this->enableTabMenu && $TCA[$table]['ctrl']['dividers2tabs']) {
                                                $tabIdentString = 'TCEforms:'.$table.':'.$row['uid'];
                                                $tabIdentStringMD5 = $GLOBALS['TBE_TEMPLATE']->getDynTabMenuId('TCEforms:'.$table.':'.$row['uid']);
-                                               $this->dynTabLevelStack[$tabIdentStringMD5] = 1;
                                        }
 
                                                // Explode the field list and possibly rearrange the order of the fields, if configured for
@@ -551,14 +550,21 @@ class t3lib_TCEforms      {
 
                                                                        if ($this->enableTabMenu && $TCA[$table]['ctrl']['dividers2tabs'])      {
                                                                                $this->wrapBorder($out_array[$out_sheet],$out_pointer);
+                                                                                       // Remove last tab entry from the dynNestedStack:
                                                                                $out_sheet++;
-                                                                                       // remember what sheet we're currently in
-                                                                               $this->dynTabLevelStack[$tabIdentStringMD5] = $out_sheet+1;
+                                                                                       // Remove the previous sheet from stack (if any):
+                                                                               $this->popFromDynNestedStack('tab', $tabIdentStringMD5.'-'.($out_sheet));
+                                                                                       // Remember on which sheet we're currently working:
+                                                                               $this->pushToDynNestedStack('tab', $tabIdentStringMD5.'-'.($out_sheet+1));
                                                                                $out_array[$out_sheet] = array();
                                                                                $out_array_meta[$out_sheet]['title'] = $this->sL($parts[1]);
                                                                        }
                                                                } else {        // Setting alternative title for "General" tab if "--div--" is the very first element.
                                                                        $out_array_meta[$out_sheet]['title'] = $this->sL($parts[1]);
+                                                                               // Only add the first tab to the dynNestedStack if there are more tabs:
+                                                                       if (strpos($itemList, '--div--', strlen($fieldInfo))) {
+                                                                               $this->pushToDynNestedStack('tab', $tabIdentStringMD5.'-1');
+                                                                       }
                                                                }
                                                        } elseif($theField=='--palette--')      {
                                                                if ($parts[2] && !isset($this->palettesRendered[$this->renderDepth][$table][$parts[2]]))        {
@@ -627,8 +633,8 @@ class t3lib_TCEforms        {
                                );
                        }
 
-                               // unset the current level of tab menus
-                       unset($this->dynTabLevelStack[$tabIdentStringMD5]);
+                               // Unset the current level of tab menus:
+                       $this->popFromDynNestedStack('tab', $tabIdentStringMD5.'-'.($out_sheet+1));
 
                        return '
                                <tr>
@@ -5428,18 +5434,69 @@ class t3lib_TCEforms    {
        }
        
        /**
-        * Get a list, depending on $this->dynTabLevelStack, that has the information
-        * in which tab (--div--) fields are inserted.
+        * Push a new element to the dynNestedStack. Thus, every object know, if it's
+        * nested in a tab or IRRE level and in which order this was processed.
         *
-        * @param       string          $appendString: String to append for each item
-        * @return      string          A list of cascaded tab divs, like "DTM-2e8791854a-1,DTM-f3c79a0523-4"
+        * @param       string          $type: Type of the level, e.g. "tab" or "inline"
+        * @param       string          $ident: Identifier of the level
+        * @return      void
         */
-       function getDynTabLevelState($appendString = '') {
-               $levels = array();
-               foreach ($this->dynTabLevelStack as $tabIdent => $divId) {
-                       $levels[] = $tabIdent.'-'.$divId.$appendString;
+       function pushToDynNestedStack($type, $ident) {
+               $this->dynNestedStack[] = array($type, $ident);
+       }
+
+       /**
+        * Remove an element from the dynNestedStack. If $type and $ident
+        * are set, the last element will only be removed, if it matches
+        * what is expected to be removed.
+        * 
+        * @param       string          $type: Type of the level, e.g. "tab" or "inline"
+        * @param       string          $ident: Identifier of the level
+        * @return      void
+        */
+       function popFromDynNestedStack($type=null, $ident=null) {
+               if ($type!=null && $ident!=null) {
+                       $last = end($this->dynNestedStack);
+                       if ($type==$last[0] && $ident==$last[1]) {
+                               array_pop($this->dynNestedStack);
+                       }
+               } else {
+                       array_pop($this->dynNestedStack);
+               }
+       }
+
+       /**
+        * Get the dynNestedStack as associative array.
+        * It has the keys raw, tab, inline and sorted.
+        * The key "sorted" contains the levels in the sorting order they have been applied.
+        *
+        * @param       boolean         $json: Return a JSON string instead of an array
+        * @param       string          $tabSuffix: Add a suffix (e.g. "-DIV") to each tab level
+        * @param       string          $tabSuffix: Add a suffix to each inline level
+        * @return      mixed           Returns an associative array (default), if $json is true, it will be returned as JSON string.
+        */
+       function getDynNestedStack($json=false, $tabSuffix='', $inlineSuffix='') {
+               $tab = array();
+               $inline = array();
+               $sorted = array();
+               foreach ($this->dynNestedStack as $level) {
+                       if ($level[0]=='tab') {
+                               $tab[] = $level[1].$tabSuffix;
+                               $sorted[] = $level[1].$tabSuffix;
+                       } elseif ($level[0]=='inline') {
+                               $inline[] = $level[1].$inlineSuffix;
+                               $sorted[] = $level[1].$inlineSuffix;
+                       }
                }
-               return implode(',', $levels);
+               $result = array(
+                       // 'raw' => $this->dynNestedStack,
+                       'tab' => $tab,
+                       'inline' => $inline,
+                       'sorted' => $sorted,
+                       // 'tabSuffix' => $tabSuffix,
+                       // 'inlineSuffix' => $inlineSuffix,
+               );
+               return ($json ? $this->inline->getJSON($result) : $result);
        }
 }
 
index b2149d4..463e082 100755 (executable)
@@ -1095,6 +1095,8 @@ class t3lib_TCEforms_inline {
                        'config' => $config,
                );
                $this->updateStructureNames();
+                       // Put the current level also to the dynNestedStack of TCEforms:
+               $this->fObj->pushToDynNestedStack('inline', $this->inlineNames['object']);
        }
 
 
@@ -1108,6 +1110,8 @@ class t3lib_TCEforms_inline {
                        $popItem = array_pop($this->inlineStructure['stable']);
                        $this->updateStructureNames();
                }
+                       // Remove the current level also from the dynNestedStack of TCEforms:
+               $this->fObj->popFromDynNestedStack();
                return $popItem;
        }
 
@@ -1732,7 +1736,7 @@ class t3lib_TCEforms_inline {
         * @return      integer         A pixel value for the margin of each new inline level.
         */
        function getLevelMargin() {
-               $margin = $this->inlineStyles['margin-right'];
+               $margin = ($this->inlineStyles['margin-right']+1)*2;
                return $margin;
        }
  }
index 3d99c6f..71ad8f7 100644 (file)
@@ -525,7 +525,7 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        $RTEHeight = $RTEHeight + ($pObj->docLarge ?  (isset($BE_USER->userTS['options.']['RTELargeHeightIncrement']) ? $BE_USER->userTS['options.']['RTELargeHeightIncrement'] : 0) : 0);
                        $editorWrapWidth = $RTEWidth . 'px';
                        $editorWrapHeight = $RTEHeight . 'px';
-                       $this->RTEdivStyle = $this->RTEdivStyle ? $this->RTEdivStyle : 'position:relative; left:0px; top:0px; height:' . $RTEHeight . 'px; width:'.$RTEWidth.'px; border: 1px solid black; padding: 2px 0px 2px 2px;';
+                       $this->RTEdivStyle = 'position:relative; left:0px; top:0px; height:' . $RTEHeight . 'px; width:'.$RTEWidth.'px; border: 1px solid black; padding: 2px 0px 2px 2px;';
                        $this->toolbar_level_size = $RTEWidth;
 
                        /* =======================================
@@ -907,10 +907,9 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
        function registerRTEinJS($number, $table='', $uid='', $field='') {
                global $TSFE, $TYPO3_CONF_VARS;
 
-                       // if this RTE is shown inline of an IRRE record, the JS functions need to know about that
-               if ($this->TCEform->inline->inlineNames['object']) {
-                       $tceformsInlineObject = $this->TCEform->inline->inlineNames['object'].'['.$table.']['.$uid.']_fields';
-               }
+                       // if this RTE is shown inline of an IRRE record or a Tab sheet, the JS functions need to know about that
+               $tabSuffix = '-DIV';
+               $inlineSuffix = '['.$table.']['.$uid.']_fields';
                
                $registerRTEinJSString = (!is_object($TSFE) ? '' : '
                        ' . '/*<![CDATA[*/') . '
@@ -928,9 +927,8 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        RTEarea['.$number.']["showTagFreeClasses"] = ' . (trim($this->thisConfig['showTagFreeClasses'])?'true':'false') . ';
                        RTEarea['.$number.']["useHTTPS"] = ' . ((trim(stristr($this->siteURL, 'https')) || $this->thisConfig['forceHTTPS'])?'true':'false') . ';
                        RTEarea['.$number.']["enableMozillaExtension"] = ' . (($this->client['BROWSER'] == 'gecko' && $TYPO3_CONF_VARS['EXTCONF'][$this->ID]['enableMozillaExtension'])?'true':'false') . ';
-                       RTEarea['.$number.']["tceformsInlineObject"] = "' . $tceformsInlineObject . '";
-                       RTEarea['.$number.']["tceformsDynTabs"] = "' . $this->TCEform->getDynTabLevelState('-DIV') . '";';
-               
+                       RTEarea['.$number.']["tceformsNested"] = ' . (is_object($this->TCEform) && method_exists($this->TCEform, 'getDynNestedStack') ? $this->TCEform->getDynNestedStack(true, $tabSuffix, $inlineSuffix) : '[]') . ';';
+
                        // The following properties apply only to the backend
                if (!is_object($TSFE)) {
                        $registerRTEinJSString .= '
@@ -940,7 +938,6 @@ class tx_rtehtmlarea_base extends t3lib_rteapi {
                        RTEarea['.$number.']["enablePersonalDicts"] = ' . ($this->spellCheckerPersonalDicts ? 'true' : 'false') . ';
                        RTEarea['.$number.']["userUid"] = "' . $this->userUid . '";';
                }
-               
                        // Setting the plugin flags
                $registerRTEinJSString .= '
                        RTEarea['.$number.']["plugin"] = new Object();';
index 23616c2..65adf4f 100644 (file)
@@ -1,4 +1,183 @@
 
-if(typeof(_editor_url)=="string"){_editor_url=_editor_url.replace(/\x2f*$/,'/');}else{alert("WARNING: _editor_url is not set!");var _editor_url='';};if(typeof(_editor_skin)=="string")_editor_skin=_editor_skin.replace(/\x2f*$/,'/');else var _editor_skin=_editor_url+"skins/default/";if(typeof(_editor_CSS)!="string")var _editor_CSS=_editor_url+"skins/default/htmlarea.css";if(typeof(_editor_edited_content_CSS)!="string")var _editor_edited_content_CSS=_editor_skin+"htmlarea-edited-content.css";if(typeof(_editor_lang)=="string")_editor_lang=_editor_lang?_editor_lang.toLowerCase():"en";var HTMLArea=function(textarea,config){if(HTMLArea.checkSupportedBrowser()){if(typeof(config)=="undefined")this.config=new HTMLArea.Config();else this.config=config;this._htmlArea=null;this._textArea=textarea;this._editMode="wysiwyg";this.plugins={};this._timerToolbar=null;this._undoQueue=new Array();this._undoPos=-1;this._customUndo=true;this.doctype='';this.eventHandlers={};}};HTMLArea.agt=navigator.userAgent.toLowerCase();HTMLArea.is_opera=(HTMLArea.agt.indexOf("opera")!=-1);HTMLArea.is_ie=(HTMLArea.agt.indexOf("msie")!=-1)&&!HTMLArea.is_opera;HTMLArea.is_safari=(HTMLArea.agt.indexOf("webkit")!=-1);HTMLArea.is_gecko=(navigator.product=="Gecko")||HTMLArea.is_opera;HTMLArea.is_wamcom=(HTMLArea.agt.indexOf("wamcom")!=-1)||(HTMLArea.is_gecko&&HTMLArea.agt.indexOf("1.3")!=-1&&HTMLArea.agt.indexOf(".1.3")==-1);HTMLArea._debugMode=false;if(typeof(_editor_debug_mode)!="undefined")HTMLArea._debugMode=_editor_debug_mode;HTMLArea._appendToLog=function(str){if(HTMLArea._debugMode){var log=document.getElementById("HTMLAreaLog");if(log){log.appendChild(document.createTextNode(str));log.appendChild(document.createElement("br"));}}};HTMLArea._compressedScripts=false;if(typeof(_editor_compressed_scripts)!="undefined")HTMLArea._compressedScripts=_editor_compressed_scripts;HTMLArea.I18N=HTMLArea_langArray;HTMLArea.is_loaded=false;HTMLArea.onload=function(){HTMLArea.is_loaded=true;HTMLArea._appendToLog("All scripts successfully loaded.");};HTMLArea.loadTimer;HTMLArea._scripts=[];HTMLArea._scriptLoaded=[];HTMLArea._request=[];HTMLArea.loadScript=function(url,plugin){if(plugin)url=_editor_url+"/plugins/"+plugin+'/'+url;if(HTMLArea.is_opera)url=_typo3_host_url+url;if(HTMLArea._compressedScripts&&url.indexOf("compressed")==-1)url=url.replace(/\.js$/gi,"-compressed.js");HTMLArea._scripts.push(url);};HTMLArea.loadScript(RTEarea[0]["popupwin"]?RTEarea[0]["popupwin"]:_editor_url+"popupwin.js");if(HTMLArea.is_gecko)HTMLArea.loadScript(RTEarea[0]["htmlarea-gecko"]?RTEarea[0]["htmlarea-gecko"]:_editor_url+"htmlarea-gecko.js");if(HTMLArea.is_ie)HTMLArea.loadScript(RTEarea[0]["htmlarea-ie"]?RTEarea[0]["htmlarea-ie"]:_editor_url+"htmlarea-ie.js");HTMLArea.MSXML_XMLHTTP_PROGIDS=new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");HTMLArea.XMLHTTPResponseHandler=function(i){return(function(){var url=HTMLArea._scripts[i];if(HTMLArea._request[i].readyState!=4)return;if(HTMLArea._request[i].status==200){try{eval(HTMLArea._request[i].responseText);HTMLArea._scriptLoaded[i]=true;i=null;}catch(e){HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get script "+url+": "+e);}}else{HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get "+url+" . Server reported "+HTMLArea._request[i].status);}});};HTMLArea._getScript=function(i,asynchronous,url){if(typeof(url)=="undefined")var url=HTMLArea._scripts[i];if(typeof(asynchronous)=="undefined")var asynchronous=true;if(window.XMLHttpRequest)HTMLArea._request[i]=new XMLHttpRequest();else if(window.ActiveXObject){var success=false;for(var k=0;k<HTMLArea.MSXML_XMLHTTP_PROGIDS.length&&!success;k++){try{HTMLArea._request[i]=new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]);success=true;}catch(e){}};if(!success)return false;};var request=HTMLArea._request[i];if(request){request.open("GET",url,asynchronous);if(asynchronous)request.onreadystatechange=HTMLArea.XMLHTTPResponseHandler(i);if(window.XMLHttpRequest)request.send(null);else if(window.ActiveXObject)request.send();if(!asynchronous){if(request.status==200)return request.responseText;else return '';};return true;}else{return false;}};HTMLArea.checkInitialLoad=function(){var scriptsLoaded=true;for(var i=HTMLArea._scripts.length;--i>=0;){scriptsLoaded=scriptsLoaded&&HTMLArea._scriptLoaded[i];};if(HTMLArea.loadTimer)window.clearTimeout(HTMLArea.loadTimer);if(scriptsLoaded){HTMLArea.is_loaded=true;HTMLArea._appendToLog("[HTMLArea::init]: All scripts successfully loaded.");HTMLArea._appendToLog("[HTMLArea::init]: Editor url set to: "+_editor_url);HTMLArea._appendToLog("[HTMLArea::init]: Editor skin CSS set to: "+_editor_CSS);HTMLArea._appendToLog("[HTMLArea::init]: Editor content skin CSS set to: "+_editor_edited_content_CSS);if(window.ActiveXObject){for(var i=HTMLArea._scripts.length;--i>=0;){HTMLArea._request[i].onreadystatechange=new Function();HTMLArea._request[i]=null;}}}else{HTMLArea.loadTimer=window.setTimeout("HTMLArea.checkInitialLoad();",200);return false;}};HTMLArea.init=function(){HTMLArea._eventCache=HTMLArea._eventCacheConstructor();if(window.XMLHttpRequest||window.ActiveXObject){try{var success=true;for(var i=HTMLArea._scripts.length;--i>=0&&success;)success=success&&HTMLArea._getScript(i);}catch(e){HTMLArea._appendToLog("ERROR [HTMLArea::init]: Unable to use XMLHttpRequest: "+e);};if(success){HTMLArea.checkInitialLoad();}else{if(HTMLArea.is_ie)window.setTimeout('if (window.document.getElementById("pleasewait1")) { window.document.getElementById("pleasewait1").innerHTML = HTMLArea.I18N.msg["ActiveX-required"]; }; else { alert(HTMLArea.I18N.msg["ActiveX-required"]); };',200);}}else{if(HTMLArea.is_ie)alert(HTMLArea.I18N.msg["ActiveX-required"]);}};HTMLArea.RE_tagName=/(<\/|<)\s*([^\t\n>]+)/ig;HTMLArea.RE_doctype=/(<!doctype((.|\n)*?)>)\n?/i;HTMLArea.RE_head=/<head>((.|\n)*?)<\/head>/i;HTMLArea.RE_body=/<body>((.|\n)*?)<\/body>/i;HTMLArea.Reg_body=new RegExp("<\/?(body)[^>]*>","gi");HTMLArea.Reg_entities=new RegExp("&amp;([0-9]+);","gi");HTMLArea.reservedClassNames=/htmlarea/;HTMLArea.RE_email=/([0-9a-z]+([a-z0-9_-]*[0-9a-z])*){1};(\.[0-9a-z]+([a-z0-9_-]*[0-9a-z])*)*@([0-9a-z]+([a-z0-9_-]*[0-9a-z])*\.)+[a-z]{2,9};/i;HTMLArea.RE_url=/(https?:\/\/)?(([a-z0-9_]+:[a-z0-9_]+@)?[a-z0-9_-]{2,};(\.[a-z0-9_-]{2,})+\.[a-z]{2,5};(:[0-9]+)?(\/\S+)*)/i;HTMLArea.Config=function(){this.version="3.0";this.width="auto";this.height="auto";this.statusBar=true;this.undoSteps=20;this.undoTimeout=500;this.sizeIncludesToolbar=true;this.fullPage=false;this.useHTTPS=false;this.useCSS=false;this.enableMozillaExtension=true;this.disableEnterParagraphs=false;this.removeTrailingBR=false;this.editedContentStyle=_editor_edited_content_CSS;this.pageStyle="";this.cleanWordOnPaste=true;this.makeLinkShowsTarget=true;this.htmlRemoveTags=null;this.htmlRemoveTagsAndContents=null;this.htmlRemoveComments=false;this.customTags=null;this.baseURL=document.baseURI||document.URL;if(this.baseURL&&this.baseURL.match(/(.*)\/([^\/]+)/))this.baseURL=RegExp.$1+"/";this.imgURL="images/";this.popupURL="popups/";this.btnList={Bold:["Bold","ed_format_bold",false,function(editor){editor.execCommand("Bold");}],Italic:["Italic","ed_format_italic",false,function(editor){editor.execCommand("Italic");}],Underline:["Underline","ed_format_underline",false,function(editor){editor.execCommand("Underline");}],StrikeThrough:["Strikethrough","ed_format_strike",false,function(editor){editor.execCommand("StrikeThrough");}],Subscript:["Subscript","ed_format_sub",false,function(editor){editor.execCommand("Subscript");}],Superscript:["Superscript","ed_format_sup",false,function(editor){editor.execCommand("Superscript");}],JustifyLeft:["Justify Left","ed_align_left.gif",false,function(editor){editor.execCommand("JustifyLeft");}],JustifyCenter:["Justify Center","ed_align_center.gif",false,function(editor){editor.execCommand("JustifyCenter");}],JustifyRight:["Justify Right","ed_align_right.gif",false,function(editor){editor.execCommand("JustifyRight");}],JustifyFull:["Justify Full","ed_align_justify.gif",false,function(editor){editor.execCommand("JustifyFull");}],InsertOrderedList:["Ordered List","ed_list_num.gif",false,function(editor){editor.execCommand("InsertOrderedList");}],InsertUnorderedList:["Bulleted List","ed_list_bullet",false,function(editor){editor.execCommand("InsertUnorderedList");}],Outdent:["Decrease Indent","ed_indent_less.gif",false,function(editor){editor.execCommand("Outdent");}],Indent:["Increase Indent","ed_indent_more.gif",false,function(editor){editor.execCommand("Indent");}],ForeColor:["Font Color","ed_color_fg.gif",false,function(editor){editor.execCommand("ForeColor");}],HiliteColor:["Background Color","ed_color_bg.gif",false,function(editor){editor.execCommand("HiliteColor");}],InsertHorizontalRule:["Horizontal Rule","ed_hr.gif",false,function(editor){editor.execCommand("InsertHorizontalRule");}],CreateLink:["Insert Web Link","ed_link.gif",false,function(editor){editor.execCommand("CreateLink",true);},"a",false,true],InsertImage:["Insert/Modify Image","ed_image.gif",false,function(editor){editor.execCommand("InsertImage");}],InsertTable:["Insert Table","insert_table.gif",false,function(editor){editor.execCommand("InsertTable");}],HtmlMode:["Toggle HTML Source","ed_html.gif",true,function(editor){editor.execCommand("HtmlMode");}],SelectAll:["SelectAll","",true,function(editor){editor.execCommand("SelectAll");},null,true,false],SplitBlock:["Toggle Container Block","ed_splitblock.gif",false,function(editor){editor.execCommand("SplitBlock");}],About:["About this editor","ed_about.gif",true,function(editor){editor.execCommand("About");}],Undo:["Undoes your last action","ed_undo.gif",false,function(editor){editor.execCommand("Undo");}],Redo:["Redoes your last action","ed_redo.gif",false,function(editor){editor.execCommand("Redo");}],Cut:["Cut selection","ed_cut.gif",false,function(editor,command,obj){editor.execCommand("Cut");}],Copy:["Copy selection","ed_copy.gif",false,function(editor,command,obj){editor.execCommand("Copy");}],Paste:["Paste from clipboard","ed_paste.gif",false,function(editor,command,obj){editor.execCommand("Paste");}],SelectAll:["SelectAll","",true,function(editor){editor.execCommand("SelectAll");},null,true,false],LeftToRight:["Direction left to right","ed_left_to_right.gif",false,function(editor){editor.execCommand("LeftToRight");}],RightToLeft:["Direction right to left","ed_right_to_left.gif",false,function(editor){editor.execCommand("RightToLeft");}]};this.hotKeyList={a:"SelectAll",b:"Bold",i:"Italic",u:"Underline",s:"StrikeThrough",l:"JustifyLeft",e:"JustifyCenter",r:"JustifyRight",j:"JustifyFull",n:"FormatBlock",v:"Paste",0:"CleanWord",z:"Undo",y:"Redo"};for(var i in this.btnList){var btn=this.btnList[i];if(typeof(HTMLArea.I18N.tooltips[i.toLowerCase()])!="undefined")btn[0]=HTMLArea.I18N.tooltips[i.toLowerCase()];if(typeof(btn[1])=="string")btn[1]=_editor_skin+this.imgURL+btn[1];else btn[1][0]=_editor_skin+this.imgURL+btn[1][0];};this.customSelects={};};HTMLArea.Config.prototype.registerButton=function(id,tooltip,image,textMode,action,context,hide,selection){var the_id;switch(typeof(id)){case "string":the_id=id;break;case "object":the_id=id.id;break;default:HTMLArea._appendToLog("ERROR [HTMLArea.Config::registerButton]: invalid arguments");return false;};if(typeof(this.customSelects[the_id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerButton]: A dropdown with the same ID "+id+" already exists.");if(typeof(this.btnList[the_id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerButton]: A button with the same ID "+id+" already exists.");switch(typeof(id)){case "string":if(typeof(hide)=="undefined")var hide=false;if(typeof(selection)=="undefined")var selection=false;this.btnList[id]=[tooltip,image,textMode,action,context,hide,selection];break;case "object":if(typeof(id.hide)=="undefined")id.hide=false;if(typeof(id.selection)=="undefined")id.selection=false;this.btnList[id.id]=[id.tooltip,id.image,id.textMode,id.action,id.context,id.hide,id.selection];break;}};HTMLArea.Config.prototype.registerDropdown=function(object){if(typeof(this.customSelects[object.id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerDropdown]: A dropdown with the same ID "+object.id+" already exists.");if(typeof(this.btnList[object.id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerDropdown]: A button with the same ID "+object.id+" already exists.");this.customSelects[object.id]=object;};HTMLArea.setButtonStatus=function(id,newval){var oldval=this[id];var el=document.getElementById(this.elementId);if(oldval!=newval){switch(id){case "enabled":if(newval){if(!HTMLArea.is_wamcom){HTMLArea._removeClass(el,"buttonDisabled");HTMLArea._removeClass(el.parentNode,"buttonDisabled");};el.disabled=false;}else{if(!HTMLArea.is_wamcom){HTMLArea._addClass(el,"buttonDisabled");HTMLArea._addClass(el.parentNode,"buttonDisabled");};el.disabled=true;};break;case "active":if(newval){HTMLArea._addClass(el,"buttonPressed");HTMLArea._addClass(el.parentNode,"buttonPressed");}else{HTMLArea._removeClass(el,"buttonPressed");HTMLArea._removeClass(el.parentNode,"buttonPressed");};break;};this[id]=newval;}};HTMLArea.newLine=function(toolbar){tb_line=document.createElement("ul");tb_line.className="tb-line";toolbar.appendChild(tb_line);return tb_line;};HTMLArea.addTbElement=function(element,tb_line,first_cell_on_line){var tb_cell=document.createElement("li");if(first_cell_on_line)tb_cell.className="tb-first-cell";else tb_cell.className="tb-cell";HTMLArea._addClass(tb_cell,element.className);tb_line.appendChild(tb_cell);tb_cell.appendChild(element);if(element.style.display=="none"){tb_cell.style.display="none";if(HTMLArea._hasClass(tb_line,"tb-group"))tb_line.style.display="none";if(HTMLArea._hasClass(tb_cell.previousSibling,"separator"))tb_cell.previousSibling.style.display="none";};return false;};HTMLArea.addTbGroup=function(tb_line,first_cell_on_line){var tb_group=document.createElement("ul");tb_group.className="tb-group";HTMLArea.addTbElement(tb_group,tb_line,first_cell_on_line);return tb_group;};HTMLArea.prototype.createSelect=function(txt,tb_line,first_cell_on_line,labelObj){var options=null,cmd=null,context=null,tooltip="",newObj={created:false,el:null,first:first_cell_on_line,labelUsed:false};switch(txt){case "FontSize":case "FontName":case "FormatBlock":options=this.config[txt];tooltip=HTMLArea.I18N.tooltips[txt.toLowerCase()];cmd=txt;break;default:cmd=txt;var dropdown=this.config.customSelects[cmd];if(typeof(dropdown)!="undefined"){options=dropdown.options;context=dropdown.context;if(typeof(dropdown.tooltip)!="undefined")tooltip=dropdown.tooltip;};break;};if(options){newObj["el"]=document.createElement("select");newObj["el"].className="select";newObj["el"].title=tooltip;newObj["el"].id=this._editorNumber+"-"+txt;newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);var obj={name:txt,elementId:newObj["el"].id,enabled:true,text:false,cmd:cmd,state:HTMLArea.setButtonStatus,context:context,editorNumber:this._editorNumber};this._toolbarObjects[txt]=obj;newObj["el"]._obj=obj;if(labelObj["labelRef"]){labelObj["el"].htmlFor=newObj["el"].id;newObj["labelUsed"]=true;};HTMLArea._addEvent(newObj["el"],"change",HTMLArea.toolBarButtonHandler);for(var i in options){var op=document.createElement("option");op.innerHTML=i;op.value=options[i];if(txt=="FontName"&&!this.config.disablePCexamples){if(HTMLArea.is_gecko)op.setAttribute("style","font-family:"+op.value+";");else op.style.cssText="font-family:"+op.value+";";};newObj["el"].appendChild(op);};newObj["created"]=true;};return newObj;};HTMLArea.prototype.createButton=function(txt,tb_line,first_cell_on_line,labelObj){var btn=null,btnImg=null,newObj={created:false,el:null,first:first_cell_on_line,labelUsed:false};switch(txt){case "separator":newObj["el"]=document.createElement("div");newObj["el"].className="separator";newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);newObj["created"]=true;break;case "space":newObj["el"]=document.createElement("div");newObj["el"].className="space";newObj["el"].innerHTML="&nbsp;";newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);newObj["created"]=true;break;case "TextIndicator":newObj["el"]=document.createElement("div");newObj["el"].appendChild(document.createTextNode("A"));newObj["el"].className="indicator";newObj["el"].title=HTMLArea.I18N.tooltips.textindicator;newObj["el"].id=this._editorNumber+"-"+txt;newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);var obj={name:txt,elementId:newObj["el"].id,enabled:true,active:false,text:false,cmd:"TextIndicator",state:HTMLArea.setButtonStatus};this._toolbarObjects[txt]=obj;newObj["created"]=true;break;default:btn=this.config.btnList[txt];};if(!newObj["created"]&&btn){newObj["el"]=document.createElement("button");newObj["el"].title=btn[0];newObj["el"].className="button";newObj["el"].id=this._editorNumber+"-"+txt;if(btn[5])newObj["el"].style.display="none";newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);var obj={name:txt,elementId:newObj["el"].id,enabled:true,active:false,text:btn[2],cmd:btn[3],state:HTMLArea.setButtonStatus,context:btn[4]||null,selection:btn[6],editorNumber:this._editorNumber};this._toolbarObjects[txt]=obj;newObj["el"]._obj=obj;if(labelObj["labelRef"]){labelObj["el"].htmlFor=newObj["el"].id;newObj["labelUsed"]=true;};HTMLArea._addEvents(newObj["el"],["mouseover","mouseout","mousedown","click"],HTMLArea.toolBarButtonHandler);if(typeof(btn[1])!="string"&&HTMLArea.is_ie){var btnImgContainer=document.createElement("div");btnImgContainer.className="buttonImgContainer";btnImgContainer.innerHTML='<img src="'+btn[1][0]+'" style="position: relative; top: -'+(18*(btn[1][1]+1))+'px; left: -'+(18*(btn[1][2]+1))+'px;" alt="'+btn[0]+'" />';newObj["el"].appendChild(btnImgContainer);}else{newObj["el"].className+=" "+txt;if(this.plugins["TYPO3Browsers"]&&(txt=="CreateLink"||txt=="InsertImage"))newObj["el"].className+="-TYPO3Browsers";};newObj["created"]=true;};return newObj;};HTMLArea.createLabel=function(txt,tb_line,first_cell_on_line){var newObj={created:false,el:null,labelRef:false,first:first_cell_on_line};if(/^([IT])\[(.*?)\]/.test(txt)){var l7ed=RegExp.$1=="I";var label=RegExp.$2;if(l7ed)label=HTMLArea.I18N.dialogs[label];newObj["el"]=document.createElement("label");newObj["el"].className="label";newObj["el"].innerHTML=label;newObj["labelRef"]=true;newObj["created"]=true;newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);};return newObj;};HTMLArea.prototype._createToolbar=function(){var j,k,code,n=this.config.toolbar.length,m,tb_line=null,tb_group=null,first_cell_on_line=true,labelObj=new Object(),tbObj=new Object();var toolbar=document.createElement("div");this._toolbar=toolbar;toolbar.className="toolbar";toolbar.unselectable="1";this._toolbarObjects=new Object();for(j=0;j<n;++j){tb_line=HTMLArea.newLine(toolbar);if(!this.config.keepButtonGroupTogether)HTMLArea._addClass(tb_line,"free-float");first_cell_on_line=true;tb_group=null;var group=this.config.toolbar[j];m=group.length;for(k=0;k<m;++k){code=group[k];if(code=="linebreak"){tb_line=HTMLArea.newLine(toolbar);if(!this.config.keepButtonGroupTogether)HTMLArea._addClass(tb_line,"free-float");first_cell_on_line=true;tb_group=null;}else{if((code=="separator"||first_cell_on_line)&&this.config.keepButtonGroupTogether){tb_group=HTMLArea.addTbGroup(tb_line,first_cell_on_line);first_cell_on_line=false;};created=false;if(/^([IT])\[(.*?)\]/.test(code)){labelObj=HTMLArea.createLabel(code,(tb_group?tb_group:tb_line),first_cell_on_line);created=labelObj["created"];first_cell_on_line=labelObj["first"];};if(!created){tbObj=this.createButton(code,(tb_group?tb_group:tb_line),first_cell_on_line,labelObj);created=tbObj["created"];first_cell_on_line=tbObj["first"];if(tbObj["labelUsed"])labelObj["labelRef"]=false;};if(!created){tbObj=this.createSelect(code,(tb_group?tb_group:tb_line),first_cell_on_line,labelObj);created=tbObj["created"];first_cell_on_line=tbObj["first"];if(tbObj["labelUsed"])labelObj["labelRef"]=false;};if(!created)HTMLArea._appendToLog("ERROR [HTMLArea::createToolbar]: Unknown toolbar item: "+code);}}};tb_line=HTMLArea.newLine(toolbar);this._htmlArea.appendChild(toolbar);};HTMLArea.toolBarButtonHandler=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;while(target.tagName.toLowerCase()=="img"||target.tagName.toLowerCase()=="div")target=target.parentNode;var obj=target._obj;var editorNumber=obj["editorNumber"];var editor=RTEarea[editorNumber]["editor"];if(obj.enabled){switch(ev.type){case "mouseover":HTMLArea._addClass(target,"buttonHover");HTMLArea._addClass(target.parentNode,"buttonHover");break;case "mouseout":HTMLArea._removeClass(target,"buttonHover");HTMLArea._removeClass(target.parentNode,"buttonHover");HTMLArea._removeClass(target,"buttonActive");HTMLArea._removeClass(target.parentNode,"buttonActive");if(obj.active){HTMLArea._addClass(target,"buttonPressed");HTMLArea._addClass(target.parentNode,"buttonPressed");};break;case "mousedown":HTMLArea._addClass(target,"buttonActive");HTMLArea._addClass(target.parentNode,"buttonActive");HTMLArea._removeClass(target,"buttonPressed");HTMLArea._removeClass(target.parentNode,"buttonPressed");HTMLArea._stopEvent(ev);break;case "click":HTMLArea._removeClass(target,"buttonActive");HTMLArea._removeClass(target.parentNode,"buttonActive");HTMLArea._removeClass(target,"buttonHover");HTMLArea._removeClass(target.parentNode,"buttonHover");obj.cmd(editor,obj.name,obj);HTMLArea._stopEvent(ev);break;case "change":editor.focusEditor();var value=target.options[target.selectedIndex].value;switch(obj.name){case "FontName":case "FontSize":editor.execCommand(obj.name,false,value);break;case "FormatBlock":(HTMLArea.is_ie||HTMLArea.is_safari)&&(value="<"+value+">");editor.execCommand(obj.name,false,value);break;default:var dropdown=editor.config.customSelects[obj.name];if(typeof(dropdown)!="undefined")dropdown.action(editor);else HTMLArea._appendToLog("ERROR [HTMLArea::toolBarButtonHandler]: Combo box "+obj.name+" not registered.");}}}};HTMLArea.prototype._createStatusBar=function(){var statusBar=document.createElement("div");this._statusBar=statusBar;statusBar.className="statusBar";if(!this.config.statusBar)statusBar.style.display="none";var statusBarTree=document.createElement("span");this._statusBarTree=statusBarTree;statusBarTree.className="statusBarTree";statusBar.appendChild(statusBarTree);statusBarTree.appendChild(document.createTextNode(HTMLArea.I18N.msg["Path"]+": "));this._htmlArea.appendChild(statusBar);};HTMLArea.prototype.generate=function(){var textarea=this._textArea;if(typeof(textarea)=="string"){textarea=HTMLArea.getElementById("textarea",textarea);this._textArea=textarea;};textarea.style.display="none";var htmlarea=document.createElement("div");htmlarea.className="htmlarea";htmlarea.style.width=textarea.style.width;this._htmlArea=htmlarea;textarea.parentNode.insertBefore(htmlarea,textarea);if(textarea.form){var f=textarea.form;if(typeof(f.onreset)=="function"){var funcref=f.onreset;if(typeof(f.__msh_prevOnReset)=="undefined")f.__msh_prevOnReset=[];f.__msh_prevOnReset.push(funcref);};f._editorNumber=this._editorNumber;HTMLArea._addEvent(f,"reset",HTMLArea.resetHandler);};this._createToolbar();HTMLArea._appendToLog("[HTMLArea::generate]: Toolbar successfully created.");var iframe=document.createElement("iframe");if(HTMLArea.is_ie||HTMLArea.is_safari||HTMLArea.is_wamcom){iframe.setAttribute("src",_editor_url+"popups/blank.html");}else if(HTMLArea.is_opera){iframe.setAttribute("src",_typo3_host_url+_editor_url+"popups/blank.html");}else{iframe.setAttribute("src","javascript:void(0);");};iframe.className="editorIframe";if(!this.config.statusBar)iframe.className+=" noStatusBar";htmlarea.appendChild(iframe);this._iframe=iframe;this._createStatusBar();this.sizeIframe(2);HTMLArea._appendToLog("[HTMLArea::generate]: Editor iframe successfully created.");this.initIframe();return this;};HTMLArea.prototype.sizeIframe=function(diff){var i;var height=(this.config.height=="auto"?(this._textArea.style.height):this.config.height);var textareaHeight=height;var inlineObject=RTEarea[this._editorNumber].tceformsInlineObject;var dynTabs=RTEarea[this._editorNumber].tceformsDynTabs;var parentElements=new Array();if(dynTabs)parentElements=dynTabs.split(',');if(inlineObject)parentElements.push(inlineObject);var dimensions=this.accessParentElements(parentElements,'this.getDimensions()');if(height.indexOf("%")==-1){height=parseInt(height)-diff;if(this.config.sizeIncludesToolbar){this._initialToolbarOffsetHeight=dimensions.toolbar.height;height-=dimensions.toolbar.height;height-=dimensions.statusbar.height;};if(height<0)height=0;textareaHeight=(height-4);if(textareaHeight<0)textareaHeight=0;height+="px";textareaHeight+="px";};this._iframe.style.height=height;this._textArea.style.height=textareaHeight;var textareaWidth=(this.config.width=="auto"?this._textArea.style.width:this.config.width);var iframeWidth=textareaWidth;if(textareaWidth.indexOf("%")==-1){iframeWidth=parseInt(textareaWidth)+"px";textareaWidth=parseInt(textareaWidth)-diff;if(textareaWidth<0)textareaWidth=0;textareaWidth+='px';};this._iframe.style.width="100%";if(HTMLArea.is_opera)this._iframe.style.width=iframeWidth;this._textArea.style.width=textareaWidth;};HTMLArea.prototype.getDimensions=function(){return{toolbar:{width:this._toolbar.offsetWidth,height:this._toolbar.offsetHeight},statusbar:{width:this._statusBar.offsetWidth,height:this._statusBar.offsetHeight}};};HTMLArea.prototype.accessParentElements=function(parentElements,callbackFunc){var result={};if(parentElements.length){var currentElement=parentElements.pop();var elementStyle=document.getElementById(currentElement).style;var actionRequired=elementStyle.display=='none';if(actionRequired){var originalVisibility=elementStyle.visibility;var originalPosition=elementStyle.position;elementStyle.visibility='hidden';elementStyle.position='absolute';elementStyle.display='';};result=this.accessParentElements(parentElements,callbackFunc);if(actionRequired){elementStyle.display='none';elementStyle.position=originalPosition;elementStyle.visibility=originalVisibility;}}else{result=eval(callbackFunc);};return result;};HTMLArea.initIframe=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor.initIframe();};HTMLArea.prototype.initIframe=function(){if(this._initIframeTimer)window.clearTimeout(this._initIframeTimer);if(!this._iframe||(!this._iframe.contentWindow&&!this._iframe.contentDocument)){this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",50);return false;}else if(this._iframe.contentWindow){if(!this._iframe.contentWindow.document||!this._iframe.contentWindow.document.documentElement){this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",50);return false;}}else if(!this._iframe.contentDocument.documentElement){this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",50);return false;};var doc=this._iframe.contentWindow?this._iframe.contentWindow.document:this._iframe.contentDocument;this._doc=doc;if(!this.config.fullPage){var head=doc.getElementsByTagName("head")[0];if(!head){head=doc.createElement("head");doc.documentElement.appendChild(head);};if(this.config.baseURL&&!HTMLArea.is_opera){var base=doc.getElementsByTagName("base")[0];if(!base){base=doc.createElement("base");base.href=this.config.baseURL;head.appendChild(base);};HTMLArea._appendToLog("[HTMLArea::initIframe]: Iframe baseURL set to: "+this.config.baseURL);};var link0=doc.getElementsByTagName("link")[0];if(!link0){link0=doc.createElement("link");link0.rel="stylesheet";link0.href=this.config.editedContentStyle;head.appendChild(link0);HTMLArea._appendToLog("[HTMLArea::initIframe]: Skin CSS set to: "+this.config.editedContentStyle);};if(this.config.defaultPageStyle){var link=doc.getElementsByTagName("link")[1];if(!link){link=doc.createElement("link");link.rel="stylesheet";link.href=this.config.defaultPageStyle;head.appendChild(link);};HTMLArea._appendToLog("[HTMLArea::initIframe]: Override CSS set to: "+this.config.defaultPageStyle);};if(this.config.pageStyle){var link=doc.getElementsByTagName("link")[2];if(!link){link=doc.createElement("link");link.rel="stylesheet";link.href=this.config.pageStyle;head.appendChild(link);};HTMLArea._appendToLog("[HTMLArea::initIframe]: Content CSS set to: "+this.config.pageStyle);}}else{var html=this._textArea.value;this.setFullHTML(html);};HTMLArea._appendToLog("[HTMLArea::initIframe]: Editor iframe head successfully initialized.");this.stylesLoaded();};HTMLArea.stylesLoaded=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor.stylesLoaded();};HTMLArea.prototype.stylesLoaded=function(){var doc=this._doc;var docWellFormed=true;if(this._stylesLoadedTimer)window.clearTimeout(this._stylesLoadedTimer);var stylesAreLoaded=true;var errorText='';var rules;for(var rule=0;rule<doc.styleSheets.length;rule++){if(HTMLArea.is_gecko)try{rules=doc.styleSheets[rule].cssRules;}catch(e){stylesAreLoaded=false;errorText=e;};if(HTMLArea.is_ie)try{rules=doc.styleSheets[rule].rules;}catch(e){stylesAreLoaded=false;errorText=e;};if(HTMLArea.is_ie)try{rules=doc.styleSheets[rule].imports;}catch(e){stylesAreLoaded=false;errorText=e;}};if(!stylesAreLoaded&&!HTMLArea.is_wamcom){HTMLArea._appendToLog("[HTMLArea::initIframe]: Failed attempt at loading stylesheets: "+errorText+" Retrying...");this._stylesLoadedTimer=window.setTimeout("HTMLArea.stylesLoaded("+this._editorNumber+");",100);return false;};HTMLArea._appendToLog("[HTMLArea::initIframe]: Stylesheets successfully loaded.");if(!this.config.fullPage){doc.body.style.borderWidth="0px";doc.body.className="htmlarea-content-body";try{doc.body.innerHTML=this._textArea.value;}catch(e){HTMLArea._appendToLog("[HTMLArea::initIframe]: The HTML document is not well-formed.");alert(HTMLArea.I18N.msg["HTML-document-not-well-formed"]);docWellFormed=false;}};if(this._customUndo)this._timerUndo=window.setInterval("HTMLArea.undoTakeSnapshot("+this._editorNumber+");",this.config.undoTimeout);if(docWellFormed){if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera&&!this._initEditMode())return false;if(HTMLArea.is_opera)doc.designMode="on";if(HTMLArea.is_ie||HTMLArea.is_safari)doc.body.contentEditable=true;if(HTMLArea.is_ie)doc.selection.empty();this._editMode="wysiwyg";if(doc.body.contentEditable||doc.designMode=="on")HTMLArea._appendToLog("[HTMLArea::initIframe]: Design mode successfully set.");}else{this._editMode="textmode";this.setMode("docnotwellformedmode");HTMLArea._appendToLog("[HTMLArea::initIframe]: Design mode could not be set.");};doc._editorNo=this._editorNumber;if(HTMLArea.is_ie)doc.documentElement._editorNo=this._editorNumber;HTMLArea._addEvents((HTMLArea.is_ie?doc.body:doc),["keydown","keypress","mousedown","mouseup","drag"],HTMLArea._editorEvent,true);HTMLArea._addEvent((this._iframe.contentWindow?this._iframe.contentWindow:this._iframe.contentDocument),"unload",HTMLArea.removeEditorEvents);if(this.config.cleanWordOnPaste)HTMLArea._addEvents((HTMLArea.is_ie?doc.body:doc),["paste","dragdrop","drop"],HTMLArea.cleanWordOnPaste,true);window.setTimeout("HTMLArea.generatePlugins("+this._editorNumber+");",100);};HTMLArea.generatePlugins=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor._hasPluginWithOnKeyPressHandler=false;for(var i in editor.plugins){var plugin=editor.plugins[i].instance;if(typeof(plugin.onGenerate)=="function")plugin.onGenerate();if(typeof(plugin.onGenerateOnce)=="function"){plugin.onGenerateOnce();plugin.onGenerateOnce=null;};if(typeof(plugin.onKeyPress)=="function"){editor._hasPluginWithOnKeyPressHandler=true;}};if(typeof(editor.onGenerate)=="function"){editor.onGenerate();editor.onGenerate=null;};HTMLArea._appendToLog("[HTMLArea::initIframe]: All plugins successfully generated.");editor.updateToolbar();};HTMLArea.resetHandler=function(ev){if(!ev)var ev=window.event;var form=(ev.target)?ev.target:ev.srcElement;var editor=RTEarea[form._editorNumber]["editor"];editor.setHTML(editor._textArea.value);editor.updateToolbar();var a=form.__msh_prevOnReset;if(typeof(a)!="undefined"){for(var i=a.length;--i>=0;){a[i]();}}};HTMLArea.removeEditorEvents=function(ev){if(!ev)var ev=window.event;HTMLArea._stopEvent(ev);if(Dialog._modal){Dialog._modal.close();Dialog._modal=null;};for(var ed=RTEarea.length;--ed>0;){var editor=RTEarea[ed]["editor"];if(editor){RTEarea[ed]["editor"]=null;editor._textArea.value=editor.getHTML();window.clearInterval(editor._timerUndo);editor._undoQueue=null;if(HTMLArea._eventCache&&!HTMLArea.is_opera)HTMLArea._eventCache.flush();if(HTMLArea.is_ie)HTMLArea._cleanup(editor);}}};HTMLArea.prototype.setMode=function(mode){if(typeof(mode)=="undefined")var mode=(this._editMode=="textmode")?"wysiwyg":"textmode";switch(mode){case "textmode":case "docnotwellformedmode":this._textArea.value=this.getHTML();this._iframe.style.display="none";this._textArea.style.display="block";if(this.config.statusBar){var statusBarTextMode=document.createElement("span");statusBarTextMode.className="statusBarTextMode";statusBarTextMode.appendChild(document.createTextNode(HTMLArea.I18N.msg["TEXT_MODE"]));this._statusBar.innerHTML='';this._statusBar.appendChild(statusBarTextMode);};this._editMode="textmode";break;case "wysiwyg":if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)this._doc.designMode="off";try{if(!this.config.fullPage)this._doc.body.innerHTML=this.getHTML();else this.setFullHTML(this.getHTML());}catch(e){alert(HTMLArea.I18N.msg["HTML-document-not-well-formed"]);break;};this._textArea.style.display="none";this._iframe.style.display="block";if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)this._doc.designMode="on";if(this.config.statusBar){this._statusBar.innerHTML="";this._statusBar.appendChild(this._statusBarTree);};this._editMode="wysiwyg";break;default:return false;};if(!(mode=="docnotwellformedmode"))this.focusEditor();for(var i in this.plugins){var plugin=this.plugins[i].instance;if(typeof(plugin.onMode)=="function"){plugin.onMode(mode);}}};HTMLArea.prototype.setFullHTML=function(html){var save_multiline=RegExp.multiline;RegExp.multiline=true;if(html.match(HTMLArea.RE_doctype)){this.setDoctype(RegExp.$1);html=html.replace(HTMLArea.RE_doctype,"");};RegExp.multiline=save_multiline;if(!HTMLArea.is_ie){if(html.match(HTMLArea.RE_head))this._doc.getElementsByTagName("head")[0].innerHTML=RegExp.$1;if(html.match(HTMLArea.RE_body))this._doc.getElementsByTagName("body")[0].innerHTML=RegExp.$1;}else{var html_re=/<html>((.|\n)*?)<\/html>/i;html=html.replace(html_re,"$1");this._doc.open();this._doc.write(html);this._doc.close();this._doc.body.contentEditable=true;return true;};};HTMLArea.prototype.registerPlugin=function(){var plugin=arguments[0];var args=[];for(var i=1;i<arguments.length;++i){args.push(arguments[i]);};this.registerPlugin2(plugin,args);};HTMLArea.prototype.registerPlugin2=function(plugin,args){if(typeof(plugin)=="string"){var plugin=eval(plugin);};if(typeof(plugin)=="undefined"){HTMLArea._appendToLog("ERROR [HTMLArea::registerPlugin]: Can't register undefined plugin.");return false;};var obj=new plugin(this,args);if(obj){var clone={};var info=plugin._pluginInfo;for(var i in info){clone[i]=info[i];};clone.instance=obj;clone.args=args;this.plugins[plugin._pluginInfo.name]=clone;}else{HTMLArea._appendToLog("ERROR [HTMLArea::registerPlugin]: Can't register plugin "+plugin.toString()+".");};};HTMLArea.loadPlugin=function(pluginName,noLangFile,url){if(typeof(url)=="undefined"){var dir=_editor_url+"plugins/"+pluginName;var plugin=pluginName.replace(/([a-z])([A-Z])([a-z])/g,"$1"+"-"+"$2"+"$3").toLowerCase()+".js";var plugin_file=dir+"/"+plugin;HTMLArea.loadScript(plugin_file);if(typeof(noLangFile)=="undefined"||!noLangFile){var plugin_lang=dir+"/lang/"+_editor_lang+".js";HTMLArea._scripts.push(plugin_lang);}}else{HTMLArea.loadScript(url);}};HTMLArea.loadStyle=function(style,plugin,url){if(typeof(url)=="undefined"){var url=_editor_url||'';if(typeof(plugin)!="undefined"){url+="plugins/"+plugin+"/";};url+=style;if(/^\//.test(style)){url=style;}};var head=document.getElementsByTagName("head")[0];var link=document.createElement("link");link.rel="stylesheet";link.href=url;head.appendChild(link);};HTMLArea.loadStyle('','',_editor_CSS);HTMLArea.prototype.imgURL=function(file,plugin){if(typeof(plugin)=="undefined")return _editor_skin+this.config.imgURL+file;else return _editor_skin+this.config.imgURL+plugin+"/"+file;};HTMLArea.prototype.popupURL=function(file){var url="";if(file.match(/^plugin:\/\/(.*?)\/(.*)/)){var plugin=RegExp.$1;var popup=RegExp.$2;if(!/\.html$/.test(popup))popup+=".html";url=_editor_url+"plugins/"+plugin+"/popups/"+popup;}else{url=_typo3_host_url+_editor_url+this.config.popupURL+file;};return url;};HTMLArea.getInnerText=function(el){var txt='',i;for(i=el.firstChild;i;i=i.nextSibling){if(i.nodeType==3)txt+=i.data;else if(i.nodeType==1)txt+=HTMLArea.getInnerText(i);};return txt;};HTMLArea._wordClean=function(editor,html){function clearClass(node){var newc=node.className.replace(/(^|\s)mso.*?(\s|$)/ig,' ');if(newc!=node.className){node.className=newc;if(!/\S/.test(node.className))node.removeAttribute("className");}};function clearStyle(node){if(HTMLArea.is_ie)var style=node.style.cssText;else var style=node.getAttribute("style");if(style){var declarations=style.split(/\s*;\s*/);for(var i=declarations.length;--i>=0;){if(/^mso|^tab-stops/i.test(declarations[i])||/^margin\s*:\s*0..\s+0..\s+0../i.test(declarations[i]))declarations.splice(i,1);};node.setAttribute("style",declarations.join("; "));}};function stripTag(el){if(HTMLArea.is_ie){el.outerHTML=HTMLArea.htmlEncode(el.innerText);}else{var txt=document.createTextNode(HTMLArea.getInnerText(el));el.parentNode.insertBefore(txt,el);el.parentNode.removeChild(el);}};function checkEmpty(el){if(/^(span|b|strong|i|em|font)$/i.test(el.tagName)&&!el.firstChild)el.parentNode.removeChild(el);};function parseTree(root){var tag=root.tagName.toLowerCase(),i,next;if((HTMLArea.is_ie&&root.scopeName!='HTML')||(!HTMLArea.is_ie&&/:/.test(tag))||/o:p/.test(tag)){stripTag(root);return false;}else{clearClass(root);clearStyle(root);for(i=root.firstChild;i;i=next){next=i.nextSibling;if(i.nodeType==1&&parseTree(i)){checkEmpty(i);}}};return true;};parseTree(html);};HTMLArea.wordCleanLater=function(editorNumber,doUpdateToolbar){var editor=RTEarea[editorNumber]["editor"];HTMLArea._wordClean(editor,editor._doc.body);if(doUpdateToolbar)editor.updateToolbar();};HTMLArea.cleanWordOnPaste=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var owner=(target.ownerDocument)?target.ownerDocument:target;while(HTMLArea.is_ie&&owner.parentElement){owner=owner.parentElement;};if(typeof(browserWin)!="undefined")browserWin.close();window.setTimeout("HTMLArea.wordCleanLater("+owner._editorNo+", true);",250);};HTMLArea.prototype.forceRedraw=function(){this._doc.body.style.visibility="hidden";this._doc.body.style.visibility="visible";};HTMLArea.prototype.focusEditor=function(){switch(this._editMode){case "wysiwyg":try{if(HTMLArea.is_safari||HTMLArea.is_opera)this._doc.focus();else this._iframe.contentWindow.focus();}catch(e){};break;case "textmode":this._textArea.focus();break;};return this._doc;};HTMLArea.undoTakeSnapshot=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];if(editor._doc)editor._undoTakeSnapshot();};HTMLArea.prototype._undoTakeSnapshot=function(){var curTime=(new Date()).getTime();var newOne=true;if(this._undoPos>=this.config.undoSteps){this._undoQueue.shift();--this._undoPos;};if(this._undoPos<0||this._undoQueue[this._undoPos].time<curTime-this.config.undoTimeout){++this._undoPos;}else{newOne=false;};var txt=this.getInnerHTML();if(newOne){if(this._undoPos==0||this._undoQueue[this._undoPos-1].text!=txt){this._undoQueue[this._undoPos]={text:txt,time:curTime};this._undoQueue.length=this._undoPos+1;}else{this._undoPos--;}}else{if(this._undoQueue[this._undoPos].text!=txt){this._undoQueue[this._undoPos].text=txt;this._undoQueue.length=this._undoPos+1;}}};HTMLArea.setUndoQueueLater=function(editorNumber,op){var editor=RTEarea[editorNumber]["editor"];if(op=="undo"){editor.setHTML(editor._undoQueue[--editor._undoPos].text);}else if(op=="redo"){if(editor._undoPos<editor._undoQueue.length-1)editor.setHTML(editor._undoQueue[++editor._undoPos].text);}};HTMLArea.prototype.undo=function(){if(this._undoPos>0){this._undoTakeSnapshot();if(!HTMLArea.is_opera)this.setHTML(this._undoQueue[--this._undoPos].text);else window.setTimeout("HTMLArea.setUndoQueueLater("+this._editorNumber+", 'undo');",10);}};HTMLArea.prototype.redo=function(){if(this._undoPos<this._undoQueue.length-1){this._undoTakeSnapshot();if(!HTMLArea.is_opera){if(this._undoPos<this._undoQueue.length-1)this.setHTML(this._undoQueue[++this._undoPos].text);}else{window.setTimeout("HTMLArea.setUndoQueueLater("+this._editorNumber+", 'redo');",10);}}};HTMLArea.updateToolbar=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor.updateToolbar();editor._timerToolbar=null;};HTMLArea.prototype.updateToolbar=function(noStatus){var doc=this._doc,text=(this._editMode=="textmode"),selection=this.hasSelectedText(),ancestors=null,cls=new Array(),txt,txtClass,i,cmd,inContext,match,matchAny,k,j,n,commandState;if(!text){ancestors=this.getAllAncestors();if(this.config.statusBar&&!noStatus){if(this._statusBarTree.hasChildNodes()){for(i=this._statusBarTree.firstChild;i;i=i.nextSibling){if(i.nodeName.toLowerCase()=="a"){HTMLArea._removeEvents(i,["click","contextmenu, mousedown"],HTMLArea.statusBarHandler);i.el=null;i.editor=null;}}};this._statusBarTree.innerHTML='';this._statusBarTree.appendChild(document.createTextNode(HTMLArea.I18N.msg["Path"]+": "));for(i=ancestors.length;--i>=0;){var el=ancestors[i];if(!el)continue;var a=document.createElement("a");a.href="#";a.el=el;a.editor=this;if(!HTMLArea.is_opera){HTMLArea._addEvents(a,["click","contextmenu"],HTMLArea.statusBarHandler);}else{HTMLArea._addEvents(a,["mousedown","click"],HTMLArea.statusBarHandler);};txt=el.tagName.toLowerCase();a.title=el.style.cssText;if(el.id){txt+="#"+el.id;};if(el.className){txtClass="";cls=el.className.trim().split(" ");for(j=cls.length;j>0;){if(!HTMLArea.reservedClassNames.test(cls[--j])){txtClass="."+cls[j];}};txt+=txtClass;};a.appendChild(document.createTextNode(txt));this._statusBarTree.appendChild(a);if(i!=0)this._statusBarTree.appendChild(document.createTextNode(String.fromCharCode(0xbb)));}}};for(i in this._toolbarObjects){var btn=this._toolbarObjects[i];cmd=i;inContext=true;if(btn.context&&!text){inContext=false;var attrs=[];var contexts=[];if(/(.*)\[(.*?)\]/.test(btn.context)){contexts=RegExp.$1.split(",");attrs=RegExp.$2.split(",");}else{contexts=btn.context.split(",");};for(j=contexts.length;--j>=0;)contexts[j]=contexts[j].toLowerCase();matchAny=(contexts[0]=="*");for(k=0;k<ancestors.length;++k){if(!ancestors[k])continue;match=false;for(j=contexts.length;--j>=0;)match=match||(ancestors[k].tagName.toLowerCase()==contexts[j]);if(matchAny||match){inContext=true;for(j=attrs.length;--j>=0;){if(!eval("ancestors[k]."+attrs[j])){inContext=false;break;}};if(inContext)break;}}};if(cmd=="CreateLink")btn.state("enabled",(!text||btn.text)&&(inContext||selection));else btn.state("enabled",(!text||btn.text)&&inContext&&(selection||!btn.selection));if(typeof(cmd)=="function"){continue;};var dropdown=this.config.customSelects[cmd];if((!text||btn.text)&&(typeof(dropdown)!="undefined")){dropdown.refresh(this);continue;};switch(cmd){case "FontName":case "FontSize":if(!text)try{var value=(""+doc.queryCommandValue(cmd)).toLowerCase();if(!value){document.getElementById(btn.elementId).selectedIndex=0;break;};var options=this.config[cmd];k=0;for(j in options){if((j.toLowerCase()==value)||(options[j].substr(0,value.length).toLowerCase()==value)){document.getElementById(btn.elementId).selectedIndex=k;throw "ok";};++k;};document.getElementById(btn.elementId).selectedIndex=0;}catch(e){};break;case "FormatBlock":var blocks=[];for(var i in this.config['FormatBlock']){blocks[blocks.length]=this.config['FormatBlock'][i];};var deepestAncestor=this._getFirstAncestor(this._getSelection(),blocks);if(deepestAncestor){for(var x=0;x<blocks.length;x++){if(blocks[x].toLowerCase()==deepestAncestor.tagName.toLowerCase())document.getElementById(btn.elementId).selectedIndex=x;}}else{document.getElementById(btn.elementId).selectedIndex=0;};break;case "TextIndicator":if(!text){try{with(document.getElementById(btn.elementId).style){backgroundColor=HTMLArea._makeColor(doc.queryCommandValue((HTMLArea.is_ie||HTMLArea.is_safari)?"BackColor":"HiliteColor"));if(/transparent/i.test(backgroundColor)){backgroundColor=HTMLArea._makeColor(doc.queryCommandValue("BackColor"));};color=HTMLArea._makeColor(doc.queryCommandValue("ForeColor"));fontFamily=doc.queryCommandValue("FontName");fontWeight="normal";fontStyle="normal";try{fontWeight=doc.queryCommandState("Bold")?"bold":"normal";}catch(ex){fontWeight="normal";};try{fontStyle=doc.queryCommandState("Italic")?"italic":"normal";}catch(ex){fontStyle="normal";};}}catch(e){}};break;case "HtmlMode":btn.state("active",text);break;case "LeftToRight":case "RightToLeft":var el=this.getParentElement();while(el&&!HTMLArea.isBlockElement(el)){el=el.parentNode;};if(el)btn.state("active",(el.style.direction==((cmd=="RightToLeft")?"rtl":"ltr")));break;case "Bold":case "Italic":case "StrikeThrough":case "Underline":case "Subscript":case "Superscript":case "JustifyLeft":case "JustifyCenter":case "JustifyRight":case "JustifyFull":case "Indent":case "Outdent":case "InsertOrderedList":case "InsertUnorderedList":commandState=false;if(!text)try{commandState=doc.queryCommandState(cmd);}catch(e){commandState=false;};btn.state("active",commandState);break;default:break;}};if(this._customUndo)this._undoTakeSnapshot();for(i in this.plugins){var plugin=this.plugins[i].instance;if(typeof(plugin.onUpdateToolbar)=="function")plugin.onUpdateToolbar();}};HTMLArea.prototype.surroundHTML=function(startTag,endTag){this.insertHTML(startTag+this.getSelectedHTML().replace(HTMLArea.Reg_body,"")+endTag);};HTMLArea.prototype.convertNode=function(el,newTagName){var newel=this._doc.createElement(newTagName),p=el.parentNode;while(el.firstChild)newel.appendChild(el.firstChild);p.insertBefore(newel,el);p.removeChild(el);return newel;};HTMLArea.getElementObject=function(el,tagName){var oEl=el;while(oEl!=null&&oEl.nodeName.toLowerCase()!=tagName)oEl=oEl.parentNode;return oEl;};HTMLArea.prototype.makeNestedList=function(el){var previous,clone;for(var i=el.firstChild;i;i=i.nextSibling){if(/^li$/i.test(i.tagName)){for(var j=i.firstChild;j;j=j.nextSibling){if(/^(ol|ul)$/i.test(j.tagName))this.makeNestedList(j);}}else if(/^(ol|ul)$/i.test(i.tagName)){previous=i.previousSibling;var clone=i.cloneNode(true);if(!previous){previous=el.insertBefore(this._doc.createElement("li"),i);previous.appendChild(clone);}else{previous.appendChild(clone);};HTMLArea.removeFromParent(i);this.makeNestedList(el);break;}}};HTMLArea.prototype.hasSelectedText=function(){return this.getSelectedHTML()!="";};HTMLArea.prototype.getAllAncestors=function(){var p=this.getParentElement();var a=[];while(p&&(p.nodeType==1)&&(p.tagName.toLowerCase()!='body')){a.push(p);p=p.parentNode;};a.push(this._doc.body);return a;};HTMLArea.prototype._getFirstAncestor=function(sel,types){var prnt=this._activeElement(sel);if(prnt==null){try{prnt=(HTMLArea.is_ie?this._createRange(sel).parentElement():this._createRange(sel).commonAncestorContainer);}catch(e){return null;}};if(typeof(types)=='string')types=[types];while(prnt){if(prnt.nodeType==1){if(types==null)return prnt;for(var i=0;i<types.length;i++){if(prnt.tagName.toLowerCase()==types[i])return prnt;};if(prnt.tagName.toLowerCase()=='body')break;if(prnt.tagName.toLowerCase()=='table')break;};prnt=prnt.parentNode;};return null;};HTMLArea.createLinkDialog=function(editor,link){return(function(param){if(!param||typeof(param.f_href)=="undefined")return false;var a=link;if(!a){try{editor._doc.execCommand("CreateLink",false,param.f_href);a=editor.getParentElement();var sel=editor._getSelection();var range=editor._createRange(sel);if(!HTMLArea.is_ie){a=range.startContainer;if(!/^a$/i.test(a.tagName)){a=a.nextSibling;if(a==null)a=range.startContainer.parentNode;}}}catch(e){}}else{var href=param.f_href.trim();editor.selectNodeContents(a);if(href==""){editor._doc.execCommand("Unlink",false,null);editor.updateToolbar();return false;}else{a.href=href;}};if(!(a&&/^a$/i.test(a.tagName)))return false;if(typeof(param.f_target)!="undefined")a.target=param.f_target.trim();if(typeof(param.f_title)!="undefined")a.title=param.f_title.trim();editor.selectNodeContents(a);editor.updateToolbar();editor=null;link=null;});};HTMLArea.prototype._createLink=function(link){var outparam=null;this.focusEditor();if(typeof(link)=="undefined"){link=this.getParentElement();if(link){if(/^img$/i.test(link.tagName))link=link.parentNode;if(!/^a$/i.test(link.tagName))link=null;}};if(!link){var sel=this._getSelection();if(this._selectionEmpty(sel)){alert("You need to select some text before creating a link");return;};outparam={f_href:'',f_title:'',f_target:'',f_usetarget:this.config.makeLinkShowsTarget};}else{outparam={f_href:HTMLArea.is_ie?this.stripBaseURL(link.href):link.getAttribute("href"),f_title:link.title,f_target:link.target,f_usetarget:this.config.makeLinkShowsTarget};};var createLinkDialogFunctRef=HTMLArea.createLinkDialog(this,link);this._popupDialog("link.html",createLinkDialogFunctRef,outparam,450,145);};HTMLArea.insertImageDialog=function(editor,image){return(function(param){if(!param||typeof(param.f_url)=="undefined")return false;var img=image;if(!img){var sel=editor._getSelection();var range=editor._createRange(sel);editor._doc.execCommand("InsertImage",false,param.f_url);if(HTMLArea.is_ie){img=range.parentElement();if(img.tagName.toLowerCase()!="img")img=img.previousSibling;}else{var sel=editor._getSelection();var range=editor._createRange(sel);img=range.startContainer;if(HTMLArea.is_opera)img=img.parentNode;img=img.lastChild;while(img&&img.nodeName.toLowerCase()!="img")img=img.previousSibling;}}else{img.src=param.f_url;};for(var field in param){var value=param[field];switch(field){case "f_alt":img.alt=value;break;case "f_border":if(parseInt(value)){img.style.borderWidth=parseInt(value)+"px";img.style.borderStyle="solid";}else{img.style.borderWidth="";img.style.borderStyle="none";};break;case "f_align":img.style.verticalAlign=value;break;case "f_vert":if(parseInt(value)){img.style.marginTop=parseInt(value)+"px";img.style.marginBottom=parseInt(value)+"px";}else{img.style.marginTop="";img.style.marginBottom="";};break;case "f_horiz":if(parseInt(value)){img.style.marginLeft=parseInt(value)+"px";img.style.marginRight=parseInt(value)+"px";}else{img.style.marginLeft="";img.style.marginRight="";};break;case "f_float":if(HTMLArea.is_ie)img.style.styleFloat=value;else img.style.cssFloat=value;break;}};editor=null;image=null;});};HTMLArea.prototype._insertImage=function(image){var outparam=null;this.focusEditor();if(typeof(image)=="undefined"){var image=this.getParentElement();if(image&&!/^img$/i.test(image.tagName))image=null;};if(image)outparam={f_base:this.config.baseURL,f_url:image.getAttribute("src"),f_alt:image.alt,f_border:isNaN(parseInt(image.style.borderWidth))?"":parseInt(image.style.borderWidth),f_align:image.style.verticalAlign,f_vert:isNaN(parseInt(image.style.marginTop))?"":parseInt(image.style.marginTop),f_horiz:isNaN(parseInt(image.style.marginLeft))?"":parseInt(image.style.marginLeft),f_float:HTMLArea.is_ie?image.style.styleFloat:image.style.cssFloat};var insertImageDialogFunctRef=HTMLArea.insertImageDialog(this,image);this._popupDialog("insert_image.html",insertImageDialogFunctRef,outparam,580,460);};HTMLArea.insertTableDialog=function(editor,sel,range){return(function(param){if(!param)return false;var doc=editor._doc;var table=doc.createElement("table");for(var field in param){var value=param[field];if(!value)continue;switch(field){case "f_width":if(value!="")table.style.width=parseInt(value)+param["f_unit"];break;case "f_align":table.style.textAlign=value;break;case "f_border":if(value!=""){table.style.borderWidth=parseInt(value)+"px";table.style.borderStyle="solid";};break;case "f_spacing":if(value!="")table.cellSpacing=parseInt(value);break;case "f_padding":if(value!="")table.cellPadding=parseInt(value);break;case "f_float":if(HTMLArea.is_ie)table.style.styleFloat=((value!="not set")?value:"");else table.style.cssFloat=((value!="not set")?value:"");break;}};var cellwidth=0;if(param.f_fixed)cellwidth=Math.floor(100/parseInt(param.f_cols));var tbody=doc.createElement("tbody");table.appendChild(tbody);for(var i=param["f_rows"];i>0;i--){var tr=doc.createElement("tr");tbody.appendChild(tr);for(var j=param["f_cols"];j>0;j--){var td=doc.createElement("td");if(cellwidth)td.style.width=cellwidth+"%";if(HTMLArea.is_opera){td.innerHTML='&nbsp;';};tr.appendChild(td);}};editor.focusEditor();if(HTMLArea.is_ie)range.pasteHTML(table.outerHTML);else editor.insertNodeAtSelection(table);if(editor.config.buttons["toggleborders"]&&editor.config.buttons["toggleborders"]["setOnTableCreation"])editor.plugins["TableOperations"].instance.buttonPress(editor,"TO-toggle-borders");if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)editor.setMode("wysiwyg");editor.updateToolbar();editor=null;sel=null;range=null;return true;});};HTMLArea.prototype._insertTable=function(){var sel=this._getSelection();var range=this._createRange(sel);this.focusEditor();var insertTableDialogFunctRef=HTMLArea.insertTableDialog(this,sel,range);this._popupDialog("insert_table.html",insertTableDialogFunctRef,this,520,230);};HTMLArea.selectColorDialog=function(editor,cmdID){return(function(color){if(color)editor._doc.execCommand(cmdID,false,"#"+color);});};HTMLArea.prototype.execCommand=function(cmdID,UI,param){this.focusEditor();if(HTMLArea.is_gecko){try{this._doc.execCommand("useCSS",false,!this.config.useCSS);}catch(e){};try{this._doc.execCommand("styleWithCSS",false,this.config.useCSS);}catch(e){};};switch(cmdID){case "HtmlMode":this.setMode();break;case "SplitBlock":this._doc.execCommand('FormatBlock',false,((HTMLArea.is_ie||HTMLArea.is_safari)?"<div>":"div"));break;case "HiliteColor":(HTMLArea.is_ie||HTMLArea.is_safari)&&(cmdID="BackColor");case "ForeColor":var colorDialogFunctRef=HTMLArea.selectColorDialog(this,cmdID);this._popupDialog("select_color.html",colorDialogFunctRef,HTMLArea._colorToRgb(this._doc.queryCommandValue(cmdID)),200,182);break;case "CreateLink":this._createLink();break;case "Undo":case "Redo":if(this._customUndo)this[cmdID.toLowerCase()]();else this._doc.execCommand(cmdID,UI,param);break;case "InsertTable":this._insertTable();break;case "InsertImage":this._insertImage();break;case "About":this._popupDialog("about.html",null,this,475,350);break;case "CleanWord":HTMLArea._wordClean(this,this._doc.body);break;case "Cut":case "Copy":case "Paste":try{this._doc.execCommand(cmdID,false,null);if(cmdID=="Paste"&&this.config.cleanWordOnPaste)HTMLArea._wordClean(this,this._doc.body);}catch(e){if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)this._mozillaPasteException(cmdID,UI,param);};break;case "LeftToRight":case "RightToLeft":var dir=(cmdID=="RightToLeft")?"rtl":"ltr";var el=this.getParentElement();while(el&&!HTMLArea.isBlockElement(el))el=el.parentNode;if(el){if(el.style.direction==dir)el.style.direction="";else el.style.direction=dir;};break;case "Indent":var el=this.getParentElement();while(el&&(!HTMLArea.isBlockElement(el)||/^li$/i.test(el.nodeName)))el=el.parentNode;try{this._doc.execCommand(cmdID,UI,param);}catch(e){if(this.config.debug)alert(e+"\n\nby execCommand("+cmdID+");");};if(/^(ol|ul)$/i.test(el.nodeName)){this.makeNestedList(el);this.selectNodeContents(el);};break;case "FontSize":case "FontName":if(param){this._doc.execCommand(cmdID,UI,param);break;}else{var sel=this._getSelection();if(HTMLArea.is_gecko&&sel.isCollapsed){var fontNode=this._getFirstAncestor(sel,"font");if(fontNode!=null)this.selectNode(fontNode);};this._doc.execCommand("RemoveFormat",UI,null);if(HTMLArea.is_gecko&&fontNode!=null){sel=this._getSelection();var r=this._createRange(sel).cloneRange();r.collapse(false);if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(r.startContainer,r.startOffset,r.endContainer,r.endOffset);}else{sel.removeAllRanges();sel.addRange(r);}}};break;default:try{this._doc.execCommand(cmdID,UI,param);}catch(e){if(this.config.debug)alert(e+"\n\nby execCommand("+cmdID+");");}};this.updateToolbar();return false;};HTMLArea._editorEvent=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var owner=(target.ownerDocument)?target.ownerDocument:target;if(HTMLArea.is_ie){while(owner.parentElement){owner=owner.parentElement;}};var editor=RTEarea[owner._editorNo]["editor"];var keyEvent=((HTMLArea.is_ie||HTMLArea.is_safari)&&ev.type=="keydown")||(!HTMLArea.is_ie&&ev.type=="keypress");editor.focusEditor();if(keyEvent){if(editor._hasPluginWithOnKeyPressHandler){for(var i in editor.plugins){var plugin=editor.plugins[i].instance;if(typeof(plugin.onKeyPress)=="function"){if(plugin.onKeyPress(ev))return false;}}};if(ev.ctrlKey){if(!ev.altKey){var key=String.fromCharCode((HTMLArea.is_ie||HTMLArea.is_safari||HTMLArea.is_opera)?ev.keyCode:ev.charCode).toLowerCase();if(HTMLArea.is_gecko&&ev.keyCode==32)key=String.fromCharCode(ev.keyCode).toLowerCase();var cmd=null;var value=null;switch(key){case '1':case '2':case '3':case '4':case '5':case '6':if(editor._toolbarObjects["FormatBlock"]){cmd="FormatBlock";value="h"+key;if(HTMLArea.is_ie||HTMLArea.is_safari)value="<"+value+">";};break;case ' ':editor.insertHTML("&nbsp;");editor.updateToolbar();HTMLArea._stopEvent(ev);return false;default:if(editor.config.hotKeyList[key]){switch(editor.config.hotKeyList[key]){case "SelectAll":case "CleanWord":cmd=editor.config.hotKeyList[key];break;case "Paste":if(HTMLArea.is_ie||HTMLArea.is_safari){cmd=editor.config.hotKeyList[key];}else if(editor.config.cleanWordOnPaste){window.setTimeout("HTMLArea.wordCleanLater("+owner._editorNo+", false);",50);};break;default:if(editor._toolbarObjects[editor.config.hotKeyList[key]]){cmd=editor.config.hotKeyList[key];if(cmd=="FormatBlock")value=(HTMLArea.is_ie||HTMLArea.is_safari)?"<p>":"p";}}}};if(cmd){editor.execCommand(cmd,false,value);HTMLArea._stopEvent(ev);return false;}else{editor.updateToolbar();}}}else if(ev.altKey){if(editor.plugins['ContextMenu']&&editor.plugins['ContextMenu'].instance){var keys=editor.plugins['ContextMenu'].instance.keys;if(keys.length>0){var k;for(var i=keys.length;--i>=0;){k=keys[i];if(k[0].toLowerCase()==key){HTMLArea._stopEvent(ev);return false;}}}}}else if(keyEvent){if(HTMLArea.is_gecko)editor._detectURL(ev);switch(ev.keyCode){case 13:if(HTMLArea.is_gecko&&!ev.shiftKey&&!editor.config.disableEnterParagraphs){editor._checkInsertP();HTMLArea._stopEvent(ev);editor.updateToolbar();};break;case 8:case 46:if((HTMLArea.is_gecko&&!ev.shiftKey)||HTMLArea.is_ie){if(editor._checkBackspace())HTMLArea._stopEvent(ev);};if(editor._timerToolbar)window.clearTimeout(editor._timerToolbar);editor._timerToolbar=window.setTimeout("HTMLArea.updateToolbar("+editor._editorNumber+");",50);break;case 9:if(HTMLArea.is_gecko){editor.execCommand((ev.shiftKey?"Outdent":"Indent"),false,null);HTMLArea._stopEvent(ev);return false;};break;case 37:case 39:if(HTMLArea.is_ie){editor._timerToolbar=window.setTimeout("HTMLArea.updateToolbar("+editor._editorNumber+");",10);break;}}}}else{if(editor._timerToolbar)window.clearTimeout(editor._timerToolbar);if(ev.type=="mouseup")editor.updateToolbar();else editor._timerToolbar=window.setTimeout("HTMLArea.updateToolbar("+editor._editorNumber+");",50);}};HTMLArea.prototype.scrollToCaret=function(){var e=this.getParentElement(),w=this._iframe.contentWindow?this._iframe.contentWindow:window,h=w.innerHeight||w.height,d=this._doc,t=d.documentElement.scrollTop||d.body.scrollTop;if(typeof(h)=="undefined")return false;if(e.offsetTop>h+t)w.scrollTo(e.offsetLeft,e.offsetTop-h+e.offsetHeight);};HTMLArea.prototype.getHTML=function(){switch(this._editMode){case "wysiwyg":if(!this.config.fullPage){return HTMLArea.getHTML(this._doc.body,false,this);}else{return this.doctype+"\n"+HTMLArea.getHTML(this._doc.documentElement,true,this);};case "textmode":return this._textArea.value;};return false;};HTMLArea.prototype.getInnerHTML=function(){switch(this._editMode){case "wysiwyg":if(!this.config.fullPage)return this._doc.body.innerHTML;else return this.doctype+"\n"+this._doc.documentElement.innerHTML;case "textmode":return this._textArea.value;};return false;};HTMLArea.prototype.setHTML=function(html){switch(this._editMode){case "wysiwyg":if(!this.config.fullPage)this._doc.body.innerHTML=html;else this._doc.body.innerHTML=html;break;case "textmode":this._textArea.value=html;break;};return false;};HTMLArea.prototype.setDoctype=function(doctype){this.doctype=doctype;};HTMLArea._object=null;HTMLArea.checkSupportedBrowser=function(){if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera){if(navigator.productSub<20030210)return false;};return HTMLArea.is_gecko||HTMLArea.is_ie;};HTMLArea._eventCacheConstructor=function(){var listEvents=[];return({listEvents:listEvents,add:function(node,sEventName,fHandler){listEvents.push(arguments);},flush:function(){var item;for(var i=listEvents.length;--i>=0;){item=listEvents[i];try{HTMLArea._removeEvent(item[0],item[1],item[2]);item[0][item[1]]=null;item[0]=null;item[2]=null;}catch(e){}}}});};HTMLArea._addEvent=function(el,evname,func,useCapture){if(typeof(useCapture)=="undefined")var useCapture=false;if(HTMLArea.is_gecko){el.addEventListener(evname,func,!HTMLArea.is_opera||useCapture);}else{el.attachEvent("on"+evname,func);};HTMLArea._eventCache.add(el,evname,func);};HTMLArea._addEvents=function(el,evs,func,useCapture){if(typeof(useCapture)=="undefined")var useCapture=false;for(var i=evs.length;--i>=0;){HTMLArea._addEvent(el,evs[i],func,useCapture);}};HTMLArea._removeEvent=function(el,evname,func){if(HTMLArea.is_gecko){try{el.removeEventListener(evname,func,true);el.removeEventListener(evname,func,false);}catch(e){}}else{try{el.detachEvent("on"+evname,func);}catch(e){}}};HTMLArea._removeEvents=function(el,evs,func){for(var i=evs.length;--i>=0;){HTMLArea._removeEvent(el,evs[i],func);}};HTMLArea._stopEvent=function(ev){if(HTMLArea.is_gecko){ev.stopPropagation();ev.preventDefault();}else{ev.cancelBubble=true;ev.returnValue=false;}};HTMLArea._removeClass=function(el,removeClassName){if(!(el&&el.className))return;var cls=el.className.trim().split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=removeClassName)ar[ar.length]=cls[i];};if(ar.length==0){if(!HTMLArea.is_opera)el.removeAttribute(HTMLArea.is_gecko?"class":"className");else el.className='';}else el.className=ar.join(" ");};HTMLArea._addClass=function(el,addClassName){HTMLArea._removeClass(el,addClassName);if(el.className)el.className+=" "+addClassName;else el.className=addClassName;};HTMLArea._hasClass=function(el,className){if(!el||!el.className)return false;var cls=el.className.split(" ");for(var i=cls.length;i>0;){if(cls[--i]==className)return true;};return false;};HTMLArea.RE_blockTags=/^(body|p|h1|h2|h3|h4|h5|h6|ul|ol|pre|dl|div|noscript|blockquote|form|hr|table|fieldset|address|td|tr|th|li|tbody|thead|tfoot|iframe|object)$/;HTMLArea.isBlockElement=function(el){return el&&el.nodeType==1&&HTMLArea.RE_blockTags.test(el.nodeName.toLowerCase());};HTMLArea.RE_closingTags=/^(p|span|a|li|ol|ul|dl|dt|td|th|tr|tbody|thead|tfoot|caption|table|div|em|i|strong|b|code|cite|blockquote|q|dfn|abbr|acronym|font|center|object|embed|tt|style|script|title|head|clickenlarge)$/;HTMLArea.RE_noClosingTag=/^(img|br|hr|input|area|base|link|meta|param)$/;HTMLArea.needsClosingTag=function(el){return el&&el.nodeType==1&&!HTMLArea.RE_noClosingTag.test(el.tagName.toLowerCase());};HTMLArea.htmlDecode=function(str){str=str.replace(/&lt;/g,"<").replace(/&gt;/g,">");str=str.replace(/&nbsp;/g,"\xA0");str=str.replace(/&quot;/g,"\x22");str=str.replace(/&#39;/g,"'");str=str.replace(/&amp;/g,"&");return str;};HTMLArea.htmlEncode=function(str){if(typeof(str)!='string')str=str.toString();str=HTMLArea.htmlDecode(str);str=str.replace(/&/g,"&amp;");str=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");str=str.replace(/\xA0/g,"&nbsp;");str=str.replace(/\x22/g,"&quot;");str=str.replace(HTMLArea.Reg_entities,"&$1;");return str;};HTMLArea.getHTML=function(root,outputRoot,editor){try{return HTMLArea.getHTMLWrapper(root,outputRoot,editor);}catch(e){HTMLArea._appendToLog("The HTML document is not well-formed.");if(!HTMLArea._debugMode)alert(HTMLArea.I18N.msg["HTML-document-not-well-formed"]);else return HTMLArea.getHTMLWrapper(root,outputRoot,editor);return editor._doc.body.innerHTML;}};HTMLArea.getHTMLWrapper=function(root,outputRoot,editor){var html="";if(!root)return html;switch(root.nodeType){case 1:case 11:case 9:var closed,i,config=editor.config;var root_tag=(root.nodeType==1)?root.tagName.toLowerCase():'';if(root_tag=='br'&&config.removeTrailingBR&&!root.nextSibling&&HTMLArea.isBlockElement(root.parentNode)&&(!root.previousSibling||root.previousSibling.nodeName.toLowerCase()!='br'))break;if(config.htmlRemoveTagsAndContents&&config.htmlRemoveTagsAndContents.test(root_tag))break;var custom_tag=(config.customTags&&config.customTags.test(root_tag));var empty_root=(root_tag=="clickenlarge"&&!(root.firstChild&&root.firstChild.nodeName.toLowerCase()=="img"));if(outputRoot)outputRoot=!(config.htmlRemoveTags&&config.htmlRemoveTags.test(root_tag))&&!empty_root;if((HTMLArea.is_ie||HTMLArea.is_safari)&&root_tag=="head"){if(outputRoot)html+="<head>";var save_multiline=RegExp.multiline;RegExp.multiline=true;var txt=root.innerHTML.replace(HTMLArea.RE_tagName,function(str,p1,p2){return p1+p2.toLowerCase();});RegExp.multiline=save_multiline;html+=txt;if(outputRoot)html+="</head>";break;}else if(outputRoot){if(HTMLArea.is_gecko&&root.hasAttribute('_moz_editor_bogus_node'))break;closed=(!(root.hasChildNodes()||HTMLArea.needsClosingTag(root)||custom_tag));html="<"+root_tag;var a,name,value,attrs=root.attributes;var n=attrs.length;for(i=attrs.length;--i>=0;){a=attrs.item(i);name=a.nodeName.toLowerCase();if((!a.specified&&name!='value')||/_moz|contenteditable|_msh/.test(name))continue;if(!HTMLArea.is_ie||name!="style"){if(typeof(root[a.nodeName])!="undefined"&&name!="href"&&name!="src"&&name!="style"&&!/^on/.test(name)){value=root[a.nodeName];}else{value=a.nodeValue;if(HTMLArea.is_ie&&(name=="href"||name=="src"))value=editor.stripBaseURL(value);}}else{value=root.style.cssText;};if(/(_moz|^$)/.test(value))continue;if(HTMLArea.is_ie&&root_tag=="li"&&name=="value"&&a.nodeValue==0)continue;html+=" "+name+'="'+HTMLArea.htmlEncode(value)+'"';};if(html!="")html+=closed?" />":">";};for(i=root.firstChild;i;i=i.nextSibling){if(/^li$/i.test(i.tagName)&&!/^[ou]l$/i.test(root.tagName))html +="<ul>" +HTMLArea.getHTMLWrapper(i,true,editor)+"</ul>";else html+=HTMLArea.getHTMLWrapper(i,true,editor);};if(outputRoot&&!closed)html+="</"+root_tag+">";break;case 3:html=/^(script|style)$/i.test(root.parentNode.tagName)?root.data:HTMLArea.htmlEncode(root.data);break;case 8:if(!editor.config.htmlRemoveComments)html="<!--"+root.data+"-->";break;case 4:html+='<![CDATA['+root.data+']]>';break;case 5:html+='&'+root.nodeValue+';';break;case 7:html+='<?'+root.target+' '+root.data+' ?>';break;default:break;};return html;};HTMLArea.getPrevNode=function(node){if(!node)return null;if(node.previousSibling)return node.previousSibling;if(node.parentNode)return node.parentNode;return null;};HTMLArea.getNextNode=function(node){if(!node)return null;if(node.nextSibling)return node.nextSibling;if(node.parentNode)return node.parentNode;return null;};HTMLArea.removeFromParent=function(el){if(!el.parentNode)return;var pN=el.parentNode;pN.removeChild(el);return el;};HTMLArea.prototype.stripBaseURL=function(string){var baseurl=this.config.baseURL;baseurl=baseurl.replace(/[^\/]+$/,'');var basere=new RegExp(baseurl);string=string.replace(basere,"");baseurl=baseurl.replace(/^(https?:\/\/[^\/]+)(.*)$/,'$1');basere=new RegExp(baseurl);return string.replace(basere,"");};String.prototype.trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');};HTMLArea._makeColor=function(v){if(typeof(v)!="number"){return v;};var r=v&0xFF;var g=(v>>8)&0xFF;var b=(v>>16)&0xFF;return "rgb("+r+","+g+","+b+")";};HTMLArea._colorToRgb=function(v){if(!v)return '';function hex(d){return(d<16)?("0"+d.toString(16)):d.toString(16);};if(typeof(v)=="number"){var r=v&0xFF;var g=(v>>8)&0xFF;var b=(v>>16)&0xFF;return "#"+hex(r)+hex(g)+hex(b);};if(v.substr(0,3)=="rgb"){var re=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/;if(v.match(re)){var r=parseInt(RegExp.$1);var g=parseInt(RegExp.$2);var b=parseInt(RegExp.$3);return "#"+hex(r)+hex(g)+hex(b);};return null;};if(v.substr(0,1)=="#"){return v;};return null;};HTMLArea._postback=function(url,data,handler,addParams,charset){if(typeof(charset)=="undefined")var charset="utf-8";var req=null;if(window.XMLHttpRequest)req=new XMLHttpRequest();else if(window.ActiveXObject){var success=false;for(var k=0;k<HTMLArea.MSXML_XMLHTTP_PROGIDS.length&&!success;k++){try{req=new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]);success=true;}catch(e){}}};if(req){var content='';for(var i in data){content+=(content.length?'&':'')+i+'='+encodeURIComponent(data[i]);};content+=(content.length?'&':'')+'charset='+charset;if(typeof(addParams)!="undefined")content+=addParams;if(url.substring(0,1)=='/'){var postUrl=_typo3_host_url+url;}else{var postUrl=_typo3_host_url+_editor_url+url;};function callBack(){if(req.readyState==4){if(req.status==200){if(typeof(handler)=='function')handler(req.responseText,req);HTMLArea._appendToLog("[HTMLArea::_postback]: Server response: "+req.responseText);}else{HTMLArea._appendToLog("ERROR [HTMLArea::_postback]: Unable to post "+postUrl+" . Server reported "+req.statusText);}}};req.onreadystatechange=callBack;function sendRequest(){HTMLArea._appendToLog("[HTMLArea::_postback]: Request: "+content);req.send(content);};req.open('POST',postUrl,true);req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');window.setTimeout(sendRequest,500);}};Dialog=function(url,action,init,width,height,opener,editor,scrollbars){Dialog._open(url,action,init,(width?width:100),(height?height:100),opener,editor,scrollbars);};Dialog._open=function(url,action,init,width,height,_opener,editor,scrollbars){if(typeof(Dialog._modal)=="object"&&typeof(Dialog._modal.close)=="function"){Dialog._modal.close();Dialog._modal=null;};var dlg=window.open(url,'hadialog',"toolbar=no,location=no,directories=no,menubar=no,width="+width+",height="+height+",scrollbars="+scrollbars+",resizable=yes,modal=yes,dependent=yes,top=100,left=100");var obj=new Object();obj.dialogWindow=dlg;Dialog._dialog=obj;Dialog._modal=dlg;Dialog._arguments=null;if(typeof(init)!="undefined"){Dialog._arguments=init;};function capwin(w){if(HTMLArea.is_gecko){w.addEventListener("focus",function(ev){Dialog._parentEvent(ev);},false);}else{HTMLArea._addEvent(w,"focus",function(ev){Dialog._parentEvent(ev);});};for(var i=0;i<w.frames.length;i++){capwin(w.frames[i]);}};capwin(window);function closeDialog(){if(Dialog._dialog&&Dialog._dialog.dialogWindow){Dialog._dialog.dialogWindow.close();Dialog._dialog=null;};if(dlg&&!dlg.closed){dlg.close();dlg=null;};return false;};Dialog._return=function(val){if(val&&action){action(val);};function relwin(w){HTMLArea._removeEvent(w,"focus",function(ev){Dialog._parentEvent(ev);});try{for(var i=0;i<w.frames.length;i++){relwin(w.frames[i]);}}catch(e){}};relwin(window);HTMLArea._removeEvent(window,"unload",closeDialog);Dialog._dialog=null;};HTMLArea._addEvent(dlg,"unload",function(){if(typeof(Dialog)!="undefined")Dialog._return(null);return false;});HTMLArea._addEvent(window,"unload",closeDialog);};Dialog._parentEvent=function(ev){if(Dialog._modal&&!Dialog._modal.closed){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;Dialog._modal.focus();HTMLArea._stopEvent(ev);};return false;};HTMLArea.prototype._popupDialog=function(url,action,init,width,height,_opener,scrollbars){if(typeof(_opener)=="undefined"||!_opener)var _opener=(this._iframe.contentWindow?this._iframe.contentWindow:window);if(typeof(scrollbars)=="undefined")var scrollbars="no";Dialog(this.popupURL(url),action,init,width,height,_opener,this,scrollbars);};HTMLArea.getElementById=function(tag,id){var el,i,objs=document.getElementsByTagName(tag);for(i=objs.length;--i>=0&&(el=objs[i]);){if(el.id==id)return el;};return null;};HTMLArea.edHidePopup=function(){Dialog._modal.close();setTimeout("if (typeof(browserWin) != 'undefined' && typeof(browserWin.focus) == 'function') browserWin.focus();",200);};var setRTEsizeByJS=function(divId,height,width){if(HTMLArea.is_gecko)height=height-25;else height=height-60;if(height>0)document.getElementById(divId).style.height=height+"px";if(HTMLArea.is_gecko)width="99%";else width="97%";document.getElementById(divId).style.width=width;};var lorem_ipsum=function(element,text){if(element.tagName.toLowerCase()=="textarea"&&element.id&&element.id.substr(0,7)=="RTEarea"){var editor=RTEarea[element.id.substr(7,8)]["editor"];editor.insertHTML(text);editor.updateToolbar();}};HTMLArea.initTimer=[];HTMLArea.onGenerateHandler=function(editorNumber){return(function(){document.getElementById('pleasewait'+editorNumber).style.display='none';document.getElementById('editorWrap'+editorNumber).style.visibility='visible';editorNumber=null;});};HTMLArea.initEditor=function(editorNumber){if(HTMLArea.checkSupportedBrowser()){document.getElementById('pleasewait'+editorNumber).style.display='block';document.getElementById('editorWrap'+editorNumber).style.visibility='hidden';if(HTMLArea.initTimer[editorNumber])window.clearTimeout(HTMLArea.initTimer[editorNumber]);if(!HTMLArea.is_loaded){HTMLArea.initTimer[editorNumber]=window.setTimeout("HTMLArea.initEditor("+editorNumber+");",150);}else{var RTE=RTEarea[editorNumber];var config=new HTMLArea.Config();config.toolbar=RTE["toolbar"];RTE["editor"]=new HTMLArea(RTE["id"],config);var editor=RTE["editor"];editor._typo3EditerNumber=editorNumber;editor._editorNumber=editorNumber;config=editor.config;config.buttons=RTE["buttons"];config.hideTableOperationsInToolbar=RTE["hideTableOperationsInToolbar"]?RTE["hideTableOperationsInToolbar"]:false;config.disableLayoutFieldsetInTableOperations=RTE["disableLayoutFieldsetInTableOperations"]?RTE["disableLayoutFieldsetInTableOperations"]:false;config.disableAlignmentFieldsetInTableOperations=RTE["disableAlignmentFieldsetInTableOperations"]?RTE["disableAlignmentFieldsetInTableOperations"]:false;config.disableSpacingFieldsetInTableOperations=RTE["disableSpacingFieldsetInTableOperations"]?RTE["disableSpacingFieldsetInTableOperations"]:false;config.disableBordersFieldsetInTableOperations=RTE["disableBordersFieldsetInTableOperations"]?RTE["disableBordersFieldsetInTableOperations"]:false;config.disableColorFieldsetInTableOperations=RTE["disableColorFieldsetInTableOperations"]?RTE["disableColorFieldsetInTableOperations"]:false;config.disablePCexamples=RTE["disablePCexamples"]?RTE["disablePCexamples"]:false;for(var plugin in RTE["plugin"]){if(RTE["plugin"][plugin]){editor.registerPlugin(plugin);}};if(RTE["defaultPageStyle"])config.defaultPageStyle=RTE["defaultPageStyle"];if(RTE["pageStyle"])config.pageStyle=RTE["pageStyle"];if(RTE["fontname"])config.FontName=RTE["fontname"];if(RTE["fontsize"])config.FontSize=RTE["fontsize"];if(RTE["colors"])config.colors=RTE["colors"];if(RTE["disableColorPicker"])config.disableColorPicker=RTE["disableColorPicker"];if(RTE["paragraphs"])config.FormatBlock=RTE["paragraphs"];config.width="auto";config.height="auto";config.sizeIncludesToolbar=true;config.fullPage=false;config.useHTTPS=RTE["useHTTPS"]?RTE["useHTTPS"]:false;config.disableEnterParagraphs=RTE["disableEnterParagraphs"]?RTE["disableEnterParagraphs"]:false;config.removeTrailingBR=RTE["removeTrailingBR"]?RTE["removeTrailingBR"]:false;config.keepButtonGroupTogether=(RTE["keepButtonGroupTogether"]&&HTMLArea.is_gecko&&!HTMLArea.is_wamcom&&!HTMLArea.is_opera)?RTE["keepButtonGroupTogether"]:false;config.useCSS=RTE["useCSS"]?RTE["useCSS"]:false;config.enableMozillaExtension=RTE["enableMozillaExtension"]?RTE["enableMozillaExtension"]:false;config.statusBar=RTE["statusBar"]?RTE["statusBar"]:false;config.cleanWordOnPaste=RTE["enableWordClean"]?true:false;config.htmlRemoveTags=RTE["htmlRemoveTags"]?RTE["htmlRemoveTags"]:null;config.htmlRemoveTagsAndContents=RTE["htmlRemoveTagsAndContents"]?RTE["htmlRemoveTagsAndContents"]:null;config.htmlRemoveComments=RTE["htmlRemoveComments"]?true:false;editor.onGenerate=HTMLArea.onGenerateHandler(editorNumber);editor.generate();return false;}}else{document.getElementById('pleasewait'+editorNumber).style.display='none';document.getElementById('editorWrap'+editorNumber).style.visibility='visible';}};
-
-
+if(typeof(_editor_url)=="string"){_editor_url=_editor_url.replace(/\x2f*$/,'/');}else{alert("WARNING: _editor_url is not set!");var _editor_url='';}
+if(typeof(_editor_skin)=="string")_editor_skin=_editor_skin.replace(/\x2f*$/,'/');else var _editor_skin=_editor_url+"skins/default/";if(typeof(_editor_CSS)!="string")var _editor_CSS=_editor_url+"skins/default/htmlarea.css";if(typeof(_editor_edited_content_CSS)!="string")var _editor_edited_content_CSS=_editor_skin+"htmlarea-edited-content.css";if(typeof(_editor_lang)=="string")_editor_lang=_editor_lang?_editor_lang.toLowerCase():"en";var HTMLArea=function(textarea,config){if(HTMLArea.checkSupportedBrowser()){if(typeof(config)=="undefined")this.config=new HTMLArea.Config();else this.config=config;this._htmlArea=null;this._textArea=textarea;this._editMode="wysiwyg";this.plugins={};this._timerToolbar=null;this._undoQueue=new Array();this._undoPos=-1;this._customUndo=true;this.doctype='';this.eventHandlers={};}};HTMLArea.agt=navigator.userAgent.toLowerCase();HTMLArea.is_opera=(HTMLArea.agt.indexOf("opera")!=-1);HTMLArea.is_ie=(HTMLArea.agt.indexOf("msie")!=-1)&&!HTMLArea.is_opera;HTMLArea.is_safari=(HTMLArea.agt.indexOf("webkit")!=-1);HTMLArea.is_gecko=(navigator.product=="Gecko")||HTMLArea.is_opera;HTMLArea.is_wamcom=(HTMLArea.agt.indexOf("wamcom")!=-1)||(HTMLArea.is_gecko&&HTMLArea.agt.indexOf("1.3")!=-1&&HTMLArea.agt.indexOf(".1.3")==-1);HTMLArea._debugMode=false;if(typeof(_editor_debug_mode)!="undefined")HTMLArea._debugMode=_editor_debug_mode;HTMLArea._appendToLog=function(str){if(HTMLArea._debugMode){var log=document.getElementById("HTMLAreaLog");if(log){log.appendChild(document.createTextNode(str));log.appendChild(document.createElement("br"));}}};HTMLArea._compressedScripts=false;if(typeof(_editor_compressed_scripts)!="undefined")HTMLArea._compressedScripts=_editor_compressed_scripts;HTMLArea.I18N=HTMLArea_langArray;HTMLArea.is_loaded=false;HTMLArea.onload=function(){HTMLArea.is_loaded=true;HTMLArea._appendToLog("All scripts successfully loaded.");};HTMLArea.loadTimer;HTMLArea._scripts=[];HTMLArea._scriptLoaded=[];HTMLArea._request=[];HTMLArea.loadScript=function(url,plugin){if(plugin)url=_editor_url+"/plugins/"+plugin+'/'+url;if(HTMLArea.is_opera)url=_typo3_host_url+url;if(HTMLArea._compressedScripts&&url.indexOf("compressed")==-1)url=url.replace(/\.js$/gi,"-compressed.js");HTMLArea._scripts.push(url);};HTMLArea.loadScript(RTEarea[0]["popupwin"]?RTEarea[0]["popupwin"]:_editor_url+"popupwin.js");if(HTMLArea.is_gecko)HTMLArea.loadScript(RTEarea[0]["htmlarea-gecko"]?RTEarea[0]["htmlarea-gecko"]:_editor_url+"htmlarea-gecko.js");if(HTMLArea.is_ie)HTMLArea.loadScript(RTEarea[0]["htmlarea-ie"]?RTEarea[0]["htmlarea-ie"]:_editor_url+"htmlarea-ie.js");HTMLArea.MSXML_XMLHTTP_PROGIDS=new Array("Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP");HTMLArea.XMLHTTPResponseHandler=function(i){return(function(){var url=HTMLArea._scripts[i];if(HTMLArea._request[i].readyState!=4)return;if(HTMLArea._request[i].status==200){try{eval(HTMLArea._request[i].responseText);HTMLArea._scriptLoaded[i]=true;i=null;}catch(e){HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get script "+url+": "+e);}}else{HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get "+url+" . Server reported "+HTMLArea._request[i].status);}});};HTMLArea._getScript=function(i,asynchronous,url){if(typeof(url)=="undefined")var url=HTMLArea._scripts[i];if(typeof(asynchronous)=="undefined")var asynchronous=true;if(window.XMLHttpRequest)HTMLArea._request[i]=new XMLHttpRequest();else if(window.ActiveXObject){var success=false;for(var k=0;k<HTMLArea.MSXML_XMLHTTP_PROGIDS.length&&!success;k++){try{HTMLArea._request[i]=new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]);success=true;}catch(e){}}
+if(!success)return false;}
+var request=HTMLArea._request[i];if(request){request.open("GET",url,asynchronous);if(asynchronous)request.onreadystatechange=HTMLArea.XMLHTTPResponseHandler(i);if(window.XMLHttpRequest)request.send(null);else if(window.ActiveXObject)request.send();if(!asynchronous){if(request.status==200)return request.responseText;else return'';}
+return true;}else{return false;}};HTMLArea.checkInitialLoad=function(){var scriptsLoaded=true;for(var i=HTMLArea._scripts.length;--i>=0;){scriptsLoaded=scriptsLoaded&&HTMLArea._scriptLoaded[i];}
+if(HTMLArea.loadTimer)window.clearTimeout(HTMLArea.loadTimer);if(scriptsLoaded){HTMLArea.is_loaded=true;HTMLArea._appendToLog("[HTMLArea::init]: All scripts successfully loaded.");HTMLArea._appendToLog("[HTMLArea::init]: Editor url set to: "+_editor_url);HTMLArea._appendToLog("[HTMLArea::init]: Editor skin CSS set to: "+_editor_CSS);HTMLArea._appendToLog("[HTMLArea::init]: Editor content skin CSS set to: "+_editor_edited_content_CSS);if(window.ActiveXObject){for(var i=HTMLArea._scripts.length;--i>=0;){HTMLArea._request[i].onreadystatechange=new Function();HTMLArea._request[i]=null;}}}else{HTMLArea.loadTimer=window.setTimeout("HTMLArea.checkInitialLoad();",200);return false;}};HTMLArea.init=function(){HTMLArea._eventCache=HTMLArea._eventCacheConstructor();if(window.XMLHttpRequest||window.ActiveXObject){try{var success=true;for(var i=HTMLArea._scripts.length;--i>=0&&success;)success=success&&HTMLArea._getScript(i);}catch(e){HTMLArea._appendToLog("ERROR [HTMLArea::init]: Unable to use XMLHttpRequest: "+e);}
+if(success){HTMLArea.checkInitialLoad();}else{if(HTMLArea.is_ie)window.setTimeout('if (window.document.getElementById("pleasewait1")) { window.document.getElementById("pleasewait1").innerHTML = HTMLArea.I18N.msg["ActiveX-required"]; } else { alert(HTMLArea.I18N.msg["ActiveX-required"]); };',200);}}else{if(HTMLArea.is_ie)alert(HTMLArea.I18N.msg["ActiveX-required"]);}};HTMLArea.RE_tagName=/(<\/|<)\s*([^ \t\n>]+)/ig;HTMLArea.RE_doctype=/(<!doctype((.|\n)*?)>)\n?/i;HTMLArea.RE_head=/<head>((.|\n)*?)<\/head>/i;HTMLArea.RE_body=/<body>((.|\n)*?)<\/body>/i;HTMLArea.Reg_body=new RegExp("<\/?(body)[^>]*>","gi");HTMLArea.Reg_entities=new RegExp("&amp;([0-9]+);","gi");HTMLArea.reservedClassNames=/htmlarea/;HTMLArea.RE_email=/([0-9a-z]+([a-z0-9_-]*[0-9a-z])*){1}(\.[0-9a-z]+([a-z0-9_-]*[0-9a-z])*)*@([0-9a-z]+([a-z0-9_-]*[0-9a-z])*\.)+[a-z]{2,9}/i;HTMLArea.RE_url=/(https?:\/\/)?(([a-z0-9_]+:[a-z0-9_]+@)?[a-z0-9_-]{2,}(\.[a-z0-9_-]{2,})+\.[a-z]{2,5}(:[0-9]+)?(\/\S+)*)/i;HTMLArea.Config=function(){this.version="3.0";this.width="auto";this.height="auto";this.statusBar=true;this.undoSteps=20;this.undoTimeout=500;this.sizeIncludesToolbar=true;this.fullPage=false;this.useHTTPS=false;this.useCSS=false;this.enableMozillaExtension=true;this.disableEnterParagraphs=false;this.removeTrailingBR=false;this.editedContentStyle=_editor_edited_content_CSS;this.pageStyle="";this.cleanWordOnPaste=true;this.makeLinkShowsTarget=true;this.htmlRemoveTags=null;this.htmlRemoveTagsAndContents=null;this.htmlRemoveComments=false;this.customTags=null;this.baseURL=document.baseURI||document.URL;if(this.baseURL&&this.baseURL.match(/(.*)\/([^\/]+)/))this.baseURL=RegExp.$1+"/";this.imgURL="images/";this.popupURL="popups/";this.btnList={Bold:["Bold","ed_format_bold",false,function(editor){editor.execCommand("Bold");}],Italic:["Italic","ed_format_italic",false,function(editor){editor.execCommand("Italic");}],Underline:["Underline","ed_format_underline",false,function(editor){editor.execCommand("Underline");}],StrikeThrough:["Strikethrough","ed_format_strike",false,function(editor){editor.execCommand("StrikeThrough");}],Subscript:["Subscript","ed_format_sub",false,function(editor){editor.execCommand("Subscript");}],Superscript:["Superscript","ed_format_sup",false,function(editor){editor.execCommand("Superscript");}],JustifyLeft:["Justify Left","ed_align_left.gif",false,function(editor){editor.execCommand("JustifyLeft");}],JustifyCenter:["Justify Center","ed_align_center.gif",false,function(editor){editor.execCommand("JustifyCenter");}],JustifyRight:["Justify Right","ed_align_right.gif",false,function(editor){editor.execCommand("JustifyRight");}],JustifyFull:["Justify Full","ed_align_justify.gif",false,function(editor){editor.execCommand("JustifyFull");}],InsertOrderedList:["Ordered List","ed_list_num.gif",false,function(editor){editor.execCommand("InsertOrderedList");}],InsertUnorderedList:["Bulleted List","ed_list_bullet",false,function(editor){editor.execCommand("InsertUnorderedList");}],Outdent:["Decrease Indent","ed_indent_less.gif",false,function(editor){editor.execCommand("Outdent");}],Indent:["Increase Indent","ed_indent_more.gif",false,function(editor){editor.execCommand("Indent");}],ForeColor:["Font Color","ed_color_fg.gif",false,function(editor){editor.execCommand("ForeColor");}],HiliteColor:["Background Color","ed_color_bg.gif",false,function(editor){editor.execCommand("HiliteColor");}],InsertHorizontalRule:["Horizontal Rule","ed_hr.gif",false,function(editor){editor.execCommand("InsertHorizontalRule");}],CreateLink:["Insert Web Link","ed_link.gif",false,function(editor){editor.execCommand("CreateLink",true);},"a",false,true],InsertImage:["Insert/Modify Image","ed_image.gif",false,function(editor){editor.execCommand("InsertImage");}],InsertTable:["Insert Table","insert_table.gif",false,function(editor){editor.execCommand("InsertTable");}],HtmlMode:["Toggle HTML Source","ed_html.gif",true,function(editor){editor.execCommand("HtmlMode");}],SelectAll:["SelectAll","",true,function(editor){editor.execCommand("SelectAll");},null,true,false],SplitBlock:["Toggle Container Block","ed_splitblock.gif",false,function(editor){editor.execCommand("SplitBlock");}],About:["About this editor","ed_about.gif",true,function(editor){editor.execCommand("About");}],Undo:["Undoes your last action","ed_undo.gif",false,function(editor){editor.execCommand("Undo");}],Redo:["Redoes your last action","ed_redo.gif",false,function(editor){editor.execCommand("Redo");}],Cut:["Cut selection","ed_cut.gif",false,function(editor,command,obj){editor.execCommand("Cut");}],Copy:["Copy selection","ed_copy.gif",false,function(editor,command,obj){editor.execCommand("Copy");}],Paste:["Paste from clipboard","ed_paste.gif",false,function(editor,command,obj){editor.execCommand("Paste");}],SelectAll:["SelectAll","",true,function(editor){editor.execCommand("SelectAll");},null,true,false],LeftToRight:["Direction left to right","ed_left_to_right.gif",false,function(editor){editor.execCommand("LeftToRight");}],RightToLeft:["Direction right to left","ed_right_to_left.gif",false,function(editor){editor.execCommand("RightToLeft");}]};this.hotKeyList={a:"SelectAll",b:"Bold",i:"Italic",u:"Underline",s:"StrikeThrough",l:"JustifyLeft",e:"JustifyCenter",r:"JustifyRight",j:"JustifyFull",n:"FormatBlock",v:"Paste",0:"CleanWord",z:"Undo",y:"Redo"};for(var i in this.btnList){var btn=this.btnList[i];if(typeof(HTMLArea.I18N.tooltips[i.toLowerCase()])!="undefined")btn[0]=HTMLArea.I18N.tooltips[i.toLowerCase()];if(typeof(btn[1])=="string")btn[1]=_editor_skin+this.imgURL+btn[1];else btn[1][0]=_editor_skin+this.imgURL+btn[1][0];}
+this.customSelects={};};HTMLArea.Config.prototype.registerButton=function(id,tooltip,image,textMode,action,context,hide,selection){var the_id;switch(typeof(id)){case"string":the_id=id;break;case"object":the_id=id.id;break;default:HTMLArea._appendToLog("ERROR [HTMLArea.Config::registerButton]: invalid arguments");return false;}
+if(typeof(this.customSelects[the_id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerButton]: A dropdown with the same ID "+id+" already exists.");if(typeof(this.btnList[the_id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerButton]: A button with the same ID "+id+" already exists.");switch(typeof(id)){case"string":if(typeof(hide)=="undefined")var hide=false;if(typeof(selection)=="undefined")var selection=false;this.btnList[id]=[tooltip,image,textMode,action,context,hide,selection];break;case"object":if(typeof(id.hide)=="undefined")id.hide=false;if(typeof(id.selection)=="undefined")id.selection=false;this.btnList[id.id]=[id.tooltip,id.image,id.textMode,id.action,id.context,id.hide,id.selection];break;}};HTMLArea.Config.prototype.registerDropdown=function(object){if(typeof(this.customSelects[object.id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerDropdown]: A dropdown with the same ID "+object.id+" already exists.");if(typeof(this.btnList[object.id])!="undefined")HTMLArea._appendToLog("WARNING [HTMLArea.Config::registerDropdown]: A button with the same ID "+object.id+" already exists.");this.customSelects[object.id]=object;};HTMLArea.setButtonStatus=function(id,newval){var oldval=this[id];var el=document.getElementById(this.elementId);if(oldval!=newval){switch(id){case"enabled":if(newval){if(!HTMLArea.is_wamcom){HTMLArea._removeClass(el,"buttonDisabled");HTMLArea._removeClass(el.parentNode,"buttonDisabled");}
+el.disabled=false;}else{if(!HTMLArea.is_wamcom){HTMLArea._addClass(el,"buttonDisabled");HTMLArea._addClass(el.parentNode,"buttonDisabled");}
+el.disabled=true;}
+break;case"active":if(newval){HTMLArea._addClass(el,"buttonPressed");HTMLArea._addClass(el.parentNode,"buttonPressed");}else{HTMLArea._removeClass(el,"buttonPressed");HTMLArea._removeClass(el.parentNode,"buttonPressed");}
+break;}
+this[id]=newval;}};HTMLArea.newLine=function(toolbar){tb_line=document.createElement("ul");tb_line.className="tb-line";toolbar.appendChild(tb_line);return tb_line;};HTMLArea.addTbElement=function(element,tb_line,first_cell_on_line){var tb_cell=document.createElement("li");if(first_cell_on_line)tb_cell.className="tb-first-cell";else tb_cell.className="tb-cell";HTMLArea._addClass(tb_cell,element.className);tb_line.appendChild(tb_cell);tb_cell.appendChild(element);if(element.style.display=="none"){tb_cell.style.display="none";if(HTMLArea._hasClass(tb_line,"tb-group"))tb_line.style.display="none";if(HTMLArea._hasClass(tb_cell.previousSibling,"separator"))tb_cell.previousSibling.style.display="none";}
+return false;};HTMLArea.addTbGroup=function(tb_line,first_cell_on_line){var tb_group=document.createElement("ul");tb_group.className="tb-group";HTMLArea.addTbElement(tb_group,tb_line,first_cell_on_line);return tb_group;};HTMLArea.prototype.createSelect=function(txt,tb_line,first_cell_on_line,labelObj){var options=null,cmd=null,context=null,tooltip="",newObj={created:false,el:null,first:first_cell_on_line,labelUsed:false};switch(txt){case"FontSize":case"FontName":case"FormatBlock":options=this.config[txt];tooltip=HTMLArea.I18N.tooltips[txt.toLowerCase()];cmd=txt;break;default:cmd=txt;var dropdown=this.config.customSelects[cmd];if(typeof(dropdown)!="undefined"){options=dropdown.options;context=dropdown.context;if(typeof(dropdown.tooltip)!="undefined")tooltip=dropdown.tooltip;}
+break;}
+if(options){newObj["el"]=document.createElement("select");newObj["el"].className="select";newObj["el"].title=tooltip;newObj["el"].id=this._editorNumber+"-"+txt;newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);var obj={name:txt,elementId:newObj["el"].id,enabled:true,text:false,cmd:cmd,state:HTMLArea.setButtonStatus,context:context,editorNumber:this._editorNumber};this._toolbarObjects[txt]=obj;newObj["el"]._obj=obj;if(labelObj["labelRef"]){labelObj["el"].htmlFor=newObj["el"].id;newObj["labelUsed"]=true;}
+HTMLArea._addEvent(newObj["el"],"change",HTMLArea.toolBarButtonHandler);for(var i in options){var op=document.createElement("option");op.innerHTML=i;op.value=options[i];if(txt=="FontName"&&!this.config.disablePCexamples){if(HTMLArea.is_gecko)op.setAttribute("style","font-family:"+op.value+";");else op.style.cssText="font-family:"+op.value+";";}
+newObj["el"].appendChild(op);}
+newObj["created"]=true;}
+return newObj;};HTMLArea.prototype.createButton=function(txt,tb_line,first_cell_on_line,labelObj){var btn=null,btnImg=null,newObj={created:false,el:null,first:first_cell_on_line,labelUsed:false};switch(txt){case"separator":newObj["el"]=document.createElement("div");newObj["el"].className="separator";newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);newObj["created"]=true;break;case"space":newObj["el"]=document.createElement("div");newObj["el"].className="space";newObj["el"].innerHTML="&nbsp;";newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);newObj["created"]=true;break;case"TextIndicator":newObj["el"]=document.createElement("div");newObj["el"].appendChild(document.createTextNode("A"));newObj["el"].className="indicator";newObj["el"].title=HTMLArea.I18N.tooltips.textindicator;newObj["el"].id=this._editorNumber+"-"+txt;newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);var obj={name:txt,elementId:newObj["el"].id,enabled:true,active:false,text:false,cmd:"TextIndicator",state:HTMLArea.setButtonStatus};this._toolbarObjects[txt]=obj;newObj["created"]=true;break;default:btn=this.config.btnList[txt];}
+if(!newObj["created"]&&btn){newObj["el"]=document.createElement("button");newObj["el"].title=btn[0];newObj["el"].className="button";newObj["el"].id=this._editorNumber+"-"+txt;if(btn[5])newObj["el"].style.display="none";newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);var obj={name:txt,elementId:newObj["el"].id,enabled:true,active:false,text:btn[2],cmd:btn[3],state:HTMLArea.setButtonStatus,context:btn[4]||null,selection:btn[6],editorNumber:this._editorNumber};this._toolbarObjects[txt]=obj;newObj["el"]._obj=obj;if(labelObj["labelRef"]){labelObj["el"].htmlFor=newObj["el"].id;newObj["labelUsed"]=true;}
+HTMLArea._addEvents(newObj["el"],["mouseover","mouseout","mousedown","click"],HTMLArea.toolBarButtonHandler);if(typeof(btn[1])!="string"&&HTMLArea.is_ie){var btnImgContainer=document.createElement("div");btnImgContainer.className="buttonImgContainer";btnImgContainer.innerHTML='<img src="'+btn[1][0]+'" style="position: relative; top: -'+(18*(btn[1][1]+1))+'px; left: -'+(18*(btn[1][2]+1))+'px;" alt="'+btn[0]+'" />';newObj["el"].appendChild(btnImgContainer);}else{newObj["el"].className+=" "+txt;if(this.plugins["TYPO3Browsers"]&&(txt=="CreateLink"||txt=="InsertImage"))newObj["el"].className+="-TYPO3Browsers";}
+newObj["created"]=true;}
+return newObj;};HTMLArea.createLabel=function(txt,tb_line,first_cell_on_line){var newObj={created:false,el:null,labelRef:false,first:first_cell_on_line};if(/^([IT])\[(.*?)\]/.test(txt)){var l7ed=RegExp.$1=="I";var label=RegExp.$2;if(l7ed)label=HTMLArea.I18N.dialogs[label];newObj["el"]=document.createElement("label");newObj["el"].className="label";newObj["el"].innerHTML=label;newObj["labelRef"]=true;newObj["created"]=true;newObj["first"]=HTMLArea.addTbElement(newObj["el"],tb_line,first_cell_on_line);}
+return newObj;};HTMLArea.prototype._createToolbar=function(){var j,k,code,n=this.config.toolbar.length,m,tb_line=null,tb_group=null,first_cell_on_line=true,labelObj=new Object(),tbObj=new Object();var toolbar=document.createElement("div");this._toolbar=toolbar;toolbar.className="toolbar";toolbar.unselectable="1";this._toolbarObjects=new Object();for(j=0;j<n;++j){tb_line=HTMLArea.newLine(toolbar);if(!this.config.keepButtonGroupTogether)HTMLArea._addClass(tb_line,"free-float");first_cell_on_line=true;tb_group=null;var group=this.config.toolbar[j];m=group.length;for(k=0;k<m;++k){code=group[k];if(code=="linebreak"){tb_line=HTMLArea.newLine(toolbar);if(!this.config.keepButtonGroupTogether)HTMLArea._addClass(tb_line,"free-float");first_cell_on_line=true;tb_group=null;}else{if((code=="separator"||first_cell_on_line)&&this.config.keepButtonGroupTogether){tb_group=HTMLArea.addTbGroup(tb_line,first_cell_on_line);first_cell_on_line=false;}
+created=false;if(/^([IT])\[(.*?)\]/.test(code)){labelObj=HTMLArea.createLabel(code,(tb_group?tb_group:tb_line),first_cell_on_line);created=labelObj["created"];first_cell_on_line=labelObj["first"];}
+if(!created){tbObj=this.createButton(code,(tb_group?tb_group:tb_line),first_cell_on_line,labelObj);created=tbObj["created"];first_cell_on_line=tbObj["first"];if(tbObj["labelUsed"])labelObj["labelRef"]=false;}
+if(!created){tbObj=this.createSelect(code,(tb_group?tb_group:tb_line),first_cell_on_line,labelObj);created=tbObj["created"];first_cell_on_line=tbObj["first"];if(tbObj["labelUsed"])labelObj["labelRef"]=false;}
+if(!created)HTMLArea._appendToLog("ERROR [HTMLArea::createToolbar]: Unknown toolbar item: "+code);}}}
+tb_line=HTMLArea.newLine(toolbar);this._htmlArea.appendChild(toolbar);};HTMLArea.toolBarButtonHandler=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;while(target.tagName.toLowerCase()=="img"||target.tagName.toLowerCase()=="div")target=target.parentNode;var obj=target._obj;var editorNumber=obj["editorNumber"];var editor=RTEarea[editorNumber]["editor"];if(obj.enabled){switch(ev.type){case"mouseover":HTMLArea._addClass(target,"buttonHover");HTMLArea._addClass(target.parentNode,"buttonHover");break;case"mouseout":HTMLArea._removeClass(target,"buttonHover");HTMLArea._removeClass(target.parentNode,"buttonHover");HTMLArea._removeClass(target,"buttonActive");HTMLArea._removeClass(target.parentNode,"buttonActive");if(obj.active){HTMLArea._addClass(target,"buttonPressed");HTMLArea._addClass(target.parentNode,"buttonPressed");}
+break;case"mousedown":HTMLArea._addClass(target,"buttonActive");HTMLArea._addClass(target.parentNode,"buttonActive");HTMLArea._removeClass(target,"buttonPressed");HTMLArea._removeClass(target.parentNode,"buttonPressed");HTMLArea._stopEvent(ev);break;case"click":HTMLArea._removeClass(target,"buttonActive");HTMLArea._removeClass(target.parentNode,"buttonActive");HTMLArea._removeClass(target,"buttonHover");HTMLArea._removeClass(target.parentNode,"buttonHover");obj.cmd(editor,obj.name,obj);HTMLArea._stopEvent(ev);break;case"change":editor.focusEditor();var value=target.options[target.selectedIndex].value;switch(obj.name){case"FontName":case"FontSize":editor.execCommand(obj.name,false,value);break;case"FormatBlock":(HTMLArea.is_ie||HTMLArea.is_safari)&&(value="<"+value+">");editor.execCommand(obj.name,false,value);break;default:var dropdown=editor.config.customSelects[obj.name];if(typeof(dropdown)!="undefined")dropdown.action(editor);else HTMLArea._appendToLog("ERROR [HTMLArea::toolBarButtonHandler]: Combo box "+obj.name+" not registered.");}}}};HTMLArea.prototype._createStatusBar=function(){var statusBar=document.createElement("div");this._statusBar=statusBar;statusBar.className="statusBar";if(!this.config.statusBar)statusBar.style.display="none";var statusBarTree=document.createElement("span");this._statusBarTree=statusBarTree;statusBarTree.className="statusBarTree";statusBar.appendChild(statusBarTree);statusBarTree.appendChild(document.createTextNode(HTMLArea.I18N.msg["Path"]+": "));this._htmlArea.appendChild(statusBar);};HTMLArea.prototype.generate=function(){var textarea=this._textArea;if(typeof(textarea)=="string"){textarea=HTMLArea.getElementById("textarea",textarea);this._textArea=textarea;}
+textarea.style.display="none";var htmlarea=document.createElement("div");htmlarea.className="htmlarea";htmlarea.style.width=textarea.style.width;this._htmlArea=htmlarea;textarea.parentNode.insertBefore(htmlarea,textarea);if(textarea.form){var f=textarea.form;if(typeof(f.onreset)=="function"){var funcref=f.onreset;if(typeof(f.__msh_prevOnReset)=="undefined")f.__msh_prevOnReset=[];f.__msh_prevOnReset.push(funcref);}
+f._editorNumber=this._editorNumber;HTMLArea._addEvent(f,"reset",HTMLArea.resetHandler);}
+this._createToolbar();HTMLArea._appendToLog("[HTMLArea::generate]: Toolbar successfully created.");var iframe=document.createElement("iframe");if(HTMLArea.is_ie||HTMLArea.is_safari||HTMLArea.is_wamcom){iframe.setAttribute("src",_editor_url+"popups/blank.html");}else if(HTMLArea.is_opera){iframe.setAttribute("src",_typo3_host_url+_editor_url+"popups/blank.html");}else{iframe.setAttribute("src","javascript:void(0);");}
+iframe.className="editorIframe";if(!this.config.statusBar)iframe.className+=" noStatusBar";htmlarea.appendChild(iframe);this._iframe=iframe;this._createStatusBar();this.sizeIframe(2);HTMLArea._appendToLog("[HTMLArea::generate]: Editor iframe successfully created.");this.initIframe();return this;};HTMLArea.prototype.sizeIframe=function(diff){var height=(this.config.height=="auto"?(this._textArea.style.height):this.config.height);var textareaHeight=height;this.nested=RTEarea[this._editorNumber].tceformsNested;var parentElements=(this.nested.sorted&&this.nested.sorted.length?[].concat(this.nested.sorted):[]);var dimensions=this.accessParentElements(parentElements,'this.getDimensions()');if(height.indexOf("%")==-1){height=parseInt(height)-diff;if(this.config.sizeIncludesToolbar){this._initialToolbarOffsetHeight=dimensions.toolbar.height;height-=dimensions.toolbar.height;height-=dimensions.statusbar.height;}
+if(height<0)height=0;textareaHeight=(height-4);if(textareaHeight<0)textareaHeight=0;height+="px";textareaHeight+="px";}
+this._iframe.style.height=height;this._textArea.style.height=textareaHeight;var textareaWidth=(this.config.width=="auto"?this._textArea.style.width:this.config.width);var iframeWidth=textareaWidth;if(textareaWidth.indexOf("%")==-1){iframeWidth=parseInt(textareaWidth)+"px";textareaWidth=parseInt(textareaWidth)-diff;if(textareaWidth<0)textareaWidth=0;textareaWidth+='px';}
+this._iframe.style.width="100%";if(HTMLArea.is_opera)this._iframe.style.width=iframeWidth;this._textArea.style.width=textareaWidth;};HTMLArea.prototype.getDimensions=function(){return{toolbar:{width:this._toolbar.offsetWidth,height:this._toolbar.offsetHeight},statusbar:{width:this._statusBar.offsetWidth,height:this._statusBar.offsetHeight}};};HTMLArea.prototype.accessParentElements=function(parentElements,callbackFunc){var result={};if(parentElements.length){var currentElement=parentElements.pop();var elementStyle=document.getElementById(currentElement).style;var actionRequired=(elementStyle.display=='none'?true:false);if(actionRequired){var originalVisibility=elementStyle.visibility;var originalPosition=elementStyle.position;elementStyle.visibility='hidden';elementStyle.position='absolute';elementStyle.display='';}
+result=this.accessParentElements(parentElements,callbackFunc);if(actionRequired){elementStyle.display='none';elementStyle.position=originalPosition;elementStyle.visibility=originalVisibility;}}else{result=eval(callbackFunc);}
+return result;};HTMLArea.initIframe=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor.initIframe();};HTMLArea.prototype.initIframe=function(){if(this._initIframeTimer)window.clearTimeout(this._initIframeTimer);if(!this._iframe||(!this._iframe.contentWindow&&!this._iframe.contentDocument)){this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",50);return false;}else if(this._iframe.contentWindow){if(!this._iframe.contentWindow.document||!this._iframe.contentWindow.document.documentElement){this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",50);return false;}}else if(!this._iframe.contentDocument.documentElement){this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",50);return false;}
+var doc=this._iframe.contentWindow?this._iframe.contentWindow.document:this._iframe.contentDocument;this._doc=doc;if(!this.config.fullPage){var head=doc.getElementsByTagName("head")[0];if(!head){head=doc.createElement("head");doc.documentElement.appendChild(head);}
+if(this.config.baseURL&&!HTMLArea.is_opera){var base=doc.getElementsByTagName("base")[0];if(!base){base=doc.createElement("base");base.href=this.config.baseURL;head.appendChild(base);}
+HTMLArea._appendToLog("[HTMLArea::initIframe]: Iframe baseURL set to: "+this.config.baseURL);}
+var link0=doc.getElementsByTagName("link")[0];if(!link0){link0=doc.createElement("link");link0.rel="stylesheet";link0.href=this.config.editedContentStyle;head.appendChild(link0);HTMLArea._appendToLog("[HTMLArea::initIframe]: Skin CSS set to: "+this.config.editedContentStyle);}
+if(this.config.defaultPageStyle){var link=doc.getElementsByTagName("link")[1];if(!link){link=doc.createElement("link");link.rel="stylesheet";link.href=this.config.defaultPageStyle;head.appendChild(link);}
+HTMLArea._appendToLog("[HTMLArea::initIframe]: Override CSS set to: "+this.config.defaultPageStyle);}
+if(this.config.pageStyle){var link=doc.getElementsByTagName("link")[2];if(!link){link=doc.createElement("link");link.rel="stylesheet";link.href=this.config.pageStyle;head.appendChild(link);}
+HTMLArea._appendToLog("[HTMLArea::initIframe]: Content CSS set to: "+this.config.pageStyle);}}else{var html=this._textArea.value;this.setFullHTML(html);}
+HTMLArea._appendToLog("[HTMLArea::initIframe]: Editor iframe head successfully initialized.");this.stylesLoaded();};HTMLArea.stylesLoaded=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor.stylesLoaded();};HTMLArea.prototype.stylesLoaded=function(){var doc=this._doc;var docWellFormed=true;if(this._stylesLoadedTimer)window.clearTimeout(this._stylesLoadedTimer);var stylesAreLoaded=true;var errorText='';var rules;for(var rule=0;rule<doc.styleSheets.length;rule++){if(HTMLArea.is_gecko)try{rules=doc.styleSheets[rule].cssRules;}catch(e){stylesAreLoaded=false;errorText=e;}
+if(HTMLArea.is_ie)try{rules=doc.styleSheets[rule].rules;}catch(e){stylesAreLoaded=false;errorText=e;}
+if(HTMLArea.is_ie)try{rules=doc.styleSheets[rule].imports;}catch(e){stylesAreLoaded=false;errorText=e;}}
+if(!stylesAreLoaded&&!HTMLArea.is_wamcom){HTMLArea._appendToLog("[HTMLArea::initIframe]: Failed attempt at loading stylesheets: "+errorText+" Retrying...");this._stylesLoadedTimer=window.setTimeout("HTMLArea.stylesLoaded("+this._editorNumber+");",100);return false;}
+HTMLArea._appendToLog("[HTMLArea::initIframe]: Stylesheets successfully loaded.");if(!this.config.fullPage){doc.body.style.borderWidth="0px";doc.body.className="htmlarea-content-body";try{doc.body.innerHTML=this._textArea.value;}catch(e){HTMLArea._appendToLog("[HTMLArea::initIframe]: The HTML document is not well-formed.");alert(HTMLArea.I18N.msg["HTML-document-not-well-formed"]);docWellFormed=false;}}
+if(this._customUndo)this._timerUndo=window.setInterval("HTMLArea.undoTakeSnapshot("+this._editorNumber+");",this.config.undoTimeout);if(docWellFormed){if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera&&!this._initEditMode())return false;if(HTMLArea.is_opera)doc.designMode="on";if(HTMLArea.is_ie||HTMLArea.is_safari)doc.body.contentEditable=true;if(HTMLArea.is_ie)doc.selection.empty();this._editMode="wysiwyg";if(doc.body.contentEditable||doc.designMode=="on")HTMLArea._appendToLog("[HTMLArea::initIframe]: Design mode successfully set.");}else{this._editMode="textmode";this.setMode("docnotwellformedmode");HTMLArea._appendToLog("[HTMLArea::initIframe]: Design mode could not be set.");}
+doc._editorNo=this._editorNumber;if(HTMLArea.is_ie)doc.documentElement._editorNo=this._editorNumber;HTMLArea._addEvents((HTMLArea.is_ie?doc.body:doc),["keydown","keypress","mousedown","mouseup","drag"],HTMLArea._editorEvent,true);if(!HTMLArea.hasUnloadHandler){HTMLArea.hasUnloadHandler=true;HTMLArea._addEvent((this._iframe.contentWindow?this._iframe.contentWindow:this._iframe.contentDocument),"unload",HTMLArea.removeEditorEvents);}
+if(this.config.cleanWordOnPaste)HTMLArea._addEvents((HTMLArea.is_ie?doc.body:doc),["paste","dragdrop","drop"],HTMLArea.cleanWordOnPaste,true);window.setTimeout("HTMLArea.generatePlugins("+this._editorNumber+");",100);};HTMLArea.generatePlugins=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor._hasPluginWithOnKeyPressHandler=false;for(var i in editor.plugins){var plugin=editor.plugins[i].instance;if(typeof(plugin.onGenerate)=="function")plugin.onGenerate();if(typeof(plugin.onGenerateOnce)=="function"){plugin.onGenerateOnce();plugin.onGenerateOnce=null;}
+if(typeof(plugin.onKeyPress)=="function"){editor._hasPluginWithOnKeyPressHandler=true;}}
+if(typeof(editor.onGenerate)=="function"){editor.onGenerate();editor.onGenerate=null;}
+HTMLArea._appendToLog("[HTMLArea::initIframe]: All plugins successfully generated.");editor.updateToolbar();};HTMLArea.resetHandler=function(ev){if(!ev)var ev=window.event;var form=(ev.target)?ev.target:ev.srcElement;var editor=RTEarea[form._editorNumber]["editor"];editor.setHTML(editor._textArea.value);editor.updateToolbar();var a=form.__msh_prevOnReset;if(typeof(a)!="undefined"){for(var i=a.length;--i>=0;){a[i]();}}};HTMLArea.removeEditorEvents=function(ev){if(!ev)var ev=window.event;HTMLArea._stopEvent(ev);if(Dialog._modal){Dialog._modal.close();Dialog._modal=null;}
+for(var ed=RTEarea.length;--ed>0;){var editor=RTEarea[ed]["editor"];if(editor){RTEarea[ed]["editor"]=null;editor._textArea.value=editor.getHTML();window.clearInterval(editor._timerUndo);editor._undoQueue=null;if(HTMLArea.is_ie)HTMLArea._cleanup(editor);}}
+if(HTMLArea._eventCache&&!HTMLArea.is_opera)HTMLArea._eventCache.flush();};HTMLArea.prototype.setMode=function(mode){if(typeof(mode)=="undefined")var mode=(this._editMode=="textmode")?"wysiwyg":"textmode";switch(mode){case"textmode":case"docnotwellformedmode":this._textArea.value=this.getHTML();this._iframe.style.display="none";this._textArea.style.display="block";if(this.config.statusBar){var statusBarTextMode=document.createElement("span");statusBarTextMode.className="statusBarTextMode";statusBarTextMode.appendChild(document.createTextNode(HTMLArea.I18N.msg["TEXT_MODE"]));this._statusBar.innerHTML='';this._statusBar.appendChild(statusBarTextMode);}
+this._editMode="textmode";break;case"wysiwyg":if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)this._doc.designMode="off";try{if(!this.config.fullPage)this._doc.body.innerHTML=this.getHTML();else this.setFullHTML(this.getHTML());}catch(e){alert(HTMLArea.I18N.msg["HTML-document-not-well-formed"]);break;}
+this._textArea.style.display="none";this._iframe.style.display="block";if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)this._doc.designMode="on";if(this.config.statusBar){this._statusBar.innerHTML="";this._statusBar.appendChild(this._statusBarTree);}
+this._editMode="wysiwyg";break;default:return false;}
+if(!(mode=="docnotwellformedmode"))this.focusEditor();for(var i in this.plugins){var plugin=this.plugins[i].instance;if(typeof(plugin.onMode)=="function"){plugin.onMode(mode);}}};HTMLArea.prototype.setFullHTML=function(html){var save_multiline=RegExp.multiline;RegExp.multiline=true;if(html.match(HTMLArea.RE_doctype)){this.setDoctype(RegExp.$1);html=html.replace(HTMLArea.RE_doctype,"");};RegExp.multiline=save_multiline;if(!HTMLArea.is_ie){if(html.match(HTMLArea.RE_head))this._doc.getElementsByTagName("head")[0].innerHTML=RegExp.$1;if(html.match(HTMLArea.RE_body))this._doc.getElementsByTagName("body")[0].innerHTML=RegExp.$1;}else{var html_re=/<html>((.|\n)*?)<\/html>/i;html=html.replace(html_re,"$1");this._doc.open();this._doc.write(html);this._doc.close();this._doc.body.contentEditable=true;return true;};};HTMLArea.prototype.registerPlugin=function(){var plugin=arguments[0];var args=[];for(var i=1;i<arguments.length;++i){args.push(arguments[i]);}
+this.registerPlugin2(plugin,args);};HTMLArea.prototype.registerPlugin2=function(plugin,args){if(typeof(plugin)=="string"){var plugin=eval(plugin);};if(typeof(plugin)=="undefined"){HTMLArea._appendToLog("ERROR [HTMLArea::registerPlugin]: Can't register undefined plugin.");return false;};var obj=new plugin(this,args);if(obj){var clone={};var info=plugin._pluginInfo;for(var i in info){clone[i]=info[i];}
+clone.instance=obj;clone.args=args;this.plugins[plugin._pluginInfo.name]=clone;}else{HTMLArea._appendToLog("ERROR [HTMLArea::registerPlugin]: Can't register plugin "+plugin.toString()+".");};};HTMLArea.loadPlugin=function(pluginName,noLangFile,url){if(typeof(url)=="undefined"){var dir=_editor_url+"plugins/"+pluginName;var plugin=pluginName.replace(/([a-z])([A-Z])([a-z])/g,"$1"+"-"+"$2"+"$3").toLowerCase()+".js";var plugin_file=dir+"/"+plugin;HTMLArea.loadScript(plugin_file);if(typeof(noLangFile)=="undefined"||!noLangFile){var plugin_lang=dir+"/lang/"+_editor_lang+".js";HTMLArea._scripts.push(plugin_lang);}}else{HTMLArea.loadScript(url);}};HTMLArea.loadStyle=function(style,plugin,url){if(typeof(url)=="undefined"){var url=_editor_url||'';if(typeof(plugin)!="undefined"){url+="plugins/"+plugin+"/";}
+url+=style;if(/^\//.test(style)){url=style;}}
+var head=document.getElementsByTagName("head")[0];var link=document.createElement("link");link.rel="stylesheet";link.href=url;head.appendChild(link);};HTMLArea.loadStyle('','',_editor_CSS);HTMLArea.prototype.imgURL=function(file,plugin){if(typeof(plugin)=="undefined")return _editor_skin+this.config.imgURL+file;else return _editor_skin+this.config.imgURL+plugin+"/"+file;};HTMLArea.prototype.popupURL=function(file){var url="";if(file.match(/^plugin:\/\/(.*?)\/(.*)/)){var plugin=RegExp.$1;var popup=RegExp.$2;if(!/\.html$/.test(popup))popup+=".html";url=_editor_url+"plugins/"+plugin+"/popups/"+popup;}else{url=_typo3_host_url+_editor_url+this.config.popupURL+file;}
+return url;};HTMLArea.getInnerText=function(el){var txt='',i;for(i=el.firstChild;i;i=i.nextSibling){if(i.nodeType==3)txt+=i.data;else if(i.nodeType==1)txt+=HTMLArea.getInnerText(i);}
+return txt;};HTMLArea._wordClean=function(editor,html){function clearClass(node){var newc=node.className.replace(/(^|\s)mso.*?(\s|$)/ig,' ');if(newc!=node.className){node.className=newc;if(!/\S/.test(node.className))node.removeAttribute("className");}}
+function clearStyle(node){if(HTMLArea.is_ie)var style=node.style.cssText;else var style=node.getAttribute("style");if(style){var declarations=style.split(/\s*;\s*/);for(var i=declarations.length;--i>=0;){if(/^mso|^tab-stops/i.test(declarations[i])||/^margin\s*:\s*0..\s+0..\s+0../i.test(declarations[i]))declarations.splice(i,1);}
+node.setAttribute("style",declarations.join("; "));}}
+function stripTag(el){if(HTMLArea.is_ie){el.outerHTML=HTMLArea.htmlEncode(el.innerText);}else{var txt=document.createTextNode(HTMLArea.getInnerText(el));el.parentNode.insertBefore(txt,el);el.parentNode.removeChild(el);}}
+function checkEmpty(el){if(/^(span|b|strong|i|em|font)$/i.test(el.tagName)&&!el.firstChild)el.parentNode.removeChild(el);}
+function parseTree(root){var tag=root.tagName.toLowerCase(),i,next;if((HTMLArea.is_ie&&root.scopeName!='HTML')||(!HTMLArea.is_ie&&/:/.test(tag))||/o:p/.test(tag)){stripTag(root);return false;}else{clearClass(root);clearStyle(root);for(i=root.firstChild;i;i=next){next=i.nextSibling;if(i.nodeType==1&&parseTree(i)){checkEmpty(i);}}}
+return true;}
+parseTree(html);};HTMLArea.wordCleanLater=function(editorNumber,doUpdateToolbar){var editor=RTEarea[editorNumber]["editor"];HTMLArea._wordClean(editor,editor._doc.body);if(doUpdateToolbar)editor.updateToolbar();};HTMLArea.cleanWordOnPaste=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var owner=(target.ownerDocument)?target.ownerDocument:target;while(HTMLArea.is_ie&&owner.parentElement){owner=owner.parentElement;}
+if(typeof(browserWin)!="undefined")browserWin.close();window.setTimeout("HTMLArea.wordCleanLater("+owner._editorNo+", true);",250);};HTMLArea.prototype.forceRedraw=function(){this._doc.body.style.visibility="hidden";this._doc.body.style.visibility="visible";};HTMLArea.prototype.focusEditor=function(){switch(this._editMode){case"wysiwyg":try{if(HTMLArea.is_safari||HTMLArea.is_opera)this._doc.focus();else this._iframe.contentWindow.focus();}catch(e){};break;case"textmode":this._textArea.focus();break;}
+return this._doc;};HTMLArea.undoTakeSnapshot=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];if(editor._doc)editor._undoTakeSnapshot();};HTMLArea.prototype._undoTakeSnapshot=function(){var curTime=(new Date()).getTime();var newOne=true;if(this._undoPos>=this.config.undoSteps){this._undoQueue.shift();--this._undoPos;}
+if(this._undoPos<0||this._undoQueue[this._undoPos].time<curTime-this.config.undoTimeout){++this._undoPos;}else{newOne=false;}
+var txt=this.getInnerHTML();if(newOne){if(this._undoPos==0||this._undoQueue[this._undoPos-1].text!=txt){this._undoQueue[this._undoPos]={text:txt,time:curTime};this._undoQueue.length=this._undoPos+1;}else{this._undoPos--;}}else{if(this._undoQueue[this._undoPos].text!=txt){this._undoQueue[this._undoPos].text=txt;this._undoQueue.length=this._undoPos+1;}}};HTMLArea.setUndoQueueLater=function(editorNumber,op){var editor=RTEarea[editorNumber]["editor"];if(op=="undo"){editor.setHTML(editor._undoQueue[--editor._undoPos].text);}else if(op=="redo"){if(editor._undoPos<editor._undoQueue.length-1)editor.setHTML(editor._undoQueue[++editor._undoPos].text);}};HTMLArea.prototype.undo=function(){if(this._undoPos>0){this._undoTakeSnapshot();if(!HTMLArea.is_opera)this.setHTML(this._undoQueue[--this._undoPos].text);else window.setTimeout("HTMLArea.setUndoQueueLater("+this._editorNumber+", 'undo');",10);}};HTMLArea.prototype.redo=function(){if(this._undoPos<this._undoQueue.length-1){this._undoTakeSnapshot();if(!HTMLArea.is_opera){if(this._undoPos<this._undoQueue.length-1)this.setHTML(this._undoQueue[++this._undoPos].text);}else{window.setTimeout("HTMLArea.setUndoQueueLater("+this._editorNumber+", 'redo');",10);}}};HTMLArea.updateToolbar=function(editorNumber){var editor=RTEarea[editorNumber]["editor"];editor.updateToolbar();editor._timerToolbar=null;};HTMLArea.prototype.updateToolbar=function(noStatus){var doc=this._doc,text=(this._editMode=="textmode"),selection=this.hasSelectedText(),ancestors=null,cls=new Array(),txt,txtClass,i,cmd,inContext,match,matchAny,k,j,n,commandState;if(!text){ancestors=this.getAllAncestors();if(this.config.statusBar&&!noStatus){if(this._statusBarTree.hasChildNodes()){for(i=this._statusBarTree.firstChild;i;i=i.nextSibling){if(i.nodeName.toLowerCase()=="a"){HTMLArea._removeEvents(i,["click","contextmenu, mousedown"],HTMLArea.statusBarHandler);i.el=null;i.editor=null;}}}
+this._statusBarTree.innerHTML='';this._statusBarTree.appendChild(document.createTextNode(HTMLArea.I18N.msg["Path"]+": "));for(i=ancestors.length;--i>=0;){var el=ancestors[i];if(!el)continue;var a=document.createElement("a");a.href="#";a.el=el;a.editor=this;if(!HTMLArea.is_opera){HTMLArea._addEvents(a,["click","contextmenu"],HTMLArea.statusBarHandler);}else{HTMLArea._addEvents(a,["mousedown","click"],HTMLArea.statusBarHandler);}
+txt=el.tagName.toLowerCase();a.title=el.style.cssText;if(el.id){txt+="#"+el.id;}
+if(el.className){txtClass="";cls=el.className.trim().split(" ");for(j=cls.length;j>0;){if(!HTMLArea.reservedClassNames.test(cls[--j])){txtClass="."+cls[j];}}
+txt+=txtClass;}
+a.appendChild(document.createTextNode(txt));this._statusBarTree.appendChild(a);if(i!=0)this._statusBarTree.appendChild(document.createTextNode(String.fromCharCode(0xbb)));}}}
+for(i in this._toolbarObjects){var btn=this._toolbarObjects[i];cmd=i;inContext=true;if(btn.context&&!text){inContext=false;var attrs=[];var contexts=[];if(/(.*)\[(.*?)\]/.test(btn.context)){contexts=RegExp.$1.split(",");attrs=RegExp.$2.split(",");}else{contexts=btn.context.split(",");}
+for(j=contexts.length;--j>=0;)contexts[j]=contexts[j].toLowerCase();matchAny=(contexts[0]=="*");for(k=0;k<ancestors.length;++k){if(!ancestors[k])continue;match=false;for(j=contexts.length;--j>=0;)match=match||(ancestors[k].tagName.toLowerCase()==contexts[j]);if(matchAny||match){inContext=true;for(j=attrs.length;--j>=0;){if(!eval("ancestors[k]."+attrs[j])){inContext=false;break;}}
+if(inContext)break;}}}
+if(cmd=="CreateLink")btn.state("enabled",(!text||btn.text)&&(inContext||selection));else btn.state("enabled",(!text||btn.text)&&inContext&&(selection||!btn.selection));if(typeof(cmd)=="function"){continue;};var dropdown=this.config.customSelects[cmd];if((!text||btn.text)&&(typeof(dropdown)!="undefined")){dropdown.refresh(this);continue;}
+switch(cmd){case"FontName":case"FontSize":if(!text)try{var value=(""+doc.queryCommandValue(cmd)).toLowerCase();if(!value){document.getElementById(btn.elementId).selectedIndex=0;break;}
+var options=this.config[cmd];k=0;for(j in options){if((j.toLowerCase()==value)||(options[j].substr(0,value.length).toLowerCase()==value)){document.getElementById(btn.elementId).selectedIndex=k;throw"ok";}
+++k;}
+document.getElementById(btn.elementId).selectedIndex=0;}catch(e){}
+break;case"FormatBlock":var blocks=[];for(var i in this.config['FormatBlock']){blocks[blocks.length]=this.config['FormatBlock'][i];}
+var deepestAncestor=this._getFirstAncestor(this._getSelection(),blocks);if(deepestAncestor){for(var x=0;x<blocks.length;x++){if(blocks[x].toLowerCase()==deepestAncestor.tagName.toLowerCase())document.getElementById(btn.elementId).selectedIndex=x;}}else{document.getElementById(btn.elementId).selectedIndex=0;}
+break;case"TextIndicator":if(!text){try{with(document.getElementById(btn.elementId).style){backgroundColor=HTMLArea._makeColor(doc.queryCommandValue((HTMLArea.is_ie||HTMLArea.is_safari)?"BackColor":"HiliteColor"));if(/transparent/i.test(backgroundColor)){backgroundColor=HTMLArea._makeColor(doc.queryCommandValue("BackColor"));}
+color=HTMLArea._makeColor(doc.queryCommandValue("ForeColor"));fontFamily=doc.queryCommandValue("FontName");fontWeight="normal";fontStyle="normal";try{fontWeight=doc.queryCommandState("Bold")?"bold":"normal";}catch(ex){fontWeight="normal";};try{fontStyle=doc.queryCommandState("Italic")?"italic":"normal";}catch(ex){fontStyle="normal";};}}catch(e){}}
+break;case"HtmlMode":btn.state("active",text);break;case"LeftToRight":case"RightToLeft":var el=this.getParentElement();while(el&&!HTMLArea.isBlockElement(el)){el=el.parentNode;}
+if(el)btn.state("active",(el.style.direction==((cmd=="RightToLeft")?"rtl":"ltr")));break;case"Bold":case"Italic":case"StrikeThrough":case"Underline":case"Subscript":case"Superscript":case"JustifyLeft":case"JustifyCenter":case"JustifyRight":case"JustifyFull":case"Indent":case"Outdent":case"InsertOrderedList":case"InsertUnorderedList":commandState=false;if(!text)try{commandState=doc.queryCommandState(cmd);}catch(e){commandState=false;}
+btn.state("active",commandState);break;default:break;}}
+if(this._customUndo)this._undoTakeSnapshot();for(i in this.plugins){var plugin=this.plugins[i].instance;if(typeof(plugin.onUpdateToolbar)=="function")plugin.onUpdateToolbar();}};HTMLArea.prototype.surroundHTML=function(startTag,endTag){this.insertHTML(startTag+this.getSelectedHTML().replace(HTMLArea.Reg_body,"")+endTag);};HTMLArea.prototype.convertNode=function(el,newTagName){var newel=this._doc.createElement(newTagName),p=el.parentNode;while(el.firstChild)newel.appendChild(el.firstChild);p.insertBefore(newel,el);p.removeChild(el);return newel;};HTMLArea.getElementObject=function(el,tagName){var oEl=el;while(oEl!=null&&oEl.nodeName.toLowerCase()!=tagName)oEl=oEl.parentNode;return oEl;};HTMLArea.prototype.makeNestedList=function(el){var previous,clone;for(var i=el.firstChild;i;i=i.nextSibling){if(/^li$/i.test(i.tagName)){for(var j=i.firstChild;j;j=j.nextSibling){if(/^(ol|ul)$/i.test(j.tagName))this.makeNestedList(j);}}else if(/^(ol|ul)$/i.test(i.tagName)){previous=i.previousSibling;var clone=i.cloneNode(true);if(!previous){previous=el.insertBefore(this._doc.createElement("li"),i);previous.appendChild(clone);}else{previous.appendChild(clone);}
+HTMLArea.removeFromParent(i);this.makeNestedList(el);break;}}};HTMLArea.prototype.hasSelectedText=function(){return this.getSelectedHTML()!="";};HTMLArea.prototype.getAllAncestors=function(){var p=this.getParentElement();var a=[];while(p&&(p.nodeType==1)&&(p.tagName.toLowerCase()!='body')){a.push(p);p=p.parentNode;}
+a.push(this._doc.body);return a;};HTMLArea.prototype._getFirstAncestor=function(sel,types){var prnt=this._activeElement(sel);if(prnt==null){try{prnt=(HTMLArea.is_ie?this._createRange(sel).parentElement():this._createRange(sel).commonAncestorContainer);}catch(e){return null;}}
+if(typeof(types)=='string')types=[types];while(prnt){if(prnt.nodeType==1){if(types==null)return prnt;for(var i=0;i<types.length;i++){if(prnt.tagName.toLowerCase()==types[i])return prnt;}
+if(prnt.tagName.toLowerCase()=='body')break;if(prnt.tagName.toLowerCase()=='table')break;}
+prnt=prnt.parentNode;}
+return null;};HTMLArea.createLinkDialog=function(editor,link){return(function(param){if(!param||typeof(param.f_href)=="undefined")return false;var a=link;if(!a){try{editor._doc.execCommand("CreateLink",false,param.f_href);a=editor.getParentElement();var sel=editor._getSelection();var range=editor._createRange(sel);if(!HTMLArea.is_ie){a=range.startContainer;if(!/^a$/i.test(a.tagName)){a=a.nextSibling;if(a==null)a=range.startContainer.parentNode;}}}catch(e){}}else{var href=param.f_href.trim();editor.selectNodeContents(a);if(href==""){editor._doc.execCommand("Unlink",false,null);editor.updateToolbar();return false;}
+else{a.href=href;}}
+if(!(a&&/^a$/i.test(a.tagName)))return false;if(typeof(param.f_target)!="undefined")a.target=param.f_target.trim();if(typeof(param.f_title)!="undefined")a.title=param.f_title.trim();editor.selectNodeContents(a);editor.updateToolbar();editor=null;link=null;});};HTMLArea.prototype._createLink=function(link){var outparam=null;this.focusEditor();if(typeof(link)=="undefined"){link=this.getParentElement();if(link){if(/^img$/i.test(link.tagName))link=link.parentNode;if(!/^a$/i.test(link.tagName))link=null;}}
+if(!link){var sel=this._getSelection();if(this._selectionEmpty(sel)){alert("You need to select some text before creating a link");return;}
+outparam={f_href:'',f_title:'',f_target:'',f_usetarget:this.config.makeLinkShowsTarget};}else{outparam={f_href:HTMLArea.is_ie?this.stripBaseURL(link.href):link.getAttribute("href"),f_title:link.title,f_target:link.target,f_usetarget:this.config.makeLinkShowsTarget};}
+var createLinkDialogFunctRef=HTMLArea.createLinkDialog(this,link);this._popupDialog("link.html",createLinkDialogFunctRef,outparam,450,145);};HTMLArea.insertImageDialog=function(editor,image){return(function(param){if(!param||typeof(param.f_url)=="undefined")return false;var img=image;if(!img){var sel=editor._getSelection();var range=editor._createRange(sel);editor._doc.execCommand("InsertImage",false,param.f_url);if(HTMLArea.is_ie){img=range.parentElement();if(img.tagName.toLowerCase()!="img")img=img.previousSibling;}else{var sel=editor._getSelection();var range=editor._createRange(sel);img=range.startContainer;if(HTMLArea.is_opera)img=img.parentNode;img=img.lastChild;while(img&&img.nodeName.toLowerCase()!="img")img=img.previousSibling;}}else{img.src=param.f_url;}
+for(var field in param){var value=param[field];switch(field){case"f_alt":img.alt=value;break;case"f_border":if(parseInt(value)){img.style.borderWidth=parseInt(value)+"px";img.style.borderStyle="solid";}else{img.style.borderWidth="";img.style.borderStyle="none";}
+break;case"f_align":img.style.verticalAlign=value;break;case"f_vert":if(parseInt(value)){img.style.marginTop=parseInt(value)+"px";img.style.marginBottom=parseInt(value)+"px";}else{img.style.marginTop="";img.style.marginBottom="";}
+break;case"f_horiz":if(parseInt(value)){img.style.marginLeft=parseInt(value)+"px";img.style.marginRight=parseInt(value)+"px";}else{img.style.marginLeft="";img.style.marginRight="";}
+break;case"f_float":if(HTMLArea.is_ie)img.style.styleFloat=value;else img.style.cssFloat=value;break;}}
+editor=null;image=null;});};HTMLArea.prototype._insertImage=function(image){var outparam=null;this.focusEditor();if(typeof(image)=="undefined"){var image=this.getParentElement();if(image&&!/^img$/i.test(image.tagName))image=null;}
+if(image)outparam={f_base:this.config.baseURL,f_url:image.getAttribute("src"),f_alt:image.alt,f_border:isNaN(parseInt(image.style.borderWidth))?"":parseInt(image.style.borderWidth),f_align:image.style.verticalAlign,f_vert:isNaN(parseInt(image.style.marginTop))?"":parseInt(image.style.marginTop),f_horiz:isNaN(parseInt(image.style.marginLeft))?"":parseInt(image.style.marginLeft),f_float:HTMLArea.is_ie?image.style.styleFloat:image.style.cssFloat};var insertImageDialogFunctRef=HTMLArea.insertImageDialog(this,image);this._popupDialog("insert_image.html",insertImageDialogFunctRef,outparam,580,460);};HTMLArea.insertTableDialog=function(editor,sel,range){return(function(param){if(!param)return false;var doc=editor._doc;var table=doc.createElement("table");for(var field in param){var value=param[field];if(!value)continue;switch(field){case"f_width":if(value!="")table.style.width=parseInt(value)+param["f_unit"];break;case"f_align":table.style.textAlign=value;break;case"f_border":if(value!=""){table.style.borderWidth=parseInt(value)+"px";table.style.borderStyle="solid";}
+break;case"f_spacing":if(value!="")table.cellSpacing=parseInt(value);break;case"f_padding":if(value!="")table.cellPadding=parseInt(value);break;case"f_float":if(HTMLArea.is_ie)table.style.styleFloat=((value!="not set")?value:"");else table.style.cssFloat=((value!="not set")?value:"");break;}}
+var cellwidth=0;if(param.f_fixed)cellwidth=Math.floor(100/parseInt(param.f_cols));var tbody=doc.createElement("tbody");table.appendChild(tbody);for(var i=param["f_rows"];i>0;i--){var tr=doc.createElement("tr");tbody.appendChild(tr);for(var j=param["f_cols"];j>0;j--){var td=doc.createElement("td");if(cellwidth)td.style.width=cellwidth+"%";if(HTMLArea.is_opera){td.innerHTML='&nbsp;';}
+tr.appendChild(td);}}
+editor.focusEditor();if(HTMLArea.is_ie)range.pasteHTML(table.outerHTML);else editor.insertNodeAtSelection(table);if(editor.config.buttons["toggleborders"]&&editor.config.buttons["toggleborders"]["setOnTableCreation"])editor.plugins["TableOperations"].instance.buttonPress(editor,"TO-toggle-borders");if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)editor.setMode("wysiwyg");editor.updateToolbar();editor=null;sel=null;range=null;return true;});};HTMLArea.prototype._insertTable=function(){var sel=this._getSelection();var range=this._createRange(sel);this.focusEditor();var insertTableDialogFunctRef=HTMLArea.insertTableDialog(this,sel,range);this._popupDialog("insert_table.html",insertTableDialogFunctRef,this,520,230);};HTMLArea.selectColorDialog=function(editor,cmdID){return(function(color){if(color)editor._doc.execCommand(cmdID,false,"#"+color);});};HTMLArea.prototype.execCommand=function(cmdID,UI,param){this.focusEditor();if(HTMLArea.is_gecko){try{this._doc.execCommand("useCSS",false,!this.config.useCSS);}catch(e){};try{this._doc.execCommand("styleWithCSS",false,this.config.useCSS);}catch(e){};}
+switch(cmdID){case"HtmlMode":this.setMode();break;case"SplitBlock":this._doc.execCommand('FormatBlock',false,((HTMLArea.is_ie||HTMLArea.is_safari)?"<div>":"div"));break;case"HiliteColor":(HTMLArea.is_ie||HTMLArea.is_safari)&&(cmdID="BackColor");case"ForeColor":var colorDialogFunctRef=HTMLArea.selectColorDialog(this,cmdID);this._popupDialog("select_color.html",colorDialogFunctRef,HTMLArea._colorToRgb(this._doc.queryCommandValue(cmdID)),200,182);break;case"CreateLink":this._createLink();break;case"Undo":case"Redo":if(this._customUndo)this[cmdID.toLowerCase()]();else this._doc.execCommand(cmdID,UI,param);break;case"InsertTable":this._insertTable();break;case"InsertImage":this._insertImage();break;case"About":this._popupDialog("about.html",null,this,475,350);break;case"CleanWord":HTMLArea._wordClean(this,this._doc.body);break;case"Cut":case"Copy":case"Paste":try{this._doc.execCommand(cmdID,false,null);if(cmdID=="Paste"&&this.config.cleanWordOnPaste)HTMLArea._wordClean(this,this._doc.body);}catch(e){if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera)this._mozillaPasteException(cmdID,UI,param);}
+break;case"LeftToRight":case"RightToLeft":var dir=(cmdID=="RightToLeft")?"rtl":"ltr";var el=this.getParentElement();while(el&&!HTMLArea.isBlockElement(el))el=el.parentNode;if(el){if(el.style.direction==dir)el.style.direction="";else el.style.direction=dir;}
+break;case"Indent":var el=this.getParentElement();while(el&&(!HTMLArea.isBlockElement(el)||/^li$/i.test(el.nodeName)))el=el.parentNode;try{this._doc.execCommand(cmdID,UI,param);}
+catch(e){if(this.config.debug)alert(e+"\n\nby execCommand("+cmdID+");");}
+if(/^(ol|ul)$/i.test(el.nodeName)){this.makeNestedList(el);this.selectNodeContents(el);}
+break;case"FontSize":case"FontName":if(param){this._doc.execCommand(cmdID,UI,param);break;}else{var sel=this._getSelection();if(HTMLArea.is_gecko&&sel.isCollapsed){var fontNode=this._getFirstAncestor(sel,"font");if(fontNode!=null)this.selectNode(fontNode);}
+this._doc.execCommand("RemoveFormat",UI,null);if(HTMLArea.is_gecko&&fontNode!=null){sel=this._getSelection();var r=this._createRange(sel).cloneRange();r.collapse(false);if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(r.startContainer,r.startOffset,r.endContainer,r.endOffset);}else{sel.removeAllRanges();sel.addRange(r);}}}
+break;default:try{this._doc.execCommand(cmdID,UI,param);}
+catch(e){if(this.config.debug)alert(e+"\n\nby execCommand("+cmdID+");");}}
+this.updateToolbar();return false;};HTMLArea._editorEvent=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var owner=(target.ownerDocument)?target.ownerDocument:target;if(HTMLArea.is_ie){while(owner.parentElement){owner=owner.parentElement;}}
+var editor=RTEarea[owner._editorNo]["editor"];var keyEvent=((HTMLArea.is_ie||HTMLArea.is_safari)&&ev.type=="keydown")||(!HTMLArea.is_ie&&ev.type=="keypress");editor.focusEditor();if(keyEvent){if(editor._hasPluginWithOnKeyPressHandler){for(var i in editor.plugins){var plugin=editor.plugins[i].instance;if(typeof(plugin.onKeyPress)=="function"){if(plugin.onKeyPress(ev))return false;}}}
+if(ev.ctrlKey){if(!ev.altKey){var key=String.fromCharCode((HTMLArea.is_ie||HTMLArea.is_safari||HTMLArea.is_opera)?ev.keyCode:ev.charCode).toLowerCase();if(HTMLArea.is_gecko&&ev.keyCode==32)key=String.fromCharCode(ev.keyCode).toLowerCase();var cmd=null;var value=null;switch(key){case'1':case'2':case'3':case'4':case'5':case'6':if(editor._toolbarObjects["FormatBlock"]){cmd="FormatBlock";value="h"+key;if(HTMLArea.is_ie||HTMLArea.is_safari)value="<"+value+">";}
+break;case' ':editor.insertHTML("&nbsp;");editor.updateToolbar();HTMLArea._stopEvent(ev);return false;default:if(editor.config.hotKeyList[key]){switch(editor.config.hotKeyList[key]){case"SelectAll":case"CleanWord":cmd=editor.config.hotKeyList[key];break;case"Paste":if(HTMLArea.is_ie||HTMLArea.is_safari){cmd=editor.config.hotKeyList[key];}else if(editor.config.cleanWordOnPaste){window.setTimeout("HTMLArea.wordCleanLater("+owner._editorNo+", false);",50);}
+break;default:if(editor._toolbarObjects[editor.config.hotKeyList[key]]){cmd=editor.config.hotKeyList[key];if(cmd=="FormatBlock")value=(HTMLArea.is_ie||HTMLArea.is_safari)?"<p>":"p";}}}}
+if(cmd){editor.execCommand(cmd,false,value);HTMLArea._stopEvent(ev);return false;}else{editor.updateToolbar();}}}else if(ev.altKey){if(editor.plugins['ContextMenu']&&editor.plugins['ContextMenu'].instance){var keys=editor.plugins['ContextMenu'].instance.keys;if(keys.length>0){var k;for(var i=keys.length;--i>=0;){k=keys[i];if(k[0].toLowerCase()==key){HTMLArea._stopEvent(ev);return false;}}}}}else if(keyEvent){if(HTMLArea.is_gecko)editor._detectURL(ev);switch(ev.keyCode){case 13:if(HTMLArea.is_gecko&&!ev.shiftKey&&!editor.config.disableEnterParagraphs){editor._checkInsertP();HTMLArea._stopEvent(ev);editor.updateToolbar();}
+break;case 8:case 46:if((HTMLArea.is_gecko&&!ev.shiftKey)||HTMLArea.is_ie){if(editor._checkBackspace())HTMLArea._stopEvent(ev);}
+if(editor._timerToolbar)window.clearTimeout(editor._timerToolbar);editor._timerToolbar=window.setTimeout("HTMLArea.updateToolbar("+editor._editorNumber+");",50);break;case 9:if(HTMLArea.is_gecko){editor.execCommand((ev.shiftKey?"Outdent":"Indent"),false,null);HTMLArea._stopEvent(ev);return false;}
+break;case 37:case 39:if(HTMLArea.is_ie){editor._timerToolbar=window.setTimeout("HTMLArea.updateToolbar("+editor._editorNumber+");",10);break;}}}}else{if(editor._timerToolbar)window.clearTimeout(editor._timerToolbar);if(ev.type=="mouseup")editor.updateToolbar();else editor._timerToolbar=window.setTimeout("HTMLArea.updateToolbar("+editor._editorNumber+");",50);}};HTMLArea.prototype.scrollToCaret=function(){var e=this.getParentElement(),w=this._iframe.contentWindow?this._iframe.contentWindow:window,h=w.innerHeight||w.height,d=this._doc,t=d.documentElement.scrollTop||d.body.scrollTop;if(typeof(h)=="undefined")return false;if(e.offsetTop>h+t)w.scrollTo(e.offsetLeft,e.offsetTop-h+e.offsetHeight);};HTMLArea.prototype.getHTML=function(){switch(this._editMode){case"wysiwyg":if(!this.config.fullPage){return HTMLArea.getHTML(this._doc.body,false,this);}
+else{return this.doctype+"\n"+HTMLArea.getHTML(this._doc.documentElement,true,this);}
+case"textmode":return this._textArea.value;}
+return false;};HTMLArea.prototype.getInnerHTML=function(){switch(this._editMode){case"wysiwyg":if(!this.config.fullPage)return this._doc.body.innerHTML;else return this.doctype+"\n"+this._doc.documentElement.innerHTML;case"textmode":return this._textArea.value;}
+return false;};HTMLArea.prototype.setHTML=function(html){switch(this._editMode){case"wysiwyg":if(!this.config.fullPage)this._doc.body.innerHTML=html;else this._doc.body.innerHTML=html;break;case"textmode":this._textArea.value=html;break;}
+return false;};HTMLArea.prototype.setDoctype=function(doctype){this.doctype=doctype;};HTMLArea._object=null;HTMLArea.checkSupportedBrowser=function(){if(HTMLArea.is_gecko&&!HTMLArea.is_safari&&!HTMLArea.is_opera){if(navigator.productSub<20030210)return false;}
+return HTMLArea.is_gecko||HTMLArea.is_ie;};HTMLArea._eventCacheConstructor=function(){var listEvents=[];return({listEvents:listEvents,add:function(node,sEventName,fHandler){listEvents.push(arguments);},flush:function(){var item;for(var i=listEvents.length;--i>=0;){item=listEvents[i];try{HTMLArea._removeEvent(item[0],item[1],item[2]);item[0][item[1]]=null;item[0]=null;item[2]=null;}catch(e){}}}});};HTMLArea._addEvent=function(el,evname,func,useCapture){if(typeof(useCapture)=="undefined")var useCapture=false;if(HTMLArea.is_gecko){el.addEventListener(evname,func,!HTMLArea.is_opera||useCapture);}else{el.attachEvent("on"+evname,func);}
+HTMLArea._eventCache.add(el,evname,func);};HTMLArea._addEvents=function(el,evs,func,useCapture){if(typeof(useCapture)=="undefined")var useCapture=false;for(var i=evs.length;--i>=0;){HTMLArea._addEvent(el,evs[i],func,useCapture);}};HTMLArea._removeEvent=function(el,evname,func){if(HTMLArea.is_gecko){try{el.removeEventListener(evname,func,true);el.removeEventListener(evname,func,false);}catch(e){}}else{try{el.detachEvent("on"+evname,func);}catch(e){}}};HTMLArea._removeEvents=function(el,evs,func){for(var i=evs.length;--i>=0;){HTMLArea._removeEvent(el,evs[i],func);}};HTMLArea._stopEvent=function(ev){if(HTMLArea.is_gecko){ev.stopPropagation();ev.preventDefault();}else{ev.cancelBubble=true;ev.returnValue=false;}};HTMLArea._removeClass=function(el,removeClassName){if(!(el&&el.className))return;var cls=el.className.trim().split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=removeClassName)ar[ar.length]=cls[i];}
+if(ar.length==0){if(!HTMLArea.is_opera)el.removeAttribute(HTMLArea.is_gecko?"class":"className");else el.className='';}else el.className=ar.join(" ");};HTMLArea._addClass=function(el,addClassName){HTMLArea._removeClass(el,addClassName);if(el.className)el.className+=" "+addClassName;else el.className=addClassName;};HTMLArea._hasClass=function(el,className){if(!el||!el.className)return false;var cls=el.className.split(" ");for(var i=cls.length;i>0;){if(cls[--i]==className)return true;}
+return false;};HTMLArea.RE_blockTags=/^(body|p|h1|h2|h3|h4|h5|h6|ul|ol|pre|dl|div|noscript|blockquote|form|hr|table|fieldset|address|td|tr|th|li|tbody|thead|tfoot|iframe|object)$/;HTMLArea.isBlockElement=function(el){return el&&el.nodeType==1&&HTMLArea.RE_blockTags.test(el.nodeName.toLowerCase());};HTMLArea.RE_closingTags=/^(p|span|a|li|ol|ul|dl|dt|td|th|tr|tbody|thead|tfoot|caption|table|div|em|i|strong|b|code|cite|blockquote|q|dfn|abbr|acronym|font|center|object|embed|tt|style|script|title|head|clickenlarge)$/;HTMLArea.RE_noClosingTag=/^(img|br|hr|input|area|base|link|meta|param)$/;HTMLArea.needsClosingTag=function(el){return el&&el.nodeType==1&&!HTMLArea.RE_noClosingTag.test(el.tagName.toLowerCase());};HTMLArea.htmlDecode=function(str){str=str.replace(/&lt;/g,"<").replace(/&gt;/g,">");str=str.replace(/&nbsp;/g,"\xA0");str=str.replace(/&quot;/g,"\x22");str=str.replace(/&#39;/g,"'");str=str.replace(/&amp;/g,"&");return str;};HTMLArea.htmlEncode=function(str){if(typeof(str)!='string')str=str.toString();str=HTMLArea.htmlDecode(str);str=str.replace(/&/g,"&amp;");str=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");str=str.replace(/\xA0/g,"&nbsp;");str=str.replace(/\x22/g,"&quot;");str=str.replace(HTMLArea.Reg_entities,"&$1;");return str;};HTMLArea.getHTML=function(root,outputRoot,editor){try{return HTMLArea.getHTMLWrapper(root,outputRoot,editor);}catch(e){HTMLArea._appendToLog("The HTML document is not well-formed.");if(!HTMLArea._debugMode)alert(HTMLArea.I18N.msg["HTML-document-not-well-formed"]);else return HTMLArea.getHTMLWrapper(root,outputRoot,editor);return editor._doc.body.innerHTML;}};HTMLArea.getHTMLWrapper=function(root,outputRoot,editor){var html="";if(!root)return html;switch(root.nodeType){case 1:case 11:case 9:var closed,i,config=editor.config;var root_tag=(root.nodeType==1)?root.tagName.toLowerCase():'';if(root_tag=='br'&&config.removeTrailingBR&&!root.nextSibling&&HTMLArea.isBlockElement(root.parentNode)&&(!root.previousSibling||root.previousSibling.nodeName.toLowerCase()!='br'))break;if(config.htmlRemoveTagsAndContents&&config.htmlRemoveTagsAndContents.test(root_tag))break;var custom_tag=(config.customTags&&config.customTags.test(root_tag));var empty_root=(root_tag=="clickenlarge"&&!(root.firstChild&&root.firstChild.nodeName.toLowerCase()=="img"));if(outputRoot)outputRoot=!(config.htmlRemoveTags&&config.htmlRemoveTags.test(root_tag))&&!empty_root;if((HTMLArea.is_ie||HTMLArea.is_safari)&&root_tag=="head"){if(outputRoot)html+="<head>";var save_multiline=RegExp.multiline;RegExp.multiline=true;var txt=root.innerHTML.replace(HTMLArea.RE_tagName,function(str,p1,p2){return p1+p2.toLowerCase();});RegExp.multiline=save_multiline;html+=txt;if(outputRoot)html+="</head>";break;}else if(outputRoot){if(HTMLArea.is_gecko&&root.hasAttribute('_moz_editor_bogus_node'))break;closed=(!(root.hasChildNodes()||HTMLArea.needsClosingTag(root)||custom_tag));html="<"+root_tag;var a,name,value,attrs=root.attributes;var n=attrs.length;for(i=attrs.length;--i>=0;){a=attrs.item(i);name=a.nodeName.toLowerCase();if((!a.specified&&name!='value')||/_moz|contenteditable|_msh/.test(name))continue;if(!HTMLArea.is_ie||name!="style"){if(typeof(root[a.nodeName])!="undefined"&&name!="href"&&name!="src"&&name!="style"&&!/^on/.test(name)){value=root[a.nodeName];}else{value=a.nodeValue;if(HTMLArea.is_ie&&(name=="href"||name=="src"))value=editor.stripBaseURL(value);}}else{value=root.style.cssText;}
+if(/(_moz|^$)/.test(value))continue;if(HTMLArea.is_ie&&root_tag=="li"&&name=="value"&&a.nodeValue==0)continue;html+=" "+name+'="'+HTMLArea.htmlEncode(value)+'"';}
+if(html!="")html+=closed?" />":">";}
+for(i=root.firstChild;i;i=i.nextSibling){if(/^li$/i.test(i.tagName)&&!/^[ou]l$/i.test(root.tagName))html+="<ul>"+HTMLArea.getHTMLWrapper(i,true,editor)+"</ul>";else html+=HTMLArea.getHTMLWrapper(i,true,editor);}
+if(outputRoot&&!closed)html+="</"+root_tag+">";break;case 3:html=/^(script|style)$/i.test(root.parentNode.tagName)?root.data:HTMLArea.htmlEncode(root.data);break;case 8:if(!editor.config.htmlRemoveComments)html="<!--"+root.data+"-->";break;case 4:html+='<![CDATA['+root.data+']]>';break;case 5:html+='&'+root.nodeValue+';';break;case 7:html+='<?'+root.target+' '+root.data+' ?>';break;default:break;}
+return html;};HTMLArea.getPrevNode=function(node){if(!node)return null;if(node.previousSibling)return node.previousSibling;if(node.parentNode)return node.parentNode;return null;};HTMLArea.getNextNode=function(node){if(!node)return null;if(node.nextSibling)return node.nextSibling;if(node.parentNode)return node.parentNode;return null;};HTMLArea.removeFromParent=function(el){if(!el.parentNode)return;var pN=el.parentNode;pN.removeChild(el);return el;};HTMLArea.prototype.stripBaseURL=function(string){var baseurl=this.config.baseURL;baseurl=baseurl.replace(/[^\/]+$/,'');var basere=new RegExp(baseurl);string=string.replace(basere,"");baseurl=baseurl.replace(/^(https?:\/\/[^\/]+)(.*)$/,'$1');basere=new RegExp(baseurl);return string.replace(basere,"");};String.prototype.trim=function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');};HTMLArea._makeColor=function(v){if(typeof(v)!="number"){return v;}
+var r=v&0xFF;var g=(v>>8)&0xFF;var b=(v>>16)&0xFF;return"rgb("+r+","+g+","+b+")";};HTMLArea._colorToRgb=function(v){if(!v)
+return'';function hex(d){return(d<16)?("0"+d.toString(16)):d.toString(16);};if(typeof(v)=="number"){var r=v&0xFF;var g=(v>>8)&0xFF;var b=(v>>16)&0xFF;return"#"+hex(r)+hex(g)+hex(b);}
+if(v.substr(0,3)=="rgb"){var re=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/;if(v.match(re)){var r=parseInt(RegExp.$1);var g=parseInt(RegExp.$2);var b=parseInt(RegExp.$3);return"#"+hex(r)+hex(g)+hex(b);}
+return null;}
+if(v.substr(0,1)=="#"){return v;}
+return null;};HTMLArea._postback=function(url,data,handler,addParams,charset){if(typeof(charset)=="undefined")var charset="utf-8";var req=null;if(window.XMLHttpRequest)req=new XMLHttpRequest();else if(window.ActiveXObject){var success=false;for(var k=0;k<HTMLArea.MSXML_XMLHTTP_PROGIDS.length&&!success;k++){try{req=new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]);success=true;}catch(e){}}}
+if(req){var content='';for(var i in data){content+=(content.length?'&':'')+i+'='+encodeURIComponent(data[i]);}
+content+=(content.length?'&':'')+'charset='+charset;if(typeof(addParams)!="undefined")content+=addParams;if(url.substring(0,1)=='/'){var postUrl=_typo3_host_url+url;}else{var postUrl=_typo3_host_url+_editor_url+url;}
+function callBack(){if(req.readyState==4){if(req.status==200){if(typeof(handler)=='function')handler(req.responseText,req);HTMLArea._appendToLog("[HTMLArea::_postback]: Server response: "+req.responseText);}else{HTMLArea._appendToLog("ERROR [HTMLArea::_postback]: Unable to post "+postUrl+" . Server reported "+req.statusText);}}}
+req.onreadystatechange=callBack;function sendRequest(){HTMLArea._appendToLog("[HTMLArea::_postback]: Request: "+content);req.send(content);}
+req.open('POST',postUrl,true);req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');window.setTimeout(sendRequest,500);}};Dialog=function(url,action,init,width,height,opener,editor,scrollbars){Dialog._open(url,action,init,(width?width:100),(height?height:100),opener,editor,scrollbars);};Dialog._open=function(url,action,init,width,height,_opener,editor,scrollbars){if(typeof(Dialog._modal)=="object"&&typeof(Dialog._modal.close)=="function"){Dialog._modal.close();Dialog._modal=null;}
+var dlg=window.open(url,'hadialog',"toolbar=no,location=no,directories=no,menubar=no,width="+width+",height="+height+",scrollbars="+scrollbars+",resizable=yes,modal=yes,dependent=yes,top=100,left=100");var obj=new Object();obj.dialogWindow=dlg;Dialog._dialog=obj;Dialog._modal=dlg;Dialog._arguments=null;if(typeof(init)!="undefined"){Dialog._arguments=init;}
+function capwin(w){if(HTMLArea.is_gecko){w.addEventListener("focus",function(ev){Dialog._parentEvent(ev);},false);}
+else{HTMLArea._addEvent(w,"focus",function(ev){Dialog._parentEvent(ev);});}
+for(var i=0;i<w.frames.length;i++){capwin(w.frames[i]);}}
+capwin(window);function closeDialog(){if(Dialog._dialog&&Dialog._dialog.dialogWindow){Dialog._dialog.dialogWindow.close();Dialog._dialog=null;}
+if(dlg&&!dlg.closed){dlg.close();dlg=null;}
+return false;}
+Dialog._return=function(val){if(val&&action){action(val);}
+function relwin(w){HTMLArea._removeEvent(w,"focus",function(ev){Dialog._parentEvent(ev);});try{for(var i=0;i<w.frames.length;i++){relwin(w.frames[i]);}}catch(e){}}
+relwin(window);HTMLArea._removeEvent(window,"unload",closeDialog);Dialog._dialog=null;};HTMLArea._addEvent(dlg,"unload",function(){if(typeof(Dialog)!="undefined")Dialog._return(null);return false;});HTMLArea._addEvent(window,"unload",closeDialog);};Dialog._parentEvent=function(ev){if(Dialog._modal&&!Dialog._modal.closed){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;Dialog._modal.focus();HTMLArea._stopEvent(ev);}
+return false;};HTMLArea.prototype._popupDialog=function(url,action,init,width,height,_opener,scrollbars){if(typeof(_opener)=="undefined"||!_opener)var _opener=(this._iframe.contentWindow?this._iframe.contentWindow:window);if(typeof(scrollbars)=="undefined")var scrollbars="no";Dialog(this.popupURL(url),action,init,width,height,_opener,this,scrollbars);};HTMLArea.getElementById=function(tag,id){var el,i,objs=document.getElementsByTagName(tag);for(i=objs.length;--i>=0&&(el=objs[i]);){if(el.id==id)return el;}
+return null;};HTMLArea.edHidePopup=function(){Dialog._modal.close();setTimeout("if (typeof(browserWin) != 'undefined' && typeof(browserWin.focus) == 'function') browserWin.focus();",200);};var setRTEsizeByJS=function(divId,height,width){if(HTMLArea.is_gecko)height=height-25;else height=height-60;if(height>0)document.getElementById(divId).style.height=height+"px";if(HTMLArea.is_gecko)width="99%";else width="97%";document.getElementById(divId).style.width=width;};var lorem_ipsum=function(element,text){if(element.tagName.toLowerCase()=="textarea"&&element.id&&element.id.substr(0,7)=="RTEarea"){var editor=RTEarea[element.id.substr(7,8)]["editor"];editor.insertHTML(text);editor.updateToolbar();}};HTMLArea.initTimer=[];HTMLArea.onGenerateHandler=function(editorNumber){return(function(){document.getElementById('pleasewait'+editorNumber).style.display='none';document.getElementById('editorWrap'+editorNumber).style.visibility='visible';editorNumber=null;});};HTMLArea.initEditor=function(editorNumber){if(HTMLArea.checkSupportedBrowser()){document.getElementById('pleasewait'+editorNumber).style.display='block';document.getElementById('editorWrap'+editorNumber).style.visibility='hidden';if(HTMLArea.initTimer[editorNumber])window.clearTimeout(HTMLArea.initTimer[editorNumber]);if(!HTMLArea.is_loaded){HTMLArea.initTimer[editorNumber]=window.setTimeout("HTMLArea.initEditor("+editorNumber+");",150);}else{var RTE=RTEarea[editorNumber];var config=new HTMLArea.Config();config.toolbar=RTE["toolbar"];RTE["editor"]=new HTMLArea(RTE["id"],config);var editor=RTE["editor"];editor._typo3EditerNumber=editorNumber;editor._editorNumber=editorNumber;config=editor.config;config.buttons=RTE["buttons"];config.hideTableOperationsInToolbar=RTE["hideTableOperationsInToolbar"]?RTE["hideTableOperationsInToolbar"]:false;config.disableLayoutFieldsetInTableOperations=RTE["disableLayoutFieldsetInTableOperations"]?RTE["disableLayoutFieldsetInTableOperations"]:false;config.disableAlignmentFieldsetInTableOperations=RTE["disableAlignmentFieldsetInTableOperations"]?RTE["disableAlignmentFieldsetInTableOperations"]:false;config.disableSpacingFieldsetInTableOperations=RTE["disableSpacingFieldsetInTableOperations"]?RTE["disableSpacingFieldsetInTableOperations"]:false;config.disableBordersFieldsetInTableOperations=RTE["disableBordersFieldsetInTableOperations"]?RTE["disableBordersFieldsetInTableOperations"]:false;config.disableColorFieldsetInTableOperations=RTE["disableColorFieldsetInTableOperations"]?RTE["disableColorFieldsetInTableOperations"]:false;config.disablePCexamples=RTE["disablePCexamples"]?RTE["disablePCexamples"]:false;for(var plugin in RTE["plugin"]){if(RTE["plugin"][plugin]){editor.registerPlugin(plugin);}}
+if(RTE["defaultPageStyle"])config.defaultPageStyle=RTE["defaultPageStyle"];if(RTE["pageStyle"])config.pageStyle=RTE["pageStyle"];if(RTE["fontname"])config.FontName=RTE["fontname"];if(RTE["fontsize"])config.FontSize=RTE["fontsize"];if(RTE["colors"])config.colors=RTE["colors"];if(RTE["disableColorPicker"])config.disableColorPicker=RTE["disableColorPicker"];if(RTE["paragraphs"])config.FormatBlock=RTE["paragraphs"];config.width="auto";config.height="auto";config.sizeIncludesToolbar=true;config.fullPage=false;config.useHTTPS=RTE["useHTTPS"]?RTE["useHTTPS"]:false;config.disableEnterParagraphs=RTE["disableEnterParagraphs"]?RTE["disableEnterParagraphs"]:false;config.removeTrailingBR=RTE["removeTrailingBR"]?RTE["removeTrailingBR"]:false;config.keepButtonGroupTogether=(RTE["keepButtonGroupTogether"]&&HTMLArea.is_gecko&&!HTMLArea.is_wamcom&&!HTMLArea.is_opera)?RTE["keepButtonGroupTogether"]:false;config.useCSS=RTE["useCSS"]?RTE["useCSS"]:false;config.enableMozillaExtension=RTE["enableMozillaExtension"]?RTE["enableMozillaExtension"]:false;config.statusBar=RTE["statusBar"]?RTE["statusBar"]:false;config.cleanWordOnPaste=RTE["enableWordClean"]?true:false;config.htmlRemoveTags=RTE["htmlRemoveTags"]?RTE["htmlRemoveTags"]:null;config.htmlRemoveTagsAndContents=RTE["htmlRemoveTagsAndContents"]?RTE["htmlRemoveTagsAndContents"]:null;config.htmlRemoveComments=RTE["htmlRemoveComments"]?true:false;editor.onGenerate=HTMLArea.onGenerateHandler(editorNumber);editor.generate();return false;}}else{document.getElementById('pleasewait'+editorNumber).style.display='none';document.getElementById('editorWrap'+editorNumber).style.visibility='visible';}};HTMLArea.allElementsAreDisplayed=function(elements){for(var i=0,length=elements.length;i<length;i++){if(document.getElementById(elements[i]).style.display=='none'){return false;}}
+return true;};
\ No newline at end of file
index 71933f9..d0f90ac 100644 (file)
@@ -1,2 +1,34 @@
-HTMLArea.prototype._initEditMode=function(){var inTYPO3Tab=false;var DTMDiv=this._textArea;while(DTMDiv&&(DTMDiv.nodeType==1)&&(DTMDiv.tagName.toLowerCase()!="body")){if(DTMDiv.tagName.toLowerCase()=="div"&&DTMDiv.id.indexOf("DTM-")!=-1&&DTMDiv.id.indexOf("-DIV")!=-1&&DTMDiv.className=="c-tablayer"){inTYPO3Tab=true;break;}else{DTMDiv=DTMDiv.parentNode;}};if(!HTMLArea.is_wamcom){try{if(!(inTYPO3Tab&&DTMDiv.style.display=="none"))this._doc.designMode="on";}catch(e){}}else{try{this._doc.designMode="on";}catch(e){if(!(inTYPO3Tab&&DTMDiv.style.display=="none")){this._doc.open();this._doc.close();this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",500);return false;}}};if(inTYPO3Tab)HTMLArea._addEvent(DTMDiv,"DOMAttrModified",HTMLArea.DTMDivHandler(this,DTMDiv));return true;};HTMLArea.prototype._getSelection=function(){if(HTMLArea.is_safari)return window.getSelection();return this._iframe.contentWindow.getSelection();};HTMLArea.prototype._createRange=function(sel){if(HTMLArea.is_safari){var range=this._doc.createRange();if(typeof(sel)=="undefined")return range;switch(sel.type){case "Range":range.setStart(sel.baseNode,sel.baseOffset);range.setEnd(sel.extentNode,sel.extentOffset);break;case "Caret":range.setStart(sel.baseNode,sel.baseOffset);range.setEnd(sel.baseNode,sel.baseOffset);break;case "None":range.setStart(this._doc.body,0);range.setEnd(this._doc.body,0);};return range;};if(typeof(sel)=="undefined")return this._doc.createRange();try{return sel.getRangeAt(0);}catch(e){return this._doc.createRange();}};HTMLArea.prototype.selectNode=function(node,pos){this.focusEditor();var sel=this._getSelection();var range=this._doc.createRange();if(node.nodeType==1&&node.tagName.toLowerCase()=="body")range.selectNodeContents(node);else range.selectNode(node);if((typeof(pos)!="undefined"))range.collapse(pos);if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(range.startContainer,range.startOffset,range.endContainer,range.endOffset);}else{sel.removeAllRanges();sel.addRange(range);}};HTMLArea.prototype.selectNodeContents=function(node,pos){this.focusEditor();var sel=this._getSelection();var range=this._doc.createRange();range.selectNodeContents(node);if((typeof(pos)!="undefined"))range.collapse(pos);if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(range.startContainer,range.startOffset,range.endContainer,range.endOffset);}else{sel.removeAllRanges();sel.addRange(range);}};HTMLArea.prototype.getSelectedHTML=function(){var sel=this._getSelection();var range=this._createRange(sel);var cloneContents="";try{cloneContents=range.cloneContents();}catch(e){};return(cloneContents?HTMLArea.getHTML(cloneContents,false,this):"");};HTMLArea.prototype.getSelectedHTMLContents=function(){return this.getSelectedHTML();};HTMLArea.prototype.getParentElement=function(sel,range){if(!sel)var sel=this._getSelection();if(typeof(range)=="undefined")var range=this._createRange(sel);try{var p=range.commonAncestorContainer;if(!range.collapsed&&range.startContainer==range.endContainer&&range.startOffset-range.endOffset<=1&&range.startContainer.hasChildNodes())p=range.startContainer.childNodes[range.startOffset];while(p.nodeType==3){p=p.parentNode;};return p;}catch(e){return this._doc.body;}};HTMLArea.prototype._activeElement=function(sel){if(sel==null)return null;if(this._selectionEmpty(sel))return null;if(!sel.isCollapsed&&sel.anchorNode.nodeType==1)return sel.anchorNode;else return null;};HTMLArea.prototype._selectionEmpty=function(sel){if(!sel)return true;if(typeof(sel.isCollapsed)!='undefined'){if(HTMLArea.is_opera)this._createRange(sel).collapsed;else sel.isCollapsed;}else{return true;}};HTMLArea.prototype.insertNodeAtSelection=function(toBeInserted){this.focusEditor();var sel=this._getSelection(),range=this._createRange(sel),node=range.startContainer,pos=range.startOffset,selnode=toBeInserted;if(HTMLArea.is_safari)sel.empty();else sel.removeAllRanges();range.deleteContents();switch(node.nodeType){case 3:if(toBeInserted.nodeType==3){node.insertData(pos,toBeInserted.data);range=this._createRange();range.setEnd(node,pos+toBeInserted.length);range.setStart(node,pos+toBeInserted.length);if(HTMLArea.is_safari)sel.setBaseAndExtent(range.startContainer,range.startOffset,range.endContainer,range.endOffset);else sel.addRange(range);}else{node=node.splitText(pos);if(toBeInserted.nodeType==11)selnode=selnode.lastChild;node=node.parentNode.insertBefore(toBeInserted,node);this.selectNode(selnode,false);this.updateToolbar();};break;case 1:if(toBeInserted.nodeType==11)selnode=selnode.lastChild;node=node.insertBefore(toBeInserted,node.childNodes[pos]);this.selectNode(selnode,false);this.updateToolbar();break;}};HTMLArea.prototype.insertHTML=function(html){this.focusEditor();var fragment=this._doc.createDocumentFragment();var div=this._doc.createElement("div");div.innerHTML=html;while(div.firstChild){fragment.appendChild(div.firstChild);};this.insertNodeAtSelection(fragment);};HTMLArea.DTMDivHandler=function(editor,DTMDiv){return(function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;if(target==DTMDiv&&editor._editMode=="wysiwyg"&&DTMDiv.style.display=="block"){window.setTimeout(function(){try{editor._doc.designMode="on";if(editor.config.sizeIncludesToolbar&&editor._initialToolbarOffsetHeight!=editor._toolbar.offsetHeight)editor.sizeIframe(-2);}catch(e){editor._doc.open();editor._doc.close();editor.initIframe();}},20);HTMLArea._stopEvent(ev);}});};HTMLArea.statusBarHandler=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var editor=target.editor;target.blur();editor.selectNode(target.el);editor.updateToolbar(true);switch(ev.type){case "click":case "mousedown":HTMLArea._stopEvent(ev);return false;case "contextmenu":return editor.plugins["ContextMenu"]?editor.plugins["ContextMenu"].instance.popupMenu(ev,target.el):false;}};HTMLArea.prototype._mozillaPasteException=function(cmdID,UI,param){if(typeof(UI)!="undefined"){this._doc.execCommand(cmdID,UI,param);if(cmdID=="Paste"&&this.config.killWordOnPaste)HTMLArea._wordClean(this._doc.body);}else if(this.config.enableMozillaExtension){if(confirm(HTMLArea.I18N.msg["Allow-Clipboard-Helper-Extension"])){if(InstallTrigger.enabled()){HTMLArea._mozillaXpi=new Object();HTMLArea._mozillaXpi["AllowClipboard Helper"]=_editor_mozAllowClipboard_url;InstallTrigger.install(HTMLArea._mozillaXpi,HTMLArea._mozillaInstallCallback);}else{alert(HTMLArea.I18N.msg["Mozilla-Org-Install-Not-Enabled"]);HTMLArea._appendToLog("WARNING [HTMLArea::execCommand]: Mozilla install was not enabled.");return;}}}else if(confirm(HTMLArea.I18N.msg["Moz-Clipboard"])){window.open("http://mozilla.org/editor/midasdemo/securityprefs.html");}};HTMLArea._mozillaInstallCallback=function(url,returnCode){if(returnCode==0){if(HTMLArea._mozillaXpi["TYPO3 htmlArea RTE Preferences"])alert(HTMLArea.I18N.msg["Moz-Extension-Success"]);else alert(HTMLArea.I18N.msg["Allow-Clipboard-Helper-Extension-Success"]);return;}else{alert(HTMLArea.I18N.msg["Moz-Extension-Failure"]);HTMLArea._appendToLog("WARNING [HTMLArea::execCommand]: Mozilla install return code was: "+returnCode+".");return;}};HTMLArea.prototype._checkBackspace=function(){var self=this;self.focusEditor();var sel=self._getSelection();var range=self._createRange(sel);var SC=range.startContainer;var SO=range.startOffset;var EC=range.endContainer;var EO=range.endOffset;var newr=SC.nextSibling;while(SC.nodeType==3||/^a$/i.test(SC.tagName))SC=SC.parentNode;if(!self.config.disableEnterParagraphs&&/^td$/i.test(SC.parentNode.tagName)&&SC.parentNode.firstChild==SC&&SO==0&&range.collapsed)return true;window.setTimeout(function(){if(!self.config.disableEnterParagraphs&&(/^p$/i.test(SC.tagName)||!/\S/.test(SC.tagName))&&SO==0){if(SC.firstChild&&/^br$/i.test(SC.firstChild.tagName)){HTMLArea.removeFromParent(SC.firstChild);return true;}};if(!/\S/.test(SC.tagName)){var p=document.createElement("p");while(SC.firstChild)p.appendChild(SC.firstChild);SC.parentNode.insertBefore(p,SC);HTMLArea.removeFromParent(SC);var r=range.cloneRange();r.setStartBefore(newr);r.setEndAfter(newr);r.extractContents();if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(r.startContainer,r.startOffset,r.endContainer,r.endOffset);}else{sel.removeAllRanges();sel.addRange(r);};return true;}},10);return false;};HTMLArea.prototype._checkInsertP=function(){this.focusEditor();var i,SC,left,right,r2,sel=this._getSelection(),r=this._createRange(sel),p=this.getAllAncestors(),block=null,a=null,doc=this._doc,body=doc.body;for(i=0;i<p.length;++i){if(HTMLArea.isBlockElement(p[i])&&!/html|body|table|tbody|tr/i.test(p[i].tagName)){block=p[i];break;}};if(!r.collapsed)r.deleteContents();if(HTMLArea.is_safari)sel.empty();else sel.removeAllRanges();SC=r.startContainer;if(HTMLArea.is_opera&&SC.nodeType==3&&SC.data.length==0)SC=HTMLArea.getPrevNode(SC);if(!block||/^(td|div)$/i.test(block.tagName)){left=SC;for(i=SC;i&&!HTMLArea.isBlockElement(i);i=HTMLArea.getPrevNode(i)){left=i;};right=SC;if(HTMLArea.is_opera&&right.nodeType==3&&right.data.length==0)right=HTMLArea.getNextNode(right);if(left!=body&&right!=body&&!(block&&left==block)&&!(block&&right==block)){r2=r.cloneRange();if(HTMLArea.is_opera)r2.setStart(left,0);else r2.setStartBefore(left);r2.surroundContents(block=doc.createElement('p'));if(!/\S/.test(HTMLArea.getInnerText(block))){a=block.lastChild;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);block.appendChild(doc.createElement('br'));};block.normalize();if(HTMLArea.is_opera){SC=HTMLArea.getNextNode(block);for(i=SC;i&&!HTMLArea.isBlockElement(i);i=HTMLArea.getNextNode(i)){right=i;};r.setStart(SC,0);r.setEnd(right,right.length);}else{r.setEndAfter(right);};r.surroundContents(block=doc.createElement('p'));a=block.previousSibling;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);if(!/\S/.test(HTMLArea.getInnerText(block))){a=block.lastChild;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);block.appendChild(doc.createElement('br'));};block.normalize();}else{if(!block)block=body;r=doc.createRange();r.setStart(block,0);r.setEnd(block,0);r.insertNode(block=doc.createElement('p'));block.appendChild(doc.createElement('br'));};if(HTMLArea.is_opera)r.selectNode(block);else r.selectNodeContents(block);}else{if(!HTMLArea.is_opera||/\S/.test(HTMLArea.getInnerText(block)))r.setEndAfter(block);var df=r.extractContents(),left_empty=false;if(!/\S/.test(HTMLArea.getInnerText(block))){block.innerHTML="<br />";left_empty=true;};p=df.firstChild;if(p){if(!/\S/.test(HTMLArea.getInnerText(p))){if(/^h[1-6]$/i.test(p.tagName))p=this.convertNode(p,"p");p.innerHTML="<br />";};if(/^li$/i.test(p.tagName)&&left_empty&&!block.nextSibling){left=block.parentNode;left.removeChild(block);r.setEndAfter(left);r.collapse(false);p=this.convertNode(p,/^li$/i.test(left.parentNode.tagName)?"br":"p");};r.insertNode(df);var a=p.previousSibling.lastChild;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);if(HTMLArea.is_opera)r.selectNode(p);else r.selectNodeContents(p);}};r.collapse(true);if(HTMLArea.is_safari)sel.setBaseAndExtent(r.startContainer,r.startOffset,r.endContainer,r.endOffset);else sel.addRange(r);this.scrollToCaret();};HTMLArea.prototype._detectURL=function(ev){var editor=this;var s=this._getSelection();var autoWrap=function(textNode,tag){var rightText=textNode.nextSibling;if(typeof(tag)=='string')tag=editor._doc.createElement(tag);var a=textNode.parentNode.insertBefore(tag,rightText);HTMLArea.removeFromParent(textNode);a.appendChild(textNode);rightText.data+=" ";s.collapse(rightText,rightText.data.length);HTMLArea._stopEvent(ev);editor._unLink=function(){var t=a.firstChild;a.removeChild(t);a.parentNode.insertBefore(t,a);HTMLArea.removeFromParent(a);t.parentNode.normalize();editor._unLink=null;editor._unlinkOnUndo=false;};editor._unlinkOnUndo=true;return a;};switch(ev.which){case 13:if(ev.shiftKey||editor.config.disableEnterParagraphs)break;case 32:if(s&&s.isCollapsed&&s.anchorNode.nodeType==3&&s.anchorNode.data.length>3&&s.anchorNode.data.indexOf('.')>=0){var midStart=s.anchorNode.data.substring(0,s.anchorOffset).search(/[a-zA-Z0-9]+\S{3,}$/);if(midStart==-1)break;if(this._getFirstAncestor(s,'a'))break;var matchData=s.anchorNode.data.substring(0,s.anchorOffset).replace(/^.*?(\S*)$/,'$1');if(matchData.indexOf('@')!=-1){var m=matchData.match(HTMLArea.RE_email);if(m){var leftText=s.anchorNode;var rightText=leftText.splitText(s.anchorOffset);var midText=leftText.splitText(midStart);var midEnd=midText.data.search(/[^a-zA-Z0-9\.@_\-]/);if(midEnd!=-1)var endText=midText.splitText(midEnd);autoWrap(midText,'a').href='mailto:'+m[0];break;}};var m=matchData.match(HTMLArea.RE_url);if(m){var leftText=s.anchorNode;var rightText=leftText.splitText(s.anchorOffset);var midText=leftText.splitText(midStart);var midEnd=midText.data.search(/[^a-zA-Z0-9\._\-\/\&\?=:@]/);if(midEnd!=-1)var endText=midText.splitText(midEnd);autoWrap(midText,'a').href=(m[1]?m[1]:'http://')+m[2];break;}}break;default:if(ev.keyCode==27||(editor._unlinkOnUndo&&ev.ctrlKey&&ev.which==122)){if(this._unLink){this._unLink();HTMLArea._stopEvent(ev);}break;}else if(ev.which||ev.keyCode==8||ev.keyCode==46){this._unlinkOnUndo=false;if(s.anchorNode&&s.anchorNode.nodeType==3){var a=this._getFirstAncestor(s,'a');if(!a)break;if(!a._updateAnchTimeout){if(s.anchorNode.data.match(HTMLArea.RE_email)&&(a.href.match('mailto:'+s.anchorNode.data.trim()))){var textNode=s.anchorNode;var fn=function(){a.href='mailto:'+textNode.data.trim();a._updateAnchTimeout=setTimeout(fn,250);};a._updateAnchTimeout=setTimeout(fn,250);break;}var m=s.anchorNode.data.match(HTMLArea.RE_url);if(m&&a.href.match(s.anchorNode.data.trim())){var textNode=s.anchorNode;var fn=function(){var m=textNode.data.match(HTMLArea.RE_url);a.href=(m[1]?m[1]:'http://')+m[2];a._updateAnchTimeout=setTimeout(fn,250);};a._updateAnchTimeout=setTimeout(fn,250);}}}};break;}};
 
+HTMLArea.prototype._initEditMode=function(){var isNested=false;var allDisplayed=true;if(this.nested.sorted&&this.nested.sorted.length){isNested=true;allDisplayed=HTMLArea.allElementsAreDisplayed(this.nested.sorted);}
+if(!HTMLArea.is_wamcom){try{if(!isNested||allDisplayed)this._doc.designMode="on";}catch(e){}}else{try{this._doc.designMode="on";}catch(e){if(!isNested||allDisplayed){this._doc.open();this._doc.close();this._initIframeTimer=window.setTimeout("HTMLArea.initIframe("+this._editorNumber+");",500);return false;}}}
+if(this.nested.sorted&&this.nested.sorted.length){var nestedObj,listenerFunction;for(var i=0,length=this.nested.sorted.length;i<length;i++){nestedObj=document.getElementById(this.nested.sorted[i]);listenerFunction=HTMLArea.NestedListener(this,nestedObj,false);HTMLArea._addEvent(nestedObj,'DOMAttrModified',listenerFunction);}}
+return true;};HTMLArea.prototype._getSelection=function(){if(HTMLArea.is_safari)return window.getSelection();return this._iframe.contentWindow.getSelection();};HTMLArea.prototype._createRange=function(sel){if(HTMLArea.is_safari){var range=this._doc.createRange();if(typeof(sel)=="undefined")return range;switch(sel.type){case"Range":range.setStart(sel.baseNode,sel.baseOffset);range.setEnd(sel.extentNode,sel.extentOffset);break;case"Caret":range.setStart(sel.baseNode,sel.baseOffset);range.setEnd(sel.baseNode,sel.baseOffset);break;case"None":range.setStart(this._doc.body,0);range.setEnd(this._doc.body,0);}
+return range;}
+if(typeof(sel)=="undefined")return this._doc.createRange();try{return sel.getRangeAt(0);}catch(e){return this._doc.createRange();}};HTMLArea.prototype.selectNode=function(node,pos){this.focusEditor();var sel=this._getSelection();var range=this._doc.createRange();if(node.nodeType==1&&node.tagName.toLowerCase()=="body")range.selectNodeContents(node);else range.selectNode(node);if((typeof(pos)!="undefined"))range.collapse(pos);if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(range.startContainer,range.startOffset,range.endContainer,range.endOffset);}else{sel.removeAllRanges();sel.addRange(range);}};HTMLArea.prototype.selectNodeContents=function(node,pos){this.focusEditor();var sel=this._getSelection();var range=this._doc.createRange();range.selectNodeContents(node);if((typeof(pos)!="undefined"))range.collapse(pos);if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(range.startContainer,range.startOffset,range.endContainer,range.endOffset);}else{sel.removeAllRanges();sel.addRange(range);}};HTMLArea.prototype.getSelectedHTML=function(){var sel=this._getSelection();var range=this._createRange(sel);var cloneContents="";try{cloneContents=range.cloneContents();}catch(e){}
+return(cloneContents?HTMLArea.getHTML(cloneContents,false,this):"");};HTMLArea.prototype.getSelectedHTMLContents=function(){return this.getSelectedHTML();};HTMLArea.prototype.getParentElement=function(sel,range){if(!sel)var sel=this._getSelection();if(typeof(range)=="undefined")var range=this._createRange(sel);try{var p=range.commonAncestorContainer;if(!range.collapsed&&range.startContainer==range.endContainer&&range.startOffset-range.endOffset<=1&&range.startContainer.hasChildNodes())
+p=range.startContainer.childNodes[range.startOffset];while(p.nodeType==3){p=p.parentNode;}
+return p;}catch(e){return this._doc.body;}};HTMLArea.prototype._activeElement=function(sel){if(sel==null)return null;if(this._selectionEmpty(sel))return null;if(!sel.isCollapsed&&sel.anchorNode.nodeType==1)return sel.anchorNode;else return null;};HTMLArea.prototype._selectionEmpty=function(sel){if(!sel)return true;if(typeof(sel.isCollapsed)!='undefined'){if(HTMLArea.is_opera)this._createRange(sel).collapsed;else sel.isCollapsed;}else{return true;}};HTMLArea.prototype.insertNodeAtSelection=function(toBeInserted){this.focusEditor();var sel=this._getSelection(),range=this._createRange(sel),node=range.startContainer,pos=range.startOffset,selnode=toBeInserted;if(HTMLArea.is_safari)sel.empty();else sel.removeAllRanges();range.deleteContents();switch(node.nodeType){case 3:if(toBeInserted.nodeType==3){node.insertData(pos,toBeInserted.data);range=this._createRange();range.setEnd(node,pos+toBeInserted.length);range.setStart(node,pos+toBeInserted.length);if(HTMLArea.is_safari)sel.setBaseAndExtent(range.startContainer,range.startOffset,range.endContainer,range.endOffset);else sel.addRange(range);}else{node=node.splitText(pos);if(toBeInserted.nodeType==11)selnode=selnode.lastChild;node=node.parentNode.insertBefore(toBeInserted,node);this.selectNode(selnode,false);this.updateToolbar();}
+break;case 1:if(toBeInserted.nodeType==11)selnode=selnode.lastChild;node=node.insertBefore(toBeInserted,node.childNodes[pos]);this.selectNode(selnode,false);this.updateToolbar();break;}};HTMLArea.prototype.insertHTML=function(html){this.focusEditor();var fragment=this._doc.createDocumentFragment();var div=this._doc.createElement("div");div.innerHTML=html;while(div.firstChild){fragment.appendChild(div.firstChild);}
+this.insertNodeAtSelection(fragment);};HTMLArea.NestedListener=function(editor,nestedObj,noOpenCloseAction){return(function(ev){if(!ev)var ev=window.event;HTMLArea.NestedHandler(ev,editor,nestedObj,noOpenCloseAction);});};HTMLArea.NestedHandler=function(ev,editor,nestedObj,noOpenCloseAction){window.setTimeout(function(){var target=(ev.target)?ev.target:ev.srcElement;if(target==nestedObj&&editor._editMode=="wysiwyg"&&ev.attrName=='style'&&(target.style.display==''||target.style.display=='block')){if(HTMLArea.allElementsAreDisplayed(editor.nested.sorted)){window.setTimeout(function(){try{editor._doc.designMode="on";if(editor.config.sizeIncludesToolbar&&editor._initialToolbarOffsetHeight!=editor._toolbar.offsetHeight){editor.sizeIframe(-2);}}catch(e){if(!noOpenCloseAction){editor._doc.open();editor._doc.close();}
+editor.initIframe();}},50);}
+HTMLArea._stopEvent(ev);}},50);};HTMLArea.statusBarHandler=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var editor=target.editor;target.blur();editor.selectNode(target.el);editor.updateToolbar(true);switch(ev.type){case"click":case"mousedown":HTMLArea._stopEvent(ev);return false;case"contextmenu":return editor.plugins["ContextMenu"]?editor.plugins["ContextMenu"].instance.popupMenu(ev,target.el):false;}};HTMLArea.prototype._mozillaPasteException=function(cmdID,UI,param){if(typeof(UI)!="undefined"){this._doc.execCommand(cmdID,UI,param);if(cmdID=="Paste"&&this.config.killWordOnPaste)HTMLArea._wordClean(this._doc.body);}else if(this.config.enableMozillaExtension){if(confirm(HTMLArea.I18N.msg["Allow-Clipboard-Helper-Extension"])){if(InstallTrigger.enabled()){HTMLArea._mozillaXpi=new Object();HTMLArea._mozillaXpi["AllowClipboard Helper"]=_editor_mozAllowClipboard_url;InstallTrigger.install(HTMLArea._mozillaXpi,HTMLArea._mozillaInstallCallback);}else{alert(HTMLArea.I18N.msg["Mozilla-Org-Install-Not-Enabled"]);HTMLArea._appendToLog("WARNING [HTMLArea::execCommand]: Mozilla install was not enabled.");return;}}}else if(confirm(HTMLArea.I18N.msg["Moz-Clipboard"])){window.open("http://mozilla.org/editor/midasdemo/securityprefs.html");}}
+HTMLArea._mozillaInstallCallback=function(url,returnCode){if(returnCode==0){if(HTMLArea._mozillaXpi["TYPO3 htmlArea RTE Preferences"])alert(HTMLArea.I18N.msg["Moz-Extension-Success"]);else alert(HTMLArea.I18N.msg["Allow-Clipboard-Helper-Extension-Success"]);return;}else{alert(HTMLArea.I18N.msg["Moz-Extension-Failure"]);HTMLArea._appendToLog("WARNING [HTMLArea::execCommand]: Mozilla install return code was: "+returnCode+".");return;}};HTMLArea.prototype._checkBackspace=function(){var self=this;self.focusEditor();var sel=self._getSelection();var range=self._createRange(sel);var SC=range.startContainer;var SO=range.startOffset;var EC=range.endContainer;var EO=range.endOffset;var newr=SC.nextSibling;while(SC.nodeType==3||/^a$/i.test(SC.tagName))SC=SC.parentNode;if(!self.config.disableEnterParagraphs&&/^td$/i.test(SC.parentNode.tagName)&&SC.parentNode.firstChild==SC&&SO==0&&range.collapsed)return true;window.setTimeout(function(){if(!self.config.disableEnterParagraphs&&(/^p$/i.test(SC.tagName)||!/\S/.test(SC.tagName))&&SO==0){if(SC.firstChild&&/^br$/i.test(SC.firstChild.tagName)){HTMLArea.removeFromParent(SC.firstChild);return true;}}
+if(!/\S/.test(SC.tagName)){var p=document.createElement("p");while(SC.firstChild)p.appendChild(SC.firstChild);SC.parentNode.insertBefore(p,SC);HTMLArea.removeFromParent(SC);var r=range.cloneRange();r.setStartBefore(newr);r.setEndAfter(newr);r.extractContents();if(HTMLArea.is_safari){sel.empty();sel.setBaseAndExtent(r.startContainer,r.startOffset,r.endContainer,r.endOffset);}else{sel.removeAllRanges();sel.addRange(r);}
+return true;}},10);return false;};HTMLArea.prototype._checkInsertP=function(){this.focusEditor();var i,SC,left,right,r2,sel=this._getSelection(),r=this._createRange(sel),p=this.getAllAncestors(),block=null,a=null,doc=this._doc,body=doc.body;for(i=0;i<p.length;++i){if(HTMLArea.isBlockElement(p[i])&&!/html|body|table|tbody|tr/i.test(p[i].tagName)){block=p[i];break;}}
+if(!r.collapsed)r.deleteContents();if(HTMLArea.is_safari)sel.empty();else sel.removeAllRanges();SC=r.startContainer;if(HTMLArea.is_opera&&SC.nodeType==3&&SC.data.length==0)SC=HTMLArea.getPrevNode(SC);if(!block||/^(td|div)$/i.test(block.tagName)){left=SC;for(i=SC;i&&!HTMLArea.isBlockElement(i);i=HTMLArea.getPrevNode(i)){left=i;}
+right=SC;if(HTMLArea.is_opera&&right.nodeType==3&&right.data.length==0)right=HTMLArea.getNextNode(right);if(left!=body&&right!=body&&!(block&&left==block)&&!(block&&right==block)){r2=r.cloneRange();if(HTMLArea.is_opera)r2.setStart(left,0);else r2.setStartBefore(left);r2.surroundContents(block=doc.createElement('p'));if(!/\S/.test(HTMLArea.getInnerText(block))){a=block.lastChild;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);block.appendChild(doc.createElement('br'));}
+block.normalize();if(HTMLArea.is_opera){SC=HTMLArea.getNextNode(block);for(i=SC;i&&!HTMLArea.isBlockElement(i);i=HTMLArea.getNextNode(i)){right=i;}
+r.setStart(SC,0);r.setEnd(right,right.length);}else{r.setEndAfter(right);}
+r.surroundContents(block=doc.createElement('p'));a=block.previousSibling;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);if(!/\S/.test(HTMLArea.getInnerText(block))){a=block.lastChild;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);block.appendChild(doc.createElement('br'));}
+block.normalize();}else{if(!block)block=body;r=doc.createRange();r.setStart(block,0);r.setEnd(block,0);r.insertNode(block=doc.createElement('p'));block.appendChild(doc.createElement('br'));}
+if(HTMLArea.is_opera)r.selectNode(block);else r.selectNodeContents(block);}else{if(!HTMLArea.is_opera||/\S/.test(HTMLArea.getInnerText(block)))r.setEndAfter(block);var df=r.extractContents(),left_empty=false;if(!/\S/.test(HTMLArea.getInnerText(block))){block.innerHTML="<br />";left_empty=true;}
+p=df.firstChild;if(p){if(!/\S/.test(HTMLArea.getInnerText(p))){if(/^h[1-6]$/i.test(p.tagName))p=this.convertNode(p,"p");p.innerHTML="<br />";}
+if(/^li$/i.test(p.tagName)&&left_empty&&!block.nextSibling){left=block.parentNode;left.removeChild(block);r.setEndAfter(left);r.collapse(false);p=this.convertNode(p,/^li$/i.test(left.parentNode.tagName)?"br":"p");}
+r.insertNode(df);var a=p.previousSibling.lastChild;if(a&&/^a$/i.test(a.tagName)&&!/\S/.test(a.innerHTML))HTMLArea.removeFromParent(a);if(HTMLArea.is_opera)r.selectNode(p);else r.selectNodeContents(p);}}
+r.collapse(true);if(HTMLArea.is_safari)sel.setBaseAndExtent(r.startContainer,r.startOffset,r.endContainer,r.endOffset);else sel.addRange(r);this.scrollToCaret();};HTMLArea.prototype._detectURL=function(ev){var editor=this;var s=this._getSelection();var autoWrap=function(textNode,tag){var rightText=textNode.nextSibling;if(typeof(tag)=='string')tag=editor._doc.createElement(tag);var a=textNode.parentNode.insertBefore(tag,rightText);HTMLArea.removeFromParent(textNode);a.appendChild(textNode);rightText.data+=" ";s.collapse(rightText,rightText.data.length);HTMLArea._stopEvent(ev);editor._unLink=function(){var t=a.firstChild;a.removeChild(t);a.parentNode.insertBefore(t,a);HTMLArea.removeFromParent(a);t.parentNode.normalize();editor._unLink=null;editor._unlinkOnUndo=false;};editor._unlinkOnUndo=true;return a;};switch(ev.which){case 13:if(ev.shiftKey||editor.config.disableEnterParagraphs)break;case 32:if(s&&s.isCollapsed&&s.anchorNode.nodeType==3&&s.anchorNode.data.length>3&&s.anchorNode.data.indexOf('.')>=0){var midStart=s.anchorNode.data.substring(0,s.anchorOffset).search(/[a-zA-Z0-9]+\S{3,}$/);if(midStart==-1)break;if(this._getFirstAncestor(s,'a'))break;var matchData=s.anchorNode.data.substring(0,s.anchorOffset).replace(/^.*?(\S*)$/,'$1');if(matchData.indexOf('@')!=-1){var m=matchData.match(HTMLArea.RE_email);if(m){var leftText=s.anchorNode;var rightText=leftText.splitText(s.anchorOffset);var midText=leftText.splitText(midStart);var midEnd=midText.data.search(/[^a-zA-Z0-9\.@_\-]/);if(midEnd!=-1)var endText=midText.splitText(midEnd);autoWrap(midText,'a').href='mailto:'+m[0];break;}}
+var m=matchData.match(HTMLArea.RE_url);if(m){var leftText=s.anchorNode;var rightText=leftText.splitText(s.anchorOffset);var midText=leftText.splitText(midStart);var midEnd=midText.data.search(/[^a-zA-Z0-9\._\-\/\&\?=:@]/);if(midEnd!=-1)var endText=midText.splitText(midEnd);autoWrap(midText,'a').href=(m[1]?m[1]:'http://')+m[2];break;}}
+break;default:if(ev.keyCode==27||(editor._unlinkOnUndo&&ev.ctrlKey&&ev.which==122)){if(this._unLink){this._unLink();HTMLArea._stopEvent(ev);}
+break;}else if(ev.which||ev.keyCode==8||ev.keyCode==46){this._unlinkOnUndo=false;if(s.anchorNode&&s.anchorNode.nodeType==3){var a=this._getFirstAncestor(s,'a');if(!a)break;if(!a._updateAnchTimeout){if(s.anchorNode.data.match(HTMLArea.RE_email)&&(a.href.match('mailto:'+s.anchorNode.data.trim()))){var textNode=s.anchorNode;var fn=function(){a.href='mailto:'+textNode.data.trim();a._updateAnchTimeout=setTimeout(fn,250);};a._updateAnchTimeout=setTimeout(fn,250);break;}
+var m=s.anchorNode.data.match(HTMLArea.RE_url);if(m&&a.href.match(s.anchorNode.data.trim())){var textNode=s.anchorNode;var fn=function(){var m=textNode.data.match(HTMLArea.RE_url);a.href=(m[1]?m[1]:'http://')+m[2];a._updateAnchTimeout=setTimeout(fn,250);}
+a._updateAnchTimeout=setTimeout(fn,250);}}}}
+break;}};
\ No newline at end of file
index 6ae3d7c..124e1d7 100644 (file)
 HTMLArea.prototype._initEditMode = function () {
                // We can't set designMode when we are in a hidden TYPO3 tab
                // Then we will set it when the tab comes in the front.
-       var inTYPO3Tab = false;
-       var DTMDiv = this._textArea;
-       while (DTMDiv && (DTMDiv.nodeType == 1) && (DTMDiv.tagName.toLowerCase() != "body")) {
-               if (DTMDiv.tagName.toLowerCase() == "div" && DTMDiv.id.indexOf("DTM-") != -1 && DTMDiv.id.indexOf("-DIV") != -1 && DTMDiv.className == "c-tablayer") {
-                       inTYPO3Tab = true;
-                       break;
-               } else {
-                       DTMDiv = DTMDiv.parentNode;
-               }
+       var isNested = false;
+       var allDisplayed = true;
+
+       if (this.nested.sorted && this.nested.sorted.length) {
+               isNested = true;
+               allDisplayed = HTMLArea.allElementsAreDisplayed(this.nested.sorted);
        }
+
        if (!HTMLArea.is_wamcom) {
                try {
-                       if (!(inTYPO3Tab && DTMDiv.style.display == "none")) this._doc.designMode = "on";
+                       if (!isNested || allDisplayed) this._doc.designMode = "on";
                } catch(e) { }
        } else {
                try { 
                        this._doc.designMode = "on"; 
                } catch(e) {
-                       if (!(inTYPO3Tab && DTMDiv.style.display == "none")) {
+                       if (!isNested || allDisplayed) {
                                this._doc.open();
                                this._doc.close();
                                this._initIframeTimer = window.setTimeout("HTMLArea.initIframe(" + this._editorNumber + ");", 500);
@@ -72,7 +70,15 @@ HTMLArea.prototype._initEditMode = function () {
                // When the TYPO3 TCA feature div2tab is used, the editor iframe may become hidden with style.display = "none"
                // This breaks the editor in Mozilla/Firefox browsers: the designMode attribute needs to be resetted after the style.display of the containing div is resetted to "block"
                // Here we rely on TYPO3 naming conventions for the div id and class name
-       if (inTYPO3Tab) HTMLArea._addEvent(DTMDiv, "DOMAttrModified", HTMLArea.DTMDivHandler(this, DTMDiv));
+       if (this.nested.sorted && this.nested.sorted.length) {
+               var nestedObj, listenerFunction;
+               for (var i=0, length=this.nested.sorted.length; i < length; i++) {
+                       nestedObj = document.getElementById(this.nested.sorted[i]);
+                       listenerFunction = HTMLArea.NestedListener(this, nestedObj, false);
+                       HTMLArea._addEvent(nestedObj, 'DOMAttrModified', listenerFunction);
+               }
+       }
+
        return true;
 };
 
@@ -282,26 +288,44 @@ HTMLArea.prototype.insertHTML = function(html) {
  ***************************************************/
 
 /*
- * TYPO3 hidden tab handler
+ * TYPO3 hidden tab and inline event listener (gets event calls)
  */
-HTMLArea.DTMDivHandler = function (editor,DTMDiv) {
+HTMLArea.NestedListener = function (editor,nestedObj,noOpenCloseAction) {
        return (function(ev) {
                if(!ev) var ev = window.event;
+               HTMLArea.NestedHandler(ev,editor,nestedObj,noOpenCloseAction);
+       });
+};
+
+/*
+ * TYPO3 hidden tab and inline event handler (performs actions on event calls)
+ */
+HTMLArea.NestedHandler = function(ev,editor,nestedObj,noOpenCloseAction) {
+       window.setTimeout(function() {
                var target = (ev.target) ? ev.target : ev.srcElement;
-               if(target == DTMDiv && editor._editMode == "wysiwyg" && DTMDiv.style.display == "block") {
-                       window.setTimeout( function() {
-                               try { 
-                                       editor._doc.designMode = "on";
-                                       if (editor.config.sizeIncludesToolbar && editor._initialToolbarOffsetHeight != editor._toolbar.offsetHeight) editor.sizeIframe(-2);
-                               } catch(e) {
-                                       editor._doc.open();
-                                       editor._doc.close();
-                                       editor.initIframe();
-                               }
-                       }, 20);
+               if(target == nestedObj && editor._editMode == "wysiwyg" && ev.attrName=='style' && (target.style.display == '' || target.style.display == 'block')) {
+                               // Check if all affected nested elements are displayed (style.display!='none'):
+                       if (HTMLArea.allElementsAreDisplayed(editor.nested.sorted)) {
+                               window.setTimeout(function() {
+                                       try { 
+                                               editor._doc.designMode = "on";
+                                               if (editor.config.sizeIncludesToolbar && editor._initialToolbarOffsetHeight != editor._toolbar.offsetHeight) {
+                                                       editor.sizeIframe(-2);
+                                               }
+                                       } catch(e) {
+                                                       // If an event of a parent tab ("nested tabs") is triggered, the following lines should not be
+                                                       // processed, because this causes some trouble on all event handlers...
+                                               if (!noOpenCloseAction) {
+                                                       editor._doc.open();
+                                                       editor._doc.close();
+                                               }
+                                               editor.initIframe();
+                                       }
+                               }, 50);
+                       }
                        HTMLArea._stopEvent(ev);
                }
-       });
+       }, 50);
 };
 
 /*
@@ -538,7 +562,7 @@ HTMLArea.prototype._detectURL = function(ev) {
                        editor._unLink = null;
                        editor._unlinkOnUndo = false;
                };
-               
+
                editor._unlinkOnUndo = true;
                return a;
        };
index cde4469..dcb0ef2 100644 (file)
@@ -1,2 +1,10 @@
-HTMLArea._cleanup=function(editor){for(var handler in editor.eventHandlers)editor.eventHandlers[handler]=null;for(var button in editor.btnList)editor.btnList[button][3]=null;for(var dropdown in editor.config.customSelects){dropdown.action=null;dropdown.refresh=null;}editor.onGenerate=null;HTMLArea._editorEvent=null;if(editor._textArea.form){editor._textArea.form.__msh_prevOnReset=null;editor._textArea.form._editorNumber=null;};HTMLArea.onload=null;if(HTMLArea._eventCache){HTMLArea._eventCache.listEvents=null;HTMLArea._eventCache.add=null;HTMLArea._eventCache.flush=null;HTMLArea._eventCache=null;};for(var i in editor.plugins){var plugin=editor.plugins[i].instance;plugin.onGenerate=null;plugin.onMode=null;plugin.onKeyPress=null;plugin.onSelect=null;plugin.onUpdateTolbar=null;};var obj;for(var txt in editor._toolbarObjects){obj=editor._toolbarObjects[txt];obj["state"]=null;document.getElementById(obj["elementId"])._obj=null;};if(editor._statusBarTree.hasChildNodes()){for(var i=editor._statusBarTree.firstChild;i;i=i.nextSibling){if(i.nodeName.toLowerCase()=="a"){HTMLArea._removeEvents(i,["click","contextmenu"],HTMLArea.statusBarHandler);i.el=null;i.editor=null;}}}};HTMLArea.prototype._getSelection=function(){return this._doc.selection;};HTMLArea.prototype._createRange=function(sel){if(typeof(sel)!="undefined")return sel.createRange();return this._doc.selection.createRange();};HTMLArea.prototype.selectNode=function(node){this.focusEditor();this.forceRedraw();var range=this._doc.body.createTextRange();range.moveToElementText(node);range.select();};HTMLArea.prototype.selectNodeContents=function(node,pos){this.focusEditor();this.forceRedraw();var collapsed=(typeof(pos)!="undefined");var range=this._doc.body.createTextRange();range.moveToElementText(node);(collapsed)&&range.collapse(pos);range.select();};HTMLArea.prototype.getSelectedHTML=function(){var sel=this._getSelection();var range=this._createRange(sel);if(sel.type.toLowerCase()=="control"){var r1=this._doc.body.createTextRange();r1.moveToElementText(range(0));return r1.htmlText;}else{return range.htmlText;}};HTMLArea.prototype.getSelectedHTMLContents=function(){var sel=this._getSelection();var range=this._createRange(sel);return range.htmlText;};HTMLArea.prototype.getParentElement=function(sel){if(!sel)var sel=this._getSelection();var range=this._createRange(sel);switch(sel.type){case "Text":case "None":var el=range.parentElement();if(el.nodeName.toLowerCase()=="li"&&range.htmlText.replace(/\s/g,"")==el.parentNode.outerHTML.replace(/\s/g,""))return el.parentNode;return el;case "Control":return range.item(0);default:return this._doc.body;}};HTMLArea.prototype._activeElement=function(sel){if(sel==null)return null;if(this._selectionEmpty(sel))return null;if(sel.type.toLowerCase()=="control"){return sel.createRange().item(0);}else{var range=sel.createRange();var p_elm=this.getParentElement(sel);if(p_elm.innerHTML==range.htmlText)return p_elm;return null;}};HTMLArea.prototype._selectionEmpty=function(sel){if(!sel)return true;return this._createRange(sel).htmlText=='';};HTMLArea.prototype.insertNodeAtSelection=function(toBeInserted){var sel=this._getSelection();var range=this._createRange(sel);range.pasteHTML(toBeInserted.outerHTML);};HTMLArea.prototype.insertHTML=function(html){this.focusEditor();var sel=this._getSelection();if(sel.type.toLowerCase()=="control"){sel.clear();sel=this._getSelection();};var range=this._createRange(sel);range.pasteHTML(html);};HTMLArea.statusBarHandler=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var editor=target.editor;target.blur();var tagname=target.el.tagName.toLowerCase();if(tagname=="table"||tagname=="img"){var range=editor._doc.body.createControlRange();range.addElement(target.el);range.select();}else{editor.selectNode(target.el);}editor.updateToolbar(true);switch(ev.type){case "click":HTMLArea._stopEvent(ev);return false;case "contextmenu":return editor.plugins["ContextMenu"]?editor.plugins["ContextMenu"].instance.popupMenu(ev,target.el):false;}};HTMLArea.prototype._checkBackspace=function(){var sel=this._getSelection();var range=this._createRange(sel);if(sel.type=="Control"){var el=this.getParentElement();var p=el.parentNode;p.removeChild(el);return true;}else{var r2=range.duplicate();r2.moveStart("character",-1);var a=r2.parentElement();if(a!=range.parentElement()&&/^a$/i.test(a.tagName)){r2.collapse(true);r2.moveEnd("character",1);r2.pasteHTML('');r2.select();return true;};return false;}};
 
+HTMLArea._cleanup=function(editor){for(var handler in editor.eventHandlers)editor.eventHandlers[handler]=null;for(var button in editor.btnList)editor.btnList[button][3]=null;for(var dropdown in editor.config.customSelects){dropdown.action=null;dropdown.refresh=null;}
+editor.onGenerate=null;HTMLArea._editorEvent=null;if(editor._textArea.form){editor._textArea.form.__msh_prevOnReset=null;editor._textArea.form._editorNumber=null;}
+HTMLArea.onload=null;if(HTMLArea._eventCache){HTMLArea._eventCache.listEvents=null;HTMLArea._eventCache.add=null;HTMLArea._eventCache.flush=null;HTMLArea._eventCache=null;}
+for(var i in editor.plugins){var plugin=editor.plugins[i].instance;plugin.onGenerate=null;plugin.onMode=null;plugin.onKeyPress=null;plugin.onSelect=null;plugin.onUpdateTolbar=null;}
+var obj;for(var txt in editor._toolbarObjects){obj=editor._toolbarObjects[txt];obj["state"]=null;document.getElementById(obj["elementId"])._obj=null;}
+if(editor._statusBarTree.hasChildNodes()){for(var i=editor._statusBarTree.firstChild;i;i=i.nextSibling){if(i.nodeName.toLowerCase()=="a"){HTMLArea._removeEvents(i,["click","contextmenu"],HTMLArea.statusBarHandler);i.el=null;i.editor=null;}}}};HTMLArea.prototype._getSelection=function(){return this._doc.selection;};HTMLArea.prototype._createRange=function(sel){if(typeof(sel)!="undefined")return sel.createRange();return this._doc.selection.createRange();};HTMLArea.prototype.selectNode=function(node){this.focusEditor();this.forceRedraw();var range=this._doc.body.createTextRange();range.moveToElementText(node);range.select();};HTMLArea.prototype.selectNodeContents=function(node,pos){this.focusEditor();this.forceRedraw();var collapsed=(typeof(pos)!="undefined");var range=this._doc.body.createTextRange();range.moveToElementText(node);(collapsed)&&range.collapse(pos);range.select();};HTMLArea.prototype.getSelectedHTML=function(){var sel=this._getSelection();var range=this._createRange(sel);if(sel.type.toLowerCase()=="control"){var r1=this._doc.body.createTextRange();r1.moveToElementText(range(0));return r1.htmlText;}else{return range.htmlText;}};HTMLArea.prototype.getSelectedHTMLContents=function(){var sel=this._getSelection();var range=this._createRange(sel);return range.htmlText;};HTMLArea.prototype.getParentElement=function(sel){if(!sel)var sel=this._getSelection();var range=this._createRange(sel);switch(sel.type){case"Text":case"None":var el=range.parentElement();if(el.nodeName.toLowerCase()=="li"&&range.htmlText.replace(/\s/g,"")==el.parentNode.outerHTML.replace(/\s/g,""))return el.parentNode;return el;case"Control":return range.item(0);default:return this._doc.body;}};HTMLArea.prototype._activeElement=function(sel){if(sel==null)return null;if(this._selectionEmpty(sel))return null;if(sel.type.toLowerCase()=="control"){return sel.createRange().item(0);}else{var range=sel.createRange();var p_elm=this.getParentElement(sel);if(p_elm.innerHTML==range.htmlText)return p_elm;return null;}};HTMLArea.prototype._selectionEmpty=function(sel){if(!sel)return true;return this._createRange(sel).htmlText=='';};HTMLArea.prototype.insertNodeAtSelection=function(toBeInserted){var sel=this._getSelection();var range=this._createRange(sel);range.pasteHTML(toBeInserted.outerHTML);};HTMLArea.prototype.insertHTML=function(html){this.focusEditor();var sel=this._getSelection();if(sel.type.toLowerCase()=="control"){sel.clear();sel=this._getSelection();}
+var range=this._createRange(sel);range.pasteHTML(html);};HTMLArea.statusBarHandler=function(ev){if(!ev)var ev=window.event;var target=(ev.target)?ev.target:ev.srcElement;var editor=target.editor;target.blur();var tagname=target.el.tagName.toLowerCase();if(tagname=="table"||tagname=="img"){var range=editor._doc.body.createControlRange();range.addElement(target.el);range.select();}else{editor.selectNode(target.el);}
+editor.updateToolbar(true);switch(ev.type){case"click":HTMLArea._stopEvent(ev);return false;case"contextmenu":return editor.plugins["ContextMenu"]?editor.plugins["ContextMenu"].instance.popupMenu(ev,target.el):false;}};HTMLArea.prototype._checkBackspace=function(){var sel=this._getSelection();var range=this._createRange(sel);if(sel.type=="Control"){var el=this.getParentElement();var p=el.parentNode;p.removeChild(el);return true;}else{var r2=range.duplicate();r2.moveStart("character",-1);var a=r2.parentElement();if(a!=range.parentElement()&&/^a$/i.test(a.tagName)){r2.collapse(true);r2.moveEnd("character",1);r2.pasteHTML('');r2.select();return true;}
+return false;}};
\ No newline at end of file
index 5ae1bf7..6e29957 100644 (file)
@@ -60,7 +60,7 @@
                HTMLArea._eventCache.flush = null;
                HTMLArea._eventCache = null;
        }
-                               
+
                // cleaning plugin handlers
        for (var i in editor.plugins) {
                var plugin = editor.plugins[i].instance;
@@ -70,7 +70,7 @@
                plugin.onSelect = null;
                plugin.onUpdateTolbar = null;
        }
-                               
+
                // cleaning the toolbar elements
        var obj;
        for (var txt in editor._toolbarObjects) {
@@ -78,7 +78,7 @@
                obj["state"] = null;
                document.getElementById(obj["elementId"])._obj = null;
        }
-                               
+
                // cleaning the statusbar elements
        if(editor._statusBarTree.hasChildNodes()) {
                for (var i = editor._statusBarTree.firstChild; i; i = i.nextSibling) {
@@ -233,7 +233,7 @@ HTMLArea.prototype.insertHTML = function(html) {
        var range = this._createRange(sel);
        range.pasteHTML(html);
 };
+
 /***************************************************
  *  EVENT HANDLERS
  ***************************************************/
index 65ca2d2..120d093 100644 (file)
@@ -37,7 +37,7 @@
 /***************************************************
  *  EDITOR INITIALIZATION AND CONFIGURATION
  ***************************************************/
+
 /*
  * Set some basic paths
  */
@@ -638,7 +638,7 @@ HTMLArea.prototype.createButton = function (txt,tb_line,first_cell_on_line,label
                        newObj["labelUsed"] = true;
                }
                HTMLArea._addEvents(newObj["el"],["mouseover", "mouseout", "mousedown", "click"], HTMLArea.toolBarButtonHandler);
-               
+
                if (typeof(btn[1]) != "string" && HTMLArea.is_ie) {
                        var btnImgContainer = document.createElement("div");
                        btnImgContainer.className = "buttonImgContainer";
@@ -734,7 +734,7 @@ HTMLArea.prototype._createToolbar = function () {
                        }
                }
        }
-       
+
        tb_line = HTMLArea.newLine(toolbar);
        this._htmlArea.appendChild(toolbar);
 };
@@ -882,19 +882,15 @@ HTMLArea.prototype.generate = function () {
  * Size the iframe according to user's prefs or initial textarea
  */
 HTMLArea.prototype.sizeIframe = function(diff) {
-       var i;
        var height = (this.config.height == "auto" ? (this._textArea.style.height) : this.config.height);
        var textareaHeight = height;
-
-       var inlineObject = RTEarea[this._editorNumber].tceformsInlineObject;
-       var dynTabs = RTEarea[this._editorNumber].tceformsDynTabs;
-
-       var parentElements = new Array();
-       if (dynTabs) parentElements = dynTabs.split(',');
-       if (inlineObject) parentElements.push(inlineObject);
-
+               // All nested tabs and inline levels in the sorting order they were applied:
+       this.nested = RTEarea[this._editorNumber].tceformsNested;
+               // Clone the array instead of using a reference (this.accessParentElements will change the array):
+       var parentElements = (this.nested.sorted && this.nested.sorted.length ? [].concat(this.nested.sorted) : []);
+               // Walk through all nested tabs and inline levels to make a correct positioning:
        var dimensions = this.accessParentElements(parentElements, 'this.getDimensions()');
-                       
+
        if(height.indexOf("%") == -1) {
                height = parseInt(height) - diff;               
                if (this.config.sizeIncludesToolbar) {
@@ -937,7 +933,7 @@ HTMLArea.prototype.getDimensions = function() {
 };
 
 /**
- * Access an inline relational element and make it "accesible".
+ * Access an inline relational element or tab menu and make it "accesible".
  * If a parent object has the style "display: none", offsetWidth & offsetHeight are '0'.
  *
  * @params     object          callbackFunc: A function to be called, when the embedded objects are "accessible".
@@ -946,12 +942,12 @@ HTMLArea.prototype.getDimensions = function() {
  */
 HTMLArea.prototype.accessParentElements = function(parentElements, callbackFunc) {
        var result = {};
-       
+
        if (parentElements.length) {
                var currentElement = parentElements.pop();
                var elementStyle = document.getElementById(currentElement).style;
-               var actionRequired = elementStyle.display == 'none';
-               
+               var actionRequired = (elementStyle.display == 'none' ? true : false);
+
                if (actionRequired) {
                        var originalVisibility = elementStyle.visibility;
                        var originalPosition = elementStyle.position;
@@ -959,20 +955,20 @@ HTMLArea.prototype.accessParentElements = function(parentElements, callbackFunc)
                        elementStyle.position = 'absolute';
                        elementStyle.display = '';
                }
-               
+
                result = this.accessParentElements(parentElements, callbackFunc);
-               
+
                if (actionRequired) {
                        elementStyle.display = 'none';
                        elementStyle.position = originalPosition;
                        elementStyle.visibility = originalVisibility;
                }
-               
+
        } else {
                result = eval(callbackFunc);            
 
        }
-       
+
        return result;
 };
 
@@ -1064,9 +1060,9 @@ HTMLArea.stylesLoaded = function(editorNumber) {
 HTMLArea.prototype.stylesLoaded = function() {
        var doc = this._doc;
        var docWellFormed = true;
-       
+
                // check if the stylesheets have been loaded
-       
+
        if (this._stylesLoadedTimer) window.clearTimeout(this._stylesLoadedTimer);
        var stylesAreLoaded = true;
        var errorText = '';
@@ -1082,7 +1078,7 @@ HTMLArea.prototype.stylesLoaded = function() {
                return false;
        }
        HTMLArea._appendToLog("[HTMLArea::initIframe]: Stylesheets successfully loaded.");
-       
+
        if (!this.config.fullPage) {
                doc.body.style.borderWidth = "0px";
                doc.body.className = "htmlarea-content-body";
@@ -1110,20 +1106,23 @@ HTMLArea.prototype.stylesLoaded = function() {
                this.setMode("docnotwellformedmode");
                HTMLArea._appendToLog("[HTMLArea::initIframe]: Design mode could not be set.");
        }
-       
+
                // set editor number in iframe and document for retrieval in event handlers
        doc._editorNo = this._editorNumber;
        if (HTMLArea.is_ie) doc.documentElement._editorNo = this._editorNumber;
-       
+
                // intercept events for updating the toolbar & for keyboard handlers
        HTMLArea._addEvents((HTMLArea.is_ie ? doc.body : doc), ["keydown","keypress","mousedown","mouseup","drag"], HTMLArea._editorEvent, true);
-       
+
                // add unload handler
-       HTMLArea._addEvent((this._iframe.contentWindow ? this._iframe.contentWindow : this._iframe.contentDocument), "unload", HTMLArea.removeEditorEvents);
-       
+       if (!HTMLArea.hasUnloadHandler) {
+               HTMLArea.hasUnloadHandler = true;
+               HTMLArea._addEvent((this._iframe.contentWindow ? this._iframe.contentWindow : this._iframe.contentDocument), "unload", HTMLArea.removeEditorEvents);
+       }
+
                // set cleanWordOnPaste and intercept paste, dragdrop and drop events for wordClean
        if (this.config.cleanWordOnPaste) HTMLArea._addEvents((HTMLArea.is_ie ? doc.body : doc), ["paste","dragdrop","drop"], HTMLArea.cleanWordOnPaste, true);
-       
+
        window.setTimeout("HTMLArea.generatePlugins(" + this._editorNumber + ");", 100);
 };
 
@@ -1187,10 +1186,10 @@ HTMLArea.removeEditorEvents = function(ev) {
                        window.clearInterval(editor._timerUndo);
                        editor._undoQueue = null;
                                // release events
-                       if (HTMLArea._eventCache && !HTMLArea.is_opera) HTMLArea._eventCache.flush();
                        if (HTMLArea.is_ie) HTMLArea._cleanup(editor);
                }
        }
+       if (HTMLArea._eventCache && !HTMLArea.is_opera) HTMLArea._eventCache.flush();
 };
 
 /*
@@ -1611,7 +1610,7 @@ HTMLArea.prototype.updateToolbar = function(noStatus) {
        for (i in this._toolbarObjects) {
                var btn = this._toolbarObjects[i];
                cmd = i;
-               
+
                        // Determine if the button should be enabled
                inContext = true;
                if (btn.context && !text) {
@@ -1644,7 +1643,7 @@ HTMLArea.prototype.updateToolbar = function(noStatus) {
                }
                if (cmd == "CreateLink") btn.state("enabled", (!text || btn.text) && (inContext || selection));
                        else btn.state("enabled", (!text || btn.text) && inContext && (selection || !btn.selection));
-               
+
                if (typeof(cmd) == "function") { continue; };
                        // look-it-up in the custom dropdown boxes
                var dropdown = this.config.customSelects[cmd];
@@ -1734,7 +1733,7 @@ HTMLArea.prototype.updateToolbar = function(noStatus) {
                    default: break;
                }
        }
-       
+
        if (this._customUndo) this._undoTakeSnapshot();
        for (i in this.plugins) {
                var plugin = this.plugins[i].instance;
@@ -2514,7 +2513,7 @@ HTMLArea._removeClass = function(el, removeClassName) {
        if (ar.length == 0) {
                if (!HTMLArea.is_opera) el.removeAttribute(HTMLArea.is_gecko ? "class" : "className");
                        else el.className = '';
-               
+
        } else el.className = ar.join(" ");
 };
 
@@ -2778,7 +2777,7 @@ HTMLArea._postback = function(url, data, handler, addParams, charset) {
                                } catch (e) { }
                        }
                }
-       
+
        if(req) {
                var content = '';
                for (var i in data) {
@@ -2791,7 +2790,7 @@ HTMLArea._postback = function(url, data, handler, addParams, charset) {
                } else {
                        var postUrl = _typo3_host_url + _editor_url + url;
                }
-               
+
                function callBack() {
                        if(req.readyState == 4) {
                                if (req.status == 200) {
@@ -2807,7 +2806,7 @@ HTMLArea._postback = function(url, data, handler, addParams, charset) {
                        HTMLArea._appendToLog("[HTMLArea::_postback]: Request: " + content);
                        req.send(content);
                }
-               
+
                req.open('POST', postUrl, true);
                req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
                window.setTimeout(sendRequest, 500);
@@ -2828,12 +2827,12 @@ Dialog = function(url, action, init, width, height, opener, editor, scrollbars)
  * Open modal popup window
  */
 Dialog._open = function(url, action, init, width, height, _opener, editor, scrollbars) {
-       
+
        if (typeof(Dialog._modal) == "object" && typeof(Dialog._modal.close) == "function") {
                Dialog._modal.close();
                Dialog._modal = null;
        }
-       
+
        var dlg = window.open(url, 'hadialog', "toolbar=no,location=no,directories=no,menubar=no,width=" + width + ",height=" + height + ",scrollbars=" + scrollbars + ",resizable=yes,modal=yes,dependent=yes,top=100,left=100");
        var obj = new Object();
        obj.dialogWindow = dlg;
@@ -2841,7 +2840,7 @@ Dialog._open = function(url, action, init, width, height, _opener, editor, scrol
        Dialog._modal = dlg;
        Dialog._arguments = null;
        if (typeof(init) != "undefined") { Dialog._arguments = init; }
-       
+
                                // Capture focus events
        function capwin(w) {
                if (HTMLArea.is_gecko) { w.addEventListener("focus", function(ev) { Dialog._parentEvent(ev); }, false); }
@@ -2849,7 +2848,7 @@ Dialog._open = function(url, action, init, width, height, _opener, editor, scrol
                for (var i=0;i < w.frames.length;i++) { capwin(w.frames[i]); }
        }
        capwin(window);
-       
+
                // Close dialog window
        function closeDialog() {
                if (Dialog._dialog && Dialog._dialog.dialogWindow) {
@@ -2974,21 +2973,21 @@ HTMLArea.initEditor = function(editorNumber) {
                } else {
                        var RTE = RTEarea[editorNumber];
                        var config = new HTMLArea.Config();
-                       
+
                                // Get the toolbar config
                        config.toolbar = RTE["toolbar"];
-                       
+
                                // create an editor for the textarea
                        RTE["editor"] = new HTMLArea(RTE["id"], config);
                        var editor = RTE["editor"];
-                       
+
                                // Save the editornumber in the object
                        editor._typo3EditerNumber = editorNumber;
                        editor._editorNumber = editorNumber;
                        config = editor.config;
-                       
+
                        config.buttons = RTE["buttons"];
-                       
+
                        config.hideTableOperationsInToolbar = RTE["hideTableOperationsInToolbar"] ? RTE["hideTableOperationsInToolbar"] : false;
                        config.disableLayoutFieldsetInTableOperations = RTE["disableLayoutFieldsetInTableOperations"] ? RTE["disableLayoutFieldsetInTableOperations"] : false;
                        config.disableAlignmentFieldsetInTableOperations = RTE["disableAlignmentFieldsetInTableOperations"] ? RTE["disableAlignmentFieldsetInTableOperations"] : false;
@@ -2996,11 +2995,11 @@ HTMLArea.initEditor = function(editorNumber) {
                        config.disableBordersFieldsetInTableOperations = RTE["disableBordersFieldsetInTableOperations"] ? RTE["disableBordersFieldsetInTableOperations"] : false;
                        config.disableColorFieldsetInTableOperations = RTE["disableColorFieldsetInTableOperations"] ? RTE["disableColorFieldsetInTableOperations"] : false;
                        config.disablePCexamples = RTE["disablePCexamples"] ? RTE["disablePCexamples"] : false;
-                       
+
                        for (var plugin in RTE["plugin"]) {
                                if(RTE["plugin"][plugin]) { editor.registerPlugin(plugin); }
                        }
-                       
+
                        if(RTE["defaultPageStyle"]) config.defaultPageStyle = RTE["defaultPageStyle"];
                        if(RTE["pageStyle"]) config.pageStyle = RTE["pageStyle"];
                        if(RTE["fontname"]) config.FontName = RTE["fontname"];
@@ -3023,9 +3022,9 @@ HTMLArea.initEditor = function(editorNumber) {
                        config.htmlRemoveTags = RTE["htmlRemoveTags"] ? RTE["htmlRemoveTags"] : null;
                        config.htmlRemoveTagsAndContents = RTE["htmlRemoveTagsAndContents"] ? RTE["htmlRemoveTagsAndContents"] : null;
                        config.htmlRemoveComments = RTE["htmlRemoveComments"] ? true : false;
-                       
+
                        editor.onGenerate = HTMLArea.onGenerateHandler(editorNumber);
-                       
+
                        editor.generate();
                        return false;
                } 
@@ -3034,3 +3033,12 @@ HTMLArea.initEditor = function(editorNumber) {
                document.getElementById('editorWrap' + editorNumber).style.visibility = 'visible';
        }
 };
+
+HTMLArea.allElementsAreDisplayed = function(elements) {
+       for (var i=0, length=elements.length; i < length; i++) {
+               if (document.getElementById(elements[i]).style.display == 'none') {
+                       return false;
+               }
+       }
+       return true;
+};
\ No newline at end of file