/*

 RUTINAS PARA LA PAGINACIÓN DE NOTICIAS DE NOTAS DE PRENSA (GRACIAS JQUERY!)
 
 NOTA IMPORTANTE: Para evitar conflictos con otros frameworks (Mootools, Prototype, etc.)
 recurrir a una función que nos permitirá usar ambos, la función jQuery.noConflict().
 ¿Qué hace esta función? Hace que en lugar de usar el caracter $ en las funciones, usemos jQuery, 
 evitando así los conflictos entre ambos frameworks.
 
*/

jQuery.noConflict();
jQuery(document).ready(function(){
	
	//cantidad de elementos por página para mostrar
	var mostrar_por_pagina = 10; 
	//recibir la cantidad de elementos en el interior div contenido_paginacion
	var numero_de_elementos = jQuery('#contenido_paginacion').children().size();
	//calcular el número de páginas que va a tener
	var numero_de_paginas = Math.ceil(numero_de_elementos / mostrar_por_pagina);
	
	//establecer el valor de los campos ocultos
	jQuery('#pagina_actual').val(0);
	jQuery('#mostrar_por_pagina').val(mostrar_por_pagina);
	
	var navegacion_html = '<a title="Atr&aacute;s" href="javascript:anterior();"><<</a>';
	var enlace_actual = 0;
	
	while(numero_de_paginas > enlace_actual){
		navegacion_html += '<a class="enlace_pagina" title="'+ (enlace_actual + 1) +'" href="javascript:ir_a_la_pagina(' + enlace_actual +');" longdesc="' + enlace_actual +'">'+ (enlace_actual + 1) +'</a>';
		enlace_actual++;
	}
	
	navegacion_html += '<a title="Adelante" href="javascript:siguiente();">>></a>';
	
	jQuery('#pagina_navegacion').html(navegacion_html);
	
	//agregar clase pagina_activa a la primera página
	jQuery('#pagina_navegacion .enlace_pagina:first').addClass('pagina_activa');
	
	//ocultar todos los elementos dentro de div contenido_paginacion
	jQuery('#contenido_paginacion').children().css('display', 'none');
	
	//y mostrar los primeros números (mostrar_por_pagina) elementos
	jQuery('#contenido_paginacion').children().slice(0, mostrar_por_pagina).css('display', 'block');
	
});

function anterior(){
	
	nueva_pagina = parseInt(jQuery('#pagina_actual').val()) - 1;
	//si hay un elemento para que el enlace que se encuentra activo ejecutar la función
	if(jQuery('.pagina_activa').prev('.enlace_pagina').length == true)
		ir_a_la_pagina(nueva_pagina);
	
}

function siguiente(){
	
	nueva_pagina = parseInt(jQuery('#pagina_actual').val()) + 1;
	//si hay un elemento después del enlace activo actual ejecutar la función
	if(jQuery('.pagina_activa').next('.enlace_pagina').length == true)
		ir_a_la_pagina(nueva_pagina);
	
}

function ir_a_la_pagina(numero_pagina){
	//obtener el número de elementos que se muestra por página
	var mostrar_por_pagina = parseInt(jQuery('#mostrar_por_pagina').val());
	
	//obtener el número de elemento por donde empieza
	empezar_desde = numero_pagina * mostrar_por_pagina;
	
	//obtener el número de elemento donde termina
	terminar_en = empezar_desde + mostrar_por_pagina;
	
	//ocultar todos los elementos de los hijos del div contenido_paginacion, conseguir elementos y mostrarlos
	jQuery('#contenido_paginacion').children().css('display', 'none').slice(empezar_desde, terminar_en).css('display', 'block');
	
	/*obtener el enlace de la página que tiene el atributo "longdesc" de la página actual 
	y añadir la clase "pagina_activa" a ella y quitar esa clase de enlace anterior de la página activa*/
	jQuery('.enlace_pagina[longdesc=' + numero_pagina +']').addClass('pagina_activa').siblings('.pagina_activa').removeClass('pagina_activa');
	
	//actualizar el campo actual de entrada de la página
	jQuery('#pagina_actual').val(numero_pagina);
}
