Tabs = function() {
	var options = ({
		container: null,
		innerDom: '{content}',
		structure: [{
			id: null,
			name: null,
			selected: false,
			style: null
		}]		
	}, arguments[0] || { });
	
	jQuery.extend(this, options);

	this.setup();
};

Tabs.prototype = {
	setup: function() {
		this.createDom();
	},
	
	createDom: function() {
		if(this.container) {
			var container = $("#"+this.container);
		} else {
			var container = document.createElement('ul');
			container.className = "tabs";
			try {
				$($('#'+this.structure[0].id)[0].parentNode.parentNode).append(container);
			} catch(error) {
				throw(error);
			}
		}
		for(var i=0;i<this.structure.length;i++) {
			if($('#'+this.structure[i])) {
				//$('#'+this.structure[i].id).addClass('hide');
				
				var tab = $('<li>').data('value', i);	
				if(this.structure[i].selected) {
					$(tab).addClass('selected');
					$('#'+this.structure[i].id).removeClass('hide');
				}
				$(tab).addClass(this.structure[i].style);
				tab.click(function() {
					if(!$(this).hasClass('selected')) {
						var dummy = $(this)[0].parentNode.childNodes;
						for(var j=0;j<dummy.length;j++){
							if($(dummy[j]).hasClass('selected')) {
								$(dummy[j]).removeClass('selected');
								$('#'+tabs.structure[$($(dummy[j])[0]).data('value')].id).addClass('hide');
							}
						}
						$(this).addClass('selected');
						$('#'+tabs.structure[$(this).data('value')].id).removeClass('hide');
					}
			    });
				tab.hover(
					function () {
						$(this).addClass("hover");
					},
					function () {
						$(this).removeClass("hover");
					}
				);
				
				if(this.innerDom) {
					var innerDomTemp = this.innerDom.split('{content}');
				} else {
					var innerDomTemp = ['',''];
				}				
				
				tab.html(innerDomTemp[0]+this.structure[i].name+innerDomTemp[1]);
				$(container).append(tab);
			}
		}		
	}
};

