/* 
	rre.js -- The Recurrence Risk Estimator (RRE) - A Score for Prediction of Early Risk of Recurrence After Ischemic Stroke -- 2008-06-18

	Copyright (C) 2008  The General Hospital Corporation
	Thomas Benner  <thomas.benner@nmr.mgh.harvard.edu>
	All rights reserved.
	This script comes with ABSOLUTELY NO WARRANTY!
*/

function getElementIDs()
{
	// get element IDs
	q0aYesID        = document.getElementById('q0aYes');
	q0aNoID         = document.getElementById('q0aNo');

	q1aYesID        = document.getElementById('q1aYes');
	q1aNoID         = document.getElementById('q1aNo');

	q1bYesID        = document.getElementById('q1bYes');
	q1bNoID         = document.getElementById('q1bNo');

	q1cYesID        = document.getElementById('q1cYes');
	q1cNoID         = document.getElementById('q1cNo');

	q1dYesID        = document.getElementById('q1dYes');
	q1dNoID         = document.getElementById('q1dNo');

	q1eYesID        = document.getElementById('q1eYes');
	q1eNoID         = document.getElementById('q1eNo');

	q1fLAAID        = document.getElementById('q1fLAA');
	q1fCEID         = document.getElementById('q1fCE');
	q1fSAOID        = document.getElementById('q1fSAO');
	q1fOCID         = document.getElementById('q1fOC');
	q1fUCID         = document.getElementById('q1fUC');

	q2aYesID        = document.getElementById('q2aYes');
	q2aNoID         = document.getElementById('q2aNo');

	q2bLAAID        = document.getElementById('q2bLAA');
	q2bCEID         = document.getElementById('q2bCE');
	q2bSAOID        = document.getElementById('q2bSAO');
	q2bOCID         = document.getElementById('q2bOC');
	q2bUCID         = document.getElementById('q2bUC');
	
	//resultsID       = document.getElementById('results');
	scoreID         = document.getElementById('score');
	risk07ID        = document.getElementById('risk07');
	risk90ID        = document.getElementById('risk90');

	return true;
}

function getElementValues()
{
	// get element IDs
	//getElementIDs();

	// get element values
//	q1a = document.getElementById('q1a').checked;
	q0aYes        = q0aYesID.checked;
	q0aNo         = q0aNoID.checked;

	q1aYes        = q1aYesID.checked;
	q1aNo         = q1aNoID.checked;

	q1bYes        = q1bYesID.checked;
	q1bNo         = q1bNoID.checked;

	q1cYes        = q1cYesID.checked;
	q1cNo         = q1cNoID.checked;

	q1dYes        = q1dYesID.checked;
	q1dNo         = q1dNoID.checked;

	q1eYes        = q1eYesID.checked;
	q1eNo         = q1eNoID.checked;

	q1fLAA        = q1fLAAID.checked;
	q1fCE         = q1fCEID.checked;
	q1fSAO        = q1fSAOID.checked;
	q1fOC         = q1fOCID.checked;
	q1fUC         = q1fUCID.checked;

	q2aYes        = q2aYesID.checked;
	q2aNo         = q2aNoID.checked;

	q2bLAA        = q2bLAAID.checked;
	q2bCE         = q2bCEID.checked;
	q2bSAO        = q2bSAOID.checked;
	q2bOC         = q2bOCID.checked;
	q2bUC         = q2bUCID.checked;

	return true;
}

function resetValues()
{
	// get element IDs
	getElementIDs();

	// reset element values
//	q1a = document.getElementById('q1a').checked;
	q0aYesID.checked = false;
	q0aNoID.checked = false;

	q1aYesID.checked = false;
	q1aNoID.checked = false;

	q1bYesID.checked = false;
	q1bNoID.checked = false;

	q1cYesID.checked = false;
	q1cNoID.checked = false;

	q1dYesID.checked = false;
	q1dNoID.checked = false;

	q1eYesID.checked = false;
	q1eNoID.checked = false;

	q1fLAAID.checked = false;
	q1fCEID.checked = false;
	q1fSAOID.checked = false;
	q1fOCID.checked = false;
	q1fUCID.checked = false;

	q2aYesID.checked = false;
	q2aNoID.checked = false;

	q2bLAAID.checked = false;
	q2bCEID.checked = false;
	q2bSAOID.checked = false;
	q2bOCID.checked = false;
	q2bUCID.checked = false;
	
	//scoreID.value = "";
	scoreID.innerHTML = "";
	//risk90ID.value = "";
	risk07ID.innerHTML = "";
	risk90ID.innerHTML = "";
	
	// hide all sections
    collapse('route1');
    collapse('route2');
	collapse('results');
}

