/**
 * Esse arquivo fornece algumas funções de uso geral, como toggle_next, que faz desaparecer o elemento seguinte
 */


//ao clicar em algum elemento com classe toggle_next ele some ou mostra o elemento seguinte
function toggle_next(){
	$('.toggle_next').click(function(){
		$(this).nextAll('.toggle:first').slideToggle('fast');
		$(this).toggleClass('exibindo');
		return false;
	});
}

//ao clicar em algum elemento com classe toggle_prev ele some ou mostra o primeiro elemento anterior .toggle
function toggle_prev(){
	$('.toggle_prev').click(function(){
		$(this).prevAll('.toggle:first').toggle('fast');
		return false;
	});
}

//ao selecionar um radio ele faz um toggle no próximo elemento .toggle
function toggle_next_radio(){
	$('.toggle_next_radio').change(function(){
		$(this).nextAll('.toggle:first').slideToggle('fast');
	});	
}

/* FUNÇÃO com nome horrível que funciona da seguinte maneira: tu cria um div com classe toggle_next_radio_serie.
Dentro dele você coloca duas coisas: radios e um elemento classe toggle. Quando rolar um change no radio, 
ele faz um toggle no elemento classe toggle. 
*/
function toggle_next_radio_serie(){
    $('input:radio', '.toggle_next_radio_serie').each(function(e){
        $(this).change(function(){
            var pai = $(this).parents('.toggle_next_radio_serie')
            $('.toggle:first', pai).toggle('fast');
        });
    })
    
}


/*essa função é de uso mais raro e é meio complicado de usála. Mas nada muito difícil. 
A demanda era a seguinte: eu tinha quatro radios e quando o cara clicasse em dois deles era pra mostrar coisas distintas e quando
clicasse em outros dois era pra esconder tudo. É preciso então identificar os radios que mandam abrir coisas
Pra isolá-los, é preciso deixar todos os radios da sequência dentro de um elemento .radio_multiple
Também é preciso colocar um atributo action="mostra" no radio que mostra. Sei que o Cauê não gosta, mas paciência, não vi
jeito melhor de fazer isso.
*/
function toggle_next_radio_multiple(){
	$('.toggle_next_radio_multiple').change(function(){
	
		var pai = $(this).parents('.radio_multiple');
		$('.toggle', pai).hide('fast');
		if($(this).attr('action') == 'mostra'){
			$(this).nextAll('.toggle:first').show('fast');
		}
									
	});	
}

/*esse funciona com select. Você aplica a classe .toggle_next_select no select. E no option que deve mostrar
algo você coloca action="mostra"
*/
function toggle_next_select(){
	$('.toggle_next_select').change(function(){
		if($('option:selected', this).attr('action') == 'mostra'){
			$(this).nextAll('.toggle:first').show('fast');
		}else{
			$(this).nextAll('.toggle:first').hide('fast');
		}								
	});	
}


