﻿// (c) 2010 CodePlex Foundation
(function(){var b="ExtendedHover";function a(){var e="unhover",d="hover",f="unhoverDelay",c=true,b=false,a=null;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.HoverBehavior=function(d){var c=this;Sys.Extended.UI.HoverBehavior.initializeBase(c,[d]);c._elementHandlers=a;c._hoverElementHandlers=a;c._hoverElement=a;c._hoverCount=0;c._unhoverDelay=0;c._hoverDelay=0;c._hoverScript=a;c._unhoverScript=a;c._hoverFired=b};Sys.Extended.UI.HoverBehavior.prototype={_setupHandlersArray:function(){var a=this,b=[];b[0]=Function.createDelegate(a,a._onHover);b[1]=Function.createDelegate(a,a._onUnhover);return b},get_elementHandlers:function(){var a=this;if(!a._elementHandlers)a._elementHandlers=a._setupHandlersArray();return a._elementHandlers},get_hoverElementHandlers:function(){var a=this;if(!a._hoverElementHandlers)a._hoverElementHandlers=a._setupHandlersArray();return a._hoverElementHandlers},get_hoverElement:function(){return this._hoverElement},set_hoverElement:function(d){var a=this;if(d!=a._hoverElement){a._hoverElement&&a._setupHandlers(a._hoverElement,a.get_hoverElementHandlers(),b);a._hoverElement=d;a._hoverElement&&a._setupHandlers(a._hoverElement,a.get_hoverElementHandlers(),c)}},get_hoverDelay:function(){return this._hoverDelay},set_hoverDelay:function(a){this._hoverDelay=a;this.raisePropertyChanged("hoverDelay")},get_hoverScript:function(){return this._hoverScript},set_hoverScript:function(a){this._hoverScript=a},get_unhoverDelay:function(){return this._unhoverDelay},set_unhoverDelay:function(a){this._unhoverDelay=a;this.raisePropertyChanged(f)},get_unhoverScript:function(){return this._unhoverScript},set_unhoverScript:function(a){this._unhoverScript=a},dispose:function(){var c=this,e=c.get_element();if(c._elementHandlers){var d=c.get_elementHandlers();c._setupHandlers(e,d,b);c._elementHandlers=a}if(c._hoverElement){var d=c.get_hoverElementHandlers();c._setupHandlers(c._hoverElement,d,b);c._hoverElement=a}Sys.Extended.UI.HoverBehavior.callBaseMethod(c,"dispose")},initialize:function(){var a=this;Sys.Extended.UI.HoverBehavior.callBaseMethod(a,"initialize");var b=a.get_elementHandlers();a._setupHandlers(a.get_element(),b,c);if(a._hoverElement){b=a.get_hoverElementHandlers();a._setupHandlers(a._hoverElement,b,c)}},add_hover:function(a){this.get_events().addHandler(d,a)},remove_hover:function(a){this.get_events().removeHandler(d,a)},_fireHover:function(){var a=this;if(!a._hoverCount||a._hoverFired)return;var b=a.get_events().getHandler(d);b&&b(a,Sys.EventArgs.Empty);if(a._hoverScript)eval(a._hoverScript);a._hoverFired=c},_onHover:function(){var a=this;a._hoverCount++;if(!a._hoverDelay)a._fireHover();else window.setTimeout(Function.createDelegate(a,a._fireHover),a._hoverDelay)},add_unhover:function(a){this.get_events().addHandler(e,a)},remove_unhover:function(a){this.get_events().removeHandler(e,a)},_fireUnhover:function(){var a=this;if(a._hoverFired&&!a._hoverCount){a._hoverFired=b;var c=a.get_events().getHandler(e);c&&c(a,Sys.EventArgs.Empty);if(a._unhoverScript)eval(a._unhoverScript)}},_onUnhover:function(){var a=this;a._hoverCount--;if(a._hoverCount<=0){a._hoverCount=0;if(!a._unhoverDelay)a._fireUnhover();else window.setTimeout(Function.createDelegate(a,a._fireUnhover),a._unhoverDelay)}},_setupHandlers:function(a,b,e){var d="mouseout",c="mouseover";if(!this.get_isInitialized()||!a)return;if(e){$addHandler(a,c,b[0]);$addHandler(a,"focus",b[0]);$addHandler(a,d,b[1]);$addHandler(a,"blur",b[1])}else{$removeHandler(a,c,b[0]);$removeHandler(a,"focus",b[0]);$removeHandler(a,d,b[1]);$removeHandler(a,"blur",b[1])}}};Sys.Extended.UI.HoverBehavior.descriptor={properties:[{name:"hoverElement",isDomElement:c},{name:f,type:Number}],events:[{name:d},{name:e}]};Sys.Extended.UI.HoverBehavior.registerClass("Sys.Extended.UI.HoverBehavior",Sys.Extended.UI.BehaviorBase);Sys.registerComponent(Sys.Extended.UI.HoverBehavior,{name:d})}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedBase","ExtendedCommon"],a);else a()})();