$(document).ready(function() {
	
	/*
	 * formulario de busca lateral
	 */
	$('#busca').each(function() {
		$(this).focus(function(){
			if($('#busca').val().match(/busca/i)){
				$('#busca').val('');
			};
		});
		
		$(this).blur(function(){
			if($('#busca').val() == ""){
				$('#busca').val("busca");
				$('#busca_resultado').hide();
			}
		});
		
	});	
	
	/*
	 * Carrega a busca da pagina
	 */
	try {
		loadSearch();
	} catch(e) {}
});

var currPage = 1;
var noResults = false;
var buscas = 0;

$(function() {
	if($('.slider').jCarouselLite) {
		$(".slider").jCarouselLite({
			btnNext: ".next",
			btnPrev: ".prev",
			visible: 6,
			auto: 3000,
			speed: 1000
		});
	}
});

/**
 * A busca ajax do Google eh inicializada
 * @return <object> control
 */
function loadSearch() {	
	/* Objetos de configuracao */
	var search = new google.search.WebSearch(), 
	control = new google.search.SearchControl(),
	container = $('#busca_resultado');
	
	container.hide();
	
	control.setResultSetSize(google.search.Search.LARGE_RESULTSET);
	
	/* Restringe a busca a um determinado site */
	search.setSiteRestriction('escolaproarte.com.br');
	
	/* Adiciona o objeto de configuracao da busca ao controle */
	control.addSearcher(search);
	/* String de resultados nao encontrados */
	control.setNoResultsString('Nenhum resultado encontrado.');
	/* Callback da busca */
	control.setSearchStartingCallback(this, beginSearch);
	/* Callback da busca (o qual ira mostrar os resultados na tela) */
	control.setSearchCompleteCallback(this, completeSearch);
	/* Metodo .draw() tem que ser declarado, mesmo que ele nao seja utilizado para mostrar os resultados */
	control.draw(null);
	
	/* Da um 'bind' no campo de busca */
	$('#busca').keydown(function(e){
		var val = $(this).val();
		var code = (e.keyCode ? e.keyCode : e.which);
		if (code == '13') {
			control.execute(val);
			return false;
		}
	});
	
	$('#busca').keyup(function() {
		var val = $(this).val();
		if(val.length>=3) {
			control.execute(val);
		} else {
			$('#busca_resultado').hide();
		}
	});
	
	$('#botaoBusca').click(function() {
		var val = $('#busca').val();
		control.execute(val);
	});
}

/**
 * Funcao auxiliar que conta quantas buscas paralelas estao sendo efetuadas
 */
function beginSearch() {
	++buscas;
}

/**
 * Desenha o resultado da busca na tela
 * @param sc
 * @param searcher
 * @return
 */
function completeSearch(sc, searcher) {
	var results,i,j,page,perPage,resultado,container,prettyPhoto,pagination;
	
	/* Se varias buscas estao sendo executadas, espero ate haver somente uma ativa */
	if(buscas > 1) {
		--buscas;
		return;
	}
	
	currPage = 1;
	buscas = 0;
	page = 1;
	perPage = 3;
	container = $('#busca_resultado');
	
	/* Verifica se existe algum resultado, caso contrario imprime mensagem de aviso e sai da funcao */
	if(searcher && searcher.results && searcher.results.length > 0) {
		results = searcher.results;
		clearTimeout(noResults);
	} else {
		container.html('Nenhum resultado encontrado.');
		container.show();
		noResults = setTimeout('$("#busca_resultado").hide()', 2000);
		return;
	}
	
	resultado = '<div class="buscaResultadoContainer aright"><a onclick="return clearSearch();" class="close right"></a></div>';
	prettyPhoto = '';
	for(i in results) {
		if(results[i].unescapedUrl.indexOf('iframe=') > -1) {
			prettyPhoto = 'rel="prettyPhotoSearch"';
		} else {
			prettyPhoto = '';
		}
		resultado += '<div class="buscaResultadoContainer result page'+page+' nodisplay">';
		resultado += '<a href="'+results[i].unescapedUrl+'" '+prettyPhoto+'>'+results[i].title+'</a>';
		resultado += '<p>'+results[i].content+'</p>';
		resultado += '</div>';
		
		//muda de pagina se necessario
		j = parseInt(i);
		if(results[j+1] && (j+1)%perPage == 0) {
			page++;
		}
	}
	
	//constroi a paginacao
	pagination = '';
	if(page > 1) {
		pagination += '<div class="buscaResultadoContainer pagination">';
		for(i=1; i<(page+1); i++) {
			pagination += '<div class="left mleft5 mright5">';
			if(i == currPage) {
				pagination += '<a onclick="return showSearch($(this), '+i+');" class="ativo"><b>'+i+'</b></a>';
			} else {
				pagination += '<a onclick="return showSearch($(this), '+i+');">'+i+'</a>';
			}
			pagination += '</div>';
		}
		pagination += '<div class="clear"></div>';
		pagination += '</div>';
		resultado += pagination;
	}
		
	container.html(resultado);
	container.show();
	container.find('.page1').show();
	
	$("a[rel='prettyPhotoSearch']").prettyPhoto({
		show_title: false,
		theme: 'light_rounded'
		});
}

function showSearch(obj, page) {
	var ativo = $('#busca_resultado .pagination .ativo');
	ativo.html(ativo.text());
	ativo.removeClass('ativo');
	obj.html('<b>'+obj.text()+'</b>');
	obj.addClass('ativo');
		
	$('#busca_resultado .buscaResultadoContainer.result').hide();
	$('#busca_resultado .buscaResultadoContainer.page'+page).show();	
	return false;
}

/**
 * Limpa a div dos resultados da busca ao perder o foco
 */
function clearSearch() {
	$("#busca_resultado").empty().hide();
	return false;
}

try {
	//Carrega a busca ajax. Deve ficar para fora do 'document.ready' ou a pagina tera problemas para carregar.
	google.load("search", "1", {"nocss" : true});
} catch(e) {}
