﻿var draggable = null;
function getHealthTool(id)
{
    try{
    if(draggable == null)
       draggable = new Draggable('calc');
        
        var layer = $('calc');
        layer.style.left = ((window.screen.width - parseInt(layer.style.width))/ 2).toFixed(0);
        layer.style.top = ((window.screen.height - parseInt(layer.style.height)) / 2).toFixed(0);
        
        HealthCalculator.GetHealthTool(id, getHealthTool_callback); 
        
    }catch(e){alert(e.description);}  
    
    setTimeout('moveCalc()',0123);
}
function moveCalc()
{
    document.getElementById("calc").style.top = (document.documentElement.scrollTop + 111) + "px";
}
function getHealthTool_callback(res)
{
    $('calc').hide();
    $('tool').innerHTML = res.value;
    $('calc').show();
    $('calc').style.top = (document.documentElement.scrollTop + 111) + "px";
}
    
function $RF(el, radioGroup) {
    if($(el).type && $(el).type.toLowerCase() == 'radio') {
        var radioGroup = $(el).name;
        var el = $(el).form;
    } else if ($(el).tagName.toLowerCase() != 'form') {
        return false;
    }
 
    var checked = $(el).getInputs('radio', radioGroup).find(
        function(re) {return re.checked;}
    );
    return (checked) ? $F(checked) : null;
}

function getPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    }
    else {
        cursor.x = e.clientX +
            (document.documentElement.scrollLeft ||
            document.body.scrollLeft) -
            document.documentElement.clientLeft;
        cursor.y = e.clientY +
            (document.documentElement.scrollTop ||
            document.body.scrollTop) -
            document.documentElement.clientTop;
    }
    return cursor;
}

function calculate_hdr()
{
    /*
        var res = parseInt($F('bmi')) + parseInt($F('age')) + parseInt($F('exer')) + parseInt($F('sbling')) + parseInt($F('parent')) + parseInt($F('diabt'));
        $('result').innerHTML = '<br />Your risk of heart disease is: <div class="tool-main-blue">' + res + '%</div><br /><br />';
    */
    sel_age = parseInt($F('age'));
		
	var tchl = [[0,0,0,0,0],[4,3,2,1,0],[7,5,3,1,0],[9,6,4,2,1],[11,8,5,3,1]];
	var smoker = [8,5,3,1,1];
	var bp  = [[0,0,1,1,2],[0,1,2,2,3]];
	var age;
	if(($F('sex')=='M'))
	{
		var age_male = [-9,-4,0,3,6,8,10,11,12,13];
		age = age_male[sel_age];
	}
	else //Female
	{
		var age_female = [-7, -3, 0, 3,6,8,10,12,14,16];
		age = age_female[sel_age];
		tchl =[[0,0,0,0,0],[4,3,2,1,0],[8,6,4,2,1],[11,8,5,3,2],[13,10,7,4,2]];
		smoker = [9,7,4,2,1];
		bp  = [[0,1,2,3,4],[0,3,4,5,6]];
	}

	var agegrp = 0;
	if(age>=12)
		agegrp =4;
	else if(age>=10)
		agegrp =3;
	else if(age>=6)
		agegrp =2;
	else if(age>=0)
		agegrp =1;
		
	var risk_male=[['<1','<1','<1','1','1','1','1','1','2','2','3','4','5','6','8','11','13','17','>20'],['<1','<1','1','1','1','1','1','2','2','3','4','5','6','8','11','13','17','>20','>20'],['1','1','1','1','2','2','3','3','4','5','7','9','11','14','18','>20','>20','>20','>20']];
	var risk_female = [['<1','<1','<1','<1','1','1','1','1','1','2','3','3','4','5','7','9','12','15','19','>20'],['<1','<1','1','1','1','1','2','2','3','4','5','6','8','10','13','16','20','>20','>20','>20'],['1','1','1','1','2','2','3','3','4','6','7','10','12','16','20','>20','>20','>20','>20','>20']];

	//alert(risk_male.pluck('length'));
	//alert(risk_female.pluck('length'));
	sel_tchl = parseInt($F('tchl'));
	sel_smoker = parseInt($F('smoke'));
	sel_hdl = parseInt($F('hdl'));
	sel_bp = parseInt($F('bp'));
	sel_race = parseInt($F('race'));
	treated = $('treated').checked? 1: 0;
	//alert(age + ' '+ tchl[sel_tchl][agegrp] + ' ' + sel_smoker * smoker[agegrp] + ' ' +sel_hdl+ ' ' + bp[treated][sel_bp]);
	var point = age + tchl[sel_tchl][agegrp] + sel_smoker * smoker[agegrp] + sel_hdl + bp[treated][sel_bp];
	if($F('sex')=='M')
	{
		if(point<-1) point = -1;
		else if(point>17) point = 17;
		//alert('Male '+ risk_male[sel_race][point+1]);
		$('result').innerHTML = '<br />Your 10-year Coronary Heart Disease(CHD) risk is: <div class="tool-main-blue">' + risk_male[sel_race][point+1] + '%</div><br /><br />';
	}	
	else
	{
		if(point<5) point = 5;
		else if(point>24) point = 24;
		//alert('Female '+ risk_female[sel_race][point-5]);
		$('result').innerHTML = '<br />Your 10-year Coronary Heart Disease(CHD) risk is: <div class="tool-main-blue">' + risk_female[sel_race][point-5] + '%</div><br /><br />';
	}
	return false;
}

