/***
 Fonctions javascript du site



***/

/**
 * Fonction appelée dans les fichiers header par <body onload...
 * Si on veut qu'une fonction soit appelée au chargement d'une page, la mettre ici
 * Faire un test pour vérifier qu'il s'agit tout de même bien de la bonne page
 */
 
String.prototype.trim = function() {
	return this.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 

function init() {
	if(($('#button_valid_etape2').val()=="2") && ($('#email').val().length > 0)) {
		checkMailDatabase($('#email').val());
		checkInput('email')
	}
}

/**
** verification de l existence du mail dans la base de donnees (pour inscription et connexion)
** chargement de la classe css en fonction de la reponse
** type => connexion ou inscription
**/
function checkMailDatabase(email) {
	 $.ajax({
   type: "POST",
   url: "model/ajax.php?action=control_mail",
   data: "mail="+email,
   success: function(msg){
   		if(msg == 3) {
   			$("#email").addClass('obliInputBad').fadeTo("slow",0.4);
	    	$("#errorInscription").text("Le format de votre email n'est pas valide.");
	    	$("#errorInscription").show("slow");
   		}
	    if(msg == 1) {
	    	$("#email").addClass('obliInputGood').fadeTo("slow",0.4);
	    	$("#errorInscription").hide("slow");
	    } else if(msg == 0) {
	    	$("#email").addClass('obliInputBad').fadeTo("slow",0.4);
	    	$("#errorInscription").text("Votre email ne correspond pas au campus choisi.");
	    	$("#errorInscription").show("slow");
	    }
	    else if(msg == 2) {
	    	$("#email").addClass('obliInputBad').fadeTo("slow",0.4);
	    	$("#errorInscription").text("Vous etes déjà inscrit.");
	    	$("#errorInscription").show("slow");
	    }  	
   }
 });

}

function confirmFormBeforeEmail() {
	var emailSession = $('#emailSession').val();
	var mobileSession = $('#mobileSession').val();
	if(window.clicked == "2") {
		return true;
	}
	if(window.clicked == "3") {
		return confirm("Ton email et ton numéro de téléphone vont maintenant être vérifiés\n\nemail: "+emailSession+"\nmobile: "+mobileSession+"\n\nConfirmes-tu ces données?");
	}
	else {
		return false;
	}
}


function checkInput(elem) {
	
	if((elem == 'mobile')) {
		var verif = /^((06\d{8})|([+]\d{8,16}))$/
		if(verif.exec($("#"+elem).val())) {
	    	$("#"+elem).removeClass('obliInputBad');
			$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);
		} else {
	    	$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
	    	$("#errorInscription").text("Votre numéro de mobile est incorrect.");
	    	$("#errorInscription").show("slow");
		}
	}else if(elem == 'ville') {	
		if($("#"+elem).val() == '0') {
	    	$("#"+elem).removeClass('obliInputGood');
			$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
	     	$("#errorInscription").text("Vous n'avez pas sélectionné de ville.");
	    	$("#errorInscription").show("slow");			
		} else {
			$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);	
	    }
	}else if(elem == 'pass' || elem == 'pass_connexion' || elem == 'pass_connexion2') {
		if($("#"+elem).val() == "" || $("#"+elem).val() == "undefined" || $("#"+elem).val().length < 4 || $("#"+elem).val().length > 10) {
			$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
	    	$("#errorInscription").text("Votre mot de passe est incorrect.");
	    	$("#errorInscription").show("slow");  
		} else {
	    	$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);	  	
	    }
	}
	else if(elem == 'repass') {
		if($("#"+elem).val() == "" || $("#"+elem).val() == "undefined" || $("#pass").val() != $("#"+elem).val()) {
			$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
	     	$("#errorInscription").text("Les deux mots de passe ne correspondent pas.");
	    	$("#errorInscription").show("slow");	
		} else {
	    	$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);	    	
	    }
	}
	else if(elem == 'cp') {
		var verif = /^[0-9]{0,5}$/
		if($("#"+elem).val() == "" || $("#"+elem).val() == "undefined"  || verif.exec($("#"+elem).val()) == null || $("#"+elem).val().length < 5) {
			$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
	     	$("#errorInscription").text("Le code postal est incorrect.");
	    	$("#errorInscription").show("slow");		 
		} else {
	    	$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);	    	
	    }
	}
	else if(elem == 'email_contact' || elem == 'mail_connexion' || elem == 'mail_connexion2' || elem == 'mail_perdu') {
		
		var verif= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;

		if($("#"+elem).val() == "" || $("#"+elem).val() == "undefined" || verif.exec($("#"+elem).val()) == null) {
	    	$("#"+elem).removeClass('obliInputGood');
			$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
			$("#errorInscription").text("E-mail incorrect.");
	    	$("#errorInscription").show("slow");
		} else if (verif.exec($("#"+elem).val()) != null) {
			$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);	
	    }
	}
	else if(elem == 'naissance') {
		var verif = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
		//var verif = (^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))\x2F(((0[1-9])|(1[0-2]))|([1-9]))\x2F(([0-9]{2})|(((19)|([2]([0]{1})))([0-9]{2}))))$);
		if(verif.exec($("#"+elem).val())) {
			$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);
		} else {
	    	$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);  
	    	$("#errorInscription").text("Le date de naissance est incorrecte.");
	    	$("#errorInscription").show("slow");	
	    }
	}
	else if(elem == 'entite') {
		var entite = $("#"+elem).val();
		if((entite.trim() != "") && entite != "Toutes les universités" ) {
			$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);
		}
		else {
			$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);
	    	$("#errorInscription").text("Vous n'avez pas choisi de campus.");
	    	$("#errorInscription").show("slow");
		}
	}
	else if(elem == 'code_sms') {
		var verif = /^[A-Z]{6}$/;
		if(verif.exec($("#"+elem).val())) {
			$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);
		} else {
	    	$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);  	
	    	$("#errorInscription").text("Le code SMS est inccorect.");
	    	$("#errorInscription").show("slow");	    	
	    }
	}
	else if(elem != 'email') {
		if($("#"+elem).val() == "" || $("#"+elem).val() == "undefined") {
			$("#"+elem).removeClass('obliInputGood');
	    	$("#"+elem).addClass('obliInputBad').fadeTo("slow",0.4);    	
		} else {
	    	$("#"+elem).removeClass('obliInputBad');
	    	$("#"+elem).addClass('obliInputGood').fadeTo("slow",0.4);	    	
	    }
	}
}



