
$(function() {
	$('.data').mask('99/99/9999');
	$('.dataMesAno').mask('99/99');
	$('#nr_validade_tabela').mask('99/9999');
	$('.telefone').mask('(99) 9999-9999');
	$('.competencia').mask('99/9999');
	$('.cep').mask('99999-999');
	$('.cnpj').mask('99.999.999/9999-99');
	$('#st_cpf').mask('999.999.999-99');
	$('#nr_porcentagem_custo').mask('99,99');
});

function marcarTodosPorNome( boMarcado, nome ){

	var arChecks = getElementsByName_geral( 'input', nome );

	for( var i=0; i<arChecks.length; i++ ){
		arChecks[i].checked = boMarcado;
	}
}

function verificarExcluir( registro, caminho ){
	
	
	if( confirm( "Deseja realmente excluir o registro?" ) ){
		$('#excluirRegistro'+registro).attr( "href", caminho );
	}

}

/*
objetivo: mascarar de acordo com a mascara passada
caracteres: # - caracter a ser mascarado
           | - separador de mascaras
modos (exemplos):
mascara simples: "###-####"	                 mascara utilizando a mascara passada
mascara composta: "###-####|####-####"       mascara de acordo com o tamanho (length) do valor passado
mascara din�mica: "[###.]###,##"             multiplica o valor entre colchetes de acordo com o length do valor para que a mascara seja din�mica ex: ###.###.###.###,##
utilizar no onkeyup do objeto
ex: onkeyup="this.value = mascara_global('#####-###',this.value);"
tratar o maxlength do objeto na p�gina (a fun��o n�o trata isso)
*/
function mascaraglobal(mascara, valor){

        var mascara_utilizar;
        var mascara_limpa;
        var temp;
        var i;
        var j;
        var caracter;
        var separador;
        var dif;
        var validar;
        var mult;
        var ret;
        var tam;
        var tvalor;
        var valorm;
        var masct;
        tvalor = "";
        ret = "";
        caracter = "#";
        separador = "|";
        mascara_utilizar = "";
        valor = trim(valor);
        if (valor == "")return valor;
        temp = mascara.split(separador);
        dif = 1000;

        valorm = valor;
        //tirando mascara do valor j� existente
        for (i=0;i<valor.length;i++){
                if (!isNaN(valor.substr(i,1))){
                        tvalor = tvalor + valor.substr(i,1);
                }
        }
        valor = tvalor;
        
        //formatar mascara dinamica
        for (i = 0; i<temp.length;i++){
                mult = "";
                validar = 0;
                for (j=0;j<temp[i].length;j++){
                        if (temp[i].substr(j,1) == "]"){
                                temp[i] = temp[i].substr(j+1);
                                break;
                        }
                        if (validar == 1)mult = mult + temp[i].substr(j,1);
                        if (temp[i].substr(j,1) == "[")validar = 1;
                }
                for (j=0;j<valor.length;j++){
                        temp[i] = mult + temp[i];
                }
        }


        //verificar qual mascara utilizar
        if (temp.length == 1){
                mascara_utilizar = temp[0];
                mascara_limpa = "";
                for (j=0;j<mascara_utilizar.length;j++){
                        if (mascara_utilizar.substr(j,1) == caracter){
                                mascara_limpa = mascara_limpa + caracter;
                        }
                }
                tam = mascara_limpa.length;
        }else{
                //limpar caracteres diferente do caracter da m�scara
                for (i=0;i<temp.length;i++){
                        mascara_limpa = "";
                        for (j=0;j<temp[i].length;j++){
                                if (temp[i].substr(j,1) == caracter){
                                        mascara_limpa = mascara_limpa + caracter;
                                }
                        }

                        if (valor.length > mascara_limpa.length){
                                if (dif > (valor.length - mascara_limpa.length)){
                                        dif = valor.length - mascara_limpa.length;
                                        mascara_utilizar = temp[i];
                                        tam = mascara_limpa.length;
                                }
                        }else if (valor.length < mascara_limpa.length){
                                if (dif > (mascara_limpa.length - valor.length)){
                                        dif = mascara_limpa.length - valor.length;
                                        mascara_utilizar = temp[i];
                                        tam = mascara_limpa.length;
                                }
                        }else{
                                mascara_utilizar = temp[i];
                                tam = mascara_limpa.length;
                                break;
                        }
                }
        }

        //validar tamanho da mascara de acordo com o tamanho do valor
        if (valor.length > tam){
                valor = valor.substr(0,tam);
        }else if (valor.length < tam){
                masct = "";
                j = valor.length;
                for (i = mascara_utilizar.length-1;i>=0;i--){
                        if (j == 0) break;
                        if (mascara_utilizar.substr(i,1) == caracter){
                                j--;
                        }
                        masct = mascara_utilizar.substr(i,1) + masct;
                }
                mascara_utilizar = masct;
        }

        //mascarar
        j = mascara_utilizar.length -1;
        for (i = valor.length - 1;i>=0;i--){
                if (mascara_utilizar.substr(j,1) != caracter){
                        ret = mascara_utilizar.substr(j,1) + ret;
                        j--;
                }
                ret = valor.substr(i,1) + ret;
                j--;
        }
        return ret;
}

