/*--------------------------------------*\
|| GAMES LIST
\*--------------------------------------*/
function loadGames(name, category, sort, order, page){
	var dataString = 'searchName='+name+'&searchCategory='+category+'&sort='+sort+'&order='+order+'&page='+page;

	$.get("/projet/page/game/gamesOk.php?" + dataString, function(data){
		// Afficher l'information
		$("#gamelist").empty();
		$("#gamelist").html(data);
		
		// Mise jour des champs d'ordre
		if(!isVide(sort)){
			$('#sort').val(sort); 
		}
		if(!isVide(order)){
			$('#order').val(order);
		}
	});
}

function loadUploads(icon, page){
	$.ajax({
		beforeSend: function(html){
			ajaxLoadPage("");
       	},
		type: "GET",
   		url: "/projet/page/user/userUploadGames.php",
   		data: "icon="+icon+"&page="+page,
  		dataType: "html",
		success: function(html){
			$.unblockUI();
		
			// Afficher l'information
			$("#userGameList").empty();
			$("#userGameList").html(html);
			
			superAllInInit();
		}
	});
}


/*--------------------------------------*\
|| GAMES
\*--------------------------------------*/
function addFavorite(gameId){
	var dataString = 'gameId=' + gameId;
	
	messageShow("");
	
	$.get("/projet/action/addFavorite.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				messageShow("<span style='color:green;'>The game have been added to your favorite games list!</span>");
				break;
			case "ERR;1": 
				messageShow("You are not logged in!");
				break;
			case "ERR;2": 
				messageShow("This game is already in your favorite games list.");
				break;	
			case "ERR;3": 
				messageShow("You have reach the limit of 50 favorite games.");
				break;
			case "ERR;4": 
				messageShow("Something bad happened!");
				break;		
			default:
				messageShow("Something bad happened!");
				break;	
		}
	});
}

function deleteFavorite(favoriteId, userId){
	var dataString = 'favoriteId=' + favoriteId + '&userId=' + userId;
	
	messageShow("");
	
	$.get("/projet/action/deleteFavorite.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				alert("The selected game have sucessfully been removed from your list.");
				
				// Reload the page
				$("#boxSection").empty();	
				$("#boxSection").load("/projet/page/user/favorite.php");		
				break;
			case "ERR;1": 
				messageShow("You are not logged in!");
				break;
			case "ERR;2": 
				messageShow("Something bad happened!");
				break;	
			case "ERR;3": 
				messageShow("Something bad happened!");
				break;
			case "ERR;4": 
				messageShow("Something bad happened!");
				break;		
			default:
				messageShow("Something bad happened!");
				break;	
		}
	});
}


function addBroken(gameId){
	var dataString = 'gameId=' + gameId;
	
	messageShow("");
	
	$.get("/projet/action/addBroken.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				messageShow("<span style='color:green;'>The game will be reviewed by a moderator shortly!</span>");
				break;
			case "ERR;1": 
				messageShow("You are not logged in!");
				break;
			case "ERR;2": 
				messageShow("This game already have been reported by someone else.");
				break;	
			case "ERR;3": 
				messageShow("Something bad happened!");
				break;		
			default:
				messageShow("Something bad happened!");
				break;	
		}
	});

}

function acceptPendingGame(gameId){
	var dataString = 'gameId='+ gameId;
	
	messageShow("");
	
	$.get("/projet/action/admin/acceptPendingGame.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				loadAdminSection('/projet/page/admin/gamesPending.php');
				break;
			case "ERR;1": 
				messageShow("You are not logged as an admin!");
				break;
			case "ERR;2": 
				messageShow("No game id is set!");
				break;	
			case "ERR;3": 
				messageShow("Something bad happened!");
				break;		
			default:
				messageShow("Something bad happened!");
				break;	
		}
	});
}

function deletePendingGame(gameId){
	var dataString = 'gameId='+ gameId;
	
	messageShow("");
	
	$.get("/projet/action/admin/deletePendingGame.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				loadAdminSection('/projet/page/admin/gamesPending.php');
				break;
			case "ERR;1": 
				messageShow("You are not logged as an admin!");
				break;
			case "ERR;2": 
				messageShow("No game id is set!");
				break;	
			case "ERR;3": 
				messageShow("Something bad happened!");
				break;		
			default:
				messageShow("Something bad happened!");
				break;	
		}
	});
}

