			function Data(Campo, teclapres)
			{
				var tecla = teclapres.keyCode;
				var vr = new String(Campo.value);
 				vr = vr.replace("/", "");
 				vr = vr.replace("/", "");
 				tam = vr.length + 1;
 				if (tecla != 9 && tecla != 8)
 				{
 					if (tam > 2 && tam < 4)
 						Campo.value = vr.substr(0, 2)+'/'+vr.substr(2, tam);
 					if (tam >= 5 && tam < 6)
 						Campo.value = vr.substr(0, 2)+'/'+vr.substr(2, 4)+'/'+vr.substr(6, tam);
 				}
			}
			
			var NUM_CENTYEAR = 30;
			var calendars = [];  var RE_NUM = /^\-?\d+$/;  
			function calendar1(obj_target)
			{
			  	this.gen_date = cal_gen_date1;  	this.gen_tsmp = cal_gen_tsmp1;  	this.prs_date = cal_prs_date1;  	this.prs_tsmp = cal_prs_tsmp1;  	this.popup    = cal_popup1;  	if (!obj_target) return cal_error("Erro ao inicializar o calendário: controle não disponível!");  	if (obj_target.value == null) return cal_error("Erro ao inicializar o calendário: o parâmetro especificado não é válido");  	this.target = obj_target;  	this.time_comp = false;  	this.year_scroll = true;  	this.id = calendars.length;  	calendars[this.id] = this;  }    function cal_popup1 (str_datetime)  {  	this.dt_current = this.prs_tsmp(str_datetime ? str_datetime : this.target.value);  	if (!this.dt_current) return;  	var obj_calwindow = window.open(  		'calendar.html?datetime=' + this.dt_current.valueOf()+ '&id=' + this.id,  		'Calendar', 'width=217,height=163,status=no,resizable=no,top=200,left=200,dependent=yes,alwaysRaised=yes'  	);  	obj_calwindow.opener = window;  	obj_calwindow.focus();  }    function cal_gen_tsmp1 (dt_datetime){return(this.gen_date(dt_datetime));}    function cal_gen_date1 (dt_datetime)  {  	return (  		(dt_datetime.getDate() < 10 ? '0' : '') + dt_datetime.getDate() + "/"  		+ (dt_datetime.getMonth() < 9 ? '0' : '') + (dt_datetime.getMonth() + 1) + "/"  		+ dt_datetime.getFullYear()  	);  }    function cal_prs_tsmp1(str_datetime)  {  	if (!str_datetime) return (new Date());  	if (RE_NUM.exec(str_datetime)) return new Date(str_datetime);  	var arr_datetime = str_datetime.split(' ');  	return this.prs_date(arr_datetime[0]);  }    function cal_prs_date1(str_date)  {  	var arr_date = str_date.split('/');  	if (arr_date.length != 3) return cal_error ("Formato de data inválido: '" + str_date + "'.\nO formato aceito é dd/mm/aaaa.");  	if (!arr_date[0]) return cal_error ("Formato de data inválido: '" + str_date + "'.\nO dia no mês é incorreto.");  	if (!RE_NUM.exec(arr_date[0])) return cal_error ("Dia do mês inválido: '" + arr_date[0] + "'.\nSomente valores inteiros são permitidos.");  	if (!arr_date[1]) return cal_error ("Formato de data inválido: '" + str_date + "'.\nO mês esta incorreto.");  	if (!RE_NUM.exec(arr_date[1])) return cal_error ("Mês inválido: '" + arr_date[1] + "'.\nSomente valores inteiros são permitidos.");  	if (!arr_date[2]) return cal_error ("Formato de data inválido: '" + str_date + "'.\nO ano não encontrado.");  	if (!RE_NUM.exec(arr_date[2])) return cal_error ("Ano inválido: '" + arr_date[2] + "'.\nSomente valores inteiros são permitidos.");  	var dt_date = new Date();  	dt_date.setDate(1);  	if (arr_date[1] < 1 || arr_date[1] > 12) return cal_error ("Mês inválido: '" + arr_date[1] + "'.\nO mês deve estar entre 01 a 12.");  	dt_date.setMonth(arr_date[1]-1);  	if (arr_date[2] < 100) arr_date[2] = Number(arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);  	dt_date.setFullYear(arr_date[2]);  	var dt_numdays = new Date(arr_date[2], arr_date[1], 0);  	dt_date.setDate(arr_date[0]);  	if (dt_date.getMonth() != (arr_date[1]-1)) return cal_error ("Dia do mês inválido: '" + arr_date[0] + "'.\nO dia deve estar entre 01 a "+dt_numdays.getDate()+".");  	return (dt_date)
}
function cal_error (str_message){alert (str_message);return null;}  
