function validaCampo(nomeCampo, mascara)
{
	var r = true;
	if (isEmpty(nomeCampo))
	{
		hilite(nomeCampo);
		r = false;
	} else
		if (verificaMascara(nomeCampo, mascara))
			fieldok(nomeCampo);
		else {
			hilite(nomeCampo);
			r = false;
		}
	return r;
}

function validaCampoData(nomeCampo, mascara)
{
	var r = true;
	resetaClassName(nomeCampo);
	if (!isEmpty(nomeCampo)) {
		if (verificaMascara(nomeCampo, mascara))
			if (validaData(nomeCampo))
				fieldok(nomeCampo);
			else {
				hilite(nomeCampo);
				r = false;
			}
		else {
			hilite(nomeCampo);
			r = false;
		}
	} else {
		hilite(nomeCampo);
		r = false;
	}
	return r;
}

function validaData(nomeCampo)
{
	var r = true;
	var campo = document.getElementById(nomeCampo);
	dia = campo.value.substr(0, 2) * 1;
	mes = campo.value.substr(3, 2) * 1;
	ano = campo.value.substr(6, 4) * 1;
	var naobissexto = ano % 4;
	if (naobissexto)
		ultimoDia = 28;
	else
		ultimoDia = 29;
	if (mes == 1 || mes == 3 || mes == 5 || mes == 7 || mes == 8 || mes == 10 || mes == 12) {
		if (dia < 1 || dia > 31)
			r = false;
	} else if (mes == 4 || mes == 6 || mes == 9 || mes == 11) {
		if (dia < 1 || dia > 30)
			r = false;
	} else if (mes == 2) {
		if (dia < 1 || dia > ultimoDia)
			r = false;
	} else
		r = false;
	return r;
}

function validaCombo(nomeCampo)
{
	resetaClassName(nomeCampo);
	var campo = document.getElementById(nomeCampo);
	if (campo.value == 0)
	{
		hilite(nomeCampo);
		return false;
	}
	fieldok(nomeCampo);
	return true;
}

function valorCampo(nomeCampo) {
	var campo = document.getElementById(nomeCampo);
	return campo.value;
}

function setaCampo(nomeCampo, valor) {
	var campo = document.getElementById(nomeCampo);
	return campo.value = valor;
}

function resetaClassName(nomeCampo)
{
	var campo = document.getElementById(nomeCampo);
	campo.className = campo.className.replace(" hilight", "");
	campo.className = campo.className.replace(" fieldok", "");
}

function hilite(nomeCampo)
{
	resetaClassName(nomeCampo);
	var campo = document.getElementById(nomeCampo);
	campo.className += " hilight";
}

function fieldok(nomeCampo)
{
	resetaClassName(nomeCampo);
	var campo = document.getElementById(nomeCampo);
	campo.className += " fieldok";
}

function isEmpty(nomeCampo)
{
	var campo = document.getElementById(nomeCampo);
	if ((campo.value == null) || (campo.value.length == 0))
		return true;
	else
		return false;
}	

function verificaMascara(nomeCampo, mascara)
{
	var r = true, i;
	if (mascara != null) {
		var campo = document.getElementById(nomeCampo);
		if (mascara.length != campo.value.length) {
			r = false;
		} else
			for(i = 0; i < mascara.length; i++)	{
				switch(mascara.charAt(i)) {
					case 'A':
						strCheck = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
						break;
					case 'Z':
						strCheck = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
						break;
					case '9':
						strCheck = '0123456789';
						break;
					default:
						strCheck = mascara.charAt(i);
				}
				if (strCheck.indexOf(campo.value.charAt(i)) == -1)
					r = false;
			}
	}
	return r;
}

function limpaCampo(nomeCampo)
{
	campo = document.getElementById(nomeCampo);
	campo.value = "";
	fieldok(nomeCampo);
}

function limpaCombo(nomeCampo, valor)
{
	campo = document.getElementById(nomeCampo);
	if (valor == null)
		campo.value = "0";
	else
		campo.value = valor;
	campo.className = campo.className.replace(" hilight", "");
	campo.className = campo.className.replace(" fieldok", "");
	campo.className += " fieldok";
}

function maskMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, 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;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) != -1)
	{
	    len = objTextBox.value.length;
    	for(i = 0; i < len; i++)
        	if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal))
				break;
	    aux = '';
    	for(; i < len; i++)
        	if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1)
				aux += objTextBox.value.charAt(i);
	    aux += key;
    	len = aux.length;
	    if (len == 0) objTextBox.value = '';
    	if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;
	    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;
    	if (len > 2) {
        	aux2 = '';
	        for (j = 0, i = len - 3; i >= 0; i--) {
    	        if (j == 3) {
        	        aux2 += SeparadorMilesimo;
            	    j = 0;
	            }
    	        aux2 += aux.charAt(i);
        	    j++;
	        }
    	    objTextBox.value = '';
	        len2 = aux2.length;
    	    for (i = len2 - 1; i >= 0; i--)
	        	objTextBox.value += aux2.charAt(i);
	        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);
    	}
		return false;
	}
	if (whichCode == 0 || whichCode == 8)
	    return true;
	else
		return false;
}

