function Site () {}

Site.initMenu = function () {
	
	/***** MENU EVENT *****/
	$('.menu_item').hover(function(){
		$(this).find('div').show();
	}, function(){
		$(this).find('div').hide();
	});
};

Site.initFormSondages = function () {
	var formSondage = $('#sondage');
	
	if (formSondage.length !== 0) {
		// ville
		$.form.addField('sondage', 'ville', {
			required:true,
			type:'string',
			errorMessage:'Veuillez saisir correctement votre ville.',
			errorContainer:'sondage_error'
		});
		
		// fleurs_qualite
		$.form.addSelect('sondage', 'fleurs_qualite', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de la qualité des fleurs.",
			errorContainer:'sondage_error'
		});
		
		// promotions
		$.form.addSelect('sondage', 'promotions', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance des promotions.",
			errorContainer:'sondage_error'
		});
		
		// grand_choix_fleurs
		$.form.addSelect('sondage', 'grand_choix_fleurs', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance d'un grand choix de fleurs.",
			errorContainer:'sondage_error'
		});
		
		// fleurs_qui_tiennent
		$.form.addSelect('sondage', 'fleurs_qui_tiennent', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de fleurs qui tiennent.",
			errorContainer:'sondage_error'
		});
		
		// bouquets_harmonieux
		$.form.addSelect('sondage', 'bouquets_harmonieux', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de bouquets harmonieux.",
			errorContainer:'sondage_error'
		});
		
		// bouquets_simples
		$.form.addSelect('sondage', 'bouquets_simples', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de bouquets simples.",
			errorContainer:'sondage_error'
		});
		
		// belles_couleurs
		$.form.addSelect('sondage', 'belles_couleurs', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de belles couleurs.",
			errorContainer:'sondage_error'
		});
		
		// prix_bas
		$.form.addSelect('sondage', 'prix_bas', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de prix bas.",
			errorContainer:'sondage_error'
		});
		
		// autres
		$.form.addSelect('sondage', 'autres', {
			required:true,
			type:'int',
			rangeValue:[0, 8],
			errorMessage:"Veuillez saisir l'importance de votre attente personnelle.",
			errorContainer:'sondage_error'
		});
		
		// VALIDATION
		formSondage.submit(function(){
			if (!$.form.checkForm('sondage')) {
				return(false);
			}
			
			if ($("#sondage :radio[@name='age'][@checked]").length != 1) {
				$.debug.displayError('Veuillez sélectionner votre âge.', 'sondage_error');
				return(false);
			}
			
			if ($("#sondage :radio[@name='sexe'][@checked]").length != 1) {
				$.debug.displayError('Veuillez sélectionner votre sexe.', 'sondage_error');
				return(false);
			}
			
			var tab08 = "012345678";
			$("#sondage select:lt(9)").each(function(){
				var value = $(this).val();
				if ( tab08.lastIndexOf(value) == -1 ) {
					$.debug.displayError("Merci de classer par ordre d'importance de 1 à 8.", 'sondage_error');
					return(false);
				}
				else {
					var regexp = new RegExp(value);
					tab08 = tab08.replace(regexp, '');
				}
			});
			if (tab08 !== '') {
				$.debug.displayError("Merci de classer par ordre d'importance de 1 à 8.", 'sondage_error');
				return(false);
			}
			
			if ( ($("#sondage select:last").val() !== 0) && !$.string.exist($('#text_precision').val()) ) {
				$.debug.displayError("Veuillez préciser votre attente personnelle.", 'sondage_error');
				return(false);
			}

			return(true);
		});
	}
};

Site.displayCodeCarte = function () {
	var carte = $('input[@name="carte_fidelite"]:checked').val();
	
	switch (carte) {
		case 'oui':
			$('#code_carte').show();
			break;
		case 'non':
		case undefined:
			$('#code_carte').hide();
			break;
	}
};

