raw
mp-wp_genesis           1 /*
mp-wp_genesis 2 DocumentReady Plug-in
mp-wp_genesis 3
mp-wp_genesis 4 This plugin loads SWFUpload as soon as the document is ready. You should not load SWFUpload inside window.onload using this plugin.
mp-wp_genesis 5 You can also chain other functions by calling SWFUpload.DocumentReady(your function).
mp-wp_genesis 6
mp-wp_genesis 7 Warning: Embedded Ads or other scripts that overwrite window.onload or use their own document ready functions may interfer with this plugin. You
mp-wp_genesis 8 should not set window.onload when using this plugin.
mp-wp_genesis 9
mp-wp_genesis 10 Usage Example:
mp-wp_genesis 11
mp-wp_genesis 12 var swfu = new SWFUpload(your settings object);
mp-wp_genesis 13 SWFUpload.DocumentReady(function () { alert('Document Ready!'; });
mp-wp_genesis 14
mp-wp_genesis 15 */
mp-wp_genesis 16
mp-wp_genesis 17 var SWFUpload;
mp-wp_genesis 18 if (typeof(SWFUpload) === "function") {
mp-wp_genesis 19 // Override iniSWFUpload so SWFUpload gets inited when the document is ready rather than immediately
mp-wp_genesis 20 SWFUpload.prototype.initSWFUpload = function (old_initSWFUpload) {
mp-wp_genesis 21 return function (init_settings) {
mp-wp_genesis 22 var self = this;
mp-wp_genesis 23 if (typeof(old_initSWFUpload) === "function") {
mp-wp_genesis 24 SWFUpload.DocumentReady(function () {
mp-wp_genesis 25 old_initSWFUpload.call(self, init_settings);
mp-wp_genesis 26 });
mp-wp_genesis 27 }
mp-wp_genesis 28 }
mp-wp_genesis 29
mp-wp_genesis 30 }(SWFUpload.prototype.initSWFUpload);
mp-wp_genesis 31
mp-wp_genesis 32
mp-wp_genesis 33 // The DocumentReady function adds the passed in function to
mp-wp_genesis 34 // the functions that will be executed when the document is ready/loaded
mp-wp_genesis 35 SWFUpload.DocumentReady = function (fn) {
mp-wp_genesis 36 // Add the function to the chain
mp-wp_genesis 37 SWFUpload.DocumentReady.InternalOnloadChain = function (previous_link_fn) {
mp-wp_genesis 38 return function () {
mp-wp_genesis 39 if (typeof(previous_link_fn) === "function") {
mp-wp_genesis 40 previous_link_fn();
mp-wp_genesis 41 }
mp-wp_genesis 42 fn();
mp-wp_genesis 43 };
mp-wp_genesis 44 }(SWFUpload.DocumentReady.InternalOnloadChain);
mp-wp_genesis 45 };
mp-wp_genesis 46 SWFUpload.DocumentReady.InternalOnloadChain = null;
mp-wp_genesis 47 SWFUpload.DocumentReady.Onload = function () {
mp-wp_genesis 48 // Execute the onload function chain
mp-wp_genesis 49 if (typeof(SWFUpload.DocumentReady.InternalOnloadChain) === "function") {
mp-wp_genesis 50 SWFUpload.DocumentReady.InternalOnloadChain();
mp-wp_genesis 51 }
mp-wp_genesis 52 };
mp-wp_genesis 53 SWFUpload.DocumentReady.SetupComplete = false;
mp-wp_genesis 54
mp-wp_genesis 55
mp-wp_genesis 56 /* ********************************************
mp-wp_genesis 57 This portion of the code gets executed as soon it is loaded.
mp-wp_genesis 58 It binds the proper event for executing JavaScript is
mp-wp_genesis 59 early as possible. This is a per browser function and so
mp-wp_genesis 60 some browser sniffing is used.
mp-wp_genesis 61
mp-wp_genesis 62 This solution still has the "exposed" issue (See the Global Delegation section at http://peter.michaux.ca/article/553 )
mp-wp_genesis 63
mp-wp_genesis 64 Base solution from http://dean.edwards.name/weblog/2006/06/again/ and http://dean.edwards.name/weblog/2005/09/busted/
mp-wp_genesis 65 ******************************************** */
mp-wp_genesis 66 if (!SWFUpload.DocumentReady.SetupComplete) {
mp-wp_genesis 67 // for Internet Explorer (using conditional comments)
mp-wp_genesis 68 /*@cc_on @*/
mp-wp_genesis 69 /*@if (@_win32)
mp-wp_genesis 70 document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
mp-wp_genesis 71 var script = document.getElementById("__ie_onload");
mp-wp_genesis 72 script.onreadystatechange = function() {
mp-wp_genesis 73 if (this.readyState == "complete") {
mp-wp_genesis 74 SWFUpload.DocumentReady.Onload(); // call the onload handler
mp-wp_genesis 75 }
mp-wp_genesis 76 };
mp-wp_genesis 77 SWFUpload.DocumentReady.SetupComplete = true;
mp-wp_genesis 78 /*@end @*/
mp-wp_genesis 79 }
mp-wp_genesis 80
mp-wp_genesis 81 if (!SWFUpload.DocumentReady.SetupComplete && /WebKit/i.test(navigator.userAgent)) { // sniff
mp-wp_genesis 82 var _timer = setInterval(function() {
mp-wp_genesis 83 if (/loaded|complete/.test(document.readyState)) {
mp-wp_genesis 84 clearInterval(_timer);
mp-wp_genesis 85 SWFUpload.DocumentReady.Onload(); // call the onload handler
mp-wp_genesis 86 }
mp-wp_genesis 87 }, 10);
mp-wp_genesis 88 SWFUpload.DocumentReady.SetupComplete = true;
mp-wp_genesis 89 }
mp-wp_genesis 90
mp-wp_genesis 91 /* for Mozilla */
mp-wp_genesis 92 if (!SWFUpload.DocumentReady.SetupComplete && document.addEventListener) {
mp-wp_genesis 93 document.addEventListener("DOMContentLoaded", SWFUpload.DocumentReady.Onload, false);
mp-wp_genesis 94 SWFUpload.DocumentReady.SetupComplete = true;
mp-wp_genesis 95 }
mp-wp_genesis 96
mp-wp_genesis 97 /* for other browsers */
mp-wp_genesis 98 if (!SWFUpload.DocumentReady.SetupComplete) {
mp-wp_genesis 99 window.onload = SWFUpload.DocumentReady.Onload;
mp-wp_genesis 100 SWFUpload.DocumentReady.SetupComplete = true;
mp-wp_genesis 101 }
mp-wp_genesis 102 }