//Input Variables
var debugmode = true;
var doc_phys, doc_visit, doc_special, doc_gyn, mammogram, PSA_test, xray, emerg;
var allergy, glucose, pulmonary, mri, mental;
var immunization, cholesterol, chiropractic, mat_norm, mat_ces, colonoscopy, emerg, two_day_hospital;
var drug_ret_gen, drug_ret_pref, drug_ret_nonpref;
var drug_mo_gen, drug_mo_pref, drug_mo_nonpref; 
var other_exp, cvg, cvgLevel, medicare_type, income, num_depends;
				
// Output Variables for medical costs
var STANDARD_IN_deduct_disp, STANDARD_OUT_deduct_disp, PREMIER_IN_deduct_disp, PREMIER_OUT_deduct_disp, CIGNA_PREM_IN_deduct_disp, CIGNA_PREM_OUT_deduct_disp, KAISER_deduct_disp;

var STANDARD_IN_copay_disp, STANDARD_OUT_copay_disp, PREMIER_IN_copay_disp, PREMIER_OUT_copay_disp, CIGNA_PREM_IN_copay_disp, CIGNA_PREM_OUT_copay_disp, KAISER_copay_disp, CIGNA_copay_disp;

var STANDARD_IN_coin_disp, STANDARD_OUT_coin_disp, PREMIER_IN_coin_disp, PREMIER_OUT_coin_disp, CIGNA_PREM_IN_coin_disp, CIGNA_PREM_OUT_coin_disp, KAISER_coin_disp, CIGNA_coin_disp;

var STANDARD_IN_enc_disp, STANDARD_OUT_enc_disp, PREMIER_IN_enc_disp, PREMIER_OUT_enc_disp, CIGNA_PREM_IN_enc_disp, CIGNA_PREM_OUT_enc_disp, KAISER_enc_disp, CIGNA_enc_disp;

var STANDARD_IN_oopre_disp, STANDARD_OUT_oopre_disp, PREMIER_IN_oopre_disp, PREMIER_OUT_oopre_disp, CIGNA_PREM_IN_oopre_disp, CIGNA_PREM_OUT_oopre_disp, KAISER_oopre_disp, CIGNA_oopre_disp

var STANDARD_IN_prem_disp, STANDARD_OUT_prem_disp, PREMIER_IN_prem_disp, PREMIER_OUT_prem_disp, CIGNA_PREM_IN_prem_disp, CIGNA_PREM_OUT_prem_disp, KAISER_prem_disp, CIGNA_prem_disp;

var STANDARD_IN_oopost_disp, STANDARD_OUT_oopost_disp, PREMIER_IN_oopost_disp, PREMIER_OUT_oopost_disp, CIGNA_PREM_IN_oopost_disp, CIGNA_PREM_OUT_oopost_disp, KAISER_oopost_disp, CIGNA_oopost_disp;


var nc_expnc_disp, tsave; 

//main functions ------------------------------------------------------------------------------



function ResolveContributuions (form)//Selects the proper contribution rate for display/calculation
{
	if (income_lvl == 0){//Rates - Tier 1 ($0-50,000)
		STANDARD_IN_prem = STANDARD_IN_LT50_prem_cont[cvg] * 12;
		STANDARD_OUT_prem = STANDARD_OUT_LT50_prem_cont[cvg] * 12;
		PREMIER_IN_prem = PREMIER_IN_LT50_prem_cont[cvg] * 12;
		PREMIER_OUT_prem = PREMIER_OUT_LT50_prem_cont[cvg] * 12;
		KAISER_prem = KAISER_LT50_prem_cont[cvg] * 12;
		CIGNA_prem = CIGNA_LT50_prem_cont[cvg] * 12;
	}
	else if (income_lvl == 1){//Rates - Tier 2 ($50,001 - $80,000)
		 STANDARD_IN_prem = STANDARD_IN_50to80_prem_cont[cvg] * 12;
		 STANDARD_OUT_prem = STANDARD_OUT_50to80_prem_cont[cvg] * 12;
		 PREMIER_IN_prem = PREMIER_IN_50to80_prem_cont[cvg] * 12;
		 PREMIER_OUT_prem = PREMIER_OUT_50to80_prem_cont[cvg] * 12;	
		 KAISER_prem = KAISER_50to80_prem_cont[cvg] * 12;
		 CIGNA_prem = CIGNA_50to80_prem_cont[cvg] * 12;
	}
	else if (income_lvl == 2){//Rates - Tier 3 ($80,001 - $130,000)
		 STANDARD_IN_prem = STANDARD_IN_80to130_prem_cont[cvg] * 12;
		 STANDARD_OUT_prem = STANDARD_OUT_80to130_prem_cont[cvg] * 12;
		 PREMIER_IN_prem = PREMIER_IN_80to130_prem_cont[cvg] * 12;
		 PREMIER_OUT_prem = PREMIER_OUT_80to130_prem_cont[cvg] * 12;
		 KAISER_prem = KAISER_80to130_prem_cont[cvg] * 12;
		 CIGNA_prem = CIGNA_80to130_prem_cont[cvg] * 12;
	}
	else if (income_lvl == 3){//Rates - Tier 4 (>$130,000)
		 STANDARD_IN_prem = STANDARD_IN_GT130_prem_cont[cvg] * 12;
		 STANDARD_OUT_prem = STANDARD_OUT_GT130_prem_cont[cvg] * 12;
		 PREMIER_IN_prem = PREMIER_IN_GT130_prem_cont[cvg] * 12;
		 PREMIER_OUT_prem = PREMIER_OUT_GT130_prem_cont[cvg] * 12;
		 KAISER_prem = KAISER_GT130_prem_cont[cvg] * 12;
		 CIGNA_prem = CIGNA_GT130_prem_cont[cvg] * 12;
	}
}


//-------------------------------------------------------------------------------------------------------

function retrieveInput (form) // Input values from form	
{	

	doc_phys = parseInput(form.doc_phys.value);
	doc_baby = parseInput(form.doc_baby.value);
	doc_baby_infant = parseInput(form.doc_baby_infant.value);
	immunization = parseInput(form.immunization.value);
	cholesterol = parseInput(form.cholesterol.value);
	colonoscopy = parseInput(form.colonoscopy.value);
//	sigmoidoscopy = parseInput(form.sigmoidoscopy.value);
	pap = parseInput(form.pap.value);
	psa = parseInput(form.psa.value);
	mammogram = parseInput(form.mammogram.value);
	pcp = parseInput(form.pcp.value);
	specialist = parseInput(form.specialist.value);
	urgent = parseInput(form.urgent.value);
	emerg = parseInput(form.emerg.value);
	allergy_test = parseInput(form.allergy_test.value);
	allergy_serum = parseInput(form.allergy_serum.value);
	allergy_shot = parseInput(form.allergy_shot.value);
	chiro = parseInput(form.chiro.value);
	speech = parseInput(form.speech.value);
	blood = parseInput(form.blood.value);
	surgPath = parseInput(form.surgPath.value);
	lipid = parseInput(form.lipid.value);
	CompMedia = parseInput(form.CompMedia.value);
	CoumadinCheck = parseInput(form.CoumadinCheck.value);
	RadiologicalExam = parseInput(form.RadiologicalExam.value);
	MRIFace = parseInput(form.MRIFace.value);
	MRIBrain = parseInput(form.MRIBrain.value);
	BoneDensity = parseInput(form.BoneDensity.value);
//	Other1 = parseInput(form.Other1.value);
	mat_norm = parseInput(form.mat_norm.value);
	mat_natal = parseInput(form.mat_natal.value);
	other_exp = parseInput(form.other_exp.value);
	drug_ret_gen = parseInput(form.drug_ret_gen.value);
	drug_ret_pref = parseInput(form.drug_ret_pref.value);
	drug_ret_nonpref = parseInput(form.drug_ret_nonpref.value);
	drug_mo_gen = parseInput(form.drug_mo_gen.value);
	drug_mo_pref = parseInput(form.drug_mo_pref.value);
	drug_mo_nonpref = parseInput(form.drug_mo_nonpref.value);
	inpatient = parseInput(form.inpatient.value);
//	ambulance = parseInput(form.ambulance.value);
	outpatient = parseInput(form.outpatient.value);
	surgery = parseInput(form.surgery.value);
}

//---------------------------------------------------------------------------------------------------------

function totalUtil (form, indexnum)
{
//Total Utilization Amount -- no coverage

	nc_expnc_disp = Total_ClaimsCount(form, "doc_phys" )  * doc_phys_amt[indexnum] + 	
					Total_ClaimsCount(form, "doc_baby" ) * doc_baby_amt[indexnum] + 
					Total_ClaimsCount(form, "doc_baby_infant" ) * doc_baby_infant_amt[indexnum] + 
					Total_ClaimsCount(form, "immunization" ) * immunization_amt[indexnum] + 
					Total_ClaimsCount(form, "cholesterol" ) * cholesterol_amt[indexnum] + 
					Total_ClaimsCount(form, "colonoscopy" ) * colonoscopy_amt[indexnum] + 
					Total_ClaimsCount(form, "pap" ) * pap_amt[indexnum] + 
					Total_ClaimsCount(form, "psa" ) * psa_amt[indexnum] + 
					Total_ClaimsCount(form, "mammogram" ) * mammogram_amt[indexnum] + 
					Total_ClaimsCount(form, "pcp" ) * pcp_amt[indexnum] + 
					Total_ClaimsCount(form, "specialist" ) * specialist_amt[indexnum] + 
					Total_ClaimsCount(form, "urgent" ) * urgent_amt[indexnum] + 
					Total_ClaimsCount(form, "emerg" ) * emerg_amt[indexnum] + 
					Total_ClaimsCount(form, "allergy_test" ) * allergy_test_amt[indexnum] + 
					Total_ClaimsCount(form, "allergy_serum" ) * allergy_serum_amt[indexnum] + 
					Total_ClaimsCount(form, "allergy_shot" ) * allergy_shot_amt[indexnum] + 
					Total_ClaimsCount(form, "chiro" ) * chiro_amt[indexnum] + 
					Total_ClaimsCount(form, "speech" ) * speech_amt[indexnum] + 
					Total_ClaimsCount(form, "blood" ) * blood_amt[indexnum] + 
					Total_ClaimsCount(form, "surgPath" ) * surgPath_amt[indexnum] + 
					Total_ClaimsCount(form, "lipid" ) * lipid_amt[indexnum] + 
					Total_ClaimsCount(form, "CompMedia" ) * CompMedia_amt[indexnum] + 
					Total_ClaimsCount(form, "CoumadinCheck" ) * CoumadinCheck_amt[indexnum] + 
					Total_ClaimsCount(form, "RadiologicalExam" ) * RadiologicalExam_amt[indexnum] + 
					Total_ClaimsCount(form, "MRIFace" ) * MRIFace_amt[indexnum] + 
					Total_ClaimsCount(form, "MRIBrain" ) * MRIBrain_amt[indexnum] + 
					Total_ClaimsCount(form, "BoneDensity" ) * BoneDensity_amt[indexnum] + 
					Total_ClaimsCount(form, "mat_norm" ) * mat_norm_amt[indexnum] + 
					Total_ClaimsCount(form, "mat_natal" ) * mat_natal_amt[indexnum] + 
					Total_ClaimsCount(form, "drug_ret_gen" ) * drug_ret_gen_amt[indexnum] + 
					Total_ClaimsCount(form, "drug_ret_pref" ) * drug_ret_pref_amt[indexnum] + 
					Total_ClaimsCount(form, "drug_ret_nonpref" ) * drug_ret_nonpref_amt[indexnum] + 
					Total_ClaimsCount(form, "drug_mo_gen" ) * drug_mo_gen_amt[indexnum] + 
					Total_ClaimsCount(form, "drug_mo_pref" ) * drug_mo_pref_amt[indexnum] + 
					Total_ClaimsCount(form, "drug_mo_nonpref" ) * drug_mo_nonpref_amt[indexnum] + 
					Total_ClaimsCount(form, "other_exp" ) + 
					Total_ClaimsCount(form, "inpatient" ) * inpatient_amt[indexnum] + 
					Total_ClaimsCount(form, "surgery" ) * surgery_amt[indexnum] +
					Total_ClaimsCount(form, "outpatient" ) * outpatient_amt[indexnum];
			       
	 if (indexnum == 0)
	 {
		form.nc_expnc.value = format(nc_expnc_disp,2);			       
	}
	return nc_expnc_disp;			       
			       
}

//---------------------------------------------------------------------------------------------------------

function numobj()
{
	this.value = 0;
}

function Math_Min(x, y)
{
   if (x>y)
		return y;
   else
		return x;
}
function Math_Max(x, y)
{
   if (x<y)
		return y;
   else
		return x;
}

function ClaimsCount(claimPerson, fieldname)
{
  var claimCount=0;
  var form = document.form1;
  
  // claimPerson -  emp: employee, sp: spouse, c1:child1, c2:child2, c3:child3
  if (claimPerson == "emp") {
		claimCount = eval("parseInput(form." + fieldname+ ".value)");
  } else if (claimPerson == "sp") {  
		claimCount = eval("parseInput(form." + fieldname+"_sp" + ".value)");
  } else if (claimPerson == "c1") {  
 		claimCount = eval("parseInput(form." + fieldname+"_c1" + ".value)");
  } else if (claimPerson == "c2") {      
	  	claimCount = eval("parseInput(form." + fieldname+"_c2" + ".value)");
  } else if (claimPerson == "c3") {  
    	claimCount = eval("parseInput(form." + fieldname+"_c3" + ".value)");
  }
  
  return claimCount;  

}

function Total_ClaimsCount(form, fieldname)
{
  var employeeclaim = 0;
  var spouseclaim = 0;
  var child1claim = 0;
  var child2claim = 0;
  var child3claim = 0;
  
  employeeclaim = eval( "parseInput(form." + fieldname+ ".value)");
	
  if (hasSpouse() ){
    spouseclaim = eval( "parseInput(form." + fieldname+"_sp" + ".value)");
  }
  if (numberOfChild() > 0 ) {
  	child1claim = eval("parseInput(form." + fieldname+"_c1" + ".value)");
  }
   if  (numberOfChild() > 1)  {
  	child2claim = eval("parseInput(form." + fieldname+"_c2" + ".value)");
  }
   if (numberOfChild() > 2)  {
  	child3claim = eval("parseInput(form." + fieldname+"_c3" + ".value)");
  }
  
  return employeeclaim + spouseclaim + child1claim + child2claim + child3claim;  

}
function Dependents_ClaimsCount(form, fieldname)
{
  var spouseclaim = 0;
  var child1claim = 0;
  var child2claim = 0;
  var child3claim = 0;
  
  if (hasSpouse() ){
    spouseclaim = eval( "parseInput(form." + fieldname+"_sp" + ".value)");
  }
  if (numberOfChild() > 0 ) {
  	child1claim = eval("parseInput(form." + fieldname+"_c1" + ".value)");
  }
   if  (numberOfChild() > 1)  {
  	child2claim = eval("parseInput(form." + fieldname+"_c2" + ".value)");
  }
   if (numberOfChild() > 2)  {
  	child3claim = eval("parseInput(form." + fieldname+"_c3" + ".value)");
  }
  
  return spouseclaim + child1claim + child2claim + child3claim;  

}

function employee_ClaimsCount(form, fieldname)
{
  var employeeclaim = 0;
  
  employeeclaim = eval( "parseInput(form." + fieldname+ ".value)");
  
  return employeeclaim;  
  
}

function spouse_ClaimsCount(form, fieldname)
{
  var spouseclaim = 0;
  
  if (hasSpouse() )
  {
    spouseclaim = eval( "parseInput(form." + fieldname+"_sp" + ".value)");
  }
  
  return spouseclaim;  
  
}

function childOne_ClaimsCount(form, fieldname)
{
  var child1claim = 0;
  
  if (numberOfChild() > 0 ) 
  {
  	child1claim = eval("parseInput(form." + fieldname+"_c1" + ".value)");
  }
  
  return child1claim;  
  
}

function childTwo_ClaimsCount(form, fieldname)
{
  var child2claim = 0;
  
  if  (numberOfChild() > 1)  
  {
  	child2claim = eval("parseInput(form." + fieldname+"_c2" + ".value)");
  }
  
  return child2claim;  
  
}

function childThree_ClaimsCount(form, fieldname)
{
  var child3claim = 0;
  
  if (numberOfChild() > 2)  
  {
  	child3claim = eval("parseInput(form." + fieldname+"_c3" + ".value)");
  }
  
  return child3claim;  

}


//***************************************************************************************************************************
// STANDARD_IN CALCULATION
//***************************************************************************************************************************

