/**
 *  Validation Functions Javascript
 */
/**
* Revisar todos/as  /  Desmarcar todos
*
* @param   string   nombre formulario
* @param   string   nombre arreglo
* @param   booleano  revisar todos/as  /  desmarcar todos
* @param   entero   tama–o arreglo
*
* @return  booleano  always true
*/
function setCheckboxes(arreglo, estado, tama)
{
    for (var i = 0; i < tama; i++) {
        document.getElementById(arreglo + "_" + i).checked = estado;
    }return true;
}

//quita espacios al inicio y final
function Trim(sStr){
    return jQuery.trim(sStr);
}


//escribe alertas y regresa el foco al elemento
function fixElement(element, message) {
    $('#s_'+element).addClass('alert');
    $('#s_'+element).html(message);
    //$('#'+element).focus();
}

//valida la sintaxis correo
function si_correo(cadena){
    if(cadena.length==0)
    return true
    if(cadena.search)
    {
        return (cadena.search(new RegExp("^([-!#$%&'*+./0-9=?A-Z^_`a-z{|}~])+@([-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+\\.)+[a-zA-Z]{2,4}$","gi"))>=0)
    }
    if(cadena.indexOf)
    {
        at_character=cadena.indexOf('@')
        if(at_character<=0 || at_character+4>cadena.length)
        return false
    }
    if(cadena.length<6) return false
    else
    return true
}
function si_url(cadena){
	var v = new RegExp();
    v.compile("^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$");
    if (!v.test(cadena)) {
        return false;
    }
	 return true;
    /*if(cadena.length==0) return true
   if(cadena.search(new RegExp("^(http|https|news|ftp|irc)\\://(([-!#\\$%&'*+.0-9=?A-Z^_`a-z{|}~]+\\.)+[A-Za-z]{2,6})(\\:[0-9]+)?(/)?/","gi"))<0) return false
	 if(cadena.search(RegExPattern)<0) return true;*/
}

/************Valida fecha dd/mm/aaaa**************/
function si_fecha(cadena){
    if(cadena.length==0) return true
    var RegExPattern = /^([1-9]|0[1-9]|[12]\d|3[01])\/([1-9]|0[1-9]|1[012])\/(\d{4})$/

    if (cadena.search(RegExPattern)<0) return false

    var txtfecha=cadena.split('/')

    txtfecha[0]=parseInt(eval(txtfecha[0]));
    txtfecha[1]=parseInt(eval(txtfecha[1]));
    txtfecha[2]=parseInt(eval(txtfecha[2]));
    return (txtfecha[0] <= finMes(txtfecha[1],txtfecha[2]));
}
/************Valida hora hh:mm:ss**************/
function si_hora(cadena){
    if(cadena.length==0) return true
    var RegExPattern = /(^([1-9]|[01]\d|2[0-3]):(\d|[0-5]\d)(:(\d|[0-5]\d))?$)|(^([1-9]|0[1-9]|1[012]):(\d|[0-5]\d)(:(\d|[0-5]\d))?(a|am|p|pm)?$)/

    if (cadena.search(RegExPattern)<0) return false
}
//Verifica un nombre y un apellido
function si_nombreapellido(cadena){
    if(cadena.length==0) return false
    if (cadena.search(new RegExp("([a-zA-ZË-Ø.#-])([ ])([a-zA-ZË-Ø.#-])","g"))<0) return true;
}
function si_nombre(cadena){
    if(cadena.length==0) return false
    if (cadena.search(new RegExp("^[ a-zA-ZË-Ø.#-]+$","g"))<0) return true;
}
function si_letnum(cadena){
    if(cadena.length==0) return false
    if (cadena.search(new RegExp("^[a-zA-Z0-9#-_]+$","g"))<0) return true;
}
function si_nomarc(cadena){
    if(cadena.length==0) return false
    if (cadena.search(new RegExp("^[ _a-zA-ZË-Ø0-9.#-]+$","g"))<0) return true;
}
function si_telefono(cadena){
    if(cadena.length==0) return false
    if (cadena.search(new RegExp("^[ 0-9#-()-]+$","g"))<0) return true;
}
function si_numero(cadena){
    if(cadena.length==0) return false
    if (cadena.search(new RegExp("^[0-9]+$","g"))<0) return true;
}
function si_flotante(cadena)
{
    if(cadena.length==0) return false
    if(isNaN(cadena)) return true;
}
function si_entero(cadena)
{
    if(cadena.length==0) return false
    if(isNaN(cadena)) return true;
}
var popUpWin=0;
function NuevaVentana(URLStr, left, top, width, height, scrollbar)
{
    if(popUpWin)
    {
        if(!popUpWin.closed) popUpWin.close();
    }
    popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars='+scrollbar+',resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
}
/************************Funciones de validar Fecha********************************/

function finMes(nMes,nAno){
    var nRes = 0;
    switch (nMes){
        case 1:nRes = 31;break;
        case 2:nRes = 28;break;
        case 3:nRes = 31;break;
        case 4:nRes = 30;break;
        case 5:nRes = 31;break;
        case 6:nRes = 30;break;
        case 7:nRes = 31;break;
        case 8:nRes = 31;break;
        case 9:nRes = 30;break;
        case 10:nRes = 31;break;
        case 11:nRes = 30;break;
        case 12:nRes = 31;break;
    }
    return nRes + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
}


