2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
\r
3 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
\r
5 * == BEGIN LICENSE ==
\r
7 * Licensed under the terms of any of the following licenses at your
\r
10 * - GNU General Public License Version 2 or later (the "GPL")
\r
11 * http://www.gnu.org/licenses/gpl.html
\r
13 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
\r
14 * http://www.gnu.org/licenses/lgpl.html
\r
16 * - Mozilla Public License Version 1.1 or later (the "MPL")
\r
17 * http://www.mozilla.org/MPL/MPL-1.1.html
\r
21 * Plugin: automatically resizes the editor until a configurable maximun
\r
22 * height (FCKConfig.AutoGrowMax), based on its contents.
\r
25 var FCKAutoGrow_Min = window.frameElement.offsetHeight ;
\r
27 function FCKAutoGrow_Check()
\r
29 var oInnerDoc = FCK.EditorDocument ;
\r
31 var iFrameHeight, iInnerHeight ;
\r
33 if ( FCKBrowserInfo.IsIE )
\r
35 iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ;
\r
36 iInnerHeight = oInnerDoc.body.scrollHeight ;
\r
40 iFrameHeight = FCK.EditorWindow.innerHeight ;
\r
41 iInnerHeight = oInnerDoc.body.offsetHeight ;
\r
44 var iDiff = iInnerHeight - iFrameHeight ;
\r
48 var iMainFrameSize = window.frameElement.offsetHeight ;
\r
50 if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax )
\r
52 iMainFrameSize += iDiff ;
\r
53 if ( iMainFrameSize > FCKConfig.AutoGrowMax )
\r
54 iMainFrameSize = FCKConfig.AutoGrowMax ;
\r
56 else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min )
\r
58 iMainFrameSize += iDiff ;
\r
59 if ( iMainFrameSize < FCKAutoGrow_Min )
\r
60 iMainFrameSize = FCKAutoGrow_Min ;
\r
65 window.frameElement.height = iMainFrameSize ;
\r
69 FCK.AttachToOnSelectionChange( FCKAutoGrow_Check ) ;
\r
71 function FCKAutoGrow_SetListeners()
\r
73 if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
\r
76 FCK.EditorWindow.attachEvent( 'onscroll', FCKAutoGrow_Check ) ;
\r
77 FCK.EditorDocument.attachEvent( 'onkeyup', FCKAutoGrow_Check ) ;
\r
80 if ( FCKBrowserInfo.IsIE )
\r
82 // FCKAutoGrow_SetListeners() ;
\r
83 FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAutoGrow_SetListeners ) ;
\r
86 function FCKAutoGrow_CheckEditorStatus( sender, status )
\r
88 if ( status == FCK_STATUS_COMPLETE )
\r
89 FCKAutoGrow_Check() ;
\r
92 FCK.Events.AttachEvent( 'OnStatusChange', FCKAutoGrow_CheckEditorStatus ) ;