 var maxGameTime=99;
 var amountSingleCards= 12;	  
 var selectedCards=0;  
 var countDuration = 0;
 var gameStatus = 'STOPPED';
                               
 $(document).ready(function() {
  createMemoryBoard(amountSingleCards); 
  
	$("#memoryboard li").click(function(event) {
	 if('RUNNING' == gameStatus){    
   	selectedCards++;
		if(selectedCards<=2){
			$(this).addClass('card_selected');
		}
		if(selectedCards==2){
			setTimeout('validatCards('+amountSingleCards+')', 1000);
		}
	 }else if('INTERUPTED' == gameStatus){ 
      alert("Das Spiel ist momentan unterbrochen.");
   }else{
     alert('Bitte starten Sie zuerst das Spiel mit dem Button "Start" rechts oben.');
   }
	});
	
	$("#startButton").click(function(event) {
    countDuration = 0;	  
	  gameStatus = 'RUNNING';
    showDuration();
	  $("#startButton").addClass("displayNone").removeClass("gameButton");
	  $("#breakButton").addClass("gameButton").removeClass("displayNone");
	  $("#endButton").addClass("gameButton").removeClass("displayNone");
	  
	  $("#gameWinner").addClass("displayNone");
	  $("#gameLoser").addClass("displayNone");
	  $("#gameEnd").addClass("displayNone");
	});
	
	$("#breakButton").click(function(event) {
    gameStatus = 'INTERUPTED';
    $("#resumeButton").addClass("gameButton").removeClass("displayNone");
	  $("#breakButton").addClass("displayNone").removeClass("gameButton");
	});	
			
	$("#resumeButton").click(function(event) {
	   gameStatus = 'RUNNING';
     showDuration();
	   $("#breakButton").addClass("gameButton").removeClass("displayNone");
     $("#resumeButton").addClass("displayNone").removeClass("gameButton");
	});	
		
	$("#endButton").click(function(event) {
    location.reload(); 
	});	
	
	$("#winnerButton").click(function(event) {
    var name = $("#nameField").val();
    var winnerDuration = $("#duration").text();
    $.get("winner/winner.php", { 'name': name, 'result': winnerDuration });
    setTimeout("location.reload()",1500); 
	});	
});   
 
   
function showDuration(){
	setTimeout("duration()",1000); 
}

function duration(){
  if('RUNNING' != gameStatus){
    return;
  }
	$("#duration").text(countDuration++);
	var found_size = $(".card_found").size();
  if(amountSingleCards*2==found_size){	
  	winGame();
	}else if(countDuration<=maxGameTime){
		showDuration();		//game is still running
	}else{
		loseGame();
	}
}

function loseGame(){
  	$("#gameLoser").removeClass("displayNone");
	  $("#gameEnd").removeClass("displayNone");
	  gameStatus = 'STOPPED';
	  countDuration = 0;	  
	  $("#breakButton").addClass("displayNone").removeClass("gameButton");
    $("#resumeButton").addClass("displayNone").removeClass("gameButton");
    $("#endButton").addClass("displayNone").removeClass("gameButton");
	  $("#startButton").addClass("gameButton").removeClass("displayNone");
}

function winGame(){
  	$("#gameWinner").removeClass("displayNone");
	  $("#gameEnd").removeClass("displayNone");
	  gameStatus = 'STOPPED';  
	  $("#breakButton").addClass("displayNone").removeClass("gameButton");
    $("#resumeButton").addClass("displayNone").removeClass("gameButton");
    $("#endButton").addClass("displayNone").removeClass("gameButton");
	  $("#startButton").addClass("gameButton").removeClass("displayNone");
}

function validatCards(amountSingleCards){
  if(isCardPair()){
  $(".card_selected").removeClass('card_selected').addClass('card_found');	
  }else{
  	$("#memoryboard li").removeClass('card_selected');
  }		
  selectedCards=0;
}

function isCardPair(){
	var sCards = new Array();
	$(".card_selected").each(function (index) {
		var id = $(this).attr("id");
	  sCards[index] = id.substr(0,id.length-1);
	});

	if(sCards[0] == sCards[1]){
		return true;
	}
	return false;
}       
  
function createMemoryBoard(amountSingleCards){	 	
  	 	//create cards
  var cards = new Array();
  for(var i = 0; i < amountSingleCards; i++){
  	cards[i] = '<li class="card" id="card_'+i+'_1"><img src="flug-mm/media/spiel-karten/'+i+'.jpg"/></li>';
  	cards[i+amountSingleCards] = '<li class="card" id="card_'+i+'_2"><img src="flug-mm/media/spiel-karten/'+i+'.jpg"/></li>';
  }
  
  //shuffle cards
  var i, j, t;
  for (i = 1; i < cards.length; i++) {
    j = Math.floor(Math.random()*(1+i));  // choose j in [0..i]
    if (j != i) {
      t = cards[i];                        // swap list[i] and list[j]
      cards[i] = cards[j];
      cards[j] = t;
    }
  }
  //create cards as html tags
  for(var i = 0; i < cards.length; i++){
  	$("#memoryboard").append(cards[i]);
  }
}
