
if(typeof(Control)=='undefined')
Control={};var $proc=function(proc){return typeof(proc)=='function'?proc:function(){return proc};};var $value=function(value){return typeof(value)=='function'?value():value;};Object.Event={extend:function(object){object._objectEventSetup=function(event_name){this._observers=this._observers||{};this._observers[event_name]=this._observers[event_name]||[];};object.observe=function(event_name,observer){if(typeof(event_name)=='string'&&typeof(observer)!='undefined'){this._objectEventSetup(event_name);if(!this._observers[event_name].include(observer))
this._observers[event_name].push(observer);}else
for(var e in event_name)
this.observe(e,event_name[e]);};object.stopObserving=function(event_name,observer){this._objectEventSetup(event_name);if(event_name&&observer)
this._observers[event_name]=this._observers[event_name].without(observer);else if(event_name)
this._observers[event_name]=[];else
this._observers={};};object.observeOnce=function(event_name,outer_observer){var inner_observer=function(){outer_observer.apply(this,arguments);this.stopObserving(event_name,inner_observer);}.bind(this);this._objectEventSetup(event_name);this._observers[event_name].push(inner_observer);};object.notify=function(event_name){this._objectEventSetup(event_name);var collected_return_values=[];var args=$A(arguments).slice(1);try{for(var i=0;i<this._observers[event_name].length;++i)
collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args)||null);}catch(e){if(e==$break)
return false;else
throw e;}
return collected_return_values;};if(object.prototype){object.prototype._objectEventSetup=object._objectEventSetup;object.prototype.observe=object.observe;object.prototype.stopObserving=object.stopObserving;object.prototype.observeOnce=object.observeOnce;object.prototype.notify=function(event_name){if(object.notify){var args=$A(arguments).slice(1);args.unshift(this);args.unshift(event_name);object.notify.apply(object,args);}
this._objectEventSetup(event_name);var args=$A(arguments).slice(1);var collected_return_values=[];try{if(this.options&&this.options[event_name]&&typeof(this.options[event_name])=='function')
collected_return_values.push(this.options[event_name].apply(this,args)||null);for(var i=0;i<this._observers[event_name].length;++i)
collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args)||null);}catch(e){if(e==$break)
return false;else
throw e;}
return collected_return_values;};}}};Element.addMethods({observeOnce:function(element,event_name,outer_callback){var inner_callback=function(){outer_callback.apply(this,arguments);Element.stopObserving(element,event_name,inner_callback);};Element.observe(element,event_name,inner_callback);}});Object.extend(Event,(function(){var cache=Event.cache;function getEventID(element){if(element._prototypeEventID)return element._prototypeEventID[0];arguments.callee.id=arguments.callee.id||1;return element._prototypeEventID=[++arguments.callee.id];}
function getDOMEventName(eventName){if(eventName&&eventName.include(':'))return"dataavailable";if(!Prototype.Browser.IE){eventName={mouseenter:'mouseover',mouseleave:'mouseout'}[eventName]||eventName;}
return eventName;}
function getCacheForID(id){return cache[id]=cache[id]||{};}
function getWrappersForEventName(id,eventName){var c=getCacheForID(id);return c[eventName]=c[eventName]||[];}
function createWrapper(element,eventName,handler){var id=getEventID(element);var c=getWrappersForEventName(id,eventName);if(c.pluck("handler").include(handler))return false;var wrapper=function(event){if(!Event||!Event.extend||(event.eventName&&event.eventName!=eventName))
return false;Event.extend(event);handler.call(element,event);};if(!(Prototype.Browser.IE)&&['mouseenter','mouseleave'].include(eventName)){wrapper=wrapper.wrap(function(proceed,event){var rel=event.relatedTarget;var cur=event.currentTarget;if(rel&&rel.nodeType==Node.TEXT_NODE)
rel=rel.parentNode;if(rel&&rel!=cur&&!rel.descendantOf(cur))
return proceed(event);});}
wrapper.handler=handler;c.push(wrapper);return wrapper;}
function findWrapper(id,eventName,handler){var c=getWrappersForEventName(id,eventName);return c.find(function(wrapper){return wrapper.handler==handler});}
function destroyWrapper(id,eventName,handler){var c=getCacheForID(id);if(!c[eventName])return false;c[eventName]=c[eventName].without(findWrapper(id,eventName,handler));}
function destroyCache(){for(var id in cache)
for(var eventName in cache[id])
cache[id][eventName]=null;}
if(window.attachEvent){window.attachEvent("onunload",destroyCache);}
return{observe:function(element,eventName,handler){element=$(element);var name=getDOMEventName(eventName);var wrapper=createWrapper(element,eventName,handler);if(!wrapper)return element;if(element.addEventListener){element.addEventListener(name,wrapper,false);}else{element.attachEvent("on"+name,wrapper);}
return element;},stopObserving:function(element,eventName,handler){element=$(element);var id=getEventID(element),name=getDOMEventName(eventName);if(!handler&&eventName){getWrappersForEventName(id,eventName).each(function(wrapper){element.stopObserving(eventName,wrapper.handler);});return element;}else if(!eventName){Object.keys(getCacheForID(id)).each(function(eventName){element.stopObserving(eventName);});return element;}
var wrapper=findWrapper(id,eventName,handler);if(!wrapper)return element;if(element.removeEventListener){element.removeEventListener(name,wrapper,false);}else{element.detachEvent("on"+name,wrapper);}
destroyWrapper(id,eventName,handler);return element;},fire:function(element,eventName,memo){element=$(element);if(element==document&&document.createEvent&&!element.dispatchEvent)
element=document.documentElement;var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("dataavailable",true,true);}else{event=document.createEventObject();event.eventType="ondataavailable";}
event.eventName=eventName;event.memo=memo||{};if(document.createEvent){element.dispatchEvent(event);}else{element.fireEvent(event.eventType,event);}
return Event.extend(event);}};})());Object.extend(Event,Event.Methods);Element.addMethods({fire:Event.fire,observe:Event.observe,stopObserving:Event.stopObserving});Object.extend(document,{fire:Element.Methods.fire.methodize(),observe:Element.Methods.observe.methodize(),stopObserving:Element.Methods.stopObserving.methodize()});(function(){function wheel(event){var delta;if(event.wheelDelta)
delta=event.wheelDelta/120;else if(event.detail)
delta=-event.detail/3;if(!delta)
return;var custom_event=event.element().fire('mouse:wheel',{delta:delta});if(custom_event.stopped){event.stop();return false;}}
document.observe('mousewheel',wheel);document.observe('DOMMouseScroll',wheel);})();var IframeShim=Class.create({initialize:function(){this.element=new Element('iframe',{style:'position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);display:none',src:'javascript:void(0);',frameborder:0});$(document.body).insert(this.element);},hide:function(){this.element.hide();return this;},show:function(){this.element.show();return this;},positionUnder:function(element){var element=$(element);var offset=element.cumulativeOffset();var dimensions=element.getDimensions();this.element.setStyle({left:offset[0]+'px',top:offset[1]+'px',width:dimensions.width+'px',height:dimensions.height+'px',zIndex:element.getStyle('zIndex')-1}).show();return this;},setBounds:function(bounds){for(prop in bounds)
bounds[prop]+='px';this.element.setStyle(bounds);return this;},destroy:function(){if(this.element)
this.element.remove();return this;}});if(typeof(Prototype)=="undefined")
throw"Event.Behavior requires Prototype to be loaded.";if(typeof(Object.Event)=="undefined")
throw"Event.Behavior requires Object.Event to be loaded.";Event.Behavior={addVerbs:function(verbs){for(name in verbs){v=new Event.Behavior.Verb(verbs[name]);Event.Behavior.Verbs[name]=v;Event.Behavior[name.underscore()]=Event.Behavior[name]=v.getCallbackForStack.bind(v);}},addEvents:function(events){$H(events).each(function(event_type){Event.Behavior.Adjective.prototype[event_type.key.underscore()]=Event.Behavior.Adjective.prototype[event_type.key]=function(){this.nextConditionType='and';this.events.push(event_type.value);this.attachObserver(false);return this;};});},invokeElementMethod:function(element,action,args){if(typeof(element)=='function'){return $A(element()).each(function(e){if(typeof(args[0])=='function'){return $A(args[0]).each(function(a){return $(e)[action].apply($(e),(a?[a]:[]));});}else
return $(e)[action].apply($(e),args||[]);});}else
return $(element)[action].apply($(element),args||[]);}};Event.Behavior.Verbs=$H({});Event.Behavior.Verb=Class.create();Object.extend(Event.Behavior.Verb.prototype,{originalAction:false,execute:false,executeOpposite:false,target:false,initialize:function(action){this.originalAction=action;this.execute=function(action,target,argument){return(argument)?action(target,argument):action(target);}.bind(this,action);},setOpposite:function(opposite_verb){opposite_action=opposite_verb.originalAction;this.executeOpposite=function(opposite_action,target,argument){return(argument)?opposite_action(target,argument):opposite_action(target);}.bind(this,opposite_action);},getCallbackForStack:function(argument){return new Event.Behavior.Noun(this,argument);}});Event.Behavior.addVerbs({call:function(callback){callback();},show:function(element){return Event.Behavior.invokeElementMethod(element,'show');},hide:function(element){return Event.Behavior.invokeElementMethod(element,'hide');},remove:function(element){return Event.Behavior.invokeElementMethod(element,'remove');},setStyle:function(element,styles){return Event.Behavior.invokeElementMethod(element,'setStyle',[(typeof(styles)=='function'?styles():styles)]);},addClassName:function(element,class_name){return Event.Behavior.invokeElementMethod(element,'addClassName',[(typeof(class_name)=='function'?class_name():class_name)]);},removeClassName:function(element,class_name){return Event.Behavior.invokeElementMethod(element,'removeClassName',[(typeof(class_name)=='function'?class_name():class_name)]);},setClassName:function(element,class_name){c=(typeof(class_name)=='function')?class_name():class_name;if(typeof(element)=='function'){return $A(element()).each(function(e){$(e).className=c;});}else
return $(element).className=c;},update:function(content,element){return Event.Behavior.invokeElementMethod(element,'update',[(typeof(content)=='function'?content():content)]);},replace:function(content,element){return Event.Behavior.invokeElementMethod(element,'replace',[(typeof(content)=='function'?content():content)]);}});Event.Behavior.Verbs.show.setOpposite(Event.Behavior.Verbs.hide);Event.Behavior.Verbs.hide.setOpposite(Event.Behavior.Verbs.show);Event.Behavior.Verbs.addClassName.setOpposite(Event.Behavior.Verbs.removeClassName);Event.Behavior.Verbs.removeClassName.setOpposite(Event.Behavior.Verbs.addClassName);Event.Behavior.Noun=Class.create();Object.extend(Event.Behavior.Noun.prototype,{verbs:false,verb:false,argument:false,subject:false,target:false,initialize:function(verb,argument){this.verb=verb;this.argument=argument;},execute:function(){return(this.target)?this.verb.execute(this.target,this.argument):this.verb.execute(this.argument);},executeOpposite:function(){return(this.target)?this.verb.executeOpposite(this.target,this.argument):this.verb.executeOpposite(this.argument);},when:function(subject){this.subject=subject;return new Event.Behavior.Adjective(this);},getValue:function(){return Try.these(function(){return $(this.subject).getValue();}.bind(this),function(){return $(this.subject).options[$(this.subject).options.selectedIndex].value;}.bind(this),function(){return $(this.subject).value;}.bind(this),function(){return $(this.subject).innerHTML;}.bind(this));},containsValue:function(match){value=this.getValue();if(typeof(match)=='function'){return $A(match()).include(value);}else
return value.match(match);},setTarget:function(target){this.target=target;return this;},and:function(){}});Event.Behavior.Noun.prototype._with=Event.Behavior.Noun.prototype.setTarget;Event.Behavior.Noun.prototype.on=Event.Behavior.Noun.prototype.setTarget;Event.Behavior.Noun.prototype.of=Event.Behavior.Noun.prototype.setTarget;Event.Behavior.Noun.prototype.to=Event.Behavior.Noun.prototype.setTarget;Event.Behavior.Noun.prototype.from=Event.Behavior.Noun.prototype.setTarget;Event.Behavior.Adjective=Class.create();Object.extend(Event.Behavior.Adjective.prototype,{noun:false,lastConditionName:'',nextConditionType:'and',conditions:$A([]),events:$A([]),attached:false,initialize:function(noun){this.conditions=$A([]);this.events=$A([]);this.noun=noun;},attachObserver:function(execute_on_load){if(this.attached){if(execute_on_load)
this.execute();return;}
this.attached=true;if(typeof(this.noun.subject)=='function'){$A(this.noun.subject()).each(function(subject){(this.events.length>0?this.events:$A(['change'])).each(function(event_name){(subject.observe?subject:$(subject)).observe(event_name,function(){this.execute();}.bind(this));}.bind(this));}.bind(this));}else{(this.events.length>0?this.events:$A(['change'])).each(function(event_name){$(this.noun.subject).observe(event_name,function(){this.execute();}.bind(this));}.bind(this));}
if(execute_on_load)
this.execute();},execute:function(){if(this.match())
return this.noun.execute();else if(this.noun.verb.executeOpposite)
this.noun.executeOpposite();},attachCondition:function(callback){this.conditions.push([this.nextConditionType,callback.bind(this)]);},match:function(){if(this.conditions.length==0)
return true;else{return this.conditions.inject(new Boolean(),function(bool,condition){return(condition[0]=='and')?(bool&&condition[1]()):(bool||condition[1]());});}},is:function(item){this.lastConditionName='is';this.attachCondition(function(item){return(typeof(item)=='function'?item():item)==this.noun.getValue();}.bind(this,item));this.attachObserver(true);return this;},isNot:function(item){this.lastConditionName='isNot';this.attachCondition(function(item){return(typeof(item)=='function'?item():item)!=this.noun.getValue();}.bind(this,item));this.attachObserver(true);return this;},contains:function(item){this.lastConditionName='contains';this.attachCondition(function(item){return this.noun.containsValue(item);}.bind(this,item));this.attachObserver(true);return this;},within:function(item){this.lastConditionName='within';this.attachCondition(function(item){}.bind(this,item));this.attachObserver(true);return this;},change:function(){this.nextConditionType='and';this.attachObserver(true);return this;},and:function(condition){this.attached=false;this.nextConditionType='and';if(condition)
this[this.lastConditionName](condition);return this;},or:function(condition){this.attached=false;this.nextConditionType='or';if(condition)
this[this.lastConditionName](condition);return this;}});Event.Behavior.addEvents({losesFocus:'blur',gainsFocus:'focus',isClicked:'click',isDoubleClicked:'dblclick',keyPressed:'keypress'});Event.Behavior.Adjective.prototype.is_not=Event.Behavior.Adjective.prototype.isNot;Event.Behavior.Adjective.prototype.include=Event.Behavior.Adjective.prototype.contains;Event.Behavior.Adjective.prototype.includes=Event.Behavior.Adjective.prototype.contains;Event.Behavior.Adjective.prototype.are=Event.Behavior.Adjective.prototype.is;Event.Behavior.Adjective.prototype.areNot=Event.Behavior.Adjective.prototype.isNot;Event.Behavior.Adjective.prototype.are_not=Event.Behavior.Adjective.prototype.isNot;Event.Behavior.Adjective.prototype.changes=Event.Behavior.Adjective.prototype.change;if(!console){var console={log:function(message){var debug=$('debug');if(debug){debug.update(debug.innerHTML+"<div>"+message+"<div>");}},error:function(message){console.log(message)}}}
Array.prototype.compare=function(testArr){if(testArr==null)return false
if(this.length!=testArr.length)return false;for(var i=0;i<testArr.length;i++){if(this[i].compare){if(!this[i].compare(testArr[i]))return false;}
if(this[i]!==testArr[i])return false;}
return true;}
if(mintnavigator===undefined)
var mintnavigator={};mintnavigator.Tools={setCookie:function(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+
((expires)?"; expires="+expires.toGMTString():"; expires="+new Date(new Date().getTime()+1000*60*60*24*365).toGMTString())+
((path)?"; path="+path:"")+
((domain)?"; domain="+domain:"")+
((secure)?"; secure":"");document.cookie=curCookie;},getCookie:function(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null;}else
begin+=2;var end=document.cookie.indexOf(";",begin);if(end==-1)
end=dc.length;return unescape(dc.substring(begin+prefix.length,end));},deleteCookie:function(name,path,domain){if(mintnavigator.Tools.getCookie(name)){document.cookie=name+"="+
((path)?"; path="+path:"")+
((domain)?"; domain="+domain:"")+"; expires=Thu, 01-Jan-70 00:00:01 GMT";}}};if(mintnavigator===undefined)var mintnavigator={};mintnavigator.Item=Class.create({id:null,name:null,'class':null,initialize:function(id,name,clazz){this.name=name;this.id=id;this['class']=clazz;},equals:function(other){var isequals;if(this['class']!=other['class']){return false;}
else{if(this['class']=='volltext'){return this.name==other.name}
else{isequals=(this.id==other.id)}}
return isequals;}});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.Backend=Class.create({_queryPrefix:"?xtype=json&",queryInitiative:function(params){var options={method:'get',onSuccess:this._queryInitiativeCallback.bind(this)};var url="lsearch"+this._queryPrefix+params.toQueryString();new Ajax.Request(url,options);},_queryInitiativeCallback:function(result){this.notify(mintnavigator.Backend.EVENT_RESULTS_RECEIVED,result.responseJSON)},querySuggestion:function(params){var options={method:'get',onSuccess:this._querySuggestionCallback.bind(this)};var url="suggestion"+this._queryPrefix+params.toQueryString();new Ajax.Request(url,options);},_querySuggestionCallback:function(result){this.notify(mintnavigator.Backend.EVENT_SUGGESTION_RESULTS_RECEIVED,result.responseJSON)}});Object.Event.extend(mintnavigator.Backend);Object.extend(mintnavigator.Backend,{EVENT_SUGGESTION_RESULTS_RECEIVED:"suggestionLoaded",EVENT_RESULTS_RECEIVED:"resultsLoaded"});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.BaseView=Class.create({_rootElement:null,initialize:function(rootElement){if($(rootElement)==null){alert('view container '+rootElement+' not found');}
if(rootElement){this._rootElement=$(rootElement);}},cleanup:function(){this.stopObserving();},show:function(){if(this._rootElement){this._rootElement.show();}},hide:function(){if(this._rootElement){this._rootElement.hide();}}});Object.Event.extend(mintnavigator.BaseView);if(mintnavigator===undefined)var mintnavigator={};mintnavigator.BaseListView=Class.create(mintnavigator.BaseView,{items:null,initialize:function($super,rootElement){$super(rootElement);this.items=new Array();},_bindElements:function(){},addItem:function(item){this.items.push(item);this.redraw();},removeItem:function(item){var newArray=new Array();this.items.each(function(element){if(element.equals){if(!element.equals(item)){newArray.push(element);}}
else{console.error("Error: element  %o has no equals ",element);}}.bind(this));this.items=newArray;this.redraw();},redraw:function(){console.error("This method has to be overridden!");}});Object.extend(mintnavigator.BaseView,{});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.FilterView={initialize:function($super,rootElement){},_bindElements:function(){this._rootElement.observe('click',this._sampleActionHandlerHandler.bindAsEventListener(this));},getFilterParams:function(){var params=new Hash();params.set(this._rootElement.name,this._rootElement.value);return params;},_sampleActionHandlerHandler:function(event){event.stop();this.notify(mintnavigator.FilterView.EVENT_FILTER_CHANGED);}};Object.extend(mintnavigator.FilterView,{EVENT_FILTER_CHANGED:"filterChanged"});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.PaggingView=Class.create(mintnavigator.BaseView,{_total:null,_max:null,_offset:null,initialize:function($super,rootElement){if($(rootElement)==null){alert('pagging container '+rootElement+' not found');}
$super(rootElement);this._bindElements();},_bindElements:function(){try{this._rootElement.observe('click',this._onClickHandler.bindAsEventListener(this));}catch(exc){console.error(exc)}},updatePagging:function(queryResult){this._total=queryResult.total;this._max=queryResult.max
this._offset=queryResult.offset
this._rootElement.update(queryResult.htmlSnippets['pagination']);},_onClickHandler:function(event){event.stop();var element=Event.element(event);if(element.href){var linkParams=element.href.toQueryParams();var params=new Hash();if(linkParams.offset){params.set('offset',linkParams.offset)};if(linkParams.max){params.set('max',linkParams.max)};this.notify(mintnavigator.PaggingView.EVENT_PAGGING,params);}}});Object.extend(mintnavigator.PaggingView,{EVENT_PAGGING:"paggingChanged"});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.OrderView=Class.create(mintnavigator.BaseListView,mintnavigator.FilterView,{_lastValue:null,_orderElement:null,initialize:function($super,rootElement,orderField){$super(rootElement);this._orderElement=$(orderField);this._bindElements();},_bindElements:function(){this._rootElement.observe('change',this._changeHandlder.bindAsEventListener(this));this._orderElement.observe('click',this._orderChangedHandler.bindAsEventListener(this));},getFilterParams:function(){var params=new Hash();params.set(this._rootElement.name,this._rootElement.value);if(this._orderElement.checked){params.set(this._orderElement.name,this._orderElement.value);}
return params;},_orderChangedHandler:function(event){if(this._rootElement.value=="null"){return;}
else{this.notify(mintnavigator.FilterView.EVENT_FILTER_CHANGED);}},_changeHandlder:function(event){event.stop();this._internalHandler(event);},_internalHandler:function(event){if(this._rootElement.value==this._lastValue){return;}
this._lastValue=this._rootElement.value||""
this.notify(mintnavigator.FilterView.EVENT_FILTER_CHANGED);}});Object.extend(mintnavigator.FilterView,{EVENT_FILTER_CHANGED:"filterChanged"});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.FilterListView=Class.create(mintnavigator.BaseView,{_items:new Array(),_itemTemplate:null,initialize:function($super,rootElement){if($(rootElement)==null){alert('FilterListView container '+rootElement+' not found');}
$super(rootElement);this._bindElements();this._itemTemplate=new Template('<li><a class="close" title="[Entferne] #{item.name} [#{item.class}]" href="#"><span class="filter #{item.class}">#{item.name}</span></a>'
+'<span class="internal" style="display:none" title="#{item.class}">#{index}</span></li>');},_bindElements:function(){this._rootElement.observe('click',this._onClickHandler.bindAsEventListener(this));},_onClickHandler:function(event){var element=Event.element(event);if(element.hasClassName('filter')){element=element.up();}
if(element.hasClassName('close')){var info=element.up().select('span.internal');var item=this._items[info[0].firstChild.nodeValue];this.removeItem(item);this.notify(mintnavigator.FilterListView.EVENT_ITEM_REMOVED,item);}},getItems:function(){return this._items;},addItem:function(item){var add=true;this._items.each(function(element){if(element.equals(item)){add=false;$break;}});if(add){this._items.push(item);this._redraw();}},removeItem:function(item){var newArray=new Array();this._items.each(function(element){if(!element.equals(item)){newArray.push(element);}}.bind(this))
this._items=newArray;this._redraw();},_redraw:function(){var itemListHtml="";this._items.each(function(item,index){itemListHtml+=this._itemTemplate.evaluate({item:item,index:index});}.bind(this));this._rootElement.update('<ul class="filter-list">'+itemListHtml+'</ul>');}});Object.extend(mintnavigator.FilterListView,{EVENT_ITEM_REMOVED:"itemRemoved"});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.AutosuggestFilterView=Class.create(Ajax.Autocompleter,{_lastValue:null,_autocompleter:null,_suggestionItem:null,_currentSuggestionArray:null,items:new Array(),initialize:function($super,rootElement){$super(rootElement,'typeahead-list',[],{afterUpdateElement:this._filterElementSelected.bind(this),select:'suggestionToken'});this._suggestionDefault=new Template('<li class="volltext"><span class="suggestionToken">#{token}</span>'
+' <span class="autosuggest-type">[Volltextsuche durchführen]</span>'
+'<span style="display:none;" class="_filterSelector" name="volltext" title="#{index}"></span></li>');this._suggestionItem=new Template('<li class="#{item.class}"><span class="suggestionToken">#{item.name}</span>'
+' <span class="autosuggest-type">[#{item.class} auswählen]</span>'
+'<span style="display:none;" class="_filterSelector" name="#{item.class}" title="#{index}"></span></li>');var textField=$(rootElement);if(textField.value){var tagParams=document.URL.toQueryParams()['tag'];textField.value.split(" ").each(function(text){var tagType=(tagParams&&(tagParams==text||tagParams.include(text)))?'Tag':'volltext';this.addItem(new mintnavigator.Item(null,text,tagType));}.bind(this));}
textField.value="";},canHandleItem:function(item){return(item['class']=="volltext"||item['class']=="Tag"||item['class']=="Initiative");},getUpdatedChoices:function(){var params=new Hash();params.set('query',this.getToken());this.notify(mintnavigator.AutosuggestFilterView.EVENT_SUGGEST_NEEDED,params);},updateList:function(result){this._currentSuggestionArray=result.results;var liList=this._suggestionDefault.evaluate({token:this.getToken()});result.results.each(function(item,index){liList+=this._suggestionItem.evaluate({item:item,index:index});}.bind(this));this.updateChoices("<ul>"+liList+"<ul>");},_filterElementSelected:function(completer,selectedElement){var holder=selectedElement.down('._filterSelector');var item;if(holder.readAttribute('name')=='volltext'){item=new mintnavigator.Item(null,this.getToken(),'volltext');this.addItem(item);}
else{var remoteItem=this._currentSuggestionArray[holder.title];item=new mintnavigator.Item(remoteItem.id,remoteItem.name,remoteItem['class']);}
if(item['class']=="Tag"||item['class']=="Initiative"){this.addItem(item);}
this.element.value="";this.notify(mintnavigator.AutosuggestFilterView.EVENT_ITEM_SELECTED,item);},addItem:function(item){this.items.push(item);},removeItem:function(item){var newArray=new Array();this.items.each(function(element){if(!element.equals(item)){newArray.push(element);}}.bind(this));this.items=newArray;},getFilterParams:function(){var params=new Hash();var length=this.items.length;if(length>0){var tags=[];var queryStrings="";this.items.each(function(item,index){if(item['class']=='Tag'){tags.push(item.name);}
else{queryStrings+=item.name+(index+1==length?"":" ");}});params.set('query',queryStrings);if(tags.length>0){params.set('tag',tags);}}
return params;}});Object.Event.extend(mintnavigator.AutosuggestFilterView);Object.extend(mintnavigator.AutosuggestFilterView,{EVENT_FILTER_CHANGED:"filterChanged",EVENT_ITEM_SELECTED:"itemSelected",EVENT_SUGGEST_NEEDED:"suggestionNeeded"});if(mintnavigator===undefined)var mintnavigator={};mintnavigator.CheckboxFilterView=Class.create(mintnavigator.BaseListView,mintnavigator.FilterView,{_paramaterName:null,_ĺastSelection:[],itemClass:null,initialize:function($super,rootElement,parameterName,itemClass){this._parameterName=parameterName;this.itemClass=itemClass;$super(rootElement);this._bindElements();},_bindElements:function(){this._rootElement.observe('click',this._changeHandlder.bindAsEventListener(this));this._ĺastSelection=this._getSelectedCheckboxList();this._ĺastSelection.each(function(element){var name=this._getLabelForCheckBox(element);var item=new mintnavigator.Item(element.value,name,this.itemClass);this.items.push(item);}.bind(this));},canHandleItem:function(item){return(item['class']==this.itemClass)},getFilterParams:function(){var params=new Hash();var cbList=this._getSelectedCheckboxList();if(cbList.length>0){var selectedRegions=[]
cbList.each(function(cb,index){selectedRegions.push(cb.value);});params.set(this._parameterName,selectedRegions);}
return params;},_getSelectedCheckboxList:function(){var list=$(this._rootElement).select('input:checked');return list;},_changeHandlder:function(event){var cblist=this._getSelectedCheckboxList();if(!cblist.compare(this._ĺastSelection)){this._ĺastSelection=cblist;var element=Event.element(event);if('INPUT'==element.tagName&&"checkbox"==element.type){var name=this._getLabelForCheckBox(element);var item=new mintnavigator.Item(element.value,name,this.itemClass);if(element.checked){this.notify(mintnavigator.FilterView.EVENT_ITEM_SELECTED,item);}
else{this.notify(mintnavigator.FilterView.EVENT_ITEM_REMOVED,item);}}}},addItem:function($super,item){this.items.push(item);var elements=this.findItemElements(item);elements.each(function(chbx){chbx.checked=true;});this._ĺastSelection=this._getSelectedCheckboxList();this.redraw();},removeItem:function(item){var elements=this.findItemElements(item);elements.each(function(chbx){chbx.checked=false;});this._ĺastSelection=this._getSelectedCheckboxList();this.redraw();},findItemElements:function(item){return $(this._rootElement).select('input[value="'+item.id+'"]');},redraw:function(){},_getLabelForCheckBox:function(element){var parent=element.up();var label="";$A($(parent).childNodes).each(function(node){if(node.nodeType==3){label=node.nodeValue};});return label;}});Object.extend(mintnavigator.FilterView,{EVENT_FILTER_CHANGED:"filterChanged",EVENT_ITEM_SELECTED:"addItem",EVENT_ITEM_REMOVED:"removeItem"});if(mintnavigator===undefined)
var mintnavigator={};mintnavigator.Navigator={_backend:null,_pagging:null,_textFilter:null,_autosuggest:null,_filterListView:null,_filterlist:[],_sortView:null,_spinner:null,resultlistElementId:"result",permlinkElementId:"permlinks",resulthitsElementId:"resulthits",init:function(){this._spinner=$('spinner');this._backend=new mintnavigator.Backend();this._pagging=new mintnavigator.PaggingView("pagging");this._autosuggest=new mintnavigator.AutosuggestFilterView("textFilter");this._filterListView=new mintnavigator.FilterListView("filterlist");var regionFilter=new mintnavigator.CheckboxFilterView("regionFilter","region","Region");var zielgruppeFilter=new mintnavigator.CheckboxFilterView("zielgruppeFilter","group","Zielgruppe");var branchenFilter=new mintnavigator.CheckboxFilterView("branchenFilter","sections","Branche");var themenbereichFilter=new mintnavigator.CheckboxFilterView("themenbereichFilter","themeSpace","Themenbereich");var angebotsartFilter=new mintnavigator.CheckboxFilterView("typeFilter","type","Angebotsart");this._sortView=new mintnavigator.OrderView("sort","order");this._backend.observe(mintnavigator.Backend.EVENT_RESULTS_RECEIVED,this._resultsReceivedHandler.bind(this));this._backend.observe(mintnavigator.Backend.EVENT_SUGGESTION_RESULTS_RECEIVED,this._suggestionResultsReceivedHandler.bind(this));this._pagging.observe(mintnavigator.PaggingView.EVENT_PAGGING,this._paggingEventHandler.bind(this))
this._autosuggest.observe(mintnavigator.AutosuggestFilterView.EVENT_SUGGEST_NEEDED,this._suggestionHandler.bind(this));this._autosuggest.observe(mintnavigator.AutosuggestFilterView.EVENT_ITEM_SELECTED,this._itemSuggestionSelectedHandler.bind(this));this._sortView.observe(mintnavigator.FilterView.EVENT_FILTER_CHANGED,this._filterChangedHandler.bind(this))
this._filterListView.observe(mintnavigator.FilterListView.EVENT_ITEM_REMOVED,this._filterListViewItemRemovedHandler.bind(this));this._filterlist=[this._autosuggest,regionFilter,zielgruppeFilter,branchenFilter,themenbereichFilter,angebotsartFilter];this._filterlist.each(function(filter){filter.observe(mintnavigator.FilterView.EVENT_ITEM_SELECTED,this._chbxFilterItemAddedHandler.bind(this));filter.observe(mintnavigator.FilterView.EVENT_ITEM_REMOVED,this._chbxFilterItemRemovedHandler.bind(this));}.bind(this));this.bootstrap();},bootstrap:function(){this._filterlist.each(function(filter){filter.items.each(function(item){this._filterListView.addItem(item);}.bind(this))}.bind(this));$$("._viewswitch").each(function(it){it.observe('click',this._toggleFilterView.bindAsEventListener(this));}.bind(this));},_toggleFilterView:function(event){event.stop();var it=Event.element(event);var kasten=it.up('.kasten');kasten.toggleClassName('closed');var ulElement=kasten.down('ul');if(ulElement){var id=ulElement.readAttribute('id');if(id){if(kasten.hasClassName('closed')){mintnavigator.Tools.setCookie(id,'closed')}
else{mintnavigator.Tools.setCookie(id,'')}}}},_filterChangedHandler:function(){this._doQueryInitiative()},_paggingEventHandler:function(paggingparams){this._doQueryInitiative(paggingparams)},_suggestionHandler:function(params){this._showSpinner();this._backend.querySuggestion(params);},_suggestionResultsReceivedHandler:function(result){this._hideSpinner();this._autosuggest.updateList(result);},_itemSuggestionSelectedHandler:function(item){this._filterListView.addItem(item);this._filterlist.each(function(filter){if(filter.itemClass==item['class']){filter.addItem(item);}},this);this._doQueryInitiative();},_chbxFilterItemAddedHandler:function(item){this._filterListView.addItem(item);this._doQueryInitiative();},_chbxFilterItemRemovedHandler:function(item){this._filterListView.removeItem(item);this._doQueryInitiative();},_filterListViewItemRemovedHandler:function(item){this._filterlist.each(function(filter){if(filter.canHandleItem(item)){filter.removeItem(item);}},this);this._doQueryInitiative();},_doQueryInitiative:function(params){this._showSpinner();if(!params){params=new Hash();}
this._filterlist.each(function(filter,index){params=params.update(filter.getFilterParams());},this);params=params.update(this._sortView.getFilterParams());this._backend.queryInitiative(params);},_resultsReceivedHandler:function(results){this._hideSpinner();this._pagging.updatePagging(results);$(this.resultlistElementId).update(results.htmlResult);$(this.permlinkElementId).update(results.htmlSnippets['permlink']);$(this.resulthitsElementId).update(results.htmlSnippets['resulthits']);var rssLink=$('rsspermlink').down('a');var rssurl=rssLink.readAttribute('href');$('metarsslink').writeAttribute('href',rssurl);},_showSpinner:function(){if(this._spinner){this._spinner.show();}},_hideSpinner:function(){if(this._spinner){this._spinner.hide();}}};Event.observe(window,'load',mintnavigator.Navigator.init.bind(mintnavigator.Navigator));
