$.fn.pager = function(clas, options) { var settings = { navId: 'nav', navId2: 'nav2', navClass: 'nav', navAttach: 'both', highlightClass: 'highlight', prevText: './img/arrow_uc_left.gif', nextText: './img/arrow_uc_right.gif', linkText: null, linkWrap: null, height: null } if(options) $.extend(settings, options); return this.each( function () { var me = $(this); var size; var i = 0; var navid = '#'+settings.navId; var navid2 = '#'+settings.navId2; function init () { size = $(clas, me).not(navid).size(); if(settings.height == null) { settings.height = getHighest(); } if(size > 1) { makeNav(); show(); highlight(); } //sizePanel(); if(settings.linkWrap != null) { linkWrap(); } } function makeNav () { var str = '
Seiten: '; str += ''; for(var i = 0; i < size; i++) { var j = i+1; str += ''; str += (settings.linkText == null) ? j : settings.linkText[j-1]; str += ''; } str += ''; str += '
'; var str2 = '
Seiten: '; str2 += ''; for(var i = 0; i < size; i++) { var j = i+1; str2 += ''; str2 += (settings.linkText == null) ? j : settings.linkText[j-1]; str2 += ''; } str2 += ''; str2 += '
'; switch (settings.navAttach) { case 'before': $(me).before(str); break; case 'after': $(me).after(str); break; case 'prepend': $(me).prepend(str); break; case 'both': $(me).prepend(str); $(me).append(str2); break; default: $(me).append(str); break; } } function show () { $(me).find(clas).not(navid).hide(); var show = $(me).find(clas).not(navid).get(i); $(show).show(); $(navid2).show(); } function highlight (){ var as = null; var toset = [navid, navid2]; for(y in toset) { as = $(me).find(toset[y]).find('a'); for(x = 1; x < as.length; x++) { //if(as.get(x).rel == 'prev' || as.get(x).rel == 'next') continue; as.get(x).className = 'page'; if(x == i+1) { as.get(x).className += ' active'; } else { as.get(x).className = 'page'; } } } } function sizePanel () { if($.browser.msie) { $(me).find(clas).not(navid).css( { height: settings.height }); $(navid).css("height","20px"); $(navid2).css("height","20px"); } else { $(me).find(clas).not(navid).css( { minHeight: settings.height }); $(navid).css("height","20px"); $(navid2).css("height","20px"); } } function getHighest () { var highest = 0; $(me).find(clas).not(navid).each(function () { if(this.offsetHeight > highest) { highest = this.offsetHeight; } }); highest = highest + "px"; return highest; } function getNavHeight () { var nav = $(navid).get(0); return nav.offsetHeight; } function linkWrap () { $(me).find(navid).find("a").wrap(settings.linkWrap); } init(); $(this).find(navid).find("a").click(function () { if($(this).attr('rel') == 'next') { if(i + 1 < size) { i = i+1; } } else if($(this).attr('rel') == 'prev') { if(i > 0) { i = i-1; } } else { var j = $(this).attr('rel'); i = j-1; } show(); highlight(); return false; }); $(this).find(navid2).find("a").click(function () { if($(this).attr('rel') == 'next') { if(i + 1 < size) { i = i+1; } } else if($(this).attr('rel') == 'prev') { if(i > 0) { i = i-1; } } else { var j = $(this).attr('rel'); i = j-1; } show(); highlight(); return false; }); }); }