/* VARIAVEIS GLOBAIS PARA FORMATAÇÃO DE CAMPOS */
var BACKSPACE=8; 
var DEL=46; 
var FRENTE=39; 
var TRAS=37; 
var TAB=9;

function ValidaData(DATA) {
	var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
	var msgErro = '';
	var vdt = new Date();
	var vdia = vdt.getDate();
	var vmes = vdt.getMonth()+1;
	var vano = vdt.getFullYear();
	if((DATA.value.match(expReg)) && (DATA.value!='')){
		var dia = DATA.value.substring(0,2);
		var mes = DATA.value.substring(3,5);
		var ano = DATA.value.substring(6,10);
		if((mes==04 && dia > 30) || (mes==06 && dia > 30) || (mes==09 && dia > 30) || (mes==11 && dia > 30)){
			msgErro = 'Dia incorreto !!! O m&ecirc;s especificado cont&eacute;m no m&aacute;ximo 30 dias.';
		}else{
			if(ano%4!=0 && mes==2 && dia>28){
				msgErro = 'Data incorreta!! O m&ecirc;s especificado cont&eacute;m no m&aacute;ximo 28 dias.';
			}else{
				if(ano%4==0 && mes==2 && dia>29){
					msgErro = 'Data incorreta!! O m&ecirc;s especificado cont&eacute;m no m&aacute;ximo 29 dias.';
				}else{
					if(parseInt(msgErro.length) == 0){
						DATA.className = 'fields fieldsOk';
						return true;
					}
				}
			}
		}
	}else{
		msgErro = 'Formato inv&aacute;lido de data.';
	}
	if(msgErro.length > 0){
		showMsg(msgErro, 'erro');
		DATA.className = 'fields fieldsErro';
		return false;
	}
}


function validaEmail(str){
	// verifica suporte do navegador
	var supported = 0;
	if (window.RegExp){
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
  	}
	if(!supported) return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}

function validaCnpjCpf(field, fieldId){
	var request = new ajax();
	var sendDados = 'cl_cnpj_cpf='+field.value+'&cl_id='+fieldId.value;
	var page = 'inc/consultas/cliente.php';
	var DadosXML = null;
	var resultado = true;
	var erro = '';
	if(field.value.length == 18){
		var CNPJ = field.value;
		if (CNPJ.length < 18){
			erro = '&Eacute; necess&aacute;rio preencher corretamente o n&uacute;mero do CNPJ!';
			resultado = false;
		}
		if ((CNPJ.charAt(2) != '.') || (CNPJ.charAt(6) != '.') || (CNPJ.charAt(10) != '/') || (CNPJ.charAt(15) != '-')){
			erro = '&Eacute; necess&aacute;rio preencher corretamente o n&uacute;mero do CNPJ!';
			resultado = false;
		}
		//substituir os caracteres que não são números
		CNPJ = CNPJ. replace ('.','');
		CNPJ = CNPJ. replace ('.','');
		CNPJ = CNPJ. replace ('-','');
		CNPJ = CNPJ. replace ('/','');
		
		var nonNumbers = /\D/;
		if (nonNumbers.test(CNPJ)) erro = 'A verifica&ccedil;&atilde;o de CNPJ suporta apenas n&uacute;meros!';
		var a = [];
		var b = new Number;
		var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
		for (i=0; i<12; i++){
			a[i] = CNPJ.charAt(i);
			b += a[i] * c[i+1];
		}
		if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
		b = 0;
		for (y=0; y<13; y++) {
			b += (a[y] * c[y]); 
		}
		if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
		if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
			erro ='D&iacute;gito verificador com problema!';
			resultado = false;
		}
		if(resultado){
			if(request){
				DadosXML = request.enviar(page, 'POST', false, sendDados);
				try{
					var cl_id = DadosXML.getElementsByTagName('cl_id')[0].firstChild.nodeValue;
				}catch(err){
					var cl_id = 0;
				}
				if(parseInt(cl_id) > 0){
					erro = 'O CNPJ informado esta sendo usado por outro CLIENTE.';
					resultado = false;
				}
			}
	
		}
	}else if(field.value.length <= 14){
		var cpf = field.value;		
		var soma;
  		var i;
		var calcDig1;
		var calcDig2;

  		/*{ Obtém somente os dígitos 000.000.000-00 }*/
		cpf = cpf. replace('.','');
		cpf = cpf. replace('.','');
		cpf = cpf. replace('-','');
		
		if(parseInt(cpf.length) != 11){resultado = false; erro = 'O CPF informado n&atilde;o &eacute; v&aacute;lido.';}
		else{
			soma = 0;
			for(i=0; i <9; i++){
				soma = soma + parseInt(cpf.charAt(i)) * (10 - i);
			}
			calcDig1 = 11 - (soma % 11);
			if(calcDig1 == 10 || calcDig1 == 11){
				calcDig1 = 0;
			}
			soma = 0;
			for(i=0; i <10; i++){
    			soma = soma + parseInt(cpf.charAt(i)) * (11 - i);
			}
			calcDig2 = 11 - (soma % 11);
			if(calcDig2 == 10 || calcDig1 == 11){
				calcDig2 = 0;
			}
			var resultado = (calcDig1 == parseInt(cpf.charAt(9))) && (calcDig2 == parseInt(cpf.charAt(10)));
			if(!resultado){erro = 'O CPF informado n&atilde;o &eacute; v&aacute;lido.';}
		}
		if(resultado){
			if(request){
				DadosXML = request.enviar(page, 'POST', false, sendDados);
				try{
					var cl_id = DadosXML.getElementsByTagName('cl_id')[0].firstChild.nodeValue;
				}catch(err){
					var cl_id = 0;
				}
				if(parseInt(cl_id) > 0){
					erro = 'O CPF informado esta sendo usado por outro CLIENTE.';
					resultado = false;
				}
			}
		}
	}
	if(resultado){
		field.className = 'fields fieldsOk';
	}else{
		showMsg(erro, 'erro');
		field.className = 'fields fieldsErro'
	}
	return resultado;
}

