jQuery.fn.ready = function( fn ) {
	// Dodanie wywołania zwrotnego
	jQuery.ready.promise().done( fn );

	return this;
};
/* … znajduje się tutaj wiele wierszy kodu */
jQuery.ready.promise = function( obj ) {
	if ( !readyList ) {

		readyList = jQuery.Deferred();

		// Przechwycenie wypadków, w których wywoływana jest metoda $(document).ready()
    // po wystąpieniu zdarzenia przeglądarki.
    // Obsługa: przeglądarka IE tylko w wersjach 9 i 10
    // Starsze wersje przeglądarki IE czasami zbyt szybko sygnalizują „interaktywność”
		if ( document.readyState === "complete" ||
			( document.readyState !== "loading" && !document.documentElement.doScroll ) ) {

			// Obsługa asynchroniczna w celu umożliwienia lub opóźnienia zdarzenia ready
			window.setTimeout( jQuery.ready );

		} else {

			// Użycie przydatnego wywołania zwrotnego zdarzenia
			document.addEventListener( "DOMContentLoaded", completed );

			// Awaryjne użycie wywołania zwrotnego window.onload, które zawsze zadziała 
			window.addEventListener( "load", completed );
		}
	}
	return readyList.promise( obj );
};
