/*-------------------------------------------------------------------------------------
        Koffie automaat selector script V1.0
        Auteur        :        Michel van der Breggen
        Bedrijf        :        CSolutions BV
        Datum        :        27-11-2006
--------------------------------------------------------------------------------------*/

// Dit is de lijst met geselecteerde antwoorden
var aQuestionAnswer = new Array(4);
aQuestionAnswer[0] = new Array();
aQuestionAnswer[0]["Answers"] = new Array();
aQuestionAnswer[1] = new Array();
aQuestionAnswer[1]["Answers"] = new Array();
aQuestionAnswer[2] = new Array();
aQuestionAnswer[2]["Answers"] = new Array();
aQuestionAnswer[3] = new Array();
aQuestionAnswer[3]["Answers"] = new Array();

// Deze functie voegt een antwoord toe aan een vraag
function addAnswer( iQuestion, iAnswerNr )
{
   var iTeller;

   iTeller = aQuestionAnswer[iQuestion]["Answers"].length;
   aQuestionAnswer[iQuestion]["Answers"][iTeller] = iAnswerNr;
}

// Deze functie verwijdert een antwoord van een vraag
function removeAnswer( iQuestion, iAnswerNr )
{
   var iTeller;
   var iIndex = -1;

   for (iTeller = 0; iTeller < aQuestionAnswer[iQuestion]["Answers"].length; iTeller++)
   {
      if (aQuestionAnswer[iQuestion]["Answers"][iTeller] == iAnswerNr)
      {
         iIndex = iTeller;
         break;
      }
   }

   if (iIndex != -1)
   {
      aQuestionAnswer[iQuestion]["Answers"].splice(iIndex, 1);
   }
}

// Deze functie verwijdert alle antwoorden van een vraag
function clearQuestion(iQuestion)
{
   aQuestionAnswer[iQuestion]["Answers"] = new Array();
}

// Deze functie berekent de score voor elk apparaat aan de hand van de gegeven antwoorden
function calcScore()
{
   var iTeller;
   var iTeller2;
   var iTeller3;
   var iScore;

   // score resetten
   for (iTeller = 0; iTeller < aApparaten.length; iTeller++)
   {
      aApparaten[iTeller]["score"] = 0;
   }

   // score optellen
   for (iTeller = 0; iTeller < aApparaten.length; iTeller++)
   {
      iScore = 0;

      for (iTeller2 = 0; iTeller2 < aQuestionAnswer.length; iTeller2++)
      {
         for (iTeller3 = 0; iTeller3 < aQuestionAnswer[iTeller2]["Answers"].length; iTeller3++)
         {
            iScore = iScore + aApparaten[iTeller]["Punten"][  aQuestionAnswer[iTeller2]["Answers"][iTeller3]  ];
         }
      }

      aApparaten[iTeller]["Score"] = iScore;
   }
}

// Deze functie maakt de getoonde apparaten onzichtbaar
function InvisibleResults()
{
   document.getElementById("selectietitel").style.display = "none";
   document.getElementById("selectieresult").style.display = "none";
}

// Deze functie laat voor elk apparaat de score berekenen en toont vervolgens de top 5 apparaten
function showScore()
{
   var aList = new Array();
   var aGetoond = new Array();
   var bMagTonen;
   var iTeller;
   var iTeller2;
   var iTeller3;
   var iTemp1;
   var iTemp2;

   calcScore();

   // Aanmaken array om te sorteren
   for (iTeller = 0; iTeller < aApparaten.length; iTeller++)
   {
      aList[iTeller] = new Array();
      aList[iTeller]["ID"] = iTeller;
      aList[iTeller]["Score"] = aApparaten[iTeller]["Score"];
   }

   // sorteer
   for (iTeller = (aList.length - 1); iTeller > 0; iTeller--)
   {
      for (iTeller2 = 0; iTeller2 < iTeller; iTeller2++)
      {
         if (aList[iTeller2 + 1]["Score"] > aList[iTeller2]["Score"])
         {
            iTemp1 = aList[iTeller2 + 1]["ID"];
            iTemp2 = aList[iTeller2 + 1]["Score"];

            aList[iTeller2 + 1]["ID"] = aList[iTeller2]["ID"];
            aList[iTeller2 + 1]["Score"] = aList[iTeller2]["Score"];

            aList[iTeller2]["ID"] = iTemp1;
            aList[iTeller2]["Score"] = iTemp2;
         }
      }
   }

   // Toon bovenste 5 resultaten
   iTeller3 = 0;
   for (iTeller = 0; iTeller < aList.length; iTeller++)
   {
      // Ontdubbeling: er zijn een paar apparaten met dezelfde naam. Deze mogen niet dubbel getoond worden.
      bMagTonen = true;
      for (iTeller2 = 0; iTeller2 < aGetoond.length; iTeller2++)
      {
         if (aGetoond[iTeller2] == aApparaten[  aList[iTeller]["ID"]  ]["Apparaat"])
         {
            bMagTonen = false;
            break;
         }
      }

      if (bMagTonen == true)
      {
         switch (iTeller3)
         {
            case 0: oElement = document.getElementById("app01");
                    oElement_href = document.getElementById("app01_href");
                    oElement_Nr = document.getElementById("nr1");
                    break;
            case 1: oElement = document.getElementById("app02");
                    oElement_href = document.getElementById("app02_href");
                    oElement_Nr = document.getElementById("nr2");
                    break;
            case 2: oElement = document.getElementById("app03");
                    oElement_href = document.getElementById("app03_href");
                    oElement_Nr = document.getElementById("nr3");
                    break;
            case 3: oElement = document.getElementById("app04");
                    oElement_href = document.getElementById("app04_href");
                    oElement_Nr = document.getElementById("nr4");
                    break;
            case 4: oElement = document.getElementById("app05");
                    oElement_href = document.getElementById("app05_href");
                    oElement_Nr = document.getElementById("nr5");
                    break;
         }

         oElement.alt = aApparaten[  aList[iTeller]["ID"]  ]["Apparaat"];
         oElement.src = aApparaten[  aList[iTeller]["ID"]  ]["ImageSource"] + ".jpg";
         oElement_href.href = aApparaten[  aList[iTeller]["ID"]  ]["Href"];
         oElement_Nr.innerHTML = aApparaten[  aList[iTeller]["ID"]  ]["Apparaat"];

         aGetoond[ aGetoond.length ] = aApparaten[  aList[iTeller]["ID"]  ]["Apparaat"];

         iTeller3++;
         if (iTeller3 > 4)
         {
            break;
         }
      }
   }

   document.getElementById("selectietitel").style.display = "inline";
   document.getElementById("selectieresult").style.display = "inline";

   saveData();
}

