//	HOME
var	OLD;
function jSlide(ID, NUM)
{
	OLD			= (!OLD) ? '0' : OLD;
	var X 		= [0, '-115px', '-210px'];
	
	if(OLD != NUM)
	{
		var ACTION	= ['destino', 'hospedagens', 'tempo'];
		var TARGET	= ['_self', '_self', '_blank'];
		var SIZE	= 220;
		var LOCAL	= SIZE * NUM;
		
		$('div#SLIDES div').stop().animate({ marginTop: '-'+LOCAL+'px' }, 'slow');

		$('a#LINK_'+NUM).css( {backgroundPosition: X[NUM]+' -31px'} );
		$('a#LINK_'+OLD).css( {backgroundPosition: X[OLD]+' 0'} );
	
		$('form#fm_bsc').attr('target', TARGET[NUM]);
		$('form#fm_bsc').attr('action', ACTION[NUM]+'.php');
		OLD = NUM;
	}
}

//	GATAS
var sldOLD = 0;
function jSlideHz(OBJ, DIR, SIZE, ACT, MAX)
{
	if((ACT=='+' && (!sldOLD || sldOLD<MAX)) || (ACT=='-' && sldOLD>0))
	{
		if (ACT == '-') {
			sldOLD--;
		} else {
			sldOLD++;
		}
		
		var LOCAL	= SIZE * sldOLD;
		
		if (DIR == 'H') {
			$(OBJ).stop().animate({ marginLeft: '-'+LOCAL+'px' }, 'slow');
		} else {
			$(OBJ).stop().animate({ marginTop: '-'+LOCAL+'px' }, 'slow');
		}
	}
}

function homeBusca (LOCAL)
{
	$('img#MREGIAO').attr('src', 'images/home_busca_mapa_'+LOCAL+'.gif');
	$('select#Região option[value='+LOCAL+']').attr('selected', true).change();
}

function chgMapa (OBJ)
{
	var LOCAL = OBJ.options[OBJ.selectedIndex].value;	
	$('img#MREGIAO').attr('src', 'images/home_busca_mapa_'+LOCAL+'.gif');
}

var OLD = 0;
function chgFoto(NUM)
{
	window.location ='#'+NUM+' - '+OLD;
	if(NUM == OLD)	{	return false; }
	
	$("li#FOTO"+OLD).stop().animate({
		opacity: 'hide'
	}, 'slow', function() {
		$("li#FOTO"+NUM).stop().animate({
			opacity: 'show'
		}, 'slow');
	});
	OLD = NUM;
}

/********************************************************************************************************************************************************************************
	ANIMAÇÃO DE ESTRELAS DE VOTAÇÃO
********************************************************************************************************************************************************************************/

var intervalID = false;
function setStar(NUM)
{
	if(intervalID) {	clearInterval(intervalID); }

	for (var i=1; i <= 5; i++)
	{
		document.getElementById('star_'+ i).src = (i > NUM) ? 'images/botoes_estrela_apagada.gif' : 'images/botoes_estrela.gif';
	}
}

function clearStar(NUM)
{
	intervalID = setInterval(function() {
		document.getElementById('star_'+ NUM).src = 'images/botoes_estrela_apagada.gif';
		NUM--;
		
		if(NUM === 0) {	clearInterval(intervalID); }
	}, 50);
}

/********************************************************************************************************************************************************************************
				GOOGLE MAPS:			showAddress("Rua, Nº, CIDADE, UF");
*******************************************************************************************************************************************************************************/
var mapaobj;
var geocoder; 
var MODO;

var nivelZoom = [];
    nivelZoom[0] = 2;
    nivelZoom[1] = 9;
    nivelZoom[2] = 10;
    nivelZoom[3] = 11;
    nivelZoom[4] = 12;
    nivelZoom[5] = 13;
    nivelZoom[6] = 14;
    nivelZoom[7] = 15;
    nivelZoom[8] = 16;
	
