﻿// JScript File
function moverCursor(objeto,posicao){
    var iPosicao;
    switch(posicao){
        case 1:
            iPosicao=0;
            break;
        case 2:
            iPosicao = objeto.value.length;
            break;
    }
//    if (el.createTextRange) {
//        var v = el.value;
//        var r = el.createTextRange();
//        r.moveStart('character', v.length);
//        r.select();
//    }

    var range = objeto.createTextRange();
    range.moveStart('character',iPosicao);
    range.select();
}

// Funções para exibir e ocultar o glossário interativo 
function glossarioInterativoExibe(idDaLinha){
    if (document.getElementById(idDaLinha).style.visibility == "visible"){
        document.getElementById(idDaLinha).style.visibility = "hidden";
    }else{
        document.getElementById(idDaLinha).style.visibility = "visible";
    }
}

function glossarioInterativoLimpa(idDaLinha){
    document.getElementById(idDaLinha).style.visibility = "hidden";
}

/**********************************************************************************************************
*  Objetivo........: Mascarar de acordo com a máscara passada
*  Caracteres......: # - caracter a ser mascarado
*                    | - separador de máscaras
*  Modos (exemplos):
*  Máscara simples.: "###-####"	           Máscara informada
*  Máscara composta: "###-####|####-####"  Máscara de acordo com o tamanho (length) do valor passado
*  Máscara dinâmica: "[###.]###,##"        Multiplica o valor entre colchetes de acordo com o length
* 									       do valor para que a máscara seja dinâmica ex: ###.###.###.###,##
*
*  OBSERVAÇÃO: Utilizar no onkeyup do objeto e tratar o maxlength do objeto no input pq a função não trata.
***********************************************************************************************************/
function mascaraGlobal(mascara, valor){
    var temp, i, j;
    var mascara_limpa, validar, mult, tam, valorm, masct; 
    
    var tvalor           = "";
    var ret              = "";
    var caracter         = "#";
    var separador        = "|";
    var mascara_utilizar = "";
    var dif              = 1000;
    
    temp                 = mascara.split(separador);
    valor                = trim(valor);
    if (valor == "") return valor;
    valorm               = valor;
    
    //Tirando máscara do valor já existente
    for (i=0; i < valor.length; i++){
	    if (!isNaN(valor.substr(i,1))){
		    tvalor = tvalor + valor.substr(i,1);
	    }
    }
    valor = trim(tvalor);

    //Formata máscara dinâmica
    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];
	    }
    }
	
    //Verifica qual máscara 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{
    
	    //Limpa 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;
		    }
	    }
    }
	
    //Valida 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;
    }
	
    //Mascararando valor
    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;
}

//Tira os espaços das extremidades do valor enviado
function trim(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;
}    
