// constants/configuration
	var booFoldoutButton = true;
	var intPreviousButton = 0;
	var fltFade = 0.2;
	var arrValidRange = new Array();
	var intAllwaysOn = -1;
	
	// available styles
	var strLoClassTd = 'fbback0';
	var strLoClassTx = 'fbtext0';
	var strHiClassTd = 'fbback1';
	var strHiClassTx = 'fbtext1';


// primary functions - functionality


// secondary function - construction
	function getFoldoutButton(strTitle,intOpenId,intStyle,strUrl,strTarget){
		// constants
		var strEventClick = "";
		var strEventOver = "parent.imenuShouldOpen("+intOpenId+")";
		var strEventOut = "parent.imenuShouldClose()";
		var strUrl = DBarray[intOpenId][3];
		
		// graphical style
		if(intStyle==0){
			var strClassTd = strLoClassTd;
			var strClassTx = strLoClassTx;
		}else{
			intAllwaysOn = intOpenId;
			var strClassTd = strHiClassTd;
			var strClassTx = strHiClassTx;
		}
	
		// formulate button
		var strWrite = ''
			+'<table border="0" cellpadding="0" cellspacing="0" width="100%">'
			+'<tr valign="middle">'
				+'<td><img border="0" alt="" src="/images/spacing.gif" width="4" height="19"></td>'
				+'<td id="tdfold' + intOpenId + '" align="right" class="' + strClassTd + '" width="163" onmouseover="' + strEventOver + '" onmouseout="' + strEventOut + '" onclick="' + strEventClick + '">'
					+'<a id="txfold' + intOpenId + '" href="' + strUrl + '" class="' + strClassTx + '" onmouseover="' + strEventOver + '" onmouseout="' + strEventOut + '" target="' + strTarget + '">' + strTitle + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>'
				+'</td>'
			+'</tr>'
			+'</table>'
		
		// store it as a valid choice
		arrValidRange[arrValidRange.length] = intOpenId;
		
		// return the button
		return strWrite;
	}
	
	function setFoldoutButton(strTitle,intOpenId,intStyle,strUrl,strTarget){
		strButton = '';
		strButton = strButton + getFoldoutButton(strTitle,intOpenId,intStyle,strUrl,strTarget);
		document.writeln(strButton);
	}

// ternary function - operation 
	function redrawButtons(intId){
		if(intId>-1){
			// close the previous button
			if(intId!=intPreviousButton && intAllwaysOn!=intPreviousButton){
				if(isInArrayOrCSV(intPreviousButton,arrValidRange)){
					setClass('tdfold'+intPreviousButton,strLoClassTd,fltFade);
					setClass('txfold'+intPreviousButton,strLoClassTx,fltFade);
				}
			}
			// light up the new one
			if(isInArrayOrCSV(intId,arrValidRange)){
				setClass('tdfold'+intId,strHiClassTd,fltFade);
				setClass('txfold'+intId,strHiClassTx,fltFade);
			}
			// store the active button
			intPreviousButton = intId;
		}else{
			// setting all buttons back to normal will be needed
			if(isInArrayOrCSV(intPreviousButton,arrValidRange) && intAllwaysOn!=intPreviousButton){
				setClass('tdfold'+intPreviousButton,strLoClassTd,fltFade);
				setClass('txfold'+intPreviousButton,strLoClassTx,fltFade);
			}
		}
	}
	
	function setAlwaysOn(intId){
		if(intAllwaysOn!=intId){
			intAllwaysOn = intId;
			// everything off
			for(var intA=0; intA<arrValidRange.length; intA++){
				setClass('tdfold'+arrValidRange[intA],strLoClassTd,fltFade);
				setClass('txfold'+arrValidRange[intA],strLoClassTx,fltFade);
			}
			// new one on
			redrawButtons(intId);
		}
	}
	
	function getButtonsId(){
		return intAllwaysOn;
	}

// executed inline
	var inits = 1;