/** AUTO COMPLETION POUR RECHERCHE D ENTITE **/
function lookup(inputString,id) {
		
		if(inputString.length < 3) {
	        // Hide the suggestion box.
	        $("#suggestions").hide();
	        enableNextOnCampusChoice(false);
	    } else {
	    	if(($('#customCampus:checked').val() == "on")) { //l'utilisateur ne trouve pas son campus dans la base
				enableNextOnCampusChoice(true);
	    	}
	    	else {
	    		$.post("model/ajax.php?action=suggest_entite", {queryString: ""+inputString+"",id: ""+id+""}, function(data){
		            
					if(data.length > 0) {
					    $("#suggestions").show();
		                $("#autoSuggestionsList").html(data);
		                campusAlreadyProposed = true;
		            }
		            else {
			            if(campusAlreadyProposed) {	//il a déjà fait une recherche mais est revenu en arrière et ne trouve pas son campus
			            	$('#customCampusDiv').show();
			            }
			            $("#suggestions").hide();
		            }
		        });
		        enableNextOnCampusChoice(false);
	    	}
	    }
	  
	
} // lookup


function lookupMini(inputString,id) {
    if(inputString.length < 3) {
        // Hide the suggestion box.
        $("#suggestionsMini").hide();
    } else {
        $.post("model/ajax.php?action=suggest_entite", {queryString: ""+inputString+"",id: ""+id+""}, function(data){
            if(data.length >0) {
                $("#suggestionsMini").show();
                $("#autoSuggestionsListMini").html(data);
            }
        });
    }
} // lookup

function fill(thisValue,id) {
	$("#"+id).val(thisValue);
	$("#suggestions").hide();
	$("#suggestionsMini").hide();
	if(id=="entite") {	//on est dans le vrai formulaire d'inscription
		enableNextOnCampusChoice(true);
	}
}

/** FIN AUTOCOMPLETION RECHERCHE ENTITE **/

//active ou non le bouton suivant pour choisir son campus
function enableNextOnCampusChoice(boolEnable) {	
	var entite = $("#entite").val();
	if(boolEnable && (entite.trim() != "") && (entite != "Toutes les universités" )) {
		$("#entite").removeClass('obliInputBad');
    	$("#entite").addClass('obliInputGood').fadeTo("slow",0.4);
    	$('#valid_etape1Div').html('<button type="submit" id="valid_etape1" name="valid_etape1" value="1"><img src="images/icons/arrow_right.png" height="16" width="16" />Suivant</button>');
	}
	else {
		$("#entite").removeClass('obliInputGood');
	    $("#entite").addClass('obliInputBad').fadeTo("slow",0.4);
		$('#valid_etape1Div').html('<button type="submit" id="valid_etape1" name="valid_etape1" value="1" disabled="disabled"><img src="images/icons/exclamation.png" height="16" width="16" />Choisis ton campus</button>');
		if(document.getElementById('errorInscription1')) {
			$('#errorInscription1').hide("slow");
		}
	}
}

function toggleNext() {
	if(($('#customCampus:checked').val() == "on") && ($('#entite').val().length >= 3)) {
		enableNextOnCampusChoice(true);
	}
	else {
		enableNextOnCampusChoice(false);
	}
}

function joinGroup(id){
	document.getElementById("inputGroupChoosed").value=id+"";
	document.getElementById("form_groupe").submit();
}

function quitterGroupe(id){
	if(confirm("Souhaitez vous vraiment quitter ce groupe?")){
		document.getElementById("inputQuitterGroupes").value=id+"";
		document.getElementById("quitter_groupes").submit();
	}
}