﻿

var cardnmr;
var cardopen = 0;
var card1 = null;
var card2 = null;
var clicks = 0;
var c = new Array (20);
var usedNumbers1 = new Array(10);
var usedNumbers2 = new Array(10);
var cardIds = new Array(20);
var startTime;
var endTime;
var elapsedTime;
var objHttp;
var url="http://polwijnberg.dedoortest.nl/service/memory.asmx";



function start()

{
startTime= new Date();

GetScores();
document.getElementById("tmp").value = 0;
document.getElementById("beurt").innerHTML = 0;
document.getElementById("tmp2").value=10;
var images=document.getElementsByTagName("img");
var counter=0;

for(i=0;i<images.length;i++)
{
 
    if(images[i].className=="memoryCard")
    {
        cardIds[counter]= images[i].id;
  
        counter+=1;
    }
} 

mem = new Array (10)
mem[0]=new Image();mem[0].src = "/afbeeldingen/memory/cards/" + memImages[0];
mem[1]=new Image();mem[1].src = "/afbeeldingen/memory/cards/" + memImages[1];
mem[2]=new Image();mem[2].src = "/afbeeldingen/memory/cards/" + memImages[2];
mem[3]=new Image();mem[3].src = "/afbeeldingen/memory/cards/" + memImages[3];
mem[4]=new Image();mem[4].src = "/afbeeldingen/memory/cards/" + memImages[4];
mem[5]=new Image();mem[5].src = "/afbeeldingen/memory/cards/" + memImages[5];
mem[6]=new Image();mem[6].src = "/afbeeldingen/memory/cards/" + memImages[6];
mem[7]=new Image();mem[7].src = "/afbeeldingen/memory/cards/" + memImages[7];
mem[8]=new Image();mem[8].src = "/afbeeldingen/memory/cards/" + memImages[8];
mem[9]=new Image();mem[9].src = "/afbeeldingen/memory/cards/" + memImages[9];

    for (i=0;i<20;i++){	
	    usedNumbers1[i]=false;
	    usedNumbers2[i]=false;
	    var picId = "memCard" + i;
	   
	    document.getElementById(picId).src="/afbeeldingen/memory/membg.gif" 
    }

    for (i=0;i<20;i++){	
		    var j= -1
		    while(j<0){
			    j=randomize()
			    if (usedNumbers1[j]==false && usedNumbers2[j]==false) {
				    c[i]=j;
				    usedNumbers1[j]=true;
			    }
			    else if(usedNumbers1[j]==true && usedNumbers2[j]==false) {
				    c[i]=j;
				    usedNumbers2[j]=true;
			    }
			    else if (usedNumbers2[j]==true && usedNumbers1[j]==false) {
				    c[i]=j;
				    usedNumbers1[j]=true;
			    }
			    else if (usedNumbers1[j]==true && usedNumbers2[j]==true) {
			    j=-1
			    }				
		    }
    }

}
function randomize(){
	var rnd =0;
	do {
 	rnd = Math.round(10 * Math.random());
	} while (rnd>9)
	return rnd;
}
function GetScoresReturn()
{
   
   if(objHttp.readyState==READY_STATE_COMPLETE)
   {
        
        
         var strResponse = objHttp.responseText;		           	
	            // load the return into an XML data island
	         
	          var xmlDoc=loadXML(strResponse);
	          //alert(strResponse);
	          //alert(xmlDoc.getElementsByTagName("GetScoresResult")[0].firstChild.nodeValue);
	          document.getElementById("scoreList").innerHTML=xmlDoc.getElementsByTagName("GetScoresResult")[0].firstChild.nodeValue;
	          
	          
    }
}
function cardclick(cardnmr) {
            //if(document.images[cardnmr].src.substring((document.images[cardnmr].src.length-12),(document.images[cardnmr].src.length)) == "membg.gif") 
          
            var clickedImageSource = document.getElementById(cardIds[cardnmr]).src;
            clickedImage = document.getElementById(cardIds[cardnmr]);
            if(clickedImageSource.substring((clickedImageSource.length-12),(clickedImageSource.length)) == "membg.gif") 
            { 
              window.status=''
           }
           else if(cardnmr == card1) {
              window.status = ''
           }
           else {
             if (cardopen == 0) {
                  cardopen = 1
                  imgnmr = c[cardnmr]
                  clickedImage.src = mem[imgnmr].src 
                  card1 = cardnmr
                  b1 = imgnmr 
              }
             else if (cardopen == 1) {
                  cardopen = 2
                  imgnmr = c[cardnmr]
                  
                  clickedImage.src = mem[imgnmr].src 
                  card2 = cardnmr
                  b2 = imgnmr 
                  document.getElementById("tmp").value = (eval(document.getElementById("tmp").value) + 1)
                  document.getElementById("beurt").innerHTML = document.getElementById("tmp").value
				  //if ((b1==b2) && (document.tmpform.sound.checked)&&(document.tmpform.tmp2.value>1)){
			   	//		document.all.cool.play();
				//	}
				  setTimeout("resetimage(cardnmr)",1000)
             }
           }
	
}

