﻿var _outros = {
    index : 0,
    name : "Outros",
    regex : "^[2-9]{1}\d{3}\-{0,1}\d{4}$|^[0][1-9]\d{2}\-\d{3}\-\d{4}$|^[0][1-9]\d{2}\d{7}$",
    size : 11
}

var _fixo = {
    index : 1,
    name : "Fixo",
    regex : "^[2-5]{1}\\d{3}\\-{0,1}\\d{4}$",
    size : 8
}

var _celular = {
    index : 2,
    name : "Celular",
    regex : "^[6-9]{1}\\d{3}\\-{0,1}\\d{4}$",
    size : 8
}

function RemoverZeroEsq(valor)
{
    for(i=0;i<valor.length;i++)
    {
        if(valor.charAt(i) != '0')
            break;
    }

    return valor.substring(i);            
}
function AplicarMascaraDD(controle)
{
    var valor = Trim(controle.value);
    if (valor == '')
        return;
   if(valor.match("\\d{1,3}"))
   {
        valor = RemoverZeroEsq(valor);
        valor = valor.substring(0,2);
   }
   controle.value = valor;
}

function AplicarMascaraFone(controle) {
    var valor = Trim(controle.value);
    if (valor == '') { return; }
    if (valor.match(/^(\d{8})$/)) { valor = valor.replace(/(\d{4})(\d{4})/,"$1-$2"); }
    else if (valor.match(/^(\d{11})$/) && valor.substring(0,1) == "0") {
        valor = valor.replace(/(\d{4})(\d{3})(\d{4})/,"$1-$2-$3");
    }
    controle.value = valor;
}

function ProxControleDD(controle, tecla)
{
    if (controle.value.length >= 1)
    {
        if(controle.value.charAt(0) == '0' && controle.value.length != 2)
            return true;
        controle.value += String.fromCharCode(tecla);
        
        for(i=0;i<document.forms[0].elements.length;i++)
        {               
            if(document.forms[0].elements[i] == controle)
                document.forms[0].elements[++i].focus();
        }
        return false;
    }
    return true;
}

function getPhoneSize(controle, tipo) { 
    /// <summary>
    /// Retorna dinâmicamente o tamanho do campo telefone.
    /// </summary>
    var size;
    if (tipo == _outros.index) {
        size = _outros.size;
        if (controle.value.charAt(0) != '0') { size = 8; }
    } else if (tipo == _fixo.index) {
        size = _fixo.size;
    } else if (tipo == _celular.index) {
        size = _celular.size;
    } else {
        size = _outros.size;
        if (controle.value.charAt(0) != '0') { size = 8; }
    }
    return size;    
}

function getAreaCodeSize(controle){
    /// <summary>
    /// Retorna dinâmicamente o tamanho do campo código de área.
    /// </summary>
    return controle.value.charAt(0) == '0' ? 3 : 2;
}

function ApenasNumerosDD(controle, event) {
    /// <summary>
    /// Retorna somente nros ou backspace/delete/return e impede ZERO (0) no primeiro digito.
    /// </summary>
    var tecla = employer.event.getKey(event);
    var sizeSelected = component_getSizeTextSelected(controle);
    if (controle.value.length == getAreaCodeSize(controle) && component_isTextNotSelected(controle) && tecla[0] == 0) { return false; }
    if (controle.value.length < getAreaCodeSize(controle) || sizeSelected > 0 || employer.key.isSpecial(tecla[0]))  {
    // 48='0', 57='9'  
        return ((tecla[1] >= 48 && tecla[1] <= 57) || employer.key.isSpecial(tecla[0])) ? true : false;
    } else {
        return false;
    }
}

function ApenasNumerosFone(controle, event, tipo){    
    /// <summary>
    /// Retorna somente nros ou backspace/delete/return.
    /// </summary>
    var tecla = employer.event.getKey(event);
    var pos = component_getSelectionStart(controle);
    var sizeSelected = component_getSizeTextSelected(controle);
    if (controle.value.length == getPhoneSize(controle, tipo) && component_isTextNotSelected(controle) && tecla[0] == 0) { return false; }
    if (controle.value.length < getPhoneSize(controle, tipo) || sizeSelected > 0 || employer.key.isSpecial(tecla[0]))  {
        // 48='0', 57='9'        
        return ((tecla[1] >= 48 && tecla[1] <= 57) || employer.key.isSpecial(tecla[0])) ? true : false;
    } else {
        return false;
    }
}