/* funcao que verifica o preenchimento dos campos do formulario
author: Claumir Claudino - claumir@dynamix.com.br
since: 17/01/2002
*/

function validarPreenchimento(cmp, msg) {
        if (cmp.value == "") {
		alert(msg);
		cmp.focus();
                return false;
	}
        return true;
}

/* funcao que valida o correto preenchimento do e-mail
author: Claumir Claudino - claumir@dynamix.com.br
since: 17/01/2002
*/

function validarEmail(cmp, msg) {
        if (validarPreenchimento(cmp, msg)) {
                if (cmp.value.indexOf("@") == -1) {
                        alert(msg);
			cmp.focus();
			return false;
                }
                return true;
        }
        return false;
}

/* funcao que valida valores numericos genericos
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoNumerico(cmp, msg) {
        if (validarPreenchimento(cmp, msg)) {
                if (isNaN(cmp.value) || (cmp.value.indexOf(".") != -1)) {
                        alert(msg);
			cmp.focus();
			return false;
		}
                return true;
        }
        return false;
}

/* funcao que valida valores numericos genericos
author: Simone Pereira - simone@dynamix.com.br
since: 23/01/2003
*/

function validarCEP(cmp, msg) {
        if (validarPreenchimento(cmp, msg)) {
                if (isNaN(cmp.value) || (cmp.value == "00000000")) {
			alert(msg);
			cmp.focus();
			return false;
		}
                return true;
        }
        return false;
}

/* funcao que valida o campo radio
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoRadio(cmp, msg) {
	if (validarPreenchimento(cmp, msg)) {
                var ok = false;
		for (var i = 0; i < cmp.length; i++) {
                        if (cmp[i].checked) {
                                ok = true;
			}
		}
		if (! ok) {
                        alert(msg);
			return false;
		}
                return true;
	}
	return false;
}

/* funcao que valida o campo select
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoSelect(cmp, msg) {
	if (validarPreenchimento(cmp, msg)) {
		if (cmp.options[cmp.selectedIndex].value == "-1") {
                        alert(msg);
			cmp.focus();
			return false;
		}
                return true;
	}
	return false;
}

/* funcao que valida o campo checkebox
author: Simone Pereira - simone@dynamix.com.br
since: 17/01/2002
*/

function validarCampoCheckbox(cmp) {
        if (validarPreenchimento(cmp))	{
		if (!(cmp.checked)) {
                        return false;
		}
                return true;
	}
	return false;
}

/* funcao que valida intervalos de valores
author: Simone Pereira - simone@dynamix.com.br
since: 21/01/2002
*/

function validarIntervalo(mini, maxi, cmp, msg) {
	if (validarPreenchimento(cmp, msg)) {
		if ((cmp.value < mini) || (cmp.value > maxi) || isNaN(cmp.value)) {
                        alert(msg);
			cmp.focus();
			return false;
		}
                return true;
	}
	return false;
}

/* funcao que valida um campo de senha
author: Simone Pereira - simone@dynamix.com.br
since: 21/01/2002
*/

function validarSenha(cmp, msg) {
	if (validarPreenchimento(cmp, msg)) {
		if (
                        (cmp.value.indexOf(" ") != -1)
                        || (cmp.value.indexOf("!") != -1)
                        || (cmp.value.indexOf("@") != -1)
                        || (cmp.value.indexOf("#") != -1)
                        || (cmp.value.indexOf("$") != -1)
                        || (cmp.value.indexOf("%") != -1)
                        || (cmp.value.indexOf("¨") != -1)
                        || (cmp.value.indexOf("&") != -1)
                        || (cmp.value.indexOf("*") != -1)
                        || (cmp.value.indexOf("(") != -1)
                        || (cmp.value.indexOf(")") != -1)
                        || (cmp.value.indexOf(";") != -1)
                        || (cmp.value.indexOf("'") != -1)
                        || (cmp.value.indexOf(":") != -1)
                        || (cmp.value.indexOf("´") != -1)
                        || (cmp.value.indexOf("`") != -1)
                        || (cmp.value.indexOf("^") != -1)
                        || (cmp.value.indexOf("~") != -1)
                        || (cmp.value.indexOf("{") != -1)
                        || (cmp.value.indexOf("}") != -1)
                        || (cmp.value.indexOf("[") != -1)
                        || (cmp.value.indexOf("]") != -1)
                        || (cmp.value.indexOf("?") != -1)
                        || (cmp.value.indexOf("\/") != -1)
                        || (cmp.value.indexOf("=") != -1)
                        || (cmp.value.indexOf("+") != -1)
                        || (cmp.value.indexOf("\\") != -1)
                        || (cmp.value.indexOf("\"") != -1)
                ) {
			alert(msg);
			cmp.focus();
			return false;
		}
                return true;
	}
        return false;
}

