/*
 * Cette méthode déclenche l'ajout d'un signet dans le navigateur
 */
function addBookmark(title, url) {
	if (window.sidebar) { // firefox
		window.sidebar.addPanel(title, url,"");
	} else if( document.all ) { //MSIE
		window.external.AddFavorite( url, title);
	} else {
		alert("Désolé, votre navigateur ne supporte pas cette fonctionnalité.");
	}
}


/*
 * ========================================================================================================
 * Validation de formulaire
 * ========================================================================================================
 */
var formOK = 'true';

function formClean(elementName) {
	element = $("#" + elementName);
	$(element).removeClass("alert");
}

function formEmail(elementName) {
	element = $("#" + elementName);
	if ($(element).val() != '') {
		regexp = /.+@.+\.[a-z]+/;
		if ($(element).value.search(regexp) == -1) {
			alert = $("#alert");
			$(element).addClass("alert");
			$(alert).addClass("alert");
			$(alert).html("<p>Adresse e-mail invalide</p>");
			formOK = 'false';
		}
	}
}

function formObligatoire(elementName) {
	element = $("#" + elementName);
	if ($(element).val() == '' || ($(element).html() == '' && $(element).val() == null)) {
		$(element).addClass("alert");
		alert = $("#alert");
		$(alert).addClass("alert");
		$(alert).html("<p>Vous n'avez pas rempli certains champs obligatoires</p>");
		formOK = 'false';
	}
}

/* =========================================================================================================== */
/* Pagination dans les docs standard
/* =========================================================================================================== */
function changePageDoc(num) {
	$(".pagination").removeClass("firstpage");
	$(".pagination").removeClass("lastpage");
	if( $(".pagination .docpage"+(num-1)).size()==0)
		$(".pagination").addClass("firstpage");
	else if( $(".pagination .docpage"+(num+1)).size()==0)
		$(".pagination").addClass("lastpage");
	$(".pagination .thispage").removeClass("thispage");
	$(".pagination .docpage"+num).addClass("thispage");
	$(".docparagraphe").hide();
	$(".docparagraphe"+num).show();
}
function previousPageDoc(num) {
	changePageDoc(parseInt($("#docparagraphes .pagination .thispage").html())-1);
}
function nextPageDoc(num) {
	changePageDoc(parseInt($("#docparagraphes .pagination .thispage").html())+1);
}
/** JS pour le changement de page sur les documents standards */
$(document).ready(function() {
	if ($('#first-page-link').length) {
		$("#first-page-link").click(function() {
				changePageDoc(1);
				return false;
			}
		);
		$(".previouspage").click(function() {
				previousPageDoc();
				return false;
			}
		);
		$(".nextpage").click(function() {
				nextPageDoc();
				return false;
			}
		);
		$(".adocpage").click(function() {
				changePageDoc($(this).html());
				return false;
			}
		);
		if(nbPages>0) {
			$(".item-sommaire").click(function() {
					changePageDoc($(this).attr("rel"));
				}
			);
		}
	}
});

/*
 * ========================================================================================================
 * Le formulaire de recherche de remplacement
 * ========================================================================================================
 */
var acFieldIdGlobal;
var submitFieldIdGlobal;

function storeCityIdIntoField(event) {
	$.post(
		'/macsf/vilib/ajax/getCityRezoplusId.jspz',
		{
			"cityName" : $('input#' + acFieldIdGlobal).val()
		},
		function(data){
			var cityId = myTrim(data);
			if (cityId!='') {
				$('input#' + submitFieldIdGlobal).val(myTrim(data));
			}
		},
		"html"
	);
}
function initCityAutocompleter(acFieldId, submitFieldId) {
	acFieldIdGlobal = acFieldId;
	submitFieldIdGlobal = submitFieldId;
	
	autocompleteField = $('input#' + acFieldId);
	
	// l'auto-complétion sur la ville
	$(autocompleteField).autocomplete('/macsf/vilib/ajax/getCities.jspz', {
		autoFill: false,
		matchContains: true,
		max: 20
	});
	
	if (submitFieldId!='null') {
		// On va chercher l'ID rezoplus
		$(autocompleteField).bind('keypress', storeCityIdIntoField);
		$(autocompleteField).bind('blur', storeCityIdIntoField);
	}
}

