(function($){ $.fn.diapoPager = function(o) { var defaults_options = { s:{ //selector menu: '> ul', menu_elements: '> ul li', pager: '.pager', next: '.pager .next', prev: '.pager .prev' }, opened_group: 0, group_w: 0, c_w:0, grp_menu_pointer:0, menu_grp:[], c: null, //container menu: null, //menu menu_elements: null, //menu p: null, //pager prev: null, //prev next: null //next }; var o = $.extend(defaults_options, o); return this.each(function() { o.c = $(this); o.menu = o.c.find(o.s.menu); o.menu_elements = o.c.find(o.s.menu_elements); o.pager = o.c.find(o.s.pager); o.next = o.c.find(o.s.next); o.prev = o.c.find(o.s.prev); o.c_w = o.menu.innerWidth(); o.menu_grp[0] = []; init(); }); function init(){ o.menu_elements.each(function(){ var li_w = $(this).outerWidth(); if(o.group_w + li_w > o.c_w) { o.group_w = 0; o.grp_menu_pointer++; o.menu_grp[o.grp_menu_pointer] = []; } else { o.group_w += li_w; } if($(this).find('a').attr('class')=='o') { o.opened_group = o.grp_menu_pointer; } o.menu_grp[o.grp_menu_pointer].push($(this)); }); if(o.menu_grp.length>1) { showPager(); } } function showPager() { o.pager.show(); refreshPager(); } function refreshPager() { //prev pager if(o.opened_group>0) { o.prev.addClass('active').unbind('click').bind('click',previous); } else { o.prev.removeClass('active').unbind('click'); } if( (o.opened_group+1) < o.menu_grp.length ) { o.next.addClass('active').unbind('click').bind('click',next); } else { o.next.removeClass('active').unbind('click'); } o.menu_elements.hide(); $(o.menu_grp[o.opened_group]).each(function(i,e){ $(e).show(); }); //alert('current page = ' + (o.opened_group+1) + '/'+ o.menu_grp.length); } function next(){ if(o.opened_group+10) { o.opened_group--; } refreshPager(); } }; })(jQuery); $('.sub-menu').diapoPager();