Merge branch 'master' of git://github.com/danvk/dygraphs into highlight3
[dygraphs.git] / experimental / palette / index.js
index 518f4b2..602bde4 100644 (file)
@@ -32,9 +32,11 @@ Index.splitVariables = function() { // http://www.idealog.us/2006/06/javascript_
   var query = window.location.search.substring(1); 
   var args = {};
   var vars = query.split("&"); 
-  for (var i = 0;i < vars.length; i++) { 
-    var pair = vars[i].split("="); 
-    args[pair[0]] = pair[1];
+  for (var i = 0; i < vars.length; i++) { 
+    if (vars[i].length > 0) {
+      var pair = vars[i].split("="); 
+      args[pair[0]] = pair[1];
+    }
   }
   return args;
 }
@@ -56,21 +58,46 @@ Index.draw = function(element, data, options) {
 
 Index.addMessage = function(text) {
   var messages = document.getElementById("messages");
-  messages.innerText = messages.innerText + text + "\n";
+  messages.textContent = messages.textContent + text + "\n";
 }
 
 Index.start = function() {
   var variables = Index.splitVariables();
-  var sampleIndex = variables["sampleIndex"];
-  if (!(sampleIndex)) {
-    sampleIndex = 0;
+  var sampleName = variables["sample"];
+  if (!(sampleName)) {
+    sampleName = "interestingShapes";
   }
-  var sample = Samples.samples[sampleIndex];
+  var sampleIndex = Samples.indexOf(sampleName);
+  var sample = Samples.data[sampleIndex];
   var data = sample.data;
   var redraw = function() {
     Index.draw(document.getElementById("graph"), data, palette.read());
   }
 
+  var selector = document.getElementById("selector").getElementsByTagName("select")[0];
+  for (var idx in Samples.data) {
+    var entry = Samples.data[idx];
+    var option = document.createElement("option");
+    option.value = entry.id;
+    option.textContent = entry.title;
+    selector.appendChild(option);
+  }
+  selector.onchange = function() {
+    var id = selector.options[selector.selectedIndex].value;
+    var url = document.URL;
+    var qmIndex = url.indexOf("?");
+    if (qmIndex >= 0) {
+      url = url.substring(0, qmIndex);
+    }
+    url = url + "?sample=" + id;
+    for (var idx in variables) {
+      if (idx != "sample") {
+        url = url + "&" + idx + "=" + variables[idx];
+      }
+    }
+    window.location = url;
+  }
+  selector.selectedIndex = sampleIndex;
   var palette = new Palette();
   palette.create(document, document.getElementById("optionsPalette"));
   palette.write(sample.options);