// FUNCIONES AUXILIARES
Array.prototype.isElement = function (x) {
		var resultado = false;
		for (var i = 0; i < this.length; i++) {
				if (this[i] == x) {
						resultado = true;
						break;
				}
		}
		return resultado;
};


// VARIABLES GLOBALES
var casos_caja_b = new Array();
var casos_caja_c = new Array();
var fondos_banner_principal = ["banner-bolas.jpg", "banner_barras.jpg", "banner-puzzle.jpg"];

function carga_completa() {
		var marco = document.getElementById("marco");
		var anchoVentana = parseInt (marco.clientWidth);
		var margenCentrado = (anchoVentana - 935) / 2;
		var principal = document.getElementById("principal");
		principal.style.left = margenCentrado;
		principal.style.visibility = "visible";
		inicializar_casos();
		setTimeout(rotar, 6000);
		// (HOME no tiene elemento en el mapa web... aun)
		// EL TRUQUILLO PARA ACTIVAR EL MAPA WEB
		// var url = document.location.href;
		// url = url.split("/");
		// url = url[url.length - 1];
		// url = url.split("?");
		// url = url[0];
		// var elementoMapaWebActivo = document.getElementById(url);
		// elementoMapaWebActivo.className = elementoMapaWebActivo.className + "_activo";
		
		// -- CENTRAR LA PAGINA CUANDO SE REDIMENSIONE --
		window.onresize = centrarPagina;
}

function centrarPagina() {
   // CENTRAR A LO ANCHO
   var marco = document.getElementById("marco");
   var anchoVentana = parseInt (marco.clientWidth);
   var margenCentrado = (anchoVentana - 935) / 2;
   var principal = document.getElementById("principal");
   principal.style.left = margenCentrado;
   principal.style.visibility = "visible";
}

function rotar () {		
		rotarCasosHome();
		setTimeout(rotar, 5000);
}

function scroll_vertical (elemento, fcomp, paso) {
	  var paso = paso || 1;
	  var fn = function () { var actual = (parseInt(elemento.style.top) + paso); 
	                         elemento.style.top =  actual + "px"; 
                           if (fcomp (elemento)) {setTimeout(fn, 10);}
											   };
		setTimeout(fn, 10);
}

function inicializar_casos () {
		var anyadidos = new Array ();
		var candidato;
		while (anyadidos.length != 11) {
				candidato = Math.floor(Math.random()*11);
			  if (!anyadidos.isElement(candidato)) {
						anyadidos.push (candidato);
				}
		}
		candidato = Math.floor(Math.random()*3);
		for (var i=0; i < candidato; i++) {
				fondos_banner_principal.push (fondos_banner_principal.shift());
    }
		casos_caja_b = anyadidos.slice(0,5);
		casos_caja_c = anyadidos.slice(5);
		inicializar_cajas();
		//rotar_fondo();
}

function inicializar_cajas() {
		//CARGAMOS LA IMAGEN UN PRIMER CASO PARA QUE NO SALGAN LOS CUADROS DE COLORES
		var siguiente = casos_caja_b.shift ();
		casos_caja_b.push (siguiente); // Este paso es para volver a encolar el caso que hemos leido, que pasa de la cima a la cola
		cargar_caso (siguiente, "cuadro_home_b_1");
    siguiente = casos_caja_c.shift ();
		casos_caja_c.push (siguiente); // Este paso es para volver a encolar el caso que hemos leido, que pasa de la cima a la cola
		cargar_caso (siguiente, "cuadro_home_c_1");
    //INICIAMOS LAS ROTACIONES
    //setTimeout (rotar_caja_b, 5000);
	  //setTimeout (rotar_caja_c, 5000);
}

function cargar_caso (caso, nombre_elemento) {
		var titulo = document.getElementById("titulo_" + nombre_elemento);
		var subtitulo = document.getElementById("subtitulo_" + nombre_elemento);
		var imagen = document.getElementById("imagen_" + nombre_elemento);
		var texto = document.getElementById("texto_" + nombre_elemento);
		var link = document.getElementById("link_" + nombre_elemento);
		var velo = document.getElementById("velo_de_privacidad_" + nombre_elemento);

		var id = arrayCasosPracticos[caso].id;

		link.href = "caso_practico_" + id + ".html";
		titulo.innerHTML = arrayCasosPracticos[caso].titulo;
		subtitulo.innerHTML = arrayCasosPracticos[caso].subtitulo;

		if (id != 6) {
				velo.style.visibility = "hidden";
				imagen.innerHTML = '<img src="casos_practicos/' + arrayCasosPracticos[caso].imagen + '">';
				texto.innerHTML = arrayCasosPracticos[caso].texto;
		} else {
				velo.style.visibility = "visible";
				imagen.innerHTML = "";
				texto.innerHTML = "";
		}
}

