var n=0*1, r=0*1, p=0*1, q=0*1, lower95=0*1, upper95=0*1, lower99=0*1, upper99=0*1, zr=0*1, zbig = 0*1, rplus = 0*1, rminus = 0*1, sdz = 0*1;
var z_lower95 = 0*1, z_upper95 = 0*1, z_lower99 = 0*1, z_upper99=0*1;
var count1 = 0*1, count2 = 0*1, spin = 0*1, zelt=0*1;

function calc() {
var k = nn;
n = 0;
var sumx = 0;
var sumy = 0;
var sumsqx = 0;
var sumsqy = 0;
var sumxy = 0;

for (var i=0; i<k; i++) {
	document.xy_vals.elements[i].value = "";
	}

for (var i=0; i<k; i++) {
	if (document.x_vals.elements[i].value.length > 0) {n=n+1}
	}
document.show1.elements[0].value = n;

for (var i=0; i<n; i++) {
	sumx = sumx + (document.x_vals.elements[i].value*1)}

for (var i=0; i<n; i++) {
	sumy = sumy + (document.y_vals.elements[i].value*1)}

for (var i=0; i<n; i++) {
	document.xy_vals.elements[i].value = (document.x_vals.elements[i].value*document.y_vals.elements[i].value);}

for (var i=0; i<n; i++) {
	sumxy = sumxy + (document.xy_vals.elements[i].value*1)}

for (var i=0; i<n; i++) {
	sumsqx = sumsqx + (document.x_vals.elements[i].value*document.x_vals.elements[i].value)}

for (var i=0; i<n; i++) {
	sumsqy = sumsqy + (document.y_vals.elements[i].value*document.y_vals.elements[i].value)}

var ssx = sumsqx-((sumx*sumx)/n);
var ssy = sumsqy-((sumy*sumy)/n);
var ssxy = sumxy-((sumx*sumy)/n);

document.show0.elements[0].value = Math.round(sumx*10000)/10000;
document.show0.elements[1].value = Math.round(sumsqx*10000)/10000;
document.show0.elements[2].value = Math.round(sumy*10000)/10000;
document.show0.elements[3].value = Math.round(sumsqy*10000)/10000;
document.show0.elements[4].value = Math.round(sumxy*10000)/10000;


r = ssxy/Math.sqrt(ssx*ssy);
if (r==1) {alert("With r=+1.0, the value of t cannot be calculated.  If n>4, you may assume that your calculated value of r is significant beyond the .01 level for a two-tailed test.")}
if (r==-1) {alert("With r=-1.0, the value of t cannot be calculated.  If n>4, you may assume that your calculated value of r is significant beyond the .01 level for a two-tailed test.")}

t_denom =Math.sqrt( (1-(r*r))/(n-2));
var t = r/t_denom;
document.t.elements[0].value =  Math.round(t*1000)/1000;

var rsq = r*r;
var slo = ssxy/ssx;
var intercept = (sumy/n)-(slo*(sumx/n));
var se = Math.sqrt((ssy*(1-rsq))/(n-2));

document.r.elements[0].value = Math.round(r*1000)/1000;
document.r.elements[1].value = Math.round(rsq*1000)/1000;
document.r.elements[2].value =  Math.round(slo*1000)/1000;
document.r.elements[3].value =  Math.round(intercept*10000)/10000;
document.r.elements[4].value =  Math.round(se*10000)/10000;

var df = n-2;
document.df.elements[0].value =df;
var meanx = sumx/n;
var meany = sumy/n;
document.show1.elements[1].value = Math.round(meanx*10000)/10000;
document.show1.elements[2].value = Math.round(meany*10000)/10000;

document.show1.elements[3].value = Math.round((ssx/(n-1))*10000)/10000;
document.show1.elements[4].value = Math.round((ssy/(n-1))*10000)/10000;
document.show1.elements[5].value = Math.round((Math.sqrt(ssx/(n-1)))*10000)/10000;
document.show1.elements[6].value = Math.round((Math.sqrt(ssy/(n-1)))*10000)/10000;
document.show1.elements[7].value =  Math.round(Math.sqrt(ssx/(n-1)/n)*10000)/10000;
document.show1.elements[8].value =  Math.round(Math.sqrt(ssy/(n-1)/n)*10000)/10000;

var zda = Tcall(buzz(eval(t),eval(df)));
zda = Math.round(zda*10000)/10000;
var zdb = zda/2;
zdb = Math.round(zdb*10000)/10000;
if(zda<.0001||zda>1.0){zda="<.0001"}
if(zdb<.0001||zdb>1.0){zdb="<.0001"}

document.pa.elements[0].value = zda;
document.pb.elements[0].value = zdb;

var resid = 1*0;
for (var i=0; i<n; i++) {
resid =document.y_vals.elements[i].value-(intercept+(slo*document.x_vals.elements[i].value));
resid = Math.round(resid*1000)/1000;
document.xy_vals.elements[i].value = resid;
}<!--end.for-->

calc2();
}<!--end f.calc--->


