<!--Begin

//Copyright © 2003 Global Aircraft


function numberSort(n1,n2) {
n1 = eval(n1*1);
n2 = eval(n2*1);
if (n1<n2) retVal=-1;
else if (n1>n2) retVal=1;
else retVal=0;
return retVal;}


function getPFromZ(Zo) {
if (Zo > -0.0000000001 && Zo < 0.0000000001) return 0.5;
var numBoxes = 1000.0;
var pScore = 0.0;
var boxnum = 0.0;
var zDivided = eval(Zo/numBoxes);
var temp1,temp2,l2diff,l2new,l1new;
for (boxnum=0.0; boxnum < numBoxes; boxnum += 1.0) {
temp1 = eval((boxnum+0.211322) * zDivided);
temp2 = eval((boxnum+0.788678) * zDivided);
l1 = eval((1/Math.sqrt(2*Math.PI)) * Math.exp( -temp1 * temp1 / 2.0));
l2 = eval((1/Math.sqrt(2*Math.PI)) * Math.exp( -temp2 * temp2 / 2.0));
pScore += eval((l1 + l2) * zDivided / 2.0);}
pScore += 0.5;
return pScore;}


function getZFromP(pInput) {
if (pInput > 0.4999999999 && pInput < 0.5000000001) return 0.0;
var zGuess = 0.0;
for(var lupus=0.0;lupus < 30;lupus += 1.0) {zGuess = eval(zGuess - (getPFromZ(zGuess) - pInput)/ ((1/Math.sqrt(2.0*Math.PI)) * Math.exp(-Math.pow(zGuess,2)/2.0 )));}
return zGuess;}


function getMean(newArray) {
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var mean = eval(sum / newArray.length);
return mean;}

function getStDev(newArray) {
var mean = getMean(newArray);
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - mean), 2)   ));}
var sSqr = eval(sum / (newArray.length - 1));
var sDev = eval(Math.sqrt(sSqr));
return sDev;}

function getZScore(newArray) {
var mean = getMean(newArray);
var sDev = getStDev(newArray);
var scoreArray = new Array();
for (var i=0; i<newArray.length; i++) {
var Zo = eval((newArray[i] - mean)/sDev);
scoreArray[i] = Zo;}
return scoreArray;}

function binScores(newArray) {
var binArray = new Array(6);
binArray[0]=0;binArray[1]=0;binArray[2]=0;
binArray[3]=0;binArray[4]=0;binArray[5]=0;
var mean = getMean(newArray);
var sDev = getStDev(newArray);
for (var i=0; i<newArray.length; i++) {
var whichBin = GetBinNumber(newArray[i],mean,sDev);
binArray[whichBin]++;}
return binArray;}

function GetBinNumber(arrayBit,mean,sDev) {
var thdDevB = eval(mean - (3*sDev));
var secDevB = eval(mean - (2*sDev));
var firstDevB = eval(mean - sDev);
var middle = eval(mean*1);
var firstDevT = eval(mean + sDev);
var secDevT = eval(mean + (2*sDev));
if (arrayBit < secDevB && arrayBit > thdDevB) return 0;
if (arrayBit < firstDevB) return 1;
if (arrayBit < middle) return 2;
if (arrayBit < firstDevT) return 3;
if (arrayBit < secDevT) return 4;
return 5;}

function getChiSquared(newArray) {
var binArray = new Array();
var binArray = binScores(newArray);
var sum = 0.0;
for (var i=0; i<binArray.length; i++) {
if (i == 0) {var myE = eval(0.025*newArray.length);}
else if (i == 1 || i == 4) {var myE = eval(0.135*newArray.length);}
else if (i == 2 || i == 3) {var myE = eval(0.34*newArray.length);}
else if (i == 5) {var myE = eval(0.0235*newArray.length);}else {}
sum = eval(sum + (Math.abs((binArray[i] - myE) * 1.5) / myE));}
var ProbAb = getProbFromChi(sum);
return ProbAb;}

function getProbFromChi(chisqu) {
if (chisqu <= 0.00) return 1.0000;if (chisqu <= 0.15) return 0.9996;if (chisqu <= 0.25) return 0.9985;
if (chisqu <= 0.50) return 0.9921;if (chisqu <= 0.75) return 0.9801;if (chisqu <= 1.00) return 0.9626;
if (chisqu <= 1.25) return 0.9400;if (chisqu <= 1.50) return 0.9131;if (chisqu <= 1.75) return 0.8825;
if (chisqu <= 2.00) return 0.8491;if (chisqu <= 2.25) return 0.8136;if (chisqu <= 2.50) return 0.7765;
if (chisqu <= 2.75) return 0.7385;if (chisqu <= 3.00) return 0.7000;if (chisqu <= 3.25) return 0.6615;
if (chisqu <= 3.50) return 0.6234;if (chisqu <= 3.75) return 0.5859;if (chisqu <= 4.00) return 0.5494;
if (chisqu <= 4.25) return 0.5140;if (chisqu <= 4.50) return 0.4799;if (chisqu <= 4.75) return 0.4471;
if (chisqu <= 5.00) return 0.4159;if (chisqu <= 5.25) return 0.3861;if (chisqu <= 5.50) return 0.3579;
if (chisqu <= 5.75) return 0.3313;if (chisqu <= 6.00) return 0.3062;if (chisqu <= 6.25) return 0.2826;
if (chisqu <= 6.50) return 0.2606;if (chisqu <= 6.75) return 0.2399;if (chisqu <= 7.00) return 0.2206;
if (chisqu <= 7.25) return 0.2027;if (chisqu <= 7.50) return 0.1860;if (chisqu <= 7.75) return 0.1706;
if (chisqu <= 8.00) return 0.1562;if (chisqu <= 8.25) return 0.1430;if (chisqu <= 8.50) return 0.1307;
if (chisqu <= 8.75) return 0.1195;if (chisqu <= 9.00) return 0.1091;if (chisqu <= 9.25) return 0.0995;
if (chisqu <= 9.50) return 0.0907;if (chisqu <= 9.75) return 0.0826;if (chisqu <= 10.00) return 0.0752;
if (chisqu <= 10.25) return 0.0685;if (chisqu <= 10.50) return 0.0622;if (chisqu <= 10.75) return 0.0566;
if (chisqu <= 11.00) return 0.0514;if (chisqu <= 11.25) return 0.0466;if (chisqu <= 11.50) return 0.0423;
if (chisqu <= 11.75) return 0.0384;if (chisqu <= 12.00) return 0.0348;if (chisqu <= 12.25) return 0.0315;
if (chisqu <= 12.50) return 0.0285;if (chisqu <= 12.75) return 0.0258;if (chisqu <= 13.00) return 0.0234;
if (chisqu <= 13.25) return 0.0211;if (chisqu <= 13.50) return 0.0191;if (chisqu <= 13.75) return 0.0173;
if (chisqu <= 14.00) return 0.0156;if (chisqu <= 14.25) return 0.0141;if (chisqu <= 14.50) return 0.0127;
if (chisqu <= 14.75) return 0.0115;if (chisqu <= 15.00) return 0.0104;if (chisqu <= 15.25) return 0.0093;
if (chisqu <= 15.50) return 0.0084;if (chisqu <= 15.75) return 0.0076;if (chisqu <= 16.00) return 0.0068;
if (chisqu <= 16.25) return 0.0062;if (chisqu <= 16.50) return 0.0056;if (chisqu <= 16.75) return 0.0050;
if (chisqu <= 17.00) return 0.0045;if (chisqu <= 17.25) return 0.0040;if (chisqu <= 17.50) return 0.0036;
if (chisqu <= 17.75) return 0.0033;if (chisqu <= 18.00) return 0.0029;if (chisqu <= 18.50) return 0.0024;
if (chisqu <= 19.00) return 0.0019;if (chisqu <= 19.50) return 0.0016;if (chisqu <= 20.00) return 0.0012;
if (chisqu <= 20.50) return 0.0010;if (chisqu <= 21.00) return 0.0008;if (chisqu <= 21.50) return 0.0007;
if (chisqu <= 22.00) return 0.0005;if (chisqu <= 22.50) return 0.0004;if (chisqu <= 23.00) return 0.0003;
if (chisqu <= 23.50) return 0.0003;if (chisqu <= 24.00) return 0.0002;if (chisqu <= 24.50) return 0.0002;
if (chisqu <= 25.00) return 0.0001;if (chisqu <= 25.50) return 0.0001;if (chisqu <= 26.00) return 0.0001;
if (chisqu <= 26.50) return 0.0001;if (chisqu <= 27.00) return 0.0001;if (chisqu <= 27.50) return 0.0000;
return 0.0;}


