(function($){
	$.fn.beta_parainnage = function(settings){
		//Options
	    options = {
			idPush		  : ".push_privileges",
			urlContent 	  : "popin_parainnage.html",
			urlProcess 	  : "popin_parainnage.html",
			msgDelayError : 5000
		};
	    var options = $.extend(options, settings),
		//Internal params
		THIS = $(this),
		//Internal Functions
		initPopin = function(){
			$('.parainnage_form .close').click(closePopin);
			$('.parainnage_form form input[type=text]').each(function(){
				initFocusInputText($(this),$(this).val());
				initBlurInputText($(this),$(this).val());
			});
			var fields = {
				vous_nom 	: $.trim(document.form_parainnage.vous_nom.value),
				vous_prenom : $.trim(document.form_parainnage.vous_prenom.value),
				vous_email 	: $.trim(document.form_parainnage.vous_email.value),
				email 		: $.trim(document.form_parainnage.email.value)
			}
			$('.parainnage_form form').submit(function(){return checkForm(fields)});
		},
		initFocusInputText = function(el,valInit){
			el.focus(function(){
				if(el.val()==valInit)
					el.val('');
			});
		},
		initBlurInputText = function(el,valInit){
			el.blur(function(){
				if(el.val()=='')
					el.val(valInit);
			});
		},
		checkForm = function(fields){
			var params  = new Object,
			vous_nom 	= document.form_parainnage.vous_nom,
			vous_prenom = document.form_parainnage.vous_prenom,
			vous_email 	= document.form_parainnage.vous_email,
			email 		= document.form_parainnage.email;
			//Reset
			$('.error').css('display','').html('');
			//Is Empty
			if(
				$(vous_nom).val()=='' || $(vous_nom).val() == fields['vous_nom']
				||
				$(vous_prenom).val()=='' || $(vous_prenom).val() == fields['vous_prenom']
				||
				$(vous_email).val()=='' || $(vous_email).val() == fields['vous_email']
				||
				$(email).val()=='' || $(email).val() == fields['email']
			){
				showError('Veuillez remplir le formulaire.');
				return false;
			}
			//Emails
			if(
				!checkEmail($(vous_email).val())
			){
				showError('Votre email semble incorrect.');
				return false;
			}
			if(
				!checkEmail($(email).val())
			){
				showError("l'email de votre filleul semble incorrect.");
				return false;
			}
			//CheckBox
			if($('#conditions:checked').length==0){
				showError("Vous devez accepter les conditions générales pour valider.");
				return false;
			}
			//OK
			$('.parainnage_form form input[type=text]').each(function(){
				params[$(this).attr('name')] = $(this).val();
			});
			$('.parainnage_form form input[type=checkbox]').each(function(){
				params[$(this).attr('name')] = $(this+':checked').length;
			});
			$.ajax({
				url 	 : options.urlProcess,
				type 	 : 'POST',
				data 	 : params,
				complete : function(xhr,status){
					if(status=='success'){
						switch(xhr.responseText){
							case '2':
								$('.error').html("Votre filleul(e) a déjé été parainné(e)");
								break;
							default:
								document.form_parainnage.reset();
								$('.error').html("Votre parainnage a bien été envoyé");
								break;
						}
					}
				}
			});
			return false;
		},
		showError = function(msg){
			$('.error').html(msg)
					   .delay(options.msgDelayError)
					   .fadeOut('slow',function(){$(this).html('');});
		},
		showPopin = function(){
			$('body').append('<div class="popin" style="display:none"></div>');
			$('.popin').load(options.urlContent,function(){
				//Positionner
				var offset = $(options.idPush).offset();
				$('.parainnage_form').css('left',offset.left+111);
				$('.parainnage_form').css('top',offset.top+25);
				//Afficher
				$('.popin').fadeIn('slow',initPopin)}
			);
			return false;
		},
		closePopin = function(){
			$('.popin').fadeOut('slow',function(){$(this).remove();});
		},
		checkEmail = function(email){
			return email.match(new RegExp('^[a-z0-9._-]+@[a-z0-9._-]{2,}[.][a-z]{2,4}$','i'));
		};
		//Execution
		return this.each(function(){
			$(this).click(showPopin);
		});
	};
})(jQuery);

