| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | 
							- /*
 
- 	Queue Plug-in
 
- 	
 
- 	Features:
 
- 		*Adds a cancelQueue() method for cancelling the entire queue.
 
- 		*All queued files are uploaded when startUpload() is called.
 
- 		*If false is returned from uploadComplete then the queue upload is stopped.
 
- 		 If false is not returned (strict comparison) then the queue upload is continued.
 
- 		*Adds a QueueComplete event that is fired when all the queued files have finished uploading.
 
- 		 Set the event handler with the queue_complete_handler setting.
 
- 		
 
- 	*/
 
- var SWFUpload;
 
- if (typeof(SWFUpload) === "function") {
 
- 	SWFUpload.queue = {};
 
- 	
 
- 	SWFUpload.prototype.initSettings = (function (oldInitSettings) {
 
- 		return function (userSettings) {
 
- 			if (typeof(oldInitSettings) === "function") {
 
- 				oldInitSettings.call(this, userSettings);
 
- 			}
 
- 			
 
- 			this.queueSettings = {};
 
- 			
 
- 			this.queueSettings.queue_cancelled_flag = false;
 
- 			this.queueSettings.queue_upload_count = 0;
 
- 			
 
- 			this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler;
 
- 			this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler;
 
- 			this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler;
 
- 			this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler;
 
- 			
 
- 			this.settings.queue_complete_handler = userSettings.queue_complete_handler || null;
 
- 		};
 
- 	})(SWFUpload.prototype.initSettings);
 
- 	SWFUpload.prototype.startUpload = function (fileID) {
 
- 		this.queueSettings.queue_cancelled_flag = false;
 
- 		this.callFlash("StartUpload", [fileID]);
 
- 	};
 
- 	SWFUpload.prototype.cancelQueue = function () {
 
- 		this.queueSettings.queue_cancelled_flag = true;
 
- 		this.stopUpload();
 
- 		
 
- 		var stats = this.getStats();
 
- 		while (stats.files_queued > 0) {
 
- 			this.cancelUpload();
 
- 			stats = this.getStats();
 
- 		}
 
- 	};
 
- 	
 
- 	SWFUpload.queue.uploadStartHandler = function (file) {
 
- 		var returnValue;
 
- 		if (typeof(this.queueSettings.user_upload_start_handler) === "function") {
 
- 			returnValue = this.queueSettings.user_upload_start_handler.call(this, file);
 
- 		}
 
- 		
 
- 		// To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value.
 
- 		returnValue = (returnValue === false) ? false : true;
 
- 		
 
- 		this.queueSettings.queue_cancelled_flag = !returnValue;
 
- 		return returnValue;
 
- 	};
 
- 	
 
- 	SWFUpload.queue.uploadCompleteHandler = function (file) {
 
- 		var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler;
 
- 		var continueUpload;
 
- 		
 
- 		if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) {
 
- 			this.queueSettings.queue_upload_count++;
 
- 		}
 
- 		if (typeof(user_upload_complete_handler) === "function") {
 
- 			continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true;
 
- 		} else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) {
 
- 			// If the file was stopped and re-queued don't restart the upload
 
- 			continueUpload = false;
 
- 		} else {
 
- 			continueUpload = true;
 
- 		}
 
- 		
 
- 		if (continueUpload) {
 
- 			var stats = this.getStats();
 
- 			if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) {
 
- 				this.startUpload();
 
- 			} else if (this.queueSettings.queue_cancelled_flag === false) {
 
- 				this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]);
 
- 				this.queueSettings.queue_upload_count = 0;
 
- 			} else {
 
- 				this.queueSettings.queue_cancelled_flag = false;
 
- 				this.queueSettings.queue_upload_count = 0;
 
- 			}
 
- 		}
 
- 	};
 
- }
 
 
  |