
function mecanica_paginador(hOb) {
	hOb.pag_primero = function () {
		$("#pag_offset").val(0); 
		hOb.buscar(); 
	}
	
	hOb.pag_anterior = function () {
		anterior = parseInt($("#pag_offset").val( )) - parseInt($("#pag_regs_por_pag").val());
		minimo = 0;
		if (anterior >= minimo) {
			$("#pag_offset").val(anterior);
			hOb.buscar(); 
		}
	}
	
	hOb.pag_siguiente = function () {
			siguiente = parseInt($("#pag_offset").val( )) + parseInt($("#pag_regs_por_pag").val());
			maximo = parseInt($("#pag_total").val( ))
			if (siguiente < maximo) {
				$("#pag_offset").val(siguiente);
				hOb.buscar(); 
			}
	}
	
	hOb.pag_ultimo = function () {
		total = parseInt($("#pag_total").val( ));
		rpp = parseInt($("#pag_regs_por_pag").val());
		resto = total % rpp; if (resto == 0) resto = rpp;
		$("#pag_offset").val(total - resto); 
		hOb.buscar(); 
	}
	
	hOb.pag_pag = function (evento) {
				key = evento.keyCode;

			if ( (key >= 48) && (key <= 57) ) return true;
			if ( (key >= 96) && (key <= 105) ) return true;
			if (key==8) return true;
			if (key==37) return true;
			if (key==39) return true;
			if (key==116) return true;
					
			if (key == 13 || key == 9) { 
				
				offset = (parseInt($("#pag_pagina").val()) - 1) * parseInt($("#pag_regs_por_pag").val());
				maximo = parseInt($("#pag_total").val( )) - 1;
				minimo = 0;
				if (offset >= maximo) {hOb.pag_ultimo(); return false; }//false; }
				if (offset <= minimo) {hOb.pag_primero(); return false; }//false;  }
				$("#pag_offset").val(offset);
				hOb.buscar();
			}	
			return false;
	}
	
	hOb.dibujar_paginador = function () {
		$("#pag_primero").removeAttr("disabled");   $("#pag_primero").removeClass("txt_btn_disabled");
		$("#pag_anterior").removeAttr("disabled");  $("#pag_anterior").removeClass("txt_btn_disabled");
		$("#pag_siguiente").removeAttr("disabled"); $("#pag_siguiente").removeClass("txt_btn_disabled");
		$("#pag_ultimo").removeAttr("disabled");    $("#pag_ultimo").removeClass("txt_btn_disabled");
		
		minimo = 0;
		actual = parseInt($("#pag_offset").val());
		rpp = parseInt($("#pag_regs_por_pag").val());
		total = parseInt($("#pag_total").val());
		resto = total % rpp; if (resto == 0) resto = rpp;
		maximo = total - resto;
		$("#pag_pagina").val(parseInt(actual/rpp)+1);
		var ntot=parseInt(total/rpp);
		if ( (ntot*rpp)<total ) ntot++;
		$("#pag_txt_total").html(ntot);
		if (actual <= minimo) {
			$("#pag_primero").attr('disabled', true);
			$("#pag_primero").addClass("txt_btn_disabled");
			$("#pag_anterior").attr('disabled', true);
			$("#pag_anterior").addClass("txt_btn_disabled");
		}
		if (actual + rpp > maximo) {
			$("#pag_siguiente").attr('disabled', true);
			$("#pag_siguiente").addClass("txt_btn_disabled");
			$("#pag_ultimo").attr('disabled', true);
			$("#pag_ultimo").addClass("txt_btn_disabled");
		}
		if ((actual == 0) && (actual + rpp > maximo)) {
			try {
				$("#pag_pagina").attr('disabled', true);
			} catch(err) {}
		}
	}
}


function activa_paginador(hOb) {
	$("#pag_primero").click(function(event) { hOb.pag_primero();	});
	$("#pag_anterior").click(function(event) { hOb.pag_anterior(); });
	$("#pag_siguiente").click(function(event) { hOb.pag_siguiente(); });
	$("#pag_ultimo").click(function(event) { hOb.pag_ultimo(); });
	$("#pag_pagina").keydown(function(event) { return hOb.pag_pag(event); });
}

