var infoPage;

/*--------------------------------------*\
|| GÉNÉRALE
\*--------------------------------------*/
function isVide(strValue){
	if(strValue == ""){
		return true;	
	}else{
		return false;	
	}
}

function valideChamp(strSection, strSyntaxe){
	var champOk = true;
	
	reg = new RegExp(strSyntaxe, "g");
	
    if(!reg.test($('#'+strSection).val())){
		champOk = false;
	}
	
	return champOk;
}

function verifyText(champ, bouton){
	var notFit = false;
	
	if(($("#"+champ).val().length<3)||($("#"+champ).val().length>1000)){
		notFit = true;
	}

	if((notFit) || ($("#"+champ).val() == "")){ 
	 	$('#'+bouton).attr("disabled", "true"); 
	}else{ 
		$('#'+bouton).removeAttr('disabled');
	}
}

function messageShow(msg){
	if(isVide(msg)){
		$('#message').empty();
		$('#message').removeClass("message");	
	}else{
		$("#message").fadeIn("slow");
		$('#message').addClass("message");
		$('#message').append(msg);	
	}
}

/*--------------------------------------*\
|| INIT
\*--------------------------------------*/
function init(){
	// Charger le tooltip
	$(document).ready(function(){	
		$("a").easyTooltip();
	});
	
	// Hide all awnser
	$('.question').hide();
	// When you click a question
	$("a.qLink").click(function()
    {
		$('.question').hide();
		$($(this).attr("href")).fadeIn("slow");
      	$("#qBox").height(162 + $($(this).attr("href")).height());
	});
}

/*--------------------------------------*\
|| CONTACT
\*--------------------------------------*/
function contactForm(){
	var dataString = 'message='+ $("#userQuestion").val();
	
	messageShow("");
	
	if($("#userQuestion").val() != ''){
		$.get("/projet/ajax/sendContact.php?" + dataString, function(data){
			switch(data){
				case "OK":
					$('#boxSectionContentSub').empty().append(" <font size='3'><i> Your question/comment have been sent. <br /> Allow 24-48 hours for an awnser. </i></font> <br /><br />");
					break;
				case "ERR;1":
					messageShow("The mail have failed to be sent, make sure you are still loged in.");
					break;
				case "ERR;2":
					messageShow("The mail have failed to be sent, make sure you input something in the white box.");
					break;
				default :
					messageShow("The mail have failed to be sent, try again later.");
					break;	
			}
		});
	}else{
		messageShow("You must enter your question/comment in the white box.");
	}
}

/*--------------------------------------*\
|| COMMENT
\*--------------------------------------*/
function deleteComment(commentId){
	var newsId = infoPage;
	
	var dataString = 'newsId='+ newsId + '&commentId=' + commentId;

	$.get("/projet/ajax/deleteComment.php?" + dataString, function(data){
		switch(data){
			case "ERR;1": 
				messageShow("Something bad happened!");
				break;	
			default:
				window.location = "/comment/" + newsId + "/";
				break;
		}
	});
}

/*--------------------------------------*\
|| LOGIN
\*--------------------------------------*/
function verifyLogin(){
	var dataString;
	var rememberMe = false;
	
	if(($("#username").val() != "") && ($("#password").val() != "")){
		if($('#remember').attr('checked')){
			rememberMe = true;
		}

		dataString = 'username='+ $("#username").val() + '&password=' + $("#password").val() + '&remember=' + rememberMe;

		$.get("/projet/ajax/check_login.php?" + dataString, function(data){
			switch(data){
				case "ERR;1": 
					alert("The login is wrong. Please check your username and password.");
					break;	
				case "ERR;2":
					alert("The login is wrong. Please check your username and password.");
					break;
				default: 
					window.location = "/";
					break;
			}
		});
	}else{
		alert("You must fill the username and password section.");
	}
}

