var slope = 1*0;
var inter = 1*0;


function rndx(x){return Math.round(x*10000)/10000}
var fillx = new Array(28, 29, 30, 31, 32, 33);
var filly0 = new Array(4, 3, 2, 2, 4, 1);
var filly1 = new Array(2, 2, 7, 7, 16, 14);

function fill()
{
for (var i=0; i<6; i++) {
document.xvals.elements[i].value = fillx[i]*1;
document.y0vals.elements[i].value = filly0[i]*1;
document.y1vals.elements[i].value = filly1[i]*1;
}<!--end.for-->


}<!--end.f.fill-->



function calc()
{
var nlev = 1*0;
var x = new Array(10);
var y0 = new Array(10);
var y1 = new Array(10);
var ytot = new Array(10);
var obp = new Array(10);
var prpp = new Array(10);
var obod = new Array(10);
var prod = new Array(10);
var olgod = new Array(10);
var tellx = "Summary:\r\r";
var sumx = 1*0;
var sumsqx = 1*0;
var sumy = 1*0;
sumsqy = 1*0;
var sumxy = 1*0;
var sumy0 = 1*0;
var sumy1 = 1*0;
var sumobp = 1*0;
var sumsqobp = 1*0;

for (var i=0; i<10; i++) {
if(document.xvals.elements[i].value!=""){nlev++}
}<!--end.for-->

for (var i=0; i<nlev; i++) {
y0[i] = document.y0vals.elements[i].value*1;
y1[i] = document.y1vals.elements[i].value*1;
if(y0[i]==0*1){y0[i]=1*1;y1[i]+=1*1}<!--end.if-->
if(y1[i]==0*1){y1[i]=1*1;y0[i]+=1-0}<!--end.if-->
document.y0vals.elements[i].value = y0[i]*1;
document.y1vals.elements[i].value = y1[i]*1;
}<!--end.for-->





for (var i=0; i<nlev; i++) {
x[i] = document.xvals.elements[i].value*1;
document.jxvals.elements[i].value = x[i] *1 ;
y0[i] = document.y0vals.elements[i].value*1;
sumy0+=y0[i]*1;
y1[i] = document.y1vals.elements[i].value*1;
ytot[i] = y0[i]+y1[i]-0;
sumy1+=y1[i]*1;
obp[i] = y1[i]/(y1[i]+y0[i]);
sumobp+=obp[i]*1;
sumsqobp+=obp[i]*obp[i];
document.oprob.elements[i].value = Math.round(obp[i]*10000)/10000;
obod[i] = y1[i]/y0[i];
document.oodds.elements[i].value = Math.round(obod[i]*10000)/10000;
olgod[i] = Math.log(obod[i]);
sumx+=x[i]*1;
sumsqx+=x[i]*x[i];
sumy+=olgod[i]*1;
sumsqy+=olgod[i]*olgod[i];
sumxy+=x[i]*olgod[i];
}<!--end.for-->

var mobp = sumobp/nlev;
var ssobp = sumsqobp-((sumobp*sumobp)/nlev);
var sdobp = Math.sqrt(ssobp/nlev);
var mlo = sumy/nlev;
var sdlo = Math.sqrt((sumsqy-((sumy*sumy)/nlev))/nlev);
var ssy = sumsqy-((sumy*sumy)/nlev);
var ssx = sumsqx-((sumx*sumx)/nlev);
var ssxy = sumxy-((sumx*sumx)/nlev);


var l0 = sumy0*Math.log(sumy0/(sumy0+sumy1))+sumy1*Math.log(sumy1/(sumy0+sumy1));

var nn = sumy1+sumy0-0;

var jsumx = 1*0;
var jsumsqx = 1*0;
var jsumsqy = 1*0;
var jsumy = 1*0;
var jsumxy = 1*0;

for (var i=0; i<nlev; i++) {
jsumx+=x[i]*ytot[i];
jsumsqx+=x[i]*x[i]*ytot[i];
jsumy+=olgod[i]*ytot[i];
jsumsqy+=olgod[i]*olgod[i]*ytot[i];
jsumxy+=x[i]*olgod[i]*ytot[i];
}<!--end.for-->

var kssx = jsumsqx-((jsumx*jsumx)/nn);
var kssy = jsumsqy-((jsumy*jsumy)/nn);

var kssxy = jsumxy-((jsumx*jsumy)/nn);
slope = kssxy/kssx;
var mx = jsumx/nn;
inter = (jsumy/nn)-(slope*mx);
var sdx = Math.sqrt(ssx/nlev);
var kmx = sumx/nlev;

var r = kssxy/Math.sqrt(kssx*kssy);
r = r*r;
var se = rndx(Math.sqrt((kssy*(1-r))/(nn-2)));

var a = 1*0;
var b = 1*0;
var da = -1*.01;
var diff = 1*0;
var ha = a*1;
var hb = b*1;
var newy = new Array();

hb = slope*1;
ha= inter*1;


a = ha*1;
b = hb*1;


var l1 = 1*0;

for (var i=0; i<nlev; i++) 
{
newy[i] = Math.exp(a+b*x[i]);
newy[i] = newy[i]/(1+newy[i]);
document.pprob.elements[i].value = Math.round(newy[i]*10000)/10000;
document.podds.elements[i].value = Math.round(10000*newy[i]/(1-newy[i]))/10000;
l1+=((obp[i]*Math.log(newy[i]))+((1-obp[i])*Math.log(1-newy[i])))*ytot[i];
}<!--end.for.i-->

ssx = sumsqx-((sumx*sumx)/nlev);

var csq = -2*(l0-l1);
document.csq.elements[0].value = csq*1;
document.df.elements[0].value = 1*1;
var pxj = 1*0;
if(csq>16)
{
document.p.elements[0].value = "<.0001";
pxj = "<.0001";
}else{
calc_csq();
pxj = document.p.elements[0].value*1;
if(pxj>=0&&pxj<=1){pxj=Math.round(pxj*10000)/10000};
}<!--end.if.else-->

tellx+="Levels of X variable = "+nlev+"\rTotal number of cases = "+nn+"\r"+sumy0+" cases have Y=0; "+sumy1+" cases have Y=1\r\rVariable X (unweighted):\r  Mean = "+rndx(kmx)+"    SD = "+rndx(sdx)+"\r";

tellx+="Variable Y [as observed probabilities (unweighted)]:\r  Mean = "+rndx(mobp)+"    SD = "+rndx(sdobp)+"\r";

tellx+="\rFor weighted linear regression of log odds ratios on X:\r   intercept = "+rndx(ha)+"\r   slope = "+rndx(hb)+"\r   exp(slope) = "+rndx(Math.exp(hb));

tellx+="\r   r^2 = "+rndx(r);


tellx+="\r\rLog Liklihood Summary:\r -2 Log Likelihood = "+Math.round(1000*-2*l0)/1000+" (null model)\r -2 Log Likelihood = "+Math.round(1000*-2*l1)/1000+" (empirical fit)\r  Chi-square = "+Math.round(100*csq)/100+"\r  df = 1   p = "+pxj;


document.tell.elements[0].value = tellx;

document.display.elements[0].value = rndx(ha);
document.display.elements[1].value = rndx(hb);
document.display.elements[2].value = rndx(Math.exp(hb));
document.display.elements[3].value = rndx(r);

}<!--end.f.calc-->


