//-----------------------------------------------------------------------------------------
// 文件名：    common.js
// 作者：      [龙控][叶伟锋]
// 编写日期：  2008-9-25
// 描述：      实体脚本操作方法.
//-----------------------------------------------------------------------------------------
// 修改日志：
//
// 2008-9-29 -   [公司][姓名]
//        Added .....
// 2008-10-5 -   [公司][姓名]
//        Changed .....
//-----------------------------------------------------------------------------------------
//该文件涉及的JS方法
//#########################################################################################

//方法：SelectAll(spanid)
//参数：当前对象ID号
//描述：对当前页CheckBox的ID号为chk_select的控件,全选或反选.一般用于GridView
//#########################################################################################

//方法：CheckSelectOne(chkid, msg)
//参数：当前对象ID号
//描述：对传入的CheckBox Id进行判断至少选择一个,返回true表示已选择一个或以上,并提示msg信息.
//      一般用于GridView;需要ID以某字串开头的一组CheckBox
//#########################################################################################

//方法：SelectOne(myctrl)
//参数：当前对象ID号
//描述：对当前页CheckBox的ID号为chk_select的控件,只选中一个.一般用于GridView

//#########################################################################################

//方法：CountText(maxNumber, ctrlId, dispCtrlId)
//参数：最大字节个数，当前事件对象ID，显示剩余字节数的控件ID
//描述：计算中文与英文字符长度，并显示剩余字节数
//      例如：<asp:textbox onkeyup="CountText(100,this,'dispctrlid')"/>
//#########################################################################################

//方法：String.prototype.length_cn()
//参数：
//描述：计算中文字符长度
//      例如：document.getElement('tbox').value.length_cn()
//#########################################################################################

//方法：showOpenDlg(url, formid, width, height)
//参数：链接，窗体ID，宽度，高度
//描述：利用 window.open 弹出居中显示窗口
//#########################################################################################

//方法：showModalDlg(url, formname, formid, width, height)
//参数：链接，弹出窗口框架名称，窗口ID，宽度，高度
//描述：弹出模式窗口，操作完成并返回值到父窗口
//#########################################################################################



/*选择所有*/
function SelectAll(spanid)
{
    var chk = document.all.tags('input');
    for(i=0;i<chk.length;i++)
    {
        if(chk[i].id.indexOf('chk_select')>-1)
        {
            if(spanid.innerText == '全选')
            {
                chk[i].checked = true;
            }
            else
            {
                chk[i].checked = false;
            }
        }
    }
    if(spanid.innerText == '全选')
    {
        spanid.innerText = '反选';
    }
    else
    {
        spanid.innerText = '全选';
    }
}
/*
对传入的CheckBox Id进行判断至少选择一个,返回true表示已选择一个或以上,并提示msg信息
*/
function CheckSelectOne(chkid, msg)
{
    
    var result = false;
    var chk = document.all.tags('input');
    for(i=0;i<chk.length;i++)
    {
        if(chk[i].id.indexOf(chkid)>-1)
        {
            if(chk[i].checked == true)
            {
                result = true;
                break;
            }
        }
    }
    if(!result) alert(msg);
    return result;
}
/*判断是否选择了两条记录以上

--陈晓峰添加

*/
function CheckSelectTwo(chkid, msg1)
{
    
    var result = false;
    var count=0;
    var chk = document.all.tags('input');
    for(i=0;i<chk.length;i++)
    {
        if(chk[i].id.indexOf(chkid)>-1)
        {
            if(chk[i].checked == true)
            {
                count=count+1;
                if(count>=2)
                     break;
            }
        }
    }
    if(count==0)
      alert(msg1);
    else if(count<2)
      alert(msg1);
         else 
           result=true;
    
    return result;
}

/*GridView列表删除时判断是否至少选中一行和弹出确认删除对话框
   
--2008-11-02 陈晓峰 添加   
*/
function CheckSelectOneForDel(chkid, msg)
{
    
    var result = false;
    var chk = document.all.tags('input');
    for(i=0;i<chk.length;i++)
    {
        if(chk[i].id.indexOf(chkid)>-1)
        {
            if(chk[i].checked == true)
            {
                result = true;
                break;
            }
        }
    }
    if(!result) alert(msg);
   if(result) 
      return confirm('你确认要删除吗?');
   
   return result;
    
}

function CheckSelectNum(chkid)
{
    var result=true;  
    var chk = document.all.tags('input');
    var num=0;
    for(i=0;i<chk.length;i++)
    {
        if(chk[i].id.indexOf(chkid)>-1)
        {
            if(chk[i].checked == true)
            {
                num=num+1;
                if(num>=2) 
                  break;
            }
        }
    }
    if(num==0)
    {
       result=false;
       alert("请选择一个节点！");
    }
       
    if(num>=2) 
    {
       result=false;
       alert("每次只能选择一个节点！");
     }
  
    return result;

    
}

/*只选中一个*/
function SelectOne(myctrl)
{
    var chk = document.all.tags('input');
    for(i=0;i<chk.length;i++)
    {
        if(chk[i].id.indexOf('chk_select')>-1)
        {
            if(chk[i].id == myctrl.id)
            {
                chk[i].checked = true;
            }
            else
            {
                chk[i].checked = false;
            }
        }
    }
}

/*
计算中文与英文字符长度，并显示剩余字节数
例如：<asp:textbox onkeyup="CountText(100,this,'dispctrlid')"/>
*/
function CountText(maxNumber, ctrlId, dispCtrlId)
{
   
     $(dispCtrlId).innerText = maxNumber - $(ctrlId).value.length_cn();
   
}

