src/cm/media/js/lib/yui/yui_3.10.3/build/shim-plugin/shim-plugin-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/shim-plugin/shim-plugin-debug.js	Tue Jul 16 14:29:46 2013 +0200
@@ -0,0 +1,113 @@
+/*
+YUI 3.10.3 (build 2fb5187)
+Copyright 2013 Yahoo! Inc. All rights reserved.
+Licensed under the BSD License.
+http://yuilibrary.com/license/
+*/
+
+YUI.add('shim-plugin', function (Y, NAME) {
+
+    /**
+     * Provides shimming support for Node via a Plugin.
+     * This fixes SELECT bleedthrough for IE6 & Mac scrollbars
+     * @module shim-plugin
+     */
+
+    /**
+     * Node plugin which can be used to add shim support.
+     *
+     * @class Plugin.Shim
+     * @param {Object} User configuration object
+     */
+    function Shim(config) {
+        this.init(config);
+    }
+
+    /**
+     * Default class used to mark the shim element
+     *
+     * @property CLASS_NAME
+     * @type String
+     * @static
+     * @default "yui-node-shim"
+     */
+    // TODO: use ClassNameManager
+    Shim.CLASS_NAME = 'yui-node-shim';
+
+    /**
+     * Default markup template used to generate the shim element.
+     * 
+     * @property TEMPLATE
+     * @type String
+     * @static
+     */
+    Shim.TEMPLATE = '<iframe class="' + Shim.CLASS_NAME +
+            '" frameborder="0" title="Node Stacking Shim"' +
+            'src="javascript:false" tabindex="-1" role="presentation"' +
+            'style="position:absolute; z-index:-1;"></iframe>';
+
+    Shim.prototype = {
+        init: function(config) {
+            this._host = config.host;
+            this.initEvents();
+            this.insert();
+            this.sync();
+        },
+
+        initEvents: function() {
+            this._resizeHandle = this._host.on('resize', this.sync, this);
+        },
+        
+        getShim: function() {
+            return this._shim || (
+                this._shim = Y.Node.create(
+                    Shim.TEMPLATE,
+                    this._host.get('ownerDocument')
+                )
+            );
+        },
+
+        insert: function() {
+            var node = this._host;
+            this._shim = node.insertBefore( this.getShim(),
+                    node.get('firstChild'));
+        },
+
+        /**
+         * Updates the size of the shim to fill its container
+         * @method sync
+         */
+        sync: function() {
+            var shim = this._shim,
+                node = this._host;
+
+            if (shim) {
+                shim.setAttrs({
+                    width: node.getStyle('width'),
+                    height: node.getStyle('height')
+                });
+            }
+        },
+
+        /**
+         * Removes the shim and destroys the plugin
+         * @method destroy
+         */
+        destroy: function() {
+            var shim = this._shim;
+            if (shim) {
+                shim.remove(true);
+            }
+
+            this._resizeHandle.detach();
+        }
+    };
+
+    Shim.NAME = 'Shim';
+    Shim.NS = 'shim';
+
+    Y.namespace('Plugin');
+    Y.Plugin.Shim = Shim;
+
+
+}, '3.10.3', {"requires": ["node-style", "node-pluginhost"]});