Ticket #9413: 9413.patch
| File 9413.patch, 82.7 KB (added by , 17 years ago) |
|---|
-
wp-includes/js/swfupload/swfupload.js
### Eclipse Workspace Patch 1.0 #P wordpress-trunk
31 31 this.movieName = "SWFUpload_" + SWFUpload.movieCount++; 32 32 this.movieElement = null; 33 33 34 34 35 // Setup global control tracking 35 36 SWFUpload.instances[this.movieName] = this; 36 37 … … 49 50 /* *************** */ 50 51 SWFUpload.instances = {}; 51 52 SWFUpload.movieCount = 0; 52 SWFUpload.version = "2.2.0 Beta 2";53 SWFUpload.version = "2.2.0 2009-03-25"; 53 54 SWFUpload.QUEUE_ERROR = { 54 55 QUEUE_LIMIT_EXCEEDED : -100, 55 56 FILE_EXCEEDS_SIZE_LIMIT : -110, … … 90 91 OPAQUE : "opaque" 91 92 }; 92 93 94 // Private: takes a URL, determines if it is relative and converts to an absolute URL 95 // using the current site. Only processes the URL if it can, otherwise returns the URL untouched 96 SWFUpload.completeURL = function(url) { 97 if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { 98 return url; 99 } 100 101 var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); 102 103 var indexSlash = window.location.pathname.lastIndexOf("/"); 104 if (indexSlash <= 0) { 105 path = "/"; 106 } else { 107 path = window.location.pathname.substr(0, indexSlash) + "/"; 108 } 109 110 return /*currentURL +*/ path + url; 111 112 }; 113 114 93 115 /* ******************** */ 94 116 /* Instance Members */ 95 117 /* ******************** */ … … 103 125 104 126 // Upload backend settings 105 127 this.ensureDefault("upload_url", ""); 128 this.ensureDefault("preserve_relative_urls", false); 106 129 this.ensureDefault("file_post_name", "Filedata"); 107 130 this.ensureDefault("post_params", {}); 108 131 this.ensureDefault("use_query_string", false); 109 132 this.ensureDefault("requeue_on_error", false); 110 133 this.ensureDefault("http_success", []); 134 this.ensureDefault("assume_success_timeout", 0); 111 135 112 136 // File Settings 113 137 this.ensureDefault("file_types", "*.*"); … … 130 154 this.ensureDefault("button_text_left_padding", 0); 131 155 this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); 132 156 this.ensureDefault("button_disabled", false); 133 this.ensureDefault("button_placeholder_id", null); 157 this.ensureDefault("button_placeholder_id", ""); 158 this.ensureDefault("button_placeholder", null); 134 159 this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); 135 160 this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); 136 161 … … 160 185 this.customSettings = this.settings.custom_settings; 161 186 162 187 // Update the flash url if needed 163 if ( this.settings.prevent_swf_caching) {164 this.settings.flash_url = this.settings.flash_url + "?swfuploadrnd=" + Math.floor(Math.random() * 999999999);188 if (!!this.settings.prevent_swf_caching) { 189 this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); 165 190 } 166 191 192 if (!this.settings.preserve_relative_urls) { 193 //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it 194 this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); 195 this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); 196 } 197 167 198 delete this.ensureDefault; 168 199 }; 169 200 201 // Private: loadFlash replaces the button_placeholder element with the flash movie. 170 202 SWFUpload.prototype.loadFlash = function () { 171 if (this.settings.button_placeholder_id !== "") {172 this.replaceWithFlash();173 } else {174 this.appendFlash();175 }176 };177 178 // Private: appendFlash gets the HTML tag for the Flash179 // It then appends the flash to the body180 SWFUpload.prototype.appendFlash = function () {181 var targetElement, container;182 183 // Make sure an element with the ID we are going to use doesn't already exist184 if (document.getElementById(this.movieName) !== null) {185 throw "ID " + this.movieName + " is already in use. The Flash Object could not be added";186 }187 188 // Get the body tag where we will be adding the flash movie189 targetElement = document.getElementsByTagName("body")[0];190 191 if (targetElement == undefined) {192 throw "Could not find the 'body' element.";193 }194 195 // Append the container and load the flash196 container = document.createElement("div");197 container.style.width = "1px";198 container.style.height = "1px";199 container.style.overflow = "hidden";200 201 targetElement.appendChild(container);202 container.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers)203 };204 205 // Private: replaceWithFlash replaces the button_placeholder element with the flash movie.206 SWFUpload.prototype.replaceWithFlash = function () {207 203 var targetElement, tempParent; 208 204 209 205 // Make sure an element with the ID we are going to use doesn't already exist … … 212 208 } 213 209 214 210 // Get the element where we will be placing the flash movie 215 targetElement = document.getElementById(this.settings.button_placeholder_id) ;211 targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; 216 212 217 213 if (targetElement == undefined) { 218 throw "Could not find the placeholder element .";214 throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; 219 215 } 220 216 221 217 // Append the container and load the flash … … 223 219 tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) 224 220 targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); 225 221 222 // Fix IE Flash/Form bug 223 if (window[this.movieName] == undefined) { 224 window[this.movieName] = this.getMovieElement(); 225 } 226 226 227 }; 227 228 228 229 // Private: getFlashHTML generates the object tag needed to embed the flash in to the document 229 230 SWFUpload.prototype.getFlashHTML = function () { 230 231 // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay 231 232 return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">', 232 '<param name="wmode" value="', this.settings.button_window_mode , '" />',233 '<param name="wmode" value="', this.settings.button_window_mode, '" />', 233 234 '<param name="movie" value="', this.settings.flash_url, '" />', 234 235 '<param name="quality" value="high" />', 235 236 '<param name="menu" value="false" />', … … 251 252 "&useQueryString=", encodeURIComponent(this.settings.use_query_string), 252 253 "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), 253 254 "&httpSuccess=", encodeURIComponent(httpSuccessString), 255 "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), 254 256 "&params=", encodeURIComponent(paramString), 255 257 "&filePostName=", encodeURIComponent(this.settings.file_post_name), 256 258 "&fileTypes=", encodeURIComponent(this.settings.file_types), … … 306 308 // Public: Used to remove a SWFUpload instance from the page. This method strives to remove 307 309 // all references to the SWF, and other objects so memory is properly freed. 308 310 // Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. 311 // Credits: Major improvements provided by steffen 309 312 SWFUpload.prototype.destroy = function () { 310 313 try { 311 314 // Make sure Flash is done before we try to remove it 312 this. stopUpload();315 this.cancelUpload(null, false); 313 316 317 314 318 // Remove the SWFUpload DOM nodes 315 319 var movieElement = null; 316 try { 317 movieElement = this.getMovieElement(); 318 } catch (ex) { 319 } 320 movieElement = this.getMovieElement(); 320 321 321 if (movieElement != undefined && movieElement.parentNode != undefined && typeof movieElement.parentNode.removeChild === "function") { 322 var container = movieElement.parentNode; 323 if (container != undefined) { 324 container.removeChild(movieElement); 325 if (container.parentNode != undefined && typeof container.parentNode.removeChild === "function") { 326 container.parentNode.removeChild(container); 327 } 322 if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE 323 // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) 324 for (var i in movieElement) { 325 try { 326 if (typeof(movieElement[i]) === "function") { 327 movieElement[i] = null; 328 } 329 } catch (ex1) {} 328 330 } 331 332 // Remove the Movie Element from the page 333 try { 334 movieElement.parentNode.removeChild(movieElement); 335 } catch (ex) {} 329 336 } 330 337 331 // Destroy references 338 // Remove IE form fix reference 339 window[this.movieName] = null; 340 341 // Destroy other references 332 342 SWFUpload.instances[this.movieName] = null; 333 343 delete SWFUpload.instances[this.movieName]; 334 344 335 delete this.movieElement;336 delete this.settings;337 delete this.customSettings;338 delete this.eventQueue;339 delete this.movieName;345 this.movieElement = null; 346 this.settings = null; 347 this.customSettings = null; 348 this.eventQueue = null; 349 this.movieName = null; 340 350 341 delete window[this.movieName];342 351 343 352 return true; 344 } catch (ex 1) {353 } catch (ex2) { 345 354 return false; 346 355 } 347 356 }; 348 357 358 349 359 // Public: displayDebugInfo prints out settings and configuration 350 360 // information about this SWFUpload instance. 351 361 // This function (and any references to it) can be deleted when placing … … 362 372 "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", 363 373 "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", 364 374 "\t", "http_success: ", this.settings.http_success.join(", "), "\n", 375 "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", 365 376 "\t", "file_post_name: ", this.settings.file_post_name, "\n", 366 377 "\t", "post_params: ", this.settings.post_params.toString(), "\n", 367 378 "\t", "file_types: ", this.settings.file_types, "\n", … … 374 385 "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", 375 386 376 387 "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", 388 "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", 377 389 "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", 378 390 "\t", "button_width: ", this.settings.button_width.toString(), "\n", 379 391 "\t", "button_height: ", this.settings.button_height.toString(), "\n", … … 430 442 argumentArray = argumentArray || []; 431 443 432 444 var movieElement = this.getMovieElement(); 433 var returnValue ;445 var returnValue, returnString; 434 446 435 if (typeof movieElement[functionName] === "function") { 436 // We have to go through all this if/else stuff because the Flash functions don't have apply() and only accept the exact number of arguments. 437 if (argumentArray.length === 0) { 438 returnValue = movieElement[functionName](); 439 } else if (argumentArray.length === 1) { 440 returnValue = movieElement[functionName](argumentArray[0]); 441 } else if (argumentArray.length === 2) { 442 returnValue = movieElement[functionName](argumentArray[0], argumentArray[1]); 443 } else if (argumentArray.length === 3) { 444 returnValue = movieElement[functionName](argumentArray[0], argumentArray[1], argumentArray[2]); 445 } else { 446 throw "Too many arguments"; 447 } 448 449 // Unescape file post param values 450 if (returnValue != undefined && typeof returnValue.post === "object") { 451 returnValue = this.unescapeFilePostParams(returnValue); 452 } 453 454 return returnValue; 455 } else { 456 throw "Invalid function name: " + functionName; 447 // Flash's method if calling ExternalInterface methods (code adapted from MooTools). 448 try { 449 returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>'); 450 returnValue = eval(returnString); 451 } catch (ex) { 452 throw "Call to " + functionName + " failed"; 457 453 } 454 455 // Unescape file post param values 456 if (returnValue != undefined && typeof returnValue.post === "object") { 457 returnValue = this.unescapeFilePostParams(returnValue); 458 } 459 460 return returnValue; 458 461 }; 459 462 460 461 463 /* ***************************** 462 464 -- Flash control methods -- 463 465 Your UI should use these 464 466 to operate SWFUpload 465 467 ***************************** */ 466 468 469 // WARNING: this function does not work in Flash Player 10 467 470 // Public: selectFile causes a File Selection Dialog window to appear. This 468 // dialog only allows 1 file to be selected. WARNING: this function does not work in Flash Player 10471 // dialog only allows 1 file to be selected. 469 472 SWFUpload.prototype.selectFile = function () { 470 473 this.callFlash("SelectFile"); 471 474 }; 472 475 476 // WARNING: this function does not work in Flash Player 10 473 477 // Public: selectFiles causes a File Selection Dialog window to appear/ This 474 478 // dialog allows the user to select any number of files 475 479 // Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. 476 480 // If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around 477 // for this bug. WARNING: this function does not work in Flash Player 10481 // for this bug. 478 482 SWFUpload.prototype.selectFiles = function () { 479 483 this.callFlash("SelectFiles"); 480 484 }; … … 623 627 this.callFlash("SetHTTPSuccess", [http_status_codes]); 624 628 }; 625 629 630 // Public: setHTTPSuccess changes the http_success setting 631 SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { 632 this.settings.assume_success_timeout = timeout_seconds; 633 this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); 634 }; 626 635 627 636 // Public: setDebugEnabled changes the debug_enabled setting 628 637 SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { … … 763 772 return file; 764 773 }; 765 774 775 // Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) 776 SWFUpload.prototype.testExternalInterface = function () { 777 try { 778 return this.callFlash("TestExternalInterface"); 779 } catch (ex) { 780 return false; 781 } 782 }; 783 784 // Private: This event is called by Flash when it has finished loading. Don't modify this. 785 // Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. 766 786 SWFUpload.prototype.flashReady = function () { 767 787 // Check that the movie element is loaded correctly with its ExternalInterface methods defined 768 788 var movieElement = this.getMovieElement(); 769 if (typeof movieElement.StartUpload !== "function") { 770 throw "ExternalInterface methods failed to initialize."; 789 790 if (!movieElement) { 791 this.debug("Flash called back ready but the flash movie can't be found."); 792 return; 771 793 } 772 794 773 // Fix IE Flash/Form bug 774 if (window[this.movieName] == undefined) { 775 window[this.movieName] = movieElement; 776 } 795 this.cleanUp(movieElement); 777 796 778 797 this.queueEvent("swfupload_loaded_handler"); 779 798 }; 780 799 800 // Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. 801 // This function is called by Flash each time the ExternalInterface functions are created. 802 SWFUpload.prototype.cleanUp = function (movieElement) { 803 // Pro-actively unhook all the Flash functions 804 try { 805 if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE 806 this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); 807 for (var key in movieElement) { 808 try { 809 if (typeof(movieElement[key]) === "function") { 810 movieElement[key] = null; 811 } 812 } catch (ex) { 813 } 814 } 815 } 816 } catch (ex1) { 817 818 } 781 819 820 // Fix Flashes own cleanup code so if the SWFMovie was removed from the page 821 // it doesn't display errors. 822 window["__flash__removeCallback"] = function (instance, name) { 823 try { 824 if (instance) { 825 instance[name] = null; 826 } 827 } catch (flashEx) { 828 829 } 830 }; 831 832 }; 833 834 782 835 /* This is a chance to do something before the browse window opens */ 783 836 SWFUpload.prototype.fileDialogStart = function () { 784 837 this.queueEvent("file_dialog_start_handler"); … … 800 853 801 854 /* Called after the file dialog has closed and the selected files have been queued. 802 855 You could call startUpload here if you want the queued files to begin uploading immediately. */ 803 SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued ) {804 this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued ]);856 SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { 857 this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); 805 858 }; 806 859 807 860 SWFUpload.prototype.uploadStart = function (file) { … … 841 894 this.queueEvent("upload_error_handler", [file, errorCode, message]); 842 895 }; 843 896 844 SWFUpload.prototype.uploadSuccess = function (file, serverData ) {897 SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { 845 898 file = this.unescapeFilePostParams(file); 846 this.queueEvent("upload_success_handler", [file, serverData ]);899 this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); 847 900 }; 848 901 849 902 SWFUpload.prototype.uploadComplete = function (file) { -
wp-includes/js/swfupload/plugins/swfupload.swfobject.js
38 38 */ 39 39 40 40 41 /* SWFObject v2.0 rc4<http://code.google.com/p/swfobject/>42 Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis41 /* SWFObject v2.1 <http://code.google.com/p/swfobject/> 42 Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis 43 43 This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 44 44 */ 45 var swfobject=function(){var X="undefined",P="object",a="visibility:visible",e="visibility:hidden",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",V="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,S=false,C=false;var Y=function(){var l=typeof g.getElementById!=X&&typeof g.getElementsByTagName!=X&&typeof g.createElement!=X&&typeof g.appendChild!=X&&typeof g.replaceChild!=X&&typeof g.removeChild!=X&&typeof g.cloneNode!=X,t=[0,0,0],n=null;if(typeof N.plugins!=X&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=X){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v);/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var d=function(){if(!Y.w3cdom){return }J(I);if(Y.ie&&Y.win){try{g.write("<script id=__ie_ondomload defer=true src=//:><\/script>");var i=b("__ie_ondomload");if(i){i.onreadystatechange=function(){if(this.readyState=="complete"){this.parentNode.removeChild(this);U()}}}}catch(j){}}if(Y.webkit&&typeof g.readyState!=X){Q=setInterval(function(){if(/loaded|complete/.test(g.readyState)){U()}},10)}if(typeof g.addEventListener!=X){g.addEventListener("DOMContentLoaded",U,null)}M(U)}();function U(){if(S){return }if(Y.ie&&Y.win){var m=W("span");try{var l=g.getElementsByTagName("body")[0].appendChild(m);l.parentNode.removeChild(l)}catch(n){return }}S=true;if(Q){clearInterval(Q);Q=null}var j=f.length;for(var k=0;k<j;k++){f[k]()}}function J(i){if(S){i()}else{f[f.length]=i}}function M(j){if(typeof G.addEventListener!=X){G.addEventListener("load",j,false)}else{if(typeof g.addEventListener!=X){g.addEventListener("load",j,false)}else{if(typeof G.attachEvent!=X){G.attachEvent("onload",j)}else{if(typeof G.onload=="function"){var i=G.onload;G.onload=function(){i();j()}}else{G.onload=j}}}}}function I(){var l=H.length;for(var j=0;j<l;j++){var m=H[j].id;if(Y.pv[0]>0){var k=b(m);if(k){H[j].width=k.getAttribute("width")?k.getAttribute("width"):"0";H[j].height=k.getAttribute("height")?k.getAttribute("height"):"0";if(O(H[j].swfVersion)){if(Y.webkit&&Y.webkit<312){T(k)}}else{if(H[j].expressInstall&&!C&&O("6.0.65")&&(Y.win||Y.mac)){D(H[j])}else{c(k)}}}}A("#"+m,a)}}function T(m){var k=m.getElementsByTagName(P)[0];if(k){var p=W("embed"),r=k.attributes;if(r){var o=r.length;for(var n=0;n<o;n++){if(r[n].nodeName.toLowerCase()=="data"){p.setAttribute("src",r[n].nodeValue)}else{p.setAttribute(r[n].nodeName,r[n].nodeValue)}}}var q=k.childNodes;if(q){var s=q.length;for(var l=0;l<s;l++){if(q[l].nodeType==1&&q[l].nodeName.toLowerCase()=="param"){p.setAttribute(q[l].getAttribute("name"),q[l].getAttribute("value"))}}}m.parentNode.replaceChild(p,m)}}function F(i){if(Y.ie&&Y.win&&O("8.0.0")){G.attachEvent("onunload",function(){var k=b(i);for(var j in k){if(typeof k[j]=="function"){k[j]=function(){}}}k.parentNode.removeChild(k)})}}function D(j){C=true;var o=b(j.id);if(o){if(j.altContentId){var l=b(j.altContentId);if(l){L=l}}else{L=Z(o)}if(!(/%$/.test(j.width))&&parseInt(j.width,10)<310){j.width="310"}if(!(/%$/.test(j.height))&&parseInt(j.height,10)<137){j.height="137"}g.title=g.title.slice(0,47)+" - Flash Player Installation";var n=Y.ie&&Y.win?"ActiveX":"PlugIn",k=g.title,m="MMredirectURL="+G.location+"&MMplayerType="+n+"&MMdoctitle="+k,p=j.id;if(Y.ie&&Y.win&&o.readyState!=4){var i=W("div");p+="SWFObjectNew";i.setAttribute("id",p);o.parentNode.insertBefore(i,o);o.style.display="none";G.attachEvent("onload",function(){o.parentNode.removeChild(o)})}R({data:j.expressInstall,id:K,width:j.width,height:j.height},{flashvars:m},p)}}function c(j){if(Y.ie&&Y.win&&j.readyState!=4){var i=W("div");j.parentNode.insertBefore(i,j);i.parentNode.replaceChild(Z(j),i);j.style.display="none";G.attachEvent("onload",function(){j.parentNode.removeChild(j)})}else{j.parentNode.replaceChild(Z(j),j)}}function Z(n){var m=W("div");if(Y.win&&Y.ie){m.innerHTML=n.innerHTML}else{var k=n.getElementsByTagName(P)[0];if(k){var o=k.childNodes;if(o){var j=o.length;for(var l=0;l<j;l++){if(!(o[l].nodeType==1&&o[l].nodeName.toLowerCase()=="param")&&!(o[l].nodeType==8)){m.appendChild(o[l].cloneNode(true))}}}}}return m}function R(AE,AC,q){var p,t=b(q);if(typeof AE.id==X){AE.id=q}if(Y.ie&&Y.win){var AD="";for(var z in AE){if(AE[z]!=Object.prototype[z]){if(z=="data"){AC.movie=AE[z]}else{if(z.toLowerCase()=="styleclass"){AD+=' class="'+AE[z]+'"'}else{if(z!="classid"){AD+=" "+z+'="'+AE[z]+'"'}}}}}var AB="";for(var y in AC){if(AC[y]!=Object.prototype[y]){AB+='<param name="'+y+'" value="'+AC[y]+'" />'}}t.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AD+">"+AB+"</object>";F(AE.id);p=b(AE.id)}else{if(Y.webkit&&Y.webkit<312){var AA=W("embed");AA.setAttribute("type",V);for(var x in AE){if(AE[x]!=Object.prototype[x]){if(x=="data"){AA.setAttribute("src",AE[x])}else{if(x.toLowerCase()=="styleclass"){AA.setAttribute("class",AE[x])}else{if(x!="classid"){AA.setAttribute(x,AE[x])}}}}}for(var w in AC){if(AC[w]!=Object.prototype[w]){if(w!="movie"){AA.setAttribute(w,AC[w])}}}t.parentNode.replaceChild(AA,t);p=AA}else{var s=W(P);s.setAttribute("type",V);for(var v in AE){if(AE[v]!=Object.prototype[v]){if(v.toLowerCase()=="styleclass"){s.setAttribute("class",AE[v])}else{if(v!="classid"){s.setAttribute(v,AE[v])}}}}for(var u in AC){if(AC[u]!=Object.prototype[u]&&u!="movie"){E(s,u,AC[u])}}t.parentNode.replaceChild(s,t);p=s}}return p}function E(k,i,j){var l=W("param");l.setAttribute("name",i);l.setAttribute("value",j);k.appendChild(l)}function b(i){return g.getElementById(i)}function W(i){return g.createElement(i)}function O(k){var j=Y.pv,i=k.split(".");i[0]=parseInt(i[0],10);i[1]=parseInt(i[1],10);i[2]=parseInt(i[2],10);return(j[0]>i[0]||(j[0]==i[0]&&j[1]>i[1])||(j[0]==i[0]&&j[1]==i[1]&&j[2]>=i[2]))?true:false}function A(m,j){if(Y.ie&&Y.mac){return }var l=g.getElementsByTagName("head")[0],k=W("style");k.setAttribute("type","text/css");k.setAttribute("media","screen");if(!(Y.ie&&Y.win)&&typeof g.createTextNode!=X){k.appendChild(g.createTextNode(m+" {"+j+"}"))}l.appendChild(k);if(Y.ie&&Y.win&&typeof g.styleSheets!=X&&g.styleSheets.length>0){var i=g.styleSheets[g.styleSheets.length-1];if(typeof i.addRule==P){i.addRule(m,j)}}}return{registerObject:function(l,i,k){if(!Y.w3cdom||!l||!i){return }var j={};j.id=l;j.swfVersion=i;j.expressInstall=k?k:false;H[H.length]=j;A("#"+l,e)},getObjectById:function(l){var i=null;if(Y.w3cdom&&S){var j=b(l);if(j){var k=j.getElementsByTagName(P)[0];if(!k||(k&&typeof j.SetVariable!=X)){i=j}else{if(typeof k.SetVariable!=X){i=k}}}}return i},embedSWF:function(n,u,r,t,j,m,k,p,s){if(!Y.w3cdom||!n||!u||!r||!t||!j){return }r+="";t+="";if(O(j)){A("#"+u,e);var q=(typeof s==P)?s:{};q.data=n;q.width=r;q.height=t;var o=(typeof p==P)?p:{};if(typeof k==P){for(var l in k){if(k[l]!=Object.prototype[l]){if(typeof o.flashvars!=X){o.flashvars+="&"+l+"="+k[l]}else{o.flashvars=l+"="+k[l]}}}}J(function(){R(q,o,u);A("#"+u,a)})}else{if(m&&!C&&O("6.0.65")&&(Y.win||Y.mac)){A("#"+u,e);J(function(){var i={};i.id=i.altContentId=u;i.width=r;i.height=t;i.expressInstall=m;D(i);A("#"+u,a)})}}},getFlashPlayerVersion:function(){return{major:Y.pv[0],minor:Y.pv[1],release:Y.pv[2]}},hasFlashPlayerVersion:O,createSWF:function(k,j,i){if(Y.w3cdom&&S){return R(k,j,i)}else{return undefined}},createCSS:function(j,i){if(Y.w3cdom){A(j,i)}},addDomLoadEvent:J,addLoadEvent:M,getQueryParamValue:function(m){var l=g.location.search||g.location.hash;if(m==null){return l}if(l){var k=l.substring(1).split("&");for(var j=0;j<k.length;j++){if(k[j].substring(0,k[j].indexOf("="))==m){return k[j].substring((k[j].indexOf("=")+1))}}}return""},expressInstallCallback:function(){if(C&&L){var i=b(K);if(i){i.parentNode.replaceChild(L,i);L=null;C=false}}}}}();45 var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}(); 46 46 47 47 48 48 49 var SWFUpload; 49 50 if (typeof(SWFUpload) === "function") { -
wp-includes/js/swfupload/plugins/swfupload.queue.js
21 21 oldInitSettings.call(this); 22 22 } 23 23 24 this.customSettings.queue_cancelled_flag = false; 25 this.customSettings.queue_upload_count = 0; 24 this.queueSettings = {}; 26 25 27 this.settings.user_upload_complete_handler = this.settings.upload_complete_handler; 26 this.queueSettings.queue_cancelled_flag = false; 27 this.queueSettings.queue_upload_count = 0; 28 29 this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; 30 this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; 28 31 this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; 32 this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; 29 33 30 34 this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; 31 35 }; 32 36 })(SWFUpload.prototype.initSettings); 33 37 34 38 SWFUpload.prototype.startUpload = function (fileID) { 35 this. customSettings.queue_cancelled_flag = false;36 this.callFlash("StartUpload", false,[fileID]);39 this.queueSettings.queue_cancelled_flag = false; 40 this.callFlash("StartUpload", [fileID]); 37 41 }; 38 42 39 43 SWFUpload.prototype.cancelQueue = function () { 40 this. customSettings.queue_cancelled_flag = true;44 this.queueSettings.queue_cancelled_flag = true; 41 45 this.stopUpload(); 42 46 43 47 var stats = this.getStats(); … … 47 51 } 48 52 }; 49 53 54 SWFUpload.queue.uploadStartHandler = function (file) { 55 var returnValue; 56 if (typeof(this.queueSettings.user_upload_start_handler) === "function") { 57 returnValue = this.queueSettings.user_upload_start_handler.call(this, file); 58 } 59 60 // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. 61 returnValue = (returnValue === false) ? false : true; 62 63 this.queueSettings.queue_cancelled_flag = !returnValue; 64 65 return returnValue; 66 }; 67 50 68 SWFUpload.queue.uploadCompleteHandler = function (file) { 51 var user_upload_complete_handler = this. settings.user_upload_complete_handler;69 var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; 52 70 var continueUpload; 53 71 54 72 if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { 55 this. customSettings.queue_upload_count++;73 this.queueSettings.queue_upload_count++; 56 74 } 57 75 58 76 if (typeof(user_upload_complete_handler) === "function") { 59 77 continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; 78 } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { 79 // If the file was stopped and re-queued don't restart the upload 80 continueUpload = false; 60 81 } else { 61 82 continueUpload = true; 62 83 } 63 84 64 85 if (continueUpload) { 65 86 var stats = this.getStats(); 66 if (stats.files_queued > 0 && this. customSettings.queue_cancelled_flag === false) {87 if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { 67 88 this.startUpload(); 68 } else if (this. customSettings.queue_cancelled_flag === false) {69 this.queueEvent("queue_complete_handler", [this. customSettings.queue_upload_count]);70 this. customSettings.queue_upload_count = 0;89 } else if (this.queueSettings.queue_cancelled_flag === false) { 90 this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); 91 this.queueSettings.queue_upload_count = 0; 71 92 } else { 72 this. customSettings.queue_cancelled_flag = false;73 this. customSettings.queue_upload_count = 0;93 this.queueSettings.queue_cancelled_flag = false; 94 this.queueSettings.queue_upload_count = 0; 74 95 } 75 96 } 76 97 }; -
wp-includes/js/swfupload/swfupload-all.js
1 var SWFUpload;if(SWFUpload==undefined){SWFUpload=function(a){this.initSWFUpload(a)}}SWFUpload.prototype.initSWFUpload=function(b){try{this.customSettings={};this.settings=b;this.eventQueue=[];this.movieName="SWFUpload_"+SWFUpload.movieCount++;this.movieElement=null;SWFUpload.instances[this.movieName]=this;this.initSettings();this.loadFlash();this.displayDebugInfo()}catch(a){delete SWFUpload.instances[this.movieName];throw a}};SWFUpload.instances={};SWFUpload.movieCount=0;SWFUpload.version="2.2.0 Beta 2";SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130};SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290};SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5};SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120};SWFUpload.CURSOR={ARROW:-1,HAND:-2};SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"};SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(b,a){this.settings[b]=(this.settings[b]==undefined)?a:this.settings[b]};this.ensureDefault("upload_url","");this.ensureDefault("file_post_name","Filedata");this.ensureDefault("post_params",{});this.ensureDefault("use_query_string",false);this.ensureDefault("requeue_on_error",false);this.ensureDefault("http_success",[]);this.ensureDefault("file_types","*.*");this.ensureDefault("file_types_description","All Files");this.ensureDefault("file_size_limit",0);this.ensureDefault("file_upload_limit",0);this.ensureDefault("file_queue_limit",0);this.ensureDefault("flash_url","swfupload.swf");this.ensureDefault("prevent_swf_caching",true);this.ensureDefault("button_image_url","");this.ensureDefault("button_width",1);this.ensureDefault("button_height",1);this.ensureDefault("button_text","");this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;");this.ensureDefault("button_text_top_padding",0);this.ensureDefault("button_text_left_padding",0);this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES);this.ensureDefault("button_disabled",false);this.ensureDefault("button_placeholder_id",null);this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW);this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW);this.ensureDefault("debug",false);this.settings.debug_enabled=this.settings.debug;this.settings.return_upload_start_handler=this.returnUploadStart;this.ensureDefault("swfupload_loaded_handler",null);this.ensureDefault("file_dialog_start_handler",null);this.ensureDefault("file_queued_handler",null);this.ensureDefault("file_queue_error_handler",null);this.ensureDefault("file_dialog_complete_handler",null);this.ensureDefault("upload_start_handler",null);this.ensureDefault("upload_progress_handler",null);this.ensureDefault("upload_error_handler",null);this.ensureDefault("upload_success_handler",null);this.ensureDefault("upload_complete_handler",null);this.ensureDefault("debug_handler",this.debugMessage);this.ensureDefault("custom_settings",{});this.customSettings=this.settings.custom_settings;if(this.settings.prevent_swf_caching){this.settings.flash_url=this.settings.flash_url+"?swfuploadrnd="+Math.floor(Math.random()*999999999)}delete this.ensureDefault};SWFUpload.prototype.loadFlash=function(){if(this.settings.button_placeholder_id!==""){this.replaceWithFlash()}else{this.appendFlash()}};SWFUpload.prototype.appendFlash=function(){var b,a;if(document.getElementById(this.movieName)!==null){throw"ID "+this.movieName+" is already in use. The Flash Object could not be added"}b=document.getElementsByTagName("body")[0];if(b==undefined){throw"Could not find the 'body' element."}a=document.createElement("div");a.style.width="1px";a.style.height="1px";a.style.overflow="hidden";b.appendChild(a);a.innerHTML=this.getFlashHTML()};SWFUpload.prototype.replaceWithFlash=function(){var a,b;if(document.getElementById(this.movieName)!==null){throw"ID "+this.movieName+" is already in use. The Flash Object could not be added"}a=document.getElementById(this.settings.button_placeholder_id);if(a==undefined){throw"Could not find the placeholder element."}b=document.createElement("div");b.innerHTML=this.getFlashHTML();a.parentNode.replaceChild(b.firstChild,a)};SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />',"</object>"].join("")};SWFUpload.prototype.getFlashVars=function(){var b=this.buildParamString();var a=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&uploadURL=",encodeURIComponent(this.settings.upload_url),"&useQueryString=",encodeURIComponent(this.settings.use_query_string),"&requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&httpSuccess=",encodeURIComponent(a),"&params=",encodeURIComponent(b),"&filePostName=",encodeURIComponent(this.settings.file_post_name),"&fileTypes=",encodeURIComponent(this.settings.file_types),"&fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&buttonWidth=",encodeURIComponent(this.settings.button_width),"&buttonHeight=",encodeURIComponent(this.settings.button_height),"&buttonText=",encodeURIComponent(this.settings.button_text),"&buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&buttonAction=",encodeURIComponent(this.settings.button_action),"&buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("")};SWFUpload.prototype.getMovieElement=function(){if(this.movieElement==undefined){this.movieElement=document.getElementById(this.movieName)}if(this.movieElement===null){throw"Could not find Flash element"}return this.movieElement};SWFUpload.prototype.buildParamString=function(){var c=this.settings.post_params;var b=[];if(typeof(c)==="object"){for(var a in c){if(c.hasOwnProperty(a)){b.push(encodeURIComponent(a.toString())+"="+encodeURIComponent(c[a].toString()))}}}return b.join("&")};SWFUpload.prototype.destroy=function(){try{this.stopUpload();var b=null;try{b=this.getMovieElement()}catch(c){}if(b!=undefined&&b.parentNode!=undefined&&typeof b.parentNode.removeChild==="function"){var a=b.parentNode;if(a!=undefined){a.removeChild(b);if(a.parentNode!=undefined&&typeof a.parentNode.removeChild==="function"){a.parentNode.removeChild(a)}}}SWFUpload.instances[this.movieName]=null;delete SWFUpload.instances[this.movieName];delete this.movieElement;delete this.settings;delete this.customSettings;delete this.eventQueue;delete this.movieName;delete window[this.movieName];return true}catch(d){return false}};SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url: ",this.settings.upload_url,"\n","\t","flash_url: ",this.settings.flash_url,"\n","\t","use_query_string: ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n","\t","http_success: ",this.settings.http_success.join(", "),"\n","\t","file_post_name: ",this.settings.file_post_name,"\n","\t","post_params: ",this.settings.post_params.toString(),"\n","\t","file_types: ",this.settings.file_types,"\n","\t","file_types_description: ",this.settings.file_types_description,"\n","\t","file_size_limit: ",this.settings.file_size_limit,"\n","\t","file_upload_limit: ",this.settings.file_upload_limit,"\n","\t","file_queue_limit: ",this.settings.file_queue_limit,"\n","\t","debug: ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n","\t","button_image_url: ",this.settings.button_image_url.toString(),"\n","\t","button_width: ",this.settings.button_width.toString(),"\n","\t","button_height: ",this.settings.button_height.toString(),"\n","\t","button_text: ",this.settings.button_text.toString(),"\n","\t","button_text_style: ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action: ",this.settings.button_action.toString(),"\n","\t","button_disabled: ",this.settings.button_disabled.toString(),"\n","\t","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned: ",(typeof this.settings.swfupload_loaded_handler==="function").toString(),"\n","\t","file_dialog_start_handler assigned: ",(typeof this.settings.file_dialog_start_handler==="function").toString(),"\n","\t","file_queued_handler assigned: ",(typeof this.settings.file_queued_handler==="function").toString(),"\n","\t","file_queue_error_handler assigned: ",(typeof this.settings.file_queue_error_handler==="function").toString(),"\n","\t","upload_start_handler assigned: ",(typeof this.settings.upload_start_handler==="function").toString(),"\n","\t","upload_progress_handler assigned: ",(typeof this.settings.upload_progress_handler==="function").toString(),"\n","\t","upload_error_handler assigned: ",(typeof this.settings.upload_error_handler==="function").toString(),"\n","\t","upload_success_handler assigned: ",(typeof this.settings.upload_success_handler==="function").toString(),"\n","\t","upload_complete_handler assigned: ",(typeof this.settings.upload_complete_handler==="function").toString(),"\n","\t","debug_handler assigned: ",(typeof this.settings.debug_handler==="function").toString(),"\n"].join(""))};SWFUpload.prototype.addSetting=function(b,c,a){if(c==undefined){return(this.settings[b]=a)}else{return(this.settings[b]=c)}};SWFUpload.prototype.getSetting=function(a){if(this.settings[a]!=undefined){return this.settings[a]}return""};SWFUpload.prototype.callFlash=function(c,d){d=d||[];var a=this.getMovieElement();var b;if(typeof a[c]==="function"){if(d.length===0){b=a[c]()}else{if(d.length===1){b=a[c](d[0])}else{if(d.length===2){b=a[c](d[0],d[1])}else{if(d.length===3){b=a[c](d[0],d[1],d[2])}else{throw"Too many arguments"}}}}if(b!=undefined&&typeof b.post==="object"){b=this.unescapeFilePostParams(b)}return b}else{throw"Invalid function name: "+c}};SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")};SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")};SWFUpload.prototype.startUpload=function(a){this.callFlash("StartUpload",[a])};SWFUpload.prototype.cancelUpload=function(a,b){if(b!==false){b=true}this.callFlash("CancelUpload",[a,b])};SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")};SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")};SWFUpload.prototype.setStats=function(a){this.callFlash("SetStats",[a])};SWFUpload.prototype.getFile=function(a){if(typeof(a)==="number"){return this.callFlash("GetFileByIndex",[a])}else{return this.callFlash("GetFile",[a])}};SWFUpload.prototype.addFileParam=function(a,b,c){return this.callFlash("AddFileParam",[a,b,c])};SWFUpload.prototype.removeFileParam=function(a,b){this.callFlash("RemoveFileParam",[a,b])};SWFUpload.prototype.setUploadURL=function(a){this.settings.upload_url=a.toString();this.callFlash("SetUploadURL",[a])};SWFUpload.prototype.setPostParams=function(a){this.settings.post_params=a;this.callFlash("SetPostParams",[a])};SWFUpload.prototype.addPostParam=function(a,b){this.settings.post_params[a]=b;this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.removePostParam=function(a){delete this.settings.post_params[a];this.callFlash("SetPostParams",[this.settings.post_params])};SWFUpload.prototype.setFileTypes=function(a,b){this.settings.file_types=a;this.settings.file_types_description=b;this.callFlash("SetFileTypes",[a,b])};SWFUpload.prototype.setFileSizeLimit=function(a){this.settings.file_size_limit=a;this.callFlash("SetFileSizeLimit",[a])};SWFUpload.prototype.setFileUploadLimit=function(a){this.settings.file_upload_limit=a;this.callFlash("SetFileUploadLimit",[a])};SWFUpload.prototype.setFileQueueLimit=function(a){this.settings.file_queue_limit=a;this.callFlash("SetFileQueueLimit",[a])};SWFUpload.prototype.setFilePostName=function(a){this.settings.file_post_name=a;this.callFlash("SetFilePostName",[a])};SWFUpload.prototype.setUseQueryString=function(a){this.settings.use_query_string=a;this.callFlash("SetUseQueryString",[a])};SWFUpload.prototype.setRequeueOnError=function(a){this.settings.requeue_on_error=a;this.callFlash("SetRequeueOnError",[a])};SWFUpload.prototype.setHTTPSuccess=function(a){if(typeof a==="string"){a=a.replace(" ","").split(",")}this.settings.http_success=a;this.callFlash("SetHTTPSuccess",[a])};SWFUpload.prototype.setDebugEnabled=function(a){this.settings.debug_enabled=a;this.callFlash("SetDebugEnabled",[a])};SWFUpload.prototype.setButtonImageURL=function(a){if(a==undefined){a=""}this.settings.button_image_url=a;this.callFlash("SetButtonImageURL",[a])};SWFUpload.prototype.setButtonDimensions=function(c,a){this.settings.button_width=c;this.settings.button_height=a;var b=this.getMovieElement();if(b!=undefined){b.style.width=c+"px";b.style.height=a+"px"}this.callFlash("SetButtonDimensions",[c,a])};SWFUpload.prototype.setButtonText=function(a){this.settings.button_text=a;this.callFlash("SetButtonText",[a])};SWFUpload.prototype.setButtonTextPadding=function(b,a){this.settings.button_text_top_padding=a;this.settings.button_text_left_padding=b;this.callFlash("SetButtonTextPadding",[b,a])};SWFUpload.prototype.setButtonTextStyle=function(a){this.settings.button_text_style=a;this.callFlash("SetButtonTextStyle",[a])};SWFUpload.prototype.setButtonDisabled=function(a){this.settings.button_disabled=a;this.callFlash("SetButtonDisabled",[a])};SWFUpload.prototype.setButtonAction=function(a){this.settings.button_action=a;this.callFlash("SetButtonAction",[a])};SWFUpload.prototype.setButtonCursor=function(a){this.settings.button_cursor=a;this.callFlash("SetButtonCursor",[a])};SWFUpload.prototype.queueEvent=function(b,c){if(c==undefined){c=[]}else{if(!(c instanceof Array)){c=[c]}}var a=this;if(typeof this.settings[b]==="function"){this.eventQueue.push(function(){this.settings[b].apply(this,c)});setTimeout(function(){a.executeNextEvent()},0)}else{if(this.settings[b]!==null){throw"Event handler "+b+" is unknown or is not a function"}}};SWFUpload.prototype.executeNextEvent=function(){var a=this.eventQueue?this.eventQueue.shift():null;if(typeof(a)==="function"){a.apply(this)}};SWFUpload.prototype.unescapeFilePostParams=function(c){var e=/[$]([0-9a-f]{4})/i;var f={};var d;if(c!=undefined){for(var a in c.post){if(c.post.hasOwnProperty(a)){d=a;var b;while((b=e.exec(d))!==null){d=d.replace(b[0],String.fromCharCode(parseInt("0x"+b[1],16)))}f[d]=c.post[a]}}c.post=f}return c};SWFUpload.prototype.flashReady=function(){var a=this.getMovieElement();if(typeof a.StartUpload!=="function"){throw"ExternalInterface methods failed to initialize."}if(window[this.movieName]==undefined){window[this.movieName]=a}this.queueEvent("swfupload_loaded_handler")};SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")};SWFUpload.prototype.fileQueued=function(a){a=this.unescapeFilePostParams(a);this.queueEvent("file_queued_handler",a)};SWFUpload.prototype.fileQueueError=function(a,c,b){a=this.unescapeFilePostParams(a);this.queueEvent("file_queue_error_handler",[a,c,b])};SWFUpload.prototype.fileDialogComplete=function(a,b){this.queueEvent("file_dialog_complete_handler",[a,b])};SWFUpload.prototype.uploadStart=function(a){a=this.unescapeFilePostParams(a);this.queueEvent("return_upload_start_handler",a)};SWFUpload.prototype.returnUploadStart=function(a){var b;if(typeof this.settings.upload_start_handler==="function"){a=this.unescapeFilePostParams(a);b=this.settings.upload_start_handler.call(this,a)}else{if(this.settings.upload_start_handler!=undefined){throw"upload_start_handler must be a function"}}if(b===undefined){b=true}b=!!b;this.callFlash("ReturnUploadStart",[b])};SWFUpload.prototype.uploadProgress=function(a,c,b){a=this.unescapeFilePostParams(a);this.queueEvent("upload_progress_handler",[a,c,b])};SWFUpload.prototype.uploadError=function(a,c,b){a=this.unescapeFilePostParams(a);this.queueEvent("upload_error_handler",[a,c,b])};SWFUpload.prototype.uploadSuccess=function(b,a){b=this.unescapeFilePostParams(b);this.queueEvent("upload_success_handler",[b,a])};SWFUpload.prototype.uploadComplete=function(a){a=this.unescapeFilePostParams(a);this.queueEvent("upload_complete_handler",a)};SWFUpload.prototype.debug=function(a){this.queueEvent("debug_handler",a)};SWFUpload.prototype.debugMessage=function(c){if(this.settings.debug){var a,d=[];if(typeof c==="object"&&typeof c.name==="string"&&typeof c.message==="string"){for(var b in c){if(c.hasOwnProperty(b)){d.push(b+": "+c[b])}}a=d.join("\n")||"";d=a.split("\n");a="EXCEPTION: "+d.join("\nEXCEPTION: ");SWFUpload.Console.writeLine(a)}else{SWFUpload.Console.writeLine(c)}}};SWFUpload.Console={};SWFUpload.Console.writeLine=function(d){var b,a;try{b=document.getElementById("SWFUpload_Console");if(!b){a=document.createElement("form");document.getElementsByTagName("body")[0].appendChild(a);b=document.createElement("textarea");b.id="SWFUpload_Console";b.style.fontFamily="monospace";b.setAttribute("wrap","off");b.wrap="off";b.style.overflow="auto";b.style.width="700px";b.style.height="350px";b.style.margin="5px";a.appendChild(b)}b.value+=d+"\n";b.scrollTop=b.scrollHeight-b.clientHeight}catch(c){alert("Exception: "+c.name+" Message: "+c.message)}};2 var swfobject=function(){var X="undefined",P="object",a="visibility:visible",e="visibility:hidden",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",V="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,S=false,C=false;var Y=function(){var l=typeof g.getElementById!=X&&typeof g.getElementsByTagName!=X&&typeof g.createElement!=X&&typeof g.appendChild!=X&&typeof g.replaceChild!=X&&typeof g.removeChild!=X&&typeof g.cloneNode!=X,t=[0,0,0],n=null;if(typeof N.plugins!=X&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=X){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v);/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var d=function(){if(!Y.w3cdom){return }J(I);if(Y.ie&&Y.win){try{g.write("<script id=__ie_ondomload defer=true src=//:><\/script>");var i=b("__ie_ondomload");if(i){i.onreadystatechange=function(){if(this.readyState=="complete"){this.parentNode.removeChild(this);U()}}}}catch(j){}}if(Y.webkit&&typeof g.readyState!=X){Q=setInterval(function(){if(/loaded|complete/.test(g.readyState)){U()}},10)}if(typeof g.addEventListener!=X){g.addEventListener("DOMContentLoaded",U,null)}M(U)}();function U(){if(S){return }if(Y.ie&&Y.win){var m=W("span");try{var l=g.getElementsByTagName("body")[0].appendChild(m);l.parentNode.removeChild(l)}catch(n){return }}S=true;if(Q){clearInterval(Q);Q=null}var j=f.length;for(var k=0;k<j;k++){f[k]()}}function J(i){if(S){i()}else{f[f.length]=i}}function M(j){if(typeof G.addEventListener!=X){G.addEventListener("load",j,false)}else{if(typeof g.addEventListener!=X){g.addEventListener("load",j,false)}else{if(typeof G.attachEvent!=X){G.attachEvent("onload",j)}else{if(typeof G.onload=="function"){var i=G.onload;G.onload=function(){i();j()}}else{G.onload=j}}}}}function I(){var l=H.length;for(var j=0;j<l;j++){var m=H[j].id;if(Y.pv[0]>0){var k=b(m);if(k){H[j].width=k.getAttribute("width")?k.getAttribute("width"):"0";H[j].height=k.getAttribute("height")?k.getAttribute("height"):"0";if(O(H[j].swfVersion)){if(Y.webkit&&Y.webkit<312){T(k)}}else{if(H[j].expressInstall&&!C&&O("6.0.65")&&(Y.win||Y.mac)){D(H[j])}else{c(k)}}}}A("#"+m,a)}}function T(m){var k=m.getElementsByTagName(P)[0];if(k){var p=W("embed"),r=k.attributes;if(r){var o=r.length;for(var n=0;n<o;n++){if(r[n].nodeName.toLowerCase()=="data"){p.setAttribute("src",r[n].nodeValue)}else{p.setAttribute(r[n].nodeName,r[n].nodeValue)}}}var q=k.childNodes;if(q){var s=q.length;for(var l=0;l<s;l++){if(q[l].nodeType==1&&q[l].nodeName.toLowerCase()=="param"){p.setAttribute(q[l].getAttribute("name"),q[l].getAttribute("value"))}}}m.parentNode.replaceChild(p,m)}}function F(i){if(Y.ie&&Y.win&&O("8.0.0")){G.attachEvent("onunload",function(){var k=b(i);for(var j in k){if(typeof k[j]=="function"){k[j]=function(){}}}k.parentNode.removeChild(k)})}}function D(j){C=true;var o=b(j.id);if(o){if(j.altContentId){var l=b(j.altContentId);if(l){L=l}}else{L=Z(o)}if(!(/%$/.test(j.width))&&parseInt(j.width,10)<310){j.width="310"}if(!(/%$/.test(j.height))&&parseInt(j.height,10)<137){j.height="137"}g.title=g.title.slice(0,47)+" - Flash Player Installation";var n=Y.ie&&Y.win?"ActiveX":"PlugIn",k=g.title,m="MMredirectURL="+G.location+"&MMplayerType="+n+"&MMdoctitle="+k,p=j.id;if(Y.ie&&Y.win&&o.readyState!=4){var i=W("div");p+="SWFObjectNew";i.setAttribute("id",p);o.parentNode.insertBefore(i,o);o.style.display="none";G.attachEvent("onload",function(){o.parentNode.removeChild(o)})}R({data:j.expressInstall,id:K,width:j.width,height:j.height},{flashvars:m},p)}}function c(j){if(Y.ie&&Y.win&&j.readyState!=4){var i=W("div");j.parentNode.insertBefore(i,j);i.parentNode.replaceChild(Z(j),i);j.style.display="none";G.attachEvent("onload",function(){j.parentNode.removeChild(j)})}else{j.parentNode.replaceChild(Z(j),j)}}function Z(n){var m=W("div");if(Y.win&&Y.ie){m.innerHTML=n.innerHTML}else{var k=n.getElementsByTagName(P)[0];if(k){var o=k.childNodes;if(o){var j=o.length;for(var l=0;l<j;l++){if(!(o[l].nodeType==1&&o[l].nodeName.toLowerCase()=="param")&&!(o[l].nodeType==8)){m.appendChild(o[l].cloneNode(true))}}}}}return m}function R(AE,AC,q){var p,t=b(q);if(typeof AE.id==X){AE.id=q}if(Y.ie&&Y.win){var AD="";for(var z in AE){if(AE[z]!=Object.prototype[z]){if(z=="data"){AC.movie=AE[z]}else{if(z.toLowerCase()=="styleclass"){AD+=' class="'+AE[z]+'"'}else{if(z!="classid"){AD+=" "+z+'="'+AE[z]+'"'}}}}}var AB="";for(var y in AC){if(AC[y]!=Object.prototype[y]){AB+='<param name="'+y+'" value="'+AC[y]+'" />'}}t.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AD+">"+AB+"</object>";F(AE.id);p=b(AE.id)}else{if(Y.webkit&&Y.webkit<312){var AA=W("embed");AA.setAttribute("type",V);for(var x in AE){if(AE[x]!=Object.prototype[x]){if(x=="data"){AA.setAttribute("src",AE[x])}else{if(x.toLowerCase()=="styleclass"){AA.setAttribute("class",AE[x])}else{if(x!="classid"){AA.setAttribute(x,AE[x])}}}}}for(var w in AC){if(AC[w]!=Object.prototype[w]){if(w!="movie"){AA.setAttribute(w,AC[w])}}}t.parentNode.replaceChild(AA,t);p=AA}else{var s=W(P);s.setAttribute("type",V);for(var v in AE){if(AE[v]!=Object.prototype[v]){if(v.toLowerCase()=="styleclass"){s.setAttribute("class",AE[v])}else{if(v!="classid"){s.setAttribute(v,AE[v])}}}}for(var u in AC){if(AC[u]!=Object.prototype[u]&&u!="movie"){E(s,u,AC[u])}}t.parentNode.replaceChild(s,t);p=s}}return p}function E(k,i,j){var l=W("param");l.setAttribute("name",i);l.setAttribute("value",j);k.appendChild(l)}function b(i){return g.getElementById(i)}function W(i){return g.createElement(i)}function O(k){var j=Y.pv,i=k.split(".");i[0]=parseInt(i[0],10);i[1]=parseInt(i[1],10);i[2]=parseInt(i[2],10);return(j[0]>i[0]||(j[0]==i[0]&&j[1]>i[1])||(j[0]==i[0]&&j[1]==i[1]&&j[2]>=i[2]))?true:false}function A(m,j){if(Y.ie&&Y.mac){return }var l=g.getElementsByTagName("head")[0],k=W("style");k.setAttribute("type","text/css");k.setAttribute("media","screen");if(!(Y.ie&&Y.win)&&typeof g.createTextNode!=X){k.appendChild(g.createTextNode(m+" {"+j+"}"))}l.appendChild(k);if(Y.ie&&Y.win&&typeof g.styleSheets!=X&&g.styleSheets.length>0){var i=g.styleSheets[g.styleSheets.length-1];if(typeof i.addRule==P){i.addRule(m,j)}}}return{registerObject:function(l,i,k){if(!Y.w3cdom||!l||!i){return }var j={};j.id=l;j.swfVersion=i;j.expressInstall=k?k:false;H[H.length]=j;A("#"+l,e)},getObjectById:function(l){var i=null;if(Y.w3cdom&&S){var j=b(l);if(j){var k=j.getElementsByTagName(P)[0];if(!k||(k&&typeof j.SetVariable!=X)){i=j}else{if(typeof k.SetVariable!=X){i=k}}}}return i},embedSWF:function(n,u,r,t,j,m,k,p,s){if(!Y.w3cdom||!n||!u||!r||!t||!j){return }r+="";t+="";if(O(j)){A("#"+u,e);var q=(typeof s==P)?s:{};q.data=n;q.width=r;q.height=t;var o=(typeof p==P)?p:{};if(typeof k==P){for(var l in k){if(k[l]!=Object.prototype[l]){if(typeof o.flashvars!=X){o.flashvars+="&"+l+"="+k[l]}else{o.flashvars=l+"="+k[l]}}}}J(function(){R(q,o,u);A("#"+u,a)})}else{if(m&&!C&&O("6.0.65")&&(Y.win||Y.mac)){A("#"+u,e);J(function(){var i={};i.id=i.altContentId=u;i.width=r;i.height=t;i.expressInstall=m;D(i);A("#"+u,a)})}}},getFlashPlayerVersion:function(){return{major:Y.pv[0],minor:Y.pv[1],release:Y.pv[2]}},hasFlashPlayerVersion:O,createSWF:function(k,j,i){if(Y.w3cdom&&S){return R(k,j,i)}else{return undefined}},createCSS:function(j,i){if(Y.w3cdom){A(j,i)}},addDomLoadEvent:J,addLoadEvent:M,getQueryParamValue:function(m){var l=g.location.search||g.location.hash;if(m==null){return l}if(l){var k=l.substring(1).split("&");for(var j=0;j<k.length;j++){if(k[j].substring(0,k[j].indexOf("="))==m){return k[j].substring((k[j].indexOf("=")+1))}}}return""},expressInstallCallback:function(){if(C&&L){var i=b(K);if(i){i.parentNode.replaceChild(L,i);L=null;C=false}}}}}();3 if(typeof(SWFUpload)==="function"){SWFUpload.onload=function(){};swfobject.addDomLoadEvent(function(){if(typeof(SWFUpload.onload)==="function"){SWFUpload.onload.call(window)}});SWFUpload.prototype.initSettings=(function(a){return function(){if(typeof(a)==="function"){a.call(this)}this.ensureDefault=function(c,b){this.settings[c]=(this.settings[c]==undefined)?b:this.settings[c]};this.ensureDefault("minimum_flash_version","9.0.28");this.ensureDefault("swfupload_pre_load_handler",null);this.ensureDefault("swfupload_load_failed_handler",null);delete this.ensureDefault}})(SWFUpload.prototype.initSettings);SWFUpload.prototype.loadFlash=function(a){return function(){var b=swfobject.hasFlashPlayerVersion(this.settings.minimum_flash_version);if(b){this.queueEvent("swfupload_pre_load_handler");if(typeof(a)==="function"){a.call(this)}}else{this.queueEvent("swfupload_load_failed_handler")}}}(SWFUpload.prototype.loadFlash);SWFUpload.prototype.displayDebugInfo=function(a){return function(){if(typeof(a)==="function"){a.call(this)}this.debug(["SWFUpload.SWFObject Plugin settings:","\n","\t","minimum_flash_version: ",this.settings.minimum_flash_version,"\n","\t","swfupload_pre_load_handler assigned: ",(typeof(this.settings.swfupload_pre_load_handler)==="function").toString(),"\n","\t","swfupload_load_failed_handler assigned: ",(typeof(this.settings.swfupload_load_failed_handler)==="function").toString(),"\n",].join(""))}}(SWFUpload.prototype.displayDebugInfo)};4 if(typeof(SWFUpload)==="function"){SWFUpload.queue={};SWFUpload.prototype.initSettings=(function(a){return function(){if(typeof(a)==="function"){a.call(this)}this.customSettings.queue_cancelled_flag=false;this.customSettings.queue_upload_count=0;this.settings.user_upload_complete_handler=this.settings.upload_complete_handler;this.settings.upload_complete_handler=SWFUpload.queue.uploadCompleteHandler;this.settings.queue_complete_handler=this.settings.queue_complete_handler||null}})(SWFUpload.prototype.initSettings);SWFUpload.prototype.startUpload=function(a){this.customSettings.queue_cancelled_flag=false;this.callFlash("StartUpload",false,[a])};SWFUpload.prototype.cancelQueue=function(){this.customSettings.queue_cancelled_flag=true;this.stopUpload();var a=this.getStats();while(a.files_queued>0){this.cancelUpload();a=this.getStats()}};SWFUpload.queue.uploadCompleteHandler=function(b){var c=this.settings.user_upload_complete_handler;var d;if(b.filestatus===SWFUpload.FILE_STATUS.COMPLETE){this.customSettings.queue_upload_count++}if(typeof(c)==="function"){d=(c.call(this,b)===false)?false:true}else{d=true}if(d){var a=this.getStats();if(a.files_queued>0&&this.customSettings.queue_cancelled_flag===false){this.startUpload()}else{if(this.customSettings.queue_cancelled_flag===false){this.queueEvent("queue_complete_handler",[this.customSettings.queue_upload_count]);this.customSettings.queue_upload_count=0}else{this.customSettings.queue_cancelled_flag=false;this.customSettings.queue_upload_count=0}}}}};5 No newline at end of file -
wp-includes/js/swfupload/plugins/swfupload.speed.js
1 /* 2 Speed Plug-in 3 4 Features: 5 *Adds several properties to the 'file' object indicated upload speed, time left, upload time, etc. 6 - currentSpeed -- String indicating the upload speed, bytes per second 7 - averageSpeed -- Overall average upload speed, bytes per second 8 - movingAverageSpeed -- Speed over averaged over the last several measurements, bytes per second 9 - timeRemaining -- Estimated remaining upload time in seconds 10 - timeElapsed -- Number of seconds passed for this upload 11 - percentUploaded -- Percentage of the file uploaded (0 to 100) 12 - sizeUploaded -- Formatted size uploaded so far, bytes 13 14 *Adds setting 'moving_average_history_size' for defining the window size used to calculate the moving average speed. 15 16 *Adds several Formatting functions for formatting that values provided on the file object. 17 - SWFUpload.speed.formatBPS(bps) -- outputs string formatted in the best units (Gbps, Mbps, Kbps, bps) 18 - SWFUpload.speed.formatTime(seconds) -- outputs string formatted in the best units (x Hr y M z S) 19 - SWFUpload.speed.formatSize(bytes) -- outputs string formatted in the best units (w GB x MB y KB z B ) 20 - SWFUpload.speed.formatPercent(percent) -- outputs string formatted with a percent sign (x.xx %) 21 - SWFUpload.speed.formatUnits(baseNumber, divisionArray, unitLabelArray, fractionalBoolean) 22 - Formats a number using the division array to determine how to apply the labels in the Label Array 23 - factionalBoolean indicates whether the number should be returned as a single fractional number with a unit (speed) 24 or as several numbers labeled with units (time) 25 */ 26 27 var SWFUpload; 28 if (typeof(SWFUpload) === "function") { 29 SWFUpload.speed = {}; 30 31 SWFUpload.prototype.initSettings = (function (oldInitSettings) { 32 return function () { 33 if (typeof(oldInitSettings) === "function") { 34 oldInitSettings.call(this); 35 } 36 37 this.ensureDefault = function (settingName, defaultValue) { 38 this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; 39 }; 40 41 // List used to keep the speed stats for the files we are tracking 42 this.fileSpeedStats = {}; 43 this.speedSettings = {}; 44 45 this.ensureDefault("moving_average_history_size", "10"); 46 47 this.speedSettings.user_file_queued_handler = this.settings.file_queued_handler; 48 this.speedSettings.user_file_queue_error_handler = this.settings.file_queue_error_handler; 49 this.speedSettings.user_upload_start_handler = this.settings.upload_start_handler; 50 this.speedSettings.user_upload_error_handler = this.settings.upload_error_handler; 51 this.speedSettings.user_upload_progress_handler = this.settings.upload_progress_handler; 52 this.speedSettings.user_upload_success_handler = this.settings.upload_success_handler; 53 this.speedSettings.user_upload_complete_handler = this.settings.upload_complete_handler; 54 55 this.settings.file_queued_handler = SWFUpload.speed.fileQueuedHandler; 56 this.settings.file_queue_error_handler = SWFUpload.speed.fileQueueErrorHandler; 57 this.settings.upload_start_handler = SWFUpload.speed.uploadStartHandler; 58 this.settings.upload_error_handler = SWFUpload.speed.uploadErrorHandler; 59 this.settings.upload_progress_handler = SWFUpload.speed.uploadProgressHandler; 60 this.settings.upload_success_handler = SWFUpload.speed.uploadSuccessHandler; 61 this.settings.upload_complete_handler = SWFUpload.speed.uploadCompleteHandler; 62 63 delete this.ensureDefault; 64 }; 65 })(SWFUpload.prototype.initSettings); 66 67 68 SWFUpload.speed.fileQueuedHandler = function (file) { 69 if (typeof this.speedSettings.user_file_queued_handler === "function") { 70 file = SWFUpload.speed.extendFile(file); 71 72 return this.speedSettings.user_file_queued_handler.call(this, file); 73 } 74 }; 75 76 SWFUpload.speed.fileQueueErrorHandler = function (file, errorCode, message) { 77 if (typeof this.speedSettings.user_file_queue_error_handler === "function") { 78 file = SWFUpload.speed.extendFile(file); 79 80 return this.speedSettings.user_file_queue_error_handler.call(this, file, errorCode, message); 81 } 82 }; 83 84 SWFUpload.speed.uploadStartHandler = function (file) { 85 if (typeof this.speedSettings.user_upload_start_handler === "function") { 86 file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); 87 return this.speedSettings.user_upload_start_handler.call(this, file); 88 } 89 }; 90 91 SWFUpload.speed.uploadErrorHandler = function (file, errorCode, message) { 92 file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); 93 SWFUpload.speed.removeTracking(file, this.fileSpeedStats); 94 95 if (typeof this.speedSettings.user_upload_error_handler === "function") { 96 return this.speedSettings.user_upload_error_handler.call(this, file, errorCode, message); 97 } 98 }; 99 SWFUpload.speed.uploadProgressHandler = function (file, bytesComplete, bytesTotal) { 100 this.updateTracking(file, bytesComplete); 101 file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); 102 103 if (typeof this.speedSettings.user_upload_progress_handler === "function") { 104 return this.speedSettings.user_upload_progress_handler.call(this, file, bytesComplete, bytesTotal); 105 } 106 }; 107 108 SWFUpload.speed.uploadSuccessHandler = function (file, serverData) { 109 if (typeof this.speedSettings.user_upload_success_handler === "function") { 110 file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); 111 return this.speedSettings.user_upload_success_handler.call(this, file, serverData); 112 } 113 }; 114 SWFUpload.speed.uploadCompleteHandler = function (file) { 115 file = SWFUpload.speed.extendFile(file, this.fileSpeedStats); 116 SWFUpload.speed.removeTracking(file, this.fileSpeedStats); 117 118 if (typeof this.speedSettings.user_upload_complete_handler === "function") { 119 return this.speedSettings.user_upload_complete_handler.call(this, file); 120 } 121 }; 122 123 // Private: extends the file object with the speed plugin values 124 SWFUpload.speed.extendFile = function (file, trackingList) { 125 var tracking; 126 127 if (trackingList) { 128 tracking = trackingList[file.id]; 129 } 130 131 if (tracking) { 132 file.currentSpeed = tracking.currentSpeed; 133 file.averageSpeed = tracking.averageSpeed; 134 file.movingAverageSpeed = tracking.movingAverageSpeed; 135 file.timeRemaining = tracking.timeRemaining; 136 file.timeElapsed = tracking.timeElapsed; 137 file.percentUploaded = tracking.percentUploaded; 138 file.sizeUploaded = tracking.bytesUploaded; 139 140 } else { 141 file.currentSpeed = 0; 142 file.averageSpeed = 0; 143 file.movingAverageSpeed = 0; 144 file.timeRemaining = 0; 145 file.timeElapsed = 0; 146 file.percentUploaded = 0; 147 file.sizeUploaded = 0; 148 } 149 150 return file; 151 }; 152 153 // Private: Updates the speed tracking object, or creates it if necessary 154 SWFUpload.prototype.updateTracking = function (file, bytesUploaded) { 155 var tracking = this.fileSpeedStats[file.id]; 156 if (!tracking) { 157 this.fileSpeedStats[file.id] = tracking = {}; 158 } 159 160 // Sanity check inputs 161 bytesUploaded = bytesUploaded || tracking.bytesUploaded || 0; 162 if (bytesUploaded < 0) { 163 bytesUploaded = 0; 164 } 165 if (bytesUploaded > file.size) { 166 bytesUploaded = file.size; 167 } 168 169 var tickTime = (new Date()).getTime(); 170 if (!tracking.startTime) { 171 tracking.startTime = (new Date()).getTime(); 172 tracking.lastTime = tracking.startTime; 173 tracking.currentSpeed = 0; 174 tracking.averageSpeed = 0; 175 tracking.movingAverageSpeed = 0; 176 tracking.movingAverageHistory = []; 177 tracking.timeRemaining = 0; 178 tracking.timeElapsed = 0; 179 tracking.percentUploaded = bytesUploaded / file.size; 180 tracking.bytesUploaded = bytesUploaded; 181 } else if (tracking.startTime > tickTime) { 182 this.debug("When backwards in time"); 183 } else { 184 // Get time and deltas 185 var now = (new Date()).getTime(); 186 var lastTime = tracking.lastTime; 187 var deltaTime = now - lastTime; 188 var deltaBytes = bytesUploaded - tracking.bytesUploaded; 189 190 if (deltaBytes === 0 || deltaTime === 0) { 191 return tracking; 192 } 193 194 // Update tracking object 195 tracking.lastTime = now; 196 tracking.bytesUploaded = bytesUploaded; 197 198 // Calculate speeds 199 tracking.currentSpeed = (deltaBytes * 8 ) / (deltaTime / 1000); 200 tracking.averageSpeed = (tracking.bytesUploaded * 8) / ((now - tracking.startTime) / 1000); 201 202 // Calculate moving average 203 tracking.movingAverageHistory.push(tracking.currentSpeed); 204 if (tracking.movingAverageHistory.length > this.settings.moving_average_history_size) { 205 tracking.movingAverageHistory.shift(); 206 } 207 208 tracking.movingAverageSpeed = SWFUpload.speed.calculateMovingAverage(tracking.movingAverageHistory); 209 210 // Update times 211 tracking.timeRemaining = (file.size - tracking.bytesUploaded) * 8 / tracking.movingAverageSpeed; 212 tracking.timeElapsed = (now - tracking.startTime) / 1000; 213 214 // Update percent 215 tracking.percentUploaded = (tracking.bytesUploaded / file.size * 100); 216 } 217 218 return tracking; 219 }; 220 SWFUpload.speed.removeTracking = function (file, trackingList) { 221 try { 222 trackingList[file.id] = null; 223 delete trackingList[file.id]; 224 } catch (ex) { 225 } 226 }; 227 228 SWFUpload.speed.formatUnits = function (baseNumber, unitDivisors, unitLabels, singleFractional) { 229 var i, unit, unitDivisor, unitLabel; 230 231 if (baseNumber === 0) { 232 return "0 " + unitLabels[unitLabels.length - 1]; 233 } 234 235 if (singleFractional) { 236 unit = baseNumber; 237 unitLabel = unitLabels.length >= unitDivisors.length ? unitLabels[unitDivisors.length - 1] : ""; 238 for (i = 0; i < unitDivisors.length; i++) { 239 if (baseNumber >= unitDivisors[i]) { 240 unit = (baseNumber / unitDivisors[i]).toFixed(2); 241 unitLabel = unitLabels.length >= i ? " " + unitLabels[i] : ""; 242 break; 243 } 244 } 245 246 return unit + unitLabel; 247 } else { 248 var formattedStrings = []; 249 var remainder = baseNumber; 250 251 for (i = 0; i < unitDivisors.length; i++) { 252 unitDivisor = unitDivisors[i]; 253 unitLabel = unitLabels.length > i ? " " + unitLabels[i] : ""; 254 255 unit = remainder / unitDivisor; 256 if (i < unitDivisors.length -1) { 257 unit = Math.floor(unit); 258 } else { 259 unit = unit.toFixed(2); 260 } 261 if (unit > 0) { 262 remainder = remainder % unitDivisor; 263 264 formattedStrings.push(unit + unitLabel); 265 } 266 } 267 268 return formattedStrings.join(" "); 269 } 270 }; 271 272 SWFUpload.speed.formatBPS = function (baseNumber) { 273 var bpsUnits = [1073741824, 1048576, 1024, 1], bpsUnitLabels = ["Gbps", "Mbps", "Kbps", "bps"]; 274 return SWFUpload.speed.formatUnits(baseNumber, bpsUnits, bpsUnitLabels, true); 275 276 }; 277 SWFUpload.speed.formatTime = function (baseNumber) { 278 var timeUnits = [86400, 3600, 60, 1], timeUnitLabels = ["d", "h", "m", "s"]; 279 return SWFUpload.speed.formatUnits(baseNumber, timeUnits, timeUnitLabels, false); 280 281 }; 282 SWFUpload.speed.formatBytes = function (baseNumber) { 283 var sizeUnits = [1073741824, 1048576, 1024, 1], sizeUnitLabels = ["GB", "MB", "KB", "bytes"]; 284 return SWFUpload.speed.formatUnits(baseNumber, sizeUnits, sizeUnitLabels, true); 285 286 }; 287 SWFUpload.speed.formatPercent = function (baseNumber) { 288 return baseNumber.toFixed(2) + " %"; 289 }; 290 291 SWFUpload.speed.calculateMovingAverage = function (history) { 292 var vals = [], size, sum = 0.0, mean = 0.0, varianceTemp = 0.0, variance = 0.0, standardDev = 0.0; 293 var i; 294 var mSum = 0, mCount = 0; 295 296 size = history.length; 297 298 // Check for sufficient data 299 if (size >= 8) { 300 // Clone the array and Calculate sum of the values 301 for (i = 0; i < size; i++) { 302 vals[i] = history[i]; 303 sum += vals[i]; 304 } 305 306 mean = sum / size; 307 308 // Calculate variance for the set 309 for (i = 0; i < size; i++) { 310 varianceTemp += Math.pow((vals[i] - mean), 2); 311 } 312 313 variance = varianceTemp / size; 314 standardDev = Math.sqrt(variance); 315 316 //Standardize the Data 317 for (i = 0; i < size; i++) { 318 vals[i] = (vals[i] - mean) / standardDev; 319 } 320 321 // Calculate the average excluding outliers 322 var deviationRange = 2.0; 323 for (i = 0; i < size; i++) { 324 325 if (vals[i] <= deviationRange && vals[i] >= -deviationRange) { 326 mCount++; 327 mSum += history[i]; 328 } 329 } 330 331 } else { 332 // Calculate the average (not enough data points to remove outliers) 333 mCount = size; 334 for (i = 0; i < size; i++) { 335 mSum += history[i]; 336 } 337 } 338 339 return mSum / mCount; 340 }; 341 342 } 343 No newline at end of file