function inicializaPestanas(data){
	/* Diccionario de parámetros */
	/*
	data = {
		pestanas: selector del contenedor de las pestañas,
		contenido: selector del contenedor del contenido de las pestañas,
		item_activo: selector de la pestaña individual (si no se indica será el propio link),
		class_activo: clase que se le asigna a una pestaña cuando está activa,
		before: función que se ejecuta antes de cambiar de pestaña,
		after: función que se ejecuta al terminar de cambiar de pestaña,
	}
	*/
	
	jQuery(data.pestanas + ' a').click(function(){
		cambiaPestana(this, data);
		return false;
	});
}

function cambiaPestana(obj, data){
	/* Obtenemos el índice de la pestaña clicada */
	var idx = jQuery(obj)
		.parentsUntil(data.pestanas)
		.prevAll()
		.length;
	
	/* Selector de la ficha activa */
	var selFichaAct = ':eq(' + idx + ')';
	
	/* Selector del contenido a activar */
	var fichaAct = jQuery(data.contenido).children(selFichaAct);
	
	/* Si esa ficha no está visible */
	if(jQuery(fichaAct).is(':hidden')){
		/* Before... */
		if(typeof data.before == 'function'){
			data.before(obj, data);
		}
		
		/* Cambiamos estado de la pestaña */
		var selItem = typeof data.item_activo != 'undefined'?
			data.item_activo : 'a';
		var itemsPestanas = jQuery(data.pestanas).find(selItem);
		jQuery(itemsPestanas).filter(selFichaAct).addClass(data.class_activo);
		jQuery(itemsPestanas).not(selFichaAct).removeClass(data.class_activo);
		
		/* Selector de los contenidos a desactivar */
		var fichasDes = jQuery(data.contenido)
			.children()
			.not(selFichaAct);
		
		/* Ocultamos fichas activas */
		jQuery(fichasDes).hide();
		
		/* Mostramos ficha solicitada */
		jQuery(fichaAct).fadeIn(function(){
			/* After */
			if(typeof data.after == 'function'){
				data.after(obj, data);
			}
		});
		
		/* Scroll */
		jQuery.scrollTo(data.pestanas);
	}
}

