	var pft_source_1 = null;
	var pft_source_2 = null;
    var pft_source_3 = null;

	function pft_update_fields(field_name){
		//alert('Before: '+pft_source_1+' - '+pft_source_2+' - '+pft_source_3);

		if($F(field_name) != null && $F(field_name) != ''){

			//alert('value added: '+field_name+' = '+$F(field_name));

			if(field_name == pft_source_1){
				//nothing changes
			}
			else if(field_name == pft_source_2){
				pft_source_2 = pft_source_1;
				pft_source_1 = field_name;
			}
			else if(field_name == pft_source_3){
				pft_source_3 = pft_source_2;
				pft_source_2 = pft_source_1;
				pft_source_1 = field_name;
			}
			else{
				pft_source_3 = pft_source_2;
				pft_source_2 = pft_source_1;
				pft_source_1 = field_name;
			}

		}
		else{
			//alert('value removed from '+field_name);
			//the value was removed
			if(field_name == pft_source_1){
				pft_source_1 = pft_source_2;
				pft_source_2 = pft_source_3;
				pft_source_3 = null;
			}
			else if(field_name == pft_source_2){
				pft_source_2 = pft_source_3;
				pft_source_3 = null;
			}
			else if(field_name == pft_source_3){
				pft_source_3 = null;
			}

		}


		update_pft_field_colors();
		//alert('After: '+pft_source_1+' - '+pft_source_2+' - '+pft_source_3);

	}

	function power_flow_temp_calculator(){
		if(pft_source_1 == null || pft_source_2 == null || $F(pft_source_1) == null || $F(pft_source_2) == null){
			//two fields haven't been filled out yet! do nothing
			return;
		}

		var SCFM = $F('SCFM');
		var delta_t = $F('delta_t');
		var watts = $F('watts');

		if((pft_source_1 == 'SCFM' && pft_source_2 == 'delta_t') || (pft_source_1 == 'delta_t' && pft_source_2 == 'SCFM')){
			pft_source_3 = 'watts';
			$('watts').value = SCFM * (delta_t / 3);
		}
		else if((pft_source_1 == 'SCFM' && pft_source_2 == 'watts') || (pft_source_1 == 'watts' && pft_source_2 == 'SCFM')){
			pft_source_3 = 'delta_t';
			$('delta_t').value = 3 * (watts / SCFM);
		}
		else if((pft_source_1 == 'delta_t' && pft_source_2 == 'watts') || (pft_source_1 == 'watts' && pft_source_2 == 'delta_t')){
			pft_source_3 = 'SCFM';
			$('SCFM').value = watts / (delta_t / 3);
		}
		else{
			pft_source_3 = null;
		}

		//check for 'NaN'.. replace with 'invalid values'
		if($('watts').value == 'NaN'){
			$('watts').value = 'invalid values';
		}
		if($('delta_t').value == 'NaN'){
			$('delta_t').value = 'invalid values';
		}
		if($('SCFM').value == 'NaN'){
			$('SCFM').value = 'invalid values';
		}

		//alert(pft_source_1+' - '+pft_source_2+' - '+pft_source_3);
		update_pft_field_colors();
	}

	function update_pft_field_colors(){
		if($F('SCFM') != '' && (pft_source_1 == 'SCFM' || pft_source_2 == 'SCFM')){
			//set the background or text color
			$('SCFM').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('SCFM').removeClassName('calculator_highlighted');
		}
		if($F('delta_t') != '' && (pft_source_1 == 'delta_t' || pft_source_2 == 'delta_t')){
			//set the background or text color
			$('delta_t').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('delta_t').removeClassName('calculator_highlighted');
		}
		if($F('watts') != '' && (pft_source_1 == 'watts' || pft_source_2 == 'watts')){
			//set the background or text color
			$('watts').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('watts').removeClassName('calculator_highlighted');
		}
	}

	function reset_pft_fields(){
		pft_source_1 = null;
		pft_source_2 = null;
		pft_source_3 = null;
		$('SCFM').value = '';
		$('delta_t').value = '';
		$('watts').value = '';
		update_pft_field_colors();
	}



	var single_phase_current_source_1 = null;
	var single_phase_current_source_2 = null;
    var single_phase_current_source_3 = null;

	function single_phase_current_update_fields(field_name){
		//alert('Before: '+single_phase_current_source_1+' - '+single_phase_current_source_2+' - '+single_phase_current_source_3);

		if($F(field_name) != null && $F(field_name) != ''){

			//alert('value added: '+field_name+' = '+$F(field_name));

			if(field_name == single_phase_current_source_1){
				//nothing changes
			}
			else if(field_name == single_phase_current_source_2){
				single_phase_current_source_2 = single_phase_current_source_1;
				single_phase_current_source_1 = field_name;
			}
			else if(field_name == single_phase_current_source_3){
				single_phase_current_source_3 = single_phase_current_source_2;
				single_phase_current_source_2 = single_phase_current_source_1;
				single_phase_current_source_1 = field_name;
			}
			else{
				single_phase_current_source_3 = single_phase_current_source_2;
				single_phase_current_source_2 = single_phase_current_source_1;
				single_phase_current_source_1 = field_name;
			}

		}
		else{
			//alert('value removed from '+field_name);
			//the value was removed
			if(field_name == single_phase_current_source_1){
				single_phase_current_source_1 = single_phase_current_source_2;
				single_phase_current_source_2 = single_phase_current_source_3;
				single_phase_current_source_3 = null;
			}
			else if(field_name == single_phase_current_source_2){
				single_phase_current_source_2 = single_phase_current_source_3;
				single_phase_current_source_3 = null;
			}
			else if(field_name == single_phase_current_source_3){
				single_phase_current_source_3 = null;
			}

		}


		update_single_phase_current_field_colors();
		//alert('After: '+single_phase_current_source_1+' - '+single_phase_current_source_2+' - '+single_phase_current_source_3);

	}

	function single_phase_current_calculator(){
		if(single_phase_current_source_1 == null || single_phase_current_source_2 == null || $F(single_phase_current_source_1) == null || $F(single_phase_current_source_2) == null){
			//two fields haven't been filled out yet!
			return;
		}

		var wattage = $F('single_phase_wattage');
		var voltage = $F('single_phase_voltage');
		var current = $F('single_phase_current');

		if((single_phase_current_source_1 == 'single_phase_wattage' && single_phase_current_source_2 == 'single_phase_voltage') || (single_phase_current_source_1 == 'single_phase_voltage' && single_phase_current_source_2 == 'single_phase_wattage')){
			single_phase_current_source_3 = 'single_phase_current'; $('single_phase_current').value = wattage / voltage;
		}
		else if((single_phase_current_source_1 == 'single_phase_wattage' && single_phase_current_source_2 == 'single_phase_current') || (single_phase_current_source_1 == 'single_phase_current' && single_phase_current_source_2 == 'single_phase_wattage')){
			single_phase_current_source_3 = 'single_phase_voltage'; $('single_phase_voltage').value = wattage / current;

		}
		else if((single_phase_current_source_1 == 'single_phase_voltage' && single_phase_current_source_2 == 'single_phase_current') || (single_phase_current_source_1 == 'single_phase_current' && single_phase_current_source_2 == 'single_phase_voltage')){
			single_phase_current_source_3 = 'single_phase_wattage'; $('single_phase_wattage').value = current * voltage;
		}
		else{
			single_phase_current_source_3 = null;
		}


		//check for 'NaN'.. replace with 'invalid values'
		if($('single_phase_wattage').value == 'NaN'){
			$('single_phase_wattage').value = 'invalid values';
		}
		if($('single_phase_voltage').value == 'NaN'){
			$('single_phase_voltage').value = 'invalid values';
		}
		if($('single_phase_current').value == 'NaN'){
			$('single_phase_current').value = 'invalid values';
		}

		//alert(single_phase_current_source_1+' - '+single_phase_current_source_2+' - '+single_phase_current_source_3);
		update_single_phase_current_field_colors();
	}

	function update_single_phase_current_field_colors(){
		//alert('updating colors');
		if($F('single_phase_wattage') != '' && (single_phase_current_source_1 == 'single_phase_wattage' || single_phase_current_source_2 == 'single_phase_wattage')){
			//set the background or text color
			$('single_phase_wattage').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('single_phase_wattage').removeClassName('calculator_highlighted');
		}
		if($F('single_phase_voltage') != '' && (single_phase_current_source_1 == 'single_phase_voltage' || single_phase_current_source_2 == 'single_phase_voltage')){
			//set the background or text color
			$('single_phase_voltage').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('single_phase_voltage').removeClassName('calculator_highlighted');
		}
		if($F('single_phase_current') != '' && (single_phase_current_source_1 == 'single_phase_current' || single_phase_current_source_2 == 'single_phase_current')){
			//set the background or text color
			$('single_phase_current').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('single_phase_current').removeClassName('calculator_highlighted');
		}

		//alert('done updating colors');
	}

	function reset_single_phase_current_fields(){
		single_phase_current_source_1 = null;
		single_phase_current_source_2 = null;
		single_phase_current_source_3 = null;
		$('single_phase_wattage').value = '';
		$('single_phase_voltage').value = '';
		$('single_phase_current').value = '';
		update_single_phase_current_field_colors();
	}



	var three_phase_current_source_1 = null;
	var three_phase_current_source_2 = null;
    var three_phase_current_source_3 = null;

	function three_phase_current_update_fields(field_name){
		//alert('Before: '+three_phase_current_source_1+' - '+three_phase_current_source_2+' - '+three_phase_current_source_3);

		if($F(field_name) != null && $F(field_name) != ''){

			//alert('value added: '+field_name+' = '+$F(field_name));

			if(field_name == three_phase_current_source_1){
				//nothing changes
			}
			else if(field_name == three_phase_current_source_2){
				three_phase_current_source_2 = three_phase_current_source_1;
				three_phase_current_source_1 = field_name;
			}
			else if(field_name == three_phase_current_source_3){
				three_phase_current_source_3 = three_phase_current_source_2;
				three_phase_current_source_2 = three_phase_current_source_1;
				three_phase_current_source_1 = field_name;
			}
			else{
				three_phase_current_source_3 = three_phase_current_source_2;
				three_phase_current_source_2 = three_phase_current_source_1;
				three_phase_current_source_1 = field_name;
			}

		}
		else{
			//alert('value removed from '+field_name);
			//the value was removed
			if(field_name == three_phase_current_source_1){
				three_phase_current_source_1 = three_phase_current_source_2;
				three_phase_current_source_2 = three_phase_current_source_3;
				three_phase_current_source_3 = null;
			}
			else if(field_name == three_phase_current_source_2){
				three_phase_current_source_2 = three_phase_current_source_3;
				three_phase_current_source_3 = null;
			}
			else if(field_name == three_phase_current_source_3){
				three_phase_current_source_3 = null;
			}

		}


		update_three_phase_current_field_colors();
		//alert('After: '+three_phase_current_source_1+' - '+three_phase_current_source_2+' - '+three_phase_current_source_3);

	}

	function three_phase_current_calculator(){
		if(three_phase_current_source_1 == null || three_phase_current_source_2 == null || $F(three_phase_current_source_1) == null || $F(three_phase_current_source_2) == null){
			//two fields haven't been filled out yet!
			return;
		}

		var wattage = $F('three_phase_wattage');
		var voltage = $F('three_phase_voltage');
		var current = $F('three_phase_current');

		if((three_phase_current_source_1 == 'three_phase_wattage' && three_phase_current_source_2 == 'three_phase_voltage') || (three_phase_current_source_1 == 'three_phase_voltage' && three_phase_current_source_2 == 'three_phase_wattage')){
			three_phase_current_source_3 = 'three_phase_current'; $('three_phase_current').value = wattage / (voltage * Math.sqrt(3));
		}
		else if((three_phase_current_source_1 == 'three_phase_wattage' && three_phase_current_source_2 == 'three_phase_current') || (three_phase_current_source_1 == 'three_phase_current' && three_phase_current_source_2 == 'three_phase_wattage')){
			three_phase_current_source_3 = 'three_phase_voltage'; $('three_phase_voltage').value = (wattage / current) / Math.sqrt(3);

		}
		else if((three_phase_current_source_1 == 'three_phase_voltage' && three_phase_current_source_2 == 'three_phase_current') || (three_phase_current_source_1 == 'three_phase_current' && three_phase_current_source_2 == 'three_phase_voltage')){
			three_phase_current_source_3 = 'three_phase_wattage'; $('three_phase_wattage').value = current * (voltage * Math.sqrt(3));
		}
		else{
			three_phase_current_source_3 = null;
		}


		//check for 'NaN'.. replace with 'invalid values'
		if($('three_phase_wattage').value == 'NaN'){
			$('three_phase_wattage').value = 'invalid values';
		}
		if($('three_phase_voltage').value == 'NaN'){
			$('three_phase_voltage').value = 'invalid values';
		}
		if($('three_phase_current').value == 'NaN'){
			$('three_phase_current').value = 'invalid values';
		}

		//alert(three_phase_current_source_1+' - '+three_phase_current_source_2+' - '+three_phase_current_source_3);
		update_three_phase_current_field_colors();
	}

	function update_three_phase_current_field_colors(){
		//alert('updating colors');
		if($F('three_phase_wattage') != '' && (three_phase_current_source_1 == 'three_phase_wattage' || three_phase_current_source_2 == 'three_phase_wattage')){
			//set the background or text color
			$('three_phase_wattage').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('three_phase_wattage').removeClassName('calculator_highlighted');
		}
		if($F('three_phase_voltage') != '' && (three_phase_current_source_1 == 'three_phase_voltage' || three_phase_current_source_2 == 'three_phase_voltage')){
			//set the background or text color
			$('three_phase_voltage').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('three_phase_voltage').removeClassName('calculator_highlighted');
		}
		if($F('three_phase_current') != '' && (three_phase_current_source_1 == 'three_phase_current' || three_phase_current_source_2 == 'three_phase_current')){
			//set the background or text color
			$('three_phase_current').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('three_phase_current').removeClassName('calculator_highlighted');
		}

		//alert('done updating colors');
	}

	function reset_three_phase_current_fields(){
		three_phase_current_source_1 = null;
		three_phase_current_source_2 = null;
		three_phase_current_source_3 = null;
		$('three_phase_wattage').value = '';
		$('three_phase_voltage').value = '';
		$('three_phase_current').value = '';
		update_three_phase_current_field_colors();
	}



	var last_edited = null;

	function temp_update_fields(field_name){

		if($F(field_name) != null && $F(field_name) != ''){

			//alert('value added: '+field_name+' = '+$F(field_name));

			last_edited = field_name;

		}
		else{
			//alert('value removed from '+field_name);
			//the value was removed
			if(field_name == 'celsius'){
				last_edited = 'fahrenheit';
			}
			else if(field_name == 'fahrenheit'){
				last_edited = 'celsius';
			}

		}


		update_temp_field_colors();
	}

	function temp_calculator(){
		if(last_edited == null || $F(last_edited) == null){
			//one field hasn't been filled out yet!
			return;
		}

		var celsius = $F('celsius');
		var fahrenheit = $F('fahrenheit');

		if(last_edited == 'celsius'){
			$('fahrenheit').value = Math.round((((celsius * 9) / 5) + 32)*100)/100;
		}
		else if(last_edited == 'fahrenheit'){
			$('celsius').value = Math.round((((fahrenheit - 32) * 5) / 9)*100)/100;
		}

		//check for 'NaN'.. replace with 'invalid values'
		if($('fahrenheit').value == 'NaN'){
			$('fahrenheit').value = 'invalid values';
		}
		if($('celsius').value == 'NaN'){
			$('celsius').value = 'invalid values';
		}

		update_temp_field_colors();
	}

	function update_temp_field_colors(){
		if($F('fahrenheit') != '' && last_edited == 'fahrenheit'){
			//set the background or text color
			$('fahrenheit').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('fahrenheit').removeClassName('calculator_highlighted');
		}
		if($F('celsius') != '' && last_edited == 'celsius'){
			//set the background or text color
			$('celsius').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('celsius').removeClassName('calculator_highlighted');
		}
	}

	function reset_temp_fields(){
		last_edited = null;
		$('celsius').value = '';
		$('fahrenheit').value = '';
		update_temp_field_colors();
	}

	//"Heat Transfer Through Convection" Calculator
	var httc_source_1 = null;
	var httc_source_2 = null;
    var httc_source_3 = null;
	var httc_source_4 = null;
    var httc_source_5 = null;

	function httc_update_fields(field_name){

		//alert('Before: '+httc_source_1+' - '+httc_source_2+' - '+httc_source_3+' - '+httc_source_4+' - '+httc_source_5);

		if($F(field_name) != null && $F(field_name) != ''){

			//alert('value added: '+field_name+' = '+$F(field_name));

			if(field_name == httc_source_1){
				//nothing changes
			}
			else if(field_name == httc_source_2){
				httc_source_2 = httc_source_1;
				httc_source_1 = field_name;
			}
			else if(field_name == httc_source_3){
				httc_source_3 = httc_source_2;
				httc_source_2 = httc_source_1;
				httc_source_1 = field_name;
			}
			else if(field_name == httc_source_4){
				httc_source_4 = httc_source_3;
				httc_source_3 = httc_source_2;
				httc_source_2 = httc_source_1;
				httc_source_1 = field_name;
			}
			else if(field_name == httc_source_5){
				httc_source_5 = httc_source_4;
				httc_source_4 = httc_source_3;
				httc_source_3 = httc_source_2;
				httc_source_2 = httc_source_1;
				httc_source_1 = field_name;
			}
			else{
				httc_source_5 = httc_source_4;
				httc_source_4 = httc_source_3;
				httc_source_3 = httc_source_2;
				httc_source_2 = httc_source_1;
				httc_source_1 = field_name;
			}

		}
		else{
			//alert('value removed from '+field_name);
			//the value was removed
			if(field_name == httc_source_1){
				httc_source_1 = httc_source_2;
				httc_source_2 = httc_source_3;
				httc_source_3 = httc_source_4;
				httc_source_4 = httc_source_5;
				httc_source_5 = null;
			}
			else if(field_name == httc_source_2){
				httc_source_2 = httc_source_3;
				httc_source_3 = httc_source_4;
				httc_source_4 = httc_source_5;
				httc_source_5 = null;
			}
			else if(field_name == httc_source_3){
				httc_source_3 = httc_source_4;
				httc_source_4 = httc_source_5;
				httc_source_5 = null;
			}
			else if(field_name == httc_source_4){
				httc_source_4 = httc_source_5;
				httc_source_5 = null;
			}
			else if(field_name == httc_source_5){
				httc_source_5 = null;
			}

		}


		update_httc_field_colors();
		//alert('After: '+httc_source_1+' - '+httc_source_2+' - '+httc_source_3);

	}

	function heat_transfer_through_convection_calculator(){
		//alert(httc_source_1+' - '+httc_source_2+' - '+httc_source_3+' - '+httc_source_4+' - '+httc_source_5);
		if(httc_source_1 == null || httc_source_2 == null || httc_source_3 == null || httc_source_4 == null || $F(httc_source_1) == null || $F(httc_source_2) == null || $F(httc_source_3) == null || $F(httc_source_4) == null){
			//4 fields haven't been filled out yet! do nothing
			//alert("You haven't filled out enough fields yet!");
			return;
		}

		var density = $F('density');
		var volume_flow_rate = $F('volume_flow_rate');
		var specific_heat = $F('specific_heat');
		var temp_diff = $F('temp_diff');
		var heat_flux = $F('heat_flux');

		if(httc_source_1 != null && httc_source_2 != null && httc_source_3 != null && httc_source_4 != null){
			if(httc_source_1 != 'density' && httc_source_2 != 'density' && httc_source_3 != 'density' && httc_source_4 != 'density'){
				httc_source_5 = 'density';
				$('density').value = heat_flux / ( volume_flow_rate * specific_heat * temp_diff );
			}
			else if(httc_source_1 != 'volume_flow_rate' && httc_source_2 != 'volume_flow_rate' && httc_source_3 != 'volume_flow_rate' && httc_source_4 != 'volume_flow_rate'){
				httc_source_5 = 'volume_flow_rate';
				$('volume_flow_rate').value = heat_flux / ( density * specific_heat * temp_diff );
			}
			else if(httc_source_1 != 'specific_heat' && httc_source_2 != 'specific_heat' && httc_source_3 != 'specific_heat' && httc_source_4 != 'specific_heat'){
				httc_source_5 = 'specific_heat';
				$('specific_heat').value = heat_flux / ( density * volume_flow_rate * temp_diff);
			}
			else if(httc_source_1 != 'temp_diff' && httc_source_2 != 'temp_diff' && httc_source_3 != 'temp_diff' && httc_source_4 != 'temp_diff'){
				httc_source_5 = 'temp_diff';
				$('temp_diff').value = heat_flux / ( density * volume_flow_rate * specific_heat );
			}
			else if(httc_source_1 != 'heat_flux' && httc_source_2 != 'heat_flux' && httc_source_3 != 'heat_flux' && httc_source_4 != 'heat_flux'){
				httc_source_5 = 'heat_flux';
				$('heat_flux').value = density * volume_flow_rate * specific_heat * temp_diff;
			}
		}
		else{
			httc_source_5 = null;
		}

		//check for 'NaN'.. replace with 'invalid values'
		if($('density').value == 'NaN'){
			$('density').value = 'invalid values';
		}
		if($('volume_flow_rate').value == 'NaN'){
			$('volume_flow_rate').value = 'invalid values';
		}
		if($('specific_heat').value == 'NaN'){
			$('specific_heat').value = 'invalid values';
		}
		if($('temp_diff').value == 'NaN'){
			$('temp_diff').value = 'invalid values';
		}
		if($('heat_flux').value == 'NaN'){
			$('heat_flux').value = 'invalid values';
		}

		//alert(httc_source_1+' - '+httc_source_2+' - '+httc_source_3+' - '+httc_source_4+' - '+httc_source_5);
		update_httc_field_colors();
		return false;
	}

	function update_httc_field_colors(){
		if($F('density') != '' && (httc_source_1 == 'density' || httc_source_2 == 'density' || httc_source_3 == 'density' || httc_source_4 == 'density')){
			//set the background or text color
			$('density').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('density').removeClassName('calculator_highlighted');
		}
		if($F('volume_flow_rate') != '' && (httc_source_1 == 'volume_flow_rate' || httc_source_2 == 'volume_flow_rate' || httc_source_3 == 'volume_flow_rate' || httc_source_4 == 'volume_flow_rate')){
			//set the background or text color
			$('volume_flow_rate').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('volume_flow_rate').removeClassName('calculator_highlighted');
		}
		if($F('specific_heat') != '' && (httc_source_1 == 'specific_heat' || httc_source_2 == 'specific_heat' || httc_source_3 == 'specific_heat' || httc_source_4 == 'specific_heat')){
			//set the background or text color
			$('specific_heat').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('specific_heat').removeClassName('calculator_highlighted');
		}
		if($F('temp_diff') != '' && (httc_source_1 == 'temp_diff' || httc_source_2 == 'temp_diff' || httc_source_3 == 'temp_diff' || httc_source_4 == 'temp_diff')){
			//set the background or text color
			$('temp_diff').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('temp_diff').removeClassName('calculator_highlighted');
		}
		if($F('heat_flux') != '' && (httc_source_1 == 'heat_flux' || httc_source_2 == 'heat_flux' || httc_source_3 == 'heat_flux' || httc_source_4 == 'heat_flux')){
			//set the background or text color
			$('heat_flux').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('heat_flux').removeClassName('calculator_highlighted');
		}

	}

	function reset_httc_fields(){
		httc_source_1 = null;
		httc_source_2 = null;
		httc_source_3 = null;
		httc_source_4 = null;
		httc_source_5 = null;
		$('density').value = '';
		$('volume_flow_rate').value = '';
		$('specific_heat').value = '';
		$('temp_diff').value = '';
		$('heat_flux').value = '';
		update_httc_field_colors();
	}



	/**
	 * LENGTH CONVERSION CALCULATOR
	 */
