/*******************************************************

          DHTML Link Tree, by Thomas Russell

          http://users.bigpond.net.au/tamago/

********************************************************/


preload('linksInfo.gif','linksInfoOn.gif','linksClose.gif','linksCloseOn.gif','folderOpen.gif')

function toggle(num,showArg){
	window.focus()

	var oSynopsis = document.getElementById('synopsis' + num)
	var oLink = document.getElementById('link' + num)

	show = (arguments.length == 1) ? (oLink.style.display != 'block') : showArg

	if(oSynopsis){
		oSynopsis.style.display = (show) ? 'block' : 'none'
		}
	oLink.style.display = (show) ? 'block' : 'none'

	document.getElementById('togImg' + num).alt = (show) ?  '[Collapse]' : '[Expand]'
	document.getElementById('togImg' + num).src = (show) ?  'linksClose.gif' : 'linksInfo.gif'
	}

function expand_all(){
	if(!window.numOfLinks){
		return(void(0))
		}

	for(var i = 1; i <= numOfFolders; i ++){
		toggleFolder(i,1)
		}
	}

function really_expand_all(){
	if(!window.numOfLinks){
		return(void(0))
		}

	for(var i = 1; i <= numOfLinks; i ++){
		toggle(i,1)
		}

	for(var i = 1; i <= numOfFolders; i ++){
		toggleFolder(i,1)
		}
	}

function collapse_all(){
	if(!window.numOfLinks){
		return(void(0))
		}

	for(var i = 1; i <= numOfLinks; i ++){
		toggle(i,0)
		}

	for(var i = 1; i <= numOfFolders; i ++){
		toggleFolder(i,0)
		}
	}

function toggleFolder(num,show){

	toggler = document.getElementById('folder' + num).style

	if(arguments.length == 1){
		show = (toggler.display == 'none')
		}

	toggler.display = (show) ? 'block' : 'none'

	document.getElementById('fo' + num).src = (show) ? 'folderOpen.gif' : 'folderClosed.gif' 
	document.getElementById('fo' + num).alt = (show) ? '[Collapse]' : '[Expand]'
	}

function checkWindow(source){
	box = document.getElementById('newWindow')
	if(box && box.checked){
		window.open(source.href)
		return(false)
		}
	}

