// JavaScript Document
/* CALENDARIO JAVASCRIPT CLICK LABS */
var LastCalendar = "";
function maxDays(mm, yyyy){
var mDay;
	if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){
		mDay = 30;
  	}
  	else{
  		mDay = 31
  		if(mm == 1){
   			if (yyyy/4 - parseInt(yyyy/4) != 0){
   				mDay = 28
   			}
		   	else{
   				mDay = 29
  			}
		}
  }
return mDay;
}
function changeBg(id,idField){
	var dia = document.getElementById(id).innerHTML;
	var mes = parseInt(document.getElementById('selMonth').value)+1;
	var ano = parseInt(document.getElementById('selYear').value);
	document.getElementById(idField).value = ano+"-"+mes+"-"+dia;
	if (document.getElementById(id).style.backgroundColor != "yellow"){
		document.getElementById(id).style.backgroundColor = "yellow"
	}
	else{
		document.getElementById(id).style.backgroundColor = "#ffffff"
	}
}
function writeCalendar(idField,alvoHTML)
{
	if(LastCalendar!="")
		$(LastCalendar).innerHTML = '';
	
	
	var now = new Date
	var dd = now.getDate()
	var mm = now.getMonth()
	var dow = now.getDay()
	var yyyy = now.getFullYear()
	var arrM = new Array("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro")
	var arrY = new Array()
		for (ii=0;ii<=4;ii++){
			arrY[ii] = yyyy - 2 + ii
		}
	var arrD = new Array("Dom","Seg","Ter","Qua","Qui","Sex","Sab")
	
	var text = ""
	text += "<table id=\"Calendario\">"
	text += "<tr><td>"
	text += "<table width=\"100%\" id=\"CalendarioOp\"><tr>"
	text += "<td align=left>"
	text += "<select name=\"selMonth\" id=\"selMonth\" onChange='changeCal()'>"
		for (ii=0;ii<=11;ii++){
			if (ii==mm){
				text += "<option value= " + ii + " Selected>" + arrM[ii] + "</option>"
			}
			else{
				text += "<option value= " + ii + ">" + arrM[ii] + "</option>"
			}
		}
	text += "</select>"
	text += "</td>"
	text += "<td align=right>"
	text += "<select name=\"selYear\" id=\"selYear\" onChange='changeCal()'>"
		for (ii=0;ii<=4;ii++){
			if (ii==2){
				text += "<option value= " + arrY[ii] + " Selected>" + arrY[ii] + "</option>"
			}
			else{
				text += "<option value= " + arrY[ii] + ">" + arrY[ii] + "</option>"
			}
		}
	text += "</select>"
	text += "</td>"
	text += "</tr></table>"
	text += "</td></tr>"
	text += "<tr><td>"
	text += "<table id=\"CalendarioDatas\">"
	text += "<tr>"
		for (ii=0;ii<=6;ii++){
			text += "<td align=center><span class=label>" + arrD[ii] + "</span></td>"
		}
	text += "</tr>"
	aa = 0
		for (kk=0;kk<=5;kk++){
			text += "<tr>"
			for (ii=0;ii<=6;ii++){
				text += "<td align=center><span id=sp" + aa + " onClick=\"changeBg(this.id,'"+idField+"')\">1</span></td>"
				aa += 1
			}
			text += "</tr>"
		}
	text += "</table>"
	text += "</td></tr>"
	text += "</table>"
	document.getElementById(alvoHTML).innerHTML = text;
	changeCal(idField)
	LastCalendar = alvoHTML;
}
function changeCal(idField)
{
	var now = new Date
	var dd = now.getDate()
	var mm = now.getMonth()
	var dow = now.getDay()
	var yyyy = now.getFullYear()
	var currM = parseInt(document.getElementById('selMonth').value)
	var prevM
		if (currM!=0){
			prevM = currM - 1
		}
		else{
			prevM = 11
		}
	var currY = parseInt(document.getElementById('selYear').value)
	var mmyyyy = new Date()
	mmyyyy.setFullYear(currY)
	mmyyyy.setMonth(currM)
	mmyyyy.setDate(1)
	var day1 = mmyyyy.getDay()
		if (day1 == 0){
			day1 = 7
		}
	var arrN = new Array(41)
	var aa
		for (ii=0;ii<day1;ii++){
			arrN[ii] = maxDays((prevM),currY) - day1 + ii + 1
		}
		aa = 1
		for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){
			arrN[ii] = aa
			aa += 1
		}
		aa = 1
		for (ii=day1+maxDays(currM,currY);ii<=41;ii++){
			arrN[ii] = aa
			aa += 1
		}
		for (ii=0;ii<=41;ii++){
			// PINTA O FUNDO DAS CELULAS DO CALENDÁRIO
			document.getElementById("sp"+ii).style.backgroundColor = "#FFFFFF"
		}
	var dCount = 0
		for (ii=0;ii<=41;ii++){
			if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
				document.getElementById("sp"+ii).innerHTML = arrN[ii]
				document.getElementById("sp"+ii).className = "c3"
			}
			else{
				//Dias normais da semana
				document.getElementById("sp"+ii).innerHTML = arrN[ii]
				if ((dCount==0)||(dCount==6)){
					// Finais de Semana
					document.getElementById("sp"+ii).className = "c2"
				}
				else{
					// Pinta todos os dias da semana
					document.getElementById("sp"+ii).className = "c1"
				}
				if ((arrN[ii]==dd)&&(mm==currM)&&(yyyy==currY)){
					// Pinta o dia atual de verde
					document.getElementById("sp"+ii).style.backgroundColor="#90EE90"
					var dia = document.getElementById("sp"+ii).innerHTML;
					var mes = parseInt(document.getElementById('selMonth').value)+1;
					var ano = parseInt(document.getElementById('selYear').value);
					document.getElementById(idField).value = ano+"-"+mes+"-"+dia;
				}
			}
		dCount += 1
			if (dCount>6){
				dCount=0
			}
		}
}