var factors=[100,3.2808398950131,39.370078740157,1,1000,1.0936132983377];
var gbrt=["centimeter (cm)","foot (ft)","inch (in)","meter (m)","millimeter (mm)","yard (yd)"];
function fix(v){
	//Copyright 2003 Unit-conversion.info
	if (!isFinite(v)) return "";
	if (v==0) return "0";
	st=""+v;
	epos=st.indexOf('E');
	if (epos==-1) epos=st.indexOf('e');
	sdigi=Math.log(Math.abs(v)) / Math.LN10;
	sdigif=Math.floor(sdigi);
	if (epos==-1){
		adjust=Math.pow(10, sdigif-12);
		faqs=Math.round(v/adjust);
		norst=""+faqs;
		if (sdigif<12){
			adjust2=Math.pow(10, 12-sdigif);
			return (faqs / adjust2);
		}
		else return (faqs*adjust);
	}
	else {
		zo=v*Math.pow(10, 12-sdigif);
		szo=String(Math.round(zo));
		inse=-1;
		if (szo.charAt(0)=='-') inse=2;
		else inse=1;
		rest=szo.substring(inse,szo.length);
		i=rest.length-1;
		while (i>=0 && rest.charAt(i)=='0')
			i--;
		rest=rest.substring(0,i+1);
		rou=szo.substring(0,inse);
		if (rest.length>0) rou += "."+rest;
		if (sdigif<0) sa=rou+"E";
		else sa=rou+"E+";
		snow=sa+sdigif;
		vanow=Math.abs(parseFloat(snow));
		faqsvab=Math.abs(v);
		if (sdigif>=0){
			if (vanow>5*faqsvab)
				snow=sa+String(sdigif-1);
			else if (vanow<faqsvab/5)
				snow=sa+String(sdigif+1);}
			else if (sdigif>=0){
				if (vanow>5*faqsvab)
					snow=sa+String(sdigif+1);
				else if (vanow<faqsvab/5)
					snow=sa+String(sdigif-1);
		}
		vanow=parseFloat(snow);
		if (vanow>1.1*v || vanow<0.9*v) return v;
		else return snow;
	}
}

