docs: function init() {
  		if (!needsInit)
  			return;
  		element = $("<div class='ac_outer'><div class='ac_inner'></div></div>")
  		.hide()
  		.addClass(options.resultsClass)
  		.css("position", "absolute")
  		.appendTo(document.body);
  
  		list = $("<ul/>").appendTo(element.find(".ac_inner")).mouseover( function(event) {
  			if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
  	            active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
  			    $(target(event)).addClass(CLASSES.ACTIVE);
  	        }
  		}).click(function(event) {
              if (isTreeControlHit(event)) {
                  expandCollapseTree(event);
                  input.focus();
              } else {
  			    $(target(event)).addClass(CLASSES.ACTIVE);
  			    select();
  			// TODO provide option to avoid setting focus again after selection? useful for cleanup-on-focus
  			    input.focus();
              }
              return false;
  		}).mousedown(function(event) {
  			config.mouseDownOnSelect = true;
  
              if(isTreeControlHit(event)){
                  config.isTreeControlHit = true;
                  input.click();
              } else {
                  config.isTreeControlHit = false;
                  input.click();
                  select();
              }
  		}).mouseup(function() {
  			config.mouseDownOnSelect = false;
  		});
  
  		if( options.width > 0 )
  			element.css("width", options.width);
  
  		needsInit = false;
  	}