/*
 * jPList - jQuery plugin for sorting, filtering and paging 
 * http://do-web.com/jplist/overview
 *
 * Copyright 2011, Miriam Zusin
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://do-web.com/jplist/license
 */
(function(c){c.blocks=c.blocks||{};c.blocks.jplist=c.blocks.jplist||{}})(jQuery);(function(c){c.blocks.jplist.Cookies=function(h,j,f,b,a,g){var e={};e.setCookies=function(){var d,i,h=b.sort_name,j=a.items_on_page,k=a.cpage,l=b.order,m=Boolean(b.sort_is_num);g.input_fields.each(function(){d=g.format(c(this).val());i=c(this).attr("class");e.setCookie("f-"+i,d)});e.setCookie("s",h);e.setCookie("iop",j);e.setCookie("c",k);e.setCookie("o",l);e.setCookie("sn",m);e.setCookie("id",f.url)};e.getCookies=function(){var d,i,h=e.getCookie("s"),j=e.getCookie("iop"),k=e.getCookie("c"),l=e.getCookie("o"),
m="true"==e.getCookie("sn")?!0:!1;if(e.getCookie("id")!=f.url)a.cpage=0;else if(g.input_fields.each(function(){i=c(this).attr("class");d=e.getCookie("f-"+i);void 0!=d&&""!=d&&g.filter_pathes.find("input[class='"+i+"']").val(d)}),void 0!=k&&""!=k)a.cpage=k;if(void 0!=h&&""!=h)b.sort_name=h;if(void 0!=j&&""!=j)a.items_on_page=j;if(void 0!=l&&""!=l)b.order=l;if(void 0!=m&&""!=m)b.sort_is_num=Boolean(m)};e.setCookie=function(a,b){var g=escape(b),e=new Date;e.setDate(e.getDate()+1);document.cookie=a+"="+
g+";path=/; expires="+e.toUTCString()};e.getCookie=function(a){var b,g,e,c;c=document.cookie.split(";");for(b=0;b<c.length;b++)if(g=c[b].substr(0,c[b].indexOf("=")),e=c[b].substr(c[b].indexOf("=")+1),g=g.replace(/^\s+|\s+$/g,""),g==a)return unescape(e)};return e}})(jQuery);(function(c){c.fn.jplist=function(h){var j=c.extend({items_box:"",item_path:"",pagingbox:"#buttons",pageinfo:"#info",filter_path:"",sort:{},filter:{},sort_order:"asc",sort_is_num:!1,sort_name:"",max_pages:5,items_on_page:15,redraw_callback:"",cookies:!1,sort_dd_path:"#sort-drop-down",paging_dd_path:"#page-by"},h);return this.each(function(){var f=c(this),b={viewData:[],dataObj:new c.blocks.jplist.Data(j,f),filterObj:new c.blocks.jplist.Filter(j,f)};b.sortObj=new c.blocks.jplist.Sort(j,f,b.dataObj);
b.pagingObj=new c.blocks.jplist.Paging(j,f,b.dataObj,b.sortObj);b.cookiesObj=new c.blocks.jplist.Cookies(j,f,b.dataObj,b.sortObj,b.pagingObj,b.filterObj);b.pagingObj.set_cookiesObj(b.cookiesObj);b.ddObj=new c.blocks.jplist.DropDown(j,f,b.pagingObj,b.sortObj);b.updateView=function(){b.viewData=b.filterObj.filterData(b.dataObj);b.viewData=b.sortObj.sortData(b.viewData);b.viewData=b.pagingObj.setPaging(b.viewData);b.dataObj.print(b.viewData,b.sortObj,b.pagingObj,b.cookiesObj)};b.sort=function(a,g,e){b.pagingObj.cpage=
0;b.sortObj.sort_name=a;b.sortObj.order=g;b.sortObj.sort_is_num=Boolean(e);b.updateView()};b.paging=function(a){b.pagingObj.items_on_page="all"==a?b.pagingObj.all_items_num:a;b.pagingObj.cpage=0;b.updateView()};b.init=function(){b.ddObj.paging_dd.find("li").unbind().bind("click",function(){var a=c(this).find("span").attr("class").replace("p","");b.paging(a)});b.ddObj.sort_dd.find("li").unbind().bind("click",function(){var a=c(this).find("span").attr("class"),g,e="asc",d="";g=-1!=a.indexOf("true")?
!0:!1;-1!=a.indexOf("desc")&&(e="desc");for(var i in j.sort)c(this).find("span").hasClass(i)&&(d=i);b.sort(d,e,g)});b.filterObj.input_fields.unbind().bind("keyup",function(){b.pagingObj.cpage=0;b.updateView()});j.cookies&&(b.cookiesObj.getCookies(),b.ddObj.initDD());b.updateView()}()})}})(jQuery);(function(c){c.blocks.jplist.Data=function(h,j){var f={box:j.find(h.items_box),data:[],items:j.find(h.item_path),consts:{ID:0,HTML:1,SORT_ARR:2,FILTER_ARR:3},url:document.URL};f.init_consts=function(){var b=0,a;for(a in h.sort)f["sort-"+a]=b,b++;var b=0,g;for(g in h.filter)f["filter-"+g]=b,b++};f.getOuterHTML=function(b){for(var a="",g=b[0].attributes,e=b.html(),b=b[0].tagName.toString().toLowerCase(),a=a+("<"+b+" "),d=0;d<g.length;d++)null!=g[d].nodeValue&&""!=g[d].nodeValue&&(a+=g[d].nodeName+"=",
a+="'"+g[d].nodeValue+"' ");return a+">"+e+("</"+b+">")};f.getItems=function(){var b="",a=0;f.items.each(function(){var g=[],e=[];b=f.getOuterHTML(c(this));for(var d in h.sort)g.push([c(this).find(h.sort[d]).text()]);for(var i in h.filter)e.push([c(this).find(h.filter[i]).text()]);f.data.push([a,b,g,e]);a++})};f.print=function(b,a,g,e){for(var d="",i=a.sort_name,j=g.items_on_page,g=g.cpage,n=a.order,a=Boolean(a.sort_is_num),k=0;k<b.length;k++)d+=b[k][f.consts.HTML];f.box.html(d);h.cookies&&e.setCookies();
c.isFunction(h.redraw_callback)&&h.redraw_callback(i,j,g,n,a)};f.init_consts();f.getItems();return f}})(jQuery);(function(c){c.blocks.jplist.DropDown=function(h,j,f,b){var a={sort_dd:j.find(h.sort_dd_path),paging_dd:j.find(h.paging_dd_path)};c(document).unbind().bind("click",function(){j.find(".drop-down").each(function(){var a=c(this).find("ul");a.is(":visible")&&a.hide()})});a.init_dd=function(a){var b=a.find("li span:eq(0)").text(),d,i;a.prepend("<div class='panel'>"+b+"</div>");d=a.find(".panel");i=a.find("ul");d.unbind().bind("click",function(a){a.stopPropagation();i.is(":visible")?i.hide():i.show()});
i.find("li").unbind().live("click",function(){d.html(c(this).text())})};a.init_dd(a.sort_dd);a.init_dd(a.paging_dd);a.sort_dd_panel=a.sort_dd.find(".panel");a.paging_dd_panel=a.paging_dd.find(".panel");a.initDD=function(){var g=b.sort_name,e=b.order,d=Boolean(b.sort_is_num),i;i=a.paging_dd.find("span[class='p"+f.items_on_page+"']");0>=i.length&&(i=a.paging_dd.find("span[class='all']"));a.paging_dd_panel.html(i.text());a.sort_dd.find("ul li span").each(function(){c(this).hasClass(g)&&c(this).hasClass(e)&&
c(this).hasClass(d)&&a.sort_dd_panel.html(c(this).text())})};return a}})(jQuery);(function(c){c.blocks.jplist.Filter=function(h,j){var f={filter_pathes:j.find(h.filter_path)};f.input_fields=f.filter_pathes.find("input");f.format=function(b){b=new String(b);b=b.replace(/[^a-zA-Z0-9]+/g,"");return b.toLowerCase()};f.if_add_item=function(b){for(var a=!0,g=0;g<b.length;g++)a&=b[g];return a};f.filterData=function(b){for(var a=[],g,e,d,i=0;i<b.data.length;i++)e=b.data[i],g=e[b.consts.FILTER_ARR],d=[],f.input_fields.each(function(){var a=f.format(c(this).val()),e=c(this).attr("class");
-1!=f.format(g[b["filter-"+e]][0]).indexOf(a)||""==c.trim(a)?d.push(!0):d.push(!1)}),f.if_add_item(d)&&a.push(e);return a};return f}})(jQuery);(function(c){c.blocks.jplist.Paging=function(h,j,f,b){var a={box:j.find(h.items_box),items:j.find(h.item_path),items_on_page:h.items_on_page,cpage:0,pagingView:[],pageinfo:j.find(h.pageinfo),pagingbox:j.find(h.pagingbox)};a.all_items_num=a.items.length;a.set_cookiesObj=function(b){a.cookiesObj=b};a.pagingbox.html("<div id='pagingprev'></div><div id='pagingmid'></div><div id='pagingnext'></div>");a.pagingprev=a.pagingbox.find("#pagingprev");a.pagingmid=a.pagingbox.find("#pagingmid");a.pagingnext=a.pagingbox.find("#pagingnext");
a.pagingprev.html("<span class='first'>&laquo;</span><span class='prev'>&lt;</span>");a.pagingnext.html("<span class='next'>&gt;</span><span class='last'>&raquo;</span>");a.first=a.pagingprev.find(".first");a.prev=a.pagingprev.find(".prev");a.next=a.pagingnext.find(".next");a.last=a.pagingnext.find(".last");a.init=void 0;a.first.unbind().live("click",function(){a.cpage=0;a.setPaging(a.pagingView)});a.prev.unbind().live("click",function(){a.cpage=a.getprevpage();a.setPaging(a.pagingView)});a.next.unbind().live("click",
function(){a.cpage=a.getnextpage();a.setPaging(a.pagingView)});a.last.unbind().live("click",function(){a.cpage=a.get_pages_num(a.items_on_page)-1;a.setPaging(a.pagingView)});a.get_pages_num=function(b){return Math.ceil(a.all_items_num/b)};a.getprevpage=function(){return 0>=a.cpage?0:a.cpage-1};a.getnextpage=function(){return a.cpage>=a.get_pages_num(a.items_on_page)-1?a.get_pages_num(a.items_on_page)-1:eval(a.cpage)+1};a.setPaging=function(g){var e=a.cpage*a.items_on_page,d=e+a.items_on_page,c=g.length;
a.pagingView=g;if(d>g.length)d=g.length;a.all_items_num=c;g=g.slice(e,d);a.updateInfo(e,d,c);a.updateBullets();a.setarrowview();a.setPagingDisplay();f.print(g,b,a,a.cookiesObj);return g};a.updateBullets=function(){var b,e,d="";if(0<=a.cpage&&a.cpage<a.get_pages_num(a.items_on_page)){e=Math.floor(a.cpage/h.max_pages);b=h.max_pages*e;e=h.max_pages*(e+1);e>a.get_pages_num(a.items_on_page)&&(e=a.get_pages_num(a.items_on_page));for(var d=d+"<div id='pagesbox'>",i=b;i<e;i++)d+="<span",i==a.cpage&&(d+=" class='current'"),
b=i+1,d+=">"+b+"</span> ";a.pagingmid.html(d+"</div>");a.pagingmid.find("span").unbind().click(function(){var b=c(this).text()-1;a.cpage=b;a.setPaging(a.pagingView)})}};a.setarrowview=function(){0==a.cpage?a.pagingprev.css("visibility","hidden"):a.pagingprev.css("visibility","visible");a.cpage==a.get_pages_num(a.items_on_page)-1?a.pagingnext.css("visibility","hidden"):a.pagingnext.css("visibility","visible")};a.setPagingDisplay=function(){1!=a.get_pages_num(a.items_on_page)&&a.pagingbox.css("visibility",
"visible")};a.updateInfo=function(b,e,d){a.pageinfo.html(eval(b)+1+" - "+eval(e)+" of "+eval(d))};return a}})(jQuery);(function(c){c.blocks.jplist.Sort=function(c,j,f){var b={order:c.sort_order,sort_name:c.sort_name,sort_is_num:Boolean(c.sort_is_num),getFromArr:function(a,b){return a[f.consts.SORT_ARR][f["sort-"+b]]}};b.sortData=function(a){Boolean(b.sort_is_num)?a.sort(function(a,e){var d=b.getFromArr(a,b.sort_name),c=b.getFromArr(e,b.sort_name);try{d=d.toString().replace(/[^0-9.]+/g,""),c=c.toString().replace(/[^0-9.]+/g,"")}catch(f){}if("asc"==b.order){if(""==d)return 1;if(""==c)return-1}else{if(""==c)return 1;
if(""==d)return-1}return d-c}):a.sort(function(a,c){var d=b.getFromArr(a,b.sort_name),f=b.getFromArr(c,b.sort_name);return void 0==d||void 0==f?d>f?1:-1:d.toString().toLowerCase()>f.toString().toLowerCase()?1:-1});"desc"==b.order&&a.reverse(function(a,c){var d=b.getFromArr(a,b.sort_name),f=b.getFromArr(c,b.sort_name);return void 0==d||void 0==f?d>f?1:-1:d.toString().toLowerCase()>f.toString().toLowerCase()?1:-1});return a};return b}})(jQuery);

