
/*
Lettura dati da Google Calendar.
http://ajax.phpmagazine.net/2006/04/howto_integrate_google_calenda.html
http://ajax.phpmagazine.net/2005/11/ajax_rss_reader_step_by_step_t.html
*/

var RSSRequestObject = false; // XMLHttpRequest Object
window.setInterval("update_timer()", 1200000); // update the data every 20 mins


if (window.XMLHttpRequest) // try to create XMLHttpRequest
	RSSRequestObject = new XMLHttpRequest();

if (window.ActiveXObject)	// if ActiveXObject use the Microsoft.XMLHTTP
	RSSRequestObject = new ActiveXObject("Microsoft.XMLHTTP");


/*
* onreadystatechange function
*/
function ReqChange() {

	// If data received correctly
	if (RSSRequestObject.readyState==4) {
	
		// if data is valid
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			// Parsing Feeds
			var node = RSSRequestObject.responseXML.documentElement; 
			
			// Get the calendar title
			// var title = node.getElementsByTagName('title').item(0).firstChild.data;
			
			// content = '<div class="channeltitle">'+title+'</div>';
                        content = '';
		
			// Browse events
			var items = node.getElementsByTagName('entry');
			if (items.length == 0) {
				content += ''; //'Nessun elemento.';
			} else {
                                
				for (var n=items.length-1; n >= 0; n--)
				{
					content += '<div class="div_spazio">';
                                        content += '<b class="tabelle_top">';
					content += '<b class="tabelle_angolo_1 tabelle_angolo_colore_avvisi"></b><b class="tabelle_angolo_2 tabelle_angolo_colore_avvisi"></b><b class="tabelle_angolo_3 tabelle_angolo_colore_avvisi"></b><b class="tabelle_angolo_4 tabelle_angolo_colore_avvisi"></b>';
					content += '</b>';
                                        content += '<div>';
                                        
                                        // Titolo avviso
                                        try
                                        {
                                            var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
                                        }
                                        catch (e)
                                        {
                                            var itemTitle = '';
                                        }
                                        
                                        // Testo avviso
                                        try
                                        {
                                            var itemContent = items[n].getElementsByTagName('content').item(0).firstChild.data;
                                        }
                                        catch (e)
                                        {
                                            var itemContent = '';
                                        }
                                        // Sostituzione BBCode con HTML
                                        itemContent = itemContent.replace(/\[/g, '<');
                                        itemContent = itemContent.replace(/\]/g, '>');
					itemContent = itemContent.replace(/\n/g, '<br/>');
                                        
                                        // Link aggiungi su google
                                        try
                                        {
                                            var itemLink = items[n].getElementsByTagName('link')[0].getAttribute('href');
                                        }
                                        catch (e)
                                        {
                                            var itemLink = '';
                                        }
					
                                        // Data
					try 
					{
                                            var itemStartTime = items[n].getElementsByTagName('gd:when')[0].getAttribute('startTime');
					} 
					catch (e) 
					{
                                            try
                                            {
                                                var itemStartTime = items[n].getElementsByTagName('when')[0].getAttribute('startTime');
                                            }
                                            catch(ee)
                                            {
                                                var itemStartTime = '';
                                            }
					}
                                        // Correzione formato data
                                        // 0123456789012345
                                        // 2009-07-23T15:00:00.000+02:00
                                        if (itemStartTime.length > 0) {
											if (itemStartTime.length > 11) {
												// Evento data + ora
                                            	itemStartTime_corretto = itemStartTime.substring(8,10) + '/' + itemStartTime.substring(5,7) + '/' + itemStartTime.substring(0,4) + ' ' + itemStartTime.substring(11,13) + '.' + itemStartTime.substring(14,16);
											} else {
												// Evento data (giorno intero)
												itemStartTime_corretto = itemStartTime.substring(8,10) + '/' + itemStartTime.substring(5,7) + '/' + itemStartTime.substring(0,4);
											}
                                        }
                                        
					
                                        content += '<h3 class="titolo_avvisi">';
                                        content += itemStartTime_corretto + ' - ' + itemTitle;
                                        content += '</h3><div class="testo_avvisi"><div>';
                                        content += itemContent;
                                        content += '</div><div style="text-align: right;">';
					content += '<a href="'+itemLink+'" target="_blank"><img src="googlecalendar/add_to_google.gif" style="border: 0px solid black;"></a>';
                                        content += '</div></div>';
                                        
                                        content += '</div>';
                                        content += '<b class="tabelle_bottom">';
					content += '<b class="tabelle_angolo_4 tabelle_angolo_colore_avvisi"></b><b class="tabelle_angolo_3 tabelle_angolo_colore_avvisi"></b><b class="tabelle_angolo_2 tabelle_angolo_colore_avvisi"></b><b class="tabelle_angolo_1 tabelle_angolo_colore_avvisi"></b>';
					content += '</b>';
					content += '</div>';
				}
				
			}
			// Display the result
			document.getElementById("ajaxreader").innerHTML = content;

			// Tell the reader the everything is done
			document.getElementById("status").innerHTML = "Dati caricati con successo.";
			
		}
		else {
			// Tell the reader that there was error requesting data
			document.getElementById("status").innerHTML = "Errore nel caricamento dei dati.";
		}
		
		HideShow('status');
	}
	
}

/*
* Main AJAX RSS reader request
*/
function RSSRequest() {
	var Backend = 'googlecalendar/eventrss.php?' + (new Date()).getTime(); // Backend url
	
	// change the status to requesting data
	HideShow('status');
	document.getElementById("status").innerHTML = "Caricamento dei dati in corso...";
	
	// Prepare the request
	RSSRequestObject.open("GET", Backend , true);
	// Set the onreadystatechange function
	RSSRequestObject.onreadystatechange = ReqChange;
	// Send
	RSSRequestObject.send(null); 
}

/*
* Timer
*/
function update_timer() {
	RSSRequest();
}


function HideShow(id){
	var el = GetObject(id);
	if(el.style.display=="none")
	el.style.display='';
	else
	el.style.display='none';
}

function GetObject(id){
	var el = document.getElementById(id);
	return(el);
}
