function checkNum(val) {
	if ((val == null) || (isNaN(val)) || (val == "") || (val < 0)) {
		return false
	}
	return true;
}


function riskCalc(form) {    //  Framingham Score Risk Calculator

	var age = form.age.value;
	var smoke = form.smoke.value;
	var dm = form.dm.value;
	var fh = form.fh.value;
	var BPmed = form.BPmed.value;
	var sbp = form.sbp.value;
	var totchol = form.totchol.value;
	var hdl = form.hdl.value;

	var ager, agepts, smokepts, smokerr, dmpts, dmrr, fhpts, fhrr, bppts, bprr
	var cholpts, cholrr, hdlpts, hdlrr, chdrisk, avgrisk, totalpts, gh

//  Check sex
	if (form.sex[0].checked) {
		var sex = "male"
	} else {
		if (form.sex[1].checked) {
		var sex = "female"
		} else {
			alert("Please select your sex.");
			return false
		}
	}

//  Check age
	if (!checkNum(age)) {
		alert("Please enter your age.");
		form.age.select();
		form.age.focus();
		return false
	}

	if ((age < 20) || (age > 79)) {
		if (!confirm("Results are ONLY applicable between the " +
		"ages of 20 and 79.  Do you still want to proceed?")) {
			form.age.select();
			form.age.focus();
			return false
		}
	}

//  Calculate points

//  Age Points

		if (age < 35) {ager = 0}
		if ((age >= 35) && (age < 40)) {ager = 1}
		if ((age >= 40) && (age < 45)) {ager = 2}
		if ((age >= 45) && (age < 50)) {ager = 3}
		if ((age >= 50) && (age < 55)) {ager = 4}
		if ((age >= 55) && (age < 60)) {ager = 5}
		if ((age >= 60) && (age < 65)) {ager = 6}
		if ((age >= 65) && (age < 70)) {ager = 7}
		if ((age >= 70) && (age < 75)) {ager = 8}
		if (age >= 75) {ager = 9}

	if (sex == "male") {apoints = new Array(-9,-4,0,3,6,8,10,11,12,13)}
  	  else {apoints = new Array(-7,-3,0,3,6,8,10,12,14,16)}

	agepts = apoints[ager];
	form.agepts.value = agepts;

//  Smoking Points

	var smokerrstyle = document.getElementById("smokerr");
	
	if (smoke == "yes") {
	   smokerr = "Triple";
	   smokerrstyle.style.color = "red";
	   if (sex == "male") {var spoints = new Array(8,8,5,5,3,3,1,1,1,1)}
	     else {var spoints = new Array(9,9,7,7,4,4,2,2,1,1)}
	   smokepts = spoints[ager]
	
	} else {
		smokepts = 0;
		smokerr = "1";
		smokerrstyle.style.color = "black"
	}

	form.smokepts.value = smokepts;
	form.smokerr.value = smokerr;

//  Diabetes Points

	var dmrrstyle = document.getElementById("dmrr");

	if (dm == "yes") {
		dmrr = "Five Times";
		dmrrstyle.style.color = "red";
		if (sex == "female") {dmpts = 7}
			else {dmpts = 6}
	} else {
		dmpts = 0;
		dmrr = "1";
		dmrrstyle.style.color = "black";
	}

	form.dmpts.value = dmpts;
	form.dmrr.value = dmrr;

//  Family History Points

	var fhrrstyle = document.getElementById("fhrr");

	if (fh == "yes") {
        fhrr = "Double";
        fhrrstyle.style.color = "red";
	if (sex == "male") {var fhpoints = new Array(3,3,3,3,2,2,1,0,0,0)} 	
         else {var fhpoints = new Array(5,5,5,5,3,3,2,0,0,0)}
	   fhpts = fhpoints[ager]
	} else {
		fhpts = 0;
		fhrr = "1";
		fhrrstyle.style.color = "black"
	}

	form.fhpts.value = fhpts;
	form.fhrr.value = fhrr;

//  Blood Pressure Points

	var bprrstyle = document.getElementById("bprr");

if (sex == "male") {
	if (sbp <= 1) {bppts = 0; bprr = "1"; bprrstyle.style.color = "black"}
   	if (sbp == 2) {bppts = 1; bprr = "1.5 x"; bprrstyle.style.color = "yellow"}
	if (sbp == 3) {bppts = 1; bprr = "1.5 x"; bprrstyle.style.color = "yelow"}
	if (sbp == 4) {bppts = 2; bprr = "Double"; bprrstyle.style.color = "red"}
    if ((BPmed == "yes") && (sbp >= 1)) {bppts = bppts + 1}
} else {		//  For females...
	if (sbp == 0) {bppts = 0; bprr = "1"; bprrstyle.style.color = "black"}
   	if (sbp == 1) {bppts = 1; bprr = "1.5 x"; bprrstyle.style.color = "yellow"}
	if (sbp == 2) {bppts = 2; bprr = "1.5 x"; bprrstyle.style.color = "yellow"}
	if (sbp == 3) {bppts = 3; bprr = "1.5 x"; bprrstyle.style.color = "yellow"}
	if (sbp == 4) {bppts = 4; bprr = "Double"; bprrstyle.style.color = "red"}
    if ((BPmed == "yes") && (sbp >= 1)) {bppts = bppts + 2}
}

	form.bppts.value = bppts;
	form.bprr.value = bprr;

//  Total Cholesterol Points

var cholrrstyle = document.getElementById("cholrr");

    if (totchol == 0) {cholrr = "50%"; cholrrstyle.style.color = "lime";
	  if (sex == "male") {var cpoints = new Array(0,0,0,0,0,0,0,0,0,0)}
	   else {var cpoints = new Array(0,0,0,0,0,0,0,0,0,0)}
  } if (totchol == 1) {cholrr = "1"; cholrrstyle.style.color = "black";
 	  if (sex == "male") {var cpoints = new Array(4,4,3,3,2,2,1,1,0,0)}
	   else {var cpoints = new Array(4,4,3,3,2,2,1,1,1,1)}
  } if (totchol == 2) {cholrr = "1.5 x"; cholrrstyle.style.color = "yellow";
	  if (sex == "male") {var cpoints = new Array(7,7,5,5,3,3,1,1,0,0)}
	   else {var cpoints = new Array(8,8,6,6,4,4,2,2,1,1)}
  } if (totchol == 3) {cholrr = "Double"; cholrrstyle.style.color = "yellow";
	  if (sex == "male") {var cpoints = new Array(9,9,6,6,4,4,2,2,1,1)}
	   else	{var cpoints = new Array(11,11,8,8,5,5,3,3,2,2)}
  } if (totchol == 4) {cholrr = "Triple"; cholrrstyle.style.color = "red";
	  if (sex == "male") {var cpoints = new Array(11,11,8,8,5,5,3,3,1,1)}
	   else {var cpoints = new Array(13,13,10,10,7,7,4,4,2,2)}
  }
	cholpts = cpoints[ager];
	form.cholpts.value = cholpts;
	form.cholrr.value = cholrr;

//  HDL Points

var hdlrrstyle = document.getElementById("hdlrr");

if (hdl == 0) {hdlpts = 2; hdlrr = "Double"; hdlrrstyle.style.color = "red"}
if (hdl == 1) {hdlpts = 1; hdlrr = "1.5 x"; hdlrrstyle.style.color = "yellow"}
if (hdl == 2) {hdlpts = 0; hdlrr = "1"; hdlrrstyle.style.color = "black"}
if (hdl == 3) {hdlpts = -1; hdlrr = "50%"; hdlrrstyle.style.color = "lime"}
	
	form.hdlpts.value = hdlpts;
	form.hdlrr.value = hdlrr

//  Calculate Point Total
	
	totalpts = agepts + smokepts + bppts + dmpts + fhpts + cholpts + hdlpts;
	form.totalpts.value = totalpts;

//  Find 10-Year Risk
	
gh = Math.floor((age - 25) / 5);
if (gh < 0) {gh = 0}
if (gh > 9) {gh = 9}

if (sex == "male") {
	if (totalpts < 0) {chdrisk = "< 1"}
    if ((totalpts >= 0) && (totalpts < 5)) {chdrisk = 1}
    if ((totalpts >= 5) && (totalpts < 17)) {
	  var chdmr = new Array(2,2,3,4,5,6,8,10,12,16,20,25)
	  chdrisk = chdmr[totalpts - 5]
  } if (totalpts >= 17) {chdrisk = 30}
	    
	avgmr = new Array("< 1","1","4","4","8","10","13","20","22","25") // Array of average male CHD risk
	avgrisk = avgmr[gh]

} else {	//  For women...
	if (totalpts < 9) {chdrisk = "< 1"} 
    if ((totalpts >= 9) && (totalpts < 13)) {chdrisk = 1}
    if ((totalpts >= 13) && (totalpts < 25)) {
	  var chdfr = new Array(2,2,3,4,5,6,8,11,14,17,22,27)
	  chdrisk = chdfr[totalpts - 13]
  } if (totalpts >= 25) {chdrisk = 30}
    
    avgfr = new Array("< 1","< 1","< 1","1","2","3","7","8","9","11") // Array of average female CHD risk
    avgrisk = avgfr[gh]
}
    
	form.chdrisk.value = chdrisk + "%";
	form.avgrisk.value = avgrisk + "%";

return;
}


