(function (f, b, d, e) { var a = {}, g = {}; function c() { var h; try { h = navigator.plugins["Shockwave Flash"]; h = h.description } catch (j) { try { h = new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version") } catch (i) { h = "0.0" } } h = h.match(/\d+/g); return parseFloat(h[0] + "." + h[1]) } d.flash = {trigger:function (j, h, i) { setTimeout(function () { var m = a[j], l, k; if (m) { m.trigger("Flash:" + h, i) } }, 0) }}; d.runtimes.Flash = d.addRuntime("flash", {getFeatures:function () { return{jpgresize:true, pngresize:true, maxWidth:8091, maxHeight:8091, chunks:true, progress:true, multipart:true, multi_selection:true} }, init:function (m, o) { var k, l, h = 0, i = b.body; if (c() < 10) { o({success:false}); return } g[m.id] = false; a[m.id] = m; k = b.getElementById(m.settings.browse_button); l = b.createElement("div"); l.id = m.id + "_flash_container"; d.extend(l.style, {position:"absolute", top:"0px", background:m.settings.shim_bgcolor || "transparent", zIndex:99999, width:"100%", height:"100%"}); l.className = "plupload flash"; if (m.settings.container) { i = b.getElementById(m.settings.container); if (d.getStyle(i, "position") === "static") { i.style.position = "relative" } } i.appendChild(l); (function () { var p, q; p = ''; if (d.ua.ie) { q = b.createElement("div"); l.appendChild(q); q.outerHTML = p; q = null } else { l.innerHTML = p } }()); function n() { return b.getElementById(m.id + "_flash") } function j() { if (h++ > 5000) { o({success:false}); return } if (g[m.id] === false) { setTimeout(j, 1) } } j(); k = l = null; m.bind("Destroy", function (p) { var q; d.removeAllEvents(b.body, p.id); delete g[p.id]; delete a[p.id]; q = b.getElementById(p.id + "_flash_container"); if (q) { i.removeChild(q) } }); m.bind("Flash:Init", function () { var r = {}, q; try { n().setFileFilters(m.settings.filters, m.settings.multi_selection) } catch (p) { o({success:false}); return } if (g[m.id]) { return } g[m.id] = true; m.bind("UploadFile", function (s, u) { var v = s.settings, t = m.settings.resize || {}; n().uploadFile(r[u.id], v.url, {name:u.target_name || u.name, mime:d.mimeTypes[u.name.replace(/^.+\.([^.]+)/, "$1").toLowerCase()] || "application/octet-stream", chunk_size:v.chunk_size, width:t.width, height:t.height, quality:t.quality, multipart:v.multipart, multipart_params:v.multipart_params || {}, file_data_name:v.file_data_name, format:/\.(jpg|jpeg)$/i.test(u.name) ? "jpg" : "png", headers:v.headers, urlstream_upload:v.urlstream_upload}) }); m.bind("CancelUpload", function () { n().cancelUpload() }); m.bind("Flash:UploadProcess", function (t, s) { var u = t.getFile(r[s.id]); if (u.status != d.FAILED) { u.loaded = s.loaded; u.size = s.size; t.trigger("UploadProgress", u) } }); m.bind("Flash:UploadChunkComplete", function (s, u) { var v, t = s.getFile(r[u.id]); v = {chunk:u.chunk, chunks:u.chunks, response:u.text}; s.trigger("ChunkUploaded", t, v); if (t.status !== d.FAILED && s.state !== d.STOPPED) { n().uploadNextChunk() } if (u.chunk == u.chunks - 1) { t.status = d.DONE; s.trigger("FileUploaded", t, {response:u.text}) } }); m.bind("Flash:SelectFiles", function (s, v) { var u, t, w = [], x; for (t = 0; t < v.length; t++) { u = v[t]; x = d.guid(); r[x] = u.id; r[u.id] = x; w.push(new d.File(x, u.name, u.size)) } if (w.length) { m.trigger("FilesAdded", w) } }); m.bind("Flash:SecurityError", function (s, t) { m.trigger("Error", {code:d.SECURITY_ERROR, message:d.translate("Security error."), details:t.message, file:m.getFile(r[t.id])}) }); m.bind("Flash:GenericError", function (s, t) { m.trigger("Error", {code:d.GENERIC_ERROR, message:d.translate("Generic error."), details:t.message, file:m.getFile(r[t.id])}) }); m.bind("Flash:IOError", function (s, t) { m.trigger("Error", {code:d.IO_ERROR, message:d.translate("IO error."), details:t.message, file:m.getFile(r[t.id])}) }); m.bind("Flash:ImageError", function (s, t) { m.trigger("Error", {code:parseInt(t.code, 10), message:d.translate("Image error."), file:m.getFile(r[t.id])}) }); m.bind("Flash:StageEvent:rollOver", function (s) { var t, u; t = b.getElementById(m.settings.browse_button); u = s.settings.browse_button_hover; if (t && u) { d.addClass(t, u) } }); m.bind("Flash:StageEvent:rollOut", function (s) { var t, u; t = b.getElementById(m.settings.browse_button); u = s.settings.browse_button_hover; if (t && u) { d.removeClass(t, u) } }); m.bind("Flash:StageEvent:mouseDown", function (s) { var t, u; t = b.getElementById(m.settings.browse_button); u = s.settings.browse_button_active; if (t && u) { d.addClass(t, u); d.addEvent(b.body, "mouseup", function () { d.removeClass(t, u) }, s.id) } }); m.bind("Flash:StageEvent:mouseUp", function (s) { var t, u; t = b.getElementById(m.settings.browse_button); u = s.settings.browse_button_active; if (t && u) { d.removeClass(t, u) } }); m.bind("Flash:ExifData", function (s, t) { m.trigger("ExifData", m.getFile(r[t.id]), t.data) }); m.bind("Flash:GpsData", function (s, t) { m.trigger("GpsData", m.getFile(r[t.id]), t.data) }); m.bind("QueueChanged", function (s) { m.refresh() }); m.bind("FilesRemoved", function (s, u) { var t; for (t = 0; t < u.length; t++) { n().removeFile(r[u[t].id]) } }); m.bind("StateChanged", function (s) { m.refresh() }); m.bind("Refresh", function (s) { var t, u, v; n().setFileFilters(m.settings.filters, m.settings.multi_selection); t = b.getElementById(s.settings.browse_button); if (t) { u = d.getPos(t, b.getElementById(s.settings.container)); v = d.getSize(t); d.extend(b.getElementById(s.id + "_flash_container").style, {top:u.y + "px", left:u.x + "px", width:v.w + "px", height:v.h + "px"}) } }); m.bind("DisableBrowse", function (s, t) { n().disableBrowse(t) }); o({success:true}) }) }}) })(window, document, plupload);