function calc_hdr2()
{
	var res;
	sel_age = parseInt($F('h_age'));
	sel_smoker = parseInt($F('h_smoker'));
	sel_diab = parseInt($F('h_diabetes'));
	sel_hdl = parseInt($F('h_hdl'));
	sel_ldl = parseInt($F('h_ldl'));
	sel_dias = parseInt($F('h_diastolic'));
	sel_sys = parseInt($F('h_systolic'));

	if($F('h_gender')=='M'){
		//Male here
		smoke = 2;
		diabetes = 2;
		hdl = [2,1,0,0,-1];
		ldl = [-3,0,0,1,2];
		age = [-1,0,1,2,3,4,5,6,7];
		dias_sys =[[0,0,1,2,3],[0,0,1,2,3],[1,1,1,2,3],[2,2,2,2,3],[3,3,3,3,3]];
		risk = [[-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],['1','2','2','3','4','4','6','7','9','11','14','18','22','27','33','40','47','>=56']];
	}else{
		//Female here
		smoke = 2;
		diabetes = 4;
		hdl = [5,2,1,0,-2];
		ldl = [-2,0,0,2,2];
		age = [-9,-4,0,3,6,7,8,8,8];
		dias_sys = [[-3,0,0,2,3],[0,0,0,2,3],[0,0,0,2,3],[2,2,2,2,3],[3,3,3,3,3]];
		risk = [[-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,17],['1','2','2','2','3','3','4','5','6','7','8','9','11','13','15','17','20','24','27','>=32']];
	}
	res = smoke * sel_smoker + diabetes * sel_diab + hdl[sel_hdl] + ldl[sel_ldl] + age[sel_age] + dias_sys[sel_dias][sel_sys];

	if(res<risk[0][0]){
        //alert('A:'+res+' '+risk[0][0]+','+risk[1][0]);
		res = risk[1][0];
	}
	else if(res>risk[0][risk[0].length-1]){
        //alert('B:'+res+' '+risk[0][risk[0].length-1]+','+risk[1][risk[0].length-1]);
		res = risk[1][risk[1].length-1];
	}
	else{
		for(i = 0; i<risk[0].length; i++){
			if(res == risk[0][i]){
				res = risk[1][i];
				break;
			}
		}
	}

	$('result').innerHTML = '<br />Your 10-year Coronary Heart Disease(CHD) risk is: <div class="tool-main-blue">' + res + '%</div><br /><br />';
    if($F('h_gender')=='M'){
        //$('info_male').show();
        $('info_female').hide();
    }else{
        $('info_male').hide();
        //$('info_female').show();
    }
	return false;
}

function AsianNonAsian_hdr()
{
	if ($F('asian') == 'No')
		$('opt_bmi').innerHTML = '<select style="width:80px" id=\'bmi\'>' +
							'<option value=\'0\'>&lt; 30</option>' +
							'<option value=\'5\'>&gt; 30</option>' +
						    '</select>';
	else
		$('opt_bmi').innerHTML = '<select style="width:80px" id=\'bmi\'>'+
							  '<option value=\'0\'>&lt; 27.5</option>'+
							  '<option value=\'5\'>&gt; 27.5</option>'+
						'</select>';
}