var listStorage= new Array();
function shoMeState(stop) {
if (document.Calulator.altFour.value == 'exit' || document.Calulator.altSix.value == 'exit') {
if (stop == "yes") {document.Calulator.screen.value = "Choose a function below for L1, L2, L3, - L6.";}
else {
var which = window.prompt("Please choose a list to enter data into. (ie - L1, L2, L3, - L6)","");
if (which != null && which != '') {

var myArray = new Array();
var newArray = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;
document.Calulator.screen.value = "";
var a = window.prompt("Enter a variable for "+which+". Leave empty and press OK to close table.","");

if (a != null && a != '' && (!isNaN(a))) {
myArray[cnt] = a;cnt++;
document.Calulator.screen.value = document.Calulator.screen.value+""+a;

var a = window.prompt("Enter a variable. Press cancel to close table.","");
while (a != null && a != '' && (!isNaN(a))) {
myArray[cnt] = a;cnt++;
document.Calulator.screen.value = document.Calulator.screen.value+","+a;
var a = window.prompt("Enter another variable for "+which+". Press cancel to close table.","");}
document.Calulator.screen.value = document.Calulator.screen.value+"";

listStorage[which]=document.Calulator.screen.value+"";
document.Calulator.screen.value = ""+which+"  ("+document.Calulator.screen.value+")\n";

}}}}}



function showTrees() {
var which = window.prompt("Please enter a list to display. (ie - L1, L2, L3, - L6)","");
if (which != null && which != '') {
if (which != "L1" && which != "L2" && which != "L3" && which != "L4" && which != "L5" && which != "L6") {document.Calulator.screen.value = "Choose a function below for L1, L2, L3, - L6";}
else {
var myArray = new Array();
myArray = reqList(which,1);
var nude = myArray.join("\n");
document.Calulator.screen.value = "List: "+which+" ("+myArray.length+")\n\n"+nude+"\n\n";}}}



function percentiles(whichListTB,sDevTB,pInputTB) {

if (whichListTB == "" || whichListTB == undefined) {if (!(confirm("The Percentiles (%) function is used to determine a percentile value based on a mean, standard deviation, and p-value. Continue?"))) {return;}}

if (whichListTB == "" || whichListTB == undefined) {var whichList = window.prompt("Please enter either a list or a mean value. (eg - L1, L2, L3 or 2.8)","");}else {var whichList = whichListTB;}
if (whichList != null && whichList != '') {
if (!isNaN(whichList)) {if (sDevTB == "" || sDevTB == undefined) {var sDev = window.prompt("Please enter a standard deviation value.","");}else {var sDev = sDevTB;}}

//which is NULL at this moment 
var myArray = new Array();
var newArray = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;

if (whichList.indexOf("L") >= 0) {myArray = reqList(whichList,1);document.Calulator.screen.value = ""+whichList+": ("+myArray.length+")\n\n";}
else {mean = whichList;document.Calulator.screen.value = "  Mean: "+mean+"\n  sDev: "+sDev+"\n\n";}

if (whichList == "L1" || whichList == "L2" || whichList == "L3" || whichList == "L4" || whichList == "L5" || whichList == "L6") {
newArray = myArray.sort(numberSort);
/// MEAN VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var mean = eval(sum / newArray.length);
mean = eval(Math.round(mean*1000)/1000);
/// VARI VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - mean), 2)   ));}
var sSqr = eval(sum / (newArray.length - 1));
sSqr = eval(Math.round(sSqr*1000)/1000);
/// ST DEV VALUE
var sDev = eval(Math.sqrt(sSqr));
sDev = eval(Math.round(sDev*1000)/1000);}
if (pInputTB == "" || pInputTB == undefined) {var pInput = window.prompt("Enter a p-value value. (ie. 0.25 - not 25%)","");}else {var pInput = pInputTB;}
if (pInput != null && pInput != '') {
var zGuess = getZFromP(pInput);
zGuess = Math.round((zGuess*10000000))/10000000;
sDev = eval(sDev*1);
mean = eval(mean*1);
var Xx = eval((zGuess * sDev) + mean);
Xx = Math.round((Xx*10000000))/10000000;
if (whichListTB == "" || whichListTB == undefined) {document.Calulator.screen.value += "   p-value: "+pInput+"\n   z-score: "+zGuess+"\npercentile: "+Xx+"\n\n";}else {return Xx;}}}}


function pToZSco(sco) {
if (sco == '' || sco == null) {var pInput = window.prompt("Enter a p-value value. (ie. 0.25 - not 25%)","");}else {pInput = sco;}
if (pInput != null && pInput != '') {
var zGuess = getZFromP(pInput);
zGuess = Math.round((zGuess*10000000))/10000000;
if (sco == '' || sco == null) {document.Calulator.screen.value = "p-value: "+pInput+"\nz-score: "+zGuess+"\n\n";}else {return zGuess;}}}


function zToPVal(sco) {
if (sco == '' || sco == null) {var zInput = window.prompt("Enter a z-score value.","");}else {zInput = sco;}
if (zInput != null && zInput != '') {
var pGuess = getPFromZ(zInput);
pGuess = Math.round((pGuess*10000000))/10000000;
if (sco == '' || sco == null) {document.Calulator.screen.value = "z-score: "+zInput+"\np-value: "+pGuess+"\n\n";}else {return pGuess;}}}


