/**
 * Informações sobre este arquivo
 *
 * Arquivo: boxRSS.js
 *
 * Responsável por armazenar o programa do Box RSS.
 *
 * Este arquivo faz parte do sistema MrCMS
 *
 * Nota: Este arquivo não é opensource, não pode ser alterado sem o consentimento do autor, não pode ser distribuído e utilizado fora de um sistema produzido por: Murilo Rocha :: Internet & Serviços.
 *
 * @author Murilo Rocha <contato@murilorocha.com.br>
 * @copyright Copyright (C) 2009, Murilo Rocha :: Internet & Serviços
 * @link http://www.murilorocha.com.br
 * @version 1.0
 */

// Variáveis "globais" do script
var ajaxCarregado;
var texto = new Array();
var links = new Array();
var contador;
var contadorTexto;
/* Valores iniciais - Não modifique */
contador = 0;
contadorTexto = 0;
ajaxCarregado = false;
// Função de início do ajax			
function iniciaAjax(){
    ajaxCarregado = false;
    if (window.XMLHttpRequest) {
        try {
            ajaxCarregado = new XMLHttpRequest();
        } 
        catch (err) {
            window.alert("Ocorreu um erro ao iniciar o AJAX\n\nErro:\n" + err);
        }
    }
    else 
        if (window.ActiveXObject) {
            try {
                ajaxCarregado = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
                try {
                    ajaxCarregado = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (err) {
                    window.alert("Ocorreu um erro ao iniciar o AJAX\n\nErro:\n" + err);
                }
            }
        }
}

// Realiza a chamada do XML e inicia seu processamento.
function chamaXml(localXml){
    iniciaAjax();
    ajaxCarregado.onreadystatechange = processaXml;
    ajaxCarregado.open('GET', localXml + '?r=' + Math.random(), true);
    ajaxCarregado.send('');
}

// Processa o arquivo XML, lendo dele o título e o link, armazenando tudo em arrays e realiza a chamada da função de escrita.
function processaXml(){
    var arquivoXml;
    var itensXml;
    var quantidadeItens;
    
    if (ajaxCarregado.readyState == 4) {
        if (ajaxCarregado.status == 200) {
            arquivoXml = ajaxCarregado.responseXML;
            itensXml = arquivoXml.getElementsByTagName("item");
            for (quantidadeItens = 0; quantidadeItens < itensXml.length; quantidadeItens++) {
                texto[quantidadeItens] = itensXml[quantidadeItens].getElementsByTagName("title")[0].firstChild.nodeValue;
                links[quantidadeItens] = itensXml[quantidadeItens].getElementsByTagName("link")[0].firstChild.nodeValue;
            }
            escreve();
        }
    }
}

// Realiza a limpeza do container do RSS e controla a variável do próximo título e link, chama a escrita do próximo título e link.
function limpa(){
    contador = 0;
    document.getElementById('containerRSS').innerHTML = '';
    if (contadorTexto == texto.length - 1) {
        contadorTexto = 0;
    }
    else {
        contadorTexto++;
    }
    escreve();
}

// Realiza a escrita caractere a caractere do título, insere o título e o link no container do RSS.
function escreve(){
    var caractere;
    var tempoParado;
    var tempoEscrita;
    /* Abaixo - Variáveis de contole de tempo */
    tempoParado = 4000; // Tempo em milisegundos que o texto será exibido estático depois da escrita
    tempoEscrita = 100; // Tempo em milisegundos de escrita do texto letra a letra
    /* Acima - VariÃ¡veis de contole de tempo */
    document.getElementById('containerRSS').href = links[contadorTexto];
    caractere = texto[contadorTexto].charAt(contador);
    if (contador > texto[contadorTexto].length) {
        setTimeout(limpa, tempoParado);
    }
    else {
        contador++;
        document.getElementById('containerRSS').innerHTML += caractere;
        setTimeout(escreve, tempoEscrita);
    }
}

// Realiza a chamada do arquivo e imprime na tela o container do RSS.
function boxRSS(nome,arquivo){
    chamaXml(arquivo);
    document.write('<div id="boxRSS"><p id="textoRSS"><b>'+nome+':</b>&nbsp;<a href="" id="containerRSS" target="_blank"></a></div>');
}