function calculate_iw()
{
    var gender = $F('gender');
    var frame = $F('frame');
    var height = parseFloat($F('height')) * parseFloat($F('m_height'));
    
    var r_height = new Array();
    var r_weight;
    if(isNaN(height) || height=='' || height == null){
        $('result').innerHTML = 'Please check your height';
        return;
    }
    if(gender=='M')
    {
        for (i =0; i < 15; i++)
        {
            m = (5 * 12 + 2+ i) * 0.0254;
            r_height.push(m);
        }
     
        if(height < 1.55 || height > 2.00)
        {
            $('result').innerHTML = 'Height for man must be between 1.55m (61.1 in.) - 2.00m (78.7 in.)';
            return;
        }
        if (frame=='L')
        {
            r_weight = new Array('138-150','140-153','142-156','144-160','146-164','149-168','152-172','155-176','158-180','161-184','164-188','168-192','172-197','176-202','181-207');
        }
        else if (frame == 'M')
        {
            r_weight = new Array('131-141','133-143','135-145','137-148','139-151','142-154','145-157','151-163','151-163','154-166','157-170','160-174','165-178','167-182','171-187');
        }
        else
            r_weight = new Array('128-134','130-136','132-138','134-140','136-142','138-145','140-148','142-151','144-154','146-157','149-160','152-164','155-168','158-172','162-176');
    }
    else
    {
        for (i =0; i < 15; i++)
        {
            m = (4 * 12 + 10+ i) * 0.0254;
            r_height.push(m);
        }
        
        if(height < 1.40 || height > 1.85)
        {
            $('result').innerHTML = 'Height for woman must be between 1.40m (55.1 in.) - 1.85m (72.8 in)';
            return;
        }
            
        if(frame == 'L')
            r_weight = new Array('118-131','120-134','122-137','125-140','128-143','131-147','134-151','137-155','140-159','143-163','146-167','149-170','152-173','155-176','158-179');
        else if (frame == 'M')
            r_weight = new Array('109-121','111-123','113-126','115-129','118-132','121-135','124-138','127-141','130-144','133-147','136-150','139-153','142-156','145-159','148-162');
        else
            r_weight = new Array('102-111','103-113','104-115','106-118','108-121','111-124','114-127','117-130','120-133','123-136','126-139','129-142','132-145','135-148','138-151');
    }
    var index = 0;
    var min = 100;
    for(i = 0; i < 17; i++)
    {
        if (Math.abs(r_height[i] - height) < min)
        {
            min = Math.abs(r_height[i] - height);
            index = i;
        }
    }
    //1 pound = 0.4536 kg
    var temp = r_weight[index].split("-");
    var kg = (parseInt(temp[0]) * 0.4536).toFixed(1) + '-' + (parseInt(temp[1]) * 0.4536).toFixed(1);
    $('result').innerHTML = 'Your ideal weight range is between: <div class="tool-main-blue">' + kg + ' kg (' + r_weight[index] + ' pounds)</div>';
}

function calc_thr()
{
    if ($F('age')==null || $F('age') == '' || isNaN($F('age')))
    {
        $('result').innerHTML = 'Please check your age.';
        return;
    }
    else if(parseFloat($F('age')) > 150 || parseFloat($F('age')) < 0)
    {
        $('result').innerHTML = 'Please make sure your age is between 1 and 150';
        return;
    }
    var age = parseFloat($F('age'));
    
    var HRmax = 205.8 - (0.685 * age);
    var fifty = (0.5 * HRmax).toFixed(0);
    var eightyFive = (0.85 * HRmax).toFixed(0);
    $('result').innerHTML = 'Your maximum heart rate is: <div class="tool-main-blue">' +HRmax.toFixed(0) + ' per minute</div><br />' +
            'Your target heart rate is between: <div class="tool-main-blue">' + fifty +' - ' + eightyFive + ' per minute</div>';
}

function calc_whr()
{
    $('result').innerHTML = '';
    var waist = parseFloat($F('waist')) * parseFloat($F('m_waist'));
    var hip = parseFloat($F('hip')) * parseFloat($F('m_hip'));
    
    if($F('waist')==null || $F('waist') == '' || waist < 20 || waist > 200)
        $('result').innerHTML = 'Please check your waist';
    if($F('hip')==null || $F('hip')== '' || hip < 20 || hip > 200)
    {
        if($('result').innerHTML=='')
            $('result').innerHTML = 'Please check your hip';
        else
            $('result').innerHTML += ' and hip';
    }
    if($('result').innerHTML != '')
    {
        $('result').innerHTML += '<br />';  
        return;
    }

    $('result').innerHTML = 'Your waist hip ratio is: <div class="tool-main-blue">' + (waist / hip).toFixed(2) + '</div><br /><br />' +
        '<div style=\"font-weight:normal\">A WHR of 0.7 for women and 0.9 for men have been shown to correlate strongly with general health and fertility. Women within the 0.7 range have optimal levels of estrogen and are less susceptible to major diseases such as diabetes, cardiovascular disorders and ovarian cancers. Men with WHRs around 0.9, similarly, have been shown to be more healthy and fertile with less prostate cancer and testicular cancer.</div>';   
}