function calc3()
{
n = 1*document.show1.elements[0].value;
r = 1*document.r.elements[0].value;
if(r*r==1) {r = r*.999};
if(r*r>1) 
{
alert("The value of r must fall between +1.0 and -1.0, inclusive.");
r = 0;
document.r.elements[0].value = 0;
n = 10000000;
}

rplus = 1*r+1;
if(Math.floor(n)<n) {alert("n must be an integer value.")};

zr = (Math.log(rplus)-Math.log(rminus))/2;
sdz = 1/Math.sqrt(n-3);

z_upper95 = 1*zr+(sdz*1.95996);
z_lower95 = zr-(sdz*1.95996);
z_upper99 = 1*zr+(sdz*2.57583);
z_lower99 = zr-(sdz*2.57583);

count1 = -1000;
spin = -10;
while(z_lower95>spin)
{
count1++;
count2 = count1/1000;
spin = (Math.log(count2+1)-Math.log(1-count2))/2;
}<!--end while-->
if(Math.abs(count2)==.999) {count2 = Math.round(count2)};
if(zelt>0){document.lower95.elements[0].value=count2}

count1 = -1000;
spin = -10;
while(z_lower99>spin)
{
count1++;
count2 = count1/1000;
spin = (Math.log(count2+1)-Math.log(1-count2))/2;
}<!--end while-->
if(Math.abs(count2)==.999) {count2 = Math.round(count2)};
if(zelt>0){document.lower99.elements[0].value=count2}

count1 = 1000;
spin = 10;
while(z_upper95<spin)
{
count1--;
count2 = count1/1000;
spin = (Math.log(count2+1)-Math.log(1-count2))/2;
}<!--end while-->
if(Math.abs(count2)==.999) {count2 = Math.round(count2)};
if(zelt>0){document.upper95.elements[0].value=count2}


count1 = 1000;
spin = 10;
while(z_upper99<spin)
{
count1--;
count2 = count1/1000;
spin = (Math.log(count2+1)-Math.log(1-count2))/2;
}<!--end while-->
if(Math.abs(count2)==.999) {count2 = Math.round(count2)};
if(zelt>0){document.upper99.elements[0].value=count2}

rminus = 1-r;
if(n<4&&zelt>0) {
document.upper95.elements[0].value = "";
document.upper99.elements[0].value = "";
document.lower95.elements[0].value = "";
document.lower99.elements[0].value = "";
}
}<!--end function calc3-->

function calc2()
{
zelt = 0*1;
calc3();
zelt+=1;
calc3();
zelt = 0*1;
}<!--end function calc2-->


