Rev 1372 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 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/** "Support Open Source software. What about a donation today?"** File Name: fckeditorapi.js* Create the FCKeditorAPI object that is available as a global object in* the page where the editor is placed in.** File Authors:* Frederico Caldeira Knabben (fredck@fckeditor.net)*/var FCKeditorAPI ;function InitializeAPI(){if ( !( FCKeditorAPI = window.parent.FCKeditorAPI ) ){// Make the FCKeditorAPI object available in the parent window. Use// eval so it is independent from this window and so it will still be// available if the editor instance is removed ("Can't execute code// from a freed script" error).var sScript = '\var FCKeditorAPI = {\Version : \'2.3.2\',\VersionBuild : \'1082\',\__Instances : new Object(),\GetInstance : function( instanceName )\{\return this.__Instances[ instanceName ] ;\},\_FunctionQueue : {\Functions : new Array(),\IsRunning : false,\Add : function( functionToAdd )\{\this.Functions.push( functionToAdd ) ;\if ( !this.IsRunning )\this.StartNext() ;\},\StartNext : function()\{\var aQueue = this.Functions ;\if ( aQueue.length > 0 )\{\this.IsRunning = true ;\aQueue[0].call() ;\}\else\this.IsRunning = false ;\},\Remove : function( func )\{\var aQueue = this.Functions ;\var i = 0, fFunc ;\while( fFunc = aQueue[ i ] )\{\if ( fFunc == func )\aQueue.splice( i,1 ) ;\i++ ;\}\this.StartNext() ;\}\}\}' ;// In IE, the "eval" function is not always available (it works with// the JavaScript samples, but not with the ASP ones, for example).// So, let's use the execScript instead.if ( window.parent.execScript )window.parent.execScript( sScript, 'JavaScript' ) ;else{if ( FCKBrowserInfo.IsGecko10 ){// FF 1.0.4 gives an error with the above request. The// following seams to work well. It could become to official// implementation for all browsers, but we need to check it.eval.call( window.parent, sScript ) ;}elsewindow.parent.eval( sScript ) ;}FCKeditorAPI = window.parent.FCKeditorAPI ;}// Add the current instance to the FCKeditorAPI's instances collection.FCKeditorAPI.__Instances[ FCK.Name ] = FCK ;}function FCKeditorAPI_Cleanup(){FCKeditorAPI.__Instances[ FCK.Name ] = null ;}FCKTools.AddEventListener( window, 'unload', FCKeditorAPI_Cleanup ) ;