
//*****************************************************************************
//Objetivo:					Encapsular funcionalidades do Calendário utilizado
//Autor:					-
//Data:						-
//Autor:					Alan A. Oliveira (Vertente)
//Data Ultima alteração:	25/11/2003
//Motivo:					Padronização de código
//Autor:					Liana C. M. de Almeida (7COMm)
//Data Ultima alteração:	01/12/2003
//Motivo:					Padronização de código e manutenções em algumas funções
//*****************************************************************************

//*****************************************************************************
// DECLARAÇÃO DAS VARIÁVEIS
//*****************************************************************************


//Variáveis Globais
var arrMeses = new Array("Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"); //Array com os meses do ano
var arrMesesIng = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); //Array com os meses do ano - Gil
var dtmHoy = new Date(); //variável data utilizada para cálculo
var objCampoData; //objeto com o nome do calendário
var intYearLow = 1990;	//ano mínimo
var arrDaysMonth = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);	//array com os dias do mês
var arrDiasPorMes=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];	//array com os dias do mês
var intLeft = 0; //Medida Left							
var intTop = 0; //medida Top
var intDiaSelecionado= ""+intDiaSelecionado;	//dia selecionado
var intLeftCalendario="0";	// Medida Left do calendário
var intTopCalendario="0";	// Medida Top do calendário
var dtmFechaReal;			// Data de fechamento real
var dtmInicio;             // Data do Periodo do Historico Disponivel.
var intPeriodo = 60;         // Define o Periodo de Pesquisa no Historico.


   
//*****************************************************************************
//Objetivo:					Chama a função que mostra o calendário
//Entradas:					objInput - objeto calendário
//							intLeft - medida da lateral esquerda
//							intTop - medida do topo
//Saída:					Nenhuma
//*****************************************************************************
function Calendario(objInput,intLeft ,intTop, intLang, strOrigem)
{
	if (typeof(objInput) == "object")
	{
		 objCampoData = objInput;
         if (intLeft!=null)
         {
			intLeftCalendario=intLeft;
			intTopCalendario=intTop;
         }
         else
         {
			intLeftCalendario="";
			intTopCalendario="";
         }
		if (calendario.style.visibility=="visible")
		{
			cerrarCalendario();
			escondeElementos(calendario); //Dif
  			return;
		}
		
		var blnValido = validaPeriodo(dtmMovimento,dtmPeriodo,intPeriodo,intLang);
		
		if (blnValido == false)
		{
		    abrirCalendario('Invalido', intLang, strOrigem);
		}
		else
		{
		    abrirCalendario('', intLang, strOrigem);
		}
		
		escondeElementos(calendario); //Dif
	}
	else
	{
		alert("Campo Data não informado!");
		return(false);
	}
	
}

//*****************************************************************************
//Objetivo:					Mostrar calendário
//Entradas:					strParam: ""         - deve mostrar a data informada no campo
//                                    "Invalido" - não mostra o calendario se o periodo de
//                                                 consulta for invalido
//        	        	    		  "Adiante"  - mostra um mês adiante do calendário
//							          "Anterior" - mostra um mês anterior ao calendário 
//Saída:					Nenhuma
//*****************************************************************************

