			
			//#####################################################################
			//# Author: Zachary Biles
			//# Website: http://www.zachbiles.com
			//# Date: December 15, 2007
			//# (C)2007 Zachary Biles. All Rights Reserved. May NOT be copied, reproduced or distributed without permission.
			//#####################################################################

			//#####################################################################
			//Variables
			var millionset = false;
			var crossover = false;
			var millionyear = "";
			var coyear = "";
			var salarray = [];
			var interest = [];
			var blank = [];
			//#####################################################################
			
			//MAIN#################################################################
			$(document).ready(function(){
				//Adds striping and hover states
				$(".iteration tr:even").addClass("alt");
				$(".iteration tr").mouseover(function(){
					$(this).addClass("over");
				});
				$(".iteration tr").mouseout(function(){
					$(this).removeClass("over");
				});
				
				//Preps the chart
				var thisyear = new Date();
				var year = thisyear.getYear() + 1900;
				blank.push([0,0]);
				blank.push([0,0]);
				$.plot($("#salarytointerest"), [blank,blank], {yaxis: {min:0, max: 300000, noTicks: 15}});
			});
			//END MAIN###############################################################
			
			function refreshTable(){
				$(".iteration tr:even").addClass("alt");
				$(".iteration tr").mouseover(function(){
					$(this).addClass("over");
				});
				$(".iteration tr").mouseout(function(){
					$(this).removeClass("over");
				});
				$(".millionaire tr").addClass("glow");
			}
			
			function compute(income, raise, maxsalary, percentinvest, apy, compound, tax){
				cleartable();
				cleargraph();
				
				var thisyear = new Date();
				var year = thisyear.getYear() + 1900;
				
				var aftertax = (income * (1-(tax/100))).toFixed(2);
				var invested = (aftertax * (percentinvest/100)).toFixed(2);
				var principal = (invested*(exponent(1+(apy/100)/compound, parseInt(compound)))).toFixed(2);
				var gain = (principal-invested).toFixed(2);
				
				
				$(".iteration tbody").append(tablerow(year, income, aftertax, invested, principal, gain));
				
				var salary = income;
				
				salarray.push([1, parseInt(salary)]);
				interest.push([1, parseInt(gain)]);
				
				for(var i=0; i<=50; i++)
				{
					year++;
					if(parseFloat(salary) <= parseFloat(maxsalary))
						salary = (salary * (1+raise/100)).toFixed(2);
					aftertax = (salary * (1-(tax/100))).toFixed(2);
					invested = (aftertax * (percentinvest/100)).toFixed(2);
					combined = parseFloat(invested) + parseFloat(principal);
					principal = (combined*exponent((1+(apy/100)/compound), compound) ).toFixed(2);
					gain = (principal-combined).toFixed(2);
			
					$(".iteration tbody").append(tablerow(year, salary, aftertax, invested, principal, gain));
					salarray.push([i+2, salary]);
					interest.push([i+2, parseInt(gain)]);
				}
				
				refreshTable();
				drawgraph(salary);
				setDates();
			
			}
			
			function setDates(){
				$("#co-dates").html("<b>Year Interest Surpasses Income: </b>" + coyear + "<br><b>Year Principal Surpasses One Million: </b>" + millionyear);
			}
			
			function exponent(value, base){
				if(base==1)
					return value;
				
				var x=1;
				for(var i=1; i <= parseInt(base); i++)
				{
					x = x * value;
				}
				return x;
			}
			
			function tablerow(year, salary, aftertax, invested, principal, gain){
				if(parseFloat(principal) >= 1000000 && !millionset){
					million = "millionaire ";
					millionset = true;
					millionyear = year;
				}
				else
					million = "";
					
				var crossedover ="";
				if(parseFloat(gain) >= salary && !crossover)
				{
					crossedover = "crossover ";
					crossover = true;
					coyear = year;
				}
			
				return "<tr><td align='right' class=\"" + million + crossedover + "\">" + year + "</td><td align='right' class=\"" + million + crossedover + "\">" + salary + "</td><td align='right' class=\"" + million + crossedover + "\">" + aftertax + "</td><td align='right' class=\"" + million + crossedover + "\">" + invested + "</td><td align='right' class=\"" + million + crossedover + "\">" + principal + "</td><td align='right' class=\"" + million + crossedover + "\">" + gain + "</td></tr>";
			}
			
			function cleartable(){
				$(".iteration tbody").html("<tr><td></td></tr>");
			}
			
			function cleargraph(){
				salarray = [];
				interest = [];
				millionset = false;
				crossover = false;
				coyear = "";
				millionyear = "";
			}
			
			function drawgraph(salary){
				var thisyear = new Date();
				var year = thisyear.getYear() + 1900;
				$.plot($("#salarytointerest"), [{label: "Salary", data: salarray}, {label: "Interest", data: interest}], {yaxis: {min:0, max: 300000, noTicks: 15}, xaxis: {noTicks: 10, ticks: [[10, year+10], [20, year+20], [30,year+30], [40,year+40], [50,year+50]]}});
				
			}
