var dias = Array( "Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado" );

var T_ANIM_IN = 2000;
var T_ANIM_OUT = 1000;
var T_ANIM_POP = 700;

var eventoAberto = 0;

var d = new Date();

var mes = d.getMonth() + 1;
var ano = d.getFullYear();

function buscaDatas(){
	
	eventoAberto = 0;
	
	//document.getElementById( "area_calendario" ).innerHTML = ;
	$( "#area_calendario" ).html( "<img src='imgs/loader.gif'>" );

	criaRequisicao( ajx );
	mandaRequisicaoGET( ajx, "busca_datas.php?_FL_M=" + mes + "&_FL_A=" + ano, true, "trataDatas" );

}

function trataDatas(){

	if( ajx.req.readyState == 4 && ajx.req.status == 200 ){
	
		var retorno = urldecode( ajx.req.responseText );
		
		var arrRetorno = retorno.split( ";" );
		
		// Info do mês //
		var arrInfo = arrRetorno[0].split( "#" );
		var mes = arrInfo[0];
		var ano = arrInfo[1];
		var deslocamento = arrInfo[2];
		var maxDias = arrInfo[3];
		var nomeMes = arrInfo[4];

		var eventos = Array();
		for( x = 1; x <= arrRetorno.length - 1; x++ ){
		
			arrInfo = arrRetorno[x].split( "#" );
			
			if( arrInfo[0] > 0 ){
				eventos[ arrInfo[0] ] = arrInfo[1] + "#" + arrInfo[2];
			}
		
		}
		
		montaCalendario( mes, ano, deslocamento, maxDias, nomeMes, eventos );
	
		destroiRequisicao( ajx );
	
	}
	
}

function montaCalendario( mes, ano, desl, maxd, nmes, eventos ){

	var calBody = "";
	
	// Título //
	calBody = "<h1>" + nmes + "/" + ano + "</h1>";
	
	// Header //
	for( x = 0; x <= 6; x++ ){
		calBody += "<div class='header " + ( x < 6 ? "header_meio" : "header_final" ) + "'>" + dias[x] + "</div>";
	} 
	
	// Desloamento inicial //
	for( x = 1; x <= desl; x++ ){
		calBody += "<div class='deslocamento deslocamento_meio'>&nbsp;</div>";
	}
	
	// Body - eventos //
	var pos = desl;
	var tituloEvento = "";
	var descEvento = "";
	var css = "";
	
	for( x = 1; x <= maxd; x++ ){
	
		tituloEvento = "";
		descEvento = "";
		css = "dia";
		
		pos++;
		if( pos > 7 ) pos = 1;
		
		if( eventos[x] != undefined ){
			arr = eventos[x].split( "#" );
			tituloEvento = arr[0];
			descEvento = arr[1];
			css = "dia evento";
		}
		
		calBody += "<div id='dia_" + x + "' class='" + css + " " + ( pos < 7 ? "dia_meio" : "dia_final" ) + "'>";
		
		calBody += "<span class='n_dia'>" + x + "</span>";
		
		calBody += "<span class='t_evento'><a class='link' href=\"javascript:mostraEvento( " + pos + ", " + x + ",'" + tituloEvento + "' )\">" + tituloEvento + "</a></span>";
		
		calBody += "<div id='dia_detalhes_" + x + "' class='dia_detalhes'>";
		calBody += "<span class='n_dia'>" + x + "</span>";
		calBody += "<a href='javascript:fechaEvento(" + x + ")'><img class='btn_fechar' src='imgs/bot_fechar.jpg' border='0'></a>";
		calBody += "<span class='d_evento'><b>" + tituloEvento + "</b><br/>" + descEvento + "</span>";
		calBody += "</div>";
		
		calBody += "</div>";
		
	}
	
	// Deslocamento final //
	for( x = pos; x <= 6; x++ ){
		calBody += "<div class='deslocamento " + ( x < 6 ? "deslocamento_meio" : "deslocamento_final" ) + "'>&nbsp;</div>";
	}		
	
	//document.getElementById( "area_calendario" ).innerHTML = calBody;
	$( "#area_calendario" ).html( calBody );
	
	$( "#area_calendario" ).css( "opacity", 0 );
	$( "#area_calendario" ).animate( { opacity:1 }, T_ANIM_IN, function(){} );

}

function fechaEvento( dia ){
	
	if( dia > 0 ){

		$( "#dia_detalhes_" + dia ).css( "opacity", 1 );
		$( "#dia_detalhes_" + dia ).animate( { opacity:0 }, T_ANIM_POP, function(){																				
			$( "#dia_detalhes_" + dia ).css( "display", "none" );
		} );	

	}
	
}

function mostraEvento( pos, dia, tituloEvento ){

	if( dia != eventoAberto ) fechaEvento( eventoAberto );
	eventoAberto = dia;

	var prop = ( ( pos - 1 ) * 70 ) * -1;

	$( "#dia_detalhes_" + dia ).css( "position", "absolute" );
	$( "#dia_detalhes_" + dia ).css( "top", 0 );
	$( "#dia_detalhes_" + dia ).css( "left", prop );
	$( "#dia_detalhes_" + dia ).css( "width", 489 );
	$( "#dia_detalhes_" + dia ).css( "height", 69 );
	$( "#dia_detalhes_" + dia ).css( "z-index", 9001 );
	$( "#dia_detalhes_" + dia ).css( "opacity", 0 );
	$( "#dia_detalhes_" + dia ).css( "display", "block" );
	$( "#dia_detalhes_" + dia ).animate( { opacity:1 }, T_ANIM_POP, function(){} );	
	
}

function iniciaCalendario(){

	$( "#linha_calendario").css( "display", "none" );

	$( "#area_calendario" ).css( "opacity", 0 );
	$( "#area_calendario" ).animate( { opacity:1 }, T_ANIM_IN, function(){ buscaDatas(); } );

}

function proxMes(){

	mes = mes + 1;
	if( mes == 13 ){
		mes = 1;
		ano = ano + 1;
	}
	
	$( "#area_calendario" ).css( "opacity", 1 );
	$( "#area_calendario" ).animate( { opacity:0 }, T_ANIM_OUT, function(){ buscaDatas(); } );

}

function anteMes(){

	mes = mes - 1;
	if( mes == 0 ){
		mes = 12;
		ano = ano - 1;
	}

	$( "#area_calendario" ).css( "opacity", 1 );
	$( "#area_calendario" ).animate( { opacity:0 }, T_ANIM_OUT, function(){ buscaDatas(); } );

}


