var restablecer_selector = function () { };

var caso_actual;
var animacion_activa = false;
var activacion_manual = false;

function cargarPack (caso) {
	caso_actual = caso;
	switch (caso) {
	case 1:
		var imagen = "imagenes/pack_home_1.jpg";
		var titulo = "Propiedad Intelectual";
		var texto = "Se presumirá autor, salvo prueba en contrario, a quien aparezca como tal en la obra, mediante su nombre, firma o signo que lo idenfitique. &nbsp;<span id=\"firma_texto_home\">LPI 1996, Artículo 6. 1.</span>";
		var color_fondo = "#279abe";
		var caja = i ("boton_selector_pack_1");
		break;

	case 2:
		var imagen = "imagenes/pack_home_2.jpg";
		var titulo = "Soluciones";
		var texto = "Somos especialistas en la búsqueda, selección y codificación, en medios escritos, de las informaciones relacionadas con el perfil informativo recomendado.";
		var color_fondo = "#60a136";
		var caja = i ("boton_selector_pack_2");
		break;

	case 3:
		var imagen = "imagenes/pack_home_3.jpg";
		var titulo = "Equipo Humano";
		var texto = "Potenciamos el valor de nuestro equipo humano que dota de exactitud a la información seleccionada.";
		var color_fondo = "#ff9e19";
		var caja = i ("boton_selector_pack_3");
		break;

	case 4:
		var imagen = "imagenes/pack_home_4.jpg";
		var titulo = "Valor Añadido";
		var texto = "Nuestro valor añadido es la lectura realizada por periodistas y documentalistas con una amplia experiencia.";
		var color_fondo = "#f35212";
		var caja = i ("boton_selector_pack_4");
		break;
	}
	// cambiamos de PACK
	var domimagen = i ("imagen_pack_home");
	domimagen.style.backgroundImage = 'url(' + imagen +')';

	var domtitulo = i ("titulo_texto_home");
	domtitulo.innerHTML = titulo;

	var domtexto = i ("parrafo_texto_home");
	domtexto.innerHTML = texto;

	var domcaja = i ("texto_pack_home");
	domcaja.style.backgroundColor = color_fondo;

	var fondo = i ("pack_home");
	fondo.style.backgroundColor = color_fondo;

	restablecer_selector ();
	var oldcolor = caja.style.backgroundColor;
	restablecer_selector = function () {
		caja.style.backgroundColor = oldcolor;
	};
	caja.style.backgroundColor = "#ffffff";

}

// Animación del banner

function reset_banner () {
	var e;
	for (var p=0; p < animaciones_activas.length; p++) {
		e = animaciones_activas.shift ();
		e.style.top  = e.org_top;
		e.style.left = e.org_left;
	}
}

function transicion_caso (n) {
		// no comenzamos hasta que acabe la anterior ni si es el mismo caso que el actual
		activacion_manual = true;
		if (!animacion_activa && caso_actual != n) {
				animacion_activa = true;
				texto_arriba (n);
		}
}

function texto_arriba (n) {
		var e = i ("marco_texto_pack_home");
		e.style.top = "0px";
		animarPropiedad (e, "top", scrollLogDecreciente (250, 0.3), mayorQue (-250), 
										 function () { imagen_out (n);});	
} 

function imagen_out (n) {
		var e = i ("imagen_pack_home");
		e.style.left = "0px";
		animarPropiedad (e, "left", scrollLogDecreciente (700, 0.8), mayorQue (-700), 
										 function () { load_pack (n);} );
}

function load_pack (n) {
		cargarPack (n);
		imagen_in ();
}

function imagen_in (n) {
		var e = i ("imagen_pack_home");
		e.style.left = "700px";
		animarPropiedad (e, "left", scrollLogDecreciente (700, 0.8), mayorQue (0), texto_abajo);
}

function texto_abajo (n) {
		var e = i ("marco_texto_pack_home");
		animarPropiedad (e, "top", scrollLog (250, 0.3), menorQue (0), fin_animacion);
}

function fin_animacion () {
		animacion_activa = false;
}

// Cambio automático del banner

function cambia_banner () {
		if (activacion_manual) {
				activacion_manual = false;
		} else {
				var ncaso = (caso_actual % 4) + 1;
				// animamos sin pasar por transicion_caso
				texto_arriba (ncaso);
		}
		setTimeout (cambia_banner, 5000);
}

// Activación del menu superior

function activar_menu (n_boton) {
	var botones = [
		i ("boton_menu_1"),
		i ("boton_menu_2"),
	  i ("boton_menu_3"),
		i ("boton_menu_4")
	];

	for (var j=0; j < botones.length; j++) {
		if (j != (n_boton - 1)) {
			botones [j].fondo = botones [j].style.backgroundImage;
			botones [j].onmouseover = function () { this.style.backgroundImage = this.fondo; };
			botones [j].onmouseout  = function () { this.style.backgroundImage = "url(imagenes/grad_boton_gris.png)"; };
			botones [j].style.backgroundImage = "url(imagenes/grad_boton_gris.png)";
		}
	}
}

// Ajuste de altura

function fix_altura (px) {
	var main = i ("main");
	main.style.height = (parseInt (main.clientHeight) + px) + "px";
}

// Calcula la fecha (para la barra gris)

