// ROI CALCULATOR APPLICATION

// NUMBER VALIDATOR
function IsNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;
	var i;
	
	for (i = 0; i < sText.length && IsNumber == true; i++) {
		Char = sText.charAt(i);
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}

// NUMBER CURRENCY FORMATTING
function FormatCurrency(amount) {
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	s = CommaFormatted(s);
	return s;
}

// NUMBER COMMA FORMATTING
function CommaFormatted(amount) {
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = '$' + minus + amount;
	return amount;
}

// Hide / Show Div
function HideShow(block) {
	var myElement = document.getElementById(block);
	if (myElement.style.display != 'none') {
		myElement.style.display = 'none';
	} else {
		myElement.style.display = '';
	}
}

// CALCULATIONS
function CalculateRoi() {
	/* 
	User Submitted Variables
	a = 1 yr heating cost
	c = Gallons of waste oil produced annually
	d = Disposal cost per gallon
	i = Furnace price
	j = Shipping cost
	k = Installation cost
	l = Misc costs
	
	Calculated Variables
	b = a * 5.55 \ 5 yr heating cost
	e = c * d \ 1 yr waste oil disposal cost
	f = e * 5 \ 5 yr waste oil disposal cost
	g = a + e \ Potential 1 yr savings
	h = b + f \ Potential initial 5 yr savings
	m = p / g \ Years to recoup initial investment
	n = h - p \ 5 yr savings after initial investment recoup
	p = i + j + k + l \ Sum of the 4 costs
	*/
	
	// Initiate variables
	var a = document.getElementById('a').value;
	var b = 0;
	var c = document.getElementById('c').value;
	var d = document.getElementById('d').value;
	var e = 0;
	var f = 0;
	var g = 0;
	var h = 0;
	//var i = document.getElementById('i').value;
	//var j = document.getElementById('j').value;
	//var k = document.getElementById('k').value;
	//var l = document.getElementById('l').value;
	//var m = 0;
	//var n = 0;
	var p = 0;
	var x;
	var error_blank = 0;
	var error_number = 0;
	var msg = '';
	var result = '';
	var uinput = new Array();
	
	// Populate array
	uinput[0] = 'a';
	uinput[1] = 'c';
	uinput[2] = 'd';
	//uinput[3] = 'i';
	//uinput[4] = 'j';
	//uinput[5] = 'k';
	//uinput[6] = 'l';
		
	// Test to see if all user input has been passed in
	for (x = 0; x < uinput.length; x++) {
		if (eval(uinput[x]) == '') {
			error_blank = 1;
		}
	}

	if (error_blank == 1) {
		msg = document.getElementById('error');
		msg.innerHTML = '<p>You left some fields blank.</p>';
		error_blank = 0;
		return false;
	} else {
		msg = document.getElementById('error');
		msg.innerHTML = '';
	}

	// Test to make sure we only have numbers
	for (x = 0; x < uinput.length; x++) {
		if (IsNumeric(eval(uinput[x])) == false) {
			error_number = 1;
		}
	}

	if (error_number == 1) {
		msg.innerHTML = '<p>Numbers only please.</p>';
		error_number = 0;
		return false;
	} else {
		msg = document.getElementById('error');
		msg.innerHTML = '';
	}

	// HIDE THE CALCULATOR & SHOW THE RESULTS
	HideShow('roi_calc');
	HideShow('roi_results');

	// Perform Calculations & return results
	// 5 yr heating cost
	b = a * 5.55;
	result = document.getElementById('b');
	result.innerHTML = FormatCurrency(b);
	
	// 1 yr waste oil disposal cost
	e = c * d;
	result = document.getElementById('e');
	result.innerHTML = FormatCurrency(e);

	// 5 yr waste oil disposal cost
	f = e * 5;
	result = document.getElementById('f');
	result.innerHTML = FormatCurrency(f);

	// Potential 1 yr savings XX OLD
	/*g = Number(a) + e;
	result = document.getElementById('g');
	result.innerHTML = FormatCurrency(g);*/

	// Potential 1 yr savings XX
	g = Number(d) + 2.50;
	g = Number(g) * c;
	result = document.getElementById('g');
	if (g > a ) {
		result.innerHTML = FormatCurrency(a);
	} else {
		result.innerHTML = FormatCurrency(g);
	}

	// Potential initial 5 yr savings
	if (g > a ) {
		h = a * 5.5;
	} else {
		h = g * 5.5;
	}
 
	result = document.getElementById('h');
	result.innerHTML = FormatCurrency(h);

	// Sum of the 4 costs
	p = Number(i) + Number(j) + Number(k) + Number(l);

	// Years to recoup initial investment XX
	/*
	m = p / g;
	result = document.getElementById('m');
	result.innerHTML = Math.round(m*10)/10 + ' years';

	//5 yr savings after initial investment recoup XX
	n = h - p;
	result = document.getElementById('n');
	result.innerHTML = FormatCurrency(n);
	*/
	return true;
}

