var DragnDropSupport=(function(){var c,a;try{c=new XMLHttpRequest();a=!!(c.sendAsBinary||c.upload)&&!(jQuery.browser.mozilla&&jQuery.browser.version.indexOf("1.9.1")>-1)}catch(b){a=false}c=null;return{hasXhrSupport:a}})();
(function(){if(window.google&&google.gears){return}var a=null;if(typeof GearsFactory!="undefined"){a=new GearsFactory()}else{try{a=new ActiveXObject("Gears.Factory");if(a.getBuildInfo().indexOf("ie_mobile")!=-1){a.privateSetGlobalObject(this)}}catch(b){if((typeof navigator.mimeTypes!="undefined")&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}}if(!a){return}if(!window.google){google={}}if(!google.gears){google.gears={factory:a}}})();
AJS.DragAndDrop={};(function(b){var c,a=/^\w+:\/\/[^\/?#]+/.exec(location.href);AJS.DragAndDropUtils={hasXhrSupport:DragnDropSupport.hasXhrSupport,base:a,getCachingUrl:function(e){var f=b("script[src*='drag-and-drop']:last");if(e&&e.indexOf("/")!=0){e="/"+e}if(!f.length){AJS.log("ERROR: Cannot find drag and drop caching url");return Confluence.getContextPath()+(e||"/")}var g=f.attr("src");var d=g.replace(/\/_\/download\/.*/,"/_"+(e||"/"));AJS.log("DragAndDropUtils: computed cache URL: "+d);return d},init:function(d){d&&d(DragnDropSupport.hasXhrSupport)},bindDragEnter:function(d,f){if(d.addEventListener){f=(this.isFireFox35OrLater()?this.firefox35DragEnterAndOverCallbackWrapper(f):f);f&&d.addEventListener("dragenter",f,false)}else{if(d.attachEvent){var e=this.ieDragEnterAndDragOverCallbackWrapper(f);d.attachEvent("ondragenter",e);b(window).unload(function(){d.detachEvent("ondragenter",e)})}}},bindDragOver:function(d,f){if(d.addEventListener){if(this.isFireFox35OrLater()){f=this.firefox35DragEnterAndOverCallbackWrapper(f)}else{if(b.browser.safari){f=this.safariDragOverCallbackWrapper(f)}}f&&d.addEventListener("dragover",f,false)}else{if(d.attachEvent){var e=this.ieDragEnterAndDragOverCallbackWrapper(f);d.attachEvent("ondragover",e);b(window).unload(function(){d.detachEvent("ondragover",e)})}}},bindDragLeave:function(d,e){if(!e){return}if(b.browser.safari||this.isFireFox35OrLater()){d.addEventListener("dragleave",e,false)}else{if(b.browser.mozilla){d.addEventListener("dragexit",e,false)}else{if(b.browser.msie){d.attachEvent("ondragleave",e);b(window).unload(function(){d.detachEvent("ondragleave",e)})}}}},bindDrop:function(e,g){if(b.browser.mozilla){var d=(this.isFireFox35OrLater()?"drop":"dragdrop");e.addEventListener(d,this.mozillaDropCallbackWrapper(g),false)}else{if(b.browser.msie){if(g){var f=function(h){g(h);AJS.DragAndDropUtils.stopPropagation(h)};e.attachEvent("ondrop",f);b(window).unload(function(){e.detachEvent("ondrop",f)})}}else{if(b.browser.safari){g&&e.addEventListener("drop",function(h){g(h);
AJS.DragAndDropUtils.stopPropagation(h)},false)}}}},niceSize:function(d){var g=[" b"," Kb"," Mb"," Gb"," Tb"," Pb"," Eb"," Zb"," Yb"];for(var e=0,f=g.length;e<f;e++){if(d<Math.pow(2,10*(e+1))){return(!e?d:(d/Math.pow(2,10*e)).toFixed(2))+g[e]}}return(d/Math.pow(2,10*(e+1))).toFixed(2)+g[g.length-1]},ieDragEnterAndDragOverCallbackWrapper:function(d){return function(f){f=f||window.event;if(!f){return}d&&d(f);b.browser.msie&&(f.returnValue=false)}},safariDragOverCallbackWrapper:function(d){return function(f){f=f||window.event;if(!f){return}if(f.target.type=="file"){return}d&&d(f);(b.inArray("public.file-url",f.dataTransfer.types)!=-1)&&f.preventDefault()}},mozillaDropCallbackWrapper:function(d){return function(f){if(!f){return}d&&d(f);f.preventDefault();if(AJS.DragAndDropUtils.isFireFox35OrLater()){AJS.DragAndDropUtils.firefox35FileDataInEvent(f)&&f.stopPropagation()}else{f.stopPropagation()}}},firefox35DragEnterAndOverCallbackWrapper:function(d){return function(f){if(!f){return}d&&d(f);AJS.DragAndDropUtils.firefox35FileDataInEvent(f)&&f.preventDefault()}},firefox35FileDataInEvent:function(d){return b.inArray("application/x-moz-file",d.dataTransfer.types)!=-1},stopPropagation:function(d){d=d||window.event;if(!d){return}if(d.stopPropagation){d.stopPropagation()}else{d.cancelBubble=true}},preventDefault:function(d){d=d||window.event;if(!d){return}if(d.preventDefault){d.preventDefault()}else{d.returnValue=false}},isGearsInstalledNoPrompt:function(){try{return !!window.google&&!!google.gears&&!!google.gears.factory.create("beta.desktop")}catch(d){return false}},isGearsInstalledWithPermissions:function(d){var f={returnUrl:location.href};d=b.extend({},f,d);if(AJS.DragAndDropUtils.isGearsInstalledNoPrompt()){return google.gears.factory.getPermission("Confluence",Confluence.getContextPath()+"/images/logo/confluence_64.png","Allow Confluence to use Google Gears to perform drag-and-drop file uploads?")}else{var e=confirm("To enable drag-and-drop, you need to install Google Gears. Confluence has detected that you do not have it installed. Would you like to proceed to the website to install it now?");if(e){location.href="http://gears.google.com/?action=install&name=Confluence&message=Install gears for drag-and-drop file upload functionality&return="+encodeURIComponent(d.returnUrl)
}else{return false}}},isFireFox35OrLater:function(){return !this.isFireFox30()&&b.browser.version.indexOf("1.9.")!=-1},isFireFox30:function(){return b.browser.version.indexOf("1.9.0")!=-1},enableDropZoneOn:function(d,e){if(!d){throw new Error("Cannot enable drop zone on invalid container. Received: "+d)}e=e||AJS.DragAndDrop.defaultDropHandler;this.bindDragEnter(d);this.bindDragOver(d);this.bindDragLeave(d);this.bindDrop(d,e)},getFilesFromDropEvent:function(f){if(AJS.DragAndDropUtils.isFolderDropEvent(f)){AJS.DragAndDropUtils.displayMessageDialog("No files were found in the items dragged onto this window. It is possible that you may have dragged a folder - this is not supported. \u003cp>\u003cstrong>Note to Mac OSX users:\u003c\/strong> Some items may appear as files but are actually folders and are therefore not supported. Examples include iWork and Keynote files.\u003c\/p>");return[]}var g=this.getDesktopInstance().getDragData(f,"application/x-gears-files");var d;try{d=g&&g.files}catch(h){AJS.log("Error retrieving file data from drop event")}return d||[]},isFolderDropEvent:function(d){try{return(this.getDesktopInstance().getDragData(d,"application/x-gears-files")||{}).count==0}catch(f){AJS.log("Error retrieving file data from drop event")}},displayMessageDialog:function(e){var d=new AJS.Dialog(600,200,"drag-and-drop-message-dialog");d.addHeader("Drag & Drop").addPanel("Panel 1","<div>"+e+"</div>").addButton("Done",function(f){d.remove()});d.show()},getDesktopInstance:function(){if(!c){c=google.gears.factory.create("beta.desktop")}return c}}})(AJS.$);
AJS.ObservableArrayList=function(){this._data=[];this._pushObservers=[]};AJS.ObservableArrayList.prototype={push:function(a){this._data.push(a);this._notifyPushObservers(a)},length:function(){return this._data.length},remove:function(b,a){return this._remove.call(this._data,b,a)},_remove:function(c,b){var a=this.slice((b||c)+1||this.length);this.length=c<0?this.length+c:c;return this.push.apply(this,a)},shift:function(){return this._data.shift()},removeByPredicate:function(b){var d=[],a=this._data.length;for(var c=0;c<a;c++){if(!b(this._data[c])){d.push(this._data[c])}}this._data=d;return a-this._data.length},addPushObserver:function(a){if(AJS.$.isFunction(a)){this._pushObservers.push(a)}else{throw new Error("Attempting to add an observer that is not a function: "+a)}},_notifyPushObservers:function(c){for(var a=0,b=this._pushObservers.length;a<b;a++){this._pushObservers[a](c)}}};
(function(){var d=0,i=[],k={},g={},a={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},j=/[<>&\"\']/g,b,c=window.setTimeout;function f(){this.returnValue=false}function h(){this.cancelBubble=true}(function(l){var m=l.split(/,/),n,p,o;for(n=0;n<m.length;n+=2){o=m[n+1].split(/ /);for(p=0;p<o.length;p++){g[o[p]]=m[n]}}})("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats,docx pptx xlsx,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/html,htm html xhtml,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/x-flv,flv,video/vnd.rn-realvideo,rv,text/plain,asc txt text diff log,application/octet-stream,exe");var e={STOPPED:1,STARTED:2,QUEUED:1,UPLOADING:2,FAILED:4,DONE:5,CANCELLED:6,GENERIC_ERROR:-100,HTTP_ERROR:-200,IO_ERROR:-300,SECURITY_ERROR:-400,INIT_ERROR:-500,FILE_SIZE_ERROR:-600,FILE_EXTENSION_ERROR:-700,mimeTypes:g,extend:function(l){e.each(arguments,function(m,n){if(n>0){e.each(m,function(p,o){l[o]=p})}});return l},getElement:function(l){return l&&l.nodeType==1?l:document.getElementById(l)},cleanName:function(l){var m,n;n=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(m=0;m<n.length;m+=2){l=l.replace(n[m],n[m+1])}l=l.replace(/\s+/g,"_");l=l.replace(/[^a-z0-9_\-\.]+/gi,"");return l},addRuntime:function(l,m){m.name=l;i[l]=m;i.push(m);return m},guid:function(){var l=new Date().getTime().toString(32),m;for(m=0;m<5;m++){l+=Math.floor(Math.random()*65535).toString(32)}return(e.guidPrefix||"p")+l+(d++).toString(32)},buildUrl:function(m,l){var n="";
e.each(l,function(p,o){n+=(n?"&":"")+encodeURIComponent(o)+"="+encodeURIComponent(p)});if(n){m+=(m.indexOf("?")>0?"&":"?")+n}return m},each:function(o,p){var n,m,l;if(o){n=o.length;if(n===b){for(m in o){if(o.hasOwnProperty(m)){if(p(o[m],m)===false){return}}}}else{for(l=0;l<n;l++){if(p(o[l],l)===false){return}}}}},formatSize:function(l){if(l===b){return e.translate("N/A")}if(l>1048576){return Math.round(l/1048576,1)+" MB"}if(l>1024){return Math.round(l/1024,1)+" KB"}return l+" b"},getPos:function(m,q){var r=0,p=0,t,s=document,n,o;m=m;q=q||s.body;function l(z){var v,w,u=0,A=0;if(z){w=z.getBoundingClientRect();v=s.compatMode==="CSS1Compat"?s.documentElement:s.body;u=w.left+v.scrollLeft;A=w.top+v.scrollTop}return{x:u,y:A}}if(m.getBoundingClientRect&&(navigator.userAgent.indexOf("MSIE")>0&&s.documentMode!==8)){n=l(m);o=l(q);return{x:n.x-o.x,y:n.y-o.y}}t=m;while(t&&t!=q&&t.nodeType){r+=t.offsetLeft||0;p+=t.offsetTop||0;t=t.offsetParent}t=m.parentNode;while(t&&t!=q&&t.nodeType){r-=t.scrollLeft||0;p-=t.scrollTop||0;t=t.parentNode}return{x:r,y:p}},getSize:function(l){return{w:l.clientWidth||l.offsetWidth,h:l.clientHeight||l.offsetHeight}},parseSize:function(l){var m;if(typeof(l)=="string"){l=/^([0-9]+)([mgk]+)$/.exec(l.toLowerCase().replace(/[^0-9mkg]/g,""));m=l[2];l=+l[1];if(m=="g"){l*=1073741824}if(m=="m"){l*=1048576}if(m=="k"){l*=1024}}return l},xmlEncode:function(l){return l?(""+l).replace(j,function(m){return a[m]?"&"+a[m]+";":m}):l},toArray:function(n){var m,l=[];for(m=0;m<n.length;m++){l[m]=n[m]}return l},addI18n:function(l){return e.extend(k,l)},translate:function(l){return k[l]||l},addEvent:function(m,l,n){if(m.attachEvent){m.attachEvent("on"+l,function(){var o=window.event;if(!o.target){o.target=o.srcElement}o.preventDefault=f;o.stopPropagation=h;n(o)})}else{if(m.addEventListener){m.addEventListener(l,n,false)}}}};e.Uploader=function(o){var m={},r,q=[],s,n;r=new e.QueueProgress();o=e.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},o);
function p(){var t;if(this.state==e.STARTED&&s<q.length){t=q[s++];if(t.status==e.QUEUED){this.trigger("BeforeUpload",t);this.trigger("UploadFile",t)}else{p.call(this)}}else{this.trigger("UploaderIdle");this.stop()}}function l(){var u,t;r.reset();for(u=0;u<q.length;u++){t=q[u];if(t.size!==b){r.size+=t.size;r.loaded+=t.loaded}else{r.size=b}if(t.status==e.DONE){r.uploaded++}else{if(t.status==e.FAILED){r.failed++}else{r.queued++}}}if(r.size===b){r.percent=q.length>0?Math.ceil(r.uploaded/q.length*100):0}else{r.bytesPerSec=Math.ceil(r.loaded/((+new Date()-n||1)/1000));r.percent=r.size>0?Math.ceil(r.loaded/r.size*100):0}}e.extend(this,{state:e.STOPPED,features:{},files:q,settings:o,total:r,id:e.guid(),init:function(){var y=this,z,v,u,x=0,w;if(typeof(o.preinit)=="function"){o.preinit(y)}else{e.each(o.preinit,function(B,A){y.bind(A,B)})}o.page_url=o.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(o.url)){o.url=o.page_url+o.url}o.chunk_size=e.parseSize(o.chunk_size);o.max_file_size=e.parseSize(o.max_file_size);y.bind("FilesAdded",function(A,D){var C,B,F=0,G,E=o.filters;if(E&&E.length){G=[];e.each(E,function(H){e.each(H.extensions.split(/,/),function(I){G.push("\\."+I.replace(new RegExp("["+("/^$.*+?|()[]{}\\".replace(/./g,"\\$&"))+"]","g"),"\\$&"))})});G=new RegExp(G.join("|")+"$","i")}for(C=0;C<D.length;C++){B=D[C];B.loaded=0;B.percent=0;B.status=e.QUEUED;if(G&&!G.test(B.name)){A.trigger("Error",{code:e.FILE_EXTENSION_ERROR,message:"File extension error.",file:B});continue}if(B.size!==b&&B.size>o.max_file_size){A.trigger("Error",{code:e.FILE_SIZE_ERROR,message:"File size error.",file:B});continue}q.push(B);F++}if(F){c(function(){y.trigger("QueueChanged");y.refresh()})}else{return false}});if(o.unique_names){y.bind("UploadFile",function(A,B){var D=B.name.match(/\.([^.]+)$/),C="tmp";if(D){C=D[1]}B.target_name=B.id+"."+C})}y.bind("UploadProgress",function(A,B){if(B.status==e.QUEUED){B.status=e.UPLOADING}B.percent=B.size>0?Math.ceil(B.loaded/B.size*100):100;
l()});y.bind("StateChanged",function(A){if(A.state==e.STARTED){n=(+new Date())}});y.bind("QueueChanged",l);y.bind("ActiveFileCancelled",function(){s--;c(function(){p.call(y)})});y.bind("Error",function(A,B){if(B.file){B.file.status=e.FAILED;l();c(function(){p.call(y)})}});y.bind("FileUploaded",function(A,B){B.status=e.DONE;B.loaded=B.size;A.trigger("UploadProgress",B);c(function(){p.call(y)})});if(o.runtimes){v=[];w=o.runtimes.split(/\s?,\s?/);for(z=0;z<w.length;z++){if(i[w[z]]){v.push(i[w[z]])}}}else{v=i}function t(){var D=v[x++],C,A,B;if(D){C=D.getFeatures();A=y.settings.required_features;if(A){A=A.split(",");for(B=0;B<A.length;B++){if(!C[A[B]]){t();return}}}D.init(y,function(E){if(E&&E.success){y.features=C;y.trigger("Init",{runtime:D.name});y.trigger("PostInit");y.refresh()}else{t()}})}else{y.trigger("Error",{code:e.INIT_ERROR,message:"Init error."})}}t();if(typeof(o.init)=="function"){o.init(y)}else{e.each(o.init,function(B,A){y.bind(A,B)})}},refresh:function(){this.trigger("Refresh")},start:function(){if(this.state!=e.STARTED){s=0;this.state=e.STARTED;this.trigger("StateChanged");p.call(this)}},stop:function(){if(this.state!=e.STOPPED){this.state=e.STOPPED;this.trigger("StateChanged")}},getFile:function(u){var t;for(t=q.length-1;t>=0;t--){if(q[t].id===u){return q[t]}}},cancelFile:function(u){var t;for(t=q.length-1;t>=0;t--){if(q[t].id===u.id){if(q[t].status==e.UPLOADING){this.trigger("ActiveFileCancelled",q[t])}q[t].status=e.CANCELLED;return this.splice(t,1)[0]}}},removeFile:function(u){var t;for(t=q.length-1;t>=0;t--){if(q[t].id===u.id){return this.splice(t,1)[0]}}},splice:function(y,w){function u(){for(var z=q.length-1;z>=0;z--){if(q[z].status==e.QUEUED||q[z].status==e.UPLOADING){return true}}return false}var x,t;x=q.splice(y===b?0:y,w===b?q.length:w);this.trigger("FilesRemoved",x);this.trigger("QueueChanged");if(!u()){var v=this;c(function(){v.trigger("UploaderIdle")})}return x},trigger:function(u){var w=m[u.toLowerCase()],v,t;if(w){t=Array.prototype.slice.call(arguments);
t[0]=this;for(v=0;v<w.length;v++){if(w[v].func.apply(w[v].scope,t)===false){return false}}}return true},bind:function(t,v,u){var w;t=t.toLowerCase();w=m[t]||[];w.push({func:v,scope:u||this});m[t]=w},unbind:function(t,v){var w=m[t.toLowerCase()],u;if(w){for(u=w.length-1;u>=0;u--){if(w[u].func===v){w.splice(u,1)}}}}})};e.File=function(o,m,n){var l=this;l.id=o;l.name=m;l.size=n;l.loaded=0;l.percent=0;l.status=0};e.Runtime=function(){this.getFeatures=function(){};this.init=function(l,m){}};e.QueueProgress=function(){var l=this;l.size=0;l.loaded=0;l.uploaded=0;l.failed=0;l.queued=0;l.percent=0;l.bytesPerSec=0;l.reset=function(){l.size=l.loaded=l.uploaded=l.failed=l.queued=l.percent=l.bytesPerSec=0}};e.runtimes={};window.plupload=e})();
(function(d){var e,c;function b(g,h){var f;if("FileReader" in window){f=new FileReader();f.readAsDataURL(g);f.onload=function(){h(f.result)}}else{return h(g.getAsDataURL())}}function a(l,n,k,f,m){var h,g,j,i;b(l,function(o){h=document.createElement("canvas");h.style.display="none";document.body.appendChild(h);g=h.getContext("2d");j=new Image();j.onload=function(){var s,p,q,r,t;i=Math.min(n/j.width,k/j.height);if(i<1){s=Math.round(j.width*i);p=Math.round(j.height*i);h.width=s;h.height=p;g.drawImage(j,0,0,s,p);t=new c();t.init(atob(o.substring(o.indexOf("base64,")+7)));r=t.APP1({width:s,height:p});o=h.toDataURL(f);o=o.substring(o.indexOf("base64,")+7);o=atob(o);if(r){t.init(o);t.setAPP1(r);o=t.getBinary()}h.parentNode.removeChild(h);m({success:true,data:o})}else{m({success:false})}};j.src=o})}d.runtimes.Html5=d.addRuntime("html5",{getFeatures:function(){var l,g,k,i,f,j=window;g=k=i=f=false;if(j.XMLHttpRequest){l=new XMLHttpRequest();k=!!l.upload;g=!!(l.sendAsBinary||l.upload)}if(g){i=!!(File&&(File.prototype.getAsDataURL||j.FileReader)&&l.sendAsBinary);f=!!(File&&File.prototype.slice)}var h=navigator.userAgent;e=h.indexOf("Safari")>0&&h.indexOf("Chrome")<0&&(h.indexOf("Windows")<0&&h.indexOf("Version/4")>0);return{html5:g,dragdrop:j.mozInnerScreenX!==undefined||f||e,jpgresize:i,pngresize:i,multipart:i||!!j.FileReader||!!j.FormData,progress:k,chunking:f||i}},init:function(i,j){var f={},g;function h(n){var l,k,m=[],o;for(k=0;k<n.length;k++){l=n[k];o=d.guid();f[o]=l;if(l.fileSize>0){m.push(new d.File(o,l.fileName,l.fileSize))}}if(m.length){i.trigger("FilesAdded",m)}}g=this.getFeatures();if(!g.html5){j({success:false});return}i.upload=function(k){h(k);i.start()};i.bind("Init",function(o){var s,q=[],n,r,l=o.settings.filters,m,p,k=document.body;s=document.createElement("div");s.id=o.id+"_html5_container";for(n=0;n<l.length;n++){m=l[n].extensions.split(/,/);for(r=0;r<m.length;r++){p=d.mimeTypes[m[r]];if(p){q.push(p)}}}d.extend(s.style,{position:"absolute",background:i.settings.shim_bgcolor||"transparent",width:"100px",height:"100px",overflow:"hidden",zIndex:99999,opacity:i.settings.shim_bgcolor?"":0});
s.className="plupload html5";if(i.settings.container){k=document.getElementById(i.settings.container);k.style.position="relative"}k.appendChild(s);s.innerHTML='<input id="'+i.id+'_html5" style="width:100%;" type="file" accept="'+q.join(",")+'" '+(i.settings.multi_selection?'multiple="multiple"':"")+" />";document.getElementById(i.id+"_html5").onchange=function(){h(this.files);this.value=""}});i.bind("PostInit",function(){var k=d.getElement(i.settings.drop_element),l,m,n=false;if(k){l=k.ownerDocument;if(e){d.addEvent(k,"dragenter",function(q){var o,p;m=l.getElementById(i.id+"_drop");if(!m){m=l.createElement("input");m.setAttribute("type","file");m.setAttribute("id",i.id+"_drop");m.setAttribute("multiple","multiple")}else{return}m.onchange=function(){h(this.files);this.value="";m&&m.parentElement.removeChild(m);m=null};o=d.getPos(k,document.getElementById(i.settings.container));p=d.getSize(k);d.extend(m.style,{position:"absolute",display:"block",top:o.y+"px",left:o.x+"px",width:p.w+"px",height:p.h+"px",opacity:0});k.appendChild(m);n=true;return});d.addEvent(k,"dragleave",function(o){if(!n){m&&m.parentElement.removeChild(m);m=null}n=false})}d.addEvent(k,"dragleave",function(o){i.trigger("dragleave")});d.addEvent(k,"dragover",function(o){i.trigger("dragover");o.preventDefault()});d.addEvent(k,"drop",function(p){var o=p.dataTransfer;if(o&&o.files){h(o.files)}m&&m.parentElement.removeChild(m);m=null;p.preventDefault();if(i.settings.stop_propagation){if(p.cancelBubble){p.cancelBubble=true}else{p.stopPropagation()}}})}});i.bind("Refresh",function(k){var l,m,n;l=d.getElement(i.settings.browse_button);m=d.getPos(l,d.getElement(k.settings.container));n=d.getSize(l);d.extend(document.getElementById(i.id+"_html5_container").style,{top:m.y+"px",left:m.x+"px",width:n.w+"px",height:n.h+"px"})});i.bind("UploadFile",function(k,m){var n=k.settings,p,l;function o(q,u){var t=0,s=0;function r(){var A=q,I,J,E,F,G=0,x="----pluploadboundary"+d.guid(),z,C,y="--",H="\r\n",D="",w,v=k.settings.url;
if(m.status==d.DONE||m.status==d.FAILED||m.status==d.CANCELLED||k.state==d.STOPPED){m.status==(d.FAILED||d.CANCELLED)&&I&&I.abort();return}F={name:m.target_name||m.name};if(n.chunk_size&&g.chunking){z=n.chunk_size;E=Math.ceil(m.size/z);C=Math.min(z,m.size-(t*z));if(typeof(q)=="string"){A=q.substring(t*z,t*z+C)}else{A=q.slice(t*z,C)}F.chunk=t;F.chunks=E}else{C=m.size}I=new XMLHttpRequest();J=I.upload;if(J){J.onprogress=function(K){m.loaded=Math.min(m.size,s+K.loaded-G);if(m.status==d.CANCELLED){I.abort();return}k.trigger("UploadProgress",m)}}if(!k.settings.multipart||!g.multipart){v=d.buildUrl(k.settings.url,F)}else{F.name=m.target_name||m.name}I.open("post",v,true);I.onreadystatechange=function(){var K,M;if(m.status==d.FAILED||m.status==d.CANCELLED){return}if(I.readyState==4){try{K=I.status}catch(L){K=0}if(K>=400){k.trigger("Error",{code:d.HTTP_ERROR,message:"HTTP Error.",file:m,status:K,response:I.responseText||""})}else{if(E){M={chunk:t,chunks:E,response:I.responseText,status:K};k.trigger("ChunkUploaded",m,M);s+=C;if(M.cancelled){m.status=d.FAILED;return}m.loaded=Math.min(m.size,(t+1)*z)}else{m.loaded=m.size}k.trigger("UploadProgress",m);if(!E||++t>=E){m.status=d.DONE;k.trigger("FileUploaded",m,{response:I.responseText,status:K})}else{r()}}}};d.each(k.settings.headers,function(L,K){I.setRequestHeader(K,L)});if(k.settings.multipart&&g.multipart){if(!I.sendAsBinary){var B=new FormData();d.each(d.extend(F,k.settings.multipart_params),function(L,K){B.append(K,L)});B.append(k.settings.file_data_name,A);I.send(B);return}I.setRequestHeader("Content-Type","multipart/form-data; boundary="+x);d.each(d.extend(F,k.settings.multipart_params),function(L,K){D+=y+x+H+'Content-Disposition: form-data; name="'+K+'"'+H+H;D+=L+H});w=d.mimeTypes[m.name.replace(/^.+\.([^.]+)/,"$1")]||"application/octet-stream";D+=y+x+H+'Content-Disposition: form-data; name="'+k.settings.file_data_name+'"; filename="'+m.name+'"'+H+"Content-Type: "+w+H+H+A+H+y+x+y+H;G=D.length-A.length;A=D}else{I.setRequestHeader("Content-Type","application/octet-stream")
}if(u){I.setRequestHeader("Content-Encoding",u)}if(I.sendAsBinary){I.sendAsBinary(A)}else{I.send(A)}}r()}p=f[m.id];l=k.settings.resize;if(g.jpgresize){if(l&&/\.(png|jpg|jpeg)$/i.test(m.name)){a(p,l.width,l.height,/\.png$/i.test(m.name)?"image/png":"image/jpeg",function(q){if(q.success){m.size=q.data.length;o(q.data)}else{o(p.getAsBinary(),p.encoding)}})}else{o(p.getAsBinary(),p.encoding)}}else{o(p.getData?p.getData():p,p.encoding)}});j({success:true})}});c=function(){var h,i,z,r,s,m,q,t,D,o,A,w,j,C,f,u,B,y,k,g;function n(){var G=false;function H(J,L){var I=G?0:-8*(L-1),M=0,K;for(K=0;K<L;K++){M|=(u.charCodeAt(J+K)<<Math.abs(I+K*8))}return M}function E(I,K,J){u=u.substr(0,I)+K+u.substr((J===true?K.length:0)+I)}function F(J,K,M){var N="",I=G?0:-8*(M-1),L;for(L=0;L<M;L++){N+=String.fromCharCode((K>>Math.abs(I+L*8))&255)}E(J,N,true)}return{II:function(I){if(I===f){return G}else{G=I}},init:function(I){u=I},SEGMENT:function(I,K,J){if(!arguments.length){return u}if(typeof K=="number"){return u.substr(parseInt(I,10),K)}E(I,K,J)},BYTE:function(I){return H(I,1)},SHORT:function(I){return H(I,2)},LONG:function(I,J){if(J===f){return H(I,4)}else{F(I,J,4)}},SLONG:function(I){var J=H(I,4);return(J>2147483647?J-4294967296:J)},STRING:function(I,J){var K="";for(J+=I;I<J;I++){K+=String.fromCharCode(H(I,1))}return K}}}D=new n();B={274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"};y={36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"};k={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"};g={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};
function p(E,L){var G=D.SHORT(E),I,O,Q,K,J,F,H,M,N=[],P={};for(I=0;I<G;I++){H=F=E+12*I+2;Q=L[D.SHORT(H)];if(Q===f){continue}K=D.SHORT(H+=2);J=D.LONG(H+=2);H+=4;N=[];switch(K){case 1:case 7:if(J>4){H=D.LONG(H)+C}for(O=0;O<J;O++){N[O]=D.BYTE(H+O)}break;case 2:if(J>4){H=D.LONG(H)+C}P[Q]=D.STRING(H,J-1);continue;case 3:if(J>2){H=D.LONG(H)+C}for(O=0;O<J;O++){N[O]=D.SHORT(H+O*2)}break;case 4:if(J>1){H=D.LONG(H)+C}for(O=0;O<J;O++){N[O]=D.LONG(H+O*4)}break;case 5:H=D.LONG(H)+C;for(O=0;O<J;O++){N[O]=D.LONG(H+O*4)/D.LONG(H+O*4+4)}break;case 9:H=D.LONG(H)+C;for(O=0;O<J;O++){N[O]=D.SLONG(H+O*4)}break;case 10:H=D.LONG(H)+C;for(O=0;O<J;O++){N[O]=D.SLONG(H+O*4)/D.SLONG(H+O*4+4)}break;default:continue}M=(J==1?N[0]:N);if(g.hasOwnProperty(Q)&&typeof M!="object"){P[Q]=g[Q][M]}else{P[Q]=M}}return P}function x(){var E=t+4;C+=t;if(D.STRING(E,4).toUpperCase()!=="EXIF"||D.SHORT(E+=4)!==0){return}D.II(D.SHORT(E+=2)==18761);if(D.SHORT(E+=2)!==42){return}j=C+D.LONG(E+=2);h=p(j,B);A=("ExifIFDPointer" in h?C+h.ExifIFDPointer:f);w=("GPSInfoIFDPointer" in h?C+h.GPSInfoIFDPointer:f);return true}function l(E,J,I){var H=E.SHORT(I),G,F;for(F=0;F<H;F++){G=I+12*F+2;if(E.SHORT(G)==J){return G+8}}}function v(H,F){var G,I,J=A!=f?A-t:f,E=new n();E.init(q);E.II(D.II());if(J===f){return}G=l(E,40962,J);if(G!==f){E.LONG(G,H)}I=l(E,40963,J);if(I!==f){E.LONG(I,F)}q=E.SEGMENT()}return{init:function(E){C=10;h=i=z=r=s=m=q=t=o=f;D.init(E);if(D.SHORT(0)!==65496){return false}switch(D.SHORT(2)){case 65504:s=2;m=D.SHORT(4)+2;if(D.SHORT(m)==65505){t=m;o=D.SHORT(m+2)+2}break;case 65505:t=2;o=D.SHORT(4)+2;break;default:return false}if(o!==f){x()}},APP1:function(E){if(t===f&&o===f){return}q=q||(q=D.SEGMENT(t,o));if(E!==f&&"width" in E&&"height" in E){v(E.width,E.height)}return q},EXIF:function(){i=p(A,y);i.ExifVersion=String.fromCharCode(i.ExifVersion[0],i.ExifVersion[1],i.ExifVersion[2],i.ExifVersion[3]);return i},GPS:function(){z=p(w,k);z.GPSVersionID=z.GPSVersionID.join(".");return z},setAPP1:function(E){if(t!==f){return false
}D.SEGMENT((s?s+m:2),E)},getBinary:function(){return D.SEGMENT()}}}})(plupload);
(function(b){var c={};function a(i,e,k,j,d){var l,g,f,h;g=google.gears.factory.create("beta.canvas");g.decode(i);h=Math.min(e/g.width,k/g.height);if(h<1){e=Math.round(g.width*h);k=Math.round(g.height*h)}else{e=g.width;k=g.height}g.resize(e,k);return g.encode(d,{quality:j/100})}b.runtimes.Gears=b.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,chunks:true,progress:true,multipart:true}},init:function(g,i){var h;if(!window.google||!google.gears){return i({success:false})}try{h=google.gears.factory.create("beta.desktop")}catch(f){return i({success:false})}function d(k){var j,e,l=[],m;for(e=0;e<k.length;e++){j=k[e];m=b.guid();c[m]=j.blob;l.push(new b.File(m,j.name,j.blob.length))}g.trigger("FilesAdded",l)}g.bind("PostInit",function(){var j=g.settings,e=b.getElement(g.settings.drop_element);if(e){b.addEvent(e,"dragover",function(k){h.setDropEffect(k,"copy");k.preventDefault()});b.addEvent(e,"drop",function(l){var k=h.getDragData(l,"application/x-gears-files");if(k){d(k.files)}l.preventDefault()});e=0}b.addEvent(b.getElement(g.settings.browse_button),"click",function(o){var n=[],l,k,m;o.preventDefault();for(l=0;l<j.filters.length;l++){m=j.filters[l].extensions.split(",");for(k=0;k<m.length;k++){n.push("."+m[k])}}h.openFiles(d,{singleFile:!j.multi_selection,filter:n})})});g.bind("UploadFile",function(o,l){var q=0,p,m,n=0,k=o.settings.resize,e;m=o.settings.chunk_size;e=m>0;p=Math.ceil(l.size/m);if(!e){m=l.size;p=1}if(k&&/\.(png|jpg|jpeg)$/i.test(l.name)){c[l.id]=a(c[l.id],k.width,k.height,k.quality||90,/\.png$/i.test(l.name)?"image/png":"image/jpeg")}l.size=c[l.id].length;function j(){var v,x,s=o.settings.multipart,r=0,w={name:l.target_name||l.name},t=o.settings.url;function u(z){var y,E="----pluploadboundary"+b.guid(),B="--",D="\r\n",A,C;if(s){v.setRequestHeader("Content-Type","multipart/form-data; boundary="+E);y=google.gears.factory.create("beta.blobbuilder");b.each(b.extend(w,o.settings.multipart_params),function(G,F){y.append(B+E+D+'Content-Disposition: form-data; name="'+F+'"'+D+D);
y.append(G+D)});C=b.mimeTypes[l.name.replace(/^.+\.([^.]+)/,"$1")]||"application/octet-stream";y.append(B+E+D+'Content-Disposition: form-data; name="'+o.settings.file_data_name+'"; filename="'+l.name+'"'+D+"Content-Type: "+C+D+D);y.append(z);y.append(D+B+E+B+D);A=y.getAsBlob();r=A.length-z.length;z=A}v.send(z)}if(l.status==b.DONE||l.status==b.FAILED||o.state==b.STOPPED){return}if(e){w.chunk=q;w.chunks=p}x=Math.min(m,l.size-(q*m));if(!s){t=b.buildUrl(o.settings.url,w)}v=google.gears.factory.create("beta.httprequest");v.open("POST",t);if(!s){v.setRequestHeader("Content-Disposition",'attachment; filename="'+l.name+'"');v.setRequestHeader("Content-Type","application/octet-stream")}b.each(o.settings.headers,function(z,y){v.setRequestHeader(y,z)});v.upload.onprogress=function(y){l.loaded=n+y.loaded-r;o.trigger("UploadProgress",l)};v.onreadystatechange=function(){var y;if(v.readyState==4){if(v.status==200){y={chunk:q,chunks:p,response:v.responseText,status:v.status};o.trigger("ChunkUploaded",l,y);if(y.cancelled){l.status=b.FAILED;return}n+=x;if(++q>=p){l.status=b.DONE;o.trigger("FileUploaded",l,{response:v.responseText,status:v.status})}else{j()}}else{o.trigger("Error",{code:b.HTTP_ERROR,message:"HTTP Error.",file:l,chunk:q,chunks:p,status:v.status})}}};if(q<p){u(c[l.id].slice(q*m,x))}}j()});i({success:true})}})})(plupload);
AJS.GearsUploadWork=function(a,b){if(!a){throw new Error("workId must be valid. Received: "+a)}if(!b){throw new Error("file must be valid. Received: "+b)}this.id=a;this.file=b};
AJS.GearsFileStatus=function(a,d,b,c){this.workId=a;this.file=d;this.fileSize=d.blob.length;this.status=b;if(c){this.errorMessage=c}};AJS.GearsFileStatus.QUEUED={name:"QUEUED"};AJS.GearsFileStatus.TOO_LARGE={name:"TOO_LARGE"};AJS.GearsFileStatus.INVALID_CHARS={name:"INVALID_CHARS"};
(function(a){AJS.DragAndDropProgressDialog=function(b){var c=this;var d={header:"Attach File(s)",width:600,height:400};this._options=a.extend({},d,b);this.id="drag-and-drop-progress-dialog";this._dialog=new AJS.Dialog(this._options.width,this._options.height,this.id);this._dialog.addHeader(this._options.header).addPanel("Panel 1",'<ul id="upload-statuses"></ul>').addButton("Done",function(){c.hide();c.clearRenderOutput()},"all-file-uploads-complete");this._dialog.getCurrentPanel().setPadding(0);this._$closeButton=a(".all-file-uploads-complete");a(document).keydown(function(f){if(f.which==27){if(!c._$closeButton.attr("disabled")){c.hide();c.clearRenderOutput()}return AJS.stopEvent(f)}});this._$container=a("#upload-statuses");this._fileStatusesRendered=0;this._workIdsOfFilesInProgress=[];this.cancelListeners=[];this.onShowListeners=[];this._hidden=true};AJS.DragAndDropProgressDialog.prototype={show:function(){if(this._hidden){this._dialog.show();this._hidden=false;a.each(this.onShowListeners,function(b,c){c()})}},hide:function(){if(!this._hidden){this._dialog.hide();this._hidden=true}},_getProgressElementId:function(b){return"file-"+b+"-progress"},render:function(c){this._workIdsOfFilesInProgress.push(c.workId);this._$container.append(AJS.DragAndDropProgressDialog.Templates.fileStatus({isFirst:(this._fileStatusesRendered++===0),filename:c.file.name,progressElementId:this._getProgressElementId(c.workId),workId:c.workId,showCancel:(c.status===AJS.GearsFileStatus.QUEUED||c.status==plupload.QUEUED)}));a("#cancel-or-success-placeholder-"+c.workId).hover(function(){a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")});var b=a("#"+this._getProgressElementId(c.workId));b.progressbar({value:100});b.addClass("aui-progressbar-animated");if(c.status===AJS.GearsFileStatus.QUEUED||c.status==plupload.QUEUED){a("#file-upload-cancel-"+c.workId).click((function(d){return function(f){a.each(d,function(e,g){g(f,c)
})}})(this.cancelListeners))}else{this.renderError(c.workId,c.errorMessage)}},renderError:function(d,c){if(a.inArray(d,this._workIdsOfFilesInProgress)==-1){throw new Error("No file status found with id: "+d)}var b=a("#"+this._getProgressElementId(d));b.hasClass("aui-progressbar-animated")&&b.removeClass("aui-progressbar-animated");b.progressbar("option","value",100);b.addClass("aui-progressbar-error");a("#file-upload-progress-text-"+d).html(c);a("#cancel-or-success-placeholder-"+d).hide()},hasErrors:function(){return !!a("#upload-statuses .aui-progressbar-error").length},renderUpdateToBytesUploaded:function(h,g,b){if(a.inArray(h,this._workIdsOfFilesInProgress)==-1){throw new Error("No file status found with id: "+h)}var d=AJS.DragAndDropUtils.niceSize(g);var f=a("#file-"+h+"-uploaded");if(!!f.length){f.text(d)}else{a("#file-upload-progress-text-"+h).html('<span id="file-'+h+'-uploaded">'+d+"</span> of "+AJS.DragAndDropUtils.niceSize(b))}var e=Math.round(g*100/b);var c=a("#"+this._getProgressElementId(h));c.hasClass("aui-progressbar-animated")&&c.removeClass("aui-progressbar-animated");c.progressbar("option","value",e)},renderComplete:function(b){if(a.inArray(b,this._workIdsOfFilesInProgress)==-1){throw new Error("No file status found with id: "+b)}a("#cancel-or-success-placeholder-"+b).html("<span class='ui-icon ui-icon-circle-check'></span>")},renderCancelled:function(c){if(a.inArray(c,this._workIdsOfFilesInProgress)==-1){throw new Error("No file status found with id: "+c)}var b=a("#"+this._getProgressElementId(c));if(b.progressbar("option","value")==0){b.progressbar("option","value",100)}b.hasClass("aui-progressbar-animated")&&b.removeClass("aui-progressbar-animated");b.progressbar("disable");a("#file-upload-progress-text-"+c).html("Cancelled.");a("#cancel-or-success-placeholder-"+c).hide()},clearRenderOutput:function(){this._$container.empty();this._fileStatusesRendered=0;this._workIdsOfFilesInProgress=[]},enableCloseButton:function(b){this._$closeButton.removeAttr("disabled");
this.closeButtonText(b)},disableCloseButton:function(b){if(!this._$closeButton.attr("disabled")){this._$closeButton.attr("disabled","disabled");this.closeButtonText(b)}},closeButtonText:function(b){b&&this._$closeButton.html(b)}}})(AJS.$);
AJS.GearsWorkerPool=function(a,d,c){if(typeof a!="number"){throw new Error("A valid number for numWorkers must be specified. Received: "+a)}if(typeof c!="string"){throw new Error("A valid string for workerUrl must be specified. Received: "+c)}if(!AJS.$.isFunction(d)){throw new Error("A valid function for messageHandler must be specified. Received: "+d)}this._numWorkers=a;try{this._workerPool=google.gears.factory.create("beta.workerpool")}catch(f){throw new Error("Could not construct Gears worker pool.")}this._workerPool.onmessage=d;this._workerIds=new AJS.ObservableArrayList();for(var b=0;b<this._numWorkers;b++){this._workerIds.push(this._workerPool.createWorkerFromUrl(c))}};AJS.GearsWorkerPool.prototype={sendMessage:function(b,a){this._workerPool.sendMessage(b,a)},workerAvailable:function(){return !!this._workerIds.length()},checkoutWorker:function(){if(this.workerAvailable()){return this._workerIds.shift()}else{throw new Error("Attempt to checkout worker when no workers available. Please check workerAvailable() first.")}},checkinWorker:function(a){this._workerIds.push(a)},addWorkerCheckedInObserver:function(a){this._workerIds.addPushObserver(a)}};
AJS.GearsUploadManager=function(b,d,a){this._MAX_WORKERS=2;this._idCounter=1;this._uploadsInProgress=0;this._onErrorHandlers=[];this._onSuccessHandlers=[];this._onCancelHandlers=[];this._onProgressHandlers=[];this._otherMessageHandlers=[];this._onIdleHandlers=[];var c=this._generateUploadObserver(this);this._workerPool=d||new AJS.GearsWorkerPool(this._MAX_WORKERS,this._generateOnmessageHandler(this),b);this._workerPool.addWorkerCheckedInObserver(c);this._workQueue=a||new AJS.ObservableArrayList();this._workQueue.addPushObserver(c);this._workIdToWorkerIdHash={}};AJS.GearsUploadManager.prototype={upload:function(h){var g=[];for(var d=0,e=h.length;d<e;d++){var j=h[d];var a=this._idCounter++;var b=new AJS.GearsUploadWork(a,j);if(this._fileTooLarge(j)){var c=AJS.format("File of size {0} exceeds maximum upload limit of {1}",AJS.DragAndDropUtils.niceSize(j.blob.length).toString(),AJS.DragAndDropUtils.niceSize(AJS.Meta.get("global-settings-attachment-max-size")).toString());g.push(new AJS.GearsFileStatus(a,j,AJS.GearsFileStatus.TOO_LARGE,c))}else{if(this._filenameContainsInvalidCharacters(j.name)){g.push(new AJS.GearsFileStatus(a,j,AJS.GearsFileStatus.INVALID_CHARS,"You cannot attach files with names containing \'#\' characters."))}else{this._workQueue.push(b);g.push(new AJS.GearsFileStatus(a,j,AJS.GearsFileStatus.QUEUED))}}}return g},cancel:function(b){if(this.uploadInProgress(b)){var c=this._workIdToWorkerIdHash[b];this._workerPool.sendMessage({action:{name:"cancel",workId:b}},c)}else{var a=this._workQueue.removeByPredicate(function(d){return d.id===b});if(!a){throw new Error("File with workId: "+c+" could not be cancelled.")}AJS.$.each(this._onCancelHandlers,function(d,e){e(b)})}},uploadInProgress:function(a){return a in this._workIdToWorkerIdHash},isIdle:function(){return !this._workQueue.length()&&!this._uploadsInProgress},addOnErrorHandler:function(a){if(AJS.$.isFunction(a)){this._onErrorHandlers.push(a)}else{throw new Error("Called addOnErrorHandler with non-function object. Received: "+a)}},addOnProgressHandler:function(a){if(AJS.$.isFunction(a)){this._onProgressHandlers.push(a)
}else{throw new Error("Called addOnProgressHandler with non-function object. Received: "+a)}},addOnSuccessHandler:function(a){if(AJS.$.isFunction(a)){this._onSuccessHandlers.push(a)}else{throw new Error("Called addOnSuccessHandler with non-function object. Received: "+a)}},addOnCancelHandler:function(a){if(AJS.$.isFunction(a)){this._onCancelHandlers.push(a)}else{throw new Error("Called onCancelHandlers with non-function object. Received: "+a)}},addOtherMessageHandler:function(a){if(AJS.$.isFunction(a)){this._otherMessageHandlers.push(a)}else{throw new Error("Called addOtherMessageHandler with non-function object. Received: "+a)}},addOnIdleHandler:function(a){if(AJS.$.isFunction(a)){this._onIdleHandlers.push(a)}else{throw new Error("Called addOnIdleHandler with non-function object. Received: "+a)}},_generateUploadObserver:function(a){return function(){if(a._workerPool.workerAvailable()&&a._workQueue.length()>0){var g=a._workerPool.checkoutWorker();var d=a._workQueue.shift();var e=d.file;var c=d.id;var b=e.blob.length;AJS.log("Uploading file with workId: "+c+" and size: "+AJS.DragAndDropUtils.niceSize(b));var f=AJS.DragAndDropUtils.getDesktopInstance().extractMetaData(e.blob);a._workerPool.sendMessage({action:{name:"upload",workId:c,contextPath:contextPath,pageId:AJS.Meta.get("page-id"),draftType:AJS.Meta.get("draft-type"),mimeType:f.mimeType,spaceKey:AJS.Meta.get("space-key"),filename:e.name,fileSize:b,fileBlob:e.blob}},g);a._workIdToWorkerIdHash[c]=g;a._uploadsInProgress++}}},_generateOnmessageHandler:function(a){return function(e,c,f){var d=f.body.status;if(d){if(d.error){AJS.$.each(a._onErrorHandlers,function(b,g){g(d)});a._onWorkerFinishedProcessingWorkItem.call(a,f.sender,d.workId)}else{if(d.complete){if(d.action=="upload"){AJS.$.each(a._onSuccessHandlers,function(b,g){g(d)})}else{if(d.action=="cancel"){AJS.$.each(a._onCancelHandlers,function(b,g){g(d.workId)})}}a._onWorkerFinishedProcessingWorkItem.call(a,f.sender,d.workId)}else{if(d.progress){AJS.$.each(a._onProgressHandlers,function(b,g){g(d)
})}}}}else{AJS.$.each(a._otherMessageHandlers,function(b,g){g(f)})}}},_fileTooLarge:function(a){return a.blob.length>(AJS.Meta.get("global-settings-attachment-max-size")||Number.MAX_VALUE)},_filenameContainsInvalidCharacters:function(a){return a.indexOf("#")!=-1},_onWorkerFinishedProcessingWorkItem:function(b,a){this._workerPool.checkinWorker(b);delete this._workIdToWorkerIdHash[a];this._uploadsInProgress--;if(this.isIdle()){AJS.$.each(this._onIdleHandlers,function(c,d){d()})}}};
// This file was automatically generated from drag-and-drop.soy.
// Please don't edit this file by hand.

