﻿// 通用Js方法汇总
// 1、单选方法
// 2、复选框改变时 显示或者隐藏控件（同时反控制另一个控件controlId2，无反控则只传3个参数即可）
// 3、“是否组合”复选框改变时 显示或者隐藏控件（同时反控制另一个控件controlId2，无反控则只传3个参数即可）
// 4  下拉列表改变时 显示或者隐藏控件
// 5、针对Awesome弹出框的loading状态*******（不需要考虑调用的问题 在通用插件中已自动调用）*******
// 6、Ajax获取页面信息 并赋值到对应id元素中
// 7、文本框发生改变时 同步将值赋值到另一个元素内（都必须为value属性）
// 8、
// 9、
// 10、



// 1、单选方法
// 2011-11-2 zhx
function onRadio(chk) {
    if (chk.checked) {
        $('input[type=checkbox][name=' + chk.name + ']').each(function () {
            if (this.value != chk.value) {
                $(this).attr('checked', false);
                $(this).change();
            }
        });
    }
}

/*2 复选框改变时 显示或者隐藏控件（同时反控制另一个控件controlId2，无反控则只传3个参数即可）
self            this自身
showValue       当为自身选中value时 显示控件controlId 隐藏控件controlId2
controlId       被操作的控件Id
controlId2      被反操作的控件Id

引用：onclick = "OnCheckShowOrHide(this,'" + (int)TestEnum.RuleType.Sql语句 + "','type1Div','type2Div');"
*/
function OnCheckShowOrHide(self, state, controlId, controlId2) {
    //alert(self.id + " " + state + " " + controlId + " " + controlId2);
    var divObj = $("#" + controlId);
    var divObj2 = $("#" + controlId2);
    if (self.checked == state) {
        if (divObj) {
            divObj.show();
        }
        if (divObj2) {
            divObj2.hide();
        }
    } else {
        if (divObj) {
            divObj.hide();
        }
        if (divObj2) {
            divObj2.show();
        }
    }
}

/*3 “是否组合”复选框改变时 显示或者隐藏控件（同时反控制另一个控件controlId2，无反控则只传3个参数即可）
self            this自身
showValue       当为自身选中value时 显示控件controlId 隐藏控件controlId2
controlId       被操作的控件Id
controlId2      被反操作的控件Id

引用：onclick = "OnCheckBooleanShowOrHide(this,'" + (int)TestEnum.RuleType.Sql语句 + "','type1Div','type2Div');"
*/
function OnCheckBooleanShowOrHide(self, state, controlId, controlId2) {
    //alert(self.id + " " + state + " " + controlId + " " + controlId2);
    var divObj = $("#" + controlId);
    var divObj2 = $("#" + controlId2);
    if (self.checked == state && self.value == state.toString()) {
        if (divObj) {
            divObj.show();
        }
        if (divObj2) {
            divObj2.hide();
        }
    } else {
        if (divObj) {
            divObj.hide();
        }
        if (divObj2) {
            divObj2.show();
        }
    }
}

/*4 下拉列表改变时 显示或者隐藏控件
self            this自身
controlName     备操作的控件的名称（通用部分） 例：（div0,div1,div2 则传div）

引用：onchange = "OnSelectShowOrHide(this,'divhaha');"
单项设置：
<tbody id="siteNavigationNodeType" to=",1,2,">
</tbody>
*/
function OnSelectShowOrHide(self, controlName) {
    var value = self.options[self.selectedIndex].value;
    $("[id=" + controlName + "]").each(function () {
        $(this).hide();
    });

    $("[id=" + controlName + "][to*=," + value + ",]").each(function () {
        $(this).show();
    });
}

/*5 针对Awesome弹出框的loading状态
loadingShow为显示 loadingHide为隐藏
不需要调用 因为调用的方法我已经写在了通用插件当中
*/
function loadingShow(id) {
    $("#" + id).append("<div id='loading" + id + "' class='loading' style='width:100%; height:100%; background-color:#fff; z-index:999'></div>");
}
function loadingHide(id) {
    $("#loading" + id).hide("slow");
}



/*6 Ajax获取页面信息 并赋值到对应id元素中
*/
function GetAjaxContentByUrl(id, url) {
    if ($("#" + id).html()) {
        var addStr = "";
        if (url.indexOf("?") > -1) {
            addStr = '&r=' + new Date().getMilliseconds();
        } else {
            addStr = '?r=' + new Date().getMilliseconds();
        }
        $.get(url + addStr, function (d) {
            $("#" + id).html(d);
        });
    }
}


/*7 文本框发生改变时 同步将值赋值到另一个元素内（都必须为value属性）
*/
function TextOnChangeToAnother(obj, anotherName) {
    $("#" + anotherName).attr("value", obj.value);
}

/*8-1.1  通用的单选方法                                            2011-12-30
*/
function onRadioForTree(chk, treeName, treeId, treeParentId) {
    if (chk.checked) {
        $('input[type=checkbox][treeName=' + treeName + '][treeParentId=' + treeParentId + ']').each(function () {
            if (this.name != chk.name) {
                $(this).attr('checked', false);
            }
        });
    }
}
