inishes so all handlers will still execute
          // in order and no new ones will be added to the readyList
          // while we are processing the list
          readyList[i].fn.call(window, readyList[i].ctx);
      }
      // allow any closures held by these functions to free
      readyList = [];
  }
}

function readyStateChange() {
  if ( document.readyState === "complete" ) {
      ready();
  }
}

// This is the one public interface
// docReady(fn, context);
// the context argument is optional - i