// Inicio da função TestaComboSelecionado
function TestaComboSelecionado(combo)
{
   indice = combo.selectedIndex; 
   selecionado = combo.options[indice].value; 
   return selecionado;
}
// Final da função TestaComboSelecionado

// Inicio da função TestaRadioSelecionado
function TestaRadioSelecionado(radio)
{
    selecionado = "";
    if (!(radio.length >= 1)) 
    {
        if (radio.checked) 
            selecionado = radio.value;
        else
            selecionado = 0;
    }
    for (cont = 0; cont < radio.length; cont++)
    {
        if (radio[cont].checked) 
        {
            selecionado = radio[cont].value; 
            break;
        } 
        else
            selecionado = 0;
    }
    return selecionado;
} 
// Final da função TestaRadioSelecionado

// Inicio da Função Trim
function Trim(Objeto) {
    var pos = 0; 
    var str = Objeto.value.substring(pos, pos + 1);
    var cont = 0; 
    var straux = Objeto.value;

    while ((str == " ") && (cont <= Objeto.value.length)) {
        pos = pos + 1;
        straux = Objeto.value.substring(pos, Objeto.value.length); 
        str = Objeto.value.substring(pos, pos + 1); 
        cont = cont + 1;
    }

    var String = straux;
    pos = String.length;
    str = String.substring(pos - 1, pos);
    cont = 0;
    while ((str == " ") && (cont <= String.length)) {
        pos = pos - 1;
        straux = String.substring(0, pos);
        str = String.substring(pos - 1, pos);
        cont = cont + 1;
    }
    return straux;
}
// Final da Função Trim

// Inicio da Função JavaTrim
function JavaTrim(String) {
    pos = 0; 
    str = String.substring(pos,pos+1); 
    cont = 0; 
    straux = String;

    while ((str==" ")&&(cont<=String.length)) {
        pos = pos + 1;
        straux = String.substring(pos, String.length); 
        str = String.substring(pos,pos+1); 
        cont = cont + 1;
    }

    String = straux;
    pos = String.length;
    str = String.substring(pos-1,pos);
    cont = 0;
    while ((str==" ")&&(cont<=String.length)) {
        pos = pos - 1;
        straux = String.substring(0, pos);
        str = String.substring(pos-1,pos);
        cont = cont + 1;
    }
    return straux;
}
// Final da Função JavaTrim

// Inicio da função TestaDataDividida
function TestaDataDividida(dia1, mes1, ano1, desData)
{
    dia = dia1.value;
    mes = mes1.value;
    ano = ano1.value;
    msgErro = '';
    if ( (isNaN(dia)) || (isNaN(mes)) || (isNaN(ano)) || (ano==0) ) 
    {
		errData	= GTR_TXT_DATAINVALIDA.replace("%", desData);
        alert(errData);
        dia1.value = '';
        dia1.focus();
        return false;
     }
  
    if ( (dia=="") && (mes=="") && (ano=="") ) 
    {
        errData	= GTR_TXT_DATCORRETAMENTE.replace("%", desData);
        alert(errData);
        dia1.value = '';
        dia1.focus();
        return false;
    }  
    else
    {           
        if ( (dia=="") || (mes=="") || (ano=="") ) 
        {
			errData	= GTR_TXT_DATAINVALIDA.replace("%", desData);
			alert(errData);
            dia1.value = '';
            dia1.focus();
            return false;
        } 
        else
        {
            if ((dia>31)||(dia<1))
            {
				errData	= GTR_TXT_DIAINVALIDO.replace("%", desData);
				alert(errData);
                dia1.value = '';
                dia1.focus();
                return false;
            }
            if ((mes>12)||(mes<1))
            {
				errData	= GTR_TXT_MESINVALIDO.replace("%", desData);
				alert(errData);
                mes1.value = '';
                mes1.focus();
                return false;
            }
            if (ano.length < 4) 
            {
				errData	= GTR_TXT_ANOINVALIDO.replace("%", desData);
				alert(errData);
                ano1.value = '';
                ano1.focus();
                return false;
            }   
            if (mes==2)
            {
                if (((dia)>29)||(dia=='29' && (ano)%4!=0)) 
                {

					errData	= GTR_TXT_DIAINVALIDO.replace("%", desData);
					alert(errData);
                    dia1.value = '';
                    dia1.focus();
                    return false;
                }
            }
            else
            {
                if ( ( (mes==4) || (mes==6) || (mes==9) || mes=='11') && (dia>30) ) 
                {
					errData	= GTR_TXT_DIAINVALIDO.replace("%", desData);
					alert(errData);
                    dia1.value = '';
                    dia1.focus();
                    return false;
                }    
                else
                { 
                    if (dia>31)
                    {
						errData	= GTR_TXT_DIAINVALIDO.replace("%", desData);
						alert(errData);
                        dia1.value = '';
                        dia1.focus();
                        return false;
                    }  
                }    
            } 
        }
    }
    return true;

}
// Final da função TestaDataDividida
// Inicio da função DataMaiorDividida
function DataMaiorDividida(dia1, mes1, ano1, dia2, mes2, ano2)
{
    data1= new Date(ano1,mes1,dia1)
	data2= new Date(ano2,mes2,dia2)
 
    if (data1 < data2) 
    {   
        return 1;
    }
    if (data1 > data2) 
    {   
        return 2;
    }
    else
    {   
        return 0;
    }    
}
// Fim da função DataMaiorDividida

