/**
 *  Client-side feedback representation
 *  @namespace gendi.modules
 *  @author  (jcb [a] zenexity.fr)
 */

if(!window.gendi) window.gendi = {};
if(!window.gendi.modules) window.gendi.modules = {};



(function () {
	
  var pkg = gendi.modules;
  
  var me = pkg.Feedback = function() {
    return {
      toString : function() {
        return 'gendi.modules.Feedback';
      },
      sendMailForm: function(event) {
      	var valid = true;
		    event.preventDefault();
		    $('#contact_message').val("Expéditeur : "+$('#contact_name').val()+"\nMail : "+$('#contact_mail').val()+"\nSociété : "+$('#contact_company').val()+"\n\n"+$('#contact_message').val());
		    $("span.spantag").remove();
		    // ------------------------------------------------ Form validation
		    //Name
	    	var exp = new RegExp ("([^- a-zA-Zéèàêâùïüëç])");
	    	if($('#contact_name').val() != "" && !exp.test($('#contact_name').val())) {
	    		$('#contact_name').css('background-color', '#d5f3b4');
	    	} else {
	    		$('#contact_name').css('background-color', '#f3c5c5');
	    		valid = false;
	    	}
		    
		    // Company
	    	var exp2 = new RegExp ("([^- a-zA-Z0-9éèàêâùçïüë.!])");
	    	if($('#contact_company').val() != "" && !exp2.test($('#contact_company').val())) {
	    		$('#contact_company').css('background-color', '#d5f3b4');
	    	} else {
	    		$('#contact_company').css('background-color', '#f3c5c5');
	    		valid = false;
	    	}
	    	
		    // Mail
	    	var exp3 = new RegExp ("([-_.a-zA-Z0-9]+)@([-.a-zA-Z0-9]+).[a-zA-Z]+");
	    	// ^([a-zA-Z0-9_\-\.]*)[a-zA-Z0-9]@([a-zA-Z0-9\-\.]*)[a-zA-Z0-9]\.[a-zA-Z]{2,3}$
	    	// ^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$
	    	if($('#contact_mail').val() != "" && exp3.test($('#contact_mail').val())) {
	    		$('#contact_mail').css('background-color', '#d5f3b4');
	    	} else {
	    		$('#contact_mail').css('background-color', '#f3c5c5');
	    		valid = false;
	    	}
		    
		    // Body
	    	var exp4 = new RegExp ("([^- :?!,;%\n a-zA-Z0-9éèàêâùïçüë'\"&()_+$€*@.])");
	    	if(!exp4.test($('#contact_message').val())) {
	    		$('#contact_message').css('background-color', '#d5f3b4');
	    	} else {
	    		$('#contact_message').css('background-color', '#f3c5c5');
	    		valid = false;
	    	}
		    // ------------------------------------------------ End of validation
		    if(valid) {
			    $.ajax({
	          type: "post",
	          url: event.target.action,
	          data: $('#sendMailForm').serialize(),
	          success: function(){
	            var btn = $('<span class="spantag" style="color:green;float:right;height:20px;">Votre message a été envoyé</span>');
	            $('#sendMailForm').append(btn);
	            // Clearing the fields
	            $('#contact_message').val('');
	            $('#contact_mail').val('');
	            $('#contact_company').val('');
	            $('#contact_name').val('');
	          },
	          error: function() {
		          var btn = $('<span class="spantag" style="color:red;float:right;height:20px;">Une erreur est survenue</span>');
	            $('#sendMailForm').append(btn);
	          }
	        });
		    } else {
		    	var btn = $('<span class="spantag" style="color:red;float:right;height:20px;">Veuillez compléter les champs correctement</span>');
          $('#sendMailForm').append(btn);
          $('#contact_message').val('');
		    }
      },
      init: function() {
		    $('#sendMailForm').submit(me.sendMailForm);
      }
    }
  }();
  
  $(document).ready(me.init);
  
}());

