// qSimpleTabs v 1.0
// Semplice implementazione dei Tabs: specificando la lista dei pulsanti e dei relativi elementi contenuto
// gestisce il display esclusivo dei contenuti.
// TODO: spiegare meglio
/*
 * Formato della options:
 * {
 * 	'select' : 0,					// indice della tab che deve essere risultare selezionata, a default è 0 
	'tabsSelectedClass' : 'select'  // classe che indica che il tab è selezionato, sarà attribuito al <li> padre dell'anchor
 * }
 */
( function($) {
	$.fn.qSimpleTabs = function(options) {

		var currentSelectedContent,currentSelectedTab;
		var settings = {
			'select' : 0,
			'tabsSelectedClass' : 'select'
		};
		
		function attivaTab(event){
			// deseleziona la tab corrente e nasconde il contenuto corrente
			currentSelectedContent.hide();
			currentSelectedTab.removeClass(settings.tabsSelectedClass);
			// imposta i nuovi tab e contenuto correnti
			currentSelectedContent=$($(this).attr('href'));
			currentSelectedTab=$(this).parentsUntil('ul').filter('li');
			// seleziona la tab corrente e visualizza il contenuto corrente
			currentSelectedContent.show();
			currentSelectedTab.addClass(settings.tabsSelectedClass);
			// blocca il comportamento di default dell'anchor: seguire l'ancora
			return false;
		}
		
		return this.each( function() {
			if (options) {
				$.extend(settings, options);
			}
			
			// ciclo sui tab
			$(this).find('a[href^="#'+$(this).attr('id')+'"]').each( function(indexInArray, valueOfElement) {
				// associo l'handler di visualizzazione ai tab
				$(this).bind('click',attivaTab);				
				if (indexInArray!=settings.select) {
					// nascondo tutti i contenuti non selected
					$($(this).attr('href')).hide();
				} else {
					// imposto lo stato iniziale
					currentSelectedContent=$($(this).attr('href'));
					currentSelectedTab=$(this).parentsUntil('ul').filter('li');
					// evidenzio il tab selezionato 
					currentSelectedTab.addClass(settings.tabsSelectedClass);
				}
			});

		});

	};
})(jQuery);
