Вход Регистрация
Файл: upload/static/jscript/editarea/search_replace.js
Строк: 173
<?php
EditArea
.prototype.show_search = function(){
        if(
_$("area_search_replace").style.visibility=="visible"){
            
this.hidden_search();
        }else{
            
this.open_inline_popup("area_search_replace");
            var 
textthis.area_get_selection();
            var 
searchtext.split("n")[0];
            
_$("area_search").valuesearch;
            
_$("area_search").focus();
        }
    };
    
    
EditArea.prototype.hidden_search= function(){
        
/*_$("area_search_replace").style.visibility="hidden";
        this.textarea.focus();
        var icon= _$("search");
        setAttribute(icon, "class", getAttribute(icon, "class").replace(/ selected/g, "") );*/
        
this.close_inline_popup("area_search_replace");
    };
    
    
EditArea.prototype.area_search= function(mode){
        
        if(!
mode)
            
mode="search";
        
_$("area_search_msg").innerHTML="";        
        var 
search=_$("area_search").value;        
        
        
this.textarea.focus();        
        
this.textarea.textareaFocused=true;
        
        var 
infosthis.get_selection_infos();    
        var 
startinfos["selectionStart"];
        var 
pos=-1;
        var 
pos_begin=-1;
        var 
length=search.length;
        
        if(
_$("area_search_replace").style.visibility!="visible"){
            
this.show_search();
            return;
        }
        if(
search.length==0){
            
_$("area_search_msg").innerHTML=this.get_translation("search_field_empty");
            return;
        }
        
// advance to the next occurence if no text selected
        
if(mode!="replace" ){
            if(
_$("area_search_reg_exp").checked)
                
start++;
            else
                
start+= search.length;
        }
        
        
//search
        
if(_$("area_search_reg_exp").checked){
            
// regexp search
            
var opt="m";
            if(!
_$("area_search_match_case").checked)
                
opt+="i";
            var 
reg= new RegExp(searchopt);
            
posinfos["full_text"].substr(start).search(reg);
            
pos_begininfos["full_text"].search(reg);
            if(
pos!=-1){
                
pos+=start;
                
length=infos["full_text"].substr(start).match(reg)[0].length;
            }else if(
pos_begin!=-1){
                
length=infos["full_text"].match(reg)[0].length;
            }
        }else{
            if(
_$("area_search_match_case").checked){
                
posinfos["full_text"].indexOf(searchstart); 
                
pos_begininfos["full_text"].indexOf(search); 
            }else{
                
posinfos["full_text"].toLowerCase().indexOf(search.toLowerCase(), start); 
                
pos_begininfos["full_text"].toLowerCase().indexOf(search.toLowerCase()); 
            }        
        }
        
        
// interpret result
        
if(pos==-&& pos_begin==-1){
            
_$("area_search_msg").innerHTML="<strong>"+search+"</strong> "+this.get_translation("not_found");
            return;
        }else if(
pos==-&& pos_begin != -1){
            
beginpos_begin;
            
_$("area_search_msg").innerHTML=this.get_translation("restart_search_at_begin");
        }else
            
beginpos;
        
        
//_$("area_search_msg").innerHTML+="<strong>"+search+"</strong> found at "+begin+" strat at "+start+" pos "+pos+" curs"+ infos["indexOfCursor"]+".";
        
if(mode=="replace" && pos==infos["indexOfCursor"]){
            var 
replace_$("area_replace").value;
            var 
new_text="";            
            if(
_$("area_search_reg_exp").checked){
                var 
opt="m";
                if(!
_$("area_search_match_case").checked)
                    
opt+="i";
                var 
reg= new RegExp(searchopt);
                
new_textinfos["full_text"].substr(0begin) + infos["full_text"].substr(start).replace(regreplace);
            }else{
                
new_textinfos["full_text"].substr(0begin) + replace infos["full_text"].substr(begin length);
            }
            
this.textarea.value=new_text;
            
this.area_select(beginlength);
            
this.area_search();
        }else
            
this.area_select(beginlength);
    };
    
    
    
    
    
EditArea.prototype.area_replace= function(){        
        
this.area_search("replace");
    };
    
    
EditArea.prototype.area_replace_all= function(){
    
/*    this.area_select(0, 0);
        _$("area_search_msg").innerHTML="";
        while(_$("area_search_msg").innerHTML==""){
            this.area_replace();
        }*/
    
        
var base_textthis.textarea.value;
        var 
search_$("area_search").value;        
        var 
replace_$("area_replace").value;
        if(
search.length==0){
            
_$("area_search_msg").innerHTML=this.get_translation("search_field_empty");
            return ;
        }
        
        var 
new_text="";
        var 
nb_change=0;
        if(
_$("area_search_reg_exp").checked){
            
// regExp
            
var opt="mg";
            if(!
_$("area_search_match_case").checked)
                
opt+="i";
            var 
reg= new RegExp(searchopt);
            
nb_changeinfos["full_text"].match(reg).length;
            
new_textinfos["full_text"].replace(regreplace);
            
        }else{
            
            if(
_$("area_search_match_case").checked){
                var 
tmp_tab=base_text.split(search);
                
nb_changetmp_tab.length -;
                
new_texttmp_tab.join(replace);
            }else{
                
// case insensitive
                
var lower_value=base_text.toLowerCase();
                var 
lower_search=search.toLowerCase();
                
                var 
start=0;
                var 
poslower_value.indexOf(lower_search);                
                while(
pos!=-1){
                    
nb_change++;
                    
new_text+= this.textarea.value.substring(start pos)+replace;
                    
start=possearch.length;
                    
poslower_value.indexOf(lower_searchpos+1);
                }
                
new_text+= this.textarea.value.substring(start);                
            }
        }            
        if(
new_text==base_text){
            
_$("area_search_msg").innerHTML="<strong>"+search+"</strong> "+this.get_translation("not_found");
        }else{
            
this.textarea.valuenew_text;
            
_$("area_search_msg").innerHTML="<strong>"+nb_change+"</strong> "+this.get_translation("occurrence_replaced");
            
// firefox and opera doesn't manage with the focus if it's done directly
            //editArea.textarea.focus();editArea.textarea.textareaFocused=true;
            
setTimeout("editArea.textarea.focus();editArea.textarea.textareaFocused=true;"100);
        }
        
        
    };
?>
Онлайн: 0
Реклама