function mask_cpf(cpf,e){
	var key;
	var tempo;

	if (window.event){
   	key = window.event.keyCode;
		if ((cpf.length == 3)&&(key!=8))
		{
			cpf += '.';
		}
		if ((cpf.length == 7)&&(key!=8))
		{
			cpf += '.';
		}
		if ((cpf.length == 11)&&(key!=8))
		{
			cpf += '-';
		}
	}else{
	   if (e){
	      key = e.which;
			if(cpf.length==11)
		      tempo = cpf.substring(0,3)+'.'+cpf.substring(3,6)+'.'+cpf.substring(6,9)+'-'+cpf.substring(9,12);
			else
				tempo = '';
			cpf = tempo;
	   }
	}
	return(cpf);
}

function format_cep(valor){
		var numero  = '0123456789';
		var result  = '';
		var result1 = '';
		var zero = 'N';
		var i;
		var j;
		
		for (i=0; i < valor.length; i++){
				var temp1=valor.charAt(i);
				for (j=0; j < numero.length; j++){
						var temp2=numero.charAt(j);
					  if (temp1==temp2){
							 result = result + valor.charAt(i);
						}	
				}
		}
		while (result.charAt(0)==' '){
			result = result.substring(1, result.length);
		}
		var tamanho = result.length;
		if (tamanho>3){
				for (k=0; k < tamanho; k++){
						if (k==(tamanho-3)){
								result1 = result1 + '-';	 
								}
						if (((k==(tamanho-6))&&(tamanho!==6))||((k==(tamanho-9))&&(tamanho!==9))){
								result1 = result1 + '';	 
								}
						result1 = result1 + result.charAt(k);
						}
				}
		else{
				if (tamanho==2){
						result1 = ' ' + result;
						}
				else{
						result1 = ' ' + result;
						}
				}
		
		if (result1==''){
			result1=' ';
		}
		return(result1);
		}
		
function moeda(w_valor)
	{
	var numero  = '0123456789';
	var result  = '';
	var result1 = '';
	var zero = 'N';
	var i;
	var j;
	for (i=0; i < w_valor.length; i++)
		{
		var temp1=w_valor.charAt(i);
		for (j=0; j < numero.length; j++)
			{
			var temp2=numero.charAt(j);
			 if (temp1==temp2)
			 	{
				 result = result + w_valor.charAt(i);
				}	
			}
		}
	while (result.charAt(0)=='0')
		{
		result = result.substring(1, result.length);
		}
	var tamanho = result.length;
	if (tamanho>2)
		{
		for (k=0; k < tamanho; k++)
			{
			if (k==(tamanho-2))
				{
				result1 = result1 + ',';	 
				}
			if (((k==(tamanho-5))&&(tamanho!==5))||((k==(tamanho-8))&&(tamanho!==8)))
				{
				result1 = result1 + '.';	 
				}
			result1 = result1 + result.charAt(k);
			}
		}
	else
		{
		if (tamanho==2)
			{
			result1 = '0,' + result;
			}
		else
			{
			result1 = '0,0' + result;
			}
		}
	if (result1=='0,0')
		{
		result1='0,00';
		}
	return(result1);
	}
	
function numbersonly(myfield, e, dec)
{
	var key;
	var keychar;

	if (window.event)
   	key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);

	if ((key==null) || (key==0) || (key==9) || (key==13) || (key==27) )
	   return true;
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	else if (dec && (keychar == "."))
	   {
	   myfield.form.elements[dec].focus();
	   return false;
	   }
	else
	   return false;
}

function stringFilter (input) {
	s = input;
	filteredValues = ".-/";
	var i;
	var returnString = "";
	for (i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (filteredValues.indexOf(c) == -1) returnString += c;
	}
	return(returnString);
}

