/*
	FaxinaR
	Por Marco Gomes e Walter Cruz
	Copyleft CC Attribution Share Alike Brazil
	http://creativecommons.org/licenses/by-sa/2.5/br/

	Resources:
		http://vocesa.abril.uol.com.br/aberto/online/022002/1308_1.shl
		http://www.cedepe.com.br/comunidade/index.php?option=com_content&task=view&id=82&Itemid=31
*/
virgem = new Boolean(true);
$(function(){
	
	$('#loading').fadeOut('fast');
	$('#result').fadeOut('fast');
	
	$.configLinks();
	
	// configura o envio e recebimento de dados via AJAH
	// enorme fila de animacoes
	// ao enviar o formulario
	$('#send-text').submit(function(){
		if(!virgem)
		{
			$('#result').fadeOut('fast');
		}
		// esconde o botao
		$('#button-analisar').fadeOut('fast', function(){
			// mostra o grafico de loading
			$('#loading').fadeIn('fast', function(){
				// pega o valor inserido pelo usuario
				var userText = $('#user-text').val();
				// envia para o processador
				$.post( 'faxina.php'
				, {texto: escape(userText) }
				, function(data){
					// quando carregou, insere os dados no campo de resultado
					$('#result').html( data );
					// configura as acoes dos elementos que estao no resultado
					$.configResult();
					// esconde o grafico de loading
					$('#loading').fadeOut('fast', function(){
						// mostra o botao
						$('#button-analisar').fadeIn('fast', function(){
							// mostra o resultado pro usuario
							$('#result').fadeIn(1000);
							$.configDefinicoes();
							virgem = false;
						});
					});
				});
			});
		});
		return false;
	});
});


jQuery.configResult = function()
{
	jQuery.configLinks();
	
	// configura o botao de listar termos
	/*jQuery('#listar-termos').click(function(){
		jQuery('#lista-termos').toggle('fast');
	});*/
	
	// configura os links pra serem contados como pesquisas Google no AdSense =)
	jQuery('#lista-termos > li > a').click(function(){
		// pega o valor do elm <a>
		var q = jQuery(this).text();
		// seta o valor de q no input da busca
		jQuery('#sbi').val(q);
		// dispara a busca
		jQuery('#google-search').submit();
		// mata o link, he he he
		return false;
	});
}

jQuery.configLinks = function()
{
	// percorre os links colocando target blank (eu sou malvado)
	jQuery('a').attr('target', 'blank');
}

// define as pesquisas
jQuery.configDefinicoes = function()
{
	jQuery('#google-search').submit(function(){
		var q = $('#sbi').val();
		q = q.cutSpecificStart('define: ');
		// seta o 'define: ' para a busca Google
		jQuery('#sbi').val('define: ' + q);
	});
	
	jQuery('#wikipedia').click(function(){
		var q = jQuery('#sbi').val();
		q = q.cutSpecificStart('define: ');
		jQuery('#sbi').val(q);
		
		var beginURI = 'http://pt.wikipedia.org/wiki/Especial:Search?search=';
		var endURI = '&fulltext=Pesquisa';
		window.open( beginURI + q + endURI );
	});
	
	jQuery('#wikidicionario').click(function(){
		var q = jQuery('#sbi').val();
		q = q.cutSpecificStart('define: ');
		jQuery('#sbi').val(q);
		
		var beginURI = 'http://pt.wiktionary.org/w/index.php?title=Special%3ASearch&search=';
		var endURI = '&fulltext=Pesquisa';
		window.open( beginURI + q + endURI );

	});
	
	jQuery('#sbi').focus(function(){
		var q = jQuery(this).val();
		q = q.cutSpecificStart('define: ');
		jQuery(this).val(q);
	});
}

// checa se uma var comeca com 'filter'
// se tiver, retira e retorna o novo valor
// se nao tiver, retorna a original
String.prototype.cutSpecificStart = function(filter)
{
	var length = filter.length;
	// pega o valor dos primeiros caracteres
	var begin = this.substring(0,length);
	var val = this;
	if(begin == filter)
	{
		// corta o pedaco inicial
		val = this.substring(length);
	}
	return val;
}