old_contents: /*
  Mif.Tree.Selection
  */
  Mif.Tree.implement({
  	
  	initSelection: function(){
  		this.defaults.selectClass='';
  		this.wrapper.addEvent('mousedown', this.attachSelect.bindWithEvent(this));
  	},
  	
  	attachSelect: function(event){
  		if(!['icon', 'name', 'node'].contains(this.mouse.target)) return;
  		var node=this.mouse.node;
  		if(!node) return;
  		this.select(node);
  	},
  	
  	select: function(node, preventFocus) {
  		if(!preventFocus && Browser.Engine.gecko) {
  			this.wrapper.focus();
  		}
  		var current=this.selected;
  		if (current==node) return this;
  		if (current) {
  			current.select(false);
  			this.fireEvent('unSelect', [current]).fireEvent('selectChange', [current, false]);
  		}
  		this.selected = node;
  		node.select(true);
  		this.fireEvent('select', [node]).fireEvent('selectChange', [node, true]);
  		return this;
  	},
  	
  	unselect: function(){
  		var current=this.selected;
  		if(!current) return this;
  		this.selected=false;
  		current.select(false);
  		this.fireEvent('unSelect', [current]).fireEvent('selectChange', [current, false]);
  		return this;
  	},
  	
  	getSelected: function(){
  		return this.selected;
  	},
  	
  	isSelected: function(node){
  		return node.isSelected();
  	}
  	
  });
  
  Mif.Tree.Node.implement({
  		
  	select: function(state) {
  		this.state.selected = state;
  		var wrapper=this.getDOM('wrapper');
  		wrapper[(state ? 'add' : 'remove')+'Class'](this.selectClass||'mif-tree-node-selected');
  	},
  	
  	isSelected: function(){
  		return this.state.selected;
  	}
  	
  });
  
new_contents: /*
  Mif.Tree.Selection
  */
  Mif.Tree.implement({
  	
  	initSelection: function(){
  		this.defaults.selectClass='';
  		this.wrapper.addEvent('mousedown', this.attachSelect.bindWithEvent(this));
  	},
  	
  	attachSelect: function(event){
  		if(!['icon', 'name', 'node'].contains(this.mouse.target)) return;
  		var node=this.mouse.node;
  		if(!node) return;
  		this.select(node);
  	},
  	
  	select: function(node, preventFocus) {
  		if(!preventFocus && (Browser.Engine.gecko||Browser.Engine.webkit)) {
  		alert('kit');
  			this.wrapper.focus();
  		}
  		var current=this.selected;
  		if (current==node) return this;
  		if (current) {
  			current.select(false);
  			this.fireEvent('unSelect', [current]).fireEvent('selectChange', [current, false]);
  		}
  		this.selected = node;
  		node.select(true);
  		this.fireEvent('select', [node]).fireEvent('selectChange', [node, true]);
  		return this;
  	},
  	
  	unselect: function(){
  		var current=this.selected;
  		if(!current) return this;
  		this.selected=false;
  		current.select(false);
  		this.fireEvent('unSelect', [current]).fireEvent('selectChange', [current, false]);
  		return this;
  	},
  	
  	getSelected: function(){
  		return this.selected;
  	},
  	
  	isSelected: function(node){
  		return node.isSelected();
  	}
  	
  });
  
  Mif.Tree.Node.implement({
  		
  	select: function(state) {
  		this.state.selected = state;
  		var wrapper=this.getDOM('wrapper');
  		wrapper[(state ? 'add' : 'remove')+'Class'](this.selectClass||'mif-tree-node-selected');
  	},
  	
  	isSelected: function(){
  		return this.state.selected;
  	}
  	
  });
  
subject: fix key nav for google chrome