function abrirCalendario(strParam, intLang, strOrigem)
{
	var txtCal="";						//string que contém o div
	var intAuxAno;						//ano
	var intAuxMes;						//mês
	var intAuxDia;						//dia
	var strFechaSeleccionada;			//string de fechamento da data selecionada
	var intNDias;						//número de dias
	var dtmPrimerDia;					//data do primeiro dia
	var intCont;						//contador
	var intColumna;						//número da coluna
	var strEstilo;						//estilo
	var intMesSelecionado;				//mês selecionado
	var dtmEsteDia = dtmHoy.getDate();	//dia atual
    
    if(strParam == "Invalido")
    {
	    return(false);
	
	} 	
	//Inicializa a variável do tipo data
	dtmFechaReal = new Date();
	
	// Verifica se o ano é maior que 1999 ou se não foi informada uma data	
	if ( objCampoData.value.substring(objCampoData.value.lastIndexOf('/')+1,objCampoData.value.length)>1909 || objCampoData.value=="")
	{
		//Verifica se é para mostrar o calendário apenas
		if(strParam == "")
		{
			//Se o campo estiver vazio ou a data for 31/12/9999, mostra a data atual
			if(objCampoData.value=="" || objCampoData.value=="31/12/9999" )
			{
				intAuxAno = dtmFechaReal.getFullYear();
				intAuxMes = dtmFechaReal.getMonth();
				intAuxDia = "";
			}
			//Senão, pega a data que estiver no campo
			else
			{
				intAuxDia = objCampoData.value.substring(0,objCampoData.value.indexOf('/'));
				intAuxMes = objCampoData.value.substring(objCampoData.value.indexOf('/')+1,objCampoData.value.lastIndexOf('/'))-1;
				intAuxAno = objCampoData.value.substring(objCampoData.value.lastIndexOf('/')+1,objCampoData.value.length);
				
			}

			//Seta a variável dtmHoy com as datas obtidas
			if(intAuxDia != "")
			{
				dtmHoy.setDate(intAuxDia);
			}
			dtmHoy.setMonth(intAuxMes);
			dtmHoy.setYear(intAuxAno);
		}
		//Caso contrário, pega o mês e o ano da dtmHoy
		else
		{
			intAuxAno = dtmHoy.getFullYear();
			intAuxMes = dtmHoy.getMonth();
			//Se a data do campo for diferente de vazio ou igual a 31/12/9999, pega a data da dtmHoy
			if(objCampoData.value!="" && objCampoData.value!="31/12/9999")
				intAuxDia = dtmHoy.getDate();
			//Caso contrário o dia vai ficar vazio
			else
				intAuxDia = "";
		}

		 //Caso o ano seja bissexto, seta o mês de fevereiro com 29 dias
		 if (((intAuxAno % 4 == 0) && (intAuxAno % 100 != 0)) || (intAuxAno % 400 == 0))
		 {
		   arrDiasPorMes[1] = 29;
		 }
		 else
		 {
		   arrDiasPorMes[1] = 28;		 
		 }
		   
		 // Guarda o número total de dias do mês a ser apresentado na variável intNDias
		 intNDias = arrDiasPorMes[intAuxMes];
		 
		 //Caso o dia fornecido seja maior que o dia limite do mês, não mostra o calendário
		 if(intAuxDia > intNDias)
		 {
			alert("Data inválida.");
			return;
		 }
		 
		 // Calculo do primeiro dia da semana do mês
		 dtmPrimerDia = dtmHoy;
		 dtmPrimerDia.setDate(1);
		 strDiaSemIni=dtmPrimerDia.getDay();

		// Determinação da tabela com o mês

		  txtCal="<div id='calendario' style='position:absolute; VISIBILITY: hidden;z-index=28;left:"+intLeftCalendario+";top:"+intTopCalendario+"'>"
		  txtCal=txtCal+"<CENTER>"
		  txtCal=txtCal+"<TABLE BORDER=0 cellspacing=0 cellpadding=1 bgcolor=999999 height=131 width=141>"
		  txtCal=txtCal+"<tr><td>"
		  txtCal=txtCal+"<TABLE BORDER=0 cellspacing=0 cellpadding=0 bgcolor=FFFFFF height=100% width=100%>"
		  txtCal=txtCal+"<TR bgcolor=FFC56C class=CalendDiaMes height=17>"

	// Se a data for janeiro de 1910 não mostra a seta para voltar pra trás
	if (dtmHoy.getMonth() == dtmInicio.getMonth() && dtmHoy.getFullYear() == dtmInicio.getFullYear())
	{
	txtCal=txtCal+"<TD align=left width=20>&nbsp;"
	}
	else
	{
	txtCal=txtCal+"<TD align=center width='20'><a href='Javascript:void(null)' onClick='mesAtras(objCampoData,"+intLang+","+strOrigem+")'><img src='/cblc/Imagem/SetaCalendEsq.gif' border=0 ></a>"
	}
			
	txtCal=txtCal+"</TD>"
	
	if(intLang == 1)
	{
	txtCal=txtCal+'<td COLSPAN=5 align=center>'+arrMeses[intAuxMes]
	}
	else
	{
	txtCal=txtCal+'<td COLSPAN=5 align=center>'+arrMesesIng[intAuxMes]
	}
	
	txtCal=txtCal+ " "
	txtCal=txtCal + intAuxAno


	if (dtmHoy.getMonth() == dtmMovimento.getMonth() && dtmHoy.getFullYear() == dtmMovimento.getFullYear())
	{
	txtCal=txtCal+"<TD align=left width=20>&nbsp;"
	}
	else
	{
	txtCal=txtCal+"<TD align=center width='20'><a href='Javascript:void(null)' onClick='mesAdiante(objCampoData,"+intLang+","+strOrigem+")'><img src='/cblc/Imagem/SetaCalendDir.gif' border=0 ></a>"
	
	}
	txtCal=txtCal+"</TD></TR>"
	txtCal=txtCal+"<tr><td colspan=7 bgcolor=000000><img src='images/t.gif' height=1 border=0></td></tr>"
			
	//dias da semana
    if (intLang == 1)
    {
    txtCal=txtCal+"<TR class=CalendDiaSemana ><td align=center>D<td align=center>S<td align=center>T<td align=center>Q<td align=center>Q<td align=center>S<td align=center>S</TR>"
    }
    else
    {	
    txtCal=txtCal+"<TR class=CalendDiaSemana ><td align=center>S<td align=center>M<td align=center>T<td align=center>W<td align=center>T<td align=center>F<td align=center>S</TR>"
    }   
	txtCal=txtCal+"<tr></tr>"

	// Determinação dos espaços em branco
	txtCal=txtCal+"<TR>"
	intColumna=0;
	for (intCont=0; intCont<strDiaSemIni; intCont++)
	{
	  txtCal=txtCal+"<TD>"
	  intColumna++;
	  txtCal=txtCal+"</TD>"
	}

	// Determinação dos dias do mês

		for (intCont=1; intCont<=intNDias; intCont++)
		{
			txtCal=txtCal+"<TD width='20'>"
		    if ((intAuxDia != "") && (intCont == intAuxDia))
		    {
		             strEstilo="class='Selecionado'";
		           
            }
		    else if (intColumna == 0 || intColumna == 6)
		    {
					strEstilo="class='Domingo'";
					
		    }
		    else 
			{
			        
			        strEstilo="class='OutrosDias'";
			       
			}

			if ((dtmInicio.getMonth()>dtmHoy.getMonth())&&(dtmInicio.getFullYear()>dtmHoy.getFullYear()))
			{
			    
			    txtCal=txtCal+"<center><font class='Domingo'>"+intCont+"</font></center>"
			   
			}
			else
			{
			    
			    if ((dtmInicio.getMonth()==dtmHoy.getMonth()&& dtmInicio.getDate() > intCont)||(dtmMovimento.getMonth()==dtmHoy.getMonth()&& dtmMovimento.getDate() < intCont))
			    {
			    txtCal=txtCal+"<center><font class='Domingo'>"+intCont+"</font></center>"
			   
			    }	
			    else
			    {
			    
			        if(strEstilo == "class='Domingo'")
			        {
			            txtCal=txtCal+"<center><font class='Domingo'>"+intCont+"</font></center>"
			        }
			        else
			        {
    			    
			            txtCal=txtCal+"<center><div id="+intCont+" style='cursor:hand' onclick='javascript:intDiaSelecionado="+intCont+";verDiaSeleccionado("+intLang+");'><a href='Javascript:void(null)' "+strEstilo+">"+intCont+"</a></div></center>"
    			        
			        }
			        
			    }


            }

		        if (intCont == dtmEsteDia || intColumna == 6)
		             txtCal=txtCal
		        else if (intColumna == 0)
		             txtCal=txtCal
		        txtCal=txtCal+"</TD>"
				intColumna++;
				if (intColumna == 7)
				{ 
					txtCal=txtCal+"</TR><TR>";
					intColumna=0;
				}
		}

		txtCal=txtCal+"</TR>"
		txtCal=txtCal+"</TABLE>"
		txtCal=txtCal+"</TD>"
		txtCal=txtCal+"</TR>"
		txtCal=txtCal+"</TABLE>"
		txtCal=txtCal+"</CENTER>"
		txtCal=txtCal+"</div>"

		calendario.outerHTML=txtCal;
		calendario.style.visibility="visible";
	
		return(true);
	}
	else
		alert("Data Inválida para Consulta no Calendário, por favor entre com uma data maior que 1909.");
}

