﻿// JScript 文件
//pathName  文件路径
//actionName  操作名参数
//opElementId   先隐藏的对象
//messageElementId   显示消息的对象Id
//autoCloseTime  消息关闭的延迟时间，小于等于0则不关闭
//refreshTime  成功后自动刷新的延迟时间，小于等于0则不刷新
//args
function JSAction(pathName,actionName,opElementId,messageElementId,autoCloseTime,refreshTime,args)
{
    this.SuccessCallBack = new function(){};
    if(pathName==null||pathName==""){ alert("未知路径"); return; }
    if(opElementId!=null && opElementId!="" && document.getElementById(opElementId)!=null) document.getElementById(opElementId).style.display="none";    
    showMessage2("操作中，请稍候...",messageElementId, -1);
    var url= pathName+"?x="+Math.random()+"&jsAction="+actionName; 
    if(args!=null&&args.length!=null&&args.length>0)
    {   
        for (i = 0; i < args.length; i++)
        {
           url = url+ "&arg"+i+"="+escape(args[i])
        }
    }
    var req=null;
    if (window.XMLHttpRequest){
        req=new XMLHttpRequest();
    } else if (window.ActiveXObject){
        req=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(req){
        req.onreadystatechange=function()
        {
            CallBackMessage(req,messageElementId,autoCloseTime,refreshTime);
            if(req.responseText.indexOf("成功")>=0) SuccessCallBack();  //这里有可能出现混乱，可以改进
        }
        req.open("GET",url);
        req.send(null);
    }
    return false;
}
function CallBackMessage(req,elementId,autoCloseTime,refreshTime)
{
    if(req.readyState ==4)
    {
        showMessage2(req.responseText,elementId,autoCloseTime);
        if(req.responseText.indexOf("成功")>=0 && refreshTime>0) setTimeout("ReloadPage()", refreshTime);
    }
}
function ReloadPage()
{
    window.location.reload(true);
}
function showMessage2(txt,elementId,autoCloseTime)
{
    var divMsg = document.getElementById(elementId);
    if(divMsg==null) return false;
    divMsg.innerHTML = txt;
    divMsg.style.display = "";
    if(autoCloseTime>0) setTimeout("hideElement(\""+elementId+"\")", autoCloseTime);
    return true;
}
function hideElement(elementId)
{
    if(document.getElementById(elementId)==null) return false;
    document.getElementById(elementId).style.display="none";
    return true;
}
function showElement(elementId)
{
    if(document.getElementById(elementId)==null) return false;
    document.getElementById(elementId).style.display="";
    return true;
}
