var ValidChars = "0123456789";
var alerta=true;
var dia=0, mes=0, ano=0;

function IsData(dia, mes, ano) { // usar Janeiro=1
  hoje=new Date();
  entrada=new Date(ano,mes-1,dia);
  if (entrada>hoje) return false;
  timeA = new Date(ano, mes, 1);
  timeB = new Date(timeA - 86400000);
  if (dia>timeB.getDate()) return false;
  return true;
}

function Soma30Anos() { // usar logo após IsData2
  s=new Date(30+(+ano),mes-1,dia);
  var dia137=(s.getDate())+'';
  var mes137=(s.getMonth()+1)+'';
  if (dia137.length==1) dia137='0'+dia137;
  if (mes137.length==1) mes137='0'+mes137;
  return dia137+'/'+mes137+'/'+s.getFullYear();
}

function IsNumber(campo) {
  sText = campo.value;
  var IsNumber=true;
  var Char;
  for (i = 0; i < sText.length && IsNumber == true; i++) {
    Char = sText.charAt(i);
    if (ValidChars.indexOf(Char) == -1) {
      IsNumber = false;
    }
  }
  return IsNumber;
}

function IsData2(campo, dataMinima) { // PASSAR DATA MÍNIMA: AAAA/MM/DD (retorna false se a data passada > data atual)
alerta=false;
ValidChars = "0123456789/";
if (!IsNumber(campo) || campo.value.length<4) {
retorna(campo);
return false;
}
var dt=campo.value;
var temp="";

if (dt.length==4) { // mmaa
 //if (dt.substring(2)>5) temp='01/'+dt.substring(0,2)+'/19'+dt.substring(2);
 temp='01/'+dt.substring(0,2)+'/20'+dt.substring(2);
}
else if (dt.length==5) { // mm/aa
 //if (dt.substring(2)>5) temp='01/'+dt.substring(0,2)+'/19'+dt.substring(3);
 temp='01/'+dt.substring(0,2)+'/20'+dt.substring(3);
}
else if (dt.length==6) { // ddmmaa
 //if (dt.substring(4)>5) temp=dt.substring(0,2)+'/'+dt.substring(2,4)+'/19'+dt.substring(4);
 temp=dt.substring(0,2)+'/'+dt.substring(2,4)+'/20'+dt.substring(4);
}
else if (dt.length==8) { // ddmmaaaa ou dd/mm/aa
 if (dt.charAt(2)!='/') temp=dt.substring(0,2)+'/'+dt.substring(2,4)+'/'+dt.substring(4);
 else {
  //if (dt.substring(6)>5) temp=dt.substring(0,2)+'/'+dt.substring(3,5)+'/19'+dt.substring(6);
  temp=dt.substring(0,2)+'/'+dt.substring(3,5)+'/20'+dt.substring(6);
 }
}
else if (dt.length==10) { // dd/mm/aaaa
temp=dt.substring(0,2)+'/'+dt.substring(3,5)+'/'+dt.substring(6);
}

campo.value=temp;

dia=temp.substring(0,2);
mes=temp.substring(3,5);
ano=temp.substring(6);

if (mes>12) {
retorna(campo);
return false;
}

if(dia==0|| mes==0 || ano==0) {
retorna(campo);
return false;
}

hoje=new Date();
entrada=new Date(ano,mes-1,dia);
if (entrada>hoje) {
  alert('Data maior que a atual!');
  retorna(campo);
  return false;
}
minima=new Date(dataMinima);
if (entrada<minima) {
  alert ('Data mínima aceita: '+dataMinima.substring(8)+'/'+
    dataMinima.substring(5,7)+'/'+dataMinima.substring(0,4));
  campo.select();
  campo.focus();
  return false;
}

timeA = new Date(ano, mes, 1);
timeDifference = timeA - 86400000;
timeB = new Date(timeDifference);
var diasnoMes = timeB.getDate();
if(dia > diasnoMes) {
retorna(campo);
return false;
}
else return true;
}

