var sDTAlpha_Over = "#ff8a00";
var sDTAlpha_Out = "#FFBB00";
var sDTNoAlpha_Over = "#ff8a00";
var sDTNoAlpha_Out = "#FFBB00";

var bOpenMultiple = false;
var open_dd = null;
function toggleTerm(object) {
	var object_id = object.id;
	var dd = document.getElementById("dd"+object_id.substring(2, object_id.length)); 
	if (dd.style.display == "list-item") {
		collapseItem(object, dd);
		if (dd == open_dd) open_dd = null;
	} else {
		openItem(object, dd);
		self.location = "#"+object_id.substring(2, object_id.length);
		open_dd = dd;
	}
	updateAllAction();
}

function collapseItem(oDT, oDD) {
	oDD.style.display = "none";
	var imgToSwap = "url(../images/values/arrow.gif)";
	oDT.style.backgroundImage = imgToSwap;
}

function openItem(oDT, oDD) {

	oDD.style.display = "list-item";
	var imgToSwap = "url(../images/values/arrow.gif)";
	oDT.style.backgroundImage = imgToSwap;
	if ((open_dd != null) && (!bOpenMultiple)) {
		open_dd.style.display = "none";
		var open_dd_id = open_dd.id;
		var oPreviousTerm = document.getElementById("dt"+open_dd_id.substring(2, open_dd_id.length));
		imgToSwap = "url(../images/values/arrow.gif)";
		oPreviousTerm.style.backgroundImage = imgToSwap;
	}
}

function rollOverTerm(object, bWithAlphabet) {
	object.style.cursor='pointer';
	changeTermColor(object, true, bWithAlphabet);
}

function rollOutTerm(object, bWithAlphabet) {
	changeTermColor(object, false, bWithAlphabet);
}

function openAllTerms() {
	bOpenMultiple = true;
	var aDT = document.getElementsByTagName("dt");
	for (var i=0; i<aDT.length; i++) {
		var sDTid = aDT[i].id;
		var oDD = document.getElementById("dd"+sDTid.substring(2, sDTid.length));
		openItem(aDT[i], oDD);
	}
	showAllAction("close");	
	document.getElementById("remark").style.display = "";
}

function collapseAllTerms() {
	bOpenMultiple = false;
	var aDT = document.getElementsByTagName("dt");
	for (var i=0; i<aDT.length; i++) {
		var sDTid = aDT[i].id;
		var oDD = document.getElementById("dd"+sDTid.substring(2, sDTid.length));
		collapseItem(aDT[i], oDD);
	}
	showAllAction("open");
	document.getElementById("remark").style.display = "none";
}

function updateAllAction() {
	var bAllClose = true;
	var bAllOpen = true;
	var bIsOpen = false;
	var aDD = document.getElementsByTagName("dd");
	for (var i=0; i<aDD.length; i++) {
		if (aDD[i].style.display == "list-item") {
			bAllClose = false;
			bIsOpen = true;
		}
		else bAllOpen = false;
	}
	if (bIsOpen) document.getElementById("remark").style.display = "";
	else document.getElementById("remark").style.display = "none";
	if (bAllOpen) showAllAction("close");
	else if (bAllClose) showAllAction("open");
}

function showAllAction(state) {  
	if (sLanguage == "bm"){
		sTonggleNameOpen = "buka semua"; 
		sTonggleNameClose = "tutup semua"; 
	}else{
		sTonggleNameOpen = "open all"; 
		sTonggleNameClose = "collapse all"; 
	}

	if (state == "open") {
		document.getElementById("tdToggleAll").innerHTML = "[<a href=\"javascript:openAllTerms();\">" + sTonggleNameOpen + "</a>]";
	} else {
		document.getElementById("tdToggleAll").innerHTML = "[<a href=\"javascript:collapseAllTerms();\">" + sTonggleNameClose + "</a>]";
	}
/*	if (state == "open") {
		document.getElementById("tdToggleAll").innerHTML = "[<a href=\"javascript:openAllTerms();\">buka semua</a>]";
	} else { 
		document.getElementById("tdToggleAll").innerHTML = "[<a href=\"javascript:collapseAllTerms();\">tutup semua</a>]";
	}*/
}

function changeTermColor(object, bRollover, bWithAlphabet) {
	if (bWithAlphabet) {
		if (bRollover) 	object.style.backgroundColor = sDTAlpha_Over;
		else 			object.style.backgroundColor = sDTAlpha_Out;
	} else {
		if (bRollover) 	object.style.backgroundColor = sDTNoAlpha_Over;
		else			object.style.backgroundColor = sDTNoAlpha_Out;
	}
}

function openDefaultTerm(object) {
	var object_id = object.id;
	var dd = document.getElementById("dd"+object_id.substring(2, object_id.length));
	if (dd.style.display == "list-item") {
		collapseItem(object, dd);
		if (dd == open_dd) open_dd = null;
	} else {
		openItem(object, dd);
		open_dd = dd;
	}
	updateAllAction();
}