(function($) {
	 $.fn.extend({ 
        simpleTabs: function(params) {
			
			
			this.params = {
				selectedClassName : 'selected',
				tabContentSelector: 'div.tabContent'
			}
					
			this.params = jQuery.extend(true, this.params, params);
			
			var simpleTabs = this;
			var element = $(this);
			this.tabContainer = element.find('ul').first();
			this.tabElements = this.tabContainer.find('li');
			
			this.isAnyTabSelected = function() {
				simpleTabs.tabElements.each(function(){
					if($(this).hasClass(simpleTabs.params.selectedClassName)) {
						return true;
					}
					return false;
				})
			}
			
			/**
			* select tab by index
			*/
			this.selectTab = function(index) {
				this.unselectAllTabs();
				this.getTab(index).addClass(simpleTabs.params.selectedClassName);
				this.showTabContent(index);
			}
			
			this.hideAllTabContent = function() {
				element.find(simpleTabs.params.tabContentSelector).hide();
			}
			
			this.showTabContent = function(index) {
				this.hideAllTabContent();
				var content = element.find(simpleTabs.params.tabContentSelector).eq(index).show();
			}
			
			/**
			* unselect all tabs
			*/
			this.unselectAllTabs = function() {
				this.tabElements.removeClass(simpleTabs.params.selectedClassName);
			}
			
			/**
			* returns tab element object by index
			*/
			this.getTab = function(index) {
				return simpleTabs.tabElements.eq(index);
			}
			
			/**
			* Select first tab if no tab is selected 
			*/
			if(!this.isAnyTabSelected()) {
				this.selectTab(0);
			}
			
			/**
			* bind click on tab elements
			*/
			simpleTabs.tabElements.click(function(){
				var actualElement = $(this);
				simpleTabs.selectTab(simpleTabs.tabElements.index(this));
				return false;
			});
			
		}
	})
})(jQuery);