Site.initFormContact = function () {
	if ($('#contact').length == 1) {
		
		/***** DISPLAY CARTE *****/
		Site.displayCodeCarte();
		$('input[@name="carte_fidelite"]').click(function(){
			Site.displayCodeCarte();
		});
		
		/***** FORM MANAGER *****/
		$.form.addSelect('contact', 'titre', {
			required:true,
			errorMessage:"Veuillez sélectionner votre titre.",
			errorContainer:'contact_error'
		});
		
		$.form.addField('contact', 'prenom', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre prénom.",
			errorContainer:'contact_error'
		});
		
		$.form.addField('contact', 'nom', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre nom.",
			errorContainer:'contact_error'
		});
		
		$.form.addField('contact', 'email', {
			required:true, 
			type:'email',
			errorMessage:"Veuillez saisir correctement votre email.",
			errorContainer:'contact_error'
		});
		
		$.form.addField('contact', 'message', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre message.",
			errorContainer:'contact_error'
		});
		
		$('#contact').submit(function(){
			if (!$.form.checkForm('contact')) {
				return(false);
			}
			
			if ($("input:radio[@name='carte_fidelite'][@checked]").length != 1) {
				$.debug.displayError('Veuillez préciser si vous possédez la carte de fidélité.', 'contact_error');
				return(false);
			}
			
			var carte = $('input[@name="carte_fidelite"][@checked]').val();
			if (carte == 'oui' && !$.string.exist($('#code_carte2').val()) ) {
				$.debug.displayError('Veuillez saisir votre numéro de carte de fidélité.', 'contact_error');
				return(false);
			}
			
			return(true);
		});
	}
};

Site.initFormCoordonnees = function () {
	if ($('#coordonnees').length == 1) {
				
		/***** INIT CALENDAR *****/
		var today = new Date();
		$('#date_titulaire').calendar({
			firstDay: 1,
			yearRange: '1900:' + today.getFullYear()
		});
					
		/***** FORM MANAGER *****/
		$.form.addSelect('coordonnees', 'code_carte', {
			required:true,
			type:'string',
			errorMessage:"Veuillez saisir votre numéro de carte fidélité.",
			errorContainer:'coordonnees_error'
		});
		
		$.form.addSelect('coordonnees', 'titre_titulaire', {
			required:true,
			errorMessage:"Veuillez sélectionner votre titre.",
			errorContainer:'coordonnees_error'
		});
		
		$.form.addField('coordonnees', 'prenom_titulaire', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre prénom.",
			errorContainer:'coordonnees_error'
		});
		
		$.form.addField('coordonnees', 'date_titulaire', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez sélectionner votre date de naissance.",
			errorContainer:'coordonnees_error'
		});
		
		$.form.addField('coordonnees', 'nom_titulaire', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre nom.",
			errorContainer:'coordonnees_error'
		});
		
		$('#coordonnees').submit(function(){
			
			if (!$.form.checkForm('coordonnees')) {
				return(false);
			}
					
			if (!$.string.exist($('#titre').val())
				&& !$.string.exist($('#prenom').val())
				&& !$.string.exist($('#nom').val())
				&& !$.string.exist($('#email').val())
				&& !$.string.exist($('#adresse').val())
				&& !$.string.exist($('#code_postal').val())
				&& !$.string.exist($('#ville').val())
				&& !$.string.exist($('#pays').val())
				) {		
				$.debug.displayError('Veuillez saisir au moins un champ pour la modification de vos coordonnées personnelles.', 'coordonnees_error');
				return(false);
			}
			
			return(true);
		});
	}
};

Site.displayPrecision = function () {
	var carte = $('input[@name="connaissance"]:checked').val();

	switch (carte) {
		case 'magasin':
			$('#prec_magasin').show();
			$('#prec_salon').hide();
			break;
		case 'salon':
			$('#prec_salon').show();
			$('#prec_magasin').hide();
			break;
		case 'internet':
		case 'presse':
		case undefined:
			$('#prec_salon').hide();
			$('#prec_magasin').hide();
			break;
	}
};

