var dateDif = {
// Fonte: http://www.bigbold.com/snippets/posts/show/2501
	dateDiff: function(strDate1,strDate2){
		return (((Date.parse(strDate2))-(Date.parse(strDate1)))/(24*60*60*1000)).toFixed(0);
	}
}
function diasEntreDatas(dataInicial, dataFinal) {
// Declarações de variáveis
	var mes, data, dataAtual, dataInicial, arrdataInicial, novadataInicial, diasEntreDatas;
// Lista dos meses em inglês
	mes = [];
	mes[0] = "January";
	mes[1] = "February";
	mes[2] = "March";
	mes[3] = "April";
	mes[4] = "May";
	mes[5] = "June";
	mes[6] = "July";
	mes[7] = "August";
	mes[8] = "September";
	mes[9] = "October";
	mes[10] = "November";
	mes[11] = "December";

// Instancia o objeto Date
	data = new Date();

// Pega a data de hoje no seguinte formato: November 22 2006
	dataAtual = mes[data.getMonth()] + ' ' + data.getDate() + ' ' + data.getFullYear();

// Pega a data informada pelo usuário
// dataInicial = document.getElementById('dtInicial').value;
// dataFinal   = document.getElementById('dtFinal').value;

// Separa a data informada pelo usuário através da barra /
	arrdataInicial = dataInicial.split('/');
	arrdataFinal = dataFinal.split('/');

// Formata a data para o seguinte formato: November 22 2006
	novadataInicial = mes[(arrdataInicial[1] - 1)] + ' ' + arrdataInicial[0] + ' ' + arrdataInicial[2];
	novadataFinal = mes[(arrdataFinal[1] - 1)] + ' ' + arrdataFinal[0] + ' ' + arrdataFinal[2];


// Saberemos o total de dias entre: a data informada pelo usuário e a data atual
	diasEntreDatas = dateDif.dateDiff(novadataInicial, novadataFinal);
//	alert(diasEntreDatas);
	return diasEntreDatas;
}

/*--------------------------------------------------------------------------------------------*/
function ValidaData(Campo, Detalhe)
{
	var sCampo = Campo.value
	
	var Dia = sCampo.substring(0,2)
	var Mes = sCampo.substring(3,5)
	var Ano = sCampo.substring(6,10)

	var bReturn = true
		
	if (sCampo != "")
	{
		if (sCampo.length > 10 || sCampo.length < 10)
		{
			window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente com 10 (dez) dígitos.\nFormato DD/MM/AAAA")
			Campo.value = ""
			Campo.focus()
			bReturn = false
		}
		else
		if (sCampo.charAt(2) != "/" || sCampo.charAt(5) != "/")
		{
			window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente no formato DD/MM/AAAA")
			Campo.value = ""
			Campo.focus()
			bReturn = false
		}
		else 
		{
			if (Dia < "01" || Dia > "31")
			{
				window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente no formato DD/MM/AAAA")
				Campo.value = ""
				Campo.focus()
				bReturn = false
			}
			else
			if (Mes < "01" || Mes > "12")
			{
				window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente no formato DD/MM/AAAA")
				Campo.value = ""
				Campo.focus()
				bReturn = false
			}
			else
			if (Ano < "1900" || Ano > "9999")
			{
				window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente no formato DD/MM/AAAA\n\nANO tem que ser maior que 1900!")
				Campo.value = ""
				Campo.focus()
				bReturn = false
			}
			else
			if ((Mes == "04" || Mes == "06" || Mes == "09" || Mes == "11") && (Dia > "30"))
			{
				window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente.")
				Campo.value = ""
				Campo.focus()
				bReturn = false
			}
			else
			if (Mes == "02" && Dia > "29")
			{
				window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente.")
				Campo.value = ""
				Campo.focus()
				bReturn = false
			}
/*			else
			{	
				var Bis = 0
				if (Ano |= "0001")
				{
					Bis = Ano / 4
				}
				if ((Bis |= 0) && (Mes == "02") && (Dia > "28"))
				{
					window.alert("A " + Detalhe + " esta invalida.\n\nInforme corretamente.")
					Campo.value = ""
					Campo.focus()
					bReturn = false
				}
			}
*/		}
	}
	return bReturn
}

/*--------------------------------------------------------------------------------------------*/
function DigitaNumero(campo) {

    var data = new String( campo.value );
    var wData = '';
	var cont = 0;
	
	for (i=0; i< data.length ; i++) {
	  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
			  	wData += data.charAt(i);
  	  }
	  else
	  		cont++;
    }
	
	if (cont > 0 )
	{  
    	// Atualiza o campo 
    	campo.value = wData;
	}

}

