var NP = 75;  // Number of problems
var sol = new Array(1,3,3,3,1,2,1,2,3,4,4,1,1,4,1,3,2,1,2,2,1,3,2,1,2,1,2,1,3,4,4,4,1,2,1,1,2,1,4,3,4,1,4,1,1,2,4,3,1,1,2,3,2,1,2,1,1,1,3,1,1,4,4,3,1,1,1,3,1,3,1,3,2,2,3);
var tested = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var existsWin2 = 0;
var num = 1;
var cp = 0;   // Current problem
var cmode = 0;
var good = 0;

function Start(mode)
{
  cmode = mode;
  for ( i=0; i<75; i++ )
  {
    tested[i] = 0;
  }
  if ( mode==1 )
  {
    for ( i=25; i<75; i++ )
    {
      tested[i] = 1;
    }
  } 
  else if ( mode==2 )
  {
    for ( i=50; i<75; i++ )
    {
      tested[i] = 1;
    }
  }
  else if ( mode==3 )
  {
    for ( i=25; i<50; i++ )
    {
      tested[i] = 1;
    }
  }
  DisplayProblem(0);
}


function DisplayProblem(problem)
{
  win2 = window.open("","Problem","location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,width=550,height=500");
  win2.focus();
  if ( problem==0 )
  {
    cp++;
    with(Math)
    {
      num=floor(NP*random())+1;
    }
    if ( tested[num-1] )
    {
      for ( i=0; i<NP; i++ )
      {
        num = num+1;
        if ( num>NP ) { num=1; } 
        if ( !tested[num-1] ) { break; }
      }
      if ( i==NP )
      {
        DisplayFinalPage();
        return;
      }
    }
  }
  else
  {
    num = problem;
  }    
  win2.document.open();
  win2.document.writeln("<body bgcolor=#FFFFCC>");
  win2.document.write("<b>Problem "+cp+":</b> ");
  win2.document.write("Is the function <img src=\"aprf.gif\"align=\"middle\"> ");
  win2.document.write("continuous at <img src=\"aprxc.gif\" align=\"bottom\"> ? ");
  win2.document.writeln("If not, why?");
  win2.document.writeln("<p><center>");
  win2.document.writeln("<img src=\"apr"+num+".gif\">");
  win2.document.writeln("</center><p>");
  win2.document.writeln("Choices are:<p>");
  win2.document.writeln("<form name=\"testform\"><center><table><tr><td>");
  win2.document.write("<input type=radio name=\"test\" value=\"1\" checked> 1. ");
  win2.document.write("<img src=\"aprf.gif\" align=\"middle\"> is continuous at ");
  win2.document.writeln("<img src=\"apr"+num+"_1.gif\" align=\"top\"> .<br>");
 //  win2.document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
  win2.document.write("<input type=radio name=\"test\" value=\"2\"> 2. ");
  win2.document.writeln("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is not defined.<br>");
  win2.document.write("<input type=radio name=\"test\" value=\"3\"> 3. ");
  win2.document.write("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is defined but ");
  win2.document.writeln("<img src=\"apr"+num+"_3.gif\" align=\"middle\"> does not exist.<br>");
  win2.document.write("<input type=radio name=\"test\" value=\"4\"> 4. ");
  win2.document.write("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is defined and ");
  win2.document.write("<img src=\"apr"+num+"_3.gif\" align=\"middle\"> exists but ");
  win2.document.writeln("these two numbers are not equal.<br>");
  win2.document.writeln("</td></tr></table>");
  win2.document.writeln("<p><input type=button name=\"but1\" value=\"Check Answer.\" onClick=\"opener.DisplaySolution("+num+","+problem+",document.testform)\"></center></form>");
  win2.document.close();
  existsWin2=1;
}

