var Pagination = new Class({ currentPage: 1, initialize: function(){ this.showCurrentPage(); this.buildNavigation(); }, showCurrentPage: function(){ var pages = $$('.cnt-pages'); for(var i=1;i<=pages.length;i++){ if(i == this.currentPage){ pages[i-1].setStyle('display', 'block'); }else{ pages[i-1].setStyle('display', 'none'); } } }, buildNavigation: function(){ var pages = $$('.cnt-pages').length; if(pages > 1){ $$('.pagination').each(function(item){ item.empty(); for(var i=1;i<=pages;i++){ if(i == this.currentPage) item.adopt( new Element('a', {'text': i, 'href': '#', 'class': 'activ'}).addEvent('click', this.selectPage.bind(this)) ); else item.adopt( new Element('a', {'text': i, 'href': '#', 'class': 'passive'}).addEvent('click', this.selectPage.bind(this)) ); item.adopt( new Element('span', {'text': ' | '})); } item.adopt( new Element('a', {'text': 'weiter', 'href': '#', 'class': 'passive'}).addEvent('click', this.nextPage.bind(this)) ); }.bind(this)); } }, selectPage: function(e){ this.currentPage = parseInt(e.target.get('text')); this.showCurrentPage(); this.buildNavigation(); return false; }, nextPage: function(){ var pages = $$('.cnt-pages').length; if(this.currentPage+1 <= pages){ this.currentPage = this.currentPage+1; } this.showCurrentPage(); this.buildNavigation(); return false; } }); var PressePagination = new Class({ currentPage: 1, itemsPerPage: 5, initialize: function(){ this.showCurrentPage(); this.buildNavigation(); }, showCurrentPage: function(){ var pages = $$('.box_nobg_m'); for(var i=1;i<=pages.length;i++){ if(i <= this.currentPage*this.itemsPerPage && i > this.currentPage*this.itemsPerPage-this.itemsPerPage){ pages[i-1].setStyle('display', 'block'); }else{ pages[i-1].setStyle('display', 'none'); } } }, buildNavigation: function(){ var pages = $$('.box_nobg_m').length; if(pages > 1*this.itemsPerPage){ $$('.pagination').each(function(item){ item.empty(); for(var i=1;i<= (pages/this.itemsPerPage).ceil() ;i++){ if(i == this.currentPage) item.adopt( new Element('a', {'text': i, 'href': '#', 'class': 'activ'}).addEvent('click', this.selectPage.bind(this)) ); else item.adopt( new Element('a', {'text': i, 'href': '#', 'class': 'passive'}).addEvent('click', this.selectPage.bind(this)) ); item.adopt( new Element('span', {'text': ' | '})); } item.adopt( new Element('a', {'text': 'weiter', 'href': '#', 'class': 'passive'}).addEvent('click', this.nextPage.bind(this)) ); }.bind(this)); } }, selectPage: function(e){ this.currentPage = parseInt(e.target.get('text')); this.showCurrentPage(); this.buildNavigation(); return false; }, nextPage: function(){ var boxes = $$('.box_nobg_m').length; var pages = (boxes/this.itemsPerPage).ceil(); if(this.currentPage+1 <= pages){ this.currentPage = this.currentPage+1; } this.showCurrentPage(); this.buildNavigation(); return false; } }); var DownloadArea = new Class({ initialize: function(){ $$('.download_box').each(function(downloadbox){ // alles LI Elemente die level_3 Elemente im UL enthalten werden geschlo?en downloadbox.getElements('li.level_1').each(function(level_1){ if(level_1.getChildren('ul')[0].getChildren('li.level_3').length > 0){ level_1.getChildren('ul')[0].setStyle('display', 'none'); level_1.store('state', 'close'); var close = new Element('a', {'text': 'x', 'href':'#', 'class':'close'}).setStyle('display', 'none'); close.inject(level_1.getFirst('img'), 'after'); level_1.getChildren('h4>a').each(function(link){ link.addEvent('click', function(e){ e.stop(); if(e.target.getParent().getParent().retrieve('state') == 'close'){ e.target.getParent().getParent().getChildren('ul').each(function(ul){ ul.setStyle('display', ''); }); e.target.getParent().getParent().getChildren('img.arrow').setStyle('display', 'none'); e.target.getParent().getParent().getChildren('a.close').setStyle('display', ''); e.target.getParent().getParent().store('state', 'open'); }else{ e.target.getParent().getParent().getChildren('ul').each(function(ul){ ul.setStyle('display', 'none'); }); e.target.getParent().getParent().getChildren('img.arrow').setStyle('display', ''); e.target.getParent().getParent().getChildren('a.close').setStyle('display', 'none'); e.target.getParent().getParent().store('state', 'close'); } }); }); level_1.getChildren('a').each(function(link){ link.addEvent('click', function(e){ e.stop(); if(e.target.getParent().retrieve('state') == 'close'){ e.target.getParent().getChildren('ul').each(function(ul){ ul.setStyle('display', ''); }); e.target.getParent().getChildren('img.arrow').setStyle('display', 'none'); e.target.getParent().getChildren('a.close').setStyle('display', ''); e.target.getParent().store('state', 'open'); }else{ e.target.getParent().getChildren('ul').each(function(ul){ ul.setStyle('display', 'none'); }); e.target.getParent().getChildren('img.arrow').setStyle('display', ''); e.target.getParent().getChildren('a.close').setStyle('display', 'none'); e.target.getParent().store('state', 'close'); } }); }); } }); downloadbox.getElements('li.level_2').each(function(level_2){ level_2.getChildren('ul').each(function(ul){ ul.setStyle('display', 'none'); }); level_2.store('state', 'close'); var close = new Element('a', {'text': 'x', 'href':'#', 'class':'close'}).setStyle('display', 'none'); close.inject(level_2.getFirst('img.arrow'), 'after'); level_2.getChildren('a').each(function(link){ link.addEvent('click', function(e){ e.stop(); if(e.target.getParent().retrieve('state') == 'close'){ e.target.getParent().getChildren('ul').each(function(ul){ ul.setStyle('display', ''); }); e.target.getParent().getChildren('img.arrow').setStyle('display', 'none'); e.target.getParent().getChildren('a.close').setStyle('display', ''); e.target.getParent().store('state', 'open'); } else { e.target.getParent().getChildren('ul').each(function(ul){ ul.setStyle('display', 'none'); }); e.target.getParent().getChildren('img.arrow').setStyle('display', ''); e.target.getParent().getChildren('a.close').setStyle('display', 'none'); e.target.getParent().store('state', 'close'); } }); }); }); }); } }); /* leitet mouseoverevents von Links an ImageMap weiter, wenn diese die _selbe_ Class haben achtung: nutzt onmouseout und onmouseover auf area. */ var ImageMapLink = new Class({ Implements: [Options, Events], options: { mapSelector: '#frame_2col_cnt map', linksSelector: '#frame_col_cnt a' }, areaElements: [], linkElements: [], initialize: function(options){ this.setOptions(options); this.setAreas(); if(this.areaElements.length == 0){ return; } this.setEvents(); this.fireEvent('init'); }, setAreas:function(options){// this.areaElements = $$(this.options.mapSelector+' area') .filter(function(item, index){ return item.className != ''; }); }, setEvents:function(options){ //area events setzen und this.linkElements f?llen this.setAreaEvents(); //link events setzen this.setLinkEvents(); }, setAreaEvents:function(options){ this.areaElements.each( function (areaEl){ var areaLinks = $$('a.'+areaEl.className); if(areaLinks.length>0){ areaEl.addEvent('mouseenter', function(event){ if(event.target.get('tag')=='a'){ return; } areaLinks.fireEvent('mouseenter', event); //console.log('mouseenter via area', areaLinks); }).addEvent('mouseleave', function(event){ if(event.target.get('tag')=='a'){ return; } areaLinks.fireEvent('mouseleave', event); }); } this.linkElements.combine(areaLinks); }, this); }, setLinkEvents:function(options){ this.linkElements.each( function (link){ var areaMap = $$('area.'+link.className)[0]; link.addEvent('mouseenter', function(event){ if(event.target.get('tag')=='area'){ link.addClass('hover'); return; } areaMap.onmouseover(event);//.fireEvent('mouseenter', event); }).addEvent('mouseleave', function(event){ if(event.target.get('tag')=='area'){ link.removeClass('hover'); return; } areaMap.onmouseout(event);//.fireEvent('mouseleave', event); event.stop(); }); }); } }); window.addEvent('domready', function() { var p = new Pagination(); var p2 = new PressePagination(); var d = new DownloadArea(); $$('.district_box > ul > li').each(function (li) { li.getElements(('h4 a')).addEvent('click', function(e) {li.toggleClass('active');e.stop();}); li.getElements(('h5 a')).addEvent('click', function(e) {li.getElement('div.slogan').toggleClass('active');e.stop()}); }); var map = new ImageMapLink(); });