
/////////////////////////////////////////////////////////////////////////////
//
// www_html_caccordionpage.js - ::WWW::HTML::CAccordionPage javascript module
// --------------------------------------------------------------------------
//
// MODULES
//
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__Construct(object, page) {
  page.style.display = "block";
  switch (page.className) {
  case "WWW__HTML__CAccordionPage__page" : {
    page.className = "WWW__HTML__CAccordionPage__page__CURRENT";
    break;
  }                                                       
  case "WWW__HTML__CAccordionPage__page__CURRENT" : {
    break;
  }                                                       
  case "WWW__HTML__CAccordionPage__page__STATIC" : {
    break;
  }                                                       
  }
} // __WWW__HTML__CAccordionPage__Construct


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__Expand(object, header, page, step, delay) {
  var result = false;

  switch (header.className) {
  case "WWW__HTML__CAccordionPage__header" : {
    var headers = object.getElementsByTagName("a");
    for (var i = 0; i < headers.length; i++) {
      if (headers[i].className == "WWW__HTML__CAccordionPage__header__CURRENT") {
        headers[i].className = "WWW__HTML__CAccordionPage__header";
      }
    }
    header.className = "WWW__HTML__CAccordionPage__header__CURRENT";

    var pages = object.getElementsByTagName("div");
    for (var i = 0; i < pages.length; i++) {
      if ((pages[i].className == "WWW__HTML__CAccordionPage__page__CURRENT") && (pages[i].id != page.id)) {
        __WWW__HTML__CAccordionPage__TransitionCollapse(pages[i].id, 0, step, pages[i].offsetHeight, delay, "WWW__HTML__CAccordionPage__page");
      }
    }

    __WWW__HTML__CAccordionPage__ExpandObject(page, step, delay, "WWW__HTML__CAccordionPage__page__CURRENT");

    result = true;
    break;
  }
  case "WWW__HTML__CAccordionPage__header__CURRENT" : {
    header.className = "WWW__HTML__CAccordionPage__header";

    __WWW__HTML__CAccordionPage__CollapseObject(page, step, delay, "WWW__HTML__CAccordionPage__page");

    result = false;
    break;
  }
  case "WWW__HTML__CAccordionPage__header__STATIC" : {
    break;
  }
  }

  return (result);
} // __WWW__HTML__CAccordionPage__Expand


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__CollapseObject(object, step, delay, c) {
  __WWW__HTML__CAccordionPage__SaveObjectSize(object);
  __WWW__HTML__CAccordionPage__TransitionCollapse(object.id, 0, step, __WWW__HTML__CAccordionPage__LoadObjectSize(object), delay, c);
} // __WWW__HTML__CAccordionPage__CollapseObject


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__ExpandObject(object, step, delay, c) {
  object.style.display = "block";
  __WWW__HTML__CAccordionPage__SaveObjectSize(object);
  __WWW__HTML__CAccordionPage__TransitionExpand(object.id, 0, step, __WWW__HTML__CAccordionPage__LoadObjectSize(object), delay, c);
} // __WWW__HTML__CAccordionPage__ExpandObject


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__LoadObjectSize(object) {
  var result = 0;

  var nodes = object.getElementsByTagName("div");
  var i = 0;
  do {
    if (nodes[i].className == "WWW__HTML__CAccordionPage__hidden") {
      result = nodes[i].innerHTML;
    }

    i = i + 1;
  } while ((i < nodes.length) && (result == 0));

  return (result); 
} __WWW__HTML__CAccordionPage__LoadObjectSize


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__SaveObjectSize(object) {
  if (object.innerHTML.search("WWW__HTML__CAccordionPage__hidden") == -1) {
    object.innerHTML = "<div class=\"WWW__HTML__CAccordionPage__hidden\">" + object.offsetHeight + "</div>" + object.innerHTML;
  }
} __WWW__HTML__CAccordionPage__SaveObjectSize


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__TransitionCollapse(object_id, current_step, max_step, height, delay, c) {
  object = document.getElementById(object_id);

  if (current_step < max_step) {
    object.style.height = height - ((current_step + 1) * (height / max_step));
    var timer = setTimeout("__WWW__HTML__CAccordionPage__TransitionCollapse('" + object.id + "', " + (current_step + 1) + ", " + max_step + ", " + height + ", " + delay + ", '" + c + "')", delay);
  } else {
    object.style.display = "none";
    object.style.height = height;
    object.className = c;
  }
} // __WWW__HTML__CAccordionPage__TransitionCollapse


/////////////////////////////////////////////////////////////////////////////
function __WWW__HTML__CAccordionPage__TransitionExpand(object_id, current_step, max_step, height, delay, c) {
  var object = document.getElementById(object_id);

  if (current_step < max_step) {
    object.style.height = (current_step + 1) * (height / max_step);
    var timer = setTimeout("__WWW__HTML__CAccordionPage__TransitionExpand('" + object.id + "', " + (current_step + 1) + ", " + max_step + ", " + height + ", " + delay + ", '" + c + "')", delay);
  } else {
    object.className = c;
  }
} // __WWW__HTML__CAccordionPage__TransitionExpand

