var MTMultiWidget=new Class({Implements:[Options],options:{widgetcls:"mtmultiselect",datasrc:null},handleDisplayEvent:function(a){this.filterform.update(a)},handleFilterEvent:function(b){this.curlist=b;this.paginator.setpagenum(1);var a=this.paginator.getpage(b);this.displaylist.build(a)},handlePaginatorEvent:function(){var a=this.paginator.getpage(this.curlist);this.displaylist.build(a)},initialize:function(b){this.setOptions(b);b.datasrc.setStyles({display:"None"});var a=new Element("div",{"class":this.options.widgetcls});a.inject(b.datasrc, 'after');b.view=a;this.displaylist=new DisplayList(b);b.numselected=this.displaylist.numselected();this.filterform=new FilterForm(b);this.paginator=new Paginator(b);this.curlist=this.options.datasrc.getChildren();this.displaylist.addEvent("rebuild",this.handleDisplayEvent.bind(this));this.filterform.addEvent("rebuild",this.handleFilterEvent.bind(this));this.paginator.addEvent("rebuild",this.handlePaginatorEvent.bind(this));var c=this.paginator.getpage(this.curlist);this.filterform.build();this.displaylist.build(c)}});var DisplayList=new Class({Implements:[Options,Events],options:{selectedcls:"selected",datasrc:null,view:null,paginator_on_bottom:true},initialize:function(a){this.setOptions(a)},build:function(b){var a=this.options.view.getElement("ol");if(a!==null){a.destroy()}list=new Element("ol");place=this.options.paginator_on_bottom?"before":"after";list.inject(this.options.view.getLast(),place);b.each(function(d){var c=new Element("li",{"class":d.selected?this.options.selectedcls:null,text:d.get("text")});c.store("select",d);list.grab(c);c.addEvent("click",function(e){e.target.toggleClass("selected");e.target.retrieve("select").selected=e.target.hasClass("selected");this.fireEvent("rebuild",this.numselected())}.bind(this))}.bind(this))},total:function(){return this.options.datasrc.getChildren().length},numselected:function(){var a=0;this.options.datasrc.getChildren().each(function(b){if(b.selected){a++}});return a}});var Paginator=new Class({Implements:[Options,Events],options:{items_per_page:10,list:[],displaylist:null},initialize:function(a){this.setOptions(a);this.items_per_page=this.options.items_per_page;this.page=1;this.controls=new Element("div",{"class":"mtms_paginator"});this.options.view.grab(this.controls)},numpages:function(a){return Math.ceil(a.length/this.items_per_page)},getpage:function(b){var c=((this.page-1)*this.items_per_page);var a=c+this.items_per_page;this.updateControls(b);return b.slice(c,a)},pageup:function(){this.page++},pagedown:function(){this.page--},updateControls:function(d){var c=this.numpages(d);this.controls.empty();var e=new Element("a",{html:"Zur&uuml;ck",href:"#cpcspswdnbd"});this.controls.grab(e,"top");e.addClass("disabled");if(this.page>1){e.removeClass("disabled");e.addEvent("click",function(f){this.pagedown();this.fireEvent("rebuild",d)}.bind(this))}for(var b=1;b<=c;b++){this.controls.grab(new Element("a",{text:b,href:"#cpcspswdnbd","class":(b==this.page)?"selected":"",events:{click:function(f){this.setpagenum(f.target.innerHTML);this.fireEvent("rebuild",[d])}.bind(this)}}),"bottom")}var a=new Element("a",{text:"Weiter",href:"#cpcspswdnbd"});this.controls.grab(a);a.addClass("disabled");if(this.page<c){a.removeClass("disabled");a.addEvent("click",function(f){this.pageup();this.fireEvent("rebuild")}.bind(this))}},setpagenum:function(a){this.page=Number(a)}});var FilterForm=new Class({RESETINPUT:true,Implements:[Options,Events],options:{view:null,case_sensitive:false,displaylist:null,inputpos:"top",labels:{total:"Gesamt",selected:"Ausgew&auml;hlt",unselected:"Nicht ausgew&auml;hlt",filter:"filter","in":"in",out:"out",page:"Seite"},classes:{total:"mttotal",selected:"mtselected"}},initialize:function(a){this.setOptions(a);this.numselected=a.numselected},build:function(){var a=new Element("ul",{"class":"mtms_filtercontrols"});this.options.view.grab(a,this.options.inputpos);this.totalbtn=this.makebtn(this.options.labels.total,this.showtotal,this.options.datasrc.getChildren().length);a.grab(this.totalbtn);this.selectedbtn=this.makebtn(this.options.labels.selected,this.showselected,this.numselected);a.grab(this.selectedbtn);this.unselectedbtn=this.makebtn(this.options.labels.unselected,this.showunselected,this.options.datasrc.getChildren().length-this.numselected);a.grab(this.unselectedbtn);filterbox_container=new Element("div",{"class":"mtms_filterbox"});this.filterbox=new Element("input",{events:{keyup:function(b){if(this.options.case_sensitive){filter_by_text=function(c){return c.text.contains(b.target.value)}}else{filter_by_text=function(c){return c.text.toLowerCase().contains(b.target.value.toLowerCase())}}this.filter(this.options.datasrc.getChildren(),filter_by_text)}.bind(this)}});filterbox_container.grab(this.filterbox);this.options.view.grab(filterbox_container,this.options.inputpos)},makebtn:function(b,d,e){var a=new Element("li");if(b!="Gesamt"){}var c=new Element("a",{html:b,href:"#cpcspswdnbd",events:{click:d.bind(this)}});a.grab(c);if(e!==undefined){e=new Element("span",{text:e});a.grab(e)}return a},showtotal:function(){("show total called");this.filter(this.options.datasrc.getChildren(),function(a){return true},this.RESETINPUT)},showselected:function(){this.filter(this.options.datasrc.getChildren(),function(a){return(a.selected===true)},this.RESETINPUT)},showunselected:function(){this.filter(this.options.datasrc.getChildren(),function(a){return(a.selected!==true)},this.RESETINPUT)},filter:function(b,c,a){results=b.filter(function(e,d){return c(e)});if(a){this.filterbox.value=""}this.fireEvent("rebuild",[results])},update:function(b){var a=this.options.datasrc.getChildren().length;this.totalbtn.getElement("span").set("text",a);this.selectedbtn.getElement("span").set("text",b);this.unselectedbtn.getElement("span").set("text",a-b)}});Element.Events.rebuild={base:"change",condition:function(a){return}};
