function set_mouse_over( p_div ) {
	
	// if div is not currently selected
	if ( !p_div.selected ) {
	
		// make temporary backup of div's current state
		p_div.reg_state	= p_div.className;
		
		// change div to rollover state
		p_div.className	= 'hover';
	}
	
	// change mouse cursor to hand
	p_div.style.cursor='pointer'; 
	p_div.style.cursor='hand';
}

function set_mouse_out( p_div ) {
	
	// if div is currently selected, leave selected
	if ( p_div.selected )
		p_div.className	= 'selected';
	
	// re-set div's class to backup state
	else
		p_div.className	= p_div.reg_state;
}

function set_mouse_down( p_div, p_name, p_select_id, p_select_array, p_delimiter ) {
	var selected_string	= '';
	
	// if div is not currently selected, change to selected
	if ( p_div.className	!= 'selected' ) {
		p_div.className	= 'selected';
		
		// mark div as currently selected
		p_div.selected	= true;
		
		// append contents to selected array
		p_select_array[ p_name ] = true;
	
	// if div is alread selected, change back to default state
	} else {
		p_div.className	= p_div.reg_state;
		
		// mark div as deselected
		p_div.selected	= false;
		
		// remove contents from selected array
		p_select_array[ p_name ] = false;
	}

	// concat all selected fields
	for( var name in p_select_array )
		if ( p_select_array[ name ] ) {
			selected_string	+= name + p_delimiter;
		}
		
	// make sure that field contains no (empty) trailing delimiter(s)
	if ( selected_string != ''	 )
		while( selected_string.substr( ( selected_string.length - p_delimiter.length ) ) == p_delimiter )
			selected_string	= selected_string.substr( 0, ( selected_string.length - p_delimiter.length ) );
			
	// update div tag with selected field values
	document.getElementById( p_select_id ).value = selected_string;
}
	
function remove_item ( p_array, p_item ) {
	
	// walk through each item in array
	for ( var i = 0; i < p_array.length; i++ )
	
		// if current item is same as specified item, return its position
		if ( p_item == p_array[ i ] )
			return i;
}