src/cm/media/js/lib/yui/yui_3.10.3/build/yui-throttle/yui-throttle-debug.js
changeset 525 89ef5ed3c48b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cm/media/js/lib/yui/yui_3.10.3/build/yui-throttle/yui-throttle-debug.js	Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,61 @@
+/*
+YUI 3.10.3 (build 2fb5187)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('yui-throttle', function (Y, NAME) {
+
+/**
+Throttles a call to a method based on the time between calls. This method is attached
+to the `Y` object and is <a href="../classes/YUI.html#method_throttle">documented there</a>.
+
+    var fn = Y.throttle(function() {
+        counter++;
+    });
+
+    for (i; i< 35000; i++) {
+        out++;
+        fn();
+    }
+
+
+@module yui
+@submodule yui-throttle
+*/
+
+/*! Based on work by Simon Willison: http://gist.github.com/292562 */
+/**
+ * Throttles a call to a method based on the time between calls.
+ * @method throttle
+ * @for YUI
+ * @param fn {function} The function call to throttle.
+ * @param ms {int} The number of milliseconds to throttle the method call.
+ * Can set globally with Y.config.throttleTime or by call. Passing a -1 will
+ * disable the throttle. Defaults to 150.
+ * @return {function} Returns a wrapped function that calls fn throttled.
+ * @since 3.1.0
+ */
+Y.throttle = function(fn, ms) {
+    ms = (ms) ? ms : (Y.config.throttleTime || 150);
+
+    if (ms === -1) {
+        return function() {
+            fn.apply(this, arguments);
+        };
+    }
+
+    var last = Y.Lang.now();
+
+    return function() {
+        var now = Y.Lang.now();
+        if (now - last > ms) {
+            last = now;
+            fn.apply(this, arguments);
+        }
+    };
+};
+
+
+}, '3.10.3', {"requires": ["yui-base"]});