//*****************************************************************************
//Objetivo:					Esconde o calendário
//Entradas:					Nenhuma
//Saída:					Nenhuma
//*****************************************************************************
function cerrarCalendario()
{
     calendario.style.visibility="hidden";
}


//*****************************************************************************
//Objetivo:					Seleciona o dia escolhido no calendário
//Entradas:					Nenhuma
//Saída:					Nenhuma
//*****************************************************************************
function verDiaSeleccionado(intLanguage)
{
	var intMesAtual;		//mês atual
	var intAnoAtual;		//ano atual
	
	intMesAtual = dtmHoy.getMonth()+1;		
	intAnoAtual = dtmHoy.getYear();
	intAnoAtual = intAnoAtual < 2000 ?  "19"+intAnoAtual : ""+intAnoAtual;
	intMesAtual = ""+intMesAtual;
	intMesAtual = intMesAtual.length==2 ? intMesAtual : "0"+intMesAtual;
	intDiaSelecionado = ""+intDiaSelecionado;
	intDiaSelecionado = intDiaSelecionado.length==2 ? intDiaSelecionado : "0"+intDiaSelecionado;

    if (intLanguage == 2) 
    {
		
		objCampoData.value=intMesAtual+"/"+intDiaSelecionado+"/"+intAnoAtual.substring(0,4); 
		
	}
	else
	{
		
		objCampoData.value=intDiaSelecionado+"/"+intMesAtual+"/"+intAnoAtual.substring(0,4);
		
	}	
	

	// Utilizar esta função na página principal que contem o calendario.js quando precisar 
	// executar funções/regras após a data ser selecionada
	if (typeof(onClickDataCalendario) == "function"){
		onClickDataCalendario(objCampoData.name);
	}	

	calendario.style.visibility="hidden";
}

