1// Name: HoverExtender.HoverBehavior.debug.js 2// Assembly: AjaxControlToolkit 3// Version: 4.1.7.1213 4// FileVersion: 4.1.7.1213 5// (c) 2010 CodePlex Foundation 6 7 8 9/// <reference name="MicrosoftAjax.debug.js" /> 10/// <reference path="../ExtenderBase/BaseScripts.js" /> 11/// <reference path="../Common/Common.js" /> 12 13(function() { 14var scriptName = "ExtendedHover"; 15 16function execute() { 17 18Type.registerNamespace('Sys.Extended.UI'); 19 20Sys.Extended.UI.HoverBehavior = function(element) { 21 /// <param name="element">The DOM element the behavior is associated with.</param> 22 Sys.Extended.UI.HoverBehavior.initializeBase(this, [element]); 23 24 this._elementHandlers = null; 25 this._hoverElementHandlers = null; 26 27 this._hoverElement = null; 28 this._hoverCount = 0; 29 this._unhoverDelay = 0; 30 this._hoverDelay = 0; 31 this._hoverScript = null; 32 this._unhoverScript = null; 33 this._hoverFired = false; 34} 35 36Sys.Extended.UI.HoverBehavior.prototype = { 37 _setupHandlersArray: function() { 38 var target = []; 39 target[0] = Function.createDelegate(this, this._onHover); 40 target[1] = Function.createDelegate(this, this._onUnhover); 41 return target; 42 }, 43 44 get_elementHandlers: function() { 45 46 if (!this._elementHandlers) { 47 this._elementHandlers = this._setupHandlersArray(); 48 } 49 return this._elementHandlers; 50 }, 51 52 get_hoverElementHandlers: function() { 53 54 if (!this._hoverElementHandlers) { 55 this._hoverElementHandlers = this._setupHandlersArray(); 56 } 57 return this._hoverElementHandlers; 58 }, 59 60 get_hoverElement: function() { 61 /// <value type="Object">Dom element associated with this behavior.</value> 62 63 return this._hoverElement; 64 }, 65 66 set_hoverElement: function(element) { 67 /// <param name="element" type="Object">Dom element associated with this behavior.</param> 68 69 if (element != this._hoverElement) { 70 71 if (this._hoverElement) { 72 this._setupHandlers(this._hoverElement, this.get_hoverElementHandlers(), false); 73 } 74 75 this._hoverElement = element; 76 77 if (this._hoverElement) { 78 this._setupHandlers(this._hoverElement, this.get_hoverElementHandlers(), true); 79 } 80 } 81 }, 82 83 get_hoverDelay: function() { 84 /// <value type="Number">Delay in milliseconds before unhover event is raised.</value> 85 return this._hoverDelay; 86 }, 87 88 set_hoverDelay: function(value) { 89 /// <param name="value" type="Number">Delay in milliseconds before unhover event is raised.</param> 90 this._hoverDelay = value; 91 this.raisePropertyChanged('hoverDelay'); 92 }, 93 94 get_hoverScript: function() { 95 return this._hoverScript; 96 }, 97 98 set_hoverScript : function(script) { 99 this._hoverScript = script; 100 }, 101 102 get_unhoverDelay: function() { 103 /// <value type="Number">Delay in milliseconds before unhover event is raised.</value> 104 return this._unhoverDelay; 105 }, 106 107 set_unhoverDelay: function(value) { 108 /// <param name="value" type="Number">Delay in milliseconds before unhover event is raised.</param> 109 this._unhoverDelay = value; 110 this.raisePropertyChanged('unhoverDelay'); 111 }, 112 113 get_unhoverScript: function() { 114 return this._unhoverScript; 115 }, 116 117 set_unhoverScript : function(script) { 118 this._unhoverScript = script; 119 }, 120 121 dispose: function() { 122 var element = this.get_element(); 123 124 if (this._elementHandlers) { 125 var handlers = this.get_elementHandlers(); 126 this._setupHandlers(element, handlers, false); 127 this._elementHandlers = null; 128 } 129 130 if(this._hoverElement) { 131 var handlers = this.get_hoverElementHandlers(); 132 this._setupHandlers(this._hoverElement, handlers, false); 133 this._hoverElement = null; 134 } 135 Sys.Extended.UI.HoverBehavior.callBaseMethod(this, 'dispose'); 136 }, 137 138 initialize: function() { 139 Sys.Extended.UI.HoverBehavior.callBaseMethod(this, 'initialize'); 140 141 var handlers = this.get_elementHandlers(); 142
143 this._setupHandlers(this.get_element(), handlers, true); 144 145 if (this._hoverElement) { 146 handlers = this.get_hoverElementHandlers(); 147 this._setupHandlers(this._hoverElement, handlers, true); 148 } 149 }, 150 151 add_hover: function(handler) { 152 this.get_events().addHandler("hover", handler); 153 }, 154 155 remove_hover: function(handler) { 156 this.get_events().removeHandler("hover", handler); 157 }, 158 159 _fireHover : function() { 160 161 if (!this._hoverCount || this._hoverFired) { 162 return; 163 } 164 165 var handler = this.get_events().getHandler("hover"); 166 if (handler) { 167 handler(this, Sys.EventArgs.Empty); 168 } 169 if (this._hoverScript) { 170 eval(this._hoverScript); 171 } 172 this._hoverFired = true; 173 }, 174 175 _onHover: function() { 176 this._hoverCount++; 177 178 if (!this._hoverDelay) { 179 this._fireHover(); 180 } 181 else { 182 window.setTimeout(Function.createDelegate(this, this._fireHover), this._hoverDelay); 183 } 184 }, 185 186 add_unhover: function(handler) { 187 this.get_events().addHandler("unhover", handler); 188 }, 189 190 remove_unhover: function(handler) { 191 this.get_events().removeHandler("unhover", handler); 192 }, 193 194 _fireUnhover : function() { 195 if (this._hoverFired && !this._hoverCount) { 196 this._hoverFired = false; 197 var handler = this.get_events().getHandler("unhover"); 198 if (handler) { 199 handler(this, Sys.EventArgs.Empty); 200 } 201 if (this._unhoverScript) { 202 eval(this._unhoverScript); 203 } 204 } 205 }, 206 207 _onUnhover: function() { 208 this._hoverCount--; 209 210 if (this._hoverCount <= 0) { 211 212 this._hoverCount = 0; 213 214 if (!this._unhoverDelay) { 215 this._fireUnhover(); 216 } 217 else { 218 window.setTimeout(Function.createDelegate(this, this._fireUnhover), this._unhoverDelay); 219 } 220 221 } 222 }, 223 224 _setupHandlers: function(element, handlers, hookup) { 225 226 if (!this.get_isInitialized() || !element) return; 227 228 if (hookup) { 229 $addHandler(element, "mouseover", handlers[0]); 230 $addHandler(element, "focus", handlers[0]); 231 $addHandler(element, "mouseout", handlers[1]); 232 $addHandler(element, "blur", handlers[1]); 233 } 234 else { 235 $removeHandler(element, "mouseover", handlers[0]); 236 $removeHandler(element, "focus", handlers[0]); 237 $removeHandler(element, "mouseout", handlers[1]); 238 $removeHandler(element, "blur", handlers[1]); 239 } 240 } 241} 242Sys.Extended.UI.HoverBehavior.descriptor = { 243 properties: [ {name: 'hoverElement', isDomElement: true}, 244 {name: 'unhoverDelay', type: Number} ], 245 events: [ {name: 'hover'}, 246 {name: 'unhover'} ] 247} 248Sys.Extended.UI.HoverBehavior.registerClass('Sys.Extended.UI.HoverBehavior', Sys.Extended.UI.BehaviorBase); 249Sys.registerComponent(Sys.Extended.UI.HoverBehavior, { name: "hover" }); 250 251} // execute 252 253if (window.Sys && Sys.loader) { 254 Sys.loader.registerScript(scriptName, ["ExtendedBase", "ExtendedCommon"], execute); 255} 256else { 257 execute(); 258} 259 260})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.