function unwipe() {
var k = document.show1.elements[0].value*1;
nn = k*1;
var xvals = "";
var yvals = "";
var xyvals = "";
var num = "";
for (var i=0; i<k; i++) {
xvals = xvals+document.x_vals.elements[i].value+"<br> ";
yvals = yvals+document.y_vals.elements[i].value+"<br> ";
xyvals = xyvals+document.xy_vals.elements[i].value+"<br> ";
}
for (var i=1; i<(1*k+1); i++) {
num = num+i+"<br> ";
}
var date = new Date();

var vals3 = new Array();
for (var i=0; i<9; i++) {vals3[i]=document.show1.elements[i].value}

var vals4 = new Array();
for (var i=0; i<5; i++) {vals4[i]=document.r.elements[i].value}

var vals5 = new Array();
for (var i=0; i<5; i++) {vals5[i]=document.show0.elements[i].value}

var tx = document.t.elements[0].value;
var dfx = document.df.elements[0].value;
var p1 = document.pb.elements[0].value;
var p2 = document.pa.elements[0].value;
var date = new Date();
var u95 = document.upper95.elements[0].value;
var u99 = document.upper99.elements[0].value;
var l95 = document.lower95.elements[0].value;
var l99 = document.lower99.elements[0].value;


var aa = '<BODY BGCOLOR="#FFFFFF" linkColor="010785" vlinkColor="010785"><font face="verdana, arial"><FONT COLOR="010785">VassarStats Printable Report<BR>Linear correlation and Regression</FONT><br>'+date+'<HR>';

document.open();
document.write(aa);

document.write('<FONT COLOR="010785">Data Summary</font><FONT COLOR="#FFFFFF"><SUB>T</SUB></FONT><BR><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2 BGCOLOR="#FFFFFF" BORDERCOLOR="white"><TR valign=middle><TD width=10><TD nowrap align=right><font face="verdana, arial"><FONT COLOR="#FFFFFF">i</FONT><IMG ALIGN=Absmiddle SRC="sum.gif">X =<BR><TD>'+vals5[0]+'<BR><TD>&nbsp;<TD nowrap align=right><font face="verdana, arial"><FONT COLOR="#FFFFFF">i</FONT><IMG ALIGN=Absmiddle SRC="sum.gif">X<SUP>2</SUP><FONT COLOR="#FFFFFF"><SUB>i</SUB></FONT> =<BR><TD>'+vals5[1]+'<BR><TR valign=middle><TD width=10><TD nowrap align=right><font face="verdana, arial"><FONT COLOR="#FFFFFF">i</FONT><IMG ALIGN=Absmiddle SRC="sum.gif">Y =<BR><TD>'+vals5[2]+'<BR><TD>&nbsp;<TD nowrap align=right><font face="verdana, arial"><FONT COLOR="#FFFFFF">i</FONT><IMG ALIGN=Absmiddle SRC="sum.gif">Y<SUP>2</SUP><FONT COLOR="#FFFFFF"><SUB>i</SUB></FONT> =<BR><TD>'+vals5[3]+'<BR><TR valign=middle><TD width=10><TD nowrap align=right><font face="verdana, arial"><FONT COLOR="#FFFFFF">i</FONT><IMG ALIGN=Absmiddle SRC="sum.gif">XY =<BR><TD colspan=4>'+vals5[4]+'<BR><TR><TD></TABLE><BR>');


document.write('<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=4><tr align=center valign=bottom><td><font face="verdana, arial">r<BR><td><font face="verdana, arial">r<sup>2</sup><BR><td><font face="verdana, arial">Slope<BR><td><font face="verdana, arial">Y<BR>Intercept<BR><td nowrap><font face="verdana, arial">Std. Err. of<br>Estimate<BR><tr align=center><td><font face="verdana, arial">'+vals4[0]+'<BR><td><font face="verdana, arial">'+vals4[1]+'<BR><td><font face="verdana, arial">'+vals4[2]+'<BR><td><font face="verdana, arial">'+vals4[3]+'<BR><td><font face="verdana, arial">'+vals4[4]+'<BR></table>');

document.write('<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=2 align=left><tr align=center><td></form><font face="verdana, arial">&nbsp;&nbsp;t&nbsp;&nbsp;<BR><td><font face="verdana, arial">&nbsp;&nbsp;df&nbsp;&nbsp;<BR><tr align=center><td><font face="verdana, arial">'+tx+'<BR><td><font face="verdana, arial">'+dfx+'<BR></table><TABLE BORDER=1 CELLSPACING=1 CELLPADDING=2><TR ALIGN=left><TD rowspan=2><font face="verdana, arial">&nbsp;&nbsp;P&nbsp;&nbsp;<td><font face="verdana, arial">one-tailed<BR><td><font face="verdana, arial">'+p1+'<BR><TR ALIGN=left><td><font face="verdana, arial">two-tailed<BR><td><font face="verdana, arial">'+p2+'<BR></TABLE><BR clear=left>');

document.write('<FONT COLOR="010785">0.95 and 0.99 Confidence Intervals of rho</font><TABLE BORDER=1 CELLSPACING=1 CELLPADDING=2><TR align=center>	<TD>	<TD><font face="verdana, arial">Lower Limit<BR>	<TD><font face="verdana, arial">Upper Limit<BR><TR align=center>	<TD><font face="verdana, arial">0.95<BR>	<TD><font face="verdana, arial">'+l95+'<BR>	<TD><font face="verdana, arial">'+u95+'<BR><TR align=center>	<TD><font face="verdana, arial">0.99<BR>	<TD><font face="verdana, arial">'+l99+'<BR>	<TD><font face="verdana, arial">'+u99+'<BR></TABLE>');

document.write('<BR><FONT COLOR="#010785">Values entered:</font><br><Table><TABLE BORDER=1 CELLSPACING=1 CELLPADDING=4><TR align=center><TD><font face="verdana, arial"><FONT SIZE=-1>Pairs</FONT><TD><font face="verdana, arial">X<TD><font face="verdana, arial">Y<TD><font face="verdana, arial"><FONT SIZE=-1>Residuals</FONT><Tr align=center valign=top><TD><font face="verdana, arial">'+num+'<TD><font face="verdana, arial">'+xvals+'<TD><font face="verdana, arial">'+yvals+'<TD><font face="verdana, arial">'+xyvals+'</Table><BR>');

document.close();
}

function wipe() {
var k = nn;
for (var i=0; i<k; i++) {
document.x_vals.elements[i].value = "";
document.y_vals.elements[i].value = "";
document.xy_vals.elements[i].value = "-----";
}

for (var i=0; i<9; i++) {
document.show1.elements[i].value = "";
}

for (var i=0; i<5; i++) {
document.show0.elements[i].value = "";
}
document.x_vals.elements[0].value = "";
document.y_vals.elements[0].value = "";
for (var i=0; i<5; i++){document.r.elements[i].value=""}

document.df.elements[0].value = "";
document.t.elements[0].value = "";
document.pa.elements[0].value = "";
document.pb.elements[0].value = "";
document.upper95.elements[0].value = "";
document.upper99.elements[0].value = "";
document.lower95.elements[0].value = "";
document.lower99.elements[0].value = "";
}



