corrade-nucleus-nucleons – Rev 20

Subversion Repositories:
Rev:
define([
        "../core",
        "../var/support"
], function( jQuery, support ) {

(function() {
        var pixelPositionVal, boxSizingReliableVal,
                // Support: Firefox, Android 2.3 (Prefixed box-sizing versions).
                divReset = "padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;" +
                        "-moz-box-sizing:content-box;box-sizing:content-box",
                docElem = document.documentElement,
                container = document.createElement( "div" ),
                div = document.createElement( "div" );

        div.style.backgroundClip = "content-box";
        div.cloneNode( true ).style.backgroundClip = "";
        support.clearCloneStyle = div.style.backgroundClip === "content-box";

        container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;" +
                "margin-top:1px";
        container.appendChild( div );

        // Executing both pixelPosition & boxSizingReliable tests require only one layout
        // so they're executed at the same time to save the second computation.
        function computePixelPositionAndBoxSizingReliable() {
                // Support: Firefox, Android 2.3 (Prefixed box-sizing versions).
                div.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
                        "box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;" +
                        "position:absolute;top:1%";
                docElem.appendChild( container );

                var divStyle = window.getComputedStyle( div, null );
                pixelPositionVal = divStyle.top !== "1%";
                boxSizingReliableVal = divStyle.width === "4px";

                docElem.removeChild( container );
        }

        // Use window.getComputedStyle because jsdom on node.js will break without it.
        if ( window.getComputedStyle ) {
                jQuery.extend(support, {
                        pixelPosition: function() {
                                // This test is executed only once but we still do memoizing
                                // since we can use the boxSizingReliable pre-computing.
                                // No need to check if the test was already performed, though.
                                computePixelPositionAndBoxSizingReliable();
                                return pixelPositionVal;
                        },
                        boxSizingReliable: function() {
                                if ( boxSizingReliableVal == null ) {
                                        computePixelPositionAndBoxSizingReliable();
                                }
                                return boxSizingReliableVal;
                        },
                        reliableMarginRight: function() {
                                // Support: Android 2.3
                                // Check if div with explicit width and no margin-right incorrectly
                                // gets computed margin-right based on width of container. (#3333)
                                // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
                                // This support function is only executed once so no memoizing is needed.
                                var ret,
                                        marginDiv = div.appendChild( document.createElement( "div" ) );
                                marginDiv.style.cssText = div.style.cssText = divReset;
                                marginDiv.style.marginRight = marginDiv.style.width = "0";
                                div.style.width = "1px";
                                docElem.appendChild( container );

                                ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );

                                docElem.removeChild( container );

                                // Clean up the div for other support tests.
                                div.innerHTML = "";

                                return ret;
                        }
                });
        }
})();

return support;

});