(function(g){var c="file_upload",e="undefined",f="function",a,d,b=function(l,k){var i=0,j=[];if(k){if(k.length){j=k}else{j[k-1]=null}}this.complete=function(){i+=1;if(i===j.length){l(j);i=0;j=[]}};this.push=function(m){j.push(m)};this.getList=function(){return j}},h=function(){var i=[];this.push=function(j){i.push(j);if(i.length===1){j()}};this.next=function(){i.shift();if(i.length){i[0]()}}};a=function(K){var I=this,aa,R,U={namespace:c,uploadFormFilter:function(ad){return true},fileInputFilter:function(ad){return true},cssClass:c,dragDropSupport:true,dropZone:K,url:function(ad){return ad.attr("action")},method:function(ad){return ad.attr("method")},fieldName:function(ad){return ad.attr("name")},formData:function(ad){return ad.serializeArray()},requestHeaders:null,multipart:true,multiFileRequest:false,withCredentials:false,forceIframeUpload:false,sequentialUploads:false,maxChunkSize:null,maxFileReaderSize:50000000,replaceFileInput:true,seenAborts:[]},D={},i={},S=/^http(s)?:\/\//,B,q=new b(function(ad){if(typeof U.onLoadAll===f){U.onLoadAll(ad)}}),P=new h(),k=function(){q.complete();P.next()},n=function(){return typeof XMLHttpRequest!==e&&typeof XMLHttpRequestUpload!==e&&typeof File!==e&&(!U.multipart||typeof FormData!==e||(typeof FileReader!==e&&typeof XMLHttpRequest.prototype.sendAsBinary===f))},o=function(){if(U.dragDropSupport){if(typeof U.onDocumentDragEnter===f){D["dragenter."+U.namespace]=function(ad){U.onDocumentDragEnter(ad)}}if(typeof U.onDocumentDragLeave===f){D["dragleave."+U.namespace]=function(ad){U.onDocumentDragLeave(ad)}}D["dragover."+U.namespace]=I.onDocumentDragOver;D["drop."+U.namespace]=I.onDocumentDrop;g(document).bind(D);if(typeof U.onDragEnter===f){i["dragenter."+U.namespace]=function(ad){U.onDragEnter(ad)}}if(typeof U.onDragLeave===f){i["dragleave."+U.namespace]=function(ad){U.onDragLeave(ad)}}i["dragover."+U.namespace]=I.onDragOver;i["drop."+U.namespace]=I.onDrop;U.dropZone.bind(i)}R.bind("change."+U.namespace,I.onChange)},y=function(){g.each(D,function(ad,ae){g(document).unbind(ad,ae)});g.each(i,function(ad,ae){U.dropZone.unbind(ad,ae)});R.unbind("change."+U.namespace)},O=function(ad){return typeof ad.uploadedBytes!==e},N=function(ad,ae,ag){var af;if(typeof document.createEvent===f&&typeof ProgressEvent!==e){af=document.createEvent("ProgressEvent");af.initProgressEvent("progress",false,false,ad,ae,ag)}else{af={lengthComputable:true,loaded:ae,total:ag}}return af},r=function(ah,ad,af){var ae,ag;if(typeof af.progressTotal===e){if(ah[ad]){ag=ah[ad].size;af.progressTotal=ag?ag:1}else{ag=0;for(ae=0;ae<ah.length;ae+=1){ag+=ah[ae].size}af.progressTotal=ag}}return af.progressTotal},s=function(ae,af,aj,al,ag){var ai,ah,ak=0,ad=0;if(ae.lengthComputable&&typeof ag.onProgressAll===f){ag.progressLoaded=parseInt(ae.loaded/ae.total*r(af,aj,ag),10);ah=q.getList();g.each(ah,function(am,an){ak+=an[3].progressLoaded||0;ad+=r(an[0],an[1],an[3])});ai=N(true,ak,ad);ag.onProgressAll(ai,ah)}},p=function(ah,ag,ae,ai,af){var ad;if(O(af)){af.uploadedBytes+=af.chunkSize;ad=N(true,af.uploadedBytes,ag[ae].size);if(typeof af.onProgress===f){af.onProgress(ad,ag,ae,ai,af)}s(ad,ag,ae,ai,af);if(af.uploadedBytes<ag[ae].size){if(typeof af.resumeUpload===f){af.resumeUpload(ah,ag,ae,ai,af,function(){E(ah,ag,ae,ai,af,true)})}else{E(ah,ag,ae,ai,af,true)}return}}af.progressLoaded=r(ag,ae,af);if(typeof af.onLoad===f){af.onLoad(ah,ag,ae,ai,af)}k()},w=function(ah,ag,ae,ai,af){var ad=ah;if(O(af)&&ah.lengthComputable){ad=N(true,af.uploadedBytes+parseInt(ah.loaded/ah.total*af.chunkSize,10),ag[ae].size)}if(typeof af.onProgress===f){af.onProgress(ad,ag,ae,ai,af)}s(ad,ag,ae,ai,af)},Q=function(af,ad,ag,ae){if(ag.upload){ag.upload.onprogress=function(ah){w(ah,af,ad,ag,ae)}}ag.onload=function(ah){p(ah,af,ad,ag,ae)};ag.onabort=function(ah){ae.progressTotal=ae.progressLoaded;if(typeof ae.onAbort===f){ae.onAbort(ah,af,ad,ag,ae)}if(g.inArray(ad,ae.seenAborts)<0){ae.seenAborts.push(ad);k()}};ag.onerror=function(ah){ae.progressTotal=ae.progressLoaded;if(typeof ae.onError===f){ae.onError(ah,af,ad,ag,ae)}k()}},X=function(ad){if(typeof ad.url===f){return ad.url(ad.uploadForm||aa)}return ad.url},C=function(ad){if(typeof ad.method===f){return ad.method(ad.uploadForm||aa)}return ad.method},F=function(ad){if(typeof ad.fieldName===f){return ad.fieldName(ad.fileInput||R)}return ad.fieldName},Y=function(ad){var ae;if(typeof ad.formData===f){return ad.formData(ad.uploadForm||aa)}else{if(g.isArray(ad.formData)){return ad.formData}else{if(ad.formData){ae=[];g.each(ad.formData,function(af,ag){ae.push({name:af,value:ag})});return ae}}}return[]},W=function(ag){if(S.test(ag)){var ah=location.host,af=location.protocol.length+2,ae=ag.indexOf(ah,af),ad=ae+ah.length;if((ae===af||ae===ag.indexOf("@",af)+1)&&(ag.length===ad||g.inArray(ag.charAt(ad),["/","?","#"])!==-1)){return true}return false}return true},H=function(ai,af,aj,ah){var ag=ai[af],ae=X(ah),ad=W(ae);aj.open(C(ah),ae,true);if(ad){aj.setRequestHeader("X-Requested-With","XMLHttpRequest");if(!ah.multipart||O(ah)){aj.setRequestHeader("X-File-Name",ag.name);aj.setRequestHeader("X-File-Type",ag.type);aj.setRequestHeader("X-File-Size",ag.size);if(!O(ah)){aj.setRequestHeader("Content-Type",ag.type)}else{if(!ah.multipart){aj.setRequestHeader("Content-Type","application/octet-stream")}}}}else{if(ah.withCredentials){aj.withCredentials=true}}if(g.isArray(ah.requestHeaders)){g.each(ah.requestHeaders,function(ak,al){aj.setRequestHeader(al.name,al.value)})}else{if(ah.requestHeaders){g.each(ah.requestHeaders,function(ak,al){aj.setRequestHeader(ak,al)})}}},ac=function(af,ah,ae){var ag=new FormData(),ad;g.each(Y(ae),function(ai,aj){ag.append(aj.name,aj.value)});for(ad=0;ad<af.length;ad+=1){ag.append(F(ae),af[ad])}ah.send(ag)},z=function(ad,ae){ad.reader=new FileReader();ad.reader.onload=ae;ad.reader.readAsBinaryString(ad)},V=function(ad){return unescape(encodeURIComponent(ad))},M=function(ak,ag,af,ad){var ai="--",aj="\r\n",ah="",ae=[];g.each(ad,function(al,am){ah+=ai+ak+aj+'Content-Disposition: form-data; name="'+V(am.name)+'"'+aj+aj+V(am.value)+aj});g.each(ag,function(al,am){ah+=ai+ak+aj+'Content-Disposition: form-data; name="'+V(af)+'"; filename="'+V(am.name)+'"'+aj+"Content-Type: "+V(am.type)+aj+aj;ae.push(ah);ae.push(am.reader.result);delete am.reader;ah=aj});ah+=ai+ak+ai+aj;ae.push(ah);return ae.join("")},j=function(ag,ah,af){var ai="----MultiPartFormBoundary"+(new Date()).getTime(),ad,ae;ah.setRequestHeader("Content-Type","multipart/form-data; boundary="+ai);ad=new b(function(){ah.sendAsBinary(M(ai,ag,F(af),Y(af)))},ag.length);for(ae=0;ae<ag.length;ae+=1){z(ag[ae],ad.complete)}},Z=function(af,ag){var ad,ae=ag.uploadedBytes,ah=ag.maxChunkSize;if(af&&typeof af.slice===f&&(ae||(ah&&ah<af.size))){ag.uploadedBytes=ae=ae||0;ad=af.slice(ae,ah||af.size-ae);ag.chunkSize=ad.size;return ad}return af},E=function(ah,ag,ae,aj,af,ad){var ai;ai=function(){if(!ad){if(typeof af.onSend===f&&af.onSend(ah,ag,ae,aj,af)===false){k();return}}var ak=Z(ag[ae],af),al;Q(ag,ae,aj,af);H(ag,ae,aj,af);if(!af.multipart){if(aj.upload){aj.send(ak)}else{g.error("Browser does not support XHR file uploads")}}else{al=(typeof ae==="number")?[ak]:ag;if(typeof FormData!==e){ac(al,aj,af)}else{if(typeof FileReader!==e&&typeof aj.sendAsBinary===f){j(al,aj,af)}else{g.error("Browser does not support multipart/form-data XHR file uploads")}}}};if(!ad){q.push(Array.prototype.slice.call(arguments,1));if(af.sequentialUploads){P.push(ai);return}}ai()},G=function(ai,ah,ae,ag,af){var aj=new XMLHttpRequest(),ad=g.extend({},U);ad.fileInput=ae;ad.uploadForm=ag;if(typeof ad.initUpload===f){ad.initUpload(ai,ah,af,aj,ad,function(){E(ai,ah,af,aj,ad)})}else{E(ai,ah,af,aj,ad)}},t=function(aj,ai,ae,ag,af){var ah=0,ad;if(typeof ae===e){g.each(ai,function(ak,al){ah+=al.size?al.size:1})}else{ah=ai[ae].size?ai[ae].size:1}ad=N(true,ah,ah);af.progressLoaded=ah;s(ad,ai,ae,ag,af)},L=function(ad,af,ae){var ag=Y(ae);af.find(":input").not(":disabled").attr("disabled",true).addClass(ae.namespace+"_disabled");g.each(ag,function(ah,ai){g('<input type="hidden"/>').attr("name",ai.name).val(ai.value).addClass(ae.namespace+"_form_data").appendTo(af)});ad.attr("name",F(ae)).appendTo(af)},J=function(ad,af,ae){ad.detach();af.find("."+ae.namespace+"_disabled").removeAttr("disabled").removeClass(ae.namespace+"_disabled");af.find("."+ae.namespace+"_form_data").remove()},l=function(aj,ai,ad,ah,ag,af,ae){var ak;ak=function(){if(typeof af.onSend===f&&af.onSend(aj,ai,ae,ag,af)===false){k();return}var al={action:ah.attr("action"),method:ah.attr("method"),target:ah.attr("target"),enctype:ah.attr("enctype")};ag.unbind("abort").bind("abort",function(am){ag.readyState=0;ag.unbind("load").attr("src","javascript".concat(":false;"));t(am,ai,ae,ag,af);if(typeof af.onAbort===f){af.onAbort(am,ai,ae,ag,af)}k()}).unbind("load").bind("load",function(am){ag.readyState=4;t(am,ai,ae,ag,af);if(typeof af.onLoad===f){af.onLoad(am,ai,ae,ag,af)}g('<iframe src="javascript:false;" style="display:none;"></iframe>').appendTo(ah).remove();k()});ah.attr("action",X(af)).attr("method",C(af)).attr("target",ag.attr("name")).attr("enctype","multipart/form-data");L(ad,ah,af);ag.readyState=2;ah.get(0).submit();J(ad,ah,af);g.each(al,function(am,an){if(an){ah.attr(am,an)}else{ah.removeAttr(am)}})};q.push([ai,ae,ag,af]);if(af.sequentialUploads){P.push(ak)}else{ak()}},ab=function(ad,ae){if(typeof ae.name===e&&typeof ae.size===e){ae.name=ae.fileName;ae.size=ae.fileSize}},x=function(aj,ae,ai,af){if(!(aj&&ae&&ai)){g.error("Iframe based File Upload requires a file input change event");return}var ag=g('<iframe src="javascript:false;" style="display:none;" name="iframe_'+U.namespace+"_"+(new Date()).getTime()+'"></iframe>'),ad=g.extend({},U),ah=aj.target&&aj.target.files;ah=ah?Array.prototype.slice.call(ah,0):[{name:ae.val(),type:null,size:null}];g.each(ah,ab);af=ah.length===1?0:af;ad.fileInput=ae;ad.uploadForm=ai;ag.readyState=0;ag.abort=function(){ag.trigger("abort")};ag.bind("load",function(){ag.unbind("load");if(typeof ad.initUpload===f){ad.initUpload(aj,ah,af,ag,ad,function(){l(aj,ah,ae,ai,ag,ad,af)})}else{l(aj,ah,ae,ai,ag,ad,af)}}).appendTo(ai)},v=function(af){var ad=0,ag=0,ae;if(U.multipart&&typeof FormData===e){for(ae=0;ae<af.length;ae+=1){ad=af[ae].size;if(ad>U.maxFileReaderSize){return false}ag+=ad}if(U.multiFileRequest&&ag>U.maxFileReaderSize){return false}}return true},T=function(ah,ag,ad,af){if(!v(ag)){x(ah,ad,af);return}var ae;ag=Array.prototype.slice.call(ag,0);g.each(ag,ab);if(U.multiFileRequest&&U.multipart&&ag.length){G(ah,ag,ad,af)}else{for(ae=0;ae<ag.length;ae+=1){G(ah,ag,ad,af,ae)}}},u=function(){aa=(K.is("form")?K:K.find("form")).filter(U.uploadFormFilter)},m=function(){R=(aa.length?aa:K).find("input:file").filter(U.fileInputFilter)},A=function(ad){var ae=ad.clone(true);g("<form/>").append(ae).get(0).reset();ad.after(ae).detach();m()};this.onDocumentDragOver=function(ad){if(typeof U.onDocumentDragOver===f&&U.onDocumentDragOver(ad)===false){return false}ad.preventDefault()};this.onDocumentDrop=function(ad){if(typeof U.onDocumentDrop===f&&U.onDocumentDrop(ad)===false){return false}ad.preventDefault()};this.onDragOver=function(ae){if(typeof U.onDragOver===f&&U.onDragOver(ae)===false){return false}var ad=ae.originalEvent.dataTransfer;if(ad&&ad.files){ad.dropEffect=ad.effectAllowed="copy";ae.preventDefault()}};this.onDrop=function(ae){if(typeof U.onDrop===f&&U.onDrop(ae)===false){return false}var ad=ae.originalEvent.dataTransfer;if(ad&&ad.files&&n()){T(ae,ad.files)}ae.preventDefault()};this.onChange=function(af){if(typeof U.onChange===f&&U.onChange(af)===false){return false}var ad=g(af.target),ae=g(af.target.form);if(ae.length===1){if(U.replaceFileInput){ad.data(c+"_form",ae);A(ad)}}else{ae=ad.data(c+"_form")}if(!U.forceIframeUpload&&af.target.files&&n()){T(af,af.target.files,ad,ae)}else{x(af,ad,ae)}};this.init=function(ad){if(ad){g.extend(U,ad);B=ad}u();m();if(K.data(U.namespace)){g.error('FileUpload with namespace "'+U.namespace+'" already assigned to this element');return}K.data(U.namespace,I).addClass(U.cssClass);U.dropZone.not(K).addClass(U.cssClass);o();if(typeof U.init===f){U.init()}};this.options=function(af){var ah,ae,ag,ad;if(typeof af===e){return g.extend({},U)}if(B){g.extend(B,af)}y();g.each(af,function(ai,aj){switch(ai){case"namespace":g.error("The FileUpload namespace cannot be updated.");return;case"uploadFormFilter":ag=true;ad=true;break;case"fileInputFilter":ad=true;break;case"cssClass":ah=U.cssClass;break;case"dropZone":ae=U.dropZone;break}U[ai]=aj});if(ag){u()}if(ad){m()}if(typeof ah!==e){K.removeClass(ah).addClass(U.cssClass);(ae?ae:U.dropZone).not(K).removeClass(ah);U.dropZone.not(K).addClass(U.cssClass)}else{if(ae){ae.not(K).removeClass(U.cssClass);U.dropZone.not(K).addClass(U.cssClass)}}o()};this.option=function(ae,af){var ad;if(typeof af===e){return U[ae]}ad={};ad[ae]=af;I.options(ad)};this.destroy=function(){if(typeof U.destroy===f){U.destroy()}y();K.removeData(U.namespace).removeClass(U.cssClass);U.dropZone.not(K).removeClass(U.cssClass)};this.upload=function(ad){if(typeof ad.length===e){ad=[ad]}T(null,ad)}};d={init:function(i){return this.each(function(){(new a(g(this))).init(i)})},option:function(k,l,j){j=j?j:c;var i=g(this).data(j);if(i){if(!k){return i.options()}else{if(typeof k==="string"&&typeof l===e){return i.option(k)}}}else{g.error('No FileUpload with namespace "'+j+'" assigned to this element')}return this.each(function(){var m=g(this).data(j);if(m){if(typeof k==="string"){m.option(k,l)}else{m.options(k)}}else{g.error('No FileUpload with namespace "'+j+'" assigned to this element')}})},destroy:function(i){i=i?i:c;return this.each(function(){var j=g(this).data(i);if(j){j.destroy()}else{g.error('No FileUpload with namespace "'+i+'" assigned to this element')}})},upload:function(j,i){i=i?i:c;return this.each(function(){var k=g(this).data(i);if(k){k.upload(j)}else{g.error('No FileUpload with namespace "'+i+'" assigned to this element')}})}};g.fn.fileUpload=function(i){if(d[i]){return d[i].apply(this,Array.prototype.slice.call(arguments,1))}else{if(typeof i==="object"||!i){return d.init.apply(this,arguments)}else{g.error('Method "'+i+'" does not exist on jQuery.fileUpload')}}}}(jQuery));
