(function(d){var g=function(){var k=/^(\/(.*\/)*)([^\/]+\/?)$/;this.splitPathname=function(m){if(m==="/"){return["","/"]}var l=k.exec(m);return[l[1],l[3]]}};var e=function(k,m){var l=this;var n={defaultSortOrder:"C=N;O=A",store:{viewmode:"h5ai.viewmode"},icons:{crumb:"/h5ai/images/crumb.png",ascending:"/h5ai/images/ascending.png",descending:"/h5ai/images/descending.png"},customHeader:"h5ai.header.html",customFooter:"h5ai.footer.html",callbacks:{folderClick:[],fileClick:[]},viewmodes:["details","icons"],showTree:false,folderStatus:{},lang:undefined,useBrowserLang:true,setParentFolderLabels:true};this.config=d.extend({},n,k);this.folderClick=function(o){if(typeof o==="function"){this.config.callbacks.folderClick.push(o)}return this};this.fileClick=function(o){if(typeof o==="function"){this.config.callbacks.fileClick.push(o)}return this};this.init=function(){document.title=document.domain+decodeURI(document.location.pathname);this.applyViewmode();this.initBreadcrumb();this.initTopSpace();this.initViews();this.customize();this.localize(m,this.config.lang,this.config.useBrowserLang)};this.triggerFolderClick=function(o){for(idx in this.config.callbacks.folderClick){this.config.callbacks.folderClick[idx].call(window,o)}};this.triggerFileClick=function(o){for(idx in this.config.callbacks.fileClick){this.config.callbacks.fileClick[idx].call(window,o)}};this.getViewmode=function(){var o=localStorage.getItem(this.config.store.viewmode);return d.inArray(o,this.config.viewmodes)>=0?o:this.config.viewmodes[0]};this.applyViewmode=function(o){if(o!==undefined){localStorage.setItem(this.config.store.viewmode,o)}o=this.getViewmode();d("body > nav li.view").hide().removeClass("current");if(this.config.viewmodes.length>1){if(d.inArray("details",this.config.viewmodes)>=0){d("#viewdetails").show()}if(d.inArray("icons",this.config.viewmodes)>=0){d("#viewicons").show()}}if(o==="details"){d("#viewdetails").closest("li").addClass("current");d("#table").hide();d("#extended").addClass("details-view").removeClass("icons-view").show()}else{if(o==="icons"){d("#viewicons").closest("li").addClass("current");d("#table").hide();d("#extended").removeClass("details-view").addClass("icons-view").show()}else{d("#table").show();d("#extended").hide()}}};this.initBreadcrumb=function(){var t=d("#domain");var p=t.closest("ul");t.find("span").text(document.domain);var s=decodeURI(document.location.pathname).split("/");var r="/";for(idx in s){var o=s[idx];if(o!==""){r+=o+"/";var q=f.getPathForFolder(r);p.append(q.updateCrumbHtml())}}};this.initTopSpace=function(){function o(){var p=d("body > nav").height();var q=p+50;d("body").css("margin-top",""+q+"px");d("#tree").css("top",""+q+"px")}d(window).resize(function(){o()});o()};this.initTableView=function(){d("#table td").removeAttr("align").removeAttr("valign")};this.initExtendedView=function(){var s=d("
");var t=d("#table th");var q=t.eq(1).find("a");var v=t.eq(2).find("a");var p=t.eq(3).find("a");var u=d("").appendTo(s);d("").appendTo(u);d(""+q.text()+"").appendTo(u);d(""+v.text()+"").appendTo(u);d(""+p.text()+"").appendTo(u);var o=document.location.search;if(o===""){o=this.config.defaultSortOrder}var r;if(o.indexOf("O=A")>=0){r=d("
")}else{r=d("
")}if(o.indexOf("C=N")>=0){u.find("a.label").append(r)}else{if(o.indexOf("C=M")>=0){u.find("a.date").prepend(r)}else{if(o.indexOf("C=S")>=0){u.find("a.size").prepend(r)}}}d("#table td").closest("tr").each(function(){var w=f.getPathForTableRow(decodeURI(document.location.pathname),this);s.append(w.updateExtendedHtml())});d("#extended").append(s);if(s.children(".entry:not(.parentfolder)").size()===0){d("#extended").append(d("empty
"))}d("#extended").addClass("clearfix")};this.initViews=function(){this.initTableView();this.initExtendedView();d("#viewdetails").closest("li").click(function(){l.applyViewmode("details")});d("#viewicons").closest("li").click(function(){l.applyViewmode("icons")})};this.customize=function(){d.ajax({url:this.config.customHeader,dataType:"html",success:function(o){d("#content > header").append(d(o)).show()}});d.ajax({url:this.config.customFooter,dataType:"html",success:function(o){d("#content > footer").prepend(d(o)).show()}})};this.localize=function(q,r,s){if(s===true){var o=navigator.language;if(q[o]!==undefined){r=o}else{if(o.length>2&&q[o.substr(0,2)]!==undefined){r=o.substr(0,2)}}if(r==="en"){r=undefined}}if(q[r]!==undefined){var p=q[r];for(key in p){d(".l10n-"+key).text(p[key])}}}};var h=function(k){this.cache={};this.getPathForFolder=function(l){return this.getCachedPath(new c(k,l))};this.getPathForTableRow=function(m,l){return this.getCachedPath(new c(k,m,l))};this.getCachedPath=function(m){if(m.isParentFolder){return m}var l=this.cache[m.absHref];if(l!==undefined){console.log("cached path:",l.absHref);return l}console.log("new path:",m.absHref);this.cache[m.absHref]=m;return m}};var c=function(l,o,k){var n=this;if(!/\/$/.test(o)){o+="/"}if(k!==undefined){var q=d(k).find("td");var m=q.eq(0).find("img");var p=q.eq(1).find("a");this.parentFolder=o;this.icon16=m.attr("src");this.alt=m.attr("alt");this.label=p.text();this.href=decodeURI(p.attr("href"));this.date=q.eq(2).text();this.size=q.eq(3).text()}else{var r=l.splitPathname(o);this.parentFolder=r[0];this.label=r[1];this.icon16="/h5ai/icons/16x16/folder.png";this.alt="[DIR]";this.href=this.label;this.date="";this.size="";if(this.label==="/"){this.label=document.domain+"/"}}if(/\/$/.test(this.label)){this.label=this.label.slice(0,-1)}this.icon48=this.icon16.replace("16x16","48x48");this.isFolder=(this.alt==="[DIR]");this.isParentFolder=(this.isFolder&&this.label==="Parent Directory");this.absHref=this.isParentFolder?this.href:this.parentFolder+this.href;this.isCurrentFolder=(decodeURI(document.location.pathname)===this.absHref);if(this.isParentFolder&&a.config.setParentFolderLabels){if(this.absHref==="/"){this.label=decodeURI(document.domain)}else{this.label=l.splitPathname(l.splitPathname(this.parentFolder)[0])[1].slice(0,-1)}}this.status=undefined;this.content=undefined;this.html={$crumb:undefined,$extended:undefined,$tree:undefined};this.isEmpty=function(){if(this.content===undefined){return true}for(var s in this.content){if(this.content.hasOwnProperty(s)){return false}}return true};this.updateHtml=function(){this.updateCrumbHtml();this.updateExtendedHtml();this.updateTreeHtml()};this.updateCrumbHtml=function(){var s=d("").data("path",this);try{var u=d("
"+this.label+"");s.append(u);if(!isNaN(this.status)){if(this.status===200){d("
").appendTo(u)}else{d("("+this.status+")").appendTo(u)}}if(this.isCurrentFolder){s.addClass("current")}}catch(t){console.log("updateCrumbHtml failed",t);d("failed").appendTo(s)}if(this.html.$crumb!==undefined){this.html.$crumb.replaceWith(s)}this.html.$crumb=s;return s};this.updateExtendedHtml=function(){var t=d("").data("path",this);try{if(this.isFolder){t.addClass("folder").click(function(){a.triggerFolderClick(n)})}else{t.addClass("file").click(function(){a.triggerFileClick(n)})}var v=d("").appendTo(t);d("
").appendTo(v);d("
").appendTo(v);var s=d(""+this.label+"").appendTo(v);d(""+this.date+"").appendTo(v);d(""+this.size+"").appendTo(v);if(this.isParentFolder){if(!a.config.setParentFolderLabels){s.addClass("l10n-parentDirectory")}t.addClass("parentfolder")}if(!isNaN(this.status)){if(this.status===200){t.addClass("page");v.find(".icon.small img").attr("src","/h5ai/icons/16x16/folder-page.png");v.find(".icon.big img").attr("src","/h5ai/icons/48x48/folder-page.png")}else{t.addClass("error");s.append(" ").append(d(""+this.status+""))}}}catch(u){console.log("updateExtendedHtml failed",u);d("failed").appendTo(t)}if(this.html.$extended!==undefined){this.html.$extended.replaceWith(t)}this.html.$extended=t;return t};this.updateTreeHtml=function(){var s=d("").data("path",this);var w=d("").appendTo(s);try{var v=d("").appendTo(s).append(d("
")).append(d(""+this.label+""));if(this.isFolder){s.addClass("folder");if(this.status===undefined||!this.isEmpty()){var x=d("
");if(this.status===undefined){x.addClass("unknown")}else{x.addClass("open")}x.click(function(y){if(x.hasClass("unknown")){j.fetchPath(n.absHref,function(z){s.replaceWith(z.updateTreeHtml())})}else{if(x.hasClass("open")){x.removeClass("open");s.find("> ul.content").slideUp()}else{x.addClass("open");s.find("> ul.content").slideDown()}}});w.replaceWith(x)}if(this.isCurrentFolder){s.addClass("current");v.find(".icon img").attr("src","/h5ai/icons/16x16/folder-open.png")}if(!this.isEmpty()){var t=d("").appendTo(s);for(idx in this.content){d("").append(this.content[idx].updateTreeHtml()).appendTo(t)}}if(!isNaN(this.status)){if(this.status===200){v.find(".icon img").attr("src","/h5ai/icons/16x16/folder-page.png");v.append(d("
"))}else{s.addClass("error");v.append(d(""+this.status+""))}}}else{s.addClass("file")}}catch(u){console.log("updateTreeHtml failed",u);d("failed").appendTo(s)}if(this.html.$tree!==undefined){this.html.$tree.replaceWith(s)}this.html.$tree=s;return s}};var b=function(m,n){var o=this;var l=/^text\/html;h5ai=/;this.init=function(){if(n.config.showTree){this.updatePaths();this.populateTree()}};this.updatePath=function(p){if(p.isFolder&&!p.isParentFolder&&p.status===undefined){this.fetchStatus(p.absHref,function(q){if(q!=="h5ai"){p.status=q}p.updateHtml()})}};this.updatePaths=function(){for(var p in f.cache){this.updatePath(f.cache[p])}};this.populateTree=function(){var r=d("#tree");var q=d("#extended");var p=function(s){if(r.outerWidth()