-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathjava.js
More file actions
79 lines (54 loc) · 1.91 KB
/
java.js
File metadata and controls
79 lines (54 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
Yetii - Yet (E)Another Tab Interface Implementation
http://www.kminek.pl/lab/yetii/
Copyright (c) 2007 Grzegorz Wojcik
Code licensed under the BSD License:
http://www.kminek.pl/bsdlicense.txt
*/
function Yetii() {
this.defaults = {
id: null,
active: 1,
timeout: null,
interval: null,
tabclass: 'tab',
activeclass: 'active'
};
for (var n in arguments[0]) { this.defaults[n]=arguments[0][n]; };
this.getTabs = function() {
var retnode = [];
var elem = document.getElementById(this.defaults.id).getElementsByTagName('*');
var regexp = new RegExp("(^|\\s)" + this.defaults.tabclass.replace(/\-/g, "\\-") + "(\\s|$)");
for (var i = 0; i < elem.length; i++) {
if (regexp.test(elem[i].className)) retnode.push(elem[i]);
}
return retnode;
};
this.links = document.getElementById(this.defaults.id + '-nav').getElementsByTagName('a');
this.show = function(number){
for (var i = 0; i < this.tabs.length; i++) {
this.tabs[i].style.display = ((i+1)==number) ? 'block' : 'none';
this.links[i].className = ((i+1)==number) ? this.defaults.activeclass : '';
}
};
this.rotate = function(interval){
this.show(this.defaults.active);
this.defaults.active++;
if(this.defaults.active > this.tabs.length) this.defaults.active = 1;
var self = this;
this.defaults.timeout = setTimeout(function(){self.rotate(interval);}, interval*1000);
};
this.tabs = this.getTabs();
this.show(this.defaults.active);
var self = this;
for (var i = 0; i < this.links.length; i++) {
this.links[i].customindex = i+1;
this.links[i].onclick = function(){
if (self.defaults.timeout)
clearTimeout(self.defaults.timeout);
self.show(this.customindex);
return false;
};
}
if (this.defaults.interval) this.rotate(this.defaults.interval);
};