/**
 * Idetia Tabs
 * Autor: Luis Íñiguez
 * Web: www.idetia.es
 * E-Mail: luis[a]idetia.es
 * Descripción: Script que genera un sistema de solapas
 * partiendo de una determinada estructura HTML
 */
 
 /**
 * Una vez cargado el DOM de la página, procesa todos los contenedores que
 * posean el selector "tTabsBlock" 
 */
window.addEvent('domready', function() {
	var tTabContents = $$('.tTabsBlock');
	tTabContents.each(function(oTabContent, i){
		displayTabs(oTabContent);
	});	
});

/**
 * Función que reajusta los elementos HTML para adaptarlos a un sistema de solapas
 * @oTabContent: elemento contenedor donde se generarán las solapas 
 */
 
 
 function BrilloIn(obj,valor) {
	obj.style.opacity = valor/100; 
	obj.style.filter = 'alpha(opacity=' + valor + ')'; 
}

 
function displayTabs(oTabContent){

	var tTabsTitle = oTabContent.getElements('.tTabTitle');
	var tTabsData = oTabContent.getElements('.tTabData');
	var tTabsStatus = new Array();
	
	if(oTabContent.childNodes.length>0){
		var oTabContentFirstChild = oTabContent.childNodes[0];
		tTabsTitle.each(function(oTabTitle, i){
			tTabsStatus[i] = (oTabTitle.parentNode.className == "tTabOff")?"Off":"On";
			oTabTitle.className = "tTabTitle tTabTitle_" + (i+1) + " tTabTitle" + tTabsStatus[i];
			oTabContent.insertBefore(oTabTitle, oTabContentFirstChild);
			setTabEvents(oTabTitle, i, tTabsTitle, tTabsData, tTabsStatus);
			if(tTabsStatus[i]=="Off") tTabsData[i].parentNode.style.display = "none";
		});	

		oTabContent.style.display = "block";
	}	
}

/**
 * Función encargada de asignar los diferentes eventos a cada solapa
 * @oTabTitle: elemento título a procesar 
 * @i: índice
 * @tTabsTitle: array que contiene todo los elementos 'tTabTitle'
 * @tTabsData: array que contiene todo los elementos 'tTabsData'
 * @tTabsStatus: array que contiene los estados actuales de cada solapa
 */
function setTabEvents(oTabTitle, i, tTabsTitle, tTabsData, tTabsStatus){
	oTabTitle.addEvents({
		'mouseover': function(e) {
				if(tTabsStatus[i]=="Off") 
					oTabTitle.className = "tTabTitle tTabTitleOver tTabTitle_" + (i+1) + " tTabTitle" + tTabsStatus[i];
			},
		'mouseout': function(e) {
				if(tTabsStatus[i]=="Off") 
					oTabTitle.className = "tTabTitle tTabTitleOut tTabTitle_" + (i+1) + " tTabTitle" + tTabsStatus[i];
			},				
		'mouseup': 	function(e) {
				tTabMute(oTabTitle, tTabsTitle, tTabsData, tTabsStatus);
			}
	});
}

/**
 * Función encargada de ocultar/mostrar las solapas
 * @eTabTitle: elemento título a procesar 
 * @tTabsTitle: array que contiene todo los elementos 'tTabTitle'
 * @tTabsData: array que contiene todo los elementos 'tTabsData'
 * @tTabsStatus: array que contiene los estados actuales de cada solapa
 */
function tTabMute(eTabTitle, tTabsTitle, tTabsData, tTabsStatus){
	tTabsTitle.each(function(oTabTitle, i){
		if(eTabTitle==oTabTitle){
			tTabsStatus[i] = "On";
			oTabTitle.className = "tTabTitle tTabTitle_" + (i+1) + " tTabTitle" + tTabsStatus[i];
			tTabsData[i].parentNode.style.display = "block";
		}else{
			tTabsStatus[i] = "Off";
			oTabTitle.className = "tTabTitle tTabTitle_" + (i+1) + " tTabTitle" + tTabsStatus[i];
			tTabsData[i].parentNode.style.display = "none";
		}		
	});	
}


function BrilloIn(obj,valor) {
	obj.style.opacity = valor/100; 
	obj.style.filter = 'alpha(opacity=' + valor + ')'; 
}

