function stringComparison(d,c){d=d.toLowerCase();d=d.replace(/ä/g,"a");d=d.replace(/ö/g,"o");d=d.replace(/ü/g,"u");d=d.replace(/ß/g,"s");c=c.toLowerCase();c=c.replace(/ä/g,"a");c=c.replace(/ö/g,"o");c=c.replace(/ü/g,"u");c=c.replace(/ß/g,"s");return(d==c)?0:(d>c)?1:-1;}var SmartList=Class.create();SmartList.prototype={currentPage:1,currentFlag:"dd1-all",currentFlag2:"dd2-all",options:{},flagInfo:null,listItems:[],itemFlagIndexes:[],hasSecondPagination:false,hasNumResults:false,hasSecondDropdown:false,initialize:function(){var f=Object.extend({baseName:"sl",itemClass:"item",showFlagCount:true,itemFlagClass:"flags",itemFlagSeparator:", ",itemChangeEffect:"Blind",itemChangeDuration:1,pageChangeEffect:"FadeAppear",pageChangeDuration:0.5,numItemsPerPage:10,paginationLeft:"\u00ab",paginationRight:"\u00bb",maxPaginationLinks:10,defaultDropdownOptText:"All items",defaultDropdown2OptText:"All items",dd2Flags:[],optgroups:{}},arguments[0]||{});
var n=$$("#"+f.baseName+" ."+f.itemClass);var l=[];var x=new Hash();if($(f.baseName+"-flag-dropdown2")){this.hasSecondDropdown=true;}var d=0;for(var s=0;s<n.length;s++){n[s].style.display=(s<f.numItemsPerPage)?"block":"none";var v=$(n[s]).select("."+f.itemFlagClass);var o=[];var t=[];for(var r=0;r<v.length;
r++){var e=$(v[r]).innerHTML.split(/:::/);var u=document.createElement("span");for(var q=0;q<e.length;q++){var g=e[q].replace(/&nbsp;/g," ");var h=(this.hasSecondDropdown&&f.dd2Flags.include(g))?2:1;flagIndex=d;if(x.get(g)==undefined){x.set(g,[d,1,h]);d++;}else{var m=x.get(g);flagIndex=m[0];flagCount=m[1]+1;
x.set(g,[flagIndex,flagCount,h]);}var w=$(document.createElement("a"));w.setAttribute("href","#");w.addClassName(f.baseName+"-flag"+flagIndex);w.appendChild(document.createTextNode(g));u.appendChild(w);u.appendChild(document.createTextNode(f.itemFlagSeparator));o.push(flagIndex);}$(v[r]).innerHTML="";
$(v[r]).appendChild(u);}if(u.childNodes.length){u.removeChild(u.childNodes[u.childNodes.length-1]);}l[s]=o;}var b=x.keys().sort(stringComparison);var c=new Hash();for(var s=0;s<b.length;s++){var p=x.get(b[s]);c.set(b[s],p);}if($(f.baseName+"-pagination2")){this.hasSecondPagination=true;}if($(f.baseName+"-num-results")){this.hasNumResults=true;
$(f.baseName+"-num-results").innerHTML=n.length;}this.options=f;this.flagInfo=c;this.listItems=n;this.itemFlagIndexes=l;this.createPagination("dd1-all");this.addDropdowns();$(f.baseName).show();},createPagination:function(){this._createPaginationGroup("pagination");if(this.hasSecondPagination){this._createPaginationGroup("pagination2");
}},showAll:function(){this.currentFlag="dd1-all";this.currentFlag2="dd2-all";this.filterByFlag(null,"dd1-all");if(this.hasSecondDropdown){this._selectDropdownOption("dd2-all",2);}},addDropdowns:function(){var b=this.options;var a=this.flagInfo;var f=this.hasSecondDropdown;var e=this;var d=document.createElement("select");
d.onchange=this.filterByFlag.bindAsEventListener(this);var c=document.createElement("option");c.setAttribute("value","dd1-all");c.appendChild(document.createTextNode(b.defaultDropdownOptText));d.appendChild(c);a.each(function(m){var g=m.key;var i=m.value[0];var k=m.value[1];var h=m.value[2];if(h==1){var j=document.createElement("option");
j.setAttribute("value",i);var l=(b.showFlagCount)?g+" ("+k+")":g;j.appendChild(document.createTextNode(l));d.appendChild(j);}$$("."+b.baseName+"-flag"+i).invoke("observe","click",e.filterByFlag.bindAsEventListener(e,i));});$(b.baseName+"-flag-dropdown").appendChild(d);if(f){var d=document.createElement("select");
d.onchange=this.filterByFlag.bindAsEventListener(this);var c=document.createElement("option");c.setAttribute("value","dd2-all");c.appendChild(document.createTextNode(b.defaultDropdown2OptText));d.appendChild(c);a.each(function(m){var g=m.key;var i=m.value[0];var k=m.value[1];var h=m.value[2];if(h==2){var j=document.createElement("option");
j.setAttribute("value",i);var l=(b.showFlagCount)?g+" ("+k+")":g;j.appendChild(document.createTextNode(l));d.appendChild(j);}});$(b.baseName+"-flag-dropdown2").appendChild(d);}},filterByFlag:function(a,h){var d=h;if(a!=null&&Event.element(a).value!=undefined){d=Event.element(a).value;}if(a!=null){Event.stop(a);
}var j=this._getFlagDropdownNum(d);if(j==1){this.currentFlag=d;}else{this.currentFlag2=d;}var c=this.listItems;var k=this.options;var b=this.itemFlagIndexes;var g=0;for(var f=0;f<c.length;f++){if(g>=k.numItemsPerPage){c[f].hide();continue;}if(this._shouldDisplayItem(b[f])){if(c[f].style.display=="none"){switch(k.itemChangeEffect){case"Blind":Effect.BlindDown(c[f],{duration:k.itemChangeDuration});
break;case"FadeAppear":Effect.Appear(c[f],{duration:k.itemChangeDuration});break;case"ShrinkGrow":Effect.Grow(c[f],{duration:k.itemChangeDuration});break;default:c[f].show();break;}}g++;}else{if(c[f].style.display!="none"){switch(k.itemChangeEffect){case"Blind":Effect.BlindUp(c[f],{duration:k.itemChangeDuration});
break;case"FadeAppear":Effect.Fade(c[f],{duration:k.itemChangeDuration});break;case"ShrinkGrow":Effect.Shrink(c[f],{duration:k.itemChangeDuration});break;default:c[f].hide();break;}}else{c[f].hide();}}}if(this.hasNumResults){var e=this._getNumItemsByFlag();$(k.baseName+"-num-results").innerHTML=e;if(e==0){if($(k.baseName+"-no-results").style.display=="none"||$(k.baseName+"-no-results").style.display==""){Effect.Appear($(k.baseName+"-no-results"),{duration:k.itemChangeDuration,delay:k.itemChangeDuration});
}}else{if($(k.baseName+"-no-results").style.display=="block"||$(k.baseName+"-no-results").style.display==""){Effect.Fade($(k.baseName+"-no-results"),{duration:k.itemChangeDuration});}}}this._selectDropdownOption(d,j);this.createPagination(d);this.currentPage=1;},changePage:function(a,g){var l=this.options;
var e=this.currentPage;if(g==e){return;}if(g=="next"){g=e+1;}else{if(g=="previous"){g=e-1;}}var k=this._getItemsByFlag();this._updatePaginationGroup("pagination",k,g);if(this.hasSecondPagination){this._updatePaginationGroup("pagination2",k,g);}if(this.hasNumResults){$(l.baseName+"-num-results").innerHTML=k.length;
}var b=(e-1)*l.numItemsPerPage;var h=b+l.numItemsPerPage;var d=(h>k.length)?k.length:h;var f=(g-1)*l.numItemsPerPage;var h=f+l.numItemsPerPage;var j=(h>k.length)?k.length:h;for(var c=0;c<k.length;c++){if(c>=b&&c<d){switch(l.pageChangeEffect){case"Blind":Effect.BlindUp(k[c],{duration:l.pageChangeDuration});
break;case"FadeAppear":Effect.Fade(k[c],{duration:l.pageChangeDuration});break;case"ShrinkGrow":Effect.Shrink(k[c],{duration:l.pageChangeDuration});break;default:$(k[c]).hide();break;}}if(c>=f&&c<j){switch(l.pageChangeEffect){case"Blind":Effect.BlindDown(k[c],{delay:l.pageChangeDuration,duration:l.pageChangeDuration});
break;case"FadeAppear":Effect.Appear(k[c],{delay:l.pageChangeDuration,duration:l.pageChangeDuration});break;case"ShrinkGrow":Effect.Grow(k[c],{delay:l.pageChangeDuration,duration:l.pageChangeDuration});break;default:$(k[c]).show();break;}}}this.currentPage=g;Event.stop(a);},_createPaginationGroup:function(g){var c=this.listItems;
var o=this.options;var h=this.flagInfo;var e=this._getNumItemsByFlag();var b=Math.ceil(e/o.numItemsPerPage);$(o.baseName+"-"+g).innerHTML="";if(b<=1){return;}var n=document.createElement("span");var d=document.createElement("span");d.setAttribute("id",o.baseName+"-"+g+"-previous");d.appendChild(document.createTextNode(this.options.paginationLeft));
n.appendChild(d);var k=Math.floor(o.maxPaginationLinks/2);for(var f=1;f<=b;f++){var l=document.createElement("span");l.setAttribute("id",o.baseName+"-"+g+"-page"+f);if(f==1){l.setAttribute("class",o.baseName+"-"+g+"-selected");l.setAttribute("className",o.baseName+"-"+g+"-selected");}if(f>k){l.style.cssText="display:none";
}var j=document.createElement("a");j.setAttribute("href","#");j.onclick=this.changePage.bindAsEventListener(this,f);j.appendChild(document.createTextNode(f));l.appendChild(j);n.appendChild(l);}var m=document.createElement("span");m.setAttribute("id",o.baseName+"-"+g+"-next");m.appendChild(this._getPaginationNextLinkNode());
n.appendChild(m);$(o.baseName+"-"+g).appendChild(n);},_updatePaginationGroup:function(d,k,g){var l=this.options;var f=this.currentPage;$(l.baseName+"-"+d+"-page"+f).removeClassName(l.baseName+"-"+d+"-selected");$(l.baseName+"-"+d+"-page"+g).addClassName(l.baseName+"-"+d+"-selected");var e=Math.ceil(k.length/l.numItemsPerPage);
if(g==1){$(l.baseName+"-"+d+"-previous").innerHTML=l.paginationLeft;}else{$(l.baseName+"-"+d+"-previous").innerHTML="";$(l.baseName+"-"+d+"-previous").appendChild(this._getPaginationPreviousLinkNode());}if(g==e){$(l.baseName+"-"+d+"-next").innerHTML=l.paginationRight;}else{$(l.baseName+"-"+d+"-next").innerHTML="";
$(l.baseName+"-"+d+"-next").appendChild(this._getPaginationNextLinkNode());}var h=0;var j=Math.floor(l.maxPaginationLinks/2);var b=(g>j)?g-j:1;var a=((g+j)<e)?g+j:e;for(var c=1;c<=e;c++){if(c<b){$(l.baseName+"-"+d+"-page"+c).hide();}if(c>a){$(l.baseName+"-"+d+"-page"+c).hide();}if(c>=b&&c<=a){$(l.baseName+"-"+d+"-page"+c).show();
}}},_getFlagCountFromFlagIndex:function(a){var b=null;this.flagInfo.each(function(e){var c=e.key;var d=e.value;if(a==d[0]){b=d[1];}});return b;},_getItemsByFlag:function(){var c=this.currentFlag;var d=this.currentFlag2;var a=[];for(var b=0;b<this.listItems.length;b++){var f=false;if(this.itemFlagIndexes[b].include(c)||c=="dd1-all"){f=true;
}var e=true;if(this.hasSecondDropdown){if(!this.itemFlagIndexes[b].include(d)&&d!="dd2-all"){e=false;}}if(f&&e){a.push(this.listItems[b]);}}return a;},_getNumItemsByFlag:function(){return this._getItemsByFlag().length;},_getPaginationNextLinkNode:function(){var a=document.createElement("a");a.setAttribute("href","#");
a.onclick=this.changePage.bindAsEventListener(this,"next");a.appendChild(document.createTextNode(this.options.paginationRight));return a;},_getPaginationPreviousLinkNode:function(){var a=document.createElement("a");a.setAttribute("href","#");a.onclick=this.changePage.bindAsEventListener(this,"previous");
var b=this.options.paginationLeft;a.appendChild(document.createTextNode(b));return a;},_selectDropdownOption:function(e,b){var g=(b==1)?"dropdown":"dropdown2";var c=this.options;var f=$(c.baseName+"-flag-"+g).getElementsByTagName("select");var a=f[0];for(var d=0;d<a.options.length;d++){if(a.options[d].value==e){a.options[d].selected=true;
break;}}},_getFlagDropdownNum:function(b){var a=1;if(this.hasSecondDropdown){if(b=="dd2-all"){a=2;}this.flagInfo.each(function(d){var c=d.value[0];if(c==b){a=d.value[2];}});}return a;},_shouldDisplayItem:function(a){var b=false;if(a.include(this.currentFlag)||this.currentFlag=="dd1-all"){b=true;if(this.hasSecondDropdown){b=false;
if(a.include(this.currentFlag2)||this.currentFlag2=="dd2-all"){b=true;}}}return b;}};