//Support Javascript for matching type questions created by thd IBS Editor.
//Created 9/1/01 kdg

var record_results = true;
    if ( record_results )
    {
//        parent.enableNext(false);
    }

   var numQuestions;
   var nMaxTries;
   var sCaf, sWaf1, sWaf2;

   var aImage_n = new Array();
   var aImage_h = new Array();
   var aImage_r = new Array();

   var aAnswers = new Array();
   var aChosen = new Array();
   var nNumItems = new Array();
   var offsets = new Array();
   var nNumTries = new Array();
   var nChosen = new Array();

   function preloadImages()
   {
      for (idx = 0; idx < numQuestions; idx++) {
        aImage_n[0+offsets[idx]] = new Image();
        aImage_n[0+offsets[idx]].src="../../../../cbisupport/images/custom/stick_blank.gif";
        for (var ii=1; ii <= nNumItems[idx]; ii++)
        {
            aImage_n[ii+offsets[idx]] = new Image();
            aImage_h[ii+offsets[idx]] = new Image();
            aImage_r[ii+offsets[idx]] = new Image();

            aImage_n[ii+offsets[idx]].src="../../../../cbisupport/images/custom/click" +ii + "_n.gif"
            aImage_h[ii+offsets[idx]].src="../../../../cbisupport/images/custom/click" +ii + "_h.gif"
            aImage_r[ii+offsets[idx]].src="../../../../cbisupport/images/custom/click" +ii + "_r.gif"
        }
      }
   }

   function click(questionNum,nIndex)
   {
      var sName = "";

      // leave if too many tries
      if ( nNumTries[questionNum] >= nMaxTries )
         return;

      // restore previous selected graphic?
      if ( nChosen[questionNum] != 0 )
      {
         sName = "click" + questionNum +nChosen[questionNum];
         document.images[sName].src = aImage_n[nChosen[questionNum]+offsets[questionNum]].src;
      }

      // hilight selected graphic
      sName = "click" + questionNum + nIndex;
      document.images[sName].src =  aImage_h[nIndex+offsets[questionNum]].src;
      nChosen[questionNum] = nIndex;
   }

   function stick(questionNum,nIndex)
   {
      var sName = "";

      // leave if too many tries
      if ( nNumTries[questionNum] >= nMaxTries )
         return;

      // leave if no selected graphic
      if ( nChosen[questionNum] == 0 )
         return;

      // set chosen array
      aChosen[nIndex+offsets[questionNum]] = nChosen[questionNum];

      // restore click graphic to normal
      sName = "click" + questionNum + nChosen[questionNum];
      document.images[sName].src = aImage_n[nChosen[questionNum]+offsets[questionNum]].src;

      // update stick graphic
      sName = "stick" + questionNum+nIndex;
      document.images[sName].src = aImage_h[nChosen[questionNum]+offsets[questionNum]].src;

      // reset selected variable
      nChosen[questionNum] = 0;
   }

   function evaluate(questionNum)
   {
      var isCorrect = true;
      var sName = "";

      nNumTries[questionNum]++;

      if ( nNumTries[questionNum] > nMaxTries )
         return;

      for (var ii=1; ii <= nNumItems[questionNum]; ii++)
      {
         // restore click images
         sName = "click" + questionNum + ii;
         document.images[sName].src = aImage_n[ii+offsets[questionNum]].src;
         var index = ii+offsets[questionNum];

         if ( aAnswers[index] != aChosen[ii+offsets[questionNum]] )
         {
            // show red image?
            if ( nNumTries[questionNum] < nMaxTries )
            {
              sName = "stick" + questionNum + ii;
              document.images[sName].src = aImage_n[0+offsets[questionNum]].src;
              aChosen[ii+offsets[questionNum]] = 0;
            }
            else
            {
              sName = "stick" + questionNum + ii;
              document.images[sName].src = aImage_r[aAnswers[index]+offsets[questionNum]].src;
            }
            isCorrect = false;
         }
      }  // end -- for loop over items in this question

      if ( isCorrect )
      {
         showFeedback(sCaf);
         nNumTries[questionNum] = nMaxTries;

      //   if(record_results)
      //   {
      //       top.number_correct++;
      //                parent.enableNext(true);
      //   }
      }
      else if ( nNumTries[questionNum] < nMaxTries )
         showFeedback(sWaf1);
      else
      {
         showFeedback(sWaf2);

      //   if(record_results)
      //   {
      //       top.number_incorrect++;
            // parent.enableNext(true);
      //   }
      }
   }

   function showFeedback(fb_id)
   {
     alert(fb_id);
   }

   function init(params)
   {
      var argv = init.arguments;
      numQuestions = init.arguments.length;
      offsets[0] = 0;
      for (idx = 0; idx < numQuestions; idx++) {
         nNumItems[idx] = argv[idx];
         offsets[idx+1] = offsets[idx] + argv[idx] + 1;
         for (idx2 = 1; idx2 <= argv[idx]; idx2++) {
            // init correct answer list
            aAnswers[idx2+offsets[idx]] = idx2;
         }
         nNumTries[idx] = 0;
         nChosen[idx] = 0;
      }

      nMaxTries = 3;

      // init feedback
      sCaf = "Correct. Great work!";
      sWaf1 = "Incorrect. Try again.";
      sWaf2 = "You are out of tries. The correct answer is shown.";

      // preload images
      preloadImages();
   }
