git-svn-id: svn://euphorik.ch/pompage@45 02bbb61a-6d21-0410-aba0-cb053bdfd66a
[pompage.git] / doc / webdeveloper / generated / output_pivot.js
1 // Collapses all output
2 function webdeveloper_collapseAllOutput(event)
3 {
4 webdeveloper_pivotAllOutput(event, false);
5 }
6
7 // Expands all output
8 function webdeveloper_expandAllOutput(event)
9 {
10 webdeveloper_pivotAllOutput(event, true);
11 }
12
13 // Makes all output on the page pivotable
14 function webdeveloper_makeOutputPivotable()
15 {
16 var collapseAll = document.getElementById("webdeveloper-generated-tool-collapse-all");
17 var expandAll = document.getElementById("webdeveloper-generated-tool-expand-all");
18 var spanElementList = webdeveloper_evaluateXPath(document, "//span[@class='expanded pivot']");
19 var spanElementLength = spanElementList.length;
20
21 // Loop through the span elements
22 for(var i = 0; i < spanElementLength; i++)
23 {
24 spanElementList[i].addEventListener("click", webdeveloper_pivotOutput, false);
25 }
26
27 // If the collapse all element is found
28 if(collapseAll)
29 {
30 collapseAll.addEventListener("click", webdeveloper_collapseAllOutput, false);
31 }
32
33 // If the expand all element is found
34 if(expandAll)
35 {
36 expandAll.addEventListener("click", webdeveloper_expandAllOutput, false);
37 }
38 }
39
40 // Pivots all output
41 function webdeveloper_pivotAllOutput(event, expand)
42 {
43 var divElementList = null;
44 var divElementLength = null;
45 var spanElementList = null;
46 var spanElementLength = null;
47
48 // If expanding
49 if(expand)
50 {
51 divElementList = webdeveloper_evaluateXPath(document, "//div[@class='collapsed output']");
52 divElementLength = divElementList.length;
53 spanElementList = webdeveloper_evaluateXPath(document, "//span[@class='collapsed pivot']");
54 spanElementLength = spanElementList.length;
55
56 // Loop through the div elements
57 for(var i = 0; i < divElementLength; i++)
58 {
59 divElementList[i].setAttribute("class", "output");
60 }
61
62 // Loop through the span elements
63 for(i = 0; i < spanElementLength; i++)
64 {
65 spanElementList[i].setAttribute("class", "expanded pivot");
66 }
67 }
68 else
69 {
70 divElementList = webdeveloper_evaluateXPath(document, "//div[@class='output']");
71 divElementLength = divElementList.length;
72 spanElementList = webdeveloper_evaluateXPath(document, "//span[@class='expanded pivot']");
73 spanElementLength = spanElementList.length;
74
75 // Loop through the div elements
76 for(var i = 0; i < divElementLength; i++)
77 {
78 divElementList[i].setAttribute("class", "collapsed output");
79 }
80
81 // Loop through the span elements
82 for(i = 0; i < spanElementLength; i++)
83 {
84 spanElementList[i].setAttribute("class", "collapsed pivot");
85 }
86 }
87
88 event.preventDefault();
89 }
90
91 // Pivots output
92 function webdeveloper_pivotOutput(event)
93 {
94 // If the event is set
95 if(event)
96 {
97 var pivot = event.target;
98 var output = pivot.parentNode.nextSibling;
99
100 // If the output element is found
101 if(output)
102 {
103 // If the output class attribute is set to collapsed
104 if(output.getAttribute("class") == "collapsed output")
105 {
106 output.setAttribute("class", "output");
107 pivot.setAttribute("class", "expanded pivot");
108 }
109 else if(output.getAttribute("class") == "output")
110 {
111 output.setAttribute("class", "collapsed output");
112 pivot.setAttribute("class", "collapsed pivot");
113 }
114 }
115 }
116 }
117
118 webdeveloper_makeOutputPivotable();