/*
Uploadify v3.1.1
Copyright (c) 2012 Reactive Apps, Ronnie Garcia
Released under the MIT License <http://www.opensource.org/licenses/mit-license.php>

SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com
mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/,  http://www.vinterwebb.se/
SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilzén and Mammon Media and is released under the MIT License:
http://www.opensource.org/licenses/mit-license.php
SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License:
http://www.opensource.org/licenses/mit-license.php

SWFObject v2.2 <http://code.google.com/p/swfobject/> 
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
;
var swfobject = function () {
	var aq = "undefined",
		aD = "object",
		ab = "Shockwave Flash",
		X = "ShockwaveFlash.ShockwaveFlash",
		aE = "application/x-shockwave-flash",
		ac = "SWFObjectExprInst",
		ax = "onreadystatechange",
		af = window,
		aL = document,
		aB = navigator,
		aa = false,
		Z = [aN],
		aG = [],
		ag = [],
		al = [],
		aJ, ad, ap, at, ak = false,
		aU = false,
		aH, an, aI = true,
		ah = function () {
			var a = typeof aL.getElementById != aq && typeof aL.getElementsByTagName != aq && typeof aL.createElement != aq,
				e = aB.userAgent.toLowerCase(),
				c = aB.platform.toLowerCase(),
				h = c ? /win/.test(c) : /win/.test(e),
				j = c ? /mac/.test(c) : /mac/.test(e),
				g = /webkit/.test(e) ? parseFloat(e.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false,
				d = !+"\v1",
				f = [0, 0, 0],
				k = null;
			if (typeof aB.plugins != aq && typeof aB.plugins[ab] == aD) {
				k = aB.plugins[ab].description;
				if (k && !(typeof aB.mimeTypes != aq && aB.mimeTypes[aE] && !aB.mimeTypes[aE].enabledPlugin)) {
					aa = true;
					d = false;
					k = k.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
					f[0] = parseInt(k.replace(/^(.*)\..*$/, "$1"), 10);
					f[1] = parseInt(k.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
					f[2] = /[a-zA-Z]/.test(k) ? parseInt(k.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
				}
			} else {
				if (typeof af.ActiveXObject != aq) {
					try {
						var i = new ActiveXObject(X);
						if (i) {
							k = i.GetVariable("$version");
							if (k) {
								d = true;
								k = k.split(" ")[1].split(",");
								f = [parseInt(k[0], 10), parseInt(k[1], 10), parseInt(k[2], 10)];
							}
						}
					} catch (b) {}
				}
			}
			return {
				w3: a,
				pv: f,
				wk: g,
				ie: d,
				win: h,
				mac: j
			};
		}(),
		aK = function () {
			if (!ah.w3) {
				return;
			}
			if ((typeof aL.readyState != aq && aL.readyState == "complete") || (typeof aL.readyState == aq && (aL.getElementsByTagName("body")[0] || aL.body))) {
				aP();
			}
			if (!ak) {
				if (typeof aL.addEventListener != aq) {
					aL.addEventListener("DOMContentLoaded", aP, false);
				}
				if (ah.ie && ah.win) {
					aL.attachEvent(ax, function () {
						if (aL.readyState == "complete") {
							aL.detachEvent(ax, arguments.callee);
							aP();
						}
					});
					if (af == top) {
						(function () {
							if (ak) {
								return;
							}
							try {
								aL.documentElement.doScroll("left");
							} catch (a) {
								setTimeout(arguments.callee, 0);
								return;
							}
							aP();
						})();
					}
				}
				if (ah.wk) {
					(function () {
						if (ak) {
							return;
						}
						if (!/loaded|complete/.test(aL.readyState)) {
							setTimeout(arguments.callee, 0);
							return;
						}
						aP();
					})();
				}
				aC(aP);
			}
		}();

	function aP() {
		if (ak) {
			return;
		}
		try {
			var b = aL.getElementsByTagName("body")[0].appendChild(ar("span"));
			b.parentNode.removeChild(b);
		} catch (a) {
			return;
		}
		ak = true;
		var d = Z.length;
		for (var c = 0; c < d; c++) {
			Z[c]();
		}
	}
	function aj(a) {
		if (ak) {
			a();
		} else {
			Z[Z.length] = a;
		}
	}
	function aC(a) {
		if (typeof af.addEventListener != aq) {
			af.addEventListener("load", a, false);
		} else {
			if (typeof aL.addEventListener != aq) {
				aL.addEventListener("load", a, false);
			} else {
				if (typeof af.attachEvent != aq) {
					aM(af, "onload", a);
				} else {
					if (typeof af.onload == "function") {
						var b = af.onload;
						af.onload = function () {
							b();
							a();
						};
					} else {
						af.onload = a;
					}
				}
			}
		}
	}
	function aN() {
		if (aa) {
			Y();
		} else {
			am();
		}
	}
	function Y() {
		var d = aL.getElementsByTagName("body")[0];
		var b = ar(aD);
		b.setAttribute("type", aE);
		var a = d.appendChild(b);
		if (a) {
			var c = 0;
			(function () {
				if (typeof a.GetVariable != aq) {
					var e = a.GetVariable("$version");
					if (e) {
						e = e.split(" ")[1].split(",");
						ah.pv = [parseInt(e[0], 10), parseInt(e[1], 10), parseInt(e[2], 10)];
					}
				} else {
					if (c < 10) {
						c++;
						setTimeout(arguments.callee, 10);
						return;
					}
				}
				d.removeChild(b);
				a = null;
				am();
			})();
		} else {
			am();
		}
	}
	function am() {
		var g = aG.length;
		if (g > 0) {
			for (var h = 0; h < g; h++) {
				var c = aG[h].id;
				var l = aG[h].callbackFn;
				var a = {
					success: false,
					id: c
				};
				if (ah.pv[0] > 0) {
					var i = aS(c);
					if (i) {
						if (ao(aG[h].swfVersion) && !(ah.wk && ah.wk < 312)) {
							ay(c, true);
							if (l) {
								a.success = true;
								a.ref = av(c);
								l(a);
							}
						} else {
							if (aG[h].expressInstall && au()) {
								var e = {};
								e.data = aG[h].expressInstall;
								e.width = i.getAttribute("width") || "0";
								e.height = i.getAttribute("height") || "0";
								if (i.getAttribute("class")) {
									e.styleclass = i.getAttribute("class");
								}
								if (i.getAttribute("align")) {
									e.align = i.getAttribute("align");
								}
								var f = {};
								var d = i.getElementsByTagName("param");
								var k = d.length;
								for (var j = 0; j < k; j++) {
									if (d[j].getAttribute("name").toLowerCase() != "movie") {
										f[d[j].getAttribute("name")] = d[j].getAttribute("value");
									}
								}
								ae(e, f, c, l);
							} else {
								aF(i);
								if (l) {
									l(a);
								}
							}
						}
					}
				} else {
					ay(c, true);
					if (l) {
						var b = av(c);
						if (b && typeof b.SetVariable != aq) {
							a.success = true;
							a.ref = b;
						}
						l(a);
					}
				}
			}
		}
	}
	function av(b) {
		var d = null;
		var c = aS(b);
		if (c && c.nodeName == "OBJECT") {
			if (typeof c.SetVariable != aq) {
				d = c;
			} else {
				var a = c.getElementsByTagName(aD)[0];
				if (a) {
					d = a;
				}
			}
		}
		return d;
	}
	function au() {
		return !aU && ao("6.0.65") && (ah.win || ah.mac) && !(ah.wk && ah.wk < 312);
	}
	function ae(f, d, h, e) {
		aU = true;
		ap = e || null;
		at = {
			success: false,
			id: h
		};
		var a = aS(h);
		if (a) {
			if (a.nodeName == "OBJECT") {
				aJ = aO(a);
				ad = null;
			} else {
				aJ = a;
				ad = h;
			}
			f.id = ac;
			if (typeof f.width == aq || (!/%$/.test(f.width) && parseInt(f.width, 10) < 310)) {
				f.width = "310";
			}
			if (typeof f.height == aq || (!/%$/.test(f.height) && parseInt(f.height, 10) < 137)) {
				f.height = "137";
			}
			aL.title = aL.title.slice(0, 47) + " - Flash Player Installation";
			var b = ah.ie && ah.win ? "ActiveX" : "PlugIn",
				c = "MMredirectURL=" + af.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + b + "&MMdoctitle=" + aL.title;
			if (typeof d.flashvars != aq) {
				d.flashvars += "&" + c;
			} else {
				d.flashvars = c;
			}
			if (ah.ie && ah.win && a.readyState != 4) {
				var g = ar("div");
				h += "SWFObjectNew";
				g.setAttribute("id", h);
				a.parentNode.insertBefore(g, a);
				a.style.display = "none";
				(function () {
					if (a.readyState == 4) {
						a.parentNode.removeChild(a);
					} else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			aA(f, d, h);
		}
	}
	function aF(a) {
		if (ah.ie && ah.win && a.readyState != 4) {
			var b = ar("div");
			a.parentNode.insertBefore(b, a);
			b.parentNode.replaceChild(aO(a), b);
			a.style.display = "none";
			(function () {
				if (a.readyState == 4) {
					a.parentNode.removeChild(a);
				} else {
					setTimeout(arguments.callee, 10);
				}
			})();
		} else {
			a.parentNode.replaceChild(aO(a), a);
		}
	}
	function aO(b) {
		var d = ar("div");
		if (ah.win && ah.ie) {
			d.innerHTML = b.innerHTML;
		} else {
			var e = b.getElementsByTagName(aD)[0];
			if (e) {
				var a = e.childNodes;
				if (a) {
					var f = a.length;
					for (var c = 0; c < f; c++) {
						if (!(a[c].nodeType == 1 && a[c].nodeName == "PARAM") && !(a[c].nodeType == 8)) {
							d.appendChild(a[c].cloneNode(true));
						}
					}
				}
			}
		}
		return d;
	}
	function aA(e, g, c) {
		var d, a = aS(c);
		if (ah.wk && ah.wk < 312) {
			return d;
		}
		if (a) {
			if (typeof e.id == aq) {
				e.id = c;
			}
			if (ah.ie && ah.win) {
				var f = "";
				for (var i in e) {
					if (e[i] != Object.prototype[i]) {
						if (i.toLowerCase() == "data") {
							g.movie = e[i];
						} else {
							if (i.toLowerCase() == "styleclass") {
								f += ' class="' + e[i] + '"';
							} else {
								if (i.toLowerCase() != "classid") {
									f += " " + i + '="' + e[i] + '"';
								}
							}
						}
					}
				}
				var h = "";
				for (var j in g) {
					if (g[j] != Object.prototype[j]) {
						h += '<param name="' + j + '" value="' + g[j] + '" />';
					}
				}
				a.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + f + ">" + h + "</object>";
				ag[ag.length] = e.id;
				d = aS(e.id);
			} else {
				var b = ar(aD);
				b.setAttribute("type", aE);
				for (var k in e) {
					if (e[k] != Object.prototype[k]) {
						if (k.toLowerCase() == "styleclass") {
							b.setAttribute("class", e[k]);
						} else {
							if (k.toLowerCase() != "classid") {
								b.setAttribute(k, e[k]);
							}
						}
					}
				}
				for (var l in g) {
					if (g[l] != Object.prototype[l] && l.toLowerCase() != "movie") {
						aQ(b, l, g[l]);
					}
				}
				a.parentNode.replaceChild(b, a);
				d = b;
			}
		}
		return d;
	}
	function aQ(b, d, c) {
		var a = ar("param");
		a.setAttribute("name", d);
		a.setAttribute("value", c);
		b.appendChild(a);
	}
	function aw(a) {
		var b = aS(a);
		if (b && b.nodeName == "OBJECT") {
			if (ah.ie && ah.win) {
				b.style.display = "none";
				(function () {
					if (b.readyState == 4) {
						aT(a);
					} else {
						setTimeout(arguments.callee, 10);
					}
				})();
			} else {
				b.parentNode.removeChild(b);
			}
		}
	}
	function aT(a) {
		var b = aS(a);
		if (b) {
			for (var c in b) {
				if (typeof b[c] == "function") {
					b[c] = null;
				}
			}
			b.parentNode.removeChild(b);
		}
	}
	function aS(a) {
		var c = null;
		try {
			c = aL.getElementById(a);
		} catch (b) {}
		return c;
	}
	function ar(a) {
		return aL.createElement(a);
	}
	function aM(a, c, b) {
		a.attachEvent(c, b);
		al[al.length] = [a, c, b];
	}
	function ao(a) {
		var b = ah.pv,
			c = a.split(".");
		c[0] = parseInt(c[0], 10);
		c[1] = parseInt(c[1], 10) || 0;
		c[2] = parseInt(c[2], 10) || 0;
		return (b[0] > c[0] || (b[0] == c[0] && b[1] > c[1]) || (b[0] == c[0] && b[1] == c[1] && b[2] >= c[2])) ? true : false;
	}
	function az(b, f, a, c) {
		if (ah.ie && ah.mac) {
			return;
		}
		var e = aL.getElementsByTagName("head")[0];
		if (!e) {
			return;
		}
		var g = (a && typeof a == "string") ? a : "screen";
		if (c) {
			aH = null;
			an = null;
		}
		if (!aH || an != g) {
			var d = ar("style");
			d.setAttribute("type", "text/css");
			d.setAttribute("media", g);
			aH = e.appendChild(d);
			if (ah.ie && ah.win && typeof aL.styleSheets != aq && aL.styleSheets.length > 0) {
				aH = aL.styleSheets[aL.styleSheets.length - 1];
			}
			an = g;
		}
		if (ah.ie && ah.win) {
			if (aH && typeof aH.addRule == aD) {
				aH.addRule(b, f);
			}
		} else {
			if (aH && typeof aL.createTextNode != aq) {
				aH.appendChild(aL.createTextNode(b + " {" + f + "}"));
			}
		}
	}
	function ay(a, c) {
		if (!aI) {
			return;
		}
		var b = c ? "visible" : "hidden";
		if (ak && aS(a)) {
			aS(a).style.visibility = b;
		} else {
			az("#" + a, "visibility:" + b);
		}
	}
	function ai(b) {
		var a = /[\\\"<>\.;]/;
		var c = a.exec(b) != null;
		return c && typeof encodeURIComponent != aq ? encodeURIComponent(b) : b;
	}
	var aR = function () {
		if (ah.ie && ah.win) {
			window.attachEvent("onunload", function () {
				var a = al.length;
				for (var b = 0; b < a; b++) {
					al[b][0].detachEvent(al[b][1], al[b][2]);
				}
				var d = ag.length;
				for (var c = 0; c < d; c++) {
					aw(ag[c]);
				}
				for (var e in ah) {
					ah[e] = null;
				}
				ah = null;
				for (var f in swfobject) {
					swfobject[f] = null;
				}
				swfobject = null;
			});
		}
	}();
	return {
		registerObject: function (a, e, c, b) {
			if (ah.w3 && a && e) {
				var d = {};
				d.id = a;
				d.swfVersion = e;
				d.expressInstall = c;
				d.callbackFn = b;
				aG[aG.length] = d;
				ay(a, false);
			} else {
				if (b) {
					b({
						success: false,
						id: a
					});
				}
			}
		},
		getObjectById: function (a) {
			if (ah.w3) {
				return av(a);
			}
		},
		embedSWF: function (k, e, h, f, c, a, b, i, g, j) {
			var d = {
				success: false,
				id: e
			};
			if (ah.w3 && !(ah.wk && ah.wk < 312) && k && e && h && f && c) {
				ay(e, false);
				aj(function () {
					h += "";
					f += "";
					var q = {};
					if (g && typeof g === aD) {
						for (var o in g) {
							q[o] = g[o];
						}
					}
					q.data = k;
					q.width = h;
					q.height = f;
					var n = {};
					if (i && typeof i === aD) {
						for (var p in i) {
							n[p] = i[p];
						}
					}
					if (b && typeof b === aD) {
						for (var l in b) {
							if (typeof n.flashvars != aq) {
								n.flashvars += "&" + l + "=" + b[l];
							} else {
								n.flashvars = l + "=" + b[l];
							}
						}
					}
					if (ao(c)) {
						var m = aA(q, n, e);
						if (q.id == e) {
							ay(e, true);
						}
						d.success = true;
						d.ref = m;
					} else {
						if (a && au()) {
							q.data = a;
							ae(q, n, e, j);
							return;
						} else {
							ay(e, true);
						}
					}
					if (j) {
						j(d);
					}
				});
			} else {
				if (j) {
					j(d);
				}
			}
		},
		switchOffAutoHideShow: function () {
			aI = false;
		},
		ua: ah,
		getFlashPlayerVersion: function () {
			return {
				major: ah.pv[0],
				minor: ah.pv[1],
				release: ah.pv[2]
			};
		},
		hasFlashPlayerVersion: ao,
		createSWF: function (a, b, c) {
			if (ah.w3) {
				return aA(a, b, c);
			} else {
				return undefined;
			}
		},
		showExpressInstall: function (b, a, d, c) {
			if (ah.w3 && au()) {
				ae(b, a, d, c);
			}
		},
		removeSWF: function (a) {
			if (ah.w3) {
				aw(a);
			}
		},
		createCSS: function (b, a, c, d) {
			if (ah.w3) {
				az(b, a, c, d);
			}
		},
		addDomLoadEvent: aj,
		addLoadEvent: aC,
		getQueryParamValue: function (b) {
			var a = aL.location.search || aL.location.hash;
			if (a) {
				if (/\?/.test(a)) {
					a = a.split("?")[1];
				}
				if (b == null) {
					return ai(a);
				}
				var c = a.split("&");
				for (var d = 0; d < c.length; d++) {
					if (c[d].substring(0, c[d].indexOf("=")) == b) {
						return ai(c[d].substring((c[d].indexOf("=") + 1)));
					}
				}
			}
			return "";
		},
		expressInstallCallback: function () {
			if (aU) {
				var a = aS(ac);
				if (a && aJ) {
					a.parentNode.replaceChild(aJ, a);
					if (ad) {
						ay(ad, true);
						if (ah.ie && ah.win) {
							aJ.style.display = "block";
						}
					}
					if (ap) {
						ap(at);
					}
				}
				aU = false;
			}
		}
	};
}();
var SWFUpload;
if (SWFUpload == undefined) {
	SWFUpload = function (b) {
		this.initSWFUpload(b);
	};
}
SWFUpload.prototype.initSWFUpload = function (c) {
	try {
		this.customSettings = {};
		this.settings = c;
		this.eventQueue = [];
		this.movieName = "SWFUpload_" + SWFUpload.movieCount++;
		this.movieElement = null;
		SWFUpload.instances[this.movieName] = this;
		this.initSettings();
		this.loadFlash();
		this.displayDebugInfo();
	} catch (d) {
		delete SWFUpload.instances[this.movieName];
		throw d;
	}
};
SWFUpload.instances = {};
SWFUpload.movieCount = 0;
SWFUpload.version = "2.2.0 2009-03-25";
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.completeURL = function (e) {
	if (typeof(e) !== "string" || e.match(/^https?:\/\//i) || e.match(/^\//)) {
		return e;
	}
	var f = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : "");
	var d = window.location.pathname.lastIndexOf("/");
	if (d <= 0) {
		path = "/";
	} else {
		path = window.location.pathname.substr(0, d) + "/";
	}
	return path + e;
};
SWFUpload.prototype.initSettings = function () {
	this.ensureDefault = function (c, d) {
		this.settings[c] = (this.settings[c] == undefined) ? d : this.settings[c];
	};
	this.ensureDefault("upload_url", "");
	this.ensureDefault("preserve_relative_urls", false);
	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("assume_success_timeout", 0);
	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", "");
	this.ensureDefault("button_placeholder", 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 + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime();
	}
	if (!this.settings.preserve_relative_urls) {
		this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url);
		this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url);
	}
	delete this.ensureDefault;
};
SWFUpload.prototype.loadFlash = function () {
	var d, c;
	if (document.getElementById(this.movieName) !== null) {
		throw "ID " + this.movieName + " is already in use. The Flash Object could not be added";
	}
	d = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder;
	if (d == undefined) {
		throw "Could not find the placeholder element: " + this.settings.button_placeholder_id;
	}
	c = document.createElement("div");
	c.innerHTML = this.getFlashHTML();
	d.parentNode.replaceChild(c.firstChild, d);
	if (window[this.movieName] == undefined) {
		window[this.movieName] = this.getMovieElement();
	}
};
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 c = this.buildParamString();
	var d = this.settings.http_success.join(",");
	return ["movieName=", encodeURIComponent(this.movieName), "&amp;uploadURL=", encodeURIComponent(this.settings.upload_url), "&amp;useQueryString=", encodeURIComponent(this.settings.use_query_string), "&amp;requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), "&amp;httpSuccess=", encodeURIComponent(d), "&amp;assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), "&amp;params=", encodeURIComponent(c), "&amp;filePostName=", encodeURIComponent(this.settings.file_post_name), "&amp;fileTypes=", encodeURIComponent(this.settings.file_types), "&amp;fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), "&amp;fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), "&amp;fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), "&amp;fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), "&amp;debugEnabled=", encodeURIComponent(this.settings.debug_enabled), "&amp;buttonImageURL=", encodeURIComponent(this.settings.button_image_url), "&amp;buttonWidth=", encodeURIComponent(this.settings.button_width), "&amp;buttonHeight=", encodeURIComponent(this.settings.button_height), "&amp;buttonText=", encodeURIComponent(this.settings.button_text), "&amp;buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), "&amp;buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), "&amp;buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), "&amp;buttonAction=", encodeURIComponent(this.settings.button_action), "&amp;buttonDisabled=", encodeURIComponent(this.settings.button_disabled), "&amp;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 f = this.settings.post_params;
	var d = [];
	if (typeof(f) === "object") {
		for (var e in f) {
			if (f.hasOwnProperty(e)) {
				d.push(encodeURIComponent(e.toString()) + "=" + encodeURIComponent(f[e].toString()));
			}
		}
	}
	return d.join("&amp;");
};
SWFUpload.prototype.destroy = function () {
	try {
		this.cancelUpload(null, false);
		var g = null;
		g = this.getMovieElement();
		if (g && typeof(g.CallFunction) === "unknown") {
			for (var j in g) {
				try {
					if (typeof(g[j]) === "function") {
						g[j] = null;
					}
				} catch (h) {}
			}
			try {
				g.parentNode.removeChild(g);
			} catch (f) {}
		}
		window[this.movieName] = null;
		SWFUpload.instances[this.movieName] = null;
		delete SWFUpload.instances[this.movieName];
		this.movieElement = null;
		this.settings = null;
		this.customSettings = null;
		this.eventQueue = null;
		this.movieName = null;
		return true;
	} catch (i) {
		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", "assume_success_timeout:   ", this.settings.assume_success_timeout, "\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_placeholder:       ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\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 (d, f, e) {
	if (f == undefined) {
		return (this.settings[d] = e);
	} else {
		return (this.settings[d] = f);
	}
};
SWFUpload.prototype.getSetting = function (b) {
	if (this.settings[b] != undefined) {
		return this.settings[b];
	}
	return "";
};
SWFUpload.prototype.callFlash = function (functionName, argumentArray) {
	argumentArray = argumentArray || [];
	var movieElement = this.getMovieElement();
	var returnValue, returnString;
	try {
		returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + "</invoke>");
		returnValue = eval(returnString);
	} catch (ex) {
		throw "Call to " + functionName + " failed";
	}
	if (returnValue != undefined && typeof returnValue.post === "object") {
		returnValue = this.unescapeFilePostParams(returnValue);
	}
	return returnValue;
};
SWFUpload.prototype.selectFile = function () {
	this.callFlash("SelectFile");
};
SWFUpload.prototype.selectFiles = function () {
	this.callFlash("SelectFiles");
};
SWFUpload.prototype.startUpload = function (b) {
	this.callFlash("StartUpload", [b]);
};
SWFUpload.prototype.cancelUpload = function (d, c) {
	if (c !== false) {
		c = true;
	}
	this.callFlash("CancelUpload", [d, c]);
};
SWFUpload.prototype.stopUpload = function () {
	this.callFlash("StopUpload");
};
SWFUpload.prototype.getStats = function () {
	return this.callFlash("GetStats");
};
SWFUpload.prototype.setStats = function (b) {
	this.callFlash("SetStats", [b]);
};
SWFUpload.prototype.getFile = function (b) {
	if (typeof(b) === "number") {
		return this.callFlash("GetFileByIndex", [b]);
	} else {
		return this.callFlash("GetFile", [b]);
	}
};
SWFUpload.prototype.addFileParam = function (e, d, f) {
	return this.callFlash("AddFileParam", [e, d, f]);
};
SWFUpload.prototype.removeFileParam = function (d, c) {
	this.callFlash("RemoveFileParam", [d, c]);
};
SWFUpload.prototype.setUploadURL = function (b) {
	this.settings.upload_url = b.toString();
	this.callFlash("SetUploadURL", [b]);
};
SWFUpload.prototype.setPostParams = function (b) {
	this.settings.post_params = b;
	this.callFlash("SetPostParams", [b]);
};
SWFUpload.prototype.addPostParam = function (d, c) {
	this.settings.post_params[d] = c;
	this.callFlash("SetPostParams", [this.settings.post_params]);
};
SWFUpload.prototype.removePostParam = function (b) {
	delete this.settings.post_params[b];
	this.callFlash("SetPostParams", [this.settings.post_params]);
};
SWFUpload.prototype.setFileTypes = function (d, c) {
	this.settings.file_types = d;
	this.settings.file_types_description = c;
	this.callFlash("SetFileTypes", [d, c]);
};
SWFUpload.prototype.setFileSizeLimit = function (b) {
	this.settings.file_size_limit = b;
	this.callFlash("SetFileSizeLimit", [b]);
};
SWFUpload.prototype.setFileUploadLimit = function (b) {
	this.settings.file_upload_limit = b;
	this.callFlash("SetFileUploadLimit", [b]);
};
SWFUpload.prototype.setFileQueueLimit = function (b) {
	this.settings.file_queue_limit = b;
	this.callFlash("SetFileQueueLimit", [b]);
};
SWFUpload.prototype.setFilePostName = function (b) {
	this.settings.file_post_name = b;
	this.callFlash("SetFilePostName", [b]);
};
SWFUpload.prototype.setUseQueryString = function (b) {
	this.settings.use_query_string = b;
	this.callFlash("SetUseQueryString", [b]);
};
SWFUpload.prototype.setRequeueOnError = function (b) {
	this.settings.requeue_on_error = b;
	this.callFlash("SetRequeueOnError", [b]);
};
SWFUpload.prototype.setHTTPSuccess = function (b) {
	if (typeof b === "string") {
		b = b.replace(" ", "").split(",");
	}
	this.settings.http_success = b;
	this.callFlash("SetHTTPSuccess", [b]);
};
SWFUpload.prototype.setAssumeSuccessTimeout = function (b) {
	this.settings.assume_success_timeout = b;
	this.callFlash("SetAssumeSuccessTimeout", [b]);
};
SWFUpload.prototype.setDebugEnabled = function (b) {
	this.settings.debug_enabled = b;
	this.callFlash("SetDebugEnabled", [b]);
};
SWFUpload.prototype.setButtonImageURL = function (b) {
	if (b == undefined) {
		b = "";
	}
	this.settings.button_image_url = b;
	this.callFlash("SetButtonImageURL", [b]);
};
SWFUpload.prototype.setButtonDimensions = function (f, e) {
	this.settings.button_width = f;
	this.settings.button_height = e;
	var d = this.getMovieElement();
	if (d != undefined) {
		d.style.width = f + "px";
		d.style.height = e + "px";
	}
	this.callFlash("SetButtonDimensions", [f, e]);
};
SWFUpload.prototype.setButtonText = function (b) {
	this.settings.button_text = b;
	this.callFlash("SetButtonText", [b]);
};
SWFUpload.prototype.setButtonTextPadding = function (c, d) {
	this.settings.button_text_top_padding = d;
	this.settings.button_text_left_padding = c;
	this.callFlash("SetButtonTextPadding", [c, d]);
};
SWFUpload.prototype.setButtonTextStyle = function (b) {
	this.settings.button_text_style = b;
	this.callFlash("SetButtonTextStyle", [b]);
};
SWFUpload.prototype.setButtonDisabled = function (b) {
	this.settings.button_disabled = b;
	this.callFlash("SetButtonDisabled", [b]);
};
SWFUpload.prototype.setButtonAction = function (b) {
	this.settings.button_action = b;
	this.callFlash("SetButtonAction", [b]);
};
SWFUpload.prototype.setButtonCursor = function (b) {
	this.settings.button_cursor = b;
	this.callFlash("SetButtonCursor", [b]);
};
SWFUpload.prototype.queueEvent = function (d, f) {
	if (f == undefined) {
		f = [];
	} else {
		if (!(f instanceof Array)) {
			f = [f];
		}
	}
	var e = this;
	if (typeof this.settings[d] === "function") {
		this.eventQueue.push(function () {
			this.settings[d].apply(this, f);
		});
		setTimeout(function () {
			e.executeNextEvent();
		}, 0);
	} else {
		if (this.settings[d] !== null) {
			throw "Event handler " + d + " is unknown or is not a function";
		}
	}
};
SWFUpload.prototype.executeNextEvent = function () {
	var b = this.eventQueue ? this.eventQueue.shift() : null;
	if (typeof(b) === "function") {
		b.apply(this);
	}
};
SWFUpload.prototype.unescapeFilePostParams = function (l) {
	var j = /[$]([0-9a-f]{4})/i;
	var i = {};
	var k;
	if (l != undefined) {
		for (var h in l.post) {
			if (l.post.hasOwnProperty(h)) {
				k = h;
				var g;
				while ((g = j.exec(k)) !== null) {
					k = k.replace(g[0], String.fromCharCode(parseInt("0x" + g[1], 16)));
				}
				i[k] = l.post[h];
			}
		}
		l.post = i;
	}
	return l;
};
SWFUpload.prototype.testExternalInterface = function () {
	try {
		return this.callFlash("TestExternalInterface");
	} catch (b) {
		return false;
	}
};
SWFUpload.prototype.flashReady = function () {
	var b = this.getMovieElement();
	if (!b) {
		this.debug("Flash called back ready but the flash movie can't be found.");
		return;
	}
	this.cleanUp(b);
	this.queueEvent("swfupload_loaded_handler");
};
SWFUpload.prototype.cleanUp = function (f) {
	try {
		if (this.movieElement && typeof(f.CallFunction) === "unknown") {
			this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");
			for (var h in f) {
				try {
					if (typeof(f[h]) === "function") {
						f[h] = null;
					}
				} catch (e) {}
			}
		}
	} catch (g) {}
	window.__flash__removeCallback = function (c, b) {
		try {
			if (c) {
				c[b] = null;
			}
		} catch (a) {}
	};
};
SWFUpload.prototype.fileDialogStart = function () {
	this.queueEvent("file_dialog_start_handler");
};
SWFUpload.prototype.fileQueued = function (b) {
	b = this.unescapeFilePostParams(b);
	this.queueEvent("file_queued_handler", b);
};
SWFUpload.prototype.fileQueueError = function (e, f, d) {
	e = this.unescapeFilePostParams(e);
	this.queueEvent("file_queue_error_handler", [e, f, d]);
};
SWFUpload.prototype.fileDialogComplete = function (d, f, e) {
	this.queueEvent("file_dialog_complete_handler", [d, f, e]);
};
SWFUpload.prototype.uploadStart = function (b) {
	b = this.unescapeFilePostParams(b);
	this.queueEvent("return_upload_start_handler", b);
};
SWFUpload.prototype.returnUploadStart = function (d) {
	var c;
	if (typeof this.settings.upload_start_handler === "function") {
		d = this.unescapeFilePostParams(d);
		c = this.settings.upload_start_handler.call(this, d);
	} else {
		if (this.settings.upload_start_handler != undefined) {
			throw "upload_start_handler must be a function";
		}
	}
	if (c === undefined) {
		c = true;
	}
	c = !! c;
	this.callFlash("ReturnUploadStart", [c]);
};
SWFUpload.prototype.uploadProgress = function (e, f, d) {
	e = this.unescapeFilePostParams(e);
	this.queueEvent("upload_progress_handler", [e, f, d]);
};
SWFUpload.prototype.uploadError = function (e, f, d) {
	e = this.unescapeFilePostParams(e);
	this.queueEvent("upload_error_handler", [e, f, d]);
};
SWFUpload.prototype.uploadSuccess = function (d, e, f) {
	d = this.unescapeFilePostParams(d);
	this.queueEvent("upload_success_handler", [d, e, f]);
};
SWFUpload.prototype.uploadComplete = function (b) {
	b = this.unescapeFilePostParams(b);
	this.queueEvent("upload_complete_handler", b);
};
SWFUpload.prototype.debug = function (b) {
	this.queueEvent("debug_handler", b);
};
SWFUpload.prototype.debugMessage = function (h) {
	if (this.settings.debug) {
		var f, g = [];
		if (typeof h === "object" && typeof h.name === "string" && typeof h.message === "string") {
			for (var e in h) {
				if (h.hasOwnProperty(e)) {
					g.push(e + ": " + h[e]);
				}
			}
			f = g.join("\n") || "";
			g = f.split("\n");
			f = "EXCEPTION: " + g.join("\nEXCEPTION: ");
			SWFUpload.Console.writeLine(f);
		} else {
			SWFUpload.Console.writeLine(h);
		}
	}
};
SWFUpload.Console = {};
SWFUpload.Console.writeLine = function (g) {
	var e, f;
	try {
		e = document.getElementById("SWFUpload_Console");
		if (!e) {
			f = document.createElement("form");
			document.getElementsByTagName("body")[0].appendChild(f);
			e = document.createElement("textarea");
			e.id = "SWFUpload_Console";
			e.style.fontFamily = "monospace";
			e.setAttribute("wrap", "off");
			e.wrap = "off";
			e.style.overflow = "auto";
			e.style.width = "700px";
			e.style.height = "350px";
			e.style.margin = "5px";
			f.appendChild(e);
		}
		e.value += g + "\n";
		e.scrollTop = e.scrollHeight - e.clientHeight;
	} catch (h) {
		alert("Exception: " + h.name + " Message: " + h.message);
	}
};
(function (c) {
	var b = {
		init: function (d, e) {
			return this.each(function () {
				var n = c(this);
				var m = n.clone();
				var j = c.extend({
					id: n.attr("id"),
					swf: "uploadify.swf",
					uploader: "uploadify.php",
					auto: true,
					buttonClass: "",
					buttonCursor: "hand",
					buttonImage: null,
					buttonText: "SELECT FILES",
					checkExisting: false,
					debug: false,
					fileObjName: "Filedata",
					fileSizeLimit: 0,
					fileTypeDesc: "All Files",
					fileTypeExts: "*.*",
					height: 30,
					method: "post",
					multi: true,
					formData: {},
					preventCaching: true,
					progressData: "percentage",
					queueID: false,
					queueSizeLimit: 999,
					removeCompleted: true,
					removeTimeout: 3,
					requeueErrors: false,
					successTimeout: 30,
					uploadLimit: 0,
					width: 120,
					overrideEvents: []
				}, d);
				var g = {
					assume_success_timeout: j.successTimeout,
					button_placeholder_id: j.id,
					button_width: j.width,
					button_height: j.height,
					button_text: null,
					button_text_style: null,
					button_text_top_padding: 0,
					button_text_left_padding: 0,
					button_action: (j.multi ? SWFUpload.BUTTON_ACTION.SELECT_FILES : SWFUpload.BUTTON_ACTION.SELECT_FILE),
					button_disabled: false,
					button_cursor: (j.buttonCursor == "arrow" ? SWFUpload.CURSOR.ARROW : SWFUpload.CURSOR.HAND),
					button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
					debug: j.debug,
					requeue_on_error: j.requeueErrors,
					file_post_name: j.fileObjName,
					file_size_limit: j.fileSizeLimit,
					file_types: j.fileTypeExts,
					file_types_description: j.fileTypeDesc,
					file_queue_limit: j.queueSizeLimit,
					file_upload_limit: j.uploadLimit,
					flash_url: j.swf,
					prevent_swf_caching: j.preventCaching,
					post_params: j.formData,
					upload_url: j.uploader,
					use_query_string: (j.method == "get"),
					file_dialog_complete_handler: a.onDialogClose,
					file_dialog_start_handler: a.onDialogOpen,
					file_queued_handler: a.onSelect,
					file_queue_error_handler: a.onSelectError,
					swfupload_loaded_handler: j.onSWFReady,
					upload_complete_handler: a.onUploadComplete,
					upload_error_handler: a.onUploadError,
					upload_progress_handler: a.onUploadProgress,
					upload_start_handler: a.onUploadStart,
					upload_success_handler: a.onUploadSuccess
				};
				if (e) {
					g = c.extend(g, e);
				}
				g = c.extend(g, j);
				var o = swfobject.getFlashPlayerVersion();
				var h = (o.major >= 9);
				if (h) {
					window["uploadify_" + j.id] = new SWFUpload(g);
					var i = window["uploadify_" + j.id];
					n.data("uploadify", i);
					var l = c("<div />", {
						id: j.id,
						"class": "uploadify",
						css: {
							height: j.height + "px",
							width: j.width + "px"
						}
					});
					c("#" + i.movieName).wrap(l);
					l = c("#" + j.id);
					l.data("uploadify", i);
					var f = c("<div />", {
						id: j.id + "-button",
						"class": "uploadify-button " + j.buttonClass
					});
					if (j.buttonImage) {
						f.css({
							"background-image": "url('" + j.buttonImage + "')",
							"text-indent": "-9999px"
						});
					}
					f.html('<span class="uploadify-button-text">' + j.buttonText + "</span>").css({
						height: j.height + "px",
						"line-height": j.height + "px",
						width: j.width + "px"
					});
					l.append(f);
					c("#" + i.movieName).css({
						position: "absolute",
						"z-index": 1
					});
					if (!j.queueID) {
						var k = c("<div />", {
							id: j.id + "-queue",
							"class": "uploadify-queue"
						});
						l.after(k);
						i.settings.queueID = j.id + "-queue";
						i.settings.defaultQueue = true;
					}
					i.queueData = {
						files: {},
						filesSelected: 0,
						filesQueued: 0,
						filesReplaced: 0,
						filesCancelled: 0,
						filesErrored: 0,
						uploadsSuccessful: 0,
						uploadsErrored: 0,
						averageSpeed: 0,
						queueLength: 0,
						queueSize: 0,
						uploadSize: 0,
						queueBytesUploaded: 0,
						uploadQueue: [],
						errorMsg: "Some files were not added to the queue:"
					};
					i.original = m;
					i.wrapper = l;
					i.button = f;
					i.queue = k;
					if (j.onInit) {
						j.onInit.call(n, i);
					}
				} else {
					if (j.onFallback) {
						j.onFallback.call(n);
					}
				}
			});
		},
		cancel: function (d, f) {
			var e = arguments;
			this.each(function () {
				var l = c(this),
					i = l.data("uploadify"),
					j = i.settings,
					h = -1;
				if (e[0]) {
					if (e[0] == "*") {
						var g = i.queueData.queueLength;
						c("#" + j.queueID).find(".uploadify-queue-item").each(function () {
							h++;
							if (e[1] === true) {
								i.cancelUpload(c(this).attr("id"), false);
							} else {
								i.cancelUpload(c(this).attr("id"));
							}
							c(this).find(".data").removeClass("data").html(" - Cancelled");
							c(this).find(".uploadify-progress-bar").remove();
							c(this).delay(1000 + 100 * h).fadeOut(500, function () {
								c(this).remove();
							});
						});
						i.queueData.queueSize = 0;
						i.queueData.queueLength = 0;
						if (j.onClearQueue) {
							j.onClearQueue.call(l, g);
						}
					} else {
						for (var m = 0; m < e.length; m++) {
							i.cancelUpload(e[m]);
							c("#" + e[m]).find(".data").removeClass("data").html(" - Cancelled");
							c("#" + e[m]).find(".uploadify-progress-bar").remove();
							c("#" + e[m]).delay(1000 + 100 * m).fadeOut(500, function () {
								c(this).remove();
							});
						}
					}
				} else {
					var k = c("#" + j.queueID).find(".uploadify-queue-item").get(0);
					$item = c(k);
					i.cancelUpload($item.attr("id"));
					$item.find(".data").removeClass("data").html(" - Cancelled");
					$item.find(".uploadify-progress-bar").remove();
					$item.delay(1000).fadeOut(500, function () {
						c(this).remove();
					});
				}
			});
		},
		destroy: function () {
			this.each(function () {
				var f = c(this),
					d = f.data("uploadify"),
					e = d.settings;
				d.destroy();
				if (e.defaultQueue) {
					c("#" + e.queueID).remove();
				}
				c("#" + e.id).replaceWith(d.original);
				if (e.onDestroy) {
					e.onDestroy.call(this);
				}
				delete d;
			});
		},
		disable: function (d) {
			this.each(function () {
				var g = c(this),
					e = g.data("uploadify"),
					f = e.settings;
				if (d) {
					e.button.addClass("disabled");
					if (f.onDisable) {
						f.onDisable.call(this);
					}
				} else {
					e.button.removeClass("disabled");
					if (f.onEnable) {
						f.onEnable.call(this);
					}
				}
				e.setButtonDisabled(d);
			});
		},
		settings: function (e, g, h) {
			var d = arguments;
			var f = g;
			this.each(function () {
				var k = c(this),
					i = k.data("uploadify"),
					j = i.settings;
				if (typeof(d[0]) == "object") {
					for (var l in g) {
						setData(l, g[l]);
					}
				}
				if (d.length === 1) {
					f = j[e];
				} else {
					switch (e) {
					case "uploader":
						i.setUploadURL(g);
						break;
					case "formData":
						if (!h) {
							g = c.extend(j.formData, g);
						}
						i.setPostParams(j.formData);
						break;
					case "method":
						if (g == "get") {
							i.setUseQueryString(true);
						} else {
							i.setUseQueryString(false);
						}
						break;
					case "fileObjName":
						i.setFilePostName(g);
						break;
					case "fileTypeExts":
						i.setFileTypes(g, j.fileTypeDesc);
						break;
					case "fileTypeDesc":
						i.setFileTypes(j.fileTypeExts, g);
						break;
					case "fileSizeLimit":
						i.setFileSizeLimit(g);
						break;
					case "uploadLimit":
						i.setFileUploadLimit(g);
						break;
					case "queueSizeLimit":
						i.setFileQueueLimit(g);
						break;
					case "buttonImage":
						i.button.css("background-image", settingValue);
						break;
					case "buttonCursor":
						if (g == "arrow") {
							i.setButtonCursor(SWFUpload.CURSOR.ARROW);
						} else {
							i.setButtonCursor(SWFUpload.CURSOR.HAND);
						}
						break;
					case "buttonText":
						c("#" + j.id + "-button").find(".uploadify-button-text").html(g);
						break;
					case "width":
						i.setButtonDimensions(g, j.height);
						break;
					case "height":
						i.setButtonDimensions(j.width, g);
						break;
					case "multi":
						if (g) {
							i.setButtonAction(SWFUpload.BUTTON_ACTION.SELECT_FILES);
						} else {
							i.setButtonAction(SWFUpload.BUTTON_ACTION.SELECT_FILE);
						}
						break;
					}
					j[e] = g;
				}
			});
			if (d.length === 1) {
				return f;
			}
		},
		stop: function () {
			this.each(function () {
				var e = c(this),
					d = e.data("uploadify");
				d.queueData.averageSpeed = 0;
				d.queueData.uploadSize = 0;
				d.queueData.bytesUploaded = 0;
				d.queueData.uploadQueue = [];
				d.stopUpload();
			});
		},
		upload: function () {
			var d = arguments;
			this.each(function () {
				var f = c(this),
					e = f.data("uploadify");
				e.queueData.averageSpeed = 0;
				e.queueData.uploadSize = 0;
				e.queueData.bytesUploaded = 0;
				e.queueData.uploadQueue = [];
				if (d[0]) {
					if (d[0] == "*") {
						e.queueData.uploadSize = e.queueData.queueSize;
						e.queueData.uploadQueue.push("*");
						e.startUpload();
					} else {
						for (var g = 0; g < d.length; g++) {
							e.queueData.uploadSize += e.queueData.files[d[g]].size;
							e.queueData.uploadQueue.push(d[g]);
						}
						e.startUpload(e.queueData.uploadQueue.shift());
					}
				} else {
					e.startUpload();
				}
			});
		}
	};
	var a = {
		onDialogOpen: function () {
			var d = this.settings;
			this.queueData.errorMsg = "Some files were not added to the queue:";
			this.queueData.filesReplaced = 0;
			this.queueData.filesCancelled = 0;
			if (d.onDialogOpen) {
				d.onDialogOpen.call(this);
			}
		},
		onDialogClose: function (d, f, g) {
			var e = this.settings;
			this.queueData.filesErrored = d - f;
			this.queueData.filesSelected = d;
			this.queueData.filesQueued = f - this.queueData.filesCancelled;
			this.queueData.queueLength = g;
			if (c.inArray("onDialogClose", e.overrideEvents) < 0) {
				if (this.queueData.filesErrored > 0) {
					alert(this.queueData.errorMsg);
				}
			}
			if (e.onDialogClose) {
				e.onDialogClose.call(this, this.queueData);
			}
			if (e.auto) {
				c("#" + e.id).uploadify("upload", "*");
			}
		},
		onSelect: function (g) {
			var h = this.settings;
			var e = {};
			for (var f in this.queueData.files) {
				e = this.queueData.files[f];
				if (e.uploaded != true && e.name == g.name) {
					var d = confirm('The file named "' + g.name + '" is already in the queue.\nDo you want to replace the existing item in the queue?');
					if (!d) {
						this.cancelUpload(g.id);
						this.queueData.filesCancelled++;
						return false;
					} else {
						c("#" + e.id).remove();
						this.cancelUpload(e.id);
						this.queueData.filesReplaced++;
					}
				}
			}
			var i = Math.round(g.size / 1024);
			var l = "KB";
			if (i > 1000) {
				i = Math.round(i / 1000);
				l = "MB";
			}
			var k = i.toString().split(".");
			i = k[0];
			if (k.length > 1) {
				i += "." + k[1].substr(0, 2);
			}
			i += l;
			var j = g.name;
			if (j.length > 25) {
				j = j.substr(0, 25) + "...";
			}
			if (c.inArray("onSelect", h.overrideEvents) < 0) {
				c("#" + h.queueID).append('<div id="' + g.id + '" class="uploadify-queue-item">					<div class="cancel">						<a href="javascript:$(\'#' + h.id + "').uploadify('cancel', '" + g.id + '\')">X</a>					</div>					<span class="fileName">' + j + " (" + i + ')</span><span class="data"></span>					<div class="uploadify-progress">						<div class="uploadify-progress-bar"><!--Progress Bar--></div>					</div>				</div>');
			}
			this.queueData.queueSize += g.size;
			this.queueData.files[g.id] = g;
			if (h.onSelect) {
				h.onSelect.apply(this, arguments);
			}
		},
		onSelectError: function (d, g, f) {
			var e = this.settings;
			if (c.inArray("onSelectError", e.overrideEvents) < 0) {
				switch (g) {
				case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED:
					if (e.queueSizeLimit > f) {
						this.queueData.errorMsg += "\nThe number of files selected exceeds the remaining upload limit (" + f + ").";
					} else {
						this.queueData.errorMsg += "\nThe number of files selected exceeds the queue size limit (" + e.queueSizeLimit + ").";
					}
					break;
				case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
					this.queueData.errorMsg += '\nThe file "' + d.name + '" exceeds the size limit (' + e.fileSizeLimit + ").";
					break;
				case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
					this.queueData.errorMsg += '\nThe file "' + d.name + '" is empty.';
					break;
				case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
					this.queueData.errorMsg += '\nThe file "' + d.name + '" is not an accepted file type (' + e.fileTypeDesc + ").";
					break;
				}
			}
			if (g != SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) {
				delete this.queueData.files[d.id];
			}
			if (e.onSelectError) {
				e.onSelectError.apply(this, arguments);
			}
		},
		onQueueComplete: function () {
			if (this.settings.onQueueComplete) {
				this.settings.onQueueComplete.call(this, this.settings.queueData);
			}
		},
		onUploadComplete: function (f) {
			var g = this.settings,
				d = this;
			var e = this.getStats();
			this.queueData.queueLength = e.files_queued;
			if (this.queueData.uploadQueue[0] == "*") {
				if (this.queueData.queueLength > 0) {
					this.startUpload();
				} else {
					this.queueData.uploadQueue = [];
					if (g.onQueueComplete) {
						g.onQueueComplete.call(this, this.queueData);
					}
				}
			} else {
				if (this.queueData.uploadQueue.length > 0) {
					this.startUpload(this.queueData.uploadQueue.shift());
				} else {
					this.queueData.uploadQueue = [];
					if (g.onQueueComplete) {
						g.onQueueComplete.call(this, this.queueData);
					}
				}
			}
			if (c.inArray("onUploadComplete", g.overrideEvents) < 0) {
				if (g.removeCompleted) {
					switch (f.filestatus) {
					case SWFUpload.FILE_STATUS.COMPLETE:
						setTimeout(function () {
							if (c("#" + f.id)) {
								d.queueData.queueSize -= f.size;
								d.queueData.queueLength -= 1;
								delete d.queueData.files[f.id];
								c("#" + f.id).fadeOut(500, function () {
									c(this).remove();
								});
							}
						}, g.removeTimeout * 1000);
						break;
					case SWFUpload.FILE_STATUS.ERROR:
						if (!g.requeueErrors) {
							setTimeout(function () {
								if (c("#" + f.id)) {
									d.queueData.queueSize -= f.size;
									d.queueData.queueLength -= 1;
									delete d.queueData.files[f.id];
									c("#" + f.id).fadeOut(500, function () {
										c(this).remove();
									});
								}
							}, g.removeTimeout * 1000);
						}
						break;
					}
				} else {
					f.uploaded = true;
				}
			}
			if (g.onUploadComplete) {
				g.onUploadComplete.call(this, f);
			}
		},
		onUploadError: function (e, i, h) {
			var f = this.settings;
			var g = "Error";
			switch (i) {
			case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
				g = "HTTP Error (" + h + ")";
				break;
			case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
				g = "Missing Upload URL";
				break;
			case SWFUpload.UPLOAD_ERROR.IO_ERROR:
				g = "IO Error";
				break;
			case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
				g = "Security Error";
				break;
			case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
				alert("The upload limit has been reached (" + h + ").");
				g = "Exceeds Upload Limit";
				break;
			case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
				g = "Failed";
				break;
			case SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND:
				break;
			case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED:
				g = "Validation Error";
				break;
			case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
				g = "Cancelled";
				this.queueData.queueSize -= e.size;
				this.queueData.queueLength -= 1;
				if (e.status == SWFUpload.FILE_STATUS.IN_PROGRESS || c.inArray(e.id, this.queueData.uploadQueue) >= 0) {
					this.queueData.uploadSize -= e.size;
				}
				if (f.onCancel) {
					f.onCancel.call(this, e);
				}
				delete this.queueData.files[e.id];
				break;
			case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
				g = "Stopped";
				break;
			}
			if (c.inArray("onUploadError", f.overrideEvents) < 0) {
				if (i != SWFUpload.UPLOAD_ERROR.FILE_CANCELLED && i != SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED) {
					c("#" + e.id).addClass("uploadify-error");
				}
				c("#" + e.id).find(".uploadify-progress-bar").css("width", "1px");
				if (i != SWFUpload.UPLOAD_ERROR.SPECIFIED_FILE_ID_NOT_FOUND && e.status != SWFUpload.FILE_STATUS.COMPLETE) {
					c("#" + e.id).find(".data").html(" - " + g);
				}
			}
			var d = this.getStats();
			this.queueData.uploadsErrored = d.upload_errors;
			if (f.onUploadError) {
				f.onUploadError.call(this, e, i, h, g);
			}
		},
		onUploadProgress: function (g, m, j) {
			var h = this.settings;
			var e = new Date();
			var n = e.getTime();
			var k = n - this.timer;
			if (k > 500) {
				this.timer = n;
			}
			var i = m - this.bytesLoaded;
			this.bytesLoaded = m;
			var d = this.queueData.queueBytesUploaded + m;
			var p = Math.round(m / j * 100);
			var o = "KB/s";
			var l = 0;
			var f = (i / 1024) / (k / 1000);
			f = Math.floor(f * 10) / 10;
			if (this.queueData.averageSpeed > 0) {
				this.queueData.averageSpeed = Math.floor((this.queueData.averageSpeed + f) / 2);
			} else {
				this.queueData.averageSpeed = Math.floor(f);
			}
			if (f > 1000) {
				l = (f * 0.001);
				this.queueData.averageSpeed = Math.floor(l);
				o = "MB/s";
			}
			if (c.inArray("onUploadProgress", h.overrideEvents) < 0) {
				if (h.progressData == "percentage") {
					c("#" + g.id).find(".data").html(" - " + p + "%");
				} else {
					if (h.progressData == "speed" && k > 500) {
						c("#" + g.id).find(".data").html(" - " + this.queueData.averageSpeed + o);
					}
				}
				c("#" + g.id).find(".uploadify-progress-bar").css("width", p + "%");
			}
			if (h.onUploadProgress) {
				h.onUploadProgress.call(this, g, m, j, d, this.queueData.uploadSize);
			}
		},
		onUploadStart: function (d) {
			var e = this.settings;
			var f = new Date();
			this.timer = f.getTime();
			this.bytesLoaded = 0;
			if (this.queueData.uploadQueue.length == 0) {
				this.queueData.uploadSize = d.size;
			}
			if (e.checkExisting) {
				c.ajax({
					type: "POST",
					async: false,
					url: e.checkExisting,
					data: {
						filename: d.name
					},
					success: function (h) {
						if (h == 1) {
							var g = confirm('A file with the name "' + d.name + '" already exists on the server.\nWould you like to replace the existing file?');
							if (!g) {
								this.cancelUpload(d.id);
								c("#" + d.id).remove();
								if (this.queueData.uploadQueue.length > 0 && this.queueData.queueLength > 0) {
									if (this.queueData.uploadQueue[0] == "*") {
										this.startUpload();
									} else {
										this.startUpload(this.queueData.uploadQueue.shift());
									}
								}
							}
						}
					}
				});
			}
			if (e.onUploadStart) {
				e.onUploadStart.call(this, d);
			}
		},
		onUploadSuccess: function (f, h, d) {
			var g = this.settings;
			var e = this.getStats();
			this.queueData.uploadsSuccessful = e.successful_uploads;
			this.queueData.queueBytesUploaded += f.size;
			if (c.inArray("onUploadSuccess", g.overrideEvents) < 0) {
				c("#" + f.id).find(".data").html(" - Complete");
			}
			if (g.onUploadSuccess) {
				g.onUploadSuccess.call(this, f, h, d);
			}
		}
	};
	c.fn.uploadify = function (d) {
		if (b[d]) {
			return b[d].apply(this, Array.prototype.slice.call(arguments, 1));
		} else {
			if (typeof d === "object" || !d) {
				return b.init.apply(this, arguments);
			} else {
				c.error("The method " + d + " does not exist in $.uploadify");
			}
		}
	};
})($);