function possuiCursos(dia, mes, ano) {
	mes += 1;
	var d = dia.toString();
	var m = mes.toString();
	var a = ano.toString();
	d = (d.length==1) ? "0"+d : d;
	m = (m.length==1) ? "0"+m : m;
	var data = d+"/"+m+"/"+a;
	
	for(var i = 0; i < datasComLink.length; i++) {
		dataUrl = datasComLink[i];
		if(data == dataUrl.data) {
			return dataUrl;
		}
	}
	return '';
}

var maxDia = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var maxDiaBissexto = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
function _isLeap(y){return ( ((y%4==0)&(y%100!=0))|(y%400==0) );}

function montarHTML(idCalendario, ano, mes, dia) {
	var html = '<input type=\"hidden\" name=\"mesCalendario\" id=\"mesCalendario\"/>';
	html += '<input type=\"hidden\" name=\"anoCalendario\" id=\"anoCalendario\"/>';
	html += '<ul class="dataCentro">';
    html += '    	<li class="btn"><a href="javascript:calendario(\''+idCalendario+'\', \'anoAnterior\');">&lt;&lt; Anterior</a></li>';
    html += '       <li id="nomeAno" class="ano">&nbsp;</li>';
    html += '       <li class="btn"><a href="javascript:calendario(\''+idCalendario+'\', \'anoPosterior\');">Proximo &gt;&gt;</a></li>';
    html += '</ul>';
    
    html += '<ul class="mesesCentro">';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'0\');"><span id="mesJan">Jan</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'1\');"><span id="mesFev">Fev</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'2\');"><span id="mesMar">Mar</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'3\');"><span id="mesAbr">Abr</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'4\');"><span id="mesMai">Mai</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'5\');"><span id="mesJun">Jun</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'6\');"><span id="mesJul">Jul</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'7\');"><span id="mesAgo">Ago</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'8\');"><span id="mesSet">Set</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'9\');"><span id="mesOut">Out</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'10\');"><span id="mesNov">Nov</span></a></li>';
    html += '	<li><a href="javascript:calendario(\''+idCalendario+'\', \'mes\', \'11\');"><span id="mesDez">Dez</span></a></li>';
    html += '</ul>';
    
    data= new Date(ano, mes, dia)
    start_day = data.getDay() + 1   // starts with 0
    day=1
    month_length = (_isLeap(data.getYear())) ? maxDiaBissexto[data.getMonth()] : maxDia[data.getMonth()]
    
    html += '    <ul class="diasSemanaCentro">';
    html += '    	<li>Dom</li>';
    html += '        <li>Seg</li>';
    html += '        <li>Ter</li>';
    html += '        <li>Qua</li>';
    html += '        <li>Qui</li>';
    html += '        <li>Sex</li>';
    html += '        <li>Sab</li>';
    html += '    </ul>';
    
    /* Primeira Semana */
    html += '    <ul class="calendarioCentro">';
    
    for (var i=1;i<start_day;i++){
      	html+="<li>&nbsp;</li>"
    }

    // fill the first week of days
    for (var i=start_day;i<8;i++){
    	html += '<li>';
    	
    	var dataUrl = possuiCursos(day,mes,ano);
		if(dataUrl != null && dataUrl != '')
  			html += '<a target=\"'+dataUrl.target+'\" href=\"'+dataUrl.url+'\">'+day+'</a>';
  		else
  			html += day;
      	day++
      	
      	html += '</li>';
    }
    
    html += '    </ul>';
    /* Fim Primeira Semana */
    
    var qtdLi = 1;
    // fill the remaining weeks
    while (day <= month_length) {
    	html += '    <ul class="calendarioCentro">';
    	
    	var i;
    	qtdLi = 1;
        for (i=1;i<=7 && day<=month_length;i++){
        	html += '<li>';
        	var dataUrl = possuiCursos(day,mes,ano);
      		if(dataUrl != '')
	  			html += '<a target=\"'+dataUrl.target+'\" href=\"'+dataUrl.url+'\">'+day+'</a>';
      		else
      			html += day;
          	day++
          	
          	html += '</li>';
          	qtdLi++;
        }
      
        while(qtdLi<=7) {
        	html += '<li>&nbsp;</li>';
        	qtdLi++;
        }
        
        html += '    </ul>';
        // the first day of the next month
        start_day=i
     }
    
	return html;
}