function createCookie(name,value,days)
{
   if (days)
   {
      var date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      var expires = "; expires="+date.toGMTString();
   }
   else
   {
      var expires = "";
   }
   document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name)
{
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for (var i=0;i < ca.length;i++)
   {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}

function eraseCookie(name)
{
   createCookie(name,"",-1);
}

function saveData()
{
   var iTeller;
   var iTeller2;
   var AnswerString;

   createCookie("iCurrentQuestion",iCurrentQuestion, 0);

   for (iTeller = 0; iTeller < iNrQuestions; iTeller++)
   {
      AnswerString = "";
      for (iTeller2 = 0; iTeller2 < aQuestionAnswer[iTeller]["Answers"].length; iTeller2++)
      {
         if (iTeller2 == (aQuestionAnswer[iTeller]["Answers"].length - 1))
         {
            AnswerString = AnswerString + aQuestionAnswer[iTeller]["Answers"][iTeller2];
         }
         else
         {
            AnswerString = AnswerString + aQuestionAnswer[iTeller]["Answers"][iTeller2] + ",";
         }
      }
      createCookie("sAnswer" + iTeller, AnswerString, 0);
   }
}

function loadData()
{
   var bDataGeladen = true;
   var iTeller;
   var aAnswers;
   var c_iCurrentQuestion = readCookie("iCurrentQuestion");
   var c_sAnswer0 = readCookie("sAnswer0");
   var c_sAnswer1 = readCookie("sAnswer1");
   var c_sAnswer2 = readCookie("sAnswer2");
   var c_sAnswer3 = readCookie("sAnswer3");

   if ((c_iCurrentQuestion == null) || (c_sAnswer0 == null) || (c_sAnswer1 == null) || (c_sAnswer2 == null) || (c_sAnswer3 == null))
   {
      bDataGeladen = false;
   }
   else
   {
      iCurrentQuestion = c_iCurrentQuestion;

      aAnswers = c_sAnswer0.split(',');
      for (iTeller = 0; iTeller < aAnswers.length; iTeller++)
      {
         aQuestionAnswer[0]["Answers"][iTeller] = aAnswers[iTeller];
      }
      aAnswers = c_sAnswer1.split(',');
      for (iTeller = 0; iTeller < aAnswers.length; iTeller++)
      {
         aQuestionAnswer[1]["Answers"][iTeller] = aAnswers[iTeller];
      }
      aAnswers = c_sAnswer2.split(',');
      for (iTeller = 0; iTeller < aAnswers.length; iTeller++)
      {
         aQuestionAnswer[2]["Answers"][iTeller] = aAnswers[iTeller];
      }
      aAnswers = c_sAnswer3.split(',');
      for (iTeller = 0; iTeller < aAnswers.length; iTeller++)
      {
         aQuestionAnswer[3]["Answers"][iTeller] = aAnswers[iTeller];
      }
   }

   if (bDataGeladen == true)
   {
      activeMenu(5, 'answer');
   }
   else
   {
      activeMenu(1, 'menu');
   }
}

function clearData()
{
   eraseCookie('iCurrentQuestion');
   eraseCookie('sAnswer0');
   eraseCookie('sAnswer1');
   eraseCookie('sAnswer2');
   eraseCookie('sAnswer3');
}
