window.onload = init;

function init() {
  mangleEmailAuto();
  insertFootnotes();
  //if(noTemplate) return;
  startMouseOvers();
  preloadImg();
}

function mangleEmailAuto() {
  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
  
/*var test = document.getElementsByTagName('span');
  var test2 = '';
  for(var i=0;i<test.length;i++) {
    test2 += i;
    test2 += ': ';
    test2 += test[i];
    test2 += "\n";
  }
  alert(test2);*/
  
  //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;
    }
  }
}

blogOnSrc = "../images/blog_tab_on.png";
blogOffSrc = "../images/blog_tab.png";
ministryOnSrc = "../images/ministry_tab_on.png";
ministryOffSrc = "../images/ministry_tab.png";
musicOnSrc = "../images/music_tab_on.png";
musicOffSrc = "../images/music_tab.png";
computingOnSrc = "../images/computing_tab_on.png";
computingOffSrc = "../images/computing_tab.png";
galleryOnSrc = "../images/gallery_tab_on.png";
galleryOffSrc = "../images/gallery_tab.png";
var W3CDOM = (document.createElement && document.getElementsByTagName);

var mouseOvers = new Array();
var mouseOuts = new Array();
var activeImg;

function startMouseOvers() {
  if (!W3CDOM) return;
  var nav = document.getElementById('menubar');
  var imgs = nav.getElementsByTagName('img');
  for (var i = 0; i < imgs.length; i++) {
    if(imgs[i].className == 'active') activeImg = imgs[i];
    else {
      imgs[i].onmouseover = mouseGoesOver;
      imgs[i].onmouseout = mouseGoesOut;
      var suffix = imgs[i].src.substring(imgs[i].src.lastIndexOf('.'));
      mouseOuts[i] = new Image();
      mouseOuts[i].src = imgs[i].src;
      mouseOvers[i] = new Image();
      mouseOvers[i].src = imgs[i].src.substring(0,imgs[i].src.lastIndexOf('.')) + "_on" + suffix;
      imgs[i].number = i;
    }
  }
}

function mouseGoesOver() {
  this.src = mouseOvers[this.number].src;
  activeImg.src = activeImg.src.substring(0,activeImg.src.length - 7) + '.png';
}

function mouseGoesOut() {
  this.src = mouseOuts[this.number].src;
  activeImg.src = activeImg.src.substring(0,activeImg.src.length - 4) + '_on.png';
}
function preloadImg() {
  blogImg = new Image;
  ministryImg = new Image;
  musicImg = new Image;
  computingImg = new Image;
  galleryImg = new Image;
  blogImg.src = blogOnSrc;
  ministryImg.src = ministryOnSrc;
  musicImg.src = musicOnSrc;
  computingImg.src = computingOnSrc;
  galleryImg.src = galleryOnSrc;
}
function imgOn(imgName) {
  if(imgName == "blog") {
    document.blog.src = blogOnSrc;
  }
  if(imgName == "ministry") {
    document.ministry.src = ministryOnSrc;
  }
  else if(imgName == "music") {
    document.music.src = musicOnSrc;
  }
  else if(imgName == "computing") {
    document.computing.src = computingOnSrc;
  }
  else if(imgName == "gallery") {
    document.gallery.src = galleryOnSrc;
  }
  return true;
}
function imgOff(imgName) {
  if(imgName == "blog") {
    document.blog.src = blogOffSrc;
  }
  if(imgName == "ministry") {
    document.ministry.src = ministryOffSrc;
  }
  else if(imgName == "music") {
    document.music.src = musicOffSrc;
  }
  else if(imgName == "computing") {
    document.computing.src = computingOffSrc;
  }
  else if(imgName == "gallery") {
    document.gallery.src = galleryOffSrc;
  }
  return true;
}

function mangleEmail(linkText) {
  var part1 = '<A HREF=mai';
  var part2 = 'lto:';
  var part3 = 'scott.severance';
  var part4 = '@';
  var part5 = 'gmail.com';
  var part6 = '>';
  var part7 = '</A>';
  document.write(part1 + part2 + part3 + part4 + part5 + part6 + linkText + 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";
}

/*var j = 1;
for(var i=0; i < 999999; i++) {
  j = i + i * i * j;
}
init();*/
