var gotitright = 0;
var verified=0;
var corrected=0;
var corrWin=null;
var cleanQuestions = new Array ( numberofQ);
var tempObj;
var k;

Responses      = new Array ( numberofBlanksTotal );
correctAnswers = new Array ( numberofBlanksTotal );
var tricherSrc='images/trichereg.jpg';

var init     =  0;
var verifier =  1;
var correct  =  2;

var corrWin;
var corrWinOpen=0;

if (blankSize == null) {
var blankSize = 10;
}


var alphabet = new Array ( 26 );

alphabet[0]  = "a";
alphabet[1]  = "b";
alphabet[2]  = "c";
alphabet[3]  = "d";
alphabet[4]  = "e";
alphabet[5]  = "f";
alphabet[6]  = "g";
alphabet[7]  = "h";
alphabet[8]  = "i";
alphabet[9]  = "j";
alphabet[10] = "k";
alphabet[11] = "l";
alphabet[12] = "m";
alphabet[13] = "n";
alphabet[14] = "o";
alphabet[15] = "p";
alphabet[16] = "q";
alphabet[17] = "r";
alphabet[18] = "s";
alphabet[19] = "t";
alphabet[20] = "u";
alphabet[21] = "v";
alphabet[22] = "w";
alphabet[23] = "x";
alphabet[24] = "y";
alphabet[25] = "z";


function setQuestionsFrame ( frame ) {
	
	frame.document.writeln( HTML_header1 );	

	if (titleImage != "") {
   frame.document.writeln( "<a href\=\"../../index.htm\"  border\=\"0\"><img src=" + titleImage + " ALT\=\"Canal Reve\" border\=\"0\"></a>"); 
	}

//	frame.document.writeln( "<center>" );

       if (Back != "" ) {

   frame.document.writeln( "<a href\=\""+Back+"\" target\=_top><img SRC\=\"images/leftarrow.gif\" ALT\=\"Back\" border\=\"0\"></a>"); 

 }




       if (Home != "" ) 

  frame.document.writeln( "<a href\=\""+Home+"\" target\=_top><img SRC\=\"images/topbutton.gif\" ALT\=\"Home\" border\=\"0\"></a>" );


       if (Next != "" ) {

  frame.document.writeln( "<a href\=\""+Next+"\" target\=_top><img SRC\=\"images/rightarrow.gif\" ALT\=\"Next\" border\=\"0\"></a>" );

 }

   frame.document.writeln( "</center>" );

  if ( ExerciseTitle != "" )

     frame.document.writeln( "<h1>" + ExerciseTitle + "</h1>" );

  frame.document.writeln( HTML_header2 );

  frame.document.writeln( ExerciseInstruction ); 

  frame.document.writeln( HTML_header3 );

  frame.document.writeln( "<FORM>");

  setFillinQ ( frame.document );


  frame.document.writeln( "</FORM>" );  
  preloadImages();
}


function setFillinQ ( document )
{

  var tempBuffer = "";
  var rep        = "";
  var c          = 0; 

  for ( var i = 0; i < numberofQ; i++ ) 
     {

	if ( HTML_objects[i] )
		document.writeln( HTML_objects[i] );
	
if	(ExerciseType == "Fill-in Exercise") { 
	document.writeln( (i + 1).toString() + ". " ); 
}	

	tempBuffer =  Questions[i];

	for ( var j = c; j < c + numberofBlanks[i]; j++ )
	   {

	      if ( Responses[j] )
		 rep = "<img name=\"smile" + alphabet[j] + "\" src='images/blank.gif'><INPUT TYPE=\"text\" SIZE=\"" + blankSize + "\" VALUE=\"" + Responses[j] + "\" NAME=\"input" + j +"\">";
	      else
		 rep = "<img name=\"smile" + alphabet[j] + "\" src='images/blank.gif'><INPUT TYPE=\"text\" SIZE=\"" + blankSize + "\" NAME=\"input" + j + "\">";

		  
	      tempBuffer = tempBuffer.replace (/<BLANK[0-9]*>/, rep );

	   }

	c += numberofBlanks[i];
	      

	document.writeln ( tempBuffer + "<P>" );


     }
}

