Вход Регистрация
Файл: public/fck/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js
Строк: 264
<?php

////////////////////////////////////////////////////
// wordWindow object
////////////////////////////////////////////////////
function wordWindow() {
    
// private properties
    
this._forms = [];

    
// private methods
    
this._getWordObject _getWordObject;
    
//this._getSpellerObject = _getSpellerObject;
    
this._wordInputStr _wordInputStr;
    
this._adjustIndexes _adjustIndexes;
    
this._isWordChar _isWordChar;
    
this._lastPos _lastPos;
    
    
// public properties
    
this.wordChar = /[a-zA-Z]/;
    
this.windowType "wordWindow";
    
this.originalSpellings = new Array();
    
this.suggestions = new Array();
    
this.checkWordBgColor "pink";
    
this.normWordBgColor "white";
    
this.text "";
    
this.textInputs = new Array();
    
this.indexes = new Array();
    
//this.speller = this._getSpellerObject();

    // public methods
    
this.resetForm resetForm;
    
this.totalMisspellings totalMisspellings;
    
this.totalWords totalWords;
    
this.totalPreviousWords totalPreviousWords;
    
//this.getTextObjectArray = getTextObjectArray;
    
this.getTextVal getTextVal;
    
this.setFocus setFocus;
    
this.removeFocus removeFocus;
    
this.setText setText;
    
//this.getTotalWords = getTotalWords;
    
this.writeBody writeBody;
    
this.printForHtml printForHtml;
}

function 
resetForm() {
    if( 
this._forms ) {
        for( var 
0this._forms.lengthi++ ) {
            
this._forms[i].reset();
        }
    }
    return 
true;
}

function 
totalMisspellings() {
    var 
total_words 0;
    for( var 
0this.textInputs.lengthi++ ) {
        
total_words += this.totalWords);
    }
    return 
total_words;
}

function 
totalWordstextIndex ) {
    return 
this.originalSpellings[textIndex].length;
}

function 
totalPreviousWordstextIndexwordIndex ) {
    var 
total_words 0;
    for( var 
0<= textIndexi++ ) {
        for( var 
0this.totalWords); j++ ) {
            if( 
== textIndex && == wordIndex ) {
                break;
            } else {
                
total_words++;
            }    
        }
    }
    return 
total_words;
}

//function getTextObjectArray() {
//    return this._form.elements;
//}

function getTextValtextIndexwordIndex ) {
    var 
word this._getWordObjecttextIndexwordIndex );
    if( 
word ) {
        return 
word.value;
    }
}

function 
setFocustextIndexwordIndex ) {
    var 
word this._getWordObjecttextIndexwordIndex );
    if( 
word ) {
        if( 
word.type == "text" ) {
            
word.focus();
            
word.style.backgroundColor this.checkWordBgColor;
        }
    }
}

function 
removeFocustextIndexwordIndex ) {
    var 
word this._getWordObjecttextIndexwordIndex );
    if( 
word ) {
        if( 
word.type == "text" ) {
            
word.blur();
            
word.style.backgroundColor this.normWordBgColor;
        }
    }
}

function 
setTexttextIndexwordIndexnewText ) {
    var 
word this._getWordObjecttextIndexwordIndex );
    var 
beginStr;
    var 
endStr;
    if( 
word ) {
        var 
pos this.indexes[textIndex][wordIndex];
        var 
oldText word.value;
        
// update the text given the index of the string
        
beginStr this.textInputs[textIndex].substring0pos );
        
endStr this.textInputs[textIndex].substring
            
pos oldText.length
            
this.textInputs[textIndex].length 
        
);
        
this.textInputs[textIndex] = beginStr newText endStr;
        
        
// adjust the indexes on the stack given the differences in 
        // length between the new word and old word. 
        
var lengthDiff newText.length oldText.length;
        
this._adjustIndexestextIndexwordIndexlengthDiff );
        
        
word.size newText.length;
        
word.value newText;
        
this.removeFocustextIndexwordIndex );
    }
}