function myTrim (myString)
{
	return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
} 

function initReplacementAddsSearchForm() {
	initCityAutocompleter('ACville', 'ville');
	
	// Le calendrier
	hiddenDate = $("input#hiddenDate");
	$(hiddenDate).datepicker({
		showOn: 'button',
		buttonImage: '/file/resources/macsf/vilib/img/calendrier.gif',
		buttonImageOnly: true
	});
	$(hiddenDate).datepicker(
			'option',
			$.extend(
					{showMonthAfterYear: false},
					$.datepicker.regional['fr']));
	
	// La mise à jour des sélecteurs de date
	$(hiddenDate).change(function() {
		$('li.dateField option').removeAttr('selected');
		$('select#startDateDD option[value="' + $(hiddenDate).datepicker('getDate').getDate() + '"]').attr('selected', 'selected');
		selectedMonth = $(hiddenDate).datepicker('getDate').getMonth() + 1;
		$('select#startDateMM option[value="' + selectedMonth + '"]').attr('selected', 'selected');
		$('select#startDateYYYY option[value="' + $(hiddenDate).datepicker('getDate').getFullYear() + '"]').attr('selected', 'selected');
	});

	// La mise à jour du calendrier
	$('select#startDateDD, select#startDateMM, select#startDateYYYY').change(function() {
		newDate = new Date();
		newDate.setDate($('select#startDateDD').val());
		newDate.setMonth($('select#startDateMM').val() - 1);
		newDate.setYear($('select#startDateYYYY').val());
		
		$(hiddenDate).datepicker('setDate', newDate);
	});
}

/*
 * Vu que, sur afficherRemplacements, la pagination est progressive, il faut rebinder le nouveau lien créé à chaque appel ajax
 */
function initReplacementAddsSearchFormForAjax(ville, jourdebut, moisdebut, anneedebut, flexibilite, specialite, type, page, preview, servicecode) {
	$("#jsvoirlasuite").click(function() {
		$.post(
				'/macsf/vilib/ajax/webservice.jspz?code='+servicecode,
				{
					"ville" : ville,
					"jourdebut" : jourdebut,
					"moisdebut" : moisdebut,
					"anneedebut" : anneedebut,
					"flexibilite" : flexibilite,
					"specialite" : specialite,
					"type" : type,
					"page" : page,
					"preview": preview
				},
				function(data){
					$('#voirlasuite'+page).html(data);
					initReplacementAddsSearchFormForAjax(ville, jourdebut, moisdebut, anneedebut, flexibilite, specialite, type, ++page, preview, servicecode);
				},
				"html"
		);
		return false;
	});
}

/*
 * ========================================================================================================
 * Le formulaire de recherche de remplacement
 * ========================================================================================================
 */