Site.displayMontantApport = function () {
	var apport = $('input[@name="apport"]:checked').val();
	
	switch (apport) {
		case 'oui':
			$('td.apport_oui').show();
			break;
		case 'non':
		case undefined:
			$('td.apport_oui').hide();
			break;
	}
};

Site.initFormOuvrir_Magasins = function (){
	if ($('#ouvrir_magasin').length == 1) {
		
		/***** APPORT FINANCIER *****/
		Site.displayMontantApport();
		$('input[@name="apport"]').click(function(){
			Site.displayMontantApport();
		});
		
		/***** DISPLAY PRECISION *****/
		Site.displayPrecision();
		$('input[@name="connaissance"]').click(function(){
			Site.displayPrecision();
		});
		
		/***** FORM MANAGER *****/
		$.form.addSelect('ouvrir_magasin', 'titre', {
			required:true,
			errorMessage:"Veuillez sélectionner votre titre.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'prenom', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre prénom.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'nom', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre nom.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'adresse', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre adresse.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'code_postal', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre code postal.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'ville', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre ville.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'pays', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir votre pays.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'tel', {
			required:true, 
			type:'int',
			rangeLength:[10, 10],
			errorMessage:"Veuillez saisir correctement votre téléphone sous la forme 0123456789.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'email', {
			required:true, 
			type:'email',
			errorMessage:"Veuillez saisir correctement votre email.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$.form.addField('ouvrir_magasin', 'implantation', {
			required:true, 
			type:'string',
			errorMessage:"Veuillez saisir la zone d'implentation souhaitée.",
			errorContainer:'ouvrir_magasin_error'
		});
		
		$('#ouvrir_magasin').submit(function(){
			if (!$.form.checkForm('ouvrir_magasin')) {
				return(false);
			}
			
			if ($("input:radio[@name='apport'][@checked]").length != 1) {
				$.debug.displayError('Veuillez sélectionner vos conditions d\'apport financier.', 'ouvrir_magasin_error');
				return(false);
			}
			
			var carte = $('input[@name="connaissance"][@checked]').val();
			
			if (carte == 'salon' && !$.string.exist($('#precision_salon').val()) ) {
				$.debug.displayError('Veuillez préciser le salon.', 'ouvrir_magasin_error');
				return(false);
			}
			if (carte == 'magasin' && !$.string.exist($('#precision_magasin').val()) ) {
				$.debug.displayError('Veuillez préciser le magasin.', 'ouvrir_magasin_error');
				return(false);
			}
			
			if ($("input:checkbox[@name^='souhait'][@checked]").length == 0) {
				$.debug.displayError('Veuillez sélectionner au minimum un souhait.', 'ouvrir_magasin_error');
				return(false);
			}
			
			var apport = $('input[@name="apport"]:checked').val();
			if (apport == 'oui' && !$.string.exist($('#montant_apport').val()) ) {
				$.debug.displayError('Veuillez saisir le montant de votre apport en euros.', 'contact_error');
				return(false);
			}
			
			return(true);
		});
		
	}
};

Site.initFormTrouvezMagasin = function () {
	if ($('#trouvez_magasin').length == 1) {
		$.form.addField('trouvez_magasin', 'ville_code_postal', {
			required:true,
			tipValue:$('#ville_code_postal').val(),
			errorMessage:"Veuillez sélectionner votre ville ou code postal."
		});
		
		$('#trouvez_magasin').submit(function(){
			if (!$.form.checkForm('trouvez_magasin')) {
				return(false);
			}
			
			return(true);
		});
	}
};

Site.displayMagasins = function (data) {
	$('#list_magasins').html(data);
};

Site.displayMagasinsFromGET = function (param) {
	if ( ($('#trouvez_magasin').length == 1) && (param !== undefined) && (param !== '') ) {
		/***** AJAX *****/
		$('#list_magasins').html('<img src="images/magasins/ajax-loader.gif" alt="">');
		$.get('gateway/getMagasins.php', {
				ville_code_postal:param
		}, function(data){
			Site.displayMagasins(data);
		});
	}
};