/*!
* jQuery Upload File Plugin
* version: 3.1.0
* @requires jQuery v1.5 or later & form plugin
* Copyright (c) 2013 Ravishanker Kusuma
* http://hayageek.com/
*/
(function(b){if(b.fn.ajaxForm==undefined){b.getScript("http://malsup.github.io/jquery.form.js")}var a={};a.fileapi=b(" ").get(0).files!==undefined;a.formdata=window.FormData!==undefined;b.fn.uploadFile=function(r){var q=b.extend({url:"",method:"POST",enctype:"multipart/form-data",formData:null,returnType:null,allowedTypes:"*",fileName:"file",formData:{},dynamicFormData:function(){return{}},maxFileSize:-1,multiple:true,dragDrop:true,autoSubmit:true,showCancel:true,showAbort:true,showDone:true,showDelete:false,showError:true,showStatusAfterSuccess:true,showStatusAfterError:true,showFileCounter:false,fileCounterStyle:"). ",showProgress:false,onSelect:function(s){return true},onSubmit:function(s,t){},onSuccess:function(t,s,u){},onError:function(u,s,t){},deleteCallback:false,afterUploadAll:false,uploadButtonClass:"ajax-file-upload",dragDropStr:"Drag & Drop Files ",abortStr:"Abort",cancelStr:"Cancel",deletelStr:"Delete",doneStr:"Done",multiDragErrorStr:"Multiple File Drag & Drop is not allowed.",extErrorStr:"is not allowed. Allowed extensions: ",sizeErrorStr:"is not allowed. Allowed Max size: ",uploadErrorStr:"Upload is not allowed"},r);this.fileCounter=1;this.fCounter=0;this.sCounter=0;this.tCounter=0;var d="ajax-file-upload-"+(new Date().getTime());this.formGroup=d;this.hide();this.errorLog=b("
");this.after(this.errorLog);this.responses=[];if(!a.formdata){q.dragDrop=false}var l=this;var e=b(""+b(this).html()+"
");b(e).addClass(q.uploadButtonClass);(function j(){if(b.fn.ajaxForm){if(q.dragDrop){var s=b('
');b(l).before(s);b(s).append(e);b(s).append(b(q.dragDropStr));f(l,q,s)}else{b(l).before(e)}p(l,d,q,e)}else{window.setTimeout(j,10)}})();this.startUpload=function(){b("."+this.formGroup).each(function(t,s){if(b(this).is("form")){b(this).submit()}})};this.stopUpload=function(){b(".ajax-file-upload-red").each(function(t,s){if(b(this).hasClass(l.formGroup)){b(this).click()}})};this.getResponses=function(){return this.responses};var g=false;function i(){if(q.afterUploadAll&&!g){g=true;(function s(){if(l.sCounter!=0&&(l.sCounter+l.fCounter==l.tCounter)){q.afterUploadAll(l);g=false}else{window.setTimeout(s,100)}})()}}function f(v,t,u){u.on("dragenter",function(s){s.stopPropagation();s.preventDefault();b(this).css("border","2px solid #A5A5C7")});u.on("dragover",function(s){s.stopPropagation();s.preventDefault()});u.on("drop",function(w){b(this).css("border","2px dotted #A5A5C7");w.preventDefault();v.errorLog.html("");var s=w.originalEvent.dataTransfer.files;if(!t.multiple&&s.length>1){if(t.showError){b(""+t.multiDragErrorStr+"
").appendTo(v.errorLog)}return}if(t.onSelect(s)==false){return}k(t,v,s)});b(document).on("dragenter",function(s){s.stopPropagation();s.preventDefault()});b(document).on("dragover",function(s){s.stopPropagation();s.preventDefault();u.css("border","2px dotted #A5A5C7")});b(document).on("drop",function(s){s.stopPropagation();s.preventDefault();u.css("border","2px dotted #A5A5C7")})}function h(s){var u="";var t=s/1024;if(parseInt(t)>1024){var v=t/1024;u=v.toFixed(2)+" MB"}else{u=t.toFixed(2)+" KB"}return u}function n(w){var x=[];if(jQuery.type(w)=="string"){x=w.split("&")}else{x=b.param(w).split("&")}var t=x.length;var s=[];var v,u;for(v=0;v"+t[B].name+" "+G.extErrorStr+G.allowedTypes+"").appendTo(A.errorLog)}continue}if(G.maxFileSize!=-1&&t[B].size>G.maxFileSize){if(G.showError){b(""+t[B].name+" "+G.sizeErrorStr+h(G.maxFileSize)+"
").appendTo(A.errorLog)}continue}var C=G;var v=new FormData();var z=G.fileName.replace("[]","");v.append(z,t[B]);var x=G.formData;if(x){var E=n(x);for(var y=0;y");u.appendTo("body");var w=[];w.push(t[B].name);m(u,C,D,w,A);A.fileCounter++}}function c(v,u,x){var w=u.allowedTypes.toLowerCase().split(",");var t=x.split(".").pop().toLowerCase();if(u.allowedTypes!="*"&&jQuery.inArray(t,w)<0){return false}return true}function p(x,A,C,t){var z="ajax-upload-id-"+(new Date().getTime());var v=b("");var u=" ";if(C.multiple){if(C.fileName.indexOf("[]")!=C.fileName.length-2){C.fileName+="[]"}u=" "}var y=b(u).appendTo(v);y.change(function(){x.errorLog.html("");var J=C.allowedTypes.toLowerCase().split(",");var F=[];if(this.files){for(G=0;G"+H+" "+C.extErrorStr+C.allowedTypes+"").appendTo(x.errorLog)}return}E.push({name:H,size:"NA"});if(C.onSelect(E)==false){return}}t.unbind("click");v.hide();p(x,A,C,t);v.addClass(A);if(a.fileapi&&a.formdata){v.removeClass(A);var I=this.files;k(C,x,I)}else{var D="";for(var G=0;G"}else{D+=F[G]+" "}x.fileCounter++}var s=new o(x,C);s.filename.html(D);m(v,C,s,F,x)}});v.css({margin:0,padding:0});var B=b(t).width()+10;if(B==10){B=120}var w=t.height()+10;if(w==10){w=35}t.css({position:"relative",overflow:"hidden",cursor:"default"});y.css({position:"absolute",cursor:"pointer",top:"0px",width:B,height:w,left:"0px","z-index":"100",opacity:"0.0",filter:"alpha(opacity=0)","-ms-filter":"alpha(opacity=0)","-khtml-opacity":"0.0","-moz-opacity":"0.0"});v.appendTo(t)}function o(u,t){this.statusbar=b("
");this.filename=b("
").appendTo(this.statusbar);this.progressDiv=b("").appendTo(this.statusbar).hide();this.progressbar=b("
").appendTo(this.progressDiv);this.abort=b("
"+t.abortStr+"
").appendTo(this.statusbar).hide();this.cancel=b("
"+t.cancelStr+"
").appendTo(this.statusbar).hide();this.done=b("
"+t.doneStr+"
").appendTo(this.statusbar).hide();this.del=b("
"+t.deletelStr+"
").appendTo(this.statusbar).hide();u.errorLog.after(this.statusbar);return this}function m(y,x,t,v,z){var w=null;var u={cache:false,contentType:false,processData:false,forceSync:false,data:x.formData,formData:x.fileData,dataType:x.returnType,beforeSubmit:function(E,B,D){if(x.onSubmit.call(this,v)!=false){var A=x.dynamicFormData();if(A){var s=n(A);if(s){for(var C=0;C
"+x.uploadErrorStr+" ");t.cancel.show();y.remove();t.cancel.click(function(){t.statusbar.remove()});return false},beforeSend:function(A,s){t.progressDiv.show();t.cancel.hide();t.done.hide();if(x.showAbort){t.abort.show();t.abort.click(function(){A.abort()})}if(!a.formdata){t.progressbar.width("5%")}else{t.progressbar.width("1%")}},uploadProgress:function(D,s,C,B){if(B>98){B=98}var A=B+"%";if(B>1){t.progressbar.width(A)}if(x.showProgress){t.progressbar.html(A);t.progressbar.css("text-align","center")}},success:function(A,s,B){z.responses.push(A);t.progressbar.width("100%");if(x.showProgress){t.progressbar.html("100%");t.progressbar.css("text-align","center")}t.abort.hide();x.onSuccess.call(this,v,A,B);if(x.showStatusAfterSuccess){if(x.showDone){t.done.show();t.done.click(function(){t.statusbar.hide("slow");t.statusbar.remove()})}else{t.done.hide()}if(x.showDelete){t.del.show();t.del.click(function(){if(x.deleteCallback){x.deleteCallback.call(this,A,t)}})}else{t.del.hide()}}else{t.statusbar.hide("slow");t.statusbar.remove()}y.remove();z.sCounter+=v.length},error:function(B,s,A){t.abort.hide();if(B.statusText=="abort"){t.statusbar.hide("slow")}else{x.onError.call(this,v,s,A);if(x.showStatusAfterError){t.progressDiv.hide();t.statusbar.append("ERROR: "+A+" ")}else{t.statusbar.hide();t.statusbar.remove()}}y.remove();z.fCounter+=v.length}};if(x.autoSubmit){y.ajaxSubmit(u)}else{if(x.showCancel){t.cancel.show();t.cancel.click(function(){y.remove();t.statusbar.remove()})}y.ajaxForm(u)}}return this}}(jQuery));