function NachrichtenWidget() {
  var widgetWidth = 365;
  var widgetHeight = 560;
  var feedName = 'home';
  var sources = '';
  var customFeed = false;
  var thumbnails = 'false';
  var teasers = 'false';
  var amount = 10;
  var feedLink = 'http://www.nachrichten.de';

  this.scrollbarWidth = function() {
    var div = $('<div style="width:50px; height:50px; overflow:hidden; position:absolute; top:-200px; left:-200px;"><div style="height: 100px;"></div>');
    $('body').append(div);
    var w1 = $('div', div).innerWidth();
    div.css('overflow-y', 'scroll');
    var w2 = $('div', div).innerWidth();
    $(div).remove();
    return(w1 - w2);
  };

  this.initialize = function() {
    jQuery.each($.Params.Values, function(key, val) {
      switch(key) {
        case 'width':
          widgetWidth = val;
          break;
        case 'height':
          widgetHeight = val;
          break;
        case 'feed':
          feedName = val;
          break;
        case 'sources':
          sources = val;
          break;
        case 'custom_feed':
          customFeed = val;
          break;
        case 'thumbnails':
          thumbnails = val;
          break;
        case 'teasers':
          teasers = val;
          break;
        case 'amount':
          amount = val;
          break;
      }
    });

    // adjust width and height
    if(jQuery.support.boxModel) {
      $('#widgetContent').width(widgetWidth - (1 + 40)); // margins
      $('#widgetContent').height(widgetHeight - 13);
      $('#footer').width(widgetWidth-1);
    } else {
      $('#widgetContent').width(widgetWidth - 2);
      $('#widgetContent').height(widgetHeight - 20);
      $('#footer').width(widgetWidth-2);
    }
    
    var feedUrl = '';
    if(sources != '') {
    	feedUrl = '/rss/suche.rss?searchCategory=ALL&synd=true&searchSource=' + sources + '&searchSourceKey=' + sources;
    } else if(!customFeed) {
    	feedUrl = '/rss/' + feedName + '.rss?synd=true';
  	} else {
        var separator = '?';
        if(customFeed.indexOf('?') > -1) {
            separator = '&';
        }
        feedUrl = customFeed.replace(/http:\/\/\w+\.nachrichten\.de/g, '') + separator + 'synd=true';
    }

    jQuery.getFeed({
      url: feedUrl,
      success: function(feed) {
        this.feedLink = feed.link;

        var entriesHtml = '<ul>';

        for(var i=0; i<feed.items.length && i < amount; i++) {
          var item = feed.items[i];

          if(i == amount-1) {
            entriesHtml += '<li class="last">';
          } else {
            entriesHtml += '<li>';
          }

          entriesHtml += '<div class="headline">';

          if(thumbnails == 'true') {
            if(typeof(item.mediaThumbnail) != 'undefined' && item.mediaThumbnail != '') {
              entriesHtml += '<a href="' + item.link + '" target="_blank">' + '<img src="' + item.mediaThumbnail + '" width="121" height="77" />' + '</a>';
            }
          }

          entriesHtml += '<h2><a href="' + item.link + '" target="_blank">' + item.title + '</a>' + '</h2>';

          if(typeof(item.sourceFavicon) != 'undefined' && item.sourceFavicon != '' &&
               typeof(item.sourceName) != 'undefined' && item.sourceName != '') {
            if(thumbnails == 'true' && (typeof(item.mediaThumbnail) != 'undefined' && item.mediaThumbnail != '')) {
              entriesHtml += '<dl>';
            } else {
              entriesHtml += '<dl class="noThumbnails">';
            }

            entriesHtml += '<dt><img src="' + item.sourceFavicon + '" width="16" height="16" /></dt><dd class="source">' + item.sourceName + '</dd></dl>';

            if(thumbnails != 'true' || (thumbnails == 'true' && (typeof(item.mediaThumbnail) == 'undefined' || item.mediaThumbnail != ''))) {
              if(teasers == 'true') {
                entriesHtml += '<div class="spacerSmall"></div>';
              } else {
                entriesHtml += '<div class="spacer"></div>';
              }
            }
          } else if(typeof(item.sourceName) != 'undefined' && item.sourceName != '') {
            entriesHtml += '<dl><dd class="source">' + item.sourceName + '</dd></dl>';

            if(thumbnails != 'true' || (thumbnails == 'true' && (typeof(item.mediaThumbnail) == 'undefined' || item.mediaThumbnail != ''))) {
              if(teasers == 'true') {
                entriesHtml += '<div class="spacerSmall"></div>';
              } else {
                entriesHtml += '<div class="spacer"></div>';
              }
            }
          } else {
            if(thumbnails != 'true' || (thumbnails == 'true' && (typeof(item.mediaThumbnail) == 'undefined' || item.mediaThumbnail != ''))) {
              if(teasers != 'true') {
                entriesHtml += '<div class="spacerSmall"></div>';
              } else {
                entriesHtml += '<div class="spacer"></div>';
              }
            }
          }

          entriesHtml += '</div>';

          if(teasers == 'true') {
            if(thumbnails == 'true' && (typeof(item.mediaThumbnail) != 'undefined' && item.mediaThumbnail != '')) {
              entriesHtml += '<div class="teaser">' + item.description + '</div>';
            } else {
              entriesHtml += '<div class="teaser noThumbnails">' + item.description + '</div>';
            }
          } else if(thumbnails == 'true') {
            if((typeof(item.sourceFavicon) == 'undefined' || item.sourceFavicon == '') ||
                   (typeof(item.sourceName) == 'undefined' || item.sourceName == '')) {
                entriesHtml += '<div class="spacer"></div>';
            }
          }

          entriesHtml += '</li>';
        }

        entriesHtml += '</ul>';

        jQuery('#widgetContent').append(entriesHtml);
      }
    });

  };

}