//*****************************************************************************
//Objetivo:					Mostra o mês anterior
//Entradas:					Nenhuma
//Saída:					Nenhuma
//*****************************************************************************
function mesAtras(objCampoData, intLang, strOrigem)
{
	var intMes;		//mês 
	var intAno;		//ano 
	var intDia;		//dia

   if (dtmHoy.getMonth()==0)
   {
   		if(objCampoData.value!="" && objCampoData.value!="31/12/9999")
   			intDia = objCampoData.value.substring(0,objCampoData.value.indexOf('/'));
   		else
   			intDia = dtmFechaReal.getDate();
		intMes=11;
		intAno=dtmHoy.getYear()-1;
	}
	else
	{
   		if(objCampoData.value!="" && objCampoData.value!="31/12/9999")
   			intDia = objCampoData.value.substring(0,objCampoData.value.indexOf('/'));
   		else
   			//intDia = dtmFechaReal.getDate();
   			intDia = "";
		intMes = dtmHoy.getMonth()-1;
		intAno = dtmHoy.getYear();
	}
	if(intDia > arrDiasPorMes[intMes])
		intDia = arrDiasPorMes[intMes];
	dtmHoy.setYear(intAno);
	dtmHoy.setMonth(intMes);
	if(intDia!="")
	{
		dtmHoy.setDate(intDia);
	}
	
	abrirCalendario('Anterior',intLang, strOrigem);
	
}

//*****************************************************************************
//Objetivo:					Mostra o mês seguinte
//Entradas:					Nenhuma
//Saída:					Nenhuma
//*****************************************************************************
function mesAdiante(objCampoData, intLang, strOrigem)
{
	var intMes;		//mês 
	var intAno;		//ano 
	var intDia;		//dia	

   if (dtmHoy.getMonth()==11)
   {
   		if(objCampoData.value!="" && objCampoData.value!="31/12/9999")
   			intDia = objCampoData.value.substring(0,objCampoData.value.indexOf('/'));
   		else
   			intDia = dtmFechaReal.getDate();
		intMes = 0;
		
		intAno=dtmHoy.getYear();
		
		if (intAno < 2000){
			if(intAno < 10)
				intAno = "190"+ intAno;
			else
				intAno = "19"+ intAno;
			
			
		}
		intAno++;
		
	}
	else
	{
   		if(objCampoData.value!="" && objCampoData.value!="31/12/9999")
   			intDia = objCampoData.value.substring(0,objCampoData.value.indexOf('/'));
   		else
   			//intDia = dtmFechaReal.getDate();
   			intDia = "";
		intMes = dtmHoy.getMonth()+1;
		intAno = dtmHoy.getYear();
	}
	if(intDia > arrDiasPorMes[intMes])
		intDia = arrDiasPorMes[intMes];
		
	dtmHoy.setYear(intAno);
	dtmHoy.setMonth(intMes);
	if(intDia!="")
	{
		dtmHoy.setDate(intDia);
		
	}	abrirCalendario('Adiante', intLang, strOrigem);
}

