FCK.Description="FCKeditor for Gecko Browsers";FCK.InitializeBehaviors=function(){if(window.onresize)window.onresize();FCKFocusManager.AddWindow(this.EditorWindow);this.ExecOnSelectionChange=function(){FCK.Events.FireEvent("OnSelectionChange");};this._ExecDrop=function(evt){if(FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if(FCKConfig.ForcePasteAsPlainText){if(evt.dataTransfer){varA=evt.dataTransfer.getData('Text');A=FCKTools.HTMLEncode(A);A=FCKTools.ProcessLineBreaks(window,FCKConfig,A);FCK.InsertHtml(A);}elseif(FCKConfig.ShowDropDialog)FCK.PasteAsPlainText();evt.preventDefault();evt.stopPropagation();}};this._ExecCheckCaret=function(evt){if(FCK.EditMode!=0)return;if(evt.type=='keypress'){varB=evt.keyCode;if(B<33||B>40)return;};varC=function(H){if(H.nodeType!=1)returnfalse;varD=H.tagName.toLowerCase();return(FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};varE=function(){varF=FCKSelection.GetSelection();varG=F.getRangeAt(0);if(!G||!G.collapsed)return;varH=G.endContainer;if(H.nodeType!=3)return;if(H.nodeValue.length!=G.endOffset)return;varI=H.parentNode.tagName.toLowerCase();if(!(I=='a'||(!FCKBrowserInfo.IsOpera&&String(H.parentNode.contentEditable)=='false')||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&&B==35)))return;varJ=FCKTools.GetNextTextNode(H,H.parentNode,C);if(J)return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if(J){if(FCKBrowserInfo.IsOpera&&B==37)return;G.setStart(J,0);G.setEnd(J,0);}else{while(H.parentNode&&H.parentNode!=FCK.EditorDocument.body&&H.parentNode!=FCK.EditorDocument.documentElement&&H==H.parentNode.lastChild&&(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&&!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()]))H=H.parentNode;if(FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{varK=H.nextSibling;while(K){if(K.nodeType!=1){K=K.nextSibling;continue;};varL=K.tagName.toLowerCase();if(FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L])break;K=K.nextSibling;};varM=FCK.EditorDocument.createTextNode('');if(K)H.parentNode.insertBefore(M,K);elseH.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent("OnSelectionChange");};setTimeout(E,1);};this.ExecOnSelectionChangeTimer=function(){if(FCK.LastOnChangeTimer)window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if(FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}elseif(FCKBrowserInfo.IsSafari){this.EditorDocument.addEventListener('dragover',function(evt){if(!FCK.MouseDownFlag&&FCK.Config.ForcePasteAsPlainText)evt.returnValue=false;},true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){varN=ev.srcElement;if(N.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(N);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if(ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT'))ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if(ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT'))ev.preventDefault()},true);};if(FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};functionDocument_OnContextMenu(e){if(!e.target._FCKShowContextMenu)e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch(A){case'Unlink':returnFCKSelection.HasAncestorNode('A')?0:-1;default:returnFCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch(A){case'Print':FCK.EditorWindow.print();break;case'Paste':try{if(FCKBrowserInfo.IsSafari)throw'';if(FCK.Paste())FCK.ExecuteNamedCommand('Paste',null,true);}catch(e){if(FCKConfig.ForcePasteAsPlainText)FCK.PasteAsPlainText();elseFCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if(FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();returnfalse;};returntrue;};FCK.InsertHtml=function(A){varB=FCK.EditorDocument,range;A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();if(FCKBrowserInfo.IsGecko){A=A.replace(/ $/,'$&<span _fcktemp="1"/>');varC=newFCKDocumentFragment(this.EditorDocument);C.AppendHtml(A);varD=C.RootNode.lastChild;range=newFCKDomRange(this.EditorWindow);range.MoveToSelection();range.DeleteContents();range.InsertNode(C.RootNode);range.MoveToPosition(D,4);}elseB.execCommand('inserthtml',false,A);this.Focus();if(!range){range=newFCKDomRange(this.EditorWindow);range.MoveToSelection();};varE=range.CreateBookmark();FCKDocumentProcessor.Process(B);try{range.MoveToBookmark(E);range.Select();}catch(e){};this.Events.FireEvent("OnSelectionChange");};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return'';};FCK.CreateLink=function(A,B){varC=[];if(FCKSelection.GetSelection().isCollapsed)returnC;FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if(A.length>0){varD='javascript:void(0);/*'+(newDate().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);varE=this.EditorDocument.evaluate("//a[@href='"+D+"']",this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(vari=0;i<E.snapshotLength;i++){varF=E.snapshotItem(i);F.href=A;C.push(F);}};returnC;};FCK._FillEmptyBlock=function(A){if(!A||A.nodeType!=1)return;varB=A.tagName.toLowerCase();if(B!='p'&&B!='div')return;if(A.firstChild)return;FCKTools.AppendBogusBr(A);};FCK._ExecCheckEmptyBlock=function(){FCK._FillEmptyBlock(FCK.EditorDocument.body.firstChild);varA=FCKSelection.GetSelection();if(!A||A.rangeCount<1)return;varB=A.getRangeAt(0);FCK._FillEmptyBlock(B.startContainer);};
varFCKStyles=FCK.Styles={_Callbacks:{},_ObjectStyles:{},ApplyStyle:function(A){if(typeofA=='string')A=this.GetStyles()[A];if(A){if(A.GetType()==2)A.ApplyToObject(FCKSelection.GetSelectedElement());elseA.ApplyToSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},RemoveStyle:function(A){if(typeofA=='string')A=this.GetStyles()[A];if(A){A.RemoveFromSelection(FCK.EditorWindow);FCK.Events.FireEvent('OnSelectionChange');}},AttachStyleStateChange:function(A,B,C){varD=this._Callbacks[A];if(!D)D=this._Callbacks[A]=[];D.push([B,C]);},CheckSelectionChanges:function(){varA=FCKSelection.GetBoundaryParentElement(true);if(!A)return;varB=newFCKElementPath(A);varC=this.GetStyles();for(varDinC){varE=this._Callbacks[D];if(E){varF=C[D];varG=F.CheckActive(B);if(G!=(F._LastState||null)){F._LastState=G;for(vari=0;i<E.length;i++){varH=E[i][0];varI=E[i][1];H.call(I||window,D,G);}}}}},CheckStyleInSelection:function(A){returnfalse;},_GetRemoveFormatTagsRegex:function(){varA=newRegExp('^(?:'+FCKConfig.RemoveFormatTags.replace(/,/g,'|')+')$','i');return(this._GetRemoveFormatTagsRegex=function(){returnA;})&&A;},RemoveAll:function(){varA=newFCKDomRange(FCK.EditorWindow);A.MoveToSelection();if(A.CheckIsCollapsed())return;A.Expand('inline_elements');varB=A.CreateBookmark(true);varC=A.GetBookmarkNode(B,true);varD=A.GetBookmarkNode(B,false);A.Release(true);varE=this._GetRemoveFormatTagsRegex();varF=newFCKElementPath(C);varG=F.Elements;varH;for(vari=1;i<G.length;i++){H=G[i];if(H==F.Block||H==F.BlockLimit)break;if(E.test(H.nodeName))FCKDomTools.BreakParent(C,H,A);};F=newFCKElementPath(D);G=F.Elements;for(vari=1;i<G.length;i++){H=G[i];if(H==F.Block||H==F.BlockLimit)break;elementName=H.nodeName.toLowerCase();if(E.test(H.nodeName))FCKDomTools.BreakParent(D,H,A);};varI=FCKDomTools.GetNextSourceNode(C,true,1);while(I){if(I==D)break;varJ=FCKDomTools.GetNextSourceNode(I,false,1);if(E.test(I.nodeName))FCKDomTools.RemoveNode(I,true);elseFCKDomTools.RemoveAttributes(I,FCKConfig.RemoveAttributesArray);I=J;};A.SelectBookmark(B);FCK.Events.FireEvent('OnSelectionChange');},GetStyle:function(A){returnthis.GetStyles()[A];},GetStyles:function(){varA=this._GetStyles;if(!A){A=this._GetStyles=FCKTools.Merge(this._LoadStylesCore(),this._LoadStylesCustom(),this._LoadStylesXml());};returnA;},CheckHasObjectStyle:function(A){return!!this._ObjectStyles[A];},_LoadStylesCore:function(){varA={};varB=FCKConfig.CoreStyles;for(varCinB){varD=A['_FCK_'+C]=newFCKStyle(B[C]);D.IsCore=true;};returnA;},_LoadStylesCustom:function(){varA={};varB=FCKConfig.CustomStyles;if(B){for(varCinB){varD=A[C]=newFCKStyle(B[C]);D.Name=C;}};returnA;},_LoadStylesXml:function(){varA={};varB=FCKConfig.StylesXmlPath;if(!B||B.length==0)returnA;varC=newFCKXml();C.LoadUrl(B);varD=FCKXml.TransformToObject(C.SelectSingleNode('Styles'));varE=D.$Style;if(!E)returnA;for(vari=0;i<E.length;i++){varF=E[i];varG=(F.element||'').toLowerCase();if(G.length==0)throw('The element name is required. Error loading "'+B+'"');varH={Element:G,Attributes:{},Styles:{},Overrides:[]};varI=F.$Attribute||[];for(varj=0;j<I.length;j++){H.Attributes[I[j].name]=I[j].value;};varJ=F.$Style||[];for(j=0;j<J.length;j++){H.Styles[J[j].name]=J[j].value;};varK=F.$Override;if(K){for(j=0;j<K.length;j++){varL=K[j];varM={Element:L.element};varN=L.$Attribute;if(N){M.Attributes={};for(vark=0;k<N.length;k++){varO=N[k].value||null;if(O){varP=O&&FCKRegexLib.RegExp.exec(O);if(P)O=newRegExp(P[1],P[2]||'');};M.Attributes[N[k].name]=O;}};H.Overrides.push(M);}};varQ=newFCKStyle(H);Q.Name=F.name||G;if(Q.GetType()==2)this._ObjectStyles[G]=true;A[Q.Name]=Q;};returnA;}};
FCKXml.prototype={LoadUrl:function(A){this.Error=false;varB;varC=FCKTools.CreateXmlObject('XmlHttp');C.open('GET',A,false);C.send(null);if(C.status==200||C.status==304||(C.status==0&&C.readyState==4)){B=C.responseXML;if(!B)B=(newDOMParser()).parseFromString(C.responseText,'text/xml');}elseB=null;if(B){try{varD=B.firstChild;}catch(e){B=(newDOMParser()).parseFromString(C.responseText,'text/xml');}};if(!B||!B.firstChild){this.Error=true;if(window.confirm('Error loading "'+A+'" (HTTP Status: '+C.status+').\r\nDo you want to see the server response dump?'))alert(C.responseText);};this.DOMDocument=B;},SelectNodes:function(A,B){if(this.Error)return[];varC=[];varD=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);if(D){varE=D.iterateNext();while(E){C[C.length]=E;E=D.iterateNext();}};returnC;},SelectSingleNode:function(A,B){if(this.Error)returnnull;varC=this.DOMDocument.evaluate(A,B?B:this.DOMDocument,this.DOMDocument.createNSResolver(this.DOMDocument.documentElement),9,null);if(C&&C.singleNodeValue)returnC.singleNodeValue;elsereturnnull;}};
varFCKToolbarFontFormatCombo=function(A,B){if(A===false)return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=newFCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){returnFCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){varA={};varB=FCKLang['FontFormats'].split(';');varC={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};varD=FCKConfig.FontFormats.split(';');for(vari=0;i<D.length;i++){varE=D[i];varF=FCKStyles.GetStyle('_FCK_'+E);if(F){F.Label=C[E];A['_FCK_'+E]=F;}elsealert("The FCKConfig.CoreStyles['"+E+"'] setting was not found. Please check the fckconfig.js file");};returnA;};FCKToolbarFontFormatCombo.prototype.RefreshActiveItems=function(A){varB=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if(B){varC=newFCKElementPath(B);varD=C.Block;if(D){for(variinA.Items){varE=A.Items[i];varF=E.Style;if(F.CheckElementRemovable(D)){A.SetLabel(F.Label);return;}}}};A.SetLabel(this.DefaultLabel);};FCKToolbarFontFormatCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();varB=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if(B){varC=newFCKElementPath(B);varD=C.Block;for(variinA.Items){varE=A.Items[i];varF=E.Style;if(F.CheckElementRemovable(D)){A.SelectItem(E);return;}}}};
varFCKToolbarFontsCombo=function(A,B){this.CommandName='FontName';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontLabel||'';};FCKToolbarFontsCombo.prototype=newFCKToolbarFontFormatCombo(false);FCKToolbarFontsCombo.prototype.GetLabel=function(){returnFCKLang.Font;};FCKToolbarFontsCombo.prototype.GetStyles=function(){varA=FCKStyles.GetStyle('_FCK_FontFace');if(!A){alert("The FCKConfig.CoreStyles['Size'] setting was not found. Please check the fckconfig.js file");return{};};varB={};varC=FCKConfig.FontNames.split(';');for(vari=0;i<C.length;i++){varD=C[i].split('/');varE=D[0];varF=D[1]||E;varG=FCKTools.CloneObject(A);G.SetVariable('Font',E);G.Label=F;B[F]=G;};returnB;};FCKToolbarFontsCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick=function(A){A.DeselectAll();varB=FCKSelection.GetBoundaryParentElement(true);if(B){varC=newFCKElementPath(B);for(variinA.Items){varD=A.Items[i];varE=D.Style;if(E.CheckActive(C)){A.SelectItem(D);return;}}}};
varFCKToolbarFontSizeCombo=function(A,B){this.CommandName='FontSize';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultFontSizeLabel||'';this.FieldWidth=70;};FCKToolbarFontSizeCombo.prototype=newFCKToolbarFontFormatCombo(false);FCKToolbarFontSizeCombo.prototype.GetLabel=function(){returnFCKLang.FontSize;};FCKToolbarFontSizeCombo.prototype.GetStyles=function(){varA=FCKStyles.GetStyle('_FCK_Size');if(!A){alert("The FCKConfig.CoreStyles['FontFace'] setting was not found. Please check the fckconfig.js file");return{};};varB={};varC=FCKConfig.FontSizes.split(';');for(vari=0;i<C.length;i++){varD=C[i].split('/');varE=D[0];varF=D[1]||E;varG=FCKTools.CloneObject(A);G.SetVariable('Size',E);G.Label=F;B[F]=G;};returnB;};FCKToolbarFontSizeCombo.prototype.RefreshActiveItems=FCKToolbarStyleCombo.prototype.RefreshActiveItems;FCKToolbarFontSizeCombo.prototype.StyleCombo_OnBeforeClick=FCKToolbarFontsCombo.prototype.StyleCombo_OnBeforeClick;