/* jquery formulaires liés à l'inscription */
(function($) {
   var methods = {
     init : function( options ) {
       var container = this;
        // paramètres du plugin
        params = $.extend( {         	
	        inactiveBorder: "1px solid #b3b3b3",
        	activeBorder: 	"1px solid #E4127F"
		}, options);
        
        // on checke que l'élément passé est bien un formulaire
        if (container.get(0).tagName.toLowerCase() != 'form') {
        	alert('une action inattendue s\'est produite sur le traitement du formulaire');
        	return false;
        } 
       
        // tip tip
        $('#pseudo').focus(function(){ $('#errgauche').css('margin-top', -15); $('#errgauche').html("Choisissez bien votre pseudo, c'est lui qui vous représente sur le site!"); $('#errgauche').show(); });
        $('#pseudo').blur(function(){ $('#errgauche').css('margin-top', 0); $('#errgauche').hide();	});
        $('#pass1').focus(function(){ $('#errgauche').css('margin-top', 25); $('#errgauche').html("Votre mot de passe doit être de 5 caractères maximum.");$('#errgauche').show(); });
        $('#pass1').blur(function(){ $('#errgauche').css('margin-top', 0); $('#errgauche').hide();	});
        $('#pass2').focus(function(){ $('#errgauche').css('margin-top', 55); $('#errgauche').html("Votre mot de passe doit être de 5 caractères maximum, et être identique au champ précédent. ");$('#errgauche').show(); });
        $('#pass2').blur(function(){ $('#errgauche').css('margin-top', 0); $('#errgauche').hide();	});
        $('#mail1').focus(function(){ $('#errgauche').css('margin-top', 90); $('#errgauche').html("Attention, entrez un e-mail valide, une demande de confirmation d&#34;inscription vous sera envoyée à cette adresse. Votre e-mail est un élément confidentiel de votre compte. Il ne sera pas publié dans votre profil."); $('#errgauche').show(); });
        $('#mail1').blur(function(){ $('#errgauche').css('margin-top', 0); $('#errgauche').hide();	});
        $('textarea[name="cv"]').focus(function(){ $('#errgauche').css('margin-top', 240); $('#errgauche').html("Votre carte de visite est une courte description de ce que vous êtes ou ce que vous recherchez."); $('#errgauche').show(); });
        $('textarea[name="cv"]').blur(function(){ $('#errgauche').css('margin-top', 0); $('#errgauche').hide();	});
        
        // on met la validation sur les boutons
        $(container).find('.button').click(function(){
            $(container).find('input').css('border',params.inactiveBorder);
            $(container).find('textarea').css('border',params.inactiveBorder);
            $(container).find('select').css('border',params.inactiveBorder);
            $(container).find('input[type="checkbox"]').css('border',params.inactiveBorder);

            // vérification des droits
            if ($(container).find('#cgu').attr('checked') == false) {
                alert('Vous devez accepter les conditions générales d\'utilisation !');
            } else {
                var formdata = methods.getFormValues($(container));
                $.ajax({  
                    type: 'POST',
                    url: '/check.php',
                    data: formdata,
                    success:   function(responseText, statusText, xhr, $form) {		
                        response = $.parseJSON(responseText);
                        $('#warning-panel').find('#registration_error').remove;
                        $('#mail1').css('border', params.inactiveBorder);
                        $('#pseudo').css('border', params.inactiveBorder);
                        $('#pass1').css('border', params.inactiveBorder);
                        $('#pass2').css('border', params.inactiveBorder);
                        
                        if (response.email != undefined){
                            if(response.email == 'alreadyused') err_msg = "Votre Email est déjà utilisé par un compte";
                            if(response.email == 'doesntfit') err_msg = "Votre Email n'a pas une syntaxe reconnue par notre site.";
                            
                            $('#warning-panel').html($('<div id="#registration_error" />').html(err_msg));                                                                       
                            $('#mail1').css('border', params.activeBorder);
                        } else if (response.pseudo != undefined){
                            if(response.pseudo == 'censored') err_msg = "Le pseudo ne correspond pas à la ligne éditoriale du site";
                            if(response.pseudo == 'used') err_msg = "Le pseudo existe déjà";
                            
                            $('#warning-panel').html($('<div id="#registration_error" />').html(err_msg));                                                                       
                            $('#pseudo').css('border', params.activeBorder);
                        } else if (response.pass != undefined){    
                            if(response.pass == 'doesntmatch') err_msg = "Les mots de passe ne correspondent pas.";
                            
                            $('#warning-panel').html($('<div id="#registration_error" />').html(err_msg));                                                                       
                            $('#pass2').css('border', params.activeBorder);
                        } else if (response.check  != undefined){
                            document.location.href = response.check;
                        }
                    }
                }); 
            }
        });
     }, 
     destroy : function( ) {

       /*return this.each(function(){

         var $this = $(this),
             data = $this.data('tooltip');

         // Namespacing FTW
         $(window).unbind('.tooltip');
         data.tooltip.remove();
         $this.removeData('tooltip');

       })*/

     },
     /**
    * récupère le json des erreurs et affiche les messages d'erreur
    */
    printFormErrors: function(jsonText, xhr, context) {
        // récupère un tableau d'erreurs et affiche les erreurs
        contextObj = eval(context);
        errors = $.parseJSON(jsonText);
        if ($.type(errors) === 'object'){
                $('.errors', contextObj).css('display', 'none');
                // parcours les input et affiche le message d'erreur'
                $.each(errors, function(el_id, el){					
                        $('#'+el_id, contextObj).css('border', '1px solid #F0F0F0');	
                        // console.log(el_id);
                        if (el_id != '' && el == 1){								
                                $('#'+el_id+'_errors', contextObj).css('display', 'block');
                                $('#'+el_id, contextObj).css('border', '1px solid #939393');	
                                return false;
                        }
                });
        }
    },
    /**,
    * récupère le json des erreurs et affiche les messages d'erreur
    */
    getFormValues: function(jQueryObj) {
        formdata = jQueryObj.serialize();
        array1 = formdata.split('&');
        var array2 = {};
        $(array1).each(function(cnt, el){
                pair = el.split('=');
                array2[pair[0]] = pair[1];
        });
        return array2;
    }
  };

  $.fn.registerform = function( method ) {
    
    if ( methods[method] ) {
      return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'la méthode ' +  method + ' n\'existe pas pour jQuery.registerform' );
    }    
  
  };
  
  // Permettre le chaînage par jQuery
   return this;    
})(jQuery);