function fecha () {
		var dsem = [
				"",
				"Lunes",
				"Martes",
				"Miércoles",
				"Jueves",
				"Viernes",
				"Sábado",
				"Domingo"
		];
		var mes = [
				"Enero",
				"Febrero",
				"Marzo",
				"Abril",
				"Mayo",
				"Junio",
				"Julio",
				"Agosto",
				"Septiembre",
				"Octubre",
				"Noviembre",
				"Diciembre"
		];
		var d = new Date();
		var sdia  = dsem [d.getDay()];
		var smes  = mes  [d.getMonth()];
		var sdmes = d.getDate();
		var sanno = d.getYear();
		if (sanno < 1000) { sanno += 1900; }

		return sdia + " " + sdmes + " de " + smes + " de " + sanno;
}

// Formulario de contacto

function elemento_enfocado (e) {
	if (typeof (e.modificado) == 'undefined' || e.modificado == 0) {
		e.default_value = e.value;
		e.value = "";
	}
}

function elemento_blur (e) {
	if (e.value != "") {
		e.modificado = 1;
	} else {
		e.modificado = 0;
		e.value = e.default_value;
	}
}

// funciones del formulario

function borrar_formulario () {
		var elems = [
				i ("f_nombre"),
				i ("f_apellidos"),
				i ("f_empresa"),
				i ("f_email"),
				i ("f_texto")
		];
		var e;
		for (var p=0; p < elems.length; p++) {
				e = elems [p];
				if (typeof (e.modificado) != 'undefined' && e.modificado == 1) {
						elems [p].value = "";
						elemento_blur (elems [p]);
				}
		}
}

function comprobar_campos () {
		var elems = [
				i ("f_nombre"),
				i ("f_apellidos"),
				i ("f_empresa"),
				i ("f_email"),
				i ("f_texto")
		];
		var correcto = true;

		var e;
		for (var p=0; p < elems.length; p++) {
				e = elems [p];
				correcto = correcto && (typeof (e.modificado) != 'undefined' && e.modificado == 1);
		}
		if (!correcto) {
				alert ("Por favor, asegurese de haber rellenado correctamente todos los campos del formulario");
		} 

		return correcto;
}


// FUNCIONES DE ANIMACION

var animaciones_activas = new Array();

function _animarPropiedad () {
   var siguiente;
   for (var p=0; p < animaciones_activas.length; p++) {
      siguiente = animaciones_activas.shift();
      siguiente.objeto.style[siguiente.propiedad] = siguiente.incremento.call(this, siguiente.objeto, siguiente.propiedad);
      if (siguiente.condicion.call(this, siguiente.objeto, siguiente.propiedad)) {
         animaciones_activas.push(siguiente);
      } else {
				siguiente.continuacion.call (this);
			}
   }
   if (animaciones_activas.length > 0) {
      setTimeout(_animarPropiedad, 10);
   }
}

function animarPropiedad (objeto, propiedad, f_incremento, f_condicion, f_fin) {
	if (typeof (f_fin) == 'undefined') {
		var f_fin = function () {};
	}
  animaciones_activas.push ({objeto: objeto,
														 propiedad: propiedad,
														 incremento: f_incremento,
														 condicion: f_condicion,
														 continuacion: f_fin});
  if (animaciones_activas.length == 1) {
    setTimeout(_animarPropiedad, 10);
	}
}

function menorQue (numero) {
   return function (obj, prop) { return parseInt(obj.style[prop]) < numero;};
}

function mayorQue (numero) {
   return function (obj, prop) { return parseInt(obj.style[prop]) > numero;};
}

function sumarInc (numero) {
   return function (obj, prop) { return parseInt(obj.style[prop]) + numero;};
}

function scrollLog (distancia, tiempo_s) {
   var barrera = Math.floor (distancia/2);
   var max_inc = 10;
   var proporcion =  max_inc / barrera;
   var incrementos = new Array();
   var iteraciones = Math.floor (tiempo_s * 100);   //una vuelta cada 10ms
   var aceleracion = ((distancia/2) / ((iteraciones/2)*(iteraciones/2)));
   for (var p = 0; p < (iteraciones/2); p++) {
      incrementos.push(aceleracion*p*p);
   }
   for (p = incrementos.length-1; p >= 0; p--) {
      incrementos.push ((distancia/2) + ((distancia/2)-incrementos[p]));
   }
   var indice = 0;
   var origen = "undefined";
   return function (obj, prop) {
     if (origen=="undefined") {origen = parseInt(obj.style[prop]);}
     return origen + incrementos[indice++];
   };
}

function scrollLogDecreciente (distancia, tiempo_s) {
	 var barrera = Math.floor (distancia/2);
   var max_inc = 10;
   var proporcion =  max_inc / barrera;
   var incrementos = new Array();
   var iteraciones = Math.floor (tiempo_s * 100);   //una vuelta cada 10ms
   var aceleracion = ((distancia/2) / ((iteraciones/2)*(iteraciones/2)));
   for (var p = 0; p < (iteraciones/2); p++) {
      incrementos.push(aceleracion*p*p);
   }
   for (p = incrementos.length-1; p >= 0; p--) {
      incrementos.push ((distancia/2) + ((distancia/2)-incrementos[p]));
   }
	 incrementos = incrementos.reverse();
   var indice = 0;
   var origen = "undefined";
   return function (obj, prop) {
     if (origen=="undefined") {origen = parseInt(obj.style[prop]) - distancia;}
     return origen + incrementos[indice++];
   };
}