var erro = false
var field = document.formulario;

function OnCadastrarClick()
{
    if (document.gratis.nome.value.length == 0){
        alert('Favor preencher o campo Nome');
		document.gratis.nome.focus();
	}else if (document.gratis.fone.value.length == 0){
        alert('Favor preencher o campo Telefone');
		document.gratis.fone.focus();		
	}else if (document.gratis.codigouf.value == 0){
        alert('Favor escolher um estado');
		document.gratis.codigouf.focus();		
	}
	else if (document.getElementById('cidade').value == 0)
	{
		alert('Favor escolher uma cidade');
		document.gratis.cidade.focus();			
	}else
    {
        // gravando
		document.gratis.codcidade.value = document.getElementById('cidade').value;
		document.gratis.action.value = "gravar";
        document.gratis.submit();
    }
}

//Testa campos contra entrada de tipos de arquivos invalidos
function validaCaracter(campo,fieldname){
    erro = false
    var caracteresValidos = "abcdefghijklmnopqrstuvxwyzABCDEFGHIJKLMNOPQRSTUVXWYZÁÉÍÓÚàÀáéíóúÃÕãõÂÊÎÔÛâêîôÇç "
    eval('Ocampo = field.'+campo+'.value')
    for (i = 0; i < Ocampo.length; i++){
        var teste = Ocampo.charAt(i);
        if (caracteresValidos.indexOf(teste) == -1){
            alert("Por favor não use caracteres especiais no campo "+fieldname);
            eval('field.'+campo+'.focus();')
            erro = true
        }
        if (erro == true){return false}
    }
}//fim validaCaracter

function validaCaracterNumero(Campo, e) {
    var key = '';
    var len = 0;
    var strCheck = '0123456789';
    var aux = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;

    if (whichCode == 13 || whichCode == 8 || whichCode == 0)
    {
        return true;  // Enter backspace ou FN qualquer um que não seja alfa numerico
    }
    key = String.fromCharCode(whichCode);
    if (strCheck.indexOf(key) == -1){
        return false;  //NÃO E VALIDO
    }

    aux =  Telefone_Remove_Format(Campo.value);

    len = aux.length;
    if(len>=8)
    {
        return false;    //impede de digitar um telefone maior que 10
    }
    aux += key;

    return aux;

}


function TelefoneFormat(Campo, e) {
    var key = '';
    var len = 0;
    var strCheck = '0123456789';
    var aux = '';
    var whichCode = (window.Event) ? e.which : e.keyCode;

    if (whichCode == 13 || whichCode == 8 || whichCode == 0)
    {
        return true;  // Enter backspace ou FN qualquer um que não seja alfa numerico
    }
    key = String.fromCharCode(whichCode);
    if (strCheck.indexOf(key) == -1){
        return false;  //NÃO E VALIDO
    }

    aux =  Telefone_Remove_Format(Campo.value);

    len = aux.length;
    if(len>=10)
    {
        return false;    //impede de digitar um telefone maior que 10
    }
    aux += key;

    Campo.value = Telefone_Mont_Format(aux);
    return false;
}

function  Telefone_Mont_Format(Telefone)
{
    var aux = len = '';

    len = Telefone.length;
    if(len<=9)
    {
        tmp = 5;
    }
    else
    {
        tmp = 6;
    }

    aux = '';
    for(i = 0; i < len; i++)
    {
        if(i==0)
        {
            aux = '(';
        }
        aux += Telefone.charAt(i);
        if(i+1==2)
        {
            aux += ') ';
        }

        if(i+1==tmp)
        {
            aux += '-';
        }
    }
    return aux ;
}

function  Telefone_Remove_Format(Telefone)
{
    var strCheck = '0123456789';
    var len = i = aux = '';
    len = Telefone.length;
    for(i = 0; i < len; i++)
    {
        if (strCheck.indexOf(Telefone.charAt(i))!=-1)
        {
            aux += Telefone.charAt(i);
        }
    }
    return aux;
}



//Testa campos verificando se existe a string passada
function CharInString(campo,string,errormessage){
    erro = false
    eval('Ocampo = field.'+campo+'.value')
    eval('TestField = /'+string+'/i');//Busca pela extensao do arquivo passada no parametro stringtype case insensitive
    if (TestField.test(Ocampo) == false){//se nao tem gera erro
        erro = true;
        alert(errormessage);
    }
    if (erro == true){return false}
}//fim CharInString


//Testa campos verificando se existe a string passada
function CharNotInString(campo,string,errormessage){
    erro = false
    eval('Ocampo = field.'+campo+'.value')
    eval('TestField = /'+string+'/i');//Busca pela extensao do arquivo passada no parametro stringtype case insensitive
    if (TestField.test(Ocampo) == true){//se tem gera erro
        erro = true;
        alert(errormessage);
    }
    if (erro == true){return false}
}//fim CharNotInString

function checkEmail(campo,errormessage) {
    erro = false
    if (/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(eval('field.'+campo+'.value'))){
        return (true)
    }
    alert('Preencha corretamente o campo \"E-mail\" '+errormessage+' com um endereço de correio eletrônico válido (ex.: seunome@provedor.com.br)')
    erro = true
}

function noCharacter(campo,caracter){//remove caracter invalido caso ele esteja como ultimo na string  
    while(eval('field.'+campo).value.charAt(eval('field.'+campo).value.length-1)==caracter){
        eval('field.'+campo).value=eval('field.'+campo).value.substring(0,eval('field.'+campo).value.length-1);
    }
} 

function clearSpaces(campo){
    eval('Ocampo = field.'+campo+'.value')
    Pattern = /(\s+)/g;//Busca pela por espaços em toda a extensao da string
    Ocampo = Ocampo.replace(Pattern," ")//Troca espaços extras por um so espaco
    eval('field.'+campo+'.value = Ocampo')
}

function validaCheckBox(){//testa se existe um checkbox marcado
   var ok = 0;
   for (i =0; i < field.length; i++){
        if (field.elements[i].type == 'checkbox'){
            if (field.elements[i].checked == true){ok++}
        }
    }   
   if (ok == 0){
       alert("Por favor selecione pelo menos uma opção para alterar");
       return false;
   }
}//end function

function textCounter(campo, countcampo, maxlimit){//conta/mostra caracteres restantes e limita o tamanho do campo
    if (campo.value.length > maxlimit) //se passar do limite nao deixa entrar o caracter
        campo.value = campo.value.substring(0, maxlimit);
        //reduz o valor do campo de contadem
    else 
        countcampo.value = maxlimit - campo.value.length;
}

function removeEnter(campo){
    eval('Ocampo = field.'+campo+'.value')
    Pattern = /[\n\r]/g;//Busca pela por quebras de linhas em toda a extensao da string
    Ocampo = Ocampo.replace(Pattern," ")
    eval('field.'+campo).value = Ocampo//troca valor do campo pelo novo sem quebras de linha
}

/**
*  Altera o texto para maiuscula chamada: onkeypress="return(Maiuscula(this,event));"
*/
function Maiuscula(Campo,e)
{
var digitado = (window.Event) ? e.which : e.keyCode;
var carateres = 'abcdefghijklmnopqrstuvywzx';
var tecla;
var caps;

tecla = '';
caps = ''

tecla = String.fromCharCode(digitado);
if (carateres.indexOf(tecla) > -1)
{
Campo.value += tecla.toUpperCase();
return false;
} 
return true;
}
