function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
}

document.onkeypress = stopRKey;

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function getNumericFromCurrency(num) {
	num = num.toString().replace(/^\s+|\s+$/g, '') ;
	num = num.toString().replace(/\$|\,/g,'');
	return Number(num);
}

function dev(field) {
	num = getNumericFromCurrency($F(field));
	alert(']'+num+'[');
}

function formatPercent(num) {
	num = num * 1000;
	num = Math.round(num);
	num = num/10;
	return num.toString() + '%';
}

function setDefaults() {
	Form.Element.setValue('workstation_useage_hours_per_day_full_power',2);
	Form.Element.setValue('workstation_useage_hours_per_day_idle_power',6);
	Form.Element.setValue('work_days_per_week',5);
	Form.Element.setValue('work_weeks_per_year',40);
	Form.Element.setValue('average_electricity_cost',formatCurrency(0.12));
	Form.Element.setValue('computer_average_full_power_usage',450);
	Form.Element.setValue('computer_average_idle_power_usage',60);
	Form.Element.setValue('LCD_average_power_usage',15);
	Form.Element.setValue('desktop_computer_cost',formatCurrency(800));
	Form.Element.setValue('LCD_monitor_cost',formatCurrency(115));
	Form.Element.setValue('keyboard_mouse_cost',formatCurrency(20));
	Form.Element.setValue('F45_kit',formatCurrency(800));
	Form.Element.setValue('annual_support_cost_per_PC',formatCurrency(488));
	Form.Element.setValue('cloning_software_cost_per_PC',formatCurrency(15));
	Form.Element.setValue('teacher_control_software_cost_per_PC',formatCurrency(33));
	Form.Element.setValue('virtual_cd_software_cost_per_PC',formatCurrency(21));
	Form.Element.setValue('lock_workstation_software_cost_per_PC',formatCurrency(16));
	
	Form.Element.setValue('num_workstations_desired_PC',300);
	Form.Element.setValue('num_workstations_desired_Fiddlehead',300);
	Form.Element.setValue('num_Fiddlehead_users_per_PC',4);
	Form.Element.setValue('num_PCs_required_PC',300);
	Form.Element.setValue('num_PCs_required_Fiddlehead',75);
	Form.Element.setValue('num_fiddlehead_kits_required',75);
	Form.Element.setValue('num_LCD_monitors_PC',300);
	Form.Element.setValue('num_LCD_monitors_Fiddlehead',300);
	Form.Element.setValue('num_LCD_monitors_purchase_PC',0);
	Form.Element.setValue('num_LCD_monitors_purchase_Fiddlehead',225);
	Form.Element.setValue('num_keyboard_mouse_purchase_PC',0);
	Form.Element.setValue('num_keyboard_mouse_purchase_Fiddlehead',225);
	Form.Element.setValue('annual_energy_consumption_computers_PC',75600);
	Form.Element.setValue('annual_energy_consumption_computers_Fiddlehead',18900);
	Form.Element.setValue('annual_energy_consumption_monitors_PC',7200);
	Form.Element.setValue('annual_energy_consumption_monitors_Fiddlehead',7200);
	Form.Element.setValue('annual_energy_consumption_PC',82800);
	Form.Element.setValue('annual_energy_consumption_Fiddlehead',26100);
	Form.Element.setValue('total_energy_cost_PC',formatCurrency(29808));
	Form.Element.setValue('total_energy_cost_Fiddlehead',formatCurrency(9396));
	Form.Element.setValue('total_cost_desktop_computers_PC',formatCurrency(240000));
	Form.Element.setValue('total_cost_desktop_computers_Fiddlehead',formatCurrency(60000));
	Form.Element.setValue('fiddlehead_kit_cost',formatCurrency(60000));
	Form.Element.setValue('total_cost_monitors_PC',formatCurrency(0));
	Form.Element.setValue('total_cost_monitors_Fiddlehead',formatCurrency(25875));
	Form.Element.setValue('total_cost_keyboards_mice_PC',formatCurrency(0));
	Form.Element.setValue('total_cost_keyboards_mice_Fiddlehead',formatCurrency(4500));
	Form.Element.setValue('total_cost_hardware_PC',formatCurrency(240000));
	Form.Element.setValue('total_cost_hardware_Fiddlehead',formatCurrency(150375));
	Form.Element.setValue('hardware_cost_savings','37.3%');
	Form.Element.setValue('support_cost_3_years_PC',formatCurrency(439200));
	Form.Element.setValue('support_cost_3_years_Fiddlehead',formatCurrency(109800));
	Form.Element.setValue('workstation_cloning_software_PC',formatCurrency(4500));
	Form.Element.setValue('teacher_control_software_PC',formatCurrency(9900));
	Form.Element.setValue('virtual_cd_software_PC',formatCurrency(6300));
	Form.Element.setValue('lock_workstation_software_PC',formatCurrency(4800));
	Form.Element.setValue('total_cost_software_PC',formatCurrency(25500));
	Form.Element.setValue('total_cost_software_Fiddlehead',formatCurrency(0));
	Form.Element.setValue('total_cost_3_years_PC',formatCurrency(734508));
	Form.Element.setValue('total_cost_3_years_Fiddlehead',formatCurrency(269571));
	Form.Element.setValue('total_savings',formatCurrency(464937));
	Form.Element.setValue('percent_savings','63.3%');
}