function intercambiar_caso (nombre_elemento_origen, nombre_elemento_destino) {
		var stitulo = document.getElementById("titulo_" + nombre_elemento_origen);
		var ssubtitulo = document.getElementById("subtitulo_" + nombre_elemento_origen);
		var simagen = document.getElementById("imagen_" + nombre_elemento_origen);
		var stexto = document.getElementById("texto_" + nombre_elemento_origen);

		var dtitulo = document.getElementById("titulo_" + nombre_elemento_destino);
		var dsubtitulo = document.getElementById("subtitulo_" + nombre_elemento_destino);
		var dimagen = document.getElementById("imagen_" + nombre_elemento_destino);
		var dtexto = document.getElementById("texto_" + nombre_elemento_destino);

		dtitulo.innerHTML = stexto.innerHTML;
		dsubtitulo.innerHTML = ssubtitulo.innerHTML;
		dimagen.src = simagen.src;
		dtexto.innerHTML = stexto.innerHTML;
}

function rotar_caja_b () {
		var siguiente = casos_caja_b.shift ();
		casos_caja_b.push (siguiente); // Este paso es para volver a encolar el caso que hemos leido, que pasa de la cima a la cola
		cargar_caso (siguiente, "cuadro_home_b_2");
		var marcob = document.getElementById("marco_home_b");
		aux2_rotar_caja_b (marcob);
		//setTimeout (rotar_caja_b, 5000);
}

function rotar_cajas () {
		var siguienteb = casos_caja_b.shift ();
		casos_caja_b.push (siguienteb); // Este paso es para volver a encolar el caso que hemos leido, que pasa de la cima a la cola
		var siguientec = casos_caja_c.shift ();
		casos_caja_c.push (siguientec); // Este paso es para volver a encolar el caso que hemos leido, que pasa de la cima a la cola
		cargar_caso (siguienteb, "cuadro_home_b_2");
		cargar_caso (siguientec, "cuadro_home_c_2");
		var marcob = document.getElementById("marco_home_b");
		var marcoc = document.getElementById("marco_home_c");
		aux2_rotar_cajas (marcob, marcoc);
		//setTimeout (rotar_caja_b, 5000);
}

function aux2_rotar_cajas (marcob, marcoc) {
		  var incremento = 1;
		  var tope = -115;
		  var f_aux_rot_clausura = function () {
					var actual = parseInt(marcob.style.top);
					if (actual > tope) {
							incremento += 1;
					} else {
							incremento -= 1;
							if (incremento < 1) {incremento = 1;}
					}
					actual = actual - incremento;
					marcob.style.top = actual + "px";
					marcoc.style.top = actual + "px";
					if (actual > -260) { 
							setTimeout (f_aux_rot_clausura, 30); 
					}	else {
							cargar_caso( casos_caja_b[casos_caja_b.length-1], "cuadro_home_b_1"); marcob.style.top = "0px";
							cargar_caso( casos_caja_c[casos_caja_c.length-1], "cuadro_home_c_1"); marcoc.style.top = "0px";
					}
			};
		f_aux_rot_clausura.call(this);
}

function aux_rotar_caja_b (marcob) {
		  var f_aux_rot_clausura = function () {
		  var actual = (parseInt(marcob.style.top) - 3);
		  marcob.style.top = actual + "px";
		  if (actual > -260) { setTimeout (f_aux_rot_clausura, 10); }
		  else { cargar_caso( casos_caja_b[casos_caja_b.length-1], "cuadro_home_b_1"); marcob.style.top = "0px";}
		};
		f_aux_rot_clausura.call(this);
}

function rotar_caja_c () {
		var siguiente = casos_caja_c.shift ();
		casos_caja_c.push (siguiente); // Este paso es para volver a encolar el caso que hemos leido, que pasa de la cima a la cola
		cargar_caso (siguiente, "cuadro_home_c_2");
		var marcoc = document.getElementById("marco_home_c");
		aux_rotar_caja_c (marcoc);
		//setTimeout (rotar_caja_c, 5000);
}

function aux_rotar_caja_c (marcoc) {
		  var f_aux_rot_clausura = function () {
		  var actual = (parseInt(marcoc.style.top) - 3);
		  marcoc.style.top = actual + "px";
		  if (actual > -260) { setTimeout (f_aux_rot_clausura, 10); }
		  else { cargar_caso( casos_caja_c[casos_caja_c.length-1], "cuadro_home_c_1"); marcoc.style.top = "0px"; }
		};
		f_aux_rot_clausura.call(this);
}

function rotar_fondo () {
		var siguiente_fondo = fondos_banner_principal.shift ();
		fondos_banner_principal.push (siguiente_fondo);
		var banner_principal = document.getElementById ("banner_principal");
		banner_principal.style.backgroundImage = "url(" + siguiente_fondo + ")";
		setTimeout (rotar_fondo, 5000);
}