function init(){
	bqs = document.getElementsByTagName('blockquote')

	for(var i = 0; i < bqs.length; i ++){
		var aposImg1 = document.createElement('img')
		var aposImg2 = document.createElement('img')
		var aposTD1 = document.createElement('td')
		var aposTD2 = document.createElement('td')
		var aposTD3 = document.createElement('td')
		var aposTR = document.createElement('tr')
		var aposTBody = document.createElement('tbody')
		var aposTable = document.createElement('table')

		aposImg1.src = 'speechMarks.gif'
		aposImg1.alt = 'Speech marks'
		aposImg1.style.height = '13px'
		aposImg1.style.width = '17px'

		aposImg2.src = 'speechMarks2.gif'
		aposImg2.alt = 'Speech marks'
		aposImg2.style.height = '13px'
		aposImg2.style.width = '17px'

		aposTD1.style.width = '20px'
		aposTD1.style.paddingRight = '3px'
		aposTD1.style.paddingTop = '10px'

		aposTD3.style.width = '20px'
		aposTD3.style.paddingLeft = '3px'
		aposTD3.style.paddingBottom = '10px'
		aposTD3.style.verticalAlign = 'bottom'

		aposTable.cellSpacing = '0'
		aposTable.style.borderSpacing = '0px'

		aposTD1.appendChild(aposImg1)

		while(bqs[i].childNodes.length > 0){
			var orphan = bqs[i].removeChild(bqs[i].childNodes[bqs[i].childNodes.length - 1])

			aposTD2.appendChild(orphan)
			}

		aposTD3.appendChild(aposImg2)
		aposTR.appendChild(aposTD1)
		aposTR.appendChild(aposTD2)
		aposTR.appendChild(aposTD3)
		aposTBody.appendChild(aposTR)
		aposTable.appendChild(aposTBody)

		bqs[i].appendChild(aposTable)
		}

	var divs = document.getElementsByTagName('div')

	showInfo = document.getElementById('noShow') ? false : true

	numOfLinks = 0
	numOfFolders = 0
	firstDiv = 1

	for(i = 0; i < divs.length; i ++){
		if(divs[i].className == 'folder'){
			if(firstDiv){
				infP = document.createElement('p')
				infP.appendChild(document.createTextNode('Click the '))

				var oImg = document.createElement('img')
				oImg.src = 'folderClosed.gif'
				oImg.style.height = '20px'
				oImg.style.position = 'relative'
				oImg.style.top = '5px'
				oImg.style.width = '20px'
				oImg.alt = '[Closed folder]'
				infP.appendChild(oImg)

				infP.appendChild(document.createTextNode(' to expand a branch.'))

				infP.appendChild(document.createTextNode(' For a brief synopsis of the contents of the link, click the '))

				var oImg = document.createElement('img')
				oImg.src = 'linksInfo.gif'
				oImg.style.height = '12px'
				oImg.style.marginTop = '3px'
				oImg.style.position = 'relative'
				oImg.style.top = '1px'
				oImg.style.width = '12px'
				oImg.alt = '[Info]'

				infP.appendChild(oImg)

				infP.appendChild(document.createTextNode(' image. To open all links in new windows, click here: '))

				var oiInput1 = document.createElement('input')
				oiInput1.type = 'checkbox'
				oiInput1.style.verticalAlign = 'middle'
				oiInput1.id = 'newWindow'

				infP.appendChild(oiInput1)

				var linksDiv = document.createElement('div')
				linksDiv.className = 'topLinks'

				var exLink = document.createElement('a')
				exLink.href = 'javascript:expand_all()'
				exLink.title = 'Expand all folders'

				var exLinkContent = document.createTextNode('Expand folders')
				exLink.appendChild(exLinkContent)

				var exLink1 = document.createElement('a')
				exLink1.href = 'javascript:really_expand_all()'
				exLink1.title = 'Expand everything, including the synopses'

				var exLinkContent1 = document.createTextNode('Expand all')
				exLink1.appendChild(exLinkContent1)

				var exLink2 = document.createElement('a')
				exLink2.href = 'javascript:collapse_all()'
				exLink2.title = 'Collapse all'

				var exLink2Content = document.createTextNode('Collapse all')
				exLink2.appendChild(exLink2Content)

				linksDiv.appendChild(document.createTextNode('[ '))
				linksDiv.appendChild(exLink)
				linksDiv.appendChild(document.createTextNode(' ] [ '))
				linksDiv.appendChild(exLink1)
				linksDiv.appendChild(document.createTextNode(' ] [ '))
				linksDiv.appendChild(exLink2)
				linksDiv.appendChild(document.createTextNode(' ]'))

				divs[i].parentNode.insertBefore(infP,divs[i])
				divs[i].parentNode.insertBefore(linksDiv,divs[i])

				i ++

				var theFirst = divs[i]
				firstDiv = 0
				}

			numOfFolders ++

			theH2 = divs[i].getElementsByTagName('h2')[0]
			theH2.style.margin = '0px'

			var fo = document.createElement('img')

			fo.src = 'folderClosed.gif'
			fo.style.width = '20px'
			fo.style.height = '20px'
			fo.style.verticalAlign = 'middle'
			fo.alt = '[Expand]'
			fo.id = 'fo' + numOfFolders

			var foA = document.createElement('a')
			foA.href = 'javascript:toggleFolder(' + (numOfFolders) + ')'
			foA.style.marginRight = '10px'

			foA.appendChild(fo)
			theH2.insertBefore(foA,theH2.childNodes[0])

			divs[i].id = 'folder' + numOfFolders
			divs[i].style.display = 'none'
			divs[i].parentNode.insertBefore(theH2,divs[i])
			}

		if(divs[i].className == 'linkSet'){
			++ numOfLinks
			divs[i].style.paddingLeft = '0px'
			divs[i].style.display = 'block'
			}

		if(divs[i].className == 'linkTitle'){
			divs[i].style.textDecoration = 'none'
			divs[i].style.margin = '0px'

			var currTtl = divs[i].childNodes[0].nodeValue
			var addStuff = divs[i]

			var imgImg = document.createElement('img')
			imgImg.alt = '[Web page]'
			imgImg.src = 'htmlFile.gif'
			imgImg.style.height = '20px'
			imgImg.style.width = '20px'
			imgImg.style.verticalAlign = 'middle'
			imgImg.style.marginRight = '10px'

			divs[i].insertBefore(imgImg,divs[i].childNodes[0])

			moreImgA = document.createElement('a')
			moreImgA.href = 'javascript:toggle(' + numOfLinks + ')'
			moreImgA.style.marginLeft = '10px'

			infImg = document.createElement('img')
			infImg.src = 'linksInfo.gif'
			infImg.alt = '[Info]'
			infImg.id = 'togImg' + numOfLinks
			infImg.style.height = '12px'
			infImg.style.width = '12px'
			infImg.style.verticalAlign = 'middle'
			infImg.onmouseover = function(){
				this.src = (this.src.indexOf('linksInfo') != -1) ? 'linksInfoOn.gif' : 'linksCloseOn.gif'
				}
			infImg.onmouseout = function(){
				this.src = (this.src.indexOf('linksInfo') != -1) ? 'linksInfo.gif' : 'linksClose.gif'
				}
	
			moreImgA.appendChild(infImg)

			divs[i].appendChild(moreImgA)
			}

		if(divs[i].className == 'linkHref'){
			divs[i].className += ' lightBg'
			divs[i].style.fontStyle = 'normal'

			var tempA = document.createElement('a')
			tempA.href = divs[i].childNodes[0].nodeValue
			tempA.title = currTtl

			var tempA2 = document.createElement('a')
			tempA2.href = divs[i].childNodes[0].nodeValue
			tempA2.title = currTtl

			var orphan1 = addStuff.removeChild(addStuff.childNodes[0])
			var orphan2 = addStuff.removeChild(addStuff.childNodes[0])
			var orphan3 = addStuff.removeChild(addStuff.childNodes[0])


			addStuff.appendChild(orphan1)
			tempA2.appendChild(orphan2)
			addStuff.appendChild(tempA2)
			addStuff.appendChild(orphan3)

			var orphan4 = divs[i].removeChild(divs[i].childNodes[0])

			if(orphan4.nodeValue.length > 50){
				orphan4.nodeValue = orphan4.nodeValue.substring(0,47) + '...'
				}

			tempA.appendChild(orphan4)

			divs[i].appendChild(document.createTextNode('URL: '))
			divs[i].appendChild(tempA)

			divs[i].id = 'link' + numOfLinks
			divs[i].style.display = 'none'
			}

		if(divs[i].className == 'linkSynopsis'){
			divs[i].className += ' lightBg'
			divs[i].id = 'synopsis' + numOfLinks
			divs[i].style.display = 'none'
			}
		}

	myLinks = theFirst.getElementsByTagName('a')

	for(j = 0; j < myLinks.length; j ++){
		if(myLinks[j].href.indexOf('javascript:') == -1){
			myLinks[j].onclick = function(){
				return(checkWindow(this))
				}
			}
		}
	}

window.onload = init
