﻿function formatCurrency(num, roundoff) {
	num = num.toString().replace(/\$|\,/g,'');
	if (isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	if (roundoff) {
		return (((sign)?'':'-') + '$' + num);
	} else {
		return (((sign)?'':'-') + '$' + num + '.' + cents);
	}
}

function stripCurrency (mixednum) {
	if (mixednum == "") {
		return 0;
	} else {
		mixednum = mixednum.replace("$","");
		mixednum = mixednum.replace(",","");
		num = parseFloat (mixednum, 10);
		return num;
	}
}

function checkForNeg (num) {
	if (num < 0 ) {
		return 0;
	} else {
		return num;
	}
}

function calc_addcosts () {

	/*COSTS*/
	yearcosts = 
		stripCurrency (document.getElementById("tuition_dropdown").value) + 
		stripCurrency (document.getElementById("room_dropdown").value) + 
		stripCurrency (document.getElementById("estimated_costs_activity_fees_year").value) +  
		stripCurrency (document.getElementById("mealplan_dropdown").value) + 
		stripCurrency (document.getElementById("estimated_costs_optional_year").value);
		
	semestercosts =
		(stripCurrency (document.getElementById("tuition_dropdown").value) / 2) + 
		(stripCurrency (document.getElementById("room_dropdown").value) / 2) + 
		stripCurrency (document.getElementById("estimated_costs_activity_fees_semester").value) +  
		(stripCurrency (document.getElementById("mealplan_dropdown").value) / 2) + 
		stripCurrency (document.getElementById("estimated_costs_optional_semester").value);
		
	document.getElementById("sum_tuition_year").innerHTML = formatCurrency (yearcosts);
	document.getElementById("sum_tuition_semester").innerHTML = formatCurrency (semestercosts);
	
	
	/*SCHOLARSHIPS AND GRANTS*/
	yearscholarships = 
		stripCurrency (document.getElementById("academic_scholarship_year").value) + 
		stripCurrency (document.getElementById("other_TLU_year").value) + 
		stripCurrency (document.getElementById("TEG_year").value) + 
		stripCurrency (document.getElementById("LEAP_SLEAP_year").value) +  
		stripCurrency (document.getElementById("pell_grant_year").value) + 
		stripCurrency (document.getElementById("SEOG_year").value) + 
		stripCurrency (document.getElementById("ACG_year").value) + 
		stripCurrency (document.getElementById("SMART_year").value) + 
		stripCurrency (document.getElementById("outside_scholarship_year").value) +
		stripCurrency (document.getElementById("other_scholarship_year").value); 

	semesterscholarships = 
		stripCurrency (document.getElementById("academic_scholarship_semester").value) + 
		stripCurrency (document.getElementById("other_TLU_semester").value) + 
		stripCurrency (document.getElementById("TEG_semester").value) + 
		stripCurrency (document.getElementById("LEAP_SLEAP_semester").value) +  
		stripCurrency (document.getElementById("pell_grant_semester").value) + 
		stripCurrency (document.getElementById("SEOG_semester").value) + 
		stripCurrency (document.getElementById("ACG_semester").value) + 
		stripCurrency (document.getElementById("SMART_semester").value) + 
		stripCurrency (document.getElementById("outside_scholarship_semester").value) +
		stripCurrency (document.getElementById("other_scholarship_semester").value);
		
	document.getElementById("sum_scholarships_year").innerHTML = formatCurrency (yearscholarships);
	document.getElementById("sum_scholarships_semester").innerHTML = formatCurrency (semesterscholarships);
	
	
	/*COSTS LESS SCHOLARSHIPS & GRANTS*/
	document.getElementById("sum_costs_less_scholarships_year").innerHTML = formatCurrency (yearcosts - yearscholarships);
	document.getElementById("sum_costs_less_scholarships_semester").innerHTML = formatCurrency (semestercosts - semesterscholarships);


	/*STUDENT LOANS*/
	yearloans = 
		stripCurrency (document.getElementById("FSL_sub_year").value) + 
		stripCurrency (document.getElementById("FSL_unsum_year").value) + 
		stripCurrency (document.getElementById("FPL_year").value); 

	semesterloans = 
		stripCurrency (document.getElementById("FSL_sub_semester").value) + 
		stripCurrency (document.getElementById("FSL_unsum_semester").value) + 
		stripCurrency (document.getElementById("FPL_semester").value); 

	document.getElementById("sum_loans_year").innerHTML = formatCurrency (yearloans);
	document.getElementById("sum_loans_semester").innerHTML = formatCurrency (semesterloans);


	/*COSTS LESS SCHOLARSHIPS, GRANTS, & LOANS*/
	balancedueyear = yearcosts - yearscholarships - yearloans;
	balanceduesemester = semestercosts - semesterscholarships - semesterloans;
	document.getElementById("balance_due_year").innerHTML = formatCurrency (balancedueyear);
	document.getElementById("balance_due_semester").innerHTML = formatCurrency (balanceduesemester);
	
	
	/*PAYMENT OPTIONS*/
	document.getElementById("payment_full_year").innerHTML = formatCurrency (checkForNeg(balancedueyear));
	document.getElementById("payment_full_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester));

	document.getElementById("payment1_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .4));
//	document.getElementById("payment2_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .2) + checkForNeg((balanceduesemester - balanceduesemester * .8)*.01));
	document.getElementById("payment2_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .202));
//	document.getElementById("payment3_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .2) + checkForNeg((balanceduesemester - balanceduesemester * .6)*.01));
	document.getElementById("payment3_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .20402));
//	document.getElementById("payment4_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .2) + checkForNeg((balanceduesemester - balanceduesemester * .4)*.01));
	document.getElementById("payment4_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester * .2060602));

	document.getElementById("parents_PLUS_year").innerHTML = formatCurrency (checkForNeg(balancedueyear/.97));
	document.getElementById("parents_PLUS_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester/.97));
	
	document.getElementById("option_4_year").innerHTML = formatCurrency (checkForNeg(balancedueyear));
	document.getElementById("option_4_semester").innerHTML = formatCurrency (checkForNeg(balanceduesemester));
		
}

function calc_tuition () {
	document.getElementById("tuition_year").innerHTML = formatCurrency (document.getElementById("tuition_dropdown").value);
	document.getElementById("tuition_semester").innerHTML = formatCurrency (document.getElementById("tuition_dropdown").value / 2);
	calc_addcosts ();
}

function calc_room () {
	document.getElementById("room_year").innerHTML = formatCurrency (document.getElementById("room_dropdown").value);
	document.getElementById("room_semester").innerHTML = formatCurrency (document.getElementById("room_dropdown").value / 2);
	calc_addcosts ();
}

function calc_mealplan () {
	document.getElementById("mealplan_year").innerHTML = formatCurrency (document.getElementById("mealplan_dropdown").value);
	document.getElementById("mealplan_semester").innerHTML = formatCurrency (document.getElementById("mealplan_dropdown").value / 2);
	calc_addcosts ();
}

function halfit (fieldname) {
	document.getElementById(fieldname + "_semester").value = (stripCurrency (document.getElementById(fieldname + "_year").value) / 2);
	calc_addcosts ();
}

function doubleit (fieldname) {
	document.getElementById(fieldname + "_year").value = (stripCurrency (document.getElementById(fieldname + "_semester").value) * 2);
	calc_addcosts ();
}

function init_calculator () {
	calc_tuition ();
	calc_room ();
	calc_mealplan ();
	calc_addcosts ();
}