// Inicio da função ChecaEmail

function ChecaEmail (emailStr, Mensagem) {
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray==null) {
		errEml	= GTR_TXT_EMAILINVALIDO.replace("%", Mensagem);
        alert(errEml);
        return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    if (user.match(userPat)==null) {
		errEml	= GTR_TXT_EMAILINVALIDO.replace("%", Mensagem);
        alert(errEml);
        return false;
    }
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
        for (var i=1;i<=4;i++) {
            if (IPArray[i]>255) {
				errEml	= GTR_TXT_EMAILINVALIDO.replace("%", Mensagem);
				alert(errEml);
                return false;
            }
        }
        return true;
    }
    var domainArray=domain.match(domainPat);
    if (domainArray==null) {
		errEml	= GTR_TXT_EMAILINVALIDO.replace("%", Mensagem);
        alert(errEml);
        return false;
    }
    var atomPat=new RegExp(atom,"g");
    var domArr=domain.match(atomPat);
    var len=domArr.length;
    if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		errEml	= GTR_TXT_EMAILINVALIDO.replace("%", Mensagem);
        alert(errEml);
       return false;
    }
    if (len<2) {
		errEml	= GTR_TXT_EMAILINVALIDO.replace("%", Mensagem);
        alert(errEml);
        return false;
    }
    return true;
}
// Fim da função ChecaEmail


// Inicio da Função ChecaCep
function ChecaCep(cep, tipo)
{
    if (tipo == 1)
    {
        if (cep.value.length != 8) 
        {
            alert('Cep inválido. Por favor, digite novamente.');
            cep.focus();
            return false;            
        }
        if (isNaN(cep.value))
        {
            alert('Cep inválido. Por favor, digite novamente.');
            cep.focus();
            return false;
        }
        return true;
    }
    else
    {
        if (cep.value.length != 9) 
        {
            alert('Cep inválido. Por favor, digite novamente.');
            cep.focus();
            return false;            
        }
        cep1 = cep.value.substring(0,5);
        cep2 = cep.value.substring(6,9);
        traco = cep.value.substring(5,6);
        if (isNaN(cep1) || isNaN(cep2))
        {
            alert('Cep inválido. Por favor, digite novamente.');
            cep.focus();
            return false;            
        }
        if (traco != '-')
        {
            alert('Cep inválido. Por favor, digite novamente.');
            cep.focus();
            return false;            
        }
        return true;
    }
}

// Inicio da função Numerico
function Numerico(objValor, iDecimais) {
    var sValor = objValor.value.replace(",", ".");

    if (isNaN(sValor)) {
        alert("O valor informado não é válido.");
        objValor.focus();
        return false;
    }

    // Coloca o número de decimais informado
    if (sValor.indexOf(".") != -1) {
        sInteiros = sValor.substring(0, sValor.indexOf("."));
        sDecimais = sValor.substring(sValor.indexOf(".") + 1, sValor.length);
    } else {
        sInteiros = sValor;
        sDecimais = "";

    }
    if (sInteiros == "") {
        sInteiros = "0";
    }
    for (i = 0; i < iDecimais; i++) {
        sDecimais = sDecimais + "0";
    }

    // Pega somente o número de decimais informado
    sDecimais = sDecimais.substring(0, iDecimais);
    
    if (iDecimais > 0) {
        objValor.value = sInteiros + "." + sDecimais;
    } else {
        objValor.value = sInteiros;
    }
    
    return true;
}
// Fim da função Numerico

