Type.registerNamespace("Telerik.Sitefinity.Web.UI.Fields"); Telerik.Sitefinity.Web.UI.Fields.ChoiceField=function(element){this._element=element; this._choices=[]; this._mutuallyExclusive=null; this._renderChoicesAs=null; this._selectedChoicesIndex=[]; this._choiceElement=null; this._readModeLabel=null; this._listItemValueMap=null; this._valueChangedHandlerDelegate; this._returnValuesAlwaysInArray=null; Telerik.Sitefinity.Web.UI.Fields.ChoiceField.initializeBase(this,[element]); }; Telerik.Sitefinity.Web.UI.Fields.ChoiceField.prototype={initialize:function(){Telerik.Sitefinity.Web.UI.Fields.ChoiceField.callBaseMethod(this,"initialize"); if(this._renderChoicesAs==Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.CheckBoxes){this._setCheckBoxesValueMapping(); }this._valueChangedHandlerDelegate=Function.createDelegate(this,this._valueChangedHandler); this._subscribeForValueChanged(); this._value=this.get_value(); jQuery(this._choiceElement).on("unload",function(e){jQuery.event.remove(this); jQuery.removeData(this); }); },dispose:function(){this.choices=null; this._choiceElement=null; if(this._valueChangedHandlerDelegate){delete this._valueChangedHandlerDelegate; }Telerik.Sitefinity.Web.UI.Fields.ChoiceField.callBaseMethod(this,"dispose"); },addListItem:function(value,caption){if(this._choiceElement){var selector=this._get_listItemSelector(); jQuery(this._choiceElement).append("<"+selector+" value='"+value+"'>"+caption+""); }},clearListItems:function(){if(this._choiceElement){jQuery(this._choiceElement).children().remove(); }},reset:function(){if(this.get_displayMode()==Telerik.Sitefinity.Web.UI.Fields.FieldDisplayMode.Write){this.set_value(null); }else{this.set_value(""); }Telerik.Sitefinity.Web.UI.Fields.ChoiceField.callBaseMethod(this,"reset"); },selectListItemsByValue:function(value){this._selectListItemsByValue(value); },_subscribeForValueChanged:function(){switch(this._renderChoicesAs){case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.CheckBoxes:if(this._get_choiceListItems()){this._get_choiceListItems().click(this._valueChangedHandlerDelegate); }break; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.DropDown:if(this._choiceElement){jQuery(this._choiceElement).change(this._valueChangedHandlerDelegate); }break; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.ListBox:if(this._choiceElement){jQuery(this._choiceElement).change(this._valueChangedHandlerDelegate); }break; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.HorizontalRadioButtons:case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.RadioButtons:if(this._get_choiceListItems()){this._get_choiceListItems().click(this._valueChangedHandlerDelegate); }case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox:if(this._choiceElement){jQuery(this._choiceElement).click(this._valueChangedHandlerDelegate); }break; }},_unsubscribeForValueChanged:function(){switch(this._renderChoicesAs){case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.CheckBoxes:if(this._get_choiceListItems()){this._get_choiceListItems().unbind("click",this._valueChangedHandlerDelegate); }break; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.DropDown:if(this._choiceElement){jQuery(this._choiceElement).unbind("change",this._valueChangedHandlerDelegate); }break; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.ListBox:if(this._choiceElement){jQuery(this._choiceElement).unbind("change",this._valueChangedHandlerDelegate); }break; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.HorizontalRadioButtons:case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.RadioButtons:if(this._get_choiceListItems()){this._get_choiceListItems().unbind("click",this._valueChangedHandlerDelegate); }case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox:if(this._choiceElement){jQuery(this._choiceElement).unbind("click",this._valueChangedHandlerDelegate); }break; }},_get_selectedAttributeSelector:function(){switch(this._renderChoicesAs){case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.CheckBoxes:return"checked"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.DropDown:return"selected"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.ListBox:return"selected"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.HorizontalRadioButtons:case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.RadioButtons:return"checked"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox:return"checked"; }},_get_listItemSelector:function(){switch(this._renderChoicesAs){case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox:case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.CheckBoxes:return"input:checkbox"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.DropDown:return"option"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.ListBox:return"option"; case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.HorizontalRadioButtons:case Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.RadioButtons:return"input:radio"; }},_get_selectedItemsValues:function(){var result; if(this._renderChoicesAs==Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox){if(this._choiceElement.checked){result=["true"]; }else{result=["false"]; }}else{var selected=this._get_selectedListItemsElements(); result=[]; if(selected&&selected.length>0){for(var i=0,length=selected.length; i0){var firstItem=listItems.eq(0); if(firstItem){firstItem.prop(this._get_selectedAttributeSelector(),true); }}},_setCheckBoxesValueMapping:function(){for(var listItemId in this._listItemValueMap){var value=this._listItemValueMap[listItemId]; jQuery($get(listItemId,this._element)).attr("value",value); }},_get_choiceByValue:function(value){var choices=this.get_choices(); if(!choices){return null; }for(var i=0; i1){return result; }}}return result; }return this._value; },set_value:function(value){if(value!==undefined&&value!==null&&this._renderChoicesAs!=Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox&&Object.prototype.toString.call(value)!=="[object Array]"&&typeof value!="string"){value=value.toString(); }this._value=value; if(!this.get_isInitialized()&&this._renderChoicesAs==Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.CheckBoxes){this._setCheckBoxesValueMapping(); }if(this._renderChoicesAs==Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox&&value==null){jQuery(this._choiceElement).attr("checked",false); }if(this.get_displayMode()==Telerik.Sitefinity.Web.UI.Fields.FieldDisplayMode.Write){this._clearAllSelectedItems(); if(value!==undefined&&value!==null){this._selectListItemsByValue(value); }else{if(this.get_defaultValue()){this._selectListItemsByValue(this.get_defaultValue()); }}}else{if(this._renderChoicesAs==Telerik.Sitefinity.Web.UI.Fields.RenderChoicesAs.SingleCheckBox||String.isInstanceOfType(value)||(typeof value)===(typeof"")){var choice=this._get_choiceByValue(value); if(choice){value=choice.Text; }jQuery(this._readModeLabel).text(value.toString()); }else{var compositeValue=""; if(value){if(typeof(value)==="string"){compositeValue=value; }else{for(var cIter=0; cIter2){compositeValue=compositeValue.substr(0,compositeValue.length-2); }}}jQuery(this._readModeLabel).html(compositeValue); }}this.raisePropertyChanged("value"); this._valueChangedHandler(); },get_selectedName:function(){var selectedIndices=this.get_selectedChoicesIndex(); if(!selectedIndices||selectedIndices.length===0){return null; }var choices=this.get_choices(),names; if(selectedIndices.length===1){names=choices[selectedIndices[0]].Text; }else{names=[]; for(var i=0,len=choices.length; i