function squeezeTrapClicks(theSqueezeBox) {
    for (var thisRowNum in theSqueezeBox.childNodes) {
	var thisPart = theSqueezeBox.childNodes[thisRowNum]
	if (thisPart.className == 'squeezeHeaderParaOpen') {
	    var nextPart = thisPart.nextSibling
	    if (usingIE()) {
		thisPart.onclick = squeezeClickOnHeaderPara
		nextPart.onclick = squeezeClickOnContentPara
	    } else {
		thisPart.addEventListener("click", squeezeClickOnHeaderPara, false)
		nextPart.addEventListener("click", squeezeClickOnContentPara, false)
	    }
//	    squeezeClose(thisPart)
//	    squeezeOpen(thisPart)
	}
    }
}

function squeezeClickOnHeaderPara(theEvent) {
    var theHeaderPart = getCurrentTarget(theEvent)
    if (theHeaderPart.className == 'squeezeHeaderParaOpen') {
	squeezeClose(theHeaderPart)
    } else {
	squeezeOpen(theHeaderPart)
    }
}

function squeezeClickOnContentPara(theEvent) {
    var theContentPart = getCurrentTarget(theEvent)
    var theHeaderPart = theContentPart.previousSibling
    if (theHeaderPart.className == 'squeezeHeaderParaOpen') {
//	squeezeClose(theHeaderPart)
    } else {
	squeezeOpen(theHeaderPart)
    }
}

function squeezeOpen(headerPart) {
    var contentPart = headerPart.nextSibling
    var currentClass = contentPart.className
    var newHeaderText = '▼' + headerPart.innerHTML.substr(1)
	headerPart.className = 'squeezeHeaderParaOpen'
	headerPart.title = 'Click to collapse this section'
	contentPart.className = 'squeezeContentDivOpen'
	contentPart.title = ''
    headerPart.innerHTML = newHeaderText

	squeezeCloseEverythingBut(headerPart)
}

function squeezeClose(headerPart) {
    var contentPart = headerPart.nextSibling
    var currentClass = contentPart.className
    var newHeaderText = '▶' + headerPart.innerHTML.substr(1)
	headerPart.className = 'squeezeHeaderParaClosed'
	headerPart.title = 'Click to expand this section'
	contentPart.className = 'squeezeContentDivClosed'
	contentPart.title = 'Click to expand this section'

    headerPart.innerHTML = newHeaderText
}

function squeezeCloseEverythingBut(headerPart) {
    var theSqueezeBox = headerPart.parentNode
    for (var thisRowNum in theSqueezeBox.childNodes) {
	var thisPart = theSqueezeBox.childNodes[thisRowNum]
	if ((thisPart.className == 'squeezeHeaderParaOpen') && (thisPart != headerPart)) {
	    squeezeClose(thisPart)
	}
    }
}
