/*** accordion menu functions
     courtesy of script.aculo.us
     klokie et al.
***/
section = '';
lang = '';

function choose(el,nofx) {
  if (!nofx) nofx = false;
  if (Element.hasClassName(el.parentNode.id+'-body','visible')){
    //do not need to perform any actions
    return;
  }
  var elup = null;
  var eldown = el.parentNode.id+'-body';
  var apanels = document.getElementsByClassName('panel_body',el.parentNode.parentNode.parentNode);
  //console.log("panels found: "+apanels.length);
  for (var i=0, j=apanels.length;i<j;i++){
    if (Element.hasClassName(apanels[i].parentNode.id+'-body','visible')) {
      elup = apanels[i].parentNode.id+'-body';
    }
  }

  //console.log("hiding id "+eldown);
  if (elupnode = document.getElementById(elup)) {
    Effect.BlindUp(elup);
    Element.removeClassName(elup,'visible');
    Element.removeClassName(elupnode.parentNode.id,'selected');
  }
  //console.log("showing id "+elup);
  if (document.getElementById(eldown) != null) {
    Element.addClassName(eldown,'visible');
    Element.addClassName(el.parentNode.id,'selected');
    if (!nofx) Effect.BlindDown(eldown);
  }
  //new Effect.Parallel([ new Effect.BlindUp(elup), new Effect.BlindDown(eldown) ], {duration: 0.5});

  //console.log("chose url: " + el.href);
  ccLoad( el.href );
}

function ccLoad(url) {
  // load simplified XML version of page fragment
  lastSlash = url.lastIndexOf('/');
  if (lastSlash == -1) return true;
  myurl = url.substring(lastSlash).replace(/html?/, 'xml');
  // store the fragment's unique ID
  section = myurl.substring(0, myurl.indexOf('.'));

  //Effect.toggle('main','appear');
  // , onComplete: Effect.toggle('main','appear')
  new Ajax.Updater('main', myurl, { method:'get' });
}

function locale(lang) {
  self.location = section + '.' + lang + '.html';
}

//pass in ID of container element that has all instances of apanels
function accordion_init(id) {
  var apanels = document.getElementsByClassName('panel_body',id);
  for (var i=0, j=apanels.length;i<j;i++){
    //console.log("hiding id "+apanels[i].id);
    apanels[i].style.display = 'none';
  }
  var velems = document.getElementsByClassName('visible');
  //console.log( (velems.length?velems.length:0)+ " visible elements");
  for (var i=0, j=velems.length;i<j;i++){
    //console.log("blocking id "+$(velems[i]).id);
    $(velems[i]).style.display = 'block';
  }
}

function addEvent(elm, evType, fn, useCapture) {
  elm["on"+evType]=fn;return;
}

addEvent(window, "load", function(){accordion_init('menu');});