function STANDARD_IN_Calc (form)
{	var indexnum = 1;
	
//Calculations
	STANDARD_IN_deduct_disp = 0;
	STANDARD_IN_copay_disp = 0;
	STANDARD_IN_prevent_coin_disp = 0;
	STANDARD_IN_coin_disp = 0;
	STANDARD_IN_hra_disp = 0;
	STANDARD_IN_enc_disp = 0;
	STANDARD_IN_oopre_disp = 0;
	STANDARD_IN_prem_disp = (STANDARD_IN_prem);
	STANDARD_IN_oopost_disp = 0;
	STANDARD_IN_rx_ret_gen_coin_disp = 0;
	STANDARD_IN_rx_ret_pref_coin_disp = 0;
	STANDARD_IN_rx_ret_nonpref_coin_disp = 0;
	STANDARD_IN_rx_mo_gen_coin_disp = 0;
	STANDARD_IN_rx_mo_pref_coin_disp = 0;
	STANDARD_IN_rx_mo_nonpref_coin_disp = 0;
	
//Calculate STANDARD_IN Services Copays
	STANDARD_IN_rx_mo_copay_svcs = 0;
	
	STANDARD_IN_copay_disp = STANDARD_IN_rx_mo_copay_svcs;

	STANDARD_IN_copay_disp += 0;

//calculate coinsurance

	var standard_in_coin_display_emp = 0;
	var standard_in_coin_display_sp = 0;
	var standard_in_coin_display_c1 = 0;		
	var standard_in_coin_display_c2 = 0;		
	var standard_in_coin_display_c3 = 0;		
	
	var standard_in_prevent_coin_svcs_emp=0;
	var standard_in_prevent_coin_svcs_sp=0;
	var standard_in_prevent_coin_svcs_c1=0;
	var standard_in_prevent_coin_svcs_c2=0;
	var standard_in_prevent_coin_svcs_c3=0;

	var standard_in_coin_svcs_emp = 0;
	var standard_in_coin_svcs_sp = 0;
	var standard_in_coin_svcs_c1 = 0;		
	var standard_in_coin_svcs_c2 = 0;		
	var standard_in_coin_svcs_c3 = 0;		


	standard_in_prevent_coin_svcs_emp = Standard_in_prevent_coin_svcs("emp", indexnum);
	standard_in_prevent_coin_svcs_sp = Standard_in_prevent_coin_svcs("sp", indexnum);
	standard_in_prevent_coin_svcs_c1 = Standard_in_prevent_coin_svcs("c1", indexnum);
	standard_in_prevent_coin_svcs_c2 = Standard_in_prevent_coin_svcs("c2", indexnum);
	standard_in_prevent_coin_svcs_c3 = Standard_in_prevent_coin_svcs("c3", indexnum) ; 
	
	standard_in_coin_svcs_emp = Standard_in_coin_svcs("emp", indexnum);
	standard_in_coin_svcs_sp = Standard_in_coin_svcs("sp", indexnum);
	standard_in_coin_svcs_c1 = Standard_in_coin_svcs("c1", indexnum);		
	standard_in_coin_svcs_c2 = Standard_in_coin_svcs("c2", indexnum);		
	standard_in_coin_svcs_c3 = Standard_in_coin_svcs("c3", indexnum);		

	var obj_standard_in_deductibles_emp = new numobj();
	var obj_standard_in_deductibles_sp = new numobj();
	var obj_standard_in_deductibles_c1 = new numobj();
	var obj_standard_in_deductibles_c2 = new numobj();		
	var obj_standard_in_deductibles_c3 = new numobj();
	
	var obj_standard_in_oopmax_emp = new numobj();
	var obj_standard_in_oopmax_sp = new numobj();
	var obj_standard_in_oopmax_c1 = new numobj();
	var obj_standard_in_oopmax_c2 = new numobj();		
	var obj_standard_in_oopmax_c3 = new numobj();
	
	var obj_standard_in_FamilyDeductiblesMax = new numobj();
		obj_standard_in_FamilyDeductiblesMax.value = STANDARD_IN_deductibles_max[1];
	var obj_standard_in_FamilyOopMax = new numobj();
		obj_standard_in_FamilyOopMax.value = STANDARD_IN_oop_max[1];
	//NOTE: standard_in_FamilyOopMax and standard_in_FamilyDeductiblesMax are reference objects
	//		 pass into the calc co-insurance fuction and will take out the perPerson value each time
	
	//Calculating Co-Insurance and Deductible Per individuals
	standard_in_coin_display_emp = Standard_in_Calc_CoInsurance(standard_in_prevent_coin_svcs_emp, standard_in_coin_svcs_emp,
																STANDARD_IN_prevent_coinsurance , STANDARD_IN_coinsurance, 
																STANDARD_IN_deductibles_max[0], obj_standard_in_FamilyDeductiblesMax, 
																STANDARD_IN_oop_max[0], obj_standard_in_FamilyOopMax,
																obj_standard_in_deductibles_emp, obj_standard_in_oopmax_emp);

    

	if (hasSpouse()) {

		standard_in_coin_display_sp = Standard_in_Calc_CoInsurance(standard_in_prevent_coin_svcs_sp, standard_in_coin_svcs_sp,
																STANDARD_IN_prevent_coinsurance , STANDARD_IN_coinsurance, 
																STANDARD_IN_deductibles_max[0], obj_standard_in_FamilyDeductiblesMax, 
																STANDARD_IN_oop_max[0], obj_standard_in_FamilyOopMax,
																obj_standard_in_deductibles_sp, obj_standard_in_oopmax_sp);

	}
	
	if ( 0< numberOfChild() )
	{
		standard_in_coin_display_c1 = Standard_in_Calc_CoInsurance(standard_in_prevent_coin_svcs_c1, standard_in_coin_svcs_c1,
																STANDARD_IN_prevent_coinsurance , STANDARD_IN_coinsurance, 
																STANDARD_IN_deductibles_max[0], obj_standard_in_FamilyDeductiblesMax, 
																STANDARD_IN_oop_max[0], obj_standard_in_FamilyOopMax,
																obj_standard_in_deductibles_c1, obj_standard_in_oopmax_c1);

	}
	if (1 < numberOfChild() ) {
		standard_in_coin_display_c2 = Standard_in_Calc_CoInsurance(standard_in_prevent_coin_svcs_c2, standard_in_coin_svcs_c2,
																STANDARD_IN_prevent_coinsurance , STANDARD_IN_coinsurance, 
																STANDARD_IN_deductibles_max[0], obj_standard_in_FamilyDeductiblesMax, 
																STANDARD_IN_oop_max[0], obj_standard_in_FamilyOopMax,
																obj_standard_in_deductibles_c2, obj_standard_in_oopmax_c2);

	}
	if (2 <numberOfChild() ) {
		standard_in_coin_display_c3 = Standard_in_Calc_CoInsurance(standard_in_prevent_coin_svcs_c3, standard_in_coin_svcs_c3,
																STANDARD_IN_prevent_coinsurance , STANDARD_IN_coinsurance, 
																STANDARD_IN_deductibles_max[0], obj_standard_in_FamilyDeductiblesMax,
																STANDARD_IN_oop_max[0], obj_standard_in_FamilyOopMax, 
																obj_standard_in_deductibles_c3, obj_standard_in_oopmax_c3);
	}
	
  
  	STANDARD_IN_coin_disp = standard_in_coin_display_emp + standard_in_coin_display_sp + standard_in_coin_display_c1 + standard_in_coin_display_c2 +standard_in_coin_display_c3;
	
	STANDARD_IN_oopre_disp = obj_standard_in_oopmax_emp.value + obj_standard_in_oopmax_sp.value 
	                        + obj_standard_in_oopmax_c1.value + obj_standard_in_oopmax_c2.value + obj_standard_in_oopmax_c3.value
	                        + STANDARD_IN_enc_disp + STANDARD_IN_copay_disp;
	STANDARD_IN_deduct_disp = obj_standard_in_deductibles_emp.value + obj_standard_in_deductibles_sp.value 
	                        + obj_standard_in_deductibles_c1.value + obj_standard_in_deductibles_c2.value + obj_standard_in_deductibles_c3.value;
  
  
  		
	// NOTE: RX calculation Stays and calculate at the Grand total Level

///////////////////////////////////////////////////////////////////////////////////////
//Calculate employee rx retail costs
//rx gen
	var employee_drug_ret_gen = employee_ClaimsCount(form, "drug_ret_gen");
		if (employee_drug_ret_gen > 0) 
		{
			STANDARD_IN_rx_ret_gen_coin_disp_employee = employee_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_gen_coin_disp_employee = 0;
		}
//rx gen pref
	var employee_drug_ret_pref = employee_ClaimsCount(form, "drug_ret_pref");
		if (employee_drug_ret_pref > 0) 
		{
			STANDARD_IN_rx_ret_pref_coin_disp_employee = employee_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_pref_coin_disp_employee = 0;
		}
//rx gen nonpref
	var employee_drug_ret_nonpref = employee_ClaimsCount(form, "drug_ret_nonpref");
		if (employee_drug_ret_nonpref > 0) 
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_employee = employee_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_employee = 0;
		}
//rx mail order generic
	var employee_drug_mo_gen = employee_ClaimsCount(form, "drug_mo_gen");
		if (employee_drug_mo_gen > 0) 
		{
			STANDARD_IN_rx_mo_gen_coin_disp_employee = employee_drug_mo_gen  * drug_mo_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_gen_coin_disp_employee = 0;
		}
//rx mail order pref
	var employee_drug_mo_pref = employee_ClaimsCount(form, "drug_mo_pref");
		if (employee_drug_mo_pref > 0) 
		{
			STANDARD_IN_rx_mo_pref_coin_disp_employee = employee_drug_mo_pref  * drug_mo_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_pref_coin_disp_employee = 0;
		}
//rx mail order nonpref
	var employee_drug_mo_nonpref = employee_ClaimsCount(form, "drug_mo_nonpref");
		if (employee_drug_mo_nonpref > 0) 
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_employee = employee_drug_mo_nonpref  * drug_mo_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_employee = 0;
		}

//////////////////////////////////////////////////////////////////////////////////////
//Calculate spouse rx retail costs
//rx gen
	var spouse_drug_ret_gen = spouse_ClaimsCount(form, "drug_ret_gen");
		if (spouse_drug_ret_gen > 0) 
		{
			STANDARD_IN_rx_ret_gen_coin_disp_spouse = spouse_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_gen_coin_disp_spouse = 0;
		}
//rx gen pref
	var spouse_drug_ret_pref = spouse_ClaimsCount(form, "drug_ret_pref");
		if (spouse_drug_ret_pref > 0) 
		{
			STANDARD_IN_rx_ret_pref_coin_disp_spouse = spouse_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_pref_coin_disp_spouse = 0;
		}
//rx gen nonpref
	var spouse_drug_ret_nonpref = spouse_ClaimsCount(form, "drug_ret_nonpref");
		if (spouse_drug_ret_nonpref > 0) 
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_spouse = spouse_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_spouse = 0;
		}
//rx mail order generic
	var spouse_drug_mo_gen = spouse_ClaimsCount(form, "drug_mo_gen");
		if (spouse_drug_mo_gen > 0) 
		{
			STANDARD_IN_rx_mo_gen_coin_disp_spouse = spouse_drug_mo_gen  * drug_mo_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_gen_coin_disp_spouse = 0;
		}
//rx mail order pref
	var spouse_drug_mo_pref = spouse_ClaimsCount(form, "drug_mo_pref");
		if (spouse_drug_mo_pref > 0) 
		{
			STANDARD_IN_rx_mo_pref_coin_disp_spouse = spouse_drug_mo_pref  * drug_mo_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_pref_coin_disp_spouse = 0;
		}
//rx mail order nonpref
	var spouse_drug_mo_nonpref = spouse_ClaimsCount(form, "drug_mo_nonpref");
		if (spouse_drug_mo_nonpref > 0) 
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_spouse = spouse_drug_mo_nonpref  * drug_mo_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_spouse = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////
//Calculate child one rx retail costs
//rx gen
	var childOne_drug_ret_gen = childOne_ClaimsCount(form, "drug_ret_gen");
		if (childOne_drug_ret_gen > 0) 
		{
			STANDARD_IN_rx_ret_gen_coin_disp_childOne = childOne_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_gen_coin_disp_childOne = 0;
		}
//rx gen pref
	var childOne_drug_ret_pref = childOne_ClaimsCount(form, "drug_ret_pref");
		if (childOne_drug_ret_pref > 0) 
		{
			STANDARD_IN_rx_ret_pref_coin_disp_childOne = childOne_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_pref_coin_disp_childOne = 0;
		}
//rx gen nonpref
	var childOne_drug_ret_nonpref = childOne_ClaimsCount(form, "drug_ret_nonpref");
		if (childOne_drug_ret_nonpref > 0) 
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_childOne = childOne_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_childOne = 0;
		}
//rx mail order generic
	var childOne_drug_mo_gen = childOne_ClaimsCount(form, "drug_mo_gen");
		if (childOne_drug_mo_gen > 0) 
		{
			STANDARD_IN_rx_mo_gen_coin_disp_childOne = childOne_drug_mo_gen  * drug_mo_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_gen_coin_disp_childOne = 0;
		}
//rx mail order pref
	var childOne_drug_mo_pref = childOne_ClaimsCount(form, "drug_mo_pref");
		if (childOne_drug_mo_pref > 0) 
		{
			STANDARD_IN_rx_mo_pref_coin_disp_childOne = childOne_drug_mo_pref  * drug_mo_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_pref_coin_disp_childOne = 0;
		}
//rx mail order nonpref
	var childOne_drug_mo_nonpref = childOne_ClaimsCount(form, "drug_mo_nonpref");
		if (childOne_drug_mo_nonpref > 0) 
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_childOne = childOne_drug_mo_nonpref  * drug_mo_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_childOne = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////
		
//Calculate child two rx retail costs
//rx gen
	var childTwo_drug_ret_gen = childTwo_ClaimsCount(form, "drug_ret_gen");
		if (childTwo_drug_ret_gen > 0) 
		{
			STANDARD_IN_rx_ret_gen_coin_disp_childTwo = childTwo_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_gen_coin_disp_childTwo = 0;
		}
//rx gen pref
	var childTwo_drug_ret_pref = childTwo_ClaimsCount(form, "drug_ret_pref");
		if (childTwo_drug_ret_pref > 0) 
		{
			STANDARD_IN_rx_ret_pref_coin_disp_childTwo = childTwo_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_pref_coin_disp_childTwo = 0;
		}
//rx gen nonpref
	var childTwo_drug_ret_nonpref = childTwo_ClaimsCount(form, "drug_ret_nonpref");
		if (childTwo_drug_ret_nonpref > 0) 
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_childTwo = childTwo_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_childTwo = 0;
		}
//rx mail order generic
	var childTwo_drug_mo_gen = childTwo_ClaimsCount(form, "drug_mo_gen");
		if (childTwo_drug_mo_gen > 0) 
		{
			STANDARD_IN_rx_mo_gen_coin_disp_childTwo = childTwo_drug_mo_gen  * drug_mo_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_gen_coin_disp_childTwo = 0;
		}
//rx mail order pref
	var childTwo_drug_mo_pref = childTwo_ClaimsCount(form, "drug_mo_pref");
		if (childTwo_drug_mo_pref > 0) 
		{
			STANDARD_IN_rx_mo_pref_coin_disp_childTwo = childTwo_drug_mo_pref  * drug_mo_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_pref_coin_disp_childTwo = 0;
		}
//rx mail order nonpref
	var childTwo_drug_mo_nonpref = childTwo_ClaimsCount(form, "drug_mo_nonpref");
		if (childTwo_drug_mo_nonpref > 0) 
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_childTwo = childTwo_drug_mo_nonpref  * drug_mo_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_childTwo = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////
		
//Calculate child three rx retail costs
//rx gen
	var childThree_drug_ret_gen = childThree_ClaimsCount(form, "drug_ret_gen");
		if (childThree_drug_ret_gen > 0) 
		{
			STANDARD_IN_rx_ret_gen_coin_disp_childThree = childThree_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_gen_coin_disp_childThree = 0;
		}
//rx gen pref
	var childThree_drug_ret_pref = childThree_ClaimsCount(form, "drug_ret_pref");
		if (childThree_drug_ret_pref > 0) 
		{
			STANDARD_IN_rx_ret_pref_coin_disp_childThree = childThree_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_pref_coin_disp_childThree = 0;
		}
//rx gen nonpref
	var childThree_drug_ret_nonpref = childThree_ClaimsCount(form, "drug_ret_nonpref");
		if (childThree_drug_ret_nonpref > 0) 
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_childThree = childThree_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_ret_nonpref_coin_disp_childThree = 0;
		}
//rx mail order generic
	var childThree_drug_mo_gen = childThree_ClaimsCount(form, "drug_mo_gen");
		if (childThree_drug_mo_gen > 0) 
		{
			STANDARD_IN_rx_mo_gen_coin_disp_childThree = childThree_drug_mo_gen  * drug_mo_gen_amt[indexnum] * STANDARD_IN_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_gen_coin_disp_childThree = 0;
		}
//rx mail order pref
	var childThree_drug_mo_pref = childThree_ClaimsCount(form, "drug_mo_pref");
		if (childThree_drug_mo_pref > 0) 
		{
			STANDARD_IN_rx_mo_pref_coin_disp_childThree = childThree_drug_mo_pref  * drug_mo_pref_amt[indexnum] * STANDARD_IN_rx_f_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_pref_coin_disp_childThree = 0;
		}
//rx mail order nonpref
	var childThree_drug_mo_nonpref = childThree_ClaimsCount(form, "drug_mo_nonpref");
		if (childThree_drug_mo_nonpref > 0) 
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_childThree = childThree_drug_mo_nonpref  * drug_mo_nonpref_amt[indexnum] * STANDARD_IN_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_IN_rx_mo_nonpref_coin_disp_childThree = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////

