/*
 * 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 RC3
 * Created: 2005-03-02 14:14:16
 */
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(FCKConfig.FormatSource):FCK.GetHTML(FCKConfig.FormatSource));else FCK.SetHTML(FCK.GetHTML(),true);FCK.EditMode=bWYSIWYG?FCK_EDITMODE_SOURCE:FCK_EDITMODE_WYSIWYG;FCKToolbarSet.RefreshModeState();FCK.Focus();};FCK.CreateElement=function(tag){var e=FCK.EditorDocument.createElement(tag);return FCK.InsertElementAndGetIt(e);};FCK.InsertElementAndGetIt=function(e){e.setAttribute('__FCKTempLabel',1);this.InsertElement(e);var aEls=FCK.EditorDocument.getElementsByTagName(e.tagName);for (var i=0;i<aEls.length;i++){if (aEls[i].getAttribute('__FCKTempLabel')){aEls[i].removeAttribute('__FCKTempLabel');return aEls[i];};};};
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.PasteAsPlainText=function(){var sText=FCKTools.HTMLEncode(clipboardData.getData("Text"));sText=sText.replace(/\n/g,'<BR>');this.InsertHtml(sText);};FCK.PasteFromWord=function(){FCK.CleanAndPaste(FCK.GetClipboardHTML());};FCK.InsertElement=function(element){FCK.InsertHtml(element.outerHTML);};FCK.GetClipboardHTML=function(){var oDiv=document.getElementById('___FCKHiddenDiv');if (!oDiv){var oDiv=document.createElement('DIV');oDiv.id='___FCKHiddenDiv';oDiv.style.visibility='hidden';oDiv.style.overflow='hidden';oDiv.style.position='absolute';oDiv.style.width=1;oDiv.style.height=1;document.body.appendChild(oDiv);};oDiv.innerHTML='';var oTextRange=document.body.createTextRange();oTextRange.moveToElementText(oDiv);oTextRange.execCommand('Paste');var sData=oDiv.innerHTML;oDiv.innerHTML='';return sData;};FCK.AttachToOnSelectionChange=function(functionPointer){this.Events.AttachEvent('OnSelectionChange',functionPointer);};FCK.CreateLink=function(url){FCK.ExecuteNamedCommand('Unlink');if (url.length>0){var sTempUrl='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',sTempUrl);var oLinks=this.EditorDocument.links;for (i=0;i<oLinks.length;i++){if (oLinks[i].href==sTempUrl){oLinks[i].href=url;return oLinks[i];};};};};
var FCKSelection=new Object();FCK.Selection=FCKSelection;
FCKSelection.GetType=function(){return FCK.EditorDocument.selection.type;};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var oRange=FCK.EditorDocument.selection.createRange();if (oRange&&oRange.item) return FCK.EditorDocument.selection.createRange().item(0);};};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentElement;else return FCK.EditorDocument.selection.createRange().parentElement();};FCKSelection.MoveToNode=function(node){FCK.Focus();FCK.EditorDocument.selection.empty();var oRange=FCK.EditorDocument.selection.createRange();oRange.moveToElementText(node);oRange.select();};FCKSelection.HasAncestorNode=function(nodeTagName){var oContainer;if (FCK.EditorDocument.selection.type=="Control"){oContainer=this.GetSelectedElement();}else{var oRange=FCK.EditorDocument.selection.createRange();oContainer=oRange.parentElement();};while (oContainer){if (oContainer.tagName==nodeTagName) return true;oContainer=oContainer.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(nodeTagName){var oNode;if (FCK.EditorDocument.selection.type=="Control"){var oRange=FCK.EditorDocument.selection.createRange();for (i=0;i<oRange.length;i++){if (oRange(i).parentNode){oNode=oRange(i).parentNode;break;};};}else{var oRange=FCK.EditorDocument.selection.createRange();oNode=oRange.parentElement();};while (oNode&&oNode.nodeName!=nodeTagName) oNode=oNode.parentNode;return oNode;};FCKSelection.Delete=function(){var oSel=FCK.EditorDocument.selection;if (oSel.type.toLowerCase()!="none"){oSel.clear();};return oSel;}
var FCKPanel=function(parentWindow){this.Window=parentWindow?parentWindow:window;};FCKPanel.prototype.Create=function(){this._Popup=this.Window.createPopup();this.Document=this._Popup.document;this.Document.oncontextmenu=function() { return false;};if (this.StyleSheet) FCKTools.AppendStyleSheet(this.Document,this.StyleSheet);this.PanelDiv=this.Document.body.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();this._Popup.show(panelX,panelY,0,0,relElement);if (width==null||(autoSize&&width>this.PanelDiv.offsetWidth)) var iWidth=this.PanelDiv.offsetWidth;else var iWidth=width;if (height==null||(autoSize&&height>this.PanelDiv.offsetHeight)) var iHeight=this.PanelDiv.offsetHeight;else var iHeight=height;this.PanelDiv.style.height=iHeight;this._Popup.show(panelX,panelY,iWidth,iHeight,relElement);};FCKPanel.prototype.Hide=function(){if (this._Popup) this._Popup.hide();}
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 oRange=FCK.EditorDocument.selection.createRange();var oParent=oRange.parentElement();if (oParent&&oParent.tagName=="TD") aCells[0]=oParent;else{var oParent=FCKSelection.MoveToAncestorNode("TABLE");if (oParent){for (var i=0;i<oParent.cells.length;i++){var oCellRange=FCK.EditorDocument.selection.createRange();oCellRange.moveToElementText(oParent.cells[i]);if (oRange.inRange(oCellRange)||(oRange.compareEndPoints('StartToStart',oCellRange)>=0&&oRange.compareEndPoints('StartToEnd',oCellRange)<=0)||(oRange.compareEndPoints('EndToStart',oCellRange)>=0&&oRange.compareEndPoints('EndToEnd',oCellRange)<=0)){aCells[aCells.length]=oParent.cells[i];};};};};return aCells;};
var FCKXml=function(){};FCKXml.prototype.LoadUrl=function(urlToCall,asyncFunctionPointer){var oFCKXml=this;var bAsync=(typeof(asyncFunctionPointer)=='function');var oXmlHttp=FCKTools.CreateXmlObject('XmlHttp');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){if (oXmlHttp.status==200) this.DOMDocument=oXmlHttp.responseXML;else if (oXmlHttp.status==0&&oXmlHttp.readyState==4){oFCKXml.DOMDocument=FCKTools.CreateXmlObject('DOMDocument');oFCKXml.DOMDocument.async=false;oFCKXml.DOMDocument.resolveExternals=false;oFCKXml.DOMDocument.loadXML(oXmlHttp.responseText);}else alert('Error loading "'+urlToCall+'"');};};FCKXml.prototype.SelectNodes=function(xpath,contextNode){if (contextNode) return contextNode.selectNodes(xpath);else return this.DOMDocument.selectNodes(xpath);};FCKXml.prototype.SelectSingleNode=function(xpath,contextNode){if (contextNode) return contextNode.selectSingleNode(xpath);else return this.DOMDocument.selectSingleNode(xpath);};
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(){var oSelection=FCK.EditorDocument.selection;if (oSelection.type=='Text'){var oRange=oSelection.createRange();var e=document.createElement(this.Element);e.innerHTML=oRange.htmlText;this._AddAttributes(e);this._RemoveDuplicates(e);oRange.pasteHTML(e.outerHTML);}else if (oSelection.type=='Control'){var oControl=FCKSelection.GetSelectedElement();if (oControl.tagName==this.Element) this._AddAttributes(oControl);};};FCKStyleDef.prototype._AddAttributes=function(targetElement){for (var a in this.Attributes){if (a.toLowerCase()=='style') targetElement.style.cssText=this.Attributes[a];else targetElement.setAttribute(a,this.Attributes[a],0);};};FCKStyleDef.prototype._RemoveDuplicates=function(parent){for (var i=0;i<parent.children.length;i++){var oChild=parent.children[i];this._RemoveDuplicates(oChild);if (this.IsEqual(oChild)){oChild.insertAdjacentHTML('beforeBegin',oChild.innerHTML);oChild.parentElement.removeChild(oChild);};};};FCKStyleDef.prototype.IsEqual=function(e){if (e.tagName!=this.Element) return false;for (var a in this.Attributes){switch (a.toLowerCase()){case 'style':if (e.style.cssText.toLowerCase()!=this.Attributes[a].toLowerCase()) return false;break;case 'class':if (e.getAttribute('className',0)!=this.Attributes[a]) return false;break;default:if (e.getAttribute(a,0)!=this.Attributes[a]) return false;};};return true;};FCKStyleDef.prototype._RemoveMe=function(elementToCheck){if (!elementToCheck) return;var oParent=elementToCheck.parentElement;if (this.IsEqual(elementToCheck)){if (this.IsObjectElement){for (var a in this.Attributes){switch (a.toLowerCase()){case 'class':elementToCheck.removeAttribute('className',0);break;default: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 FCKSpellCheckCommand=function(){this.Name='SpellCheck';this.IsEnabled=(FCKConfig.SpellChecker=='ieSpell'||FCKConfig.SpellChecker=='SpellerPages');};FCKSpellCheckCommand.prototype.Execute=function(){switch (FCKConfig.SpellChecker){case 'ieSpell':this._RunIeSpell();break;case 'SpellerPages':FCKDialog.OpenDialog('FCKDialog_SpellCheck','Spell Check','dialog/fck_spellerpages.html',440,480);break;};};FCKSpellCheckCommand.prototype._RunIeSpell=function(){try{var oIeSpell=new ActiveXObject("ieSpell.ieSpellExtension");oIeSpell.CheckAllLinkedDocuments(FCK.EditorDocument);}catch(e){if(e.number==-2146827859){if (confirm(FCKLang.IeSpellDownload)) window.open(FCKConfig.IeSpellDownloadUrl,'IeSpellDownload');}else alert('Error Loading ieSpell: '+e.message+' ('+e.number+')');};};FCKSpellCheckCommand.prototype.GetState=function(){return this.IsEnabled?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;}
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 'DocProps':oCommand=new FCKDialogCommand('DocProps',FCKLang.DocProps,'dialog/fck_docprops.html',400,390,FCKCommands.GetFullPageState);break;case 'Link':oCommand=new FCKDialogCommand('Link',FCKLang.DlgLnkWindowTitle,'dialog/fck_link.html',400,330,FCK.GetNamedCommandState,'CreateLink');break;case 'Anchor':oCommand=new FCKDialogCommand('Anchor',FCKLang.DlgAnchorTitle,'dialog/fck_anchor.html',370,170);break;case 'BulletedList':oCommand=new FCKDialogCommand('BulletedList',FCKLang.BulletedListProp,'dialog/fck_listprop.html',370,170);break;case 'NumberedList':oCommand=new FCKDialogCommand('NumberedList',FCKLang.NumberedListProp,'dialog/fck_listprop.html',370,170);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);break;case 'SpecialChar':oCommand=new FCKDialogCommand('SpecialChar',FCKLang.DlgSpecialCharTitle,'dialog/fck_specialchar.html',400,300);break;case 'Smiley':oCommand=new FCKDialogCommand('Smiley',FCKLang.DlgSmileyTitle,'dialog/fck_smiley.html',FCKConfig.SmileyWindowWidth,FCKConfig.SmileyWindowHeight);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 'UniversalKey':oCommand=new FCKDialogCommand('UniversalKey',FCKLang.UniversalKeyboard,'dialog/fck_universalkey.html',415,300);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 'Form':oCommand=new FCKDialogCommand('Form',FCKLang.Form,'dialog/fck_form.html',380,230);break;case 'Checkbox':oCommand=new FCKDialogCommand('Checkbox',FCKLang.Checkbox,'dialog/fck_checkbox.html',380,230);break;case 'Radio':oCommand=new FCKDialogCommand('Radio',FCKLang.RadioButton,'dialog/fck_radiobutton.html',380,230);break;case 'TextField':oCommand=new FCKDialogCommand('TextField',FCKLang.TextField,'dialog/fck_textfield.html',380,230);break;case 'Textarea':oCommand=new FCKDialogCommand('Textarea',FCKLang.Textarea,'dialog/fck_textarea.html',380,230);break;case 'HiddenField':oCommand=new FCKDialogCommand('HiddenField',FCKLang.HiddenField,'dialog/fck_hiddenfield.html',380,230);break;case 'Button':oCommand=new FCKDialogCommand('Button',FCKLang.Button,'dialog/fck_button.html',380,230);break;case 'Select':oCommand=new FCKDialogCommand('Select',FCKLang.SelectionField,'dialog/fck_select.html',400,380);break;case 'ImageButton':oCommand=new FCKDialogCommand('ImageButton',FCKLang.ImageButton,'dialog/fck_image.html?ImageButton',450,400);break;case 'SpellCheck':oCommand=new FCKSpellCheckCommand();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;};FCKCommands.GetFullPageState=function(){return FCKConfig.FullPage?FCK_TRISTATE_OFF:FCK_TRISTATE_DISABLED;};
var FCKToolbarButton=function(commandName,label,tooltip,style,sourceView,contextSensitive){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.ContextSensitive=contextSensitive?true:false;this.IconPath=FCKConfig.SkinPath+'toolbar/'+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=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;};};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this.DOMDiv.className='TB_Button_Disabled';}
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';if (FCKBrowserInfo.IsGecko) this.SpecialCombo._Panel.PanelDiv.style.overflow='-moz-scrollbars-vertical';this.SpecialCombo._Panel.Show(0,this.offsetHeight,this,null,this.SpecialCombo.PanelMaxHeight,true);};return false;};};
var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;};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;var sValue=this.Command.GetState();if (sValue!=FCK_TRISTATE_DISABLED){eState=FCK_TRISTATE_ON;if (!this.RefreshActiveItems){this.RefreshActiveItems=function(combo,value){this._Combo.DeselectAll();this._Combo.SelectItem(value);this._Combo.SetLabelById(value);};};this.RefreshActiveItems(this._Combo,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);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=FCK_TRISTATE_DISABLED;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}
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/'+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;FCKToolbarPanelButton.prototype.Enable=FCKToolbarButton.prototype.Enable;FCKToolbarPanelButton.prototype.Disable=FCKToolbarButton.prototype.Disable;
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,true);break;case 'DocProps':oItem=new FCKToolbarButton('DocProps',FCKLang.DocProps);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,null,null,true);break;case 'Cut':oItem=new FCKToolbarButton('Cut',FCKLang.Cut,null,null,false,true);break;case 'Copy':oItem=new FCKToolbarButton('Copy',FCKLang.Copy,null,null,false,true);break;case 'Paste':oItem=new FCKToolbarButton('Paste',FCKLang.Paste,null,null,false,true);break;case 'PasteText':oItem=new FCKToolbarButton('PasteText',FCKLang.PasteText,null,null,false,true);break;case 'PasteWord':oItem=new FCKToolbarButton('PasteWord',FCKLang.PasteWord,null,null,false,true);break;case 'Print':oItem=new FCKToolbarButton('Print',FCKLang.Print);break;case 'SpellCheck':oItem=new FCKToolbarButton('SpellCheck',FCKLang.SpellCheck);break;case 'Undo':oItem=new FCKToolbarButton('Undo',FCKLang.Undo,null,null,false,true);break;case 'Redo':oItem=new FCKToolbarButton('Redo',FCKLang.Redo,null,null,false,true);break;case 'SelectAll':oItem=new FCKToolbarButton('SelectAll',FCKLang.SelectAll);break;case 'RemoveFormat':oItem=new FCKToolbarButton('RemoveFormat',FCKLang.RemoveFormat,null,null,false,true);break;case 'Bold':oItem=new FCKToolbarButton('Bold',FCKLang.Bold,null,null,false,true);break;case 'Italic':oItem=new FCKToolbarButton('Italic',FCKLang.Italic,null,null,false,true);break;case 'Underline':oItem=new FCKToolbarButton('Underline',FCKLang.Underline,null,null,false,true);break;case 'StrikeThrough':oItem=new FCKToolbarButton('StrikeThrough',FCKLang.StrikeThrough,null,null,false,true);break;case 'Subscript':oItem=new FCKToolbarButton('Subscript',FCKLang.Subscript,null,null,false,true);break;case 'Superscript':oItem=new FCKToolbarButton('Superscript',FCKLang.Superscript,null,null,false,true);break;case 'OrderedList':oItem=new FCKToolbarButton('InsertOrderedList',FCKLang.NumberedListLbl,FCKLang.NumberedList,null,false,true);break;case 'UnorderedList':oItem=new FCKToolbarButton('InsertUnorderedList',FCKLang.BulletedListLbl,FCKLang.BulletedList,null,false,true);break;case 'Outdent':oItem=new FCKToolbarButton('Outdent',FCKLang.DecreaseIndent,null,null,false,true);break;case 'Indent':oItem=new FCKToolbarButton('Indent',FCKLang.IncreaseIndent,null,null,false,true);break;case 'Link':oItem=new FCKToolbarButton('Link',FCKLang.InsertLinkLbl,FCKLang.InsertLink,null,false,true);break;case 'Unlink':oItem=new FCKToolbarButton('Unlink',FCKLang.RemoveLink,null,null,false,true);break;case 'Anchor':oItem=new FCKToolbarButton('Anchor',FCKLang.Anchor);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 'UniversalKey':oItem=new FCKToolbarButton('UniversalKey',FCKLang.UniversalKeyboard);break;case 'Rule':oItem=new FCKToolbarButton('InsertHorizontalRule',FCKLang.InsertLineLbl,FCKLang.InsertLine);break;case 'JustifyLeft':oItem=new FCKToolbarButton('JustifyLeft',FCKLang.LeftJustify,null,null,false,true);break;case 'JustifyCenter':oItem=new FCKToolbarButton('JustifyCenter',FCKLang.CenterJustify,null,null,false,true);break;case 'JustifyRight':oItem=new FCKToolbarButton('JustifyRight',FCKLang.RightJustify,null,null,false,true);break;case 'JustifyFull':oItem=new FCKToolbarButton('JustifyFull',FCKLang.BlockJustify,null,null,false,true);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;case 'Form':oItem=new FCKToolbarButton('Form',FCKLang.Form);break;case 'Checkbox':oItem=new FCKToolbarButton('Checkbox',FCKLang.Checkbox);break;case 'Radio':oItem=new FCKToolbarButton('Radio',FCKLang.RadioButton);break;case 'TextField':oItem=new FCKToolbarButton('TextField',FCKLang.TextField);break;case 'Textarea':oItem=new FCKToolbarButton('Textarea',FCKLang.Textarea);break;case 'HiddenField':oItem=new FCKToolbarButton('HiddenField',FCKLang.HiddenField);break;case 'Button':oItem=new FCKToolbarButton('Button',FCKLang.Button);break;case 'Select':oItem=new FCKToolbarButton('Select',FCKLang.SelectionField);break;case 'ImageButton':oItem=new FCKToolbarButton('ImageButton',FCKLang.ImageButton);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 FCKToolbarBreak=function(){var oBreakDiv=document.createElement('div');oBreakDiv.className='TB_Break';oBreakDiv.style.clear=FCKLang.Dir=='rtl'?'left':'right';FCKToolbarSet.DOMElement.appendChild(oBreakDiv);}
var FCKToolbarSet=FCK.ToolbarSet=new Object();document.getElementById('ExpandHandle').title=FCKLang.ToolbarExpand;document.getElementById('CollapseHandle').title=FCKLang.ToolbarCollapse;FCKToolbarSet.Toolbars=new Array();FCKToolbarSet.ItemsWysiwygOnly=new Array();FCKToolbarSet.ItemsContextSensitive=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 oToolbarItems=ToolbarSet[x];var oToolbar;if (typeof(oToolbarItems)=='string'){if (oToolbarItems=='/') oToolbar=new FCKToolbarBreak();}else{var oToolbar=new FCKToolbar();for (var j=0;j<oToolbarItems.length;j++){var sItem=oToolbarItems[j];if (sItem=='-') oToolbar.AddSeparator();else{var oItem=FCKToolbarItems.GetItem(sItem);if (oItem){oToolbar.AddItem(oItem);if (!oItem.SourceView) this.ItemsWysiwygOnly[this.ItemsWysiwygOnly.length]=oItem;if (oItem.ContextSensitive) this.ItemsContextSensitive[this.ItemsContextSensitive.length]=oItem;};};};oToolbar.AddTerminator();};this.Toolbars[this.Toolbars.length]=oToolbar;};};FCKToolbarSet.RefreshModeState=function(){if (FCK.EditMode==FCK_EDITMODE_WYSIWYG){for (var i=0;i<FCKToolbarSet.ItemsWysiwygOnly.length;i++) FCKToolbarSet.ItemsWysiwygOnly[i].Enable();FCKToolbarSet.RefreshItemsState();}else{FCKToolbarSet.RefreshItemsState();for (var i=0;i<FCKToolbarSet.ItemsWysiwygOnly.length;i++) FCKToolbarSet.ItemsWysiwygOnly[i].Disable();};};FCKToolbarSet.RefreshItemsState=function(){for (var i=0;i<FCKToolbarSet.ItemsContextSensitive.length;i++) FCKToolbarSet.ItemsContextSensitive[i].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){if (!parentWindow) parentWindow=window;parentWindow.showModalDialog(pageUrl,dialogInfo,"dialogWidth:"+dialogWidth+"px;dialogHeight:"+dialogHeight+"px;help:no;scroll:no;status:no");};
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(){if (this.className!='CM_Disabled'){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/'+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(addSeparator,contextMenu,firstItemCommand,firstItemLabel,hasIcon){this.IsVisible=true;this.Items=new Array();if (addSeparator) this.Add(new FCKContextMenuSeparator());if (contextMenu&&firstItemCommand&&firstItemLabel) this.Add(new FCKContextMenuItem(contextMenu,firstItemCommand,firstItemLabel,hasIcon));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();for (var i=0;i<FCKConfig.ContextMenu.length;i++){var sGroup=FCKConfig.ContextMenu[i];this.Groups[sGroup]=this._GetGroup(sGroup);this.Groups[sGroup].CreateTableRows(oTable);};this._IsLoaded=true;};FCKContextMenu._GetGroup=function(groupName){var oGroup;switch (groupName){case 'Generic':oGroup=new FCKContextMenuGroup();with (oGroup){Add(new FCKContextMenuItem(this,'Cut',FCKLang.Cut,true));Add(new FCKContextMenuItem(this,'Copy',FCKLang.Copy,true));Add(new FCKContextMenuItem(this,'Paste',FCKLang.Paste,true));};break;case 'Link':oGroup=new FCKContextMenuGroup();with (oGroup){Add(new FCKContextMenuSeparator());Add(new FCKContextMenuItem(this,'Link',FCKLang.EditLink,true));Add(new FCKContextMenuItem(this,'Unlink',FCKLang.RemoveLink,true));};break;case 'TableCell':oGroup=new FCKContextMenuGroup();with (oGroup){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));};break;case 'Table':return new FCKContextMenuGroup(true,this,'Table',FCKLang.TableProperties,true);case 'Image':return new FCKContextMenuGroup(true,this,'Image',FCKLang.ImageProperties,true);case 'Form':return new FCKContextMenuGroup(true,this,'Form',FCKLang.FormProp,true);case 'Checkbox':return new FCKContextMenuGroup(true,this,'Checkbox',FCKLang.CheckboxProp,true);case 'Radio':return new FCKContextMenuGroup(true,this,'Radio',FCKLang.RadioButtonProp,true);case 'TextField':return new FCKContextMenuGroup(true,this,'TextField',FCKLang.TextFieldProp,true);case 'HiddenField':return new FCKContextMenuGroup(true,this,'HiddenField',FCKLang.HiddenFieldProp,true);case 'ImageButton':return new FCKContextMenuGroup(true,this,'ImageButton',FCKLang.ImageButtonProp,true);case 'Button':return new FCKContextMenuGroup(true,this,'Button',FCKLang.ButtonProp,true);case 'Select':return new FCKContextMenuGroup(true,this,'Select',FCKLang.SelectionFieldProp,true);case 'Textarea':return new FCKContextMenuGroup(true,this,'Textarea',FCKLang.TextareaProp,true);case 'BulletedList':return new FCKContextMenuGroup(true,this,'BulletedList',FCKLang.BulletedListProp,true);case 'NumberedList':return new FCKContextMenuGroup(true,this,'NumberedList',FCKLang.NumberedListProp,true);case 'Anchor':return new FCKContextMenuGroup(true,this,'Anchor',FCKLang.AnchorProp,true);};return oGroup;};FCKContextMenu.RefreshState=function(){var oTag=FCKSelection.GetSelectedElement();var sTagName;if (oTag){sTagName=oTag.tagName;};var bIsAnchor=(sTagName=='A'&&oTag.name.length>0&&oTag.href.length==0);if (this.Groups['Anchor'])		this.Groups['Anchor'].SetVisible(bIsAnchor);if (this.Groups['Link'])			this.Groups['Link'].SetVisible(!bIsAnchor&&FCK.GetNamedCommandState('Unlink')!=FCK_TRISTATE_DISABLED);if (this.Groups['TableCell'])		this.Groups['TableCell'].SetVisible(sTagName!='TABLE'&&FCKSelection.HasAncestorNode('TABLE'));if (this.Groups['Table'])			this.Groups['Table'].SetVisible(sTagName=='TABLE');if (this.Groups['Image'])			this.Groups['Image'].SetVisible(sTagName=='IMG');if (this.Groups['BulletedList'])	this.Groups['BulletedList'].SetVisible(FCKSelection.HasAncestorNode('UL'));if (this.Groups['NumberedList'])	this.Groups['NumberedList'].SetVisible(FCKSelection.HasAncestorNode('OL'));if (this.Groups['Select'])		this.Groups['Select'].SetVisible(sTagName=='SELECT');if (this.Groups['Textarea'])		this.Groups['Textarea'].SetVisible(sTagName=='TEXTAREA');if (this.Groups['Form'])			this.Groups['Form'].SetVisible(FCKSelection.HasAncestorNode('FORM'));if (this.Groups['Checkbox'])		this.Groups['Checkbox'].SetVisible(sTagName=='INPUT'&&oTag.type=='checkbox');if (this.Groups['Radio'])			this.Groups['Radio'].SetVisible(sTagName=='INPUT'&&oTag.type=='radio');if (this.Groups['TextField'])		this.Groups['TextField'].SetVisible(sTagName=='INPUT'&&(oTag.type=='text'||oTag.type=='password'));if (this.Groups['HiddenField'])	this.Groups['HiddenField'].SetVisible(sTagName=='INPUT'&&oTag.type=='hidden');if (this.Groups['ImageButton'])	this.Groups['ImageButton'].SetVisible(sTagName=='INPUT'&&oTag.type=='image');if (this.Groups['Button'])		this.Groups['Button'].SetVisible(sTagName=='INPUT'&&(oTag.type=='button'||oTag.type=='submit'||oTag.type=='reset'));for (var o in this.Groups){this.Groups[o].RefreshState();};};
FCKContextMenu.Show=function(x,y){if (!this._Popup){this._Popup=window.createPopup();this._Document=this._Popup.document;this._Document.createStyleSheet(FCKConfig.SkinPath+'fck_contextmenu.css');this._Document.oncontextmenu=function() { return false;};};if (!this._IsLoaded){this.Reload();this._Div.style.visibility='';};this.RefreshState();this._Popup.show(x,y,0,0);this._Popup.show(x,y,this._Div.offsetWidth,this._Div.offsetHeight);};FCKContextMenu.Hide=function(){if (this._Popup) this._Popup.hide();}
if (!FCKConfig.PluginsPath.endsWith('/')) FCKConfig.PluginsPath+='/';var FCKPlugin=function(name,availableLangs,basePath){this.Name=name;this.BasePath=basePath?basePath:FCKConfig.PluginsPath;this.Path=this.BasePath+name+'/';if (!availableLangs||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.ItemsCount=0;FCKPlugins.Loaded=false;FCKPlugins.Items=new Object();for (var i=0;i<FCKConfig.Plugins.Items.length;i++){var oItem=FCKConfig.Plugins.Items[i];FCKPlugins.Items[oItem[0]]=new FCKPlugin(oItem[0],oItem[1],oItem[2]);FCKPlugins.ItemsCount++;};FCKPlugins.Load=function(){for (var s in this.Items) this.Items[s].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.ItemsCount>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);}
