/*
--------------------------------------------------------------------
 Arquivo:			calendario.js
 Autor:				Gilson Hoffmeister
 E-mail:			gilsonh@feevale.br
 Data da Criação:	12/11/2004
 Última Alteração:	Rodrigo S. Donini
 E-mail:			donini@feevale.br
 Alterado em:		23/02/2005
 Descrição:			Arquivo que contém o calendário.
--------------------------------------------------------------------
*/

var intDia;
var intMes;
var intAno;
var intIdSecaoSelecionado;
var dteDataAtual = new Date();
var dteHoje = dteDataAtual.getDate();
var intMesAtual = dteDataAtual.getMonth();
var intAnoAtual = dteDataAtual.getYear();

var arrNumDiasMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var arrNomeMes = new Array('Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro');

// Corrige a exibição do ano nos navegadores não IE
if (intAnoAtual < 1000)
{
	intAnoAtual += 1900;
}

/*
--------------------------------------------------------------------
 Função que retorna uma string contendo o nome do mês e ano
 
 - intAno:	Ano que deverá ser exibido;
 - intMes:	Mês que deverá ser exibido o nome;
--------------------------------------------------------------------
*/
function fntMesAno(intAno, intMes) //v1.0
{
	// Laço que verifica ano bisexto
	if (intMes == 1)
	{
		arrNumDiasMes[1] = ((intAno % 400 == 0) || ((intAno % 4 == 0) && (intAno % 100 !=0))) ? 29 : 28;
	}
	var strMesAno = arrNomeMes[intMes] + ' ' + intAno;
	return strMesAno;
}


/*
--------------------------------------------------------------------
 Função responsável em construir e exibir o calendário
 
 - strData:			Ano que deverá ser exibido;
 - intIdSecao:		Mês que deverá ser exibido;
--------------------------------------------------------------------
*/
function fntCalendario(strData, intIdSecao) //v1.0
{
	intIdSecaoSelecionado = intIdSecao
	var bolSeleciona = true;
	
	// Tramento da data: divide em ano, mês e dia
	if (strData)
	{
		var arrData = strData.split("-");
		intAno = parseInt(arrData[0]);
		intMes = parseInt(arrData[1])-1;
		intDia = parseInt(arrData[2]);	
		if (intDia == 1)
		{
			bolSeleciona = false;
		}
	}
	else
	{
		intAno = intAnoAtual
		intMes = intMesAtual
		intDia = dteHoje
	}

	// Busca a primeira data do mês (01/??/????)
	var dtePrimeiraData = new Date(intAno, intMes, 1);

	var intPrimeiroDia = dtePrimeiraData.getDay() + 1;
	
	if (((arrNumDiasMes[intMes] == 31) && (intPrimeiroDia >= 6)) || ((arrNumDiasMes[intMes] == 30) && (intPrimeiroDia == 7)))
	{
		var intLinhas = 6;
	}
	else if ((arrNumDiasMes[intMes] == 28) && (intPrimeiroDia == 1))
	{
		var intLinhas = 4;
	}
	else
	{
		var intLinhas = 5;
	}
	var strHtml = '<table id="tblNav" align="center">';
	strHtml += '<tr>';
	strHtml += '<td class="tdNav"><a href="javascript:fntMes(0);"><img src="../img/ico_seta_esq.gif" alt="Mês Anterior" /></a></td>';
	strHtml += '<td>' + fntMesAno(intAno, intMes) + '</td>';
	strHtml += '<td class="tdNav"><a href="javascript:fntMes(1);"><img src="../img/ico_seta_dir.gif" alt="Próximo Mês" /></a></td>';
	strHtml += '</tr>';
	strHtml += '</table>';
	strHtml += '<table id="tblCalendario" cellpadding="0" cellspacing="0" class="calendario">';
	strHtml += '<tr class="calendario-dias"><td>D</td><td>S</td><td>T</td><td>Q</td>';
	strHtml += '<td>Q</td><td>S</td><td>S</td></tr>';
	var intContadorDia = 1;
	var intContadorLoop = 1;
	for (var strAux01 = 1; strAux01 <= intLinhas; strAux01++)
	{
		strHtml += '<tr>';
		for (var strAux02 = 1; strAux02 < 8; strAux02++)
		{
			if ((intContadorLoop >= intPrimeiroDia) && (intContadorDia <= arrNumDiasMes[intMes]))
			{
				if ((intContadorDia == intDia) && (intAno == intAno) && (intMes == intMes) && (bolSeleciona))
				{
					strHtml += '<td id="hoje"><a href="../internas/vwImprensa.asp?intIdSecao=' + intIdSecao + '&strData=' + intAno + '-' + (intMes + 1) + '-' + intContadorDia + '">' + intContadorDia + '</a></td>';
				}
				else
				{
					strHtml += '<td><a href="../internas/vwImprensa.asp?intIdSecao=' + intIdSecao + '&strData=' + intAno + '-' + (intMes + 1) + '-' + intContadorDia + '">' + intContadorDia + '</a></td>';
				}
				intContadorDia++;    
			}
			else
			{
				strHtml += '<td>&nbsp;</td>';
			}
			intContadorLoop++;
		}
		strHtml += '</tr>';
	}
	strHtml += '</table>';
	var objCalendario = document.getElementById("divCalendario");
	objCalendario.innerHTML = strHtml;
}

/*
--------------------------------------------------------------------
 Função que navega entre os meses (próximo e anterior)
 
 - bolDirecao:	0 - Exibe o mês anterior;
 				1 - Exibe o próximo mês;
--------------------------------------------------------------------
*/
function fntMes(bolDirecao)
{
	if (bolDirecao)
	{
		if (intMes == 11)
		{
			intMes = 0;
			intAno++;
		}
		else
		{
			intMes++;
		}
	}
	else
	{
		if (intMes == 0)
		{
			intMes = 11;
			intAno--;
		}
		else
		{
			intMes--;
		}
	}
	var strData = intAno + "-" + (intMes + 1) + "-1"
	fntCalendario(strData, intIdSecaoSelecionado);
}
