// Função para iniciarmos o Ajax no browser do cliente.
function openAjax() {

var ajax;

try{
    ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
}catch(ee){
    try{
        ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
    }catch(e){
        try{
            ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
        }catch(E){
            ajax = false;
        }
    }
}
return ajax;
}

function mostraCalendarioTexto(tipo,mes,ano,data){

	if(document.getElementById) {
		
		var exibeResultado = document.getElementById('eventos_corpo');
	
			var ajax = openAjax();
			if(tipo == 0){
				var url = 'dsp_eventos_calendario.cfm?home=sim&mes=' + mes + '&ano=' + ano;
			}else if(tipo == 1){
				var url = 'dsp_eventos_dia.cfm?mostraDetalhes=yes&mes=' + mes + '&ano=' + ano;
			}else if(tipo == 2){
				var url = 'dsp_eventos_busca.cfm';
			}else if(tipo == 4){
				var url = 'dsp_eventos_dia.cfm?mostraDetalhes=yes&id=' + mes;				
			}else if(tipo == 5){
				var url = 'dsp_eventos_dia.cfm?mostraDetalhes=yes&dataAtual=' + data +'&id=19';	
			}else if(tipo == 6){
				var url = 'dsp_eventos_dia.cfm?mostraDetalhes=yes&dataAtual=' + data +'&id=0';					
			}else{
				var url = 'dsp_eventos_dia.cfm?mostraDetalhes=yes&dataAtual=' + data;
			}
			//alert(url);
			ajax.open("GET", url, true);
			ajax.onreadystatechange = function() {
				if(ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
					
				}
				if(ajax.readyState == 4) { // Quando estiver tudo pronto.
					if(ajax.status == 200) {
						var resultado = ajax.responseText;
						resultado = resultado.replace(/\+/g," ");
						resultado = unescape(resultado);
					
						exibeResultado.innerHTML = resultado;
					} else {
						exibeResultado.innerHTML = "Erro: ";
					}
				}
			}
			ajax.send(null); // submete
		} 
}

function mostraDetalhes(idEvento){

	var nomeSpan = 'detalhes' + idEvento;
	
	var exibe = document.getElementById(nomeSpan);
	
	
	if (exibe.style.display == 'none'){
		exibe.style.display = '';
	}else{
		exibe.style.display = 'none';
	}
}

function buscaEventos(){
	if(document.getElementById) {
		
		var exibeResultado = document.getElementById('eventos_corpo_busca');
		
			var ajax = openAjax();
			var palavra = document.getElementById('palavra').value;
			var dataDe = document.getElementById('dataDe').value;
			var dataAte = document.getElementById('dataAte').value;
			
			var url = 'dsp_eventos_busca.cfm?busca=sim&palavra=' + palavra + '&dataDe=' + dataDe + '&dataAte=' + dataAte;
			//alert(url);
			ajax.open("GET", url, true);
			ajax.onreadystatechange = function() {
				if(ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
					
				}
				if(ajax.readyState == 4) { // Quando estiver tudo pronto.
					if(ajax.status == 200) {
						var resultado = ajax.responseText;
						resultado = resultado.replace(/\+/g," ");
						resultado = unescape(resultado);
					
						exibeResultado.innerHTML = resultado;
					} else {
						exibeResultado.innerHTML = "Erro: ";
					}
				}
			}
			ajax.send(null); // submete
		} 

}







// Title: Timestamp picker
// Description: See the demo at url
// URL: http://us.geocities.com/tspicker/
// Script featured on: http://javascriptkit.com/script/script2/timestamp.shtml
// Version: 1.0
// Date: 12-05-2001 (mm-dd-yyyy)
// Author: Denis Gritcyuk <denis@softcomplex.com>; <tspicker@yahoo.com>
// Notes: Permission given to use this script in any kind of applications if
//    header lines are left unchanged. Feel free to contact the author
//    for feature requests and/or donations

// ColdFusion Custom Tag format and translation to portuguese(brazilian) by Alex Hübner - alex@hubner.org.br on 03/11/2004
function AutoFormatDate(e, num) {
// cf use: passThrough="onKeyDown='this.value=AutoFormatDate(event, this.value);'"
tamanho = num.length;
num = num.toString();
var DateTemp = "";
var checkstr = "0123456789/";
var tecla;

if (!e) var e = window.event;
if (e.keyCode) tecla = e.keyCode;
else if (e.which) tecla = e.which;

for (i = 0; i < num.length; i++) {
	if (checkstr.indexOf(num.substr(i,1)) >= 0) {
		DateTemp = DateTemp + num.substr(i,1);
	}
}

num = DateTemp; // data com caracteres verificados

if (tecla == 8) { // backspace
	window.event.cancelBubble = false;
	window.event.returnValue = true;
	return num;

} else {

	if (e && tecla == 191 || tecla == 111) {
		// keyCode '/' do alfa é 191;  '/' do numerico é 111
		// se o usuario digitar a barra, cancela, não inserindo 2 barras consecutivas
		window.event.cancelBubble = true;
		window.event.returnValue = false;
	}

	if (tamanho==2) // separa dia/mes
		return (num + '/')
	else if (tamanho==5) // separa mes/ano
		return (num + '/')
	else
		return num

} // close else

} // close function

