/* Inicializacion de widgets */
if (typeof BolsamaniaWidgetInicializar == 'undefined') {

    function BolsamaniaWidgetInicializar() {

        /* Cotizaciones */
        var widgets = document.getElementsByTagName('div');
        var idWidget = 0;
        for (var i = 0; i < widgets.length; i++) {
            if (widgets[i].className == 'bolsamania_widget_cotizacion') {
                
                var atributos = (widgets[i].getAttribute('rel')).split('----');
                var lang = widgets[i].getAttribute('lang');

                var widget = new BolsamaniaWidgetCotizacion(idWidget, atributos[0],atributos[1],lang);
                eval('BolsamaniaWidgetCotizacion_' + idWidget + ' = widget;');
                idWidget++;
            }
        }
    }
}

/* Anade funciones que se ejecutaran al cargar la pagina */
if (typeof addLoadListener == 'undefined') {

    function addLoadListener(fn) {

        if (typeof window.addEventListener != 'undefined') window.addEventListener('load', fn, false);
        else if (typeof document.addEventListener != 'undefined') document.addEventListener('load', fn, false);
        else if (typeof window.attachEvent != 'undefined') window.attachEvent('onload', fn);
        else {
            var oldfn = window.onload;
            if (typeof window.onload != 'function') window.onload = fn;
            else window.onload = function() { oldfn(); fn(); };
        }
    }
}

/* Crea la clase de objetos widget de cotizacion */
addLoadListener(BolsamaniaWidgetInicializar);