function reqList(which,nosrt) {
if (which.match(/L[0-9]+/)) {myArray = listStorage[which].split(",");}
else {alert("ERROR: Invalid list selected.");return;}
if (myArray == "" || myArray == null) {alert("List "+which+" is empty.");return;}
if (nosrt == '' || nosrt == null) {myArray = myArray.sort(numberSort);}
return myArray;}


function oneVarExec() {

if (!(confirm("The 1varLst function is used to compute various data based on a list (eg. mean, stdev, Q1, Q3, min, max, etc.). Continue?"))) {return;}

var which = window.prompt("Please choose a list to create a variable record for. (ie - L1, L2, L3, - L6)","");
if (which != null && which != '') {

//which is NULL at this moment 
var myArray = new Array();
var newArray = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;

myArray = reqList(which,1);
document.Calulator.screen.value = ""+which+": ("+myArray.length+")\n\n";
newArray = myArray.sort(numberSort);

/// SUM VALUE
var sigmaX = 0;
for (var i=0; i<newArray.length; i++) {sigmaX = eval(sigmaX + eval(newArray[i]*1));}
/// MEAN VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var mean = eval(sum / newArray.length);
/// VARI VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - mean), 2)   ));}
var sSqr = eval(sum / (newArray.length - 1));
var sSqr2 = eval(sum / (newArray.length));
/// ST DEV VALUE
var sDev = eval(Math.sqrt(sSqr));
/// ST DEV POP VALUE
var sDevPop = eval(Math.sqrt(sSqr2));
/// MIN VALUE
var min = eval(newArray[0]*1);
/// MAX VALUE
var max = eval(newArray[newArray.length - 1]*1);
/// MED VALUE
var medcnt = eval((newArray.length + 1) / 2);
medcnt = ""+medcnt+"";
var num_pieces = medcnt.split(".");
if (num_pieces.length > 1) {
var oddEven = "even";
medcnt = medcnt*1;
medcnt = Math.floor(medcnt);
var M = eval((((newArray[medcnt - 1]*1) + (newArray[medcnt]*1)) / 2));}
else {var oddEven = "odd";var M = eval(newArray[medcnt - 1]*1);}
/// Q VALUES
if (oddEven == "odd") {for (var i=0; i<(medcnt-1); i++) {quartArrayO[i] = newArray[i];}}
else {for (var i=0; i<medcnt; i++) {quartArrayO[i] = newArray[i];}}
b=0;for (var i=medcnt; i<newArray.length; i++) {quartArrayT[b] = newArray[i];b++;}
var medcnt = eval((quartArrayO.length + 1) / 2);
medcnt = ""+medcnt+"";
var num_pieces = medcnt.split(".");
if (num_pieces.length > 1) {
medcnt = medcnt*1;
medcnt = Math.floor(medcnt);
var Q1 = eval((((quartArrayO[medcnt - 1]*1) + (quartArrayO[medcnt]*1)) / 2));}
else {var Q1 = eval(quartArrayO[medcnt - 1]*1);}
var medcnt = eval((quartArrayT.length + 1) / 2);
medcnt = ""+medcnt+"";
var num_pieces = medcnt.split(".");
if (num_pieces.length > 1) {
medcnt = medcnt*1;
medcnt = Math.floor(medcnt);
var Q3 = eval((((quartArrayT[medcnt - 1]*1) + (quartArrayT[medcnt]*1)) / 2));}
else {var Q3 = eval(quartArrayT[medcnt - 1]*1);}
/// IQR VALUE
var IQR = eval(Q3 - Q1);
var minPoss = eval(Q1 - (1.5*IQR));
var maxPoss = eval(Q3 + (1.5*IQR));
var outliers = "";
var e = 0;
for (var i=0; i<newArray.length; i++) {
if ((newArray[i]*1) > (maxPoss*1)) {outliers += " "+newArray[i]+"";}
if ((newArray[i]*1) < (minPoss*1)) {outliers += " "+newArray[i]+"";}}
if (outliers == "") {outliers = "None";}
///

mean = eval(Math.round(mean*100000000000)/100000000000);
sSqr = eval(Math.round(sSqr*100000000000)/100000000000);
sDev = eval(Math.round(sDev*100000000000)/100000000000);
sDevPop = eval(Math.round(sDevPop*100000000000)/100000000000);
//Q1 = eval(Math.round(Q1*100000000)/100000000);
//M = eval(Math.round(M*100000000)/100000000);
//Q3 = eval(Math.round(Q3*100000000)/100000000);

document.Calulator.screen.value += "   n: "+newArray.length+"\nsumX: "+sigmaX+"\n\nMean: "+mean+"\nSvar: "+sSqr+"\n  Sx: "+sDev+"\nSigX: "+sDevPop+"\n\nMin: "+min+"\n Q1: "+Q1+"\nMed: "+M+"\n Q3: "+Q3+"\nMax: "+max+"\n\n  IRQ: "+IQR+"\nMxVal: "+maxPoss+"\nMnVal: "+minPoss+"\n\nPossible outliers: "+outliers+"\n\n\n";
}}


function twoVarExec(list1,list2) {

if (list1 == "" || list1 == undefined) {if (!(confirm("The 2varLst function is used to compute the correlation of two lists of equal size. Continue?"))) {return;}}

if (list1 == "" || list1 == undefined) {var which = window.prompt("Please choose a list. (ie - L1, L2, L3, - L6)","");}else {var which=list1;}
if (which != null && which != '') {
if (list2 == "" || list2 == undefined) {var whichEls = window.prompt("Please choose another list equal in length to the first list. (ie - L1, L2, L3, - L6)","");}else {var whichEls=list2;}
if (whichEls != null && whichEls != '') {

//which is NULL at this moment 
var myArray = new Array();
var myArray2 = new Array();
var cnt = 0;

myArray = reqList(which,1);
if (list1 == "" || list1 == undefined) {document.Calulator.screen.value = ""+which+": ("+myArray.length+")";}

myArray2 = reqList(whichEls,1);
if (list1 == "" || list1 == undefined) {document.Calulator.screen.value += " -- "+whichEls+": ("+myArray2.length+")\n\n";}

if (myArray.length != myArray2.length) {alert("ERROR: Your lists are not of equal size.");}
else {

/// MEAN VALUE
var sum = 0;
for (var i=0; i<myArray.length; i++) {sum = eval(sum + eval(myArray[i]*1));}
var meanX = eval(sum / myArray.length);
/// VARI VALUE
var sum = 0;
for (var i=0; i<myArray.length; i++) {sum = eval(sum + eval(  Math.pow(((myArray[i]*1) - meanX),2)));}
var sSqr = eval(sum / (myArray.length - 1));
/// ST DEV VALUE
var Sx = eval(Math.sqrt(sSqr));
///

/// MEAN2 VALUE
var sum = 0;
for (var i=0; i<myArray2.length; i++) {sum = eval(sum + eval(myArray2[i]*1));}
var meanY = eval(sum / myArray2.length);
/// VARI2 VALUE
var sum = 0;
for (var i=0; i<myArray2.length; i++) {sum = eval(sum + eval(  Math.pow(((myArray2[i]*1) - meanY),2)));}
var sSqr2 = eval(sum / (myArray2.length - 1));
/// ST DEV2 VALUE
var Sy = eval(Math.sqrt(sSqr2));
///

/// CORRELATION VALUE
var sum = 0;
for (var i=0; i<myArray.length; i++) {sum = eval(sum + eval((((myArray[i]*1) - meanX)/Sx)*(((myArray2[i]*1) - meanY)/Sy)));}
var rVal = eval(sum / (myArray.length - 1));
var rSqr = Math.pow(rVal,2);
///

rVal = eval(Math.round(rVal*100000000000)/100000000000);
rSqr = eval(Math.round(rSqr*100000000000)/100000000000);

if (list1 == "" || list1 == undefined) {document.Calulator.screen.value += "rVal: "+rVal+"\nrSqr: "+rSqr+"\n\n\n";}
else {return rVal;}

}}}}



