anchor.diff:  */
   
   HDO.widgets = (function () {
  -  this.baseUrl = '<%= request.scheme %>://<%= request.host %>:<%= request.port %>/widgets/';
  +  this.baseUrl = '<%= request.scheme %>://<%= request.host %>:<%= request.port %>/';
   
     function extractWidgetOptions(type, el) {
         var url;
   
  +      function addIssueParams(el, url) {
  +        var issues = el.getAttribute('data-issue-ids');
  +        var count = el.getAttribute('data-issue-count');
  +
  +        url += '?'
  +
  +        if (issues && issues.length)
  +          url += 'issues=' + encodeURIComponent(issues);
  +
  +        if (count && count.length)
  +          url += 'count=' + encodeURIComponent(count);
  +
  +        return url;
  +      }
  +
         if (type == "issue") {
  -          url = baseUrl + "issues/" + el.getAttribute('data-issue-id');
  +          url = baseUrl + "issues/" + el.getAttribute('data-issue-id') + '/widget';
  +      } else if (type == "representative") {
  +          url = baseUrl + "representatives/" + el.getAttribute('data-representative-id') + '/widget';
  +          url = addIssueParams(el, url);
  +      } else if (type == "party") {
  +          url = baseUrl + "parties/" + el.getAttribute('data-party-id') + '/widget';
  +          url = addIssueParams(el, url);
         } else {
             throw new Error('invalid HDO widget type: ' + type);
         }
  
positive.code: 
    return {
        init: function (type) {
            var elements = document.getElementsByClassName('hdo-' + type + '-widget');
  
            for (var i = 0; i < elements.length; i++) {
                createWidgetFrame(type, elements[i]);
            }
        }
    };
  })();
  
  HDO.widgets.init('issue');
  
negative.code:       iframe.width = opts.width;
        iframe.height = opts.height;
        iframe.frameBorder = 0;
        iframe.scrolling = 'no';
        iframe.title = 'holderdeord.no widget';
  
        element.parentNode.replaceChild(iframe, element);
  