Type.registerNamespace("Telerik.Sitefinity.Web.UI.Fields"); Telerik.Sitefinity.Web.UI.Fields.FieldControl=function(element){this._element=element; this._dataFieldName=null; this._dataFormatString=null; this._description=null; this._descriptionElement=null; this._displayMode=null; this._example=null; this._exampleElement=null; this._title=null; this._titleElement=null; this._validatorDefinition=null; this._value=null; this._defaultValue=null; this._isBinding=false; this._fieldName=null; this._validator=null; this._valueChangedDelegate=null; this._isViolationElementPositioned=false; this._controlErrorCssClass=""; this._uiCulture=null; this._culture=null; this._emptyGuid="00000000-0000-0000-0000-000000000000"; this._dataContext=null; Telerik.Sitefinity.Web.UI.Fields.FieldControl.isValidationMessagedFocused=false; Telerik.Sitefinity.Web.UI.Fields.FieldControl.initializeBase(this,[element]); }; Telerik.Sitefinity.Web.UI.Fields.FieldControl.prototype={initialize:function(){if(this._valueChangedDelegate==null){this._valueChangedDelegate=Function.createDelegate(this,this._valueChangedHandler); }if(this._validatorDefinition){this._validatorDefinition=Sys.Serialization.JavaScriptSerializer.deserialize(this._validatorDefinition); this._validator=new Telerik.Sitefinity.Web.UI.Validation.Validator(this._validatorDefinition); }if(this._controlErrorCssClass==null){this._controlErrorCssClass=""; }Telerik.Sitefinity.Web.UI.Fields.FieldControl.callBaseMethod(this,"initialize"); },dispose:function(){if(this._valueChangedDelegate!=null){delete this._valueChangedDelegate; }Telerik.Sitefinity.Web.UI.Fields.FieldControl.callBaseMethod(this,"dispose"); },add_valueChanged:function(delegate){this.get_events().addHandler("valueChanged",delegate); },remove_valueChanged:function(delegate){this.get_events().removeHandler("valueChanged",delegate); },add_reset:function(delegate){this.get_events().addHandler("reset",delegate); },remove_reset:function(delegate){this.get_events().removeHandler("reset",delegate); },add_doExpand:function(delegate){this.get_events().addHandler("doExpand",delegate); },remove_doExpand:function(delegate){this.get_events().removeHandler("doExpand",delegate); },add_doCollapse:function(delegate){this.get_events().addHandler("doCollapse",delegate); },remove_doCollapse:function(delegate){this.get_events().removeHandler("doCollapse",delegate); },add_dataBound:function(delegate){this.get_events().addHandler("dataBound",delegate); },remove_dataBound:function(delegate){this.get_events().removeHandler("dataBound",delegate); },reset:function(){this._clearViolationMessage(); this._resetHandler(); },validate:function(){if(this._validator&&this._isToValidate()){var isValid=this._validator.validate(this.get_value()); this._refreshViolationMessage(isValid); return isValid; }this._refreshViolationMessage(true); return true; },raise_dataBound:function(){if(typeof this.get_events=="function"){var h=this.get_events().getHandler("dataBound"); if(h){h(this,Sys.EventArgs.Empty); }return Sys.EventArgs.Empty; }},focusControlByTabKey:function(keyDownEventArgs){if(keyDownEventArgs.keyCode==Sys.UI.Key.tab){var currentTabIndex=parseInt(this.get_tabIndex()); var direction=1; var element=null; if(!currentTabIndex){return; }if(keyDownEventArgs.shiftKey){direction=-1; element=this.findPreviousElementByTabIndex(currentTabIndex); }else{element=this.findNextElementByTabIndex(currentTabIndex); }if(element){element.focus(); if(keyDownEventArgs.stopPropagation){keyDownEventArgs.stopPropagation(); }if(keyDownEventArgs.preventDefault){keyDownEventArgs.preventDefault(); }}}},findElementByTabIndex:function(tabIndex){if(tabIndex>0){var element=jQuery(this._element).parents().find("[tabIndex='"+tabIndex+"']:visible"); if(element.length>0){return element[element.length-1]; }}return null; },findNextElementByTabIndex:function(tabIndex){var closestTabIndex=Infinity; var elements=jQuery(this._element).parents().find(":visible").filter(function(){var ti=$(this).attr("tabIndex"); if(ti){ti=parseInt(ti); if(ti>tabIndex&&ti<=closestTabIndex){closestTabIndex=ti; return true; }}return false; }); if(elements&&elements.length>0){return elements[0]; }return null; },findPreviousElementByTabIndex:function(tabIndex){var closestTabIndex=-Infinity; var elements=jQuery(this._element).parents().find(":visible").filter(function(){var ti=$(this).attr("tabIndex"); if(ti){ti=parseInt(ti); if(ti=closestTabIndex&&ti>=1){closestTabIndex=ti; return true; }}return false; }); if(elements&&elements.length>0){return elements[elements.length-1]; }return null; },_valueChangedHandler:function(){if(typeof this.get_events=="function"){var h=this.get_events().getHandler("valueChanged"); if(h){h(this,Sys.EventArgs.Empty); }return Sys.EventArgs.Empty; }},_resetHandler:function(){if(typeof this.get_events=="function"){var h=this.get_events().getHandler("reset"); if(h){h(this,Sys.EventArgs.Empty); }return Sys.EventArgs.Empty; }},_doExpandHandler:function(){if(typeof this.get_events=="function"){var h=this.get_events().getHandler("doExpand"); if(h){h(this,Sys.EventArgs.Empty); }return Sys.EventArgs.Empty; }},_doCollapseHandler:function(){if(typeof this.get_events=="function"){var h=this.get_events().getHandler("doCollapse"); if(h){h(this,Sys.EventArgs.Empty); }return Sys.EventArgs.Empty; }},_clearViolationMessage:function(){var element=jQuery(this.get_element()).find("."+this._getViolationMessageClassName()); if(element.length>0){element.hide(); }},_showViolationMessageElement:function(element){if(!this._isViolationElementPositioned){this.get_element().appendChild(element); this._isViolationElementPositioned=true; }element.style.display=""; jQuery(element).addClass(this._getViolationMessageClassName()); var fieldControl=Telerik.Sitefinity.Web.UI.Fields.FieldControl; if(!fieldControl.isValidationMessagedFocused){fieldControl.isValidationMessagedFocused=true; jQuery("html, body").scrollTop(element.offsetTop); }},_refreshViolationMessage:function(isValid){if(this._validator){var addWrappingErrorCssClass=this._controlErrorCssClass.length>0; var violationMessageElement=this._validator.get_violationMessageElement(); if(isValid){if(addWrappingErrorCssClass){jQuery(this._element).removeClass(this._controlErrorCssClass); }violationMessageElement.style.display="none"; }else{if(addWrappingErrorCssClass){if(!jQuery(this._element).hasClass(this._controlErrorCssClass)){jQuery(this._element).addClass(this._controlErrorCssClass); }}this._expandParentSections(this._element); this._showViolationMessageElement(violationMessageElement); }}},_getViolationMessageClassName:function(){return"violationMessage"+this.get_id(); },_isToValidate:function(){if((!this._validator._required&&!this.get_value())){return false; }else{return(this._validator.get_validateIfInvisible()||$(this._element).is(":visible"))&&this.get_displayMode()===Telerik.Sitefinity.Web.UI.Fields.FieldDisplayMode.Write; }},_expandParentSections:function(element){var elementParent=jQuery(element).parent(); while(elementParent.length!=0){if(jQuery(elementParent).hasClass("sfExpandableForm")){if(!jQuery(elementParent).hasClass("sfExpandedForm")){jQuery(elementParent).addClass("sfExpandedForm"); }var collapsedElement=jQuery(elementParent).find(".sfCollapsedTarget"); if(collapsedElement.length!=0){collapsedElement.removeClass("sfCollapsedTarget"); collapsedElement.addClass("sfExpandedTarget"); }}elementParent=elementParent.parent(); }},isChanged:function(){var notChanged=(this._value==this.get_value()); if(notChanged){return false; }else{return true; }},hasAttribute:function(value){var attr=jQuery(this._element).attr(value); if(typeof attr!=="undefined"&&attr!==false){return true; }return false; },getAttributeValue:function(value){var result=jQuery(this._element).attr(value); if(result){return result; }return""; },get_dataFieldName:function(){return this._dataFieldName; },set_dataFieldName:function(value){this._dataFieldName=value; },get_dataFormatString:function(){return this._dataFormatString; },set_dataFormatString:function(value){this._dataFormatString=value; },get_description:function(){return this._description; },set_description:function(value){this._description=value; if(this._descriptionElement){this._descriptionElement.innerHTML=this._description; }},get_descriptionElement:function(){return this._descriptionElement; },set_descriptionElement:function(value){this._descriptionElement=value; },get_displayMode:function(){return this._displayMode; },set_displayMode:function(value){this._displayMode=value; },get_example:function(){return this._example; },set_example:function(value){this._example=value; if(this._exampleElement){this._exampleElement.innerHTML=this._example; }},get_exampleElement:function(){return this._exampleElement; },set_exampleElement:function(value){this._exampleElement=value; },get_title:function(){return this._title; },set_title:function(value){this._title=value; if(this._titleElement){this._titleElement.innerHTML=this._title; }},get_titleElement:function(){return this._titleElement; },set_titleElement:function(value){this._titleElement=value; },get_validatorDefinition:function(){return this._validatorDefinition; },set_validatorDefinition:function(value){this._validatorDefinition=value; },get_validator:function(){return this._validator; },set_validator:function(value){this._validator=value; },get_isBinding:function(){return this._isBinding; },set_isBinding:function(value){this._isBinding=value; },get_value:function(){return this._value; },set_value:function(value){this._value=value; },get_defaultValue:function(){return this._defaultValue; },set_defaultValue:function(value){this._defaultValue=value; },get_tabIndex:function(){var result=jQuery(this._element).attr("tabIndex"); if(result){return result; }return -1; },set_tabIndex:function(value){jQuery(this._element).attr("tabIndex",value); },blur:function(){},focus:function(){},clearViolationMessage:function(){this._clearViolationMessage(); },get_violationMessages:function(){return this._validator.get_violationMessages(); },get_validator:function(){return this._validator; },get_controlErrorCssClass:function(){return this._controlErrorCssClass; },set_controlErrorCssClass:function(value){this._controlErrorCssClass=value; },set_uiCulture:function(culture){this._uiCulture=culture; },get_uiCulture:function(){return this._uiCulture; },set_culture:function(culture){this._culture=culture; },get_culture:function(){return this._culture; },get_fieldName:function(){return this._fieldName; },set_fieldName:function(value){this._fieldName=value; },get_dataContext:function(){return this._dataContext; },set_dataContext:function(value){this._dataContext=value; },get_element:function(){return this._element; }}; Telerik.Sitefinity.Web.UI.Fields.FieldControl.registerClass("Telerik.Sitefinity.Web.UI.Fields.FieldControl",Sys.UI.Control,Telerik.Sitefinity.Web.UI.Fields.IField);