<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="__UP_title__"
            title_url="http://www.brookes.ac.uk/go/radar"            
            directory_title="Oxford Brookes University Research (RADAR)"
            description="Latest additions to RADAR - an open archive of published research by staff at Oxford Brookes University. For more information see the project webpage http://www.brookes.ac.uk/go/radar"
            author="Oxford Brookes University"
            author_email="radar@brookes.ac.uk"
            author_affiliation="Oxford Brookes University"
            author_location="Oxford, United Kingdom"
            screenshot="http://radar.brookes.ac.uk/radar/items/a7a9535c-c1c8-dd2b-cdab-d951f0941ea1/1/radar_screenshot.png"
            thumbnail="http://radar.brookes.ac.uk/radar/items/7430669b-23ca-4437-0a40-12320c833ca3/1/radar_thumbnail.png"
            height="360"
            width="360"
            scrolling="true">
  
  <Require feature="setprefs"/>
  <Require feature="tabs"/> 
  
</ModulePrefs>

<UserPref name="title" 
datatype="string"
display_name="Gadget Title" 
default_value="Oxford Brookes Research"/>

<UserPref name="feed1" 
datatype="hidden"
display_name="Brookes Research" 
default_value="http://radar.brookes.ac.uk/radar/rss/search/?itemdefs=5186%3A&amp;query=*&amp;ordertype=DATEMODIFIED&amp;type=rss_2.0&amp;length=1000" />  
  
    <UserPref name="entries" display_name="# of Entries" datatype="enum" default_value="10">
  <EnumValue value="3"/>
  <EnumValue value="4"/>
  <EnumValue value="5"/>
  <EnumValue value="6"/>
  <EnumValue value="7"/>
  <EnumValue value="8"/>
  <EnumValue value="9"/>
  <EnumValue value="10"/>
  <EnumValue value="11"/>
  <EnumValue value="12"/>
</UserPref>

  <UserPref name="summaries" display_name="Summaries" datatype="enum" default_value="200">
  <EnumValue value="-1" display_value="none"/>
  <EnumValue value="100" display_value="short"/>
  <EnumValue value="200" display_value="medium"/>
  <EnumValue value="300" display_value="long"/>
  <EnumValue value="400" display_value="longer"/>
  <EnumValue value="0" display_value="show all"/>
</UserPref>


