﻿// quita espacios
function trim(stexto) {
  String :str = new String(stexto);
    return str.replace(/^\s*|\s*$/g, "");
}
// retorna true si hay arroba en la cadena
function arroba(q) {
    for (i = 0; i < q.length; i++) {
        if (q.charAt(i) == "@") {
            return true
        }
    }
    return false
}
//retorn true si hay punto en la cadena
function punto(q) {
    for (i = 0; i < q.length; i++) {
        if (q.charAt(i) == ".") {
            return true
        }
    }
    return false
}
function IsValidEmail(email) {
    return arroba(email) && punto(email);
}
//- Cambia una hoja de estilos segun sea la resolucion
function CSSResolution(filename,value) {
     //if (screen.width<=value)
        $("#css_" + filename).attr("href", "styles/" +value+"/"+ filename + ".css");
}
//- Verifica la resolucion
function VerificaResolucion() {
   CSSResolution("skin", 1024);
   CSSResolution("layout", 1024);
    //CSSResolution("forms", 1024);
}//-Obtiene el numero de paginas
function NumPagesOf(total, top){
    lNumPages = Math.round(total / top);
   if (lNumPages*top < total) 
    lNumPages = lNumPages +1;
    return lNumPages;
}
//--Formato de miles
function formatMilesInt(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
    num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num);
}
//--Formato de miles
function formatMilesFloat(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
    num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + num + '.' + cents);
}
//--Formato de moneda
function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10)
        cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + ',' +
    num.substring(num.length - (4 * i + 3));
    return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}
//-- Devuelve el max de paginas en par
function MaxPageEven(num) {
    /*if ((num % 2) == 1) return num + 1;
    else*/ 
    return num;
}
//---Devuelve si es numero
function IsNumeric(sText) {
    var ValidChars = "0123456789.";
    var IsNumber = true;
    var Char;


    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;

}

//---Devuelve una cadena con un maximo numero de caracteres
function StrMax(cadena,max_length) {
    sCadena = new String(cadena);
    return sCadena.substr(0, max_length-1);
}

//--- Regresa el valor de un Editbox
function VAL(name) {
   return $('#'+name).attr('value');
}
//--- Regresa el valor de un Checkbox
function CHK(name) {
    return $('#' + name).attr('checked');
}

function ValidaRfc(rfcStr) {
    var strCorrecta;
    rfcStr = new String(rfcStr);
    rfcStr = trim(rfcStr);
    rfcStr = rfcStr.replace(/-/g, "");
    rfcStr = rfcStr.replace(/ /g, "");
    rfcStr = rfcStr.replace(/_/g, "");
    if ((rfcStr.length > 13) || (rfcStr.length < 12))
        return false;
    strCorrecta = rfcStr;
    if (rfcStr.length == 12) {
        var valid = '^(([A-Z]|[a-z]){3})([0-9]{6})((([A-Z]|[a-z]|[0-9]){3}))';
    } else {
        var valid = '^(([A-Z]|[a-z]|\s){1})(([A-Z]|[a-z]){3})([0-9]{6})((([A-Z]|[a-z]|[0-9]){3}))';
    }
    var validRfc = new RegExp(valid);
    var matchArray = strCorrecta.match(validRfc);
    if (matchArray == null)
        return false;
    if (rfcStr.length == 12) sfecha = rfcStr.substr(3, 6); else sfecha = rfcStr.substr(4, 6);

    year = parseInt(sfecha.substring(0, 2), 10);
    month = parseInt(sfecha.substring(2, 4), 10);
    day = parseInt(sfecha.substring(4, 6), 10);
    result = ((month > 0) && (month < 13)) && ((day > 0) && (day < 32));
    //alert(year + ' ' + month + ' ' + day+' '+result);
    return result;
}

function validarNumero(c_numero) {
    //chequeo la longitud de c_numero: 
    // Si (c_numero.length es igual a Cero) quiere decir que c_numero es una cadena Vacía. 
    // Si (c_numero.length es distinto(mayor) de Cero) podemos asegurar que c_numero contiene por lo menos una letra 
    //a la cual se le puede hacer la validación 
    if (c_numero.length == 0) {
        return "NaN";
    }
    else {
        //Se recorre c_numero por todos sus caracteres chequeando que todos sean dígitos 
        //la condición >="0" y <="9" es basada en el valor ascii que tienen los números en la tabla ascii. 
        //Si alguno de los caracteres no es un número la función retornará un NaN 
        //Si no retornará el Número 
        for (i = 0; i < c_numero.length; i++) {
            if (!((c_numero.charAt(i) >= "0") && (c_numero.charAt(i) <= "9")))
                return "NaN";
        }
        return c_numero;
    }
}

function Request_login() {    
    tb_show("","sesion.asp");
}

function Round(rnum, rlength) { 
    var newnumber = Math.round(rnum * Math.pow(10, rlength)) / Math.pow(10, rlength);
    return newnumber; 
}
