/*
 
 @description: Javascript Envoi ami
 @auteur: Neov backteam
 @creation: 20081009
 @modification: -
 
*/
var letterSelected = null;
// variable - creation element 
var c = function(cEl) { return document.createElement(cEl); };

// creation popup envoi ami
$.fn.envoiAmi = function() { $.popenvoi.init(this); };

$.popenvoi =  {
	
	// initialisation
	init: function(el)
	{
		
		// creation popup
		$popup = $(c('div')).addClass('popupEnvoi');
		$popup.load('popupEnvoi.html');
		
		// creation masque
		$overlay = $(c('div')).addClass('overlay');
		$('body').append($popup, $overlay);
		
		// ajout evenement sur les boutons
		$(el).each(
			function()
			{
				$(this).find('a').bind('click', { popup: $popup }, $.popenvoi.showpop);
			}
		);
		
	},
	
	// affichage du popup
	showpop: function(e)
	{
		// positionnement
		e.tPos = ( $(window).height() - $(e.data.popup).height() )/2 + $(window).scrollTop();
		e.lPos = ( $(window).width() - $(e.data.popup).width() )/2;
		
		// affiche le popup
		$(e.data.popup)
			.css({ top: e.tPos + 'px', left: e.lPos + 'px' })
			.show(0);

		// ajout evenement sur le bouton fermer du popup
		$(e.data.popup).find('.fermer').bind('click', { popup: e.data.popup }, $.popenvoi.hidepop);
		
		// action supplementaire sur le popup
		$.popenvoi.addmoreaction();
		
		// affichage masque - c.f plugins-library.js
		afficherMasque();
		
		return false;
	},
	
	// fermeture du popup
	hidepop: function(e)
	{
		$(e.data.popup).hide(0);		
		hideMasque();
		
		return false;
	},
	
	// autres actions
	addmoreaction: function() {
		
		// evenement champ adresse expediteur
		$('#zSenderAddr').keypress(
			function(e)
			{
				if (e.keyCode!=13) {
					if ( $('.errorMessageMail').text().length != 0 ) {
						$('.errorMessageMail').empty();
						$('#zSenderAddr').removeClass('withError');
					}
				} else {
					$.popenvoi.testExp();
				}
				
			}
		).blur(
			function()
			{
				$.popenvoi.testExp()
			}
		);
		
		// evenement champ nom expediteur
		$('#zSenderNom').keypress(
			function(e)
			{
				if (e.keyCode ? !13 : !0  ) {
					if ( $('.errorMessageNom').text().length != 0 ) {
						$('.errorMessageNoù').empty();
						$('#zSenderNom').removeClass('withError');
					}
				} else {
					$.popenvoi.testNom();
				}
				
			}
		).blur(
			function()
			{
				$.popenvoi.testNom()
			}
		);
		
		// evenement champ ajout contact
		$('#mailAdd').keypress(
			function(e)
			{
				if (e.keyCode != 13 ) {
					if ( $('.errorMessageContact').text().length != 0 ) {
						$('.errorMessageContact').empty();
						$('#mailAdd').removeClass('withError');
					}
				} else {
					$('#btnajoutmaillist').click();
				}
				
			}
		);
		
		// bouton ajout contact
		$('#btnajoutmaillist').click(
			function()
			{
				$.popenvoi.testContactList();
			}
		);
		
		// bouton enlever
		$('#envoi-enlever').click(
			function()
			{
				$('#zDestAddr').find('option').each(
					function()
					{
						if ($(this).attr('selected')) {
							$(this).remove();
						} else {
							$.popenvoi.mailError('Merci de sélectionner un contact à supprimer', $('.errorMessageContact'), $('#zDestAddr'));
						}
					}
				)
			}
		);
		
		// selection liste contact
		$('#zDestAddr').focus(
			function() {
				$('.errorMessageContact').empty();
				$('#zDestAddr').removeClass('withError');
			}
		);
		
		// bouton vider
		$('#envoi-vider').click(
			function()
			{
				$('#zDestAddr').empty();
			}
		);
		
		//envoi
		$('#btnenvoyerpage').click(
			function() {
				var mailExp = $('#zSenderAddr').val();
				var checkMailExp = $.popenvoi.email(mailExp, $('#zSenderAddr').get(0));
				var nom = $('#zSenderNom').val();
				var nomTest = $.trim(nom);
				var contact = $('#zDestAddr').find('option').length;
							
				if (checkMailExp) {
					$('#zSenderAddr').removeClass('withError');
					$('.errorMessageMail').empty();
				} else {
					$.popenvoi.mailError('Adresse email invalide', $('.errorMessageMail'), $('#zSenderAddr'));
				}
				
				if(nom) {
					$('#zSenderNom').removeClass('withError');
					$('.errorMessageNom').empty();
				} else {
					$.popenvoi.mailError('Merci de mettre votre nom', $('.errorMessageNom'), $('#zSenderNom'));
				}
				
				if ( !contact ) {
					$.popenvoi.mailError('Merci d\'ajouter un contact', $('.errorMessageContact'), $('#mailAdd'));
				}
				
				if( nom && checkMailExp && contact ) $.popenvoi.submitForm();
			}
		);
		
	},
	
	// test adresse email
	email: function(value, element) {
		return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(element.value);
	},

	// test expediteur
	testExp : function() {
		var mailExp = $('#zSenderAddr').val();
		var checkMailExp = $.popenvoi.email(mailExp, $('#zSenderAddr').get(0));
		if(checkMailExp) {
			$('#zSenderAddr').removeClass('withError');
			$('.errorMessageMail').empty();
		} else {
			$.popenvoi.mailError('Adresse email invalide', $('.errorMessageMail'), $('#zSenderAddr'));
		}	
	},
	
	// test nom
	testNom : function() {
		var nom = $('#zSenderNom').val();
		var nomTest = $.trim(nom);
		if(nomTest) {
			$('#zSenderNom').removeClass('withError');
			$('.errorMessageNom').empty();
		} else {
			$.popenvoi.mailError('Merci de mettre votre nom', $('.errorMessageNom'), $('#zSenderNom'));
		}
	},
	
	testContactList : function() {
		var mail = $('#mailAdd').val();
		var checkMail = $.popenvoi.email(mail, $('#mailAdd').get(0));
		if(checkMail) {
			var testEl = $.popenvoi.testContactValue(mail, $('#zDestAddr'));
			if (testEl) {
				$newOption = $(c('option')).val(mail).text(mail);
				$('#zDestAddr').append($newOption);
				$('#mailAdd').val('').removeClass('withError');
				$('.errorMessageContact').empty();
			} else {
				$.popenvoi.mailError('Cette adresse email est déja dans la liste', $('.errorMessageContact'), $('#mailAdd'));
			}
			
		} else {
			$.popenvoi.mailError('Adresse email invalide', $('.errorMessageContact'), $('#mailAdd'));
		}
	},
	
	// test selection contact
	testContactValue: function(value, sel) {
		var test = true;
		
		sel.find('option').each(
			function() {
				if( value == $(this).val() )
				test = false;
			}
		);
		
		return test;
		
	},
	
	// erreur adresse email
	mailError : function(mess, tgt, el) {
		tgt.empty().text(mess);
		$(el).addClass('withError');
	},
	
	// envoi du formulaire
	submitForm : function() {
		$('.popupEnvoi').hide(0);		
		hideMasque();
		
		var expediteurVal = $('#zSenderAddr').val();
		var nomVal = $('#zSenderNom').val();
		var contactVal = new Array();
		var messageVal = $('#zMsg').val();
		
		$('#zDestAddr').find('option').each(
			function(index)
			{
				contactVal[index]=$(this).val();
			}
		);
		
		var contactListVal = contactVal.join(';');
		
		$.post('http://www.backteam.mg/projets/defifraise/html/emailing/mailer_engine.php?iSId=1', { zSenderAddr: expediteurVal , zSenderNom: nomVal, zDestAddr: contactListVal, zMsg: messageVal});
		
		return false;
	}
	
}

$(function() {	
	
	// Mise en place du popup envoi ami
	$('.envoie-ami').envoiAmi();

});