// {{{ Selector
function Selector(node){
	if (typeof node !== "object") {
		node = document.getElementById(node);
	}
	this.node = node;
	this.items = [];
	this.init();
	this.selected = 0;
}

Selector.prototype.init = function(){
	if (!this.node) return;
	
	var tmp = this.node.getElementsByTagName("li");
	var _self = this;
	for(var i = 0; i < tmp.length; i++){
		this.items[i] = tmp[i];
		tmp[i].onclick = function(num){
			return function() {
				_self.itemClick(num);
			}
		}(i);
	}
}

Selector.prototype.itemClick = function(num){
	this.select(num);
}

Selector.prototype.setItemState = function(num, isSelected) {
	if (typeof this.items[num] != "undefined") {
		//this.items[num].className = isSelected ? "selected" : "";
		if (isSelected) {
			if (!this.items[num].className.match(/\bselected\b/)) {
				this.items[num].className += " selected";
			}
		} else {
			this.items[num].className = this.items[num].className.replace(/\s?\bselected\b/g, "");
		}
	}
}

Selector.prototype.select = function(num){
	this.setItemState(this.selected, false);
	this.setItemState(num, true);
    this.selected = num;
}

// }}}