resolve();
                    });
                };

                // This event fires after doc ready state is interactive and before it is complete, it doesn't wait on resources to be loaded
                document.addEventListener('readystatechange', function () {

                    if (document.readyState === "complete") {resolve(fire_it("LAST"));}else { resolve(fire_it("FIRST")); }
                });

                // Prevent this function from being executed none, twice or more using paramet