1function setSelectionRange(input, selectionStart, selectionEnd) 2{ 3 if (input.createTextRange) 4 { 5 var range = input.createTextRange(); 6 range.collapse(true); 7 range.moveEnd('character', selectionEnd); 8 range.moveStart('character', selectionStart); 9 range.select(); 10 } 11 else if (input.setSelectionRange) 12 { 13 input.focus(); 14 input.setSelectionRange(selectionStart, selectionEnd); 15 } 16} 17 18function yvBBCodeReplaceText(ControlID, tag) 19{ 20 var selStart = 0; 21 22 var selEnd = 0; 23 24 if (ControlID.createTextRange) 25 { 26 27 if( document.selection ) 28 { 29 // The current selection 30 var range = document.selection.createRange(); 31 // We'll use this as a 'dummy' 32 var stored_range = range.duplicate(); 33 // Select all text 34 stored_range.moveToElementText( ControlID ); 35 // Now move 'dummy' end point to end point of original range 36 stored_range.setEndPoint( 'EndToEnd', range ); 37 // Now we can calculate start and end points 38 selStart = stored_range.text.length - range.text.length; 39 selEnd = selStart + range.text.length; 40 } 41 42 } 43 else if (ControlID.setSelectionRange) 44 { 45 selStart = ControlID.selectionStart; 46 selEnd = ControlID.selectionEnd; 47 } 48 49 var selText = (ControlID.value).substring(selStart, selEnd); 50 var startText = (ControlID.value).substring(0, selStart); 51 var endText = (ControlID.value).substring(selEnd); 52 var taggedText = '[' + tag + ']' + selText +'[/' + tag + ']'; 53 54 ControlID.value = startText + taggedText + endText; 55 setSelectionRange(ControlID, startText.length + tag.length + 2, startText.length + tag.length + 2 + selText.length); 56 ControlID.focus(); 57}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.