var STANDARD_IN_employeeDrugCosts = STANDARD_IN_rx_ret_gen_coin_disp_employee + STANDARD_IN_rx_ret_pref_coin_disp_employee
										+ STANDARD_IN_rx_ret_nonpref_coin_disp_employee + STANDARD_IN_rx_mo_gen_coin_disp_employee
										+ STANDARD_IN_rx_mo_pref_coin_disp_employee + STANDARD_IN_rx_mo_nonpref_coin_disp_employee;
		if (STANDARD_IN_employeeDrugCosts > STANDARD_IN_rx_employee_oopmax)
		{
			STANDARD_IN_employeeDrugCosts = STANDARD_IN_rx_employee_oopmax;
		}
	
	var STANDARD_IN_spouseDrugCosts = STANDARD_IN_rx_ret_gen_coin_disp_spouse + STANDARD_IN_rx_ret_pref_coin_disp_spouse
										+ STANDARD_IN_rx_ret_nonpref_coin_disp_spouse + STANDARD_IN_rx_mo_gen_coin_disp_spouse
										+ STANDARD_IN_rx_mo_pref_coin_disp_spouse + STANDARD_IN_rx_mo_nonpref_coin_disp_spouse;
		if (STANDARD_IN_spouseDrugCosts > STANDARD_IN_rx_spouse_oopmax)
		{
			STANDARD_IN_spouseDrugCosts = STANDARD_IN_rx_spouse_oopmax;
		}
	
	var STANDARD_IN_childOneDrugCosts = STANDARD_IN_rx_ret_gen_coin_disp_childOne + STANDARD_IN_rx_ret_pref_coin_disp_childOne
										+ STANDARD_IN_rx_ret_nonpref_coin_disp_childOne + STANDARD_IN_rx_mo_gen_coin_disp_childOne
										+ STANDARD_IN_rx_mo_pref_coin_disp_childOne + STANDARD_IN_rx_mo_nonpref_coin_disp_childOne;
		if (STANDARD_IN_childOneDrugCosts > STANDARD_IN_rx_childOne_oopmax)
		{
			STANDARD_IN_childOneDrugCosts = STANDARD_IN_rx_childOne_oopmax;
		}
	
	var STANDARD_IN_childTwoDrugCosts = STANDARD_IN_rx_ret_gen_coin_disp_childTwo + STANDARD_IN_rx_ret_pref_coin_disp_childTwo
										+ STANDARD_IN_rx_ret_nonpref_coin_disp_childTwo + STANDARD_IN_rx_mo_gen_coin_disp_childTwo
										+ STANDARD_IN_rx_mo_pref_coin_disp_childTwo + STANDARD_IN_rx_mo_nonpref_coin_disp_childTwo;
		if (STANDARD_IN_childTwoDrugCosts > STANDARD_IN_rx_childTwo_oopmax)
		{
			STANDARD_IN_childTwoDrugCosts = STANDARD_IN_rx_childTwo_oopmax;
		}
	
	var STANDARD_IN_childThreeDrugCosts = STANDARD_IN_rx_ret_gen_coin_disp_childThree + STANDARD_IN_rx_ret_pref_coin_disp_childThree
										+ STANDARD_IN_rx_ret_nonpref_coin_disp_childThree + STANDARD_IN_rx_mo_gen_coin_disp_childThree
										+ STANDARD_IN_rx_mo_pref_coin_disp_childThree + STANDARD_IN_rx_mo_nonpref_coin_disp_childThree;
		if (STANDARD_IN_childThreeDrugCosts > STANDARD_IN_rx_childThree_oopmax)
		{
			STANDARD_IN_childThreeDrugCosts = STANDARD_IN_rx_childThree_oopmax;
		}		
	
	
	var STANDARD_IN_totalDrugCosts = STANDARD_IN_employeeDrugCosts + STANDARD_IN_spouseDrugCosts + STANDARD_IN_childOneDrugCosts
										+ STANDARD_IN_childTwoDrugCosts + STANDARD_IN_childThreeDrugCosts;

////////////////////////////////////////////////////////////////
// HRA calculations added 2009
////////////////////////////////////////////////////////////////
	var spouseCoverageLevelValue = $("#spouseSelect").val();
	var childrenCoverageLevelValue = $("#childrenSelect").val();
	if ( (spouseCoverageLevelValue != "Yes") &&  (childrenCoverageLevelValue < 1) ) // Employee only
	{
		var STANDARD_IN_hraReduction = STANDARD_IN_hraCompanyAmount[cvg];
	}
	else if ( (spouseCoverageLevelValue == "Yes") &&  (childrenCoverageLevelValue < 1) ) // Employee + Spouse
	{
		var STANDARD_IN_hraReduction = STANDARD_IN_hraCompanyAmount[cvg];
	} 
	else if ( (spouseCoverageLevelValue != "Yes") &&  (childrenCoverageLevelValue > 0) ) // Employee + Children
	{
		var STANDARD_IN_hraReduction = STANDARD_IN_hraCompanyAmount[cvg];
	}
	else if ( (spouseCoverageLevelValue == "Yes") &&  (childrenCoverageLevelValue > 0) ) // Employee + Family
	{
		var STANDARD_IN_hraReduction = STANDARD_IN_hraCompanyAmount[cvg];
	}

	var subtotalAvailableForHraReduction = STANDARD_IN_deduct_disp + STANDARD_IN_copay_disp + STANDARD_IN_coin_disp + STANDARD_IN_totalDrugCosts;
	
	if (subtotalAvailableForHraReduction <= STANDARD_IN_hraReduction)
	{
		STANDARD_IN_hra_disp = subtotalAvailableForHraReduction;
	}
	else if (subtotalAvailableForHraReduction > STANDARD_IN_hraReduction)
	{
		STANDARD_IN_hra_disp = STANDARD_IN_hraReduction;
	}
////////////////////////////////////////////////////////////////

	
	STANDARD_IN_coin_disp += STANDARD_IN_totalDrugCosts;
	
	STANDARD_IN_oopre_disp += STANDARD_IN_totalDrugCosts;
	STANDARD_IN_oopre_disp -= STANDARD_IN_hra_disp;
	
	STANDARD_IN_oopost_disp = STANDARD_IN_oopre_disp + STANDARD_IN_prem_disp;
	
	form.STANDARD_IN_deduct.value = format(STANDARD_IN_deduct_disp,2);
	form.STANDARD_IN_copay.value = format(STANDARD_IN_copay_disp,2);
	form.STANDARD_IN_coin.value = format(STANDARD_IN_coin_disp,2);
	form.STANDARD_IN_hra.value = format(STANDARD_IN_hra_disp,2);
	form.STANDARD_IN_enc.value = format(STANDARD_IN_enc_disp,2);
	form.STANDARD_IN_oopre.value = format(STANDARD_IN_oopre_disp,2);
	form.STANDARD_IN_prem.value = format(STANDARD_IN_prem_disp,2);
	form.STANDARD_IN_oopost.value = format(STANDARD_IN_oopost_disp,2);
}

//---------------------------------------------------------------------------------------------------------

function Standard_in_Calc_CoInsurance( prevent_coin_svcs, coin_svcs, 
										prevent_coinsurance_perc, coinsurance_perc, 
										deduct_maxPerPerson, obj_deduct_FamilyMax, 
										oop_maxPerPerson, obj_oop_maxPerFamily,
										obj_deductible, obj_oopmaxDisplay)
{
 	//has the deductable been met with coinsurance only (no rx)
	
	if (deduct_maxPerPerson > obj_deduct_FamilyMax.value)  
	{  // left over for the family is less than the PerPerson Max
		deduct_maxPerPerson = obj_deduct_FamilyMax.value;
	}
	if (oop_maxPerPerson > obj_oop_maxPerFamily.value)
	{
		oop_maxPerPerson = obj_oop_maxPerFamily.value;
	}
	
 	var coinsurance=0;
	   if (prevent_coin_svcs >= deduct_maxPerPerson){
		   // if yes - coinsurance is applied
			obj_deductible.value = deduct_maxPerPerson;	
			coinsurance = (prevent_coin_svcs - deduct_maxPerPerson) * prevent_coinsurance_perc; //services percentage
			coinsurance += coin_svcs * coinsurance_perc;
		}	   
		else if (prevent_coin_svcs + coin_svcs > deduct_maxPerPerson){		
			 obj_deductible.value = deduct_maxPerPerson;	
			 var remainder = deduct_maxPerPerson - prevent_coin_svcs;
			 coinsurance = (coin_svcs - remainder) * coinsurance_perc;
	   	}	
	   	else {
			obj_deductible.value = prevent_coin_svcs + coin_svcs;
			coinsurance = 0;
		}
	
		obj_deduct_FamilyMax.value = obj_deduct_FamilyMax.value - obj_deductible.value;
		
	
		if (coinsurance + obj_deductible.value >= oop_maxPerPerson){
		//yes -- display OOPmax + expenses not covered
			obj_oopmaxDisplay.value = oop_maxPerPerson ;
			coinsurance = oop_maxPerPerson - obj_deductible.value;
		}
		else{//no -- display costs
			obj_oopmaxDisplay.value  = coinsurance + obj_deductible.value  ;
		}	

		obj_oop_maxPerFamily.value = obj_oop_maxPerFamily.value - obj_oopmaxDisplay.value;

		return coinsurance;
}


function Standard_in_prevent_coin_svcs(claimPerson,costIndex)
{   // claimPerson -  emp: employee, sp: spouse, c1:child1, c2:child2, c3:child3

	var standardIN_prevent_coin_svcs;

	if (claimPerson=="sp" && !hasSpouse() ){
		standardIN_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		standardIN_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		standardIN_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		standardIN_prevent_coin_svcs = 0;
	}
	else 
	{	
		standardIN_prevent_coin_svcs =  ClaimsCount(claimPerson, "doc_phys") * doc_phys_amt[costIndex] + 
						                ClaimsCount(claimPerson, "doc_baby")  * doc_baby_amt[costIndex] + 
						                ClaimsCount(claimPerson, "doc_baby_infant")  * doc_baby_infant_amt[costIndex] + 
						                ClaimsCount(claimPerson, "immunization")  * immunization_amt[costIndex] + 
						                ClaimsCount(claimPerson, "cholesterol")  * cholesterol_amt[costIndex] + 
						                ClaimsCount(claimPerson, "colonoscopy")  * colonoscopy_amt[costIndex] + 
						                ClaimsCount(claimPerson, "pap") * pap_amt[costIndex] + 
						                ClaimsCount(claimPerson, "psa")  * psa_amt[costIndex] + 
						                ClaimsCount(claimPerson, "BoneDensity")  * BoneDensity_amt[costIndex] + 
						                ClaimsCount(claimPerson, "mammogram")  * mammogram_amt[costIndex];
	}					
	return standardIN_prevent_coin_svcs;
}

function Standard_in_coin_svcs(claimPerson, costIndex) 
{
	var standardIN_coin_svcs = 0;
	if (claimPerson=="sp" && !hasSpouse() ){
		standardIN_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		standardIN_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		standardIN_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		standardIN_coin_svcs = 0;
	}
	else 
	{
		standardIN_coin_svcs = ClaimsCount(claimPerson, "pcp")  * pcp_amt[costIndex] +
								ClaimsCount(claimPerson, "specialist")  * specialist_amt[costIndex] +
								ClaimsCount(claimPerson, "urgent")  * urgent_amt[costIndex] + 
								ClaimsCount(claimPerson, "emerg") * emerg_amt[costIndex] + 
								ClaimsCount(claimPerson, "surgery") * surgery_amt[costIndex] + 
								ClaimsCount(claimPerson, "allergy_test") * allergy_test_amt[costIndex] +
								ClaimsCount(claimPerson, "allergy_serum") * allergy_serum_amt[costIndex] + 
								ClaimsCount(claimPerson, "allergy_shot") * allergy_shot_amt[costIndex] + 
								ClaimsCount(claimPerson, "speech") * speech_amt[costIndex] + 
								ClaimsCount(claimPerson, "blood") * blood_amt[costIndex] + 
								ClaimsCount(claimPerson, "surgPath") * surgPath_amt[costIndex] + 
								ClaimsCount(claimPerson, "lipid") * lipid_amt[costIndex] + 
								ClaimsCount(claimPerson, "CompMedia") * CompMedia_amt[costIndex] + 
								ClaimsCount(claimPerson, "CoumadinCheck") * CoumadinCheck_amt[costIndex] + 
								ClaimsCount(claimPerson, "RadiologicalExam") * RadiologicalExam_amt[costIndex] + 
								ClaimsCount(claimPerson, "MRIFace") * MRIFace_amt[costIndex] + 
								ClaimsCount(claimPerson, "MRIBrain") * MRIBrain_amt[costIndex] + 
								ClaimsCount(claimPerson, "mat_norm") * mat_norm_amt[costIndex] + 
								ClaimsCount(claimPerson, "mat_natal") * mat_natal_amt[costIndex] + 
								ClaimsCount(claimPerson, "inpatient")  * inpatient_amt[costIndex] +
								ClaimsCount(claimPerson, "outpatient")  * outpatient_amt[costIndex] ;
								
		standardIN_coin_svcs +=	ClaimsCount(claimPerson, "other_exp") ;  //note: other_exp is an amount

			// Chiropractic limited to $750 max per person
			var chiroCount = ClaimsCount(claimPerson, "chiro");					
			if ((chiroCount * chiro_amt[costIndex]) > 750) {
				standardIN_coin_svcs += 750;
			}
			else {
				standardIN_coin_svcs += chiroCount * chiro_amt[costIndex];
			}
			
	}	
	return standardIN_coin_svcs;
}					
//***************************************************************************************************************************
// END OF STANDARD_IN CALCULATION
//***************************************************************************************************************************

			
//***************************************************************************************************************************
// STANDARD_OUT CALCULATION
//***************************************************************************************************************************

function STANDARD_OUT_Calc (form)
{	var indexnum = 2;
	
//Calculations
	STANDARD_OUT_deduct_disp = 0;
	STANDARD_OUT_copay_disp = 0;
	STANDARD_OUT_coin_disp = 0;
	STANDARD_OUT_hra_disp = 0;
	STANDARD_OUT_enc_disp = 0;
	STANDARD_OUT_oopre_disp = 0;
	STANDARD_OUT_prem_disp = (STANDARD_OUT_prem);
	STANDARD_OUT_oopost_disp = 0;
	STANDARD_OUT_rx_gen_coin_disp = 0;
	STANDARD_OUT_rx_pref_coin_disp = 0;
	STANDARD_OUT_rx_nonpref_coin_disp = 0;

//Calculate costs not included
	STANDARD_OUT_enc_disp = Total_ClaimsCount(form, "drug_mo_gen") * drug_mo_gen_amt[indexnum] + 
			       			Total_ClaimsCount(form, "drug_mo_pref")  * drug_mo_pref_amt[indexnum] +
			       			Total_ClaimsCount(form, "drug_mo_nonpref") * drug_mo_nonpref_amt[indexnum];

//calculate coinsurance

	var standard_out_coin_display_emp = 0;
	var standard_out_coin_display_sp = 0;
	var standard_out_coin_display_c1 = 0;		
	var standard_out_coin_display_c2 = 0;		
	var standard_out_coin_display_c3 = 0;		
	
	var standard_out_coin_svcs_emp = 0;
	var standard_out_coin_svcs_sp = 0;
	var standard_out_coin_svcs_c1 = 0;		
	var standard_out_coin_svcs_c2 = 0;		
	var standard_out_coin_svcs_c3 = 0;		

	standard_out_coin_svcs_emp = Standard_out_coin_svcs("emp", indexnum);
	standard_out_coin_svcs_sp = Standard_out_coin_svcs("sp", indexnum);
	standard_out_coin_svcs_c1 = Standard_out_coin_svcs("c1", indexnum);		
	standard_out_coin_svcs_c2 = Standard_out_coin_svcs("c2", indexnum);		
	standard_out_coin_svcs_c3 = Standard_out_coin_svcs("c3", indexnum);		

	var obj_standard_out_deductibles_emp = new numobj();
	var obj_standard_out_deductibles_sp = new numobj();
	var obj_standard_out_deductibles_c1 = new numobj();
	var obj_standard_out_deductibles_c2 = new numobj();		
	var obj_standard_out_deductibles_c3 = new numobj();
	
	var obj_standard_out_oopmax_emp = new numobj();
	var obj_standard_out_oopmax_sp = new numobj();
	var obj_standard_out_oopmax_c1 = new numobj();
	var obj_standard_out_oopmax_c2 = new numobj();		
	var obj_standard_out_oopmax_c3 = new numobj();
	
	var obj_standard_out_FamilyDeductiblesMax = new numobj();
		obj_standard_out_FamilyDeductiblesMax.value = STANDARD_OUT_deductibles_max[1];
	var obj_standard_out_FamilyOopMax = new numobj();
		obj_standard_out_FamilyOopMax.value = STANDARD_OUT_oop_max[1];
	//NOTE: standard_out_FamilyOopMax and standard_out_FamilyDeductiblesMax are reference objects
	//		 pass into the calc co-insurance fuction and will take out the perPerson value each time
	
	//Calculating Co-Insurance and Deductible Per individuals
	standard_out_coin_display_emp = Standard_out_Calc_CoInsurance(standard_out_coin_svcs_emp,
																STANDARD_OUT_coinsurance, 
																STANDARD_OUT_deductibles_max[0], obj_standard_out_FamilyDeductiblesMax, 
																STANDARD_OUT_oop_max[0], obj_standard_out_FamilyOopMax,
																obj_standard_out_deductibles_emp, obj_standard_out_oopmax_emp);

    if (hasSpouse()) 
    {
		standard_out_coin_display_sp = Standard_out_Calc_CoInsurance(standard_out_coin_svcs_sp,
																STANDARD_OUT_coinsurance, 
																STANDARD_OUT_deductibles_max[0], obj_standard_out_FamilyDeductiblesMax, 
																STANDARD_OUT_oop_max[0], obj_standard_out_FamilyOopMax,
																obj_standard_out_deductibles_sp, obj_standard_out_oopmax_sp);

	}
	
	if ( 0< numberOfChild() )
	{
		standard_out_coin_display_c1 = Standard_out_Calc_CoInsurance(standard_out_coin_svcs_c1,
																STANDARD_OUT_coinsurance, 
																STANDARD_OUT_deductibles_max[0], obj_standard_out_FamilyDeductiblesMax, 
																STANDARD_OUT_oop_max[0], obj_standard_out_FamilyOopMax,
																obj_standard_out_deductibles_c1, obj_standard_out_oopmax_c1);

	}
	if (1 < numberOfChild() ) {
		standard_out_coin_display_c2 = Standard_out_Calc_CoInsurance(standard_out_coin_svcs_c2,
																STANDARD_OUT_coinsurance, 
																STANDARD_OUT_deductibles_max[0], obj_standard_out_FamilyDeductiblesMax, 
																STANDARD_OUT_oop_max[0], obj_standard_out_FamilyOopMax,
																obj_standard_out_deductibles_c2, obj_standard_out_oopmax_c2);

	}
	if (2 <numberOfChild() ) {
		standard_out_coin_display_c3 = Standard_out_Calc_CoInsurance(standard_out_coin_svcs_c3,
																STANDARD_OUT_coinsurance, 
																STANDARD_OUT_deductibles_max[0], obj_standard_out_FamilyDeductiblesMax,
																STANDARD_OUT_oop_max[0], obj_standard_out_FamilyOopMax, 
																obj_standard_out_deductibles_c3, obj_standard_out_oopmax_c3);
	}
	
  	STANDARD_OUT_coin_disp = standard_out_coin_display_emp + standard_out_coin_display_sp + standard_out_coin_display_c1 + standard_out_coin_display_c2 +standard_out_coin_display_c3;


	STANDARD_OUT_oopre_disp = obj_standard_out_oopmax_emp.value + obj_standard_out_oopmax_sp.value 
	                        + obj_standard_out_oopmax_c1.value + obj_standard_out_oopmax_c2.value + obj_standard_out_oopmax_c3.value	                        
	                        + STANDARD_OUT_enc_disp + STANDARD_OUT_copay_disp;
	                        
	STANDARD_OUT_deduct_disp = obj_standard_out_deductibles_emp.value + obj_standard_out_deductibles_sp.value 
	                        + obj_standard_out_deductibles_c1.value + obj_standard_out_deductibles_c2.value + obj_standard_out_deductibles_c3.value;

	

//has the deductable been met with coinsurance only (no rx)
			

			
	// NOTE: RX calculation Stays and calculate at the Grand total Level

///////////////////////////////////////////////////////////////////////////////////////
//Calculate employee rx retail costs
//rx gen
	var employee_drug_ret_gen = employee_ClaimsCount(form, "drug_ret_gen");
		if (employee_drug_ret_gen > 0) 
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_employee = employee_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_OUT_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_employee = 0;
		}
