/**
* Genform front manager
* Manage javascript module Genform in front
* @author Altiplano.fr
* @date 09/14/2009
*/

var GfFrontManager = {

/**
* Action to do when the poll form is submitted
* Make a server call to save the vote and display a graph with results
*/
	vote : function(){
		var that = this;

		// Retrieve poll container, this will be the replaced element (replaced by the chart)
		var poll = $('poll');
		var size = poll.getSize();

		// Retrieve form
		var form = poll.getElements('form')[0];
		
		// Retrieve form id 
		var formId = form.genformId.value;
		
		var answers = {};

		var response = "";
		// Retrieve the visitor response to the poll and stock the other response
		for(var i = 0 ; i < form.pollResponse.length ; i++){
			if(form.pollResponse[i].checked)
				response = form.pollResponse[i].value;
			else
				answers[form.pollResponse[i].value] = form.pollResponse[i].value;
		}

		// If we have a response
		if(response){
			// Send response to server with form id
			// Ajax request
			var url = '/genform/poll/save-vote';
			
			poll.empty().addClass('ajax-loading');
			
			var ajaxRequest = new Request.HTML({
				url : url,
				method: 'post',
				encoding: 'uft-8',
				onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript){
					poll.removeClass('ajax-loading');
					// If we have a result generate chart
					if(responseHTML){
						//that.generateChart(poll, res);
						poll.innerHTML = responseHTML;
					}
				},
				data : {
					response: response,
					answers: answers,
					formId: formId
				}
			});

			ajaxRequest.send();		
		}
	},
	
		
	/**
	* Action to do when the a contact form is in ajax mode and has no particulary action to perform
	* Make a server call to send the email
	* @param form The form element
	*/
	sendContact : function(form){
		form.id = 'contactForm';
		$('contactForm').addClass('ajax-loading');

		form.set('send', {onComplete: function(response) {
		  form.removeClass('ajax-loading');
			form.getChildren('fieldset').getChildren('ul').each(function(ul) {
				ul.getChildren('li').each(function(li) {			  
					li.removeClass('error');
					li.getChildren('p').each(function(p){
						p.destroy();
					});
				});
			});
			var messages = eval('(' + response + ')');
			if (messages.isValid)
			{
				$('formulaire_valider').style.display = 'none';
				$('form_champs').style.display = 'none';
				$('logon_error').innerHTML = "Votre message a bien été envoyé. <br />Vous allez recevoir un email de confirmation.";
				$('logon_error').style.display = 'block';
			}
			else
			{
				$('logon_error').innerHTML = messages.message;
				$('logon_error').style.display = 'block';
			}
			}});
		//Send the form.
		form.send();
	},
	
	sendNewsletter : function(form){
		form.id = 'newsletterForm';
		$('newsletterForm').addClass('ajax-loading');

		form.set('send', {onComplete: function(response) {
		  form.removeClass('ajax-loading');
			form.getChildren('fieldset').getChildren('ul').each(function(ul) {
				ul.getChildren('li').each(function(li) {			  
					li.removeClass('error');
					li.getChildren('p').each(function(p){
						p.destroy();
					});
				});
			});
			var messages = eval('(' + response + ')');
			
			if (messages.isValid)
			{
				$('newsletterForm').style.display = 'none';
				$('news_error').innerHTML = "Votre inscription a bien été prise en compte. Vous allez recevoir un email de confirmation.";
				$('news_error').style.display = 'block';
			}
			else
			{
				$('news_error').innerHTML = messages.message;
				$('news_error').style.display = 'block';
			}
			}});
		//Send the form.
		form.send();
	},
	
	sendUnsubscribe : function(form){
		form.id = 'unsubscribeForm';
		$('unsubscribeForm').addClass('ajax-loading');

		form.set('send', {onComplete: function(response) {
		  form.removeClass('ajax-loading');
			form.getChildren('fieldset').getChildren('ul').each(function(ul) {
				ul.getChildren('li').each(function(li) {			  
					li.removeClass('error');
					li.getChildren('p').each(function(p){
						p.destroy();
					});
				});
			});
			var messages = eval('(' + response + ')');
			
			if (messages.isValid)
			{
				$('form_champs').style.display = 'none';
				$('formulaire_valider').style.display = 'none';
				$('logon_error').innerHTML = "Votre désinscription a bien été prise en compte.<br />Vous allez recevoir un email de confirmation.";
				$('logon_error').style.display = 'block';
			}
			else
			{
				$('logon_error').innerHTML = messages.message;
				$('logon_error').style.display = 'block';
			}
			}});
		//Send the form.
		form.send();
	},
	
	sendToFriend : function(form){
		form.id = 'sendToFriend';
		$('sendToFriend').addClass('ajax-loading');

		form.set('send', {onComplete: function(response) {
		  form.removeClass('ajax-loading');
			form.getChildren('fieldset').getChildren('ul').each(function(ul) {
				ul.getChildren('li').each(function(li) {			  
					li.removeClass('error');
					li.getChildren('p').each(function(p){
						p.destroy();
					});
				});
			});
			var messages = eval('(' + response + ')');
			if (messages.isValid)
			{
				$('sendToFriend').style.display = 'none';
				$('logon_error').innerHTML = "Votre message a bien été envoyé.";
				$('logon_error').style.display = 'block';
			}
			else
			{
				$('logon_error').innerHTML = messages.message;
				$('logon_error').style.display = 'block';
			}
			}});
		//Send the form.
		form.send();
	}
		
};