function wipe() {
for (var i=0; i<10; i++) {
document.xvals.elements[i].value = "";
document.jxvals.elements[i].value = "";
document.y0vals.elements[i].value = "";
document.y1vals.elements[i].value = "";
document.oprob.elements[i].value = "";
document.pprob.elements[i].value = "";
document.oodds.elements[i].value = "";
document.podds.elements[i].value = "";
}
document.tell.elements[0].value = "Summary:";
document.display.elements[0].value = "";
document.display.elements[1].value = "";
document.display.elements[2].value = "";
document.display.elements[3].value = "";
document.recalc.elements[0].value = "";
document.recalc.elements[1].value = "";
document.recalc.elements[2].value = "";
}<!--end.f.wipe-->

function rewipe() {
document.recalc.elements[0].value = "";
document.recalc.elements[1].value = "";
document.recalc.elements[2].value = "";
}<!--end.f.rewipe-->

function jcalc() {
var cx = 1*0;
if(document.recalc.elements[0].value!="")
{
cx = document.recalc.elements[0].value*1;
cx = (inter*1)+(slope*document.recalc.elements[0].value)-0;
cx = Math.exp(cx);
document.recalc.elements[2].value = rndx(cx);
cx = cx/(1+cx*1);
document.recalc.elements[1].value = rndx(cx);

}<!--end.if-->
}<!--end.f.jcalc-->


