p&&(f=t,this.validateFiles.setError(o.err_message.maxTotalSize,!1,o.max_total_size)),e(".dnd-upload-counter span",e('input[data-name="'+s+'"]').parents(".codedropz-upload-wrapper")).text(a[s].total))},getUploadFiles:function(){var a=this;e(".codedropz-upload-handler",f).on("drop",function(e){a.handleFiles(e.originalEvent.dataTransfer.files)}),e("a.cd-upload-btn",f).on("click",function(e){e.preventDefault(),o.handler.val(null),o.handler.click()}),o.handler.on("change",function(e){a.handleFiles(this.files)})},handleFiles:function(n){var s=n.length,t=[];if(a[u].maxFile){var d=a[u].maxFile-a[u].uploaded;d>=0&&n.length>d&&(s=d),0==a[u].uploaded&&a[u].total>0&&(s=a[u].maxFile-a[u].total)}if(e("span.has-error-msg",f).remove(),a[u].total>=a[u].maxFile)return this.validateFiles.setError(o.err_message.maxNumFiles,!0,o.max_file);if(s>0)for(var i=0;i0&&this.validateFiles.setError(o.err_message.maxUploadLimit,!1,o.max_file),a[u].total++,a[u].maxTotalSize+=t.size,t.progressbar=this.progressBar.make(t),!1===this.validateFiles.check(t,u)&&(t.error=!0),a[u].maxTotalSize>p&&(this.validateFiles.setError(o.err_message.maxTotalSize,!0,o.max_total_size),t.pause=!0),r[u].push(t));a[u].uploading=!0,this.processQueue(r[u],u)},validateFiles:{setError:function(a,r,n){if(e("span.has-error-msg",f).remove(),e("."+l,f).after(''+a.replace("%s",n)+""),r)return!1},check:function(r,n){if(!r)return!0;if(r.progressbar){var s=e("#"+r.progressbar).find(".dnd-upload-details");if(e("#"+r.progressbar).find(".has-error").remove(),r.size>a[n].maxSize&&!d)return s.append(''+dnd_cf7_uploader.drag_n_drop_upload.large_file+""),!1;if(0===r.size)return s.append('File is empty. Please upload something more substantial.'),!1;if(regex_type=new RegExp("(.*?).("+o.supported_type+")$"),!regex_type.test(r.name.toLowerCase()))return s.append(''+dnd_cf7_uploader.drag_n_drop_upload.invalid_type+""),!1}return r},checkValidName:function(e){return!!new RegExp(/[{>="'<:;/\}]+/g).test(e)&&encodeURIComponent(e.replace(/[{>="'<:;/\} ]/g,"_"))}},resetQueue:function(e){var n=[];if(a[e].uploading=!0,r[e].length>0)for(var s in r[e])1==!r[e][s].deleted&&n.push(r[e][s]),1==r[e][s].pause&&a[e].maxTotalSize0&&(r[e]=n),this.processQueue(r[e],e),console.log(r[e]),console.log(a[e]),console.log(h.bytesToSize(a[e].maxTotalSize)+" of "+o.max_total_size)},processQueue:function(n,s){var d=0,i=[];if(a[s].uploading){for(var l in n)0==n[l].complete&&0==n[l].error&&0==n[l].pause&&i.push(n[l]);e.isFunction(o.in_progress)&&o.in_progress.call(this,m,i,r[s]);for(l=0;l=t))return;0==d&&(a[s].uploading=!1,e.isFunction(o.completed)&&o.completed.call(this,m,a[s],r[s]))}},progressBar:{make:function(a){var r="dnd-file-"+Math.random().toString(36).substr(2,9),n=!1;1==dnd_cf7_uploader.image_preview&&(n=h.previewThumbnail(a));var s=''+(!1===n?'':"")+'
'+decodeURIComponent(a.name)+" ("+h.bytesToSize(a.size)+') ';return!e("."+l,f).length>0&&f.append(''),e("."+l,f).append(''+s+"
"),r},setProgress:function(a,r){var n=e(".dnd-progress-bar",e("#"+a));return n.length>0&&(progress_width=r*n.width()/100,e("span",n).addClass("in-progress").animate({width:progress_width},10).text(r+"% "),100==r&&(e("span",n).addClass("complete").removeClass("in-progress"),e("#"+a).removeClass("_uploading"))),!1}},uploadFile:function(r,n,t){var l=this,p=new FormData,u=1024*i;p.append("supported_type",o.supported_type),p.append("size_limit",o.max_upload_size),p.append("action","dnd_codedropz_upload"),p.append("upload_dir",o.upload_dir.val()),p.append("post_id",m.find("[name='_wpcf7_container_post']").val()),p.append("security",dnd_cf7_uploader.nonce),p.append("form_id",s.data("id")),p.append("upload_name",s.data("name")),(newName=this.validateFiles.checkValidName(n.file.name))&&p.append("orig-name",decodeURIComponent(newName)),d&&n.size>u?(n.queued=!0,n.chunkSize=u,n.totalChunks=Math.ceil(n.size/n.chunkSize),n.currentChunk=0,this.uploadChunks(r,n,t)):(n.queued=!0,p.append("upload-file",n.file),n.transfer=e.ajax({url:o.ajax_url,type:m.attr("method"),data:p,dataType:"json",cache:!1,contentType:!1,processData:!1,xhr:function(){var e=new window.XMLHttpRequest;return e.upload.onprogress=function(e){if(e.lengthComputable){var a=parseInt(e.loaded/e.total*100);l.progressBar.setProgress(n.progressbar,a-1)}},e},success:function(s){s.success?(l.progressBar.setProgress(n.progressbar,100),n.complete=!0,a[t].uploaded++,l.processQueue(r,t),e.isFunction(o.on_success)&&o.on_success.call(this,n.progressbar,s,t,a[t])):(e("#"+n.progressbar).find(".dnd-upload-details").append(''+s.data+""),n.error=!0,l.processQueue(r,t))},error:function(a,s,o){e("#"+n.progressbar).find(".dnd-upload-details").append(''+o+""),n.error=!0,l.processQueue(r,t)}}))},uploadChunks:function(r,n,t){var d=n.chunkSize*n.currentChunk,i=d+n.chunkSize,l=this;i>n.size&&(i=n.size);var p=this.sliceFile(n.file,d,i),u=new FormData;u.append("security",dnd_cf7_uploader.nonce),u.append("start",d),u.append("end",i),u.append("total_chunks",n.totalChunks),u.append("chunk_size",n.chunkSize),u.append("upload_dir",o.upload_dir.val()),u.append("chunk",n.currentChunk),u.append("chunks-file",p,n.file.name),u.append("unique",n.progressbar),u.append("post_id",m.find("[name='_wpcf7_container_post']").val()),u.append("action","dnd_codedropz_upload_chunks"),u.append("form_id",s.data("id")),u.append("upload_name",s.data("name")),n.chunkTransfer=e.ajax({url:o.ajax_url,type:m.attr("method"),dataType:"json",data:u,type:"POST",contentType:!1,processData:!1,cache:!1,success:function(s,d,i){s&&void 0!==s&&(n.currentChunk++,s.data.partial_chunks&&n.currentChunk'+o+""),n.error=!0,l.processQueue(r,t)},xhr:function(){var e=new window.XMLHttpRequest;return e.upload.onprogress=function(e){if(e.lengthComputable){var a=e.loaded/e.total,r=Math.ceil(1/n.totalChunks*99),s=n.currentChunk/n.totalChunks*99,o=0==n.currentChunk?r*a:r*a+s;l.progressBar.setProgress(n.progressbar,parseInt(o))}},e}})},sliceFile:function(e,a,r){return(e.mozSlice?e.mozSlice:e.webkitSlice?e.webkitSlice:e.slice?e.slice:{}).bind(e)(a,r)},bytesToSize:function(e){return 0===e?"0":(kBytes=e/1024,fileSize=kBytes>=1024?(kBytes/1024).toFixed(2)+"MB":kBytes.toFixed(2)+"KB",fileSize)}};h.init();var g=["wpcf7mailsent","wpcf7spam","wpcf7mailfailed"];for(var _ in g)document.addEventListener(g[_],function(e){name=h.getFieldName(u),r[name]=[],a[name]={total:0,uploaded:0,uploading:!0,maxTotalSize:0,maxSize:o.max_upload_size,maxFile:o.max_file}},!1)})}}(jQuery);