if (document.images) {
  pre_loads = new Array();
  pre_loads[0]="http://code-monkey.org.uk/images/logo-projects.png";
  pre_loads[1]="http://code-monkey.org.uk/images/logo-projects-invert.png";

  pre_load = new Image(150,150);
  for (var i=0; i<pre_loads.length; i++ ) {
    pre_load.src = pre_loads[i];
  }
}

var pos = 0;
var save = new Array();

function MonkeySpeak(id) {
  obj = document.getElementById(id);
  if (obj) {
    pos = 0;
    saveAndSwap(obj,save);
  }
}

function HumanSpeak(id) {
  obj = document.getElementById(id);
  if (obj) {
    pos = 0;
    revert(obj,save);
  }
}

function saveAndSwap(obj, save) {
  for (var i=0; i<obj.childNodes.length; i++) {
    if (obj.childNodes[i].childNodes.length > 0) {
      saveAndSwap(obj.childNodes[i], save);
    } else {
      save[pos] = obj.childNodes[i].nodeValue;
      pos++;

      var letter;
      var str;
      if (Math.round(Math.random())==1) { 
        str='E';
        letter='e'; 
      } else {
        str='O';
        letter='o';
      }
      for (var j=0; j<obj.childNodes[i].nodeValue.length-2; j++) { str = str+letter; }
      str=str+'k!';
      obj.childNodes[i].nodeValue='';
      for (var j=0; j<str.length;j++) {
        obj.childNodes[i].nodeValue=str;
      }
    }
  }
}

function revert(obj, save) {
  for (var i=0; i<obj.childNodes.length; i++) {
    if (obj.childNodes[i].childNodes.length > 0) {

      revert(obj.childNodes[i], save);
    } else {
      obj.childNodes[i].nodeValue='';
      for (var j=0; j<save[pos].length; j++) {
        obj.childNodes[i].nodeValue = obj.childNodes[i].nodeValue + save[pos].charAt(j);
      }
      pos++;
    }
  }
}

function swap(ind) {
  if (document.images) {
    document.getElementById('monkeyimg').src=pre_loads[ind];
  }

  if (ind=='0') {
    HumanSpeak('nav');
  } else {
    MonkeySpeak('nav');
  }
}

function tree(par, id) {
  var obj = document.getElementById(id);
  if (obj) {
    if (obj.style.display!="none") {
      obj.style.display="none";
      par.className="plus";
    } else {
      obj.style.display="block";
      par.className="minus";
    }
  }
}
