<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="__UP_subject__" directory_title="ESPN Tabbed Sports Feeds" description="Live News feeds from ESPN.com. Edit the gadget settings to view between 3 to 15 Headlines in each Category (Top Stories, NFL, MBA, MLB, NHL, Motorsports, Soccer, College Basketball, College Football, Outdoors.com, Bassmaster, Videos, Boxing, Golf, Autos). Choose long or short news summaries from ESPN RSS feeds." title_url="http://gwidgets.com" author="gWidgets" author_email="phillip132@gmail.com" screenshot="http://hosting.gmodules.com/ig/gadgets/file/111360757414464896237/espn_ss.png" thumbnail="http://hosting.gmodules.com/ig/gadgets/file/111360757414464896237/espn_tn.png" height="400" scrolling="false" singleton="false" category="sports" category2="news">
  <Require feature="dynamic-height"/>
  <Require feature="setprefs"/>
  <Require feature="tabs"/>
  <Require feature="analytics" />
</ModulePrefs>
<UserPref name="entries" display_name="# of Entries:" datatype="enum" default_value="3">
  <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"/>
  <EnumValue value="13"/>
  <EnumValue value="14"/>
  <EnumValue value="15"/>
</UserPref>
<UserPref name="summaries" display_name="Summary Length" datatype="enum" default_value="100">
  <EnumValue value="0" display_value="None"/>
  <EnumValue value="100" display_value="Short"/>
  <EnumValue value="300" display_value="Long"/>
</UserPref>
<UserPref name="extrafeed" display_name="Option Category:" datatype="enum" default_value="http://soccernet.espn.go.com/rss/news">
  <EnumValue value="http://soccernet.espn.go.com/rss/news" display_value="Soccer"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/rpm/news" display_value="MotorSports"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/ncb/news" display_value="College Basketball"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/outdoors/news" display_value="Outdoors.com"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/bassmaster/news" display_value="Bassmaster.com"/>
  <EnumValue value="http://sports.espn.go.com/broadband/ivp/rss" display_value="Latest Videos"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/golf/news" display_value="Golf"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/tennis/news" display_value="Tennis"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss/womenbb/news" display_value="Womens Basketball"/>
  <EnumValue value="http://sports.espn.go.com/espn/rss.boxing/news" display_value="Boxing"/>
</UserPref>
<UserPref name="extratitle"
  display_name="Option Title:"
  default_value="Soccer"/>
<UserPref name="subject"
  display_name="Gadget Title:"
  default_value="ESPN"/>
<UserPref name="selectedTab" datatype="hidden"/>
<Content type="html"><![CDATA[
  <style type="text/css">
  @import url(http://www.google.com/ig/tablib.css);
  .tablib_table__MODULE_ID__ { font-size: 11px; }

  .statusLabel {
    font-size:11px;
    font-style:italic;
    padding-top:10px;
    text-align:center;
  }
  .feedHeader {
    padding-top:5px;
    font-size:13px;
  }
  .feedList {
    font-size:13px;
    margin:5px 0px 0px 0px;
    padding:0px 3px 5px 3px;
/*    border-top: 1px solid #aaaaaa; */
    border-bottom: 1px solid #aaaaaa;
  }
  .feedList li {
    margin-top:5px;
    padding:0px;
  }
  .feedList div.entrySummary {
    font-size:12px;
  }
  .feedlist div.entryTimestamp {
    font-size:10px;
    font-style:italic;
    color:#676767;
  }
  </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 = "http://sports.espn.go.com/espn/rss/news";
    var f2 = "http://sports.espn.go.com/espn/rss/nfl/news";
    var f3 = "http://sports.espn.go.com/espn/rss/nba/news";
    var f4 = "http://sports.espn.go.com/espn/rss/mlb/news";
    var f5 = "http://sports.espn.go.com/espn/rss/nhl/news";
    var f6 = "http://sports.espn.go.com/espn/rss/ncf/news";
    var f7 = _trim(prefs.getString("extrafeed"));

    if (f1 != "") {
      tabs.addDynamicTab(_trim("Top"), callbackGenerator(f1));
    }
    if (f2 != "") {
      tabs.addDynamicTab(_trim("NFL"), callbackGenerator(f2));
    }
    if (f3 != "") {
      tabs.addDynamicTab(_trim("NBA"), callbackGenerator(f3));
    }
    if (f4 != "") {
      tabs.addDynamicTab(_trim("MLB"), callbackGenerator(f4));
    }
    if (f5 != "") {
      tabs.addDynamicTab(_trim("NHL"), callbackGenerator(f5));
    }
    if (f6 != "") {
      tabs.addDynamicTab(_trim("College Football"), callbackGenerator(f6));
    }
    if (f7 != "") {
      tabs.addDynamicTab(_trim(prefs.getString("extratitle")), callbackGenerator(f7));
    }
  };

  /**
   * Creates a function that calls the tab's callback function
   * and passes along an additional variable from the calling environment.
   */
  function callbackGenerator(feedUrl) {
    return function(tabId) {
      callbackTab(tabId, feedUrl);
    }
  }

  /**
   * 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 summaries = prefs.getInt("summaries");
    var entries = prefs.getInt("entries");
    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(
      feedUrl,
      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.
          var html = new Array();

/*          // Create feed header containing title and description.
          html.push('<div class="feedHeader">');
          html.push('<b>' + _hesc(feed.Title) + '</b><br>');
          html.push(_hesc(feed.Description));
          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];

            var summ=entry.Summary;
            var summary=summ.replace(/<V?[^>]+>/gi,"");

            html.push('<li>');
            html.push('<a target="_blank" title="' + _hesc(summary) + '" href="' + entry.Link + '">' + _hesc(entry.Title) + '</a>');
            if (typeof entry.Summary != "undefined" && entry.Summary != "" && summaries > 0) {
              if (entry.Summary.length > summaries) {
                html.push('<div class="entrySummary">' + _hesc(summary.substr(0, summaries)) + ' ...</div>');
              } else {
                html.push('<div class="entrySummary">' + _hesc(summary) + '</div>');
              }
            }
            if (!isNaN(entry.Date)) {
              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,
      1
    );
  }

  // Set onload event handler to call init()
  _IG_RegisterOnloadHandler(init);
  _IG_Analytics("UA-2054544-3", "/rss-espn");
  </script>
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0554971146815942";
/* top */
google_ad_slot = "2343383635";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
]]>
</Content>
</Module>