//INÍCIO ESCONDE OBJETOS

//*****************************************************************************
//Objetivo:					Prepara os elementos SELECT guardando-os num array
//Entradas:					Nenhuma
//Saída:					Nenhuma
//*****************************************************************************
function preparaElementos()
{
	// Array de Tipos que podem ser escondidos quando o menu for exibido
	var arrElementTypes = new Array (  "SELECT" );		
	//var arrElementTypes = new Array (  "TEXTAREA", "SELECT", "INPUT" );
	
	var intElement;			//índice de um elemento	
	var objElement;			//objeto elemento
	var intType;			//tipo
	
	// cria array de elementos no documento
	document.arrElements = new Array();
	
	for (intElement=0; intElement < document.all.length; intElement++)
	{
		objElement = document.all[intElement];
		
		// Se for de um dos tipos desejados, armazena elemento no array
		for ( intType = 0; intType < arrElementTypes.length; intType++)
		{
			if (objElement.tagName == arrElementTypes[intType])
			{
				document.arrElements[document.arrElements.length] = objElement;
			}
		} // tipos
	} // elementos
}

//*****************************************************************************
//Objetivo:					Esconde os elementos SELECT
//Entradas:					objDiv - DIV que irá aparecer
//Saída:					Nenhuma
//*****************************************************************************

function escondeElementos ( objDiv )
{
	var objElement;			//objeto Elemento
	
	if(objDiv.style.visibility=="hidden")
	{
		restauraElementos();
		return;
	}
	
	// testa se array foi inicializado
	if ( ! document.arrElements )
		return;
	
	if ( document.arrElements.constructor != Array )
		return;

	// testa se array tem pelo menos um elemento
	if ( document.arrElements.length == 0 )
		return;

	// Varre elementos
	for ( var intElement = 0; intElement <document.arrElements.length; intElement++)
	{
		objElement = document.arrElements[intElement];
		
		//Se o combo for atrapalhar a visibilidade do div, ele será escondido
		if ( (! objElement.visibilidadeAnterior))
		{
			objElement.visibilidadeAnterior = objElement.style.visibility;
		
			if ( ! objElement.visibilidadeAnterior )
				objElement.visibilidadeAnterior = "visible";
				
			objElement.style.visibility = "hidden";
		}
	} // elementos
}


//*****************************************************************************
//Objetivo:					Restaura os elementos escondidos
//Entradas:					Nenhuma
//Saída:					Nenhuma
//*****************************************************************************

function restauraElementos ()
{
	var intElement;			//índice do elemento
	var objElement;			//objeto elemento
	
	// testa se array foi inicializado
	if ( ! document.arrElements )
		return;

	if ( document.arrElements.constructor != Array )
		return;

	// testa se array tem pelo menos um elemento
	if ( document.arrElements.length == 0 )
		return;
		
	// Varre elementos
	for ( intElement = 0; intElement <document.arrElements.length; intElement++)
	{
		objElement = document.arrElements[intElement];
		
		// se existia visibilidade anterior => restaura.
		if (objElement.visibilidadeAnterior)
		{
			objElement.style.visibility = objElement.visibilidadeAnterior;
			objElement.visibilidadeAnterior = null;
		}
			
	} // elementos
}

//FIM ESCONDE OBJETOS

function diferencadata(){
	var fechaI
	var fechaV
	dtmInicio = frmCalendario.fechaI.value
	datafim=frmCalendario.fechaV.value
	fechaI = new Date(dtmInicio.substring(6,10),dtmInicio.substring(3,5)-1,dtmInicio.substring(0,2))
	fechaV = new Date(datafim.substring(6,10),datafim.substring(3,5)-1,datafim.substring(0,2))
	if(((fechaV-fechaI)/DiaMilessecouds)< 0){
		alert("A Data final não pode ser inferior à Data inicio.")
		return false;
	}
	else{
		if(dtmInicio -  1000*60*60*24 >  fechaI)
		{
		alert("A data inicio não deve ultrapassar 60 dias.")
			return false;
		}
		else
			document.body.style.cursor = 'wait'
			document.frmCalendario.busca.disabled = true
			return true
	}
}

