/* Copyright (c) 2006 Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * $LastChangedDate: 2007-12-20 09:02:08 -0600 (Thu, 20 Dec 2007) $
 * $Rev: 4265 $
 *
 * Version: 3.0
 * 
 * Requires: $ 1.2.2+
 */

(function(a){var b="mousewheel",e="DOMMouseScroll",c="mwcursorposdata",d="mousemove.mousewheel";a.event.special.mousewheel={setup:function(){var f=this,g=a.event.special.mousewheel.handler;a.browser.mozilla&&a(f).bind(d,function(b){a.data(this,c,{pageX:b.pageX,pageY:b.pageY,clientX:b.clientX,clientY:b.clientY})});if(f.addEventListener)f.addEventListener(a.browser.mozilla?e:b,g,false);else f.onmousewheel=g},teardown:function(){var f=this,g=a.event.special.mousewheel.handler;a(f).unbind(d);if(f.removeEventListener)f.removeEventListener(a.browser.mozilla?e:b,g,false);else f.onmousewheel=function(){};a.removeData(f,c)},handler:function(d){var f=Array.prototype.slice.call(arguments,1);d=a.event.fix(d||window.event);a.extend(d,a.data(this,c)||{});var e=0,g=true;if(d.wheelDelta)e=d.wheelDelta/120;if(d.detail)e=-d.detail/3;d.data=d.data||{};d.type=b;f.unshift(e);f.unshift(d);return a.event.handle.apply(this,f)}};a.fn.extend({mousewheel:function(a){return a?this.bind(b,a):this.trigger(b)},unmousewheel:function(a){return this.unbind(b,a)}})})(jQuery);