/*--------------------------------------*\
|| FORGOT
\*--------------------------------------*/
function verifyForgot(){
	var dataString;
	
	messageShow("");
	
	if($("#mail").val() != ""){
		dataString = 'mail='+ $("#mail").val();

		$.get("/projet/ajax/sendForgot.php?" + dataString, function(data){
			switch(data){
				case "OK": 
					window.location = "/";
					break;	
				case "ERR;1":
					messageShow("The mail have failed to be sent, make sure you are still loged in.");
					break;
				case "ERR;2":
					messageShow("The mail you entered wasn't in the database.");
					break;
				case "ERR;3":
					messageShow("A variable wasn't set. Please try again.");
					break;
				default: 
					messageShow("Something bad happened!");
					break;
			}
		});
	}else{
		messageShow("You must enter the email you used to create your account.");
	}
}

function makeNewPass(){
	messageShow("");
	
	if(verifyPass()){
		var dataString = 'id=' + $('#userId').val() + '&pass=' + $('#npassword').val();
		
		$.get("/projet/ajax/changePass.php?" + dataString, function(data){
			switch(data){
				case "OK":
					$('#boxSectionContent').empty().append("<font size='3'><i> Your password have been changed. <br /> You may now login. </i></font> <br /><br />");
					break;	
				case "ERR;1": 
					messageShow("The variable arn't set. Please check if the fields are not blank.");
					break;	
				default: 
					messageShow("Something bad happened!");
					break;
			}
		});
	}else{
		messageShow("Please verify both password fields.");
	}
}


function verifyPass(){
	var okExpReg;
	var okToSubmit = true;

	// Password
	okExpReg = valideChamp('npassword', '^[a-zA-Z0-9]{6,24}$');
	if(($('#npassword').val() != "") && (!okExpReg)){
		$("#npassword").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#npassword').val())){
			okToSubmit = false;
		}
		
		$("#npassword").css("background-color","#FFFFFF");
	}
	
	// Verify password
	if(($('#vpassword').val() != "") && ($('#vpassword').val() != $('#npassword').val())){
		$("#vpassword").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#vpassword').val())){
			okToSubmit = false;
		}
		
		$("#vpassword").css("background-color","#FFFFFF");
	}
	
	return okToSubmit;
}

