Вход Регистрация
Файл: Main Website Files/assets/bower_components/holderjs/src/ondomready.js
Строк: 158
<?php
/*!
 * onDomReady.js 1.4.0 (c) 2013 Tubal Martin - MIT license
 *
 * Specially modified to work with Holder.js
 */

;(function(name, global, callback){
        global[
name] = callback;
})(
"onDomReady"this,

(function(
win) {

    
'use strict';

    
//Lazy loading fix for Firefox < 3.6
    //http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html
    
if (document.readyState == null && document.addEventListener) {
        
document.addEventListener("DOMContentLoaded", function DOMContentLoaded() {
            
document.removeEventListener("DOMContentLoaded"DOMContentLoadedfalse);
            
document.readyState "complete";
        }, 
false);
        
document.readyState "loading";
    }

    var 
doc win.document,
        
docElem doc.documentElement,

        
LOAD "load",
        
FALSE false,
        
ONLOAD "on"+LOAD,
        
COMPLETE "complete",
        
READYSTATE "readyState",
        
ATTACHEVENT "attachEvent",
        
DETACHEVENT "detachEvent",
        
ADDEVENTLISTENER "addEventListener",
        
DOMCONTENTLOADED "DOMContentLoaded",
        
ONREADYSTATECHANGE "onreadystatechange",
        
REMOVEEVENTLISTENER "removeEventListener",

        
// W3C Event model
        
w3c ADDEVENTLISTENER in doc,
        
top FALSE,

        
// isReady: Is the DOM ready to be used? Set to true once it occurs.
        
isReady FALSE,

        
// Callbacks pending execution until DOM is ready
        
callbacks = [];

    
// Handle when the DOM is ready
    
function ready( fn ) {
        if ( !
isReady ) {

            
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
            
if ( !doc.body ) {
                return 
deferready );
            }

            
// Remember that the DOM is ready
            
isReady true;

            
// Execute all callbacks
            
while ( fn = callbacks.shift() ) {
                
defer( fn );
            }
        }
    }

    
// The ready event handler
    
function completedevent ) {
        
// readyState === "complete" is good enough for us to call the dom ready in oldIE
        
if ( w3c || event.type === LOAD || doc[READYSTATE] === COMPLETE ) {
            
detach();
            
ready();
        }
    }

    
// Clean-up method for dom ready events
    
function detach() {
        if ( 
w3c ) {
            
doc[REMOVEEVENTLISTENER]( DOMCONTENTLOADEDcompletedFALSE );
            
win[REMOVEEVENTLISTENER]( LOADcompletedFALSE );
        } else {
            
doc[DETACHEVENT]( ONREADYSTATECHANGEcompleted );
            
win[DETACHEVENT]( ONLOADcompleted );
        }
    }

    
// Defers a function, scheduling it to run after the current call stack has cleared.
    
function defer( fn, wait ) {
        
// Allow 0 to be passed
        
setTimeout( fn, +wait >= wait );
    }

    
// Attach the listeners:

    // Catch cases where onDomReady is called after the browser event has already occurred.
    // we once tried to use readyState "interactive" here, but it caused issues like the one
    // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
    
if ( doc[READYSTATE] === COMPLETE ) {
        
// Handle it asynchronously to allow scripts the opportunity to delay ready
        
deferready );

    
// Standards-based browsers support DOMContentLoaded
    
} else if ( w3c ) {
        
// Use the handy event callback
        
doc[ADDEVENTLISTENER]( DOMCONTENTLOADEDcompletedFALSE );

        
// A fallback to window.onload, that will always work
        
win[ADDEVENTLISTENER]( LOADcompletedFALSE );

    
// If IE event model is used
    
} else {
        
// Ensure firing before onload, maybe late but safe also for iframes
        
doc[ATTACHEVENT]( ONREADYSTATECHANGEcompleted );

        
// A fallback to window.onload, that will always work
        
win[ATTACHEVENT]( ONLOADcompleted );

        
// If IE and not a frame
        // continually check to see if the document is ready
        
try {
            
top win.frameElement == null && docElem;
        } catch(
e) {}

        if ( 
top && top.doScroll ) {
            (function 
doScrollCheck() {
                if ( !
isReady ) {
                    try {
                        
// Use the trick by Diego Perini
                        // http://javascript.nwbox.com/IEContentLoaded/
                        
top.doScroll("left");
                    } catch(
e) {
                        return 
deferdoScrollCheck50 );
                    }

                    
// detach all dom ready events
                    
detach();

                    
// and execute any waiting functions
                    
ready();
                }
            })();
        }
    }

    function 
onDomReady( fn ) {
        
// If DOM is ready, execute the function (async), otherwise wait
        
isReady defer( fn ) : callbacks.push( fn );
    }

    
// Add version
    
onDomReady.version "1.4.0";
    
// Add method to check if DOM is ready
    
onDomReady.isReady = function(){
        return 
isReady;
    };

    return 
onDomReady;
})(
this));
?>
Онлайн: 2
Реклама