function resetimage(cardnmr) {

          if (cardopen == 2) {
               if (b1 == b2) {
               
			       //document.images[card1].src = "images/memwhite.gif"
                   //document.images[card2].src = "images/memwhite.gif"
                   document.getElementById(cardIds[card1]).src = "/afbeeldingen/memory/memwhite.gif"
                   document.getElementById(cardIds[card2]).src = "/afbeeldingen/memory/memwhite.gif"
                   cardopen = 0
                   if (document.getElementById("tmp2").value == 1) {
				    //window.open("score.asp?score=" + document.tmpform.tmp.value +"","scores","toolbar=no,directories=no,menubar=no,width=300,height=200,resizable=no,status=0,scrollbars=no,top=100,left=100");
				    endTime=new Date();
				    elapsedTime = endTime-startTime;
				    
				    checkScore(document.getElementById("tmp").value, elapsedTime);
				   
				    
                   }
                   else {
                       document.getElementById("tmp2").value = (document.getElementById("tmp2").value - 1)
                   } 
               }
               else {
			   		 document.getElementById(cardIds[card1]).src = "/afbeeldingen/memory/membg.gif"
                   document.getElementById(cardIds[card2]).src = "/afbeeldingen/memory/membg.gif"
                   card1 = 99 
                   card2 = 99
                   cardopen = 0
               }
          }
}

function newGame() {
	document.tmpform.action="memory.asp?actie=geenscore";
	document.tmpform.submit();

}
function showForm(hasHighScore)
{
    
    
    document.getElementById("highScoreText").style.visibility="visible";
    if(hasHighScore==false)
    {
        document.getElementById("highScoreText").innerHTML="<p>Je had "+ document.getElementById("tmp").value + " nodig en " + Math.round(elapsedTime/1000) +" seconden. Helaas, je behoort niet tot de beste 10. <a href='http://polwijnberg.dedoortest.nl/memory.php'>Probeer het nog eens!</a>";
    }
    else
    {
         document.getElementById("highScoreText").innerHTML="<p>Je had "+ document.getElementById("tmp").value + " nodig en " + Math.round(elapsedTime/1000) +" seconden. Gefeliciteerd,  je behoort tot de beste 10. Vul je naam in en klik op de knop, dan kom je in de lijst</p>";
         document.getElementById("name").style.visibility="visible";
 
    
        document.getElementById("updateButton").style.visibility="visible";
    }
   
    
}
function hideForm()
{
    document.getElementById("highScoreText").innerHTML="<a href=''http://polwijnberg.dedoortest.nl/memory.php'>Probeer het nog eens!</a>";
    document.getElementById("name").style.visibility="hidden";
    document.getElementById("name").value="";
    document.getElementById("updateButton").style.visibility="hidden";
}
function updateScore()
{
    var name=document.getElementById("name").value;
    var score=document.getElementById("tmp").value;
    if(name=="")
    {
        alert("Sorry, je bent vergeten je naam in te vullen");
        document.getElementById("name").focus();
    }
    else
    {
    
        objHttp=initXMLHttpObject();
        var objArguments = new Object();			
        objArguments.name = name;
	    objArguments.score=score;
	    objArguments.time=elapsedTime;
        var soapEnvelope = GetSoapEnvelope("UpdateScores", objArguments);
        objHttp.onreadystatechange=UpdateScoresReturn;
        Send(soapEnvelope,"UpdateScores",url);
    } 
    
}
function UpdateScoresReturn()
{
    if(objHttp.readyState==READY_STATE_COMPLETE)
     {
        
        
         var strResponse = objHttp.responseText;		           	
	            // load the return into an XML data island	         
	          var xmlDoc=loadXML(strResponse);	      
	          hideForm();
	          GetScores();
	          
    }
}
function GetScores()
{
    objHttp=initXMLHttpObject();
    var soapEnvelope = GetSoapEnvelope("GetScores"); 
    objHttp.onreadystatechange=GetScoresReturn;
    Send(soapEnvelope,"GetScores",url);
    
    
}
function checkScore(score, elapsedTime)

{
    objHttp=initXMLHttpObject();
    var objArguments = new Object();			
   	objArguments.score=score;
   	objArguments.time=elapsedTime;
    var soapEnvelope = GetSoapEnvelope("CheckScore", objArguments);
    objHttp.onreadystatechange=CheckScoreReturn;
    Send(soapEnvelope,"CheckScore",url);
}
function CheckScoreReturn()
{
    if(objHttp.readyState==READY_STATE_COMPLETE)
     {
        
        
         var strResponse = objHttp.responseText;		           	
	            // load the return into an XML data island
	         
	          var xmlDoc=loadXML(strResponse);
	          //alert(strResponse);
	          
	         var hasHighScore = xmlDoc.getElementsByTagName("CheckScoreResult")[0].firstChild.nodeValue;
	         //alert (hasHighScore);
	         if (hasHighScore=="True")
	         {
	            showForm(true);
	         }
	         else
	         {
	            showForm(false);
	         }
	         
	          
    }
}