function isChecked(inputField){
	if (!(inputField[0].checked || inputField[1].checked)){
		return true
		}
	}
function isEmpty(inputStr){
	if(inputStr==null || inputStr==""){
		return true
		}
	return false
	}
function isNumber(inputStr){
	for (i=0; i<inputStr.length; i++){
		if (inputStr.charAt(i) < '0' || inputStr.charAt(i) > '9'){
			return true
			}
		}
		return false
	}
function isChol(inputStr){
	for (i=0; i<inputStr.length; i++){
		if ((inputStr.charAt(i) < '0' || inputStr.charAt(i) > '9') && inputStr.charAt(i) != '.'){
			return true
			}
		}
		return false
	}
function isBp(inputStr){
	for (i=0; i<inputStr.length; i++){
		if ((inputStr.charAt(i) < '0' || inputStr.charAt(i) > '9') && inputStr.charAt(i) != '/'){
			return true
			}
		}
		return false
	}
function separateBp(expr, part){
	var varstrValue = ''
	pointer = expr.indexOf('/')
	if (part == 1){
		if (pointer == -1){
			return expr
			}
		else{
			for (i=0; i < pointer; i++){
				varstrValue = varstrValue + expr.charAt(i)
				}
			return varstrValue
			}
		}
	else if (part == 2){
		if (pointer == -1){
			return 0
			}
		else{
			for (i = pointer + 1;  i < expr.length; i++){
				varstrValue = varstrValue + expr.charAt(i)
				}
			return varstrValue
			}		
		}
	}
function decPlace(expr, decplaces){
	var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces))
	while (str.length <= decplaces){
		str = "0" + str
		}
	var decpoint = str.length - decplaces
	if (decplaces > 0){
		str = str.substring(0,decpoint) + '.'  + str.substring(decpoint,str.length)
		}
	else{
		str = str.substring(0,decpoint)
		}
	return str;
	}
function percentagize(expr){
	str = expr * 100
	str = decPlace(str,1)
	return str
	}
function checkForm(){
	var x = 0
	if (isChecked(riskAssForm.gender)){
		riskAssForm.gender[0].checked = true
		}
	if (x == 0){
		if (isEmpty(riskAssForm.age.value)){
			alert("Please write in your age and resubmit.")
			return false
			}
		}
	if (x == 0){
		if (isNumber(riskAssForm.age.value)){
			alert("Your age must consist of numbers only. Please check and resubmit. \n Example: 55")
			return false
			}
		}
	if (x == 0){
		if (isBp(riskAssForm.bp.value)){
			alert("Your blood pressure must consist of numbers and a slash (/) only. Please check and resubmit. \n Example: 140/80")
			return false
			}
		}
	if (x == 0){
		if (isChecked(riskAssForm.smoker)){
			riskAssForm.smoker[1].checked = true
			}
		}
	if (x == 0){
		if (isChol(riskAssForm.tchol.value)){
			alert("Your total cholesterol level must consist of numbers and a decimal point only. Please check and resubmit. \n Example: 5.7")
			return false
			}
		}
	if (x == 0){
		if (isChol(riskAssForm.hchol.value)){
			alert("Your HDL cholesterol level must consist of numbers and a decimal point only. Please check and resubmit. \n Example: 1.0")
			return false
			}
		}
	if (x == 0){
		if (isChecked(riskAssForm.ancestry)){
			riskAssForm.ancestry[1].checked = true
			}
		}
		
	if (x == 0){
		if (isChecked(riskAssForm.diabetes)){
			riskAssForm.diabetes[1].checked = true
			}
		}	
		
	if (x == 0){
		if (isChecked(riskAssForm.previous)){
			riskAssForm.previous[1].checked = true
			}
		}
		
	if (x == 0){
		if (isChecked(riskAssForm.lipid)){
			riskAssForm.lipid[1].checked = true
			}
		}
		
	if (x == 0){
		if (isChecked(riskAssForm.kidney)){
			riskAssForm.kidney[1].checked = true
			}
		}
		
	if (x == 0){
		return true
		}
	}

function checkFormGo(){
	if (checkForm()){
		processForm();
		}
	}

