//根据控件ID，获取控件
function ajaxButtonBegin(sender) {
    if (sender.className != "ajaxbutton_working") {
        sender.innerHTML2 = sender.innerHTML;
        switch (sender.innerHTML.length) {
            case 5: case 4: case 3:
                sender.innerHTML = "执行中";
                break;
            case 2:
                sender.innerHTML = "稍候";
            case 1: case 0:
                break;
            default:
                sender.innerHTML = "执行中...";
        }
        sender.onclick2 = sender.onclick;
        sender.onclick = null;
        sender.className2 = sender.className;
        sender.className = "ajaxbutton_working";
        sender.style.backgroundImage2 = sender.style.backgroundImage;
        sender.style.backgroundImage = "url(/ajax/pic/16px_working.gif)";
        var result = document.getElementById(sender.name + "_result");
        if (result != null) {
            if ((result.className == null) || result.className == "")
                result.className = "ajaxlable";
            result.innerHTML = "<img src='/ajax/pic/109px_working.gif' alt='正在获取服务器数据、请稍候.......' />";
        }
        return true;
    }
    else {
        sender.innerHTML = "请稍候...";
        return false;
    }
}

function ajaxButtonEnd(sender, message) {

    if (sender.className2 != null)
        sender.className = sender.className2;

    if (sender.innerHTML2 != null)
        sender.innerHTML = sender.innerHTML2;

    if (sender.style.backgroundImage2 != null)
        sender.style.backgroundImage = sender.style.backgroundImage2;

    if (sender.onclick2 != null)
        sender.onclick = sender.onclick2;

    sender.className2 = sender.innerHTML2 = sender.style.backgroundImage2 = sender.onclick2 = null;

    var result = document.getElementById(sender.name + "_result");
    if ((message != null) && (result != null))
        result.innerHTML = message;

}


ajaxProc = function(sender, proc) {

    ajaxButtonBegin(sender);
    return function(result) {

        if ((sender != null) && (sender != undefined)) {
            ajaxButtonEnd(sender, result);
        }

        if (proc != null)
            proc(result); //这句要放在后面，有可能调用result显示在页面上以后的节点
    };
}

function ajaxErrProc(sender, proc) {
    //ajaxButtonBegin(sender);
    return function(errorHander) {   //errorHander是客户端的Sys.Net.WebServiceError对象
        if (proc != null) {
            proc(errorHande)
        }


        var ErrorMessage;
        if (window.location.host.toLowerCase().indexOf("localhost") == 0) {
            ErrorMessage = '<div align="left" style="ajaxErrPanel">服务器发生错误:<br />异常名称：' + errorHander.get_exceptionType() + '<br />是否超时：' + errorHander.get_timedOut() + '<br />错误信息：' + errorHander.get_message() + '<br />错误位置：' + errorHander.get_stackTrace() + "</a></div>";
        }
        else {
            ErrorMessage = "<div align='left' style='ajaxErrPanel'>连接服务器时遇到错误，请稍候刷新网页再试.<br />异常名称：" + errorHander.get_exceptionType() + "</div>";
        }

        if ((sender != null) && (sender != undefined)) {
            ajaxButtonEnd(sender, ErrorMessage);
        }

    };
}


function ajaxProcResult(sender, proc) {
    if (sender.offsetWidth > 110)
        sender.innerHTML = "<img src='/ajax/pic/109px_working.gif' alt='正在获取服务器数据、请稍候.......' />";
    else
        sender.innerHTML = "<img src='/ajax/pic/16px_working.gif' alt='正在获取服务器数据、请稍候.......' />";

    return function(result) {
        if ((typeof (sender) != "null") && (typeof (sender) != "undefined")) {
            sender.innerHTML = result;
        }
        if (proc != null)
            proc(result); //这句要放在后面，有可能调用result显示在页面上以后的节点
    };
}

function ajaxErrProcResult(sender, proc) {
    //ajaxButtonBegin(sender);
    return function(errorHander) {   //errorHander是客户端的Sys.Net.WebServiceError对象
        if (proc != null) {
            proc(errorHande)
        }

        if ((typeof (sender) != "null") && (typeof (sender) != "undefined")) {
            if (window.location.host.toLowerCase().indexOf("localhost") == 0) {
                sender.innerHTML = '<div align="left" style="ajaxErrPanel">服务器发生错误:<br />异常名称：' + errorHander.get_exceptionType() + '<br />是否超时：' + errorHander.get_timedOut() + '<br />错误信息：' + errorHander.get_message() + '<br />错误位置：' + errorHander.get_stackTrace() + "</a></div>";
            }
            else {
                sender.innerHTML = "<div align='left' style='ajaxErrPanel'>连接服务器时遇到错误，请稍候刷新网页再试.<br />异常名称：" + errorHander.get_exceptionType() + "</div>";
            }
        }

    };
}


//回车事件处理
function ajaxIfEnter(sender, evt, sync) {    
    if (evt == null) evt = window.event; //IE
    if (evt.keyCode == 13 && sync != 'undefined' && sync != null) {
         sync();        
    }
}

function AjaxInputButtonBegin(sender) {
    if (sender.working == 'undefined' || sender.working == null) {
        sender.working = false;
    }
    if (sender.working == false) {
        sender.onclick2 = sender.onclick;
        sender.onclick = null;
        sender.className2 = sender.className;
        sender.className = "ajaxButton_working";
        sender.value2 = sender.value;
        switch (sender.value.length) {
            case 5: case 4: case 3:
                sender.value = "执行中";
                break;
            case 2:
                sender.value = "稍候";
            case 1: case 0:
                break;
            default:
                sender.value = "执行中...";
        }
        sender.working = true;
    }
    else {
        sender.value = "请稍候";
    }
}


function AsyncAjax(sender, proc) {
    AjaxInputButtonBegin(sender);
    return function(message) {
        ajaxButtonEnd2(sender, message);
        if (proc != null)
            proc(message); //这句要放在后面，有可能调用result显示在页面上以后的节点
    };
}

function ajaxButtonEnd2(sender, message) {
    if ((typeof (sender) != "null") && (typeof (sender) != "undefined")) {
        if (sender.className2 != null)
            sender.className = sender.className2;
        if (sender.value2 != null)
            sender.value = sender.value2;
        if (sender.onclick2 != null)
            sender.onclick = sender.onclick2;
        sender.className2 = sender.value2 = sender.onclick2 = sender.working = null;
        var resultLabel = document.getElementById(sender.name + "_result");
        if ((message != null) && (resultLabel != 'undefined') && (resultLabel != null))
            resultLabel.innerHTML = message;
    }
}