function 
writeBody() {
    var 
window.document;
    var 
is_html false;

    
d.open();

    
// iterate through each text input.
    
for( var txtid 0txtid this.textInputs.lengthtxtid++ ) {    
        var 
end_idx 0;
        var 
begin_idx 0;    
        
d.writeln'<form name="textInput'+txtid+'">' );
        var 
wordtxt this.textInputs[txtid];
        
this.indexes[txtid] = [];

        if( 
wordtxt ) {            
            var 
orig this.originalSpellings[txtid];
            if( !
orig ) break;

            
//!!! plain text, or HTML mode?
            
d.writeln'<div class="plainText">' );
            
// iterate through each occurrence of a misspelled word. 
            
for( var 0orig.lengthi++ ) {
                
// find the position of the current misspelled word,
                // starting at the last misspelled word. 
                // and keep looking if it's a substring of another word
                
do {
                    
begin_idx wordtxt.indexOforig[i], end_idx );
                    
end_idx begin_idx orig[i].length;
                    
// word not found? messed up!
                    
if( begin_idx == -) break; 
                    
// look at the characters immediately before and after 
                    // the word. If they are word characters we'll keep looking.
                    
var before_char wordtxt.charAtbegin_idx );
                    var 
after_char wordtxt.charAtend_idx );
                } while ( 
                    
this._isWordCharbefore_char 
                    || 
this._isWordCharafter_char )
                );

                
// keep track of its position in the original text. 
                
this.indexes[txtid][i] = begin_idx;

                
// write out the characters before the current misspelled word
                
for( var this._lastPostxtid); begin_idxj++ ) {
                    
// !!! html mode? make it html compatible
                    
d.writethis.printForHtmlwordtxt.charAt)));
                }

                
// write out the misspelled word. 
                
d.writethis._wordInputStrorig[i] ));

                
// if it's the last word, write out the rest of the text
                
if( == orig.length-){
                    
d.writeprintForHtmlwordtxt.substrend_idx )));
                }            
            }

            
d.writeln'</div>' );
            
        }
        
d.writeln'</form>' );
    }
    
//for ( var j = 0; j < d.forms.length; j++ ) {
    //    alert( d.forms[j].name );
    //    for( var k = 0; k < d.forms[j].elements.length; k++ ) {
    //        alert( d.forms[j].elements[k].name + ": " + d.forms[j].elements[k].value );
    //    }
    //}    
    
    // set the _forms property
    
this._forms d.forms;
    
d.close();
}

// return the character index in the full text after the last word we evaluated
function _lastPostxtididx ) {
    if( 
idx )
        return 
this.indexes[txtid][idx-1] + this.originalSpellings[txtid][idx-1].length;
    else
        return 
0;
}

function 
printForHtml) {
    return 
;        // by FredCK
    
    
var htmlstr n;
    if( 
htmlstr.length == ) {
        
// do simple case statement if it's just one character
        
switch ( ) {
            case 
"n":
                
htmlstr '<br/>';
                break;
            case 
"<":
                
htmlstr '&lt;';
                break;
            case 
">":
                
htmlstr '&gt;';
                break;
        }
        return 
htmlstr;
    } else {
        
htmlstr htmlstr.replace( /</g'&lt' );
        
htmlstr htmlstr.replace( />/g'&gt' );
        
htmlstr htmlstr.replace( /n/g'<br/>' );
        return 
htmlstr;
    }
}

function 
_isWordCharletter ) {
    if( 
letter.searchthis.wordChar ) == -) {
        return 
false;
    } else {
        return 
true;
    }
}

function 
_getWordObjecttextIndexwordIndex ) {
    if( 
this._forms[textIndex] ) {
        if( 
this._forms[textIndex].elements[wordIndex] ) {
            return 
this._forms[textIndex].elements[wordIndex];
        }
    }
    return 
null;
}

function 
_wordInputStrword ) {
    var 
str '<input readonly ';
    
str += 'class="blend" type="text" value="' word '" size="' word.length '">';
    return 
str;
}

function 
_adjustIndexestextIndexwordIndexlengthDiff ) {
    for( var 
wordIndex 1this.originalSpellings[textIndex].lengthi++ ) {
        
this.indexes[textIndex][i] = this.indexes[textIndex][i] + lengthDiff;
    }
}
?>
Онлайн: 1
Реклама