function initReplacementAddsPostForm() {
	initCityAutocompleter('ACville', 'ville');
	
	// Le calendrier de début
	hiddenStartDate = $("input#hiddenStartDate");
	$(hiddenStartDate).datepicker({
		showOn: 'button',
		buttonImage: '/file/resources/macsf/vilib/img/calendrier.gif',
		buttonImageOnly: true
	});
	$(hiddenStartDate).datepicker(
			'option',
			$.extend(
					{showMonthAfterYear: false},
					$.datepicker.regional['fr']));
	
	// La mise à jour des sélecteurs de date
	$(hiddenStartDate).change(function() {
		$('select#jourdebut option, select#moisdebut option, select#anneedebut option').removeAttr('selected');
		$('select#jourdebut option[value="' + $(hiddenStartDate).datepicker('getDate').getDate() + '"]').attr('selected', 'selected');
		selectedMonth = $(hiddenStartDate).datepicker('getDate').getMonth() + 1;
		$('select#moisdebut option[value="' + selectedMonth + '"]').attr('selected', 'selected');
		$('select#anneedebut option[value="' + $(hiddenStartDate).datepicker('getDate').getFullYear() + '"]').attr('selected', 'selected');
	});
	
	// La mise à jour du calendrier
	$('select#jourdebut, select#moisdebut, select#anneedebut').change(function() {
		newDate = new Date();
		newDate.setDate($('select#jourdebut').val());
		newDate.setMonth($('select#moisdebut').val() - 1);
		newDate.setYear($('select#anneedebut').val());
		
		$(hiddenStartDate).datepicker('setDate', newDate);
	});
	// Le calendrier de début
	hiddenStopDate = $("input#hiddenStopDate");
	$(hiddenStopDate).datepicker({
		showOn: 'button',
		buttonImage: '/file/resources/macsf/vilib/img/calendrier.gif',
		buttonImageOnly: true
	});
	$(hiddenStopDate).datepicker(
			'option',
			$.extend(
					{showMonthAfterYear: false},
					$.datepicker.regional['fr']));
	
	// La mise à jour des sélecteurs de date
	$(hiddenStopDate).change(function() {
		$('select#jourfin option, select#moisfin option, select#anneefin option').removeAttr('selected');
		$('select#jourfin option[value="' + $(hiddenStopDate).datepicker('getDate').getDate() + '"]').attr('selected', 'selected');
		selectedMonth = $(hiddenStopDate).datepicker('getDate').getMonth() + 1;
		$('select#moisfin option[value="' + selectedMonth + '"]').attr('selected', 'selected');
		$('select#anneefin option[value="' + $(hiddenStopDate).datepicker('getDate').getFullYear() + '"]').attr('selected', 'selected');
	});
	
	// La mise à jour du calendrier
	$('select#jourfin, select#moisfin, select#anneefin').change(function() {
		newDate = new Date();
		newDate.setDate($('select#jourfin').val());
		newDate.setMonth($('select#moisfin').val() - 1);
		newDate.setYear($('select#anneefin').val());
		
		$(hiddenStopDate).datepicker('setDate', newDate);
	});
}

/*
 * ========================================================================================================
 * Le formulaire d'inscription
 * ========================================================================================================
 */
function initBirthDayPicker(inputSelector, daySelectName, monthSelectName, yearSelectName) {
	initDatePicker(inputSelector, daySelectName, monthSelectName, yearSelectName);
	$(inputSelector).datepicker('option', 'changeYear', true);
	$('select[name="' + daySelectName + '"]').trigger('change');
}
function initDatePicker(inputSelector, daySelectName, monthSelectName, yearSelectName) {
	hiddenDate = $(inputSelector);
	
	$(hiddenDate).datepicker({
		showOn: 'button',
		buttonImage: '/file/resources/macsf/vilib/img/calendrier.gif',
		buttonImageOnly: true
	});
	$(hiddenDate).datepicker(
			'option',
			$.extend(
					{showMonthAfterYear: false},
					$.datepicker.regional['fr']));
	
	// La mise à jour des sélecteurs de date
	$(hiddenDate).change(function() {
		$('select[name="' + daySelectName + '"] option, select[name="' + monthSelectName + '"] option, select[name="' + yearSelectName + '"] option').removeAttr('selected');
		$('select[name="' + daySelectName + '"] option[value="' + $(hiddenDate).datepicker('getDate').getDate() + '"]').attr('selected', 'selected');
		selectedMonth = $(hiddenDate).datepicker('getDate').getMonth() + 1;
		$('select[name="' + monthSelectName + '"] option[value="' + selectedMonth + '"]').attr('selected', 'selected');
		$('select[name="' + yearSelectName + '"] option[value="' + $(hiddenDate).datepicker('getDate').getFullYear() + '"]').attr('selected', 'selected');
	});
	
	// La mise à jour du calendrier
	$('select[name="' + daySelectName + '"], select[name="' + monthSelectName + '"], select[name="' + yearSelectName + '"]').change(function() {
		newDate = new Date();
		newDate.setDate($('select[name="' + daySelectName + '"]').val());
		newDate.setMonth($('select[name="' + monthSelectName + '"]').val() - 1);
		newDate.setYear($('select[name="' + yearSelectName + '"]').val());
		
		$(hiddenDate).datepicker('setDate', newDate);
	});
	
	// On récupère les années min et max du selecteur d'année
	yearOptions = $('select[name="' + yearSelectName + '"] option');

	// Initialisation
	minYear = $(yearOptions[0]).val();
	maxYear = $(yearOptions[0]).val();
	
	for ( i = 0; i < yearOptions.length; i++) {
		optionValue = $(yearOptions[i]).val();
		
		if(minYear > optionValue) {
			minYear = optionValue;
		}
		if(maxYear < optionValue) {
			maxYear = optionValue;
		}
	}
	
	$(inputSelector).datepicker('option', 'yearRange', minYear + ':' + maxYear);
}

