onchange : function (NODE, TREE_OBJ) { 
  var $this = $(NODE).is("li") ? $(NODE) : $(NODE).parent();
  if($this.children("a.unchecked").size() == 0) {
    TREE_OBJ.container.find("a").addClass("unchecked");
  }
  $this.children("a").removeClass("clicked");
  if($this.children("a").hasClass("checked")) {
    $this.find("li").andSelf().children("a").removeClass("checked").removeClass("undetermined").addClass("unchecked");
    var state = 0;
  }
  else {
    $this.find("li").andSelf().children("a").removeClass("unchecked").removeClass("undetermined").addClass("checked");
    var state = 1;
  }
  $this.parents("li").each(function () { 
    if(state == 1) {
      if($(this).find("a.unchecked, a.undetermined").size() - 1 > 0) {
        $(this).parents("li").andSelf().children("a").removeClass("unchecked").removeClass("checked").addClass("undetermined");
        return false;
      }
      else $(this).children("a").removeClass("unchecked").removeClass("undetermined").addClass("checked");
    }
    else {
      if($(this).find("a.checked, a.undetermined").size() - 1 > 0) {
        $(this).parents("li").andSelf().children("a").removeClass("unchecked").removeClass("checked").addClass("undetermined");
        return false;
      }
      else $(this).children("a").removeClass("checked").removeClass("undetermined").addClass("unchecked");
    }
  });
}