/*--------------------------------------------------------------------------------------------*/
function DigitaValor(campo) {

    var data = new String( campo.value );
    var wData = '';
	var cont_neg = 0;
	var cont = 0;
	
	for (i=0; i< data.length ; i++) {
	  if (i == 0) {	  
		  if ( data.charAt(i) == '-' )	{
			  	wData += data.charAt(i);
				cont_neg ++;
	  	  }
		  else {
		  	if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' ){
				wData += data.charAt(i);
			}
			else {
				if ( data.charAt(i) == '.'  || data.charAt(i) == ',' ) {
					wData += '0,';
				}
				cont++;
			}
		  }
	  }
	  else {
		  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
				  	wData += data.charAt(i);
	  	  }
		  else {
	  		if ( data.charAt(i) == ',' )	
			{
				if ( wData.indexOf(',') == -1 )
				{
				  	wData += data.charAt(i);
				}
				else
				{
					cont ++;
				}
			}	  
			else if ( data.charAt(i) == '.' )
			{
				if ( wData.indexOf(',') == -1 )
				{
				  	wData += ',';
					cont ++;
				}
				else
				{
					cont ++;
				}
			}

			else
				cont ++;	 
		  }	
	  }
	}

	if ( cont > 0 ) 
	{	  
    	// Atualiza o campo 
	    campo.value = wData;
	}

}

/*--------------------------------------------------------------------------------------------*/
function DigitaData(campo) {
    var data = new String( campo.value );
    var wData = '';
	var cont = 0;
	
    for (i=0; i< data.length ; i++) {

	  if (i <= 1) {
		  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
			  	wData += data.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }
	  
	  if (i == 2) {	  
		  if ( data.charAt(i) == '/' )	{
			  	wData += data.charAt(i);
	  	  }	  
		  else {
			  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
			  		wData += '/';
				  	wData += data.charAt(i);
					cont ++;
			  }
			  else {
			  		wData += '/';			  
					cont ++;
			  }
	  	  }
	  }

	  if (i > 2 && i <= 4) {
		  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
			  	wData += data.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }	  
	  
	  if (i == 5) {	  
		  if ( data.charAt(i) == '/' )	{
			  	wData += data.charAt(i);
	  	  }	  
		  else {
			  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
			  		wData += '/';
				  	wData += data.charAt(i);
					cont++;
			  }
			  else {
			  		wData += '/';
					cont++;
			  }
	  	  }
	  }

	  if (i > 5 && i <= 9) {
		  if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
			  	wData += data.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }
	  
	  if (i > 9 )
	  {
	  		cont++;
	  }	  	  

    }
	
	if ( cont > 0 )
	{
	    // Atualiza o campo 
    	campo.value = wData;
	}
}
/*--------------------------------------------------------------------------------------------*/
function DigitaHora(campo) {
	var data = new String( campo.value );
	var wData = '';
	var cont = 0;
	
	for (i=0; i< data.length ; i++) {

		if (i <= 1) {
			if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
				wData += data.charAt(i);
			} else {
				cont++;
			}
		}

		if (i == 2) {
			if (data.charAt(i) == ':' )	{
				wData += data.charAt(i);
			} else {
				if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
					wData += ':';
					wData += data.charAt(i);
					cont ++;
				} else {
					wData += ':';			  
					cont ++;
				}
			}
		}

		if (i > 2 && i <= 4) {
			if ( data.charAt(i) >= '0' && data.charAt(i) <= '9' )	{
				wData += data.charAt(i);
			} else {
				cont++;
			}
		}	  

		if (i > 5 ) {
			cont++;
		}	  	  

		if (wData.length == 2 && (i+1) == data.length) {
			if (parseInt(wData) > 23) {
				wData = '';
				cont++;
			}
		}

		if (wData.length == 5 && (i+1) == data.length) {
			if (parseInt(wData.substring(3)) > 59) {
				wData = wData.substring(0,3);
				cont++;
			}
		}

	}
	
	if ( cont > 0 ) {
		campo.value = wData;
	}
}

/*--------------------------------------------------------------------------------------------*/
function DigitaCPF(campo) {
    var CPF = new String(campo.value);
    var wCPF = '';
	var cont = 0;
	
    for (i=0; i< CPF.length ; i++) {

	  if (i <= 2) {
		  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  	wCPF += CPF.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }
	  
	  if (i == 3) {	  
		  if ( CPF.charAt(i) == '.' )	{
			  	wCPF += CPF.charAt(i);
	  	  }	  
		  else {
			  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  		wCPF += '.';
				  	wCPF += CPF.charAt(i);
					cont ++;
			  }
			  else {
			  		wCPF += '.';			  
					cont ++;
			  }
	  	  }
	  }

	  if (i > 3 && i <= 6) {
		  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  	wCPF += CPF.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }	  
	  
	  if (i == 7) {	  
		  if ( CPF.charAt(i) == '.' )	{
			  	wCPF += CPF.charAt(i);
	  	  }	  
		  else {
			  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  		wCPF += '.';
				  	wCPF += CPF.charAt(i);
					cont++;
			  }
			  else {
			  		wCPF += '.';
					cont++;
			  }
	  	  }
	  }

	  if (i > 7 && i <= 10) {
		  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  	wCPF += CPF.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }
	  
	  if (i == 11) {	  
		  if ( CPF.charAt(i) == '-' )	{
			  	wCPF += CPF.charAt(i);
	  	  }	  
		  else {
			  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  		wCPF += '-';
				  	wCPF += CPF.charAt(i);
					cont++;
			  }
			  else {
			  		wCPF += '-';
					cont++;
			  }
	  	  }
	  }
	  
	  if (i > 11) {
		  if ( CPF.charAt(i) >= '0' && CPF.charAt(i) <= '9' )	{
			  	wCPF += CPF.charAt(i);
	  	  }
		  else
		  {
		  		cont++;
		  }
	  }
	  
    }
	
	if ( cont > 0 )
	{
	    // Atualiza o campo 
    	campo.value = wCPF;
	}
}	

