﻿/*
* 函数说明：自动检测全选
* 参数：	参数1 全选按扭ID。参数2输入this
* 返回值：	
* 时间：2008-06-18
*/
function checkAll(chkAllID, thisObj) {
    var chkAll = document.getElementById(chkAllID);
    var chks = document.getElementsByTagName("input");
    var chkNo = 0;
    var selectNo = 0;
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].type == "checkbox") {
            //全选触发事件  
            if (chkAll == thisObj) {
                chks[i].checked = thisObj.checked;
                if (chks[i].id != "chkAll")  //全选时改变行颜色
                {
                    changeBg(chks[i]);
                }
            }
            else //非全选触发
            {
                if (chks[i].checked && chks[i].id != chkAllID) {
                    selectNo++;
                }
                if (chks[i].id != "chkAll")  //选中时改变行颜色
                {
                    changeBg(chks[i]);
                }
            }
            if (chks[i].id != chkAllID) {
                chkNo++;
            }
        }
    }
    if (chkAll != thisObj) {
        chkAll.checked = chkNo == selectNo;
    }
}

/*
* 函数说明：检测选择个数
* 参数：	全选ID
* 返回值：	页面checkbox的选择个除 除全选外的
* 时间：2008-06-18
*/
function checkSelectNo(chkAllID) {
    var chks = document.getElementsByTagName("input");
    var selectNo = 0;
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].type == "checkbox") {
            if (chks[i].id != chkAllID && chks[i].checked) {
                selectNo++;
            }
        }
    }
    return selectNo;
}

//做操作时判断有没有选中，msg：提示信息  
//type：1  表示只能选择一个选项  msg1：表示只能选择一项时的提示信息
function checkSelected(msg, type, msg1) {
    var result = true;
    var num = checkSelectNo("chkAll");
    if (num == 0) {
        showTip(true, msg);
        result = false;
    }

    if (type == 1) {
        if (num > 1) {
            showTip(true, msg1);
            result = false;
        }
    }
    return result;
}

/*
* 函数说明：获取选择框的值
* 参数：	全选的ID
* 返回值：	返回选中的checkbox值，最先一个！
* 时间：2008-06-18
*/
function getChkSelectValue(chkAllID) {
    var chks = document.getElementsByTagName("input");
    var selectValue = 0;
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].type == "checkbox") {
            if (chks[i].id != chkAllID && chks[i].checked) {
                selectValue = chks[i].value;
            }
        }
    }
    return selectValue;
}

/*
* 函数说明：在父元素里检测选择个数，曾协重载
* 参数：	全选ID
* 返回值：	页面checkbox的选择个除 除全选外的
* 时间：2009-12-3
*/
function checkSelectNoN(parentElement, chkAllID) {
    var chks = parentElement.getElementsByTagName("input");
    var selectNo = 0;
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].type == "checkbox") {
            if (chks[i].id != chkAllID && chks[i].checked) {
                selectNo++;
            }
        }
    }
    return selectNo;
}
/*
* 函数说明：在父元素里获取选择框的值，曾协重载
* 参数：	全选的ID
* 返回值：	返回选中的checkbox值，最先一个！
* 时间：2009-12-3
*/
function getChkSelectValueN(parentElement, chkAllID) {
    var chks = parentElement.getElementsByTagName("input");
    var selectValue = 0;
    for (var i = 0; i < chks.length; i++) {
        if (chks[i].type == "checkbox") {
            if (chks[i].id != chkAllID && chks[i].checked) {
                selectValue = chks[i].value;
            }
        }
    }
    return selectValue;
}

/*
* 函数说明：选择时改变此行的背景色
* 参数：	
* 作者：zengxie
* 时间：2008-11-03
*/
var bgColorArr = {};
function changeBg(obj) {
    var parent = obj.parentNode.parentNode;
    if (parent.tagName == "TR") {
        if (obj.checked == true) {
            var nodes = parent.childNodes
            for (var i = 0; i < nodes.length; i++) {
                if (nodes[i].tagName == "TD") {
                    if (bgColorArr[obj.value] == null) {
                        bgColorArr[obj.value] = nodes[i].style.backgroundColor;
                    }
                    nodes[i].style.backgroundColor = '#FFFFCC';
                }
            }
        }
        else {
            if (bgColorArr[obj.value] != null) {
                var nodes1 = parent.childNodes
                for (var j = 0; j < nodes1.length; j++) {
                    if (nodes1[j].tagName == "TD") {
                        nodes1[j].style.backgroundColor = bgColorArr[obj.value];
                    }
                }
            }
        }
    }
}