function PValueZscore() {

if (!(confirm("The prob function is used to compute the probability of an x-value (or a range) on a list as well as giving the p-value, z-score, and more. Continue?"))) {return;}

var whichList = window.prompt("Please enter either a list or a mean value. (eg - L1, L2, L3, - L6 or 2.8)","");
if (whichList != null && whichList != '') {
if (!isNaN(whichList)) {var sDev = window.prompt("Please enter a standard deviation value.","");}

//which is NULL at this moment 
var myArray = new Array();
var newArray = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;

if (whichList.indexOf("L") >= 0) {myArray = reqList(whichList,1);document.Calulator.screen.value = ""+whichList+": ("+myArray.length+")\n\n";}
else {mean = whichList;document.Calulator.screen.value = "  Mean: "+mean+"\n  sDev: "+sDev+"\n";}

if (whichList == "L1" || whichList == "L2" || whichList == "L3" || whichList == "L4" || whichList == "L5" || whichList == "L6") {
newArray = myArray.sort(numberSort);
/// MEAN VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var mean = eval(sum / newArray.length);
//mean = eval(Math.round(mean*1000)/1000);
/// VARI VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - mean), 2)   ));}
var sSqr = eval(sum / (newArray.length - 1));
//sSqr = eval(Math.round(sSqr*1000)/1000);
/// ST DEV VALUE
var sDev = eval(Math.sqrt(sSqr));
//sDev = eval(Math.round(sDev*1000)/1000);
}

/// Z-SCORE AND P-VALUE
var x = window.prompt("Enter an x-value to determine the z-score and p-value for this data. For ranges, enter '# to #' with a space before and after 'to'.","");
if (x != null && x != '') {

if (x.indexOf(' to ') != -1) {
var bothNums = new Array();
bothNums = x.split(" to ");
var numO = eval(bothNums[0]*1);
var numT = eval(bothNums[1]*1);

var Zo = eval((numO - mean)/sDev);
Zo = Math.round((Zo*100))/100;
var pScore = getPFromZ(Zo);
pScore = Math.round((pScore*10000000))/10000000;

var firstPscore = pScore;
var firstZscore = Zo;

var Zo = eval((numT - mean)/sDev);
Zo = Math.round((Zo*100))/100;
var pScore = getPFromZ(Zo);
pScore = Math.round((pScore*10000000))/10000000;

var secondPscore = pScore;
var secondZscore = Zo;

var rangePval = eval(secondPscore - firstPscore);
rangePvalPcent = eval(Math.round(rangePval*10000)/100)+"%";

document.Calulator.screen.value += "\n   xRange: "+x+"\n   zScore: ("+firstZscore+","+secondZscore+")\npValueRge: "+rangePval+"\nrangeProb: "+rangePvalPcent+"\n\n";}
else {
if (!isNaN(x)) {
var Zo = eval((x - mean)/sDev);
Zo = Math.round((Zo*100))/100;
var pScore = getPFromZ(Zo);
pScore = Math.round((pScore*10000000))/10000000;
pPercent = eval(Math.round(pScore*10000)/100)+"%";
var pOver = eval(1.0 - pScore);
pOver = Math.round((pOver*10000000))/10000000;
var pPover = eval(Math.round(pOver*10000)/100)+"%";
document.Calulator.screen.value += "xValue: "+x+"\n\n   zScore: "+Zo+"\n   pValue: "+pScore+"\n\nprobUnder: "+pPercent+"\npValueInv: "+pOver+"\n probOver: "+pPover+"\n\n";
}}}}}



function regLine(input,second) {
var input;var second;
//which is NULL at this moment 
var myArray = new Array();
var myArray2 = new Array();
var newArray = new Array();
var newArray2 = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;


if (input == "" || input == undefined || input == null) {

if (!(confirm("The linReg function is used to compute the linear regression (y=a+bx) of two data sets. Continue?"))) {return;}

var whichList = window.prompt("Please enter either a list or a mean value for Y. (eg - L1, L2, L3, - L6 or 2.8)","");
if (whichList != null && whichList != '') {
if (!isNaN(whichList)) {
var meanX = window.prompt("Please enter a mean value for X.","");
var sDevY = window.prompt("Please enter a standard deviation value for Y.","");
var sDevX = window.prompt("Please enter a standard deviation value for X.","");
if (!isNaN(sDevY)) {var rVal = window.prompt("Please enter a correlation (r) value.","");
var rSqr = Math.pow(rVal,2);

meanY = whichList;document.Calulator.screen.value = "MeanY: "+meanY+"\nMeanX: "+meanX+"\nsDevY: "+sDevY+"\nsDevX: "+sDevX+"\n rVal: "+rVal+"\n rSqr: "+rSqr+"\n";}}
else {

var whichEls = window.prompt("Please choose another list equal in length to the first list for X. (ie - L1, L2, L3, - L6)","");
if (whichEls != null && whichEls != '') {

myArray = reqList(whichList,1);
document.Calulator.screen.value = ""+whichList+": ("+myArray.length+")\n\n";

myArray2 = reqList(whichEls,1);
document.Calulator.screen.value += " -- "+whichEls+": ("+myArray2.length+")\n\n";

}}}}
else {
whichList=input;
whichEls=second;
myArray = reqList(whichList,1);
myArray2 = reqList(whichEls,1);
}


if (whichList == "L1" || whichList == "L2" || whichList == "L3" || whichList == "L4" || whichList == "L5" || whichList == "L6") {
newArray = myArray;
newArray2 = myArray2;

/// MEANy VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var meanY = eval(sum / newArray.length);
/// MEANx VALUE
var sum = 0;
for (var i=0; i<newArray2.length; i++) {sum = eval(sum + eval(newArray2[i]*1));}
var meanX = eval(sum / newArray2.length);
/// VARIy VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - meanY), 2)   ));}
var sSqrY = eval(sum / (newArray.length - 1));
/// ST DEV VALUE
var sDevY = eval(Math.sqrt(sSqrY));
/// VARIx VALUE
var sum = 0;
for (var i=0; i<newArray2.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray2[i]*1) - meanX), 2)   ));}
var sSqrX = eval(sum / (newArray2.length - 1));
/// ST DEV VALUE
var sDevX = eval(Math.sqrt(sSqrX));
/// CORRELATION VALUE
var sum = 0;
for (var i=0; i<newArray2.length; i++) {sum = eval(sum + eval((((newArray2[i]*1) - meanX)/sDevX)*(((newArray[i]*1) - meanY)/sDevY)));}
var rVal = eval(sum / (newArray2.length - 1));
var rSqr = Math.pow(rVal,2);