function GM_load()
{
	mapaobj			= new GMap2(document.getElementById("GOOGLEMAPS"));
	mapaobj.setUIToDefault();

    geocoder		= new GClientGeocoder();
}

function realizaConsulta(TIPO, X, Y, ADRESS, nZOOM, TXT)
{
	if (!ADRESS)
		ADRESS = $('input#GmpBusca').val();

	MODO	= TIPO;
	CHAMADA	= TXT;
	ZOOM	= nZOOM;
	
	if(X && Y)
	{
		centralizaMapa(X, Y, ADRESS, ZOOM);
	}
	else
	{
	    geocoder.getLocations(ADRESS, resolverEnderecos);
	}
}

function resolverEnderecos(resposta)
{
	mapaobj.clearOverlays(); 
	
	if (!resposta || resposta.Status.code != G_GEO_SUCCESS)
	{
		mapaobj.innerHTML = 'Mapa de localização não disponível para essa região';
//		alert("Código de erro: " +  resposta.Status.code);
	}
	else
	{
		if(MODO == 'LISTA')
		{
			// Caso haja múltiplos resultados, informa o fato ao usuário
			if (resposta.Placemark.length > 0)
				ShwAlert('A sua consulta retornou resultados ambígüos. <br />Escolha a localidade mais adequada à consulta.', '#GmpLista');

			var alvo = document.getElementById('GmpLista');
			listarLocais(alvo, resposta.Placemark);
		}
		else
		{
			var LOCAL	= resposta.Placemark[0];
			var POINT	= LOCAL.Point.coordinates;
			var ACC		= resposta.Placemark[0].AddressDetails.Accuracy;
			
			// Chama a função centralizaMapa passando como argumento as coordenadas do ponto 
			// (posição 1 para latitude, 0 paralongitude); O endereço completo do ponto encontrado; a precisão do endereço para controlar o nível de zoom
			centralizaMapa(POINT[1], POINT[0], resposta.Placemark[0].address, ACC);
		}
	}
}

function listarLocais(alvo, placemark)
{
	// Começa a escrita na div informando a quantidade de resultados encontrados. O máximo retornado pelo geocoder são seis endereços
	var MAX		= placemark.length;
	var LISTA	= "<p> A pesquisa retornou " + MAX + " resultado(s): </p>";

	// Loop para escrever informações de cada endereço
	for (var i=0; i < MAX; ++i)
	{
		// Obtém a informação da Unidade Federativa, no caso de um endereço no Brasil
		if(placemark[i].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName)
			var UF = placemark[i].AddressDetails.Country.AdministrativeArea.AdministrativeAreaName; 
		
		var ACC		= placemark[i].AddressDetails.Accuracy;
		var CORD	= placemark[i].Point.coordinates;
		var ADRESS	= placemark[i].address;
		
		LISTA += "<a href='javascript:centralizaMapa("+ CORD[1] +", "+ CORD[0] +", \""+ ADRESS +"\", "+ ACC +")'>"+ ADRESS +"</a><br />";
	}
	
	alvo.innerHTML = LISTA;
} 
  
function centralizaMapa(X, Y, ADRESS, ACC)
{
	// ÍCONE MARCADOR
	var icoLogo			= new GIcon(G_DEFAULT_ICON);
	icoLogo.image		= "http://www.guiadepraias.com.br/images/icone_mapa.png";
	icoLogo.iconSize	= new GSize(25, 32);
	icoLogo.shadowSize	= new GSize(27, 34);
	markerOptions		= { icon:icoLogo };

	var POINT	= new GLatLng(X, Y);
	var nZOOM	= (ZOOM) ? ZOOM : nivelZoom[ACC];
	mapaobj.setCenter(POINT, nZOOM);
	
	var marker	= new GMarker(POINT, markerOptions);
	mapaobj.addOverlay(marker);
	
	if ( CHAMADA )
		marker.openInfoWindowHtml('<div id="MAPT"><strong>Guia de Praias</strong>'+'<span>'+ADRESS+'</span><br />'+ CHAMADA +'</div>');
}