//password: <INPUT NAME=password TYPE=PASSWORD SIZE=10
//           onKeyPress="return submitenter(this,event)"><BR>

function submitEnter(myfield,e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   {
   myfield.form.submit();
   return false;
   }
else
   return true;
}


// Para formatação decimal dos campos EX: onBlur="formataValorMonetario(this,'2');"
function formataValorMonetario(campooriginal,decimais)
{
  var posicaoPontoDecimal;
  var campo = '';
  var resultado = '';
  var pos,sep,dec;

 if(campooriginal.value == '') { campooriginal.value = 0; }

//Retira possiveis separadores de milhar
  for (pos=0; pos < campooriginal.value.length; pos ++)
  {
    if (campooriginal.value.charAt(pos)!='.')
        campo = campo + campooriginal.value.charAt(pos);
  }     

//Formata valor monetário com decimais
  posicaoPontoDecimal = campo.indexOf(',');
  if (posicaoPontoDecimal != -1)
   {
      sep = 0;
      for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }

        resultado = campo.charAt(pos) + resultado;   
      }

      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
      
         pos=posicaoPontoDecimal+1;
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
           if (pos < campo.length)
           {
              resultado = resultado + campo.charAt(pos);
              pos++;
           }
           else
              resultado = resultado + '0';   
         }

      } // trata decimais
   }
   // Trata valor monetário sem decimais
   else
   {
      sep = 0;
      for (pos=campo.length-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }
        resultado = campo.charAt(pos) + resultado;   
      }
      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
              resultado = resultado + '0';   
         }
      } // trata decimais
   }
   campooriginal.value = resultado;
}

function Pesquisar(pagina)
{
 Janela = window.open(""+ pagina +"","Pesquisa", "scrollbars=yes,status=no,tollbar=no");
 Janela.focus();
 }
   
   // zeros a esquerda
function strZero(strzero, n)
 {
 var num = strzero.value;
 var s = n;
 var c = '';
 c = c + num;
 if(num != '')
  {	
	if(c.length < s)
	 {
      for(var i=0; c.length < s; i++)
	   {
         c = '0' + c;
        }
     }
	 }
   strzero.value = c;
  }


function formataReaisTamanho(fld, milSep, decSep, e, tamanho) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;

	if(fld.value.length == tamanho)
		return false;


if (whichCode == 13) return true;  // Enter
key = String.fromCharCode(whichCode);  // Get key value from key code
if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}



// Formata o Número passado no parâmetrto
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+'.'+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + ',' + cents);
}



//onKeyPress="return(currencyFormat(this,'.',',',event))"
// Formata o campo com duas casas decimais
function formataReais2(fld, milSep, decSep, e) {
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;
if (whichCode == 13) return true;  // Enter
key = String.fromCharCode(whichCode);  // Get key value from key code
if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
len = fld.value.length;
for(i = 0; i < len; i++)
if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
aux = '';
for(; i < len; i++)
if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);
aux += key;
len = aux.length;
if (len == 0) fld.value = '';
if (len == 1) fld.value = '0'+ decSep + '0' + aux;
if (len == 2) fld.value = '0'+ decSep + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += milSep;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
fld.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
fld.value += aux2.charAt(i);
fld.value += decSep + aux.substr(len - 2, len);
}
return false;
}

//onKeyPress="return(currencyFormat(this,'.',',',event))"
// Formata o campo com 3 casas decimais
function formataReais3(fld, milSep, decSep, e) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	if (whichCode == 13) return true;  // Enter

	key = String.fromCharCode(whichCode);  // Get key value from key code

	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key

	len = fld.value.length;

		for(i = 0; i < len; i++)
			if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;

	aux = '';


		for(; i < len; i++)
			if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);


	aux += key;
	len = aux.length;
	
	if (len == 0) fld.value = '';
	if (len == 1) fld.value = '0'+ decSep + '00' + aux;
	if (len == 2) fld.value = '0'+ decSep + '0' + aux;

	if (len > 2) {

	aux2 = '';

		for (j = 0, i = len - 4; i >= 0; i--) {
			if (j == 3) {
				aux2 += milSep;
				j = 0;
			}

		aux2 += aux.charAt(i);
		j++;
		}
		
		
	fld.value = '';
	len2 = aux2.length;

		
		for (i = len2; i >= 0; i--)
			fld.value += aux2.charAt(i);
			fld.value += decSep + aux.substr(len - 3, len);
			
			if(fld.value.length == 4)
				fld.value = '0' + fld.value;
		}
	
	return false;
	
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




