<?xml version="1.0" encoding="UTF-8" ?> 
<Module> 
	<ModulePrefs title="Esempio di aggregatore di feed RSS" 
	author="Gabriele Rocca" 
	title_url="http://etech.top-ix.org/"
	height="200"
	scrolling="true" /> 
	<Content type="html">
	<![CDATA[ 
		<!-Parte di HTML//-->
		<div id="content__MODULE_ID__"></div>
		<!-Script che costruisce il Gadget//-->
		<script type="text/javascript">
 
		function repeater()
			{  
			_IG_FetchXmlContent(rssUrl,
			function parser(response) 
				{// effettua un controllo verificando che il feed esista
        			if (response == null || typeof(response) != "object" || response.firstChild == null)
					{
   			           	document.write("feed RSS not found");
              			return;
					alert("errore nell'apertura di URL");
           				}
				// Cerca in channel il titolo del feed
				var itemChannel = response.getElementsByTagName("channel");
				var nodeChannel = itemChannel.item(0).childNodes;
				for (var j = 0; j < nodeChannel.length ; j++) {
					var nodeTitle = nodeChannel.item(j);
					if (nodeTitle.nodeName == "title") {
						var tit = nodeTitle.firstChild.nodeValue;
					}
				}
				// aggiunge il titolo del feed impostandone lo stile 
				texthtml = texthtml + "<div style='text-align:center; font-size: 120%; font-weight: 700;'>" + tit + "</div><br />"

				// ottiene gli elementi items
				var itemList = response.getElementsByTagName("item");

				// se il numero di items e' inferiore a quelli 
				// che vogliamo visualizzare mostra solo quelli esistenti 
				if(itemList.length < numItem)
					{numItem=itemList.length;}

				for (var i = 0; i < numItem ; i++) 
					{ 
 					//per ogni item estrapolo i figli            
       			     	var nodeList = itemList.item(i).childNodes;
					//ogni figlio contiene a sua volta un insieme di tag
          			  	for (var j = 0; j < nodeList.length ; j++)
						{
            				    	var node = nodeList.item(j);
                				if (node.nodeName == "title") 
							{var titolo=node.firstChild.nodeValue;}
						if (node.nodeName == "description") 
							{var descr=node.firstChild.nodeValue;}
						if (node.nodeName == "link") 
							{var collegam=node.firstChild.nodeValue;}
						
						}// chiude for (var j = 0; j < nodeList.length ; j++)
					// variabili per rappresentare il target e gli apici
					var blank="_blank";           
			              var apici='"';
					// aggiunge alla variabile che sara' stampata i vari items
					texthtml = texthtml + "<a href="+apici+collegam+apici+" target="+apici+blank+apici+"> "+titolo+"</a><br />";

				}// chiude for (var i = 0; i < numItem ; i++)
				
				// verifica se il feed analizzato e' l'ultimo  
				if (indRss == (rssList.length-1))
					{// se e' l'ultimo chiude il div e stampa i feed 
             				texthtml = texthtml + "</div>";
              			_gel('content__MODULE_ID__').innerHTML = texthtml;
					}
      				else
             				{// altrimanti incrementa l'indice del feed e richiama la funzione repeater__MODULE_ID__() 
              			indRss=indRss+1;
              			rssUrl=rssList[indRss];
					texthtml += "<br />"; 
              			repeater();
					}
       
				}// chiude "function parser(response)" 
   			);
			}// chiude "function repeater()" 

 		// Get user preferences
		var prefs = new _IG_Prefs(__MODULE_ID__);
		// definisce il numero massimo di feed che si possono mettere
  		var nMaxRss = 2;
		// dimensiona l'array di feed
  		var rssList = new Array(nMaxRss);
		// inserisce i feed
  		rssList[0] = "http://etech.top-ix.org/feed/"; 
  		rssList[1] = "http://www.djoriented.com/component/option,com_rss/feed,RSS1.0/no_html,1/";
		// specifico il numero di items che voglio vedere per ogni feed
  		var numItem=10;
		// definisco lo stile del gadget nella variabile che verra' stampata (texthtml)
  		var texthtml="<div style='padding: 5px;background-color: #ccf;font-family:Arial, Helvetica;" +                   
		              "text-align:left;font-size:90%'><br />";  
		// azzero l'indice dei feed e passo la prima url
  		var indRss=0;
  		var rssUrl=rssList[indRss];
		// chiamo la funzione repeater() che e' ricursiva e permette di fare il parser di tutti i feed 
  		repeater();
		</script>
	]]>
	</Content> 
</Module>