/[Frey]/trunk/static/Frey/CSS/Area.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/static/Frey/CSS/Area.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 919 - (show annotations)
Mon Jan 5 13:50:27 2009 UTC (15 years, 3 months ago) by dpavlin
File MIME type: application/javascript
File size: 2757 byte(s)
add CSS area graph from http://www.khanate.co.uk/graph/
1 var gr = {
2 makeGraphs: function()
3 {
4 var list = document.getElementsByTagName( 'UL' );
5 for ( var i in list )
6 {
7 if ( list[i].className && list[i].className.match( / ?graph ?/ ) )
8 {
9 this.createGraph( list[i] );
10 }
11 }
12
13 },
14 createGraph: function( graphList )
15 {
16 var listItems = new Array();
17 var max = 0;
18 if ( graphList.listItems )
19 {
20 listItems = graphList.listItems;
21 max = graphList.maxValue;
22 }
23 else
24 {
25 for ( var x in graphList.childNodes )
26 {
27 if ( graphList.childNodes[x].nodeName == 'LI' )
28 {
29 listItems.push(graphList.childNodes[x]);
30 max = ( max <= Number(this.getVal( graphList.childNodes[x] )) ) ? this.getVal( graphList.childNodes[x] ) : max;
31 }
32 }
33 graphList.listItems = listItems;
34 graphList.maxValue = max;
35 }
36 // For now.
37 max = max * 1.25;
38 for ( var x = 1; x < listItems.length; x++ )
39 {
40 var cur = Number( this.getVal(listItems[x-1]) );
41 var nex = Number( this.getVal(listItems[x]) );
42 if ( cur <= nex )
43 {
44 listItems[x-1].style.height = cur+'px';
45 listItems[x-1].style.borderTopWidth = (nex - cur)+'px';
46 listItems[x-1].style.marginTop = ( max - ( cur + ( nex - cur ) ) ) + 'px';
47 }
48 else
49 {
50 listItems[x-1].style.height = nex+'px';
51 listItems[x-1].style.borderTopWidth = (cur - nex)+'px';
52 listItems[x-1].style.marginTop = (max - ( nex + ( cur - nex ) ) )+'px';
53 listItems[x-1].className = 'down';
54 if ( listItems[x-1].valSpan )
55 {
56 listItems[x-1].valSpan.style.top = -17 - (cur - nex )+ 'px';
57 }
58 }
59 listItems[x].style.height = nex + 'px';
60 listItems[x].style.marginTop = ( max - nex )+'px';
61 }
62 if ( listItems[listItems.length-1].className )
63 {
64 listItems[listItems.length-1].className = 'last '+listItems[listItems.length-1].className;
65 }
66 else
67 {
68 listItems[listItems.length-1].className = 'last';
69 }
70
71 graphList.className = graphList.className.replace( /graph/, 'graphon' );
72 graphList.onclick = function() { gr.toggleGraph( this ) }
73 },
74 stopGraph: function ( graphList )
75 {
76 for ( var x in graphList.listItems )
77 {
78 graphList.listItems[x].style.cssText = '';
79 }
80 graphList.className = graphList.className.replace( /graphon/, 'graph' );
81 },
82 toggleGraph: function( g )
83 {
84 if ( g.className.match( / ?graphon ?/ ) )
85 {
86 gr.stopGraph( g );
87 }
88 else
89 {
90 gr.createGraph( g );
91 }
92 },
93 getVal: function ( li )
94 {
95 if ( li.graphValue ) { return li.graphValue }
96 var val = 0;
97 for ( var x in li.childNodes )
98 {
99 if ( li.childNodes[x].className && li.childNodes[x].className == 'val' )
100 {
101 val = li.childNodes[x].firstChild.nodeValue;
102 li.valSpan = li.childNodes[x];
103 }
104 }
105
106 li.graphValue = val;
107 return val;
108 }
109 };

  ViewVC Help
Powered by ViewVC 1.1.26