rVal = eval(Math.round(rVal*100000000000)/100000000000);
rSqr = eval(Math.round(rSqr*100000000000)/100000000000);
if (input == "" || input == undefined || input == null) {document.Calulator.screen.value = "MeanY: "+meanY+"\nMeanX: "+meanX+"\nsDevY: "+sDevY+"\nsDevX: "+sDevX+"\n rVal: "+rVal+"\n rSqr: "+rSqr+"\n";}
}


/// Y-INTERCEPT (B)
var myB = eval((rVal)*(sDevY/sDevX));
myB2 = eval(Math.round(myB*1000)/1000);
/// SLOPE (A)
var myA = eval(meanY - (myB*meanX));
myA2 = eval(Math.round(myA*1000)/1000);

myA = eval(Math.round(myA*100000000000)/100000000000);
myB = eval(Math.round(myB*100000000000)/100000000000);

if (input == "" || input == undefined || input == null) {document.Calulator.screen.value += "\ny=a+bx\na: "+myA+"\nb: "+myB+"\n   y="+myA2+"+"+myB2+"*x\n\n\n";}
else {return myA2+"+"+myB2+"*x";}
}





function genResids() {

if (!(confirm("The resids function is used to compute residual values of two equal lists. Continue?"))) {return;}

//which is NULL at this moment 
var myArray = new Array();
var myArray2 = new Array();
var newArray = new Array();
var newArray2 = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;

var whichList = window.prompt("Please enter a list for Y. (eg - L1, L2, L3, - L6)","");
if (whichList != null && whichList != '') {

var whichEls = window.prompt("Please choose another list equal in length to the first list for X. (ie - L1, L2, L3, - L6)","");
if (whichEls != null && whichEls != '') {

myArray = reqList(whichList,1);
document.Calulator.screen.value = ""+whichList+": ("+myArray.length+")\n\n";

myArray2 = reqList(whichEls,1);
document.Calulator.screen.value += " -- "+whichEls+": ("+myArray2.length+")\n\n";

var putInto = window.prompt("Please choose a list to put your residuals in. (ie - L1, L2, L3, - L6)","");

}}

var regressionLn = regLine(whichList,whichEls);

var regList = new Array();
for (var i=0;i<myArray.length;i++){
var newEqn = regressionLn.replace(/x/,myArray2[i]);
var resid = (myArray[i] - eval(newEqn));
regList.push(resid);}

listStorage[putInto]=regList;

document.Calulator.screen.value += "\ny=a+bx\n\n   y="+regressionLn+"\n\n"+putInto+": ("+regList+")\n\n\n";}





function testNormlity() {

if (!(confirm("The tNorm function is used to test the normality of a list (key\: genProb 100%=perfectly normal, genDev 0=perfectly normal). Continue?"))) {return;}

var whichList = window.prompt("Please enter a list to test the normality of. (ie - L1, L2, L3, - L6)","");
if (whichList != null && whichList != '') {

//which is NULL at this moment 
var myArray = new Array();
var countMode = new Array();
var countModeS = new Array();
var countModeR = new Array();
var newArray = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;

myArray = reqList(whichList,1);
document.Calulator.screen.value = ""+whichList+": ("+myArray.length+")\n\n";

newArray = myArray.sort(numberSort);

if (newArray.length <= 60) {alert("More than 60 data points are suggested to make an accurate \nestimation on data normality. List "+whichList+" has only "+newArray.length+" data points.");}
var probLity = getChiSquared(newArray);
probLity = eval(Math.round(probLity*10000)/100);

newArray = myArray.sort(numberSort);

/// MIN VALUE
var min = eval(newArray[0]*1);
/// MAX VALUE
var max = eval(newArray[newArray.length - 1]*1);
/// MED VALUE
var medcnt = eval((newArray.length + 1) / 2);
medcnt = ""+medcnt+"";
var num_pieces = medcnt.split(".");
if (num_pieces.length > 1) {
var oddEven = "even";
medcnt = medcnt*1;
medcnt = Math.floor(medcnt);
var M = eval((((newArray[medcnt - 1]*1) + (newArray[medcnt]*1)) / 2));
M = eval(Math.round(M*1000)/1000);}
else {var oddEven = "odd";var M = eval(newArray[medcnt - 1]*1);}
/// MEAN VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var mean = eval(sum / newArray.length);
/// VARI VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - mean), 2)   ));}
var sSqr = eval(sum / (newArray.length - 1));
/// ST DEV VALUE
var sDev = eval(Math.sqrt(sSqr));

var firstDevB = eval(mean - sDev);
var firstDevT = eval(mean + sDev);
var secDevB = eval(mean - (2*sDev));
var secDevT = eval(mean + (2*sDev));
var thrdDevB = eval(mean - (3*sDev));
var thrdDevT = eval(mean + (3*sDev));

var tickInsideFirstDev=0;
var tickInsideSecDev=0;
var tickInsideThrdDev=0;
var tempSto;
for (var i=0; i<newArray.length; i++) {
tempSto = eval(newArray[i]*1);
if (tempSto >= firstDevB && tempSto <= firstDevT) {tickInsideFirstDev++;}
if (tempSto >= secDevB && tempSto <= secDevT) {tickInsideSecDev++;}
if (tempSto >= thrdDevB && tempSto <= thrdDevT) {tickInsideThrdDev++;}}


var percFirst = eval((tickInsideFirstDev/newArray.length)*100);
var percSec = eval((tickInsideSecDev/newArray.length)*100);
var percThd = eval((tickInsideThrdDev/newArray.length)*100);

percFirst = Math.round((percFirst*100))/100;
percSec = Math.round((percSec*100))/100;
percThd = Math.round((percThd*100))/100;

var devFirst = eval(percFirst - 68);
var devSec = eval(percSec - 95);
var devThd = eval(percThd - 99.7);

devFirst = Math.round((devFirst*100))/100;
devSec = Math.round((devSec*100))/100;
devThd = Math.round((devThd*100))/100;

document.Calulator.screen.value += "n: "+newArray.length+"\n\ngenProb: "+probLity+"%\n\nconfIntvl 1: "+percFirst+"("+devFirst+")\nconfIntvl 2: "+percSec+"("+devSec+")\nconfIntvl 3: "+percThd+"("+devThd+")\n\n";

}}



