(function(e){"use strict";var t;e.fn.uploader=function(i){if(typeof t==="undefined"){t={dragdrop:true,chunk_size:"10MB",max_file_size:(foswiki.getPreference("TopicInteractionPlugin").attachFileSizeLimit||0)*1024,multipart:true,urlstream_upload:true,file_data_name:"file",multi_selection:true,filters:[{title:"All files",extensions:"*"},{title:"Archives",extensions:"zip,rar,gz,bz,tar"},{title:"Audio files",extensions:"amr,awb,amr,awb,axa,au,snd,flac,mid,midi,kar,mpga,mpega,mp2,mp3,m4a,m3u,oga,ogg,spx,sid,aif,aiff,aifc,gsm,m3u,wma,wax,ra,rm,ram,ra,pls,sd2,wav"},{title:"Image files",extensions:"art,bmp,cdr,cdt,cpt,djvu,djv,gif,ico,ief,jng,jpeg,jpg,jpe,pat,pbm,pcx,pgm,png,pnm,ppm,psd,ras,rgb,svg,svgz,tiff,tif,wbmp,xbm,xpm,xwd"},{title:"MS Office files",extensions:"doc,docx,xls,xlsx,ppt,pptx"},{title:"Open Office files",extensions:"odc,odb,odf,odg,otg,odi,odp,otp,ods,ots,odt,odm,ott,oth"},{title:"PDF files",extensions:"pdf"},{title:"Text files",extensions:"txt"},{title:"Video files",extensions:"3gp,axv,dl,dif,dv,fli,gl,mpeg,mpg,mpe,mp4,m4v,qt,mov,ogv,mxu,flv,lsf,lsx,mng,asf,asx,wm,wmv,wmx,wvx,avi,movie,mpv"}],runtimes:foswiki.getPreference("TopicInteractionPlugin").runtimeEngines,flash_swf_url:foswiki.getPreference("TopicInteractionPlugin").flashUrl,silverlight_xap_url:foswiki.getPreference("TopicInteractionPlugin").silverlightUrl,url:foswiki.getScriptUrl("rest","TopicInteractionPlugin","upload"),fileList:".jqUploaderFiles",browseButton:".jqUploaderBrowse",startButton:".jqUploaderStart",stopButton:".jqUploaderStop",messageContainer:".jqUploaderMessage",autoStartBox:".jqUploaderAutoStart",autoStart:false,error:null,success:function(e,t){}}}i=e.extend({},t,i);this.each(function(){var t=e(this),r=t.find(i.fileList),a=t.find(i.browseButton),s=t.find(i.startButton),o=t.find(i.stopButton),n=t.find(i.messageContainer),l=t.find(i.autoStartBox),d=false,f=false,p=i.autoStart,u,c,g;u=a.attr("id");if(!u){u=plupload.guid();a.attr("id",u)}i.browse_button=u;c=a.parent().attr("id");if(!c){c=plupload.guid();a.parent().attr("id",c)}i.container=c;g=new plupload.Uploader(i);t.data("uploader",g);if(l.attr("type")==="checkbox"){if(typeof foswiki.Pref!=="undefined"&&foswiki.Pref.getPref("UPLOADER::AUTOSTART")=="true"){l.attr("checked","checked");s.addClass("jqUploaderHidden");p=true}else{l.removeAttr("checked");p=false}l.change(function(){p=l.is(":checked");foswiki.Pref.setPref("UPLOADER::AUTOSTART",p?"true":"false");l.blur();if(p){s.addClass("jqUploaderHidden")}else{s.removeClass("jqUploaderHidden")}})}else if(l.attr("type")==="hidden"){p=l.val()==="true"?true:false}function m(t){var i=t.status,r,a=e("#"+t.id),s=t.statusText||"";a.find(".jqUploaderFileAction").removeClass("jqUploaderDelete").children("a").attr("title",s);if(i==plupload.DONE){r="jqUploaderDone"}if(i==plupload.FAILED){r="jqUploaderFailed"}if(i==plupload.QUEUED){r="jqUploaderQueued";a.find(".jqUploaderFileAction").addClass("jqUploaderDelete")}if(i==plupload.UPLOADING){r="jqUploaderUploading"}if(i<0){r="jqUploaderError"}if(r!==undefined){a.removeClass("jqUploaderDone jqUploaderFailed jqUploaderQueued jqUploaderUploading").addClass(r)}return a}function U(t,i){if(i!==undefined){n.removeClass("foswikiSuccessMessage foswikiErrorMessage foswikiTipMessage").addClass(i)}if(t===undefined){var r=g.total.uploaded+1,a=g.total.bytesPerSec,s=g.files.length;if(r>s){r=s}t=e.i18n("Uploading %files% of %total% file(s) with %bps%/s",{files:r,total:s,bps:plupload.formatSize(a)})}return n.text(t).show()}function j(t){var i=e("#"+t.id),r=i.find(".jqUploaderFileName"),a=r.width()*t.percent/100,s=r.height();i.find(".jqUploaderFileProgress").css({width:a+"px",height:s+"px"});i.find(".jqUploaderFileStatus").html(t.percent+"%");m(t)}function h(t){var i=t.size,a;if(t.status==plupload.DONE){return}if(i){i=plupload.formatSize(i)}else{i=""}a=e("
"+""+""+t.name+" | "+""+i+" | "+" | "+" | "+"
").appendTo(r);e(".jqUploaderFileAction a",a).click(function(i){var r=e(this);if(r.parent().is(".jqUploaderDelete")){a.remove();g.removeFile(t)}else{}return false});return a}function v(){r.empty();e.each(g.files,function(e,t){h(t);j(t)})}g.bind("BeforeUpload",function(r,a){var s={},o=true,n;t.find("input").each(function(){var t=e(this),i=t.attr("name"),r=t.attr("type"),a;if(r=="checkbox"){a=t.is(":checked")?"on":"off"}else{a=t.val()}if(typeof i!=="undefined"&&typeof a!=="undefined"){s[i]=a}});s.topic=foswiki.getPreference("WEB")+"."+foswiki.getPreference("TOPIC");s.id=(new Date).getTime();if(g.features.multipart&&g.settings.multipart){g.settings.multipart_params=s}else{g.settings.url=i.url;for(n in s){g.settings.url+=(o?"?":"&")+"key="+s[n];o=false}}});g.bind("UploadComplete",function(e,t){});g.bind("UploadFile",function(i,r){var a=e("#"+r.id);j(r);U();t.find(".jqUploaderFilesContainer").stop().scrollTo(a,{duration:300,onAfter:function(){a.addClass("jqUploaderCurrent")},offset:{top:-97,left:0}})});g.bind("Init",function(e,i){if(f){return}f=true;if(g.features.dragdrop&&g.settings.dragdrop){var a=r.parent(),l=a.attr("id");if(!l){l=plupload.guid();a.attr("id",l)}t.find(".jqUploaderDropText").show();g.settings.drop_element=l}s.click(function(e){n.hide();t.trigger("Start");return false});o.click(function(e){t.trigger("Stop");return false})});g.bind("Error",function(t,i){var r=i.file,a,s;if(i.response){try{s=e.parseJSON(i.response);if(typeof s.error!=="undefined"){a=s.error.message}}catch(o){alert("can't parse json response from backend")}}if(typeof a==="undefined"){a=i.message.replace(/\.$/,"");if(i.details){a+=", "+i.details}}if(r){a=r.name+": "+a;m(r).attr("title",a)}U(a,"foswikiErrorMessage")});g.bind("StateChanged",function(){if(g.state==plupload.STOPPED){var e;if(d){e="Error: transfer aborded"}else if(g.total.failed){e="Error: some files faild to upload"}else{}if(e){if(!n.is(".foswikiErrorMessage")){U(e,"foswikiErrorMessage")}if(g.settings.error){g.settings.error(t,g.files)}}else{if(g.settings.success){g.settings.success(t,g.files)}}o.addClass("jqUploaderHidden");if(!p){s.removeClass("jqUploaderHidden")}}else if(g.state===plupload.STARTED){d=false;U(undefined,"foswikiTipMessage")}v()});g.bind("QueueChanged",function(){v();if(g.state!==plupload.STARTED){if(p){t.trigger("Start")}else{}}});g.bind("FileUploaded",function(t,i,r){var a,s=false;try{a=e.parseJSON(r.response)}catch(o){alert("can't parse json response from backend");s=true}if(s){t.trigger("Error",{code:plupload.HTTP_ERROR,message:"can't parse json response from backend",response:r.response,file:i});return false}if(typeof a.error!=="undefined"){t.trigger("Error",{code:plupload.HTTP_ERROR,message:a.error.message,file:i});return false}e.each(g.files,function(e,t){if(typeof a.result[t.name]!="undefined"){t.name=a.result[t.name]}});j(i);U()});g.bind("UploadProgress",function(e,t){if(g.state!==plupload.STOPPED){if(g.total.uploaded==g.files.length){g.stop()}else{j(t);U()}}else{v()}});g.bind("FilesAdded",function(e,t){n.hide()});g.bind("ChunkUploaded",function(e,t,i){});g.bind("FilesRemoved",function(){});g.bind("PostInit",function(e){});t.bind("Refresh",function(e){g.refresh();e.stopPropagation();return false});t.bind("Start",function(t){var i=g.files.length;if(i){if(!e(this).is("plupload_disabled")){s.addClass("jqUploaderHidden");o.removeClass("jqUploaderHidden");g.start()}}else{}});t.bind("Stop",function(t){d=true;if(!p){s.removeClass("jqUploaderHidden")}o.addClass("jqUploaderHidden");e.each(g.files,function(e,t){if(t.status==plupload.UPLOADING){t.status=plupload.FAILED}});g.stop()});g.init()});return this};e(function(){e(".jqUploader:not(.jqInitedUploader)").livequery(function(){var t=e(this),i=t.metadata();t.addClass("jqInitedUploader");t.uploader(i)})})})(jQuery);