function show_calendar(str_target, str_datetime) {

	var arr_months = ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho",
		"Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"];
	var week_days = ["D", "S", "T", "Q", "Q", "S", "S"];
	var n_weekstart = 0; // day week starts from (normally 0 or 1)

	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+1);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Calendário</title>\n"+
		"<style>\n"+
		".atualDay {text-decoration: none; font-family: Tahoma,Verdana,Sans-serif; font-size: 9pt; color: black; }\n"+
		".grayDay {text-decoration: none; font-family: Tahoma,Verdana,Sans-serif; font-size: 9pt; color: gray}\n"+
		".todayBg {background-color: #FFB6C1}\n"+
		".diaDaSemana{font-family: Tahoma,Verdana,Sans-serif; font-size: 9pt; color: White; text-align: right; background-color: #87CEFA}\n"+
		".thisMonthWeekend {background-color: #DBEAF5; text-align: right}\n"+
		".thisMonthWeekendHover {background-color: #FFCDCD; text-align: right}\n"+
		".thisMonthDays {background-color: #FFFFFF; text-align: right}\n"+
		".thisMonthDaysHover {background-color: #FFDADA; text-align: right}\n"+
		"</style>\n"+
		"<script>\n"+
		"function passValue(valor) {\n"+
		"window.opener."+str_target+".value=valor;\n"+
		"window.close();\n"+
		"}\n"+
		"<\/script>\n"+
		"<body bgcolor=\"White\">\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#4682B4\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#4682B4\"><a style=\"color:white;text-decoration:none\" href=\"javascript:window.opener.show_calendar('"+
		str_target+"', '"+ dt2dtstr(dt_prev_month)+"'+document.cal.time.value);\">"+
		"\<b>&laquo;</b></a></td>\n"+
		"	<td bgcolor=\"#4682B4\" colspan=\"5\" align=\"center\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#4682B4\" align=\"right\"><a style=\"color:white;text-decoration:none\" href=\"javascript:window.opener.show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"'+document.cal.time.value);\">"+
		"\<b>&raquo;</b></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td class=\"diaDaSemana\">"+
		week_days[(n_weekstart+n)%7]+"</td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td class=\"todayBg\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td class=\"thisMonthWeekend\" onmouseover=\"this.className='thisMonthWeekendHover'\" onmouseout=\"this.className='thisMonthWeekend'\">";
				else
					// print working days of current month
					str_buffer += "	<td class=\"thisMonthDays\" onmouseover=\"this.className='thisMonthDaysHover'\" onmouseout=\"this.className='thisMonthDays'\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					str_buffer += "<a class=\"atualDay\" href=\"javascript:passValue('"+dt2dtstr(dt_current_day)+"');\">";
				else 
					// print days of other months
					str_buffer += "<a class=\"grayDay\" href=\"javascript:passValue('"+dt2dtstr(dt_current_day)+"');\">";
				str_buffer += dt_current_day.getDate()+"</a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	str_buffer +=
		"<form name=\"cal\">\n"+
		"<input type=\"hidden\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+
		"\">\n</form>\n" +
		"</table>\n" +
		"</tr>\n</td>\n</table>\n" +
		"</body>\n" +
		"</html>\n";
		
	var vWinCal = window.open("", "Calendario", 
		"width=200,height=210,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt (str_datetime) {
	var re_date = /^(\d+)\/(\d+)\/(\d+)/;
	 if (!re_date.exec(str_datetime))
		return alert("Formato de data inválido: "+ str_datetime);
	return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6));
}

function leadingZero(nr)
{
	if (nr < 10) nr = "0" + nr;
	return nr;
}

function dt2dtstr (dt_datetime) {
	return (new String (
			leadingZero(dt_datetime.getDate())+"/"+(leadingZero(dt_datetime.getMonth()+1))+"/"+dt_datetime.getFullYear()));
}
function dt2tmstr (dt_datetime) {
	return (new String ());
}