function step3_update_summary() {
	var summary_buffer = new Array(
			'tab1' : new Array(
				'step3_enrollment' : '',
				'step3_subjects' : '',
				'step3_majors' : ''),
			'tab2' : new Array(
				'step3_type' : '',
				'step3_length' : '',
				'step3_size' : '',
				'step3_ethnicity' : '',
				'step3_gender' : ''),
			'tab3' : new Array(
				'step3_states' : ''),
			'tab4' : new Array(
				'step3_acceptance' : '',
				'step3_aid' : '',
				'step3_tuition' : ''),
			'tab5' : new Array(
				'step3_studentorganizations' : '',
				'step3_sports' : ''));
	
	function do_update() {
		var tab1_summary = summary_buffer['tab1']['step3_enrollment'];
		tab1_summary += empty(tab1_summary) ? summary_buffer['tab1']['step3_subjects'] : '  ' + summary_buffer['tab1']['step3_subjects'];
		tab1_summary += empty(tab1_summary) ? summary_buffer['tab1']['step3_majors'] : '  ' + summary_buffer['tab1']['step3_majors'];
		
		var tab2_summary = summary_buffer['tab2']['step3_type'];
		tab2_summary += empty(tab2_summary) ? summary_buffer['tab2']['step3_length'] : '  ' + summary_buffer['tab2']['step3_length'];
		tab2_summary += empty(tab2_summary) ? summary_buffer['tab2']['step3_size'] : '  ' + summary_buffer['tab2']['step3_size'];
		tab2_summary += empty(tab2_summary) ? summary_buffer['tab2']['step3_ethnicity'] : '  ' + summary_buffer['tab2']['step3_ethnicity'];
		tab2_summary += empty(tab2_summary) ? summary_buffer['tab2']['step3_gender'] : '  ' + summary_buffer['tab2']['step3_gender'];
		
		var tab3_summary = summary_buffer['tab3']['step3_states'];
		
		var tab4_summary = summary_buffer['tab4']['step3_acceptance'];
		tab4_summary += empty(tab4_summary) ? summary_buffer['tab4']['step3_aid'] : '  ' + summary_buffer['tab4']['step3_aid'];
		tab4_summary += empty(tab4_summary) ? summary_buffer['tab4']['step3_tuition'] : '  ' + summary_buffer['tab4']['step3_tuition'];
		
		var tab5_summary = summary_buffer['tab5']['step3_studentorganizations'];
		tab5_summary += empty(tab5_summary) ? summary_buffer['tab5']['step3_sports'] : '  ' + summary_buffer['tab5']['step3_sports'];
		
		var summary = tab1_summary;
		summary += empty(summary) ? tab2_summary : tab2_summary + '\n\n';
		summary += empty(summary) ? tab3_summary : tab3_summary + '\n\n';
		summary += empty(summary) ? tab4_summary : tab4_summary + '\n\n';
		summary += empty(summary) ? tab5_summary : tab5_summary + '\n\n';
	}
	
	function update_simple(tab, item, val, comment) {
		if(val == 'No Preference') {
			val = '';
		}
		summary_buffer[tab][item] = empty(val) ? '' : comment.replace('VAL', val);
		do_update();
	}
	
	function update_ranger(tab, item, val_min, val_max, comment_min, comment_max, comment_minmax) {
		if(!empty(val_min) && !empty(val_max)) {
			summary_buffer[tab][item] = comment_minmax.replace(/VAL_MIN/,val_min).replace(/VAL_MAX/,valmax);
		}
		else if(!empty(val_min)) {
			summary_buffer[tab][item] = comment_min.replace(/VAL_MIN/,val_min);
		}
		else if(!empty(val_max)) {
			summary_buffer[tab][item] = comment_max.replace(/VAL_MIN/,val_max);
		}
		else {
			summary_buffer[tab][item] = '';
		}
		do_update();
	}
	
	/* tab 1 stuff */
	var step3_enrollment = $$('.step3_enrollment');
	var step3_enrollment_ele = step3_enrollment.select('#std_form_element');
	step3_enrollment_ele.observe('blur', update_simple('tab1','step3_enrollment',step3_enrollment_ele.getValue(),'I plan to enroll in VAL.'));
	
	var step3_subjects = $$('.step3_subjects');
	var step3_subjects_ele = step3_subjects_ele.select('#input_tokenizer');
	step3_subjects_ele.observe('blur', update_simple('tab1','step3_subjects',step3_subjects_ele.getValue(),'The subjects I am interested in are VAL.'));
	
	var step3_majors = $$('.step3_majors');
	var step3_majors_ele = step3_majors_ele.select('#input_tokenizer');
	step3_majors_ele.observe('blur', update_simple('tab1','step3_majors',step3_majors_ele.getValue(),'The majors I am interested in are VAL.'));
	
	/* tab 2 stuff */
	var step3_type = $$('.step3_type');
	var step3_type_ele = step3_type.select('#std_form_element');
	step3_type_ele.observe('blur', update_simple('tab2','step3_type',step3_type_ele.getValue(),'I am seeking a VAL university.'));
	
	var step3_length = $$('.step3_length');
	var step3_length_ele = step3_length.select('#std_form_element');
	step3_length_ele.observe('blur', update_simple('tab2','step3_length',step3_length_ele.getValue(),'The university should offer mostly VAL degrees'));
	
	var step3_size = $$('.step3_size');
	var step3_size_ele_min = step3_size.select('#std_form_element[name=preferred_min_school_size]');
	var step3_size_ele_max = step3_size.select('#std_form_element[name=preferred_max_school_size]');
	step3_size_ele_min.observe('blur', update_ranger('tab2','step3_size',step3_size_ele_min.getValue(),step3_size_ele_max.getValue(),'The minimum student body size should be VAL_MIN','The student body size should be no more than VAL_MAX','The student body size should be between VAL_MIN and VAL_MAX'));
	step3_size_ele_max.observe('blur', update_ranger('tab2','step3_size',step3_size_ele_min.getValue(),step3_size_ele_max.getValue(),'The minimum student body size should be VAL_MIN','The student body size should be no more than VAL_MAX','The student body size should be between VAL_MIN and VAL_MAX'));
	
	var step3_ethnicity = $$('.step3_ethnicity');
	
	var step3_gender = $$('.step3_gender');
	
	/* tab 3 stuff */
	var step3_states = $$('.step3_states');
	
	/* tab 4 stuff */
	var step3_acceptance = $$('.step3_acceptance');
	var step3_aid = $$('.step3_aid');
	var step3_tuition = $$('.step3_tuition');
	
	/* tab 5 stuff */
	var step3_studentorganizations = $$('.step3_studentorganizations');
	var step3_sports = $$('.step3_sports');
}
