Your IP : 18.216.100.123


Current Path : /home/bitrix/ext_www/home-comfort.in.ua/bitrix/js/main/core/core_uploader/
Upload File :
Current File : /home/bitrix/ext_www/home-comfort.in.ua/bitrix/js/main/core/core_uploader/uploader.min.js

(function(window){if(window.BX["Uploader"])return;var BX=window.BX,statuses={new:0,ready:1,preparing:2,inprogress:3,done:4,failed:5,error:5.2,stopped:6,changed:7,uploaded:8},repo={},settings={phpPostMinSize:5.5*1024*1024,phpUploadMaxFilesize:5*1024*1024,phpPostMaxSize:11*1024*1024,estimatedTimeForUploadFile:10*60,maxTimeForUploadFile:15*60,maxSize:null};BX.UploaderManager=function(){};BX.UploaderManager.getById=function(e){return typeof repo[e]!="undefined"?repo[e]:false};BX.Uploader=function(e){if(settings.maxSize===null&&BX.message["bxDiskQuota"]&&BX.message("bxDiskQuota"))settings.maxSize=parseInt(BX.message("bxDiskQuota"));var t;if(!(typeof e=="object"&&e&&(BX(e["input"])||e["input"]===null))){BX.debug(BX.message("UPLOADER_INPUT_IS_NOT_DEFINED"))}else{if(parseInt(BX.message("phpMaxFileUploads"))<=0)t={phpMaxFileUploads:"20"};if(parseInt(BX.message("phpPostMaxSize"))<=0){t=t||{};t["phpPostMaxSize"]=settings.phpPostMaxSize+""}if(parseInt(BX.message("phpUploadMaxFilesize"))<=0){t=t||{};t["phpUploadMaxFilesize"]=settings.phpUploadMaxFilesize+""}if(t)BX.message(t);this.fileInput=e["input"]===null?null:BX(e["input"]);this.controlID=this.controlId=e["controlId"]||"bitrixUploader";this.dialogName="BX.Uploader";this.id=BX.type.isNotEmptyString(e["id"])?e["id"]:Math.random();this.CID=e["CID"]&&BX.type.isNotEmptyString(e["CID"])?e["CID"]:"CID"+BX.UploaderUtils.getId();this.streams=new BX.UploaderStreams(e["streams"],this);this.limits={phpMaxFileUploads:parseInt(BX.message("phpMaxFileUploads")),phpPostMaxSize:Math.min(parseInt(BX.message("phpPostMaxSize")),settings.phpPostMaxSize),phpUploadMaxFilesize:Math.min(parseInt(BX.message("phpUploadMaxFilesize")),settings.phpUploadMaxFilesize),uploadMaxFilesize:e["uploadMaxFilesize"]&&e["uploadMaxFilesize"]>0?e["uploadMaxFilesize"]:0,uploadFileWidth:e["uploadFileWidth"]&&e["uploadFileWidth"]>0?e["uploadFileWidth"]:0,uploadFileHeight:e["uploadFileHeight"]&&e["uploadFileHeight"]>0?e["uploadFileHeight"]:0,allowUpload:e["allowUpload"]=="A"||e["allowUpload"]=="I"||e["allowUpload"]=="F"?e["allowUpload"]:"A",allowUploadExt:typeof e["allowUploadExt"]==="string"?e["allowUploadExt"]:""};var s=["phpMaxFileUploads","phpPostMaxSize","phpUploadMaxFilesize"];for(t=0;t<s.length;t++){this.limits[s[t]]=typeof e[s[t]]=="number"&&e[s[t]]<this.limits[s[t]]?e[s[t]]:this.limits[s[t]]}this.limits["phpPostSize"]=Math.min(this.limits["phpPostMaxSize"],settings.phpPostMinSize);this.limits["uploadFile"]=e["allowUpload"]=="I"?"image/*":"";this.limits["uploadFileExt"]=this.limits["allowUploadExt"];if(this.limits["uploadFileExt"].length>0){var i=this.limits["uploadFileExt"].split(this.limits["uploadFileExt"].indexOf(",")>=0?",":" ");for(t=0;t<i.length;t++)i[t]=i[t].charAt(0)=="."?i[t].substr(1):i[t];this.limits["uploadFileExt"]=i.join(",")}this.params=e;this.params["filesInputName"]=this.fileInput&&this.fileInput["name"]?this.fileInput["name"]:"FILES";this.params["filesInputMultiple"]=this.fileInput&&this.fileInput["multiple"]||this.params["filesInputMultiple"]?"multiple":false;this.params["uploadFormData"]=this.params["uploadFormData"]=="N"?"N":"Y";this.params["uploadMethod"]=this.params["uploadMethod"]=="immediate"?"immediate":"deferred";this.params["uploadFilesForPackage"]=parseInt(this.params["uploadFilesForPackage"]>0?this.params["uploadFilesForPackage"]:0);this.params["imageExt"]="jpg,bmp,jpeg,jpe,gif,png";this.params["uploadInputName"]=!!this.params["uploadInputName"]?this.params["uploadInputName"]:"bxu_files";this.params["uploadInputInfoName"]=!!this.params["uploadInputInfoName"]?this.params["uploadInputInfoName"]:"bxu_info";this.params["deleteFileOnServer"]=!(this.params["deleteFileOnServer"]===false||this.params["deleteFileOnServer"]==="N");this.params["pasteFileHashInForm"]=!(this.params["pasteFileHashInForm"]===false||this.params["pasteFileHashInForm"]==="N");repo[this.id]=this;if(this.init(this.fileInput)){if(!!e["dropZone"])this.initDropZone(BX(e["dropZone"]));if(!!e["events"]){for(t in e["events"]){if(e["events"].hasOwnProperty(t)){BX.UploaderUtils.bindEvents(this,t,e["events"][t])}}}this.uploadFileUrl=!!e["uploadFileUrl"]?e["uploadFileUrl"]:this.form?this.form.getAttribute("action"):"";if(!this.uploadFileUrl||this.uploadFileUrl.length<=0){BX.debug(BX.message("UPLOADER_ACTION_URL_NOT_DEFINED"))}this.status=statuses.ready;this.fileFields=e["fields"];this.fileCopies=e["copies"];var a=!!e["queueFields"]?e["queueFields"]:{};a["placeHolder"]=BX(a["placeHolder"]||e["placeHolder"]);a["showImage"]=a["showImage"]||e["showImage"];a["sortItems"]=a["sortItems"]||e["sortItems"];a["thumb"]=a["thumb"]||e["thumb"];this.queue=new BX.UploaderQueue(a,this.limits,this);this.params["doWeHaveStorage"]=true;BX.addCustomEvent(this,"onDone",BX.delegate(function(){this.init(this.fileInput)},this));if(!!this.params["filesInputName"]&&this.params["pasteFileHashInForm"]){BX.addCustomEvent(this,"onFileIsUploaded",BX.delegate(function(t,s){var i=BX.create("INPUT",{props:{type:"hidden",name:this.params["filesInputName"]+"[]",value:s.hash}});if(BX(e["placeHolder"])&&BX(t+"Item"))BX(t+"Item").appendChild(i);else if(this.fileInput!==null)this.fileInput.parentNode.insertBefore(i,this.fileInput)},this))}if(this.params["deleteFileOnServer"]){BX.addCustomEvent(this,"onFileIsDeleted",BX.delegate(function(e,t){if(!!t&&!!t.hash){var s=this.preparePost({mode:"delete",hash:t.hash},false);BX.ajax.get(this.uploadFileUrl,s.data)}},this))}BX.onCustomEvent(window,"onUploaderIsInited",[this.id,this]);this.uploads=new BX.UploaderUtils.Hash;this.upload=null;if(this.params["bindBeforeUnload"]===false){this.__beforeunload=BX.delegate(this.terminate,this)}else{this.__beforeunload=BX.delegate(function(e){if(this.uploads&&this.uploads.length>0){var t=BX.message("UPLOADER_UPLOADING_ONBEFOREUNLOAD");(e||window.event).returnValue=t;return t}},this)}BX.bind(window,"beforeunload",this.__beforeunload)}}};BX.Uploader.prototype={init:function(e){this.log("input is initialized");if(BX(e)){if(e==this.fileInput&&!this.form)this.form=this.fileInput.form;if(e==this.fileInput)e=this.fileInput=this.mkFileInput(e);else e=this.mkFileInput(e);BX.onCustomEvent(this,"onFileinputIsReinited",[e,this]);if(e){BX.bind(e,"change",BX.delegate(this.onChange,this));return true}}else if(e===null&&this.fileInput===null){this.log("Initialized && null");return true}return false},destruct:function(){this.releaseDropZone()},log:function(e){BX.UploaderUtils.log("uploader",e)},initDropZone:function(e){var t=null;if(!!BX.DD&&BX.type.isDomNode(e)&&e.parentNode){t=new BX.DD.dropFiles(e);if(t&&t.supported()&&BX.ajax.FormData.isSupported()){t.f={dropFiles:BX.delegate(function(e,t){if(t&&t["dataTransfer"]&&t["dataTransfer"]["items"]&&t["dataTransfer"]["items"].length>0){var s=t["dataTransfer"],i,a,o=[],r=false;for(i=0;i<s["items"].length;i++){if(s["items"][i]["webkitGetAsEntry"]&&s["items"][i]["getAsFile"]){r=true;a=s["items"][i]["webkitGetAsEntry"]();if(a&&a.isFile){o.push(s["items"][i]["getAsFile"]())}}}if(r)e=o}this.onChange(e)},this),dragEnter:function(e){var s=false;if(e&&e["dataTransfer"]&&e["dataTransfer"]["types"]){for(var i=0;i<e["dataTransfer"]["types"].length;i++){if(e["dataTransfer"]["types"][i]==="Files"){s=true;break}}}if(s)BX.addClass(t.DIV,"bxu-file-input-over")},dragLeave:function(){BX.removeClass(t.DIV,"bxu-file-input-over")}};BX.addCustomEvent(t,"dropFiles",t.f.dropFiles);BX.addCustomEvent(t,"dragEnter",t.f.dragEnter);BX.addCustomEvent(t,"dragLeave",t.f.dragLeave)}if(this.params["dropZone"]==e){this.dropZone=t}}return t},releaseDropZone:function(){if(this.dropZone){BX.unbindAll(this.dropZone.DIV);this.dropZone.DIV.removeAttribute("dropzone");BX.removeCustomEvent(this.dropZone,"dropFiles",this.dropZone.f.dropFiles);BX.removeCustomEvent(this.dropZone,"dragEnter",this.dropZone.f.dragEnter);BX.removeCustomEvent(this.dropZone,"dragLeave",this.dropZone.f.dragLeave);delete this.dropZone.f.dropFiles;delete this.dropZone.f.dragEnter;delete this.dropZone.f.dragLeave;delete this.dropZone._cancelLeave;delete this.dropZone._prepareLeave;delete this.dropZone}},onAttach:function(e,t,s){s=s!==false;if(typeof e!=="undefined"&&e.length>0){if(!this.params["doWeHaveStorage"])this.queue.clear();if(!BX.type.isArray(e)){var i=[];for(var a=0;a<e.length;a++){i.push(e[a])}e=i}BX.onCustomEvent(this,"onAttachFiles",[e,t,this]);var o=false,r,l;t=typeof t=="object"&&!!t&&t.length>0?t:[];for(var n=0,p;n<e.length;n++){p=e[n];if(BX(p)&&p.value){r=(p.value.name||"").split(".").pop()}else{r=(p["name"]||p["tmp_url"]||"").split(".").pop();if(r.indexOf("?")>0)r=r.substr(0,r.indexOf("?"))}r=(BX.type.isNotEmptyString(r)?r:"").toLowerCase();l=(BX.type.isNotEmptyString(p["type"])?p["type"]:"").toLowerCase();if(s&&(this.limits["uploadFile"]=="image/*"&&(BX.type.isNotEmptyString(l)&&l.indexOf("image/")!==0||!BX.type.isNotEmptyString(l)&&this.params["imageExt"].indexOf(r)<0)||this.limits["uploadFileExt"].length>0&&this.limits["uploadFileExt"].indexOf(r)<0)){continue}BX.onCustomEvent(this,"onItemIsAdded",[p,t[n]||null,this]);o=true}if(o){BX.onCustomEvent(this,"onItemsAreAdded",[this]);if(this.params["uploadMethod"]=="immediate")this.submit()}}return false},onChange:function(e){BX.onCustomEvent(this,"onFileinputWillBeChanged",[e,this]);BX.PreventDefault(e);var t=e;if(e&&e.target)t=e.target.files;else if(!e&&BX(this.fileInput))t=this.fileInput.files;if(BX(this.fileInput)&&this.fileInput.disabled){BX.DoNothing()}else{BX.onCustomEvent(this,"onFileinputIsChanged",[e,this]);this.init(e&&e["target"]?e.target:e);this.onAttach(t)}return false},mkFileInput:function(e){if(!BX(e))return false;BX.unbindAll(e);var t=e.cloneNode(true);BX.adjust(t,{props:{value:""},attrs:{name:this.params["uploadInputName"]+"[]",multiple:this.params["filesInputMultiple"],accept:this.limits["uploadFile"],value:""}});e.parentNode.insertBefore(t,e);e.parentNode.removeChild(e);return t},preparePost:function(e,t){var s=BX.message.SITE_ID?BX.message("SITE_ID"):"";if(t===true&&this.params["uploadFormData"]=="Y"&&!this.post){var i={data:{AJAX_POST:"Y",SITE_ID:s,USER_ID:BX.message("USER_ID")},filesCount:0,size:10};i=this.form?BX.UploaderUtils.FormToArray(this.form,i):i;if(!!i.data[this.params["filesInputName"]]){i.data[this.params["filesInputName"]]=null;delete i.data[this.params["filesInputName"]]}if(!!i.data[this.params["uploadInputInfoName"]]){i.data[this.params["uploadInputInfoName"]]=null;delete i.data[this.params["uploadInputInfoName"]]}if(!!i.data[this.params["uploadInputName"]]){i.filesCount-=i.data[this.params["uploadInputName"]].length;i.data[this.params["uploadInputName"]]=null;delete i.data[this.params["uploadInputName"]]}if(this.limits["phpMaxFileUploads"]<=i.filesCount){BX.debug("You can not upload any file from your list.");return false}i.size=BX.UploaderUtils.sizeof(i.data);this.post=i}var a=t===true&&this.params["uploadFormData"]=="Y"?this.post:{data:{AJAX_POST:"Y",SITE_ID:s,USER_ID:BX.message("USER_ID")},filesCount:0,size:10},o=0;a.data["sessid"]=BX.bitrix_sessid();a.size+=6+BX.bitrix_sessid().length;if(e){a.data[this.params["uploadInputInfoName"]]={controlId:this.controlId,CID:this.CID,inputName:this.params["uploadInputName"],version:BX.Uploader.getVersion()};for(var r in e){if(e.hasOwnProperty(r)){a.data[this.params["uploadInputInfoName"]][r]=e[r]}}o=BX.UploaderUtils.sizeof(this.params["uploadInputInfoName"])+BX.UploaderUtils.sizeof(a.data[this.params["uploadInputInfoName"]])}a.length=a.size+o;return a},submit:function(){this.start()},stop:function(){this.terminate()},adjustProcess:function(e,t,s,i,a){var o="",r=0;if(this.queue.itFailed.hasItem(t.id)){o="response [we do not work with errors]"}else if(s==statuses.error){delete t.progress;this.queue.itFailed.setItem(t.id,t);this.queue.itForUpload.removeItem(t.id);BX.onCustomEvent(this,"onFileIsUploadedWithError",[t.id,t,i,this,a]);BX.onCustomEvent(t,"onUploadError",[t,i,this,a]);o="response [error]"}else if(s==statuses.uploaded){delete t.progress;this.queue.itUploaded.setItem(t.id,t);this.queue.itForUpload.removeItem(t.id);BX.onCustomEvent(this,"onFileIsUploaded",[t.id,t,i,this,a]);BX.onCustomEvent(t,"onUploadDone",[t,i,this,a]);o="response [uploaded]"}else if(s==statuses.inprogress){if(typeof i=="number"){if(i==0&&t.progress.status==statuses["new"]){BX.onCustomEvent(t,"onUploadStart",[t,0,this,a]);t.progress.status=statuses.inprogress}r=t.progress.uploaded+t.progress.streams[e]*i/100}else{t.progress.uploaded+=t.progress.streams[e];t.progress.streams[e]=0;r=t.progress.uploaded}o="response [uploading]. Uploaded: "+r;BX.onCustomEvent(t,"onUploadProgress",[t,r,this,a])}else if(s==statuses.failed){if(t.progress.streams[e]==t.progress.percentPerChunk){t.progress=null;delete t.progress}else{t.progress.streams[e]-=t.progress.percentPerChunk/i.packages;t.progress.streams[e]=t.progress.streams[e]>0?t.progress.streams[e]:0}}else{if(s==statuses["new"]){var l=(t.getThumbs("getCount")>0?t.getThumbs("getCount"):0)+2;t.progress={percentPerChunk:100/l,streams:{},uploaded:0,status:statuses["new"]};t.progress.streams[e]=t.progress.percentPerChunk;o="request preparing [start]. Prepared: "+t.progress.streams[e]}else if(s==statuses.preparing){t.progress.streams[e]=t.progress.streams[e]>0?t.progress.streams[e]:0;t.progress.streams[e]+=t.progress.percentPerChunk/i.packages;o+="request preparing [cont]. Prepared: "+t.progress.streams[e]}else{o="request preparing [finish]. "}BX.onCustomEvent(t,"onUploadPrepared",[t,i,this,a])}this.log(t.name+": "+o)},terminate:function(e){var t,s;if(!e||e=="beforeunload"){s=this.uploads;this.uploads=new BX.UploaderUtils.Hash;this.upload=null;while((t=s.getFirst())&&t){s.removeItem(t.id);this.terminate(t)}return}else if(BX.type.isNotEmptyString(e)){t=this.uploads.removeItem(e)}else if(typeof e=="object"){t=e}if(t&&t["stop"]){t.stop();this.log(t.id+" Uploading is canceled");BX.onCustomEvent(this,"onTerminated",[t.id,t])}},start:function(){if(this.queue.itForUpload.length<=0){BX.onCustomEvent(this,"onStart",[null,{filesCount:0},this]);BX.onCustomEvent(this,"onDone",[null,null,{filesCount:0}]);BX.onCustomEvent(this,"onFinish",[null,null,{filesCount:0}]);return}var e="pIndex"+BX.UploaderUtils.getId(),t=this.queue.itForUpload;this.queue.itForUpload=new BX.UploaderUtils.Hash;this.post=false;this.log("create new package "+e);var s=new BX.UploaderPackage({id:e,data:t,post:this.preparePost({},true),uploadFileUrl:this.uploadFileUrl,limits:this.limits,params:this.params},this);BX.addCustomEvent(s,"adjustProcess",BX.proxy(this.adjustProcess,this));BX.addCustomEvent(s,"startStream",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"startPackage",[e,t.id,s])},this));BX.addCustomEvent(s,"progressStream",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"processPackage",[e,t.id,s])},this));BX.addCustomEvent(s,"doneStream",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"donePackage",[e,t.id,s])},this));BX.addCustomEvent(s,"stopPackage",BX.proxy(function(e){this.log("restore files: "+e.data.length);this.queue.restoreFiles(e.data)},this));BX.addCustomEvent(s,"donePackage",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"onDone",[e,t.id,t,s]);var i=this.checkUploads(t.id);if(!i)BX.onCustomEvent(this,"onFinish",[e,t.id,t,s])},this));BX.addCustomEvent(s,"errorPackage",BX.proxy(function(t,s,i){BX.onCustomEvent(this,"error",[t,e,i]);BX.onCustomEvent(this,"onError",[t,e,i]);this.checkUploads(s.id)},this));BX.addCustomEvent(s,"processPackage",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"processPackage",[e,t,s])},this));BX.onCustomEvent(this,"onStart",[e,s,this]);this.uploads.setItem(e,s);this.checkUploads()},checkUploads:function(e){if(e)this.uploads.removeItem(e);this.upload=this.uploads.getFirst();if(this.upload)this.upload.start(this.streams);return this.upload},getItem:function(e){return this.queue.getItem(e)},getItems:function(){return this.queue.items},restoreItems:function(){this.queue.restoreFiles.apply(this.queue,arguments)},clear:function(){var e;while((e=this.queue.items.getFirst())&&e){e.deleteFile()}}};BX.UploaderSimple=function(e){BX.UploaderSimple.superclass.constructor.apply(this,arguments);this.dialogName="BX.UploaderSimple";this.previews=new BX.UploaderUtils.Hash;if(this.params["uploadMethod"]!="immediate"){BX.addCustomEvent(this,"onFileNeedsPreview",BX.delegate(function(e,t){this.previews.setItem(t.id,t);this.log("onFileNeedsPreview: "+t.id);setTimeout(BX.delegate(this.onFileNeedsPreview,this),500)},this));BX.addCustomEvent(this,"onStart",BX.delegate(function(e,t){if(t&&t.filesCount>0){var s=t.raw.getIds(),i;for(i=0;i<s.length;i++){this.previews.removeItem(s[i])}}},this))}else{BX.addCustomEvent(this,"onFileIsUploaded",BX.delegate(function(e,t,s){this.dealWithFile(t,s)},this))}this.streams=new BX.UploaderStreams(1,this);return this};BX.extend(BX.UploaderSimple,BX.Uploader);BX.UploaderSimple.prototype.preparePost=function(){var e=BX.UploaderSimple.superclass.preparePost.apply(this,arguments);if(e&&e.data&&e.data[this.params["uploadInputInfoName"]]&&!e.data[this.params["uploadInputInfoName"]]["simpleUploader"]){e.data[this.params["uploadInputInfoName"]]["simpleUploader"]="Y";e.size+=15}return e};BX.UploaderSimple.prototype.init=function(e,t){this.log("input is initialized: "+(t!==false?"drop":" does not drop"));if(BX(e)){if(e==this.fileInput&&!this.form)this.form=this.fileInput.form;if(e==this.fileInput)e=this.fileInput=this.mkFileInput(e,t);else e=this.mkFileInput(e,t);BX.onCustomEvent(this,"onFileinputIsReinited",[e,this]);if(e){BX.bind(e,"change",BX.delegate(this.onChange,this));return true}}else if(e===null&&this.fileInput===null){this.log("Initialized && null");return true}return false};BX.UploaderSimple.prototype.log=function(e){BX.UploaderUtils.log("simpleup",e)};BX.UploaderSimple.prototype.mkFileInput=function(e,t){if(!BX(e))return false;BX.unbindAll(e);var s=e.cloneNode(true);BX.adjust(s,{attrs:{id:"",name:this.params["uploadInputName"]+"[file"+BX.UploaderUtils.getId()+"][default]",multiple:false,accept:this.limits["uploadFile"]}});e.parentNode.insertBefore(s,e);if(t!==false)e.parentNode.removeChild(e);return s};BX.UploaderSimple.prototype.onChange=function(e){BX.PreventDefault(e);e=e.target||e.srcElement||this.fileInput;if(BX(this.fileInput)&&this.fileInput.disabled){BX.DoNothing()}else{this.init(e,false);this.onAttach([e])}return false};BX.UploaderSimple.prototype.dealWithFile=function(e,t){var s;if(t&&t["status"]=="uploaded"&&t["hash"]&&t["file"]&&t["file"]["files"]&&t["file"]["files"]["default"]){s=t["file"]["files"]["default"]}if(s){e.file={name:s["name"],"~name":s["~name"],size:parseInt(s["size"]),type:s["type"],id:e.id,hash:t["hash"],copy:"default",url:s["url"],uploadStatus:statuses.done};e.nonProcessRun=true;BX.onCustomEvent(e,"onFileHasGotPreview",[e.id,e])}else{BX.onCustomEvent(e,"onFileHasNotGotPreview",[e.id,e])}};BX.UploaderSimple.prototype.onFileNeedsPreviewCallback=function(e,t){if(!(t&&t["files"])){this.log("onFileNeedsPreviewCallback is failed.");return}this.log("onFileNeedsPreviewCallback");this.onFileNeedsPreview();var s;while((s=e.result.getFirst())&&!!s){e.result.removeItem(s.id);this.dealWithFile(s,t["files"][s.id])}};BX.UploaderSimple.prototype.onFileNeedsPreview=function(){this.log("onFileNeedsPreview");var e=new BX.UploaderUtils.Hash,t;while(e.length<this.limits["phpMaxFileUploads"]&&(t=this.previews.getFirst())&&t&&t!==null){this.previews.removeItem(t.id);e.setItem(t.id,t)}if(e.length>0){this.post=false;var s="pIndex"+BX.UploaderUtils.getId();this.log("create new package for preview "+s);var i=new BX.UploaderPackage({id:s,data:e,post:this.preparePost({type:"brief"},true),uploadFileUrl:this.uploadFileUrl,limits:this.limits,params:this.params});i["SimpleUploaderUploadsPreview"]="Y";BX.addCustomEvent(i,"adjustProcess",BX.proxy(function(e,t,s,i,a){if(s==statuses.error){this.adjustProcess(e,t,s,i,a)}},this));BX.addCustomEvent(i,"startStream",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"startPackagePreview",[e,t.id,s])},this));BX.addCustomEvent(i,"progressStream",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"processPackagePreview",[e,t.id,s])},this));BX.addCustomEvent(i,"doneStream",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"donePackagePreview",[e,t.id,s])},this));BX.addCustomEvent(i,"stopPackage",BX.proxy(function(e){},this));BX.addCustomEvent(i,"donePackage",BX.proxy(function(e,t,s){this.checkUploads(t.id);this.onFileNeedsPreviewCallback(t,s)},this));BX.addCustomEvent(i,"errorPackage",BX.proxy(function(e,t,i){BX.onCustomEvent(this,"error",[e,s,i]);BX.onCustomEvent(this,"onError",[e,s,i]);this.checkUploads(t.id)},this));BX.addCustomEvent(i,"processPackage",BX.proxy(function(e,t,s){BX.onCustomEvent(this,"processPackagePreview",[e,t,s])},this));BX.onCustomEvent(this,"onStartPreview",[s,i,this]);this.uploads.setItem(s,i);this.checkUploads()}};BX.Uploader.isSupported=function(){return window.Blob||window["MozBlobBuilder"]||window["WebKitBlobBuilder"]||window["BlobBuilder"]};var objName="BX.UploaderSimple";if(BX.Uploader.isSupported())objName="BX.Uploader";BX.Uploader.getInstanceName=function(){return objName};BX.Uploader.getInstance=function(params){BX.onCustomEvent(window,"onUploaderIsAlmostInited",[objName,params]);return eval("new "+objName+"(params);")};BX.UploaderPackage=function(e,t){this.filesCount=0;this.length=0;e=e||{};this["pIndex"]=this.id=e["id"];this.limits=e["limits"];this.params=e["params"];this.status=statuses.ready;if(e["data"]&&e.data.length>0){this.length=e.data.length;this.filesCount=e.data.length;this.uploadFileUrl=e["uploadFileUrl"];this.raw=e.data;this.repo=new BX.UploaderUtils.Hash;this.data=new BX.UploaderUtils.Hash;this.result=new BX.UploaderUtils.Hash;this.init();this.post=e["post"];if(!this.post){var s;while((s=this.raw.getFirst())&&s){this.adjustProcess(null,s,statuses.error,{error:BX.message("UPLOADER_UPLOADING_ERROR2")});this.raw.removeItem(s.id)}BX.onCustomEvent(this,"errorPackage",[null,this,null])}else{var i,a={packageIndex:this.id,filesCount:this.filesCount,mode:"upload"};for(i in a){if(a.hasOwnProperty(i)){this.post.data[this.params["uploadInputInfoName"]][i]=a[i];this.post.size+=BX.UploaderUtils.sizeof(i)+BX.UploaderUtils.sizeof(a[i])}}this.post.startSize=this.post.size;BX.onCustomEvent(this,"initializePackage",[this,this.data]);if(t)BX.onCustomEvent(t,"onPackageIsInitialized",[this,this.data]);this.log("initialize")}}this._exec=BX.delegate(this.exec,this)};BX.UploaderPackage.prototype={checkFile:function(e){var t="";if(e.file){if(this.limits["uploadMaxFilesize"]>0&&e.file.size>this.limits["uploadMaxFilesize"]){t=BX.message("FILE_BAD_SIZE")+" ("+BX.UploaderUtils.getFormattedSize(this.limits["uploadMaxFilesize"],2)+")"}else if(settings.maxSize!==null&&e.file.size>settings.maxSize){t=BX.message("UPLOADER_UPLOADING_ERROR6")}}return t},packStream:function(e){if(e.filesSize<=0)return null;var t=new BX.UploaderUtils.FormData,s,i=this.post.data,a=e.files,o;for(s in i){if(i.hasOwnProperty(s)){BX.UploaderUtils.appendToForm(t,s,i[s])}}for(var r in a){if(a.hasOwnProperty(r)){i=a[r];if(!!i.props){o=BX.UploaderUtils.prepareData(i.props);for(s in o){if(o.hasOwnProperty(s)){BX.UploaderUtils.appendToForm(t,this.params["uploadInputName"]+"["+r+"]["+s+"]",o[s])}}}if(!!i.files){for(var l=0;l<i.files.length;l++){s=i.files[l];s.copy=s.postName=s.thumb?s.thumb:"default";if(s.packages>0){s.postName+=".ch"+s.package+"."+(s.start>0?s.start:"0")+".chs"+s.packages}t.append(this.params["uploadInputName"]+"["+r+"]["+BX.UploaderUtils.prepareData(s.postName)+"]",s,BX.UploaderUtils.prepareData(s.postName))}}}}t.action=this.uploadFileUrl;return t},packFiles:function(e,t){if(!e)return statuses.error;else if(e["uploadStatus"]==statuses.done||e["uploadStatus"]==statuses.error)return e["uploadStatus"];var s=this.limits["phpMaxFileUploads"]-this.post.filesCount-(t.filesCount||0),i=this.limits["phpPostMaxSize"]-t.filesSize-t.postSize,a=this.limits["phpPostSize"]-t.filesSize,o,r,l={files:[]},n,p,u,h;while(i>0&&s>0&&a>0){r=null;o=null;p="";u=[];if(e.uploadStatus!=statuses.preparing){p=this.checkFile(e);if(p===""){l.props=e.getProps();if(e["restored"]){l.props["restored"]=e["restored"];delete e["restored"]}u.push(BX.proxy(function(){e.uploadStatus=statuses.preparing;this.adjustProcess(t.id,e,statuses["new"],{})},this))}else{l.props={name:e.name,error:true};this.adjustProcess(t.id,e,statuses.error,{error:p});e.uploadStatus=statuses.error}}if(e.uploadStatus==statuses.error){}else if(e.nonProcessRun===true){e.uploadStatus=statuses.done}else{if(!e["file"]){r=null}else if(e.file.uploadStatus!=statuses.done){r=e.file}else if(e["thumb"]&&e.thumb!==null){r=e.thumb}else{e.thumb=r=e.getThumbs(null)}var d=Object.prototype.toString.call(r);if(r===null){e.uploadStatus=statuses.done;this.adjustProcess(t.id,e,statuses.done,{});e.file.uploadStatus=statuses.done;e.thumb=null}else if(BX.type.isDomNode(r)){l.props=l.props||{name:e.name};l.files.push(r);u.push(BX.proxy(function(s){s.uploadStatus=statuses.done;if(e.file==s){this.adjustProcess(t.id,e,statuses.preparing,{canvas:"default",package:1,packages:1})}else{this.adjustProcess(t.id,e,statuses.preparing,{canvas:e.thumb.thumb,package:1,packages:1});e.thumb=null}},this))}else if(!(d=="[object File]"||d=="[object Blob]")){l.props=l.props||{name:e.name};l.props["files"]=l.props["files"]||{};l.props["files"][r["thumb"]||"default"]=r;u.push(BX.proxy(function(s){s.uploadStatus=statuses.done;if(e.file==s){this.adjustProcess(t.id,e,statuses.preparing,{canvas:"default",package:1,packages:1})}else{this.adjustProcess(t.id,e,statuses.preparing,{canvas:e.thumb.thumb,package:1,packages:1});e.thumb=null}},this))}else{o=BX.UploaderUtils.getFilePart(r,i-BX.UploaderUtils.sizeof({name:e.name}),this.limits["phpUploadMaxFilesize"]);if(!o){l.props="error";this.adjustProcess(t.id,e,statuses.error,{error:BX.message("FILE_BAD_SIZE")});e.uploadStatus=statuses.error}else{l.files.push(o);l.props=l.props||{name:e.name};u.push(BX.proxy(function(s,i){BX.UploaderUtils.applyFilePart(s,i);if(e.file==s&&i==s){this.adjustProcess(t.id,e,statuses.preparing,{canvas:"default",package:1,packages:1})}else if(e.file==s){this.adjustProcess(t.id,e,statuses.preparing,{canvas:"default",package:i.package+1,packages:i.packages,blob:i})}else if(i==s){this.adjustProcess(t.id,e,statuses.preparing,{canvas:e.thumb.thumb,package:1,packages:1,blob:i});e.thumb=null}else{this.adjustProcess(t.id,e,statuses.preparing,{canvas:e.thumb.thumb,package:i.package+1,packages:i.packages,blob:i});if(e.thumb.uploadStatus==statuses.done)e.thumb=null}},this))}}}if(l.files.length>0||l["props"]){n=BX.UploaderUtils.sizeof(l.files)+(l["props"]?BX.UploaderUtils.sizeof(l.props):0);i-=n;a-=n;if(i>=0&&a>0){while((h=u.shift())&&h)h(r,o,p);t.filesSize+=n;t.files[e.id]=BX.UploaderUtils.makeAnArray(t.files[e.id],l);if(l.files.length){s--;t.filesCount++}}else if(t.filesCount<=0){this.adjustProcess(t.id,e,statuses.error,{error:BX.message("UPLOADER_UPLOADING_ERROR4")});e.uploadStatus=statuses.error}l={files:[]}}if(e.uploadStatus!==statuses.preparing){break}}return e.uploadStatus},start:function(e){this.streams=e;if(this.status!=statuses.ready)return;this.status=statuses.inprogress;this.__onAllStreamsAreKilled=BX.delegate(function(e,t){this.stop();BX.onCustomEvent(this,"donePackage",[t,this,this["lastResponse"]])},this);BX.addCustomEvent(this.streams,"onrelease",this.__onAllStreamsAreKilled);BX.onCustomEvent(this,"startPackage",[this,e]);this.log("start");e.init(this,this._exec)},stop:function(){this.status=statuses.stopped;this.streams.stop();BX.onCustomEvent(this,"stopPackage",[this,this.repo]);BX.removeCustomEvent(this.streams,"onrelease",this.__onAllStreamsAreKilled);this.log("stop")},log:function(){BX.UploaderUtils.log("package",this.id,arguments)},init:function(){var e,t=BX.proxy(function(e,t){if(this.raw.removeItem(e)){this.data.setItem(e,t);this.repo.setItem(e,t);BX.onCustomEvent(t,"onFileHasToBePrepared",[t.id,t]);this.init()}},this);while((e=this.raw.getFirst())&&e){BX.addCustomEvent(e,"onFileIsDeleted",BX.delegate(function(e){this.length--;this.filesCount--;if(this.data.removeItem(e.id))this.post.data[this.params["uploadInputInfoName"]]["filesCount"]=this.filesCount;this.result.removeItem(e.id);this.repo.removeItem(e.id)},this));if(e.status===statuses["new"]){BX.addCustomEvent(e,"onFileIsInited",t);break}else{t(e.id,e)}}},exec:function(e,t){if(this.status!==statuses.inprogress)return;this.log("exec");var s,i=false;if(e.pack!=this){this.log("stream is bound: "+e.id);BX.addCustomEvent(e,"onsuccess",BX.delegate(this.doneStream,this));BX.addCustomEvent(e,"onfailure",BX.delegate(this.errorStream,this));BX.addCustomEvent(e,"onprogress",BX.delegate(this.progressStream,this))}if(t!==false){this.log("stream is reinited: "+e.id);e.init(this)}var a,o=e.filesCount;if(this.filesCount>0){while((s=this.data.getFirst())&&s){if(s.uploadStatus==statuses.done){}else if(s.preparationStatus!=statuses.done){i=true;break}a=this.packFiles(s,e);if(typeof a=="undefined"){break}else if(a!=statuses.error){o++;if(a==statuses.preparing){break}}this.data.removeItem(s.id);if(this["SimpleUploaderUploadsPreview"]=="Y"){delete s.uploadStatus}}if(i===true||!s&&this.raw.length>0){setTimeout(BX.proxy(function(){this.exec(e,false)},this),100);return}}var r=o>0?this.packStream(e):null;if(r!==null){this.log("stream is packed: "+e.id);this.startStreaming(e);e.send(r);this.sended=true}else{this.log("stream is killed: "+e.id);e.kill()}},adjustProcess:function(e,t,s,i){if(t&&this.repo.hasItem(t.id)){if(s==statuses.error||s==statuses.uploaded){this.data.removeItem(t.id);this.result.setItem(t.id,t)}BX.onCustomEvent(this,"adjustProcess",[e,t,s,i,this.id,this])}},adjustPostSize:function(e,t){var s=false,i=null;var a=e.xhr.finishTime-e.xhr.startTime;if(t!==false){i=Math.ceil(a>0?(e.postSize+e.filesSize)*1e3/a*settings.estimatedTimeForUploadFile:0);if(i>this.limits["phpPostSize"]){i=Math.min(this.limits["phpPostSize"]*2,i,this.limits["phpPostMaxSize"])}}else if(this.limits["phpPostSize"]>settings.phpPostMinSize){i=Math.ceil(this.limits["phpPostSize"]/2)}if(i>0&&i!==this.limits["phpPostSize"]){this.limits["phpPostSize"]=Math.max(i,settings.phpPostMinSize);s=true}return s},startStreaming:function(e){this.log("start streaming");for(var t in e.files){if(e.files.hasOwnProperty(t)){this.adjustProcess(e.id,this.repo.getItem(t),statuses.inprogress,0)}}BX.onCustomEvent(this,"startStream",[e,this.id,e.files])},doneStream:function(e,t){this.adjustPostSize(e,true);var s=function(e,t){for(var i in t){if(t.hasOwnProperty(i)&&!e[i]){e[i]=t[i]}else if(typeof t[i]==typeof e[i]=="object"&&t[i]!==null&&e[i]!==null){e[i]=s(e[i],t[i])}}return e};this.response=s(this.response||{},t||{});var i=this.streams.getUploader();var a,o,r,l,n,p,u;for(o in e.files){if(e.files.hasOwnProperty(o)){a=this.repo.getItem(o);r=t.files[o];if(a){if(!r){i.queue.restoreFiles(new BX.UploaderUtils.Hash([a]),false,true);delete a.uploadStatus;this.data.setItem(a.id,a)}else if(!r["status"]){if(BX.type.isArray(e.files[o]["files"])){u={};for(p=0;p<e.files[o]["files"].length;p++){r=e.files[o]["files"][p];if(u[r["copy"]])continue;u[r["copy"]]="Y";if(r["copy"]=="default"&&r["package"]<=0){i.queue.restoreFiles(new BX.UploaderUtils.Hash([a]));delete a.uploadStatus;this.data.setItem(a.id,a);break}if(r["copy"]=="default"){a.uploadStatus=statuses.preparing;a.file["uploadStatus"]=statuses.preparing;a.file["package"]=r["package"]}if(a.file["copies"]){a.file["copies"].reset();var h;while((h=a.file["copies"].getNext())&&h){delete h["uploadStatus"];delete h["firstChunk"];delete h["package"];delete h["packages"]}a.file["copies"].reset()}}}}else if(r.status=="error"){this.adjustProcess(e.id,a,statuses.error,r)}else if((a.hash=r.hash)&&r.status=="uploaded"){if(settings.maxSize!==null)settings.maxSize-=a.file.size;this.adjustProcess(e.id,a,statuses.uploaded,r)}else{this.adjustProcess(e.id,a,statuses.inprogress,r);l=false;n=r["file"]&&r["file"]["files"]?r["file"]["files"]:false;if(typeof n=="object"){for(p in n){if(n.hasOwnProperty(p)){if(n[p]["chunksInfo"]&&n[p]["chunksInfo"]["count"]==n[p]["chunksInfo"]["uploaded"]&&n[p]["chunksInfo"]["count"]>n[p]["chunksInfo"]["written"]){l=true;break}}}a.nonProcessRun=l;if(l==true){if(!a["nonProcessRunLastTimeWritten"]||a["nonProcessRunLastTimeWritten"]!=n[p]["chunksInfo"]["written"]){a["nonProcessRunLastTimeWritten"]=n[p]["chunksInfo"]["written"];a["nonProcessRunLastTimeWrittenCount"]=0}else{a["nonProcessRunLastTimeWrittenCount"]++}if(a["nonProcessRunLastTimeWrittenCount"]<=10){delete a.uploadStatus;this.data.setItem(a.id,a)}else{this.adjustProcess(e.id,a,statuses.error,{error:BX.message("UPLOADER_UPLOADING_ERROR3")})}}}}}}}this.log("stream is done: "+e.id,t["status"],this.response);this["lastResponse"]=t;if(t["status"]=="inprogress"){BX.onCustomEvent(this,"continuePackage",[e,this,t])}else{if(t["status"]=="error")this.errorStream(e,t);else{this.stop();BX.onCustomEvent(this,"donePackage",[e,this,t])}}},errorStream:function(e,t){var s,i,a,o;this.log("error stream: "+e.id,"status: ",e.xhr.status,t);if(e&&t=="timeout"&&this.adjustPostSize(e,false)&&e["files"]){for(a in e["files"]){if(e["files"].hasOwnProperty(a)){if(this.repo.hasItem(a)&&BX.type.isArray(e["files"][a]["files"])&&e["files"][a]["files"].length>0){s=this.repo.getItem(a);if(e["files"][a]["files"][0]["package"]<=0||s["uploadStatus"]!==statuses.inprogress){delete s["uploadStatus"];delete s.file["uploadStatus"];delete s.file["firstChunk"];delete s.file["package"];delete s.file["packages"]}else{s.file["package"]=Math.min(e["files"][a]["files"][0]["package"],s.file["package"])}if(s.file["copies"]){s.file["copies"].reset();while((o=s.file["copies"].getNext())&&o){delete o["uploadStatus"];delete o["firstChunk"];delete o["package"];delete o["packages"]}s.file["copies"].reset()}if(!this.data.hasItem(a)){this.result.removeItem(a);this.data.unshiftItem(a,s)}}}}BX.onCustomEvent(this,"resendPackage",[e,this,t])}else{this.stop();var r=t=="timeout"?BX.message("UPLOADER_UPLOADING_ERROR5"):BX.message("UPLOADER_UPLOADING_ERROR1");t=t||{};t["files"]=t["files"]?t["files"]:{};if((s=this.repo.getFirst())&&s){do{if(!this.result.hasItem(s.id)){if(t.files&&t.files[s.id])i=t.files[s.id];else if(BX.type.isNotEmptyString(t["error"]))i=t;else if(BX.type.isArray(t["errors"])){i={error:""};for(var l=0;l<t["errors"].length;l++){i.error+=BX.type.isPlainObject(t["errors"][l])&&t["errors"][l]["message"]?t["errors"][l]["message"]:t["errors"][l]}}else i={error:r};this.adjustProcess(e.id,s,statuses.error,i)}}while((s=this.repo.getNext())&&s)}BX.onCustomEvent(this,"errorPackage",[e,this,t])}},progressStream:function(e,t){var s;e.files=e.files||{};for(s in e.files){if(e.files.hasOwnProperty(s)){this.adjustProcess(e.id,this.repo.getItem(s),statuses.inprogress,t)}}BX.onCustomEvent(this,"processPackage",[e,this,t])}};BX.UploaderStream=function(e,t){this.id="stream"+e;this._id=e;this.manager=t;this._onsuccess=BX.delegate(this.onsuccess,this);this._onfailure=BX.delegate(this.onfailure,this);this._onerror=BX.delegate(this.onerror,this);this._onprogress=BX.delegate(this.onprogress,this)};BX.UploaderStream.prototype={xhr:{},init:function(e){this["pIndex"]=e.id;this.pack=e;this.files={};this.filesCount=0;this.filesSize=0;this.postSize=e.post.size},send:function(e){if(e&&e.local===true){BX.adjust(e.form,{attrs:{action:e.action}});BX.ajax.submit(e.form,BX.proxy(function(e){e=BX.util.htmlspecialcharsback(e);while(/^<(.*?)>(.*?)<(.*?)>$/gi.test(e))e=e.replace(/^<(.*?)>(.*?)<(.*?)>$/gi,"$2");while(/^<([^<>]+)>(.*?)/gi.test(e))e=e.replace(/^<(.*?)>(.*?)/gi,"$2");while(/(.+?)<([^<>]+)>$/gi.test(e))e=e.replace(/(.+?)<([^<>]+)>$/gi,"$1");var t=BX.parseJSON(e,{});if(!!t){this.onsuccess(t)}else{this.onfailure("processing",e)}},this));this.onprogress(90)}else if(e){this.xhr=BX.ajax({method:"POST",dataType:"json",data:e,url:e.action,onsuccess:this._onsuccess,onfailure:this._onfailure,onerror:this._onerror,start:false,preparePost:false,processData:true,skipAuthCheck:true,timeout:settings.maxTimeForUploadFile});this.xhr.upload.addEventListener("progress",this._onprogress,false);var t=new Date;this.xhr.startTime=t.getTime();this.xhr.send(e)}else{this.onfailure("empty",null)}},onsuccess:function(e){var t=new Date;this.xhr.finishTime=t.getTime();try{if(typeof e=="object"&&e&&e["files"]&&e["status"]!=="error")BX.onCustomEvent(this,"onsuccess",[this,e]);else BX.onCustomEvent(this,"onfailure",[this,e])}catch(e){BX.debug(e)}BX.onCustomEvent(this,"onrelease",[this])},onfailure:function(e,t){var s=new Date,i=t&&t["data"]?BX.parseJSON(t["data"],{}):"";if(BX.message("bxUploaderLog")==="Y"&&e==="processing"){BX.ajax.post("/bitrix/tools/upload.php?action=error",{sessid:BX.bitrix_sessid(),path:window.location.pathname,data:t["data"]})}this.xhr.finishTime=s.getTime();BX.onCustomEvent(this,"onfailure",[this,i]);BX.onCustomEvent(this,"onrelease",[this])},onerror:function(){var e=new Date;this.xhr.finishTime=e.getTime();this.onfailure.apply(arguments)},onprogress:function(e){var t=15;if(typeof e=="object"&&e.lengthComputable){t=e.loaded*100/(e["total"]||e["totalSize"])}else if(e>t)t=e;t=t>5?t:5;BX.onCustomEvent(this,"onprogress",[this,t]);return t},kill:function(){BX.DoNothing();BX.onCustomEvent(this,"onkill",[this])},restore:function(){this.manager.restore(this)}};BX.UploaderStreams=function(e,t){this.streams=new BX.UploaderUtils.Hash;this.killedStreams=new BX.UploaderUtils.Hash;this.packages=new BX.UploaderUtils.Hash;this.uploaded=t;this.timeout=3e3;this._exec=BX.delegate(this.exec,this);this._restore=BX.delegate(this.restore,this);this._kill=BX.delegate(this.kill,this);this.count=Math.min(5,e>1?e:1);this.status=statuses.ready};BX.UploaderStreams.prototype={init:function(e,t){if(this.package!==e){this.package=e;this.package.log("streams are occupied",t);this.packages.setItem(e.id,e.post);this.handler=t;var s=this.count,i;while((i=this.streams.getFirst())&&i){this.streams.removeItem(i.id);i=null}this.streams=new BX.UploaderUtils.Hash;while(s-- >0){i=new BX.UploaderStream(s,this);BX.addCustomEvent(i,"onrelease",this._restore);BX.addCustomEvent(i,"onkill",this._kill);this.streams.setItem(i.id,i)}}this.start()},getUploader:function(){return this.uploaded},exec:function(){if(this.status==statuses.ready){this.package.log("streams are in executing");var e=this.streams.getFirst();if(e){this.streams.removeItem(e.id);if(this.streams.length>0){setTimeout(this._exec,this.timeout)}this.handler(e)}}else{this.package.log("streams are locked")}},restore:function(e){this.streams.setItem(e.id,e);BX.defer_proxy(this.exec,this)()},kill:function(e){this.killedStreams.setItem(e.id,e);if(this.killedStreams.length==this.count){BX.onCustomEvent(this,"onrelease",[this,e])}},start:function(){this.status=statuses.ready;this.exec()},stop:function(){this.status=statuses.stopped}};BX.Uploader.getVersion=function(){return"1"}})(window);
//# sourceMappingURL=uploader.map.js