/************************
*		CALENDÁRIO		*
*************************/

var calData; // Data que o calendário trabalha
var calDataHoje; // Data do dia de hoje

/*
 * Abre calendário
 */
function calAbre()
{
	show('calendario');
	//abre_janela('calendario');
}

/*
 * Fecha calendário
 */
function calFecha()
{
	hide('calendario');
}

/*
 * Seta data e abre a programação
 */
function calSelData(dia, mes, ano)
{
	prog_data = ano + '-' + mes + '-' + dia;
	calFecha();
	prog_abre();
}

/*
 * Inicia o calendário
 */
function calInicia()
{
	calData = new Date();
	calDataHoje = new Date( calData.getFullYear(), calData.getMonth(), calData.getDate() );
	calCalendario();
}

/*
 * Monta o calendário
 */
function calCalendario()
{
	document.getElementById('calMes').innerHTML = getMesExtenso(calData.getMonth());
	document.getElementById('calAno').innerHTML = calData.getFullYear();
	
	var mesDia1 = new Date(calData.getFullYear(), calData.getMonth(), 1);
	var dias = '';
	var linhas = 0;
	for (var i = 0 ; i < mesDia1.getDay(); i++,linhas++)
		dias += '<span>&nbsp;</span>';
	for (i = 1; i <= daysInMonth(calData.getMonth(), calData.getFullYear()) ; i++,linhas++)
	{
		diaFor = new Date(calData.getFullYear(), calData.getMonth(), i);		
		if (calDataHoje.toString() == diaFor.toString())		
			dias += '<span class="hoje"><a href="javascript:calSelData(' + diaFor.getDate() + ',' + (1+diaFor.getMonth()) + ',' + diaFor.getFullYear() + ')">' + i + '</a></span>';
		else
			dias += '<span><a href="javascript:calSelData(' + diaFor.getDate() + ',' + (1+diaFor.getMonth()) + ',' + diaFor.getFullYear() + ')">' + i + '</a></span>';
	}	
	for (var i = diaFor.getDay()+1 ; i < 7 ; i++,linhas++)
		dias += '<span>&nbsp;</span>';
	document.getElementById('calDias').innerHTML = dias;
	
	linhas = Math.ceil(linhas /7);
	document.getElementById('calLadoL').className = 'bgLados MidL lados'+linhas+'Linhas';
	document.getElementById('calLadoR').className = 'bgLados MidR lados'+linhas+'Linhas';	
}

/*
 * Verifica se o ano é bixesto
 */
function isLeapYear(inputYear)
{
	if(inputYear%400==0||(inputYear%4==0&&inputYear%100!=0)) return true;
	return false;

}

/*
 * Retorna qtde de dias no mês
 */
function daysInMonth(month,year) {
	var daysInMonthArray = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (isLeapYear(year) && month == 1) return 29;
	else return daysInMonthArray[month];
} 

/*
 * Retorna o mês por extenso
 */
function getMesExtenso(mes)
{
	var calMeses = Array('janeiro', 'fevereiro', 'mar&ccedil;o', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro');
	return calMeses[mes];
}

/*
 * Retira 1 mês
 */
function calPrevMonth()
{
	changeMonth(-1);
	calCalendario();
}

/*
 * Retira 1 mês
 */
function calNextMonth()
{
	changeMonth(+1);
	calCalendario();
}

/*
 * Modifica data, adicionando ou retirando meses
 */
function changeMonth(qtde)
{
	calData.setMonth(calData.getMonth()+qtde);
	if(calData.getMonth()>11 || calData.getMonth()<0){
		calData.setMonth(calData.getMonth()%12);
		calData.setYear(calData.getFullYear()+ Math.floor(calData.getMonth()/12));
	}	
}