var util = new function() { this.getSrcElem = function(e) { var ret = null; if(e.srcElement) { ret = e.srcElement; } else if(e.target) { ret = e.target; } return ret; }; } var switchTab = new function() // is singleton { this.activated = false; this.tabId = new Array(); this.menu = ''; this.panels = '#switch_panels div.panel'; //this.panels = '#refresh_panel'; // used for ajax var self = this; this.setTabs = function(tabs) { var i = 1; for(var j = 0; j < tabs.length; j++) { self.tabId[i] = tabs[j]; i++; } }; this.setMenu = function(menu) { self.menu = menu; }; this.getCurrent = function() { var current = 1; for(var i = 1; i < self.tabId.length; i++) { if(self.tabId[i] == $('body').attr('id')) { current = i; } } return current; }; this.changeTab = function(e, active) { if(active == 0) { var activeElem = util.getSrcElem(e).parentNode; var found = false; var i = 1; $(self.menu+' li a').each(function(index){ if(this.parentNode != activeElem) { if(found == false) { i++; } } else { found = true; } }); active = i; } $('body').attr({'id': self.tabId[active]}); switchTab.alterCurrent(active); switchTab.alterPanel(active); //$(switchTab.panels).load('./index.php?id='+active+'&refresh=1', null, initButtons); //$('#switch_panels').load('tab_'+active+'.inc', null, initButtons); }; this.alterCurrent = function(active) { var i = 1; $(self.menu+' li').each(function(index){ var item = $(this); if(i == active) { item.addClass('current'); } else { item.removeClass('current'); } i++; }); }; this.alterPanel = function(active) { var i = 1; $(self.panels).each(function(index){ var item = $(this); if(i == active) { item.removeClass('hidden'); } else { item.addClass('hidden'); } i++; }); }; this.buttonEvents = function() { $(self.panels+' p.button > a').bind('click', function(e){ var active = self.getCurrent(); e.preventDefault(); self.changeTab(null, (active + 1)); }); $(self.panels+' p.but-sec-action > a, '+self.panels+' p.but-sec-action-last > a').bind('click', function(e){ var active = self.getCurrent(); e.preventDefault(); self.changeTab(null, (active - 1)); }); }; } $(document).ready(function(){ getSwitchPrefs(); if(switchTab.activated == true) { $(switchTab.menu+' li a').each(function(index){ $(this).bind('click', function(e){ e.preventDefault(); switchTab.changeTab(e, 0); }); }); /* $(switchTab.panels+' p.button > a').bind('click', function(e){ var active = switchTab.getCurrent(); e.preventDefault(); switchTab.changeTab(null, (active + 1)); }); $(switchTab.panels+' p.but-sec-action > a, '+switchTab.panels+' p.but-sec-action-last > a').bind('click', function(e){ var active = switchTab.getCurrent(); e.preventDefault(); switchTab.changeTab(null, (active - 1)); }); */ switchTab.buttonEvents(); } }); var initButtons = function() { switchTab.buttonEvents(); }