
var Interface={}
Interface.Dropdown=Class.create({initialize:function(element,options)
{this.element=$(element);if(!this.element)return;this.opened=false;this.opener=null;this.item_container=null;var li=this.element.getElementsByTagName('li');for(var i=0;i<li.length;i++)
{if(li[i].getElementsByTagName('ul')[0])
{this.opener=li[i].getElementsByTagName('a')[0];this.item_container=li[i].getElementsByTagName('ul')[0];break;}}
this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.height=this.options.height||'auto';Element.hide(this.item_container);this.item_container.style.position='absolute';this.item_container.style.height=this.options.height;this.item_container.style.overflow='auto';Event.observe(this.opener,'click',this.onClickOpener.bindAsEventListener(this,this.opener));Event.observe(document.body,'click',this.onBodyClicked.bindAsEventListener(this));Event.observe(this.element,'keydown',this.onKeyPress.bindAsEventListener(this));},show:function()
{Effect.Appear(this.item_container,{duration:0.15});},hide:function()
{Effect.Fade(this.item_container,{duration:0.15});},onKeyPress:function(event)
{if(this.opened)
{switch(event.keyCode)
{case Event.KEY_ESC:this.opened=false;this.hide();return;}}},onBodyClicked:function(event)
{if(this.opened)
{this.opened=false;this.hide();}},onClickOpener:function(event)
{if(this.opened)
{this.opened=false;this.hide();}
else
{this.opened=true;this.show();}
var data=$A(arguments);data[1].blur();Event.stop(event);}});Interface.DatePicker=Class.create({initialize:function(element,options)
{this.element=$(element);this.opened=false;this.calendar=null;this.body=null;this.weekDays=new Array('Mo','Di','Mi','Do','Fr','Sa','So');this.months=new Array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');this.daysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);this.today=new Date();this.month=this.today.getMonth();this.year=this.today.getFullYear();this.date=new Date(this.year,this.month,1);this.selectedDate='';Element.extend(this.element);this.options=options||{};this.options.minDate=this.options.minDate||'';this.options.maxDate=this.options.maxDate||'';this.options.highlight=this.options.highlight||'';this.options.url=this.options.url||'';this.options.width=this.options.width||200;document.write('<table id="'+this.element.id+'_cal" class="datepicker" style="width: '+this.options.width+'px;"><tbody></tbody></table>');this.calendar=$(this.element.id+'_cal');this.body=this.calendar.getElementsByTagName('tbody')[0];this.calendar.style.display='none';this.createCalendar();Event.observe(this.element,'click',this.onClick.bindAsEventListener(this));Event.observe(this.element,'blur',this.onBlur.bindAsEventListener(this));Event.observe(this.element,'keyup',this.onKeyUp.bindAsEventListener(this));},show:function()
{Effect.Appear(this.calendar,{duration:0.15});},hide:function()
{Effect.Fade(this.parent.calendar,{duration:0.15});this.stop();},next:function()
{if(this.month<11)
{this.month++;}
else
{this.month=1;this.year++;}
this.renderNew();},prev:function()
{if(this.month>0)
{this.month--;}
else
{this.month=11;this.year--;}
this.renderNew();},renderNew:function()
{if(this.hider)this.hider.stop();this.element.focus();this.date=new Date(this.year,this.month,1);var tr=this.body.getElementsByTagName('tr');var num=tr.length;for(var i=0;i<num;i++)
{this.body.removeChild(tr[0]);}
this.createCalendar();},createCalendar:function()
{var offset=this.date.getDay()==0?6:this.date.getDay()-1;var day=1;var i=0;var finished=false;var days_in_month=this.getDaysInMonth();var date_compare=this.year+'-'+(this.month+1<10?'0'+(this.month+1):this.month+1);while(!finished)
{var tr=document.createElement('tr');if(day<=days_in_month)this.body.appendChild(tr);if(i==0)
{var td=document.createElement('th');td.setAttribute('colSpan',"7");this.calendar.getElementsByTagName('tr')[i].appendChild(td);var head=this.calendar.getElementsByTagName('tr')[i].getElementsByTagName('th')[0];var prevlink=document.createElement('span');prevlink.setAttribute((document.all?'className':'class'),'prev'+(date_compare<=this.options.minDate?'-disabled':''));var nextlink=document.createElement('span');nextlink.setAttribute((document.all?'className':'class'),'next'+(date_compare>=this.options.maxDate&&this.options.maxDate!=''?'-disabled':''));var display=document.createElement('span');display.setAttribute((document.all?'className':'class'),'month');head.appendChild(prevlink);head.appendChild(display);head.appendChild(nextlink);if(date_compare>this.options.minDate)Event.observe(head.getElementsByTagName('span')[0],'click',this.prev.bindAsEventListener(this));var content=document.createTextNode(this.months[this.date.getMonth()]+' '+this.year);head.getElementsByTagName('span')[1].appendChild(content);if(date_compare<this.options.maxDate||this.options.maxDate=='')Event.observe(head.getElementsByTagName('span')[2],'click',this.next.bindAsEventListener(this));}
else if(i==1)
{for(var j=0;j<7;j++)
{var td=document.createElement('td');this.calendar.getElementsByTagName('tr')[i].appendChild(td);var content=document.createTextNode(this.weekDays[j]);this.calendar.getElementsByTagName('tr')[i].getElementsByTagName('td')[j].appendChild(content);}}
else
{for(var j=0;j<7;j++)
{if(offset>0)
{var td=document.createElement('td');this.calendar.getElementsByTagName('tr')[i].appendChild(td);var content=document.createTextNode(' ');offset--;}
else if(day>days_in_month)
{if(this.calendar.getElementsByTagName('tr')[i])
{var td=document.createElement('td');this.calendar.getElementsByTagName('tr')[i].appendChild(td);var content=document.createTextNode(' ');}
finished=true;}
else
{var td=document.createElement('td');var my_date=new Date(this.year,this.month,day);var date_str=(my_date.getDate()<10?'0'+my_date.getDate():my_date.getDate())+'.'+(my_date.getMonth()+1<10?'0'+(my_date.getMonth()+1):my_date.getMonth()+1)+'.'+my_date.getFullYear();td.setAttribute('title',date_str);td.setAttribute('style','cursor: pointer;');var myql_date=this.date.getFullYear()+'-'+(this.date.getMonth()<11?'0'+(this.date.getMonth()+1):this.date.getMonth()+1)+'-'+(day<10?'0'+day:day);if(myql_date==this.options.highlight)td.setAttribute('class','active');this.calendar.getElementsByTagName('tr')[i].appendChild(td);var content=document.createTextNode(day);Event.observe(this.calendar.getElementsByTagName('tr')[i].getElementsByTagName('td')[j],'click',this.onDateSelect.bindAsEventListener(this,date_str));Event.observe(this.calendar.getElementsByTagName('tr')[i].getElementsByTagName('td')[j],'mouseover',this.onHover.bindAsEventListener(this,i,j));Event.observe(this.calendar.getElementsByTagName('tr')[i].getElementsByTagName('td')[j],'mouseout',this.onOut.bindAsEventListener(this,i,j));day++;}
if(this.calendar.getElementsByTagName('tr')[i])
{this.calendar.getElementsByTagName('tr')[i].getElementsByTagName('td')[j].appendChild(content);}}}
i++;}},onClick:function(event)
{this.calendar.style.top=(this.element.cumulativeOffset().top+this.element.getHeight())+'px';this.calendar.style.left=(this.element.cumulativeOffset().left-Element.getWidth(this.calendar)+this.element.getWidth())+'px';this.show();},onBlur:function(event)
{this.hider=new PeriodicalExecuter(this.hide,.5);this.hider.parent=this;},onKeyUp:function(event)
{this.element.value=this.selectedDate;},onDateSelect:function(event)
{var data=$A(arguments);data.shift();this.selectedDate=data;if(this.element.nodeName=='INPUT')
{this.element.value=this.selectedDate;}
else
{this.element.innerHTML=this.selectedDate;}
Effect.Fade(this.calendar,{duration:0.15});if(this.options.url!='')
{var tmp=String(this.selectedDate).split(".");document.location.href=this.options.url.replace(/%date%/,tmp[2]+'-'+tmp[1]+'-'+tmp[0]);}},onHover:function(element)
{var data=$A(arguments);data.shift();this.calendar.getElementsByTagName('tr')[data[0]].getElementsByTagName('td')[data[1]].addClassName('over');},onOut:function(element)
{var data=$A(arguments);data.shift();this.calendar.getElementsByTagName('tr')[data[0]].getElementsByTagName('td')[data[1]].removeClassName('over');},getDaysInMonth:function()
{if(this.month==1)
{var dt=new Date(this.year+"/02/29");return("1"==dt.getMonth()?29:28);}
else
{return this.daysInMonth[this.month];}}});Interface.Tabbox=Class.create({initialize:function(tab,box,options)
{this.tab=$(tab);this.box=$(box);this.options=options||{};this.options.paramName=this.options.paramName||this.tab.name;this.options.slotName=this.options.slotName||'tabslot';this.options.hover=this.options.hover||false;this.active=this.options.active||0;this.tabitems=this.tab.getElementsByTagName('li');this.boxitems=this.box.getElementsByClassName(this.options.slotName);for(var i=0;i<this.boxitems.length;i++)
{if(i!=this.active)
{this.boxitems[i].style.display='none';}
else
{this.tabitems[i].className='active';}
Event.observe(this.tabitems[i],this.options.hover?'mouseover':'click',this.onClick.bindAsEventListener(this,i));}},hide:function(Box)
{this.boxitems[Box].style.display='none';},show:function(Box)
{this.boxitems[Box].style.display='block';},onClick:function(event)
{this.tabitems[this.active].className='';this.hide(this.active);var data=$A(arguments);this.active=data[1];var link=this.tabitems[this.active].getElementsByTagName('a')[0];link.blur();this.tabitems[this.active].className='active';this.show(this.active);event.stop();}});Interface.Shiftticker=Class.create({initialize:function(element,options)
{this.element=$(element);this.items=this.element.getElementsByTagName('li');this.activeItem=0;this.loopCount=0;this.interval=null;this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.stay=this.options.stay||5;for(var i=1;i<this.items.length;i++)
{Element.hide(this.items[i]);}
this.interval=setInterval(this.hide.bind(this),this.options.stay*1000);Event.observe(this.element,'mouseover',this.onMouseOver.bindAsEventListener(this));Event.observe(this.element,'mouseout',this.onMouseOut.bindAsEventListener(this));},hide:function()
{Effect.BlindUp(this.items[this.activeItem],{duration:0.5});clearInterval(this.interval);this.interval=setInterval(this.show.bind(this),500);},show:function()
{this.activeItem++;if(this.activeItem==this.items.length)
{this.activeItem=0;this.loopCount++;}
Effect.BlindDown(this.items[this.activeItem],{duration:0.5});clearInterval(this.interval);this.interval=setInterval(this.hide.bind(this),this.options.stay*1000);},onMouseOver:function(event)
{clearInterval(this.interval);},onMouseOut:function(event)
{this.interval=setInterval(this.hide.bind(this),this.options.stay*1000);}});Interface.Slidebox=Class.create({initialize:function(container,element,itemClass,scroll,options)
{this.container=$(container);this.element=$(element);this.itemClass=itemClass;this.scroller=$(scroll);this.items=this.element.getElementsByClassName(this.itemClass);this.itemCount=this.items.length;this.innerWidth=0;this.outerWidth=0;this.leftBound=0;this.dragging=false;this.interval=null;this.offset=0;this.value=0;this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.left=this.options.left||'leftarrow';this.options.right=this.options.right||'rightarrow';this.options.track=this.options.track||'track';this.options.handle=this.options.handle||'handle';this.options.speed=this.options.speed||5;this.options.elementmargin=this.options.elementmargin||0;this.innerWidth=(this.items[0].getWidth()+this.options.elementmargin)*this.itemCount;this.outerWidth=this.container.getWidth();if(this.innerWidth>this.outerWidth)
{this.container.style.overflow='hidden';if($(this.options.left))$(this.options.left).remove();var elem=document.createElement('a');elem.setAttribute('id',this.options.left);this.scroller.appendChild(elem);this.left=$(this.options.left);if($(this.options.track))$(this.options.track).remove();var elem=document.createElement('div');elem.setAttribute('id',this.options.track);this.scroller.appendChild(elem);this.track=$(this.options.track);if($(this.options.handle))$(this.options.handle).remove();var elem=document.createElement('div');elem.setAttribute('id',this.options.handle);var innerSpan=document.createElement('span');elem.appendChild(innerSpan);this.track.appendChild(elem);this.handle=$(this.options.handle);this.handle.style.position='absolute';this.handle.style.cursor='move';this.handle.style.width=(Math.round(this.track.getWidth()/(this.innerWidth/this.outerWidth)))+'px';this.leftBound=Position.cumulativeOffset(this.track)[0];this.rightBound=this.track.getWidth()+this.leftBound-this.handle.getWidth();if($(this.options.right))$(this.options.right).remove();var elem=document.createElement('a');elem.setAttribute('id',this.options.right);this.scroller.appendChild(elem);this.right=$(this.options.right);Event.observe(this.left,'mousedown',this.onScrollLeft.bindAsEventListener(this));Event.observe(this.left,'mouseup',this.onStopScroll.bindAsEventListener(this));Event.observe(this.right,'mousedown',this.onScrollRight.bindAsEventListener(this));Event.observe(this.right,'mouseup',this.onStopScroll.bindAsEventListener(this));Event.observe(this.handle,'mousedown',this.onStartDrag.bindAsEventListener(this));Event.observe(document,'mouseup',this.onStopDrag.bindAsEventListener(this));Event.observe(document,'mousemove',this.onDrag.bindAsEventListener(this));}
else
{this.container.style.overflow='hidden';}},scroll:function(dir)
{this.handle.style.left=this.getHandleX(Position.cumulativeOffset(this.handle)[0]+dir*this.options.speed)+'px';this.update();},onScrollLeft:function(event)
{this.interval=setInterval(this.scroll.bind(this,-1),50);},onScrollRight:function(event)
{this.interval=setInterval(this.scroll.bind(this,1),50);},onStopScroll:function(event)
{clearInterval(this.interval);},onStartDrag:function(event)
{this.dragging=true;this.offset=Event.pointerX(event)-Position.cumulativeOffset(this.handle)[0];},onStopDrag:function(event)
{this.dragging=false;},onDrag:function(event)
{if(this.dragging)
{this.handle.style.left=this.getHandleX(Event.pointerX(event)-this.offset)+'px';this.update();}},update:function()
{this.element.style.left=(-1*this.value*((this.innerWidth-this.outerWidth)/100))+'px';},getHandleX:function(x)
{if(x<this.leftBound)x=this.leftBound;if(x>this.rightBound)x=this.rightBound;this.value=(x-this.leftBound)/((this.rightBound-this.leftBound)/100);return x;},easing:function(time,begin,change,duration)
{return change*time/duration+begin;}});Interface.Dock=Class.create({initialize:function(element,hoverelement,options)
{this.element=$(element);this.hover_element=$(hoverelement);this.items=this.element.getElementsByTagName('img')||null;this.items_width=new Array();this.items_height=new Array();this.options=options||{};this.options.boundary=this.options.boundary||300;this.options.maxzoom=this.options.maxzoom-1||0.1;for(var i=0;i<this.items.length;i++)
{Element.extend(this.items[i]);this.items[i].relativize();this.items_width[i]=this.items[i].width;this.items_height[i]=this.items[i].height;var tooltip=this.items[i].parentNode.getElementsByTagName('span')[0];tooltip.style.display='none';Event.observe(this.items[i].parentNode,'mouseover',this.onItemIn.bindAsEventListener(this,tooltip,this.items[i]));Event.observe(this.items[i].parentNode,'mousemove',this.onItemMoveIn.bindAsEventListener(this,tooltip,this.items[i]));Event.observe(this.items[i].parentNode,'mouseout',this.onItemOut.bindAsEventListener(this,tooltip,this.items[i]));}
Event.observe(this.hover_element,'mousemove',this.onIn.bindAsEventListener(this));Event.observe(this.hover_element,'mouseout',this.onOut.bindAsEventListener(this));},onIn:function(event)
{var distance=0;var magnify=0;for(var i=0;i<this.items.length;i++)
{distance=Math.abs(this.items[i].cumulativeOffset().left+this.items[i].getWidth()/2-Event.pointerX(event));if(distance>this.options.boundary)
{this.items[i].style.width=this.items_width[i]+'px';this.items[i].style.height=this.items_height[i]+'px';}
else
{magnify=(this.options.boundary-distance)/this.options.boundary*this.options.maxzoom+1;this.items[i].style.width=(magnify*this.items_width[i])+'px';this.items[i].style.height=(magnify*this.items_height[i])+'px';}}},onOut:function(event)
{if(!Position.within(this.hover_element,Event.pointerX(event),Event.pointerY(event)))
{for(var i=0;i<this.items.length;i++)
{this.items[i].style.width=this.items_width[i]+'px';this.items[i].style.height=this.items_height[i]+'px';}}},onItemIn:function(event)
{var data=$A(arguments);data[1].style.display='block';Effect.Fade(data[1],{from:1.0,to:0.8,duration:1});},onItemMoveIn:function(event)
{var data=$A(arguments);var offset=Number(this.element.style.left.replace(/px/,''))<0?Number(this.element.style.left.replace(/px/,'')):0;data[1].style.left=(Event.pointerX(event)+10+offset*-1)+'px';},onItemOut:function(event)
{var data=$A(arguments);data[1].style.display='none';}});Interface.Exploreritem=Class.create({initialize:function(element,options)
{this.element=$(element);this.opened=false;this.child=this.element.getElementsByTagName('ul')[0]||null;this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.openClass=this.options.openClass||'opened';this.options.closeClass=this.options.closeClass||'closed';if(this.child)this.hideChild();this.element.className=this.options.closeClass;Event.observe(this.element,'click',this.onClick.bindAsEventListener(this));},hideChild:function()
{this.child.style.display='none';},open:function()
{if(this.child)
{new Effect.BlindDown(this.child,{duration:0.25});setTimeout(this.onOpen.bind(this),250);}},close:function()
{if(this.child)
{new Effect.BlindUp(this.child,{duration:0.25});setTimeout(this.onClose.bind(this),250);}},onClick:function(event)
{if(!this.opened)
{this.open();}
else
{this.close();}},onOpen:function()
{this.opened=true;this.element.className=this.options.openClass;},onClose:function()
{this.opened=false;this.element.className=this.options.closeClass;}});Interface.Explorer=Class.create({initialize:function(element,options)
{this.element=$(element);this.items=new Array();this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.openClass=this.options.openClass||'opened';this.options.closeClass=this.options.closeClass||'closed';var li=this.element.getElementsByTagName('li');for(var i=0;i<li.length;i++)
{var item=new Interface.Exploreritem(li[i],{openClass:this.options.openClass,closeClass:this.options.closeClass});this.items.push(item);}}});Interface.Glider=Class.create({initialize:function(element,prev,next,options){this.element=$(element);this.items=new Array();this.prev_button=$(prev);this.next_button=$(next);this.index=0;this.distance=0;this.options=options||{};this.options.itemclass=this.options.itemclass||'item';this.options.tagname=this.options.tagname||'div';this.options.slotclass=this.options.slotclass||'slot';this.options.initpage=this.options.initpage||0;var tmp=this.element.select('.'+this.options.itemclass);this.element.style.overflow='hidden';var total_width=0;for(var i=0;i<tmp.length;i++){var slotcount=tmp[i].select('.'+this.options.slotclass).length;if(slotcount>0){this.items.push(tmp[i]);total_width+=Element.getWidth(tmp[i]);}}
this.prev_button.hide();if(total_width<Element.getWidth(this.element)+10){this.next_button.hide();}
if(this.options.initpage>0)this.jump(this.options.initpage);Event.observe(this.prev_button,'click',this.prev.bindAsEventListener(this));Event.observe(this.next_button,'click',this.next.bindAsEventListener(this));},move:function(nextIndex){this.index=nextIndex;Position.prepare();container_offset=Position.cumulativeOffset(this.element),element_offset=Position.cumulativeOffset(this.items[this.index]);this.scrolling=new Effect.SmoothScroll(this.element,{duration:0.5,x:element_offset[0]-container_offset[0],y:element_offset[1]-container_offset[1]});if(this.index>0){this.prev_button.show();}else{this.prev_button.hide();}
if(this.index<this.items.length-1){this.next_button.show();}else{this.next_button.hide();}},jump:function(nextIndex){this.index=nextIndex;Position.prepare();container_offset=Position.cumulativeOffset(this.element),element_offset=Position.cumulativeOffset(this.items[this.index]);this.element.scrollLeft=element_offset[0]-container_offset[0];this.element.scrollTop=element_offset[1]-container_offset[1];if(this.index>0){this.prev_button.show();}else{this.prev_button.hide();}
if(this.index<this.items.length-1){this.next_button.show();}else{this.next_button.hide();}},prev:function(){this.move(this.index-1);this.prev_button.blur();},next:function(){this.move(this.index+1);this.next_button.blur();},first:function(){this.move(0);},last:function(){this.move(this.items.length-1);}});Effect.SmoothScroll=Class.create();Object.extend(Object.extend(Effect.SmoothScroll.prototype,Effect.Base.prototype),{initialize:function(element)
{this.element=$(element);var options=Object.extend({x:0,y:0,mode:'absolute'},arguments[1]||{});this.start(options);},setup:function()
{if(this.options.continuous&&!this.element._ext)
{this.element.cleanWhitespace();this.element._ext=true;this.element.appendChild(this.element.firstChild);}
this.originalLeft=this.element.scrollLeft;this.originalTop=this.element.scrollTop;if(this.options.mode=='absolute')
{this.options.x-=this.originalLeft;this.options.y-=this.originalTop;}},update:function(position)
{this.element.scrollLeft=this.options.x*position+this.originalLeft;this.element.scrollTop=this.options.y*position+this.originalTop;}});