var dynamicID	= 0;

function toggleAppendLinks ( $objAppend, $objRef )
{
	var tID	= $objRef.id.toString ( );
	var spans	= $objAppend.getElementsByTagName ( 'span' )
	var rE	= new RegExp ( '(^| )jsToggle( |$)' );

	for ( var i in spans )
	{
		var ref = spans [ i ]

		if ( rE.test ( ref.className ) )
		{
			var o		= document.createElement ( "a" )
			o.id		= ref.id
			o.className = ref.className
			o.href	= '#' + tID
			o.innerHTML	= ref.innerHTML
			o.onclick	= function ( ) { toggle ( this ); return false; }

			if (hasClass(ref,'jsToggle')) {
				ref.parentNode.replaceChild ( o, ref );
			}
		}
	}
}

function toggle ( $obj  )
{
	var targ	= $obj.href.split('#')[1]
	var ref	= document.getElementById ( targ )

	if ( ref )
	{
		var rE	= new RegExp ( '(^| )jsToggleOpen( |$)' );

		if ( rE.test ( ref.className ) )
		{
			ref.className = ref.className.toString( ).replace ( 'jsToggleOpen', 'jsToggleClosed' );
		} else
		{
			ref.className = ref.className.toString( ).replace ( 'jsToggleClosed', 'jsToggleOpen' )
		}
	}
}

function toggleDiv ( )
{;
	var divs	= getElementsByClassName (document, 'div', 'jsCollapsor')
	var rEOpen	= new RegExp ( '(^| )jsOpen( |$)' );

	for ( var i in divs )
	{
		var ref	= divs [ i ]
		var id	= ref.id || 'jsId' + ( dynamicID++ )

		ref.id	= id

		if ( rEOpen.test ( ref.className ) )
		{
			ref.className	= ref.className.toString( ).replace ( 'jsOpen', 'jsToggleOpen' )
		} else
		{
			ref.className	+= ' jsToggleClosed'
		}

		toggleAppendLinks ( ref, ref );
	}
}

function initialiseCollapse() {
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	toggleDiv ();
}

addLoadEvent(initialiseCollapse);