function dumpArray() {
var whichList = window.prompt("Please enter a list to dump data into. (ie - L1, L2, L3, - L6)","");
if (whichList != null && whichList != '') {

//which is NULL at this moment 
var myArray = new Array();
var newArray = new Array();
var quartArrayO = new Array();
var quartArrayT = new Array();
var cnt = 0;
var a;var temp = "";
var allNums = window.prompt("Enter some data figures separated by commas.","");
if (allNums != null && allNums != '') {

myArray = allNums.split(",");
for (var i=0; i<myArray.length; i++) {
a = eval(myArray[i]*1);
if (temp == "") {temp = a;}
else {temp = temp+","+a;}}

listStorage[whichList]=temp;
document.Calulator.screen.value = ""+whichList+": ("+temp+")\n";

}}}




function linTrans() {

if (!(confirm("The linTran function is used to perform a linear transformation on data. Continue?"))) {return;}

var whichList = window.prompt("Please enter a list to standardize, originating N(mean,stdDev), or a \nlinear equation (i.e. - Xn=a+bx - with a and b being numbers).","");
if (whichList != null && whichList != '') {
if (whichList.indexOf("=") > -1) {
var spltMnSTD = new Array();
while (whichList.indexOf(" ") >= 0) {var pos=whichList.indexOf(" ");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);}
document.Calulator.screen.value = "Linear Transformation: "+whichList+"\n\n";
while (whichList.indexOf("(") >= 0) {var pos=whichList.indexOf("(");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);}
while (whichList.indexOf(")") >= 0) {var pos=whichList.indexOf(")");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);}
var pos=whichList.indexOf("Xn=");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 3), whichList.length);
var pos=whichList.indexOf("x");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);
spltMnSTD = whichList.split("+");var aVal = eval(spltMnSTD[0]);var bVal = eval(spltMnSTD[1]);

var Xmean = window.prompt("If you want to transform a mean, enter it here.","");
if (Xmean != null && Xmean != '') {document.Calulator.screen.value += "oMean: "+Xmean+"\n";}
var Xmed = window.prompt("If you want to transform a median, enter it here.","");
if (Xmed != null && Xmed != '') {document.Calulator.screen.value += "oMed: "+Xmed+"\n";}
var XstDev = window.prompt("If you want to transform a standard deviation, enter it here.","");
if (XstDev != null && XstDev != '') {document.Calulator.screen.value += "oStdDev: "+XstDev+"\n";}
var XIRQ = window.prompt("If you want to transform an IQR, enter it here.","");
if (XIRQ != null && XIRQ != '') {document.Calulator.screen.value += "oIQR: "+XIRQ+"\n";}
var Xxval = window.prompt("If you want to transform an x-value, enter it here.","");
if (Xxval != null && Xxval != '') {document.Calulator.screen.value += "oX: "+Xxval+"\n";}

document.Calulator.screen.value += "\n";

if (Xmean != null && Xmean != '') {var newMean = ((Xmean*bVal)+aVal);
document.Calulator.screen.value += "nMean: "+newMean+"\n";}
if (Xmed != null && Xmed != '') {var newMed = ((Xmed*bVal)+aVal);
document.Calulator.screen.value += "nMed: "+newMed+"\n";}
if (XstDev != null && XstDev != '') {var newStDev = (XstDev*bVal);
document.Calulator.screen.value += "nStdDev: "+newStDev+"\n";}
if (XIRQ != null && XIRQ != '') {var newIQR = (XIRQ*bVal);
document.Calulator.screen.value += "nIQR: "+newIQR+"\n";}
if (Xxval != null && Xxval != '') {var newXval = ((Xxval*bVal)+aVal);
document.Calulator.screen.value += "nX: "+newXval+"\n";}

}
else {

if (isNaN(whichList)) {var Xmean = window.prompt("Please enter a mean value to translate into (originating values will be transformed into this).","");}
if (!isNaN(Xmean)) {var XsDev = window.prompt("Please enter a standard deviation value to translate into. (originating values will be transformed into this)","");}

//which is NULL at this moment 
var myArray = new Array();
var newArray = new Array();
var spltMnSTD = new Array();
var cnt = 0;

if (whichList == "L1" || whichList == "L2" || whichList == "L3" || whichList == "L4" || whichList == "L5" || whichList == "L6") {
myArray = reqList(whichList,1);
document.Calulator.screen.value = ""+whichList+": ("+myArray.length+")\n\n";
newArray = myArray.sort(numberSort);
/// MEAN VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(newArray[i]*1));}
var mean = eval(sum / newArray.length);
//mean = eval(Math.round(mean*1000)/1000);
/// VARI VALUE
var sum = 0;
for (var i=0; i<newArray.length; i++) {sum = eval(sum + eval(  Math.pow( ((newArray[i]*1) - mean), 2)   ));}
var sSqr = eval(sum / (newArray.length - 1));
//sSqr = eval(Math.round(sSqr*1000)/1000);
/// ST DEV VALUE
var sDev = eval(Math.sqrt(sSqr));
//sDev = eval(Math.round(sDev*1000)/1000);
var bVal = eval(XsDev/sDev);
var newSDev = eval(sDev*bVal);
var newMean = eval(mean*bVal);
var aVal = eval(Xmean-newMean);
var bVal2=""+bVal;if (bVal2.indexOf(".") >= 0) {bVal = "("+XsDev+"/"+sDev+")";}
//aVal = eval(Math.round(aVal*100)/100);
var equat = "Xnew="+aVal+"+"+bVal+"*x";
document.Calulator.screen.value += "scaleMean: "+Xmean+"\nscaleStdDev: "+XsDev+"\n\norigMean: "+mean+"\norigStdDev: "+sDev+"\n\nlinTransf: "+equat+"\n\n";}
else {
if (whichList.indexOf("N(") > -1) {
var pos=whichList.indexOf("N(");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 2), whichList.length);
var pos=whichList.indexOf(")");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);
spltMnSTD = whichList.split(",");
var mean = eval(spltMnSTD[0]*1);
var sDev = eval(spltMnSTD[1]*1);
if ((!isNaN(mean)) && (!isNaN(sDev))) {
var bVal = eval(XsDev/sDev);
var newSDev = eval(sDev*bVal);
var newMean = eval(mean*bVal);
var bVal2=""+bVal;if (bVal2.indexOf(".") >= 0) {bVal = "("+XsDev+"/"+sDev+")";}
var aVal = eval(Xmean-newMean);
//aVal = eval(Math.round(aVal*100)/100);
var equat = "Xnew="+aVal+"+"+bVal+"*x";
}}document.Calulator.screen.value = "scaleMean: "+Xmean+"\nscaleStdDev: "+XsDev+"\n\norigMean: "+mean+"\norigStdDev: "+sDev+"\n\nlinTransf: "+equat+"\n\n";}}
}}



