done:function(e){PF.fn.modal.close(function(){PF.fn.growl.expirable(PF.fn._s("Profile background image deleted."))})}},error:function(e){PF.fn.growl.expirable(PF.fn._s("Error deleting profile background image."))}}}},CHV.str.mainform="[data-content=main-form]",CHV.obj.timezone={selector:"[data-content=timezone]",input:"#timezone-region"},$(document).on("keyup change",CHV.str.mainform+" :input",function(){$(this).is("[name=username]")&&$("[data-text=username]").text($(this).val())}),$(document).on("change",CHV.obj.timezone.input,function(){vare=$(this).val(),t=$("#timezone-combo-"+e);t.find("option:first").prop("selected",!0),$(CHV.obj.timezone.selector).val(t.val()).change()}),$(document).on("change","[id^=timezone-combo-]",function(){vare=$(this).val();$(CHV.obj.timezone.selector).val(e).change()}),$(document).on("keyup change blur","[name^=new-password]",function(){vare=$("[name=new-password]"),t=$("[name=new-password-confirm]"),a=e.val()==t.val(),o=t.closest(".input-password").find(".input-warning");0==o.exists()&&(o=$("[data-message=new-password-confirm]")),$(this).is(t)&&t.data("touched",!0),t.data("touched")&&o.text(a?"":o.data("text"))[a?"addClass":"removeClass"]("hidden-visibility")}),$(document).on("submit",CHV.obj.mainform,function(){switch($(this).data("type")){case"password":vare=$("[name=new-password]",this),t=$("[name=new-password-confirm]",this);if((""!==e.val()||""!==t.val())&&e.val()!==t.val())returne.highlight(),t.highlight(),PF.fn.growl.expirable(PF.fn._s("Passwords don't match")),!1}}),$(document).on("click","[data-action=check-for-updates]",function(){PF.fn.loading.fullscreen(),CHV.fn.system.checkUpdates(function(e){if(PF.fn.loading.destroy("fullscreen"),200===e.status){vart=e.responseJSON.software;-1==PF.fn.versionCompare(CHV.obj.system_info.version,t.current_version)?PF.fn.modal.simple({title:PF.fn._s("Update available v%s",t.current_version),message:"<p>"+PF.fn._s("There is an update available for your system. You can automatic download and install this update or go to %s to proceed to download the file.",'<a href="'+CHEVERETO.source.url+'" target="_blank">'+CHEVERETO.source.label+"</a>")+"<p>"+PF.fn._s("The release notes for this update are:")+'</p><textarea class="r4 resize-vertical">'+t.release_notes+'</textarea><div class="btn-container margin-bottom-0"><a href="'+PF.obj.config.base_url+"/update/?auth_token="+PF.obj.config.auth_token+'" class="btn btn-input default">'+PF.fn._s("Update now")+'</a> <span class="btn-alt">'+PF.fn._s("or")+' <a data-action="cancel">'+PF.fn._s("cancel")+"</a></span></div>",html:!0}):PF.fn.growl.call(PF.fn._s("This website is running latest %s version",CHEVERETO.edition))}elsePF.fn.growl.call(PF.fn._s("An error occurred. Please try again later."))})}),void0!==PF.fn.get_url_var("checkUpdates")&&$("[data-action=check-for-updates]").click(),$("body#image").exists()&&window.scrollY>0&&$("#top-bar").removeClass("transparent"),$(document).on("click","[data-action=toggle-storage-https]",function(){CHV.fn.storage.toggleHttps($(this).closest("[data-content=storage]").data("storage-id"))}),$(document).on("click","[data-action=toggle-storage-active]",function(){CHV.fn.storage.toggleActive($(this).closest("[data-content=storage]").data("storage-id"))}),$(CHV.fn.uploader.selectors.root).exists()&&(CHV.fn.uploader.$pasteCatcher=$("<div />",{contenteditable:"true",id:CHV.fn.uploader.selectors.paste.replace(/#/,"")}),$("body").append(CHV.fn.uploader.$pasteCatcher),$(document).keydown(function(e){vart=e.keyCode,a=e.ctrlKey||e.metaKey;a&&86==t&&!$(e.target).is(":input")&&CHV.fn.uploader.$pasteCatcher.focus(e)}),window.addEventListener("paste",CHV.fn.uploader.pasteImageHandler)),$(document).on("click","[data-action=like]",function(){if(PF.fn.is_user_logged()){vare=$(this);if(!e.data("XHR")){e.data("XHR",!0);vart=$(this).is("[data-liked]")?$(this):$(this).closest("[data-liked]"),a=!t.closest("[data-list], .viewer").exists()&&void0!==CHV.obj.resource,o=t.is("[data-liked=1]"),i=o?"dislike":"like",r={id:a?CHV.obj.resource.id:$(this).closest("[data-id]").attr("data-id"),type:a?
r.error.message=CHV.fn.uploader.files[t].name.truncate_middle()+" - "+r.error.message),CHV.fn.uploader.results[200==this.status?"success":"error"][t]=r,200!==this.status&&(i=!0)}catch(e){varn;i=!0,n=void0===r?{status:500,statusText:"Internal server error"}:{status:400,statusText:r.error.message},r={status_code:n.status,error:{message:CHV.fn.uploader.files[t].name.truncate_middle()+" - Server error ("+n.statusText+")",code:n.status,context:"XMLHttpRequest"},status_txt:n.statusText};vars=Object.size(CHV.fn.uploader.results.error)+1;CHV.fn.uploader.results.error[s]=r}e.addClass(i?"failed":"completed"),void0!==r.error&&void0!==r.error.message&&(e.attr("rel","tooltip").data("tiptip","top").attr("title",r.error.message),PF.fn.bindtipTip(e)),o.uploadThreads<CHV.obj.config.upload.threads&&a&&(CHV.fn.uploader.upload(e.next()),$(CHV.fn.uploader.selectors.root).addClass("queueHasResults")),o.uploadProcessedIds.length==Object.size(o.files)&&CHV.fn.uploader.displayResults(),$(".done",e).fadeOut()}},this.files[t].xhr.open("POST",PF.obj.config.json_api,!0),this.files[t].xhr.setRequestHeader("Accept","application/json"),this.files[t].xhr.send(l)}elsee.next().exists()&&this.upload(e.next())}}elsee.next().exists()&&this.upload(e.next())},itemLoading:function(e){PF.fn.loading.inline($(".progress",e),{color:"#FFF",size:"normal",center:!0,position:"absolute",shadow:!0}),$("[data-action=cancel], [data-action=edit]",e).hide()},displayResults:function(){CHV.fn.uploader.isUploading=!1;for(vare="[data-group=upload-result][data-result=%RESULT%]",t=["error","mixed","success"],a={},o=0;o<t.length;o++)a[t[o]]=e.replace("%RESULT%",t[o]);if(Object.size(this.results.error)>0){vari=[];for(varointhis.results.error)"object"==typeofthis.results.error[o]&&(i[o]=this.results.error[o].error.message);i.length>0&&$(this.selectors.failed_result).html("<li>"+i.join("</li><li>")+"</li>")}else$(a.error,this.selectors.root).hide();if(!window.opener&&CHV.obj.config.upload.redirect_single_upload&&1==Object.size(this.results.success)&&0==Object.size(this.results.error))returnwindow.location.href=this.results.success[0].image.url_viewer,!1;if($("[data-text=queue-progress]",this.selectors.root).text(100),$("[data-group=uploading]",this.selectors.root).hide(),$(this.selectors.root).removeClass("queueUploading queueHasResults").addClass("queueCompleted"),$(this.selectors.queue).addClass(this.selectors.queue_complete.substring(1)),Object.size(this.results.success)>0&&$("[data-group=upload-result] textarea",this.selectors.root).exists()&&CHV.fn.fillEmbedCodes(this.results.success,CHV.fn.uploader.selectors.root,"val"),Object.size(this.results.success)>0&&Object.size(this.results.error)>0?$(a.mixed+", "+a.success,this.selectors.root).show():Object.size(this.results.success)>0?$(a.success,this.selectors.root).show():Object.size(this.results.error)>0&&$(a.error,this.selectors.root).show(),$(a.success,this.selectors.root).is(":visible")){$(a.success,this.selectors.root).find("[data-group^=user], [data-group=guest]").hide(),$(a.success,this.selectors.root).find("[data-group="+(PF.fn.is_user_logged()?"user":"guest")+"]").show();varr=Object.keys(this.results.success)[0];if(void0!==this.results.success[r].image.album){varn=[];for(varsinthis.results.success){varl=this.results.success[s].image;l.album&&l.album.id_encoded&&-1==n.indexOf(l.album.id_encoded)&&n.push(l.album.id_encoded)}vard={link:null,text:null};if(n.length<=1?(d.link=this.results.success[r].image.album.url,d.text=this.results.success[r].image.album.name):(d.link=this.results.success[r].image.user.url_albums,d.text=PF.fn._s("%s's Albums",this.results.success[r].image.user.name_short_html)),$("[data-text=upload-target]",this.selectors.root).text(d.text),$("[data-link=upload-target]",this.selectors.root).attr("href",d.link),PF.fn.is_user_logged()){varc=n.length>0?"album":"stream";$("[data-group=user-"+c+"]",this.selectors.root).show()}}}if(this.boxSizer(),this.queueStatus="done",window.opener&&void0!==CHV.obj.opener.uploadPlugin[window.name]){if($('[data-action="copy"]',this.selectors.root).remove()
"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}})},updateStats:function(e){e=parseInt(e);"readyState"inCHV.obj.import.working[e].stats&&4!=CHV.obj.import.working[e].stats.readyState?console.log("Aborting stats timeout call (previous call is still not ready)"):(CHV.obj.import.working[e].stats=$.ajax({type:"POST",data:{action:"importStats",id:e}}),CHV.obj.import.working[e].stats.complete(function(t){vara=t.responseJSON;if(a){varo=CHV.fn.import.parseTemplate(a.import);$("[data-id="+a.import.id+"]",CHV.obj.import.sel.root).replaceWith(o),"working"!=a.import.status&&clearInterval(CHV.obj.import.working[e].interval)}}))},add:{submit:function(){vare=PF.obj.modal.selectors.root;returnPF.obj.modal.form_data={action:"importAdd",path:$("[name=form-path]",e).val(),options:{root:$("[name=form-structure]",PF.obj.modal.selectors.root).val()}},!0},deferred:{success:function(e){vart=e.responseJSON;PF.fn.growl.expirable(PF.fn._s("Import job ID %s added successfully, you can process the import now",t.import.id));vara=CHV.fn.import.parseTemplate(t.import);a.insertAfter(CHV.obj.import.sel.header,CHV.obj.import.sel.root),$(CHV.obj.import.sel.root).removeClass("hidden")},error:function(e){CHV.fn.import.errorHandler(e.responseJSON)}}},process:{abortAll:function(e){e=parseInt(e);if(einCHV.obj.import.working){for(vartinCHV.obj.import.aborted.push(e),CHV.obj.import.working[e].threads)CHV.obj.import.working[e].threads[t].abort();PF.fn.growl.expirable("Aborted all threads for import job ID "+e+", changing status now"),"interval"inCHV.obj.import.working[e]&&(clearInterval(CHV.obj.import.working[e].interval),"abort"inCHV.obj.import.working[e].stats&&CHV.obj.import.working[e].stats.abort())}},xhr:function(e,t){e=parseInt(e);console.log("New XHR for thread #"+t+" for import job ID"),einCHV.obj.import.working==0&&(CHV.obj.import.working[e]={threads:{},interval:{},stats:{}}),CHV.obj.import.working[e].threads[t]=$.ajax({type:"POST",data:{action:"importProcess",id:e,thread:t}}),CHV.obj.import.working[e].threads[t].complete(function(a){if(400!=a.status){$("[data-id="+e+"]",CHV.obj.import.sel.root).data("status");-1==$.inArray(e,CHV.obj.import.aborted)&&CHV.fn.import.process.xhr(e,t)}elseCHV.fn.import.errorHandler(a.responseJSON)})},load:function(){return$("html").data("modal-form-values",""),!0},submit:function(e){vart=PF.obj.modal.selectors.root,a=$("[name=form-threads]",t).val();return0==a?(PF.fn.growl.expirable(PF.fn._s("Select number of threads")),!1):(PF.obj.modal.form_data={action:"importEdit",id:e,threads:a,values:{status:"working"}},!0)},deferred:{success:function(e){vart=e.responseJSON;PF.fn.growl.expirable(PF.fn._s("Import job ID %s is being processed now",t.import.id));vara=CHV.fn.import.parseTemplate(t.import);$("[data-id="+t.import.id+"]",CHV.obj.import.sel.root).replaceWith(a);for(varo=parseInt(t.request.threads),i=1;i<=o;i++)CHV.fn.import.process.xhr(t.import.id,i);CHV.obj.import.working[t.import.id].interval=setInterval(function(){CHV.fn.import.updateStats(t.import.id)},5e3)},error:function(e){vart=e.responseJSON;900==t.error.code?(console.log("Aborting current working process (status changed)"),CHV.fn.import.process.abortAll(t.id)):CHV.fn.import.errorHandler()}}},delete:{submit:function(e){returnPF.obj.modal.form_data={action:"importDelete",id:e},!0},deferred:{success:function(e){vart=e.responseJSON;PF.fn.growl.call(PF.fn._s("Import ID %s removed",t.import.id)),$("[data-id="+t.import.id+"]",CHV.obj.import.sel.root).remove(),1==$("li",CHV.obj.import.sel.root).size()&&$(CHV.obj.import.sel.root).addClass("hidden")},error:function(e){CHV.fn.import.errorHandler(e.responseJSON)}}},parseTemplate:function(e,t){vara=CHV.obj.import.rowTpl;for(varoinCHV.obj.import.importTr)void0!==e[o]&&(a=a.replaceAll("%"+o+"%",e[o]));a=a.replaceAll("%parse%",e.options.root),a=a.replaceAll("%shortParse%",e.options.root.charAt(0)),a=a.replaceAll("%displayStatus%",CHV.obj.import.statusesDisplay[e.status]);vari=$($.parseHTML(a)).attr("data-object",JSON.stringify(e));returni}};