// collapsing divs

var startClosedDefault = false;
var openSign = "+";
var closeSign = "_";
var cdivAutoIdx = 0;

// determine current state and toggle it
function cdiv_toggle(divid) {
	var contentObj, toggleObj;
	var contentID = "d_" + divid + "content";
	var toggleID = "d_" + divid + "toggle";

	contentObj = document.getElementById(contentID);
	toggleObj = document.getElementById(toggleID);

	if( contentObj.style.display == "none" ) {
		contentObj.style.display = "";
		toggleObj.value = closeSign;
	} else {
		contentObj.style.display = "none";
		toggleObj.value = openSign;
	}
}

function cdiv_open(divid) {
	var contentObj, toggleObj;
	var contentID = "d_" + divid + "content";
	var toggleID = "d_" + divid + "toggle";

	contentObj = document.getElementById(contentID);
	toggleObj = document.getElementById(toggleID);

	contentObj.style.display = "";
	toggleObj.value = closeSign;
}

function cdiv_close(divid) {
	var contentObj, toggleObj;
	var contentID = "d_" + divid + "content";
	var toggleID = "d_" + divid + "toggle";

	contentObj = document.getElementById(contentID);
	toggleObj = document.getElementById(toggleID);

	contentObj.style.display = "none";
	toggleObj.value = openSign;
}

function start_cdiv(hdrtxt,divid,override,hdrcolor,contentcolor) {
	// set defaults for parameters
	var ht, dd, sc, hc, cc;
	if( ! divid ) {
		dd = "cdiv_" + cdivAutoIdx;
		cdivAutoIdx++;
	} else {
		dd = divid;
	}
	if( ! hdrtxt ) ht = dd; else ht = hdrtxt;
	if( override ) sc = ! startClosedDefault; else sc = startClosedDefault;
	if( ! hdrcolor ) hc = "#00ff00"; else hc = hdrcolor;
	if( ! contentcolor ) cc = ""; else cc = contentcolor;

	var cdivStr = "";

/* 10/20/06 - try to make the bar full width under Firefox
	// open the header span
	cdivStr += "<nobr>";	// force button and heading on same line
	cdivStr += "<span class='heading' ";
	// set overall style for the header span
	cdivStr += " style=\"";
	cdivStr += "background-color : " + hc + ";";
	cdivStr += " font-size : medium;";
	cdivStr += "\">";	// close the style and the span tag

	// add the toggle button
	cdivStr += "<input type='button' id='d_" + dd + "toggle' ";
	cdivStr += "onclick = \"cdiv_toggle('" + dd + "');\" value='";
	cdivStr += (sc ? openSign : closeSign);
	cdivStr += "' /> ";

	// add header text, with an anchor
	cdivStr += "<span";
	cdivStr += " style=\"";
	cdivStr += " width : 96%;";
	cdivStr += " text-align : center;";
	cdivStr += " padding-bottom : 4px;";
	cdivStr += "\">";	// close the style and the span tag

	cdivStr += "<a name='" + dd + "'></a>";
	cdivStr += ht;
	// close the header text span and the header span
	cdivStr += "</span></span>";
	cdivStr += "</nobr>";
*/

	cdivStr += "<table border='0' cellspacing='0' cellpadding='0' width='100%' ><tr>";
	cdivStr += "<td width='5%' ";
	cdivStr += " style=\" text-align : left; ";
	cdivStr += "background-color : " + hc + ";";
	cdivStr += " font-size : medium; \" >";
	// add the toggle button
	cdivStr += "<input type='button' id='d_" + dd + "toggle' ";
	cdivStr += "onclick = \"cdiv_toggle('" + dd + "');\" value='";
	cdivStr += (sc ? openSign : closeSign);
	cdivStr += "' /></td>";

	// add header text, with an anchor
	cdivStr += "<td style='text-align : center; font-size : large; color : #ffffff; "
	cdivStr += "background-color : " + hc + "; ' >";
	cdivStr += "<a name='" + dd + "'></a>";
	cdivStr += ht;
	cdivStr += "</td></tr></table>";

	// open the content div
	cdivStr += "<div class='cdiv' id='d_" + dd + "content'";
	cdivStr += " style=\"";
	cdivStr += "background-color : " + cc + ";";
	cdivStr += " display : '";
	cdivStr += (sc ? "none';" : "';");
	cdivStr += "\">";	// close the style and the tag

	document.write(cdivStr);
}

function end_cdiv(rule) {
	if( rule )
		document.write("<hr style=\"clear : both;\" />");
	document.write("<p style=\"clear : both;\" />");
	// close the content div
	document.write("</div>");
}

function cdiv_openAll() {
	cdiv_affectAll(false);
}

function cdiv_closeAll() {
	cdiv_affectAll(true);
}

function cdiv_affectAll(closeThem) {
	// alert("affectAll " + closeThem + "; browser is " + navigator.appName );

	var divColl = document.getElementsByTagName("div");
	var el;
	var alertStr = "cdivs:\n";
	var idstr, dividStr;

        for ( var i=0; i < divColl.length; i++) {
		el = divColl[i];
		if (el.className != "cdiv") continue;
		// we've found a div with id "d_somethingcontent"
		// isolate the something part and then call the apropos function
		idstr = el.id;
		endIdx = idstr.lastIndexOf("content");
		dividStr = idstr.substring(2,endIdx);
		alertStr += dividStr + "\n";
		if( closeThem) cdiv_close(dividStr); else cdiv_open(dividStr);
	}
	// alert(alertStr);
}

function cdiv_listAll() {
	var divColl = document.getElementsByTagName("div");
	var el;
	var alertStr = "";
	var idstr, dividStr;

        for ( var i=0; i < divColl.length; i++) {
		el = divColl[i];
		if (el.className != "cdiv") continue;
		// we've found a div with id "d_somethingcontent"
		// isolate the something part and accumulate cdiv names
		idstr = el.id;
		endIdx = idstr.lastIndexOf("content");
		dividStr = idstr.substring(2,endIdx);
		alertStr += dividStr + "\n";
	}
	alert(alertStr);
}



