﻿/*================================treeview==============================================*/
//子结点选中，父节点也随之选中
//调用: 后台Page_Load 中 this.TreeView1.Attributes.Add("onclick","CheckEvent()");
function public_GetParentByTagName(element, tagName) {
    var parent = element.parentNode;
    var upperTagName = tagName.toUpperCase();
    //如果这个元素还不是想要的tag就继续上溯
    while (parent && (parent.tagName.toUpperCase() != upperTagName)) {
        parent = parent.parentNode ? parent.parentNode : parent.parentElement;
    }
    return parent;
}

//设置节点的父节点Cheched——该节点可访问，则他的父节点也必能访问 
function setParentChecked(objNode) {
    var objParentDiv = public_GetParentByTagName(objNode, "div");
    if (objParentDiv == null || objParentDiv == "undefined") {
        return;
    }
    var objID = objParentDiv.getAttribute("ID");
    objID = objID.substring(0, objID.indexOf("Nodes"));
    objID = objID + "CheckBox";
    var objParentCheckBox = document.getElementById(objID);
    if (objParentCheckBox == null || objParentCheckBox == "undefined") {
        return;
    }
    if (objParentCheckBox.tagName != "INPUT" && objParentCheckBox.type == "checkbox")
        return;
    objParentCheckBox.checked = true;
    setParentChecked(objParentCheckBox);
}

//设置节点的子节点uncheched——该节点不可访问，则他的子节点也不能访问 
function setChildUnChecked(divID) {
    var objchild = divID.children;
    var count = objchild.length;
    for (var i = 0; i < objchild.length; i++) {
        var tempObj = objchild[i];
        if (tempObj.tagName == "INPUT" && tempObj.type == "checkbox") {
            tempObj.checked = false;
        }
        setChildUnChecked(tempObj);
    }
}

//设置节点的子节点cheched——该节点可以访问，则他的子节点也都能访问 
function setChildChecked(divID) {
    var objchild = divID.children;
    var count = objchild.length;
    for (var i = 0; i < objchild.length; i++) {
        var tempObj = objchild[i];
        if (tempObj.tagName == "INPUT" && tempObj.type == "checkbox") {
            tempObj.checked = true;
        }
        setChildChecked(tempObj);
    }
}

function CheckEvent() {

    var objNode = event.srcElement;

    if (objNode.tagName != "INPUT" || objNode.type != "checkbox")
        return;

    if (objNode.checked == true) {
        setParentChecked(objNode);
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0, objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID + "Nodes");
        if (objParentDiv == null || objParentDiv == "undefined") {
            return;
        }
        setChildChecked(objParentDiv);
    }
    else {
        var objID = objNode.getAttribute("ID");
        var objID = objID.substring(0, objID.indexOf("CheckBox"));
        var objParentDiv = document.getElementById(objID + "Nodes");
        if (objParentDiv == null || objParentDiv == "undefined") {
            return;
        }
        setChildUnChecked(objParentDiv);
    }
}

//子结点选中，父节点不跟随选中
//前台页面：TreeView添加 OnClick="OnTreeNodeChecked()"
function OnTreeNodeChecked() {
    var ele = event.srcElement;
    if (ele.type == 'checkbox') {
        var childrenDivID = ele.id.replace('CheckBox', 'Nodes');
        var div = document.getElementById(childrenDivID);
        if (div == null) return;
        var checkBoxs = div.getElementsByTagName('INPUT');
        for (var i = 0; i < checkBoxs.length; i++) {
            if (checkBoxs[i].type == 'checkbox')
                checkBoxs[i].checked = ele.checked;
        }
    }
} 
/*================================treeview==============================================*/


//不提示直接关闭浏览器
function closeWindow() {   
    window.opener = null;   
    window.open('', '_self', '');   
    window.close();   
}  

//接收参数
function getParameter(param) {
    var query = window.location.search;
    var iLen = param.length;
    var iStart = query.indexOf(param);
    if (iStart == -1)
        return "";
        
    iStart += iLen + 1;
    var iEnd = query.indexOf("&", iStart);
    if (iEnd == -1) 
        return query.substring(iStart);

    return query.substring(iStart, iEnd);
}

