function HiliteSet(item) {
    var sClass = item.className;
    
    //add support for multiple classes per tag
    var aClass = sClass.split(" ");
    
    //check if class name already ends in "_hil" -- if so, quit function
    if (IsHilited(item)) return
    
    // change each of the element's class names for highlighting
    sClass = "";
    for (var i=0; i<aClass.length; i++) {
		sClass += aClass[i]+"_hil";
		if (i<aClass.length-1) {
			sClass += " ";
		}
    }
	item.className = sClass;
}
SxSet = HiliteSet;


function HiliteRestore(item) {
    var sClass = item.className;
    
    //add support for multiple classes per tag
    var aClass = sClass.split(" ");
    
    //check if class name ends in "_hil" -- if not, quit function
    if (!IsHilited(item)) return;
    
    // remove "_hil" from the end of each of the element's class names
    sClass = "";
    for (var i=0; i<aClass.length; i++) {
		sClass += aClass[i].substring(0,(aClass[i].length - 4));
		if (i<aClass.length-1) {
			sClass += " ";
		}
    }

	item.className = sClass;
}
SxRes = HiliteRestore;


function ToggleSelect(item) {
    var sClass = item.className;
    
    //add support for multiple classes per tag
    var aClass = sClass.split(" ");
    
    //check if class name already contains "_hil" and/or "_sel"
    var isHilited = IsHilited(item);
    var isSelected = IsSelected(item);
    
    // change each of the element's class names for selecting
    sClass = "";
    for (var i=0; i<aClass.length; i++) {
		//strip off "_hil" and/or "_sel"
		if (isHilited) {
			aClass[i] = aClass[i].substring(0,(aClass[i].length - 4));
		}
		if (isSelected) {
			aClass[i] = aClass[i].substring(0,(aClass[i].length - 4));
		}
		
		//add back "_hil and/or "_sel"
		if (!isSelected) {
			aClass[i] = aClass[i] + "_sel";
		}
		if (isHilited) {
			aClass[i] = aClass[i] + "_hil";
		}
		
		//concatenate onto list of classes
		sClass += aClass[i];
		if (i<aClass.length-1) {
			sClass += " ";
		}
    }
	item.className = sClass;
}


function IsHilited(item) {
    // this function checks whether a class name contains "_hil"
    if (item.className.indexOf("_hil") > -1) {
        return true;
    }
    return false;
}

function IsSelected(item) {
    // this function checks whether a class name contains in "_sel"
    if (item.className.indexOf("_sel") > -1) {
        return true;
    }
    return false;
}