+ for (i = 0; i < graphList.length; i++)
+ if (graphList[i].substring(0, graph.length) == graph && graphList[i].charAt(graph.length) == ' ') {
+ if (i+1 < graphList.length) {
+ var tmp = graphList[i+1];
+ graphList[i+1] = graphList[i];
+ graphList[i] = tmp;
+ }
+ break;
+ }
+}
+
+function GraphListFromCookie() {
+ if (document.cookie.length > 0) {
+ cookies = document.cookie.split('; ');
+ for (i = 0; i < cookies.length; i++)
+ if (cookies[i].substring(0, 9) == 'graphLst=')
+ return cookies[i].substring(9).split('/');
+ }
+ return new Array();
+}
+
+function GraphSave() {
+ if (graphList.length > 0) {
+ // Save graph list to cookie
+ var str = '';
+ for (i = 0; i < graphList.length; i++) {
+ var g = graphList[i].indexOf(' ');
+ if (i > 0)
+ str += '/';
+ str += graphList[i].substring(g+1);
+ }
+
+ document.cookie = 'graphLst='+str;
+ if (GraphListFromCookie().length == 0)
+ alert("Failed to save graph list to cookie.");
+ else
+ alert("Successfully saved current graph list.");
+ } else {
+ document.cookie = 'graphLst=; expires='+new Date().toGMTString();
+ alert("Cleared saved graph list.");
+ }
+}
+
+function GraphLoad() {
+ // Load graph list from cookie
+ var grLst = GraphListFromCookie();
+ for (i = 0; i < grLst.length; i++) {
+ var host = '';
+ var plugin = '';
+ var pinst = '';
+ var type = '';
+ var tinst = '';
+ var timespan = '';
+ var logarithmic = false;
+ var tinyLegend = false;
+ var graph = grLst[i].split('&');
+ for (j = 0; j < graph.length; j++)
+ if (graph[j] == 'logarithmic=1')
+ logarithmic = true;
+ else if (graph[j] == 'tinylegend=1')
+ tinyLegend = true;
+ else if (graph[j].substring(0, 9) == 'timespan=')
+ timespan = decodeURIComponent(graph[j].substring(9));
+ graph = decodeURIComponent(graph[0]).split('/');
+ host = graph[0];
+ if (graph.length > 1) {
+ var g = graph[1].indexOf('-');
+ if (g >= 0) {
+ plugin = graph[1].substring(0, g);
+ pinst = graph[1].substring(g+1);
+ } else
+ plugin = graph[1];
+ }
+ if (graph.length > 2) {
+ var g = graph[2].indexOf('-');
+ if (g >= 0) {
+ type = graph[2].substring(0, g);
+ tinst = graph[2].substring(g+1);
+ } else
+ type = graph[2];
+ }
+
+ if (host && plugin && type)
+ GraphDoAppend(host, plugin, pinst, type, tinst, timespan, tinyLegend, logarithmic);
+ }
+ if (grLst.length == 0)
+ alert("No list found for loading.");
+ else if (grLst.length != graphList.length)
+ alert("Could not load all graphs, probably damaged cookie.");