76deb5e52bb5c4ecf5e504828cb4d0232ba054b1
[collectd.git] / contrib / collection3 / share / navigate.js
1 function nav_init (time_begin, time_end)
2 {
3   var all_images;
4   var i;
5
6   all_images = document.getElementsByTagName ("img");
7   for (i = 0; i < all_images.length; i++)
8   {
9     if (all_images[i].className != "graph_image")
10       continue;
11
12     all_images[i].navTimeBegin = new Number (time_begin);
13     all_images[i].navTimeEnd   = new Number (time_end);
14
15     all_images[i].navBaseURL = all_images[i].src.replace (/;(begin|end)=[^;]*/g, '');
16   }
17
18   return (true);
19 } /* nav_init */
20
21 function nav_time_reset (img_id ,diff)
22 {
23   var img;
24
25   img = document.getElementById (img_id);
26   if (!img)
27     return (false);
28
29   img.navTimeEnd = new Number ((new Date ()).getTime () / 1000);
30   img.navTimeBegin = new Number (img.navTimeEnd - diff);
31
32   img.src = img.navBaseURL + ";"
33     + "begin=" + img.navTimeBegin.toFixed (0) + ";"
34     + "end=" + img.navTimeEnd.toFixed (0);
35
36   return (true);
37 }
38
39 function nav_time_change_obj (img, factor_begin, factor_end)
40 {
41   var diff;
42
43   if (!img)
44     return (false);
45
46   if (!img.navTimeEnd || !img.navTimeBegin)
47     return (false);
48
49   diff = img.navTimeEnd - img.navTimeBegin;
50   if (diff <= 300)
51     return (true);
52
53   img.navTimeBegin += (diff * factor_begin);
54   img.navTimeEnd   += (diff * factor_end);
55
56   img.src = img.navBaseURL + ";"
57     + "begin=" + img.navTimeBegin.toFixed (0) + ";"
58     + "end=" + img.navTimeEnd.toFixed (0);
59
60   return (true);
61 } /* nav_time_change */
62
63 function nav_time_change (img_id, factor_begin, factor_end)
64 {
65   var diff;
66
67   if (img_id == '*')
68   {
69     var all_images;
70
71     all_images = document.getElementsByTagName ("img");
72     for (i = 0; i < all_images.length; i++)
73     {
74       if (all_images[i].className != "graph_image")
75         continue;
76     
77       nav_time_change_obj (all_images[i], factor_begin, factor_end);
78     }
79   }
80   else
81   {
82     var img;
83
84     img = document.getElementById (img_id);
85     if (!img)
86       return (false);
87
88     nav_time_change_obj (img, factor_begin, factor_end);
89   }
90
91   return (true);
92 } /* nav_time_change */
93
94 function nav_move_earlier (img_id)
95 {
96   return (nav_time_change (img_id, -0.2, -0.2));
97 } /* nav_move_earlier */
98
99 function nav_move_later (img_id)
100 {
101   return (nav_time_change (img_id, +0.2, +0.2));
102 } /* nav_move_later */
103
104 function nav_zoom_in (img_id)
105 {
106   return (nav_time_change (img_id, +0.2, -0.2));
107 } /* nav_zoom_in */
108
109 function nav_zoom_out (img_id)
110 {
111   return (nav_time_change (img_id, (-1.0 / 3.0), (1.0 / 3.0)));
112 }
113 /* vim: set sw=2 sts=2 et : */