﻿// ------------------------------------
// trim     去除字符串两端的空格
String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"")}
//-------------------------------------
// avoidDeadLock 避免设置焦点死循环问题
// 起死原因：以文本框为例，当一个文本框的输入不符合条件时，这时，鼠标点击另一个文本框，触发第一个文本框的离开事件
// 　　，产生设置焦点动作。现在产生了第二个文本框的离开事件，因此也要设置第二个文本框的焦点，造成死锁。
// 解决方案：设置一个全局对象[key]，记录当前触发事件的对象，若其符合条件，则释放该key；若其仍不符合，则key还是指
// 　　向该对象，别的对象触发不到设置焦点的语句。
/////////////////////////////////////////
// 文本框控制函数
//
/////////////////////////////////////////
var g_Obj = null;// 记住旧的控件
// hintFlag参数：0表示没有被别的函数调用，因此出现提示；1表示被调用，不出现警告信息
// focusFlag参数：指示是否要设置其焦点，分情况：0表示有的可为空；1表示有的不为空
// 避免死锁的公共部分
// ------------------------------------
function textCom(obj, hintFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();
}

/*
文本框的内容不能空并显示到指定的控件
obj 文本框的ID
hintFlag 参数：0表示没有被别的函数调用，因此出现提示；1表示被调用，不出现警告信息
msg 提示信息
*/
function TBNotNull(obj, hintFlag,msg)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if (g_Obj.value == "")
    {
        if (hintFlag == 0)
        {
            g_Obj.focus();
            alert(msg);
    }
    return false;
    }
    else
        g_Obj = null;

    return true;
}

/*
文本框的内容不能空并显示到指定的控件
obj 文本框的ID
hintFlag 参数：0表示没有被别的函数调用，因此出现提示；1表示被调用，不出现警告信息
msg 提示信息
objShow 显示控件的ID
*/
function TBNotNullOnCtl(obj, hintFlag,msg,objShow)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if (g_Obj.value == "")
    {
        if (hintFlag == 0)
        {
            g_Obj.focus();
            alert(msg);
        }
        return false;
    }
    else
        g_Obj = null;

    return true;
}