function mask(objeto, evt, mask) {
	var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
	var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var LetrasNumeros  = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	var Numeros = '0123456789';
	var Fixos  = '().-:/ '; 
	var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

	evt = (evt) ? evt : (window.event) ? window.event : "";
	var value = objeto.value;
	if (evt) {
		var ntecla = (evt.which) ? evt.which : evt.keyCode;
		tecla = Charset.substr(ntecla - 32, 1);
		if (ntecla == 37 || ntecla == 39 || ntecla == 46) {
			return true;
		}
		if (ntecla < 32)
			return true;
		var tamanho = value.length;
		if (tamanho >= mask.length)
			return false;
		var pos = mask.substr(tamanho,1); 
		while (Fixos.indexOf(pos) != -1) {
			value += pos;
			tamanho = value.length;
			if (tamanho >= mask.length)
				return false;
			pos = mask.substr(tamanho,1);
		}
		switch (pos) {
			case '9' : if (Numeros.indexOf(tecla) == -1) return false; break;
			case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
			case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
			case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
			case 'X' : if (LetrasNumeros.indexOf(tecla) == -1) return false; break;
			case '*' : objeto.value = value; return true; break;
			default : return false; break;
		}
	}
	objeto.value = value; 
	return true;
}

function maskData(objeto, evt) { 
	return mask(objeto, evt, '99/99/9999');
}

function maskNumero(objeto, evt, length) {
	return mask(objeto, evt, repeat('9', length));
}

function repeat(word, length) {
	repeated = "";
	for(i = 0; i < length; i++) {
		repeated += word;
	}
	return repeated;
}

function maskCEP(objeto, evt) { 
	return mask(objeto, evt, '99999-999');
}

function maskFone(objeto, evt) { 
	return mask(objeto, evt, '99 9999-9999');
}

function maskCPF(objeto, evt) { 
	return mask(objeto, evt, '999.999.999-99');
}

function validaCPF(campo)
{
	var i, cpf = document.getElementById(campo).value;
	cpf = remove(cpf, ".");
	cpf = remove(cpf, "-");
	if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
		cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
		cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
		cpf == "88888888888" || cpf == "99999999999") {
		hilite(campo);
		return false;
	}
	soma = 0;
	for (i = 0; i < 9; i++)
		soma += parseInt(cpf.charAt(i)) * (10 - i);
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11)
		resto = 0;
	if (resto != parseInt(cpf.charAt(9))) {
		hilite(campo);
		return false;
	}
	soma = 0;
	for (i = 0; i < 10; i ++)
		soma += parseInt(cpf.charAt(i)) * (11 - i);
	resto = 11 - (soma % 11);
	if (resto == 10 || resto == 11)
		resto = 0;
	if (resto != parseInt(cpf.charAt(10))) {
		hilite(campo);
		return false;
	}
	return true;
}
 
function remove(str, sub) {
	i = str.indexOf(sub);
	r = "";
	if (i == -1)
		return str;
	r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
	return r;
}

function maskCNPJ(objeto, evt) { 
	return mask(objeto, evt, '99.999.999/9999-99');
}

function maskIM(objeto, evt) { 
	return mask(objeto, evt, '9999999.999-9');
}

function maskCRC(objeto, evt) { 
	maiuscula(objeto, evt);
	return mask(objeto, evt, 'ZZ-999999/Z');
}

function maskRegistroCapacitadora(objeto, evt) { 
	maiuscula(objeto, evt);
	return mask(objeto, evt, 'ZZ-99999');
}

function maskRegistroCursoEPC(objeto, evt) { 
	maiuscula(objeto, evt);
	return mask(objeto, evt, 'ZZ-99999');
}

function maskSenha(objeto, evt) { 
	maiuscula(objeto, evt);
	return mask(objeto, evt, 'XXXXXXXXXXXXXXXXXXXX');
}

function maskEC(objeto, evt) { 
	return mask(objeto, evt, 'Z');
}

function maiuscula(objeto, evt) { 
	evt = (evt) ? evt : (window.event) ? window.event : "";
	var ntecla = (evt.which) ? evt.which : evt.keyCode;
	if (ntecla != 37 && ntecla != 39 && ntecla != 46)
		objeto.value = objeto.value.toUpperCase();
	return true;;
}

function habilita(nomeCampo)
{
	var campo = document.getElementById(nomeCampo);
	campo.disabled = false;
}

function desabilita(nomeCampo)
{
	var campo = document.getElementById(nomeCampo);
	campo.disabled = true;
}

function setaLegenda(nomeCampo, modo)
{
	campo = document.getElementById(nomeCampo);
	campo.className = campo.className.replace(" fieldOff", "");
	campo.className = campo.className.replace(" fieldOn", "");
	if (modo)
		campo.className += " fieldOn";
	else
		campo.className += " fieldOff";
}

function radioSelecionado(campo)
{
	preencheu = false;
	botoes = campo.length;
	for (i=0; i < botoes; i++) {
		if (campo[i].checked) {
			preencheu = true;
			break;
		}
	}
	if (preencheu)
		return true;
	else
		return false;
}

function _location(pagina)
{
	window.location = pagina;
}