/* funcao que valida o correto preenchimento do CPF - CNPJ
author: Cristiano Rossetto - cristiano@dynamix.com.br
since: 21/02/2002
*/

function validarCpfCnpj(cmp, msg) {
        var posicao;
	var cont;
	var soma;
	var peso;
	var valor;
	var letra;
	var dig;
	var x;

	if (cmp.value.length < 10 && cmp.value.length > 0) {
                alert ("Por favor, verifique seu CPF, a quantidade de caracteres não é válida!");
		cmp.focus();
		return false;
	}
	if (cmp.value.length == 14) {
                x = 5;
        } else {
                x = 10;
        }
        if(cmp.value != "") {
                posicao = cmp.value;
                for (rep = 2; rep >= 1; rep--) {
                        soma = 0;
                        cont = 0;
                        for (peso = x; peso >= 2; peso--) {
                                letra = posicao.charCodeAt(cont);
                                if (!((letra >= 48) && (letra <= 57))) {
                                        alert("Por favor, digite somente números!");
                                        cmp.focus();
                                        return false;
                                }
                                letra = posicao.charAt(cont);
                                soma = soma + (letra * peso);
                                cont++;
                                if ((x == 5 || x == 6) && (peso == 2)) {
                                        peso = 10;
                                        x = 30;
                                }
                        }
                        x++;
                        valor = 11 - (soma % 11);
                        if ((valor == 10) || (valor == 11)) {
                                dig = 0;
                        } else {
                                dig = valor;
                        }
                        if (x == 31) {
                                x=6;
                        }
                        if (dig == posicao.charAt(cont)){

                        } else {
                                alert("Por favor, verifique, seu CPF é inválido!");
                                cmp.focus();
                                return false;
                        }
                }
        } else {
                alert("Por favor, insira o número de seu CPF!");
                cmp.focus();
                return false;
        }
        return true;
}

function selOpcao(campo, valor) {
	//alert(dia+"-"+mes+"-"+ano);
	var arrSel = campo.length;
	for (var i = 0; i < arrSel; i++) {
		if (campo.options[i].text == valor) {
                        campo.options[i].selected = true;
                }
	}
}


/* funcao que valida se o valor passado por parametro é numérico
retornado verdadeiro se sim.
author: Cristiano Rossetto - cristiano@dynamix.com.br
since: 23/01/2003
*/

function isNumero(valor){
	letra = 0;
	for(i=0; i < valor.length; i++){
		letra = valor.charCodeAt(i);
		if ((letra < 48) || (letra > 57))
			return false;
	}
	return true;
}


/* funcao que valida o correto preenchimento de datas
author: Cristiano Rossetto - cristiano@dynamix.com.br
since: 23/01/2003
*/
function validarData(cmp1, cmp2, cmp3, msg) {
        if (validarDataAux(cmp1.value, cmp2.value, cmp3.value)) {
                return true;
        } else {
		alert(msg);
		cmp1.focus();
                return false;
	}
}

function validarDataAux(dd, mm, aaaa) {
        if (!isNumero(dd+mm+aaaa)) {
                return false;
        }
        dd = parseInt(dd, 10);
	mm = parseInt(mm, 10);
	aaaa = parseInt(aaaa, 10);
	if((mm > 12) || (mm < 1) || (dd > 31) || (dd < 1)) {
                return false;
        }
        maxdd = 0;
        switch (mm) {
                case 1:
                case 2:
                        if (((aaaa % 4 == 0) && !(aaaa % 100 == 0)) || (aaaa % 400 == 0)) {
                                maxdd = 29;
                        } else {
                                maxdd = 28;
                        }
                        break;
                case 3:
                case 4:
                case 5:
                case 6:
                case 7:
                case 8:
                case 9:
                case 10:
                case 11:
                        maxdd = 30;
                        break;
                case 12:
                        maxdd = 31;
                        break;
        }
        if (dd > maxdd) {
                return false;
        }
	return true;
}

function permitidos() {
        
}