function IsData3(campo, dataMinima) { // PASSAR DATA MÍNIMA: AAAA/MM/DD (NÂO retorna false se a data passada > data atual)
alerta=false;
ValidChars = "0123456789/";
if (!IsNumber(campo) || campo.value.length<4) {
retorna(campo);
return false;
}
var dt=campo.value;
var temp="";

if (dt.length==4) { // mmaa
 //if (dt.substring(2)>5) temp='01/'+dt.substring(0,2)+'/19'+dt.substring(2);
 temp='01/'+dt.substring(0,2)+'/20'+dt.substring(2);
}
else if (dt.length==5) { // mm/aa
 //if (dt.substring(2)>5) temp='01/'+dt.substring(0,2)+'/19'+dt.substring(3);
 temp='01/'+dt.substring(0,2)+'/20'+dt.substring(3);
}
else if (dt.length==6) { // ddmmaa
 //if (dt.substring(4)>5) temp=dt.substring(0,2)+'/'+dt.substring(2,4)+'/19'+dt.substring(4);
 temp=dt.substring(0,2)+'/'+dt.substring(2,4)+'/20'+dt.substring(4);
}
else if (dt.length==8) { // ddmmaaaa ou dd/mm/aa
 if (dt.charAt(2)!='/') temp=dt.substring(0,2)+'/'+dt.substring(2,4)+'/'+dt.substring(4);
 else {
  //if (dt.substring(6)>5) temp=dt.substring(0,2)+'/'+dt.substring(3,5)+'/19'+dt.substring(6);
  temp=dt.substring(0,2)+'/'+dt.substring(3,5)+'/20'+dt.substring(6);
 }
}
else if (dt.length==10) { // dd/mm/aaaa
temp=dt.substring(0,2)+'/'+dt.substring(3,5)+'/'+dt.substring(6);
}

campo.value=temp;

dia=temp.substring(0,2);
mes=temp.substring(3,5);
ano=temp.substring(6);

if (mes>12) {
retorna(campo);
return false;
}

if(dia==0|| mes==0 || ano==0) {
retorna(campo);
return false;
}

hoje=new Date();
entrada=new Date(ano,mes-1,dia);

minima=new Date(dataMinima);
if (entrada<minima) {
  alert ('Data mínima aceita: '+dataMinima.substring(8)+'/'+
    dataMinima.substring(5,7)+'/'+dataMinima.substring(0,4));
  campo.select();
  campo.focus();
  return false;
}

timeA = new Date(ano, mes, 1);
timeDifference = timeA - 86400000;
timeB = new Date(timeDifference);
var diasnoMes = timeB.getDate();
if(dia > diasnoMes) {
retorna(campo);
return false;
}
else return true;
}

function retorna(campo) {
 alert ("Data inválida!\n\nFormato aceito:\n\nmmaa, ddmmaa, ddmmaaaa,\nmm/aa, dd/mm/aa ou dd/mm/aaaa");
 campo.select();
 campo.focus();
 alerta=true;
}

function IsEmpty(campo)
{
  if(campo.value !='')
    return false;
  else
  {
    campo.focus();
    return true;
  }
}

function IsEmail(email)
{
  var ValidChars = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM._-@[]";
  var Char;
  for (i = 0; i < email.length; i++)
  {
    Char = email.charAt(i);
    if (ValidChars.indexOf(Char) == -1)
    {
      return false;
    }
  }

  with (email)
  {
    apos=indexOf("@");
    dotpos=lastIndexOf(".");
    lastpos=length-1;
    if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2)
      return false;
    else
      return true;
  }
}

function IsMoney(campo)
{
  ValidChars = "0123456789.,";
  if(IsNumber(campo))
  {
    if (campo.value>99999999.99)
    {
      return false;
    }
    return true;
  }
  return false;
}

function validaCPF(campo)
{

  var i;
  s = campo.value;
  var c = s.substr(0,9);
  var dv = s.substr(9,2);
  var d1 = 0;

  for (i = 0; i < 9; i++)
    d1 += c.charAt(i)*(10-i);

  if (d1 == 0)
  {
    return false;
  }

  d1 = 11 - (d1 % 11);
  if (d1 > 9) d1 = 0;

  if (dv.charAt(0) != d1)
  {
    return false;
  }
  d1 *= 2;
  for (i = 0; i < 9; i++)
    d1 += c.charAt(i)*(11-i);

  d1 = 11 - (d1 % 11);
  if (d1 > 9) d1 = 0;
  if (dv.charAt(1) != d1)
  {
    return false;
  }
  return true;
}