//rx gen pref
	var employee_drug_ret_pref = employee_ClaimsCount(form, "drug_ret_pref");
		if (employee_drug_ret_pref > 0) 
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_employee = employee_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_OUT_rx_f_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_employee = 0;
		}
//rx gen nonpref
	var employee_drug_ret_nonpref = employee_ClaimsCount(form, "drug_ret_nonpref");
		if (employee_drug_ret_nonpref > 0) 
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_employee = employee_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_OUT_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_employee = 0;
		}

//////////////////////////////////////////////////////////////////////////////////////
//Calculate spouse rx retail costs
//rx gen
	var spouse_drug_ret_gen = spouse_ClaimsCount(form, "drug_ret_gen");
		if (spouse_drug_ret_gen > 0) 
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_spouse = spouse_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_OUT_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_spouse = 0;
		}
//rx gen pref
	var spouse_drug_ret_pref = spouse_ClaimsCount(form, "drug_ret_pref");
		if (spouse_drug_ret_pref > 0) 
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_spouse = spouse_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_OUT_rx_f_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_spouse = 0;
		}
//rx gen nonpref
	var spouse_drug_ret_nonpref = spouse_ClaimsCount(form, "drug_ret_nonpref");
		if (spouse_drug_ret_nonpref > 0) 
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_spouse = spouse_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_OUT_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_spouse = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////
//Calculate child one rx retail costs
//rx gen
	var childOne_drug_ret_gen = childOne_ClaimsCount(form, "drug_ret_gen");
		if (childOne_drug_ret_gen > 0) 
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_childOne = childOne_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_OUT_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_childOne = 0;
		}
//rx gen pref
	var childOne_drug_ret_pref = childOne_ClaimsCount(form, "drug_ret_pref");
		if (childOne_drug_ret_pref > 0) 
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_childOne = childOne_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_OUT_rx_f_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_childOne = 0;
		}
//rx gen nonpref
	var childOne_drug_ret_nonpref = childOne_ClaimsCount(form, "drug_ret_nonpref");
		if (childOne_drug_ret_nonpref > 0) 
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_childOne = childOne_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_OUT_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_childOne = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////
		
//Calculate child two rx retail costs
//rx gen
	var childTwo_drug_ret_gen = childTwo_ClaimsCount(form, "drug_ret_gen");
		if (childTwo_drug_ret_gen > 0) 
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_childTwo = childTwo_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_OUT_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_childTwo = 0;
		}
//rx gen pref
	var childTwo_drug_ret_pref = childTwo_ClaimsCount(form, "drug_ret_pref");
		if (childTwo_drug_ret_pref > 0) 
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_childTwo = childTwo_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_OUT_rx_f_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_childTwo = 0;
		}
//rx gen nonpref
	var childTwo_drug_ret_nonpref = childTwo_ClaimsCount(form, "drug_ret_nonpref");
		if (childTwo_drug_ret_nonpref > 0) 
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_childTwo = childTwo_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_OUT_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_childTwo = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////
		
//Calculate child three rx retail costs
//rx gen
	var childThree_drug_ret_gen = childThree_ClaimsCount(form, "drug_ret_gen");
		if (childThree_drug_ret_gen > 0) 
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_childThree = childThree_drug_ret_gen  * drug_ret_gen_amt[indexnum] * STANDARD_OUT_rx_gen_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_gen_coin_disp_childThree = 0;
		}
//rx gen pref
	var childThree_drug_ret_pref = childThree_ClaimsCount(form, "drug_ret_pref");
		if (childThree_drug_ret_pref > 0) 
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_childThree = childThree_drug_ret_pref  * drug_ret_pref_amt[indexnum] * STANDARD_OUT_rx_f_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_pref_coin_disp_childThree = 0;
		}
//rx gen nonpref
	var childThree_drug_ret_nonpref = childThree_ClaimsCount(form, "drug_ret_nonpref");
		if (childThree_drug_ret_nonpref > 0) 
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_childThree = childThree_drug_ret_nonpref  * drug_ret_nonpref_amt[indexnum] * STANDARD_OUT_rx_nf_coinsurance;
		}
		else
		{
			STANDARD_OUT_rx_ret_nonpref_coin_disp_childThree = 0;
		}

/////////////////////////////////////////////////////////////////////////////////////

var STANDARD_OUT_employeeDrugCosts = STANDARD_OUT_rx_ret_gen_coin_disp_employee + STANDARD_OUT_rx_ret_pref_coin_disp_employee
										+ STANDARD_OUT_rx_ret_nonpref_coin_disp_employee;
		if (STANDARD_OUT_employeeDrugCosts > STANDARD_OUT_rx_employee_oopmax)
		{
			STANDARD_OUT_employeeDrugCosts = STANDARD_OUT_rx_employee_oopmax;
		}
	
	var STANDARD_OUT_spouseDrugCosts = STANDARD_OUT_rx_ret_gen_coin_disp_spouse + STANDARD_OUT_rx_ret_pref_coin_disp_spouse
										+ STANDARD_OUT_rx_ret_nonpref_coin_disp_spouse;
		if (STANDARD_OUT_spouseDrugCosts > STANDARD_OUT_rx_spouse_oopmax)
		{
			STANDARD_OUT_spouseDrugCosts = STANDARD_OUT_rx_spouse_oopmax;
		}
	
	var STANDARD_OUT_childOneDrugCosts = STANDARD_OUT_rx_ret_gen_coin_disp_childOne + STANDARD_OUT_rx_ret_pref_coin_disp_childOne
										+ STANDARD_OUT_rx_ret_nonpref_coin_disp_childOne;
		if (STANDARD_OUT_childOneDrugCosts > STANDARD_OUT_rx_childOne_oopmax)
		{
			STANDARD_OUT_childOneDrugCosts = STANDARD_OUT_rx_childOne_oopmax;
		}
	
	var STANDARD_OUT_childTwoDrugCosts = STANDARD_OUT_rx_ret_gen_coin_disp_childTwo + STANDARD_OUT_rx_ret_pref_coin_disp_childTwo
										+ STANDARD_OUT_rx_ret_nonpref_coin_disp_childTwo;
		if (STANDARD_OUT_childTwoDrugCosts > STANDARD_OUT_rx_childTwo_oopmax)
		{
			STANDARD_OUT_childTwoDrugCosts = STANDARD_OUT_rx_childTwo_oopmax;
		}
	
	var STANDARD_OUT_childThreeDrugCosts = STANDARD_OUT_rx_ret_gen_coin_disp_childThree + STANDARD_OUT_rx_ret_pref_coin_disp_childThree
										+ STANDARD_OUT_rx_ret_nonpref_coin_disp_childThree;
		if (STANDARD_OUT_childThreeDrugCosts > STANDARD_OUT_rx_childThree_oopmax)
		{
			STANDARD_OUT_childThreeDrugCosts = STANDARD_OUT_rx_childThree_oopmax;
		}		
	
	
	var STANDARD_OUT_totalDrugCosts = STANDARD_OUT_employeeDrugCosts + STANDARD_OUT_spouseDrugCosts + STANDARD_OUT_childOneDrugCosts
										+ STANDARD_OUT_childTwoDrugCosts + STANDARD_OUT_childThreeDrugCosts;	

////////////////////////////////////////////////////////////////
// HRA calculations added 2009
////////////////////////////////////////////////////////////////
	var spouseCoverageLevelValue = $("#spouseSelect").val();
	var childrenCoverageLevelValue = $("#childrenSelect").val();
	if ( (spouseCoverageLevelValue != "Yes") &&  (childrenCoverageLevelValue < 1) ) // Employee only
	{
		var STANDARD_OUT_hraReduction = STANDARD_OUT_hraCompanyAmount[cvg];
	}
	else if ( (spouseCoverageLevelValue == "Yes") &&  (childrenCoverageLevelValue < 1) ) // Employee + Spouse
	{
		var STANDARD_OUT_hraReduction = STANDARD_OUT_hraCompanyAmount[cvg];
	} 
	else if ( (spouseCoverageLevelValue != "Yes") &&  (childrenCoverageLevelValue > 0) ) // Employee + Children
	{
		var STANDARD_OUT_hraReduction = STANDARD_OUT_hraCompanyAmount[cvg];
	}
	else if ( (spouseCoverageLevelValue == "Yes") &&  (childrenCoverageLevelValue > 0) ) // Employee + Family
	{
		var STANDARD_OUT_hraReduction = STANDARD_OUT_hraCompanyAmount[cvg];
	}

	var subtotalAvailableForHraReduction = STANDARD_OUT_deduct_disp + STANDARD_OUT_copay_disp + STANDARD_OUT_coin_disp + STANDARD_OUT_totalDrugCosts;
	
	if (subtotalAvailableForHraReduction <= STANDARD_OUT_hraReduction)
	{
		STANDARD_OUT_hra_disp = subtotalAvailableForHraReduction;
	}
	else if (subtotalAvailableForHraReduction > STANDARD_OUT_hraReduction)
	{
		STANDARD_OUT_hra_disp = STANDARD_OUT_hraReduction;
	}
////////////////////////////////////////////////////////////////
 
			
	STANDARD_OUT_coin_disp += STANDARD_OUT_totalDrugCosts;
	
	STANDARD_OUT_oopre_disp += STANDARD_OUT_totalDrugCosts;
	STANDARD_OUT_oopre_disp -= STANDARD_OUT_hra_disp;
	
	STANDARD_OUT_oopost_disp = STANDARD_OUT_oopre_disp + STANDARD_OUT_prem_disp;
	
	form.STANDARD_OUT_deduct.value = format(STANDARD_OUT_deduct_disp,2);
	form.STANDARD_OUT_copay.value = format(STANDARD_OUT_copay_disp,2);
	form.STANDARD_OUT_coin.value = format(STANDARD_OUT_coin_disp,2);
	form.STANDARD_OUT_hra.value = format(STANDARD_OUT_hra_disp,2);
	form.STANDARD_OUT_enc.value = format(STANDARD_OUT_enc_disp,2);
	form.STANDARD_OUT_oopre.value = format(STANDARD_OUT_oopre_disp,2);
	form.STANDARD_OUT_prem.value = format(STANDARD_OUT_prem_disp,2);
	form.STANDARD_OUT_oopost.value = format(STANDARD_OUT_oopost_disp,2);
}

//---------------------------------------------------------------------------------------------------------
function Standard_out_Calc_CoInsurance( coin_svcs, 
										coinsurance_perc, 
										deduct_maxPerPerson, obj_deduct_FamilyMax, 
										oop_maxPerPerson, obj_oop_maxPerFamily,
										obj_deductible, obj_oopmaxDisplay)
{
 	//has the deductable been met with coinsurance only (no rx)
	
	if (deduct_maxPerPerson > obj_deduct_FamilyMax.value)  
	{  // left over for the family is less than the PerPerson Max
		deduct_maxPerPerson = obj_deduct_FamilyMax.value;
	}
	if (oop_maxPerPerson > obj_oop_maxPerFamily.value)
	{
		oop_maxPerPerson = obj_oop_maxPerFamily.value;
	}
	
 	var coinsurance=0;
	
	
		 if (coin_svcs  >= deduct_maxPerPerson){
			   // if yes - coinsurance is applied
			obj_deductible.value =deduct_maxPerPerson;	
			coinsurance = (coin_svcs - deduct_maxPerPerson) * coinsurance_perc;  //services percentage
		
		}	   
		else {
			obj_deductible.value = coin_svcs;
			coinsurance = 0;
		}


	obj_deduct_FamilyMax.value = obj_deduct_FamilyMax.value - obj_deductible.value;
		
	
		if (coinsurance + obj_deductible.value >= oop_maxPerPerson){
		//yes -- display OOPmax + expenses not covered
			obj_oopmaxDisplay.value = oop_maxPerPerson ;
			coinsurance = oop_maxPerPerson - obj_deductible.value;
		}
		else{//no -- display costs
			obj_oopmaxDisplay.value  = coinsurance + obj_deductible.value  ;
		}	

		obj_oop_maxPerFamily.value = obj_oop_maxPerFamily.value - obj_oopmaxDisplay.value;

		return coinsurance;
}

	

function Standard_out_coin_svcs(claimPerson, costIndex) 
{
	var standardOUT_coin_svcs = 0;
	if (claimPerson=="sp" && !hasSpouse() ){
		standardOUT_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		standardOUT_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		standardOUT_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		standardOUT_coin_svcs = 0;
	}
	else 
	{
		standardOUT_coin_svcs =	(ClaimsCount(claimPerson, "doc_phys") ) * doc_phys_amt[costIndex] + 
					(ClaimsCount(claimPerson, "doc_baby") ) * doc_baby_amt[costIndex] + 
					( ClaimsCount(claimPerson, "doc_baby_infant") )  * doc_baby_infant_amt[costIndex] + 
					(ClaimsCount(claimPerson, "immunization") )  * immunization_amt[costIndex] + 
					( ClaimsCount(claimPerson, "cholesterol") )  * cholesterol_amt[costIndex] + 
					( ClaimsCount(claimPerson, "colonoscopy") )  * colonoscopy_amt[costIndex] + 
					( ClaimsCount(claimPerson, "pap") )  * pap_amt[costIndex] + 
					(ClaimsCount(claimPerson, "psa") )  * psa_amt[costIndex] + 
					( ClaimsCount(claimPerson, "mammogram") )  * mammogram_amt[costIndex] +
					(ClaimsCount(claimPerson, "pcp") ) * pcp_amt[costIndex] +
					( ClaimsCount(claimPerson, "specialist") ) * specialist_amt[costIndex] +
					( ClaimsCount(claimPerson, "urgent") )  * urgent_amt[costIndex] + 
					( ClaimsCount(claimPerson, "emerg") )  * emerg_amt[costIndex] + 
					(ClaimsCount(claimPerson, "surgery") )  * surgery_amt[costIndex] + 
					( ClaimsCount(claimPerson, "allergy_test") )  * allergy_test_amt[costIndex] + 
					(ClaimsCount(claimPerson, "allergy_serum") )  * allergy_serum_amt[costIndex] + 
					(ClaimsCount(claimPerson, "allergy_shot") )  * allergy_shot_amt[costIndex] + 
					(ClaimsCount(claimPerson, "speech") )  * speech_amt[costIndex] + 
					(ClaimsCount(claimPerson, "blood") )  * blood_amt[costIndex] + 
					(ClaimsCount(claimPerson, "surgPath") )  * surgPath_amt[costIndex] + 
					(ClaimsCount(claimPerson, "lipid") )  * lipid_amt[costIndex] + 
					(ClaimsCount(claimPerson, "CompMedia") )  * CompMedia_amt[costIndex] + 
					(ClaimsCount(claimPerson, "CoumadinCheck") )  * CoumadinCheck_amt[costIndex] + 
					(ClaimsCount(claimPerson, "RadiologicalExam") )  * RadiologicalExam_amt[costIndex] + 
					(ClaimsCount(claimPerson, "MRIFace") )  * MRIFace_amt[costIndex] + 
					(ClaimsCount(claimPerson, "MRIBrain") )  * MRIBrain_amt[costIndex] + 
					(ClaimsCount(claimPerson, "BoneDensity") )  * BoneDensity_amt[costIndex] + 
					(ClaimsCount(claimPerson, "mat_natal") )  * mat_natal_amt[costIndex] + 
					(ClaimsCount(claimPerson, "mat_norm") )  * mat_norm_amt[costIndex] + 
					(ClaimsCount(claimPerson, "inpatient") )  * inpatient_amt[costIndex] +
					(ClaimsCount(claimPerson, "outpatient") )  * outpatient_amt[costIndex] ;
					
								
		standardOUT_coin_svcs +=	ClaimsCount(claimPerson, "other_exp") ;  //note: other_exp is an amount

			// Chiropractic limited to $750 max per person
			var chiroCount = ClaimsCount(claimPerson, "chiro");					
			if ((chiroCount * chiro_amt[costIndex]) > 750) {
				standardOUT_coin_svcs += 750;
			}
			else {
				standardOUT_coin_svcs += chiroCount * chiro_amt[costIndex];
			}
			
	}	
	return standardOUT_coin_svcs ;
}			
			