function processForm(){
	
	//Set vars
	var varintDefault = 0
	var conint1 = 18.8144
	var conint2 = -1.2146
	var conint3 = -1.8443
	var conint4 = 0.3668
	var conint5 = -1.4032
	var conint6 = -0.3899
	var conint7 = -0.539
	var conint8 = -0.3036
	var conint9 = -0.1697
	var conint10 =  -0.3362
	var conint11 = 0.6536
	var conint12 = -0.2402
	var conintTime = 5
	var varintGen
	var varintAge = riskAssForm.age.value
	var varintDia
	var varintSmo
	var varintBp
	var varintBp2
	var varintTchol
	var varintHchol
	var conintEcg = 0
	var varintI
	var varintJ
	var varintK
	var varintM
	var varintX
	var varintY
	var varintZ
	var varintCvd
	var varintRelrisk = .33
	var varintAbsrisk
	var varintYrs
	var varintRiskcat
	var varstrLoc

	//SET VALUES
	//IF GENDER IS MALE SET VAR TO 0 ELSEIF FEMALE SET VAR TO 1
	if (riskAssForm.gender[0].checked == true){
		varintGen = 0
		}
	else{
		varintGen = 1
		}
	
	//IF DIABETES THEN SET VAR TO 1 ELSE IF NO DIABETES SET VAR TO 0
	if (riskAssForm.diabetes[0].checked == true){
		varintDia = 1
		}
	else{
		varintDia = 0
		}
		
	//IF NO BP SUPPLIED THEN SET DEFAULT BP
	if (isEmpty(riskAssForm.bp.value)){
		varintBp = 125
		varintBp2 = 75
		varintDefault = 1
		}
	else{
		varintBp = separateBp(riskAssForm.bp.value,1)
		varintBp2 = separateBp(riskAssForm.bp.value,2)
		}
	
	//IF NO TCHOL SUPPLIED THEN SET DEFAULT TCHOL
	if (isEmpty(riskAssForm.tchol.value)){
		varintTchol = 5.5
		varintDefault = 1
		}
	else{
		varintTchol = riskAssForm.tchol.value
		}
		
	//IF NO HCHOL SUPPLIED THEN SET DEFAULT HCHOL
	if (isEmpty(riskAssForm.hchol.value)){
		varintHchol = 1.25
		varintDefault = 1
		}
	else{
		varintHchol = riskAssForm.hchol.value
		}
	
	//IF SMOKER THEN SET VAR TO 1 ELSE NOT SMOKER SET VAR TO 0
	if (riskAssForm.smoker[0].checked == true){
		varintSmo = 1
		}
	else{
		varintSmo = 0
		}
		
	//STEP1
	varintI = conint1
	
	//STEP2		
	varintJ = conint2 * varintGen
	
	//STEP2
	varintK = conint3 * Math.log(varintAge)
	
	//STEP3
	varintM = conint4 * Math.log(varintAge) * varintGen
	
	//STEP4
	varintO = conint5 * Math.log(varintBp)
	
	//STEP5
	varintP = conint6 * varintSmo
	
	//STEP6
	varintQ = conint7 * Math.log(varintTchol/varintHchol)
	
	//STEP7
	varintR = conint8 * varintDia
	
	//STEP8
	varintS = conint9 * varintGen * varintDia
	
	//STEP9
	varintT = conint10 * conintEcg
	
	//STEP10
	varintX = varintI+varintJ+varintK+varintM+varintO+varintP+varintQ+varintR+varintS+varintT
	
	//STEP11
	varintY = Math.exp(conint11 + (conint12 * varintX))
	
	//STEP12
	varintZ = (Math.log(conintTime) - varintX) / varintY
	
	//STEP13
	varintCvd = 1 - Math.exp(- Math.exp(varintZ))
	
	//STEP14
	varintAbsrisk = varintCvd * varintRelrisk
	
	//STEP15
	varintYrs = 1 / varintAbsrisk
	
	//USE THIS TO ROUND SCORES TO 2 DECIMAL PLACES
	/*varintCvd = decPlace(varintCvd)
	varintAbsrisk = decPlace(varintAbsrisk,2)*/
	
	//USE THIS TO CONVERT EXPRESSION TO A PERCENTAGE
	varintCvd = percentagize(varintCvd)
	varintAbsrisk = percentagize(varintAbsrisk)
	
	//ROUND DAYS TO 0 DECIMAL PLACES
	varintYrs = decPlace(varintYrs,0)
	
	/*ADD 5% risk for the questions:
	"Do you have Maori, Pacific Island or Indian ancestry?"
	"Do you have a HbA1c reading above 8%?"
	"Do you have metabolic syndrome?"
	"Do you have a family history of early heart disease or ischaemic stroke (father/brother < 55 years, mother/sister <65 years)?"*/

	var total=0;
	if (riskAssForm.ancestry[0].checked == true){
		total += 5 
		}	
	
	total = total + eval(varintCvd)
	varintCvd = total
	/*Put in the very high risk category for the questions:
	"Have you had a previous cardiovascular event (eg, heart attack, stroke)?"
	"Do you have a hereditary lipid disorder (eg, familial hyperlipidaemia)?"
	"Do you have diabetes with overt kidney disease (nephropathy)?"*/ 
	
	if (riskAssForm.previous[0].checked == true){
		varintCvd = 20.1
		}
	if (riskAssForm.lipid[0].checked == true){
		varintCvd = 20.1
		}
	if (riskAssForm.kidney[0].checked == true){
		varintCvd = 20.1
		}
	
	//ASCERTAIN APPROPRIATE RISK CATEGORY
	if (varintCvd >= 20){
		varintRiskcat = 1
		}
	else if (varintCvd >= 15 && varintCvd < 20){
		varintRiskcat = 2
		}
	else if (varintCvd >= 10 && varintCvd < 15){
		varintRiskcat = 3
		}
	else if (varintCvd < 10){
		varintRiskcat = 4
		}

	//BUILD QUERY STRING FOR REDISPLAYING FORM FIELDS
	//LOAD GENDER, AGE & BP
	var varstrQrystring = '?a=' + varintGen + '&b=' + riskAssForm.age.value + '&c=' + varintBp + '&d=' + varintBp2
	
	//QUERY STRING: LOAD SMOKING
	if (riskAssForm.smoker[0].checked){
		varstrQrystring = varstrQrystring + '&e=0'
		}
	else if (riskAssForm.smoker[1].checked){
		varstrQrystring = varstrQrystring + '&e=1'
		}
		
	//QUERY STRING: LOAD TCHOL & HCHOL
	varstrQrystring = varstrQrystring + '&f=' + varintTchol + '&g=' + varintHchol
	
	//QUERY STRING: LOAD DIABETES
	if (riskAssForm.diabetes[0].checked){
		varstrQrystring = varstrQrystring + '&h=0'
		}
	else if (riskAssForm.diabetes[1].checked){
		varstrQrystring = varstrQrystring + '&h=1'
		}
	
	//ADD CVD
	varstrQrystring = varstrQrystring + '&i=' + varintCvd
	
	//QUERY STRING: LOAD ANCESTRY
	if (riskAssForm.ancestry[0].checked){
		varstrQrystring = varstrQrystring + '&j=0'
		}
	else if (riskAssForm.ancestry[1].checked){
		varstrQrystring = varstrQrystring + '&j=1'
		}	

	//QUERY STRING: LOAD PREVIOUS
	if (riskAssForm.previous[0].checked){
		varstrQrystring = varstrQrystring + '&n=0'
		}
	else if (riskAssForm.previous[1].checked){
		varstrQrystring = varstrQrystring + '&n=1'
		}
		
	//QUERY STRING: LOAD LIPID
	if (riskAssForm.lipid[0].checked){
		varstrQrystring = varstrQrystring + '&o=0'
		}
	else if (riskAssForm.lipid[1].checked){
		varstrQrystring = varstrQrystring + '&o=1'
		}
		
	//QUERY STRING: LOAD KIDNEY
	if (riskAssForm.kidney[0].checked){
		varstrQrystring = varstrQrystring + '&p=0'
		}
	else if (riskAssForm.kidney[1].checked){
		varstrQrystring = varstrQrystring + '&p=1'
		}

	//SET APPROPRIATE RISK PAGE
	if (varintRiskcat == 1){
		if (varintDefault == 1){
			varstrLoc = 'vhigh1.htm' + varstrQrystring
			}
		else{
			varstrLoc = 'vhigh.htm' + varstrQrystring
			}
		}
	else if (varintRiskcat == 2){
		if (varintDefault == 1){
			varstrLoc = 'high1.htm' + varstrQrystring
			}
		else{
			varstrLoc = 'high.htm' + varstrQrystring
			}
		}
	else if (varintRiskcat == 3){
		if (varintDefault == 1){
			varstrLoc = 'mod1.htm' + varstrQrystring
			}
		else{
			varstrLoc = 'mod.htm' + varstrQrystring
			}
		}
	else if (varintRiskcat == 4){
		if (varintDefault == 1){
			varstrLoc = 'mild1.htm' + varstrQrystring
			}
		else{
			varstrLoc = 'mild.htm' + varstrQrystring
			}
		}
		
	//alert(varintCvd+','+varintAbsrisk+','+varintYrs)
	
	//ROUTE TO APPROPRIATE RISK PAGE
	self.location = varstrLoc
	}