//onKeyPress="return(currencyFormat(this,'.',',',event))"
// Formata o campo com 4 casas decimais
function formataReais4(fld, milSep, decSep, e) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;

	if (whichCode == 13) return true;  // Enter

	key = String.fromCharCode(whichCode);  // Get key value from key code

	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key

	len = fld.value.length;

		for(i = 0; i < len; i++)
			if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;

	aux = '';


		for(; i < len; i++)
			if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);


	aux += key;
	len = aux.length;
	
	if (len == 0) fld.value = '';
	if (len == 1) fld.value = '0' + decSep + '000' + aux;
	if (len == 2) fld.value = '0' + decSep + '00' + aux;
	if (len == 3) fld.value = '0' + decSep + '0' + aux; // Rodrigo

	if (len > 3) {

	aux2 = '';

		for (j = 0, i = len - 5; i >= 0; i--) {
			if (j == 3) {
				aux2 += milSep;
				j = 0;
			}

		aux2 += aux.charAt(i);
		j++;
		}
		
		
	fld.value = '';
	len2 = aux2.length;

		
		for (i = len2; i >= 0; i--)
			fld.value += aux2.charAt(i);
			fld.value += decSep + aux.substr(len - 4, len);
			
			if(fld.value.length == 5)
				fld.value = '0' + fld.value;
		}
	
	return false;
	
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