function Valida(){
	if(frmCalendario.fechaI.value=="" || frmCalendario.fechaV.value=="") {
		alert("Selecione o período desejado.")
	}
	else {
		 if (!valida_data(frmCalendario.fechaI.value)) {
			alert(msg3)
		 }
		else {
			if(!valida_data(frmCalendario.fechaV.value)){
				alert(msg4)
			}
			else{
				if(diferencadata()){
				frmCalendario.submit()
				}
			}
		}
	}
}

function periododoc(){
	var data
	if (frmCalendario.periodo[0].checked==true){
		data=frmCalendario.periodo[0].value.split("|");
		frmCalendario.fechaI.value=data[0];
		frmCalendario.fechaV.value=data[1];
	}
	if (frmCalendario.periodo[1].checked==true){
		data=frmCalendario.periodo[1].value.split("|");
		frmCalendario.fechaI.value=data[0];
		frmCalendario.fechaV.value=data[1];
	}
	if (frmCalendario.periodo[2].checked==true){
		data=frmCalendario.periodo[2].value.split("|");
		frmCalendario.fechaI.value=data[0];
		frmCalendario.fechaV.value=data[1];
	}
}

function valida_data(str)
{
	var dia, mes, ano
	if(str.length < 10)
		return false
	dia = str.substr(0, 2)
	mes = str.substr(3, 2)
	ano = str.substr(6, 4)
	if((str.charAt(2) != '/') || (str.charAt(5) != '/') || (!enumero(dia)) || (!enumero(mes)) || (!enumero(ano)))
		return false
	if(!valida_data1(dia, mes, ano))
		return false
	return true
}

function valida_data1(idia, imes, iano)
{
	if ((idia > 31) || (idia < 01) || (imes > 12) || (imes < 01) || (iano == 0000))
		return (false);
	if (((imes == 04) || (imes == 06) || (imes == 09) || (imes == 11)) && (idia >30))
		return (false);
	if ((imes == 02) && (idia > 29))
		return (false);
	if (( iano < 1900 ) || ( iano > 2100 ))
		return (false);
	if ((!bissexto(iano)) && (imes == 02) && (idia == 29))
		return (false);
	return (true);
}

function bissexto(iano){
	if (((iano % 4)==0) && ((iano % 100)!=0) || ((iano % 400)==0))
		return (true);
	else
		return (false);
}

function enumero(str)
{
	var i
	for(i = 0; i < str.length; i++)
		if((str.charAt(i) < '0') || (str.charAt(i) > '9'))
			return false
	return true	
}

//*****************************************************************************
//Objetivo:					Valida o Periodo de Pesquisa
//Entradas:					dtmMovimento - Data do ultimo Movimento
//							dtmPeriodo - Periodo Disponivel para consulta
//							intPeriodo - Máximo de Dias para consulta. 
//							intLang - 1 - Port , 2 - Ingles
//Saída:					dtmInicio - Periodo Disponivel para consulta
//*****************************************************************************

function validaPeriodo(dtmMovimento,dtmPeriodo,intPeriodo,intLang)
{
   
   var intQuantDiasDef = intPeriodo*1000*60*60*24;  // Quantidade de dias do Definidos para consulta.
   var intQuantDiasHist = (dtmMovimento - dtmPeriodo); // Quantidade de dias do Historico
   var intQuantDias; // Quantidade de dias
   
   //Se o Periodo for uma data e os Dias no Historico forem menores que zero
   if (!(isNaN(dtmPeriodo)) && intQuantDiasHist > 0)
   {
        //Se o Periodo for uma data e os Dias no Historico forem menores que zero                       
        if(intQuantDiasHist >= intQuantDiasDef )
        {
            intQuantDias = intQuantDiasDef; // recebe a quantidade de milessegundos
        }
        else
        {
            intQuantDias = intQuantDiasHist; // recebe a quantidade de milessegundos
        }   
        
        dtmInicio  = new Date(dtmMovimento - intQuantDias) // recebe a data inicio
        
        return dtmInicio;
    }
    
    else if (intQuantDiasHist <= 0)
    {
        if( intLang == 1)
        {
            alert ("O periodo disponível para consulta é inválido ou existe apenas uma data disponível para consulta.");
        }
        else
        {
            alert ("Available period for consult is invalid or only one date is available");
        }
        
        cerrarCalendario();
        return (false)
    }
    else
    {
        intQuantDias = intQuantDiasDef; // recebe a quantidade de milessegundos
        
        dtmInicio  = new Date(dtmMovimento - intQuantDias) // recebe a data inicio
        
        return dtmInicio;
    
    }
    
         
}
