//
//// Javscript code for PanPage websites
//   v2.11, (C) Abbeydale.Net 2009-2011
//   this file loads at the end of the body section
//
// javascript for PanPage folding items...
// version 1.01, (C) Abbeydale.Net 2011
//
var sFoldItemClass = 'pp_itemFold';
var sFoldClass     = 'pp_Fold';
// get the natural height of the objects we'll be folding...
var objHgts = new Object();
// get folding elements and their heights
// and set them all to not displayed...
var arrEls = document.getElementsByTagName('*');
for (var i = 0; i < arrEls.length; i++)
  {
  if (arrEls[i].className.indexOf(sFoldItemClass) > -1)
    {
    var arrFolds = arrEls[i].getElementsByTagName('div');
    for (var j = 0; j < arrFolds.length; j++)
      {
      if (arrFolds[j].className == sFoldClass)
        {
        objHgts[arrEls[i].id] = arrFolds[j].offsetHeight;
        arrFolds[j].style.height = 0;
        }
      }
    }
  }

function fold(sItemID)
  {
  //alert("fold(" + sItemID + ")");
  elItem = document.getElementById(sItemID);
  var arrFolds = elItem.getElementsByTagName('div');
  for (var j = 0; j < arrFolds.length; j++)
    if (arrFolds[j].className == sFoldClass)
      doFold(arrFolds[j], objHgts[elItem.id], arrFolds[j].offsetHeight == 0 ? 1 : -1);
  }

function doFold(elFold, maxHgt, show)
  {
  var increment = 5;  // percent
  var delta = increment / 100 * maxHgt;
  if (delta < 1.0)
    delta = 1;
  var newHgt = elFold.offsetHeight + delta * show;
  if (show > 0)
    {
    if (newHgt > maxHgt)
      newHgt = maxHgt;
    }
  else
    {
    if (newHgt < 0)
      newHgt = 0;
    }
  elFold.style.height = newHgt + "px";
  if ((show > 0 && elFold.offsetHeight < maxHgt) || (show < 0 && elFold.offsetHeight > 0))
    setTimeout(function(){ doFold(elFold, maxHgt, show); elItem = null; elFold = null; show = null; }, 10);
  }  
    
//// end of file ////  