function doTheGraph() {
document.getElementById('graphSTD').width=250;
document.getElementById('graphSTD').height=176;
document.getElementById('graphSTD').src='';
graphController.style.display = "block";

var magni = document.Calulator.graphXMag.value;
if ((!isNaN(magni)) && magni != null && magni != '') {
var magni2 = document.Calulator.graphYMag.value;
if ((!isNaN(magni2)) && magni2 != null && magni2 != '') {
var whichList = window.prompt("Please enter either a list for X-axis or an equation. (eg - L1, L2, L3, - L6 or y=a+b*x)","");
if (whichList != null && whichList != '') {
if (whichList == "L1" || whichList == "L2" || whichList == "L3" || whichList == "L4" || whichList == "L5" || whichList == "L6") {
var scatQuant = window.prompt("Would you like to produce a scatter plot (1), or a normal quantile plot (2)?","1");
if (scatQuant == 2) {
var goGoRangers = quantilePlot(whichList,magni,magni2);}
else {var list2 = window.prompt("Please enter a second list to compare to for Y-axis. (eg - L1, L2, L3, - L6)","");
var goGoRangers = scatterPlot(whichList,list2,magni,magni2);}}
else if (whichList.indexOf("=") > -1) {
var spltMnSTD = new Array();
while (whichList.indexOf(" ") >= 0) {var pos=whichList.indexOf(" ");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);}
while (whichList.indexOf("(") >= 0) {var pos=whichList.indexOf("(");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);}
while (whichList.indexOf(")") >= 0) {var pos=whichList.indexOf(")");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 1), whichList.length);}
var pos=whichList.indexOf("y=");var whichList=""+whichList.substring(0, pos)+""+whichList.substring((pos + 2), whichList.length);
var goGoRangers = graphFunc(whichList,magni,magni2);}else {}
}}}}







function scatterPlot(list1,list2,magni,magni2) {
var magni;
if (isNaN(magni)) {magni = 1;}
if (isNaN(magni2)) {magni2 = 1;}
var L1Array = new Array();
var L2Array = new Array();

L1Array = reqList(list1,1);
L2Array = reqList(list2,1);

//var graphName = window.prompt("Please enter a window name to map this graph to","Graph1");

//var config = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=250,height=176";
//var output = window.open ("",graphName,config);
var output = graphSTD;
output.document.write("<html><head><meta http-equiv='Pragma' Content='no-cache'>");
output.document.write("<meta http-equiv='Expires' Content='-1'>");
output.document.write("<link rel='stylesheet' href='http://www.globalaircraft.org/default.css' type='text/css'>");
output.document.write("<style type='text/css'>BODY{scrollbar-face-color:#666666;scrollbar-arrow-color:#FFFFFF;");
output.document.write("scrollbar-track-color:#eeeeee;background-repeat:no-repeat;}</style></head>");
output.document.write("<body topmargin='0' title='scatter("+list1+","+list2+")' onblur='window.close()' leftmargin='0' background='http://www.globalaircraft.org/photos/graphBG.gif' marginheight='0' marginwidth='0' onselectstart='return false;'>");
output.document.write("<img src='http://www.globalaircraft.org/photos/blank.gif' name='blankOver' id='blankOver' width='100%' height='100%' style='position:absolute;left:0;top:0;'>");

var dontUseCPU=1;
var hocker=0;
for (var i=0; i<L1Array.length; i++) {
if ((L1Array[i]*magni) >= -125 && (L1Array[i]*magni) <= 125 && (L2Array[i]*magni2) >= -88 && (L2Array[i]*magni2) <= 88){
var yPos=eval(-1.0*((L2Array[i]*magni2)-88));
var x2=eval((L1Array[i]*magni)+125);
output.document.write("<img src='http://www.globalaircraft.org/photos/black.gif' width='2' height='2' style='position:absolute;left:"+x2+";top:"+yPos+";'>");
dontUseCPU++;}
else {hocker++;}}
if (hocker > 0) {alert("Note: "+hocker+" pieces of your data were outside the graph's range.");}
output.document.write("</body></html>");
alert('Graph Finished');
output.document.close();}





function quantilePlot(list1,magni,magni2) {
var magni;
if (isNaN(magni)) {magni = 1;}
if (isNaN(magni2)) {magni2 = 1;}
var L1Array = new Array();
var newArray2 = new Array();
var stoZsco = new Array();

L1Array = reqList(list1,1);

//var graphName = window.prompt("Please enter a window name to map this graph to","Graph1");

//var config = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=250,height=176";
//var output = window.open ("",graphName,config);
var output = graphSTD;
output.document.write("<html><head><meta http-equiv='Pragma' Content='no-cache'>");
output.document.write("<meta http-equiv='Expires' Content='-1'>");
output.document.write("<link rel='stylesheet' href='http://www.globalaircraft.org/default.css' type='text/css'>");
output.document.write("<style type='text/css'>BODY{scrollbar-face-color:#666666;scrollbar-arrow-color:#FFFFFF;");
output.document.write("scrollbar-track-color:#eeeeee;background-repeat:no-repeat;}</style></head>");
output.document.write("<body topmargin='0' title='quantile("+list1+")' onblur='window.close()' leftmargin='0' bgcolor='#dddddd' marginheight='0' marginwidth='0' onselectstart='return false;'>");
output.document.write("<img src='http://www.globalaircraft.org/photos/blank.gif' name='blankOver' id='blankOver' width='100%' height='100%' style='position:absolute;left:0;top:0;'>");

var L1Array = L1Array.sort(numberSort);

var mean = getMean(L1Array);
var sDev = getStDev(L1Array);
for (var i=0; i<L1Array.length; i++) {newArray2[i] = L1Array[i];stoZsco[i] = eval((L1Array[i]-mean)/sDev);}

var min = eval(newArray2[0]*1);
var msrMin = eval(-1*(min-88));

var max = eval(newArray2[newArray2.length-1]*1);
var msrMax = eval(-1*(max-88));

if (eval(170-msrMin) > msrMax) {var magni2 = eval(170/msrMin);}
else {var magni2 = eval(80/msrMax);}

var dontUseCPU=1;
var hocker=0;
for (var i=0; i<L1Array.length; i++) {
if ((((L1Array[i]-88)*-1)*magni2) >= 0 && (((L1Array[i]-88)*-1)*magni2) <= 176 && (stoZsco[i]*magni*40) >= -125 && (stoZsco[i]*magni*40) <= 125){

var yPos=eval((((-1.0*((L1Array[i])-88))*magni2)*1)-0);

var x2=eval(((stoZsco[i]*(magni*40))+125));
output.document.write("<img src='http://www.globalaircraft.org/photos/black.gif' width='2' height='2' style='position:absolute;left:"+x2+";top:"+yPos+";'>");
dontUseCPU++;}
else {hocker++;}}
if (hocker > 0) {alert("Note: "+hocker+" pieces of your data were outside the graph's range.");}
output.document.write("</body></html>");
alert('Graph Finished');
output.document.close();}




