window.onload = startup;

var startupHasRun = false;

function startup() {
  //if(startupHasRun) return;
  mangleEmail();
  insertFootnotes();
  startupHasRun = true;
}

function mangleEmail() {
  if(!document.getElementsByTagName) return; //object detection
  
  //find out where we need to make replacements
  var mangleLocations = document.getElementsByTagName("span");
  var whichClass = "mangle-email"; //this class tells us where to add links
  var whichClassStrike = "mangle-email-strike"; //this class is struck through
  
  //e-mail address to mangle
  var part1 = '<a href=\"mai';
  var part2 = 'lto:';
  var part3 = 'scott';
  var part4 = '@';
  var part5 = 'scottseverance.us';
  var part6 = '\">';
  var part7 = '</a>';
  
  //loop through all <span>s
  for(var i = 0; i < mangleLocations.length; i++) {
    
    //find struck text
    if(mangleLocations[i].className == whichClassStrike) {
      mangleLocations[i].className = whichClass;
      mangleLocations[i].title = "";
    }
    
    //add the link
    if(mangleLocations[i].className == whichClass) {
      var mailtoText = mangleLocations[i].innerHTML;
      mangleLocations[i].innerHTML = part1 + part2 + part3 + part4 + part5 + part6 + mailtoText + part7;
    }
  }
}

function insertFootnotes() {
  if(!document.getElementsByTagName) return; //object detection
  var spans = document.getElementsByTagName('span');
  var noteIndex = 1;
  for(var i=0; i<spans.length; i++) {
    if(spans[i].className == 'footnote') { //are we dealing with a footnote?
      var note = spans[i];
      var id = 'note-' + noteIndex++; //ID of the footnote <span>
      var idAnchor = id + '-a'; //ID of the footnote <a> (to expand/collapse the note)
      
      var tmpLinkText; //get the text to be linked
      for(var j=0;j<note.childNodes.length; j++) {
        if(note.childNodes[j].nodeName == '#text') {
          var tmp = note.childNodes[j];
          if(tmp.substringData && tmp.replaceData) { //more testing to prevent errors in bad browsers
            while(true) { //remove trailing spaces
              if(tmp.substringData(tmp.length-1,1) == ' ') {
                tmp.replaceData(tmp.length-1,1,'');
              }
              else {
                break;
              }
            }
          }
          tmpLinkText = tmp.nodeValue;
          break;
        }
      }
      
      var tmpNoteText; //get the text of the footnote
      for(var j=0;j<note.childNodes.length;j++) {
        if(note.childNodes[j].nodeName == 'SMALL') {
          tmpNoteText = note.childNodes[j].innerHTML;
          break;
        }
      }
      
      var okToContinue = (tmpLinkText == '' || tmpNoteText == '') ? false : true; //make sure that we actually have the information we need
      if(okToContinue) {
        note.innerHTML = ''; //clear the span to be safe
        var link = '<a href="javascript:expand(\''+idAnchor+'\',\''+id+'\')" id="'+idAnchor+'" title="Click to expand/collapse" class="expand">'+tmpLinkText+'</a>';
        var noteText = '<span id="'+id+'" class="commenthidden"> <span class="expand">'+tmpNoteText+'</span></span>';
        note.innerHTML = link + noteText;
      }
    }
  }
}

function togglecomments(postid) {
  if(!document.getElementById) return; //error prevention
  var whichpost = document.getElementById(postid); 
  
  whichpost.className = (whichpost.className=="commentshown") ? "commenthidden" : "commentshown"; 
} 

function expand(aID,spanID) {
  if(!document.getElementById) return; //error prevention
  var anchor = document.getElementById(aID);
  togglecomments(spanID);
  anchor.className = (anchor.className == "expand") ? "collapse" : "expand";
}

function createCookie(name,value,days) {
  if(days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000)); //days*86400000
    var expires = "; expires="+date.toGMTString();
  }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0)
      return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function eraseCookie(name) {
  createCookie(name,"",-1);
}

function recog() {
  if(confirm("Do you want to be recognized?")) {
    createCookie('seen_before','1',1000);
  }
}

function forget() {
  if(confirm("Do you want to be forgotten?"))
    eraseCookie('seen_before');
}