function setarMesAno(ano, mes) {
	compromissos(ano, mes);
	
	document.getElementById('anoCalendario').value = ano;
	document.getElementById('nomeAno').innerHTML = ano;
	
	document.getElementById('mesCalendario').value = mes;

	var idMes = '';
	if(mes == 0) {
		idMes = 'mesJan';
	} else if(mes == 1) {
		idMes = 'mesFev';
	} else if(mes == 2) {
		idMes = 'mesMar';
	} else if(mes == 3) {
		idMes = 'mesAbr';
	} else if(mes == 4) {
		idMes = 'mesMai';
	} else if(mes == 5) {
		idMes = 'mesJun';
	} else if(mes == 6) {
		idMes = 'mesJul';
	} else if(mes == 7) {
		idMes = 'mesAgo';
	} else if(mes == 8) {
		idMes = 'mesSet';
	} else if(mes == 9) {
		idMes = 'mesOut';
	} else if(mes == 10) {
		idMes = 'mesNov';
	} else if(mes == 11) {
		idMes = 'mesDez';
	}
	
	document.getElementById('mesJan').className = "";
	document.getElementById('mesFev').className = "";
	document.getElementById('mesMar').className = "";
	document.getElementById('mesAbr').className = "";
	document.getElementById('mesMai').className = "";
	document.getElementById('mesJun').className = "";
	document.getElementById('mesJul').className = "";
	document.getElementById('mesAgo').className = "";
	document.getElementById('mesSet').className = "";
	document.getElementById('mesOut').className = "";
	document.getElementById('mesNov').className = "";
	document.getElementById('mesDez').className = "";
	
	document.getElementById(idMes).className = "selected";
}

function hrefIframeCorpo(idObj) {
	var objs = document.getElementById(idObj).getElementsByTagName('a');
	for(var i=0;i<objs.length;i++) {
		var link = objs[i];

		if(link.href.indexOf('javascript:') == -1) {
			link.hrefIFrame = link.href;
			link.href = 'javascript:;';
			link.onclick = function() {
				var iframe = window.parent.document.getElementById('corpoIFrame');
				iframe.src = this.hrefIFrame;
			};
		}
	}
}

function calendario(idCalendario, opcao, mesParam, anoParam) {
	var mes = new Number();
	var ano = new Number();
	
	if(document.getElementById('mesCalendario') != null &&
			document.getElementById('anoCalendario') != null) {
		mes = parseInt(document.getElementById('mesCalendario').value);
		ano = parseInt(document.getElementById('anoCalendario').value);
	}
	
	if(mes == 0 && ano == 0) {
		opcao = 'hoje';
	}
	
	if(opcao=='hoje') {
		var hoje = new Date();
		ano = hoje.getYear();
		if(ano < 1900)
			ano += 1900;
		mes = hoje.getMonth();
	} else if(opcao=='anoAnterior') {
		ano--;
		mes = 11;
	} else if(opcao=='anoPosterior') {
		ano++;
		mes = 0;
	} else if(opcao=='mes') {
		mes = parseInt( mesParam );
	} else if(opcao=='mesAno') {
		mes = parseInt( mesParam );
		ano = parseInt( anoParam );
	}
	
	document.getElementById(idCalendario).innerHTML = montarHTML(idCalendario, ano, mes, 1);
	
	setarMesAno(ano, mes);
	
	//hrefIframeCorpo(idCalendario);
	
	var iframe = window.parent.document.getElementById('corpoIFrame');	
	resizeIFrame(iframe);
}