function mkCnpjCpf(input, evento, tipo){
	var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
    if (( tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS)||(tecla==TAB)){
    	return true; 
    }
    if ( tecla == 13 ) return false; 
	if ((tecla<48)||(tecla>57)){
		evento.returnValue = false;
		return false;
	}else{
		if(parseInt(tipo) == 1){/*11.222.333/0001-00*/ /*000.000.000-00*/
			if((input.value.length==2)||(input.value.length==6)){
				input.value=input.value + '.';
			}else if(input.value.length == 10){
				input.value = input.value + '/';
			}else if(input.value.length == 15){
				input.value = input.value + '-';
			}
		}else if(parseInt(tipo) == 0){
			if((input.value.length == 3) || (input.value.length == 7)){
				input.value = input.value + '.';
			}else if(input.value.length == 11){
				input.value = input.value + '-';
			}
		}
	}
	return true;
}

function mkFone(input, evento){
	var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
    if (( tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS)||(tecla==TAB)){
    	return true; 
    }
    if ( tecla == 13 ) return false; 
	if ((tecla<48)||(tecla>57)){
		evento.returnValue = false;
		return false;
	}else{
		if(input.value.length == 1){
			input.value = '('+input.value;
		}else if(input.value.length == 3){
			input.value = input.value+')';
		}else if(input.value.length == 8){
			input.value = input.value+'-';
		}
	}
	return true;
}

function mkCep(input, evento){
	var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
    if (( tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS)||(tecla==TAB)){
    	return true; 
    }
    if ( tecla == 13 ) return false; 
	if ((tecla<48)||(tecla>57)){
		evento.returnValue = false;
		return false;
	}else{
		if(input.value.length == 2){
			input.value = input.value + '.';
		}else if(input.value.length == 6){
			input.value = input.value+'-';
		}
	}
	return true;
}

function mkData(input, evento){
	var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
    if (( tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS)||(tecla==TAB)){
    	return true; 
    }
    if ( tecla == 13 ) return false; 
	if ((tecla<48)||(tecla>57)){
		evento.returnValue = false;
		return false;
	}else{
		if((input.value.length == 2) || (input.value.length == 5)){
			input.value = input.value+'/';
		}
	}
	return true;
}

function SomenteNumeros(input, evento){
	var tecla= (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);
    if (( tecla == BACKSPACE )||(tecla == DEL)||(tecla == FRENTE)||(tecla == TRAS)||(tecla==TAB)){
    	return true; 
    }
    if ( tecla == 13 ) return false; 
	if ((tecla<48)||(tecla>57)){
		evento.returnValue = false;
		return false;
	}
	return true;
}

function setData(inputData){
	var input = document.getElementById(inputData);
	var dt = new Date();
	var dia = dt.getDate();
	var mes = dt.getMonth()+1;
	var ano = dt.getFullYear();
	if(parseInt(mes) < 10){mes = String('0'+mes);}
	if(parseInt(dia) < 10){dia = String('0'+dia);}
	
	input.value = dia+'/'+mes+'/'+ano;
}

function DataBD(dataBD){
		var ano = String(dataBD).substring(0,4);
		var mes = String(dataBD).substring(5,7);
		var dia = String(dataBD).substring(8,10);
		var NewData = dia+'/'+mes+'/'+ano;
		return NewData;
}
function RemoveCaracterSp(str){
	str = str.toLowerCase();
	str = str.replace(/ /g,'_');
	var erA = /[aàãáâäª]/gim;
	var erE = /[eèéêë]/gim;
	var erI = /[iíìîï]/gim;
	var erO = /[oòóôõöº]/gim;
	var erU = /[uúùûü]/gim;
	var erC = /[cç]/gim;
	str = str.replace (erA, "a");
	str = str.replace (erE, "e");
	str = str.replace (erI, "i");
	str = str.replace (erO, "o");
	str = str.replace (erU, "u");
	str = str.replace (erC, "c");
	return str;
}
function setMask(CnpjCpf, tipo){
	CnpjCpf.value = '';
	if(parseInt(tipo) == 0){
		CnpjCpf.maxLength = 14;
		CnpjCpf.disabled = false;
	}else if(parseInt(tipo) == 1){
		CnpjCpf.maxLength = 18;
		CnpjCpf.disabled = false;
	}else{
		CnpjCpf.disabled = true;
	}
		
}