function rotarCasosHome () {
		// ESTA FUNCION ES INVOCADA DESDE FLEX
		// rotar_caja_c();
		// rotar_caja_b();
		rotar_cajas();
}

	var fc = function (elemento) {return parseInt(elemento.style.top) > -260;};
  var ma = document.getElementById("marco_home_a"); // esto no funciona porque el elemento aun no esta creado

	var arrayCasosPracticos = new Array(
	    {imagen: "home_caso_efectivo.jpg", titulo: "Predicción de las<br>necesidades de efectivo", subtitulo: "Es básico para la gestión eficiente de efectivo la predicción precisa de las necesidades futuras. ", texto: "A partir de datos históricos de cajeros, calendario laboral y otros datos sociales públicos se crean modelos de predicción de las necesidades de efectivo", sector:"FINANCIERO", id: 0},
	    {imagen: "home_caso_creditos.jpg", titulo: "Predicción del riesgo<br>en créditos", subtitulo: "Es crítica la estimación y predicción del riesgo y recobros en entidades financieras ", texto: "Los modelos de predicción de riesgo de GAMCO han sido aplicados en la detección de impagos en créditos. Utilizando los datos disponibles por la entidad y datos sensales públicos ", sector:"FINANCIERO", id: 1},

	    {imagen: "home_caso_cac.jpg", titulo: "Predicción de<br>indicadores de un CAC", subtitulo: "Los CAC son complejos, resultando difícil un análisis de los datos guardados para obtener información útil.", texto: "A partir de decenas de miles de registros guardados al día, se crearon modelos de predicción, análisis multivariable complejo y simulación, de todos los indicadores de interés del CAC. ", sector:"TELECOMUNICACIONES", id: 2},
	    {imagen: "home_caso_telecom.jpg", titulo: "Detección del fraude en<br>telecomunicaciones", subtitulo: 'Detección de fraude en servicios de telecomunicaciones en tiempo real con centenares de miles de registros diarios.', texto: "Desarrollo de modelos que colaboraban con el sistema implantado de detección de fraude basados en reglas, aumentando la eficiencia del sistema global y disminuyendo las falsas alarmas ", sector:"TELECOMUNICACIONES", id: 3},

	    {imagen: "home_caso_comportamiento.jpg", titulo: "Detección de patrones<br> de comportamiento", subtitulo: "Obtener conocimiento implícito en bases de datos de inteligencia hallando patrones de comportamiento y modelos predictivos.", texto: "Los modelos predictivos consiguieron una eficiencia del 84.6% en la predicción de ciertos hechos aún no cometidos, con un porcentaje de falsas alarmas menor del 4.5%", sector:"FUERZAS DE SEGURIDAD", id: 4},

	    {imagen: "home_caso_electrico.jpg", titulo: "Predicción consumo<br>Eléctrico", subtitulo: "Generador de modelos para la predicción del consumo eléctrico horario en el corto plazo.", texto: "Se creo un generador de modelos capaz de crear modelos muy eficientes de manera automática para la predicción del consumo horario con un adelanto de 24 a 48 horas.", sector:"ENERGÉTICO", id: 5},
	    {imagen: "home_caso_nuclear.jpg", titulo: "Modelos para procesos de fusión termonuclear", subtitulo: "", texto: "", sector:"ENERGÉTICO", id: 6},

	    {imagen: "home_caso_ingreso.jpg", titulo: "Estimación de Ingresos", subtitulo: "En algunos sectores es necesario la estimación de los recursos o ingresos de personas o empresas", texto: "Se estima con un acierto de más del 85% qué personas tenían unos ingresos mayores a la cantidad fijada usando datos censales públicos. Útil en aplicaciones de marketing y tributación.", sector:"MARKETING", id: 7},
	    {imagen: "home_caso_fmcg.jpg", titulo: "Optimización Fuerza <br>de Ventas", subtitulo: "Conocimiento más perfecto de los clientes e integración en los procesos de ventas de capacidades analíticas y predictivas.", texto: "Se ha trabajado en empresas internacionales, con más de 30.000 puntos de venta en el canal HORECA<br> Lográndose un incremento de un 8% de ventas y la optimización de la introducción de nuevos productos.", sector:"MARKETING", id: 8},

	    {imagen: "home_caso_madera.jpg", titulo: "Reconocimiento de<br>defectos en superficies", subtitulo: "Un problema en la industria es asegurar la calidad de los productos en un proceso productivo.", texto: "A partir de imágenes digitales se crearon sistemas de clasificación basados en modelos en tiempo real, entrenados a partir de imágenes de ejemplo", sector:"OTROS SECTORES", id: 9},
			{imagen: "home_caso_semantica.jpg", titulo: "Categorización<br>Semántica", subtitulo: "Se ha desarrollado un ambicioso paquete de herramientas para el manejo de información no estructurada", texto: "El rendimiento de un clasificador semántico documental para el manejo de información no estructurada fue mayor al 90% de aciertos tardando menos de 1 segundo en clasificar un documento.", sector:"OTROS SECTORES", id: 10},
	    {imagen: "home_caso_vehiculos.png", titulo: "Reconocimiento<br>de vehículos", subtitulo: "Reconocimiento de modelos de vehículos en movimiento, en tiempo real y en entornos no estructurados.", texto: "Resultados del sistema RECOVE (Reconocimiento de Vehículos): 85 % de aciertos, 98% de clasificaciones en las que el modelo correcto está dentro de las dos opciones más probables.", sector:"OTROS SECTORES", id: 11});




	var arrayCasosPracticos2 = new Array(
	    {imagen: "home_caso_efectivo.jpg", titulo: "Predicción de las<br>necesidades de efectivo", subtitulo: "La necesidad de optimizar la gestión deefectivo por parte de los bancos está adquiriendo cada vez más importancia.", texto: " El elemento básico en cualquier sistema de gestión eficiente de efectivo es disponer de predicciones precisas de las necesidades futuras de efectivo."},
	    {imagen: "home_caso_cac.jpg", titulo: "Predicción de<br>indicadores de un CAC", subtitulo: "Los Centros de Atención al Cliente (CAC) son sistemas muy complejos.", texto: "Se debe a la gran cantidad de indicadores que se manejan para obtener la máxima información sobre el funcionamiento actual del CAC y a la gran cantidad de llamadas que éstos reciben."},
	    {imagen: "home_caso_creditos.jpg", titulo: "Predicción del riesgo<br>en créditos", subtitulo: "Sólo un porcentaje muy pequeño de los datos almacenados corresponden a actividades fraudulentas.", texto: "A partir de los datos históricos de los clientes y con criterios implementados mediante reglas definidas por los analistas, Gamco identifica los posibles tipos de fraude telefónico."},
	    {imagen: "home_caso_telecom.jpg", titulo: "Detección del fraude en<br>telecomunicaciones", subtitulo: 'Utilización de técnicas de data mining para el descubrimiento automático de \"conocimiento escondido\" en los datos.', texto: "Tomando como referencia los índices bursátiles tanto nacionales como internacionales, Gamco ha desarrollado modelos para la predicción de índices y derivados de la bolsa nacional y europea."},
	    {imagen: "home_caso_comportamiento.jpg", titulo: "Detección de patrones<br> de comportamiento", subtitulo: "Sólo un porcentaje muy pequeño de los datos almacenados corresponden a actividades fraudulentas", texto: "A partir de los datos históricos de los clientes y con criterios implementados mediante reglas definidas por los analistas, Gamco identifica los posibles tipos de fraude telefónico"},
	    {imagen: "home_caso_electrico.jpg", titulo: "Predicción consumo<br>Eléctrico", subtitulo: "Utilización de técnicas de data mining para el descubrimiento automático de \"conocimiento escondido\" en los datos", texto: "Tomando como referencia los índices bursátiles tanto nacionales como internacionales, Gamco ha desarrollado modelos para la predicción de índices y derivados de la bolsa nacional y europea"},
	    {imagen: "home_caso_ingreso.jpg", titulo: "Estimación de Ingresos", subtitulo: "Sólo un porcentaje muy pequeño de los datos almacenados corresponden a actividades fraudulentas", texto: "A partir de los datos históricos de los clientes y con criterios implementados mediante reglas definidas por los analistas, Gamco identifica los posibles tipos de fraude telefónico"},
	    {imagen: "home_caso_madera.jpg", titulo: "Reconocimiento de<br>defectos en madera", subtitulo: "Utilización de técnicas de data mining para el descubrimiento automático de \"conocimiento escondido\" en los datos", texto: "Tomando como referencia los índices bursátiles tanto nacionales como internacionales, Gamco ha desarrollado modelos para la predicción de índices y derivados de la bolsa nacional y europea"},
	    {imagen: "home_caso_vehiculo.jpg", titulo: "Reconocimiento<br>de vehículos", subtitulo: "Utilización de técnicas de data mining para el descubrimiento automático de \"conocimiento escondido\" en los datos", texto: "Tomando como referencia los índices bursátiles tanto nacionales como internacionales, Gamco ha desarrollado modelos para la predicción de índices y derivados de la bolsa nacional y europea"},
	    {imagen: "home_caso_nuclear.jpg", titulo: "Procesos de Fusión<br>nuclear", subtitulo: "Sólo un porcentaje muy pequeño de los datos almacenados corresponden a actividades fraudulentas", texto: "A partir de los datos históricos de los clientes y con criterios implementados mediante reglas definidas por los analistas, Gamco identifica los posibles tipos de fraude telefónico"});