function initAnswerLightBox(linkClass, slug, user, servicecode) {
	$("a." + linkClass).click(function() {
		$.post(
				'/macsf/vilib/ajax/webservice.jspz?code='+servicecode,
				{
					"slug" : slug,
					"user" : user
				},
				function(data){
					$.modal(data);
				},
				"html"
		);
		return false;
	});
}

function initGetRatings(confirmmessage) {
	$("a.hideThisRating").click(function(event) {
		if (confirm(confirmmessage)) {
			$.post(
					'/macsf/vilib/ajax/webservice.jspz?code=masquerAppreciation',
					{
						"idappreciation" : this.id
					},
					function success(data){
						$(event.currentTarget).parent().parent().hide("slow");
					},
					"html"
			);
		}
		return false;
	});
}

function initDeleteButton(confirmMessage) {
	$("input#delete").click(function(event) {
		if (confirm(confirmMessage)) {
			$(this).parents('form').submit();
		}
		return false;
	});
}

/** Afficher un message de notification **/
function messageNotification(message) {
	$('#messagesFrame').css('display', 'block');
	$('#errorsFrame').css('display', 'none');
	$('#messagesFrame').html(message);
}

/** Afficher un message d'erreur **/
function messageErreur(message) {
	$('#errorsFrame').css('display', 'block');
	$('#messagesFrame').css('display', 'none');
	$('#errorsFrame').html(message);
}

/** VALIDATION DES FORMULAIRES DE SERVICE **/

var formOK = true;

/* Nettoie tout un formulaire de messages d'erreur */
function formClean(formid) {
	$('#'+formid+' input, #'+formid+' textarea').removeClass('error');
	$('#errorsFrame').css('display', 'none');
	$('#errorsFrame').html('');
	formOK = true;
}
/* Pour le formulaire id, controle la presence d'une valeur pour l'element de name 'elementname', et affiche un message d'erreur sinon */
function formObligatoire(formid, elementname, errormessage) {
	if ($('#'+formid+' *[name='+elementname+']').val() == '') {
		$('#'+formid+' *[name='+elementname+']').addClass('error');
		if (errormessage!='') { $('#errorsFrame').css('display', 'block'); }
		$('#errorsFrame').html(errormessage);
		formOK = false;
		return false;
	}
	return true;
}
/* Verifie que le formulaire est submitable */
function formCanBeSubmitted() {
	if (formOK == true) {
		$('#messagesFrame').css('display', 'block');
		$('#messagesFrame').html('Envoi en cours...');
	}
	return formOK;
}

/** FACEBOOK CONNECT **/
var facebookConnectApiKey;
var facebookConnectChannelPath;
var facebookConnectCurrentUid;
var facebookConnectWelcomeMessage;
var facebookConnectApiObject;

function tellMeWhoIsFacebookConnected() {
    if (facebookConnectCurrentUid == null) {
    	alert('utilisateur non connecte');
    }
    else {
    	alert('utilisateur : '+facebookConnectCurrentUid);
    }
}

function initFacebookConnect(isLoggingIn, isLinking, urlLinkFbCompte) {
	
	FB_RequireFeatures(["Api"], function(){
	    // Create an ApiClient object, passing app's API key and 
	    // a site relative URL to xd_receiver.htm
	    FB.Facebook.init(facebookConnectApiKey, facebookConnectChannelPath);
	    
	    facebookConnectApiObject = FB.Facebook.apiClient;
	    var api = facebookConnectApiObject;
	    if (api.get_session()!=null) {
	    	facebookConnectCurrentUid = api.get_session().uid;
	    }
	    
	    if (isLoggingIn) {
	    	$.post(
				'/macsf/vilib/ajax/loginAsFacebookConnect.jspz',
				{
					"fbuid" : facebookConnectCurrentUid
				},
				function success(data){
					messageNotification(facebookConnectWelcomeMessage);
				},
				"html"
			);
	    }
	    
	    if (isLinking) {
	    	$.post(
				'/macsf/vilib/ajax/linkOnFacebookConnect.jspz',
				{
					"fbuid" : facebookConnectCurrentUid
				},
				function success(data){
					if (data.indexOf("Erreur :") > -1) {
						messageErreur(data);
					}
					else {
						messageNotification(data);
						window.location = urlLinkFbCompte;
					}
				},
				"html"
			);
	    }
	    
	});
}