function DisplayComment(num)
{
  win2.document.writeln("<p><b>Comments:</b><p>");
  ans = sol[num-1];
  if ( ans==1 || ans==4 )
  {
    win2.document.writeln("<center>");
    win2.document.writeln("<img src=\"apr"+num+"c.gif\"></center>");
  }
  else if ( ans==2 )
  {
    win2.document.writeln("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is not defined.");
  }
  else if ( ans==3 )
  {
    win2.document.write("<img src=\"apr"+num+"c.gif\" align=\"middle\"> but ");
    win2.document.write("<img src=\"apr"+num+"_3.gif\" align=\"middle\"> ");
    win2.document.writeln("does not exist.");
  }   
}

function DisplaySolution(num,problem,form)
{
  var num1 = 1;
  if ( tested[num-1]==1 && problem==0 )
  {
     DisplayProblem(0);
     return;
  }
  tested[num-1] = 1;
  if ( form.test[0].checked ) { num1 = 1; }
    else if ( form.test[1].checked ) { num1 = 2; }
      else if ( form.test[2].checked ) { num1 = 3; }
        else num1 = 4;
  win2.document.open();
  win2.document.writeln("<body bgcolor=#FFFFCC>");
  win2.document.write("<b>Problem "+cp+":</b> ");
  win2.document.write("Is the function <img src=\"aprf.gif\" align=\"middle\"> ");
  win2.document.write("continuous at <img src=\"aprxc.gif\" align=\"bottom\"> ? ");
  win2.document.writeln("If not, why?");
  win2.document.writeln("<p><center>");
  win2.document.writeln("<img src=\"apr"+num+".gif\">");
  win2.document.writeln("</center><p>");
  win2.document.write("<b>Your answer: </b> <p>"+num1+". ");
  if ( num1==1 )
  {
      win2.document.write("<img src=\"aprf.gif\" align=\"middle\"> is continuous at ");
      win2.document.writeln("<img src=\"apr"+num+"_1.gif\" align=\"top\"> ."); 
  }
  else if ( num1==2 )
  {
     win2.document.writeln("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is not defined.");
  }
  else if ( num1==3 )
  {
     win2.document.write("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is defined but ");
     win2.document.writeln("<img src=\"apr"+num+"_3.gif\" align=\"middle\"> does not exist.");
  }
  else
  {
     win2.document.write("<img src=\"apr"+num+"_2.gif\" align=\"middle\"> is defined and ");
     win2.document.write("<img src=\"apr"+num+"_3.gif\" align=\"middle\"> exists but ");
     win2.document.writeln("these two numbers are not equal.");
  }
  if ( sol[num-1] == num1 )
  {
    win2.document.writeln("<p> You are RIGHT!<p>");
    DisplayComment(num);
    if ( problem==0 )
    {
      good++;
    } 
    win2.document.write("<div align=right>");
    win2.document.writeln("<form><input type=button name=\"but1\" value=\"Get next problem.\" onClick=\"opener.DisplayProblem(0)\"></form>");
    win2.document.writeln("<div align=left>");
  }
  else
  { 
    win2.document.writeln("<p> You are WRONG!<p>");
    win2.document.write("<div align=right>:");
    win2.document.writeln("<form><input type=button name=\"but1\" value=\"Try again!\" onClick=\"opener.DisplayProblem("+num+")\"></form>");
  }
  win2.document.close();
}

function closeWin() 
{
  onerror=null
  if (existsWin2 ==1 ) {win2.close()}
} 

function perc(x,y)
{
  return Math.round(1000.0*(x/y))/10.0;
}

function DisplayFinalPage()
{
  win2.document.open();
  win2.document.writeln("<body bgcolor=#FFFFCC>");
  win2.document.write("<b> You have reached the end of this quiz.");
  win2.document.writeln(" Thank you!</b><p>");
  win2.document.writeln("You answered correctly "+good+" problems out of "+cp+" possible, which totals about "+perc(good,cp)+"%<p>");
  cp = 0;
  win2.document.write("<a href=\"javascript:opener.Start("+cmode+")\">");
  win2.document.write("Click here to run the test again.</a><br><br><p>");
  win2.document.write("<a href=\"javascript:opener.closeWin()\">");
  win2.document.write("Click here to quit.</a>");
  win2.document.close();
}
