function Helpers(o){var t,i=gx.lang.gxBoolean;this.show=function(){var i=this;if(!this.IsPostBack&&(this.OnMouseEnter&&o(this.Selector).mouseenter(function(){i.ControlInternalName=gx.dom.id(this),i.OnMouseEnter()}),this.OnMouseLeave&&o(this.Selector).mouseleave(function(){i.ControlInternalName=gx.dom.id(this),i.OnMouseLeave()}),this.ScrollThreshold&&(this.OnScrollOn||this.OnScrollOff))){var l={allow:!0,reallow:function(o){l.allow=!0,l.runAfterReallow&&(l.runAfterReallow=!1,e.call(o))},runAfterReallow:!1,delay:100};t=o(window),i.OnScrollOn&&t.scrollTop()>=i.ScrollThreshold&&i.OnScrollOn();var e=function(){setTimeout(function(){l.allow?(i.OnScrollOn&&o(this).scrollTop()>=i.ScrollThreshold&&i.OnScrollOn(),i.OnScrollOff&&o(this).scrollTop()<i.ScrollThreshold&&i.OnScrollOff(),0!==l.delay&&(l.allow=!1,setTimeout(l.reallow.closure(this),l.delay))):l.runAfterReallow=!0}.closure(this),10)};t.scroll(e)}this.initOutsideClick()},this.destroy=function(){this.OnMouseEnter&&o(this.Selector).off("mouseenter"),this.OnMouseLeave&&o(this.Selector).off("mouseleave"),this.ScrollThreshold&&t&&(this.OnScrollOn||this.OnScrollOff)&&t.off("scroll"),this.destroyOutsideClick()},this.ScrollTop=function(){o("html,body,form").animate({scrollTop:0},"slow")},this.StartMirroringIframeHashChanges=function(t){var i=o(t);if(0==i.length)return void console.warn("Unable to find iframe ("+t+")");var l=i.get(0).contentWindow,e=window,n=window.HistoryManager;o(l).on("hashchange",function(){n?n.AddHistoryPoint(this.location.hash.replace(/^#/,""),!1):e.location.hash=this.location.hash})},this.SetIframeHash=function(t,i){var l=o(t).get(0);l&&l.contentWindow&&(l.contentWindow.location.hash=i)};var l=function(t){if(i(this.OutsideClickEnabled)){var l=o(t.target);if(this.OutsideClickIgnore&&l.is(this.OutsideClickIgnore))return;0===l.closest(this.OutsideClickTarget).length&&this.OnOutsideClick()}}.closure(this),e=function(o){i(this.OutsideClickEnabled)&&27==o.which&&this.OnOutsideClick()}.closure(this);this.initOutsideClick=function(){this.OnOutsideClick&&(o(document.body).click(l),o(document.body).keydown(e))},this.destroyOutsideClick=function(){this.OnOutsideClick&&(o(document.body).off("click",l),o(document.body).off("keydown",e))}}