/*------------------------------------------------------------------*\
 * Quiz_kennis                                                      *
 * This script is based on scripts available free online at         *
 * The JavaScript Source :: http://javascript.internet.com          *
 *                                                                  *
 * Version 1.0         2007 Created by Gert den Drijver             *
\*------------------------------------------------------------------*/ 

var imgArrField = new Array();
var answerArray = new Array();
var arrPictureNumbers = new Array(); 
var IMG_MAP= "../pictures/";
var IMG_PATH = "../images/"; 
var IMG_OFFSET=0;
var nImages = 4;
var nQ=4;
var nSumImages = nQ*nImages;
var nNumbers=4; //uniqueN
var nStart=1;
var nEnd=5;
var view = -1;
var correctCount=0 ;
var newQ =false;
var AnswerGiven = true;

//dDr unique number generator for nNumbers between Start and End
function  uniqueN(nNumbers,nStart,nEnd){
   startImageNumber=nStart;
   endImageNumber = nEnd;    
   for(var i = 0; i < nNumbers; i++)
     {
       n1 = Math.round(Math.random() * ((endImageNumber + 1 - startImageNumber)-1));
       n1 = startImageNumber + n1;
//dDr unique number check
       uniqueNumber = true;
       for(var t = 0; t < i; t++)
         {
           if(arrPictureNumbers[t] == n1)
             {uniqueNumber=false;}
           else
             {}
         }         
         if( uniqueNumber == false)
           {i--;}
         else
         {
           arrPictureNumbers[i] = new Array(); 
           arrPictureNumbers[i] = n1;
         }       
      }
}      
//dDr End uniqueN

function  uniqueA(){
   start=0;
   end=3;    
   for(var i = 0; i < 4; i++)
     {
       n1 = Math.round(Math.random() * ((end + 1 - start)-1));
      }
      return n1;
}
//dDr End uniqueA

function choiceQ(aantal){
  nQ=aantal;
  view = -1;
  correctCount=0 ;
  newQ =false;
  AnswerGiven = true;
  for (var i =-4; i<0;i++)  
  {
  document.images[nImages + i + IMG_OFFSET].src = "../images/card.jpg"; 
  } 
  document.images[nImages +0 + IMG_OFFSET].src = "../images/blank.jpg"; 
  document.images[nImages + 1 + IMG_OFFSET].src = "../images/blank.gif";  
  document.images[nImages + 2 + IMG_OFFSET].src = "../images/blank.gif";
    for (var a = -5; a<0;a++)  
      {
      if (aantal==(30+a*5) ){
      document.images[IMG_OFFSET + 2*a].src = "../images/qcorrect.gif";
      }
      else
      document.images[IMG_OFFSET + 2*a].src = "../images/blank.gif";      
      }
}
//dDr End choiceQ

function loadQ(numbersQ,startD,endD){
  if(document.images)
  {
    numbersD=nImages *numbersQ;
    nQ=numbersQ;
    nSumImages = nQ*nImages;
    uniqueN(numbersD,startD,endD);
    for (var q = 0; q < numbersQ; q++)
    {
      for(var i = 0; i < nImages; i++)
         {      
         number = arrPictureNumbers[(q*4+i)];
         imgArrField[(q*4+i)*2 ] = new Image();
         imgArrField[(q*4+i)*2 ].src = IMG_MAP + "pic" + (number) + "a.jpg";
         imgArrField[(q*4+i)*2 + 1] = new Image(); 
         imgArrField[(q*4+i)*2 + 1].src = IMG_MAP + "pic" + (number) + "b.jpg";
         }
     }
    }
      searchFirstImage();
      checkLoading();
}
//dDr End loadQ

function showQuestion(q){
   if(document.images)
     {
      if (AnswerGiven == true)
        {if (view < nQ-1)
           {
            view = view + q;
            newQ = true;
            AnswerGiven = false;
            for(var i = 0; i < (nImages); i++)
              {
               count= (4*view+i)*2;
               document.images[i + IMG_OFFSET].src = imgArrField[count].src; // keuze borden
              }
            answerN=uniqueA();//bepaal answer
            answerArray = new Array(); //sla answer op in array      
            answerArray[view] = answerN;
            antw =((4*view +(answerArray[view]))*2 + 1);
            document.images[nImages + IMG_OFFSET].src = imgArrField[antw].src; //betekenis vh bord
            document.images[nImages +1 + IMG_OFFSET].src = "../images/blank.gif"; //blank antwoord
           }
          else
           {
            var alertMsg ="Einde van de quiz!\n\n";
            alertMsg += "Deze quiz bestond uit "+ nQ + " vragen. \n\n";  
            alertMsg += "Hiervan zijn er " + correctCount + " goed beantwoord.";
            alert(alertMsg);
            document.images[nImages + 1 + IMG_OFFSET].src = "../afb/k_memory.gif"; //blank antwoord           
            document.images[nImages + 2 + IMG_OFFSET].src = "../afb/k_drieoprij.gif"; //blank antwoord
           }
        }
      else
       alert ("Je moet eerst de vraag beantwoorden door op een bord te klikken !");
     }
}
//dDr End showQuestion

function checkAnswer(position){
   if(document.images)
   {
   if (newQ == true)
     {
     if (position==answerArray[view])
      {
      correctCount = correctCount +1;
      document.images[nImages +1 + IMG_OFFSET].src = "../images/qcorrect.gif" ;
      }
     else
      { 
      document.images[nImages +1 + IMG_OFFSET].src = "../images/qincorrect.gif" ;
      }
      newQ= false;
      AnswerGiven = true;
     }
   }
}
//dDr End checkAnswer

function searchFirstImage()
 {
   for(var i = 0; i < document.images.length; i++)
   {
     if(document.images[i].name == "show_id")
     {
       IMG_OFFSET = i + 1;
       break;
     }
   }
 }

function countLoadedImages()
 {
   var nCompleted = 0;
   for(var i = 0; i < (nSumImages); i++)
   {
     if(imgArrField[i].complete)
     {
       nCompleted++;
     } //else alert(imgArrField[i].src);
   }
   //alert (nCompleted);
   return nCompleted;
 }
//dDr End countLoadedImages

function checkLoading()
{
  var nLoaded = countLoadedImages();
  if(nLoaded < nSumImages)
  {
    document.images[IMG_OFFSET - 1].width = 435 - (435 / nSumImages * nLoaded);
    window.status = "" + nLoaded + " of " + nSumImages + " pictures loaded";
    setTimeout("checkLoading()", 250);
  }
  else
  {
    document.images[IMG_OFFSET - 1].src = IMG_PATH + "blank.gif"; 
    document.images[IMG_OFFSET - 1].width = 5;
    window.status = "";
  }
}
//dDr End checkLoading

