moved qdb here because matt is lazy
[public/www-new.git] / pub / qdb / res / themes / default / js / tabbed_pane.js
1 /*\r
2 ###############################################################################\r
3 # Chirpy! 0.3, a quote management system                                      #\r
4 # Copyright (C) 2005-2007 Tim De Pauw <ceetee@users.sourceforge.net>          #\r
5 ###############################################################################\r
6 # This program is free software; you can redistribute it and/or modify it     #\r
7 # under the terms of the GNU General Public License as published by the Free  #\r
8 # Software Foundation; either version 2 of the License, or (at your option)   #\r
9 # any later version.                                                          #\r
10 #                                                                             #\r
11 # This program is distributed in the hope that it will be useful, but WITHOUT #\r
12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or       #\r
13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for   #\r
14 # more details.                                                               #\r
15 #                                                                             #\r
16 # You should have received a copy of the GNU General Public License along     #\r
17 # with this program; if not, write to the Free Software Foundation, Inc., 51  #\r
18 # Franklin St, Fifth Floor, Boston, MA  02110-1301  USA                       #\r
19 ###############################################################################\r
20 \r
21 ###############################################################################\r
22 # tabbed_pane.js                                                              #\r
23 # Emulates a tabbed pane for the administrative interface                     #\r
24 ###############################################################################\r
25 # $Id:: tabbed_pane.js 291 2007-02-05 21:24:46Z ceetee                      $ #\r
26 ###############################################################################\r
27 */\r
28 \r
29 var tabs, activeTab;\r
30 \r
31 function initializeTabbedPane (name, initialTab) {\r
32         tabs = document.getElementById(name + '-navigation').childNodes;\r
33         contents = document.getElementById(name + '-contents').childNodes;\r
34         for (var i = 0; i < tabs.length; i++) {\r
35                 initializeTab(tabs[i].firstChild);\r
36         }\r
37         setActiveTab(initialTab ? initialTab : tabs[0].firstChild);\r
38 }\r
39 \r
40 function initializeTab (tab) {\r
41         tab.onclick = function() {\r
42                 displayTab(tab);\r
43                 return false;\r
44         };\r
45         tab.onmousedown = tab.onselectstart = function () {\r
46                 return false;\r
47         };\r
48         tab.removeAttribute('href');\r
49 }\r
50 \r
51 function displayTab (tab) {\r
52         if (tab == activeTab) return;\r
53         setActiveTab(tab);\r
54 }\r
55 \r
56 function setActiveTab (tab) {\r
57         activeTab = tab;\r
58         for (var i = 0; i < tabs.length; i++) {\r
59                 var tab = tabs[i].firstChild;\r
60                 var active = (tab == activeTab);\r
61                 var className = active ? 'active-tab' : '';\r
62                 tab.className = className;\r
63                 document.getElementById(tab.id.substring(4)).style.display = (active ? '' : 'none');\r
64         }\r
65 }