function iAmStats() {

if (document.Calulator.altFour.value != 'exit') {
swapup();
document.Calulator.secondBtn.disabled=true;
document.Calulator.lastAns.disabled=true;
document.Calulator.cubed.disabled=true;
document.Calulator.nlog.disabled=true;
document.Calulator.xToy.disabled=true;
document.Calulator.log.disabled=true;
document.Calulator.atan.disabled=true;
document.Calulator.cot.disabled=true;
document.Calulator.tan.disabled=true;
document.Calulator.asin.disabled=true;
document.Calulator.csc.disabled=true;
document.Calulator.sin.disabled=true;
document.Calulator.acos.disabled=true;
document.Calulator.sec.disabled=true;
document.Calulator.cos.disabled=true;
document.Calulator.e.disabled=true;
document.Calulator.pi.disabled=true;
document.Calulator.lastAns.disabled=true;
document.Calulator.store.disabled=true;
document.Calulator.recall.disabled=true;
document.Calulator.altOne.disabled=true;
document.Calulator.altTwo.disabled=true;
document.Calulator.altThree.disabled=true;
document.Calulator.altFour.value='exit';
document.Calulator.altFive.disabled=true;
document.Calulator.altSix.disabled=true;
document.Calulator.altSeven.disabled=true;
document.Calulator.lp.disabled=true;
document.Calulator.rp.disabled=true;
document.Calulator.divide.disabled=true;
document.Calulator.bsp.disabled=true;
document.Calulator.period.disabled=true;
document.Calulator.enterMem.disabled=true;
document.Calulator.zero.value="resids";
document.Calulator.six.value="linReg";
document.Calulator.seven.value="linTran";
document.Calulator.nine.value="1varLst";
document.Calulator.eight.value="2varLst";
document.Calulator.sqrt.value="defList";
document.Calulator.sq.value="dpData";
document.Calulator.posneg.value="shwList";
document.Calulator.one.value="z-To-P";
document.Calulator.two.value="%";
document.Calulator.three.value="p-To-Z";
document.Calulator.four.value="prob";
document.Calulator.five.value="tNorm";
document.Calulator.seven.title="Perform a linear transformation";
document.Calulator.sqrt.title="Define a new list";
document.Calulator.sq.title="Dump data into a list";
document.Calulator.posneg.title="Show the contents of a list";
document.Calulator.nine.title="Performs a standard function for one list";
document.Calulator.eight.title="Performs a standard function for two lists";
document.Calulator.one.title="Convert a z-score into a p-value";
document.Calulator.two.title="Calculate a percentile";
document.Calulator.three.title="Convert a p-value into a z-score";
document.Calulator.four.title="Performs a probability function on a list";
document.Calulator.five.title="Test the normality of a list";
document.Calulator.six.title="Creates a regression line for a list, y=a+bx";
document.Calulator.multiply.disabled=true;
document.Calulator.minus.disabled=true;
document.Calulator.plus.disabled=true;
document.Calulator.equals.value="graph";
document.Calulator.screen.value="GAC Statistics v1.0\n\n1. Enter variables, leave spot empty to end table.\n\n                  CLICK TO BEGIN\n\n\n         Copyright © 2003 Global Aircraft";
}
else if (document.Calulator.altFour.value == 'exit') {
graphController.style.display = "none";
graphOpts.style.display = "none";
document.getElementById('graphSTD').width=0;
document.getElementById('graphSTD').height=0;
document.getElementById('graphSTD').src='';
document.Calulator.sqrt.value="sqrt";
document.Calulator.sq.value="x^2";
document.Calulator.posneg.value="+/-";
document.Calulator.four.value="4";
document.Calulator.five.value="5";
document.Calulator.six.value="6";
document.Calulator.seven.value="7";
document.Calulator.two.value="2";
document.Calulator.one.value="1";
document.Calulator.three.value="3";
document.Calulator.eight.value="8";
document.Calulator.nine.value="9";
document.Calulator.zero.value="0";
document.Calulator.nine.title="";
document.Calulator.eight.title="";
document.Calulator.one.title="";
document.Calulator.two.title="";
document.Calulator.three.title="";
document.Calulator.four.title="";
document.Calulator.five.title="";
document.Calulator.seven.title="";
document.Calulator.six.title="";
document.Calulator.enterMem.disabled=false;
document.Calulator.period.disabled=false;
document.Calulator.secondBtn.disabled=false;
document.Calulator.sqrt.disabled=false;
document.Calulator.clear.disabled=false;
document.Calulator.lastAns.disabled=false;
document.Calulator.cubed.disabled=false;
document.Calulator.nlog.disabled=false;
document.Calulator.xToy.disabled=false;
document.Calulator.log.disabled=false;
document.Calulator.atan.disabled=false;
document.Calulator.cot.disabled=false;
document.Calulator.tan.disabled=false;
document.Calulator.asin.disabled=false;
document.Calulator.csc.disabled=false;
document.Calulator.sin.disabled=false;
document.Calulator.acos.disabled=false;
document.Calulator.sec.disabled=false;
document.Calulator.cos.disabled=false;
document.Calulator.e.disabled=false;
document.Calulator.pi.disabled=false;
document.Calulator.lastAns.disabled=false;
document.Calulator.store.disabled=false;
document.Calulator.recall.disabled=false;
document.Calulator.altOne.disabled=false;
document.Calulator.altTwo.disabled=false;
document.Calulator.altThree.disabled=false;
document.Calulator.altFour.value='4';
document.Calulator.altFive.disabled=false;
document.Calulator.altSix.disabled=false;
document.Calulator.altSeven.disabled=false;
document.Calulator.lp.disabled=false;
document.Calulator.rp.disabled=false;
document.Calulator.divide.disabled=false;
document.Calulator.multiply.disabled=false;
document.Calulator.minus.disabled=false;
document.Calulator.plus.disabled=false;
document.Calulator.screen.value="0";
document.Calulator.equals.value="solve";
document.Calulator.matrixState.value = "0";
document.Calulator.divide.value="÷";
document.Calulator.multiply.value="×";
document.Calulator.minus.value="-";
document.Calulator.plus.value="+";
document.Calulator.lp.value="(";
document.Calulator.rp.value=")";
document.Calulator.enterMem.title="Enter Memory";
document.Calulator.period.title="";
document.Calulator.divide.disabled=false;
document.Calulator.bsp.disabled=false;
document.Calulator.multiply.disabled=false;
document.Calulator.minus.disabled=false;
document.Calulator.plus.disabled=false;
document.Calulator.equals.value="solve";
document.Calulator.period.disabled=false;
document.Calulator.enterMem.disabled=false;
document.Calulator.sqrt.title="square root";
document.Calulator.sq.title="square";
document.Calulator.posneg.title="positive / negative";
document.Calulator.lp.title="";
document.Calulator.rp.title="";
document.Calulator.divide.title="";
document.Calulator.multiply.title="";
document.Calulator.minus.title="";
document.Calulator.plus.title="";

enterPrgms();
iWorkNow();
}
else {}


}

// END -->
