<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="_IG_FetchFeedAsJSON Example" title_url="http://groups.google.com/group/Google-Gadgets-API" />
<UserPref name="show_title" display_name="Show Title" datatype="bool"/>
<UserPref name="show_desc" display_name="Show Description" datatype="bool"/>
<UserPref name="show_date" display_name="Show Dates?" datatype="bool"/>
<UserPref name="show_summ" display_name="Show Summaries?" datatype="bool"/>
<UserPref name="num_entries" display_name="Number of Entries:" />
<UserPref name="feed_url" display_name="Feed URL:" datatype="string" default_value="http://groups.google.com/group/gamprog-announce/feed/rss_v2_0_msgs.xml" />
<Content type="html">
<![CDATA[
<style> #content_div { font-size: 80%; margin: 5px; background-color: #FFFFBF;} </style>


<div id=content_div></div>

<script type="text/javascript">

// Get userprefs
var prefs = new _IG_Prefs(__MODULE_ID__);
var showdate = prefs.getBool("show_date");
var summary = prefs.getBool("show_summ");
var showtitle = prefs.getBool("show_title");
var showdesc = prefs.getBool("show_desc");
var entries = prefs.getInt("num_entries");
var feedloc = prefs.getString("feed_url");


// If user wants to display more than 9 entries, display an error
// and set the value to 9, the max allowed.
if (entries > 9)
{
alert("You cannot display more than 9 entries.");
entries = 9;
}

// Use the _IG_FetchFeedAsJSON() function to retrieve core feed data from
// the specified URL. Then combine the data with HTML markup for display in
// the gadget.
_IG_FetchFeedAsJSON(
feedloc,
function(feed) {
if (feed == null){
alert("There is no data.");
return;
}

// Start building HTML string that will be displayed in gadget.
var html = "";
// Access the fields in the feed
if(showtitle){
html += "<div><b>" + feed.Title + "</b></div>";
}
if(showdesc){
html += "<div>" + feed.Description + "</div><br>";
}

// Access the data for a given entry
if (feed.Entry) {
for (var i = 0; i < feed.Entry.length; i++) {
html += "<div>"
+ "<h3>"
+ feed.Entry[i].Title
+ "</h3> ";
if (showdate==true)
{
// The feed entry Date field contains the timestamp in seconds
// since Jan. 1, 1970. To convert it to the milliseconds needed
// to initialize the JavaScript Date object with the correct date,
// multiply by 1000.
var milliseconds = (feed.Entry[i].Date) * 1000;
var date = new Date(milliseconds);
html += date.toLocaleDateString();
html += " ";
html += date.toLocaleTimeString();
}
if (!summary==true) {
html += feed.Entry[i].Summary + "";
}
html += "<br>"
+ "<a target='_blank' href='" + feed.Entry[i].Link + "'>"
+ "View Original"
+ "</a> ";
html += "</div>";
}
}

_gel("content_div").innerHTML = html;
// The rest of the function parameters, which are optional: the number
// of entries to return, and whether to return summaries.
}, entries, !summary);


</script>

]]>
</Content>
</Module>