(function(a){"use strict";var b={factory:{},init:function(){this.h5ai=new this.factory.H5ai(h5aiOptions,h5aiLangs),this.h5ai.init(),a("#tree").scrollpanel(),this.h5ai.shiftTree(!1,!0),a.h5ai={click:a.proxy(this.h5ai.pathClick,this.h5ai)}}};b.factory.H5ai=function(b,c){var d=a(window),e=a(document),f={store:{viewmode:"h5ai.pref.viewmode",lang:"h5ai.pref.lang"},callbacks:{pathClick:[]},h5aiAbsHref:"/h5ai",viewmodes:["details","icons"],sortorder:{column:"name",ascending:!0},showTree:!0,slideTree:!0,folderStatus:{},lang:null,useBrowserLang:!0,setParentFolderLabels:!0,linkHoverStates:!0,dateFormat:"yyyy-MM-dd HH:mm",showThumbs:!0,zippedDownload:!0},g=a.extend({},f,b),h=function(){return g.h5aiAbsHref+"/php/api.php"},i=function(a){return g.h5aiAbsHref+"/images/"+a+".png"},j=function(a,b){return g.h5aiAbsHref+"/icons/"+(b?"48x48":"16x16")+"/"+a+".png"},k=function(b){a.isFunction(b)&&g.callbacks.pathClick.push(b)},l=function(b,c){a.each(g.callbacks.pathClick,function(a,d){d(b,c)})},m=function(){var b=amplify.store(g.store.viewmode);return a.inArray(b,g.viewmodes)>=0?b:g.viewmodes[0]},n=function(b){b&&amplify.store(g.store.viewmode,b),b=m(),a("#viewdetails,#viewicons").hide().removeClass("current"),g.viewmodes.length>1&&(a.inArray("details",g.viewmodes)>=0&&a("#viewdetails").show(),a.inArray("icons",g.viewmodes)>=0&&a("#viewicons").show()),b==="details"?(a("#viewdetails").closest("li").addClass("current"),a("#extended").addClass("details-view").removeClass("icons-view").show()):b==="icons"?(a("#viewicons").closest("li").addClass("current"),a("#extended").removeClass("details-view").addClass("icons-view").show()):a("#extended").hide()},o=function(){var b=function(){var b=d.height(),c=a("body > nav").outerHeight(),e=a("body > footer").outerHeight(),f=50,g=50;a("body").css({"margin-top":c+f,"margin-bottom":e+f}),a("#tree").css({top:c+g,height:b-c-e-36-2*g});try{a("#tree").get(0).updateScrollbar()}catch(h){}};d.resize(function(){b()}),b()},p=function(){a("#table").remove(),a("#viewdetails").closest("li").click(function(){n("details")}),a("#viewicons").closest("li").click(function(){n("icons")}),a("#extended .entry a").hover(function(){if(a("#extended").hasClass("icons-view")){var b=a(this);a(".status.default").hide(),a(".status.dynamic").empty().append(b.find(".label").clone()).append(a("<span class='sep'>·</span>")).append(b.find(".date").clone()).show(),b.closest(".entry").hasClass("folder")||a(".status.dynamic").append(a("<span class='sep'>·</span>")).append(b.find(".size").clone())}},function(){a(".status.default").show(),a(".status.dynamic").empty().hide()})},q=function(b,c){var d=a("#tree"),e=a("#extended");g.slideTree&&d.outerWidth()<e.offset().left||b?c?d.stop().css({left:0}):d.stop().animate({left:0}):c?d.stop().css({left:18-d.outerWidth()}):d.stop().animate({left:18-d.outerWidth()})},r=function(){a("#tree").hover(function(){q(!0)},function(){q()}),d.resize(function(){q()}),q(!1,!0)},s=function(b){var c=[];return a("a[href^='/']").each(function(){a(this).attr("href")===b&&c.push(this)}),a(c)},t=function(){g.linkHoverStates&&a("a[href^='/']:not(.linkedHoverStates)").each(function(){var b=a(this).addClass("linkedHoverStates"),c=b.attr("href");b.hover(function(){s(c).addClass("hover")},function(){s(c).removeClass("hover")})})},u=function(b,c,d){var e=amplify.store(g.store.lang),f=g.dateFormat,h,i,j;b[e]?c=e:d&&(h=navigator.language,b[h]?c=h:h.length>2&&b[h.substr(0,2)]&&(c=h.substr(0,2))),b[c]||(c="en"),i=b[c],i&&(a.each(i,function(b,c){a(".l10n-"+b).text(c)}),a(".lang").text(c),a(".langOption").removeClass("current"),a(".langOption."+c).addClass("current")),f=i.dateFormat||f,a("#extended .entry .date").each(function(){var b=a(this),c=b.data("time"),d=c?(new Date(c)).toString(f):"";b.text(d)})},v=function(b){var c=a(".langOptions"),d=[],e;a.each(b,function(a){d.push(a)}),d.sort(),e=a("<ul />"),a.each(d,function(c,d){a("<li class='langOption' />").addClass(d).text(d+" - "+b[d].lang).appendTo(e).click(function(){amplify.store(g.store.lang,d),u(b,d,!1)})}),a("#langSelector .langOptions").append(e),a("#langSelector").hover(function(){c.css("top","-"+c.outerHeight()+"px").stop(!0,!0).fadeIn()},function(){c.stop(!0,!0).fadeOut()})},w=function(b){var c=a(this),d=c.closest(".entry");c.hasClass("unknown")?a.get(h(),{action:"tree",href:d.find("> a").attr("href")},function(b){var e=a(b);c.removeClass("unknown"),e.find("> li").size()===0?c.replaceWith(a("<span class='blank' />")):(c.addClass("open"),d.find("> .content").replaceWith(e),a("#tree").get(0).updateScrollbar(),e.find(".indicator:not(.initiated)").click(w).addClass("initiated"))}):c.hasClass("open")?(c.removeClass("open"),a("#tree").get(0).updateScrollbar(!0),d.find("> .content").slideUp(function(){a("#tree").get(0).updateScrollbar()})):(c.addClass("open"),a("#tree").get(0).updateScrollbar(!0),d.find("> .content").slideDown(function(){a("#tree").get(0).updateScrollbar()}))},x=function(){a("#tree .entry.folder .indicator:not(.initiated)").click(w).addClass("initiated")},y=function(){var b=0,c=0,d=!1,f=function(){var b,c,d=a("#extended a.selected");d.size()>0?(d.each(function(){c=a(this).attr("href"),b=b?b+":"+c:c}),b=h()+"?action=zip&hrefs="+b,a("#download").show().find("a").attr("href",b)):a("#download").hide().find("a").attr("href","#")},i=function(d){var e=Math.min(b,d.pageX),f=Math.min(c,d.pageY),g=Math.abs(b-d.pageX),h=Math.abs(c-d.pageY),i;d.preventDefault(),a("#selection-rect").css({left:e,top:f,width:g,height:h}),i=a("#selection-rect").fracs("rect"),a("#extended a").removeClass("selecting").each(function(){var b=a(this),c=b.fracs("rect"),d=i.intersection(c);d&&!b.closest(".entry").hasClass("folder-parent")&&b.addClass("selecting")})},j=function(b){b.preventDefault(),e.unbind("mousemove",i),a("#selection-rect").hide().css({left:0,top:0,width:0,height:0}),a("#extended a.selecting.selected").removeClass("selecting").removeClass("selected"),a("#extended a.selecting").removeClass("selecting").addClass("selected"),f()},k=function(g){var h=a.fracs.viewport();b=g.pageX,c=g.pageY;if(g.button!==0||b>=h.right||c>=h.bottom)return;g.preventDefault(),d||(a("#extended a").removeClass("selected"),f()),a("#selection-rect").show().css({left:b,top:c,width:0,height:0}),i(g),e.bind("mousemove",i).one("mouseup",j)},l=function(a){return a.stopPropagation(),!1},m=function(a){d||l(a)};g.zippedDownload&&(a("body>nav,body>footer,#tree").bind("mousedown",l),a("#extended .entry a").bind("mousedown",m).live("mousedown",m),e.bind("mousedown",k).keydown(function(a){a.keyCode===17&&(d=!0)}).keyup(function(a){a.keyCode===17&&(d=!1)}))},z=function(){n(),o(),p(),r(),t(),v(c),u(c,g.lang,g.useBrowserLang),x(),y()};return{settings:g,api:h,image:i,icon:j,shiftTree:q,linkHoverStates:t,pathClick:k,triggerPathClick:l,initIndicators:x,init:z}},a(function(){b.init()})})(jQuery)
