/**
  根据checkbox对象的状态改变其所在row对象的状态
  checkObj:checkbox对象
**/
function setCheck(checkObj)
{
    if (!checkObj)
    {
        return;
    }

    var idStr = checkObj.id;
    var pos = idStr.indexOf("_");
    var rowObjName = "row_" + idStr.substring(pos + 1);
    if (!isElementExist(rowObjName))
    {
        return;
    }

    var rowObj = getElement(rowObjName);
    if (checkObj.checked)
    {
        rowObj.className = 'ListTableRowHighlight';
    }
    else
    {
        rowObj.className = 'ListTableRow';
    }
}

/**
  根据一个checkbox对象的状态改变其它(多个同名的)checkbox的状态
  checkObj: checkbox对象
  name:需要改变状态的checkbox组的名称
**/
function checkAll(checkObj, name)
{
    if (!isElementExist(name))
    {
        return;
    }

    var checkObjArray = getElements(name)
    for (var i = 0; i < checkObjArray.length; i++)
    {
        checkObjArray[i].checked = checkObj.checked;
        setCheck(checkObjArray[i]);
    }
}
/**
  判断一组同名的checkbox是否有选中
**/
function isChecked(name)
{
    if (!isElementExist(name))
    {
        return false;
    }
    var checkObjArray = getElements(name)
    for (var i = 0; i < checkObjArray.length; i++)
    {
        if (checkObjArray[i].checked)
            return true;
    }
    return false;
}

/**
   判断是否仅仅选中了一组同名的checkbox中的一个
**/
function isCheckedOne(name)
{
    if (!isElementExist(name))
    {
        return false;
    }
    var checkObjArray = getElements(name)
    var num = 0;
    for (var i = 0; i < checkObjArray.length; i++)
    {
        if (checkObjArray[i].checked)
            num++;
    }
    if (num == 1)
        return true;
    else
        return false;
}

/**
  得到以name命名的checkbox和checkbox组所有选中的值，中间以"|"隔开
**/
function getCheckedValue(name)
{

    var value = "";
    if (!isElementExist(name))
    {
        return false;
    }

    var checkObjArray = getElements(name);
    for (var i = 0; i < checkObjArray.length; i++)
    {
        var curObj = checkObjArray[i];
        if (curObj.checked)
        {
            value = value + curObj.value + "|";
        }
    }
    return value;
}

//根据radio的名称和值，设置某一项选中
function setRadioChecked(radioName, value)
{
    if (!isElementExist(radioName))
        return;

    var objArray = getElements(radioName);
    for (var i = 0; i < objArray.length; i++)
    {
        var item = objArray[i];
        if (item.tagName == "INPUT" && item.type == "radio")
        {
            if (item.value == value)
            {
                item.checked = true;
            }
        }
    }
}

//根据select的名称和值，设置某一项选中
function setSelectSelected(selectName, value)
{
    if (!isElementExist(selectName))
        return;

    var selectObj = getElement(selectName);
    if (selectObj.tagName == "SELECT")
    {
        for (var i = 0; i < selectObj.options.length; i++)
        {
            var option = selectObj.options[i];
            if (option.value == value)
            {
                option.selected = true;
            }
        }
    }
}


//过滤回车键
function filterKey()
{
    if (event.ctrlKey && event.keyCode == 13)
    {
        bFlag = false;
        save();
        return false;
    }
    else
    {
        if (event.keyCode == 13)
        {
            event.keyCode = 9;
            return false;
        }
        else
        {
            return true;
        }
    }
}


//检查字符串日期A与日期B的大小关系     2004-10-17  肖伟
//comparestr是比较符，目前提供“>”和“>=”这两个，例：
//如comparestr为“>”，那么如果日期strA大于日期strB，那么返回true，否则返回false
function CompareDateAandDateB(strA, strB, comparestr)
{
    var strYearA,strMonthA,strDayA;
    var strYearB,strMonthB,strDayB;
    var fcompartA,scompartA;
    var fcompartB,scompartB;

    fcompartA = strA.indexOf("-");
    strYearA = strA.substring(0, fcompartA);

    fcompartB = strB.indexOf("-");
    strYearB = strB.substring(0, fcompartB);

    scompartA = strA.indexOf("-", fcompartA + 1);
    strMonthA = strA.substring(fcompartA + 1, scompartA);

    scompartB = strB.indexOf("-", fcompartB + 1);
    strMonthB = strB.substring(fcompartB + 1, scompartB);

    strDayA = strA.substring(scompartA + 1, strA.length);
    strDayB = strB.substring(scompartB + 1, strB.length);

    switch (comparestr)
            {
        case ">":
            if (parseInt(strYearA) > parseInt(strYearB))
            {
                return true;
            }
            else if (parseInt(strYearA) < parseInt(strYearB))
            {
                return false;
                break;
            }

            //如果Ｙｅａｒ等于才到这一步
            if (parseInt(strMonthA) > parseInt(strMonthB))
            {
                return true;
            }
            else if (parseInt(strMonthA) < parseInt(strMonthB))
            {
                return false;
                break;
            }

            //如果Ｙｅａｒ和Ｍｏｎｔｈ都等于才到这一步
            if (parseInt(strDayA) > parseInt(strDayB))
            {
                return true;
            }
            else
            {
                return false;
            }
            break;
        case ">=":
            if (parseInt(strYearA) > parseInt(strYearB))
            {
                return true;
            }
            else if (parseInt(strYearA) < parseInt(strYearB))
            {
                return false;
                break;
            }

            //如果Ｙｅａｒ等于才到这一步
            if (parseInt(strMonthA) > parseInt(strMonthB))
            {
                return true;
            }
            else if (parseInt(strMonthA) < parseInt(strMonthB))
            {
                return false;
                break;
            }

            //如果Ｙｅａｒ和Ｍｏｎｔｈ都等于才到这一步
            if (parseInt(strDayA) >= parseInt(strDayB))
            {
                return true;
            }
            else
            {
                return false;
            }
            break;
    }
}