 * SWFUpload 0.8.3 Revision 5.2 by Jacob Roberts, April 2007, linebyline.blogspot.com
 * -------- -------- -------- -------- -------- -------- -------- --------
 * SWFUpload 0.7: Flash upload dialog - http://profandesign.se/swfupload/
 * SWFUpload is (c) 2006 Lars Huring and Mammon Media and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * -------- -------- -------- -------- -------- -------- -------- --------


 * --------- Revision 5.2 -----------
 * = A little more code cleaning and variable renaming
 * + Changed from an array queue to a FIFO queue. This eliminates the "current_index" and
 *    should reduce some memory usage.
 * + Added out of order file uploading.  Call StartUpload(/file_id/).
 * + Added custom query_string parameters in addition to the cookies
 * + Added the ability to modify the URL, cookies, params and send to flash
 * + Added per file query_string params
 * + Added files queued limit.  Sometimes you may want the user to only queue one file at a time (or something)
 * + Fixed limits so a zero(0) value means unlimited.
 * --------- Revision 5 -------------
 * = More code cleaning.  Ported SWF to FlashDevelop. (Since my Flash Studio trial expired)
 *    The port to FlashDevelop is a big deal.  It significantly changes the code structure
 *    and could introduce bugs.  Also there have been reported issues with the FlashDevelop
 *    version from swfupload.mammon.se: Doesn't start when reloading in IE.  Doesn't start
 *    in Firefox if the SWF file is visible because of a page scroll.
 *    + I fixed the Firefox issue by removing the wmode attribute from the embed object.
 *    + I cannot reproduce the IE issue on my local machine (although I can reproduce it
 *       at swfupload.mammon.se)
 * + Event Handlers are now attached to the SWFUpload javascript object.  The SWF file
 *    now calls the handlers in the context of the SWFUpload object which means the "this"
 *    object inside the handler refers to the proper SWFUpload instance.
 * + Tested and Fixed upload target cookie attachment
 * = Cleaned up / renamed everything for clarity and consistancy
 * + File queuing is now subject to the upload limit.  If the user attempts to queue more files
 *    than allowed an error is returned and the files are not queued.
 * + Fixed misc bugs and text encodings.
 * + Added more debug info for the SWF file.
 * + SWF file now obeys the debug setting.
 * + Added SetUploadTargetURL function that allows you to "dynamically" change the upload target
 * + Added error code for zero byte file uploads which always return an IO error. The files are now rejected
 *    instead of being uploaded.
 * --------- Revision 4 -------------
 * = Cleaned up code.  Added comments. Reorganized. Added more try..catches. Removed old unused methods.
 * - Removed the 'create_ui' setting.  The UI is now completely up to the developer.
 * + Added upload_backend_cookies setting. Can set a string, or array of cookie names. These values will be
 *    passed as part of the upload_backend url
 *
 * = Changed QueueComplete event to only fire if at least one file has been successfully uploaded.
 * + Added "Stop Upload" feature.
 * = Revised the FLA file to clean things up, better handle errors, etc.
 * = Fixed a bug where cancelling the first upload would cause the remaining uploads to fire before calling
 *    "startUpload". This change is in the FLA.
 *
 * + Fixed a bug in the upload.swf that prevented further file processing after an error is returned.
 * + Added uploadLimit variable.  Only complete uploads are counted. Once the limit is reached the flash
 *      movie will not upload any more files. (The ability to select or queue many files is not affected
 *      by the upload limit)
 * + Added cancelQueue and cancelUpload methods.
 * + Added ID property to the FileObj in the upload.swf
 * + Added Upload and Queue settings
 * + Added methods for generating the flash HTML and inserting it into the DOM.
 * - Removed SWFObject
 * + Updated the upload.swf and added the "flashReady" event.  This will only call back
 *        for Flash 8 and above.  With this we don't need a flash version detect script.
 *        The script initializes the Flash then waits for the Callback to init the UI.
 * + Added seperate ui_target, degraded_target, create_ui settings. This allows fine control
 *      over what parts of the GUI the script displays and hides
 *
 * + Changed from a Static Class to an Instance (changed code/class structure)
 * + Added "flash_version" setting.  When set to zero the version check is skipped
 * + Added Debug Console.  The Instance class can't do document.write.
 * = De-obfuscated SWFObject a bit
 * - Removed standalone mode.
 * + Added "ui_target" setting. When non-blank the link is added.
 * + Added "flash_target" setting.  When blank the flash is appended to the <body> tag
 *        = This fixes ASP.Net not allowing the flash to be added to the Form
 * + Added error checking to the callSWF method
 *
 *
 *

 * SWFUpload 0.7: Flash upload dialog - http://profandesign.se/swfupload/
 *
 * VERSION HISTORY
 * 0.5 - First release
 *
 * 0.6 - 2006-11-24
 * - Got rid of flash overlay
 * - SWF size reduced to 840b
 * - CSS-only styling of button
 * - Add upload to links etc.
 *
 * 0.7 - 2006-11-27
 * - Added filesize param and check in SWF
 *
 * 0.7.1 - 2006-12-01
 * - Added link_mode param for standalone links
 * if set to "standalone", createElement("a") won't run.
 * - Added link_text param if css isn't needed.
 * - Renamed cssClass to css_class for consistency
 *
 */
