// Atamaral
// Kike Valdenebro - 25.02.2008
// Redbility
//
// Libreria de funciones para version dinamica


// Constantes
var g_secciones = ["mision", "quienes", "recursos", "consejo", "ubicacion", "participadas"];
// Pagina actual
var g_paginaActual = 1;
// Hilos de ejecucion
var g_movingContenido = 0;
// Objetivos de los hilos de ejecucion
var g_targetX = 0;



window.onload = init;

function init() {
	// Funcion de inicializacion de la pagina version dinamica
	$('controles').setStyle({display: 'block'});
	cargaSecciones();
	capturaEnlaces();
	iraSearch();
	return;
}

function cargaSecciones() {
	// Carga mediante Ajax las paginas en la capa contenido, a continuacion de la pagina 1
	for (var i=1; i<g_secciones.length; i++) {
		var my_div = document.createElement('div');
		Element.extend(my_div);
		my_div.setAttribute('id', g_secciones[i]+'_container');
		$('contenido').appendChild(my_div);
		new Ajax.Updater(g_secciones[i]+'_container', 'sp_'+g_secciones[i]+'.php', {
			method: 'get',
			insertion: Insertion.Bottom
		});
	}
	return;
}

function capturaEnlaces() {
	// Reasigna la accion a realizar al pulsar un enlace de navegacion
	var links = $$('a.nav');
	for (var i=0; i<links.length; i++) {
		links[i].href = '#';
		Event.observe(links[i], 'click', function(event) {
			var element = Event.element(event);
			var pagina = eval(element.readAttribute('id').substr(8,2));
			verPagina(pagina);
		});
	}
	var boton = $('a-anterior');
	boton.href = '#';
	Event.observe(boton, 'click', function(event) {
		paginaAnterior();
	});
	boton = $('a-siguiente');
	boton.href = '#';
	Event.observe(boton, 'click', function(event) {
		paginaSiguiente();
	});
}

function 	iraSearch() {
	// Si en la URL se ha intruducido un parametro "search", va a la seccion dada
	seccion = location.search;
	if(!seccion) {
		seccion ='?seccion=mision';
	}
	seccion = seccion.split("=")[1];
	for (var i=0; i<g_secciones.length; i++) {
		if(seccion==g_secciones[i]) {
			break;
		}
	}
	if(i>=g_secciones.length) {
			i = 0;
	}
	verPagina(i+1);
	$('general').removeClassName(seccion);
	$('a-pagina'+Math.floor((i+1)/10)+((i+1)-Math.floor((i+1)/10))).addClassName('activo');
	return;
}
										

function movingContenido() {
	// Funcion periodica utilizada por moveContenido()
	var xActual = parseInt($('contenido').getStyle('left'));
	if ( Math.abs(xActual - g_targetX) > 8 ) {
		xActual = xActual + Math.floor((g_targetX - xActual)/8);
		$('contenido').setStyle({left: xActual+'px'});
	}
	else if ( Math.abs(xActual - g_targetX) > 2 ) {
		xActual = xActual + Math.floor((g_targetX - xActual)/2);
		$('contenido').setStyle({left: xActual+'px'});
	}
	else {
		xActual = g_targetX;
		$('contenido').setStyle({left: xActual+'px'});
		clearInterval(g_movingContenido);
	}
	return;
}

function moveContenido() {
	// Mueve la capa contenido a la posicion almacenada en g_targetX (left)
	clearInterval(g_movingContenido);
	g_movingContenido = setInterval('movingContenido()', 25);
	cambiarSeccionActiva();
	return;
}

function cambiarSeccionActiva() {
	// Cambia la seccion activa mostrada en la navegacion segun la pagina actual
	var links = $$('a.nav');
	for (var i=0; i<links.length; i++) {
		links[i].removeClassName('activo');
	}
	$('a-pagina'+Math.floor(g_paginaActual/10)+(g_paginaActual-Math.floor(g_paginaActual/10))).addClassName('activo');
	if (g_paginaActual==1) {
		$('a-anterior').setStyle({display: 'none'});
	}
	else {
		$('a-anterior').setStyle({display: 'block'});
	}
	if (g_paginaActual==g_secciones.length) {
		$('a-siguiente').setStyle({display: 'none'});
	}
	else {
		$('a-siguiente').setStyle({display: 'block'});
	}
	return;
}

function verPagina(pagina) {
	// Mueve la capa contenido para visualizar la seccion elegida
	g_targetX = -920*(pagina-1);
	g_paginaActual = pagina;
	moveContenido();
	return;
}

function paginaAnterior() {
	// Retrocede hasta la pagina anterior
	if(g_paginaActual>1) {
		verPagina(g_paginaActual-1);
	}
	return;
}

function paginaSiguiente() {
	// Avanza hasta la pagina siguiente
	if(g_paginaActual<g_secciones.length) {
		verPagina(g_paginaActual+1);
	}
	return;
}
