// JavaScript Document

function getId(url, update) {
	new Ajax.Request('/grants/projects/'+url, {asynchronous:true, evalScripts:true, onComplete:function(transport) {
	$(update).value = transport.responseText;																							 }
	});
}

function add_program(num, proj_id) {
	newId = getId('new_program', "PublicProgram"+num+"Id");
	next = num+1;
	divId = 'new_program'+num;
	nextDiv = 'new_program'+next;
	document.getElementById(divId).innerHTML = '<input type="hidden" name="data[PublicProgram]['+num+'][project_id]" value="'+proj_id+'" id="PublicProgram'+num+'ProjectId" /><input type="hidden" name="data[PublicProgram]['+num+'][id]" value="" id="PublicProgram'+num+'Id" /><table border="0" cellspacing="10"><tr><td align="right">Start Date/Time:</td><td width="350"><select name="data[PublicProgram]['+num+'][date_time][month]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'DateTimeMonth"><option value="01">January</option><option value="02">February</option><option value="03">March</option><option value="04">April</option><option value="05">May</option><option value="06">June</option><option value="07">July</option><option value="08">August</option><option value="09">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select> <select name="data[PublicProgram]['+num+'][date_time][day]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'DateTimeDay"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select> <select name="data[PublicProgram]['+num+'][date_time][year]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'DateTimeYear"><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option><option value="2013">2013</option><option value="2014">2014</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option><option value="2020">2020</option></select><select name="data[PublicProgram]['+num+'][date_time][hour]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'DateTimeHour"><option value=""></option><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12" selected="selected">12</option></select>:<select name="data[PublicProgram]['+num+'][date_time][min]" minYear="2009" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'DateTimeMin"><option value="0" selected="selected">00</option><option value="30">30</option></select> <select name="data[PublicProgram]['+num+'][date_time][meridian]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'DateTimeMeridian"><option value="am">am</option><option value="pm">pm</option></select></td>		<td>End: <select name="data[PublicProgram]['+num+'][end_date_time][month]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'EndDateTimeMonth"><option value="01">January</option><option value="02">February</option><option value="03">March</option><option value="04">April</option><option value="05">May</option><option value="06">June</option><option value="07">July</option><option value="08">August</option><option value="09">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select> <select name="data[PublicProgram]['+num+'][end_date_time][day]" minYear="2009" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'EndDateTimeDay"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option><option value="13">13</option><option value="14">14</option><option value="15">15</option><option value="16">16</option><option value="17">17</option><option value="18">18</option><option value="19">19</option><option value="20">20</option><option value="21">21</option><option value="22">22</option><option value="23">23</option><option value="24">24</option><option value="25">25</option><option value="26">26</option><option value="27">27</option><option value="28">28</option><option value="29">29</option><option value="30">30</option><option value="31">31</option></select> <select name="data[PublicProgram]['+num+'][end_date_time][year]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'EndDateTimeYear"><option value="2010">2010</option><option value="2011">2011</option><option value="2012">2012</option><option value="2013">2013</option><option value="2014">2014</option><option value="2015">2015</option><option value="2016">2016</option><option value="2017">2017</option><option value="2018">2018</option><option value="2019">2019</option><option value="2020">2020</option></select><select name="data[PublicProgram]['+num+'][end_date_time][hour]" minYear="2009" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'EndDateTimeHour"><option value="01">1</option><option value="02">2</option><option value="03">3</option><option value="04">4</option><option value="05">5</option><option value="06">6</option><option value="07">7</option><option value="08">8</option><option value="09">9</option><option value="10">10</option><option value="11">11</option><option value="12">12</option></select>:<select name="data[PublicProgram]['+num+'][end_date_time][min]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'EndDateTimeMin"><option value="0">00</option><option value="30">30</option></select> <select name="data[PublicProgram]['+num+'][end_date_time][meridian]" minYear="2010" maxYear="2020" div="" reverse="" id="PublicProgram'+num+'EndDateTimeMeridian"><option value="am">am</option><option value="pm">pm</option></select></td></tr><tr>		<td align="right">Program Location:</td>		<td colspan="2"><input name="data[PublicProgram]['+num+'][address1]" type="text" size="52" maxlength="255" id="PublicProgram'+num+'Address1" /></td>	</tr>	<tr>		<td>&nbsp;</td>		<td colspan="2"><input name="data[PublicProgram]['+num+'][address2]" type="text" size="52" maxlength="255" id="PublicProgram'+num+'Address2" /></td>	</tr> <tr>		<td>&nbsp;</td>		<td colspan="2"><input name="data[PublicProgram]['+num+'][address3]" type="text" size="52" maxlength="255" id="PublicProgram'+num+'Address3" /></td>	</tr>	<tr>		<td align="right">City:</td>		<td><input name="data[PublicProgram]['+num+'][city]" type="text" size="52" maxlength="255" id="PublicProgram'+num+'City" /></td>		<td>State: <input name="data[PublicProgram]['+num+'][state]" type="text" size="2" maxlength="5" id="PublicProgram'+num+'State" />&nbsp;&nbsp;Zip <input name="data[PublicProgram]['+num+'][zipcode]" type="text" size="5" maxlength="12" id="PublicProgram'+num+'Zipcode" /></td>	</tr><tr><td align="right">Program Title:</td><td><input name="data[PublicProgram]['+num+'][title]" type="text" size="52" value="" maxlength="255" id="PublicProgram'+num+'Title" /></td><td>Presenters: <input name="data[PublicProgram]['+num+'][presenter]" type="text" size="52" value="" maxlength="255" id="PublicProgram'+num+'Presenter" /> </td></tr><tr><td align="right">Format:</td><td><input name="data[PublicProgram]['+num+'][format]" id="PublicProgram'+num+'Format" size="52" /></td><td>&nbsp;</td></tr><tr>		<td valign="top" align="right">Summary of content:</td>		<td colspan="2"><span id="char'+num+'">250</span> characters left.<br /><textarea name="data[PublicProgram]['+num+'][summary]" cols="70" rows="6" id="PublicProgram'+num+'Summary" onkeyup="charCount(this, \'char'+num+'\', 250)" onblur="charCount(this, \'char'+num+'\', 250)"></textarea></td>	</tr></table><hr /><div id="'+nextDiv+'"><a href="javascript:void(0)" onclick="add_program('+next+','+proj_id+')">+ Add program</a></div>';
}

function add_scholar(num, prop_nar_id, nextres) {
	newId = getId('new_scholar/'+prop_nar_id, "PropNarScholar"+num+"Id");
	next = num+1;
	nextres2 = nextres+1;
	divId = 'new_scholar'+num;
	nextDiv = 'new_scholar'+next;
	document.getElementById(divId).innerHTML = '<input type="hidden" name="data[PropNarScholar]['+num+'][prop_narrative_id]" value="'+prop_nar_id+'" id="PropNarScholar'+num+'PropNarrativeId" /><input type="hidden" name="data[PropNarScholar]['+num+'][id]" value="" id="PropNarScholar'+num+'Id" /><table cellspacing="0" class="overview">	<tr>		<td>Name:</td>		<td bgcolor="#d4e4f4"><input name="data[PropNarScholar]['+num+'][name]" type="text" size="40" value="" maxlength="255" id="PropNarScholar'+num+'Name" /></td>		<td>Current Position:</td>		<td bgcolor="#d4e4f4"><input name="data[PropNarScholar]['+num+'][title]" type="text" size="40" value="" maxlength="255" id="PropNarScholar'+num+'Title" /></td>	</tr>		<tr>		<td>Role in this Project:</td>		<td bgcolor="#d4e4f4"><input name="data[PropNarScholar]['+num+'][role]" type="text" size="40" value="" maxlength="255" id="PropNarScholar'+num+'Role" /></td>	</tr>  <tr>	<td colspan="4">Biographical Sketch or Resume:<br /><span id="char'+nextres+'">3000</span> characters left.<br /><textarea name="data[PropNarScholar]['+num+'][resume]" rows="20" cols="50" onkeypress="charCount(this, &quot;char'+nextres+'&quot;, 3000)" onblur="charCount(this, &quot;char'+nextres+'&quot;, 3000)" id="PropNarScholar'+num+'Resume"></textarea></td>	</tr></table><div id="'+nextDiv+'"><a href="javascript:void(0)" onclick="add_scholar('+next+', '+prop_nar_id+','+nextres2+')">+ Add scholar</a></div>';	
}

function add_staff(num, budget_id) {
	getId('new_sal/'+budget_id, "SalBenefit"+num+"Id");
	newtable = document.getElementById('newTable')
	/*numRows = newtable.rows.length;
	if (num >= numRows) {
		num--;
	}*/
	next = num+1;
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[SalBenefit]['+num+'][budget_id]" value="'+budget_id+'" id="SalBenefit'+num+'BudgetId" /><input type="hidden" name="data[SalBenefit]['+num+'][id]" value="" id="SalBenefit'+num+'Id" /><input name="data[SalBenefit]['+num+'][name]" type="text" size="20" value="" maxlength="255" id="SalBenefit'+num+'Name" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[SalBenefit]['+num+'][title]" type="text" size="20" value="" maxlength="255" id="SalBenefit'+num+'Title" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[SalBenefit]['+num+'][num_persons]" type="text" size="5" value="0" maxlength="10" id="SalBenefit'+num+'NumPersons" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input name="data[SalBenefit]['+num+'][computation]" type="text" size="20" value="" maxlength="255" id="SalBenefit'+num+'Computation" />';
	d = x.insertCell(4);
	d.align = 'center';
	d.innerHTML ='<input name="data[SalBenefit]['+num+'][request]" type="text" size="7" value="0.00" maxlength="10" id="SalBenefit'+num+'Request" onblur="calcTotal('+num+', \'SalBenefit\'); calcGrandTotals(\'SalBenefit\', \'Request\')" />';
	e = x.insertCell(5);
	e.align = 'center';
	e.innerHTML ='<input name="data[SalBenefit]['+num+'][share]" type="text" size="7" value="0.00" maxlength="10" id="SalBenefit'+num+'Share" onblur="calcTotal('+num+', \'SalBenefit\'); calcGrandTotals(\'SalBenefit\', \'Share\')" />';
	f = x.insertCell(6);
	f.align = 'center';
	f.innerHTML ='<input name="data[SalBenefit]['+num+'][total]" type="text" size="7" value="0.00" maxlength="20" id="SalBenefit'+num+'Total" onfocus="document.getElementById(\'total\').innerHTML = parseFloat(document.getElementById(\'total\').innerHTML) + +this.value;" />';
	g = x.insertCell(7);
	g.align = 'center';
	g.innerHTML ='<div id="delete"><!--<a href="javascript:void(0)" onclick="deleteThisRow('+next+')">x</a>--></div>';

	document.getElementById("new_staff").innerHTML = '<a href="javascript:void(0)" onclick="add_staff('+next+', '+budget_id+')">+ Add Staff</a>';
	
	document.getElementById("placeholder").value = next;
}

function deleteThisRow(rowIndex) {
	newtable = document.getElementById('newTable');
	newtable.deleteRow(rowIndex);
}

function calcTotal(num, model) {
	model_num = model+num;
	request = document.getElementById(model_num+'Request').value;
	share = document.getElementById(model_num+'Share').value;
	document.getElementById(model_num+'Total').value = +request + +share;
}

function calcGrandTotals(model,field) {
	counter = document.getElementById("placeholder").value;
	sum = 0;
	for (i = 0; i < counter; i++) {
		modelId = model+i+field;
		sum = sum + +document.getElementById(modelId).value;
	}
	if (field != 'Total') {
		field = field.toLowerCase() + "_";
	} else {
		field = '';
	}
	document.getElementById(field+"total").innerHTML = sum;
}

function add_personnel(num, budget_id) {
	getId('new_personnel/'+budget_id, "PersonnelFee"+num+"Id");
	next = num+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[PersonnelFee]['+num+'][budget_id]" value="'+budget_id+'" id="PersonnelFee'+num+'BudgetId" /><input type="hidden" name="data[PersonnelFee]['+num+'][id]" value="" id="PersonnelFee'+num+'Id" /><input name="data[PersonnelFee]['+num+'][name]" type="text" size="20" value="" maxlength="255" id="PersonnelFee'+num+'Name" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[PersonnelFee]['+num+'][days_on_proj]" type="text" size="20" value="0" maxlength="10" id="PersonnelFee'+num+'DaysOnProj" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[PersonnelFee]['+num+'][rate]" type="text" size="5" value="0.00" maxlength="13" id="PersonnelFee'+num+'Rate" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input name="data[PersonnelFee]['+num+'][request]" type="text" size="7" value="0.00" maxlength="13" id="PersonnelFee'+num+'Request" onblur="calcTotal('+num+', \'PersonnelFee\'); calcGrandTotals(\'PersonnelFee\', \'Request\')" />';
	d = x.insertCell(4);
	d.align = 'center';
	d.innerHTML ='<input name="data[PersonnelFee]['+num+'][share]" type="text" size="7" value="0.00" maxlength="13" id="PersonnelFee'+num+'Share" onblur="calcTotal('+num+', \'PersonnelFee\'); calcGrandTotals(\'PersonnelFee\', \'Share\')" />';
	e = x.insertCell(5);
	e.align = 'center';
	e.innerHTML ='<input name="data[PersonnelFee]['+num+'][total]" type="text" size="7" value="0.00" maxlength="13" id="PersonnelFee'+num+'Total" onfocus="calcGrandTotals(\'PersonnelFee\', \'Total\')" />';
	f = x.insertCell(6);
	f.align = 'center';
	f.innerHTML ='<div id="delete"></div>';
	
	document.getElementById("new_personnel").innerHTML = '<a href="javascript:void(0)" onclick="add_personnel('+next+', '+budget_id+')">+ Add Personnel</a>';
	
	document.getElementById("placeholder").value = next;
	
}

function add_travel(num, budget_id) {
	getId('new_travel/'+budget_id, "TravelCost"+num+"Id");
	next2 = num+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next2);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[TravelCost]['+num+'][budget_id]" value="'+budget_id+'" id="TravelCost'+num+'BudgetId" /><input type="hidden" name="data[TravelCost]['+num+'][id]" value="" id="TravelCost'+num+'Id" /><input name="data[TravelCost]['+num+'][name]" type="text" size="20" value="" maxlength="255" id="TravelCost'+num+'Name" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[TravelCost]['+num+'][start]" type="text" size="20" value="" maxlength="20" id="TravelCost'+num+'Start" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[TravelCost]['+num+'][end]" type="text" size="20" value="" maxlength="20" id="TravelCost'+num+'End" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input name="data[TravelCost]['+num+'][transport]" type="text" size="10" value="" maxlength="255" id="TravelCost'+num+'Transport" />';
	d = x.insertCell(4);
	d.align = 'center';
	d.innerHTML ='<input name="data[TravelCost]['+num+'][travel_days]" type="text" size="2" value="0" maxlength="20" id="TravelCost'+num+'TravelDays" />';
	e = x.insertCell(5);
	e.align = 'center';
	e.innerHTML ='<input name="data[TravelCost]['+num+'][food_cost]" type="text" size="5" value="0" maxlength="20" id="TravelCost'+num+'FoodCost" />';
	f = x.insertCell(6);
	f.align = 'center';
	f.innerHTML ='<input name="data[TravelCost]['+num+'][lodge_cost]" type="text" size="5" value="0" maxlength="20" id="TravelCost'+num+'LodgeCost" />';
	g = x.insertCell(7);
	g.align = 'center';
	g.innerHTML ='<input name="data[TravelCost]['+num+'][trans_cost]" type="text" size="5" value="0" maxlength="20" id="TravelCost'+num+'TransCost" />';
	h = x.insertCell(8);
	h.align = 'center';
	h.innerHTML ='<input name="data[TravelCost]['+num+'][request]" type="text" size="7" value="0.00" maxlength="13" id="TravelCost'+num+'Request" onblur="calcTotal('+num+', \'TravelCost\');calcGrandTotals(\'TravelCost\', \'Request\')" />';
	i = x.insertCell(9);
	i.align = 'center';
	i.innerHTML ='<input name="data[TravelCost]['+num+'][share]" type="text" size="7" value="0.00" onblur="calcTotal('+num+', \'TravelCost\');calcGrandTotals(\'TravelCost\', \'Share\')" maxlength="13" id="TravelCost'+num+'Share" />';
	i = x.insertCell(10);
	i.align = 'center';
	i.innerHTML ='<input name="data[TravelCost]['+num+'][total]" type="text" size="7" value="0.00" maxlength="13" id="TravelCost'+num+'Total" onfocus="calcGrandTotals(\'TravelCost\', \'Total\')" />';
	j = x.insertCell(11);
	j.align = 'center';
	j.innerHTML ='<div id="delete"></div>';
	
	document.getElementById("new_travel").innerHTML = '<a href="javascript:void(0)" onclick="add_travel('+next2+', '+budget_id+')">+ Add Travel Cost</a>';
	
	document.getElementById("placeholder").value = next2;
}

function add_supply(num, budget_id) {
	getId('new_supply/'+budget_id, "Supply"+num+"Id");
	next = num+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[Supply]['+num+'][budget_id]" value="'+budget_id+'" id="Supply'+num+'BudgetId" /><input type="hidden" name="data[Supply]['+num+'][id]" value="" id="Supply'+num+'Id" /><input name="data[Supply]['+num+'][item]" type="text" size="20" value="" id="Supply'+num+'Item" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[Supply]['+num+'][computation]" type="text" size="20" value="" maxlength="255" id="Supply'+num+'Computation" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[Supply]['+num+'][request]" type="text" size="7" value="0.00" maxlength="13" id="Supply'+num+'Request" onblur="calcTotal('+num+', \'Supply\');calcGrandTotals(\'Supply\', \'Request\')" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input name="data[Supply]['+num+'][share]" type="text" size="7" value="0.00" onblur="calcTotal('+num+', \'Supply\');calcGrandTotals(\'Supply\', \'Share\')" maxlength="13" id="Supply'+num+'Share" />';
	d = x.insertCell(4);
	d.align = 'center';
	d.innerHTML ='<input name="data[Supply]['+num+'][total]" type="text" size="7" value="0.00" maxlength="13" id="Supply'+num+'Total" onfocus="calcGrandTotals(\'Supply\', \'Total\')" />';
	e = x.insertCell(5);
	e.align = 'center';
	e.innerHTML ='<div id="delete"></div>';

	document.getElementById("new_supply").innerHTML = '<a href="javascript:void(0)" onclick="add_supply('+next+', '+budget_id+')">+ Add Supplies</a>';
	
	document.getElementById("placeholder").value = next;
}

function add_service(num, budget_id) {
	getId('new_service/'+budget_id, "Service"+num+"Id");
	next = num+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[Service]['+num+'][budget_id]" value="'+budget_id+'" id="Service'+num+'BudgetId" /><input type="hidden" name="data[Service]['+num+'][id]" value="" id="Service'+num+'Id" /><input name="data[Service]['+num+'][item]" type="text" size="20" value="" id="Service'+num+'Item" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[Service]['+num+'][computation]" type="text" size="20" value="" maxlength="255" id="Service'+num+'Computation" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[Service]['+num+'][request]" type="text" size="7" value="0.00" maxlength="13" id="Service'+num+'Request" onblur="calcTotal('+num+', \'Service\');calcGrandTotals(\'Service\', \'Request\')" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input name="data[Service]['+num+'][share]" type="text" size="7" value="0.00" onblur="calcTotal('+num+', \'Service\');calcGrandTotals(\'Service\', \'Share\')" maxlength="13" id="Service'+num+'Share" />';
	d = x.insertCell(4);
	d.align = 'center';
	d.innerHTML ='<input name="data[Service]['+num+'][total]" type="text" size="7" value="0.00" maxlength="13" id="Service'+num+'Total" onfocus="calcGrandTotals(\'Service\', \'Total\')" />';
	e = x.insertCell(5);
	e.align = 'center';
	e.innerHTML ='<div id="delete"></div>';
	
	document.getElementById("new_service").innerHTML = '<a href="javascript:void(0)" onclick="add_service('+next+', '+budget_id+')">+ Add Service</a>';
	
	document.getElementById("placeholder").value = next;
}

function add_other_cost(num, budget_id) {
	getId('new_other/'+budget_id, "OtherCost"+num+"Id");
	next = num+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[OtherCost]['+num+'][budget_id]" value="'+budget_id+'" id="OtherCost'+num+'BudgetId" /><input type="hidden" name="data[OtherCost]['+num+'][id]" value="" id="OtherCost'+num+'Id" /><input name="data[OtherCost]['+num+'][item]" type="text" size="20" value="" id="OtherCost'+num+'Item" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[OtherCost]['+num+'][computation]" type="text" size="20" value="" maxlength="255" id="OtherCost'+num+'Computation" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[OtherCost]['+num+'][request]" type="text" size="7" value="0.00" maxlength="13" id="OtherCost'+num+'Request" onblur="calcTotal('+num+', \'OtherCost\');calcGrandTotals(\'OtherCost\', \'Request\')" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input name="data[OtherCost]['+num+'][share]" type="text" size="7" value="0.00" maxlength="13" id="OtherCost'+num+'Share" onblur="calcTotal('+num+', \'OtherCost\');calcGrandTotals(\'OtherCost\', \'Share\')" />';
	d = x.insertCell(4);
	d.align = 'center';
	d.innerHTML ='<input name="data[OtherCost]['+num+'][total]" type="text" size="7" value="0.00" maxlength="13" id="OtherCost'+num+'Total" onfocus="calcGrandTotals(\'OtherCost\', \'Total\')" />';
	e = x.insertCell(5);
	e.align = 'center';
	e.innerHTML ='<div id="delete"></div>';
	
	document.getElementById("new_other_cost").innerHTML = '<a href="javascript:void(0)" onclick="add_other_cost('+next+', '+budget_id+')">+ Add Other Costs</a>';
	
	document.getElementById("placeholder").value = next;
}

function add_fund_source(num, budget_id) {
	getId("new_fund/"+budget_id, "FundSource"+num+"Id");
	next = num+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.align = 'center';
	y.innerHTML = '<input type="hidden" name="data[FundSource]['+num+'][budget_id]" value="'+budget_id+'" id="FundSource'+num+'BudgetId" /><input type="hidden" name="data[FundSource]['+num+'][id]" value="" id="FundSource'+num+'Id" /><input name="data[FundSource]['+num+'][source]" type="text" size="20" value="" id="FundSource'+num+'Source" />';
	a = x.insertCell(1);
	a.align = 'center';
	a.innerHTML ='<input name="data[FundSource]['+num+'][amount]" type="text" size="20" value="0.00" maxlength="255" id="FundSource'+num+'Amount" />';
	b = x.insertCell(2);
	b.align = 'center';
	b.innerHTML ='<input name="data[FundSource]['+num+'][purpose]" type="text" size="30" value="" maxlength="13" id="FundSource'+num+'Purpose" />';
	c = x.insertCell(3);
	c.align = 'center';
	c.innerHTML ='<input type="radio" name="data[FundSource]['+num+'][committed]" id="FundSource'+num+'Committed1" fieldset="" value="1" />Committed&nbsp;&nbsp;&nbsp;<input type="radio" name="data[FundSource]['+num+'][committed]" id="FundSource'+num+'Committed0" fieldset="" value="0"  />Potential';
	e = x.insertCell(4);
	e.align = 'center';
	e.innerHTML ='<div id="delete"></div>';
	
	document.getElementById("new_fund_source").innerHTML = '<a href="javascript:void(0)" onclick="add_fund_source('+next+', '+budget_id+')">+ Add Funding Source</a>';
}

function add_prev_grant(num, summary_id) {
	next = num+1;
	divId = 'new_prev_grant'+num;
	nextDiv = 'new_prev_grant'+next;
	document.getElementById(divId).innerHTML = '<input type="hidden" name="data[PrevGrant]['+num+'][go_summary_id]" value="'+summary_id+'" id="PrevGrant'+num+'GoSummaryId" /><table border="0" cellspacing="0" class="overview">	<tr>		<td>Grant Number:</td>		<td><input name="data[PrevGrant]['+num+'][grant_num]" type="text" size="20" maxlength="255" value="" id="PrevGrant'+num+'GrantNum" /></td>	</tr>	<tr>		<td>Project Title:</td>		<td><input name="data[PrevGrant]['+num+'][proj_title]" type="text" size="20" maxlength="255" value="" id="PrevGrant'+num+'ProjTitle" /></td>	</tr>	<tr>		<td>Awarded:</td>		<td><input name="data[PrevGrant]['+num+'][awarded]" type="text" size="20" maxlength="13" value="0.00" id="PrevGrant'+num+'Awarded" /></td>	</tr>	<tr>		<td>Requested:</td>		<td><input name="data[PrevGrant]['+num+'][request]" type="text" size="7" maxlength="13" value="0.00" id="PrevGrant'+num+'Request" /></td>	</tr>	<tr>		<td>Description:</td>		<td><textarea name="data[PrevGrant]['+num+'][desc]" cols="30" rows="6" id="PrevGrant'+num+'Desc" ></textarea></td>	</tr>	<tr>		<td>Audience:</td>		<td><textarea name="data[PrevGrant]['+num+'][audience]" cols="30" rows="6" id="PrevGrant'+num+'Audience" ></textarea></td>	</tr>	<tr>		<td>Admin.:</td>		<td><select name="data[PrevGrant]['+num+'][admin_id]" id="PrevGrant'+num+'AdminId"><option value="1">N/A</option><option value="2">Problematic</option><option value="3">Average</option><option value="4">Good</option></select></td>	</tr></table><br />		<div id="new_prev_grant'+next+'"><a href="javascript:void(0)" onclick="add_prev_grant('+next+', '+summary_id+')">+ Add Previous Grant</a></div>';
	}
	
function charCount(field, countFieldId, limit) {
	span = document.getElementById(countFieldId);
	char_count = limit;
	char_count = char_count - field.value.length;
	if (char_count <= 0) {
		alert("You have reached the limit for this field");
		field.value = field.value.substr(0, limit + 1);
	}
	if (char_count < 0) char_count = 0;
	span.innerHTML = char_count;	
}

function add_document(num, project_id) {
	next = num+1;
	secRow = next+1;
	newtable = document.getElementById('newTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.innerHTML = '<input type="hidden" name="data[Document]['+num+'][project_id]" value="'+project_id+'" id="Document'+num+'ProjectId" /><input name="data[Document]['+num+'][title]" type="text" size="40" value="" maxlength="100" id="Document'+num+'Title" />';
	w = x.insertCell(1);
	w.innerHTML = '<input type="file" name="data[Document]['+num+'][upload]" div="" label="" size="40" value="" id="Document'+num+'Upload" />';
	
	document.getElementById("new_document").innerHTML = '<a href="javascript:void(0)" onclick="add_document('+next+', '+project_id+')">+ Add Document</a>';
}

function add_video(num, project_id) {
	next = num+1;
	secRow = next+1;
	newtable = document.getElementById('vidTable')
	x = newtable.insertRow(next);
	
	y = x.insertCell(0);
	y.innerHTML = '<input type="hidden" name="data[Video]['+num+'][project_id]" value="'+project_id+'" id="Video'+num+'ProjectId" /><input name="data[Video]['+num+'][title]" type="text" size="40" value="" maxlength="100" id="Video'+num+'Title" />';
	w = x.insertCell(1);
	w.innerHTML = '<input type="text" name="data[Video]['+num+'][url]" div="" label="" size="53" value="" id="Video'+num+'Url" />';
	
	document.getElementById("new_video").innerHTML = '<a href="javascript:void(0)" onclick="add_video('+next+', '+project_id+')">+ Add Video</a>';
}