//-------------------------------------
// 输入内容为数字
// ------------------------------------
function LetNumber(obj, hintFlag, focusFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if ((g_Obj.value == "") || isNaN(g_Obj.value))
    {
        if (hintFlag == 0)
        {
            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();         
            else
                g_Obj = null;
            alert("输入的内容必须为数字！");
        }
        return false;
    }
    else
        g_Obj = null;

    return true;
}
//-------------------------------------
// 输入内容为整数
// ------------------------------------
function LetInteger(obj, hintFlag, focusFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if (!/^\d*$/.test(g_Obj.value) || (g_Obj.value == ""))
    {
        if (hintFlag == 0)
        {

            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                g_Obj = null;
            alert("输入的内容必须为整数！");
        }
        return false;
    }
    else
        g_Obj = null;

    return true;
}
//-------------------------------------
// 输入内容为字母
// ------------------------------------
function LetLetter(obj, hintFlag, focusFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }

    if (!/^[A-Za-z]*$/.test(g_Obj.value))
    {
        if (hintFlag == 0)
        {
            alert("输入的内容必须为字母！");
            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                g_Obj = null;
        }
        return false;
    }
    else
    {
        g_Obj = null;
    }

    return true;
}
//-------------------------------------
// 内容大于某值
// ------------------------------------
function LetMoreThan(obj, leftNumber, hintFlag, focusFlag)
{
    var ifAlert;// 是否出现警告
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }

    g_Obj.value = g_Obj.value.trim();
    if (g_Obj.value == "") 
        ifAlert = 0;
    else 
        ifAlert = 1;

    if ((g_Obj.value == "") || (isNaN(g_Obj.value)) || (g_Obj.value < leftNumber))
    {
        if (hintFlag == 0)
        {
            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                g_Obj = null;
            // 更友好的提示
            if (ifAlert == 1)
            {
                if (leftNumber == 0)
                    alert("内容必须为非负数！");
                else
                    alert("输入的内容必须"+leftNumber +"以上！");
            }
        }
        return false;
    }
    else
        g_Obj = null;

        return true;
}
//-------------------------------------
// 内容大于某值，整数
// ------------------------------------
function LetMoreThan_Int(obj, leftNumber, hintFlag, focusFlag)
{
    var ifAlert;// 是否出现警告
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();
    if (g_Obj.value == "") 
        ifAlert = 0;
    else 
        ifAlert = 1;
    if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value < leftNumber) || !/^\d*$/.test(g_Obj.value))
    {
        if (hintFlag == 0)
        {
            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                {g_Obj = null;}
            if (ifAlert == 1)// 当用户不输入的时候，不出现提示
            {
                // 更友好的提示
                if (leftNumber == 0)
                    alert("内容必须为非负整数！");
                else
                    alert("且必须在" + leftNumber + "以上！");
            }
        }
        return false;
    }
    else
        g_Obj = null;

        return true;
}
//-------------------------------------
// 内容小于某值
// ------------------------------------
function LetLessThan(obj, rightNumber, hintFlag, focusFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if ((g_Obj.value == "") || (isNaN(g_Obj.value) || g_Obj.value > rightNumber))
    {
        if (hintFlag == 0)
        {
            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                g_Obj = null;
            alert("输入的内容必须在"+ rightNumber+ "以下！");
        }
        return false;
    }
    else
        {g_Obj = null;}

    return true;
}
//-------------------------------------
// 内容介于两值中间
// ------------------------------------
function LetMid(obj, leftNumber, rightNumber, hintFlag, focusFlag)
{
    var ifAlert;// 是否出现警告
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();
    if (g_Obj.value == "") 
        ifAlert = 0;
    else 
        ifAlert = 1;
        // 首先应该为数字
    if (LetNumber(g_Obj, 1))
    {
        if (!(LetMoreThan(obj,leftNumber,1,0) && LetLessThan(obj,rightNumber,1,0)))
        {
            if (hintFlag == 0)
            {
                g_Obj.value = "";
                if (focusFlag == 1)
                    g_Obj.focus();
                else
                    g_Obj = null;
                if (ifAlert == 1)// 当用户不输入的时候，不出现提示
                    alert("输入的内容必须介于"+ leftNumber +"和" +rightNumber+ "之间！");
            }

            return false;
        }
        else
            {g_Obj = null;}
    }
    else
    {
        if (hintFlag == 0)
        {

            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                g_Obj = null;
            if (ifAlert == 1)
                alert("输入的内容必须为数字！\n" +
                "且介于"+ leftNumber +"和"+ rightNumber +"之间！");
        }

        return false;
     }

    return true;
}
//-------------------------------------
/////////////////////////////////////////
// 下拉框 
/////////////////////////////////////////
// 下拉框，务必选择
// ------------------------------------
function onSelLostFocus(obj)
{
    if (g_Obj == null)
    {
        g_Obj=event.srcElement;
    }
    else if ((g_Obj!=null) && (g_Obj!=obj))
    {
        g_Obj = null;
        return;
    }

    if (g_Obj.selectedIndex == 0)
    {
        g_Obj.focus();
    }
    else
    {
        g_Obj = null;
    }
}
/*
文本框的内容不能空并显示到指定的控件
obj 文本框的ID
hintFlag 参数：0表示没有被别的函数调用，因此出现提示；1表示被调用，不出现警告信息
msg 提示信息
SuccessMsg 验证通过的信息
objShow 显示控件的ID
*/
function TBNotNullOnCtl2(obj, hintFlag,alertmsg,msg,SuccessMsg,objShow)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if (g_Obj.value == "")
    {
        if (hintFlag == 0)
        {
            g_Obj.focus();
            objShow.innerHTML=msg;
            alert(alertmsg);
        }
        return false;
    }
    else
    {
        objShow.innerHTML=SuccessMsg;
        g_Obj = null;
        
        
    }
return true;
    
}
//-------------------------------------
// 输入内容为数字
// ------------------------------------
function LetNumber2(obj, hintFlag,msg,SuccessMsg,focusFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if ((g_Obj.value == "") || isNaN(g_Obj.value))
    {
        if (hintFlag == 0)
        {
            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();         
            else
                g_Obj = null;
            focusFlag.innerHTML=msg;
            alert("输入的内容必须为数字！");
        }
        return false;
    }
    else
    {
        focusFlag.innerHTML=SuccessMsg;
        g_Obj = null;
    }

    return true;
}
//-------------------------------------
// 输入内容为整数
// ------------------------------------
function LetInteger2(obj, hintFlag,msg,SuccessMsg, focusFlag)
{
    if (g_Obj == null)
        g_Obj=event.srcElement;
    else if ((g_Obj != null) && (hintFlag == 0) && (g_Obj != obj))
    {
        g_Obj = null;
        return;
    }
    g_Obj.value = g_Obj.value.trim();

    if (!/^\d*$/.test(g_Obj.value) || (g_Obj.value == ""))
    {
        if (hintFlag == 0)
        {

            g_Obj.value = "";
            if (focusFlag == 1)
                g_Obj.focus();
            else
                g_Obj = null;
            focusFlag.innerHTML=msg;
            alert("输入的内容必须为整数！");
        }
        return false;
    }
    else
    {
        focusFlag.innerHTML=SuccessMsg;
        g_Obj = null;
    }
    return true;
}
function setTextBoxStatus(checkBox,tbName)
{
    var txt = document.getElementById(tbName);
    if(checkBox.checked)
    {
        txt.disabled = false;        
    }
    else
    {
        txt.disabled = true;
    }
}

function setTextBoxStatuss(checkBox,ddlName,tbName)
{
    var txt = document.getElementById(tbName);
    var ddl = document.getElementById(ddlName);
    if(checkBox.checked)
    {
        txt.disabled = false;
        ddl.disabled = false;
    }
    else
    {
        txt.disabled = true;
        ddl.disabled = true;
    }
}