// Função Máscara
/**    
* @param w - O elemento que será aplicado (normalmente this).  
* @param e - O evento para capturar a tecla e cancelar o backspace.  
* @param m - A máscara a ser aplicada.  
* @param r - Se a máscara deve ser aplicada da direita para a esquerda.
* @param a -   
* @returns null
* usar: maskIt(this,event,'(##)####-####');
*/
function maskIt(w,e,m,r,a){
	// Cancela se o evento for Backspace
	if (!e) var e = window.event;
	   
	if (e.keyCode) code = e.keyCode;    
	else if (e.which) code = e.which;        
	// Variáveis da funçao    
	var txt  = (!r) ? w.value.replace(/[^\d]+/gi,'') : w.value.replace(/[^\d]+/gi,'').reverse();    
	var mask = (!r) ? m : m.reverse();    
	var pre  = (a ) ? a.pre : "";    
	var pos  = (a ) ? a.pos : "";    
	var ret  = "";   
	if(code == 9 || code == 8 || txt.length == mask.replace(/[^#]+/g,'').length)
		return false;    
	// Loop na máscara para aplicar os caracteres    
	for(var x=0,y=0, z=mask.length;x<z && y<txt.length;){
		if(mask.charAt(x)!='#'){           
			ret += mask.charAt(x); x++;       
		} else{            
			ret += txt.charAt(y); y++; x++;        
		}    
	}       
	// Retorno da funçao    
	ret = (!r) ? ret : ret.reverse();
	w.value = pre+ret+pos;
}

// Novo método para o objeto 'String'
String.prototype.reverse = function(){   
	return this.split('').reverse().join('');
};
// Fim Função Máscara


// Retira os caracteres que são representados somente no modo do UNICODE
function RetiraUnicode(texto) {
	// variavel auxiliar que sera retornada com a nova String
   	var retorno = ''; 

   	// Percorre todo o texto
   	for (var i = 0; i < texto.length; i++) { 
		if (texto.charCodeAt(i) > 255) {
			sLetra = "";
		} else {
			sLetra = texto.charAt(i);
		}

		retorno += sLetra;
   	}

	return retorno;
}

function TratarUnicode(campo){
	campo.value = RetiraUnicode(campo.value);
	alert('');
}

// Faz o calculo do DV do CPF para verificar se está correto ou nao
function ValidaCPF(numCPF) {
	if (numCPF == "") {
		return true;
	}
	
    numCPF = numCPF.replace(/\D/g,"");

    if (! (numCPF.length == 11) || (	numCPF == "00000000000" || numCPF == "11111111111" || numCPF == "22222222222" || numCPF == "33333333333" || numCPF == "44444444444" || numCPF == "55555555555" || numCPF == "66666666666" || 	numCPF == "77777777777" || numCPF == "88888888888" || numCPF == "99999999999")) {  
		return false;    
	}

    if (numCPF != '') {
        x = 0;
        soma = 0;
        dig1 = 0;
        dig2 = 0;
        texto = "";
        numCPF1="";
        len = numCPF.length; x = len -1;
        for (var i=0; i <= len - 3; i++) {
            y = numCPF.substring(i,i+1);
            soma = soma + ( y * x);
            x = x - 1;
            texto = texto + y;
        }
        dig1 = 11 - (soma % 11);
        if (dig1 == 10) dig1=0 ;
        if (dig1 == 11) dig1=0 ;
        numCPF1 = numCPF.substring(0,len - 2) + dig1 ;
        x = 11; soma=0;
        for (var i=0; i <= len - 2; i++) {
            soma = soma + (numCPF1.substring(i,i+1) * x);
            x = x - 1;
        }
        dig2= 11 - (soma % 11);
        if (dig2 == 10) dig2=0;
        if (dig2 == 11) dig2=0;
        //alert ("Digito Verificador : " + dig1 + "" + dig2);
        if (!((dig1 + "" + dig2) == numCPF.substring(len,len-2))) {
            return false;
        }
    } else {
        return false;
    }
    return true;
}