//***************************************************************************************************************************
// END OF STANDARD_OUT CALCULATION
//***************************************************************************************************************************
		
		
		
//************************************************************************************************************************************
// PREMIER_IN CALCULATION 
//************************************************************************************************************************************

function PREMIER_IN_Calc (form)
{	var indexnum = 3;
//Calculations
	PREMIER_IN_deduct_disp = 0;
	PREMIER_IN_copay_disp = 0;
	PREMIER_IN_prevent_coin_disp = 0;
	PREMIER_IN_coin_disp = 0;
	PREMIER_IN_enc_disp = 0;
	PREMIER_IN_oopre_disp = 0;
	PREMIER_IN_prem_disp = (PREMIER_IN_prem);
	PREMIER_IN_oopost_disp = 0;
	PREMIER_IN_rx_gen_coin_disp = 0;
	PREMIER_IN_rx_pref_coin_disp = 0;
	PREMIER_IN_rx_nonpref_coin_disp = 0;
	PREMIER_IN_rx_mo_gen_coin_disp = 0;
	PREMIER_IN_rx_mo_pref_coin_disp = 0;
	PREMIER_IN_rx_mo_nonpref_coin_disp = 0;


//Calculate PREMIER IN  Services Copays

	PREMIER_IN_rx_mo_copay_svcs = 0;
	
	PREMIER_IN_copay_disp = PREMIER_IN_rx_mo_copay_svcs;
	
	PREMIER_IN_copay_disp += Total_ClaimsCount(form, "pcp")  *pcp_amt[indexnum] +
				Total_ClaimsCount(form, "specialist")  *specialist_amt[indexnum] +
				Total_ClaimsCount(form, "outpatient")  * outpatient_amt[indexnum];




//calculate coinsurance

	var premier_in_coin_display_emp = 0;
	var premier_in_coin_display_sp = 0;
	var premier_in_coin_display_c1 = 0;		
	var premier_in_coin_display_c2 = 0;		
	var premier_in_coin_display_c3 = 0;		
	
	var premier_in_prevent_coin_svcs_emp=0;
	var premier_in_prevent_coin_svcs_sp=0;
	var premier_in_prevent_coin_svcs_c1=0;
	var premier_in_prevent_coin_svcs_c2=0;
	var premier_in_prevent_coin_svcs_c3=0;

	var premier_in_coin_svcs_emp = 0;
	var premier_in_coin_svcs_sp = 0;
	var premier_in_coin_svcs_c1 = 0;		
	var premier_in_coin_svcs_c2 = 0;		
	var premier_in_coin_svcs_c3 = 0;		


	premier_in_prevent_coin_svcs_emp = Premier_in_prevent_coin_svcs("emp", indexnum);
	premier_in_prevent_coin_svcs_sp = Premier_in_prevent_coin_svcs("sp", indexnum);
	premier_in_prevent_coin_svcs_c1 = Premier_in_prevent_coin_svcs("c1", indexnum);
	premier_in_prevent_coin_svcs_c2 = Premier_in_prevent_coin_svcs("c2", indexnum);
	premier_in_prevent_coin_svcs_c3 = Premier_in_prevent_coin_svcs("c3", indexnum) ; 
	
	premier_in_coin_svcs_emp = Premier_in_coin_svcs("emp", indexnum);
	premier_in_coin_svcs_sp = Premier_in_coin_svcs("sp", indexnum);
	premier_in_coin_svcs_c1 = Premier_in_coin_svcs("c1", indexnum);		
	premier_in_coin_svcs_c2 = Premier_in_coin_svcs("c2", indexnum);		
	premier_in_coin_svcs_c3 = Premier_in_coin_svcs("c3", indexnum);		

	var obj_premier_in_deductibles_emp = new numobj();
	var obj_premier_in_deductibles_sp = new numobj();
	var obj_premier_in_deductibles_c1 = new numobj();
	var obj_premier_in_deductibles_c2 = new numobj();		
	var obj_premier_in_deductibles_c3 = new numobj();
	
	var obj_premier_in_oopmax_emp = new numobj();
	var obj_premier_in_oopmax_sp = new numobj();
	var obj_premier_in_oopmax_c1 = new numobj();
	var obj_premier_in_oopmax_c2 = new numobj();		
	var obj_premier_in_oopmax_c3 = new numobj();
	
	var obj_premier_in_FamilyDeductiblesMax = new numobj();
		obj_premier_in_FamilyDeductiblesMax.value = PREMIER_IN_deductibles_max[1];
	var obj_premier_in_FamilyOopMax = new numobj();
		obj_premier_in_FamilyOopMax.value = PREMIER_IN_oop_max[1];
	//NOTE: premier_in_FamilyOopMax and premier_in_FamilyDeductiblesMax are reference objects
	//		 pass into the calc co-insurance fuction and will take out the perPerson value each time
	
	//Calculating Co-Insurance and Deductible Per individuals
	premier_in_coin_display_emp = Premier_in_Calc_CoInsurance(premier_in_prevent_coin_svcs_emp, premier_in_coin_svcs_emp,
																PREMIER_IN_prevent_coinsurance , PREMIER_IN_coinsurance, 
																PREMIER_IN_deductibles_max[0], obj_premier_in_FamilyDeductiblesMax, 
																PREMIER_IN_oop_max[0], obj_premier_in_FamilyOopMax,
																obj_premier_in_deductibles_emp, obj_premier_in_oopmax_emp);

    

	if (hasSpouse()) {

		premier_in_coin_display_sp = Premier_in_Calc_CoInsurance(premier_in_prevent_coin_svcs_sp, premier_in_coin_svcs_sp,
																PREMIER_IN_prevent_coinsurance , PREMIER_IN_coinsurance, 
																PREMIER_IN_deductibles_max[0], obj_premier_in_FamilyDeductiblesMax, 
																PREMIER_IN_oop_max[0], obj_premier_in_FamilyOopMax,
																obj_premier_in_deductibles_sp, obj_premier_in_oopmax_sp);

	}
	
	if ( 0< numberOfChild() )
	{
		premier_in_coin_display_c1 = Premier_in_Calc_CoInsurance(premier_in_prevent_coin_svcs_c1, premier_in_coin_svcs_c1,
																PREMIER_IN_prevent_coinsurance , PREMIER_IN_coinsurance, 
																PREMIER_IN_deductibles_max[0], obj_premier_in_FamilyDeductiblesMax, 
																PREMIER_IN_oop_max[0], obj_premier_in_FamilyOopMax,
																obj_premier_in_deductibles_c1, obj_premier_in_oopmax_c1);

	}
	if (1 < numberOfChild() ) {
		premier_in_coin_display_c2 = Premier_in_Calc_CoInsurance(premier_in_prevent_coin_svcs_c2, premier_in_coin_svcs_c2,
																PREMIER_IN_prevent_coinsurance , PREMIER_IN_coinsurance, 
																PREMIER_IN_deductibles_max[0], obj_premier_in_FamilyDeductiblesMax, 
																PREMIER_IN_oop_max[0], obj_premier_in_FamilyOopMax,
																obj_premier_in_deductibles_c2, obj_premier_in_oopmax_c2);

	}
	if (2 <numberOfChild() ) {
		premier_in_coin_display_c3 = Premier_in_Calc_CoInsurance(premier_in_prevent_coin_svcs_c3, premier_in_coin_svcs_c3,
																PREMIER_IN_prevent_coinsurance , PREMIER_IN_coinsurance, 
																PREMIER_IN_deductibles_max[0], obj_premier_in_FamilyDeductiblesMax,
																PREMIER_IN_oop_max[0], obj_premier_in_FamilyOopMax, 
																obj_premier_in_deductibles_c3, obj_premier_in_oopmax_c3);
	}
	
  
  	PREMIER_IN_coin_disp = premier_in_coin_display_emp + premier_in_coin_display_sp + premier_in_coin_display_c1 
							+ premier_in_coin_display_c2 +premier_in_coin_display_c3;
	
	PREMIER_IN_oopre_disp = obj_premier_in_oopmax_emp.value + obj_premier_in_oopmax_sp.value 
	                        + obj_premier_in_oopmax_c1.value + obj_premier_in_oopmax_c2.value + obj_premier_in_oopmax_c3.value
	                        + PREMIER_IN_enc_disp + PREMIER_IN_copay_disp;  //Adding enc and copay at group total level
							
	PREMIER_IN_deduct_disp = obj_premier_in_deductibles_emp.value + obj_premier_in_deductibles_sp.value 
	                        + obj_premier_in_deductibles_c1.value + obj_premier_in_deductibles_c2.value + obj_premier_in_deductibles_c3.value;
  
  
  		
	// NOTE: RX calculation Stays and calculate at the Grand total Level
			
//Calculate rx retail costs
	//rx gen
	var total_drug_ret_gen = Total_ClaimsCount(form, "drug_ret_gen");
		if (total_drug_ret_gen > 0) {
			PREMIER_IN_rx_gen_coin_disp = total_drug_ret_gen  * drug_ret_gen_amt[indexnum] * PREMIER_IN_rx_gen_coinsurance;
				if (PREMIER_IN_rx_gen_coin_disp < (6 * total_drug_ret_gen))
				{
					PREMIER_IN_rx_gen_coin_disp = 6 * total_drug_ret_gen;
				}
				else if (PREMIER_IN_rx_gen_coin_disp > (12 * total_drug_ret_gen))
				{
					PREMIER_IN_rx_gen_coin_disp = 12 * total_drug_ret_gen;
				}
		}	
	//rx gen pref
	var total_drug_ret_pref = Total_ClaimsCount(form, "drug_ret_pref");
		if (total_drug_ret_pref > 0)
		{
			PREMIER_IN_rx_pref_coin_disp = total_drug_ret_pref * drug_ret_pref_amt[indexnum] * PREMIER_IN_rx_f_coinsurance;
				if (PREMIER_IN_rx_pref_coin_disp < (25 * total_drug_ret_pref))
				{
					PREMIER_IN_rx_pref_coin_disp = 25 * total_drug_ret_pref;
				}
				else if (PREMIER_IN_rx_pref_coin_disp > (40 * total_drug_ret_pref))
				{
					PREMIER_IN_rx_pref_coin_disp = 40 * total_drug_ret_pref;
				}
		}
		
	//rx gen nonpref
	var total_drug_ret_nonpref = Total_ClaimsCount(form, "drug_ret_nonpref") ;
		if (total_drug_ret_nonpref > 0) {
			PREMIER_IN_rx_nonpref_coin_disp = total_drug_ret_nonpref * drug_ret_nonpref_amt[indexnum] *PREMIER_IN_rx_nf_coinsurance;
				if (PREMIER_IN_rx_nonpref_coin_disp < (40 * total_drug_ret_nonpref))
				{
					PREMIER_IN_rx_nonpref_coin_disp = 40 * total_drug_ret_nonpref;
				}
				else if (PREMIER_IN_rx_nonpref_coin_disp > (60 * total_drug_ret_nonpref))
				{
					PREMIER_IN_rx_nonpref_coin_disp = 60 * total_drug_ret_nonpref;
				}
		}			
	//rx mail order generic
	var total_drug_mo_gen = Total_ClaimsCount(form, "drug_mo_gen");
		if (total_drug_mo_gen > 0) {
			PREMIER_IN_rx_mo_gen_coin_disp = total_drug_mo_gen  * drug_mo_gen_amt[indexnum] * PREMIER_IN_rx_gen_coinsurance;
				if (PREMIER_IN_rx_mo_gen_coin_disp < (12 * total_drug_mo_gen))
				{
					PREMIER_IN_rx_mo_gen_coin_disp = 12 * total_drug_mo_gen;
				}
				else if (PREMIER_IN_rx_mo_gen_coin_disp > (24 * total_drug_mo_gen))
				{
					PREMIER_IN_rx_mo_gen_coin_disp = 24 * total_drug_mo_gen;
				}
		}
	//rx mail order pref
	var total_drug_mo_pref = Total_ClaimsCount(form, "drug_mo_pref");
		if (total_drug_mo_pref > 0)
		{
			PREMIER_IN_rx_mo_pref_coin_disp = total_drug_mo_pref * drug_mo_pref_amt[indexnum] * PREMIER_IN_rx_f_coinsurance;
				if (PREMIER_IN_rx_mo_pref_coin_disp < (50 * total_drug_mo_pref))
				{
					PREMIER_IN_rx_mo_pref_coin_disp = 50 * total_drug_mo_pref;
				}
				else if (PREMIER_IN_rx_mo_pref_coin_disp > (80 * total_drug_mo_pref))
				{
					PREMIER_IN_rx_mo_pref_coin_disp = 80 * total_drug_mo_pref;
				}
		}	
	//rx mail order nonpref
	var total_drug_mo_nonpref = Total_ClaimsCount(form, "drug_mo_nonpref") ;
		if (total_drug_mo_nonpref > 0) {
			PREMIER_IN_rx_mo_nonpref_coin_disp = total_drug_mo_nonpref * drug_mo_nonpref_amt[indexnum] *PREMIER_IN_rx_nf_coinsurance;
				if (PREMIER_IN_rx_mo_nonpref_coin_disp < (80 * total_drug_mo_nonpref))
				{
					PREMIER_IN_rx_mo_nonpref_coin_disp = 80 * total_drug_mo_nonpref;
				}
				else if (PREMIER_IN_rx_mo_nonpref_coin_disp > (120 * total_drug_mo_nonpref))
				{
					PREMIER_IN_rx_mo_nonpref_coin_disp = 120 * total_drug_mo_nonpref;
				}
		} 		   
	
			
	PREMIER_IN_coin_disp += PREMIER_IN_rx_gen_coin_disp + PREMIER_IN_rx_pref_coin_disp + PREMIER_IN_rx_nonpref_coin_disp;
	PREMIER_IN_coin_disp += PREMIER_IN_rx_mo_gen_coin_disp + PREMIER_IN_rx_mo_pref_coin_disp + PREMIER_IN_rx_mo_nonpref_coin_disp;
	
	PREMIER_IN_oopre_disp += PREMIER_IN_rx_gen_coin_disp + PREMIER_IN_rx_pref_coin_disp + PREMIER_IN_rx_nonpref_coin_disp;
	PREMIER_IN_oopre_disp += PREMIER_IN_rx_mo_gen_coin_disp + PREMIER_IN_rx_mo_pref_coin_disp + PREMIER_IN_rx_mo_nonpref_coin_disp;
	
	PREMIER_IN_oopost_disp = PREMIER_IN_oopre_disp + PREMIER_IN_prem_disp;	   

	
	form.PREMIER_IN_deduct.value = format(PREMIER_IN_deduct_disp,2);
	form.PREMIER_IN_copay.value = format(PREMIER_IN_copay_disp,2);
	form.PREMIER_IN_coin.value = format(PREMIER_IN_coin_disp,2);
	form.PREMIER_IN_enc.value = format(PREMIER_IN_enc_disp,2);
	form.PREMIER_IN_oopre.value = format(PREMIER_IN_oopre_disp,2);
	form.PREMIER_IN_prem.value = format(PREMIER_IN_prem_disp,2);
	form.PREMIER_IN_oopost.value = format(PREMIER_IN_oopost_disp,2);
}

//---------------------------------------------------------------------------------------------------------

function Premier_in_Calc_CoInsurance( prevent_coin_svcs, coin_svcs, 
										prevent_coinsurance_perc, coinsurance_perc, 
										deduct_maxPerPerson, obj_deduct_FamilyMax, 
										oop_maxPerPerson, obj_oop_maxPerFamily,
										obj_deductible, obj_oopmaxDisplay)
{
 	//has the deductable been met with coinsurance only (no rx)
	
	if (deduct_maxPerPerson > obj_deduct_FamilyMax.value)  
	{  // left over for the family is less than the PerPerson Max
		deduct_maxPerPerson = obj_deduct_FamilyMax.value;
	}
	if (oop_maxPerPerson > obj_oop_maxPerFamily.value)
	{
		oop_maxPerPerson = obj_oop_maxPerFamily.value;
	}
	
 	var coinsurance=0;
	   if (prevent_coin_svcs >= deduct_maxPerPerson){
		   // if yes - coinsurance is applied
			obj_deductible.value = deduct_maxPerPerson;	
			coinsurance = (prevent_coin_svcs - deduct_maxPerPerson) * prevent_coinsurance_perc; //services percentage
			coinsurance += coin_svcs * coinsurance_perc;
		}	   
		else if (prevent_coin_svcs + coin_svcs > deduct_maxPerPerson){		
			 obj_deductible.value = deduct_maxPerPerson;	
			 var remainder = deduct_maxPerPerson - prevent_coin_svcs;
			 coinsurance = (coin_svcs - remainder) * coinsurance_perc;
	   	}	
	   	else {
			obj_deductible.value = prevent_coin_svcs + coin_svcs;
			coinsurance = 0;
		}
	
		obj_deduct_FamilyMax.value = obj_deduct_FamilyMax.value - obj_deductible.value;
		
	
		if (coinsurance + obj_deductible.value >= oop_maxPerPerson){
		//yes -- display OOPmax + expenses not covered
			obj_oopmaxDisplay.value = oop_maxPerPerson ;
			coinsurance = oop_maxPerPerson - obj_deductible.value;
		}
		else{//no -- display costs
			obj_oopmaxDisplay.value  = coinsurance + obj_deductible.value  ;
		}	

		obj_oop_maxPerFamily.value = obj_oop_maxPerFamily.value - obj_oopmaxDisplay.value;

		return coinsurance;
}


