function MyGetElementById(id)
{
	element = document.getElementById(id);
	
	if (!element)
	{
		element = document.all.id;
	}
			
	return element;
}

function MyGetValue(id)
{
	value = '';

	element = MyGetElementById(id);

	if (element != undefined)
	{
		value = element.value;
	}

	return value;
}


function MyGetInnerHtml(id)
{
	value = '';

	element = MyGetElementById(id);

	if (element != undefined)
	{
		value = element.innerHTML;
	}

	return value;
}

function MySetValue(id, value)
{

	element = MyGetElementById(id);

	if (element != undefined)
	{
		element.value = value;
	}

	return value;
}

function MySetInnerHtml(id, value)
{

	element = MyGetElementById(id);

	if (element != undefined)
	{
		element.innerHTML = value;
	}

	return value;
}


function count_hours_by_minutes(minutes)
/* функция пересчитывает минуты в часы */
{

	hours = Math.floor((minutes / 60) * 100 + 0.5) / 100;

	return hours;
}


function sa_recount_left_column(sa_time_updates_id, sa_time_updates_salesalerts_id, sa_min_id, sa_hours_id)
/* фнукция пересчитывает строчки Every week SalesAlerts saves (in min.) и (in hours) */
{	
	sa_time_updates_value = MyGetValue(sa_time_updates_id);

	sa_time_updates_salesalerts_value = MyGetInnerHtml(sa_time_updates_salesalerts_id);

	minutes_saved = sa_time_updates_value - sa_time_updates_salesalerts_value;

	hours_saved = count_hours_by_minutes(minutes_saved);
		
	MySetInnerHtml(sa_min_id, minutes_saved);
	MySetInnerHtml(sa_hours_id, hours_saved);	
}



function sa_count_employee_hour(sa_employee_cost_value, sa_worked_hours_value)
/*  Функция вычисляет  Average cost of an employee hour */
{
	value = Math.floor((sa_employee_cost_value / sa_worked_hours_value)* 100 + 0.5) / 100;
	
	value = '$' + value;
	
	return value;
}

function sa_count_saved_hours_yearly(sa_cost_employee_hour_value, sa_investment_value)
/*  Функция вычисляет  Average cost of an employee hour */
{
	str = new String (sa_investment_value);	
	len = str.length;
	
	sa_investment_value = str.substring(1, len);
	
	str = new String (sa_cost_employee_hour_value);	
	len = str.length;
	
	sa_cost_employee_hour_value = str.substring(1, len);
		
	res = Math.floor((sa_investment_value / sa_cost_employee_hour_value)* 100 + 0.5) / 100;
	return res;
}

function roi_count_red_saved_hours(sa_saved_hours_yearly_value)
/* функция вычисляет количество часов в красной надписи по значению в красной колонке */
{
	int_val = Math.floor(sa_saved_hours_yearly_value);
	float_val = int_val + 0.5;		
	
	if (int_val == sa_saved_hours_yearly_value)
	{
		res = sa_saved_hours_yearly_value;
	}
	
	if ((int_val < sa_saved_hours_yearly_value) && (sa_saved_hours_yearly_value <= float_val))
	{
			res = float_val;
	}
	
	if (float_val < sa_saved_hours_yearly_value)
	{
		res = 	int_val + 1;
	}
	
	return res;
}

function sa_recount_right_column(sa_employee_cost_id, sa_worked_hours_id, sa_cost_employee_hour_id, sa_investment_id, sa_saved_hours_yearly_id, roi_red_saved_hours_id)
/* фнукция пересчитывает правую колонку на странице SalesAlerts */
{	
	/* берём значение, которое ввели 80000$ */
	sa_employee_cost_value = MyGetValue(sa_employee_cost_id);

	/* берём постоянные значения из правой колонки */
	sa_worked_hours_value = MyGetInnerHtml(sa_worked_hours_id);

	sa_investment_value = MyGetInnerHtml(sa_investment_id);

	
	

	/* вычисляем Average cost of an employee hour */
	sa_cost_employee_hour_value = sa_count_employee_hour(sa_employee_cost_value, sa_worked_hours_value);	
	MySetInnerHtml(sa_cost_employee_hour_id, sa_cost_employee_hour_value);

	
	/* вычисляем Number of saved hours to break even on a SalesAlerts yearly investment  */
	sa_saved_hours_yearly_value = sa_count_saved_hours_yearly(sa_cost_employee_hour_value, sa_investment_value);
	MySetInnerHtml(sa_saved_hours_yearly_id, sa_saved_hours_yearly_value);	


	/* пересчитываем количество часов в красной надписи */	
	roi_red_saved_hours_value = roi_count_red_saved_hours(sa_saved_hours_yearly_value);
	
	MySetInnerHtml(roi_red_saved_hours_id, roi_red_saved_hours_value);
}


