Index: /src/django_gheat/website/static/colorpicker.js
===================================================================
--- /src/django_gheat/website/static/colorpicker.js	(revision 9246)
+++ /src/django_gheat/website/static/colorpicker.js	(revision 9246)
@@ -0,0 +1,165 @@
+/**
+ * Really Simple Color Picker in jQuery
+ * 
+ * Copyright (c) 2008 Lakshan Perera (www.laktek.com)
+ * Licensed under the MIT (MIT-LICENSE.txt)  licenses.
+ * 
+ */
+
+(function($){
+  $.fn.colorPicker = function(){    
+    if(this.length > 0) buildSelector();
+    return this.each(function(i) { 
+      buildPicker(this)}); 
+  };
+  
+  var selectorOwner;
+  var selectorShowing = false;
+  
+  buildPicker = function(element){
+    //build color picker
+    control = $("<div class='color_picker'>&nbsp;</div>")
+    control.css('background-color', $(element).val());
+    
+    //bind click event to color picker
+    control.bind("click", toggleSelector);
+    
+    //add the color picker section
+    $(element).after(control);
+
+    //add even listener to input box
+    $(element).bind("change", function() {
+      selectedValue = toHex($(element).val());
+      $(element).next(".color_picker").css("background-color", selectedValue);
+    });
+    
+    //hide the input box
+    $(element).hide();
+
+  };
+  
+  buildSelector = function(){
+    selector = $("<div id='color_selector'></div>");
+
+     //add color pallete
+     $.each($.fn.colorPicker.defaultColors, function(i){
+      swatch = $("<div class='color_swatch'>&nbsp;</div>")
+      swatch.css("background-color", "#" + this);
+      swatch.bind("click", function(e){ changeColor($(this).css("background-color")) });
+      swatch.bind("mouseover", function(e){ 
+        $(this).css("border-color", "#598FEF"); 
+        $("input#color_value").val(toHex($(this).css("background-color")));    
+        }); 
+      swatch.bind("mouseout", function(e){ 
+        $(this).css("border-color", "#000");
+        $("input#color_value").val(toHex($(selectorOwner).css("background-color")));
+        });
+      
+     swatch.appendTo(selector);
+     });
+  
+     //add HEX value field
+     hex_field = $("<label for='color_value'>Hex</label><input type='text' size='8' id='color_value'/>");
+     hex_field.bind("keydown", function(event){
+      if(event.keyCode == 13) {changeColor($(this).val());}
+      if(event.keyCode == 27) {toggleSelector()}
+     });
+     
+     $("<div id='color_custom'></div>").append(hex_field).appendTo(selector);
+
+     $("body").append(selector); 
+     selector.hide();
+  };
+  
+  checkMouse = function(event){
+    //check the click was on selector itself or on selectorOwner
+    var selector = "div#color_selector";
+    var selectorParent = $(event.target).parents(selector).length;
+    if(event.target == $(selector)[0] || event.target == selectorOwner || selectorParent > 0) return
+    
+    hideSelector();   
+  }
+  
+  hideSelector = function(){
+    var selector = $("div#color_selector");
+    
+    $(document).unbind("mousedown", checkMouse);
+    selector.hide();
+    selectorShowing = false
+  }
+  
+  showSelector = function(){
+    var selector = $("div#color_selector");
+    
+    //alert($(selectorOwner).offset().top);
+    
+    selector.css({
+      top: $(selectorOwner).offset().top + ($(selectorOwner).outerHeight()),
+      left: $(selectorOwner).offset().left
+    }); 
+    hexColor = $(selectorOwner).prev("input").val();
+    $("input#color_value").val(hexColor);
+    selector.show();
+    
+    //bind close event handler
+    $(document).bind("mousedown", checkMouse);
+    selectorShowing = true 
+   }
+  
+  toggleSelector = function(event){
+    selectorOwner = this; 
+    selectorShowing ? hideSelector() : showSelector();
+  }
+  
+  changeColor = function(value){
+    if(selectedValue = toHex(value)){
+      $(selectorOwner).css("background-color", selectedValue);
+      $(selectorOwner).prev("input").val(selectedValue).change();
+    
+      //close the selector
+      hideSelector();    
+    }
+  };
+  
+  //converts RGB string to HEX - inspired by http://code.google.com/p/jquery-color-utils
+  toHex = function(color){
+    //valid HEX code is entered
+    if(color.match(/[0-9a-fA-F]{3}$/) || color.match(/[0-9a-fA-F]{6}$/)){
+      color = (color.charAt(0) == "#") ? color : ("#" + color);
+    }
+    //rgb color value is entered (by selecting a swatch)
+    else if(color.match(/^rgb\(([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])\)$/)){
+      var c = ([parseInt(RegExp.$1),parseInt(RegExp.$2),parseInt(RegExp.$3)]);
+      
+      var pad = function(str){
+            if(str.length < 2){
+              for(var i = 0,len = 2 - str.length ; i<len ; i++){
+                str = '0'+str;
+              }
+            }
+            return str;
+      }
+
+      if(c.length == 3){
+        var r = pad(c[0].toString(16)),g = pad(c[1].toString(16)),b= pad(c[2].toString(16));
+        color = '#' + r + g + b;
+      }
+    }
+    else color = false;
+    
+    return color
+  }
+
+  
+  //public methods
+  $.fn.colorPicker.addColors = function(colorArray){
+    $.fn.colorPicker.defaultColors = $.fn.colorPicker.defaultColors.concat(colorArray);
+  };
+  
+  $.fn.colorPicker.defaultColors = 
+	[ '000000', '993300','333300', '000080', '333399', '333333', '800000', 'FF6600', '808000', '008000', '008080', '0000FF', '666699', '808080', 'FF0000', 'FF9900', '99CC00', '339966', '33CCCC', '3366FF', '800080', '999999', 'FF00FF', 'FFCC00', 'FFFF00', '00FF00', '00FFFF', '00CCFF', '993366', 'C0C0C0', 'FF99CC', 'FFCC99', 'FFFF99' , 'CCFFFF', '99CCFF', 'FFFFFF'];
+  
+})(jQuery);
+
+
+
Index: /src/django_gheat/website/static/heatmap_extensions.js
===================================================================
--- /src/django_gheat/website/static/heatmap_extensions.js	(revision 9245)
+++ /src/django_gheat/website/static/heatmap_extensions.js	(revision 9246)
@@ -47,7 +47,11 @@
     lname = encodeURIComponent(document.getElementById("lname").value);
 
