/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var VLTEL_DDD_INV = -1;
var VLTEL_TEL_INV = -2;
var VLTEL_FULLTEL_INV = -3;
var VLTEL_VALID = 1;
var VLTEL_NULL = -5;

function tep_validate_tel_ddd(ddd, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;

    if (ddd.match(/[1-9]{2}/)) {
        return VLTEL_VALID;
    } else {
        if (perm_null && (trim(ddd) == '' || ddd == null)) {
            return VLTEL_VALID;
        } else if ((trim(ddd) == '' || ddd == null)) {
            return VLTEL_NULL;
        } else {
            return VLTEL_DDD_INV;
        }
    }
}

function tep_validate_telfixo_num(tel, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;
    if (tel.match(/[1-6]{1}[0-9]{3}-?[0-9]{4}/)) {
        return VLTEL_VALID;
    } else {
        if (perm_null && (trim(tel) == '' || tel == null)) {
            return VLTEL_VALID;
        } else if ((trim(tel) == '' || tel == null)) {
            return VLTEL_NULL;
        } else {
            return VLTEL_TEL_INV;
        }
    }
}

function tep_validate_telcel_num(tel, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;
    if (tel.match(/[7-9]{1}[0-9]{3}-?[0-9]{4}/)) {
        return VLTEL_VALID;
    } else {
        if (perm_null && (trim(tel) == '' || tel == null)) {
            return VLTEL_VALID;
        } else if ((trim(tel) == '' || tel == null)) {
            return VLTEL_NULL;
        } else {
            return VLTEL_TEL_INV;
        }
    }
}

function tep_validate_tel_num(tel, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;
    if (tel.match(/[1-9]{1}[0-9]{3}-?[0-9]{4}/)) {
        return VLTEL_VALID;
    } else {
        if (perm_null && (trim(tel) == '' || tel == null)) {
            return VLTEL_VALID;
        } else if ((trim(tel) == '' || tel == null)) {
            return VLTEL_NULL;
        } else {
            return VLTEL_TEL_INV;
        }
    }
}


function tep_validate_tel(ddd, tel, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;
    var ret_ddd = tep_validate_tel_ddd(ddd);
    var ret_telcel = tep_validate_telcel_num(tel);
    var ret_telfixo = tep_validate_telfixo_num(tel);
    var tel_valid = (ret_telcel == VLTEL_VALID || ret_telfixo == VLTEL_VALID);
    ddd_valid = ret_ddd == VLTEL_VALID;
    if (ddd_valid && tel_valid) {
        return VLTEL_VALID;
    } else if (ret_ddd == VLTEL_NULL && ret_telcel == VLTEL_NULL && ret_telfixo == VLTEL_NULL) {
        if (perm_null) {
            return VLTEL_VALID;
        } else {
            return VLTEL_NULL;
        }
    } else if (!ddd_valid && tel_valid) {
        return VLTEL_DDD_INV;
    } else if (!tel_valid && ddd_valid) {
        return VLTEL_TEL_INV;
    } else {
        return VLTEL_FULLTEL_INV;
    }
}

function tep_validate_tel_fixo(ddd, tel, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;
    var ret_ddd = tep_validate_tel_ddd(ddd);
    var ret_telfixo = tep_validate_telfixo_num(tel);
    var tel_valid = ret_telfixo == VLTEL_VALID;
    var ddd_valid = ret_ddd == VLTEL_VALID;
    if (ddd_valid && tel_valid) {
        return VLTEL_VALID;
    } else if (ret_ddd == VLTEL_NULL && ret_telfixo == VLTEL_NULL) {
        if (perm_null) {
            return VLTEL_VALID;
        } else {
            return VLTEL_NULL;
        }
    } else if (!ddd_valid && tel_valid) {
        return VLTEL_DDD_INV;
    } else if (!tel_valid && ddd_valid) {
        return VLTEL_TEL_INV;
    } else {
        return VLTEL_FULLTEL_INV;
    }
}

function tep_validate_tel_celular(ddd, tel, perm_null) {
    perm_null = typeof(perm_null) != 'undefined' ? perm_null : false;
    var ret_ddd = tep_validate_tel_ddd(ddd);
    var ret_telcel = tep_validate_telcel_num(tel);
    var tel_valid = ret_telcel == VLTEL_VALID;
    var ddd_valid = ret_ddd == VLTEL_VALID;
    if (ddd_valid && tel_valid) {
        return VLTEL_VALID;
    } else if (ret_ddd == VLTEL_NULL && ret_telcel == VLTEL_NULL) {
        if (perm_null) {
            return VLTEL_VALID;
        } else {
            return VLTEL_NULL;
        }
    } else if (!ddd_valid && tel_valid) {
        return VLTEL_DDD_INV;
    } else if (!tel_valid && ddd_valid) {
        return VLTEL_TEL_INV;
    } else {
        return VLTEL_FULLTEL_INV;
    }
}
