﻿// JScript File

/* Funciones/objetos para controlar la paginacion */
/* Clase control paginacion */
function controlPaginacion() {
    this.idsIncrementadores = new Array();
    this.tiposIncrementadores = new Array();
    this.totalIncrementadores = 0;
    this.idsSelects = new Array();
    this.totalSelects = 0;
    this.idsMaxPagina = new Array();
    this.totalMaxPagina = 0;
    this.funcionOnActualizar = "null";
    this.inputHiddenPaginas = "txtNumPagina";
    this.txtNumPaginaMax = new Array();
    this.paginaSeleccionada = 0;
    this.totalPaginas = 0;
}

controlPaginacion.prototype.agregaIncrementador = function(id, tipo) {
    this.idsIncrementadores[this.totalIncrementadores] = id;
    this.tiposIncrementadores[this.totalIncrementadores] = tipo;
    this.totalIncrementadores += 1;
}

controlPaginacion.prototype.agregaSelect = function(id) {
    this.idsSelects[this.totalSelects] = id;
    this.totalSelects += 1;
}

controlPaginacion.prototype.agregaMaxPagina = function(id) {
    this.idsMaxPagina[this.totalMaxPagina] = id;
    this.totalMaxPagina += 1;
}

controlPaginacion.prototype.inicializarSelectPaginas = function (totalPaginas) {
    for (i = 0; i < this.totalSelects; i++) {
        obj = document.getElementById(this.idsMaxPagina[i]);
        obj.innerHTML = totalPaginas;
        obj = document.getElementById(this.idsSelects[i]);
        obj.options.length = 0;
        for(var j=1; j<=totalPaginas; j++) {
            obj.options[obj.length] = new Option(j , j );
        }
        if (totalPaginas == 0)obj.options[0] = new Option('-' , 0 );
    }
    totalPags = totalPaginas;
    this.totalPaginas = totalPaginas;
    this.actualizarPaginacion(1,false);

}

controlPaginacion.prototype.actualizarPaginacion = function(paginaActual, funcionActualizar) {
    for (i = 0; i < this.totalMaxPagina; i++) {
        var max = parseInt(document.getElementById(this.idsMaxPagina[i]).innerHTML);
    }
    if (paginaActual > totalPags) { paginaActual = totalPags }
    if (paginaActual <= 0) { paginaActual = 1 }
    if (document.getElementById(this.inputHiddenPaginas)) document.getElementById(this.inputHiddenPaginas).innerHTML = paginaActual;
    this.paginaSeleccionada = paginaActual;
    ResultadosMostrados = paginaActual;

    // Actualizamos los "decrementadores de pagina"
    var estilo = "hidden";
    if (paginaActual != 0) { estilo = "visible"; }

    for (i = 0; i < this.totalIncrementadores; i++) {
        if (this.tiposIncrementadores[i] == '-') {
            document.getElementById(this.idsIncrementadores[i]).style.visibility = estilo;
        }
    }
    // Actualizamos los "incrementadores de pagina"
    estilo = "visible";
    for (i = 0; i < this.totalIncrementadores; i++) {
        if (this.tiposIncrementadores[i] == '+') {
            document.getElementById(this.idsIncrementadores[i]).style.visibility = estilo;
        }
    }
    // Actualizamos los "selects de pagina"
    for (i = 0; i < this.totalSelects; i++) {
        document.getElementById(this.idsSelects[i]).selectedIndex = paginaActual - 1;
    }
    if (funcionActualizar != false) eval(this.funcionOnActualizar);
}

/* Funciones de actualizacion de la paginacion */
controlPaginacion.prototype.cambiarPagina = function(obj) {
    this.actualizarPaginacion(obj.selectedIndex+1);
}

controlPaginacion.prototype.sumarPagina = function(incremento) {
    var numPag = parseInt(this.paginaSeleccionada);
    if (incremento == '+') {
        this.actualizarPaginacion(numPag + 1);
        window.location.href = "#pagina"
    }
    else {
        this.actualizarPaginacion(numPag - 1);
        window.location.href = "#pagina"
    }
}