function mask_cpf(cpf,e){
	var key;
	var tempo;

	if (window.event){
   	key = window.event.keyCode;
		if ((cpf.length == 3)&&(key!=8))
		{
			cpf += '.';
		}
		if ((cpf.length == 7)&&(key!=8))
		{
			cpf += '.';
		}
		if ((cpf.length == 11)&&(key!=8))
		{
			cpf += '-';
		}
	}else{
	   if (e){
	      key = e.which;
			if(cpf.length==11)
		      tempo = cpf.substring(0,3)+'.'+cpf.substring(3,6)+'.'+cpf.substring(6,9)+'-'+cpf.substring(9,12);
			else
				tempo = '';
			cpf = tempo;
	   }
	}
	return(cpf);
}

function valida_cpf(pcpf)
{
pcpf = stringFilter(pcpf);
if (pcpf.length != 11) {sim=false} else {sim=true}

if (sim )  // valida o primeiro digito
{
	for (i=0;((i<=(pcpf.length-1))&& sim); i++)
   {
   	val = pcpf.charAt(i)
		if((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4")&&(val!="5")&&(val!="6")&&(val!="7")&&(val!="8"))
		{sim=false}
   }
   if (sim)
   {
		soma = 0
		for (i=0;i<=8;i++)
      {
			val = eval(pcpf.charAt(i))
			soma = soma + (val*(i+1))
		}
		resto = soma % 11
		if (resto>9){
			dig = resto -10
		}else{
			dig = resto
		}
      if (dig != eval(pcpf.charAt(9))) { sim=false }
      else   // valida o segundo digito
      {
			soma = 0
			for (i=0;i<=7;i++)
			{
				val = eval(pcpf.charAt(i+1))
				soma = soma + (val*(i+1))
			}
			soma = soma + (dig * 9)
			resto = soma % 11
			if (resto>9) dig = resto -10
			else  dig = resto
			if (dig != eval(pcpf.charAt(10))) { sim = false }
			else sim = true
		}
	}
}

if (sim == false)
	{
	alert("Número de CPF inválido");
	document.form.cpf.value = "000.000.000-00";
	return false;
	}
}

var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/"; 
var vDateType = 3; 
var vYearType = 4;
var vYearLength = 2; 
var err = 0;
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
vDateType = dateType;
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;
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
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)
return false;
else {
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\nDigite novamente");
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)
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
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\nDigite novamente");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
if (vDateValue.length >= 8  && dateCheck) {
if (vDateType == 1)
{
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)
{
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)
{
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;
}
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("  Data inválida\nDigite novamente");
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\nDigite novamente");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
         }
      }
   }
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("  Data inválida\nDigite novamente");
vDateName.value = "";
vDateName.focus();
return true;
}
if (vDateValue.length >= 8 && dateCheck) {
if (vDateType == 1)
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2)
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3)
{
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\nDigite novamente");
vDateName.value = "";
vDateName.focus();
return true;
   }
}
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
var mToday = new Date();
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;
if (vDateTypeTemp == 1)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
} 
if (!dateValid(vDateValueCheck)) {
alert("  Data inválida\nDigite novamente");
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)) {
alert("  Data inválida\nDigite novamente");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {
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 strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Fev";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Abr";
strMonthArray[4] = "Mai";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Ago";
strMonthArray[8] = "Set";
strMonthArray[9] = "Out";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dez";
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);
   }
}
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;
}

function FormataCNPJ(Campo, teclapres){

   if(window.event){
    var tecla = teclapres.keyCode;
   }else  tecla = teclapres.which;

   var vr = new String(Campo.value);
   vr = vr.replace(".", "");
   vr = vr.replace(".", "");
   vr = vr.replace("/", "");
   vr = vr.replace("-", "");

   tam = vr.length + 1;

   
   if (tecla != 9 && tecla != 8){
      if (tam > 2 && tam < 6)
         Campo.value = vr.substr(0, 2) + '.' + vr.substr(2, tam);
      if (tam >= 6 && tam < 9)
         Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,tam-5);
      if (tam >= 9 && tam < 13)
         Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,tam-8);
      if (tam >= 13 && tam < 15)
         Campo.value = vr.substr(0,2) + '.' + vr.substr(2,3) + '.' + vr.substr(5,3) + '/' + vr.substr(8,4)+ '-' + vr.substr(12,tam-12);
      }
}

