$(document).ready(function(){ 
  theme_objects=[];

  theme_objects[0] = {
    "bg_c" : "rgb(39,39,39)",   
    "bg_lh_c" : "rgb(60,60,60)",
    "sb_c" : "rgb(0,0,0)",
    "sb_t_c" : "rgb(160, 160, 160)",
    "c_c" : "rgb(255,255,255)",
    "pln_c" : "rgb(255, 236, 203)",
    "str_c" : "rgb(255,119,255)",
    "kwd_c" : "rgb(54,191,255)",
    "com_c" : "rgb(91,222,7)",
    "typ_c" : "rgb(61,168,237)",
    "lit_c" : "rgb(61,168,0)",
    "pun_c" : "rgb(255,236,203)",
    "tag_c" : "rgb(54,191,255)",
    "atn_c" : "rgb(255,255,0)",
    "atv_c" : "rgb(0,255,255)",
    "dec_c" : "rgb(61,168,237)",
    "font_size" : 16,
    "font" : "16px monospace"  
  };

  theme_objects[1] = {
    "bg_c" : "rgb(41, 32, 17)",   
    "bg_lh_c" : "rgb(61, 52, 37)",
    "sb_c" : "rgb(75, 73, 64)",
    "sb_t_c" : "rgb(216, 182, 55)",
    "c_c" : "rgb(68, 175, 242)",
    "pln_c" : "rgb(255, 255, 255)",
    "str_c" : "rgb(12,154,10)",
    "kwd_c" : "rgb(61,168,237)",
    "com_c" : "rgb(150,150,150)",
    "typ_c" : "rgb(61,168,237)",   
    "lit_c" : "rgb(61,168,0)",
    "pun_c" : "rgb(61,168,237)",
    "tag_c" : "rgb(61,168,237)",
    "atn_c" : "rgb(61,168,237)",
    "atv_c" : "rgb(12,154,10)",
    "dec_c" : "rgb(61,168,237)",
    "font_size" : 16,
    "font" : "16px monospace"
  };

  theme_objects[2] = {
    "bg_c" : "rgb(255, 255, 255)",   
    "bg_lh_c" : "rgb(230, 255, 255)",
    "sb_c" : "rgb(128, 128, 128)",
    "sb_t_c" : "rgb(255, 255, 255)",
    "c_c" : "rgb(0, 0, 0)",
    "pln_c" : "rgb(0, 0, 0)",
    "str_c" : "rgb(0, 128, 0)",
    "kwd_c" : "rgb(0, 0, 128)",
    "com_c" : "rgb(100,100,100)",
    "typ_c" : "rgb(61,168,237)",
    "lit_c" : "rgb(61,168,0)",
    "pun_c" : "rgb(0, 0, 0)",
    "tag_c" : "rgb(0, 0, 128)",
    "atn_c" : "rgb(180, 83, 0)",
    "atv_c" : "rgb(128, 0, 0)",
    "dec_c" : "rgb(0,0,128)",
    "font_size" : 16,
    "font" : "16px monospace"  
  };


  for(var k=0;k<extra_height_ids.length;k++){
    extra_height_param+=$(extra_height_ids[k]).height();
  }

  constructorizer = new Constructorizer($("div.editor pre"),$("div.editor"),extra_height_param,theme_objects[0]);
              
  $(document).keydown(function (e){
    if(constructorizer.has_focus){
      var code = (e.keyCode ? e.keyCode : e.which);
      constructorizer.keyDown(code,e);
      return false;
    }
  });
              
  $(document).keyup(function (e){
    if(constructorizer.has_focus){
      var code = (e.keyCode ? e.keyCode : e.which);
      constructorizer.keyUp(code,e); 
      return false;
    }
  });
              
  $("#canvas").mousedown(function(e){
    e.stopPropagation();
    if(!constructorizer.has_focus){
      constructorizer.startDrawLoop();
    }
    constructorizer.has_focus = true;
    var x = e.pageX - $("#canvas").offset().left;
    var y = e.pageY - $("#canvas").offset().top;
    if(e.which==1){
      constructorizer.leftClick(x,y);
    } 
    else if(e.which==3){

    }
  });
              
  $('body').mousedown(function() {
    constructorizer.has_focus = false;
    constructorizer.stopDrawLoop();
  });
            
});

