/* javascript to support henham theme */

function findPos(obj) {
  var curleft = curtop = 0;
  if (obj.offsetParent) {
    curleft = obj.offsetLeft
      curtop = obj.offsetTop
      while (obj = obj.offsetParent) {
        curleft += obj.offsetLeft
        curtop += obj.offsetTop
      }
  }
  return [curleft,curtop];
}

function page_load() {
  var menul1 = document.getElementById("menul1");
  if (menul1) {
    var pos = findPos(menul1);
    /* these have no effect other than to position the submenu when installed... */
    menul1.style.top = pos[1] + "px";
    menul1.style.left = (pos[0] + 20) + "px";  // extra 20 for margin and "more..."
  }
  var menuall = document.getElementById("menuall");
  if (menuall) {
    var pos = findPos(menuall);
    /* these have no effect other than to position the submenu when installed... */
    menuall.style.top = pos[1] + "px";
    menuall.style.left = pos[0] + "px";
  }
  var popupall = document.getElementById("popupall");
  var lis = popupall.getElementsByTagName("LI");
  for (var i = 0; i < lis.length; i++) {
    var pos = findPos(lis[i]);
    /* these have no effect other than to position the submenu when installed... */
    lis[i].style.top = pos[1] + "px";
    lis[i].style.left = pos[0] + "px";
  }

  /* float rights in the connet go against the text margin not
     completely right aligned - I can't see a way to do this with css */
  var content = document.getElementById("content");
  var contentdivs = content.getElementsByTagName("DIV");
  var contentps = content.getElementsByTagName("P");
  // find a P (which isn't a floated right one, just a general body one)
  var contentp = null;
  for (var i = 0; i < contentps.length; i++) {
    if (contentps[i].className == '') { 
      contentp = contentps[i];
      break;
    }
  }
  if (contentp) {
    var rightp = findPos(contentp)[0] + contentp.offsetWidth;
    for (var i = 0; i < contentdivs.length; i++) {
      var contentdiv = contentdivs[i];
      if (contentdiv.className == 'wp-caption alignright') {
        var img = contentdiv.getElementsByTagName("IMG")[0];
        contentdiv.style.width = img.offsetWidth + "px";
        var imgx = findPos(img)[0] - 20;
        // alert(findPos(contentp)[0] + " " + imgx + " " + rightp);
        if (imgx - rightp > 0) {
          contentdiv.style.paddingRight = (imgx - rightp) + "px";
        }
      }
    }
  }

  if (window.fader_setup) { fader_setup(); }
}

function homeload() {
  // this function distributes the menu entries on the home page in an elliptical 
  // ring about the central image

  // find the centre of the menu ring:
  var menucentre = document.getElementById("menucentre");
  var w = menucentre.offsetWidth;
  var h = menucentre.offsetHeight;
  var eccentricity = w / h;
  var pos = findPos(menucentre);
  var x = pos[0] + (w/2);
  var y = pos[1] + (h/2);

  var homemenu = document.getElementById("homemenu");
  homemenu.style.display = 'block';
  var homemenus = new Array();
  var j = 0;
  for (var i = 0; i < homemenu.childNodes.length; i++) {
    if (homemenu.childNodes[i].nodeName == 'DIV') {
      homemenus[j++] = homemenu.childNodes[i];
    }
  }
  var sector = 360 / homemenus.length; // in degrees
  var factorx = 0.6;
  var factory = 0.5;
  for (var i = 0; i < homemenus.length; i++) {
    var e = homemenus[i];
    var ew = e.childNodes[0].offsetWidth; // measure the link width not the div width
    var eh = e.childNodes[0].offsetHeight;
    e.style.position = "absolute";
    var theta = (90 - i * sector) / 90.0 * Math.PI / 2.0; // in radians
    var left = parseInt(x + Math.cos(theta) * w * factorx - ew/2);
    var top = parseInt (y - Math.sin(theta) * h * factory + eh/2);
    e.style.left =  left + "px";
    e.style.top =  top + "px";
    var place = '';
    if (left < x) {
      place = top < y ? 'tl' : 'bl';
    } else {
      place = top < y ? 'tr' : 'br';
    }
    e.setAttribute("menuposition", place);
  }
}

