<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LinkageType.ascx.cs" Inherits="PowerEasy.Module.General.WebSite.Admin.Controls.FieldControl.LinkageType" %>
<div style="margin:5px 0px;">
    <ul id="<%=prefix %>Linkage">
        <li id="<%=prefix %>1" style="<%=showType %>;margin-bottom:5px;">
            <div>
                <select></select>
            </div>
        </li>
    </ul>
    <asp:HiddenField ID="HdnValue" runat="server" Value="" />
    <asp:HiddenField ID="HdnLinkageValue" runat="server" />
    <span id="<%=prefix %>ValrSyn" style="display:none; color:Red;">&nbsp;*</span>
    <span id="<%=prefix %>ValrTips" style="display:none; color:Red;">
        <asp:Literal ID="LtrErrorMessage" runat="server" Text="<%$ Res: Controls_FieldControl_LinkageType_ReqLinkage , 必填项不能为空%>" />
    </span>
</div>
<script type="text/javascript">
    var <%=prefix %>date = $("#<%=HdnLinkageValue.ClientID %>").val();
    $(function() {
        $("#<%=prefix %>1 select").change(function() {
            <%=prefix %>BindLinkage(1);
            <%=prefix %>SetValue();
        });

        <%=prefix %>InitLinkage();
        if ("<%=EnableNull %>" == "True") {
            $("#<%=prefix %>ValrSyn").show();
            $("#<%=prefix %>Linkage li select:last").attr("id", "<%=prefix %>ValrControl");
            RegisterValidator("<%=prefix %>ValrTips", $("#<%=prefix %>Linkage li select:last").attr("id"));
        }       
    });

    function <%=prefix %>InitLinkage() {
        var array = <%=prefix %>date.split("|");
        var valueList = $("#<%=HdnValue.ClientID %>").val().split("|");
        for (var i = 0; i < array.length; i++) {
            if (i == 0) {
                var item = eval("(" + array[i] + ")");
                for (var k in item) {
                    <%=prefix %>AddValue(i + 1, item[k].key, item[k].value);
                }
            } else {
                <%=prefix %>AddLinkage();
            }

            BindDefault($("#<%=prefix %>" + (i + 1) + " select"));
        }

        for (var i = 0; i < valueList.length; i++) {
            if (i > 0) {
                <%=prefix %>BindLinkage(i);
            }

            $("#<%=prefix %>" + (i + 1) + " select").val(valueList[i]);
        }
    }

    // 添加联动项
    function <%=prefix %>AddLinkage() {
        var id = $("#<%=prefix %>Linkage li").length + 1;
        var text = "<li id='<%=prefix %>" + id + "' style='<%=showType %>;margin-bottom:5px;'>";
        text += "<div><select></select></div></li>";
        $(text).find("select").change(function() { <%=prefix %>BindLinkage(id); <%=prefix %>SetValue(); }).end().appendTo("#<%=prefix %>Linkage");
    }
    
    // 添加项
    function <%=prefix %>AddValue(id, text, value) {
        var obj = "#<%=prefix %>" + id;
        var option = new Option(text, value);
        $(obj + " select")[0].options[$(obj + " select option").length] = option;
    }
    
    // 绑定列表
    function <%=prefix %>BindLinkage(id) {
        if ($("#<%=prefix %>" + id + " select").val() != "") {
            if ($("#<%=prefix %>" + id).next().length > 0) {
                var nextId = "#<%=prefix %>" + (id + 1);
                $(nextId + " select option").each(function() { $(this).remove(); });
                var selectedText = $("#<%=prefix %>" + id + " select option:selected").text();
                var item = eval("(" + <%=prefix %>date.split("|")[id] + ")");
                for (var i in item) {
                    if (item[i].key == selectedText) {
                        for (var j in item[i].value) {
                            <%=prefix %>AddValue(id + 1, item[i].value[j].key, item[i].value[j].value);
                        }
                    }
                }
            }

            $("#<%=prefix %>" + id).next().nextAll().find("select option").each(function() {
                $(this).remove();
            });
        } else {
            $("#<%=prefix %>" + id).nextAll().find("select option").each(function() {
                $(this).remove();
            });
        }

        $("#<%=prefix %>" + id).nextAll().find("select").each(function() {
            BindDefault($(this));
        });     
    }

    // 设置值
    function <%=prefix %>SetValue() {
        $("#<%=HdnValue.ClientID %>").val("");
        $("#<%=prefix %>Linkage li select").each(function() {
            if ($("#<%=HdnValue.ClientID %>").val() != "") {
                $("#<%=HdnValue.ClientID %>")[0].value += "|";
            }

            $("#<%=HdnValue.ClientID %>")[0].value += $(this).val();
        });
    }

    //添加验证关联
    function RegisterValidator(validatorID, controltoValidateId) {
        Page_Validators.push(document.getElementById(validatorID));
        var span = document.all ? document.all[validatorID] : document.getElementById(validatorID);
        span.controltovalidate = controltoValidateId;
        span.errormessage = "必填项不能为空";
        span.display = "Dynamic";
        span.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
        span.initialvalue = "";
        ValidatorOnLoad();
    }
    
    // 绑定默认
    function BindDefault(obj) {
        var option = "<option value=''>请选择</option>";
        if (obj[0].options.length > 0) {
            $(option).insertBefore(obj.find("option:first"));
        } else {
            obj.append(option);
        }

        obj.get(0).selectedIndex = 0;
    }
</script>