function onLoginFacebookConnect() {
	$('#facebookConnectLoginForm').submit();
}

function onLinkAccountFacebookConnect() {
	$('#facebookConnectLoginForm input[name="facebook"]').val("link");
	$('#facebookConnectLoginForm').submit();
}

function fillPostFbConnectFields(firstName, lastName, email) {
	var fields = ["first_name", "last_name", "contact_email"];
	facebookConnectApiObject.users_getInfo([facebookConnectCurrentUid], fields, function(result){
		if (firstName!='') { $("#"+firstName).val(result[0].first_name); }
		if (lastName!='') { $("#"+lastName).val(result[0].last_name); }
		if (email!='') { $("#"+email).val(result[0].contact_email); }
	});
}

/** RezoPlus repondre remplacement */
function validateLightboxForm() {
	var formid = 'repondreAUnRemplacement';
	$('#'+formid+' input, #'+formid+' textarea').removeClass('error');
	$('#errorsFrameLightbox').css('display', 'none');
	$('#errorsFrameLightbox').html('');
	formOK = true;

	var elementname = 'commentaire';
	if ($('#'+formid+' *[name='+elementname+']').val() == '') {
		$('#'+formid+' *[name='+elementname+']').addClass('error');
		$('#errorsFrameLightbox').css('display', 'block');
		$('#errorsFrameLightbox').html('Le commentaire est obligatoire !!');
		formOK = false;
	}

	if (formOK == true) {
		$('#messagesFrameLightbox').css('display', 'block');
		$('#messagesFrameLightbox').html('Envoi en cours...');
	}
	return formOK;
}

function initializeGGMaps() {
	if (GBrowserIsCompatible()) {
		var map = new GMap2(document.getElementById("googleMaps"));
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					alert(address + " not found");
				} else {
					map.setCenter(point, 13);
					var marker = new GMarker(point);
					map.addOverlay(marker);
					marker.openInfoWindowHtml(address);
				}
			}
		);
		map.setMapType(G_HYBRID_MAP);
		map.setUIToDefault();
	}
}