function getElementIDsAndValues()
{
	getElementIDs();
	getElementValues();

	return true;
}

function expand()
{
    for (var i=0; i<expand.arguments.length; i++)
    {
        var element = document.getElementById(expand.arguments[i]);
        element.style.display = "block";
    }
}

function collapse()
{
    for (var i=0; i<collapse.arguments.length; i++)
    {
        var element = document.getElementById(collapse.arguments[i]);
        element.style.display = "none";
    }
}

function expandCollapse()
{
    for (var i=0; i<expandCollapse. arguments.length; i++)
    {
        var element = document.getElementById(expandCollapse.arguments[i]);
        element.style.display = (element.style.display == "none") ? "block" : "none";
    }
}

function rre(boxNo)
{
	// get element IDs and values
	getElementIDsAndValues();

    // show/hide sections
    if (boxNo == 'q0aYes')
    {
        expand('route1');
        collapse('route2');
    }
    if (boxNo == 'q0aNo')
    {
        collapse('route1');
        expand('route2');
    }
    
    computeResults();
    
    return true;
}

function computeResults()
{
	// get element IDs and values
	getElementIDsAndValues();
	
	// show results section
	expand('results');
	
	// calculate score and risk
	if (q0aYes) // route 1 <!-- Route 1 = Model B = 'Acute stroke MRI is available' == 'Yes' -->
	{
		var score = 0;
		
		if (q1aYes)
			score++;
		if (q1bYes)
			score++;
		if (q1cYes)
			score++;
		if (q1dYes)
			score++;
		if (q1eYes)
			score++;
		if (q1fLAA)
			score++;
		if (q1fOC)
			score++;
	
		//scoreID.value = score;
		//document.getElementById("score").innerHTML = score;
		scoreID.innerHTML = score;
	
		if (score == 0) {
			risk07ID.innerHTML = '0.3% (0.0% - 0.9%)';
			risk90ID.innerHTML = '0.7% (0.0% - 1.8%)';
			//risk90ID.firstChild.data = 'TEST';
			//risk90ID.parentNode.lastChild = 'TEST';
			//risk90ID.parentNode.firstChild = 'TEST';
			//risk90ID.lastChild.data = 'TEST';
			//risk90ID.data = 'TEST';
		} else if (score == 1) {
			risk07ID.innerHTML = '0.6% (0.0% - 1.4%)';
			risk90ID.innerHTML = '3.9% (1.5% - 6.3%)';
		} else if (score == 2) {
			risk07ID.innerHTML = '1.0% (0.0% - 2.2%)';
			risk90ID.innerHTML = '4.2% (1.6% - 6.8%)';
		} else if (score == 3) {
			risk07ID.innerHTML = '3.5% (0.2% - 6.8%)';
			risk90ID.innerHTML = '27.3% (17.8% - 36.8%)';
		} else if (score == 4 || score == 5 || score == 6) {
			risk07ID.innerHTML = '16.6% (1.7% - 31.5%)';
			risk90ID.innerHTML = '38.8% (17.2% - 60.5%)';
		} else {
			risk07ID.innerHTML = 'ERROR!';
			risk90ID.innerHTML = 'ERROR!';
		}
	}
	else // route 2 <!-- Route 2 = Model A = 'Acute stroke MRI is available' == 'No' -->
	{
		var score = 0;
		
		if (q2aYes)
			score++;
			
		if (q2bLAA)
			score += 2;
		else if (q2bCE)
			score += 2;
		else if (q2bSAO)
			score += 0;
		else if (q2bOC)
			score += 3;
		else if (q2bUC)
			score += 1;
		   
		//scoreID.value = score;
		scoreID.innerHTML = score;

		if (score == 0) {
			risk07ID.innerHTML = '0.0% (0.0% - 2.1%)';
			risk90ID.innerHTML = '1.1% (0.0% - 3.3%)';
		} else if (score == 1) {
			risk07ID.innerHTML = '0.2% (0.0% - 0.6%)';
			risk90ID.innerHTML = '3.4% (1.5% - 5.3%)';
		} else if (score == 2) {
			risk07ID.innerHTML = '1.5% (0.5% - 2.5%)';
			risk90ID.innerHTML = '5.9% (3.6% - 8.1%)';
		} else if (score == 3) {
			risk07ID.innerHTML = '4.3% (0.6% - 8.0%)';
			risk90ID.innerHTML = '19.1% (11.1% - 27.2%)';
		} else if (score == 4) {
			risk07ID.innerHTML = '27.1% (0.0% - 59.4%)';
			risk90ID.innerHTML = '45.3% (6.0% - 84.6%)';
		} else {
			risk07ID.innerHTML = 'ERROR!';
			risk90ID.innerHTML = 'ERROR!';
		}
	}
}

