namespace("widgets.hierarchyItemSelector");widgets.hierarchyItemSelector.DropDownModeView=Backbone.View.extend({events:{"change select":"onItemChanged"},render:function(){this.renderSelectedPathInputs()},onItemChanged:function(n){var i=$(n.target).closest("li"),r=i.nextAll().hide().find("select"),t;r.addClass("ignoreOnSubmit").val("");i.find("span.description").hide();t=this.getSelectedValue();t&&this.toggleItem(t);this.renderSelectedPathInputs();this.trigger("itemChanged",t)},renderSelectedPathInputs:function(){var n=this.$(".selectedPath"),t=n.attr("data-inputName");n.empty();_(this.getSelectedPath()).each(function(i,r){n.append("<input type='hidden' name='"+t+"["+r+"]' value='"+i+"' />")})},getSelectedValue:function(){var n=this.getSelectedPath();return _.last(n)},getSelectedPath:function(){var n=[];return this.$("select").each(function(){var i=$(this).find("option:selected"),t;i.length&&(t=i.val(),t&&n.push(t))}),n},selectPath:function(n,t){if(this.$("select").addClass("ignoreOnSubmit"),this.$("li[data-parentId='']").find("select").removeClass("ignoreOnSubmit"),this.$("li[data-parentId], span.description").hide(),this.$("li[data-parentId=''], span[data-itemId='']").show(),this.$("option:selected").each(function(){this.selected=!1}),n){t=t||"_";var i=_.isArray(n)?n:_(n.split(t)).map(function(n){return parseInt(n)}),r=this;_(i).each(function(n){r.$("option[value="+n+"]").attr("selected","selected");r.toggleItem(n)});this.renderSelectedPathInputs();this.trigger("itemChanged",_(i).last())}},selectItem:function(n){var t="_";this.selectPath(this.getPathByItemId(n,t),t)},unselectItem:function(n){var i="_",t=this.getPathByItemId(n,i);t=t.substr(0,t.indexOf(n)-1);this.selectPath(t,i)},setItemsDisabledState:function(n,t){var i=this;_(n).each(function(n){i.setItemDisabledState(n,t)})},setItemDisabledState:function(n,t,i){var r,u;if(this.getSelectedValue()!=n&&this.isLeaf(n)||i){if(r=this.$("option[value="+n+"]"),r.attr("data-itemDisabled"))return;t?(r.attr("disabled","disabled"),r.siblings(":disabled").length==r.siblings("").not("[value='']").length&&(u=r.closest("li").attr("data-parentId"),u&&this.setItemDisabledState(u,t,!0))):r.removeAttr("disabled")}},clearAllItemsDisabledState:function(){this.$("option").not("[data-itemDisabled='true']").removeAttr("disabled")},toggleItem:function(n){this.$("li[data-parentId="+n+"]").show().find("select").val("").removeClass("ignoreOnSubmit");this.$("li[data-parentId="+n+"]").find("span.description").hide();this.$("span.description[data-itemId="+n+"]").show()},isLeaf:function(n){return n&&this.$("li[data-parentId="+n+"]").length==0},getLeafCount:function(){var n=0,t=this;return _(this.$("option")).each(function(i){var r=$(i).val();r&&t.isLeaf(r)&&!$(i).attr("data-itemDisabled")&&n++}),n},setInputName:function(n){this.$(".selectedPath").attr("data-inputName",n)},getPathByItemId:function(n){var t,i,r;do i=this.$("option[value="+n+"]"),r=i.closest("li"),t=_.isUndefined(t)?i.val():i.val()+"_"+t,n=r.attr("data-parentId");while(n);return t},toggleDisabledState:function(n){this.$("select").toggleDisabledFromJsApiState(n)}}),function(n){n.extend(n.fn,{hierarchyItemSelector:function(n){var i,t;return this.length==0?null:(i=this.is(".hierarchyItemSelector")?this:this.find(".hierarchyItemSelector"),i.length==0)?null:(t=i.data("hierarchyItemSelector"),t)?t:(n.mode||(n.mode="DropDown"),n.mode=="DropDown"?t=new widgets.hierarchyItemSelector.DropDownModeView({el:i,settings:n}):n.mode=="Tree"&&(t=new widgets.hierarchyItemSelector.TreeModeView({el:i,settings:n})),t.render(),i.data("hierarchyItemSelector",t),t)}})}(jQuery);namespace("widgets.hierarchyItemSelector");widgets.hierarchyItemSelector.TreeModeView=Backbone.View.extend({events:{"click a":"onItemSelected"},onItemSelected:function(n){this.$(".selectedItem").removeClass("selectedItem");$(n.target).addClass("selectedItem");this.trigger("itemSelected")},getSelectedPath:function(n){var t=[],i=[];return(this.$(".selectedItem").parentsUntil(this.$el,"li").each(function(){var r=$(this).children("a");t.push(parseInt(r.attr("data-id")));n&&i.push(r.text())}),t=t.reverse(),!n)?t:{selectedItemId:this.$(".selectedItem").attr("data-id"),path:t,friendlyPath:i.reverse().join(" > ")}},toggleDisabledState:function(){throw new Error("Not supported.");}})