/** JS deporte */
$(document).ready(function(){
	/** lien quelconque */
	if ($('.addAnalyticsCall').length) {
		$('.addAnalyticsCall').click(function () {
			pageTracker._trackPageview($(this).attr("href"));
		});
	}
	/** Afficher remplacement */
	if($('#afficherRemplacements').length) {
		initReplacementAddsSearchForm();
	}
	if($('#jsvoirlasuite').length) {
		var metaParams = $('#jsvoirlasuite').metadata();
		initReplacementAddsSearchFormForAjax(metaParams.ville, metaParams.jour, metaParams.mois, metaParams.annee, metaParams.flexibilite, metaParams.specialite, metaParams.type, metaParams.nextPage, metaParams.preview, metaParams.code);
	}
	/** RezoPlus repondre remplacement */
	if($('#repondreAUnRemplacement').length) {
		$("#repondreAUnRemplacement .btSubmitFormInPopin").click(function() {
			return validateLightboxForm();
		});
	}
	/** Afficher Remplacements */
	if($('#afficherRemplacements').length) {
		$("form#afficherRemplacements input[type=submit]").click(function() {
			formClean(formid);
			formObligatoire(formid, 'ACville', 'La ville est obligatoire !');
			return formCanBeSubmitted();
		});
	}
	/** header container */
	if($('#formrechercheheader').length) {
		$("input.search-input").autocomplete("/macsf/vilib/ajax/auto_complete_for_recherche.jspz", {"minChars":3, "width":299, "matchSubset":false});
	}
	/** form Commentaires */
	if($('#docVilibForm').length) {
		$("form#docVilibForm input[type=submit]").click(function() {
			formClean(formid); $('ul.commentFormError').html('');
			if (!formObligatoire('docVilibForm', 'name', '')) { $('ul.commentFormError').html($('ul.commentFormError').html()+'<li>Le champ nom est obligatoire.</li>'); $('ul.commentFormError').css('display', 'block'); }
			if (!formObligatoire('docVilibForm', 'mail', '')) { $('ul.commentFormError').html($('ul.commentFormError').html()+'<li>Le champ e-mail est obligatoire.</li>'); $('ul.commentFormError').css('display', 'block'); }
			if (!formObligatoire('docVilibForm', 'comment', '')) { $('ul.commentFormError').html($('ul.commentFormError').html()+'<li>Le champ commentaire est obligatoire.</li>'); $('ul.commentFormError').css('display', 'block'); }
			return formCanBeSubmitted();
		});
	}
	/** Doc */
	if($('#article').length && $('#bottomPagination').length) {
		initPagination();
	}
	/** Form contact */
	if($('#vilibContactForm').length) {
		$("#vilibContactForm .submitLine .btSend").click(function() {
			formOK = 'true';
			$('#alert').toggleClass('error', false);
			$('#alert').toggleClass('info');
			formClean('message');
			formClean('lastname');
			formClean('firstname');
			formClean('address');
			formClean('telephone');
			formEmail('address');
			formObligatoire('message');
			formObligatoire('lastname');
			formObligatoire('firstname');
			formObligatoire('address');
			formObligatoire('telephone');
			if (formOK == 'true') {
				document.getElementById('alert').innerHTML = '<p>Envoi en cours...</p>';
				document.getElementById('alert').className = 'info';
				document.forms['vilibContactForm'].submit();
			}
			return(false);
		});
	}
	/** Form recherche */
	if($('#formrecherche').length) {
		$(".keywords").autocomplete("/macsf/vilib/ajax/auto_complete_for_recherche.jspz", {"minChars":3, "width":219, "cache":false, "matchSubset":false});
	}
	if($('#formrechercheblocservices').length) {
		initCityAutocompleter("ACville", "ville");
	}
	/** get un remplacement */
	if($('#getunremplacement').length) {
		initAnswerLightBox('loadPopin', rezoPlusSlug, rezoPlusId, rezoPlusService);
		initializeGGMaps();
	}
	/** get appreciations */
	if($('#appreciations').length) {
		initGetRatings(confirmHide);
	}
	/** Poster ou modifier un remplacement */
	if($('#posterRemplacement').length) {
		initReplacementAddsPostForm();
		var formid = 'posterRemplacement'; 
		$("form#"+formid+" input[type=submit]").click(function(event) {
			formClean(formid);
			if(rezoPlusAdresse) {
				formObligatoire(formid, 'adresseprofil', 'Veuillez renseigner tous les champs');
			}
			if(rezoPlusTel) {
				formObligatoire(formid, 'telephone', 'Veuillez renseigner tous les champs');
			}
			formObligatoire(formid, 'ACville', 'Veuillez renseigner tous les champs');
			formObligatoire(formid, 'adresse', 'Veuillez renseigner tous les champs');
			formObligatoire(formid, 'specialite', 'Veuillez renseigner tous les champs');
			formObligatoire(formid, 'description', 'Veuillez renseigner tous les champs');
			return formCanBeSubmitted();
		});
	}
	/** Répondre a un remplacement */
	if($('#repondreAUnRemplacement').length) {
		var formid = 'repondreAUnRemplacement'; 
		$("form#"+formid+" input[type=submit]").click(function(event) {
			formClean(formid);
			formObligatoire(formid, 'commentaire', 'Le commentaire est obligatoire !!');
			return formCanBeSubmitted();
		});
	}
	/** Info profil */
	if($('#infoprofil').length) {
		initGetRatings(confirmHide);
	}
	/** Inscrire user */
	if($('#inscrireUser').length) {
		initBirthDayPicker("input#hiddenBirthDate", "journaissance", "moisnaissance", "anneenaissance");
		initCityAutocompleter("villetouteslettres", "null");
		var formid = 'inscrireUser'; 
		$("form#"+formid+" input[type=submit]").click(function(event) {
			formClean(formid);
			formObligatoire(formid, 'nom', 'Le nom est obligatoire !');
			formObligatoire(formid, 'prenom', 'Le prenom est obligatoire !');
			formObligatoire(formid, 'journaissance', 'La date de naissance est obligatoire !');
			formObligatoire(formid, 'moisnaissance', 'La date de naissance est obligatoire !');
			formObligatoire(formid, 'anneenaissance', 'La date de naissance est obligatoire !');
			formObligatoire(formid, 'villetouteslettres', 'La ville est obligatoire !');
			formObligatoire(formid, 'email', 'L\'adresse mail !');
			formObligatoire(formid, 'pass', 'Le mot de passe est obligatoire !');
			formObligatoire(formid, 'pass2', 'La confirmation du mot de passe est obligatoire !');
			if (this.value == creerComptePlusCompl) $('form#'+formid+' input[name=formredirect]').val(service);
			if (this.value == creerCompte) $('form#'+formid+' input[name=formredirect]').val(home);
			return formCanBeSubmitted();
		});
	}
	/** Oubli mot de passe */
	if($('#oubliMotDePasse').length) {
		var formid = 'oubliMotDePasse';
		$("form#"+formid+" input[type=submit]").click(function(event) {
			formClean(formid);
			formObligatoire(formid, 'email', 'Veuillez renseigner tous les champs');
			return formCanBeSubmitted();
		});
	}
	/** Post FB connect */
	if($('#postFBConnect').length) {
		initCityAutocompleter('ACville', 'ville');
		if(rezoPlusPrenom) {
			fillPostFbConnectFields(prenom, nom, email);
		}
		var formid = 'postFBConnect'; 
		$("form#"+formid+" input[type=submit]").click(function(event) {
			formClean(formid);
			formObligatoire(formid, 'prenom', messageErreur);
			formObligatoire(formid, 'nom', messageErreur);
			formObligatoire(formid, 'ACville', messageErreur);
			formObligatoire(formid, 'email', messageErreur);
			return formCanBeSubmitted();
		});
	}
	/** Remplir les infos user */
	if($('#setUserInfos').length) {
		initBirthDayPicker("input#hiddenBirthDate", "journaissance", "moisnaissance", "anneenaissance");
		initCityAutocompleter("ACville", "ville");
		var formid = 'setUserInfos'; 
		$("form#"+formid+" input[type=submit]").click(function(event) {
			formClean(formid);
			formObligatoire(formid, 'nom', 'Merci de renseigner tous les champs obligatoires.');
			formObligatoire(formid, 'prenom', 'Merci de renseigner tous les champs obligatoires.');
			formObligatoire(formid, 'ACville', 'Merci de renseigner tous les champs obligatoires.');
			formObligatoire(formid, 'email', 'Merci de renseigner tous les champs obligatoires.');
			return formCanBeSubmitted();
		});
	}
	/** Signaler un abus */
	if($('#signalerAbus').length) {
		var formid = 'signalerAbus';
		$("form#"+formid+" input[type=submit]").click(function() {
			formClean(formid);
			formObligatoire(formid, 'raison', messageErreur);
			return formCanBeSubmitted();
		});
	}
	/** Supprimer une annonce */
	if($('#supprAnnonce').length) {
		initDeleteButton("Etes-vous sûr de vouloir supprimer cette annonce ?");
		var formid = 'supprAnnonce'; 
		$("form#"+formid+" input[type=submit]").click(function() {
			formClean(formid);
			formObligatoire(formid, 'commentaire', 'Le commentaire est obligatoire !!');
			return formCanBeSubmitted();
		});
	}
	/** Supprimer un compte */
	if($('#supprCompte').length) {
		initDeleteButton("Etes-vous sûr de vouloir supprimer votre compte ?");
	}
	/** facebook connect */
	if($('#facebookConnectLoginForm').length) {
		initFacebookConnect(isLoggingIn, isLinking, service);
	}
});
