function UserList(param){
	SelectList.apply(this,arguments);
}
UserList.prototype = new SelectList();
$extend(UserList.prototype,{
	onComplete : function (text, xml){
		this.setSelectedIndex(-1);
		this.listItems = [];
		this.emptyGarbageCollect();
		var users = xml.getElementsByTagName('user');
		
		var l = users.length;
		if(l>0){
			while(this.holder.firstChild) this.holder.removeChild(this.holder.firstChild);//remove old nodes
			var table = document.createElement('table');
			var tbody = document.createElement('tbody');
			table.appendChild(tbody);
			var u;
			var i = -1;
			var idx = -1;
			while(++i<l){
				u = users.item(i).getAttribute('name');
				this.listItems[i] = u;
				var r = document.createElement('tr');
				var c1 = document.createElement('td');
				c1.appendChild(document.createTextNode(u));
				r.appendChild(c1);
				r.className = 'inactive';
				this.addItemEvent(r, 'mouseover', this.onMouseOverItem.bind(this, i));
				this.addItemEvent(r, 'mouseup', this.onMouseUpItem.bind(this, i));
				tbody.appendChild(r);
				if(idx < 0 && u.toLowerCase().indexOf(this.inputObj.value.toLowerCase()) == 0)idx = i;
			}
			this.holder.appendChild(table);
			this.setSelectedIndex(idx);
			this.showList();
		}else this.hideList();
	},
	getList : function (){	
		var u = this.inputObj.value;
		if(u.length>0){
			var qs = '&user_name='+encodeURIComponent(u);
			this.xhr.send(this.root_url+'services?&method=woophy.user.getUsersByName', qs);
		}else this.hideList();
	},
	onMouseUpItem : function (idx){
		this.dispatchEvent('onClickItem',(this.listItems[idx] ? this.listItems[idx] : null));
	}
});