<UserPref name="showTimestamp" display_name="Show Timestamp" datatype="bool" default_value="true"/>
<UserPref name="selectedTab" datatype="hidden"/>
<Content type="html"><![CDATA[
  <style type="text/css">
      
  body {background-color: #ffffff;}  
   
  .tablib_emptyTab {
   border-bottom: none;
   }     
    
  .tablib_table {
    background-image: url(http://radar.brookes.ac.uk/radar/items/56fb9f0f-baaf-d001-56af-319db478eb76/1/striplogo2.png);
    background-position: 8px;
    background-repeat: no-repeat;
    background-color: #944269;
    padding-top: 70px;
    font: helvetica, arial, sans-serif;
    font-size: __UP_tabFontSize__;
    height: 70px;
    
text-align: left;
  }
  
  .tablib_selected, .tablib_unselected {    
    width: 89%; 
    display: none;
    border: none;    
  }
  
  .statusLabel {
    font: helvetica, arial, sans-serif;
    font-size: 0.75em;
    font-style: italic;
    padding: 0px;
    text-align: left;
    display: none;
    
        
  }
  .feedHeader {
    padding-top: 0px;
    font: helvetica, arial, sans-serif;
    font-size: 0.7em;
    display: none;
      
  }
  .feedHeader .feedTitle {
    font: helvetica, arial, sans-serif;
    font-weight: bold;
    font-size: 1.1em;
    display: none;
      
    
    }
  .feedHeader .feedAuthor {
    font: helvetica, arial, sans-serif;
    font-weight: normal;
    font-size: 0.8em;
        
  }

  .feedList {
    list-style-type: none;
    
    font: helvetica, arial, sans-serif;
    font-size: 0.7em;
    margin: 0px;
    padding: 5px 5px 5px 5px;
    border-bottom: 20px solid #944269;
    border-left: 20px solid #944269;
    border-right: 20px solid #944269;    
    
  }
  .feedList li {    
    margin-top: 5px;
    padding: 3px 3px 3px 3px;
    border-bottom: 1px solid #b47b96;
  }
  
  .feedList li div.entryTitle a {
    font: helvetica, arial, sans-serif;
    font-weight: bold;
  }
    
  .feedList li div.entryTimestamp {
    font-size: 0.95em;
    font: helvetica, arial, sans-serif;
    font-style: italic; color: #b47b96;
    padding: 5px 5px 5px 0px;  
  }
  </style>

  <script>
  // Global variables
  var prefs = new _IG_Prefs(__MODULE_ID__);
  var tabs = new _IG_Tabs(__MODULE_ID__);

  /**
   * Initialize tabs when page loads.
   * Create tab for each userpref only if userpref is not empty.
   */
  function init() {
    var f1 = _trim(prefs.getString("feed1"));
    var f2 = _trim(prefs.getString("feed2"));
    var f3 = _trim(prefs.getString("feed3"));
    var f4 = _trim(prefs.getString("feed4"));
    var ft1 = _trim(prefs.getString("feedTitle1"));
    var ft2 = _trim(prefs.getString("feedTitle2"));
    var ft3 = _trim(prefs.getString("feedTitle3"));
    var ft4 = _trim(prefs.getString("feedTitle4"));

    
if (f1 != "") {
      tabs.addDynamicTab(((ft1 == "") ? "Feed 1" : ft1), _IG_Callback(callbackTab, f1));
    }
    if (f2 != "") {
      tabs.addDynamicTab(((ft2 == "") ? "Feed 2" : ft2), _IG_Callback(callbackTab, f2));
    }
    if (f3 != "") {
      tabs.addDynamicTab(((ft3 == "") ? "Feed 3" : ft3), _IG_Callback(callbackTab, f3));
    }
   
  };
  /**
   * Fetches an Atom or RSS feed and generates content inside the
   * selected tab's content container.  This function is called whenever
   * a tab is selected.
   */
  function callbackTab(tabId, feedUrl) {
    var showFeedDesc = prefs.getBool("showFeedDesc");
    var summaries = prefs.getInt("summaries");
    var entries = prefs.getInt("entries");
    var renderHtml = prefs.getBool("renderHtml");
    var showTimestamp = prefs.getBool("showTimestamp");
    var container = _gel(tabId);

    // Display loading message before fetching feed.
    container.innerHTML = '<div class="statusLabel">Loading...</div>';

    // Fetch feed and return it as a JSON object.
    // Callback function is defined within local scope.
    _IG_FetchFeedAsJSON("http://radar.brookes.ac.uk/radar/rss/search/?itemdefs=5186%3A&query=*&ordertype=DATEMODIFIED&type=rss_2.0&length=1000", function (feed)      
{
        if (typeof feed == "undefined" || typeof feed.Entry == "undefined") {
          container.innerHTML = '<div class="statusLabel">Invalid feed URL:<br>' + feedUrl + '</div>';
        } else {
          // Fetch feed successful.  Generate HTML content from returned JSON object.
          // Create feed header containing title and description.
          var html = new Array();
          // html.push('<div class="feedHeader">');
          // html.push('<div class="feedTitle">');
          // html.push((feed.Link != "") ? '<a target="_blank" href="' + _hesc(feed.Link) + '">' + _hesc(feed.Title) + '</a>' : _hesc(feed.Title));
          // html.push((feed.Author != "") ? '<span class="feedAuthor"> by ' + _hesc(feed.Author) + '</span>' : "");
          // html.push('</div>');
          

          // Iterate through each feed entry and generate list of content.
          html.push('<ul class="feedList">');
          for (var n = 0; n < feed.Entry.length; n++) {
            var entry = feed.Entry[n];
            html.push('<li>');
            html.push('<a target="_blank" href="' + entry.Link + '"><b>' + _hesc(entry.Title) + '</b></a>');
            if (typeof entry.Summary != "undefined" && entry.Summary != "") {
              var summary = document.createElement("div");
              summary.innerHTML = (summaries == 0) ? entry.Summary : entry.Summary.substr(0, summaries);
              html.push('<div class="entrySummary">');
              html.push((renderHtml ? summary.innerHTML : _hesc(summary.innerHTML)));
              html.push('...');
              html.push('</div>');
            }
            if (!isNaN(entry.Date) && showTimestamp) {
              html.push('<div class="entryTimestamp">[' + new Date(entry.Date * 1000).toLocaleString() + ']</div>');
            }
            html.push('</li>');
          }
          html.push('</ul>');
          container.innerHTML = html.join("");
        }

        // Resize iframe height to fit content.
        _IG_AdjustIFrameHeight();
      },
      entries,
      (summaries > -1)
    );
  }

  // Set onload event handler to call init()
  _IG_RegisterOnloadHandler(init);
  
   
   </script>
]]>
</Content>
</Module>

