/***
 * Paramétrage : ne pas mettre le / en fin d'URL
 */
var baseUrl = 'http://www.aldeid.com/enigmes';

/***
 * Fonctions communes
 */
function f_ajaxFailure (request) {
	$("divMsg").innerHTML = 'Ajax error : ' + request.status + ' -- ' + request.statusText;
}

/***
 * Fonctions d'identification
 */

function f_ProtoCheckIdentification(oForm) {
	var url = baseUrl + '/protoActions.php?action=DOCHECKIDENTIFICATION';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessIdentification,
		onFailure: f_ajaxFailure
	});
}

function f_ajaxSuccessIdentification (request) {
	if(request.responseText==0) {
		// Authentication KO
		$("divMsg").className='erreur';
		$("divMsg").innerHTML = "Identification incorrecte";
		Effect.Pulsate('divMsg');
	} else {
		// Authentication OK
		window.location=window.location;
	}
}

/***
 * Fonction de vérification live du login
 * dans un formulaire
 */
function f_liveCtrlLogin(oForm) {
	if($F("login")=="") {
		$("login").className='ko';
		return false;
	}
	var url = baseUrl + '/protoActions.php?action=DOCHECKLOGINAVAILABILITY';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessLoginAvailability,
		onFailure: f_ajaxFailure
	});
}
function f_ajaxSuccessLoginAvailability (request) {
	if(request.responseText==1) {
		$("login").className='ok';
	} else {
		$("login").className='ko';
	}
}

/***
 * Fonction de vérification live de
 * cohérence des mots de passe
 */
function f_liveCtrlPasswd() {
	if($F("passwd")=="") {
		$("passwd").className='ko';
		$("cpasswd").className='ko';
		return false;
	}
	if($F("passwd")==$F("cpasswd")) {
		$("passwd").className='ok';
		$("cpasswd").className='ok';
	} else {
		$("passwd").className='ko';
		$("cpasswd").className='ko';
	}
}

/***
 * Fonction de vérification live de l'email
 * dans un formulaire
 */
function f_liveCtrlEmail(oForm) {
	if($F("email")=="") {
		$("email").className='ko';
		return false;
	}
	var url = baseUrl + '/protoActions.php?action=DOCHECKEMAILAVAILABILITY';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessEmailAvailability,
		onFailure: f_ajaxFailure
	});	
}
function f_ajaxSuccessEmailAvailability (request) {
	if(request.responseText==1) {
		$("email").className='ok';
	} else {
		$("email").className='ko';
	}
}

/***
 * Fonction de vérification live de l'email
 * dans un formulaire
 */
function f_ProtoProcessFrmInscription(oForm) {
	// Le btn de validation est masqué
	Element.hide('submitButton');
	
	// Envoi du mail
	var url = baseUrl + '/protoActions.php?action=NEWMEMBERSUBSCRIPTION';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessSendMailSubscription,
		onFailure: f_ajaxFailure
	});	
}
function f_ajaxSuccessSendMailSubscription (request) {
	$("divMsg").className='erreur';
	if(request.responseText==1) {
		$("divMsg").innerHTML = 'Vous devez valider votre inscription afin de rendre '
			+'\nvotre compte actif. Des informations complémentaires '
			+'\nvous ont été envoyées à l\'adresse suivante : '
			+ '\n' + $F("email");
	} else {
		$("divMsg").innerHTML = 'ERREUR INCONNUE. Veuillez contacter l\'administrateur du site';
	}
	Effect.Pulsate('divMsg');
}

/***
 * FONCTION DE DECONNEXION
 */
function f_ProtoDisconnect() {
	var url = baseUrl + '/protoActions.php?action=DISCONNECT';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		onComplete: f_ajaxSuccessDisconnection,
		onFailure: f_ajaxFailure
	});	
}
function f_ajaxSuccessDisconnection() {
		window.location=baseUrl;
}

/***
 * DEMANDE DE REINITIALISATION
 * DE MOT DE PASSE
 */
function f_ProtoLostPasswd( oForm ) {
	var url = baseUrl + '/protoActions.php?action=REINITPASSWD';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessReinitPasswd,
		onFailure: f_ajaxFailure
	});
}
function f_ajaxSuccessReinitPasswd( request ) {
	if(request.responseText==0) {
		// Adresse inexistante
		$("divMsg").className='erreur';
		$("divMsg").innerHTML = "Adresse non référencée";
		Effect.Pulsate('divMsg');
	} else if(request.responseText==1) {
		// Mail envoyé
		$("divMsg").className='erreur';
		$("divMsg").innerHTML = "Un mail contenant des informations complémentaires vous a été envoyé.";
		Effect.Pulsate('divMsg');
	} else {
		// Erreur
		$("divMsg").className='erreur';
		$("divMsg").innerHTML = "Erreur envoi mail";
		Effect.Pulsate('divMsg');
	}
}

/***
 * PROCEDURE DE REINITIALISATION
 * DE MOT DE PASSE
 */
function f_ProtoCtrlFrmReinitPasswd(oForm) {
	if($F("passwd")!=$F("cpasswd")) {
		$("divMsg").className='erreur';
		$("divMsg").innerHTML = "Les mots de passe sont différents.";
		Effect.Pulsate('divMsg');
		return false;
	}
	Element.hide("submitButton");
	var url = baseUrl + '/protoActions.php?action=PROCESSREINITPASSWD';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessProcessReinitPasswd,
		onFailure: f_ajaxFailure
	});
}
function f_ajaxSuccessProcessReinitPasswd (request) {
	// Mail envoyé
	$("divMsg").className='erreur';
	$("divMsg").innerHTML = "Votre mot de passe a été modifié. Veuillez vous reconnecter.";
	Effect.Pulsate('divMsg');
}

/***
 * CHARGEMENT D'UNE PARTIE
 */
function f_ProtoChargerPartie() {
	var url = baseUrl + '/protoActions.php?action=LOADGAME';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		onComplete: f_ajaxSuccessLoadGame,
		onFailure: f_ajaxFailure
	});
}
function f_ajaxSuccessLoadGame (request) {
	window.location=request.responseText;
}

/***
 * FONCTION DE VERIFICATION DU FORMULAIRE
 * MODIFIER SES DONNEES PERSONNELLES
 */
function f_ProtoFrmMyData(oForm) {
	var url = baseUrl + '/protoActions.php?action=UPDMYDATA';
	var ajax = new Ajax.Request(url, {
		method: 'get',
		parameters: Form.serialize(oForm),
		onComplete: f_ajaxSuccessFrmMyData,
		onFailure: f_ajaxFailure
	});
}
function f_ajaxSuccessFrmMyData (request) {
	$("divMsg").className='erreur';
	$("divMsg").innerHTML = "Vos données personnelles ont été mises à jour.";
	Effect.Pulsate('divMsg');
}

