View file www/admin/htmleditor/editor/js/fckeditorcode_gecko_2.js

File size: 64.38Kb
/*
 * FCKeditor - The text editor for internet
 * Copyright (C) 2003-2004 Frederico Caldeira Knabben
 * 
 * Licensed under the terms of the GNU Lesser General Public License:
 * 		http://www.opensource.org/licenses/lgpl-license.php
 * 
 * For further information visit:
 * 		http://www.fckeditor.net/
 * 
 * This file has been compacted for best loading performance.
 * 
 * Version: 2.0 RC2
 * Created: 2004-12-21 23:53:26
 */
FCK.RedirectNamedCommands=new Object();FCK.ExecuteNamedCommand=function(commandName,commandParameter){if (FCK.RedirectNamedCommands[commandName]!=null) FCK.ExecuteRedirectedNamedCommand(commandName,commandParameter);else{FCK.Focus();FCK.EditorDocument.execCommand(commandName,false,commandParameter);FCK.Events.FireEvent('OnSelectionChange');};};FCK.GetNamedCommandState=function(commandName){try{if (!FCK.EditorDocument.queryCommandEnabled(commandName)) return FCK_TRISTATE_DISABLED;else return FCK.EditorDocument.queryCommandState(commandName)?FCK_TRISTATE_ON:FCK_TRISTATE_OFF;}catch (e){return FCK_TRISTATE_OFF;};};FCK.GetNamedCommandValue=function(commandName){var sValue='';var eState=FCK.GetNamedCommandState(commandName);if (eState==FCK_TRISTATE_DISABLED) return null;try{sValue=this.EditorDocument.queryCommandValue(commandName);}catch(e) {};return sValue?sValue:'';};FCK.CleanAndPaste=function(html){html=html.replace(/<\/?SPAN[^>]*>/gi,"");html=html.replace(/<(\w[^>]*) class=([^ |>]*)([^>]*)/gi,"<$1$3");html=html.replace(/<(\w[^>]*) style="([^"]*)"([^>]*)/gi,"<$1$3");html=html.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");html=html.replace(/<\\?\?xml[^>]*>/gi,"");html=html.replace(/<\/?\w+:[^>]*>/gi,"");html=html.replace(/&nbsp;/," ");var re=new RegExp("(<P)([^>]*>.*?)(<\/P>)","gi");html=html.replace(re,"<div$2</div>");FCK.InsertHtml(html);};FCK.Preview=function(){var oWindow=window.open('',null,'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');var sHTML='<html><head><link href="'+FCKConfig.EditorAreaCSS+'" rel="stylesheet" type="text/css" /></head><body>'+FCK.GetHTML()+'</body></html>';oWindow.document.write(sHTML);oWindow.document.close();};FCK.SwitchEditMode=function(){var bWYSIWYG=(FCK.EditMode==FCK_EDITMODE_WYSIWYG);document.getElementById('eWysiwyg').style.display=bWYSIWYG?'none':'';document.getElementById('eSource').style.display=bWYSIWYG?'':'none';if (bWYSIWYG) document.getElementById('eSourceField').value=(FCKConfig.EnableXHTML&&FCKConfig.EnableSourceXHTML?FCK.GetXHTML():FCK.GetHTML());else{FCK.SetHTML(FCK.GetHTML(),true);if (FCKBrowserInfo.IsGecko) FCK.MakeEditable();};FCK.EditMode=bWYSIWYG?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCK.Focus();FCKToolbarSet.RefreshItemsState();};FCK.CreateElement=function(tag){var e=FCK.EditorDocument.createElement(tag);e.setAttribute('__FCKTempLabel','1');this.InsertElement(e);var aEls=FCK.EditorDocument.getElementsByTagName(tag);for (var i=0;i<aEls.length;i++){if (aEls[i].attributes['__FCKTempLabel']){aEls[i].removeAttribute('__FCKTempLabel');return aEls[i];};};};
FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(commandName){switch (commandName){case 'Unlink':return FCKSelection.HasAncestorNode('A')?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;default:return FCK._BaseGetNamedCommandState(commandName);};};FCK.RedirectNamedCommands={Print:true,Paste:true,Cut:true,Copy:true};FCK.ExecuteRedirectedNamedCommand=function(commandName,commandParameter){switch (commandName){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try			{ if (FCK.Paste()) FCK._BaseExecuteNamedCommand('Paste');}catch (e)	{ alert(FCKLang.PasteErrorPaste);};break;case 'Cut':try			{ FCK._BaseExecuteNamedCommand('Cut');}catch (e)	{ alert(FCKLang.PasteErrorCut);};break;case 'Copy':try			{ FCK._BaseExecuteNamedCommand('Copy');}catch (e)	{ alert(FCKLang.PasteErrorCopy);};break;default:FCK.ExecuteNamedCommand(commandName,commandParameter);};};FCK.AttachToOnSelectionChange=function(functionPointer){this.Events.AttachEvent('OnSelectionChange',functionPointer);};FCK.Paste=function(){if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;}else if (FCKConfig.AutoDetectPasteFromWord&&FCKBrowserInfo.IsIE55OrMore){var sHTML=FCK.GetClipboardHTML();var re=/<\w[^>]* class="?MsoNormal"?/gi;if (re.test(sHTML)){if (confirm(FCKLang["PasteWordConfirm"])){FCK.CleanAndPaste(sHTML);return false;};};}else return true;};FCK.InsertHtml=function(html){var oSel=FCKSelection.Delete();var oRange=oSel.getRangeAt(0);var oFragment=oRange.createContextualFragment(html);var oLastNode=oFragment.lastChild;oRange.insertNode(oFragment);oRange.setEndAfter(oLastNode);oRange.setStartAfter(oLastNode);oSel.removeAllRanges();oSel=FCK.EditorWindow.getSelection();oSel.addRange(oRange);this.Focus();};FCK.InsertElement=function(element){var oSel=FCKSelection.Delete();var oRange=oSel.getRangeAt(0);oRange.insertNode(element);oRange.setEndAfter(element);oRange.setStartAfter(element);this.Focus();};FCK.PasteAsPlainText=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');};FCK.PasteFromWord=function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(url){FCK.ExecuteNamedCommand('Unlink');if (url.length>0){var sTempUrl='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',sTempUrl);var oLink=document.evaluate("//a[@href='"+sTempUrl+"']",this.EditorDocument.body,null,9,null).singleNodeValue;if (oLink){oLink.href=url;return oLink;};};};
var FCKSelection=new Object();FCK.Selection=FCKSelection;
FCKSelection.GetType=function(){this._Type='Text';var oSel=FCK.EditorWindow.getSelection();if (oSel&&oSel.rangeCount==1){var oRange=oSel.getRangeAt(0);if (oRange.startContainer==oRange.endContainer&&(oRange.endOffset-oRange.startOffset)==1) this._Type='Control';};return this._Type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var oSel=FCK.EditorWindow.getSelection();return oSel.anchorNode.childNodes[oSel.anchorOffset];};};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentElement;else{var oNode=FCK.EditorWindow.getSelection().anchorNode;while (oNode&&oNode.nodeType!=1) oNode=oNode.parentNode;return oNode;};};FCKSelection.MoveToNode=function(node){var oSel=FCK.EditorWindow.getSelection();for (i=oSel.rangeCount-1;i>=0;i--){if (i==0) oSel.getRangeAt(i).selectNodeContents(node);else oSel.removeRange(oSel.getRangeAt(i));};};FCKSelection.HasAncestorNode=function(nodeTagName){var oContainer=this.GetSelectedElement();if (!oContainer&&FCK.EditorWindow){try		{ oContainer=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;}catch(e){};};while (oContainer){if (oContainer.tagName==nodeTagName) return true;oContainer=oContainer.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(nodeTagName){var oNode;var oContainer=this.GetSelectedElement();if (!oContainer) oContainer=FCK.EditorWindow.getSelection().getRangeAt(0).startContainer;while (oContainer){if (oContainer.tagName==nodeTagName) return oContainer;oContainer=oContainer.parentNode;};};FCKSelection.Delete=function(){var oSel=FCK.EditorWindow.getSelection();for (var i=0;i<oSel.rangeCount;i++){oSel.getRangeAt(i).deleteContents();};return oSel;}
var FCKPanel=function(parentWindow){if (parentWindow) this.Window=parentWindow;else{this.Window=window;while (this.Window!=window.top&&this.Window.parent.document.body.tagName!='FRAMESET'){this.Window=this.Window.parent;};};};FCKPanel.prototype.Create=function(){this._IFrame=this.Window.document.body.appendChild(this.Window.document.createElement('IFRAME'));this._IFrame.src='about:blank';this._IFrame.frameBorder='0';this._IFrame.scrolling='no';this._IFrame.style.left='0px';this._IFrame.style.top='0px';this._IFrame.width=10;this._IFrame.height=10;this._IFrame.style.position='absolute';this._IFrame.style.visibility='hidden';this._IFrame.IsFCKPanel=true;this._IFrame.Panel=this;this.Document=this._IFrame.contentWindow.document;this.Document.open();this.Document.write('<html><head></head><body><\/body><\/html>');this.Document.close();this.Document.body.style.margin=this.Document.body.style.padding='0px';if (this.StyleSheet) FCKTools.AppendStyleSheet(this.Document,this.StyleSheet);this.OuterDiv=this.Document.body.appendChild(this.Document.createElement('DIV'));this.OuterDiv.style.cssFloat='left';this.PanelDiv=this.OuterDiv.appendChild(this.Document.createElement('DIV'));this.PanelDiv.className='FCK_Panel';this.Created=true;};FCKPanel.prototype.Show=function(panelX,panelY,relElement,width,height,autoSize){if (!this.Created) this.Create();if (width!=null&&autoSize&&width<this.OuterDiv.offsetWidth) this.PanelDiv.style.width=width;if (height!=null&&autoSize&&height<this.PanelDiv.offsetHeight) this.PanelDiv.style.height=height+'px';var oPos=this.GetElementPosition(relElement);panelX+=oPos.X;panelY+=oPos.Y;if (panelX+this.OuterDiv.offsetWidth>this.Window.innerWidth){panelX-=panelX+this.OuterDiv.offsetWidth-this.Window.innerWidth;};this._IFrame.style.left=panelX+'px';this._IFrame.style.top=panelY+'px';function SetOnClickListener(targetWindow,targetFunction){if (targetWindow==null||(targetWindow.frameElement&&targetWindow.frameElement.IsFCKPanel)) return;targetWindow.document.addEventListener('click',targetFunction,false);for (var i=0;i<targetWindow.frames.length;i++) SetOnClickListener(targetWindow.frames[i],targetFunction);};SetOnClickListener(window.top,FCKPanelEventHandlers.OnDocumentClick);this._IFrame.width=this.OuterDiv.offsetWidth;this._IFrame.height=this.OuterDiv.offsetHeight;this._IFrame.style.visibility='';};FCKPanel.prototype.GetElementPosition=function(el){var c={ X:0,Y:0 };while (el){c.X+=el.offsetLeft;c.Y+=el.offsetTop;if (el.offsetParent==null&&el.ownerDocument.defaultView!=this.Window) el=el.ownerDocument.defaultView.frameElement;else el=el.offsetParent;};return c;};FCKPanel.prototype.Hide=function(){this._IFrame.style.visibility='hidden';};var FCKPanelEventHandlers=new Object();FCKPanelEventHandlers.OnDocumentClick=function(e){var oWindow=e.target.ownerDocument.defaultView;if (!oWindow.IsFCKPanel){function RemoveOnClickListener(targetWindow){if (targetWindow==null) return;if (targetWindow.frameElement&&targetWindow.frameElement.IsFCKPanel) targetWindow.frameElement.Panel.Hide();else targetWindow.document.removeEventListener('click',FCKPanelEventHandlers.OnDocumentClick,false);for (var i=0;i<targetWindow.frames.length;i++) RemoveOnClickListener(targetWindow.frames[i]);};RemoveOnClickListener(window.top);};}
var FCKTableHandler=new Object();FCKTableHandler.InsertRow=function(){var oRow=FCKSelection.MoveToAncestorNode("TR");if (!oRow) return;var oNewRow=oRow.cloneNode(true);oRow.parentNode.insertBefore(oNewRow,oRow);FCKTableHandler.ClearRow(oRow);};FCKTableHandler.DeleteRows=function(row){if (!row) row=FCKSelection.MoveToAncestorNode("TR");if (!row) return;var oTable=FCKTools.GetElementAscensor(row,'TABLE');if (oTable.rows.length==1){FCKTableHandler.DeleteTable(oTable);return;};row.parentNode.removeChild(row);};FCKTableHandler.DeleteTable=function(table){if (!table) table=FCKSelection.MoveToAncestorNode("TABLE");if (!table) return;table.parentNode.removeChild(table);};FCKTableHandler.InsertColumn=function(){var oCell=FCKSelection.MoveToAncestorNode("TD");if (!oCell) return;var oTable=FCKTools.GetElementAscensor(oCell,'TABLE');var iIndex=oCell.cellIndex+1;for (var i=0;i<oTable.rows.length;i++){var oRow=oTable.rows[i];if (oRow.cells.length<iIndex) continue;oCell=FCK.EditorDocument.createElement('TD');oCell.innerHTML='&nbsp;';var oBaseCell=oRow.cells[iIndex];if (oBaseCell){oRow.insertBefore(oCell,oBaseCell);}else{oRow.appendChild(oCell);};};};FCKTableHandler.DeleteColumns=function(){var oCell=FCKSelection.MoveToAncestorNode("TD");if (!oCell) return;var oTable=FCKTools.GetElementAscensor(oCell,'TABLE');var iIndex=oCell.cellIndex;for (var i=oTable.rows.length-1;i>=0;i--){var oRow=oTable.rows[i];if (iIndex==0&&oRow.cells.length==1){FCKTableHandler.DeleteRows(oRow);continue;};if (oRow.cells[iIndex]) oRow.removeChild(oRow.cells[iIndex]);};};FCKTableHandler.InsertCell=function(cell){var oCell=cell?cell:FCKSelection.MoveToAncestorNode("TD");if (!oCell) return;var oNewCell=FCK.EditorDocument.createElement("TD");oNewCell.innerHTML="&nbsp;";if (oCell.cellIndex==oCell.parentNode.cells.lenght-1){oCell.parentNode.appendChild(oNewCell);}else{oCell.parentNode.insertBefore(oNewCell,oCell.nextSibling);};return oNewCell;};FCKTableHandler.DeleteCell=function(cell){if (cell.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(cell,'TR'));return;};cell.parentNode.removeChild(cell);};FCKTableHandler.DeleteCells=function(){var aCells=FCKTableHandler.GetSelectedCells();for (var i=aCells.length-1;i>=0;i--){FCKTableHandler.DeleteCell(aCells[i]);};};FCKTableHandler.MergeCells=function(){var aCells=FCKTableHandler.GetSelectedCells();if (aCells.length<2) return;if (aCells[0].parentNode!=aCells[aCells.length-1].parentNode) return;var iColSpan=isNaN(aCells[0].colSpan)?1:aCells[0].colSpan;var sHtml='';for (var i=aCells.length-1;i>0;i--){iColSpan+=isNaN(aCells[i].colSpan)?1:aCells[i].colSpan;sHtml=aCells[i].innerHTML+sHtml;FCKTableHandler.DeleteCell(aCells[i]);};aCells[0].colSpan=iColSpan;aCells[0].innerHTML+=sHtml;};FCKTableHandler.SplitCell=function(){var aCells=FCKTableHandler.GetSelectedCells();if (aCells.length!=1) return;var aMap=this._CreateTableMap(aCells[0].parentNode.parentNode);var iCellIndex=FCKTableHandler._GetCellIndexSpan(aMap,aCells[0].parentNode.rowIndex,aCells[0]);var aCollCells=this._GetCollumnCells(aMap,iCellIndex);for (var i=0;i<aCollCells.length;i++){if (aCollCells[i]==aCells[0]){var oNewCell=this.InsertCell(aCells[0]);if (!isNaN(aCells[0].rowSpan)&&aCells[0].rowSpan>1) oNewCell.rowSpan=aCells[0].rowSpan;}else{if (isNaN(aCollCells[i].colSpan)) aCollCells[i].colSpan=2;else aCollCells[i].colSpan+=1;};};};FCKTableHandler._GetCellIndexSpan=function(tableMap,rowIndex,cell){if (tableMap.length<rowIndex+1) return;var oRow=tableMap[rowIndex];for (var c=0;c<oRow.length;c++){if (oRow[c]==cell) return c;};};FCKTableHandler._GetCollumnCells=function(tableMap,collumnIndex){var aCollCells=new Array();for (var r=0;r<tableMap.length;r++){var oCell=tableMap[r][collumnIndex];if (oCell&&(aCollCells.length==0||aCollCells[aCollCells.length-1]!=oCell)) aCollCells[aCollCells.length]=oCell;};return aCollCells;};FCKTableHandler._CreateTableMap=function(table){var aRows=table.rows;var r=-1;var aMap=new Array();for (var i=0;i<aRows.length;i++){r++;if (!aMap[r]) aMap[r]=new Array();var c=-1;for (var j=0;j<aRows[i].cells.length;j++){var oCell=aRows[i].cells[j];c++;while (aMap[r][c]) c++;var iColSpan=isNaN(oCell.colSpan)?1:oCell.colSpan;var iRowSpan=isNaN(oCell.rowSpan)?1:oCell.rowSpan;for (var rs=0;rs<iRowSpan;rs++){if (!aMap[r+rs]) aMap[r+rs]=new Array();for (var cs=0;cs<iColSpan;cs++){aMap[r+rs][c+cs]=aRows[i].cells[j];};};c+=iColSpan-1;};};return aMap;};FCKTableHandler.ClearRow=function(tr){var aCells=tr.cells;for (var i=0;i<aCells.length;i++){aCells[i].innerHTML='&nbsp;';};}
FCKTableHandler.GetSelectedCells=function(){var aCells=new Array();var oSelection=FCK.EditorWindow.getSelection();if (oSelection.rangeCount==1&&oSelection.anchorNode.nodeType==3){var oParent=FCKTools.GetElementAscensor(oSelection.anchorNode,'TD');if (oParent){aCells[0]=oParent;return aCells;};};for (var i=0;i<oSelection.rangeCount;i++){var oRange=oSelection.getRangeAt(i);var oCell=oRange.startContainer.childNodes[oRange.startOffset];if (oCell.tagName=='TD') aCells[aCells.length]=oCell;};return aCells;};
var FCKXml=function(){};FCKXml.prototype.GetHttpRequest=function(){if (window.XMLHttpRequest) return new XMLHttpRequest();else if (window.ActiveXObject) return new ActiveXObject("MsXml2.XmlHttp");};FCKXml.prototype.LoadUrl=function(urlToCall,asyncFunctionPointer){var oFCKXml=this;var bAsync=(typeof(asyncFunctionPointer)=='function');var oXmlHttp=this.GetHttpRequest();oXmlHttp.open("GET",urlToCall,bAsync);if (bAsync){oXmlHttp.onreadystatechange=function(){if (oXmlHttp.readyState==4){oFCKXml.DOMDocument=oXmlHttp.responseXML;asyncFunctionPointer(oFCKXml);};};};oXmlHttp.send(null);if (!bAsync&&oXmlHttp.status&&oXmlHttp.status==200) this.DOMDocument=oXmlHttp.responseXML;else throw('Error loading "'+urlToCall+'"');};FCKXml.prototype.SelectNodes=function(xpath,contextNode){if (document.all){if (contextNode) return contextNode.selectNodes(xpath);else return this.DOMDocument.selectNodes(xpath);}else{var aNodeArray=new Array();var xPathResult=this.DOMDocument.evaluate(xpath,contextNode?contextNode:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if (xPathResult){var oNode=xPathResult.iterateNext();while(oNode){aNodeArray[aNodeArray.length]=oNode;oNode=xPathResult.iterateNext();};};return aNodeArray;};};FCKXml.prototype.SelectSingleNode=function(xpath,contextNode){if (document.all){if (contextNode) return contextNode.selectSingleNode(xpath);else return this.DOMDocument.selectSingleNode(xpath);}else{var xPathResult=this.DOMDocument.evaluate(xpath,contextNode?contextNode:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if (xPathResult&&xPathResult.singleNodeValue) return xPathResult.singleNodeValue;else return null;};};
var FCKStyleDef=function(name,element){this.Name=name;this.Element=element.toUpperCase();this.IsObjectElement=FCKRegexLib.ObjectElements.test(this.Element);this.Attributes=new Object();};FCKStyleDef.prototype.AddAttribute=function(name,value){this.Attributes[name]=value;};FCKStyleDef.prototype.GetOpenerTag=function(){var s='<'+this.Element;for (var a in this.Attributes) s+=' '+a+'="'+this.Attributes[a]+'"';return s+'>';};FCKStyleDef.prototype.GetCloserTag=function(){return '</'+this.Element+'>';};FCKStyleDef.prototype.RemoveFromSelection=function(){if (FCKSelection.GetType()=='Control') this._RemoveMe(FCKSelection.GetSelectedElement());else this._RemoveMe(FCKSelection.GetParentElement());}
FCKStyleDef.prototype.ApplyToSelection=function(){if (FCKSelection.GetType()=='Text'&&!this.IsObjectElement){var oSelection=FCK.EditorWindow.getSelection();var e=FCK.EditorDocument.createElement(this.Element);for (var i=0;i<oSelection.rangeCount;i++){e.appendChild(oSelection.getRangeAt(i).extractContents());};this._AddAttributes(e);this._RemoveDuplicates(e);var oRange=oSelection.getRangeAt(0);oRange.insertNode(e);}else{var oControl=FCKSelection.GetSelectedElement();if (oControl.tagName==this.Element) this._AddAttributes(oControl);};};FCKStyleDef.prototype._AddAttributes=function(targetElement){for (var a in this.Attributes) targetElement.setAttribute(a,this.Attributes[a],0);};FCKStyleDef.prototype._RemoveDuplicates=function(parent){for (var i=0;i<parent.childNodes.length;i++){var oChild=parent.childNodes[i];if (oChild.nodeType!=1) continue;this._RemoveDuplicates(oChild);if (this.IsEqual(oChild)) FCKTools.RemoveOuterTags(oChild);};};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){if (e.getAttribute(a)!=this.Attributes[a]) return false;};return true;};FCKStyleDef.prototype._RemoveMe=function(elementToCheck){if (!elementToCheck) return;var oParent=elementToCheck.parentNode;if (elementToCheck.nodeType==1&&this.IsEqual(elementToCheck)){if (this.IsObjectElement){for (var a in this.Attributes) elementToCheck.removeAttribute(a,0);return;}else FCKTools.RemoveOuterTags(elementToCheck);};this._RemoveMe(oParent);}
var FCKStylesLoader=function(){this.Styles=new Object();this.StyleGroups=new Object();this.Loaded=false;this.HasObjectElements=false;};FCKStylesLoader.prototype.Load=function(stylesXmlUrl){var oXml=new FCKXml();oXml.LoadUrl(stylesXmlUrl);var aStyleNodes=oXml.SelectNodes('Styles/Style');for (var i=0;i<aStyleNodes.length;i++){var sElement=aStyleNodes[i].attributes.getNamedItem('element').value.toUpperCase();var oStyleDef=new FCKStyleDef(aStyleNodes[i].attributes.getNamedItem('name').value,sElement);if (oStyleDef.IsObjectElement) this.HasObjectElements=true;var aAttNodes=oXml.SelectNodes('Attribute',aStyleNodes[i]);for (var j=0;j<aAttNodes.length;j++){var sAttName=aAttNodes[j].attributes.getNamedItem('name').value;var sAttValue=aAttNodes[j].attributes.getNamedItem('value').value;if (sAttName.toLowerCase()=='style'){var oTempE=document.createElement('SPAN');oTempE.style.cssText=sAttValue;sAttValue=oTempE.style.cssText;};oStyleDef.AddAttribute(sAttName,sAttValue);};this.Styles[oStyleDef.Name]=oStyleDef;var aGroup=this.StyleGroups[sElement];if (aGroup==null){this.StyleGroups[sElement]=new Array();aGroup=this.StyleGroups[sElement];};aGroup[aGroup.length]=oStyleDef;};this.Loaded=true;}
var FCKNamedCommand=function(commandName){this.Name=commandName;};FCKNamedCommand.prototype.Execute=function(){FCK.ExecuteNamedCommand(this.Name);};FCKNamedCommand.prototype.GetState=function(){return FCK.GetNamedCommandState(this.Name);};
var FCKDialogCommand=function(name,title,url,width,height,getStateFunction,getStateParam){this.Name=name;this.Title=title;this.Url=url;this.Width=width;this.Height=height;this.GetStateFunction=getStateFunction;this.GetStateParam=getStateParam;};FCKDialogCommand.prototype.Execute=function(){FCKDialog.OpenDialog('FCKDialog_'+this.Name,this.Title,this.Url,this.Width,this.Height);};FCKDialogCommand.prototype.GetState=function(){if (this.GetStateFunction) return this.GetStateFunction(this.GetStateParam);else return FCK_TRISTATE_OFF;};var FCKUndefinedCommand=function(){this.Name='Undefined';};FCKUndefinedCommand.prototype.Execute=function(){alert(FCKLang.NotImplemented);};FCKUndefinedCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKFontNameCommand=function(){this.Name='FontName';};FCKFontNameCommand.prototype.Execute=function(fontName){if (fontName==null||fontName==""){}else FCK.ExecuteNamedCommand('FontName',fontName);};FCKFontNameCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontName');};var FCKFontSizeCommand=function(){this.Name='FontSize';};FCKFontSizeCommand.prototype.Execute=function(fontSize){if (typeof(fontSize)=='string') fontSize=parseInt(fontSize);if (fontSize==null||fontSize==''){FCK.ExecuteNamedCommand('FontSize',3);}else FCK.ExecuteNamedCommand('FontSize',fontSize);};FCKFontSizeCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FontSize');};var FCKFormatBlockCommand=function(){this.Name='FormatBlock';};FCKFormatBlockCommand.prototype.Execute=function(formatName){if (formatName==null||formatName=='') FCK.ExecuteNamedCommand('FormatBlock','<P>');else FCK.ExecuteNamedCommand('FormatBlock','<'+formatName+'>');};FCKFormatBlockCommand.prototype.GetState=function(){return FCK.GetNamedCommandValue('FormatBlock');};var FCKPreviewCommand=function(){this.Name='Preview';};FCKPreviewCommand.prototype.Execute=function(){FCK.Preview();};FCKPreviewCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSaveCommand=function(){this.Name='Save';};FCKSaveCommand.prototype.Execute=function(){var oForm=FCK.LinkedField.form;oForm.submit();};FCKSaveCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKNewPageCommand=function(){this.Name='NewPage';};FCKNewPageCommand.prototype.Execute=function(){FCK.SetHTML(FCKBrowserInfo.IsGecko?'&nbsp;':'');};FCKNewPageCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};var FCKSourceCommand=function(){this.Name="Source";};FCKSourceCommand.prototype.Execute=function(){FCK.SwitchEditMode();};FCKSourceCommand.prototype.GetState=function(){return (FCK.EditMode==FCK_EDITMODE_WYSIWYG?FCK_TRISTATE_OFF:FCK_TRISTATE_ON);}
var FCKTextColorCommand=function(type){this.Name=type=='ForeColor'?'TextColor':'BGColor';this.Type=type;this._Panel=new FCKPanel();this._Panel.StyleSheet=FCKConfig.SkinPath+'fck_contextmenu.css';this._Panel.Create();this._CreatePanelBody(this._Panel.Document,this._Panel.PanelDiv);};FCKTextColorCommand.prototype.Execute=function(panelX,panelY,relElement){FCK._ActiveColorPanelType=this.Type;this._Panel.Show(panelX,panelY,relElement);};FCKTextColorCommand.prototype.SetColor=function(color){if (FCK._ActiveColorPanelType=='ForeColor') FCK.ExecuteNamedCommand('ForeColor',color);else if (FCKBrowserInfo.IsGecko) FCK.ExecuteNamedCommand('hilitecolor',color);else FCK.ExecuteNamedCommand('BackColor',color);delete FCK._ActiveColorPanelType;};FCKTextColorCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;};FCKTextColorCommand.prototype._CreatePanelBody=function(targetDocument,targetDiv){function CreateSelectionDiv(){var oDiv=targetDocument.createElement("DIV");oDiv.className='ColorDeselected';oDiv.onmouseover=function() { this.className='ColorSelected';};oDiv.onmouseout=function() { this.className='ColorDeselected';};return oDiv;};var oTable=targetDiv.appendChild(targetDocument.createElement("TABLE"));oTable.style.tableLayout='fixed';oTable.cellPadding=0;oTable.cellSpacing=0;oTable.border=0;oTable.width=150;var oCell=oTable.insertRow(-1).insertCell(-1);oCell.colSpan=8;var oDiv=oCell.appendChild(CreateSelectionDiv());oDiv.innerHTML='<table cellspacing="0" cellpadding="0" width="100%" border="0">\ <tr>\ <td><div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #000000"></div></div></td>\ <td nowrap width="100%" align="center" unselectable="on">'+FCKLang.ColorAutomatic+'</td>\ </tr>\ </table>';oDiv.Command=this;oDiv.onclick=function(){this.className='ColorDeselected';this.Command.SetColor('');this.Command._Panel.Hide();};var aColors=FCKConfig.FontColors.split(',');var iCounter=0;while (iCounter<aColors.length){var oRow=oTable.insertRow(-1);for (var i=0;i<8&&iCounter<aColors.length;i++,iCounter++){var oDiv=oRow.insertCell(-1).appendChild(CreateSelectionDiv());oDiv.Color=aColors[iCounter];oDiv.innerHTML='<div class="ColorBoxBorder"><div class="ColorBox" style="background-color: #'+aColors[iCounter]+'"></div></div>';oDiv.Command=this;oDiv.onclick=function(){this.className='ColorDeselected';this.Command.SetColor('#'+this.Color);this.Command._Panel.Hide();};};};var oCell=oTable.insertRow(-1).insertCell(-1);oCell.colSpan=8;var oDiv=oCell.appendChild(CreateSelectionDiv());oDiv.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td nowrap align="center">'+FCKLang.ColorMoreColors+'</td></tr></table>';oDiv.Command=this;oDiv.onclick=function(){this.className='ColorDeselected';this.Command._Panel.Hide();FCKDialog.OpenDialog('FCKDialog_Color',FCKLang.DlgColorTitle,'dialog/fck_colorselector.html',400,330,this.Command.SetColor);};}
var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){return FCK.GetNamedCommandState('Paste');};
var FCKTableCommand=function(command){this.Name=command;};FCKTableCommand.prototype.Execute=function(){switch (this.Name){case 'TableInsertRow':FCKTableHandler.InsertRow();break;case 'TableDeleteRows':FCKTableHandler.DeleteRows();break;case 'TableInsertColumn':FCKTableHandler.InsertColumn();break;case 'TableDeleteColumns':FCKTableHandler.DeleteColumns();break;case 'TableInsertCell':FCKTableHandler.InsertCell();break;case 'TableDeleteCells':FCKTableHandler.DeleteCells();break;case 'TableMergeCells':FCKTableHandler.MergeCells();break;case 'TableSplitCell':FCKTableHandler.SplitCell();break;default:alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));};};FCKTableCommand.prototype.GetState=function(){return FCK_TRISTATE_OFF;}
var FCKStyleCommand=function(){this.Name='Style';this.StylesLoader=new FCKStylesLoader();this.StylesLoader.Load(FCKConfig.StylesXmlPath);this.Styles=this.StylesLoader.Styles;};FCKStyleCommand.prototype.Execute=function(styleName,styleComboItem){if (styleComboItem.Selected) styleComboItem.Style.RemoveFromSelection();else styleComboItem.Style.ApplyToSelection();FCK.Focus();FCK.Events.FireEvent("OnSelectionChange");};FCKStyleCommand.prototype.GetState=function(){var oSelection=FCK.EditorDocument.selection;if (FCKSelection.GetType()=='Control'){var e=FCKSelection.GetSelectedElement();if (e) return this.StylesLoader.StyleGroups[e.tagName]?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;else FCK_TRISTATE_OFF;}else return FCK_TRISTATE_OFF;};FCKStyleCommand.prototype.GetActiveStyles=function(){var aActiveStyles=new Array();if (FCKSelection.GetType()=='Control') this._CheckStyle(FCKSelection.GetSelectedElement(),aActiveStyles,false);else this._CheckStyle(FCKSelection.GetParentElement(),aActiveStyles,true);return aActiveStyles;};FCKStyleCommand.prototype._CheckStyle=function(element,targetArray,checkParent){if (!element) return;if (element.nodeType==1){var aStyleGroup=this.StylesLoader.StyleGroups[element.tagName];if (aStyleGroup){for (var i=0;i<aStyleGroup.length;i++){if (aStyleGroup[i].IsEqual(element)) targetArray[targetArray.length]=aStyleGroup[i];};};};if (checkParent) this._CheckStyle(element.parentNode,targetArray,checkParent);}
var FCKCommands=FCK.Commands=new Object();FCKCommands.LoadedCommands=new Object();FCKCommands.RegisterCommand=function(commandName,command){this.LoadedCommands[commandName]=command;};FCKCommands.GetCommand=function(commandName){var oCommand=FCKCommands.LoadedCommands[commandName];if (oCommand) return oCommand;switch (commandName){case 'Link':oCommand=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330,FCK.GetNamedCommandState,'CreateLink');break;case 'About':oCommand=new FCKDialogCommand('About',FCKLang.About,'dialog/fck_about.html',400,330);break;case 'Find':oCommand=new FCKDialogCommand('Find',FCKLang.DlgFindTitle,'dialog/fck_find.html',340,170);break;case 'Replace':oCommand=new FCKDialogCommand('Replace',FCKLang.DlgReplaceTitle,'dialog/fck_replace.html',340,200);break;case 'Image':oCommand=new FCKDialogCommand('Image',FCKLang.DlgImgTitle,'dialog/fck_image.html',450,400,FCK.GetNamedCommandState,'InsertImage');break;case 'SpecialChar':oCommand=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,300,FCK.GetNamedCommandState,'InsertImage');break;case 'Smiley':oCommand=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight,FCK.GetNamedCommandState,'InsertImage');break;case 'Table':oCommand=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html',400,250);break;case 'TableProp':oCommand=new FCKDialogCommand('Table',FCKLang.DlgTableTitle,'dialog/fck_table.html?Parent',400,250);break;case 'TableCellProp':oCommand=new FCKDialogCommand('TableCell',FCKLang.DlgCellTitle,'dialog/fck_tablecell.html',500,250);break;case 'Style':oCommand=new FCKStyleCommand();break;case 'FontName':oCommand=new FCKFontNameCommand();break;case 'FontSize':oCommand=new FCKFontSizeCommand();break;case 'FontFormat':oCommand=new FCKFormatBlockCommand();break;case 'Source':oCommand=new FCKSourceCommand();break;case 'Preview':oCommand=new FCKPreviewCommand();break;case 'Save':oCommand=new FCKSaveCommand();break;case 'NewPage':oCommand=new FCKNewPageCommand();break;case 'TextColor':oCommand=new FCKTextColorCommand('ForeColor');break;case 'BGColor':oCommand=new FCKTextColorCommand('BackColor');break;case 'PasteText':oCommand=new FCKPastePlainTextCommand();break;case 'PasteWord':oCommand=new FCKPasteWordCommand();break;case 'TableInsertRow':oCommand=new FCKTableCommand('TableInsertRow');break;case 'TableDeleteRows':oCommand=new FCKTableCommand('TableDeleteRows');break;case 'TableInsertColumn':oCommand=new FCKTableCommand('TableInsertColumn');break;case 'TableDeleteColumns':oCommand=new FCKTableCommand('TableDeleteColumns');break;case 'TableInsertCell':oCommand=new FCKTableCommand('TableInsertCell');break;case 'TableDeleteCells':oCommand=new FCKTableCommand('TableDeleteCells');break;case 'TableMergeCells':oCommand=new FCKTableCommand('TableMergeCells');break;case 'TableSplitCell':oCommand=new FCKTableCommand('TableSplitCell');break;case 'Undefined':oCommand=new FCKUndefinedCommand();break;default:if (FCKRegexLib.NamedCommands.test(commandName)) oCommand=new FCKNamedCommand(commandName);else{alert(FCKLang.UnknownCommand.replace(/%1/g,commandName));return;};};FCKCommands.LoadedCommands[commandName]=oCommand;return oCommand;};
var FCKToolbarButton=function(commandName,label,tooltip,style,sourceView){this.Command=FCKCommands.GetCommand(commandName);this.Label=label?label:commandName;this.Tooltip=tooltip?tooltip:(label?label:commandName);this.Style=style?style:FCK_TOOLBARITEM_ONLYICON;this.SourceView=sourceView?true:false;this.IconPath=FCKConfig.SkinPath+'toolbar/button.'+commandName.toLowerCase()+'.gif';this.State=FCK_UNKNOWN;};FCKToolbarButton.prototype.CreateInstance=function(parentToolbar){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Button_Off';this.DOMDiv.FCKToolbarButton=this;this.DOMDiv.onmouseover=function(){if (this.FCKToolbarButton.State!=FCK_TRISTATE_DISABLED){this.className='TB_Button_On';};};this.DOMDiv.onmouseout=function(){if (this.FCKToolbarButton.State!=FCK_TRISTATE_DISABLED&&this.FCKToolbarButton.State!=FCK_TRISTATE_ON){this.className='TB_Button_Off';};};this.DOMDiv.onclick=function(){if (this.FCKToolbarButton.State!=FCK_TRISTATE_DISABLED) this.FCKToolbarButton.Command.Execute();return false;};var sClass;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:sClass='TB_ButtonType_Icon';break;case FCK_TOOLBARITEM_ONLYTEXT:sClass='TB_ButtonType_Text';break;case FCK_TOOLBARITEM_ICONTEXT:sClass='';break;};this.DOMDiv.innerHTML='<table title="'+this.Tooltip+'" class="'+sClass+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>'+'<td class="TB_Icon" unselectable="on"><img src="'+this.IconPath+'" width="21" height="21" unselectable="on"></td>'+'<td class="TB_Text" unselectable="on">'+this.Label+'</td>'+'</tr>'+'</table>';var oCell=parentToolbar.DOMRow.insertCell(-1);oCell.appendChild(this.DOMDiv);this.RefreshState();};FCKToolbarButton.prototype.RefreshState=function(){var eState;if (FCK.EditMode==FCK_EDITMODE_SOURCE&&!this.SourceView) eState=FCK_TRISTATE_DISABLED;else eState=this.Command.GetState();if (eState==this.State) return;this.State=eState;switch (this.State){case FCK_TRISTATE_ON:this.DOMDiv.className='TB_Button_On';break;case FCK_TRISTATE_OFF:this.DOMDiv.className='TB_Button_Off';break;default:this.DOMDiv.className='TB_Button_Disabled';break;};}
var FCKToolbarCombo=function(commandName,label,itemsValues,itemsNames,tooltip,style,firstIsBlank,itemsSeparator,sourceView){this.Command=FCKCommands.GetCommand(commandName);this.Label=label?label:commandName;this.Tooltip=tooltip?tooltip:(label?label:commandName);this.Style=style?style:FCK_TOOLBARITEM_ICONTEXT;this.SourceView=sourceView?true:false;this.State=FCK_UNKNOWN;this.ItemsValues=itemsValues;this.ItemsNames=itemsNames?itemsNames:itemsValues;this.ItemsSeparator=itemsSeparator?itemsSeparator:';';this.FirstIsBlank=firstIsBlank!=null?firstIsBlank:true;};FCKToolbarCombo.prototype.CreateInstance=function(parentToolbar){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Combo_Off';var sClass;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:sClass='TB_ButtonType_Icon';break;case FCK_TOOLBARITEM_ONLYTEXT:sClass='TB_ButtonType_Text';break;case FCK_TOOLBARITEM_ICONTEXT:sClass='';break;};this.DOMDiv.innerHTML='<table class="'+sClass+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>'+'<td class="TB_Text" unselectable="on" nowrap>'+this.Label+'</td>'+'<td unselectable="on"><select title="'+this.Tooltip+'"></select></td>'+'</tr>'+'</table>';this.SelectElement=this.DOMDiv.firstChild.firstChild.firstChild.childNodes.item(1).firstChild;this.SelectElement.FCKToolbarCombo=this;this.SelectElement.onchange=function(){this.FCKToolbarCombo.Command.Execute(this.value);return false;};var oCell=parentToolbar.DOMRow.insertCell(-1);oCell.appendChild(this.DOMDiv);this.RefreshItems();this.RefreshState();};FCKToolbarCombo.prototype.RefreshItems=function(){var aNames=FCKTools.GetResultingArray(this.ItemsNames,this.ItemsSeparator);var aValues=FCKTools.GetResultingArray(this.ItemsValues,this.ItemsSeparator);FCKTools.RemoveAllSelectOptions(this.SelectElement);if (this.FirstIsBlank) FCKTools.AddSelectOption(document,this.SelectElement,'','');for (var i=0;i<aValues.length;i++){FCKTools.AddSelectOption(document,this.SelectElement,aNames[i],aValues[i]);};};FCKToolbarCombo.prototype.RefreshState=function(){var eState;if (FCK.EditMode==FCK_EDITMODE_SOURCE&&!this.SourceView){eState=FCK_TRISTATE_DISABLED;this.SelectElement.value='';}else{var sValue=this.Command.GetState();FCKTools.SelectNoCase(this.SelectElement,sValue?sValue:'','');eState=sValue==null?FCK_TRISTATE_DISABLED:FCK_TRISTATE_ON;};if (eState==this.State) return;this.State=eState;this.DOMDiv.className=(eState==FCK_TRISTATE_ON?'TB_Combo_Off':'TB_Combo_Disabled');this.SelectElement.disabled=(eState==FCK_TRISTATE_DISABLED);};
var FCKSpecialCombo=function(caption){this.FieldWidth=80;this.PanelWidth=130;this.PanelMaxHeight=150;this.Label='&nbsp;';this.Caption=caption;this.Enabled=true;this.Items=new Object();this._Panel=new FCKPanel();this._Panel.StyleSheet=FCKConfig.SkinPath+'fck_contextmenu.css';this._Panel.Create();this._Panel.PanelDiv.className+=' SC_Panel';this._Panel.PanelDiv.innerHTML='<table cellpadding="0" cellspacing="0" width="100%" style="TABLE-LAYOUT: fixed"><tr><td nowrap></td></tr></table>';this._ItemsHolderEl=this._Panel.PanelDiv.getElementsByTagName('TD')[0];};FCKSpecialCombo.prototype.AddItem=function(id,html,label){var oDiv=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));oDiv.className=oDiv.originalClass='SC_Item';oDiv.innerHTML=html;oDiv.FCKItemID=id;oDiv.FCKItemLabel=label?label:id;oDiv.FCKSpecialCombo=this;oDiv.Selected=false;oDiv.onmouseover=function(){this.className+=' SC_ItemOver';};oDiv.onmouseout=function(){this.className=this.originalClass;};oDiv.onclick=function(){this.FCKSpecialCombo._Panel.Hide();this.FCKSpecialCombo.SetLabel(this.FCKItemLabel);if (typeof(this.FCKSpecialCombo.OnSelect)=='function') this.FCKSpecialCombo.OnSelect(this.FCKItemID,this);};this.Items[id.toString().toLowerCase()]=oDiv;return oDiv;};FCKSpecialCombo.prototype.SelectItem=function(itemId){itemId=itemId?itemId.toString().toLowerCase():'';var oDiv=this.Items[itemId];if (oDiv){oDiv.className=oDiv.originalClass='SC_ItemSelected';oDiv.Selected=true;};};FCKSpecialCombo.prototype.DeselectAll=function(){for (var i in this.Items){this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};};FCKSpecialCombo.prototype.SetLabelById=function(id){FCKDebug.Output(this.Caption+': '+id,'#0000FF');id=id?id.toString().toLowerCase():'';var oDiv=this.Items[id];this.SetLabel(oDiv?oDiv.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(text){this.Label=text.length==0?'&nbsp;':text;if (this._LabelEl) this._LabelEl.innerHTML=this.Label;};FCKSpecialCombo.prototype.SetEnabled=function(isEnabled){this.Enabled=isEnabled;this._OuterTable.className=isEnabled?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(targetElement){this._OuterTable=targetElement.appendChild(document.createElement('TABLE'));this._OuterTable.cellPadding=0;this._OuterTable.cellSpacing=0;this._OuterTable.insertRow(-1);if (this.Caption&&this.Caption.length>0){var oCaptionCell=this._OuterTable.rows[0].insertCell(-1);oCaptionCell.unselectable='on';oCaptionCell.innerHTML=this.Caption;oCaptionCell.className='SC_FieldCaption';};var oField=this._OuterTable.rows[0].insertCell(-1).appendChild(document.createElement('DIV'));oField.className='SC_Field';oField.style.width=this.FieldWidth+'px';oField.innerHTML='<table width="100%" cellpadding="0" cellspacing="0" style="TABLE-LAYOUT: fixed;" unselectable="on"><tbody><tr><td class="SC_FieldLabel" unselectable="on"><label unselectable="on">&nbsp;</label></td><td class="SC_FieldButton" unselectable="on">&nbsp;</td></tr></tbody></table>';this._LabelEl=oField.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;oField.SpecialCombo=this;oField.onmouseover=function(){if (this.SpecialCombo.Enabled) this.className='SC_Field SC_FieldOver';};oField.onmouseout=function(){this.className='SC_Field';};oField.onclick=function(e){if (e){e.stopPropagation();FCKPanelEventHandlers.OnDocumentClick(e);};if (this.SpecialCombo.Enabled){if (typeof(this.SpecialCombo.OnBeforeClick)=='function') this.SpecialCombo.OnBeforeClick(this.SpecialCombo);if (this.SpecialCombo._ItemsHolderEl.offsetHeight>this.SpecialCombo.PanelMaxHeight) this.SpecialCombo._Panel.PanelDiv.style.height=this.SpecialCombo.PanelMaxHeight+'px';else this.SpecialCombo._Panel.PanelDiv.style.height=this.SpecialCombo._ItemsHolderEl.offsetHeight+'px';this.SpecialCombo._Panel.PanelDiv.style.width=this.SpecialCombo.PanelWidth+'px';this.SpecialCombo._Panel.Show(0,this.offsetHeight,this,null,this.SpecialCombo.PanelMaxHeight,true);};return false;};};
var FCKToolbarSpecialCombo=function(){};FCKToolbarSpecialCombo.prototype.CreateInstance=function(parentToolbar){this._Combo=new FCKSpecialCombo(this.GetLabel());this._Combo.FieldWidth=100;this._Combo.PanelWidth=150;this._Combo.PanelMaxHeight=150;this.CreateItems(this._Combo);this._Combo.Create(parentToolbar.DOMRow.insertCell(-1));this._Combo.Command=this.Command;this._Combo.OnSelect=function(itemId,item){this.Command.Execute(itemId,item);};};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var eState;if (FCK.EditMode==FCK_EDITMODE_SOURCE&&!this.SourceView) eState=FCK_TRISTATE_DISABLED;else{var sValue=this.Command.GetState();if (sValue!=FCK_TRISTATE_DISABLED){eState=FCK_TRISTATE_ON;if (typeof(this.RefreshActiveItems)=='function') this.RefreshActiveItems(this._Combo);else{this._Combo.DeselectAll();this._Combo.SelectItem(sValue);this._Combo.SetLabelById(sValue);};}else eState=FCK_TRISTATE_DISABLED;};if (eState==this.State) return;if (eState==FCK_TRISTATE_DISABLED){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=eState;this._Combo.SetEnabled(eState!=FCK_TRISTATE_DISABLED);}
var FCKToolbarFontsCombo=function(){this.Command=FCKCommands.GetCommand('FontName');};FCKToolbarFontsCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontsCombo.prototype.GetLabel=function(){return FCKLang.Font;};FCKToolbarFontsCombo.prototype.CreateItems=function(targetSpecialCombo){var aFonts=FCKConfig.FontNames.split(';');for (var i=0;i<aFonts.length;i++) this._Combo.AddItem(aFonts[i],'<span style="font-family: \''+aFonts[i]+'\'; font-size: 12px;">'+aFonts[i]+'</span>');}
var FCKToolbarFontSizeCombo=function(){this.Command=FCKCommands.GetCommand('FontSize');};FCKToolbarFontSizeCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontSizeCombo.prototype.GetLabel=function(){return FCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.CreateItems=function(targetSpecialCombo){targetSpecialCombo.FieldWidth=70;var aSizes=FCKConfig.FontSizes.split(';');for (var i=0;i<aSizes.length;i++){var aSizeParts=aSizes[i].split('/');this._Combo.AddItem(aSizeParts[0],'<font size="'+aSizeParts[0]+'">'+aSizeParts[1]+'</font>',aSizeParts[1]);};}
var FCKToolbarFontFormatCombo=function(){this.Command=FCKCommands.GetCommand('FontFormat');};FCKToolbarFontFormatCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.CreateItems=function(targetSpecialCombo){var aNames=FCKLang['FontFormats'].split(';');var oNames={p:aNames[0],pre:aNames[1],address:aNames[2],h1:aNames[3],h2:aNames[4],h3:aNames[5],h4:aNames[6],h5:aNames[7],h6:aNames[8],div:aNames[9]};var aTags=FCKConfig.FontFormats.split(';');for (var i=0;i<aTags.length;i++){if (aTags[i]=='div'&&FCKBrowserInfo.IsGecko) continue;this._Combo.AddItem(aTags[i],'<'+aTags[i]+'>'+oNames[aTags[i]]+'</'+aTags[i]+'>',oNames[aTags[i]]);};}
var FCKToolbarStyleCombo=function(){this.Command=FCKCommands.GetCommand('Style');};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.CreateItems=function(targetSpecialCombo){FCKTools.AppendStyleSheet(targetSpecialCombo._Panel.Document,FCKConfig.EditorAreaCSS);if (!FCKBrowserInfo.IsGecko) targetSpecialCombo.OnBeforeClick=this.RefreshVisibleItems;for (var s in this.Command.Styles){var oStyle=this.Command.Styles[s];if (oStyle.IsObjectElement) var oItem=targetSpecialCombo.AddItem(s,s);else var oItem=targetSpecialCombo.AddItem(s,oStyle.GetOpenerTag()+s+oStyle.GetCloserTag());oItem.Style=oStyle;};};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(targetSpecialCombo){targetSpecialCombo.DeselectAll();var aStyles=this.Command.GetActiveStyles();if (aStyles.length>0){for (var i=0;i<aStyles.length;i++) targetSpecialCombo.SelectItem(aStyles[i].Name);targetSpecialCombo.SetLabelById(aStyles[0].Name);}else targetSpecialCombo.SetLabel('');};FCKToolbarStyleCombo.prototype.RefreshVisibleItems=function(targetSpecialCombo){if (FCKSelection.GetType()=='Control') var sTagName=FCKSelection.GetSelectedElement().tagName;for (var i in targetSpecialCombo.Items){var oItem=targetSpecialCombo.Items[i];if ((sTagName&&oItem.Style.Element==sTagName)||(!sTagName&&!oItem.Style.IsObjectElement)) oItem.style.display='';else oItem.style.display='none';};}
var FCKToolbarPanelButton=function(commandName,label,tooltip,style){this.Command=FCKCommands.GetCommand(commandName);this.Label=label?label:commandName;this.Tooltip=tooltip?tooltip:(label?label:commandName);this.Style=style?style:FCK_TOOLBARITEM_ONLYICON;this.State=FCK_UNKNOWN;};FCKToolbarPanelButton.prototype.CreateInstance=function(parentToolbar){this.DOMDiv=document.createElement('div');this.DOMDiv.className='TB_Button_Off';this.DOMDiv.FCKToolbarButton=this;this.DOMDiv.onmouseover=function(){if (this.FCKToolbarButton.State!=FCK_TRISTATE_DISABLED){this.className='TB_Button_On';};};this.DOMDiv.onmouseout=function(){if (this.FCKToolbarButton.State!=FCK_TRISTATE_DISABLED&&this.FCKToolbarButton.State!=FCK_TRISTATE_ON){this.className='TB_Button_Off';};};this.DOMDiv.onclick=function(e){if (e){e.stopPropagation();FCKPanelEventHandlers.OnDocumentClick(e);};if (this.FCKToolbarButton.State!=FCK_TRISTATE_DISABLED){this.FCKToolbarButton.Command.Execute(0,this.FCKToolbarButton.DOMDiv.offsetHeight,this.FCKToolbarButton.DOMDiv);};return false;};var sClass;switch (this.Style){case FCK_TOOLBARITEM_ONLYICON:sClass='TB_ButtonType_Icon';break;case FCK_TOOLBARITEM_ONLYTEXT:sClass='TB_ButtonType_Text';break;case FCK_TOOLBARITEM_ICONTEXT:sClass='';break;};this.DOMDiv.innerHTML='<table title="'+this.Tooltip+'" class="'+sClass+'" cellspacing="0" cellpadding="0" border="0" unselectable="on">'+'<tr>'+'<td class="TB_Icon" unselectable="on"><img src="'+FCKConfig.SkinPath+'toolbar/button.'+this.Command.Name.toLowerCase()+'.gif" width="21" height="21" unselectable="on"></td>'+'<td class="TB_Text" unselectable="on">'+this.Label+'</td>'+'<td class="TB_ButtonArrow" unselectable="on"><img src="'+FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif" width="5" height="3"></td>'+'</tr>'+'</table>';var oCell=parentToolbar.DOMRow.insertCell(-1);oCell.appendChild(this.DOMDiv);this.RefreshState();};FCKToolbarPanelButton.prototype.RefreshState=FCKToolbarButton.prototype.RefreshState;
var FCKToolbarItems=new Object();FCKToolbarItems.LoadedItems=new Object();FCKToolbarItems.RegisterItem=function(itemName,item){this.LoadedItems[itemName]=item;};FCKToolbarItems.GetItem=function(itemName){var oItem=FCKToolbarItems.LoadedItems[itemName];if (oItem) return oItem;switch (itemName){case 'Source':oItem=new FCKToolbarButton('Source',FCKLang.Source,null,FCK_TOOLBARITEM_ICONTEXT,true);break;case 'Save':oItem=new FCKToolbarButton('Save',FCKLang.Save,null,null,true);break;case 'NewPage':oItem=new FCKToolbarButton('NewPage',FCKLang.NewPage,null,null,true);break;case 'Preview':oItem=new FCKToolbarButton('Preview',FCKLang.Preview,null,null,true);break;case 'About':oItem=new FCKToolbarButton('About',FCKLang.About);break;case 'Cut':oItem=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,true);break;case 'Copy':oItem=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,true);break;case 'Paste':oItem=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,true);break;case 'PasteText':oItem=new FCKToolbarButton('PasteText',FCKLang.PasteText);break;case 'PasteWord':oItem=new FCKToolbarButton('PasteWord',FCKLang.PasteWord);break;case 'Print':oItem=new FCKToolbarButton('Print',FCKLang.Print,null,null,true);break;case 'Undo':oItem=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,true);break;case 'Redo':oItem=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,true);break;case 'SelectAll':oItem=new FCKToolbarButton('SelectAll',FCKLang.SelectAll,null,null,true);break;case 'RemoveFormat':oItem=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat);break;case 'Bold':oItem=new FCKToolbarButton('Bold',FCKLang.Bold);break;case 'Italic':oItem=new FCKToolbarButton('Italic',FCKLang.Italic);break;case 'Underline':oItem=new FCKToolbarButton('Underline',FCKLang.Underline);break;case 'StrikeThrough':oItem=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough);break;case 'Subscript':oItem=new FCKToolbarButton('Subscript',FCKLang.Subscript);break;case 'Superscript':oItem=new FCKToolbarButton('Superscript',FCKLang.Superscript);break;case 'OrderedList':oItem=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList);break;case 'UnorderedList':oItem=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList);break;case 'Outdent':oItem=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent);break;case 'Indent':oItem=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent);break;case 'Link':oItem=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink);break;case 'Unlink':oItem=new FCKToolbarButton('Unlink',FCKLang.RemoveLink);break;case 'Image':oItem=new FCKToolbarButton('Image',FCKLang.InsertImageLbl,FCKLang.InsertImage);break;case 'Table':oItem=new FCKToolbarButton('Table',FCKLang.InsertTableLbl,FCKLang.InsertTable);break;case 'SpecialChar':oItem=new FCKToolbarButton('SpecialChar',FCKLang.InsertSpecialCharLbl,FCKLang.InsertSpecialChar);break;case 'Smiley':oItem=new FCKToolbarButton('Smiley',FCKLang.InsertSmileyLbl,FCKLang.InsertSmiley);break;case 'Rule':oItem=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine);break;case 'JustifyLeft':oItem=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify);break;case 'JustifyCenter':oItem=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify);break;case 'JustifyRight':oItem=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify);break;case 'JustifyFull':oItem=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify);break;case 'Style':oItem=new FCKToolbarStyleCombo();break;case 'FontName':oItem=new FCKToolbarFontsCombo();break;case 'FontSize':oItem=new FCKToolbarFontSizeCombo();break;case 'FontFormat':oItem=new FCKToolbarFontFormatCombo();break;case 'TextColor':oItem=new FCKToolbarPanelButton('TextColor',FCKLang.TextColor);break;case 'BGColor':oItem=new FCKToolbarPanelButton('BGColor',FCKLang.BGColor);break;case 'Find':oItem=new FCKToolbarButton('Find',FCKLang.Find);break;case 'Replace':oItem=new FCKToolbarButton('Replace',FCKLang.Replace);break;default:alert(FCKLang.UnknownToolbarItem.replace(/%1/g,itemName));return;};FCKToolbarItems.LoadedItems[itemName]=oItem;return oItem;}
var FCKToolbar=function(){this.Items=new Array();this.DOMTable=document.createElement('table');this.DOMTable.className='TB_Toolbar';with (this.DOMTable){style.styleFloat=style.cssFloat=FCKLang.Dir=='rtl'?'right':'left';cellPadding=0;cellSpacing=0;border=0;};this.DOMRow=this.DOMTable.insertRow(-1);var oCell=this.DOMRow.insertCell(-1);oCell.className='TB_Start';oCell.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.start.gif" width="7" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';FCKToolbarSet.DOMElement.appendChild(this.DOMTable);};FCKToolbar.prototype.AddItem=function(toolbarItem){this.Items[this.Items.length]=toolbarItem;toolbarItem.CreateInstance(this);};FCKToolbar.prototype.AddSeparator=function(){var oCell=this.DOMRow.insertCell(-1);oCell.unselectable='on';oCell.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.separator.gif" width="5" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';};FCKToolbar.prototype.AddTerminator=function(){var oCell=this.DOMRow.insertCell(-1);oCell.className='TB_End';oCell.innerHTML='<img src="'+FCKConfig.SkinPath+'images/toolbar.end.gif" width="12" height="21" style="VISIBILITY: hidden" onload="this.style.visibility = \'\';" unselectable="on">';};
var FCKToolbarSet=FCK.ToolbarSet=new Object();document.getElementById('ExpandHandle').title=FCKLang.ToolbarExpand;document.getElementById('CollapseHandle').title=FCKLang.ToolbarCollapse;FCKToolbarSet.Toolbars=new Array();FCKToolbarSet.Expand=function(){document.getElementById('Collapsed').style.display='none';document.getElementById('Expanded').style.display='';if (!FCKBrowserInfo.IsIE){window.setTimeout("window.onresize()",1);};};FCKToolbarSet.Collapse=function(){document.getElementById('Collapsed').style.display='';document.getElementById('Expanded').style.display='none';if (!FCKBrowserInfo.IsIE){window.setTimeout("window.onresize()",1);};};FCKToolbarSet.Restart=function(){if (!FCKConfig.ToolbarCanCollapse||FCKConfig.ToolbarStartExpanded) this.Expand();else this.Collapse();document.getElementById('CollapseHandle').style.display=FCKConfig.ToolbarCanCollapse?'':'none';};FCKToolbarSet.Load=function(toolbarSetName){this.DOMElement=document.getElementById('eToolbar');var ToolbarSet=FCKConfig.ToolbarSets[toolbarSetName];if (!ToolbarSet){alert(FCKLang.UnknownToolbarSet.replace(/%1/g,toolbarSetName));return;};this.Toolbars=new Array();for (var x=0;x<ToolbarSet.length;x++){var oToolbar=new FCKToolbar();for (var j=0;j<ToolbarSet[x].length;j++){var sItem=ToolbarSet[x][j];if (sItem=='-') oToolbar.AddSeparator();else{var oItem=FCKToolbarItems.GetItem(sItem);if (oItem) oToolbar.AddItem(oItem);};};oToolbar.AddTerminator();this.Toolbars[this.Toolbars.length]=oToolbar;};this.Redraw();};FCKToolbarSet.Redraw=function(){};FCKToolbarSet.RefreshItemsState=function(){for (var i=0;i<FCKToolbarSet.Toolbars.length;i++){var oToolbar=FCKToolbarSet.Toolbars[i];for (var j=0;j<oToolbar.Items.length;j++){oToolbar.Items[j].RefreshState();};};};
var FCKDialog=new Object();FCKDialog.OpenDialog=function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow){var oDialogInfo=new Object();oDialogInfo.Title=dialogTitle;oDialogInfo.Page=dialogPage;oDialogInfo.Editor=window;oDialogInfo.CustomValue=customValue;var sUrl=FCKConfig.BasePath+'fckdialog.html';this.Show(oDialogInfo,dialogName,sUrl,width,height,parentWindow);};
FCKDialog.Show=function(dialogInfo,dialogName,pageUrl,dialogWidth,dialogHeight,parentWindow){var iTop=(screen.height-dialogHeight) / 2;var iLeft=(screen.width  - dialogWidth)  / 2;var sOption="location=no,menubar=no,resizable=no,toolbar=no,dependent=yes,dialog=yes,minimizable=no,modal=yes,alwaysRaised=yes"+",width="+dialogWidth+",height="+dialogHeight+",top="+iTop+",left="+iLeft;if (!parentWindow) parentWindow=window;var oWindow=parentWindow.open('','FCKEditorDialog_'+dialogName,sOption,true);oWindow.moveTo(iLeft,iTop);oWindow.resizeTo(dialogWidth,dialogHeight);oWindow.focus();oWindow.location.href=pageUrl;oWindow.dialogArguments=dialogInfo;parentWindow.FCKLastDialogInfo=dialogInfo;this.Window=oWindow;window.top.captureEvents(Event.CLICK|Event.MOUSEDOWN|Event.MOUSEUP|Event.FOCUS);window.top.parent.addEventListener('mousedown',this.CheckFocus,true);window.top.parent.addEventListener('mouseup',this.CheckFocus,true);window.top.parent.addEventListener('click',this.CheckFocus,true);window.top.parent.addEventListener('focus',this.CheckFocus,true);};FCKDialog.CheckFocus=function(){if (FCKDialog.Window&&!FCKDialog.Window.closed){FCKDialog.Window.focus();return false;}else{window.top.releaseEvents(Event.CLICK|Event.MOUSEDOWN|Event.MOUSEUP|Event.FOCUS);window.top.parent.removeEventListener('onmousedown',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('mouseup',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('click',FCKDialog.CheckFocus,true);window.top.parent.removeEventListener('onfocus',FCKDialog.CheckFocus,true);};};
var FCKContextMenuItem=function(contextMenu,commandName,label,hasIcon){this.ContextMenu=contextMenu;this.Command=FCKCommands.GetCommand(commandName);this.Label=label?label:commandName;this.HasIcon=hasIcon?true:false;};FCKContextMenuItem.prototype.CreateTableRow=function(targetTable){this._Row=targetTable.insertRow(-1);this._Row.className='CM_Disabled';this._Row.FCKContextMenuItem=this;this._Row.onmouseover=function(){if (this.className!='CM_Disabled') this.className='CM_Over';};this._Row.onmouseout=function(){if (this.className!='CM_Disabled') this.className='CM_Option';};this._Row.onclick=function(){this.FCKContextMenuItem.ContextMenu.Hide();this.FCKContextMenuItem.Command.Execute();return false;};var oCell=this._Row.insertCell(-1);oCell.className='CM_Icon';if (this.HasIcon) oCell.innerHTML='<img alt="" src="'+FCKConfig.SkinPath+'toolbar/button.'+this.Command.Name.toLowerCase()+'.gif" width="21" height="20" unselectable="on">';oCell=this._Row.insertCell(-1);oCell.className='CM_Label';oCell.unselectable='on';oCell.noWrap=true;oCell.innerHTML=this.Label;};FCKContextMenuItem.prototype.SetVisible=function(isVisible){this._Row.style.display=isVisible?'':'none';};FCKContextMenuItem.prototype.RefreshState=function(){switch (this.Command.GetState()){case FCK_TRISTATE_ON:case FCK_TRISTATE_OFF:this._Row.className='CM_Option';break;default:this._Row.className='CM_Disabled';break;};};
var FCKContextMenuSeparator=function(){};FCKContextMenuSeparator.prototype.CreateTableRow=function(targetTable){this._Row=targetTable.insertRow(-1);this._Row.className='CM_Separator';var oCell=this._Row.insertCell(-1);oCell.className='CM_Icon';oCell=this._Row.insertCell(-1);oCell.className='CM_Label';oCell.innerHTML='<div></div>';};FCKContextMenuSeparator.prototype.SetVisible=function(isVisible){this._Row.style.display=isVisible?'':'none';};FCKContextMenuSeparator.prototype.RefreshState=function(){};
var FCKContextMenuGroup=function(){this.IsVisible=true;this.Items=new Array();this.ValidationFunction=null;};FCKContextMenuGroup.prototype.Add=function(contextMenuItem){this.Items[this.Items.length]=contextMenuItem;};FCKContextMenuGroup.prototype.CreateTableRows=function(table){for (var i=0;i<this.Items.length;i++){this.Items[i].CreateTableRow(table);};};FCKContextMenuGroup.prototype.SetVisible=function(isVisible){for (var i=0;i<this.Items.length;i++){this.Items[i].SetVisible(isVisible);};this.IsVisible=isVisible;};FCKContextMenuGroup.prototype.RefreshState=function(){if (!this.IsVisible) return;for (var i=0;i<this.Items.length;i++){this.Items[i].RefreshState();};}
var FCKContextMenu=new Object();FCKContextMenu._IsLoaded=false;FCKContextMenu.Reload=function(){this._Div=this._Document.createElement('DIV');this._Div.className='CM_ContextMenu';this._Div.style.position='absolute';this._Div.style.visibility='hidden';this._Document.body.appendChild(this._Div);var oTable=this._Document.createElement('TABLE');oTable.cellSpacing=0;oTable.cellPadding=0;oTable.border=0;this._Div.appendChild(oTable);this.Groups=new Object();this.Groups['Generic']=new FCKContextMenuGroup();with (this.Groups['Generic']){Add(new FCKContextMenuItem(this,'Cut',FCKLang.Cut,true));Add(new FCKContextMenuItem(this,'Copy',FCKLang.Copy,true));Add(new FCKContextMenuItem(this,'Paste',FCKLang.Paste,true));};this.Groups['Link']=new FCKContextMenuGroup();with (this.Groups['Link']){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'Link',FCKLang.EditLink,true));Add(new FCKContextMenuItem(this,'Unlink',FCKLang.RemoveLink,true));};this.Groups['TableCell']=new FCKContextMenuGroup();with (this.Groups['TableCell']){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'TableInsertRow',FCKLang.InsertRow,true));Add(new FCKContextMenuItem(this,'TableDeleteRows',FCKLang.DeleteRows,true));Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'TableInsertColumn',FCKLang.InsertColumn,true));Add(new FCKContextMenuItem(this,'TableDeleteColumns',FCKLang.DeleteColumns,true));Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'TableInsertCell',FCKLang.InsertCell,true));Add(new FCKContextMenuItem(this,'TableDeleteCells',FCKLang.DeleteCells,true));Add(new FCKContextMenuItem(this,'TableMergeCells',FCKLang.MergeCells,true));Add(new FCKContextMenuItem(this,'TableSplitCell',FCKLang.SplitCell,true));Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'TableCellProp',FCKLang.CellProperties,true));Add(new FCKContextMenuItem(this,'TableProp',FCKLang.TableProperties,true));};this.Groups['Table']=new FCKContextMenuGroup();with (this.Groups['Table']){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'Table',FCKLang.TableProperties,true));};this.Groups['Image']=new FCKContextMenuGroup();with (this.Groups['Image']){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'Image',FCKLang.ImageProperties,true));};this.Groups['Select']=new FCKContextMenuGroup();with (this.Groups['Select']){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'Undefined',"Selection Field Properties"));};this.Groups['Textarea']=new FCKContextMenuGroup();with (this.Groups['Textarea']){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'Undefined',"Textarea Properties"));};for (var o in this.Groups){this.Groups[o].CreateTableRows(oTable);};this._IsLoaded=true;};FCKContextMenu.RefreshState=function(){var oTag=FCKSelection.GetSelectedElement();var sTagName;if (oTag){sTagName=oTag.tagName;};this.Groups['Link'].SetVisible(FCK.GetNamedCommandState('Unlink')!=FCK_TRISTATE_DISABLED);this.Groups['TableCell'].SetVisible(sTagName!='TABLE'&&FCKSelection.HasAncestorNode('TABLE'));this.Groups['Table'].SetVisible(sTagName=='TABLE');this.Groups['Image'].SetVisible(sTagName=='IMG');this.Groups['Select'].SetVisible(sTagName=='SELECT');this.Groups['Textarea'].SetVisible(sTagName=='TEXTAREA');for (var o in this.Groups){this.Groups[o].RefreshState();};};
FCKTools.AppendStyleSheet(window.parent.document,FCKConfig.SkinPath+'fck_contextmenu.css');FCKContextMenu.Show=function(x,y){if (!this._Document){this._Document=window.parent.document;};if (!this._IsLoaded){this.Reload();this._Div.style.zIndex=10000;this._Div.oncontextmenu=function() { return false;};};this.RefreshState();var oCoordsA=FCKTools.GetElementPosition(FCK.EditorWindow.frameElement);var oCoordsB=FCKTools.GetElementPosition(window.frameElement);x+=oCoordsA.X+oCoordsB.X;y+=oCoordsA.Y+oCoordsB.Y;var iXSpace=x+this._Div.offsetWidth-this._Div.ownerDocument.defaultView.innerWidth;var iYSpace=y+this._Div.offsetHeight-this._Div.ownerDocument.defaultView.innerHeight;if (iXSpace>0) x-=this._Div.offsetWidth;if (iYSpace>0) y-=this._Div.offsetHeight;this._Div.style.left=x+'px';this._Div.style.top=y+'px';var oActualWindow=FCK.EditorWindow;while (oActualWindow){oActualWindow.document.addEventListener('click',FCKContextMenu._OnDocumentClick,false);if (oActualWindow!=oActualWindow.parent) oActualWindow=oActualWindow.parent;else if (oActualWindow.opener==null) oActualWindow=oActualWindow.opener;else break;};this._Div.style.visibility='';};FCKContextMenu._OnDocumentClick=function(event){var e=event.target;while (e){if (e==FCKContextMenu._Div) return;e=e.parentNode;};FCKContextMenu.Hide();};FCKContextMenu.Hide=function(){this._Div.style.visibility='hidden';this._Div.style.left=this._Div.style.top='1px';}
if (!FCKConfig.PluginsPath.endsWith('/')) FCKConfig.PluginsPath+='/';var FCKPlugin=function(name,availableLangs){this.Name=name;this.Path=FCKConfig.PluginsPath+name+'/';if (availableLangs.length==0) this.AvailableLangs=new Array();else this.AvailableLangs=availableLangs.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){if (this.AvailableLangs.indexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) var sLang=FCKLanguageManager.ActiveLanguage.Code;else var sLang=this.AvailableLangs[0];FCKScriptLoader.AddScript(this.Path+'lang/'+sLang+'.js');};FCKScriptLoader.AddScript(this.Path+'fckplugin.js');}
var FCKPlugins=FCK.Plugins=new Object();FCKPlugins.Loaded=false;FCKPlugins.Items=new Array();for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var oItem=FCKConfig.Plugins.Items[i];FCKPlugins.Items.addItem(new FCKPlugin(oItem[0],oItem[1]));};FCKPlugins.Load=function(){for (var i=0;i<this.Items.length;i++) this.Items[i].Load();this.Loaded=true;FCKPlugins.Load=null;}
if (FCKLang&&window.document.dir.toLowerCase()!=FCKLang.Dir.toLowerCase()) window.document.dir=FCKLang.Dir;if (FCKConfig.ForcePasteAsPlainText) FCK.Events.AttachEvent("OnPaste",FCK.Paste);if (FCKPlugins.Items.length>0){FCKScriptLoader.OnEmpty=CompleteLoading;FCKPlugins.Load();}else CompleteLoading();function CompleteLoading(){FCKToolbarSet.Name=FCKURLParams['Toolbar']||'Default';FCKToolbarSet.Load(FCKToolbarSet.Name);FCKToolbarSet.Restart();FCK.AttachToOnSelectionChange(FCKToolbarSet.RefreshItemsState);FCK.SetStatus(FCK_STATUS_COMPLETE);if (typeof(window.parent.FCKeditor_OnComplete)=='function') window.parent.FCKeditor_OnComplete(FCK);}