//function IsCNPJ(campo)
function IsCNPJ(valor) {
//	sValor1 = campo.value;
sValor1=valor;
	sValor1 = sValor1.toString();

	sValor = '';
	xpqp = sValor1.length
	for (iputo = 0; iputo < xpqp; iputo++)
	{
		sAux = sValor1.charAt(iputo);
		if (sAux < '0' || sAux > '9')
		{
			if (sAux != '.' && sAux != '-' && sAux != '/')
			{
//				campo.focus();
				return false;
			}
		}
		else
			sValor = sValor + sAux
	}
	if (sValor != '')
	{
		if (isNaN(sValor) || sValor.length != 14)
		{
//			campo.focus();
			return false;
		}
		soma = (sValor.substr(0,1) * 5) + (sValor.substr(1,1) * 4) + (sValor.substr(2,1) * 3) + (sValor.substr(3,1) * 2) + (sValor.substr(4,1) * 9) + (sValor.substr(5,1) * 8) + (sValor.substr(6,1) * 7) + (sValor.substr(7,1) * 6) + (sValor.substr(8,1) * 5) + (sValor.substr(9,1) * 4) + (sValor.substr(10,1) * 3) + (sValor.substr(11,1) * 2)
		dv1 = (soma % 11);
		if (dv1 == 0 || dv1 == 1)
			dv1 = 0;
		else
			dv1 = 11 - dv1;
		soma = (sValor.substr(0,1) * 6) + (sValor.substr(1,1) * 5) + (sValor.substr(2,1) * 4) + (sValor.substr(3,1) * 3) + (sValor.substr(4,1) * 2) + (sValor.substr(5,1) * 9) + (sValor.substr(6,1) * 8) + (sValor.substr(7,1) * 7) + (sValor.substr(8,1) * 6) + (sValor.substr(9,1) * 5) + (sValor.substr(10,1) * 4) + (sValor.substr(11,1) * 3)  + (dv1 * 2)
		dv2 = (soma % 11);
		if (dv2 == 0 || dv2 == 1)
			dv2 = 0;
		else
			dv2 = 11 - dv2;
		if (sValor.substr(12,1) != dv1 || sValor.substr(13,1) != dv2)
		{
//			campo.focus();
			return false;
		}
	}
//	campo.value=sValor;
	return true;
}

function firstFocus() {
   if (document.forms.length > 0) {
      var TForm = document.forms[0];
      for (i=0;i<TForm.length;i++) {
         if ((TForm.elements[i].type=="text")||
           (TForm.elements[i].type=="textarea")||
           (TForm.elements[i].type.toString().charAt(0)=="s"))
         {
            document.forms[0].elements[i].focus();
            break;
         }
      }
   }
}

function tabOnEnter (field, evt) {
     var keyCode = document.layers ? evt.which : document.all ? evt.keyCode : evt.keyCode;
      if (keyCode != 13) return true;
      else {
        var t=getNextElement(field);
        if (t.type=="text") t.select();
        t.focus();
        return false;
      }
}

function getNextElement (field)
{
    var frm = field.form;
    var bIs = false;
    for (var e=0;e<frm.length;e++) {
      if (frm[e].type!="hidden" && bIs) return frm.elements[e];
      if (field==frm[e]) bIs=true;
    }
}
function round(x,n) {
	if(n==null) n=0;
	return Math.round(x*Math.pow(10,n))/Math.pow(10,n);
}
function virgulaforponto(field)
{
   field.value=field.value.replace(',','.');
   return field.value;
}

function firstFocus() {
   if (document.forms.length > 0) {
      var TForm = document.forms[0];
      for (i=0;i<TForm.length;i++) {
         if ((TForm.elements[i].type=="text")||
           (TForm.elements[i].type=="textarea")||
           (TForm.elements[i].type.toString().charAt(0)=="s")) {
            document.forms[0].elements[i].focus();
            break;
         }
      }
   }
}
function isIp(campo) {
  ValidChars = "0123456789.;-";
  if (!IsNumber(campo)) return false;
  return true;
}
function isHexa(campo) {
  ValidChars = "0123456789ABCDEF";
  if (!IsNumber(campo)) return false;
  return true;
}
function DesabilitaLinks() {
/*	
       for (i=0;i<document.links.length;i++) {
         document.links[i].disabled=true;
         document.links[i].onclick=cancel_action;
       }
       if (document.forms[0]!=null)  {
	if (document.all || document.getElementById) {
	  for (i = 0; i < document.forms[0].length; i++) {
          	nome=document.forms[0].elements[i].type.toLowerCase();
        	if (nome=="submit" || nome=="button") document.forms[0].elements[i].disabled = true;
	  }
	 }
       }
	document.body.style.cursor='wait';
	return false;
	*/
}
function cancel_action() {
	return false;
}

