-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.js
118 lines (113 loc) · 2.32 KB
/
utils.js
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
function verberg(obj)
{
obj.style.display="none";
}
function toon(id_object)
{
toonElement(document.getElementById(id_object));
/*
var stobj=document.getElementById(id_object).style;
if(stobj.display=="block")
{
stobj.display="none";
}
else
{
stobj.display="block";
}
*/
}
function toonElement(element)
{
var stobj=element.style;
if(stobj.display=="block")
{
stobj.display="none";
}
else
{
stobj.display="block";
}
}
function toonInline(ev,id_object, toon )
{
var stobj=document.getElementById(id_object).style;
if(toon)
{
stobj.display="inline";
}
else
{
stobj.display="none";
}
}
function toonElementInline(id_object, toon)
{
var stobj=element.style;
if(toon)
{
stobj.display="inline";
}
else
{
stobj.display="none";
}
}
/*
setWidthElement: either sets the width of object a to b or
sets the width of b equal to the parent width minus the width of a floating opject
in case the floating object is next to object a.
if c is a possible other element to determine whether the floating object is next to a
*/
function setWidthElement(a,b,c=null)
{
if( typeof b == "number")
{
a.style.maxWidth = b +"px";
}
else
{
var at=a.offsetTop;
if(c) at= c.offsetTop;
var bb=b.offsetTop+b.offsetHeight;
var cstyle=window.getComputedStyle(b,null);
if(at<bb)
{
var sb=window.getComputedStyle(b, null);
var sa=window.getComputedStyle(a, null);
var wijdte = cstyle.getPropertyValue("width");
wijdte = Number(wijdte.substring(0,wijdte.length-2));
a.style.width =
(a.parentElement.offsetWidth-b.offsetWidth-20)+"px";
}
}
}
/*
in a tabbed environment switch between tabs and highlight current tab
*/
function toonElementTab(buttonobj,color="gold")
{
const element = document.querySelector('.'+buttonobj.className)
const bgColor = getComputedStyle(element).backgroundColor;
var tabbuttongroupobj=buttonobj.parentElement;
var tabsobj=tabbuttongroupobj.parentElement;
var tabmaingroupobj=tabsobj.childNodes[3];
var bnodes = tabsobj.childNodes[1].childNodes;
var mnodes = tabsobj.childNodes[3].childNodes;
for(i=0;i<bnodes.length;i++)
{
if(bnodes[i]==buttonobj)
{
buttonobj.style.backgroundColor=color;
mnodes[i].style.display="block";
}
else
{
if(bnodes[i].innerHTML)
{
bnodes[i].style.backgroundColor=bgColor;
mnodes[i].style.display="none";
}
}
}
}