jQuery.fn.sort=function(){var p=[].sort;return function(f,h){h=h||function(){return this};var n=this.map(function(){var l=h.call(this),i=l.parentNode,m=i.insertBefore(document.createTextNode(""),l.nextSibling);return function(){if(i===this)throw Error("You can't sort elements if any one is a descendant of another.");i.insertBefore(this,m);i.removeChild(m)}});return p.call(this,f).each(function(l){n[l].call(h.call(this))})}}();
function elementPager(p,f){this.elsSubset=this.els=p;this.sortInit=f.sortInit?f.sortInit:"date desc";this.sortCurrent=""+this.sortInit;this.sortEl=f.sortEl?f.sortEl:null;if(f.seasonsEl&&f.seasonsEl.size()>0&&this.els.filter("div[season]").size()>0){this.season=f.season?f.season:"All Videos";var h=f.seasonsEl,n=[],l="";this.els.filter("div[season]").each(function(){for(var b=false,g=$j(this).attr("season"),a=0;a<n.length;a++)if(g==n[a])b=true;b||n.push(g)});this.seasons=["All Videos"].concat(n.sort());
for(var i=0;i<this.seasons.length;i++)l+="<a href='##{seasonEsc}'><b>#{season}</b></a>".replace(/\#{seasonEsc}/g,escape(this.seasons[i])).replace(/\#{season}/g,this.seasons[i]);var m=this;h.append(l).find("a").click(function(){var b=unescape(this.href.split("#")[1]);$j(this).siblings().removeClass("selected");$j(this).addClass("selected");if(b=="All Videos")b="";m.season=b;m.currentPage=0;m.sort(this.sortCurrent)}).filter("a[href=#All%20Videos]").addClass("selected");if(location.hash.length>1&&this.seasons.length>
0)this.season=unescape(location.hash).substr(1);h=h.find("a");this.season!="All Videos"&&this.season!==""&&h.filter("a[href$=#"+escape(this.season)+"]").length>0&&h.removeClass("selected").filter("a[href$=#"+escape(this.season)+"]").addClass("selected")}else this.seasons=[];this.pageSize=f.pageSize?f.pageSize:6;this.currentPage=null;this.sortCallback=f.sortCallback;this.loadPage=function(b,g){if(jQuery){var a=jQuery,d=this.els;if(this.season&&this.season!==""&&this.season!="All Videos")d=d.filter('div[season="'+
this.season+'"]');if(b*this.pageSize<d.size()&&b>=0&&(b!=this.currentPage||this.currentPage===null||g||this.els.filter("*:visible").size()<1)){var j=this.els.filter("*:visible"),k=this,e=function(){for(var c=b*k.pageSize;c<(b+1)*k.pageSize;c++){if(c>d.size())break;a(d[c]).fadeIn(500)}a(".paginate .pagecounter .pagecounter-current").html(b+1);a(".paginate a").removeClass("pagenum").show().filter(".page"+(b+1)).addClass("pagenum");var o=Math.ceil(d.size()/k.pageSize),q=Math.ceil(k.els.size()/k.pageSize);
a(".paginate .pagecounter-count").html(o);if(o<q)for(c=o+1;c<=q;c++)a(".paginate a.page"+c).hide();b===0?a(".paginate .pageprev").hide():a(".paginate .pageprev").show();b>=o-1?a(".paginate .pagenext").hide():a(".paginate .pagenext").show();o==1&&a(".paginate a").hide();a(".paginate .pagecounter").fadeIn(500)};if(j.size()>0){j.fadeOut(500,e);a(".paginate .pagecounter").fadeOut(500)}else e();this.currentPage=b;this.elsSubset=d}}};this.next=function(){this.loadPage(this.currentPage+1)};this.previous=
function(){this.loadPage(this.currentPage-1)};this.sort=function(b){function g(e){return parseInt(e.split(",").join(""),10)}if(jQuery){if(!b)b=this.sortCurrent;var a=jQuery,d=false;switch(b){case "random":d=function(){return Math.random()>0.5?1:-1};break;case "alpha asc":d=function(e,c){return a(".title",e).text()>a("h3",c).text()?1:-1};break;case "alpha desc":d=function(e,c){return a(".title",e).text()<a("h3",c).text()?1:-1};break;case "plays asc":d=function(e,c){return g(a(e).attr("plays"))>g(a(c).attr("plays"))?
1:-1};break;case "plays desc":d=function(e,c){return g(a(e).attr("plays"))<g(a(c).attr("plays"))?1:-1};break;case "date asc":d=function(e,c){return g(a(e).attr("date"))>g(a(c).attr("date"))?1:-1};break;default:b="date desc";d=function(e,c){return g(a(e).attr("date"))<g(a(c).attr("date"))?1:-1}}this.sortCurrent=b;if(typeof d=="function"){this.sortEl&&this.sortEl.find("option").removeAttr("selected").filter('option[value="'+escape(b)+'"]').attr("selected","selected");var j=this;b=this.els.filter("*:visible");
var k=function(){j.els.sort(d);j.loadPage(j.currentPage=0,true);typeof j.sortCallback=="function"&&j.sortCallback(j.elsSubset)};if(b.size()>0){b.fadeOut(300);setTimeout(k,300)}else k()}}}}