function soUpper(o){
  if(/[^ A-Z0-9ÃÂÁÀÄÉÈÊÍÌÓÒÕÚÙÜÇ|_=+[\]()&%$#@!}{?:;><.,\/\-~\^]/.test(o.value)){
    o.value=o.value.toUpperCase().replace(/([^ A-Z0-9ÃÂÁÀÄÉÈÊÍÌÓÒÕÚÙÜÇ|_=+[\]()&%$#@!}{?:;><.,\/\-~\^])/,"");
  }
}

function soDown(o){
  if(/[^ a-z0-9ãâáàäéèêíìóòõúùüç|_=+[\]()&%$#@!}{?:;><.,\/\-~\^]/.test(o.value)){
    o.value=o.value.toLowerCase().replace(/([^ a-z0-9ãâáàäéèêíìóòõúùüç|_=+[\]()&%$#@!}{?:;><.,\/\-~\^])/,"");
  }
}

function soDecimal(o){
  if(/[^0-9.^]/.test(o.value)){
    o.value=o.value.replace(/([^0-9.^])/,"");
  }
}

// Mascara para CEP
function mascaraCep(strcep)
 {
  if(strcep.value != '')
   {
    var ce = strcep.value;
	var c = '';
 	c = c + ce;
	
	 if(ce.length == 5)
	  {
	   c = c + '-';
	   strcep.value = c;
	   }
    }
 }


// Mascara para data OnKeyUp
function mascaraData(fdata)
 {
   if(fdata.value != '')
    {
  var dat = fdata.value; 
  var d = '';

   d = d + dat;

     if(dat.length == 2)
      {
      d = d + '/';
      fdata.value = d;
       } 
     if(dat.length == 5)
      {
      d = d + '/';
      fdata.value = d
       }
     }
  }


// Valida somente números
function onlyDigit(field)
 {
  var num = field.value;
  var n = '';

   for (var i = 0; i < num.length; i++) 
    {
      var ch = num.substr(i, 1);

       if (!isNaN(ch))
        {
          n = n + ch;
         }
     }
     return n;
    }



// Mascara para telefone OnKeyUp
function mascaraTel(mascaratel) 
{ 
	tel = mascaratel.value;
	
    var mytel = ''; 

    mytel = mytel + tel; 
	
    if (mytel.length == 3) { 
        mytel = '(' + mytel + ')'; 
           mascaratel.value = mytel;
    } 
    if (mytel.length == 9) { 
        mytel = mytel + '-'; 
          mascaratel.value = mytel;
    } 
} 


// Valida Email   OnBlur:
function validaEmail(campoemail) {

 if(campoemail.value != "") {

email = campoemail.value;

        var achou_ponto=false;
        var achou_arroba=false;
        var achou_caracter=false;

        for (var i=0; i<email.length; i++) {
                if (email.charAt(i)=="@")
                { 
                  if (email.charAt(i+1)==".")
                  	achou_arroba=false;
                  else
                    achou_arroba=true;
                }
                else if (email.charAt(i)==".") achou_ponto=true;
                else if (email.charAt(i)!=" ") achou_caracter=true;
        }

        if((email.charAt(0)=="W" || email.charAt(0)=="w") &&
           (email.charAt(1)=="W" || email.charAt(1)=="w") &&
           (email.charAt(2)=="W" || email.charAt(2)=="w") &&
           (email.charAt(3)=="."))
        {
            achou_ponto=false;
            achou_caracter=false;
        }
        if(email.charAt(email.length-1)==".")
        {
            achou_ponto=false;
        }	
        
         if(achou_ponto == true && achou_arroba == true && achou_caracter == true)
          {
            return true;
           }
          else
           {
            alert("Informe um E-MAIL válido");
            campoemail.focus();
            campoemail.select();
            return false;
            }
}
}

  function AjustaTela(Wwin,Hwin) { 
	window.resizeTo(Wwin,Hwin); 
	xmax=screen.width; 
	ymax=screen.height; 
	topo=(xmax-Wwin)/2; 
	esq=10;
	moveTo(topo,esq); 
	window.focus(); 
  }
  
   function Pesquisar(pagina)
   {
    Janela = window.open(""+ pagina +"","Print", "scrollbars=yes,status=no,tollbar=no");
    Janela.focus();
   }
   

// função para validar CGC e CPF
function validaCgcCpf(campocgccpf) {
 if(campocgccpf.value != "")
  {
  
  var numero = onlyDigit(campocgccpf);

 if((numero.length) == 11)
  { // Valida o CPF

   cpf = numero;
   
   rcpf1 = cpf.substr(0,9);
   rcpf2 = cpf.substr(9,2);
   d1 = 0;
   for (i=0;i<9;i++)
    d1 += rcpf1.charAt(i)*(10-i);
    d1 = 11 - (d1 % 11);
    if (d1>9) d1 = 0;

  if (rcpf2.charAt(0) != d1)
   {
    campocgccpf.focus();
    campocgccpf.select();
    alert("CPF Inválido");
 	return false;
    }
	
  d1 *= 2;
  for (i=0;i<9;i++)
    d1 += rcpf1.charAt(i)*(11-i);
        d1 = 11 - (d1 % 11);

  if (d1>9) d1 = 0;

  if (rcpf2.charAt(1) != d1)
    return false;

    // mascara o campo de CPF
   var cpf1;
   var cpf2;
   var cpf3;
   var cpf4;
   
   cpf1 = numero.substr(0,3);
   cpf2 = numero.substr(3,3);
   cpf3 = numero.substr(6,3);
   cpf4 = numero.substr(9,2);
   
   campocgccpf.value = cpf1 + "." + cpf2 + "." + cpf3 + "-" + cpf4;
}
   else if((numero.length) == 14) // Valida o campo do CGC
   {

	 strCNPJ = numero;
	 
        var
                strDV = strCNPJ.substr(12,2),
                intSoma,
                intDigito = 0,
                strControle = "",
                strMultiplicador = "543298765432";

        strCNPJ = strCNPJ.substr(0, 12);
        for(var j = 1; j <= 2; j++)
        {
                intSoma = 0;
                for(var i = 0; i <= 11; i++)
                {
                        intSoma += (parseInt(strCNPJ.substr(i, 1), 10) * parseInt(strMultiplicador.substr(i, 1), 10))
                }
                if(j == 2){intSoma += (2 * intDigito)}
                intDigito = (intSoma * 10) % 11;
                if(intDigito == 10){intDigito = 0}
                strControle += intDigito.toString();
                strMultiplicador = "654329876543";
        }
        if(strControle != strDV)
		 {
           campocgccpf.focus();
           campocgccpf.select();
		   alert("CNPJ inválido");
		   return false;
		   }
		   else
		   {
		   var cgc1;
		   var cgc2;
		   var cgc3;
		   var cgc4;
		   var cgc5;
		   
		   cgc1 = numero.substr(0,2);
		   cgc2 = numero.substr(2,3);
		   cgc3 = numero.substr(5,3);
		   cgc4 = numero.substr(8,4);
		   cgc5 = numero.substr(12,2);
		   
		   campocgccpf.value = cgc1 + "." + cgc2 + "." + cgc3 + "/" + cgc4 + "-" + cgc5;
		   }

   }
   else
    {
     campocgccpf.focus();
     campocgccpf.select();
	 alert("Informe um CNPJ ou CPF válido");
	 return false;
	 }
   }
   } 
   
   
   ///// Valida Data
   
   function DateFormat(vDateName, vDateValue, e, dateCheck, dateType)
 {
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/"; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}

// Começa a função
vDateType = 3;
//vDateType = dateType;
// vDateName = object name
// vDateValue = value in the field being checked
// e = event
// dateCheck 
// True  = Verify that the vDateValue is a valid date
// False = Format values being entered into vDateValue only
// vDateType
// 1 = mm/dd/yyyy
// 2 = yyyy/mm/dd
// 3 = dd/mm/yyyy
//Enter a tilde sign for the first number and you can check the variable information.
if (vDateValue == "~") {
alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
vDateName.value = "";
vDateName.focus();
return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
// Check to see if a seperator is already present.
// bypass the date if a seperator is present and the length greater than 8
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
//Eliminate all the ASCII codes that are not valid
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else {
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
   }
}
if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
return false;
else {
//Create numeric string values for 0123456789/
//The codes provided include both keyboard and keypad values
var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
if (strCheck.indexOf(whichCode) != -1) {
if (isNav4) {
if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
alert("Data inválida ! \n digite novamente 1");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
if (vDateValue.length == 6 && dateCheck) {
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
//Turn a two digit year into a 4 digit year
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
}
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("data inválida \n digite novamente 2");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
// Reformat the date for validation and set date type to a 1
if (vDateValue.length >= 8  && dateCheck) {
if (vDateType == 1) // mmddyyyy
{
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
}
if (vDateType == 2) // yyyymmdd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(4,2);
var mDay = vDateName.value.substr(6,2);
vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
}
if (vDateType == 3) // ddmmyyyy
{
var mMonth = vDateName.value.substr(2,2);
var mDay = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
//Create a temporary variable for storing the DateType and change
//the DateType to a 1 for validation.
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Data Inválida \n digite novamente 3");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Data Inválida \n digite novamente 4");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
         }
      }
   }
}
else {
// Non isNav Check
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Data Inválida \n digite novamente 5");
vDateName.value = "";
vDateName.focus();
return true;
}
// Reformat date to format that can be validated. mm/dd/yyyy
if (vDateValue.length >= 8 && dateCheck) {
// Additional date formats can be entered here and parsed out to
// a valid date format that the validation routine will recognize.
if (vDateType == 1) // mm/dd/yyyy
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2) // yyyy/mm/dd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3) // dd/mm/yyyy
{
var mDay = vDateName.value.substr(0,2);
var mMonth = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vYearLength == 4) {
if (mYear.length < 4) {
alert("Data Inválida \n digite novamente 6");
vDateName.value = "";
vDateName.focus();
return true;
   }
}
// Create temp. variable for storing the current vDateType
var vDateTypeTemp = vDateType;
// Change vDateType to a 1 for standard date format for validation
// Type will be changed back when validation is completed.
vDateType = 1;
// Store reformatted date to new variable for validation.
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
//Turn a two digit year into a 4 digit year
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
// Store the new value back to the field.  This function will
// not work with date type of 2 since the year is entered first.
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
} 
if (!dateValid(vDateValueCheck)) {
alert("Data Inválida \n digite novamente 7");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
return true;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (vDateType == 1) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
if (vDateType == 2) {
if (vDateValue.length == 4) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 7) {
vDateName.value = vDateValue+strSeperator;
   }
} 
if (vDateType == 3) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
return true;
   }
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
// Un-comment the next line of code for debugging the dateValid() function error messages
//alert(err);  
alert("Data Inválida \n digite novamente 8");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {
// If the value is not in the string return the string minus the last
// key entered.
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
         }
      }
   }
}
function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
// var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
//strDate = datefield.value;
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
//Adjustment for short years entered
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
   }
}
else {
if (intday > 28) {
err = 10;
return false;
      }
   }
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}

   
   ///////////////////