if (typeof AJS == 'undefined') { var AJS = {}; }
if (typeof AJS.DragAndDropProgressDialog == 'undefined') { AJS.DragAndDropProgressDialog = {}; }
if (typeof AJS.DragAndDropProgressDialog.Templates == 'undefined') { AJS.DragAndDropProgressDialog.Templates = {}; }


AJS.DragAndDropProgressDialog.Templates.fileStatus = function(opt_data, opt_sb) {
  var output = opt_sb || new soy.StringBuilder();
  output.append('<li ', (opt_data.isFirst) ? 'class="first"' : '', '><label>', soy.$$escapeHtml(opt_data.filename), '</label><div class="file-upload-progress-block"><div class="aui-progressbar" id="', soy.$$escapeHtml(opt_data.progressElementId), '"></div>', (opt_data.showCancel) ? '<div id="cancel-or-success-placeholder-' + soy.$$escapeHtml(opt_data.workId) + '" class="cancel-or-success-placeholder ui-state-default"><span id="file-upload-cancel-' + soy.$$escapeHtml(opt_data.workId) + '" class="ui-icon ui-icon-circle-close" title="' + soy.$$escapeHtml("Cancel Upload") + '"></span></div>' : '', '</div><div id="file-upload-progress-text-', soy.$$escapeHtml(opt_data.workId), '" class="file-upload-progress-text">', soy.$$escapeHtml("Waiting in queue"), '</div></li>');
  if (!opt_sb) return output.toString();
};


