/*<![CDATA[*/
var objCalendar = new Object();

objCalendar.daysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
objCalendar.allMonth = new Array('JANEIRO', 'FEVEREIRO', 'MARÇO', 'ABRIL', 'MAIO', 'JUNHO', 'JULHO', 'AGOSTO', 'SETEMBRO', 'OUTUBRO', 'NOVEMBRO', 'DEZEMBRO');
objCalendar.normalDayClass = 'calendario_normal';
objCalendar.actualDayClass = 'calendario_dia_atual';
objCalendar.weekendDayClass = 'calendario_dia_marcado';

objCalendar.serverDate = new Date();
objCalendar.serverDate.setYear(year);
objCalendar.serverDate.setMonth(month);
objCalendar.serverDate.setDate(day);
	
objCalendar.actualDate = new Date();
objCalendar.actualDate.setYear;
objCalendar.actualDate.setMonth(month);
objCalendar.actualDate.setDate(day);
	
function getNextDate() {
    var date = objCalendar.actualDate;
    var ndate = new Date();
    var month = date.getMonth();
    var year = date.getFullYear();
	
    ndate.setDate(1);
	  
    if (month <= 10) {
 	ndate.setYear(year);
	ndate.setMonth(++month);
    } else {
	ndate.setYear(++year);
	ndate.setMonth(0);
    };
    objCalendar.actualDate = ndate;
    reloadCalendar();
};
	
function getPrevioustDate(date) {
    var date = objCalendar.actualDate;
    var ndate = new Date();
    var month = date.getMonth();
    var year = date.getFullYear();

    ndate.setDate(1);
  
    if (month >= 1) {
        ndate.setYear(year);
        ndate.setMonth(--month);
    } else {
        ndate.setYear(--year);
        ndate.setMonth(11);
    };
    objCalendar.actualDate = ndate;
    reloadCalendar();
};

function submitNewDate(month, year) {
    var form = document.forms['formCalendar'];
    form.month.value = month;
    form.year.value = year;
    form.submit();
};

function getMonthDays(date) {
    var year = date.getFullYear();
    var month = date.getMonth();
    return 32 - new Date(year, month, 32).getDate();

    if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) == 0) return 29;
    else return objCalendar.daysInMonth[month];
};

function firstDayWeek(date) {
    var tdate = new Date(date);
    tdate.setDate(1);
    return tdate.getDay();
};

function isToday(dia) {
    return ( day == dia && objCalendar.actualDate.getMonth() == month && objCalendar.actualDate.getFullYear() == year );
};

function reloadCalendar() {
    var tbody = document.getElementById('calendarTbody');
    while (tbody.firstChild)
 	tbody.removeChild(tbody.firstChild);
    createCalendar();
};

function newHref(dia, mes, ano) {
	var urlBase = urlTo + '?day=' + dia + '&month=' + mes + '&year=' + ano + '&id_sessao=' + id_sessao;
	
    var href = document.createElement('a');
    href.setAttribute('href', urlBase);
    href.className = 'calendario_normal';
    href.appendChild(document.createTextNode(dia));
    var span = document.createElement('span');
    span.appendChild(href);
   
    return span.innerHTML;
};

function isHref(dia, mes, ano) {
   return true;
   var date = new Date();
   date.setDate(dia);
   date.setMonth(mes);
   date.setFullYear(ano);
 
   var diferenca = objCalendar.serverDate - date;
   var dia2mili = 1000*60*60*24*10;  //miliseconds*seconds*minutes*days*10days  
   var atual10 = objCalendar.serverDate.getDate() - 10;

   //verifica se o mês é Janeiro
   if(mes == 0) {         
       var AnoAntes = ano - 1;
       var MesAntes = 11;
   } else var MesAntes = mes - 1;

   var UDMesAntes = objCalendar.daysInMonth[mes];	   
   UltLink = 10 - objCalendar.serverDate.getDate(); 
	   
   if (objCalendar.serverDate.getDate() > 10) {  
       if ( (diferenca > dia2mili || diferenca < 0) && !(isToday(dia)) || atual10 == dia) return false;
   } else {  
       if ( (diferenca > dia2mili || diferenca < 0) && !(isToday(dia)) || UltLink == UDMesAntes - dia ) return false;
   }
   return true; 
};

function createCalendar() {
    var tbody = document.getElementById('calendarTbody');
    document.getElementById('nameMonth').innerHTML = objCalendar.allMonth[ objCalendar.actualDate.getMonth() ] + '/' + objCalendar.actualDate.getFullYear();
    var dayWeek = parseInt(firstDayWeek(objCalendar.actualDate));
    var daysMonth = getMonthDays(objCalendar.actualDate);
    var loopDay = 1;
	
    for (var i = 6; i > 0; --i) {
        if (loopDay > daysMonth) break;
	var row = document.createElement("tr");
	
	for (var j = 0; j < 7; ++j) {
    	    var cell = document.createElement("td");
	    var dayValue = "&nbsp;"; 
	
	    cell.setAttribute('align', 'center');	
	    if (isToday(loopDay)) cell.className = objCalendar.actualDayClass;
     	    else if (j == 0) cell.className = objCalendar.weekendDayClass;
   	    else cell.className = objCalendar.normalDayClass;
	
     	    if ((loopDay > 1 && loopDay <= daysMonth) || (dayWeek == j && loopDay == 1)) {
   	        if(isHref(loopDay, objCalendar.actualDate.getMonth(), objCalendar.actualDate.getFullYear()) ) cell.innerHTML = newHref(loopDay++, objCalendar.actualDate.getMonth()+1, objCalendar.actualDate.getFullYear());
 	        else cell.innerHTML = loopDay++;
	    } else cell.innerHTML = "&nbsp;";

	    row.appendChild(cell);
        };
	
	tbody.appendChild(row);
    };
};	
/*]]>*/
