/*	Simple Javascript RSS Reader Version 1.0
	Copyright (c) 2006 CS Truter
	Written by Christoff Truter
	email: Christoff@cstruter.com - (Please let me know if you intend to use the script) */

/* Replace all occurances of a string
  (Parameters) totalValue:'complete string' 
		oldValue:'value to be replaced' newValue:'value used for replace' */

var items;

function Replace(totalValue,oldValue,newValue)
{
    while(totalValue.indexOf(oldValue) > -1)
        totalValue=totalValue.replace(oldValue,newValue);
    return totalValue;
}

/* Get XML Node
   (Parameters) TagName:'XML Element' node:'Element row number' */

function getNode(TagName, node)
{
    var currentNode = (node == null) ? xmlDoc.getElementsByTagName(TagName) :
    items[node].getElementsByTagName(TagName);
    if ((currentNode.length > 0) /* && (currentNode.firstChild != null)*/){
        return currentNode[0].firstChild.nodeValue;
    }else{
        return items[node].nodeValue;
    //	return currentNode[0];
    }
}

/* Load XML Object
   (Parameters) rssFeed:'RSS File' Body:'Layer for RSS Body' Title:'Layer for RSS Title' */

function ReadRSS(rssFeed, Body, Title, tamanhoTexto, numRegistros)
{
    rssTitle = document.getElementById(Title);
    rssBody = document.getElementById(Body);
    try
    {

        if (document.all)
        {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        }
        else
        {
            xmlDoc = document.implementation.createDocument("","",null);
        }
                
        xmlDoc.async=false;
        try{
            xmlDoc.load(rssFeed);
        }catch(e){
            // O imbecil do Google Chrome não executa o load
            var xmlhttp = new window.XMLHttpRequest();
            xmlhttp.open("GET", rssFeed, false);
            xmlhttp.send(null);
            var xmlDoc = xmlhttp.responseXML.documentElement;
        // Fim "imbecil do Google Chrome"
        }
        
        items = xmlDoc.getElementsByTagName('item');
        SetRSSTemplates(tamanhoTexto, numRegistros);
        SetRSSMateriaPrincipal();

        
    /*        var xmlHttpReq = false;
		// Mozilla/Safari
		if (window.XMLHttpRequest) {
		    xmlHttpReq = new XMLHttpRequest();
		}
		// IE
		else{ if (window.ActiveXObject) {
	   	 		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
			}
		}

        xmlHttpReq.open("GET", rssFeed, false);
		xmlHttpReq.onreadystatechange = function() {
       		if ((xmlHttpReq.readyState == 4) && (xmlHttpReq.status == 200)) {

                var xmlDoc = xmlHttpReq.responseXML.documentElement;
                items = xmlDoc.getElementsByTagName('item');
                SetRSSTemplates(tamanhoTexto, numRegistros);
	    	}
		}
        xmlHttpReq.send(null);
         */
    }catch(e)
    {
        rssTitle.innerHTML = 'Thrown Error:'+e.message+"<br/>";//Note: "+errorHappendHere;
        rssBody.innerHTML = 'Thrown Error:'+e.message+"<br/>";//Note: "+errorHappendHere;
    }
}

function SubString(texto, tamanho){
    var textoTemp = texto.split(" ");
    texto = "";
    for (var i=0; i<textoTemp.length; i++){
        if ((texto.length + textoTemp[i].length + 1) > tamanho){
            return texto;
        }else{
            texto += " "+textoTemp[i];
        }
    }
    return texto;
}

function getStyleSheet(unique_title){
    for(var i=0; i<document.styleSheets.length; i++){
        var sheet = document.styleSheets[i];
        if (sheet.href == unique_title){
            return sheet;
        }
    }
    return null;
}

function deleteRule(sheet, ruleName){
    if (rules){
        for(var i=1; i<sheet.rules.length; i++){
            if (sheet.rules[i].selectorText == ruleName){
                sheet.deleteRule(i);
            }
        }

    }else{
        for(var i=1; i<sheet.cssRules.length; i++){
            if (sheet.cssRules[i].selectorText == ruleName){
                sheet.deleteRule(i);
            }
        }
    }
}