+    // HEX to RGB: http://stackoverflow.com/questions/5798868/need-some-tips-with-how-to-convert-a-hexadecimal-color-value-to-a-rgb-one/5798900#5798900
+    // '#' comes out as '%23', so substr() starts at char 3
+    colour = parseInt((colour.substr(3, 2)),16) + ',' + parseInt((colour.substr(5, 2)),16) + ',' + parseInt((colour.substr(7, 2)),16);
+
     if (user != ''){user='&meetrondje__gebruiker__naam='+user;}
     if (dataset != ''){dataset='&meetrondje__naam='+dataset;} 
-    if (wlnode != 'All'){wlnode='&accespoint__ssid='+wlnode;}
+    if (wlnode != ''){wlnode='&accespoint__ssid='+wlnode;}
 //    if (enc != ''){enc='&accespoint__encryptie='+enc;} 
 //    if (date != ''){date='&meetrondje__datum='+date;} 
Index: /src/django_gheat/website/static/style.css
===================================================================
--- /src/django_gheat/website/static/style.css	(revision 9245)
+++ /src/django_gheat/website/static/style.css	(revision 9246)
@@ -111,2 +111,43 @@
   color:#DDD;
 }
+
+
+/* Colorpicker */
+ 
+div.color_picker {
+  height: 16px;
+  width: 16px;
+  padding: 0 !important;
+  border: 1px solid #ccc;
+  background: url(img/arrow.gif) no-repeat top right;
+  cursor: pointer;
+  line-height: 16px;
+  z-index:2;
+  float:left;
+  margin-top:-3px;
+  margin-right:3px;
+}
+
+div#color_selector {
+  width: 110px;
+  position: absolute;
+  border: 1px solid #598FEF;
+  background-color: #EFEFEF;
+  padding: 2px;
+  z-index:2;
+}
+  div#color_custom {width: 100%; float:left }
+  div#color_custom label {font-size: 95%; color: #2F2F2F; margin: 5px 2px; width: 25%}
+  div#color_custom input {margin: 5px 2px; padding: 0; font-size: 95%; border: 1px solid #000; width: 65%; }
+
+div.color_swatch {
+  height: 12px;
+  width: 12px;
+  border: 1px solid #000;
+  margin: 2px;
+  float: left;
+  cursor: pointer;
+  line-height: 12px;
+  z-index:2;
+}
+
Index: /src/django_gheat/website/templates/home.html
===================================================================
--- /src/django_gheat/website/templates/home.html	(revision 9245)
+++ /src/django_gheat/website/templates/home.html	(revision 9246)
@@ -8,6 +8,10 @@
   <script type="text/javascript" language="javascript" src="{{ STATIC_URL }}jquery.chained.js"></script>
   <script type="text/javascript" language="Javascript" src="{{ STATIC_URL }}heatmap_extensions.js"></script>
+  <script type="text/javascript" language="Javascript" src="{{ STATIC_URL }}colorpicker.js"></script>
   <script language="javascript" type="text/javascript">
     $(function(){
+      // enable colorpicker
+      $('#colour').colorPicker();
+
       $('#menu_filter').click(function(){
         $('#filter').slideToggle('fast');
@@ -45,6 +49,6 @@
           <select id="select_dataset" style="width:104px"></select> Dataset<br />
           <select id="select_node" style="width:104px"></select> Node<br />
-          <input type="text" id="lname" name="lname" size="10"/> Layername<br />
-          <input type="text" id="colour" name="colour" size="10"/> Colour<br />
+          <input type="text" id="lname" name="lname" size="10"/> Layername<br /><br />
+          <input type="text" id="colour" name="colour"/> Colour<br /><br />
           <input type="button" id="add_filter" value="Add filter"/>
         </form>
