// Allows multiple functions to load

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}





// Cancel links with # in them

function cancelLink() {
 if (!document.getElementsByTagName) return false;
 var links = document.getElementsByTagName("a");
 for (var i=0; i < links.length; i++) {
  if (links[i].href.match(/#$/)) {
   links[i].onclick =
    function() {
     return false;
    }
  }
 }
}


// Puts rounded corners on to menu items

function roundedCorners() {
  if (!document.getElementsByTagName) return false;
  var divs = document.getElementsByTagName('div');
  var rounded_divs = [];
  for (var i = 0; i < divs.length; i++) {
    if (/\bbox\b/.exec(divs[i].className)) {
      rounded_divs[rounded_divs.length] = divs[i];
    }
  }
  for (var i = 0; i < rounded_divs.length; i++) {
    var original = rounded_divs[i];
    original.className = original.className.replace('box', '');
    var div2 = document.createElement('div');
    div2.className = 'box2';
    original.parentNode.replaceChild(div2, original);
    for (var ii = 3; ii < 9; ++ii) {
        eval("var div" + ii + " = document.createElement('div');");
    }
    for (var iii = 2; iii < 8; ++iii) {
        eval("div" + iii + ".appendChild(div" + (iii + 1) + ");");
    }
    div8.appendChild(original);
  }
}


// Turns e-mail addresses into mailtos

function changeMail() {
 if (!document.getElementsByTagName) return false;
 var span = document.getElementsByTagName("span");
 for (var i=0; i < span.length; i++) {
  if (span[i].className.match('email')) {
   var innerspan = span[i].getElementsByTagName("span")[0].firstChild.nodeValue;
   span[i].innerHTML = "<a href='mailto:"+innerspan+"@colourtherapyhealing.com'>"+innerspan+"@colourtherapyhealing.com"
  }
 }
}






// Link displayer for printing

function footnoteLinks(containerID, targetID) 
{
      if (!document.getElementById || !document.getElementsByTagName || !document.createElement) return false;
      if (!document.getElementById(containerID) || !document.getElementById(targetID)) return false;
      
      var container = document.getElementById(containerID);
      var target    = document.getElementById(targetID);
      var h2        = document.createElement('h2');
      addClass.apply(h2,['printOnly']);
      
      var h2_txt    = document.createTextNode('Links');
      h2.appendChild(h2_txt);
      
      var coll = container.getElementsByTagName('*');
      var ol   = document.createElement('ol');
      addClass.apply(ol,['printOnly']);
      
      var myArr = [];
      var thisLink;
      var num = 1;
      for (var i=0; i< coll.length; i++) {
        var thisClass = coll[i].className;
        if ( (coll[i].getAttribute('href') || coll[i].getAttribute('cite')) && (thisClass == '' || thisClass.indexOf('nop') == -1)) { 
          thisLink = coll[i].getAttribute('href') ? coll[i].href : coll[i].cite;
          var note = document.createElement('sup');
          addClass.apply(note,['printOnly']);
          var note_txt;
          var j = inArray.apply(myArr,[thisLink]);
          if ( j || j===0 ) {
            note_txt = document.createTextNode(j+1);
          } else {
            var li     = document.createElement('li');
            var li_txt = document.createTextNode(thisLink);
            li.appendChild(li_txt);
            ol.appendChild(li);
            myArr.push(thisLink);
            note_txt = document.createTextNode(num);
            num++;
          }
          note.appendChild(note_txt);
          if (coll[i].tagName.toLowerCase() == 'blockquote') {
            var lastChild = lastChildContainingText.apply(coll[i]);
            lastChild.appendChild(note);
          } else {
            coll[i].parentNode.insertBefore(note, coll[i].nextSibling);
          }
        }
      }
      target.appendChild(h2);
      target.appendChild(ol);
      addClass.apply(document.getElementsByTagName('html')[0],['noted']);
      return true;
}
 


addLoadEvent(cancelLink);

addLoadEvent(roundedCorners);
addLoadEvent(changeMail);