function CACrisk(form) {  //Calculator to combine Framingham and Calcium Score risks

	var risk = (form.chdrisk.value)
	 if (risk == "< 1%") {risk = 1}
	  else {risk = parseInt(risk)}
	var age = form.age.value;
	var sexr, ager, R1, R2, R3, R4, g, h;
			
if (risk < 6) {
  R1 = Math.round((0.20*risk + 0.80*((risk*0.02)/((risk*0.02)+((100-risk)*0.30))*100))*10)/10;
  R2 = Math.round((0.25*risk + 0.75*((risk*0.17)/((risk*0.17)+((100-risk)*0.42))*100))*10)/10;
  R3 = Math.round(0.02*risk + 0.97*((risk*0.45)/((risk*0.45)+((100-risk)*0.22))*100));
  R4 = Math.round(((risk*0.36)/((risk*0.36)+((100-risk)*0.06))*100));
}

if ((risk >= 6) && (risk < 10)) {
  R1 = Math.round((0.20*risk + 0.80*((risk*0.02)/((risk*0.02)+((100-risk)*0.30))*100))*10)/10;
  R2 = Math.round((0.20*risk + 0.80*((risk*0.17)/((risk*0.17)+((100-risk)*0.42))*100))*10)/10;
  R3 = Math.round(0.20*risk + 0.80*((risk*0.45)/((risk*0.45)+((100-risk)*0.22))*100));
  R4 = Math.round(0.15*risk + 0.85*((risk*0.36)/((risk*0.36)+((100-risk)*0.06))*100));
}

if ((risk >= 10) && (risk < 16)) { 
 R1 = Math.round((0.20*risk + 0.80*((risk*0.02)/((risk*0.02)+((100-risk)*0.30))*100))*10)/10;
 R2 = Math.round((0.30*risk + 0.70*((risk*0.17)/((risk*0.17)+((100-risk)*0.42))*100))*10)/10;
 R3 = Math.round(0.40*risk + 0.60*((risk*0.45)/((risk*0.45)+((100-risk)*0.22))*100));
 R4 = Math.round(0.40*risk + 0.60*((risk*0.36)/((risk*0.36)+((100-risk)*0.06))*100));
}

if ((risk >= 16) && (risk < 20)) {
 R1 = Math.round((0.08*risk + 0.92*((risk*0.02)/((risk*0.02)+((100-risk)*0.30))*100))*10)/10;
 R2 = Math.round((0.15*risk + 0.85*((risk*0.17)/((risk*0.17)+((100-risk)*0.42))*100))*10)/10;
 R3 = Math.round(0.42*risk + 0.58*((risk*0.45)/((risk*0.45)+((100-risk)*0.22))*100));
 R4 = Math.round(0.42*risk + 0.58*((risk*0.36)/((risk*0.36)+((100-risk)*0.06))*100));
}

if (risk >= 20) {
 R1 = Math.round((0.05*risk + 0.95*((risk*0.02)/((risk*0.02)+((100-risk)*0.30))*100))*10)/10;
 R2 = Math.round((0.10*risk + 0.90*((risk*0.17)/((risk*0.17)+((100-risk)*0.42))*100))*10)/10;
 R3 = Math.round(0.55*risk + 0.45*((risk*0.45)/((risk*0.45)+((100-risk)*0.22))*100));
 R4 = Math.round(0.55*risk + 0.45*((risk*0.36)/((risk*0.36)+((100-risk)*0.06))*100));
}
 
 if (R1 < 1){form.R1.value = "< 1%";}
  else {form.R1.value = R1 + "%";}
 if (R2 < 1) {form.R2.value = "< 1%";}
  else {form.R2.value = R2 + "%";}
	form.R3.value = R3 + "%";
	form.R4.value = R4 +"%";

if (form.sex[0].checked) {sexr = 0}
 else {if (form.sex[1].checked) {sexr = 1}
   else {alert("Please select your sex."); return false}}

if (age <30) {ager = 0}
if ((age >= 30) && (age < 35)) {ager = 1}
if ((age >= 35) && (age < 40)) {ager = 2}
if ((age >= 40) && (age < 45)) {ager = 3}
if ((age >= 45) && (age < 50)) {ager = 4}
if ((age >= 50) && (age < 55)) {ager = 5}
if ((age >= 55) && (age < 60)) {ager = 6}
if ((age >= 60) && (age < 65)) {ager = 7}
if ((age >= 65) && (age < 70)) {ager = 8}
if (age >= 70) {ager = 9}

var CACpercentile = new Array();  //create CAC percentile arrays [avCAC, P0, P1to80, P81to400, P401]
for (g = 0; g < 10; g++) {CACpercentile[g] = new Array()};
for (h = 0; h < 2; h++) {CACpercentile[h][g] = new Array()};

CACpercentile[0][0] = ["3","90","10","< 1","< 1"]
CACpercentile[0][1] = ["5","87","13","< 1","< 1"]
CACpercentile[0][2] = ["8","69","29","2","< 1"]
CACpercentile[0][3] = ["30","60","37","3","< 1"]
CACpercentile[0][4] = ["80","52","38","9","1"]
CACpercentile[0][5] = ["200","36","46","15","3"]
CACpercentile[0][6] = ["260","27","45","20","8"]
CACpercentile[0][7] = ["345","16","40","29","15"]
CACpercentile[0][8] = ["480","10","39","31","20"]
CACpercentile[0][9] = ["700","3","29","38","30"]

CACpercentile[1][0] = ["0","98","2","< 1","< 1"]
CACpercentile[1][1] = ["1","97","3","< 1","< 1"]
CACpercentile[1][2] = ["1","96","4","< 1","< 1"]
CACpercentile[1][3] = ["3","92","7","1","< 1"]
CACpercentile[1][4] = ["18","75","24","1","< 1"]
CACpercentile[1][5] = ["30","70","26","3","1"]
CACpercentile[1][6] = ["50","60","33","6","1"]
CACpercentile[1][7] = ["90","50","37","10","3"]
CACpercentile[1][8] = ["150","38","41","15","6"]
CACpercentile[1][9] = ["350","25","41","24","10"]

	form.avCAC.value = CACpercentile[sexr][ager][0];
	form.P1.value = CACpercentile[sexr][ager][1] + "%";
	form.P2.value = CACpercentile[sexr][ager][2] + "%";
	form.P3.value = CACpercentile[sexr][ager][3] + "%";
	form.P4.value = CACpercentile[sexr][ager][4] + "%";

var row2 = document.getElementById("row2"); 
if (R2 < 10) {row2.style.backgroundColor = "lime";}
if ((R2 >= 10) && (R2 < 20)) {row2.style.backgroundColor = "yellow";}
if (R2 >= 20) {row2.style.backgroundColor = "red";}

var row3 = document.getElementById("row3"); 
if (R3 < 10) {row3.style.backgroundColor = "lime";}
if ((R3 >= 10) && (R3 < 20)) {row3.style.backgroundColor = "yellow";}
if (R3 >= 20) {row3.style.backgroundColor = "red";}

var row4 = document.getElementById("row4"); 
if (R4 < 20) {row4.style.backgroundColor = "yellow";}
if (R4 >=20) {row4.style.backgroundColor = "red";}

return;
}