function verifyResponses ( frame ) 
{

  var c = 0;
  var i, j, t;

  var gotitright = 0;

   k=0;
  for ( i = 0; i < numberofQ; i++ ) 
     {

	
        for ( j = c; j < c + numberofBlanks[i]; j++ ) {
	    tempObj = "frame.document.forms[0].input" + k + ".value";
	    Responses[j] = (eval(tempObj));
	    k++;
	}

	c += numberofBlanks[i];
	

     }

 
 var tmpResponse, tmpCorrectAnswer, tmpBuffer, tmpRep;
 var tmpCorrectAnswers = new Array();

 c = 0;

 for ( i = 0; i < numberofQ; i++ ) 
    {

       for ( j = c; j < c + numberofBlanks[i]; j++ )
	
	  {
	     Responses[j] = iso2html ( Responses[j] ); 

	     tmpResponse = stringFlatten ( Responses[j] );
             tmpCorrectAnswer = stringFlatten ( Answers[j] );

	     tmpCorrectAnswers = tmpCorrectAnswer.split ("|");

	     correctAnswers[j] = 0; 

	     for ( var l = 0; l < tmpCorrectAnswers.length; l++ )
		{
		   if ( tmpResponse == tmpCorrectAnswers[l] ) 
		       {
			   correctAnswers[j] = 1; 
		       }
		}

	     tempObj="frame.document.smile" + alphabet[j];
	     if ( correctAnswers[j] == 1 )
		{	
		  gotitright++;
		  (eval(tempObj)).src='images/right.gif';

		}
	     else 
		{
		   if (Responses[j] == "") 
		      {
			
			(eval(tempObj)).src='images/none.gif';
			}
		   else 
		      {
			(eval(tempObj)).src='images/wrong2.gif'; 
		      }
               }

	 }


       t = 1; 

       for ( var j = c; j < c + numberofBlanks[i]; j++ )
	  if ( correctAnswers [j] == 0 )
	     t = 0; 

       c += numberofBlanks[i]; 
	  
    }

   return gotitright;


}              


function correctResponses (frame) 
{

if (verified > 1) {

corrected++;

parent.checkIt(parent.verifier, parent);

  var c = 0;

	if (corrected == 1) {
		corrWin = window.open("","","toolbar=no,location=no,directories=no,scrollbars=yes,menubar=no,width=260,height=300");
	}

	if (corrWin.closed) {
		corrWin = window.open("","","toolbar=no,location=no,directories=no,scrollbars=yes,menubar=no,width=260,height=300");
	}

  corrWin.document.open();
  corrWin.document.writeln ( "<BODY BGCOLOR=#ffffff>" );
  
  corrWin.document.writeln ( "<center><b>" + getTally(gotitright) + "</b></center><br>" );
  corrWin.document.writeln ( "<h2>Voici les r&eacute;ponses correctes :</h2>" );

  for (var i = 0; i  < numberofQ; i++) 
    {

       corrWin.document.writeln ( (i + 1).toString() + ". " );

       for ( var j = c; j < c + numberofBlanks[i]; j++ )

	  {
	     
	var fixMult = Answers[j].replace (/\|/g, " <font color = \"blue\"><i>ou</i></font> ");

//	     if ( numberofBlanks[i] < 2 )
//		corrWin.document.write ( "<font color =\"blue\">" + alphabet[0] + "</font>. " );

	     if ( numberofBlanks[i] > 1 )
		corrWin.document.write ( "<font color =\"blue\">" + alphabet[j-c] + "</font>. " );

		corrWin.document.writeln( fixMult);
		
		if (j != c + numberofBlanks[i])
			corrWin.document.writeln("<br>" + "&nbsp;&nbsp;&nbsp;");

	  }

      c += numberofBlanks [i];


       if ( Explanations[i] )
	  corrWin.document.writeln( "<i>" + Explanations[i]  + "</i><br>");
       
       corrWin.document.writeln("<br>");
    }

  corrWin.document.writeln("<P></FONT>");
                    
}                                                     
}              


