var hilite_colour = "#dcdcdc";
var default_colour_1 = "#F5F5F5";
var default_colour_2 = "#ffffff";

function doHilite(obj){
  var allElements = getElementsByClass("ruler");
  var elem = obj.currentTarget;
  var type = elem.getAttribute("currency");
  elem.style.backgroundColor = "green";//hilite_colour;
  for(var i = 0; i < allElements.length; i++){
    if(allElements[i].getAttribute("currency") == type)
      allElements[i].style.backgroundColor = hilite_colour;
  }
}

function undoHilite(obj){
  var allElements = getElementsByClass("ruler");
  var elem = obj.currentTarget;
  var type = elem.getAttribute("currency");
  elem.style.backgroundColor = elem.getAttribute("default_colour");
  for(var i = 0; i < allElements.length; i++){
    if(allElements[i].getAttribute("currency") == type)
      allElements[i].style.backgroundColor = allElements[i].parentNode.getAttribute("default_colour");
  }
}

function autoColour(){
  var allTrs = getElementsByClass("hilite");
  for(var i =0; i < allTrs.length; i++){
    allTrs[i].style.backgroundColor = (i % 2 != 0 ? default_colour_1 : default_colour_2);
    allTrs[i].setAttribute("default_colour", (i % 2 != 0 ? default_colour_1 : default_colour_2));
  }
}

listen("load", window, function(){
  mlisten("mouseover", getElementsByClass("ruler"), doHilite);
  mlisten("mouseout", getElementsByClass("ruler"), undoHilite);
  autoColour();
});

// simply assign all elements to be treated with class='ruler'