
var stocks = new Array();

function populate() {
	add_stock("Transocean", "RIG", 609.00 );
	add_stock("Diamond Offshore", "DO", 515.20 );
	add_stock("Valero", "VLO", 281.70 );
	add_stock("Marathon Oil", "MRO", 263.50 );
	add_stock("Oil Service HLDRS - ETF", "OIH", 277.30 );
	add_stock("Sunoco", "SUN", 117.30 );
	add_stock("ConocoPhillips", "COP", 268.90 );
	add_stock("Chevron", "CVX", 191.9 );
	add_stock("Exxon Mobil", "XOM", 152.4 );
}


function calculate() {
	var milesPerMonth = parseInt($('miles_month').value);
	if(milesPerMonth <= 0 || isNaN(milesPerMonth)) {
		alert('You must enter the number of miles you drive per month.');
		return;
	}
	
	var costPerGal = parseFloat($('cost_gal').value);
	if(costPerGal <=0 || isNaN(costPerGal)) {
		alert('You must enter a value for the cost of a gallon of gas');
		return;
	}
	
	var mpg = parseInt($('mpg').value);
	if(mpg <=0 || isNaN(mpg)) {
		alert('You must enter the MPG of your vehicle');
		return;
	}
	
	var investment = parseFloat($('investment').value);
	var gallonsPerYear = (milesPerMonth*12)/mpg;
	var costPerYear = gallonsPerYear * costPerGal;
	
	
	if(investment <= 0 || isNaN(investment)) {
		investment = (costPerYear*5)/ (parseFloat(stocks[0][2])/100);
	}
	
	var investment2 = (costPerYear*5)/ (parseFloat(stocks[0][2])/100);

	var table = '<table  cellspacing="0" cellpadding="1" style="width: 100%; font-family: Arial,Helvetica,sans-serif; font-size: 11px; color: rgb(51, 51, 51);">' +
		'<tbody><tr style="font-weight: 700;">' +
		'<td valign="top">Company </td>' +
		'<td valign="top" align="center">Symbol </td>' +
		'<td colspan="2" valign="top" align="center">5 YR Return</td>' +
		'<td valign="top" align="center">Annual AVG</td>' +
		'<td valign="top" align="center">Difference </td>' +
		'<td valign="top" align="center">Savings Per Gal</td>' +
		'<td valign="top" align="center">Cost Per Gal</td>' +
		'<td valign="top" align="center">Surplus </td>' +
		'</tr></tbody>';
	
	for(var i=0; i<stocks.length; i++) {
		table += "<tr>";
		
		table += '<td valign="top">' + stocks[i][0] + '</td>';
		table += '<td valign="top">' + stocks[i][1] + '</td>';
		table += '<td valign="top">' + Math.round(stocks[i][2],0) + '%</td>';
		
		var delta = parseFloat(stocks[i][2])/100;
		
		table += '<td valign="top" align="right">' + getNumber(delta * investment,0) + '</td>';
		table += '<td valign="top" align="right">' + getNumber((delta * investment)/5,0) + '</td>';
		table += '<td valign="top" align="right">' + getNumber(((delta * investment)/5) - costPerYear,0) + '</td>';
		if ( ( ((delta * investment)/5) - costPerYear ) < 0) {
			table += '<td valign="top" align="right">' + getNumber(((delta * investment)/5)/ gallonsPerYear ,2) + '</td>';
			table += '<td valign="top" align="right">' + getNumber( costPerGal - (((delta * investment)/5)/ gallonsPerYear ),2) + '</td>';
			table += '<td valign="top" align="right">$0</td>';
		} else {
			table += '<td valign="top" align="right">' + getNumber(costPerGal,2) + '</td>';
			table += '<td valign="top" align="right">' + getNumber(0) + '</td>';
			table += '<td valign="top" align="right">' +  getNumber(Math.round(((delta * investment)/5) - costPerYear,0)).replace('.00','') + '</td>';
		}
		table += "</tr>";
	}
	table += '</table>';

	if(investment2 > investment) {
		$('output_reduced_investment').innerHTML = getNumber(investment);
		$('output_reduced_price_gal').innerHTML =getNumber( costPerGal - (((parseFloat(stocks[0][2]/100) * investment)/5)/ gallonsPerYear ),2);
		$('output_reduced').style.display='inline';
	} else {
		$('output_reduced').style.display='none';
	}

	$('output_table').innerHTML = table;
	$('output_gals_consumed').innerHTML = Math.round(gallonsPerYear,0);
	$('output_fuel_cost').innerHTML = getNumber(costPerYear);
	

	$('output_investment').innerHTML = getNumber(investment2);

	$('output_msg').style.display='inline';
	window.location='#results';
}

function getNumber(amount, fixed) {
	amount = parseFloat(amount);
	if ( amount < 0) {
		if(amount < -999) {
			return "$(" + addCommas(Math.abs(amount).toFixed(fixed)) + ")";
		} else {
			return "$(" + Math.abs(amount).toFixed(fixed) + ")";
		}
	} else {
		if(amount > 999) {
			return "$" + addCommas(amount.toFixed(fixed));
		} else {
			return "$" + amount.toFixed(fixed);
		}
	}
}

function addCommas(number) {
	number = '' + number;
	if (number.length > 3) {
		var mod = number.length % 3;
		var output = (mod > 0 ? (number.substring(0,mod)) : '');
		for (i=0 ; i < Math.floor(number.length / 3); i++) {
			if ((mod == 0) && (i == 0)) {
				output += number.substring(mod+ 3 * i, mod + 3 * i + 3);
			} else {
				output+= ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);
			}
		}
		return output;
	} else {
		return number;
	}
}


function $(id) {
	return document.getElementById(id);
}



function add_stock(name, symbol, delta) {
	var x = stocks.length;
	stocks[x] = new Array(3);
	stocks[x] [0] = name;
	stocks[x] [1] = symbol;
	stocks[x] [2] = delta;
}


populate();