function convert_length()
{
	//Copyright 2003 Unit-conversion.info

	myform=$('length_conversion_form');
	w1 = $F('length_conversion_from_unit');
	w2 = $F('length_conversion_to_unit');
	faqsorg=factors[w2]/factors[w1];
	resfaqs=$F('length_conversion_from_value')*faqsorg;

	$('length_conversion_from_value_display').update($F('length_conversion_from_value'));
	$('length_conversion_from_unit_display').update(gbrt[w1]);
	$('length_conversion_to_unit_display').update(gbrt[w2]);

	if (isNaN(parseFloat(resfaqs)))
		$('length_conversion_to_value').update("");
	else{
		$('length_conversion_to_value').update(fix(parseFloat(resfaqs))+" ");
	}
}



	//"Ohm's Law" Calculator
	var ol_source_1 = null;
	var ol_source_2 = null;
    var ol_source_3 = null;
	var ol_source_4 = null;

	function ol_update_fields(field_name){

		//alert('Before: '+ol_source_1+' - '+ol_source_2+' - '+ol_source_3+' - '+ol_source_4);

		if($F(field_name) != null && $F(field_name) != ''){

			//alert('value added: '+field_name+' = '+$F(field_name));

			if(field_name == ol_source_1){
				//nothing changes
			}
			else if(field_name == ol_source_2){
				ol_source_2 = ol_source_1;
				ol_source_1 = field_name;
			}
			else if(field_name == ol_source_3){
				ol_source_3 = ol_source_2;
				ol_source_2 = ol_source_1;
				ol_source_1 = field_name;
			}
			else if(field_name == ol_source_4){
				ol_source_4 = ol_source_3;
				ol_source_3 = ol_source_2;
				ol_source_2 = ol_source_1;
				ol_source_1 = field_name;
			}
			else{
				ol_source_4 = ol_source_3;
				ol_source_3 = ol_source_2;
				ol_source_2 = ol_source_1;
				ol_source_1 = field_name;
			}

		}
		else{
			//alert('value removed from '+field_name);
			//the value was removed
			if(field_name == ol_source_1){
				ol_source_1 = ol_source_2;
				ol_source_2 = ol_source_3;
				ol_source_3 = ol_source_4;
				ol_source_4 = null;
			}
			else if(field_name == ol_source_2){
				ol_source_2 = ol_source_3;
				ol_source_3 = ol_source_4;
				ol_source_4 = null;
			}
			else if(field_name == ol_source_3){
				ol_source_3 = ol_source_4;
				ol_source_4 = null;
			}
			else if(field_name == ol_source_4){
				ol_source_4 = null;
			}

		}


		update_ol_field_colors();
		//alert('After: '+ol_source_1+' - '+ol_source_2+' - '+ol_source_3);

	}

	function ohms_law_calculator(){
		//alert(ol_source_1+' - '+ol_source_2+' - '+ol_source_3+' - '+ol_source_4+' - '+ol_source_5);
		if(ol_source_1 == null || ol_source_2 == null  || $F(ol_source_1) == null || $F(ol_source_2) == null){
			//2 fields haven't been filled out yet! do nothing
			//alert("You haven't filled out enough fields yet!");
			return;
		}

		var amps = $F('amps');
		var volts = $F('volts');
		var watts = $F('watts');
		var ohms = $F('ohms');




		if(ol_source_1 != null && ol_source_2 != null){

			//amps, volts, watts, ohms
			if( (ol_source_1 == 'amps' || ol_source_2 == 'amps') && (ol_source_1 == 'volts' || ol_source_2 == 'volts')){
				ol_source_3 = 'watts';
				ol_source_4 = 'ohms';
				$('watts').value = amps * volts;
				$('ohms').value = volts / amps;
			}
			else if( (ol_source_1 == 'amps' || ol_source_2 == 'amps') && (ol_source_1 == 'watts' || ol_source_2 == 'watts')){
				ol_source_3 = 'volts';
				ol_source_4 = 'ohms';
				$('volts').value = watts / amps;
				$('ohms').value = watts / (amps * amps);
			}
			else if( (ol_source_1 == 'amps' || ol_source_2 == 'amps') && (ol_source_1 == 'ohms' || ol_source_2 == 'ohms')){
				ol_source_3 = 'volts';
				ol_source_4 = 'watts';
				$('volts').value = amps * ohms;
				$('watts').value = (amps * amps) * ohms;
			}
			else if( (ol_source_1 == 'volts' || ol_source_2 == 'volts') && (ol_source_1 == 'watts' || ol_source_2 == 'watts')){
				ol_source_3 = 'amps';
				ol_source_4 = 'ohms';
				$('amps').value = watts / volts;
				$('ohms').value = (volts * volts) / watts;
			}
			else if( (ol_source_1 == 'volts' || ol_source_2 == 'volts') && (ol_source_1 == 'ohms' || ol_source_2 == 'ohms')){
				ol_source_3 = 'amps';
				ol_source_4 = 'watts';
				$('amps').value = volts / ohms;
				$('watts').value = (volts * volts) / ohms;
			}
			else if( (ol_source_1 == 'watts' || ol_source_2 == 'watts') && (ol_source_1 == 'ohms' || ol_source_2 == 'ohms')){
				ol_source_3 = 'amps';
				ol_source_4 = 'volts';
				$('amps').value = Math.sqrt(watts / ohms);
				$('volts').value = Math.sqrt(watts * ohms);
			}
		}
		else{
			ol_source_3 = null;
			ol_source_4 = null;
		}

		//check for 'NaN'.. replace with 'invalid values'
		if($('amps').value == 'NaN'){
			$('amps').value = 'invalid values';
		}
		if($('volts').value == 'NaN'){
			$('volts').value = 'invalid values';
		}
		if($('watts').value == 'NaN'){
			$('watts').value = 'invalid values';
		}
		if($('ohms').value == 'NaN'){
			$('ohms').value = 'invalid values';
		}

		//alert(ol_source_1+' - '+ol_source_2+' - '+ol_source_3+' - '+ol_source_4);
		update_ol_field_colors();
		return false;
	}

	function update_ol_field_colors(){
		if($F('amps') != '' && (ol_source_1 == 'amps' || ol_source_2 == 'amps')){
			//set the background or text color
			$('amps').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('amps').removeClassName('calculator_highlighted');
		}
		if($F('volts') != '' && (ol_source_1 == 'volts' || ol_source_2 == 'volts')){
			//set the background or text color
			$('volts').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('volts').removeClassName('calculator_highlighted');
		}
		if($F('watts') != '' && (ol_source_1 == 'watts' || ol_source_2 == 'watts')){
			//set the background or text color
			$('watts').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('watts').removeClassName('calculator_highlighted');
		}
		if($F('ohms') != '' && (ol_source_1 == 'ohms' || ol_source_2 == 'ohms')){
			//set the background or text color
			$('ohms').addClassName('calculator_highlighted');
		}
		else{
			//set the background or text color
			$('ohms').removeClassName('calculator_highlighted');
		}

	}

	function reset_ol_fields(){
		ol_source_1 = null;
		ol_source_2 = null;
		ol_source_3 = null;
		ol_source_4 = null;
		$('amps').value = '';
		$('volts').value = '';
		$('watts').value = '';
		$('ohms').value = '';
		update_ol_field_colors();
	}
