6 var eltLink = elt.firstChild;
7 if (eltLink != null && eltLink.className == 't') // toggle
9 var ich = elt.className.indexOf ('_');
12 eltLink.src = 'tp.gif';
17 eltLink.src = 'tm.gif';
18 elt.className = elt.className.slice (0, ich);
23 function setView (elt, fView)
25 var eltLink = elt.firstChild;
26 if (eltLink != null && eltLink.className == 't') // toggle
28 var ich = elt.className.indexOf ('_');
29 if (ich < 0 && !fView)
31 eltLink.src = 'tp.gif';
34 else if (ich >= 0 && fView)
36 eltLink.src = 'tm.gif';
37 elt.className = elt.className.slice (0, ich);
42 function trimSrc (strSrc)
44 return strSrc.slice (strSrc.lastIndexOf ('/') + 1, strSrc.lastIndexOf ('.'));
47 function getChildrenByTagName (elt, strTag)
49 strTag = strTag.toLowerCase ();
50 var rgChildren = new Array ();
51 var eltChild = elt.firstChild;
54 if (eltChild.tagName && eltChild.tagName.toLowerCase () == strTag)
55 rgChildren.push (eltChild);
56 eltChild = eltChild.nextSibling;
61 function viewAll (elt, dictTypes)
64 var rgImages = getChildrenByTagName (elt, 'IMG');
65 var cImages = rgImages.length;
66 for (var iImage = 0; iImage < cImages; iImage++)
68 var strImage = trimSrc (rgImages [iImage].src);
69 if (dictTypes [strImage])
75 var rgElts = getChildrenByTagName (elt, 'DIV');
76 var cElts = rgElts.length;
80 for (iElt = 0; iElt < cElts; iElt ++)
81 fView |= viewAll (rgElts [iElt], dictTypes);
83 elt.style.display = fView ? '' : 'none';
87 function getView (elt)
89 var eltLink = elt.firstChild;
90 if (eltLink != null && eltLink.className == 't') // toggle
92 var ich = elt.className.indexOf ('_');
99 function getParentDiv (elt)
105 elt = elt.parentNode;
107 while (elt && elt.tagName != 'DIV');
113 function getName (elt)
115 var rgSpans = getChildrenByTagName (elt, 'SPAN');
116 for (var iSpan = 0; iSpan < rgSpans.length; iSpan ++)
118 var span = rgSpans [iSpan];
119 if (span.className == 'l') // label
122 return span.innerText;
124 return span.firstChild.nodeValue;
130 function clickHandler (evt)
135 else if (window.event && window.event.srcElement)
137 elt = window.event.srcElement;
140 else if (evt && evt.stopPropagation)
143 if (!elt.className && elt.parentNode)
144 elt = elt.parentNode;
146 if (elt.className == 'l') // label
150 eltDiv = getParentDiv (elt);
151 var strEltClass = eltDiv.className;
152 if (strEltClass.charAt (strEltClass.length - 1) == '_')
153 strEltClass = strEltClass.slice (0, strEltClass.length - 1);
154 strName = getName (eltDiv);
156 if (strEltClass == 'f') // Function
158 var strFilename = elt.nextSibling;
159 if (strFilename && strFilename.innerText)
161 var strRoot = 'http://mok.lvcm.com/cgi-bin/reactos/ros-cvs/~checkout~/';
162 var strExtra = '?content-type=text/plain';
164 window.open (strRoot + strFilename.innerText + strExtra, 'CVS');
170 if (elt.parentNode && elt.parentNode.className == 't') // toggle
171 elt = elt.parentNode;
172 else if (elt.className != 't') // toggle
175 while (elt != null && elt.tagName != 'DIV')
176 elt = elt.parentNode;
180 var rgElts = getChildrenByTagName (elt, 'DIV');
181 var cElts = rgElts.length;
186 for (iElt = 0; iElt < cElts; iElt ++)
188 if (getView (rgElts [iElt]))
194 for (iElt = 0; iElt < cElts; iElt ++)
196 setView (rgElts [iElt], !fView);
200 else if (evt.ctrlKey)
203 var eltParent = getParentDiv (elt);
206 var rgSiblings = getChildrenByTagName (eltParent, 'DIV');
207 var cSiblings = rgSiblings.length;
208 for (var iSibling = 0; iSibling < cSiblings; iSibling++)
210 var eltSibling = rgSiblings [iSibling];
211 if (eltSibling != elt)
213 setView (eltSibling, false);
217 eltParent = getParentDiv (elt);
227 function filterTree ()
229 var eltImplemented = document.getElementById ('implemented');
230 var eltUnimplemented = document.getElementById ('unimplemented');
232 var dictTypes = new Object ();
233 if (eltImplemented.checked)
234 dictTypes ['i'] = true;
235 if (eltUnimplemented.checked)
236 dictTypes ['u'] = true;
238 viewAll (document.getElementById ('ROOT'), dictTypes);
241 function selectImplemented ()
243 toggleFilter ('implemented');
246 function selectUnimplemented ()
248 toggleFilter ('unimplemented');
251 function toggleFilter (strFilter)
253 var eltImplemented = document.getElementById ('implemented');
254 var eltUnimplemented = document.getElementById ('unimplemented');
256 var eltToggle = document.getElementById (strFilter);
257 if (window && window.event && window.event.shiftKey)
259 eltImplemented.checked = eltUnimplemented.checked;
260 eltUnimplemented.checked = true;
263 if (!eltUnimplemented.checked && !eltImplemented.checked)
265 eltImplemented.checked = eltUnimplemented.checked = true;
266 eltToggle.checked = false;
273 var eltImplemented = document.getElementById ('implemented');
274 var eltUnimplemented = document.getElementById ('unimplemented');
275 eltImplemented.checked = eltUnimplemented.checked = true;
280 document.captureEvents (Event.MOUSEUP);
281 document.onmouseup = clickHandler;
283 else if (document.attachEvent)
285 document.attachEvent('onclick', clickHandler);
287 else if (document.addEventListener)
289 document.addEventListener('click', clickHandler, false);
292 document.onclick = clickHandler;