function sa_count_roi(sa_saves_weekly_hours_value, sa_saved_hours_yearly_value)
{
	res = Math.floor((sa_saved_hours_yearly_value / sa_saves_weekly_hours_value)* 100 + 0.5) / 100;
	return res;
}

function sa_rewrite_period(sa_roi_value, sa_period_id)
/* фнукция выдаёт нужный период в зависимости от ROI */
{	
	/* вычисляем Average ROI of SalesAlerts (in weeks) */
	
	weeks_number = Math.ceil(sa_roi_value);
		
	if (weeks_number % 4 == 0)
	{
		months_number = weeks_number /  4;

		period_text = months_number + ' months';

		if (months_number != 1)
		{
			period_text = months_number + ' months';
		}
		else
		{
			period_text = '1 month';
		}
	}
	else
	{
		if (weeks_number != 1)
		{
			period_text = weeks_number + ' weeks';
		}
		else
		{
			period_text = '1 week';
		}
	}
		
	MySetInnerHtml(sa_period_id, period_text);
	
}

function sa_recount_roi(sa_saves_weekly_hours_id, sa_saved_hours_yearly_id, sa_roi_id, sa_period_id)
/* фнукция пересчитывает Average ROI of SalesAlerts (in weeks) */
{	
	/* берём значение (in hours) */
	sa_saves_weekly_hours_value = MyGetInnerHtml(sa_saves_weekly_hours_id);

	/* берём Number of saved hours to break even on a SalesAlerts yearly investment  */
	sa_saved_hours_yearly_value = MyGetInnerHtml(sa_saved_hours_yearly_id);

	/* вычисляем Average ROI of SalesAlerts (in weeks) */
	sa_roi_value = sa_count_roi(sa_saves_weekly_hours_value, sa_saved_hours_yearly_value);
	MySetInnerHtml(sa_roi_id, sa_roi_value);
	
	sa_rewrite_period(sa_roi_value, sa_period_id);
}


function saonEditLeftNumber(sa_time_updates_id, sa_time_updates_salesalerts_id, sa_saves_weekly_min_id, sa_saves_weekly_hours_id,  sa_saved_hours_yearly_id, sa_roi_id, sa_period_id)
/* При редактировании числа в левой колонке пересчитываем левую колонку и ROI */
{	
	
	sa_recount_left_column(sa_time_updates_id, sa_time_updates_salesalerts_id, sa_saves_weekly_min_id, sa_saves_weekly_hours_id);
	sa_recount_roi(sa_saves_weekly_hours_id, sa_saved_hours_yearly_id, sa_roi_id, sa_period_id);
}

function onEditRightNumber(sa_employee_cost_id, sa_worked_hours_id, sa_cost_employee_hour_id, sa_investment_id, sa_saved_hours_yearly_id, sa_saves_weekly_hours_id, sa_roi_id, sa_period_id, roi_red_saved_hours_id)
/* При редактировании числа в правой колонке пересчитываем правую колонку и ROI */
{
	sa_recount_right_column(sa_employee_cost_id, sa_worked_hours_id, sa_cost_employee_hour_id, sa_investment_id, sa_saved_hours_yearly_id, roi_red_saved_hours_id);
	sa_recount_roi(sa_saves_weekly_hours_id, sa_saved_hours_yearly_id, sa_roi_id, sa_period_id);
}





/* функции для расчёта SalesFolder */
function recount_roi_saved_weekly_min(roi_num_docs_value, roi_time_spent_directly_value)
{
	res = roi_num_docs_value * roi_time_spent_directly_value;
	return res;
}