function setControlPanel ( state, frame, gr ) {

  
  if ( state == init )
     {
	frame.document.writeln("<CENTER>");

        frame.document.writeln("<a href='javascript:parent.checkIt(parent.verifier, parent);'><img src='images/verifier.jpg' border=0></a>");
	frame.document.writeln("<a href='javascript:parent.checkIt(parent.correct, parent);'><img name=tricher src='" + tricherSrc + "' border=0></a>");
	frame.document.writeln("<br>&#169 Les &Eacute;ditions Didier</CENTER></BODY></HTML>");  
  frame.document.close(); 
     }
  else if ( state == verifier )
     {
	verified++;

	if (verified==2) {
		frame.document.tricher.src='images/tricher.jpg';
		tricherSrc='images/tricher.jpg';
	}

     }
  else if ( state == correct )
     {
	if (verified > 1) {
	corrWin.document.writeln("<CENTER><FORM>");

      
	corrWin.document.writeln("<INPUT TYPE='button' VALUE='Fermer' onClick='self.close()'>");
	corrWin.document.writeln("</FORM></form></CENTER></BODY></HTML>");  
  corrWin.document.close(); 
	corrWin.focus();
     }
}
  

}


function initScreen () {

  setQuestionsFrame ( frames[0] );
  setControlPanel ( init, frames[0] );

}

function checkIt ( state, p ) 
{

  if ( state == init )
     setQuestionsFrame ( p.frames[0] );

  else if ( state == verifier )
     gotitright = verifyResponses ( p.frames[0] );

  else if ( state == correct )
     correctResponses ( p.frames[0] );
     
  setControlPanel ( state, p.frames[0], gotitright ); 

}

function getTally ( gotitright )
{

   var tally = 0;
   var out = "";

   total = numberofBlanksTotal;

   tally = parseInt(gotitright / total * 100);

   out = "Vous avez r&eacute;pondu correctement &agrave;<br> ";
   out = out + gotitright.toString() + " question(s) sur ";
   out = out + total.toString() + " (" + tally.toString() + "%).<br>";

   return out;
}


function stringFlatten ( string )
{

   var tempBuffer = string;

   tempBuffer = tempBuffer.replace (/^ */, "");
   tempBuffer = tempBuffer.replace (/[\,\.\!\?\-]/g, "");
   tempBuffer = tempBuffer.replace (/[ \t]+/g, " ");
   tempBuffer = tempBuffer.replace (/\s$/, "");

   tempBuffer = tempBuffer.toLowerCase ();

   return tempBuffer;
}


function iso2html ( string )
{
  var temp;

  temp = string; 


  temp = temp.replace ( /\340/g, "&agrave;" );
  temp = temp.replace ( /\342/g, "&acirc;" );


  temp = temp.replace ( /\347/g, "&ccedil;" );


  temp = temp.replace ( /\350/g, "&egrave;" );
  temp = temp.replace ( /\351/g, "&eacute;" );
  temp = temp.replace ( /\352/g, "&ecirc;" );
  temp = temp.replace ( /\353/g, "&euml;" );


  temp = temp.replace ( /\356/g, "&icirc;" );
  temp = temp.replace ( /\357/g, "&iuml;" );


  temp = temp.replace ( /\364/g, "&ocirc;" );


  temp = temp.replace ( /\374/g, "&uuml;" );
  temp = temp.replace ( /\371/g, "&ugrave;" );
  temp = temp.replace ( /\373/g, "&ucirc;" );


  return temp;

}

function closeCorr() {

	if (corrWin != null && corrWin.open) {
		corrWin.close();
	}
}

function preloadImages() {
	preloadedImages = new Array();
	preloadedImages[0] = new Image();
	preloadedImages[0].src = 'images/tricher.jpg';
	preloadedImages[1] = new Image();
	preloadedImages[0].src = 'images/none.jpg';
	preloadedImages[2] = new Image();
	preloadedImages[0].src = 'images/wrong2.jpg';
	preloadedImages[3] = new Image();
	preloadedImages[0].src = 'images/right.jpg';
}
	

// end -->