/*--------------------------------------------------------------------------------------------*/
function ValidaCPF(campo_cpf)
{

   var campo = campo_cpf.value;
   var digito = campo.toString();


   if (campo_cpf.value == '000.000.000-00')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '111.111.111-11')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '222.222.222-22')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '333.333.333-33')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '444.444.444-44')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '555.555.555-55')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '666.666.666-66')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '777.777.777-777')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '888.888.888-88')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	

   if (campo_cpf.value == '999.999.999-99')
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }	
	

   // DIGITO 1
   var soma1 = 0
       soma1 = soma1 + 10 * digito.charAt(0);
       soma1 = soma1 +  9 * digito.charAt(1);
       soma1 = soma1 +  8 * digito.charAt(2);
       soma1 = soma1 +  7 * digito.charAt(4);
       soma1 = soma1 +  6 * digito.charAt(5);
       soma1 = soma1 +  5 * digito.charAt(6);
       soma1 = soma1 +  4 * digito.charAt(8);
       soma1 = soma1 +  3 * digito.charAt(9);
       soma1 = soma1 +  2 * digito.charAt(10);
   
   var divisao1    = soma1 / 11
   
   var multiplica1 = parseInt(divisao1,10) * 11
   
   var resto1      = soma1 - multiplica1
   
   if (resto1 <= 1) 
   {
      var digi1 = 0
   } 
   else 
   {
      var digi1 = 11 - resto1
   }
 

   // DIGITO 2
   var soma2 = 0
       soma2 = soma2 + 11 * digito.charAt(0);
       soma2 = soma2 + 10 * digito.charAt(1);
       soma2 = soma2 +  9 * digito.charAt(2);
       soma2 = soma2 +  8 * digito.charAt(4);
       soma2 = soma2 +  7 * digito.charAt(5);
       soma2 = soma2 +  6 * digito.charAt(6);
       soma2 = soma2 +  5 * digito.charAt(8);
       soma2 = soma2 +  4 * digito.charAt(9);
       soma2 = soma2 +  3 * digito.charAt(10);
       soma2 = soma2 +  2 * digi1       

   var divisao2    = soma2 / 11

   var multiplica2 = parseInt(divisao2,10) * 11

   var resto2      = soma2 - multiplica2

   if (resto2 <= 1) 
   {
      var digi2 = 0
   } 
   else 
   {
      var digi2 = 11 - resto2
   }
   
   if (digito.charAt(12) == digi1.toString() & digito.charAt(13) == digi2.toString()) 
   {
      return(true)
   } 
   else 
   {
      alert("CPF inválido.");
      campo_cpf.focus();
      return(false)
   }
}

/*============================================================================================*/
function DigitaFone(Campo)
{
	fone = Campo.value;
	tamanho = fone.length;
	
	if ( fone == '' )
	{		
		return;
	}
	
	for ( i = 0; i <= tamanho; i++ )
	{
		if ( i == 0 && fone.charAt(i) != "(" )
		{
			fone = "(" + fone;
		}
		if ( i == 3 && fone.charAt(i) != ")" )
		{
			fone = fone + ")";
		}
		/*
		if ( i == 4 && fone.charAt(i) != " " )
		{
			fone = " " + fone;
		}
		*/		
		if ( i == 8 && fone.charAt(i) != "." )
		{
			fone = fone + ".";
		}
	}

	Campo.value = fone;	
}

/*============================================================================================*/

//Verifica se e-mail é válido.
function mail(email) {
	var x = email;
	var y = '^\\w+([\\.-_]?\\w+)*@\\w+([\\.-_]?\\w+)*(\\.\\w{2,4})$';
	var resultado = 0;
	resultado = x.search(y);
		if (resultado == -1){
			return true;
		}
}

/*============================================================================================*/

function popup(url,	width, height)
{
	nova=window.open(url,"","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width="	+	width	+	",height=" + height);			
}