function doROI()
{
	//******** Predefined Values *************
	efficiency_factor = 0.50;
	netgenit_improvement_factor = 0.50;

  //******** Load Form Values **************
  avg_employee_salary = document.roi.avg_employee_salary.value;
  it_employees = document.roi.it_employees.value;
  avg_it_salary = document.roi.avg_it_salary.value;
	consultant_fees = document.roi.consultant_fees.value;

  desktops = document.roi.desktops.value;
  desktop_issues = document.roi.desktop_issues.value;
  desktop_issue_downtime = document.roi.desktop_issue_downtime.value;

  servers = document.roi.servers.value;
  server_issues = document.roi.server_issues.value;
  server_issue_downtime = document.roi.server_issue_downtime.value;

  other_issues = document.roi.other_issues.value;
  other_issue_downtime = document.roi.other_issue_downtime.value;

  backup_value = document.roi.backup_value.value;
  antivirus_value = document.roi.antivirus_value.value;
  peace_of_mind = document.roi.peace_of_mind.value;

	//******** Perform Calculations **********
	loaded_employee_salary = getLoadedSalary (avg_employee_salary);
	loaded_employee_salary_hourly = getHourlySalary (loaded_employee_salary);
	loaded_it_salary = getLoadedSalary (avg_it_salary);
	loaded_it_salary_hourly = getHourlySalary (loaded_it_salary);

	yearly_it_salaries = JRound(getYearlySalary(loaded_it_salary_hourly) * it_employees + parseFloat(consultant_fees));
	lost_productivity_desktop = JRound(desktop_issues * desktops * desktop_issue_downtime * loaded_employee_salary_hourly *12);
	lost_productivity_server = JRound(server_issues * servers * server_issue_downtime * (loaded_employee_salary_hourly * desktops) * 12);
	lost_productivity_other = JRound(other_issues * other_issue_downtime * (loaded_employee_salary_hourly * desktops) *12);
	lost_productivity = JRound(parseFloat(lost_productivity_desktop) + parseFloat(lost_productivity_server) + parseFloat(lost_productivity_other)) * efficiency_factor;
	lost_productivity_netgenit = lost_productivity * netgenit_improvement_factor;
	it_support_cost_total = parseFloat(yearly_it_salaries) + parseFloat(lost_productivity);

	other_value = parseFloat(backup_value) + parseFloat(antivirus_value) + parseFloat(peace_of_mind);
	ngit_startup_cost = GetNGITStartupCost (desktops, servers);
	ngit_cost = GetNGITCost (desktops, servers);

	roi_1yr = JRound(parseFloat(other_value) + parseFloat(it_support_cost_total) - parseFloat(ngit_startup_cost) - parseFloat(ngit_cost) - parseFloat(lost_productivity_netgenit));
	roi_2yr = JRound(parseFloat(other_value) + parseFloat(it_support_cost_total) - parseFloat(ngit_cost) - parseFloat(lost_productivity_netgenit));
	roi_3yr_total = JRound(parseFloat(roi_1yr) + parseFloat(roi_2yr) * 2);

  //******** Set Form Values **************
  document.roi.lost_productivity.value = JRound(lost_productivity / 12);
  document.roi.it_support_cost_total.value = JRound(it_support_cost_total / 12);
  document.roi.ngit_startup_cost.value = JRound(ngit_startup_cost);
  document.roi.ngit_cost.value = JRound(ngit_cost / 12);

  document.roi.roi_1yr.value = Number(JRound(roi_1yr));
  document.roi.roi_3yr.value = Number(JRound(roi_3yr_total));
}

function GetNGITCost (desktops, servers)
{
	var desktop_cost, server_cost, network_cost;

	desktop_cost = 79;
	server_cost = 169;
	network_cost = 99;

	return ((desktop_cost * desktops) + (server_cost * servers) + network_cost) * 12;

}

function GetNGITStartupCost (desktops, servers)
{
	return (GetNGITCost(desktops, servers) / 12);
}

function JRound(num) {
	var digits;

	digits = 0;

	return Math.round(num*Math.pow(10,digits))/Math.pow(10,digits);
}

function getHourlySalary(salary) {
	var hours_per_year;

	//******** Predefined Values *************
	hours_per_year = 2080;

	//******** Perform Calculations **********
	return JRound(salary / hours_per_year);

}

function getYearlySalary(hourly_rate) {
	var hours_per_year;

	//******** Predefined Values *************
	hours_per_year = 2080;

	//******** Perform Calculations **********
	return JRound(hourly_rate * hours_per_year);

}

function getLoadedSalary(salary) {
	var rate;

	//******** Predefined Values *************
	rate = 0.25;

	//******** Perform Calculations **********
	return JRound(salary * (1 + rate));
}
