<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r
<!--\r
* FCKeditor - The text editor for Internet - http://www.fckeditor.net\r
- * Copyright (C) 2003-2010 Frederico Caldeira Knabben\r
+ * Copyright (C) 2003-2007 Frederico Caldeira Knabben\r
*\r
* == BEGIN LICENSE ==\r
*\r
*\r
* == END LICENSE ==\r
*\r
- * "Find" and "Replace" dialog box window.\r
+ * "Replace" dialog box window.\r
-->\r
<html xmlns="http://www.w3.org/1999/xhtml">\r
<head>\r
<title></title>\r
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
<meta content="noindex, nofollow" name="robots" />\r
- <script src="common/fck_dialog_common.js" type="text/javascript"></script>\r
<script type="text/javascript">\r
\r
-var dialog = window.parent ;\r
-var oEditor = dialog.InnerDialogLoaded() ;\r
-var dialogArguments = dialog.Args() ;\r
+var oEditor = window.parent.InnerDialogLoaded() ;\r
\r
-var FCKLang = oEditor.FCKLang ;\r
-var FCKDomTools = oEditor.FCKDomTools ;\r
-var FCKDomRange = oEditor.FCKDomRange ;\r
-var FCKListsLib = oEditor.FCKListsLib ;\r
-var FCKTools = oEditor.FCKTools ;\r
-var EditorDocument = oEditor.FCK.EditorDocument ;\r
-var HighlightStyle = oEditor.FCKStyles.GetStyle( '_FCK_SelectionHighlight' ) ;\r
-\r
-dialog.AddTab( 'Find', FCKLang.DlgFindTitle ) ;\r
-dialog.AddTab( 'Replace', FCKLang.DlgReplaceTitle ) ;\r
-var idMap = {} ;\r
-\r
-function OnDialogTabChange( tabCode )\r
+function OnLoad()\r
{\r
- ShowE( 'divFind', ( tabCode == 'Find' ) ) ;\r
- ShowE( 'divReplace', ( tabCode == 'Replace' ) ) ;\r
- idMap['FindText'] = 'txtFind' + tabCode ;\r
- idMap['CheckCase'] = 'chkCase' + tabCode ;\r
- idMap['CheckWord'] = 'chkWord' + tabCode ;\r
+ // First of all, translate the dialog box texts\r
+ oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
\r
- if ( tabCode == 'Replace' )\r
- dialog.SetAutoSize( true ) ;\r
-}\r
+ window.parent.SetAutoSize( true ) ;\r
\r
-GetNextNonEmptyTextNode = function( node, stopNode )\r
-{\r
- while ( ( node = FCKDomTools.GetNextSourceNode( node, false, 3, stopNode ) ) && node && node.length < 1 )\r
- 1 ;\r
- return node ;\r
+ oEditor.FCKUndo.SaveUndoStep() ;\r
}\r
\r
-CharacterCursor = function( arg )\r
+function btnStat(frm)\r
{\r
- if ( arg.nodeType && arg.nodeType == 9 )\r
- {\r
- this._textNode = GetNextNonEmptyTextNode( arg.body, arg.documentElement ) ;\r
- this._offset = 0 ;\r
- this._doc = arg ;\r
- }\r
- else\r
- {\r
- this._textNode = arguments[0] ;\r
- this._offset = arguments[1] ;\r
- this._doc = FCKTools.GetElementDocument( arguments[0] ) ;\r
- }\r
+ document.getElementById('btnReplace').disabled =\r
+ document.getElementById('btnReplaceAll').disabled =\r
+ ( document.getElementById('txtFind').value.length == 0 ) ;\r
}\r
-CharacterCursor.prototype =\r
-{\r
- GetCharacter : function()\r
- {\r
- return ( this._textNode && this._textNode.nodeValue.charAt( this._offset ) ) || null ;\r
- },\r
-\r
- // Non-normalized.\r
- GetTextNode : function()\r
- {\r
- return this._textNode ;\r
- },\r
\r
- // Non-normalized.\r
- GetIndex : function()\r
- {\r
- return this._offset ;\r
- },\r
-\r
- // Return value means whehther we've crossed a line break or a paragraph boundary.\r
- MoveNext : function()\r
- {\r
- if ( this._offset < this._textNode.length - 1 )\r
- {\r
- this._offset++ ;\r
- return false ;\r
- }\r
-\r
- var crossed = false ;\r
- var curNode = this._textNode ;\r
- while ( ( curNode = FCKDomTools.GetNextSourceNode( curNode ) )\r
- && curNode && ( curNode.nodeType != 3 || curNode.length < 1 ) )\r
- {\r
- var tag = curNode.nodeName.toLowerCase() ;\r
- if ( FCKListsLib.BlockElements[tag] || tag == 'br' )\r
- crossed = true ;\r
- }\r
-\r
- this._textNode = curNode ;\r
- this._offset = 0 ;\r
- return crossed ;\r
- },\r
-\r
- // Return value means whehther we've crossed a line break or a paragraph boundary.\r
- MoveBack : function()\r
- {\r
- if ( this._offset > 0 && this._textNode.length > 0 )\r
- {\r
- this._offset = Math.min( this._offset - 1, this._textNode.length - 1 ) ;\r
- return false ;\r
- }\r
-\r
- var crossed = false ;\r
- var curNode = this._textNode ;\r
- while ( ( curNode = FCKDomTools.GetPreviousSourceNode( curNode ) )\r
- && curNode && ( curNode.nodeType != 3 || curNode.length < 1 ) )\r
- {\r
- var tag = curNode.nodeName.toLowerCase() ;\r
- if ( FCKListsLib.BlockElements[tag] || tag == 'br' )\r
- crossed = true ;\r
- }\r
-\r
- this._textNode = curNode ;\r
- this._offset = curNode && curNode.length - 1 ;\r
- return crossed ;\r
- },\r
-\r
- Clone : function()\r
- {\r
- return new CharacterCursor( this._textNode, this._offset ) ;\r
- }\r
-} ;\r
-\r
-CharacterRange = function( initCursor, maxLength )\r
-{\r
- this._cursors = initCursor.push ? initCursor : [initCursor] ;\r
- this._maxLength = maxLength ;\r
- this._highlightRange = null ;\r
-}\r
-CharacterRange.prototype =\r
+function ReplaceTextNodes( parentNode, regex, replaceValue, replaceAll, hasFound )\r
{\r
- ToDomRange : function()\r
+ for ( var i = 0 ; i < parentNode.childNodes.length ; i++ )\r
{\r
- var firstCursor = this._cursors[0] ;\r
- var lastCursor = this._cursors[ this._cursors.length - 1 ] ;\r
- var domRange = new FCKDomRange( FCKTools.GetElementWindow( firstCursor.GetTextNode() ) ) ;\r
- var w3cRange = domRange._Range = domRange.CreateRange() ;\r
- w3cRange.setStart( firstCursor.GetTextNode(), firstCursor.GetIndex() ) ;\r
- w3cRange.setEnd( lastCursor.GetTextNode(), lastCursor.GetIndex() + 1 ) ;\r
- domRange._UpdateElementInfo() ;\r
- return domRange ;\r
- },\r
-\r
- Highlight : function()\r
- {\r
- if ( this._cursors.length < 1 )\r
- return ;\r
-\r
- var domRange = this.ToDomRange() ;\r
- HighlightStyle.ApplyToRange( domRange, false, true ) ;\r
- this._highlightRange = domRange ;\r
-\r
- var charRange = CharacterRange.CreateFromDomRange( domRange ) ;\r
- var focusNode = domRange.StartNode ;\r
- if ( focusNode.nodeType != 1 )\r
- focusNode = focusNode.parentNode ;\r
- FCKDomTools.ScrollIntoView( focusNode, false ) ;\r
- this._cursors = charRange._cursors ;\r
- },\r
-\r
- RemoveHighlight : function()\r
- {\r
- if ( this._highlightRange )\r
- {\r
- HighlightStyle.RemoveFromRange( this._highlightRange, false, true ) ;\r
- var charRange = CharacterRange.CreateFromDomRange( this._highlightRange ) ;\r
- this._cursors = charRange._cursors ;\r
- this._highlightRange = null ;\r
- }\r
- },\r
-\r
- GetHighlightDomRange : function()\r
- {\r
- return this._highlightRange;\r
- },\r
-\r
- MoveNext : function()\r
- {\r
- var next = this._cursors[ this._cursors.length - 1 ].Clone() ;\r
- var retval = next.MoveNext() ;\r
- if ( retval )\r
- this._cursors = [] ;\r
- this._cursors.push( next ) ;\r
- if ( this._cursors.length > this._maxLength )\r
- this._cursors.shift() ;\r
- return retval ;\r
- },\r
-\r
- MoveBack : function()\r
- {\r
- var prev = this._cursors[0].Clone() ;\r
- var retval = prev.MoveBack() ;\r
- if ( retval )\r
- this._cursors = [] ;\r
- this._cursors.unshift( prev ) ;\r
- if ( this._cursors.length > this._maxLength )\r
- this._cursors.pop() ;\r
- return retval ;\r
- },\r
-\r
- GetEndCharacter : function()\r
- {\r
- if ( this._cursors.length < 1 )\r
- return null ;\r
- var retval = this._cursors[ this._cursors.length - 1 ].GetCharacter() ;\r
- return retval ;\r
- },\r
-\r
- GetNextRange : function( len )\r
- {\r
- if ( this._cursors.length == 0 )\r
- return null ;\r
- var cur = this._cursors[ this._cursors.length - 1 ].Clone() ;\r
- cur.MoveNext() ;\r
- return new CharacterRange( cur, len ) ;\r
- },\r
-\r
- GetCursors : function()\r
- {\r
- return this._cursors ;\r
- }\r
-} ;\r
-\r
-CharacterRange.CreateFromDomRange = function( domRange )\r
-{\r
- var w3cRange = domRange._Range ;\r
- var startContainer = w3cRange.startContainer ;\r
- var endContainer = w3cRange.endContainer ;\r
- var startTextNode, startIndex, endTextNode, endIndex ;\r
-\r
- if ( startContainer.nodeType == 3 )\r
- {\r
- startTextNode = startContainer ;\r
- startIndex = w3cRange.startOffset ;\r
- }\r
- else if ( domRange.StartNode.nodeType == 3 )\r
- {\r
- startTextNode = domRange.StartNode ;\r
- startIndex = 0 ;\r
- }\r
- else\r
- {\r
- startTextNode = GetNextNonEmptyTextNode( domRange.StartNode, domRange.StartNode.parentNode ) ;\r
- if ( !startTextNode )\r
- return null ;\r
- startIndex = 0 ;\r
- }\r
-\r
- if ( endContainer.nodeType == 3 && w3cRange.endOffset > 0 )\r
- {\r
- endTextNode = endContainer ;\r
- endIndex = w3cRange.endOffset - 1 ;\r
- }\r
- else\r
- {\r
- endTextNode = domRange.EndNode ;\r
- while ( endTextNode.nodeType != 3 )\r
- endTextNode = endTextNode.lastChild ;\r
- endIndex = endTextNode.length - 1 ;\r
- }\r
-\r
- var cursors = [] ;\r
- var current = new CharacterCursor( startTextNode, startIndex ) ;\r
- cursors.push( current ) ;\r
- if ( !( current.GetTextNode() == endTextNode && current.GetIndex() == endIndex ) && !domRange.CheckIsEmpty() )\r
- {\r
- do\r
+ var oNode = parentNode.childNodes[i] ;\r
+ if ( oNode.nodeType == 3 )\r
{\r
- current = current.Clone() ;\r
- current.MoveNext() ;\r
- cursors.push( current ) ;\r
- }\r
- while ( !( current.GetTextNode() == endTextNode && current.GetIndex() == endIndex ) ) ;\r
- }\r
-\r
- return new CharacterRange( cursors, cursors.length ) ;\r
-}\r
-\r
-// Knuth-Morris-Pratt Algorithm for stream input\r
-KMP_NOMATCH = 0 ;\r
-KMP_ADVANCED = 1 ;\r
-KMP_MATCHED = 2 ;\r
-KmpMatch = function( pattern, ignoreCase )\r
-{\r
- var overlap = [ -1 ] ;\r
- for ( var i = 0 ; i < pattern.length ; i++ )\r
- {\r
- overlap.push( overlap[i] + 1 ) ;\r
- while ( overlap[ i + 1 ] > 0 && pattern.charAt( i ) != pattern.charAt( overlap[ i + 1 ] - 1 ) )\r
- overlap[ i + 1 ] = overlap[ overlap[ i + 1 ] - 1 ] + 1 ;\r
- }\r
- this._Overlap = overlap ;\r
- this._State = 0 ;\r
- this._IgnoreCase = ( ignoreCase === true ) ;\r
- if ( ignoreCase )\r
- this.Pattern = pattern.toLowerCase();\r
- else\r
- this.Pattern = pattern ;\r
-}\r
-KmpMatch.prototype = {\r
- FeedCharacter : function( c )\r
- {\r
- if ( this._IgnoreCase )\r
- c = c.toLowerCase();\r
-\r
- while ( true )\r
- {\r
- if ( c == this.Pattern.charAt( this._State ) )\r
+ var sReplaced = oNode.nodeValue.replace( regex, replaceValue ) ;\r
+ if ( oNode.nodeValue != sReplaced )\r
{\r
- this._State++ ;\r
- if ( this._State == this.Pattern.length )\r
- {\r
- // found a match, start over, don't care about partial matches involving the current match\r
- this._State = 0;\r
- return KMP_MATCHED;\r
- }\r
- return KMP_ADVANCED ;\r
+ oNode.nodeValue = sReplaced ;\r
+ if ( ! replaceAll )\r
+ return true ;\r
+ hasFound = true ;\r
}\r
- else if ( this._State == 0 )\r
- return KMP_NOMATCH;\r
- else\r
- this._State = this._Overlap[ this._State ];\r
}\r
\r
- return null ;\r
- },\r
-\r
- Reset : function()\r
- {\r
- this._State = 0 ;\r
- }\r
-};\r
-\r
-// Place a range at the start of document.\r
-function OnLoad()\r
-{\r
- // First of all, translate the dialog box texts.\r
- oEditor.FCKLanguageManager.TranslatePage( document ) ;\r
-\r
- // Show the appropriate tab at startup.\r
- if ( dialogArguments.CustomValue == 'Find' )\r
- {\r
- dialog.SetSelectedTab( 'Find' ) ;\r
- dialog.SetAutoSize( true ) ;\r
+ hasFound = ReplaceTextNodes( oNode, regex, replaceValue, replaceAll, hasFound ) ;\r
+ if ( ! replaceAll && hasFound )\r
+ return true ;\r
}\r
- else\r
- dialog.SetSelectedTab( 'Replace' ) ;\r
\r
- SelectField( 'txtFind' + dialogArguments.CustomValue ) ;\r
+ return hasFound ;\r
}\r
\r
-function btnStat()\r
+function GetRegexExpr()\r
{\r
- GetE('btnReplace').disabled =\r
- GetE('btnReplaceAll').disabled =\r
- GetE('btnFind').disabled =\r
- ( GetE(idMap["FindText"]).value.length == 0 ) ;\r
-}\r
-\r
-function btnStatDelayed()\r
-{\r
- setTimeout( btnStat, 1 ) ;\r
-}\r
+ var sExpr = EscapeRegexString( document.getElementById('txtFind').value ) ;\r
\r
-function GetSearchString()\r
-{\r
- return GetE(idMap['FindText']).value ;\r
-}\r
+ if ( document.getElementById('chkWord').checked )\r
+ sExpr = '\\b' + sExpr + '\\b' ;\r
\r
-function GetReplaceString()\r
-{\r
- return GetE("txtReplace").value ;\r
+ return sExpr ;\r
}\r
\r
-function GetCheckCase()\r
+function GetCase()\r
{\r
- return !! ( GetE(idMap['CheckCase']).checked ) ;\r
+ return ( document.getElementById('chkCase').checked ? '' : 'i' ) ;\r
}\r
\r
-function GetMatchWord()\r
+function GetReplacement()\r
{\r
- return !! ( GetE(idMap['CheckWord']).checked ) ;\r
-}\r
-\r
-/* Is this character a unicode whitespace or a punctuation mark?\r
- * References:\r
- * http://unicode.org/Public/UNIDATA/PropList.txt (whitespaces)\r
- * http://php.chinaunix.net/manual/tw/ref.regex.php (punctuation marks)\r
- */\r
-function CheckIsWordSeparator( c )\r
-{\r
- if ( !c )\r
- return true;\r
- var code = c.charCodeAt( 0 );\r
- if ( code >= 9 && code <= 0xd )\r
- return true;\r
- if ( code >= 0x2000 && code <= 0x200a )\r
- return true;\r
- switch ( code )\r
- {\r
- case 0x20:\r
- case 0x85:\r
- case 0xa0:\r
- case 0x1680:\r
- case 0x180e:\r
- case 0x2028:\r
- case 0x2029:\r
- case 0x202f:\r
- case 0x205f:\r
- case 0x3000:\r
- return true;\r
- default:\r
- }\r
- return /[.,"'?!;:]/.test( c ) ;\r
-}\r
-\r
-FindRange = null ;\r
-function _Find()\r
-{\r
- var searchString = GetSearchString() ;\r
- if ( !FindRange )\r
- FindRange = new CharacterRange( new CharacterCursor( EditorDocument ), searchString.length ) ;\r
- else\r
- {\r
- FindRange.RemoveHighlight() ;\r
- FindRange = FindRange.GetNextRange( searchString.length ) ;\r
- }\r
- var matcher = new KmpMatch( searchString, ! GetCheckCase() ) ;\r
- var matchState = KMP_NOMATCH ;\r
- var character = '%' ;\r
-\r
- while ( character != null )\r
- {\r
- while ( ( character = FindRange.GetEndCharacter() ) )\r
- {\r
- matchState = matcher.FeedCharacter( character ) ;\r
- if ( matchState == KMP_MATCHED )\r
- break ;\r
- if ( FindRange.MoveNext() )\r
- matcher.Reset() ;\r
- }\r
-\r
- if ( matchState == KMP_MATCHED )\r
- {\r
- if ( GetMatchWord() )\r
- {\r
- var cursors = FindRange.GetCursors() ;\r
- var head = cursors[ cursors.length - 1 ].Clone() ;\r
- var tail = cursors[0].Clone() ;\r
- if ( !head.MoveNext() && !CheckIsWordSeparator( head.GetCharacter() ) )\r
- continue ;\r
- if ( !tail.MoveBack() && !CheckIsWordSeparator( tail.GetCharacter() ) )\r
- continue ;\r
- }\r
-\r
- FindRange.Highlight() ;\r
- return true ;\r
- }\r
- }\r
-\r
- FindRange = null ;\r
- return false ;\r
+ return document.getElementById('txtReplace').value.replace( /\$/g, '$$$$' ) ;\r
}\r
\r
-function Find()\r
+function EscapeRegexString( str )\r
{\r
- if ( ! _Find() )\r
- alert( FCKLang.DlgFindNotFoundMsg ) ;\r
+ return str.replace( /[\\\^\$\*\+\?\{\}\.\(\)\!\|\[\]\-]/g, '\\$&' ) ;\r
}\r
\r
function Replace()\r
{\r
- var saveUndoStep = function( selectRange )\r
- {\r
- var ieRange ;\r
- if ( oEditor.FCKBrowserInfo.IsIE )\r
- ieRange = document.selection.createRange() ;\r
-\r
- selectRange.Select() ;\r
- oEditor.FCKUndo.SaveUndoStep() ;\r
- var cloneRange = selectRange.Clone() ;\r
- cloneRange.Collapse( false ) ;\r
- cloneRange.Select() ;\r
-\r
- if ( ieRange )\r
- setTimeout( function(){ ieRange.select() ; }, 1 ) ;\r
- }\r
-\r
- if ( FindRange && FindRange.GetHighlightDomRange() )\r
- {\r
- var range = FindRange.GetHighlightDomRange() ;\r
- var bookmark = range.CreateBookmark() ;\r
- FindRange.RemoveHighlight() ;\r
- range.MoveToBookmark( bookmark ) ;\r
-\r
- saveUndoStep( range ) ;\r
- range.DeleteContents() ;\r
- range.InsertNode( EditorDocument.createTextNode( GetReplaceString() ) ) ;\r
- range._UpdateElementInfo() ;\r
-\r
- FindRange = CharacterRange.CreateFromDomRange( range ) ;\r
- }\r
- else\r
- {\r
- if ( ! _Find() )\r
- {\r
- FindRange && FindRange.RemoveHighlight() ;\r
- alert( FCKLang.DlgFindNotFoundMsg ) ;\r
- }\r
- }\r
+ var oRegex = new RegExp( GetRegexExpr(), GetCase() ) ;\r
+ if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), false, false ) )\r
+ alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;\r
}\r
\r
function ReplaceAll()\r
{\r
- oEditor.FCKUndo.SaveUndoStep() ;\r
- var replaceCount = 0 ;\r
-\r
- while ( _Find() )\r
- {\r
- var range = FindRange.GetHighlightDomRange() ;\r
- var bookmark = range.CreateBookmark() ;\r
- FindRange.RemoveHighlight() ;\r
- range.MoveToBookmark( bookmark) ;\r
-\r
- range.DeleteContents() ;\r
- range.InsertNode( EditorDocument.createTextNode( GetReplaceString() ) ) ;\r
- range._UpdateElementInfo() ;\r
-\r
- FindRange = CharacterRange.CreateFromDomRange( range ) ;\r
- replaceCount++ ;\r
- }\r
- if ( replaceCount == 0 )\r
- {\r
- FindRange && FindRange.RemoveHighlight() ;\r
- alert( FCKLang.DlgFindNotFoundMsg ) ;\r
- }\r
- dialog.Cancel() ;\r
-}\r
-\r
-window.onunload = function()\r
-{\r
- if ( FindRange )\r
- {\r
- FindRange.RemoveHighlight() ;\r
- FindRange.ToDomRange().Select() ;\r
- }\r
+ var oRegex = new RegExp( GetRegexExpr(), GetCase() + 'g' ) ;\r
+ if ( !ReplaceTextNodes( oEditor.FCK.EditorDocument.body, oRegex, GetReplacement(), true, false ) )\r
+ alert( oEditor.FCKLang.DlgFindNotFoundMsg ) ;\r
+ window.parent.Cancel() ;\r
}\r
</script>\r
</head>\r
<body onload="OnLoad()" style="overflow: hidden">\r
- <div id="divFind" style="display: none">\r
- <table cellspacing="3" cellpadding="2" width="100%" border="0">\r
- <tr>\r
- <td nowrap="nowrap">\r
- <label for="txtFindFind" fcklang="DlgReplaceFindLbl">\r
- Find what:</label>\r
- </td>\r
- <td width="100%">\r
- <input id="txtFindFind" onkeyup="btnStat()" oninput="btnStat()" onpaste="btnStatDelayed()" style="width: 100%" tabindex="1"\r
- type="text" />\r
- </td>\r
- <td>\r
- <input id="btnFind" style="width: 80px" disabled="disabled" onclick="Find();"\r
- type="button" value="Find" fcklang="DlgFindFindBtn" />\r
- </td>\r
- </tr>\r
- <tr>\r
- <td valign="bottom" colspan="3">\r
- <input id="chkCaseFind" tabindex="3" type="checkbox" /><label for="chkCaseFind" fcklang="DlgReplaceCaseChk">Match\r
- case</label>\r
- <br />\r
- <input id="chkWordFind" tabindex="4" type="checkbox" /><label for="chkWordFind" fcklang="DlgReplaceWordChk">Match\r
- whole word</label>\r
- </td>\r
- </tr>\r
- </table>\r
- </div>\r
- <div id="divReplace" style="display:none">\r
- <table cellspacing="3" cellpadding="2" width="100%" border="0">\r
- <tr>\r
- <td nowrap="nowrap">\r
- <label for="txtFindReplace" fcklang="DlgReplaceFindLbl">\r
- Find what:</label>\r
- </td>\r
- <td width="100%">\r
- <input id="txtFindReplace" onkeyup="btnStat()" oninput="btnStat()" onpaste="btnStatDelayed()" style="width: 100%" tabindex="1"\r
- type="text" />\r
- </td>\r
- <td>\r
- <input id="btnReplace" style="width: 80px" disabled="disabled" onclick="Replace();"\r
- type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />\r
- </td>\r
- </tr>\r
- <tr>\r
- <td valign="top" nowrap="nowrap">\r
- <label for="txtReplace" fcklang="DlgReplaceReplaceLbl">\r
- Replace with:</label>\r
- </td>\r
- <td valign="top">\r
- <input id="txtReplace" style="width: 100%" tabindex="2" type="text" />\r
- </td>\r
- <td>\r
- <input id="btnReplaceAll" style="width: 80px" disabled="disabled" onclick="ReplaceAll()" type="button"\r
- value="Replace All" fcklang="DlgReplaceReplAllBtn" />\r
- </td>\r
- </tr>\r
- <tr>\r
- <td valign="bottom" colspan="3">\r
- <input id="chkCaseReplace" tabindex="3" type="checkbox" /><label for="chkCaseReplace" fcklang="DlgReplaceCaseChk">Match\r
- case</label>\r
- <br />\r
- <input id="chkWordReplace" tabindex="4" type="checkbox" /><label for="chkWordReplace" fcklang="DlgReplaceWordChk">Match\r
- whole word</label>\r
- </td>\r
- </tr>\r
- </table>\r
- </div>\r
+ <table cellspacing="3" cellpadding="2" width="100%" border="0">\r
+ <tr>\r
+ <td nowrap="nowrap">\r
+ <label for="txtFind" fcklang="DlgReplaceFindLbl">\r
+ Find what:</label>\r
+ </td>\r
+ <td width="100%">\r
+ <input id="txtFind" onkeyup="btnStat(this.form)" style="width: 100%" tabindex="1"\r
+ type="text" />\r
+ </td>\r
+ <td>\r
+ <input id="btnReplace" style="width: 100%" disabled="disabled" onclick="Replace();"\r
+ type="button" value="Replace" fcklang="DlgReplaceReplaceBtn" />\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td valign="top" nowrap="nowrap">\r
+ <label for="txtReplace" fcklang="DlgReplaceReplaceLbl">\r
+ Replace with:</label>\r
+ </td>\r
+ <td valign="top">\r
+ <input id="txtReplace" style="width: 100%" tabindex="2" type="text" />\r
+ </td>\r
+ <td>\r
+ <input id="btnReplaceAll" disabled="disabled" onclick="ReplaceAll()" type="button"\r
+ value="Replace All" fcklang="DlgReplaceReplAllBtn" />\r
+ </td>\r
+ </tr>\r
+ <tr>\r
+ <td valign="bottom" colspan="3">\r
+ <input id="chkCase" tabindex="3" type="checkbox" /><label for="chkCase" fcklang="DlgReplaceCaseChk">Match\r
+ case</label>\r
+ <br />\r
+ <input id="chkWord" tabindex="4" type="checkbox" /><label for="chkWord" fcklang="DlgReplaceWordChk">Match\r
+ whole word</label>\r
+ </td>\r
+ </tr>\r
+ </table>\r
</body>\r
</html>\r