(function(a){var b=window.History,c={init:function(c){if(!c.badges||!c.pkgs)a.error("Missing arguments");else{pkg_finder.badges=c.badges,pkg_finder.badge_list=_.values(c.badges),pkg_finder.pkgs=c.pkgs,_.each(pkg_finder.badge_list,function(a){a.pkgs=_.map(a.pkgs,function(a){return pkg_finder.pkgs[a]})}),_.each(pkg_finder.pkgs,function(a){a.badges=_.map(a.badges,function(a){return pkg_finder.badges[a]})}),pkg_finder.afterRender_badges=function(b){var c=a(b);c.find("[title]").tipTip({delay:0})},pkg_finder.selected=ko.observableArray(),pkg_finder.resultPkgs=ko.observableArray(),_.each(pkg_finder.badge_list,function(c){c.selected=ko.dependentObservable(function(){return pkg_finder.selected.indexOf(this)!=-1},c),c.disabled=ko.dependentObservable(function(){if(this.pkgs.length===0)return!0;if(pkg_finder.selected().length<1)return!1;var a=_.intersection(pkg_finder.resultPkgs(),this.pkgs);return a.length<1},c),c.click=function(c,d,e){var f=a(c.currentTarget).closest("li"),g=f.attr("id"),h=pkg_finder.badges[g],i=pkg_finder.selected.indexOf(h);i==-1?pkg_finder.badges[g].disabled()||pkg_finder.selected.push(h):pkg_finder.selected.splice(i,1);var j=[];_.each(pkg_finder.selected(),function(a){j.push(a._id)}),j.sort(),b.pushState({ids:j},a("head title").text(),"?badges="+j.join(","));return!1}},this),pkg_finder.selected.subscribe(function(){var a=[];_.each(pkg_finder.selected(),function(b){a.push(b.pkgs)}),pkg_finder.resultPkgs.removeAll(),_.each(_.intersection.apply(this,a),function(a){pkg_finder.resultPkgs.push(a)})}),pkg_finder.resultTemplateName=function(){return pkg_finder.resultPkgs().length?"badge-results":"badge-noresults"},ko.applyBindings(pkg_finder),a(".pkg-search.badge-group").children("ul").delegate("li","mouseenter",function(){var b=a(this);b.hasClass("ui-state-disabled")||b.addClass("ui-state-hover")}).delegate("li","mouseleave",function(){var b=a(this);b.removeClass("ui-state-hover")}),a(".pkg-result").delegate(".pkg","mouseenter",function(){a(this).closest(".pkg").addClass("hover")}).delegate(".pkg","mouseleave",function(){a(this).closest(".pkg").removeClass("hover")});var d=function(){var a=b.getState(),c;if(!a.data||!a.data.ids){var d=window.location.search.replace(/%2C/i,",");if(d){var e=d.match(/^\?badges=([0-9a-f,]+)/);e&&(c=e[1].split(","))}}else c=a.data.ids;c===undefined&&(c=[]),pkg_finder.selected.removeAll(),_.each(c,function(a){var b=pkg_finder.badges[a];b!==undefined&&pkg_finder.selected.push(b)})};d(),b.Adapter.bind(window,"statechange",d)}}};window.pkg_finder=function(b){if(c[b])return c[b].apply(this,Array.prototype.slice.call(arguments,1));if(typeof b=="object"||!b)return c.init.apply(this,arguments);a.error("Method "+b+" does not exist on pkg_finder");return null}})(jQuery)
