// ==UserScript==
// @name Eye On Winer
// @namespace http://eyeonwiner.org/
// @description keeping an eye on Dave Winer
// @include http://scripting.com/*
// @include http://www.scripting.com/*
// @include http://archive.scripting.com/*
// @include http://scriptingnews.com/*
// @include http://www.scriptingnews.com/*
// ==/UserScript==
var eh=unescape(GM_getValue('eowhtml',''));
var lt=new Date(0);
var lf=GM_getValue('lastfetched','');
if(lf){lt.setTime(Date.parse(lf));}
var tt=new Date();
var stl=(!eh)||(tt.getTime()-lt.getTime()>3600000);
if(stl){GM_xmlhttpRequest({method:'GET',url:'http://feeds.feedburner.com/EyeOnWiner',onload:eowCallback});}
else{eowCallback({responseText: eh});}
function eowCallback(d){
  var html=d.responseText;
  if(stl){
    GM_setValue('eowhtml',escape(html));
    GM_setValue('lastfetched',tt.toUTCString());
    //GM_log('Saving EOW cache');GM_log(html);
  }
  var rss=html.substring(html.indexOf('<?xml'));
  var itm=rss.split(/<item>/);
  if(itm.length==1){GM_log('Error parsing EOW feed:\n'+rss);}
  var xref=new Array();
  for(var i=1;i<itm.length;i++){
    var t=itm[i].split(/<title>/)[1].split(/<\/title>/)[0];
    var h=itm[i].split(/<link>/)[1].split(/<\/link>/)[0];
    var c=itm[i].split(/<content:encoded><!\[CDATA\[/)[1].split(/<\]\]>\/content:encoded>/)[0];
    var r=c.split(/href="http:\/\/www.scripting.com\//);//");
    for(j=1;j<r.length;j++){
      var dh=r[j].substring(0,r[j].indexOf('"'));
      dh='http://www.scripting.com/'+dh;
      xref[dh]=xref[dh]||new Array();
      xref[dh].push({href:h,title:t});
    }
  }
  for(var dh in xref){
    var dl=document.evaluate("//a[@href='"+dh+"']",document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;
    if(!dl){continue;}
    for(var i=0;i<xref[dh].length;i++){
      var c=xref[dh][i];
      var d=document.createElement('div');
      d.innerHTML='<p style="display: block !important; border: 1px solid #008000 !important; background: #8cba21 !important; color: white !important; padding: 1em !important;">Eye on Winer responds: <a href="'+c.href+'" style="background: transparent !important; color: white !important; font-weight: bold !important">'+c.title+'</a></p>';
      d.style.display='block !important';
      dl.parentNode.insertBefore(d,dl.nextSibling);
    }
  }
}
Node.insertBefore(d,dl.nextSibling);
    }
  }
}
sertBefore(d,dl.nextSibling);
    }
  }
}