function calculate_dr()
{
	var temp = new Array();
	var height = parseFloat($F('height')) * parseFloat($F('m_height'));
	var weight = parseFloat($F('weight')) * parseFloat($F('m_weight'));
	
	if($F('height').blank() || height < 1.4 || height > 2)
		temp.push('height');

	if($F('weight').blank() || weight < 30)
		temp.push('weight');

	if(temp.size()>0)
	{
		$('result').innerHTML = 'Please verify your ' + temp.join(' and ');
		return false;
	}

	var std_ht = new Array();
	var std_wt = new Array('129','133','138','143','147','152','157','162','167','172','177','182','188','193','199','204','210','216','221').map(function (n) { return n / 2.2; });
	
	for (i=0; i<19; i++)
	{
		std_ht.push((4 * 12 + 10 + i) * 0.0254);
	}

	var bmi = parseFloat($F('weight')) / Math.pow( parseFloat($F('height')), 2);
	var res = parseInt($F('age')) + 
			  parseInt($RF('exer')) + parseInt($RF('sbling')) + parseInt($RF('parent')) + parseInt($RF('baby'));
			  
	var min = 1000;
	var index = 0;
    for(i = 0; i < std_ht.length; i++)
    {
        if (Math.abs(std_ht[i] - height) < min)
        {
            min = Math.abs(std_ht[i] - height);
            index = i;
        }
    }
    
	//if(weight > std_wt[index])
	//	res += 5;

	if($RF('asian')=='Yes')
	{
		if (bmi > 27.5)
			res += 5;
	}
	else
	{
		if (bmi > 30)
			res+= 5;
	}
	
    $('result').innerHTML  = '';
	if(res <= 2)
	    $('result').innerHTML += 'You have scored <div class="tool-main-blue">' + res + ' points</div>.  This means you are currently at a very low risk for type 2 diabetes.';
	else if(res <= 9)
	    $('result').innerHTML += 'You have scored <div class="tool-main-blue">' + res + ' points</div>.  This means you are probably at low to medium risk for having type 2 diabetes now, BUT you may be at higher risk in the future. Only your health care provider can determine if you have diabetes. At your next office visit, talk to them about your risk for diabetes and how you can reduce it.'
	else
	    $('result').innerHTML += 'You have scored <div class="tool-main-blue">' + res + ' points</div>.  You are at high risk for having type 2 diabetes. Only your health care provider can determine if you have diabetes. At your next office visit, find out for sure.';
	$('result').innerHTML += '<br />';
	
	$('result').innerHTML += '<div style="font-weight:normal"><br />Scoring:<br /><table>' + 
                             '<tr><td>0 - 2</td><td>Very Low Risk</td></tr>' +
                             '<tr><td>3 - 9</td><td>Low to Medium Risk</td></tr>' +
                             '<tr><td>10+</td><td>High Risk</td></tr></table></div><br /><br />';
                            
	$('result').innerHTML += '<div style="font-weight:normal">Keep your risk low by:<ul>' +
	                         '<li>Keeping your weight in control (or losing weight if you are overweight)</li>' +
	                         '<li>Staying active most days of the week</li>' +
	                         '<li>Eating low fat meals high in fruits, vegetables and whole grain foods</li></ul></div>';
	                         
	
	//$('result').innerHTML = res;
	return false;
}

function calc_bmi()
{
	var bmi;
	var temp = new Array();
	height = parseFloat($F('height')) * parseFloat($F('m_height'));
	weight = parseFloat($F('weight')) * parseFloat($F('m_weight'));
	if($F('height').blank() || isNaN($F('height')) || height > 2 || height < 1.4)
		temp.push('height');
	if($F('weight').blank() || isNaN($F('weight')) || weight > 200 || weight<35)
		temp.push('weight');
	if(temp.size() > 0)
	{
		$('result').innerHTML = 'Please check your ' + temp.join(' and ');
		return false;
	}
	bmi =  weight/ Math.pow(height, 2);

	$('result').innerHTML = 'You BMI is <div class="tool-main-blue">' + bmi.toFixed(1) + ', ';

	if($F('asian')=='Yes')
	{
	    if(bmi<18.5)
	        $('result').innerHTML += 'you are underweight.';
	    else if(bmi>=22.95)
	        $('result').innerHTML += 'you are overweight.'
	    else    
	        $('result').innerHTML += 'you are healthy.'
	}
	else
	{
	    if(bmi<18.5)
	        $('result').innerHTML += 'you are underweight.';
	    else if(bmi>=24.95)
	        $('result').innerHTML += 'you are overweight.'
	    else    
	        $('result').innerHTML += 'you are healthy.'
	}

	$('result').innerHTML += '</div>'
	$('info').show();
	return false;
}