// Greasemonkey http://greasemonkey.mozdev.org/
//
// ==UserScript==
// @name          Democracy Now! Media Links
// @description   Adds links to all media formats for the currently loaded issue, or the current day.
// @namespace     http://deoxy.org/gm
// @include       http://*.democracynow.org*
// @include       http://democracynow.org*
// ==/UserScript==

(function() {
  var loc = location.href;
  var done = 0;
  var str = '';
  
  function appendMain(txt) {
    var main = document.getElementById('main');
    if (main) {
      var main_= main.innerHTML;
      main.innerHTML = txt + '<p>' + main_;
      done = 1;
    }
  }
  function format(n) {
    if (Math.abs(parseInt(n)) < 10){
      n = "0"+ Math.abs(n);
    }
    return n;
  }
  // grab the date from the url
  if (loc.match(/sid=/)) {
    str = loc.replace(/^.*?\?sid=(\d{2})\/(\d{2})\/(\d{2}).*$/,    "$1 $2 $3");
  }
  else if (loc.match(/issue=/)) {
    str = loc.replace(/^.*?\?issue=\d{2}(\d{2})(\d{2})(\d{2}).*$/, "$1 $2 $3");
  }
  
  // no sid or issue date in the url so figure out today's date
  if (str == '') {  
    var weeks = new Array("sunday","monday","tuesday","wednesday","thursday","friday","saturday")
    var today = new Date();
    
    var hmm = weeks[today.getDay()];
    // skip days with no show
    if (hmm == 'saturday' || hmm == 'sunday') {
      str = "It's "+hmm+', relax...';
    }
    else {
      var day   = today.getDate();
      var mon   = today.getMonth() + 1;
      var year  = today.getFullYear();

      day  = format(day);
      mon  = format(mon);
      str  = year+' '+mon+' '+day;
    }
  }
  
  // weekend
  if (str.match(/^\D/)) {
    appendMain(str);
  }
  else{
    // a couple of these month names are educated guesses, used in the daily realaudio streams.
    var month = new Array('jan','feb','march','april','may','june','july','aug','sept','oct','nov','dec');
    var arr = str.split(" ");
    var yy,mm,dd;
  
    yy = arr[0];
    mm = arr[1];
    dd = arr[2];
    // this code expires in 2100 :-)
    if (yy.length == 2) yy = '20' + yy; 
  
    var m = mm.replace(/^0/,'');
    m = m - 1;
    
    if (done == 0) {
    appendMain('<small>'+
       '<a href=http://play.rbn.com/?url=demnow/demnow/demand/'+yy+'/'+month[m]+'/video/dnB'+yy+mm+dd+'a.rm&proto=rtsp>realvideo</a>'
      +'&#183; <a href=http://play.rbn.com/?url=demnow/demnow/demand/'+yy+'/'+month[m]+'/audio/dn'+yy+mm+dd+'.ra&proto=rtsp>realaudio</a>'
      +'&#183; <a href=http://www.archive.org/download/dn'+yy+'-'+mm+dd+'/dn'+yy+'-'+mm+dd+'-1.ogg>ogg</a>'
      +'&#183; <a href=http://www.archive.org/download/dn'+yy+'-'+mm+dd+'/dn'+yy+'-'+mm+dd+'-1_64kb.mp3>mp3</a>'
      +'&#183; <a href=http://www.archive.org/download/dn'+yy+'-'+mm+dd+'/dn'+yy+'-'+mm+dd+'-1.flac>flac</a>'
      +'&#183; <a href=http://www.archive.org/download/dn'+yy+'-'+mm+dd+'/dn'+yy+'-'+mm+dd+'-1.wav>wav</a>'
      +'&#183; <a href=http://www.archive.org/download/dn'+yy+'-'+mm+dd+'/dn'+yy+'-'+mm+dd+'-1_vbr.mp3>vbrmp3</a>'
      +'&#183; <a href=http://www.archive.org/download/dn'+yy+'-'+mm+dd+'/dn'+yy+'-'+mm+dd+'_vbr.m3u>vbrmp3stream</a>'
      +'&#183; <a href=http://ewheel.democracynow.org/dn'+yy+'-'+mm+dd+'.avi.torrent>avi.torrent</a></small>'
    );}
  }
})();