function Premier_in_prevent_coin_svcs(claimPerson,costIndex)
{   // claimPerson -  emp: employee, sp: spouse, c1:child1, c2:child2, c3:child3

	var premierIN_prevent_coin_svcs;

	if (claimPerson=="sp" && !hasSpouse() ){
		premierIN_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		premierIN_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		premierIN_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		premierIN_prevent_coin_svcs = 0;
	}
	else 
	{	
		premierIN_prevent_coin_svcs =  ClaimsCount(claimPerson, "doc_phys") * doc_phys_amt[costIndex] + 
						                ClaimsCount(claimPerson, "doc_baby")  * doc_baby_amt[costIndex] + 
						                ClaimsCount(claimPerson, "doc_baby_infant")  * doc_baby_infant_amt[costIndex] + 
						                ClaimsCount(claimPerson, "immunization")  * immunization_amt[costIndex] + 
						                ClaimsCount(claimPerson, "cholesterol")  * cholesterol_amt[costIndex] + 
						                ClaimsCount(claimPerson, "colonoscopy")  * colonoscopy_amt[costIndex] + 
						                ClaimsCount(claimPerson, "pap") * pap_amt[costIndex] + 
						                ClaimsCount(claimPerson, "psa")  * psa_amt[costIndex] + 
						                ClaimsCount(claimPerson, "BoneDensity")  * BoneDensity_amt[costIndex] + 
						                ClaimsCount(claimPerson, "mammogram")  * mammogram_amt[costIndex];

	}					
	return premierIN_prevent_coin_svcs;
}

function Premier_in_coin_svcs(claimPerson, costIndex) 
{
	var premierIN_coin_svcs = 0;
	if (claimPerson=="sp" && !hasSpouse() ){
		premierIN_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		premierIN_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		premierIN_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		premierIN_coin_svcs = 0;
	}
	else 
	{
		premierIN_coin_svcs =	ClaimsCount(claimPerson, "urgent")  * urgent_amt[costIndex] + 
								ClaimsCount(claimPerson, "emerg") * emerg_amt[costIndex] + 
								ClaimsCount(claimPerson, "surgery") * surgery_amt[costIndex] +
								ClaimsCount(claimPerson, "allergy_test")  * allergy_test_amt[costIndex] + 
								ClaimsCount(claimPerson, "allergy_serum") * allergy_serum_amt[costIndex] + 
								ClaimsCount(claimPerson, "allergy_shot") * allergy_shot_amt[costIndex] + 
								ClaimsCount(claimPerson, "speech") * speech_amt[costIndex] + 
								ClaimsCount(claimPerson, "blood") * blood_amt[costIndex] + 
								ClaimsCount(claimPerson, "surgPath") * surgPath_amt[costIndex] + 
								ClaimsCount(claimPerson, "lipid") * lipid_amt[costIndex] + 
								ClaimsCount(claimPerson, "CompMedia") * CompMedia_amt[costIndex] + 
								ClaimsCount(claimPerson, "CoumadinCheck") * CoumadinCheck_amt[costIndex] + 
								ClaimsCount(claimPerson, "RadiologicalExam") * RadiologicalExam_amt[costIndex] + 
								ClaimsCount(claimPerson, "MRIFace") * MRIFace_amt[costIndex] + 
								ClaimsCount(claimPerson, "MRIBrain") * MRIBrain_amt[costIndex] + 
								ClaimsCount(claimPerson, "mat_norm") * mat_norm_amt[costIndex] + 
								ClaimsCount(claimPerson, "mat_natal") * mat_natal_amt[costIndex] + 
								ClaimsCount(claimPerson, "inpatient")  * inpatient_amt[costIndex] +
								ClaimsCount(claimPerson, "chiro")  * chiro_amt[costIndex] ;
								
		premierIN_coin_svcs +=	ClaimsCount(claimPerson, "other_exp") ;  //note: other_exp is an amount

			
			
	}	
	return premierIN_coin_svcs;
}					

		
//************************************************************************************************************************************
// END OF PREMIER_IN CALCULATION 
//************************************************************************************************************************************

//********************************************************************************************************************************
//---PREMIER_OUT CALCULATION------------------------------------------------------------------------------------------------------

function PREMIER_OUT_Calc (form)
{	var indexnum = 4;
	
//Calculations
	PREMIER_OUT_deduct_disp = 0;
	PREMIER_OUT_copay_disp = 0;
	PREMIER_OUT_coin_disp = 0;
	PREMIER_OUT_enc_disp = 0;
	PREMIER_OUT_oopre_disp = 0;
	PREMIER_OUT_prem_disp = (PREMIER_OUT_prem);
	PREMIER_OUT_oopost_disp = 0;
	PREMIER_OUT_rx_gen_coin_disp = 0;
	PREMIER_OUT_rx_pref_coin_disp = 0;
	PREMIER_OUT_rx_nonpref_coin_disp = 0;

//Calculate costs not included
	PREMIER_OUT_enc_disp = Total_ClaimsCount(form, "drug_mo_gen") * drug_mo_gen_amt[indexnum] + 
			       			Total_ClaimsCount(form, "drug_mo_pref")  * drug_mo_pref_amt[indexnum] +
			       			Total_ClaimsCount(form, "drug_mo_nonpref") * drug_mo_nonpref_amt[indexnum];

//calculate coinsurance

	var premier_out_coin_display_emp = 0;
	var premier_out_coin_display_sp = 0;
	var premier_out_coin_display_c1 = 0;		
	var premier_out_coin_display_c2 = 0;		
	var premier_out_coin_display_c3 = 0;		
	
	var premier_out_coin_svcs_emp = 0;
	var premier_out_coin_svcs_sp = 0;
	var premier_out_coin_svcs_c1 = 0;		
	var premier_out_coin_svcs_c2 = 0;		
	var premier_out_coin_svcs_c3 = 0;		

	var premier_out_outpatient_svcs_emp = 0;
	var premier_out_outpatient_svcs_sp = 0;
	var premier_out_outpatient_svcs_c1 = 0;		
	var premier_out_outpatient_svcs_c2 = 0;		
	var premier_out_outpatient_svcs_c3 = 0;		

	premier_out_coin_svcs_emp = Premier_out_coin_svcs("emp", indexnum);
	premier_out_coin_svcs_sp = Premier_out_coin_svcs("sp", indexnum);
	premier_out_coin_svcs_c1 = Premier_out_coin_svcs("c1", indexnum);		
	premier_out_coin_svcs_c2 = Premier_out_coin_svcs("c2", indexnum);		
	premier_out_coin_svcs_c3 = Premier_out_coin_svcs("c3", indexnum);		

	premier_out_outpatient_svcs_emp= Premier_out_outpatient_svcs("emp", indexnum);
	premier_out_outpatient_svcs_sp = Premier_out_outpatient_svcs("sp", indexnum);
	premier_out_outpatient_svcs_c1 = Premier_out_outpatient_svcs("c1", indexnum);		
	premier_out_outpatient_svcs_c2 = Premier_out_outpatient_svcs("c2", indexnum);		
	premier_out_outpatient_svcs_c3 = Premier_out_outpatient_svcs("c3", indexnum);		

	var obj_premier_out_deductibles_emp = new numobj();
	var obj_premier_out_deductibles_sp = new numobj();
	var obj_premier_out_deductibles_c1 = new numobj();
	var obj_premier_out_deductibles_c2 = new numobj();		
	var obj_premier_out_deductibles_c3 = new numobj();
	
	var obj_premier_out_oopmax_emp = new numobj();
	var obj_premier_out_oopmax_sp = new numobj();
	var obj_premier_out_oopmax_c1 = new numobj();
	var obj_premier_out_oopmax_c2 = new numobj();		
	var obj_premier_out_oopmax_c3 = new numobj();
	
	var obj_premier_out_FamilyDeductiblesMax = new numobj();
		obj_premier_out_FamilyDeductiblesMax.value = PREMIER_OUT_deductibles_max[1];
	var obj_premier_out_FamilyOopMax = new numobj();
		obj_premier_out_FamilyOopMax.value = PREMIER_OUT_oop_max[1];
	//NOTE: premier_out_FamilyOopMax and premier_out_FamilyDeductiblesMax are reference objects
	//		 pass into the calc co-insurance fuction and will take out the perPerson value each time
	
	//Calculating Co-Insurance and Deductible Per individuals
	premier_out_coin_display_emp = Premier_out_Calc_CoInsurance(premier_out_outpatient_svcs_emp, premier_out_coin_svcs_emp,
																PREMIER_OUT_outpatient_coinsurance , PREMIER_OUT_coinsurance, 
																PREMIER_OUT_deductibles_max[0], obj_premier_out_FamilyDeductiblesMax, 
																PREMIER_OUT_oop_max[0], obj_premier_out_FamilyOopMax,
																obj_premier_out_deductibles_emp, obj_premier_out_oopmax_emp);

    if (hasSpouse()) 
    {
		premier_out_coin_display_sp = Premier_out_Calc_CoInsurance(premier_out_outpatient_svcs_sp, premier_out_coin_svcs_sp,
																PREMIER_OUT_outpatient_coinsurance , PREMIER_OUT_coinsurance, 
																PREMIER_OUT_deductibles_max[0], obj_premier_out_FamilyDeductiblesMax, 
																PREMIER_OUT_oop_max[0], obj_premier_out_FamilyOopMax,
																obj_premier_out_deductibles_sp, obj_premier_out_oopmax_sp);

	}
	
	if ( 0< numberOfChild() )
	{
		premier_out_coin_display_c1 = Premier_out_Calc_CoInsurance(premier_out_outpatient_svcs_c1, premier_out_coin_svcs_c1,
																PREMIER_OUT_outpatient_coinsurance , PREMIER_OUT_coinsurance, 
																PREMIER_OUT_deductibles_max[0], obj_premier_out_FamilyDeductiblesMax, 
																PREMIER_OUT_oop_max[0], obj_premier_out_FamilyOopMax,
																obj_premier_out_deductibles_c1, obj_premier_out_oopmax_c1);

	}
	if (1 < numberOfChild() ) {
		premier_out_coin_display_c2 = Premier_out_Calc_CoInsurance(premier_out_outpatient_svcs_c2, premier_out_coin_svcs_c2,
																PREMIER_OUT_outpatient_coinsurance , PREMIER_OUT_coinsurance, 
																PREMIER_OUT_deductibles_max[0], obj_premier_out_FamilyDeductiblesMax, 
																PREMIER_OUT_oop_max[0], obj_premier_out_FamilyOopMax,
																obj_premier_out_deductibles_c2, obj_premier_out_oopmax_c2);

	}
	if (2 <numberOfChild() ) {
		premier_out_coin_display_c3 = Premier_out_Calc_CoInsurance(premier_out_outpatient_svcs_c3, premier_out_coin_svcs_c3,
																PREMIER_OUT_outpatient_coinsurance , PREMIER_OUT_coinsurance, 
																PREMIER_OUT_deductibles_max[0], obj_premier_out_FamilyDeductiblesMax,
																PREMIER_OUT_oop_max[0], obj_premier_out_FamilyOopMax, 
																obj_premier_out_deductibles_c3, obj_premier_out_oopmax_c3);
	}
	
  	PREMIER_OUT_coin_disp = premier_out_coin_display_emp + premier_out_coin_display_sp + premier_out_coin_display_c1 + premier_out_coin_display_c2 +premier_out_coin_display_c3;


	PREMIER_OUT_oopre_disp = obj_premier_out_oopmax_emp.value + obj_premier_out_oopmax_sp.value 
	                        + obj_premier_out_oopmax_c1.value + obj_premier_out_oopmax_c2.value + obj_premier_out_oopmax_c3.value	                        
	                        + PREMIER_OUT_enc_disp + PREMIER_OUT_copay_disp;
	                        
	PREMIER_OUT_deduct_disp = obj_premier_out_deductibles_emp.value + obj_premier_out_deductibles_sp.value 
	                        + obj_premier_out_deductibles_c1.value + obj_premier_out_deductibles_c2.value + obj_premier_out_deductibles_c3.value;

	

//has the deductable been met with coinsurance only (no rx)
			

			
//Calculate rx retail costs
	//rx gen
	var total_drug_ret_gen =Total_ClaimsCount(form, "drug_ret_gen") ;
		if (total_drug_ret_gen > 0) {
			PREMIER_OUT_rx_gen_coin_disp = total_drug_ret_gen * ((drug_ret_gen_amt[indexnum] * PREMIER_OUT_rx_gen_coinsurance) + 6);
		}	
	//rx gen pref
	var total_drug_ret_pref = Total_ClaimsCount(form, "drug_ret_pref") ;
		if (total_drug_ret_pref > 0) {
			PREMIER_OUT_rx_pref_coin_disp = total_drug_ret_pref * ((drug_ret_pref_amt[indexnum] * PREMIER_OUT_rx_f_coinsurance) + 25);
		}	
	//rx gen nonpref
	var total_drug_ret_nonpref =Total_ClaimsCount(form, "drug_ret_nonpref") ;
		if (total_drug_ret_nonpref > 0) {
			PREMIER_OUT_rx_nonpref_coin_disp = total_drug_ret_nonpref * ((drug_ret_nonpref_amt[indexnum] * PREMIER_OUT_rx_nf_coinsurance) + 40);
		}	
		
		
			
	PREMIER_OUT_coin_disp += PREMIER_OUT_rx_gen_coin_disp + PREMIER_OUT_rx_pref_coin_disp + PREMIER_OUT_rx_nonpref_coin_disp;
	PREMIER_OUT_oopre_disp += PREMIER_OUT_rx_gen_coin_disp + PREMIER_OUT_rx_pref_coin_disp + PREMIER_OUT_rx_nonpref_coin_disp;
	PREMIER_OUT_oopost_disp = PREMIER_OUT_oopre_disp + PREMIER_OUT_prem_disp;
	
	form.PREMIER_OUT_deduct.value = format(PREMIER_OUT_deduct_disp,2);
	form.PREMIER_OUT_copay.value = format(PREMIER_OUT_copay_disp,2);
	form.PREMIER_OUT_coin.value = format(PREMIER_OUT_coin_disp,2);
	form.PREMIER_OUT_enc.value = format(PREMIER_OUT_enc_disp,2);
	form.PREMIER_OUT_oopre.value = format(PREMIER_OUT_oopre_disp,2);
	form.PREMIER_OUT_prem.value = format(PREMIER_OUT_prem_disp,2);
	form.PREMIER_OUT_oopost.value = format(PREMIER_OUT_oopost_disp,2);
}

//---------------------------------------------------------------------------------------------------------
function Premier_out_Calc_CoInsurance( outpatient_coin_svcs, coin_svcs, 
										outpatient_coinsurance_perc, coinsurance_perc, 
										deduct_maxPerPerson, obj_deduct_FamilyMax, 
										oop_maxPerPerson, obj_oop_maxPerFamily,
										obj_deductible, obj_oopmaxDisplay)
{
 	//has the deductable been met with coinsurance only (no rx)
	
	if (deduct_maxPerPerson > obj_deduct_FamilyMax.value)  
	{  // left over for the family is less than the PerPerson Max
		deduct_maxPerPerson = obj_deduct_FamilyMax.value;
	}
	if (oop_maxPerPerson > obj_oop_maxPerFamily.value)
	{
		oop_maxPerPerson = obj_oop_maxPerFamily.value;
	}
	
 	var coinsurance=0;	
	
	if (coin_svcs + outpatient_coin_svcs > deduct_maxPerPerson )
	{				
		var remainder =deduct_maxPerPerson  -  coin_svcs ;
		if (remainder > 0) {
			obj_deductible.value=deduct_maxPerPerson;
			coinsurance = (outpatient_coin_svcs - deduct_maxPerPerson) * outpatient_coinsurance_perc;
		}
		else {
			obj_deductible.value=deduct_maxPerPerson;
			coinsurance = (coin_svcs - obj_deductible.value ) * coinsurance_perc;
			coinsurance += outpatient_coin_svcs * outpatient_coinsurance_perc;
		}
	}
	else 
	{
		obj_deductible.value =coin_svcs + outpatient_coin_svcs;	
		coinsurance = 0;		
	}


	obj_deduct_FamilyMax.value = obj_deduct_FamilyMax.value - obj_deductible.value;
		
	
		if (coinsurance + obj_deductible.value >= oop_maxPerPerson){
		//yes -- display OOPmax + expenses not covered
			obj_oopmaxDisplay.value = oop_maxPerPerson ;
			coinsurance = oop_maxPerPerson - obj_deductible.value;
		}
		else{//no -- display costs
			obj_oopmaxDisplay.value  = coinsurance + obj_deductible.value  ;
		}	

		obj_oop_maxPerFamily.value = obj_oop_maxPerFamily.value - obj_oopmaxDisplay.value;

		return coinsurance;
}

function Premier_out_outpatient_svcs(claimPerson, costIndex) 
{
	var premierOUT_outpatient_svcs = 0;
	if (claimPerson=="sp" && !hasSpouse() ){
		premierOUT_outpatient_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		premierOUT_outpatient_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		premierOUT_outpatient_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		premierOUT_outpatient_svcs = 0;
	}
	else 
	{
		premierOUT_outpatient_svcs =	ClaimsCount(claimPerson, "outpatient")  * outpatient_amt[costIndex];
			
	}	
	return premierOUT_outpatient_svcs ;
}	

