lngData = new Array(11);
	for (i=0; i<lngData.length; i++) {
		lngData[i]= new Array(5);
	}

	/* WHERE (agegroups, fitness levels)
	'*** 1-5 = Females AGE GROUPS
	'*** 6-10 = Males AGE GROUPS */
	lngData[1][1]=15;
	lngData[2][1]=16;
	lngData[3][1]=19;
	lngData[4][1]=21;
	lngData[5][1]=21;

	lngData[1][2]=19;
	lngData[2][2]=20;
	lngData[3][2]=24;
	lngData[4][2]=27;
	lngData[5][2]=29;

	lngData[1][3]=22;
	lngData[2][3]=23;
	lngData[3][3]=26;
	lngData[4][3]=30;
	lngData[5][3]=31;
	
	lngData[1][4]=25;
	lngData[2][4]=27;
	lngData[3][4]=30;
	lngData[4][4]=34;
	lngData[5][4]=34;
	
	lngData[1][5]=31;
	lngData[2][5]=32;
	lngData[3][5]=34;
	lngData[4][5]=37;
	lngData[5][5]=38;
	
	lngData[6][1]=7;
	lngData[7][1]=11;
	lngData[8][1]=14;
	lngData[9][1]=15;
	lngData[10][1]=16;

	lngData[6][2]=12;
	lngData[7][2]=16;
	lngData[8][2]=18;
	lngData[9][2]=20;
	lngData[10][2]=20;

	lngData[6][3]=16;
	lngData[7][3]=19;
	lngData[8][3]=21;
	lngData[9][3]=23;
	lngData[10][3]=24;
	
	lngData[6][4]=20;
	lngData[7][4]=22;
	lngData[8][4]=24;
	lngData[9][4]=26;
	lngData[10][4]=27;
	
	lngData[6][5]=25;
	lngData[7][5]=26;
	lngData[8][5]=28;
	lngData[9][5]=29;
	lngData[10][5]=30;
	
	lngFit = new Array(7);
	lngFit[1]="Very Lean";
	lngFit[2]="Fit";
	lngFit[3]="Average";
	lngFit[4]="at Risk";
	lngFit[5]="at Moderate Risk";
	lngFit[6]="at High Risk";

Event.add(window, "load", function() {
	Dom.get("fitTable").style.display="none";
	Dom.get("submit").style.display="none";
	Event.add("gender", "change", function() {
		calcBodyFat();
	});
	Event.add("Age", "change", function() {
		calcBodyFat();
	});
	Event.add("Waist", "keyup", function() {
		calcBodyFat();
	});
	Event.add("Waist2", "keyup", function() {
		calcBodyFat();
	});
	Event.add("Waist3", "keyup", function() {
		calcBodyFat();
	});
	Event.add("WaistM", "change", function() {
		calcBodyFat();
	});
	Event.add("gender", "change", function() {
		calcBodyFat();
	});
	Event.add("Weight", "keyup", function() {
		calcBodyFat();
	});
	Event.add("WeightM", "change", function() {
		calcBodyFat();
	});
});

function calcBodyFat(){
	// Load Values from form
	var waist = deValue(Dom.get("Waist").value, 0);
	var waist2 = deValue(Dom.get("Waist2").value, 0);
	var waist3 = deValue(Dom.get("Waist3").value, 0);
	var weight = deValue(Dom.get("Weight").value, 0);
	
	if (waist<10) {waist=0;}
	if (waist2<10) {waist2=0;}
	if (waist3<10) {waist3=0;}
	
	// before we go any further, check if we have enough data to calculate and exit if not
	if (weight < 50 || (waist < 20 && waist2 < 20 && waist3 < 20)) {
		Dom.get("fitTable").innerHTML = "";
		return;
	}
	
	// Get the rest of the values
	var gender = Dom.get("gender").selectedIndex;
	var age = Dom.get("Age");
	age = age.options[age.selectedIndex].value;
	var waistM = Dom.get("WaistM").selectedIndex;
	var weightM = Dom.get("WeightM").selectedIndex;
	
	var waistC=deValue(waist,0);
	var percent = 0;
	var strPercent = "";
	var strLower = "";
	var strUpper = "";
	var strConsidered = "";
	var strFitTable = "";
	var strFont = "";
	var strBGColor = "";
	var blnGroup = false;
	var strWaist = "";
	
	
	var waistD=1;
	if (waist2>0) {
		waistC=(waistC*1)+(waist2*1);
		waistD=(waistD*1)+1;
	}
	if (waist3>0) {
		waistC=(waistC*1)+(waist3*1);
		waistD=(waistD*1)+1;
	}
	waistC = (waistC/waistD);
	var weightC=weight;
	if ((waistM*1)==1) {
		waistC=waistC/2.54;
	}
	if ((weightM * 1) == 1) {
		weightC = weightC * 2.2;
	}
	if ((weightC*1)>0) {
		percent=((waistC*4.15)-(weightC*.082))
		if (gender=="0" || gender==0) {
			percent=(percent*1)-76.76;
		} else {
			percent=(percent*1)-98.42;
		}
		percent=Math.round((percent/weightC)*100,1);
		strPercent = percent;
		if ((waistD*1)>1) {
			strWaist = "Average Waist: <b>" + waistC.toFixed(2);
			strWaist+= (waistM=="1" || waistM==1) ? " cm" : " inches";
		}
	}

	var ageC=age;
	if (gender == "1" || gender==1) {
		ageC = (ageC*1) + 5;
	}

	for (i=1; i<=6; i++) {
		if ((i*1)==1) {
			strLower="6 - ";
			strUpper=lngData[ageC][i];
			strConsidered=" considered ";
		} else if ((i*1)==6) {
			strLower=lngData[ageC][i-1];
			strUpper="+";
			strConsidered="";
		} else {
			strLower=(lngData[ageC][(i*1)-1]*1)+1 + " - ";
			strUpper=lngData[ageC][i];
			strConsidered="";
		}
		strFont="";
		strBGColor="#eeeeee";
		if ((i * 1) < 6) {
			if ((percent * 1) <= lngData[ageC][i] && blnGroup != true) {
				blnGroup = true;
				strFont = "color: red;'";
				strbgcolor = "#ffffff";
			}
		} else if ((i*1)==6 && blnGroup!=true) {
			strFont="color: red;'";
			strbgcolor="#ffffff";
		}
		strFitTable=strFitTable + "<tr bgcolor='" + strBGColor + "'><td style='height: 25px; font-size: 9pt;" + strFont + "'><b>" + strLower + strUpper + "%</b> is " + strConsidered + "<b>" + lngFit[i] + "</b></td></tr>";
	}
	strFitTable="<table border='1' cellspacing='0'>" + strFitTable + "</table>";
	strFitTable="<p><b><u>Calculations:</u></b></p>Body Fat: <b>" + strPercent +"%</b><br>" + strWaist + "</b><p>Ranges for your age group:</p>" + strFitTable;		
	if ((strPercent * 1) >=4 ) {
		Dom.get("fitTable").innerHTML = strFitTable;
	} else {
		Dom.get("fitTable").innerHTML = "<p style='color: red;'>Error.  Something seems wrong with the data you entered.  Please check it and try again.</p>";
	}
	Dom.get("fitTable").style.display="block";
}
	

function deValue(val, def) {
	if (val=='' || isNaN(val)) {
		return def;
	} else {
		return val;
	}
}

