Rev 1987 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><!--* FCKeditor - The text editor for Internet - http://www.fckeditor.net* Copyright (C) 2003-2008 Frederico Caldeira Knabben** == BEGIN LICENSE ==** Licensed under the terms of any of the following licenses at your* choice:** - GNU General Public License Version 2 or later (the "GPL")* http://www.gnu.org/licenses/gpl.html** - GNU Lesser General Public License Version 2.1 or later (the "LGPL")* http://www.gnu.org/licenses/lgpl.html** - Mozilla Public License Version 1.1 or later (the "MPL")* http://www.mozilla.org/MPL/MPL-1.1.html** == END LICENSE ==** Form dialog window.--><html xmlns="http://www.w3.org/1999/xhtml"><head><title></title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta content="noindex, nofollow" name="robots" /><script src="common/fck_dialog_common.js" type="text/javascript"></script><script type="text/javascript">var dialog = window.parent ;var oEditor = dialog.InnerDialogLoaded() ;var FCK = oEditor.FCK ;var FCKLang = oEditor.FCKLang ;var FCKBrowserInfo = oEditor.FCKBrowserInfo ;var FCKStyles = oEditor.FCKStyles ;var FCKElementPath = oEditor.FCKElementPath ;var FCKDomRange = oEditor.FCKDomRange ;var FCKDomTools = oEditor.FCKDomTools ;var FCKDomRangeIterator = oEditor.FCKDomRangeIterator ;var FCKListsLib = oEditor.FCKListsLib ;var AlwaysCreate = dialog.Args().CustomValue ;String.prototype.IEquals = function(){var thisUpper = this.toUpperCase() ;var aArgs = arguments ;// The arguments could also be a single array.if ( aArgs.length == 1 && aArgs[0].pop )aArgs = aArgs[0] ;for ( var i = 0 ; i < aArgs.length ; i++ ){if ( thisUpper == aArgs[i].toUpperCase() )return true ;}return false ;}var CurrentContainers = [] ;if ( !AlwaysCreate ){dialog.Selection.EnsureSelection() ;CurrentContainers = FCKDomTools.GetSelectedDivContainers() ;}// Add some tabsdialog.AddTab( 'General', FCKLang.DlgDivGeneralTab );dialog.AddTab( 'Advanced', FCKLang.DlgDivAdvancedTab ) ;function AddStyleOption( styleName ){var el = GetE( 'selStyle' ) ;var opt = document.createElement( 'option' ) ;opt.text = opt.value = styleName ;if ( FCKBrowserInfo.IsIE )el.add( opt ) ;elseel.add( opt, null ) ;}function OnDialogTabChange( tabCode ){ShowE( 'divGeneral', tabCode == 'General' ) ;ShowE( 'divAdvanced', tabCode == 'Advanced' ) ;dialog.SetAutoSize( true ) ;}function GetNearestAncestorDirection( node ){var dir = 'ltr' ; // HTML default.while ( ( node = node.parentNode ) ){if ( node.dir )dir = node.dir ;}return dir ;}window.onload = function(){// First of all, translate the dialog box textsoEditor.FCKLanguageManager.TranslatePage(document) ;dialog.SetOkButton( true ) ;dialog.SetAutoSize( true ) ;// Popuplate the style menuvar styles = FCKStyles.GetStyles() ;var selectableStyles = {} ;for ( var i in styles ){if ( ! /^_FCK_/.test( i ) && styles[i].Element == 'div' )selectableStyles[i] = styles[i] ;}if ( CurrentContainers.length <= 1 ){var target = CurrentContainers[0] ;var match = null ;for ( var i in selectableStyles ){if ( target && styles[i].CheckElementRemovable( target, true ) )match = i ;}if ( !match )AddStyleOption( "" ) ;for ( var i in selectableStyles )AddStyleOption( i ) ;if ( match )GetE( 'selStyle' ).value = match ;// Set the value for other inputsif ( target ){GetE( 'txtClass' ).value = target.className ;GetE( 'txtId' ).value = target.id ;GetE( 'txtLang' ).value = target.lang ;GetE( 'txtInlineStyle').value = target.style.cssText ;GetE( 'txtTitle' ).value = target.title ;GetE( 'selLangDir').value = target.dir || GetNearestAncestorDirection( target ) ;}}else{GetE( 'txtId' ).disabled = true ;AddStyleOption( "" ) ;for ( var i in selectableStyles )AddStyleOption( i ) ;}}function CreateDiv(){var newBlocks = [] ;var range = new FCKDomRange( FCK.EditorWindow ) ;range.MoveToSelection() ;var bookmark = range.CreateBookmark() ;// Kludge for #1592: if the bookmark nodes are in the beginning of// $tagName, then move them to the nearest block element in the// $tagName.if ( FCKBrowserInfo.IsIE ){var bStart = range.GetBookmarkNode( bookmark, true ) ;var bEnd = range.GetBookmarkNode( bookmark, false ) ;var cursor ;if ( bStart&& bStart.parentNode.nodeName.IEquals( 'div' )&& !bStart.previousSibling ){cursor = bStart ;while ( ( cursor = cursor.nextSibling ) ){if ( FCKListsLib.BlockElements[ cursor.nodeName.toLowerCase() ] )FCKDomTools.MoveNode( bStart, cursor, true ) ;}}if ( bEnd&& bEnd.parentNode.nodeName.IEquals( 'div' )&& !bEnd.previousSibling ){cursor = bEnd ;while ( ( cursor = cursor.nextSibling ) ){if ( FCKListsLib.BlockElements[ cursor.nodeName.toLowerCase() ] ){if ( cursor.firstChild == bStart )FCKDomTools.InsertAfterNode( bStart, bEnd ) ;elseFCKDomTools.MoveNode( bEnd, cursor, true ) ;}}}}var iterator = new FCKDomRangeIterator( range ) ;var block ;iterator.EnforceRealBlocks = true ;var paragraphs = [] ;var groups = [] ;var lastBlockLimit = null ;while ( ( block = iterator.GetNextParagraph() ) ){var elementPath = new FCKElementPath( block ) ;if ( elementPath.BlockLimit != lastBlockLimit ){groups.push( [] ) ;lastBlockLimit = elementPath.BlockLimit ;}groups[groups.length - 1].push( block ) ;}for ( var i = 0 ; i < groups.length ; i++ ){var divNode = FCK.EditorDocument.createElement( 'div' ) ;groups[i][0].parentNode.insertBefore( divNode, groups[i][0] ) ;for ( var j = 0 ; j < groups[i].length ; j++ )FCKDomTools.MoveNode( groups[i][j], divNode ) ;newBlocks.push( divNode ) ;}range.MoveToBookmark( bookmark ) ;range.Select() ;FCK.Focus() ;FCK.Events.FireEvent( 'OnSelectionChange' ) ;return newBlocks ;}function Ok(){oEditor.FCKUndo.SaveUndoStep() ;if ( CurrentContainers.length < 1 )CurrentContainers = CreateDiv();var setValue = function( attrName, inputName ){var val = GetE( inputName ).value ;for ( var i = 0 ; i < CurrentContainers.length ; i++ ){if ( val == '' )CurrentContainers[i].removeAttribute( attrName ) ;elseCurrentContainers[i].setAttribute( attrName, val ) ;}}// Apply modifications to the DIV container according to dialog inputs.if ( CurrentContainers.length == 1 ){setValue( 'class', 'txtClass' ) ;setValue( 'id', 'txtId' ) ;}setValue( 'lang', 'txtLang' ) ;if ( FCKBrowserInfo.IsIE ){for ( var i = 0 ; i < CurrentContainers.length ; i++ )CurrentContainers[i].style.cssText = GetE( 'txtInlineStyle' ).value ;}elsesetValue( 'style', 'txtInlineStyle' ) ;setValue( 'title', 'txtTitle' ) ;for ( var i = 0 ; i < CurrentContainers.length ; i++ ){var dir = GetE( 'selLangDir' ).value ;var styleName = GetE( 'selStyle' ).value ;if ( GetNearestAncestorDirection( CurrentContainers[i] ) != dir )CurrentContainers[i].dir = dir ;elseCurrentContainers[i].removeAttribute( 'dir' ) ;if ( styleName )FCKStyles.GetStyle( styleName ).ApplyToObject( CurrentContainers[i] ) ;}return true ;}</script></head><body style="overflow: hidden"><div id="divGeneral"><table cellspacing="0" cellpadding="0" width="100%" border="0"><colgroup span="2"><col width="49%" /><col width="2%" /><col width="49%" /></colgroup><tr><td><span fcklang="DlgDivStyle">Style</span><br /><select id="selStyle" style="width: 100%;"></select></td><td> </td><td><span fcklang="DlgGenClass">Stylesheet Classes</span><br /><input id="txtClass" style="width: 100%" type="text" /></td></tr></table></div><div id="divAdvanced" style="display: none"><table cellspacing="0" cellpadding="0" width="100%" border="0"><colgroup span="2"><col width="49%" /><col width="2%" /><col width="49%" /></colgroup><tr><td><span fcklang="DlgGenId">Id</span><br /><input style="width: 100%" type="text" id="txtId" /></td><td> </td><td><span fcklang="DlgGenLangCode">Language Code</span><br /><input style="width: 100%" type="text" id="txtLang" /></td></tr><tr><td colspan="3"> </td></tr><tr><td colspan="3"><span fcklang="DlgDivInlineStyle">Inline Style</span><br /><input style="width: 100%" type="text" id="txtInlineStyle" /></td></tr><tr><td colspan="3"> </td></tr><tr><td colspan="3"><span fcklang="DlgGenTitle">Advisory Title</span><br /><input style="width: 100%" type="text" id="txtTitle" /></td></tr><tr><td> </td></tr><tr><td><span fcklang="DlgGenLangDir">Language Direction</span><br /><select id="selLangDir"><option fcklang="DlgGenLangDirLtr" value="ltr">Left to Right (LTR)<option fcklang="DlgGenLangDirRtl" value="rtl">Right to Left (RTL)</select></td></tr></table></div></body></html>