var keypresses = new Array();
var trail = new Array();

$(document).ready(function() {
  //$('body > div.sidebar').append('<hr /><div id="debug"><ul></ul>');

  monokeys = new Mono("html");
});

function Mono(element) {
  log("Mono starting");
  //$(element + ' .menu a').append("*");
  $(element + ' .menu a').each(function () {
    var patt = new RegExp("keypath=([^&]*)");
    var key = patt.exec(this['href']);
    if (key === null) {
      log("Invalid: " + this['href']);
    } else {
      var k = new Array();
      k[0] = this.text;
      k[1] = this['href'];
      k[2] = key[1].substr(key[1].length-1,1).charCodeAt(0);
      log(k[2]);
      //log (key[1].charCodeAt(0));
      keypresses.push(k);
    }
  });
  
  $(element).keyup(function(event) {
    //log("Keypressed was " + event.keyCode);

    for (x=0;x<keypresses.length;x++) {
      if (keypresses[x][2] == event.keyCode) {
        //log("Yay Got key for " + keypresses[x][0]);
        window.location = keypresses[x][1];
      }
    }
  });
  
  $('body > .trail a').each(function () {
    var k = new Array();
    k[0] = this.text;
    k[1] = this['href'];
    //log(k[0]);
    trail.push(k);
  });

  if (trail.length > 1) {
    log("pppp " + trail[trail.length - 2][0]);
    var k = new Array();
    k[0] = trail[trail.length - 2][0];
    k[1] = trail[trail.length - 2][1];
    k[2] = 188; // back key. 188 is comma. 13 is return    
    keypresses.push(k);
  }
}

function log(msg) {
  //$('#debug ul').append('<li>' + msg + '</li>');
}


