﻿//   <script type="text/javascript">
        // Baner------------------------------------------------------------------------------------------------------------
        var notices = new MakeArray(0);
        var notice_num = 0;
        var index = 0;

        //*********************************************************************************************************************
        //              Utilizacion de AJAX para obtener el archivo XML de las noticias u mostrar al usuario en una marquesina
        //*********************************************************************************************************************
        // Fuente del archivo XML Menéame todas.xml-> http://feeds.feedburner.com/meneame/all
        // variable global del objeto del motor (XMLHttpRequest)
        var ajaxReq;
        //****************************************************************************************************
        // Devuelve el instancia del objeto XMLHttpRequest
        //****************************************************************************************************
        function crearMotorAJAX() {
            var motorAJAX = false;
            try {
                motorAJAX = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (e) {
                try {
                    motorAJAX = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (e) {
                    motorAJAX = false;
                    
                }
            }

            if (!motorAJAX && typeof XMLHttpRequest != 'undefined') {
                    motorAJAX = new XMLHttpRequest();
             }
            return motorAJAX;
        }
        
        //****************************************************************************************************
        // Hace la instancia del objete XMLHttpRequest, y llama el proceso que
        // del muestra el contenido de una de un archivo XML pasada como parámetro
        // Parámetros
        // url: Direccion/Link del archivo XML a mostrar
        // contenedor: Es el contenedor donde se va ha mostrar el contenido XML
        //****************************************************************************************************
        function CaragarXMLDoc(url, contenedor) {
            var capaContenedora = document.getElementById(contenedor);
            var arrayNoticias = new Array() ;
            ajaxReq = crearMotorAJAX();
            if (url == '') {
                return;
            }
            
            /*Creamos y ejecutamos la instancia*/
            ajaxReq.open("GET", url, true);
            ajaxReq.onreadystatechange = function() {
                if (ajaxReq.readyState == 1) {
                    capaContenedora.innerHTML = "Cargando RSS.......";
                }
                else if (ajaxReq.readyState == 4) {
                    if (ajaxReq.status == 200) {
                        //Llamamos el proceso que lee y muestra el archivo XML
                        arrayNoticias = leerDocXML_RSS(capaContenedora);
                        //arrayNoticias = leerDocXMLActualidad(capaContenedora);
                        try {
                            notice_num = notices.length - 1;
                        }
                        catch (e ) {
                            alert(e + 'CaragarXMLDoc');
                        }
             
                        if (capaContenedora.innerHTML == "Cargando RSS.......") { capaContenedora.innerHTML = ''; }
                        //InicioNoticiasScrollHorizonta();
                    }
                    else if (ajaxReq.status == 404) {
                        capaContenedora.innerHTML = "La dirección: \n" + url + "\n no existe.";
                    }
                    else {
                        capaContenedora.innerHTML = "Error: \n" + ajaxReq.status;
                    }
                }
            }
            ajaxReq.send(null);
           return arrayNoticias;
        } // fin function   
        
        
        function leerDocXML_RSS(capaContenedora) {
            var docXML = ajaxReq.responseXML;
            var entradas = docXML.getElementsByTagName("item");
            // Empezar por los 10 ultimos item del archivo
            var numEntradas = 10;
            try {
                if (entradas.length < 10) {
                    numEntradas = entradas.length;
                }
            }
            catch (e) {
                alert(e + 'leerDocXML_RSS');
            }
            
            var tituloEntrada = '';
            var descEntrada = '';
            var linkEntrada = '';
            var sCadenaHTML = "";
            var arrayNoticias = new Array(numEntradas);
            notices = new Array(10);
            for (var i = 0; i < numEntradas; i++) { //for (var i = empezar; i < numEntradas; i++) {
                try {
                    tituloEntrada = entradas[i].getElementsByTagName("title")[0].firstChild.nodeValue;
                    descEntrada = entradas[i].getElementsByTagName("description")[0].firstChild.nodeValue;
                    linkEntrada = entradas[i].getElementsByTagName("link")[0].firstChild.nodeValue;
                    fechaEntrada = entradas[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue;
                    sCadenaHTML  = '<a href="' + linkEntrada + '" target="_blank">' + tituloEntrada + '</a>' + descEntrada + '</br>';
                    capaContenedora[i] = sCadenaHTML;
                    notices[i] = '<a style=" font-size:x-small; text-decoration:none; color:WhiteSmoke;" href="' + linkEntrada + '" target="_blank">' + tituloEntrada + '</a>';
                   
                }
                catch (e) {
                    alert(e);
                }
            }
        }

        // Mostrar las noticias obtenidas del XML en el control contenedor de las noticias 
        // por la cual el usuario las ve
        var CurrentMsg = 'hello ';
        function update(msg) {
            var pad_str = "";
            try {
                n = msg.length;
            }
            catch (e) {
                alert(e + 'update');
            } 
            
            if (n < 72) {
                pad = (73 - n) / 2;
                for (var i = 0; i < pad; i++) {
                    pad_str += " ";
                }
            }
            CurrentMsg = pad_str + msg;
            document.getElementById("field").innerHTML  = CurrentMsg; //document.messages.field.value = CurrentMsg;                  
            clearTimeout(timer);
            timer = setTimeout("idleMsg()", 3000);
        }
        
        // Iniciliza un array con un nº de elementos, según parámetro
        function MakeArray(n) {
            try {
                this.length = n;
            }
            catch (e) {
                alert(e + 'MakeArray');
            }
            for (var i = 0; i <= n; i++) {
                this[i] = "";
            }
            return (this);
        }

        // Punto de inicio para cargar las noticias en el array y luego mostrar al usuario
        function InicializarFrom() {
            CaragarXMLDoc('RSS_SoftControl.xml', 'field');         
            // CaragarXMLDoc('Recursos/Actulidad.xml', 'field');
        }
        
        // **************** para que funcion de la otra forma descomentar **************************
        // Llama a la funcion idleMsg con una pasa, según el valor del segundo parámetros
         var timer = setTimeout('idleMsg()', 3000);
        //*******************************************************************************************
        
        // funcion que es llamada cada X segundos para llamar a la función (update) que muestra
        // las noticias al usuario
        function idleMsg() {
            update(notices[index++]);
            if (index > notice_num) {
                index = 0;
            }
        }
   //</script>
