

var interval = 1;
var increment = 20;


function toggle(container, contents)
{
  var viewbutton = "viewbutton" + container.replace(/[^0-9]/g , "");
  var closebutton = "closebutton" + container.replace(/[^0-9]/g , "");

  if (document.getElementById(container).className == "open" && parseInt(document.getElementById(container).style.height) > 1)
  {
    //is open - so close it
	document.getElementById(container).className = "close";
    document.getElementById(container).style.height = parseInt(document.getElementById(contents).offsetHeight) + "px";
	setTimeout("closeContents('" + container + "', 1)", interval);

    document.getElementById( viewbutton ).style.visibility = "visible";
    document.getElementById( viewbutton ).style.display = "block";
    document.getElementById( closebutton ).style.display = "none";

  }
  else
  {
    //is closed - so open it
	document.getElementById(container).className = "open";
	setTimeout("openContents('" + container + "'," + parseInt(document.getElementById(contents).offsetHeight+1) + ")", interval);

    document.getElementById( viewbutton ).style.visibility = "hidden";
    document.getElementById( viewbutton ).style.display = "none";
    document.getElementById( closebutton ).style.display = "block";


  }
}

function openContents(id, targetHeight)
{
  if (parseInt(document.getElementById(id).style.height) < targetHeight)
  {
    document.getElementById(id).style.height = (parseInt(document.getElementById(id).style.height) + increment) + "px";
    if (parseInt(document.getElementById(id).style.height) > targetHeight)
    {
      document.getElementById(id).style.height = targetHeight + "px";
    }

	if (document.getElementById(id).className == "open")
	{
	  setTimeout("openContents('" + id + "'," + targetHeight + ")", interval);
	}
  }
}

function closeContents(id, targetHeight)
{
  if (parseInt(document.getElementById(id).style.height) > targetHeight)
  {
    if (parseInt(document.getElementById(id).style.height) - increment >= 1)
    {
        document.getElementById(id).style.height = (parseInt(document.getElementById(id).style.height) - increment) + "px";
    }
    else
    {
        document.getElementById(id).style.height = "1px";
    }

	if (document.getElementById(id).className == "close")
	{
	  setTimeout("closeContents('" + id + "'," + targetHeight + ")", interval);
	}
  }
}



function tagReveal ()
{
  var divs = document.getElementsByTagName( 'div' );

  for ( i = 0; i < divs.length; i++ )
  {
    var thisDiv = divs[i];
    if ( thisDiv.className == 'reveal' )
	{
        thisDiv.style.clear = "both";

        var button = thisDiv.firstChild;
        thisDiv.removeChild( thisDiv.firstChild );
	    var existingContent = thisDiv.innerHTML;
		thisDiv.innerHTML = '<br />';

        var openSpan = document.createElement( 'span' );
        openSpan.id = 'viewbutton' + i;
        /*openSpan.appendChild( document.createTextNode( 'your text here' ) );*/

	    var anchor = document.createElement( 'a' );
        anchor.className = "revealbutton";
		anchor.href = '#';
		anchor.onclick = function() { toggle(this.nextSibling.id, this.nextSibling.firstChild.id); return false; }
		anchor.appendChild( button );
        anchor.appendChild( openSpan );

        var buttonClose = document.createElement( 'a' );
        buttonClose.id = 'closebutton' + i;
		buttonClose.href = '#';
		buttonClose.onclick = function() { toggle(this.parentNode.firstChild.nextSibling.id, this.parentNode.firstChild.nextSibling.firstChild.id); return false; }
        buttonClose.style.display = "none";
        buttonClose.style.textAlign = "right";
		buttonClose.style.textDecoration = "none";
		buttonClose.style.fontSize = "12px";
		buttonClose.style.fontWeight = "bold";
        buttonClose.appendChild( document.createTextNode( 'Close' ) );

		var outerDiv = document.createElement( 'div' );
		outerDiv.id = 'outer' + i;
		outerDiv.style.height = '1px';
        outerDiv.style.position = "relative";
        outerDiv.style.overflow = "hidden";

		var innerDiv = document.createElement( 'div' );
		innerDiv.id = 'inner' + i;
        innerDiv.style.position = "relative";
        innerDiv.style.marginTop = "1px";

		thisDiv.removeChild( thisDiv.firstChild );

		innerDiv.innerHTML =  existingContent;
		outerDiv.appendChild( innerDiv );
		thisDiv.appendChild( anchor );
		thisDiv.appendChild( outerDiv );
        thisDiv.appendChild( buttonClose );
	}
  }
}

addEvent( window, 'load', function() { tagReveal(); }, false );