/*计算中文字符长度*/
String.prototype.length_cn = function() {
    var cArr = this.match(/[^\x00-\xff]/ig);
    return this.length + (cArr == null ? 0 : cArr.length);
}

/*
弹出居中显示窗口
传入链接，以及窗口控制参数
*/
function showOpenDlg(url, formid, width, height)
{
    var atop=(screen.availHeight - height)/2;    //窗口顶部位置,一般不需要改
    var aleft=(screen.availWidth - width)/2; //窗口放中央,一般不需要改

    window.open(url, formid, "height=" + height + ",width=" + width + ",top=" + atop + ",left=" + aleft + ",toolbar=no,menubar=no,scrollbars=no, resizable=yes,location=no, status=no");
}

/*
弹出模式窗口，操作完成并返回值到父窗口
传入链接，窗口名称，窗口ID以及窗口控制参数
*/
function showModalDlg(url, formname, formid, width, height)
{
    var returnValue = window.showModalDialog(url + "&dlgformname=" + escape(formname), formid, "dialogWidth=" + width + "px;dialogHeight=" + height + "px;status=no;scroll=no;resizable=yes;help=no");
    return returnValue;
}

/*
用正则表达式将前后空格  
用空字符串替代。  
*/
String.prototype.trim= function(){  
    return this.replace(/(^\s*)|(\s*$)/g, "");  
}


/*
[yewf][2008-12-14]
以下程序用于选择部门，AJAX显示登录用户列表。
*/
/*
程序入口方法
根据部门获取登录用户列表
<param name="dropDownListDepartId">部门dropDownList控件ID号</param>
<param name="spanLoginUserId">用于显示登录用户列表的SPAN控件ID号</param>
<param name="txtBoxUserNameId">TextBox-用于显示用选择后的登录用户姓名</param>
<param name="txtBoxLoginGuidId">TextBox-隐藏的，用于显示用选择后的登录用户姓名对应的LoginGuid</param>

示例：
<asp:DropDownList ID="ddl_Department" runat="server" onchange="GetLoginUsersByDepartId(this.id, 'span_loginuser', 'tb_SetUser', 'tb_SetUserGuid')">
span_loginuser是页面中的<span id="span_loginuser"></span>

使用详见GMS.Web\RunMgr\SystemSetting\ZeroOrderReceiveAdd.aspx页面与cs文件
*/
function GetLoginUsersByDepartId(dropDownListDepartId, spanLoginUserId, txtBoxUserNameId, txtBoxLoginGuidId)
{
    var drop_depart = document.getElementById(dropDownListDepartId);
    var index = drop_depart.selectedIndex;
    var departid = drop_depart.options[index].value;
    
    document.getElementById(spanLoginUserId).innerHTML = 
        AjaxUtil.GetLoginUsersByDepartId(departid, txtBoxUserNameId, txtBoxLoginGuidId).value;
}
//用于清除当前选择的所有选择的,UserName与LoginGuid
function ClearSelectLoginUser(txtBoxUserNameId, txtBoxLoginGuidId)
{
    document.getElementById(txtBoxUserNameId).value = "";
    document.getElementById(txtBoxLoginGuidId).value = "";
    
}
//以下为调用
function SelectLoginUser(chkId, UserName, LoginGuid, txtBox_UserName, txtBox_LoginGuid)
{
    if(document.getElementById(chkId).checked)
    {
        document.getElementById(chkId).checked = false;
    }
    else
    {
        document.getElementById(chkId).checked = true;
        //用LoginGuid判断是否已选择
        var strLoginGuid = document.getElementById(txtBox_LoginGuid).value;
        if(strLoginGuid.indexOf(LoginGuid) != -1)
        {
            alert("该用户已选择，不能重复选择");
            return;
        }
        //增加人员
        if(strLoginGuid.length == 0)
        {
            strLoginGuid = LoginGuid;
        }
        else
        {
            strLoginGuid += ";" + LoginGuid;
        }
        document.getElementById(txtBox_LoginGuid).value = strLoginGuid;
        //增加姓名
        var strUserName = document.getElementById(txtBox_UserName).value;
        if(strUserName.length == 0)
        {
            strUserName = UserName;
        }
        else
        {
            strUserName += ";" + UserName;
        }
        document.getElementById(txtBox_UserName).value = strUserName;
    }
}
function SelectLoginUserByChk(chkId, UserName, LoginGuid, txtBox_UserName, txtBox_LoginGuid)
{
    if(document.getElementById(chkId).checked)
    {
        //用LoginGuid判断是否已选择
        var strLoginGuid = document.getElementById(txtBox_LoginGuid).value;
        if(strLoginGuid.indexOf(LoginGuid) != -1)
        {
            alert("该用户已选择，不能重复选择");
            return;
        }
        //增加人员
        if(strLoginGuid.length == 0)
        {
            strLoginGuid = LoginGuid;
        }
        else
        {
            strLoginGuid += ";" + LoginGuid;
        }
        document.getElementById(txtBox_LoginGuid).value = strLoginGuid;
        //增加姓名
        var strUserName = document.getElementById(txtBox_UserName).value;
        if(strUserName.length == 0)
        {
            strUserName = UserName;
        }
        else
        {
            strUserName += ";" + UserName;
        }
        document.getElementById(txtBox_UserName).value = strUserName;
    }
}
