
// First, we declare and initialize the input variables
// I don't know if I really have to initialize, but...
var adult1wages = 0;
var adult1other = 0;
var nadults = 0;
var adult2wages = 0;
var adult2other = 0;
var nkids = 0;
var childcare = 0;


// This table will need to be updated when the new poverty numbers come out
// It contains the 100% FPL value for family sizes
// Updated to 2009 figures 3/2/2009
var povtable = new Array(15);
povtable[1] = 902.50;
povtable[2] = 1214.17;
povtable[3] = 1525.84;
povtable[4] = 1837.51;
povtable[5] = 2149.18;
povtable[6] = 2460.85;
povtable[7] = 2772.52;
povtable[8] = 3084.19;
povtable[9] = 3395.86;
povtable[10] = 3707.53;
povtable[11] = 4019.20;
povtable[12] = 4330.87;
povtable[13] = 4642.54;
povtable[14] = 4954.21;
povtable[15] = 5265.88;


// Premium Tables - these will also need updating
// IMPORTANT NOTE: If the cohort definitions change, code below will need to change too!
var VHAPpremium = new Array(999,0,7,25,33,49);
var CHpremium = new Array(999,60,65,110,135,160,185,393.11);

//This section is to deal with the two plans having different premiums (not yet)
var premiumsurcharge = 0;
var surchargeappliesto = 0;
// Need some logic to deal with $20 or $60 for underinsured / uninsured
var DrDPremium = new Array(999,0,15,60);
var underinsPremium = 20;


nadults = prompt("This is the 2009 version. \n How many adults are in the family (1 or 2)? \n",1);
adult1wages = prompt("How much does adult 1 earn in a month from wages or salary? \n",0);
adult1other = prompt("How much does adult 1 earn in a month from other sources (such as rent or dividends?) \n",0);

if (nadults*1 == 2) 
{
adult2wages = prompt("How much does adult 2 earn in a month from wages or salary? \n",0);
}

if (nadults*1 == 2) 
{
adult2other = prompt("How much does adult 2 earn in a month from other sources? \n",0);
}

nkids = prompt("How many children are in the family? \n",0);
if (nkids*1 > 0)
{
childcare = prompt("How much do you spend per month on childcare? \n",0);
}
// Do some computations.  The *1 forces JS to treat the values as numbers
// Without them, it insisted on concatenating

var famsize = nadults*1 + nkids*1;
var totincome = adult1wages*1 + adult1other*1 + adult2wages*1 + adult2other*1;
var fpl0 = totincome / povtable[famsize];

// Initial outputs

 //document.write("nadults is ", nadults, "<br />");
 //document.write("nkids is ", nkids, "<br />");
 //document.write("family size is ", famsize, "<br />");
 document.write("Total monthly income is $", totincome, "<br />");
 document.write("The family is at ", Math.round(fpl0*100), " percent of poverty <br />");
 //document.write("Childcare spending is ",childcare, "<br />");
 
 // First adjustments
 // Max childcare allowance is $175 per kid.  It's a little more for
 // kids <2, but we're not that fancy yet

var childcare2 = Math.min(childcare*1,nkids*175);
document.write("Childcare allowance is $", childcare2, "<br />");

// First income disallow
// $90 per adult, or earned income, if less than $90
var disregard1 = Math.min(90, adult1wages)+childcare2;
if (nadults ==2)
{
disregard1 = disregard1 + Math.min(90,adult2wages);
}
//document.write("Income after first disregard is $",disregard1,"<br />"); 
var adjincome = totincome - disregard1;
document.write("Monthly income after first disregard is: $", adjincome, "<br />");
var fpl1 = adjincome / povtable[famsize];
document.write("FPL after first disregard is ",Math.round(fpl1*100), " percent. <br />");

//So far, so good.  Now the interesting stuff

//First, is the family between 200% and 300%?
var CHflag = 0;
if (fpl1 > 2 && fpl1 <= 3) CHflag = 1;

// document.write("The CHflag is ", CHflag, "<br />");

// Next we calculate the FPL for Catamount purposes, only if CHflag is 1.
//The new disallow is $400 per family, capped at earned income, and
//only applies if the family is between 200% and 300% of poverty
var disregard2 = 0;

if (CHflag == 1) disregard2 = Math.min(400,adult1wages*1+adult2wages*1);


var adjincome2 = adjincome - disregard2;
//document.write("Disregard2 is $", disregard2, "<br />");
document.write("Income after second disregard is $", adjincome2, "<br />");

var fpl2 = adjincome2 / povtable[famsize];
document.write("FPL after second disregard is ",Math.round(fpl2*100), " percent. <br />");

// Calculate adult eligibility category
var adulteligib = "Catamount Health with premium subsidy";

if (fpl1 > 3)
{
adulteligib = "Catamount Health without premium subsidy";
adultpremium = CHpremium[6];
}

if (fpl1 <= 1.5)
{
adulteligib = "VHAP";
}

if (fpl1 <=1.85 && nkids > 0)
{
adulteligib = "VHAP";
}


//Premiums for VHAP folks
if (adulteligib == "VHAP" && fpl2 <=0.5) 
{
adultpremium = VHAPpremium[1];
}
else if (adulteligib == "VHAP" && fpl2 <=0.75)
{
adultpremium = VHAPpremium[2];
}
else if (adulteligib == "VHAP" && fpl2 <=1) 
{
adultpremium = VHAPpremium[3];
}
else if (adulteligib == "VHAP" && fpl2 <=1.5) 
{
adultpremium = VHAPpremium[4];
}
else if (adulteligib == "VHAP" && fpl2 <=1.85) 
{
adultpremium = VHAPpremium[5];
}

//Premiums for Catamount folks

else if (adulteligib == "Catamount Health with premium subsidy"  && fpl2 <1.75)
{
adultpremium = CHpremium[1];
}
else if (adulteligib == "Catamount Health with premium subsidy"  && fpl2 <2)
{
adultpremium = CHpremium[2];
}
else if (adulteligib == "Catamount Health with premium subsidy"  && fpl2 <2.25)
{
adultpremium = CHpremium[3];
}
else if (adulteligib == "Catamount Health with premium subsidy"  && fpl2 <2.5)
{
adultpremium = CHpremium[4];
}
else if (adulteligib == "Catamount Health with premium subsidy"  && fpl2 <2.75)
{
adultpremium = CHpremium[5];
}
else if (adulteligib == "Catamount Health with premium subsidy"  && fpl2 <3)
{
adultpremium = CHpremium[6];
}
else adultpremium = CHpremium[7];
document.write("Adults in the family are eligible for ", adulteligib, "<br />");
document.write("The premium for each adult is $", adultpremium, "<br />");

// Premiums for kids

var kidspremium = 0;
if (nkids > 0 && fpl1 <= 1.85) 
{
kidspremium = DrDPremium[1];
}
else if (nkids > 0 && fpl1 <= 2.25) 
{
kidspremium = DrDPremium[2];
}
else if (nkids > 0 && fpl1 <= 3) 
{
kidspremium = DrDPremium[3];
}
else kidspremium = 999;

if (nkids > 0 && fpl1 <= 3)
{
document.write("Children in the family are eligible for Dr. Dynasaur. <br />");
document.write("Premium is $", kidspremium, "<br />");
}

if (nkids > 0 && kidspremium == DrDPremium[3])
{
document.write("The premium for children with other health insurance is $", underinsPremium, "<br />");
}
if (nkids > 0 && fpl1 > 3)
{
document.write("Children in the family are not eligible for Dr. Dynasaur <br />");
} 
