web/wp-includes/js/swfupload/plugins/swfupload.swfobject.js
author ymh
Fri, 12 Mar 2010 13:29:04 +0000
changeset 1 0d28b7c10758
permissions -rw-r--r--
First commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
/*
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
	SWFUpload.SWFObject Plugin
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
	Summary:
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
		This plugin uses SWFObject to embed SWFUpload dynamically in the page.  SWFObject provides accurate Flash Player detection and DOM Ready loading.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
		This plugin replaces the Graceful Degradation plugin.
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
	Features:
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
		* swfupload_load_failed_hander event
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
		* swfupload_pre_load_handler event
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
		* minimum_flash_version setting (default: "9.0.28")
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
		* SWFUpload.onload event for early loading
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
	Usage:
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
		Provide handlers and settings as needed.  When using the SWFUpload.SWFObject plugin you should initialize SWFUploading
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
		in SWFUpload.onload rather than in window.onload.  When initialized this way SWFUpload can load earlier preventing the UI flicker
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
		that was seen using the Graceful Degradation plugin.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
		<script type="text/javascript">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
			var swfu;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
			SWFUpload.onload = function () {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
				swfu = new SWFUpload({
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
					minimum_flash_version: "9.0.28",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
					swfupload_pre_load_handler: swfuploadPreLoad,
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
					swfupload_load_failed_handler: swfuploadLoadFailed
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
				});
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
			};
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
		</script>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
	Notes:
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
		You must provide set minimum_flash_version setting to "8" if you are using SWFUpload for Flash Player 8.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
		The swfuploadLoadFailed event is only fired if the minimum version of Flash Player is not met.  Other issues such as missing SWF files, browser bugs
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
		 or corrupt Flash Player installations will not trigger this event.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
		The swfuploadPreLoad event is fired as soon as the minimum version of Flash Player is found.  It does not wait for SWFUpload to load and can
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
		 be used to prepare the SWFUploadUI and hide alternate content.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
		swfobject's onDomReady event is cross-browser safe but will default to the window.onload event when DOMReady is not supported by the browser.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
		 Early DOM Loading is supported in major modern browsers but cannot be guaranteed for every browser ever made.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
*/
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
// SWFObject v2.1 must be loaded
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
var SWFUpload;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
if (typeof(SWFUpload) === "function") {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
	SWFUpload.onload = function () {};
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
	swfobject.addDomLoadEvent(function () {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
		if (typeof(SWFUpload.onload) === "function") {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
			SWFUpload.onload.call(window);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
	});
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
	
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
	SWFUpload.prototype.initSettings = (function (oldInitSettings) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
		return function () {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
			if (typeof(oldInitSettings) === "function") {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
				oldInitSettings.call(this);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
			this.ensureDefault = function (settingName, defaultValue) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
				this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
			};
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
			this.ensureDefault("minimum_flash_version", "9.0.28");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
			this.ensureDefault("swfupload_pre_load_handler", null);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
			this.ensureDefault("swfupload_load_failed_handler", null);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
			delete this.ensureDefault;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
		};
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
	})(SWFUpload.prototype.initSettings);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
	SWFUpload.prototype.loadFlash = function (oldLoadFlash) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
		return function () {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
			var hasFlash = swfobject.hasFlashPlayerVersion(this.settings.minimum_flash_version);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
			
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
			if (hasFlash) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
				this.queueEvent("swfupload_pre_load_handler");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
				if (typeof(oldLoadFlash) === "function") {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
					oldLoadFlash.call(this);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
				this.queueEvent("swfupload_load_failed_handler");
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
		};
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
		
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
	}(SWFUpload.prototype.loadFlash);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
			
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
	SWFUpload.prototype.displayDebugInfo = function (oldDisplayDebugInfo) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
		return function () {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
			if (typeof(oldDisplayDebugInfo) === "function") {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
				oldDisplayDebugInfo.call(this);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
			
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
			this.debug(
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
				[
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
					"SWFUpload.SWFObject Plugin settings:", "\n",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
					"\t", "minimum_flash_version:                      ", this.settings.minimum_flash_version, "\n",
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
					"\t", "swfupload_pre_load_handler assigned:     ", (typeof(this.settings.swfupload_pre_load_handler) === "function").toString(), "\n",
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
					"\t", "swfupload_load_failed_handler assigned:     ", (typeof(this.settings.swfupload_load_failed_handler) === "function").toString(), "\n",
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
				].join("")
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
			);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
		};	
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
	}(SWFUpload.prototype.displayDebugInfo);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
}