function Premier_out_coin_svcs(claimPerson, costIndex) 
{
	var premierOUT_coin_svcs = 0;
	if (claimPerson=="sp" && !hasSpouse() ){
		premierOUT_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		premierOUT_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		premierOUT_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		premierOUT_coin_svcs = 0;
	}
	else 
	{
		premierOUT_coin_svcs =	(ClaimsCount(claimPerson, "doc_phys") ) * doc_phys_amt[costIndex] + 
					(ClaimsCount(claimPerson, "doc_baby") ) * doc_baby_amt[costIndex] + 
					( ClaimsCount(claimPerson, "doc_baby_infant") )  * doc_baby_infant_amt[costIndex] + 
					(ClaimsCount(claimPerson, "immunization") )  * immunization_amt[costIndex] + 
					( ClaimsCount(claimPerson, "cholesterol") )  * cholesterol_amt[costIndex] + 
					( ClaimsCount(claimPerson, "colonoscopy") )  * colonoscopy_amt[costIndex] + 
					( ClaimsCount(claimPerson, "pap") )  * pap_amt[costIndex] + 
					(ClaimsCount(claimPerson, "psa") )  * psa_amt[costIndex] + 
					( ClaimsCount(claimPerson, "mammogram") )  * mammogram_amt[costIndex] +
					(ClaimsCount(claimPerson, "pcp") ) * pcp_amt[costIndex] +
					( ClaimsCount(claimPerson, "specialist") ) * specialist_amt[costIndex] +
					( ClaimsCount(claimPerson, "urgent") )  * urgent_amt[costIndex] + 
					( ClaimsCount(claimPerson, "emerg") )  * emerg_amt[costIndex] + 
					(ClaimsCount(claimPerson, "surgery") )  * surgery_amt[costIndex] + 
					( ClaimsCount(claimPerson, "allergy_test") )  * allergy_test_amt[costIndex] + 
					(ClaimsCount(claimPerson, "allergy_serum") )  * allergy_serum_amt[costIndex] + 
					(ClaimsCount(claimPerson, "allergy_shot") )  * allergy_shot_amt[costIndex] + 
					(ClaimsCount(claimPerson, "speech") )  * speech_amt[costIndex] + 
					(ClaimsCount(claimPerson, "blood") )  * blood_amt[costIndex] + 
					(ClaimsCount(claimPerson, "surgPath") )  * surgPath_amt[costIndex] + 
					(ClaimsCount(claimPerson, "lipid") )  * lipid_amt[costIndex] + 
					(ClaimsCount(claimPerson, "CompMedia") )  * CompMedia_amt[costIndex] + 
					(ClaimsCount(claimPerson, "CoumadinCheck") )  * CoumadinCheck_amt[costIndex] + 
					(ClaimsCount(claimPerson, "RadiologicalExam") )  * RadiologicalExam_amt[costIndex] + 
					(ClaimsCount(claimPerson, "MRIFace") )  * MRIFace_amt[costIndex] + 
					(ClaimsCount(claimPerson, "MRIBrain") )  * MRIBrain_amt[costIndex] + 
					(ClaimsCount(claimPerson, "BoneDensity") )  * BoneDensity_amt[costIndex] + 
					(ClaimsCount(claimPerson, "mat_natal") )  * mat_natal_amt[costIndex] + 
					(ClaimsCount(claimPerson, "mat_norm") )  * mat_norm_amt[costIndex] + 
					(ClaimsCount(claimPerson, "inpatient") )  * inpatient_amt[costIndex] +
					(ClaimsCount(claimPerson, "chiro") )  * chiro_amt[costIndex]   ;
					
								
		premierOUT_coin_svcs +=	ClaimsCount(claimPerson, "other_exp") ;  //note: other_exp is an amount

			
			
	}	
	return premierOUT_coin_svcs ;
}	
//************************************************************************************************************************************
//---END OF PREMIER_OUT CALCULATION------------------------------------------------------------------------------------------------------
//************************************************************************************************************************************


//***********************************************************************************************************************************
// CIGNA calculation
//***********************************************************************************************************************************

function CIGNA_Calc (form)
{	var indexnum = 5;
//Calculations
	CIGNA_deduct_disp = 0;
	CIGNA_copay_disp = 0;
	CIGNA_prevent_coin_disp = 0;
	CIGNA_coin_disp = 0;
	CIGNA_enc_disp = 0;
	CIGNA_oopre_disp = 0;
	CIGNA_prem_disp = (CIGNA_prem);
	CIGNA_oopost_disp = 0;
	CIGNA_rx_gen_coin_disp = 0;
	CIGNA_rx_pref_coin_disp = 0;
	CIGNA_rx_nonpref_coin_disp = 0;
	CIGNA_rx_mo_gen_coin_disp = 0;
	CIGNA_rx_mo_pref_coin_disp = 0;
	CIGNA_rx_mo_nonpref_coin_disp = 0;


//Calculate CIGNA  Services Copays
	

//calculate coinsurance

	var cigna_copay_display_emp = 0;
	var cigna_copay_display_sp = 0;
	var cigna_copay_display_c1 = 0;		
	var cigna_copay_display_c2 = 0;		
	var cigna_copay_display_c3 = 0;		
	
	var cigna_copay_svcs_emp = 0;
	var cigna_copay_svcs_sp = 0;
	var cigna_copay_svcs_c1 = 0;		
	var cigna_copay_svcs_c2 = 0;		
	var cigna_copay_svcs_c3 = 0;		

	
	cigna_copay_svcs_emp = Cigna_copay_svcs("emp", indexnum);
	cigna_copay_svcs_sp = Cigna_copay_svcs("sp", indexnum);
	cigna_copay_svcs_c1 = Cigna_copay_svcs("c1", indexnum);		
	cigna_copay_svcs_c2 = Cigna_copay_svcs("c2", indexnum);		
	cigna_copay_svcs_c3 = Cigna_copay_svcs("c3", indexnum);		

	var obj_cigna_oopmax_emp = new numobj();
	var obj_cigna_oopmax_sp = new numobj();
	var obj_cigna_oopmax_c1 = new numobj();
	var obj_cigna_oopmax_c2 = new numobj();		
	var obj_cigna_oopmax_c3 = new numobj();
	
	var obj_cigna_FamilyOopMax = new numobj();
		obj_cigna_FamilyOopMax.value = CIGNA_oop_max[1];
	//NOTE: cigna_FamilyOopMax is reference objects
	//		 pass into the calc co-insurance fuction and will take out the perPerson value each time
	
	//Calculating Co-Insurance and Deductible Per individuals
	cigna_copay_display_emp = Cigna_Calc_Copay( cigna_copay_svcs_emp,
						CIGNA_oop_max[0], obj_cigna_FamilyOopMax,
						obj_cigna_oopmax_emp);

    

	if (hasSpouse()) {

		cigna_copay_display_sp = Cigna_Calc_Copay( cigna_copay_svcs_sp,
						CIGNA_oop_max[0], obj_cigna_FamilyOopMax,
						obj_cigna_oopmax_sp);

	}
	
	if ( 0< numberOfChild() )
	{
		cigna_copay_display_c1 = Cigna_Calc_Copay( cigna_copay_svcs_c1,
							CIGNA_oop_max[0], obj_cigna_FamilyOopMax,
							obj_cigna_oopmax_c1);


	}
	if (1 < numberOfChild() ) {
		cigna_copay_display_c2 = Cigna_Calc_Copay( cigna_copay_svcs_c2,
						CIGNA_oop_max[0], obj_cigna_FamilyOopMax,
						obj_cigna_oopmax_c2);

	}
	if (2 <numberOfChild() ) {
		cigna_copay_display_c3 = Cigna_Calc_Copay( cigna_copay_svcs_c3,
						CIGNA_oop_max[0], obj_cigna_FamilyOopMax,
						obj_cigna_oopmax_c3);
	}
	

	CIGNA_rx_copay_svcs = 	0 ;

  	
	CIGNA_enc_disp = 0 ;
	

  	CIGNA_copay_disp = cigna_copay_display_emp + cigna_copay_display_sp + cigna_copay_display_c1 + cigna_copay_display_c2 +cigna_copay_display_c3;
	
	CIGNA_oopre_disp = obj_cigna_oopmax_emp.value + obj_cigna_oopmax_sp.value 
	                        + obj_cigna_oopmax_c1.value + obj_cigna_oopmax_c2.value + obj_cigna_oopmax_c3.value
	                        + CIGNA_enc_disp + CIGNA_rx_copay_svcs;
	
			
	CIGNA_copay_disp += CIGNA_rx_copay_svcs ;

		// NOTE: RX calculation Stays and calculate at the Grand total Level
			
//Calculate rx retail costs
	//rx gen
	var total_drug_ret_gen = Total_ClaimsCount(form, "drug_ret_gen");
		if (total_drug_ret_gen > 0) {
			CIGNA_rx_gen_coin_disp = total_drug_ret_gen  * drug_ret_gen_amt[indexnum] * CIGNA_rx_gen_coinsurance;
				if (CIGNA_rx_gen_coin_disp < (6 * total_drug_ret_gen))
				{
					CIGNA_rx_gen_coin_disp = 6 * total_drug_ret_gen;
				}
				else if (CIGNA_rx_gen_coin_disp > (12 * total_drug_ret_gen))
				{
					CIGNA_rx_gen_coin_disp = 12 * total_drug_ret_gen;
				}
		}	
	//rx gen pref
	var total_drug_ret_pref = Total_ClaimsCount(form, "drug_ret_pref");
		if (total_drug_ret_pref > 0)
		{
			CIGNA_rx_pref_coin_disp = total_drug_ret_pref * drug_ret_pref_amt[indexnum] * CIGNA_rx_f_coinsurance;
				if (CIGNA_rx_pref_coin_disp < (25 * total_drug_ret_pref))
				{
					CIGNA_rx_pref_coin_disp = 25 * total_drug_ret_pref;
				}
				else if (CIGNA_rx_pref_coin_disp > (40 * total_drug_ret_pref))
				{
					CIGNA_rx_pref_coin_disp = 40 * total_drug_ret_pref;
				}
		}
		
	//rx gen nonpref
	var total_drug_ret_nonpref = Total_ClaimsCount(form, "drug_ret_nonpref") ;
		if (total_drug_ret_nonpref > 0) {
			CIGNA_rx_nonpref_coin_disp = total_drug_ret_nonpref * drug_ret_nonpref_amt[indexnum] *CIGNA_rx_nf_coinsurance;
				if (CIGNA_rx_nonpref_coin_disp < (40 * total_drug_ret_nonpref))
				{
					CIGNA_rx_nonpref_coin_disp = 40 * total_drug_ret_nonpref;
				}
				else if (CIGNA_rx_nonpref_coin_disp > (60 * total_drug_ret_nonpref))
				{
					CIGNA_rx_nonpref_coin_disp = 60 * total_drug_ret_nonpref;
				}
		}			

	//rx mail order generic
	var total_drug_mo_gen = Total_ClaimsCount(form, "drug_mo_gen");
		if (total_drug_mo_gen > 0) {
			CIGNA_rx_mo_gen_coin_disp = total_drug_mo_gen  * drug_mo_gen_amt[indexnum] * CIGNA_rx_gen_coinsurance;
				if (CIGNA_rx_mo_gen_coin_disp < (12 * total_drug_mo_gen))
				{
					CIGNA_rx_mo_gen_coin_disp = 12 * total_drug_mo_gen;
				}
				else if (CIGNA_rx_mo_gen_coin_disp > (24 * total_drug_mo_gen))
				{
					CIGNA_rx_mo_gen_coin_disp = 24 * total_drug_mo_gen;
				}
		}
	//rx mail order pref
	var total_drug_mo_pref = Total_ClaimsCount(form, "drug_mo_pref");
		if (total_drug_mo_pref > 0)
		{
			CIGNA_rx_mo_pref_coin_disp = total_drug_mo_pref * drug_mo_pref_amt[indexnum] * CIGNA_rx_f_coinsurance;
				if (CIGNA_rx_mo_pref_coin_disp < (50 * total_drug_mo_pref))
				{
					CIGNA_rx_mo_pref_coin_disp = 50 * total_drug_mo_pref;
				}
				else if (CIGNA_rx_mo_pref_coin_disp > (80 * total_drug_mo_pref))
				{
					CIGNA_rx_mo_pref_coin_disp = 80 * total_drug_mo_pref;
				}
		}	
	//rx mail order nonpref
	var total_drug_mo_nonpref = Total_ClaimsCount(form, "drug_mo_nonpref") ;
		if (total_drug_mo_nonpref > 0) {
			CIGNA_rx_mo_nonpref_coin_disp = total_drug_mo_nonpref * drug_mo_nonpref_amt[indexnum] *CIGNA_rx_nf_coinsurance;
				if (CIGNA_rx_mo_nonpref_coin_disp < (80 * total_drug_mo_nonpref))
				{
					CIGNA_rx_mo_nonpref_coin_disp = 80 * total_drug_mo_nonpref;
				}
				else if (CIGNA_rx_mo_nonpref_coin_disp > (120 * total_drug_mo_nonpref))
				{
					CIGNA_rx_mo_nonpref_coin_disp = 120 * total_drug_mo_nonpref;
				}
		} 		   
	
			
	CIGNA_coin_disp += CIGNA_rx_gen_coin_disp + CIGNA_rx_pref_coin_disp + CIGNA_rx_nonpref_coin_disp;
	CIGNA_coin_disp += CIGNA_rx_mo_gen_coin_disp + CIGNA_rx_mo_pref_coin_disp + CIGNA_rx_mo_nonpref_coin_disp;
	
	CIGNA_oopre_disp += CIGNA_rx_gen_coin_disp + CIGNA_rx_pref_coin_disp + CIGNA_rx_nonpref_coin_disp;
	CIGNA_oopre_disp += CIGNA_rx_mo_gen_coin_disp + CIGNA_rx_mo_pref_coin_disp + CIGNA_rx_mo_nonpref_coin_disp;
	

	CIGNA_oopost_disp = CIGNA_oopre_disp + CIGNA_prem_disp;
	
	form.CIGNA_deduct.value = format(CIGNA_deduct_disp,2);
	form.CIGNA_copay.value = format(CIGNA_copay_disp,2);
	form.CIGNA_coin.value = format(CIGNA_coin_disp,2);
	form.CIGNA_enc.value = format(CIGNA_enc_disp,2);
	form.CIGNA_oopre.value = format(CIGNA_oopre_disp,2);
	form.CIGNA_prem.value = format(CIGNA_prem_disp,2);
	form.CIGNA_oopost.value = format(CIGNA_oopost_disp,2);
}

//---------------------------------------------------------------------------------------------------------

function Cigna_Calc_Copay(copay_svcs, oop_maxPerPerson, obj_oop_maxPerFamily, obj_oopmaxDisplay)
{
 	//has the deductable been met with coinsurance only (no rx)
	var copay=0;
 	
		if (copay_svcs  >= oop_maxPerPerson){
			//yes -- display OOPmax + expenses not covered			
			copay = oop_maxPerPerson ;
			obj_oopmaxDisplay.value = oop_maxPerPerson ;
		}
		else{//no -- display costs
			copay = copay_svcs;
			obj_oopmaxDisplay.value  = copay  ;
		}	

		obj_oop_maxPerFamily.value = obj_oop_maxPerFamily.value - obj_oopmaxDisplay.value;

		return copay;
}


function Cigna_copay_svcs(claimPerson,costIndex)
{   // claimPerson -  emp: employee, sp: spouse, c1:child1, c2:child2, c3:child3

	var cigna_copay_svcs;

	if (claimPerson=="sp" && !hasSpouse() ){
		cigna_copay_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		cigna_copay_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		cigna_copay_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		cigna_copay_svcs = 0;
	}
	else 
	{	
		cigna_copay_svcs =  ClaimsCount(claimPerson, "doc_phys") * doc_phys_amt[costIndex] + 
						    ClaimsCount(claimPerson, "doc_baby")  * doc_baby_amt[costIndex] + 
							ClaimsCount(claimPerson, "pcp") * pcp_amt[costIndex] + 
							ClaimsCount(claimPerson, "specialist") * specialist_amt[costIndex] + 
      						ClaimsCount(claimPerson, "mammogram")  * mammogram_amt[costIndex] +
							ClaimsCount(claimPerson, "urgent")  * urgent_amt[costIndex] + 
							ClaimsCount(claimPerson, "emerg") * emerg_amt[costIndex] + 
							ClaimsCount(claimPerson, "surgery") * surgery_amt[costIndex] + 
							ClaimsCount(claimPerson, "allergy_test") * allergy_test_amt[costIndex] +
							ClaimsCount(claimPerson, "allergy_serum") * allergy_serum_amt[costIndex] + 
							ClaimsCount(claimPerson, "allergy_shot") * allergy_shot_amt[costIndex] + 							
							ClaimsCount(claimPerson, "blood") * blood_amt[costIndex] + 
							ClaimsCount(claimPerson, "surgPath") * surgPath_amt[costIndex] + 
							ClaimsCount(claimPerson, "lipid") * lipid_amt[costIndex] + 
							ClaimsCount(claimPerson, "CompMedia") * CompMedia_amt[costIndex] + 
							ClaimsCount(claimPerson, "CoumadinCheck") * CoumadinCheck_amt[costIndex] + 
							ClaimsCount(claimPerson, "RadiologicalExam") * RadiologicalExam_amt[costIndex] + 
							ClaimsCount(claimPerson, "MRIFace") * MRIFace_amt[costIndex] + 
							ClaimsCount(claimPerson, "MRIBrain") * MRIBrain_amt[costIndex] + 
							ClaimsCount(claimPerson, "BoneDensity")  * BoneDensity_amt[costIndex] +
							ClaimsCount(claimPerson, "inpatient")  * inpatient_amt[costIndex] +
							ClaimsCount(claimPerson, "mat_norm") * mat_norm_amt[costIndex] + 
							ClaimsCount(claimPerson, "mat_natal") * mat_natal_amt[costIndex] + 
							ClaimsCount(claimPerson, "outpatient")  * outpatient_amt[costIndex] +
							ClaimsCount(claimPerson, "doc_baby_infant")  * doc_baby_infant_amt[costIndex] + 
			                ClaimsCount(claimPerson, "immunization")  * immunization_amt[costIndex] + 
			                ClaimsCount(claimPerson, "cholesterol")  * cholesterol_amt[costIndex] + 
			                ClaimsCount(claimPerson, "colonoscopy")  * colonoscopy_amt[costIndex] + 
			                ClaimsCount(claimPerson, "pap") * pap_amt[costIndex] + 
			                ClaimsCount(claimPerson, "psa")  * psa_amt[costIndex] ;		                 
				
							if (  ClaimsCount(claimPerson, "chiro") + ClaimsCount(claimPerson, "speech") > 60) {
								cigna_copay_svcs += chiro_amt[costIndex] * 60;
							}
							else {
								cigna_copay_svcs += (ClaimsCount(claimPerson, "chiro") * chiro_amt[costIndex]) + (ClaimsCount(claimPerson, "speech") * speech_amt[costIndex]);
							}
						          
	}					
	return cigna_copay_svcs;
}



