function ValidaData(valor)
{
    var texto, i, t, c, erro, dd, mm, aaaa, Dia, Mes, Ano;
    erro=false;
	texto=valor.value;

    t = texto.length;

    if (t == 10) 
       {  
          for (i=0;i<t;i++) {
		      c=texto.charAt(i);
		      if ((i==0) || (i==1) || (i==3) || (i==4) || (i==6) || (i==7) || (i==8) || (i==9)) {
			     if (!(c == '0' || c == '1' || c == '2' || c == '3' || c == '4' ||
					   c == '5' || c == '6' || c == '7' || c == '8' || c == '9'))
					   {
					     msgaux='Digite a data no formato dd/mm/aaaa\n';
					     erro=true;
					   }
			  }
			  if ((i==2) || (i==5))
			     {
		 	        if (!(c=='/'))
			           {
			             erro=true;
			             msgaux='Digite a data no formato dd/mm/aaaa\n';
			           }
				 }
           }  

		   dd=texto.charAt(0) + texto.charAt(1);
		   mm=texto.charAt(3) + texto.charAt(4);
		   aaaa=texto.charAt(6) + texto.charAt(7) + texto.charAt(8) + texto.charAt(9);
		   
		   Dia=parseInt(dd,10);
		   Mes=parseInt(mm,10);
		   Ano=parseInt(aaaa,10);

   		   if ((Dia<1) || (Dia>31))
		   {//FAIXA DO DIA INVALIDO
               erro=true;
               msgaux='Digite dias de 1 a 31!\n';
		   }//if
		   if ((Mes<1) || (Mes>12))
		   {//FAIXA DO MES INVALIDA
               erro=true;
               msgaux='Digite meses de 1 a 12!\n';
		   }//if
		   if ((Dia>=31) && ((Mes==4) || (Mes==6) || (Mes==9) || (Mes==11)))
		   {//DIA INVALIDO PARA ESTE MES
               erro=true;
               msgaux='Dia inválido para este mês!\n';
		   }//if
		   if (Mes==2)
		   {//MES DE FEVEREIRO
			   if (Dia>=30)
			   {//DIA INVALIDO PARA FEVEREIRO
                  erro=true;
                  msgaux='Dia inválido para o mês de Fevereiro!\n';
			   }//if
			   if ((Dia==29) && (((Ano % 4) != 0) || (((Ano % 100) == 0) && ((Ano % 400) != 0))))
			   {//NAO E' BISSEXTO
                  erro=true;
                  msgaux='Dia inválido para este mês!\n';
			   }//if
		   }//if  
		   if (Ano<1900) {
              erro=true;
              msgaux='Ano inválido !\n';
		   }
	   }
	else 
       {
	     if (!(t == 0))
		 {
 	        erro=true;
            msgaux='Digite a data no formato dd/mm/aaaa\n';
		 }
       }
   
	if (erro) {
	   valor.focus();
	   alert(msgaux);
	}

    return !(erro);  
}

function DateDiff(TipoData,date1,date2)
{
	var Ano1 = date1.substring(6,10);
	var Mes1 = date1.substring(3,5);
	var Dia1 = date1.substring(0,2);
	var Hora1 = date1.substring(11,13);
	var Minuto1 = date1.substring(14,16);
	var Segundo1 = date1.substring(17,19);
	var Ano2 = date2.substring(6,10);
	var Mes2 = date2.substring(3,5);
	var Dia2 = date2.substring(0,2);
	var Hora2 = date2.substring(11,13);
	var Minuto2 = date2.substring(14,16);
	var Segundo2 = date2.substring(17,19);
	//	alert(Hora2)
	oData1 = new Date(Ano1,Mes1-1,Dia1,Hora1,Minuto1,Segundo1)
	oData2 = new Date(Ano2,Mes2-1,Dia2,Hora2,Minuto2,Segundo2)
	switch (TipoData)
	{
		case "d" : //Dias
		{
			//alert(DataIngles2);
			return Math.floor((oData2-oData1)/24/60/60/1000)
		}
		break;
		case "h" : //Horas
		{
			return Math.floor((oData2-oData1)/60/60/1000)
		}
		break;
		case "n" : //Minutos
		{
			return Math.floor((oData2-oData1)/60/1000)
		}
		break;
		case "s" : //Segundos
		{
			return Math.floor((oData2-oData1)/1000)
		}
		break;
	}
}

function DateAdd(TipoData,iNum,date1)
{
	var Ano1 = date1.substring(6,10);
	var Mes1 = date1.substring(3,5);
	var Dia1 = date1.substring(0,2);
	var Hora1 = date1.substring(11,13);
	var Minuto1 = date1.substring(14,16);
	var Segundo1 = date1.substring(17,19);
	oData1 = new Date(Ano1,Mes1-1,Dia1,Hora1,Minuto1,Segundo1)
	//oData1.setDate(oData1.getDate() + iNum)
	//alert(oData1.getMonth())
	switch (TipoData)
	{
		case "d" : //Dias
		{
			//alert(DataIngles2);
			oData1.setDate(oData1.getDate() + iNum);
		}
		break;
		case "h" : //Horas
		{
			oData1.setHours(oData1.getHours() + iNum);
		}
		break;
		case "n" : //Minutos
		{
			oData1.setMinutes(oData1.getMinutes() + iNum);
		}
		break;
		case "s" : //Segundos
		{
			oData1.setSeconds(oData1.getSeconds() + iNum);
		}
		break;
	}
	//alert(oData1.getDate())
	Ano1 = oData1.getYear()
	if ((oData1.getMonth()+1)<10) { Mes1 = '0' + (oData1.getMonth()+1) } else { Mes1 = (oData1.getMonth()+1); }
	if (oData1.getDate()<10) { Dia1 = '0' + oData1.getDate() } else { Dia1 = oData1.getDate(); }
	if (oData1.getHours()<10) { Hora1 = '0' + oData1.getHours() } else { Hora1 = oData1.getHours(); }
	if (oData1.getMinutes()<10) { Minuto1 = '0' + oData1.getMinutes() } else { Minuto1 = oData1.getMinutes(); }
	if (oData1.getSeconds()<10) { Segundo1 = '0' + oData1.getSeconds() } else { Segundo1 = oData1.getSeconds(); }
	return (Dia1 + '/' + Mes1 + '/' + Ano1)
}