function sf_recount_left_column(roi_num_docs_id, roi_time_spent_directly_id, roi_saved_weekly_min_id, roi_saved_weekly_hours_id)
/* функция пересчитывает левую колонку на странице SalesFolder */
{
	/* берём значения верхних двух полей */	
	roi_num_docs_value = MyGetValue(roi_num_docs_id);
	roi_time_spent_directly_value = MyGetInnerHtml(roi_time_spent_directly_id);
	
	/* вычисляем значение Every week SalesFolder saves (in min.) */
	roi_saved_weekly_min_value = recount_roi_saved_weekly_min(roi_num_docs_value, roi_time_spent_directly_value);
	
	MySetInnerHtml(roi_saved_weekly_min_id, roi_saved_weekly_min_value);
	
	/* вычисляем значение Every week SalesFolder saves (in hours) */
	roi_saved_weekly_hours_value = count_hours_by_minutes(roi_saved_weekly_min_value);
	
	MySetInnerHtml(roi_saved_weekly_hours_id, roi_saved_weekly_hours_value);
	
}

function sfOnEditLeftNumber(roi_num_docs_id, roi_time_spent_directly_id, roi_saved_weekly_min_id, roi_saved_weekly_hours_id,  roi_saved_yearly_hours_id, roi_roi_id, roi_period_id)
{
		sf_recount_left_column(roi_num_docs_id, roi_time_spent_directly_id, roi_saved_weekly_min_id, roi_saved_weekly_hours_id);
		sa_recount_roi(roi_saved_weekly_hours_id, roi_saved_yearly_hours_id, roi_roi_id, roi_period_id);
}
/* кончились функции для SalesFolder */


/* функции для SalesDesctop */

function recount_sd_saved_weekly_min(roi_email_weekly_value, roi_time_attaching_email_weekly_value, roi_objects_weekly_value, roi_time_creating_object_value, roi_time_creating_object_salesdesctop_value)
/* функция вычисляет Every week SalesDesktop saves (in min.) */
{
	res = (roi_email_weekly_value * roi_time_attaching_email_weekly_value) + (roi_objects_weekly_value * roi_time_creating_object_value) - (roi_objects_weekly_value * roi_time_creating_object_salesdesctop_value);
	return res;
	
}

function sd_recount_left_column(roi_email_weekly_id, roi_time_attaching_email_weekly_id, roi_objects_weekly_id, roi_time_creating_object_id, roi_time_creating_object_salesdesctop_id, roi_saved_weekly_min_id, roi_saved_weekly_hours_id)
/* функция пересчитывает левую колонку на странице SalesFolder */
{
	/* берём значения верхних двух полей */	
	roi_email_weekly_value = MyGetValue(roi_email_weekly_id);
	roi_time_attaching_email_weekly_value = MyGetInnerHtml(roi_time_attaching_email_weekly_id);
	
	roi_objects_weekly_value = MyGetValue(roi_objects_weekly_id);
	
	roi_time_creating_object_value = MyGetInnerHtml(roi_time_creating_object_id);
	
	roi_time_creating_object_salesdesctop_value = MyGetInnerHtml(roi_time_creating_object_salesdesctop_id);
	
	/* вычисляем значение Every week SalesDesctop saves (in min.) */
	roi_saved_weekly_min_value = recount_sd_saved_weekly_min(roi_email_weekly_value, roi_time_attaching_email_weekly_value, roi_objects_weekly_value, roi_time_creating_object_value, roi_time_creating_object_salesdesctop_value);
	
	MySetInnerHtml(roi_saved_weekly_min_id, roi_saved_weekly_min_value);
	
	/* вычисляем значение Every week SalesFolder saves (in hours) */
	roi_saved_weekly_hours_value = count_hours_by_minutes(roi_saved_weekly_min_value);
	
	MySetInnerHtml(roi_saved_weekly_hours_id, roi_saved_weekly_hours_value);
	
}


function sdOnEditLeftNumber(roi_email_weekly_id, roi_time_attaching_email_weekly_id, roi_objects_weekly_id, roi_time_creating_object_id, roi_time_creating_object_salesdesctop_id, roi_saved_weekly_min_id, roi_saved_weekly_hours_id,  roi_saved_yearly_hours_id, roi_roi_id, roi_period_id)
{
		sd_recount_left_column(roi_email_weekly_id, roi_time_attaching_email_weekly_id, roi_objects_weekly_id, roi_time_creating_object_id, roi_time_creating_object_salesdesctop_id, roi_saved_weekly_min_id, roi_saved_weekly_hours_id);
		sa_recount_roi(roi_saved_weekly_hours_id, roi_saved_yearly_hours_id, roi_roi_id, roi_period_id);
}
/* кончились функции для SalesDesctop */

