var offset =0;

function initGlossary()
{
	if(!document.getElementById || !document.getElementById('dl-glossary')) return;
	
	var dts = document.getElementById('dl-glossary').getElementsByTagName("dt");
	var dds = document.getElementById('dl-glossary').getElementsByTagName("dd");
	
	//for nav
	var prevletter = "";
	var curletter  = "";
	var newHTML    = "";
	var divider    = "";
	
	//back to top link
	var dd = document.createElement("dd");
	dd.innerHTML = '<p><br /><a href="#top">back to top</a><br /></p>';	

  	
	//loop over images
	for (var i = 0; i < dts.length; i++)
	{	
		
		curletter = dts[i].innerHTML.substring(0, 1).toLowerCase();
		dds[i+offset].className = "hidedl";
		
		//sometimes a <a> tag at start so we should get the text of that
		if(curletter == '<') 
		{
			curletter= dts[i].getElementsByTagName("a")[0].innerHTML.substring(0, 1).toLowerCase();
		}
		
		if((curletter != '<') && (curletter != prevletter))
		{
			newHTML += divider + '<a href="#' + curletter + '">' + curletter + '</a>';
			divider = ' | ';
			
			//dts[i].setAttribute('name', curletter);
			dts[i].innerHTML = '<a name="' + curletter + '"></a>' + dts[i].innerHTML;

			if(prevletter != '')
			{
				//add back to top link with new dd
				var dd2 = dd.cloneNode(true);	
				document.getElementById('dl-glossary').insertBefore(dd2,dts[i]);
				offset++;
			}
		}
		
			var go = i+offset;
			dds[go].setAttribute ('id','dd'+go);
			
			dts[i].setAttribute ('ddid','dd'+go);
			dts[i].innerHTML = dts[i].innerHTML + ' <a href="#" class="hs" onclick="return toggle_dd(\'dd'+go+'\',this)">&raquo;</a>';
            //on mouseover grab hsrc
            /*dts[i].onclick = function()
            {
            	var g = this.getAttribute ('ddid');
                toggle_dd(g);
                return false;
                //dds[eval(g)].className ='';
            }*/
            
		prevletter = curletter;
	}
	
	document.getElementById('glossary-nav').innerHTML = '<p>' + newHTML + '</p>';

}

function toggle_dd(dd_id,href)
{
	//alert(dd_id);
	if(!document.getElementById || !document.getElementById(dd_id)) return false;
	var dd_t = document.getElementById(dd_id);
        
        if (dd_t.className.match('hide'))
        {	
			dd_t.className = "";
			href.innerHTML = '&laquo;';
		}
		else
		{
			dd_t.className = "hidedl";
			href.innerHTML = '&raquo;';
		}
	return false;	
}
/** NOTHING OF INTEREST BEYOND HERE **/


function init() {
       // quit if this function has already been called
       if (arguments.callee.done) return;

       // flag this function so we don't do the same thing twice
       arguments.callee.done = true;

       // create the "page loaded" message
       //var text = document.createTextNode("Page loaded!");
       //var message = document.getElementById("message");
       //message.appendChild(text);
       initGlossary();
   };

   /* for Mozilla */
   if (document.addEventListener) {
       document.addEventListener("DOMContentLoaded", init, null);
   }

   /* for Internet Explorer */
   /*@cc_on @*/
   /*@if (@_win32)
   /* document.write("<script defer src=ie_onload.js><"+"/script>"); */
   /*@end @*/

   /* for other browsers */
   window.onload = init;
   
   
   
   
