// Comprueba la existencia de la librería Prototype
if ((typeof Ajax == 'undefined') || (typeof Event == 'undefined') || (typeof Class == 'undefined')) alert("Los widgets elEconomista requieren la librería Prototype");

// Añade el método "setOptions()" si la versión de PROTOTYPE no lo incluye
if (typeof Ajax.Request.prototype.setOptions == 'undefined') {
	Ajax.Request.addMethods({
		setOptions: function(options) {
			this.options = {
				method: 'post',
				asynchronous: true,
				contentType: 'application/x-www-form-urlencoded',
				encoding: 'UTF-8',
				parameters: ''
			}
			Object.extend(this.options, options || {});
			this.options.method = this.options.method.toLowerCase();
			if (typeof this.options.parameters == 'string') this.options.parameters = this.options.parameters.toQueryParams();
		}
	});
}

// Inicialización de widgets
if (typeof ElEconomistaWidgetInicializar == 'undefined') {
	function ElEconomistaWidgetInicializar() {
		// Cotizaciones
		var widgets = $A($$("div.el_economista_widget_cotizacion"));
		for (var i = 0; i < widgets.length; i++) {
			var atributos = (widgets[i].getAttribute("rel")).split("#");
			var widget = new ElEconomistaWidgetCotizacion(i, atributos[0], atributos[1]);
			eval("ElEconomistaWidgetCotizacion_" + i + " = widget;");
		}
	}
}

// Crea la clase de objetos widget de cotización
if (typeof ElEconomistaWidgetCotizacion == 'undefined') {
	Event.observe(window, 'load', ElEconomistaWidgetInicializar);
	var ElEconomistaWidgetCotizacion =
		Class.create({
			initialize : function (id, cotizaciones, template) {
				this.cotizaciones = cotizaciones;
				this.template = template;
				this.div = "el_economista_widget_cotizacion_" + id;
				this.divContenido = "el_economista_widget_cotizacion_contenido_" + id;
				var widgetDivs = $A($$("div.el_economista_widget_cotizacion"));
				widgetDivs[id].id = this.div;
				var flag = false;
				for (var i = 0; i < widgetDivs[id].childNodes.length; i++) {
					if (widgetDivs[id].childNodes[i].className == "cabecera-economista") flag = true; 
					if (widgetDivs[id].childNodes[i].className == "contenido-economista") widgetDivs[id].childNodes[i].id = this.divContenido; 
				}
				if (!flag) {
					alert("La estructura del widget no es correcta");
					return;
				}
				this.obtenerEstilos();
				this.obtenerDatos();
			},
			obtenerDatos : function () {
				var div = this.div;
				var divContenido = this.divContenido;
				var template = this.template;
				var wLocal = new Ajax.Request("http://www.eleconomista.es/widgets/cotizacion-datos.php?modo=prototype&div=" + this.div + "&cotizacion=" + this.cotizaciones, {
					method: 'GET',
					crossSite: true,
					onLoading: function() {
						$(divContenido).update("<div class=\"datos-economista\"><small>Cargando...</small></div>");
					},
					onFailure: function(transport) {
						$(divContenido).update("Se ha producido un error");
					},
					onComplete: function(transport) {
						eval("var datos = " + div + "_datos.valores;");
						var contenido = "";
						for (var i = 0; i < datos.length; i++) {
							contenido += "<div class=\"datos-economista\">";
							contenido += "<table class=\"eco-tabla\">";
							contenido += "<tbody>";
							contenido += "<tr class=\"eco-name\">";
							contenido += "<td colspan=\"2\">";
							contenido += "<a href=\"" + datos[i].url + "\">" + datos[i].cotizacion + "</a>";
							contenido += "</td>";
							contenido += "</tr>";
							//contenido += "<tr><td>Precio:</td><td>" + datos[i].valor + "</td></tr>";
							contenido += "<tr><td>Variaci&oacute;n:</td><td><span class=\"accion" + datos[i].estado + "\">" + datos[i].diferencia + "</span></td></tr>";
							contenido += "<tr><td>Hora:</td><td>" + datos[i].hora + "</td></tr>";
							contenido += "</tr>";
							contenido += "</table>";
							contenido += "</div>";
							if (datos[i].grafico == "on") {
								contenido += "<div class=\"grafico-economista\">";
								if (template == "160-white") contenido += "<a href=\"" + datos[i].url + "\"><img src=\"http://www.eleconomista.es/Graficos/graficoIntradia_v3.php?idQuote=" + datos[i].id + "&tipo=s\" width=\"140\" height=\"112\" /></a>";
								else if (template == "160-black") contenido += "<a href=\"" + datos[i].url + "\"><img src=\"http://www.eleconomista.es/Graficos/graficoIntradia_v3.php?idQuote=" + datos[i].id + "&tipo=s\" width=\"140\" height=\"112\" /></a>";
								else if (template == "250-white") contenido += "<a href=\"" + datos[i].url + "\"><img src=\"http://www.eleconomista.es/Graficos/graficoIntradia_v3.php?idQuote=" + datos[i].id + "&tipo=s\" width=\"240\" height=\"192\" /></a>";
								else if (template == "250-black") contenido += "<a href=\"" + datos[i].url + "\"><img src=\"http://www.eleconomista.es/Graficos/graficoIntradia_v3.php?idQuote=" + datos[i].id + "&tipo=s\" width=\"240\" height=\"192\" /></a>";
								contenido += "</div>";
							}
						}
						$(divContenido).update(contenido);
						setTimeout("ElEconomistaWidgetCotizacion_" + id + ".obtenerDatos()", 60000);
					}
				});
			},
			obtenerEstilos : function () {
				var cssElementCheck = $(this.div + "_css");
				if (cssElementCheck) cssElementCheck.parentNode.removeChild(cssElementCheck);
				var cssElement = document.createElement("link");
				cssElement.id = this.div + "_css";
				cssElement.rel = "stylesheet";
				cssElement.type = "text/css";
				document.getElementsByTagName("head")[0].appendChild(cssElement);
				cssElement.href = "http://www.eleconomista.es/widgets/cotizacion-estilos.php?div=" + this.div + "&template=" + this.template;
			}
		});
}