function updateValues() {
	Form.Element.setValue('num_workstations_desired_Fiddlehead',$F('num_workstations_desired_PC'));
	Form.Element.setValue('num_PCs_required_PC',$F('num_workstations_desired_PC'));
	temp_num_PCs_required_Fiddlehead = Math.ceil($F('num_workstations_desired_Fiddlehead') / $F('num_Fiddlehead_users_per_PC'));
	Form.Element.setValue('num_PCs_required_Fiddlehead',temp_num_PCs_required_Fiddlehead);
	Form.Element.setValue('num_fiddlehead_kits_required',temp_num_PCs_required_Fiddlehead);
	
	temp_num_LCD_monitors_PC = $F('num_workstations_desired_PC');
	Form.Element.setValue('num_LCD_monitors_PC',temp_num_LCD_monitors_PC);
	temp_num_LCD_monitors_Fiddlehead = $F('num_workstations_desired_PC');
	Form.Element.setValue('num_LCD_monitors_Fiddlehead',temp_num_LCD_monitors_Fiddlehead);
	
	temp_num_LCD_monitors_purchase_Fiddlehead = Math.round(temp_num_LCD_monitors_Fiddlehead * .75);
	Form.Element.setValue('num_LCD_monitors_purchase_Fiddlehead', temp_num_LCD_monitors_purchase_Fiddlehead);
	temp_num_keyboard_mouse_purchase_Fiddlehead = Math.round(temp_num_LCD_monitors_Fiddlehead * .75);
	Form.Element.setValue('num_keyboard_mouse_purchase_Fiddlehead', temp_num_keyboard_mouse_purchase_Fiddlehead);
	
	temp_annual_energy_consumption_computers_PC = ($F('num_PCs_required_PC') * $F('workstation_useage_hours_per_day_full_power') * $F('work_days_per_week') * $F('work_weeks_per_year') * $F('computer_average_full_power_usage')/1000)
												  + ($F('num_PCs_required_PC') * $F('workstation_useage_hours_per_day_idle_power') * $F('work_days_per_week') * $F('work_weeks_per_year') * $F('computer_average_idle_power_usage')/1000);
	Form.Element.setValue('annual_energy_consumption_computers_PC',temp_annual_energy_consumption_computers_PC);
	temp_annual_energy_consumption_computers_Fiddlehead = ($F('num_PCs_required_Fiddlehead') * $F('workstation_useage_hours_per_day_full_power') * $F('work_days_per_week') * $F('work_weeks_per_year') * $F('computer_average_full_power_usage')/1000)
														  + ($F('num_PCs_required_Fiddlehead') * $F('workstation_useage_hours_per_day_idle_power') * $F('work_days_per_week') * $F('work_weeks_per_year') * $F('computer_average_idle_power_usage')/1000);
	Form.Element.setValue('annual_energy_consumption_computers_Fiddlehead',temp_annual_energy_consumption_computers_Fiddlehead);
	temp_annual_energy_consumption_monitors_PC = ($F('num_LCD_monitors_PC') * (Number($F('workstation_useage_hours_per_day_full_power')) + Number($F('workstation_useage_hours_per_day_idle_power'))) * $F('work_days_per_week') * $F('work_weeks_per_year') * $F('LCD_average_power_usage')/1000);
	Form.Element.setValue('annual_energy_consumption_monitors_PC',temp_annual_energy_consumption_monitors_PC);
	temp_annual_energy_consumption_monitors_Fiddlehead = ($F('num_LCD_monitors_Fiddlehead') * (Number($F('workstation_useage_hours_per_day_full_power')) + Number($F('workstation_useage_hours_per_day_idle_power'))) * $F('work_days_per_week') * $F('work_weeks_per_year') * $F('LCD_average_power_usage')/1000);
	Form.Element.setValue('annual_energy_consumption_monitors_Fiddlehead',temp_annual_energy_consumption_monitors_Fiddlehead);
	
	temp_annual_energy_consumption_PC = Math.abs($F('annual_energy_consumption_computers_PC')) + Math.abs($F('annual_energy_consumption_monitors_PC'));
	Form.Element.setValue('annual_energy_consumption_PC',temp_annual_energy_consumption_PC);
	temp_annual_energy_consumption_Fiddlehead = Math.abs($F('annual_energy_consumption_computers_Fiddlehead')) + Math.abs($F('annual_energy_consumption_monitors_Fiddlehead'));
	Form.Element.setValue('annual_energy_consumption_Fiddlehead',temp_annual_energy_consumption_Fiddlehead);
	
	temp_total_energy_cost_PC = $F('annual_energy_consumption_PC') * getNumericFromCurrency($F('average_electricity_cost')) * 3;
	Form.Element.setValue('total_energy_cost_PC', formatCurrency(temp_total_energy_cost_PC));
	temp_total_energy_cost_Fiddlehead = $F('annual_energy_consumption_Fiddlehead') * getNumericFromCurrency($F('average_electricity_cost')) * 3;
	Form.Element.setValue('total_energy_cost_Fiddlehead', formatCurrency(temp_total_energy_cost_Fiddlehead));
	
	temp_total_cost_desktop_computers_PC = $F('num_PCs_required_PC') * getNumericFromCurrency($F('desktop_computer_cost'));
	Form.Element.setValue('total_cost_desktop_computers_PC', formatCurrency(temp_total_cost_desktop_computers_PC));
	temp_total_cost_desktop_computers_Fiddlehead = $F('num_PCs_required_Fiddlehead') * getNumericFromCurrency($F('desktop_computer_cost'));
	Form.Element.setValue('total_cost_desktop_computers_Fiddlehead', formatCurrency(temp_total_cost_desktop_computers_Fiddlehead));
	
	temp_fiddlehead_kit_cost = $F('num_fiddlehead_kits_required') * getNumericFromCurrency($F('F45_kit'));
	Form.Element.setValue('fiddlehead_kit_cost', formatCurrency(temp_fiddlehead_kit_cost));
	
	temp_total_cost_monitors_PC = (Number($F('num_LCD_monitors_purchase_PC')) * Number(getNumericFromCurrency($F('LCD_monitor_cost'))));
	Form.Element.setValue('total_cost_monitors_PC', formatCurrency(temp_total_cost_monitors_PC));
	temp_total_cost_monitors_Fiddlehead = (Number($F('num_LCD_monitors_purchase_Fiddlehead')) * Number(getNumericFromCurrency($F('LCD_monitor_cost'))));
	Form.Element.setValue('total_cost_monitors_Fiddlehead', formatCurrency(temp_total_cost_monitors_Fiddlehead));
	
	temp_total_cost_keyboards_mice_PC = $F('num_keyboard_mouse_purchase_PC') * getNumericFromCurrency($F('keyboard_mouse_cost'));
	Form.Element.setValue('total_cost_keyboards_mice_PC', formatCurrency(temp_total_cost_keyboards_mice_PC));
	temp_total_cost_keyboards_mice_Fiddlehead = $F('num_keyboard_mouse_purchase_Fiddlehead') * getNumericFromCurrency($F('keyboard_mouse_cost'));
	Form.Element.setValue('total_cost_keyboards_mice_Fiddlehead', formatCurrency(temp_total_cost_keyboards_mice_Fiddlehead));
	
	temp_total_cost_hardware_PC = temp_total_cost_desktop_computers_PC + temp_total_cost_monitors_PC + temp_total_cost_keyboards_mice_PC;
	Form.Element.setValue('total_cost_hardware_PC', formatCurrency(temp_total_cost_hardware_PC));
	temp_total_cost_hardware_Fiddlehead = temp_fiddlehead_kit_cost + temp_total_cost_desktop_computers_Fiddlehead + temp_total_cost_monitors_Fiddlehead + temp_total_cost_keyboards_mice_Fiddlehead;
	Form.Element.setValue('total_cost_hardware_Fiddlehead', formatCurrency(temp_total_cost_hardware_Fiddlehead));

	temp_hardware_cost_savings = (temp_total_cost_hardware_PC - temp_total_cost_hardware_Fiddlehead)/temp_total_cost_hardware_PC;
	Form.Element.setValue('hardware_cost_savings', formatPercent(temp_hardware_cost_savings));
	
	temp_support_cost_3_years_PC = $F('num_PCs_required_PC') * getNumericFromCurrency($F('annual_support_cost_per_PC')) * 3;
	Form.Element.setValue('support_cost_3_years_PC', formatCurrency(temp_support_cost_3_years_PC));
	temp_support_cost_3_years_Fiddlehead = $F('num_PCs_required_Fiddlehead') * getNumericFromCurrency($F('annual_support_cost_per_PC')) * 3;
	Form.Element.setValue('support_cost_3_years_Fiddlehead', formatCurrency(temp_support_cost_3_years_Fiddlehead));
	
	temp_workstation_cloning_software_PC = $F('num_PCs_required_PC') * getNumericFromCurrency($F('cloning_software_cost_per_PC'));
	Form.Element.setValue('workstation_cloning_software_PC',formatCurrency(temp_workstation_cloning_software_PC));
	temp_teacher_control_software_PC = $F('num_PCs_required_PC') * getNumericFromCurrency($F('teacher_control_software_cost_per_PC'));
	Form.Element.setValue('teacher_control_software_PC',formatCurrency(temp_teacher_control_software_PC));
	temp_virtual_cd_software_PC = $F('num_PCs_required_PC') * getNumericFromCurrency($F('virtual_cd_software_cost_per_PC'));
	Form.Element.setValue('virtual_cd_software_PC',formatCurrency(temp_virtual_cd_software_PC));
	temp_lock_workstation_software_PC = $F('num_PCs_required_PC') * getNumericFromCurrency($F('lock_workstation_software_cost_per_PC'));
	Form.Element.setValue('lock_workstation_software_PC',formatCurrency(temp_lock_workstation_software_PC));
	temp_total_cost_software_PC = temp_workstation_cloning_software_PC + temp_teacher_control_software_PC + temp_virtual_cd_software_PC + temp_lock_workstation_software_PC;
	Form.Element.setValue('total_cost_software_PC', formatCurrency(temp_total_cost_software_PC));
	
	temp_total_cost_3_years_PC = temp_support_cost_3_years_PC + temp_total_cost_hardware_PC + temp_total_energy_cost_PC + temp_total_cost_software_PC;
	Form.Element.setValue('total_cost_3_years_PC', formatCurrency(temp_total_cost_3_years_PC));
	temp_total_cost_3_years_Fiddlehead = temp_support_cost_3_years_Fiddlehead + temp_total_cost_hardware_Fiddlehead + temp_total_energy_cost_Fiddlehead;
	Form.Element.setValue('total_cost_3_years_Fiddlehead', formatCurrency(temp_total_cost_3_years_Fiddlehead));

	temp_total_savings = temp_total_cost_3_years_PC - temp_total_cost_3_years_Fiddlehead;
	Form.Element.setValue('total_savings', formatCurrency(temp_total_savings));
	
	temp_percent_savings = (temp_total_cost_3_years_PC - temp_total_cost_3_years_Fiddlehead)/temp_total_cost_3_years_PC;
	Form.Element.setValue('percent_savings', formatPercent(temp_percent_savings));
	
}
