function open_window(url) {
mywin = window.open(url,"trisswin",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=535,height=320');
}

function ValidateInput(checkVal){
        len = checkVal.length;
        for (i = 0; i<len; i++) {
        if (!((checkVal.substring(i, i+1)=="0") ||
                (checkVal.substring(i,i+1)=="1") ||
                (checkVal.substring(i,i+1)=="2") ||
                (checkVal.substring(i,i+1)=="3") ||
                (checkVal.substring(i,i+1)=="4") ||
                (checkVal.substring(i,i+1)=="5") ||
                (checkVal.substring(i,i+1)=="6") ||
                (checkVal.substring(i,i+1)=="7") ||
                (checkVal.substring(i,i+1)=="8") ||
                (checkVal.substring(i,i+1)=="9"))) {
                	errorMsg = "You have entered an invalid number. Please enter a new amount and try again.";
                	return true;
                }
        }
        if (!((checkVal >= 0) & (checkVal < 300))) {
                errorMsg = "Numbers way out of range";
                return true;
        } else {
        return false;
        }
}

function isGreater(a,b) {
	if (Math.abs(a) < Math.abs(b)) return -1;
	else
	if (Math.abs(b) == Math.abs(a)) return 0;
	return 1;
}


function doISSStuff(form)  {

	var badnum = 0;
	var iss = 0;
	var issA = 0;
	var issB = 0;
	var issC = 0;

	ais = new Array(6);
	sortais = new Array(6);
	ais[0] = document.trisscalc.head.value;
	ais[1] = document.trisscalc.face.value;
	ais[2] = document.trisscalc.ches.value;
	ais[3] = document.trisscalc.abdo.value;
	ais[4] = document.trisscalc.limb.value;
	ais[5] = document.trisscalc.skin.value;

	for (j=0; j<6; j++) {
	    if (ValidateInput(ais[j])) {
		    window.alert(errorMsg);
			badnum = -1;
	    }
		if ((ais[j]<0) || (ais[j]>6)) {
			alert('AIS out of range (0 - 6)');
			badnum = -1;
		}
	}

	aissort = ais.sort(isGreater);


	issA = aissort[3]*aissort[3];
	issB = aissort[4]*aissort[4];
	issC = aissort[5]*aissort[5];

	if (badnum == 0) {
		if (issC == 36)
			iss = 75;
		else
			iss = issA + issB + issC;
	}
	else
		iss = 0;

    document.trisscalc.issscore.value = iss;
}

function doRTSStuff(form)  {


var rts = 0;
var rr = document.trisscalc.resprate.value;
var sbp = document.trisscalc.sysbp.value;
var gcs = document.trisscalc.coma.value;
var rri = 0;
var sbpi = 0;
var gcsi = 0;


        if (ValidateInput(rr)) {
            window.alert(errorMsg);
                distance = 0;
                }

        if (ValidateInput(sbp)) {
            window.alert(errorMsg);
                distance = 0;
                }

        if (ValidateInput(gcs)) {
            window.alert(errorMsg);
                distance = 0;
                }

		if (gcs == 3) gcsi = 0;
		else if (gcs >= 4 && gcs <= 5) gcsi = 1;
		else if (gcs >= 6 && gcs <= 8) gcsi = 2;
		else if (gcs >= 9 && gcs <= 12) gcsi = 3;
		else if (gcs >= 13 && gcs <= 15) gcsi = 4;
		else alert('Glasgow Coma Score has values 3-15');

		if (rr >= 10 && rr <= 29) rri = 4;
		else if (rr >= 30 && rr <=80) rri = 3;
		else if (rr >= 6 && rr <= 9) rri = 2;
		else if (rr >= 1 && rr <= 5) rri = 1;
		else if (rr == 0) rri = 0;
		else alert('Respiratory rate invalid');

		if (sbp >= 90 && sbp <= 300) sbpi = 4;
		else if (sbp >= 76 && sbp <= 89) sbpi = 3;
		else if (sbp >= 50 && sbp <= 75) sbpi = 2;
		else if (sbp >= 1 && sbp <= 49) sbpi = 1;
		else if (sbp == 0) sbpi = 0;
		else alert('Systolic Blood Pressure Invalid');

		rts = sbpi*0.7326 + rri*0.2908 + gcsi*0.9368;


        document.trisscalc.rtsscore.value = (Math.round(1000 * rts)/1000);
}

function doTRISSStuff(form)  {

	var trissblunt = 0;
	var trisssharp = 0;

	var trissblunthold = 0;
	var trisssharphold = 0;

	var age = document.trisscalc.age.value;
	var agei = 0;

	var rts = document.trisscalc.rtsscore.value;
	var iss = document.trisscalc.issscore.value;


	var sharpb0 = -2.5355
	var sharpb1 = 0.9934
	var sharpb2 = -0.0651
	var sharpb3 = -1.1360

	var bluntb0 = -0.4499
	var bluntb1 = 0.8085
	var bluntb2 = -0.0835
	var bluntb3 = -1.7430

	if (ValidateInput(age)) {
		window.alert(errorMsg);
		distance = 0;
	}

	if (age >= 0 && age <= 54) agei = 0;
	else
	if (age >= 55 && age <= 120) agei = 1;
	else
	alert("Enter Patient's Age");

	if (age < 15) {
		trissblunthold = 0 - (bluntb0 + bluntb1*rts + bluntb2*iss + bluntb3*agei);
		trisssharphold = 0 - (bluntb0 + bluntb1*rts + bluntb2*iss + bluntb3*agei);
	}
	else {
		trissblunthold = 0 - (bluntb0 + bluntb1*rts + bluntb2*iss + bluntb3*agei);
		trisssharphold = 0 - (sharpb0 + sharpb1*rts + sharpb2*iss + sharpb3*agei);
	}

	trissblunt = 1/(1 + Math.exp(trissblunthold));
	trisssharp = 1/(1 + Math.exp(trisssharphold));

	if (iss == "") {
		alert('No ISS score');
		trissblunt = 0;
		trisssharp = 0;
	}
	if (rts == "") {
		alert('No RTS score');
		trissblunt = 0;
		trisssharp = 0;
	}
	if (age == "") {
		alert("Enter Patient's Age");
		trissblunt = 0;
		trisssharp = 0;
	}

    document.trisscalc.trissblunt.value = (Math.round(1000 * trissblunt)/10)+"%";
    document.trisscalc.trisssharp.value = (Math.round(1000 * trisssharp)/10)+"%";


}

function doClear() {

	document.trisscalc.head.value = "";
	document.trisscalc.face.value = "";
	document.trisscalc.ches.value = "";
	document.trisscalc.abdo.value = "";
	document.trisscalc.limb.value = "";
	document.trisscalc.skin.value = "";
	document.trisscalc.issscore.value = "";

	document.trisscalc.sysbp.value = "";
	document.trisscalc.resprate.value = "";
	document.trisscalc.coma.value = "";
	document.trisscalc.rtsscore.value = "";

	document.trisscalc.age.value = "";
	document.trisscalc.trissblunt.value = "";
	document.trisscalc.trisssharp.value = "";
}
