/**** MUTATIONS_LIST ******************* */

var pulldown_empty_value = '---';

// INITIALIZERS 

function initialize_pulldown_events() {
	selects = get_pulldown_selects('table_reverset');
	selects.each(function(item) { 
		item.observe('change', pullDownOnChange);
	});
	
	selects = get_pulldown_selects('table_protease');
	selects.each(function(item) { 
		item.observe('change', pullDownOnChange);
	});
}

// EVENTS

function pullDownOnChange(event) {
	e = event.element();
	// trova la prima tabella tra i genitori
	pt = get_parent_table(e);
	values = get_pulldown_values(pt.id);
	textarea_id = pt.id.gsub('table_', '') + '_textarea';
	$(textarea_id).value = format_select_values(values);
}

// FUNCTIONS 

function format_select_values(values) {
	s = new Array(); 
	values.each(function(pair) {
		i = s.size(); 
		// s[i] = pair.key + "_" + pair.value.toUpperCase(); 
		// s[i] = pair.key + "" + pair.value.toUpperCase(); 
		s[i] = pair.key + "" + pair.value;
	});
	// return s.join(', ');
	return s.join(' ');
}

function get_parent_table(e) {
	// e = $(eid);
	pt = new Array(); 
	e.ancestors().each(function(item) {
		if (item.tagName=='TABLE') {
			i=pt.size(); 
			pt[i] =item; 
		}
	});
	return pt[0];
}

function reset_pulldown_form(table_id) {
	selects = get_pulldown_selects(table_id);

	selects.each(function(item) {
		item.value = pulldown_empty_value;
	}); 
	textarea_id = table_id.gsub('table_', '') + '_textarea';
	$(textarea_id).value = '';
}

function get_pulldown_selects(table_id) {
	selects = new Array(); 
    if($(table_id)) {
        $(table_id).descendants().each(function(item) {
        	if (item.tagName== 'SELECT') {
        		i=selects.size(); 
        		selects[i] = item;
        	}
        });
    }
    return selects;
} 	

function get_pulldown_values(table_id) {
	selects = get_pulldown_selects(table_id);
	pulldown_result = new Hash();
	selects.each(function(item) {
		if (item.value != pulldown_empty_value)	{
			label = item.up().previous().innerHTML; 
			label = label.gsub(' ', '');
			pulldown_result.set(label, item.value);
		}
	}); 
	return pulldown_result;
}

/******************************************************/