var currentTab = 0; var currentFirstTab = 0; var stepTab = 1; function initTab( firstTab, selectedTab, step, excludeFirstPage ) { currentFirstTab = firstTab; currentTab = selectedTab; stepTab = step; // force to left if( currentTab < currentFirstTab ) { currentFirstTab = Math.max( currentTab - step + 1, 0); } // force to right if( currentTab >= currentFirstTab +step ) { currentFirstTab = Math.max( currentTab - step + 1, 0); } refreshTabs( excludeFirstPage ); } function stepToTab( step, excludeFirstPage) { var el = $('hiddenTabs').immediateDescendants(); var count = el.length; currentFirstTab += step; currentFirstTab = Math.min( currentFirstTab, count - 1); currentFirstTab = Math.max( currentFirstTab, 0); refreshTabs(excludeFirstPage); } function refreshTabs( excludeFirstPage ) { // delete old values var destroy = $('dynamicTab').immediateDescendants(); var nbDestroys = destroy.length; for(var i = 0; i < nbDestroys; i++) { destroy[i].remove(); } var tabsElement = new Element('ul', { 'id': 'tabsHeader'}); // left arrow if(excludeFirstPage){ borneArrow = 1; } if( currentFirstTab > borneArrow) { var divElement = new Element('div', { 'class': 'leftTabStep' }).update(''); $("dynamicTab").appendChild(divElement); } else { var divElement = new Element('div', { 'class': 'emptyTabStep' }); $("dynamicTab").appendChild(divElement); } $("dynamicTab").appendChild( tabsElement) // tabs var el = $('hiddenTabs').immediateDescendants(); var count = el.length; var borne = 0; if(excludeFirstPage && (currentFirstTab == 0)){ borne = 1; } var ret = -1; var nbTabs = Math.min( count, currentFirstTab +stepTab); for(var i = currentFirstTab + borne; i < nbTabs ; i++) { liHTML = el[i].innerHTML; liHTML = liHTML.replace(/firstTab=0/g , 'firstTab=' + currentFirstTab); var liElement = new Element('li').update(liHTML); if(i == currentTab){ liElement.addClassName('current'); } tabsElement.appendChild(liElement); } //right arrow if( currentFirstTab + stepTab < count) { var divElement = new Element('div', { 'class': 'rightTabStep' }).update(''); $("dynamicTab").appendChild(divElement); } }