src/cm/media/js/lib/yui/yui_3.10.3/build/axis-stacked-base/axis-stacked-base-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/axis-stacked-base/axis-stacked-base-debug.js	Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,140 @@
+/*
+YUI 3.10.3 (build 2fb5187)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('axis-stacked-base', function (Y, NAME) {
+
+/**
+ * Provides core functionality for the handling of stacked numeric axis data for a chart.
+ *
+ * @module charts
+ * @submodule axis-stacked-base
+ */
+
+/**
+ * StackedImpl contains logic for managing stacked numeric data. StackedImpl is used by the following classes:
+ * <ul>
+ *      <li>{{#crossLink "StackedAxisBase"}}{{/crossLink}}</li>
+ *      <li>{{#crossLink "StackedAxis"}}{{/crossLink}}</li>
+ *  </ul>
+ *
+ * @submodule axis-stacked-base
+ * @class StackedImpl
+ * @constructor
+ */
+function StackedImpl()
+{
+}
+
+StackedImpl.NAME = "stackedImpl";
+
+StackedImpl.prototype = {
+    /**
+     * Type of data used in `Data`.
+     *
+     * @property _type
+     * @readOnly
+     * @private
+     */
+    _type: "stacked",
+
+    /**
+     * Calculates the maximum and minimum values for the `Data`.
+     *
+     * @method _updateMinAndMax
+     * @private
+     */
+    _updateMinAndMax: function()
+    {
+        var max = 0,
+            min = 0,
+            pos = 0,
+            neg = 0,
+            len = 0,
+            i = 0,
+            key,
+            num,
+            keys = this.get("keys"),
+            setMin = this.get("setMin"),
+            setMax = this.get("setMax");
+
+        for(key in keys)
+        {
+            if(keys.hasOwnProperty(key))
+            {
+                len = Math.max(len, keys[key].length);
+            }
+        }
+        for(; i < len; ++i)
+        {
+            pos = 0;
+            neg = 0;
+            for(key in keys)
+            {
+                if(keys.hasOwnProperty(key))
+                {
+                    num = keys[key][i];
+                    if(isNaN(num))
+                    {
+                        continue;
+                    }
+                    if(num >= 0)
+                    {
+                        pos += num;
+                    }
+                    else
+                    {
+                        neg += num;
+                    }
+                }
+            }
+            if(pos > 0)
+            {
+                max = Math.max(max, pos);
+            }
+            else
+            {
+                max = Math.max(max, neg);
+            }
+            if(neg < 0)
+            {
+                min = Math.min(min, neg);
+            }
+            else
+            {
+                min = Math.min(min, pos);
+            }
+        }
+        this._actualMaximum = max;
+        this._actualMinimum = min;
+        if(setMax)
+        {
+            max = this._setMaximum;
+        }
+        if(setMin)
+        {
+            min = this._setMinimum;
+        }
+        this._roundMinAndMax(min, max, setMin, setMax);
+    }
+};
+
+Y.StackedImpl = StackedImpl;
+
+/**
+ * StackedAxisBase manages stacked numeric data for an axis.
+ *
+ * @class StackedAxisBase
+ * @constructor
+ * @extends AxisBase
+ * @uses StackedImpl
+ * @param {Object} config (optional) Configuration parameters.
+ * @submodule axis-stacked-base
+ */
+Y.StackedAxisBase = Y.Base.create("stackedAxisBase", Y.NumericAxisBase, [Y.StackedImpl]);
+
+
+}, '3.10.3', {"requires": ["axis-numeric-base"]});