//打印指定区域
function preview() {
    bdhtml = window.document.body.innerHTML;
    sprnstr = "<!--startprint-->";
    eprnstr = "<!--endprint-->";
    prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);
    prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
    window.document.body.innerHTML = prnhtml;
    window.print();
}
//弹出模式框
function ShowWindow(url, width, height) {
    return window.showModalDialog(url, "", "dialogHeight=" + height + "px;dialogWidth=" + width + "px;center=yes;resizable=no;status=no;scroll=yes;help=no;");
}

//全选
function SelectAll() {
    var ary = document.getElementsByName("cb");
    var a = document.getElementById("cball").checked;
    for (var i = 0; i < ary.length; i++) {
        ary[i].checked = a;
    }
}
//多选操作提示
function AlertSelectTips(mgs, alertstr) {
    if (confirm(mgs) == true) {
        var cl = document.getElementsByName("cb");
        var num = 0;
        for (var v = 0; v < cl.length; v++) {
            if (cl[v].checked == true)
                num++;
        }
        if (num < 1) {
            alert(alertstr);
            return false;
        }
        else
            return true;
    }
    else
        return false;
}
//多选调用函数
function ckCommon() {
    return AlertSelectTips('确定执行操作?', '请选择要进行操作的数据!');
}
//判断文本是否为空
function IsEmpty(controlId, msg) {
    var cid = document.getElementById(controlId);
    if (Trim(cid.value) == "") {
        alert(msg);
        cid.focus();
        return true;
    }
    
    return false;
}
//是否是整数
function IsInt(controlId, msg) {
    var cid = document.getElementById(controlId);
    if (cid.value.search("^[0-9][0-9]*$") != 0) {
        alert(msg);
        cid.value = "0";
        cid.focus();    
        return false;
    }

    return true;
}

//是否是数字
function IsNumber(controlId, msg) {
    var cid = document.getElementById(controlId);
    if (cid.value.search("^-?\\d+(\\.\\d+)?$") != 0) {
        alert(msg);
        cid.value = "0";
        cid.focus(); 
        return false;
    }

    return true;    
}

//判断是否为小数
function IsFloat(controlId, msg) {
    var cid = document.getElementById(controlId);
    var reg = /^\d+\.{0,1}\d*$/;
    if (!reg.test(cid.value)) {
        alert(msg);
        cid.value = "0.00";
        cid.focus();
        return false;
    }
    return true;    
}
//是否是货币型
function IsMoney(controlId, msg) {
    var cid = document.getElementById(controlId);
    if (cid.value.search("^[0-9]+(.[0-9]{2})?$") != 0) {
        alert(msg);
        cid.value = "0.00";
        cid.focus();
        return false;
    }
    return true; 
}
//删除前后的空格
function Trim(str) {
    return str.replace(/(^\s*)|(\s*$)/g, "");
}
//删除空格
function RemoveSpace(str) {
    return str.replace(/\s/g, "");
}


//是否包含非法字符
function ckString(str) {
    msg = "[#_%&'\",;:=!^| ]";
    for (i = 1; i < msg.length + 1; i++) {
        if (str.indexOf(msg.substring(i - 1, i)) > -1) {
            alert("提交内容不可以包含空格与非法字符,eg:" + msg);
            return true;
        }
    }
    return false;
}


function ckLength(str, length,label) {
    var i = str.toString().length;
    if (i < length) {
        alert(label + "不能小于" + length + "位");
        return true;
    }
    return false;   
}








//比较两个日期大小【-分隔】
function ckDate(startid, endid, msg) {
    var start = document.getElementById(startid).value.split('-');
    var end = document.getElementById(endid).value.split('-');
    var sdate = new Date(start[0], start[1], start[2]);
    var edate = new Date(end[0], end[1], end[2]);
    if (sdate > edate) {
        alert("起始日期不能大于截至日期");
        return false;
    }
}


function getSelectList(datastr, txtid, valueid) {
    if (datastr != undefined || datastr != null) {
        var tmp = eval(datastr);
        var str = "";
        var idList = new Array();
        if (txtid != "") {
            idList = new Array(); 
            idList = tmp[0].Name.split(',');
            for (var i = 0; i < idList.length; i++) {
                document.getElementById(txtid).value += idList[i] + ",";
            }
        }

        if (valueid != "") {
            idList = new Array(); 
            idList = tmp[0].Value.split(',');
            for (var i = 0; i < idList.length; i++) {
                document.getElementById(valueid).value += idList[i] + ",";
            }
        }
    }
}
function setSelect(id, name) {
    return "[{\"Value\":\"" + id + "\",\"Name\":\"" + name + "\"}]";
}



