/**

 * Created with JetBrains PhpStorm.

 * User: xuheng

 * Date: 12-9-26

 * Time: 下午12:29

 * To change this template use File | Settings | File Templates.

 */



//清空上次查选的痕迹

editor.firstForSR = 0;

editor.currentRangeForSR = null;

//给tab注册切换事件

/**

 * tab点击处理事件

 * @param tabHeads

 * @param tabBodys

 * @param obj

 */

function clickHandler( tabHeads,tabBodys,obj ) {

    //head样式更改

    for ( var k = 0, len = tabHeads.length; k < len; k++ ) {

        tabHeads[k].className = "";

    }

    obj.className = "focus";

    //body显隐

    var tabSrc = obj.getAttribute( "tabSrc" );

    for ( var j = 0, length = tabBodys.length; j < length; j++ ) {

        var body = tabBodys[j],

            id = body.getAttribute( "id" );

        if ( id != tabSrc ) {

            body.style.zIndex = 1;

        } else {

            body.style.zIndex = 200;

        }

    }



}



/**

 * TAB切换

 * @param tabParentId  tab的父节点ID或者对象本身

 */

function switchTab( tabParentId ) {

    var tabElements = $G( tabParentId ).children,

        tabHeads = tabElements[0].children,

        tabBodys = tabElements[1].children;



    for ( var i = 0, length = tabHeads.length; i < length; i++ ) {

        var head = tabHeads[i];

        if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );

        head.onclick = function () {

            clickHandler(tabHeads,tabBodys,this);

        }

    }

}

$G('searchtab').onmousedown = function(){

    $G('search-msg').innerHTML = '';

    $G('replace-msg').innerHTML = ''

}

//是否区分大小写

function getMatchCase(id) {

    return $G(id).checked ? true : false;

}

//查找

$G("nextFindBtn").onclick = function (txt, dir, mcase) {

    var findtxt = $G("findtxt").value, obj;

    if (!findtxt) {

        return false;

    }

    obj = {

        searchStr:findtxt,

        dir:1,

        casesensitive:getMatchCase("matchCase")

    };

    if (!frCommond(obj)) {

        var bk = editor.selection.getRange().createBookmark();

        $G('search-msg').innerHTML = lang.getEnd;

        editor.selection.getRange().moveToBookmark(bk).select();





    }

};

$G("nextReplaceBtn").onclick = function (txt, dir, mcase) {

    var findtxt = $G("findtxt1").value, obj;

    if (!findtxt) {

        return false;

    }

    obj = {

        searchStr:findtxt,

        dir:1,

        casesensitive:getMatchCase("matchCase1")

    };

    frCommond(obj);

};

$G("preFindBtn").onclick = function (txt, dir, mcase) {

    var findtxt = $G("findtxt").value, obj;

    if (!findtxt) {

        return false;

    }

    obj = {

        searchStr:findtxt,

        dir:-1,

        casesensitive:getMatchCase("matchCase")

    };

    if (!frCommond(obj)) {

        $G('search-msg').innerHTML = lang.getStart;

    }

};

$G("preReplaceBtn").onclick = function (txt, dir, mcase) {

    var findtxt = $G("findtxt1").value, obj;

    if (!findtxt) {

        return false;

    }

    obj = {

        searchStr:findtxt,

        dir:-1,

        casesensitive:getMatchCase("matchCase1")

    };

    frCommond(obj);

};

//替换

$G("repalceBtn").onclick = function () {

    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,

        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");

    if (!findtxt) {

        return false;

    }

    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {

        return false;

    }

    obj = {

        searchStr:findtxt,

        dir:1,

        casesensitive:getMatchCase("matchCase1"),

        replaceStr:replacetxt

    };

    frCommond(obj);

};

//全部替换

$G("repalceAllBtn").onclick = function () {

    var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,

        replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");

    if (!findtxt) {

        return false;

    }

    if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {

        return false;

    }

    obj = {

        searchStr:findtxt,

        casesensitive:getMatchCase("matchCase1"),

        replaceStr:replacetxt,

        all:true

    };

    var num = frCommond(obj);

    if (num) {

        $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num);

    }

};

//执行

var frCommond = function (obj) {

    return editor.execCommand("searchreplace", obj);

};

switchTab("searchtab");