//tirar os espa�os das extremidades do valor passado (utilizada pela mascaraglobal)
function trim(valor){
	valor+='';
        for (i=0;i<valor.length;i++){
                if(valor.substr(i,1) != " "){
                        valor = valor.substr(i);
                        break;
                }
                if (i == valor.length-1){
                        valor = "";
                }
        }
        for (i=valor.length-1;i>=0;i--){
                if(valor.substr(i,1) != " "){
                        valor = valor.substr(0,i+1);
                        break;
                }
        }
        return valor;
}

/*
function realizarDownload( id_download ){

	$.ajax({
		type: "POST",
		url: "funcoesAjax.php",
		data: "&id_download=" + id_download + "&recuperarDownload=1",
		success: function( msg ){
			if( msg == 'erro' ){
			}
			else{
				eval( msg );
			}
		},
	});	
}*/

function selecionarTodos( objeto, nome ){

	var arCheck = document.getElementsByName( nome );
	
	for( i=0; i<arCheck.length; i++ ){
		arCheck[i].checked = objeto.checked;
	} 

}

function carregarMunicipiosPorUF( st_uf, div ){
	$( '#'+div ).load( 'funcoesAjax.php?requisicao=carregarMunicipios&st_uf='+st_uf );
}


function getElementsByName_geral(tag, name) {  
       
	var elem = document.getElementsByTagName(tag);  
	var arr = new Array();  
    for(i = 0,iarr = 0; i < elem.length; i++) {  
		att = elem[i].getAttribute("name");  
		if(att == name) {  
			arr[iarr] = elem[i];  
			iarr++;  
		}  
	}  
	return arr;  
} 

function validarCPF( obj ){

	if( mascaraglobal( "[#]", obj.value ) ){
		if( !boCPFValido( obj.value ) ){
			alert( 'CPF inválido!\nFavor preencher corretamente.' );
			obj.value = '';
		}
	}

}

function boCPFValido( cpf ){
    var dv = false;
    controle = "";
    s = mascaraglobal( "[#]", cpf );
    tam = s.length;
    if ( tam == 11 ) {
        dv_cpf = s.substring( tam-2, tam );
        for ( i = 0; i < 2; i++ ) {
            soma = 0;
            for ( j = 0; j < 9; j++ ) {
                soma += s.substring( j, j + 1 ) * ( 10 + i - j );
            }
            if ( i == 1 ) {
                soma += digito * 2;
            }
            digito = ( soma * 10 ) % 11;
            if ( digito == 10 ) {
                digito = 0;
            }
            controle += digito;
        }
        if ( controle == dv_cpf ) {
            dv = true;
        }
    }
    if ( s == "11111111111" ) dv = false;
    if ( s == "22222222222" ) dv = false;
     if ( s == "33333333333" ) dv = false;
    if ( s == "44444444444" ) dv = false;
    if ( s == "55555555555" ) dv = false;
    if ( s == "66666666666" ) dv = false;
    if ( s == "77777777777" ) dv = false;
    if ( s == "88888888888" ) dv = false;
    if ( s == "99999999999" ) dv = false;
    if ( s == "00000000000" ) dv = false;
    if ( s == "12345678909" ) dv = false;
    if ( s == "00000000191" ) dv = false;
    if ( s == "22525837541" ) dv = false;
    if ( s == "23111478203" ) dv = false;
    if ( s == "28075746708" ) dv = false;
    if ( s == "91087662826" ) dv = false;
    return dv;
}