function SetRSSMateriaPrincipal(){
    try{
        if (rssTitle){
            conteudo = getNode('content',0);
            if (conteudo){
                //conteudo = conteudo.slice(conteudo.indexOf( "<content:encoded>")+1, conteudo.length);
                //conteudo = conteudo.slice(0, items[0].text.indexOf( "</content:encoded>")+"</content:encoded>".length);
                //conteudo = getNode('content:encoded',0);

                posicaoImg = conteudo.indexOf("src=\"http://www.nasajon.com.br/blog/wp-content/uploads/");
                if (posicaoImg == -1){
                    posicaoImg = conteudo.indexOf("src=\"http://www.nasajon.com.br/wordpress/wp-content/uploads/");
                }

                if (posicaoImg != -1){

                    posicaoImg += 5;

                    descricaoTemp = conteudo.slice(posicaoImg, conteudo.length);
                    posicaoImg = descricaoTemp.indexOf("\"");

                    imagem = descricaoTemp.slice(0, posicaoImg);
                    document.images['imagemMateria'].src = imagem;
                }else{
                    //styleSheet = getStyleSheet('http://www.nasajon.com.br:8080/SiteNasajon/css/css.css');
                    //deleteRule(styleSheet, ".imgNoticia");
                    document.images['imagemMateria'].src = "http://www.nasajon.com.br:8080/SiteNasajon/img/blog_nasajon.jpg";
                }
            }
            descricao = limpaTags(getNode('description',0));
            titulo = getNode('title',0);

            rssTitle.innerHTML = Replace(rssTitle.innerHTML, "(::Title::)", titulo);
            rssTitle.innerHTML = Replace(rssTitle.innerHTML, "(::Text::)", descricao);

        }
    }catch(e){
        rssTitle.innerHTML = 'Thrown Error:'+e.message+"<br/>";
    }
}

/* Set HTML Template
	Did it this way to make the look and feel of the feed easy customizable, dont like mixing
	layout with code. */

function SetRSSTemplates(tamanhoTexto, numRegistros)
{
    try{
        if (rssBody)
        {
            var buffer = "";
            for(var i=1; ((i< items.length) && (i<numRegistros+1)); i++)
            {
                var output = "";
                if (navigator.userAgent.indexOf("Firefox") != -1) {
                    output = Replace(rssBody.innerHTML,"%28::Link::%29",getNode('link',i));
                }else {
                    output = Replace(rssBody.innerHTML,"(::Link::)",getNode('link',i));
                }
                var titulo = SubString(getNode('title',i), tamanhoTexto);
                if (titulo.length < getNode('title',i).length){
                    titulo += " ...";
                }
                output = Replace(output,"(::Title::)", titulo );
                //output = Replace(output,"(::Pubdate::)",getNode('pubDate',i));
                //output = Replace(output,"(::Description::)",getNode('description',i));
                buffer+=output;
            }
            rssBody.innerHTML = buffer;
        }
    }catch(e){
        rssBody.innerHTML = 'Thrown Error:'+e.message+"<br/>";
    }

/*
	if (rssTitle)
	{
		var output = Replace(rssTitle.innerHTML,"(::Title::)",getNode('title'));
		output = (document.all) ? Replace(output,"(::Link::)",getNode('link'))
							   : Replace(output,"%28::Link::%29",getNode('link'));		
		output = Replace(output,"(::Description::)",getNode('description'));
		rssTitle.innerHTML = output;
	}
 */
}

function limpaTags(textoFormatado){
    textoTemp='';inTag=false;for(idx=0;idx<=textoFormatado.length-1;idx++){
        if(textoFormatado.charAt(idx)=='<'){
            inTag=true;
        }if(!inTag){
            textoTemp+=textoFormatado.charAt(idx);
        }if(textoFormatado.charAt(idx)=='>'){
            inTag=false;
        }
    }return textoTemp;
}

function exibirListaMateriasBlog(){

    var output = "";
    for(var i=0; i<items.length; i++)
    {
        var link = "";
        var titulo = "";
        var data = "";
        var dataArray = getNode('link',i).split("/");

        link = getNode('link',i);
        titulo = SubString( getNode('title',i), 50) + "...";
        data = dataArray[7] +"/"+ dataArray[6] +"/"+ dataArray[5];

        output += "<a target=_blank href='" + link + "'>" + data + " - " + titulo + "</a><br><br>";
            
    }
    return output;
}