/*--------------------------------------*\
|| GAMES
\*--------------------------------------*/
function acceptPendingGame(gameId){
	var dataString = 'gameId='+ gameId;
	
	$.get("/projet/ajax/acceptPendingGame.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				window.location = "/games/";
				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;
	
	$.get("/projet/ajax/deletePendingGame.php?" + dataString, function(data){
		switch(data){
			case "OK;":
				window.location = "/games/";
				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;	
		}
	});
}


/*--------------------------------------*\
|| NEWS
\*--------------------------------------*/
function verifyNews(){
	var dataString;
	
	messageShow("");

	if(($("#newsName").val() != "") && ($("#newsResume").val() != "") && ($("#newsContent").val() != "")){
		dataString = 'newsName='+ $("#newsName").val() + '&newsResume=' + $("#newsResume").val() + '&newsContent=' + $("#newsContent").val();

		$.get("/projet/ajax/postNews.php?" + dataString, function(data){
			switch(data){
				case "OK": 
					window.location = "/";
					break;	
				case "ERR;1":
					messageShow("A variable wasn't set. Please try again.");
					break;
				default: 
					messageShow("Something bad happened!");
					break;
			}
		});
	}else{
		messageShow("You must fill the news name, news resume and the news content section.");
	}
}

/*--------------------------------------*\
|| PROFILE EDIT
\*--------------------------------------*/
function editProfile(){
	messageShow("");
	
	if($('#description').val().length <= 500){
		var dataString = 'description=' + $('#description').val();

		$.get("/projet/ajax/updateProfile.php?" + dataString, function(data){
			switch(data){
				case "OK":
					messageShow("Your profile has been updated successfully.");
					break;	
				case "ERR;1": 
					messageShow("You are currently not logged into this account. Please relog.");
					break;
				default: 
					messageShow("Something bad happened!");
					break;
			}
		});
	}else{
		messageShow("Make a shorter description please.");
	}
}

/*--------------------------------------*\
|| REGISTER
\*--------------------------------------*/
function verifyRegister(){
	messageShow("");
	
	if(verifyRegistration()){
		var dataString = 'name=' + $('#nusername').val() + '&pass=' + $('#npassword').val() + '&mail=' + $('#email').val();

		$.get("/projet/ajax/check_register.php?" + dataString, function(data){
			switch(data){
				case "OK":
					$('#boxSectionContent').slideUp("slow", function(){ 
					$('#boxSectionContent').empty().append("<strong><font size='3' color='green'> Congrats! Your account have been created. <br /> You may now login. </font></strong> <br /><br />");
					$('#boxSectionContent').slideDown("slow");
					});
					break;	
				case "ERR;1": 
					messageShow("This username have already been taken.");
					break;	
				case "ERR;2":
					messageShow("This email adress have already been taken.");
					break;
				default: 
					messageShow("Something bad happened!");
					break;
			}
		});
	}else{
		messageShow("Please fill and/or correct all the red fields.");
	}
}

function verifyRegistration(){
	var okExpReg;
	var okToSubmit = true;
	
	// TOS
	if(!$("#tos").attr('checked')){
		okToSubmit = false;
	}
	
	// Username
	okExpReg = valideChamp('nusername', '^[a-zA-Z0-9]{3,12}$');
	if(($('#nusername').val() != "") && (!okExpReg)){
		$("#nusername").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#nusername').val())){
			$("#nusername").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#nusername").css("background-color","#FFFFFF");
		}
	}

	// Password
	okExpReg = valideChamp('npassword', '^[a-zA-Z0-9]{6,24}$');
	if(($('#npassword').val() != "") && (!okExpReg)){
		$("#npassword").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#npassword').val())){
			$("#npassword").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#npassword").css("background-color","#FFFFFF");
		}
	}
	
	// Verify password
	if(($('#vpassword').val() != "") && ($('#vpassword').val() != $('#npassword').val())){
		$("#vpassword").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#vpassword').val())){
			$("#vpassword").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#vpassword").css("background-color","#FFFFFF");
		}
	}
	
	// Email
	okExpReg = valideChamp('email', '^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$');
	if(($('#email').val() != "") && (!okExpReg)){
		$("#email").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#email').val())){
			$("#email").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#email").css("background-color","#FFFFFF");
		}
	}
	
	// Verify email
	if(($('#vemail').val() != "") && ($('#vemail').val() != $('#email').val())){
		$("#vemail").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		if(isVide($('#vemail').val())){
			$("#vemail").css("background-color","#B79797");
			okToSubmit = false;
		}else{
			$("#vemail").css("background-color","#FFFFFF");
		}
	}
	
	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/ajax/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 deleteReview(reviewId){
	var gameId = infoPage;
	
	var dataString = 'gameId='+ gameId + '&reviewId=' + reviewId;

	$.get("/projet/ajax/deleteReview.php?" + dataString, function(data){
		switch(data){
			case "ERR;1": 
				messageShow("Something bad happened!");
				break;	
			default: 
				window.location = "/gameDetails/" + gameId + "/";
				break;
		}
	});
}

/*--------------------------------------*\
|| UPLOAD A GAME
\*--------------------------------------*/
function uploadGameForm(){
	messageShow("");
	
	if(verifyUploadGameForm()){
		var dataString = 'name=' + $('#gameName').val() + '&descrip=' + $('#gameDescription').val() + '&cate=' + $('#gameCategorie').val() +'&link=' +  $('#gameLink').val();

		$.get("/projet/ajax/newGame.php?" + dataString, 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("This game name is already in use. Please make sure your game is not already on the site.");
					break;	
				case "ERR;2":
					messageShow("The information sent contained errors. Make sure all field are filled.");
					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(){
	var okExpReg;
	var okToSubmit = true;
	
	// Game Name
	okExpReg = valideChamp('gameName', '^[a-zA-Z0-9.,-: !%?&()é]{1,50}$');
	if((!okExpReg) && (!isVide($('#gameName').val()))){
		$("#gameName").css("background-color","#B79797");
		okToSubmit = false;
	}else{		
		$("#gameName").css("background-color","#FFFFFF");
	}

	// Game Description
	okExpReg = valideChamp('gameDescription', '^[a-zA-Z0-9.,-: !%?&()é]{12,1500}$');
	if((!okExpReg) && (!isVide($('#gameDescription').val()))){
		$("#gameDescription").css("background-color","#B79797");
		okToSubmit = false;
	}else{
		$("#gameDescription").css("background-color","#FFFFFF");
	}
		
	// Game Link
	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;
}
