/**
	 * Limita um campo TextArea impedindo o usuário de continuar a digitação
	 *
	 * @param object field - campo TextArea a ser limitado
	 * @param string counter - ID do Div que mostrará os caracteres atuais e os restantes
	 * @param int limit - número máximo de caracteres
	 * @return void
*/

//máscara para números decimais
//exemplo de utilização: onKeyPress="return(MascaraMoeda(this,'.',',',event))"
function maskMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e)
{  
    var sep = 0;  
    var key = '';  
    var i = j = 0;  
    var len = len2 = 0;  
    var strCheck = '0123456789';  
    var aux = aux2 = '';  
    var whichCode = (window.Event) ? e.which : e.keyCode;  
    if (whichCode == 13 || whichCode == 8) return true;  
    key = String.fromCharCode(whichCode); // Valor para o código da Chave  
    if (strCheck.indexOf(key) == -1) return false; // Chave inválida  
    len = objTextBox.value.length;  
    for(i = 0; i < len; i++)  
        if ((objTextBox.value.charAt(i) != '0') && (objTextBox.value.charAt(i) != SeparadorDecimal)) break;  
    aux = '';  
    for(; i < len; i++)  
        if (strCheck.indexOf(objTextBox.value.charAt(i))!=-1) aux += objTextBox.value.charAt(i);  
    aux += key;  
    len = aux.length;  
    if (len == 0) objTextBox.value = '';  
    if (len == 1) objTextBox.value = '0'+ SeparadorDecimal + '0' + aux;  
    if (len == 2) objTextBox.value = '0'+ SeparadorDecimal + aux;  
    if (len > 2) {  
        aux2 = '';  
        for (j = 0, i = len - 3; i >= 0; i--) {  
            if (j == 3) {  
                aux2 += SeparadorMilesimo;  
                j = 0;  
            }  
            aux2 += aux.charAt(i);  
            j++;  
        }  
        objTextBox.value = '';  
        len2 = aux2.length;  
        for (i = len2 - 1; i >= 0; i--)  
            objTextBox.value += aux2.charAt(i);  
        objTextBox.value += SeparadorDecimal + aux.substr(len - 2, len);                 
    }  
    return false;  
} 

function limitTextArea(field, counter, limit) {
    if (field.value.length > limit) {
        field.value = field.value.substring(0, limit);
    }
	
    document.getElementById(counter).innerHTML = field.value.length + " de " + limit + " caracteres";
}

function BloqueiaEnter(e) {

    var evento = window.event || e;
    var tecla = evento.keyCode || evento.witch;
    if (tecla == 13) {
        return false;
    }

}

function maskNum(field) {
    field.value = field.value.replace(/\D/g, "");
}

function maskCep(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{5})(\d)/, "$1-$2");
}

function maskCnd(field)
{
    maskNum(field);
    field.value = field.value.replace(/(\d{6})(\d)/, "$1/$2");
}

function maskCnpj(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{2})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1/$2");
    field.value = field.value.replace(/(\d{4})(\d)/, "$1-$2");
}

function maskCpf(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{3})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1-$2");
}

function maskTel(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{4})(\d)/, "$1-$2");
}

function maskTelDDD(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{0})(\d)/, "$1($2");
    field.value = field.value.replace(/(\d{2})(\d)/, "$1) $2");
    field.value = field.value.replace(/(\d{4})(\d)/, "$1-$2");
}

function maskIdentidade(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{2})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1-$2");
}

function maskData(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{2})(\d)/, "$1/$2");
    field.value = field.value.replace(/(\d{2})(\d)/, "$1/$2");
}

function maskDAR(field) {
    maskNum(field);
    field.value = field.value.replace(/(\d{2})(\d)/, "$1/$2");
    field.value = field.value.replace(/(\d{6})(\d)/, "$1-$2");
}

function maskInscricaoImobiliaria(field) {
    maskNum(field);
    field.value = field.value.replace(/^(\d{1})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{4})(\d)/, "$1.$2");
    field.value = field.value.replace(/^(\d{1})\.(\d{3})\.(\d{4}).(\d{3})(\d)/, "$1.$2.$3.$4-$5");
}

function maskHora(field) {
    maskNum(field);
    field.value = field.value.replace(/^[^0-2]/, "");
    field.value = field.value.replace(/^([2])([^0-3])/, "$1");
    field.value = field.value.replace(/^(\d{2})([^0-5])/, "$1");
    field.value = field.value.replace(/(\d{2})(\d)/, "$1:$2");
}

function showField(checkBoxField, field) {
    chField = document.getElementById(checkBoxField);
    fld = document.getElementById(field);

    if (chField.checked) {
        fld.style.display = 'block';
    }
    else {
        fld.style.display = 'none';
    }
}

function comboRedirect(urlTo, comboDiv, param) {
    cb = document.getElementById(comboDiv);

    location.href = urlTo + "?" + param;
}

/*function maskInscricaoImobiliaria(field) {
    maskNum(field);
    field.value = field.value.replace(/^(\d{1})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{1})(\d)/, "$1.$2");
    field.value = field.value.replace(/(\d{3})(\d)/, "$1-$2");
}*/

function confirmDelete(url, parameters) {
    var param = "";
    var first = true;

    for (var i = 0; i < parameters.length; i++) {
        if (first) {
            param += "?" + parameters[i];
            first = false;
        } else {
            param += "&" + parameters[i];
        }
    }

    url += param;

    if (confirm("Tem certeza que deseja excluir esse registro?")) {
        location.href = url;
    }
}

function maskMoney(str, textbox, loc, delim){
    var locs = loc.split(',');

    for (var i = 0; i <= locs.length; i++){
        for (var k = 0; k <= str.length; k++){
            if (k == locs[i]){
                if (str.substring(k, k+1) != delim){
                    str = str.substring(0,k) + delim + str.substring(k,str.length);
                }
            }
        }
    }
    textbox.value = str;
}

function maskCurrency(field) {    
    var tempValue = new Array();
    var i;
    
    field.value = field.value.replace(/[^(\d)|\,|\.]/, "");
    
    if (field.value.match(/^(\d)$/)) {
        field.value = "0,0" + field.value;
    }
    
    if (field.value.match(/^[0]\,[0](\d{2})$/)) {
        field.value = field.value.replace(/^[0]\,[0]/, "");
        field.value = "0," + field.value;
    }
    
    field.value = field.value.replace(/\./g, "");
        
    if (field.value.match(/^(\d)+\,(\d{3})$/)) {
        field.value = field.value.replace(/^[0]\,/, "");
        field.value = field.value.replace(",", "");

        for (i = 0; i < field.value.length; i++) {
            tempValue[i] = field.value[i];
        }
        
        field.value = "";
        
        for (i = 0; i < tempValue.length; i++) {
            var tempInteiros;
            
            if (i == 2) {
                field.value = "," + field.value;
            }
            
            tempInteiros = field.value.replace(/\,(\d{2})/, "");
            tempInteiros = tempInteiros.replace(/\./g, "");
            
            if (tempInteiros.length % 3 == 0 && tempInteiros != 0) {
                field.value = "." + field.value;
            }
            
            field.value = tempValue[tempValue.length - 1 - i] + field.value;
        }
    }
}