//***********************************************************************************************************************************
// END of CIGNA calculation
//***********************************************************************************************************************************




//***********************************************************************************************************************************
// KAISER calculation
//***********************************************************************************************************************************


function KAISER_Calc (form)
{	var indexnum = 6;
//Calculations
	KAISER_deduct_disp = 0;
	KAISER_copay_disp = 0;
	KAISER_prevent_coin_disp = 0;
	KAISER_coin_disp = 0;
	KAISER_enc_disp = 0;
	KAISER_oopre_disp = 0;
	KAISER_prem_disp = (KAISER_prem);
	KAISER_oopost_disp = 0;
	KAISER_rx_gen_coin_disp = 0;
	KAISER_rx_pref_coin_disp = 0;
	KAISER_rx_nonpref_coin_disp = 0;


//Calculate KAISER  Services Copays
	

//calculate coinsurance

	var kaiser_copay_display_emp = 0;
	var kaiser_copay_display_sp = 0;
	var kaiser_copay_display_c1 = 0;		
	var kaiser_copay_display_c2 = 0;		
	var kaiser_copay_display_c3 = 0;		
	
	var kaiser_copay_svcs_emp = 0;
	var kaiser_copay_svcs_sp = 0;
	var kaiser_copay_svcs_c1 = 0;		
	var kaiser_copay_svcs_c2 = 0;		
	var kaiser_copay_svcs_c3 = 0;
	
	var kaiser_prevent_coin_display_emp = 0;
	var kaiser_prevent_coin_display_sp = 0;
	var kaiser_prevent_coin_display_c1 = 0;		
	var kaiser_prevent_coin_display_c2 = 0;		
	var kaiser_prevent_coin_display_c3 = 0;
		
		
	kaiser_copay_svcs_emp = Kaiser_copay_svcs("emp", indexnum);
	kaiser_copay_svcs_sp = Kaiser_copay_svcs("sp", indexnum);
	kaiser_copay_svcs_c1 = Kaiser_copay_svcs("c1", indexnum);		
	kaiser_copay_svcs_c2 = Kaiser_copay_svcs("c2", indexnum);		
	kaiser_copay_svcs_c3 = Kaiser_copay_svcs("c3", indexnum);		

	var kaiser_prevent_coin_svcs_emp = Kaiser_prevent_coin_svcs("emp", indexnum);
	var kaiser_prevent_coin_svcs_sp = Kaiser_prevent_coin_svcs("sp", indexnum);
	var kaiser_prevent_coin_svcs_c1 = Kaiser_prevent_coin_svcs("c1", indexnum);		
	var kaiser_prevent_coin_svcs_c2 = Kaiser_prevent_coin_svcs("c2", indexnum);		
	var kaiser_prevent_coin_svcs_c3 = Kaiser_prevent_coin_svcs("c3", indexnum);

	var obj_kaiser_oopmax_emp = new numobj();
	var obj_kaiser_oopmax_sp = new numobj();
	var obj_kaiser_oopmax_c1 = new numobj();
	var obj_kaiser_oopmax_c2 = new numobj();		
	var obj_kaiser_oopmax_c3 = new numobj();
	
	var obj_kaiser_FamilyOopMax = new numobj();
		obj_kaiser_FamilyOopMax.value = KAISER_oop_max[1];
	//NOTE: kaiser_FamilyOopMax is reference objects
	//		 pass into the calc co-insurance fuction and will take out the perPerson value each time
	

	
	//Calculating Co-Pay Per individuals
	kaiser_copay_display_emp = Kaiser_Calc_Copay( kaiser_copay_svcs_emp,
						KAISER_oop_max[0], obj_kaiser_FamilyOopMax,
						obj_kaiser_oopmax_emp);

	kaiser_prevent_coin_display_emp = Kaiser_Calc_Coin(kaiser_prevent_coin_svcs_emp, KAISER_prevent_coinsurance);

    

	if (hasSpouse()) {

		kaiser_copay_display_sp = Kaiser_Calc_Copay( kaiser_copay_svcs_sp,
						KAISER_oop_max[0], obj_kaiser_FamilyOopMax,
						obj_kaiser_oopmax_sp);
		kaiser_prevent_coin_display_sp = Kaiser_Calc_Coin(kaiser_prevent_coin_svcs_sp, KAISER_prevent_coinsurance);						

	}
	
	if ( 0< numberOfChild() )
	{
		kaiser_copay_display_c1 = Kaiser_Calc_Copay( kaiser_copay_svcs_c1,
							KAISER_oop_max[0], obj_kaiser_FamilyOopMax,
							obj_kaiser_oopmax_c1);
		kaiser_prevent_coin_display_c1 = Kaiser_Calc_Coin(kaiser_prevent_coin_svcs_c1, KAISER_prevent_coinsurance);						

	}
	if (1 < numberOfChild() ) {
		kaiser_copay_display_c2 = Kaiser_Calc_Copay( kaiser_copay_svcs_c2,
						KAISER_oop_max[0], obj_kaiser_FamilyOopMax,
						obj_kaiser_oopmax_c2);
		kaiser_prevent_coin_display_c2 = Kaiser_Calc_Coin(kaiser_prevent_coin_svcs_c2, KAISER_prevent_coinsurance);						
	}
	if (2 <numberOfChild() ) {
		kaiser_copay_display_c3 = Kaiser_Calc_Copay( kaiser_copay_svcs_c3,
						KAISER_oop_max[0], obj_kaiser_FamilyOopMax,
						obj_kaiser_oopmax_c3);
		kaiser_prevent_coin_display_c3 = Kaiser_Calc_Coin(kaiser_prevent_coin_svcs_c3, KAISER_prevent_coinsurance);												
	}
	

	KAISER_rx_copay_svcs = 	Total_ClaimsCount(form, "drug_ret_gen")  * drug_ret_gen_amt[indexnum] + 
			    	Total_ClaimsCount(form, "drug_ret_pref")  * drug_ret_pref_amt[indexnum] +
			       	Total_ClaimsCount(form, "drug_mo_gen") * drug_mo_gen_amt[indexnum] +
				Total_ClaimsCount(form, "drug_mo_pref") * drug_mo_pref_amt[indexnum] ;

  	
	KAISER_enc_disp = Total_ClaimsCount(form, "drug_ret_nonpref")  * drug_ret_nonpref_amt[indexnum] + 
			Total_ClaimsCount(form, "drug_mo_nonpref")  *drug_mo_nonpref_amt[indexnum] ;
	

  	KAISER_copay_disp = kaiser_copay_display_emp + kaiser_copay_display_sp + kaiser_copay_display_c1 + kaiser_copay_display_c2 +kaiser_copay_display_c3;
	KAISER_copay_disp += KAISER_rx_copay_svcs ;
			
	
	KAISER_oopre_disp = obj_kaiser_oopmax_emp.value + obj_kaiser_oopmax_sp.value 
	                        + obj_kaiser_oopmax_c1.value + obj_kaiser_oopmax_c2.value + obj_kaiser_oopmax_c3.value
	                        + KAISER_enc_disp + KAISER_rx_copay_svcs;
	

	KAISER_oopost_disp = KAISER_oopre_disp + KAISER_prem_disp;
    
	KAISER_coin_disp = kaiser_prevent_coin_display_emp + kaiser_prevent_coin_display_sp + kaiser_prevent_coin_display_c1
						+ kaiser_prevent_coin_display_c2 + kaiser_prevent_coin_display_c3;
						
	form.KAISER_deduct.value = format(KAISER_deduct_disp,2);
	form.KAISER_copay.value = format(KAISER_copay_disp,2);
	form.KAISER_coin.value = format(KAISER_coin_disp,2);
	form.KAISER_enc.value = format(KAISER_enc_disp,2);
	form.KAISER_oopre.value = format(KAISER_oopre_disp,2);
	form.KAISER_prem.value = format(KAISER_prem_disp,2);
	form.KAISER_oopost.value = format(KAISER_oopost_disp,2);
}

//---------------------------------------------------------------------------------------------------------

function Kaiser_Calc_Copay(copay_svcs, oop_maxPerPerson, obj_oop_maxPerFamily, obj_oopmaxDisplay)
{
 	//has the deductable been met with coinsurance only (no rx)
	var copay=0;
 	
		if (copay_svcs  >= oop_maxPerPerson){
			//yes -- display OOPmax + expenses not covered			
			copay = oop_maxPerPerson ;
			obj_oopmaxDisplay.value = oop_maxPerPerson ;
		}
		else{//no -- display costs
			copay = copay_svcs;
			obj_oopmaxDisplay.value  = copay  ;
		}	

		obj_oop_maxPerFamily.value = obj_oop_maxPerFamily.value - obj_oopmaxDisplay.value;

		return copay;
}

function Kaiser_Calc_Coin(prevent_coin_svcs, prevent_coinsurance_perc)
{
	var kaiser_Calc_Coin = 0;
	kaiser_Calc_Coin = prevent_coin_svcs * prevent_coinsurance_perc;
	
	return kaiser_Calc_Coin;
}

function Kaiser_prevent_coin_svcs(claimPerson,costIndex)
{   // claimPerson -  emp: employee, sp: spouse, c1:child1, c2:child2, c3:child3

	var Kaiser_prevent_coin_svcs;

	if (claimPerson=="sp" && !hasSpouse() ){
		Kaiser_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		Kaiser_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		Kaiser_prevent_coin_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		Kaiser_prevent_coin_svcs = 0;
	}
	else 
	{	
		Kaiser_prevent_coin_svcs =     ClaimsCount(claimPerson, "doc_baby_infant")  * doc_baby_infant_amt[costIndex] + 
						                ClaimsCount(claimPerson, "immunization")  * immunization_amt[costIndex] + 
						                ClaimsCount(claimPerson, "cholesterol")  * cholesterol_amt[costIndex] + 
						                ClaimsCount(claimPerson, "colonoscopy")  * colonoscopy_amt[costIndex] + 
						                ClaimsCount(claimPerson, "pap") * pap_amt[costIndex] + 
						                ClaimsCount(claimPerson, "psa")  * psa_amt[costIndex] ;

	}					
	
	return Kaiser_prevent_coin_svcs;
}
function Kaiser_copay_svcs(claimPerson,costIndex)
{   // claimPerson -  emp: employee, sp: spouse, c1:child1, c2:child2, c3:child3

	var kaiser_copay_svcs;

	if (claimPerson=="sp" && !hasSpouse() ){
		kaiser_copay_svcs = 0;
	}
	else if (claimPerson=="c1" && numberOfChild() <1 ) {
		kaiser_copay_svcs = 0;
	}
	else if (claimPerson=="c2" && numberOfChild() <2 ) {
		kaiser_copay_svcs = 0;
	}
	else if (claimPerson=="c3" && numberOfChild() <3 ) {
		kaiser_copay_svcs = 0;
	}
	else 
	{	
		kaiser_copay_svcs =  ClaimsCount(claimPerson, "doc_phys") * doc_phys_amt[costIndex] + 
						    ClaimsCount(claimPerson, "doc_baby")  * doc_baby_amt[costIndex] + 
							ClaimsCount(claimPerson, "pcp") * pcp_amt[costIndex] + 
							ClaimsCount(claimPerson, "specialist") * specialist_amt[costIndex] + 
      						ClaimsCount(claimPerson, "mammogram")  * mammogram_amt[costIndex] +
							ClaimsCount(claimPerson, "urgent")  * urgent_amt[costIndex] + 
							ClaimsCount(claimPerson, "emerg") * emerg_amt[costIndex] + 
							ClaimsCount(claimPerson, "surgery") * surgery_amt[costIndex] + 
							ClaimsCount(claimPerson, "allergy_test") * allergy_test_amt[costIndex] +
							ClaimsCount(claimPerson, "allergy_serum") * allergy_serum_amt[costIndex] + 
							ClaimsCount(claimPerson, "allergy_shot") * allergy_shot_amt[costIndex] + 							
							ClaimsCount(claimPerson, "blood") * blood_amt[costIndex] + 
							ClaimsCount(claimPerson, "surgPath") * surgPath_amt[costIndex] + 
							ClaimsCount(claimPerson, "lipid") * lipid_amt[costIndex] + 
							ClaimsCount(claimPerson, "CompMedia") * CompMedia_amt[costIndex] + 
							ClaimsCount(claimPerson, "CoumadinCheck") * CoumadinCheck_amt[costIndex] + 
							ClaimsCount(claimPerson, "RadiologicalExam") * RadiologicalExam_amt[costIndex] + 
							ClaimsCount(claimPerson, "MRIFace") * MRIFace_amt[costIndex] + 
							ClaimsCount(claimPerson, "MRIBrain") * MRIBrain_amt[costIndex] + 
							ClaimsCount(claimPerson, "BoneDensity")  * BoneDensity_amt[costIndex] +
							ClaimsCount(claimPerson, "mat_norm") * mat_norm_amt[costIndex] + 
							ClaimsCount(claimPerson, "mat_natal") * mat_natal_amt[costIndex] + 
							ClaimsCount(claimPerson, "inpatient")  * inpatient_amt[costIndex] +
							ClaimsCount(claimPerson, "outpatient")  * outpatient_amt[costIndex] ;

							if (  ClaimsCount(claimPerson, "chiro") > 30) {
								kaiser_copay_svcs += chiro_amt[costIndex] * 30;
							}else {

								kaiser_copay_svcs += ClaimsCount(claimPerson, "chiro") * chiro_amt[costIndex] ;
							}
							if ( ClaimsCount(claimPerson, "speech") > 60) {		
								kaiser_copay_svcs += speech_amt[costIndex] * 60;
							}else {
								kaiser_copay_svcs += ClaimsCount(claimPerson, "speech") * speech_amt[costIndex];
							}
	}					
	return kaiser_copay_svcs;
}


//***********************************************************************************************************************************
// END of KAISER calculation
//***********************************************************************************************************************************


//---------------------------------------------------------------------------------------------------------

function SANDIA_Calc (form)

{
	STANDARD_IN_sandia_disp = totalUtil(form, 7) - STANDARD_IN_oopre_disp; 
	STANDARD_OUT_sandia_disp = totalUtil(form, 2) - STANDARD_OUT_oopre_disp;
	PREMIER_IN_sandia_disp = totalUtil(form, 7) - PREMIER_IN_oopre_disp;
	PREMIER_OUT_sandia_disp = totalUtil(form, 4) - PREMIER_OUT_oopre_disp;
	CIGNA_sandia_disp = totalUtil(form, 8) - CIGNA_oopre_disp;
	
	KAISER_sandia_disp = KAISER_FULL_COST_prem_cont[cvg] * 12 - KAISER_prem_disp;
	
	form.STANDARD_IN_sandia.value = format(STANDARD_IN_sandia_disp,2);
	form.STANDARD_OUT_sandia.value = format(STANDARD_OUT_sandia_disp,2);
	form.PREMIER_IN_sandia.value = format(PREMIER_IN_sandia_disp,2);
	form.PREMIER_OUT_sandia.value = format(PREMIER_OUT_sandia_disp,2);
	form.CIGNA_sandia.value = format(CIGNA_sandia_disp,2);
	form.KAISER_sandia.value = format(KAISER_sandia_disp,2);
}

//------------------------------------------------------------------

function parseInput (field)
{	if (field.length==0)
		return 0;
	else return eval(field);
}

//------------------------------------------------------------------

function format(original_number, decimals) 
{	var result1 = original_number * Math.pow(10, decimals);
    var result2 = Math.round(result1);
    var result3 = result2 / Math.pow(10, decimals);
    return CommaFormatted(pad_with_zeros(result3, decimals));
}

//------------------------------------------------------------------

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

//------------------------------------------------------------------

function CommaFormatted(amount)
{
	var delimiter = ","; // replace comma if desired
	var a = amount.split('.',2)
	var d = a[1];
	var i = parseInt(a[0]);
	if(isNaN(i)) { return ''; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	var n = new String(i);
	var a = [];
	while(n.length > 3)
	{
		var nn = n.substr(n.length-3);
		a.unshift(nn);
		n = n.substr(0,n.length-3);
	}
	if(n.length > 0) { a.unshift(n); }
	n = a.join(delimiter);
	if(d.length < 1) { amount = n; }
	else { amount = n + '.' + d; }
	amount = minus + amount;
	return amount;
}

//------------------------------------------------------------------

function formValidate(form)
{	
	// 0=Employee only, 1=Employee + Child(ren), 2=Employee + Spouse , 3=Employee + Spouse + Child(ren)
	if (form.cbo_childstatus.selectedIndex==0 || form.cbo_spousestatus.selectedIndex==0){	
		
		if (form.cbo_spousestatus.selectedIndex==0) 
		{	
			alert ("Please select a level of spouse coverage.");
			form.cbo_spousestatus.focus();
		} 
		else 
		{
			alert ("Please select a level of children coverage.");
			form.cbo_childstatus.focus();		
		}
		return 0;
	}
	else if (hasSpouse() && numberOfChild() > 0 ){	
		cvg=3; // family
	}	
	else if (hasSpouse() && numberOfChild()== 0){	
		cvg=2; // employee + spouse
	}
	else if (!hasSpouse() && numberOfChild() > 0 ){	
		cvg=1; // employee + child(ren)
	}	
	else{	
		cvg=0; // employee only
	}

	if (form.income[1].selected){	
		income_lvl=0;
	}		
	else if (form.income[2].selected){	
		income_lvl=1;
	}
	else if (form.income[3].selected){	
		income_lvl=2;
	}
	else if (form.income[4].selected){	
		income_lvl=3;
	}
	else{	
		alert ("Please select a pay range.");
		form.income.focus();
		return 0;
	}
	
	return 1;
	
}                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          