tabs = function() {
	var options = ({
		containerID: null,
		tabsList: []
	}, arguments[0] || { });
	
	$.extend(this, options);
	
	this.els = [];
		
	this.setup();
};

tabs.prototype = {
	setup: function() {
		this.createDom();
	},
	
	createDom: function() {
		var parent = this;
		var selected = false;
		var container = $("<ul>").addClass("tabs").insertAfter("#"+this.containerID);
		$("#"+this.containerID).remove();
		$(this.tabsList).each(function() {
			var el = this;
			var state = (el.selected) ? "selected" : "";
			if(!selected && el.selected) {
				selected = el.selector;
			}
			var dummy = $("<li>").addClass(state).append($("<a>").html(el.name).click(function() {
				parent.onClick(this, el.selector);
			}));
			parent.els.push(dummy)
			container.append(dummy);
		});
		this.checkSelection(selected);
	},
	
	checkSelection: function(selector) {
		//console.log("checkSelection", selector);
		if(!selector) {
			try {
				this.els[0].addClass("selected");
				this.checkAreas(selector);
			} catch(e) {  }
		} else {
			this.checkAreas(selector);
		}
	},
	
	onClick: function(el, selector) {
		$(this.els).each(function() {
			$(this).removeClass("selected");
		});
		$(el).parent().addClass("selected");
		this.checkAreas(selector);
	},
	
	checkAreas: function(selector) {
		//console.log(selector);
		$(this.tabsList).each(function() {
			var el = this;
			if(el.selector != selector) {
				$(el.selector).slideUp("100");
			} else {
				$(el.selector).slideDown("300");
			}
		});
	}
};