if (typeof BolsamaniaWidgetCotizacion == 'undefined') {

    function BolsamaniaWidgetCotizacion(id, cotizaciones, config, lang) {

        this.cotizaciones = cotizaciones;
        this.config = config;
        this.id = id;
        this.lang = lang;
        this.div = "bolsamania_widget_cotizacion_" + id;
        this.divContenido = "bolsamania_widget_cotizacion_contenido_" + id;
        this.datos = null;
        this.cabecera = false;
        this.pie = false;

        if (this.lang == 'fr') {
            this.url = 'http://www.bolsamania.fr';
        }
        else {
            this.url = 'http://www.bolsamania.com';
        }

        var divsWidget = new Array();
        var divs = document.getElementsByTagName("div");

        for (var i = 0; i < divs.length; i++) {
            if (divs[i].className == "bolsamania_widget_cotizacion") {
                divsWidget.push(divs[i]);
            }
        }
        divsWidget[id].id = this.div;

        for (var i = 0; i < divsWidget[id].childNodes.length; i++) {
            if (divsWidget[id].childNodes[i].className == "contenido_bolsamania") {
            /* capturo capa de contenido del widget */

                divsWidget[id].childNodes[i].id = this.divContenido;
            }
            else if (divsWidget[id].childNodes[i].className == "cabecera_bolsamania") {
            /* capturo capa de cabecera del widget y borro su contenido */

                this.cabecera = true;
                divsWidget[id].childNodes[i].innerHTML = "";
            }
            else if (divsWidget[id].childNodes[i].className == "pie_bolsamania") {
            /* capturo capa de pie del widget y borro su contenido */

                this.pie = true;
                divsWidget[id].childNodes[i].innerHTML = "";
            }
        }

        this.obtenerDatos = BolsamaniaWidgetCotizacion_ObtenerDatos;
        this.pintarDatos = BolsamaniaWidgetCotizacion_PintarDatos;
        this.obtenerEstilos = BolsamaniaWidgetCotizacion_ObtenerEstilos;
        this.obtenerEstilos();
        this.obtenerDatos();
    }

    function BolsamaniaWidgetCotizacion_ObtenerDatos() {

        sc = document.getElementById(this.div + "_js");
        con = document.getElementById(this.div);
        if (sc) con.removeChild(sc);
        sc = document.createElement("script");
        sc.id = this.div + "_js";
        con.appendChild(sc);
        
        sc.src = this.url + "/widget/widget.html?idWidget=BolsamaniaWidgetCotizacion_" + this.id + "&valores=" + this.cotizaciones + "&template=" + this.config;
        setTimeout("BolsamaniaWidgetCotizacion_" + this.id + ".obtenerDatos()", 60000);
    }

    function BolsamaniaWidgetCotizacion_PintarDatos() {

        sc = document.getElementById(this.divContenido);
        var datos = this.datos;
        var contenido = "";

        contenido += "<div class=\"widget_container_" + this.config + "\">";

        var txt = '';
        var txt2 = '';

        if (this.lang == 'fr') {
            txt = 'Bolsamania - La web de la bourse et des marches de valeurs';
            txt2 = 'Ajoutez les cours &agrave; votre web';
        }
        else {
            txt = 'Bolsamania - La web de la bolsa y los mercados de valores';
            txt2 = 'A&ntilde;ade las cotizaciones a tu p&aacute;gina web';
        }

        /* pinto cabecera */
        contenido += "<a href=\"" + this.url + "\"><img border=\"0\" title=\""+txt+"\" alt=\""+txt+"\" src=\"http://imagenes.bolsamania.com/logo_bolsamania190x43.png\" /></a>";

        if (this.cabecera && this.pie) {
        /* si cabecera y pie, pinto contenido */

            for (var i = 0; i < datos.length; i++) {

                contenido += "<div class=\"widget_item\"><div class=\"widget_cab_name_" + this.config + "\">"
                + "<a class=\"widget_link_" + this.config + "\" href=\"" + datos[i].link + "\">" + datos[i].nombre + "</a>"
                + "</div><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" class=\"widget_cab_table\">"
                + "<tr><td class=\"widget_cab_td_" + this.config + "\">Precio: </td><td class=\"widget_data_td_" + this.config + "\">" + datos[i].precio + "</td></tr>"
                + "<tr><td class=\"widget_cab_td_" + this.config + "\">Var. %: </td><td class=\"widget_data_td_" + this.config + "\"><span class=\"" + datos[i].css_class + "\">" + datos[i].variacion_por + " %</span></td></tr>"
                + "<tr><td class=\"widget_cab_td_" + this.config + "\">Var.: </td><td class=\"widget_data_td_" + this.config + "\"><span class=\"" + datos[i].css_class + "\">" + datos[i].variacion + "</span></td></tr>"
                + "<tr><td class=\"widget_cab_td_" + this.config + "\">Fecha: </td><td class=\"widget_data_td_" + this.config + "\">" + datos[i].fecha + "</td></tr>"
                + "</table></div>";

// 				if (datos[i].url_grafica) {
// 				/* si hay que mostrar la grafica */
// 					contenido += "<div class=\"widget_graphic\"><img border=\"0\" title=\"" + datos[i].nombre + " (" + datos[i].isin + ")\" alt=\"" + datos[i].nombre + " (" + datos[i].isin + ")\" src=\"" + datos[i].url_grafica + "\"/></div>"
// 				}

                if (datos[i].url_grafica) {
                /* si hay que mostrar la grafica */
                    contenido += "<div id=\"widget_graphic_"+this.id+i+"\" class=\"widget_graphic\"></div>";
                }
            }
        }

        /* pinto pie */
        contenido += "<div class=\"widget_link_bottom_" + this.config + "\">"
        + "<a class=\"widget_link_" + this.config + "\" href=\""+this.url+"/widget.html\">"+txt2+"</a></div>";

        contenido += "</div>";
        sc.innerHTML = contenido;

        /* captura de la grafica del valor */
        widget_cot_layer = sc.childNodes[0];
        var z = 0;
        for (var i = 0; i < widget_cot_layer.childNodes.length; i++) {
        /* recorro los child de la capa container */
            if (widget_cot_layer.childNodes[i].className == "widget_graphic") {
            /* capa del grafico del item actual */
                var graphic_layer = widget_cot_layer.childNodes[i];

                graphic_layer.innerHTML = "<iframe src="+this.url+"/widget/getGraphic.html?url="+datos[z].url_grafica+"&id=widget_graphic_"+this.id+z+" border=\"0\" width=\"200\" height=\"140\" frameborder=\"no\" scrolling=\"no\">";

// 				var gsc = document.createElement("script");
// 				graphic_layer.appendChild(gsc);
// 				gsc.src = "http://www.bolsamania.com/widget/getGraphic?url="+datos[z].url_grafica+"&id=widget_graphic_"+this.id+z;
                z++;
            }
        }
    }

    function BolsamaniaWidgetCotizacion_ObtenerEstilos() {

        var cssElement = document.createElement("link");
        cssElement.rel = "stylesheet";
        cssElement.type = "text/css";
        document.getElementsByTagName("head")[0].appendChild(cssElement);
        cssElement.href = "http://css.bolsamania.com/widget.css";
    }
}