/*--------------------------------------*\
|| UPLOAD A GAME
\*--------------------------------------*/
function uploadGameForm(){
	messageShow("");
	
	if(verifyUploadGameForm('all')){
		var dataString = 'name=' + $('#gameName').val() + '&descrip=' + $('#gameDescription').val() + '&cate=' + $('#gameCategorie').val() +'&link=' +  $('#gameLink').val();
		
		$.ajax({
			type: 'POST',
			url: "/projet/action/newGame.php",
			data: dataString,
			success: function(data){
				switch(data){
					case "OK":
						$('#boxSectionContentSub').slideUp("slow", function(){ 
							$('#boxSectionContentSub').empty().append("<strong><font size='3' color='green'> Congrats you have uploaded a game! </font></strong> <br /><br />");
							$('#boxSectionContentSub').slideDown("slow");
						});
						break;	
					case "ERR;1": 
						messageShow("The icon is not valid. Make sure it respect the size of 46x46.");
						break;	
					case "ERR;2":
						messageShow("This game name is already in use. Please make sure your game is not already on the site.");
						break;
					case "ERR;3":
						messageShow("You already have 10 games in pending.");
						break;
					case "ERR;4":
						messageShow("You are not logged in!");
						break;
					/*case "ERR;10":
						messageShow("Your file exceed the max file size allowed");
						break;
					case "ERR;11":
						messageShow("Your file is not 46x46");
						break;
					case "ERR;12":
						messageShow("An error occured during the transfer. Please try again");
						break;
					case "ERR;13":
						messageShow("Your file is empty");
						break;*/
					default: 
						messageShow("Something bad happened!");
						break;
				}
			}
		});
	}else{
		messageShow("Please fill or correct the red fileds.");
	}
}

function verifyUploadGameForm(whatToCheck){
	var okExpReg;
	var okToSubmit = true;
	
	// Game Name
	if((whatToCheck == "gameName") || (whatToCheck == "all")){
		if(isVide($('#gameName').val())){
			$("#gameName").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			// Check if name is already in use
			$.ajax({
				type: 'POST',
				url: "/projet/action/verify/gameName.php",
				data: "name=" + $('#gameName').val(),
				async: false,
				beforeSend: function() {
					$('#nameTaken').html('<img alt="" src="/projet/img/loading.gif" />');
					$('#nameTakenJustification').attr("title", "");
					toolTipInit();
				},
				success: function(data){
					switch(data){
						case "ERR;2":
							$('#nameTaken').html('<img alt="" src="/projet/img/fail.png" />');
							
							/*$('#nameTakenJustification').removeAttr("title");
							$('#nameTakenJustification').attr("title", "This game is already on MSZ");*/
							toolTipInit();
							
							$("#gameName").css("background-color","#B79797");
							okToSubmit = false;
							break;	
						default:
							$('#nameTaken').html('<img alt="" src="/projet/img/success.png" />');
							
							/*$('#nameTakenJustification').removeAttr("title");
							$('#nameTakenJustification').attr("title", "This game name is available!");*/
							toolTipInit();
							
							$("#gameName").css("background-color","#FFFFFF");
							break;
					}
				}
			});
		}
	}

	// Game Description
	if((whatToCheck == "description") || (whatToCheck == "all")){
		if(isVide($('#gameDescription').val())){
			$("#gameDescription").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#gameDescription").css("background-color","#FFFFFF");
		}
	}
		
	// Game Link
	if((whatToCheck == "gameLink") || (whatToCheck == "all")){
		okExpReg = valideChamp('gameLink', '^[^@]{3,}$');	
		if((!okExpReg) && (!isVide($('#gameLink').val()))){
			$("#gameLink").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#gameLink").css("background-color","#FFFFFF");
		}
	}
	
	if(okToSubmit){
		$("#btn_submit").removeAttr("disabled");
	}else{
		$("#btn_submit").attr("disabled", "disabled"); 
	}

	return okToSubmit;
}

/*--------------------------------------*\
|| REVIEW
\*--------------------------------------*/
function postReview(){
	var gameId = infoPage;
	
	messageShow("");
	
	// Text not empty
	if(!isVide($('#userReview').val())){
		var dataString = 'gameId=' + gameId + '&userReview=' + $('#userReview').val() + '&userScore=' + $('input[name=rdoScore]:checked').val();

		$.get("/projet/action/postReview.php?" + dataString, function(data){
			switch(data){
				case "OK": 
					window.location = "/gameDetails/" + gameId + "/";
					break;
				case "ERR;1": 
					messageShow("You seem to have lost connection with the site. Please check if you are still logged on.");
					break;
				case "ERR;2": 
					messageShow("There was a variables problem, please try again.");
					break;
				case "ERR;3": 
					messageShow("You seem to not be logged anymore. Please check if you still logged.");
					break;	
				default: 
					messageShow("Something bad happened!");
					break;
			}
		});
	}else{
		messageShow("Please enter your review of the game in the white box.");
	}
}

function flagReview(reviewId){
	var dataString = 'reviewId=' + reviewId;

	messageShow("");

	$.get("/projet/action/flagReview.php?" + dataString, function(data){
		switch(data){
			case "OK": 
				messageShow("<span style='color:green;'> The selected review have been flagged! </span>");
				break;
			case "ERR;1": 
				messageShow("You seem to not be logged anymore. Please check if you still logged.");
				break;
			case "ERR;2": 
				messageShow("Something bad happened!");
				break;
			case "ERR;3": 
				messageShow("This review have already been flagged.");
				break;	
			default: 
				messageShow("Something bad happened!");
				break;
		}
	});
}
