 
function getSearchHistSearchExpr() {

	var frm, element, x;
	frm = document.frmSearchBrowseResults;
	var arrNewSearchExpr = new Array();
	x = 0;
	for ( var i=0; i < frm.elements.length; i++ ) {
		element = frm.elements[i];
		if ( element.type == "checkbox" && element.name == "shi" && element.checked && element.value != '' ) {
			arrNewSearchExpr[x++] = element.value;
		}
	}
	if (x > 0) { // we have at least one checkbox selected
		var objFindBox;
		if ( frm.ss0 )
			objFindBox = frm.ss0;
		else
			objFindBox = frm.ss;
		
		if (objFindBox) {
			
			var shOldSearch = objFindBox.value;
			var shBoolOp = frm.sho.options[frm.sho.selectedIndex].value;
			var shResultSearch;
			

			if (x == 1) {
				shResultSearch = buildSearchExpression ( shOldSearch, arrNewSearchExpr, shBoolOp, shBoolOp );
			}
			else {
				shResultSearch = buildSearchExpression ( shOldSearch, arrNewSearchExpr, "AND", shBoolOp );
			}
			if ( shResultSearch != '' ) 
				updateFindBox( shResultSearch, objFindBox );			
		}
	}
	
	for ( i=0; i < frm.elements.length; i++ ) {
		element = frm.elements[i];
		if ( element.type == "checkbox" && element.name == "shi" ) {
			element.checked = false;
		}
	}
	
	return false;
}


function buildSearchExpression( strOriginalSearch, arrNewSearchTerms, strOperatorForOriginal, strOperatorForNew )
{
		var strNewSearch, strNewTerm, strAllSearch;
		
		if ( isBlank( strOriginalSearch ) ) strOriginalSearch = '';
			
		strNewSearch = arrNewSearchTerms[0];
		
		for ( var i=1; i < arrNewSearchTerms.length; i++ ) {
			strNewSearch = strNewSearch + " " + strOperatorForNew + " " + arrNewSearchTerms[i];
		}
			
		if ( strNewSearch != '' ) {
			if ( strOriginalSearch != '' ) {
				strAllSearch = "(" + strOriginalSearch + ") ";
				strAllSearch += strOperatorForOriginal + " (" + strNewSearch + ")"
			}
			else {
				strAllSearch = strNewSearch;
			}
		}
		return strAllSearch;
}

function isBlank( s )
{
	for( var i = 0; i < s.length; i++ ) {
		var c = s.charAt( i );
		if ( (c != ' ') && (c != '\n') && (c != '\t') )
			return false;
	}
	return true;
}

function updateFindBox( strSearchString, objFindBox ) {

	
	
		
	objFindBox.value = strSearchString;
		
}