﻿
function crearPaginador(idContenedor, totalTopHits, pagNum, resultadosPorPagina) {
    var totalPags = Math.ceil(totalTopHits / resultadosPorPagina);

	if(pagNum > 1) {
		$jq(idContenedor +' .pagAnt').show();
	}
	else {
		$jq(idContenedor +' .pagAnt').hide();
	}
	
	if(pagNum < totalPags) {
		$jq(idContenedor +' .pagSig').show();
	}
	else {
		$jq(idContenedor +' .pagSig').hide();
	}
	
    if(totalPags > 1) {
        var maxSig = 5;
        var maxAnt = 5;
        var maxPags = 10;
        
        var divPaginas = $jq(idContenedor +' .pags');
        divPaginas.empty();
        
        if(pagNum == 1) {
            for(var i=1; i<=maxPags && i<=totalPags; i++) {
                divPaginas.append(
                    crearEtiquetaPagina(i, pagNum)
                );
            }
            if(maxPags < totalPags) {
                divPaginas.append(
                    crearEtiquetaPagina(totalPags, pagNum, "... "+ totalPags)
                );
            }
        }
        else {
            var iniPag = Math.min(1, (totalPags - maxAnt));
            iniPag = Math.max(1, (pagNum - maxAnt));
            
            if(iniPag > 1) {
                divPaginas.append(
                    crearEtiquetaPagina(1, pagNum, "1 ...")
                );
            }
            
            var finPag = Math.max((pagNum + maxSig), maxPags);
            finPag = Math.min(finPag, totalPags);
            for(var i=iniPag; i<=finPag; i++) {
                divPaginas.append(
                    crearEtiquetaPagina(i, pagNum)
                );
            }
            if(finPag < totalPags) {
                divPaginas.append(
                    crearEtiquetaPagina(totalPags, pagNum, "... "+ totalPags)
                );
            }
        }
        
        $jq(idContenedor +' .pags > a:first').css('border', '0px solid green');
        $jq(idContenedor +' .pags > span + a').css('border-left', '0px solid green');
    }
    
	if(totalPags > 1) {
	    $jq(idContenedor).show();
	}
	else {
		$jq(idContenedor).hide();
	}
}

function crearEtiquetaPagina(num, pagActual, texto) {
    var e;
    
    if(texto == null) {
        texto = num;
    }
    if(num != pagActual) {
        e = $jq('<a href="javascript:void(0);" />').text(texto).attr('pag', num);
        e.click(function () {
            verPag(parseInt($jq(this).attr('pag')));
        });
        e.addClass('navSep');
    }
    else {
        e = $jq('<span />').text(num);
        e.addClass('pagSep');
    }
    return e;
}

function mostrarAyuda(url) {
    window.open(url, "Ayuda", "width=640px, height=480px, resizable");
}

function esNumerico(val) {
    var regex = /\D/gi; // Tiene un valor no numerico
    return !regex.test(val);
}

function vacio(val) {
    var vacio = (jQuery.trim(val).length == 0);
    return vacio;
}

function noVacio(val) {
    return (!vacio(val));
}

function esTextoValido(val) {
    var regex = /[<>\'%]/gi;
    return !regex.test(val);
}

function esIndetificadorValido(val) {
    var regex = /[^\w|^\d]/gi // Tiene un valor no alfabético (letras acentuadas son consideradas no validas)
    return !regex.test(val);
}


function esEmailValido(email) {
    var regex = /^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$/i;
    
    return regex.test(email);
}

var contentWin;
function abrirPopup(url, titulo, w, h) {
    if(w == null) {
        w = 550;
    }
    if(h == null) {
        h = 410;
    }
    
//    var popupWin = new Window(
//        {
//            className: "alphacube", 
//            title: titulo, 
//            width: w, 
//            height: h, 
//            destroyOnClose: true, 
//            recenterAuto: false
//        });
//    popupWin.setURL(url);
//    popupWin.showCenter(true);
    
    var winOpts = {
        title: "",
        className: "alert", 
        maximizable: false, 
        minimizable: false, 
        resizable: false, 
        draggable: false,
        hideEffect:Element.hide, 
        showEffect:Element.show, 
        destroyOnClose: true,
        onShow: function() {
            $jq('#overlay_modal').click(function() { Windows.closeAll(); });
        }
    };
    contentWin = new Window(winOpts); 
    contentWin.setURL(url, true, true);
    contentWin.setSize(w, h);
    contentWin.showCenter(true); //, 180);
    
    //window.open(url, 'popup', "width="+ w +"px, height="+h+"px, resizable, scrollbars");
}

function Cerrar(){

    Windows.closeAll();

}