
(function($){
$.fn.form = function(options){
		
		var defaults = {
			form:'#form',
			id:'#offres-fond',
			open:0
		 };
		 
		var opts = $.extend(defaults, options);
		
		return this.each(function()
			{	
				if(opts.open == 0)showForm($(this));
				else hideForm($(this));
			}
		);
		
		function showForm(id){
			$(id).slideDown('slow');
			$(opts.id).css("display","none");
		};
		
		function hideForm(id){
			$(id).css('display','none');
			$(opts.id).css("display","block");
		}
};
})(jQuery);

/* changement de l'offre en fonction du radio button */

function subject(value,elm){
	document.getElementById(elm).value = value;
}

/* ************************************
*** Test au lancement du formulaire ***
************************************* */

/* Recherche la valeur des paramètres contenue dans l'url */
var i;
// Récupération de la requête contenue dans l'URL (sans le ?)
var req = window.location.search.substr(1,window.location.search.length);

// Récupération des paires paramètre=valeur
var dbl = req.split('&');

var aPrm = new Array();    // Pour stock. le nom des paramètres
var aVal = new Array();    // Pour stock. la valeur des paramètres
var objQS = new Object();  // Objet pour stock. le nom des paramètres

for (i=0;i < dbl.length;i++)
{
  // Recup. le nom des parametres (Attention : elem.1 du tab. = param.1)
  aPrm[i+1] = dbl[i].substring(0,dbl[i].indexOf('='));
  
  // Recup. la valeur des parametres (Attention : elem.1 du tab. = val.param.1)
  aVal[i+1] = unescape(dbl[i].substring(dbl[i].indexOf('=')+1,dbl[i].length));
  
  // Stock la valeur des paramètres sous forme de propriété
  objQS[aPrm[i+1]] = aVal[i+1];
}

// Renvoie la valeur d'un parametre par son nom
function getQueryStringByName(pname) 
{
  return eval("objQS." + pname);
}


/* ************************************
****** Déclaration des variables ******
************************************* */

// Récupération des paramètres dans l'url
var co = getQueryStringByName("co");
var page = getQueryStringByName("page");
var form2 = getQueryStringByName("form");


/* ************************************
*** Test au lancement du formulaire ***
************************************* */

// Ouverture 2 popup
if (page != undefined)
	openNotFixedWindow('http://emailing.editions-legislatives.fr/' + co + '/produit.html?co=' + co, 800, 750);


/* ********************************
****** Fonctions de contrôle ******
********************************* */

// Vérification des valeurs numériques
function ValideNumerique(chaine, longueur)
{
  if (( chaine.search(/[^0-9]/) != -1 ) || (chaine =='') || (chaine.length < longueur) || (chaine.length > longueur))
	  return false;
  else
	return true;
}

// Vérification de la validité d'une adresse email
function checkEmail( input )
{
	if ( input.value + "" == "" )
		return false;
	
	var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)|(\\s)";
	var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
	var reg1 = new RegExp(reg1str);
	var reg2 = new RegExp(reg2str);
	
	if (reg1.test( input.value ) || !reg2.test( input.value ))
	{
		alert( "L'adresse e-mail saisie n'est pas valide" )
		input.focus()
		return false;
	}

	return true;
}

// Vérification de la saisie du formulaire
function check(formID)
{
	var form = document.forms[formID];

	// Test si le code operation est présent
	if (co != "" || co != undefined)
		form.v00codeop.value = "- Code Op : " + co;

	// Récupération du numero ISE
	form.v01numIse.value = "- Numéro ISE : " + form.p_numIse.value;
	
	// Test si le champ "raison sociale" est vide
	if (form.p_rs.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir la raison sociale de votre entreprise.\n");
		form.p_rs.focus();
		return false;
	}
	// Récupération de la valeur du champ "raison sociale"
	form.v02rs.value = "- Raison sociale : " + form.p_rs.value;
	
	// Test si une valeur de la liste déroulante "civilité" est sélectionnée
	if (form.elements["p_civilite"].selectedIndex < 1)
	{
		alert("Vous avez oubli\xE9 de s\xE9lectionner votre civilit\xE9.\n");
		form.elements["p_civilite"].focus();
		return false;
	}
	// Récupération de la valeur du champ "civilité"
	form.v03civilite.value = "- Civilité : " + form.elements["p_civilite"].value;
	
	// Test si le champ "nom" est vide
	if (form.p_nom.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir votre nom.\n");
		form.p_nom.focus();
		return false;
	}
	// Récupération de la valeur du champ "nom"
	form.v04nom.value = "- Nom : " + form.p_nom.value;
	
	// Test si le champ "prenom" est vide
	if (form.p_prenom.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir votre pr\xE9nom.\n");
		form.p_prenom.focus();
		return false;
	}
	// Récupération de la valeur du champ "prénom"
	form.v05prenom.value = "- Prénom : " + form.p_prenom.value;

	// Test si le champ "téléphone" est vide
	if (form.p_tel.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir votre num\xE9ro de t\xE9l\xE9phone.\n");
		form.p_tel.focus();
		return false;
	}

	// Test si une valeur non-numérique est saisie dans le champ "téléphone"
	if (form.elements["p_pays"].selectedIndex == "00000")
	{
		if (!ValideNumerique(form.p_tel.value, 10))
		{
			alert("Votre num\xE9ro de t\xE9l\xE9phone doit comporter 10 chiffres.\n");
			form.p_tel.focus();
			return false;
		}
	}
	// Récupération de la valeur du champ "téléphone"
	form.v06tel.value = "- Téléphone : " + form.p_tel.value;

	// Test si le champ "email" est vide
	if (form.p_email.value == "") {
		alert("Vous avez oubli\xE9 de saisir votre adresse \xE9lectronique.\n");
		form.p_email.focus();
		return false;
	}

	// Test si la saisie de la valeur du champ "email" est valide 
	if (!checkEmail(form.p_email))
		return false;
	// Récupération de la valeur du champ "email"
	form.v07email.value = "- Email : " + form.p_email.value;
	
	// Enrichissement du champ expéditeur
	form.p_from.value = form.p_email.value;

	// Test si une valeur de la liste déroulante "fonction" est sélectionnée
	if (form.elements["p_fonction"].selectedIndex < 1)
	{
		alert("Vous avez oubli\xE9 de s\xE9lectionner votre fonction.\n");
		form.elements["p_fonction"].focus();
		return false;
	}
	// Récupération de la valeur du champ "fonction"
	if (form == "abo_tsa")
	{
		if (document.getElementById('p_fonction').options[document.getElementById('p_fonction').selectedIndex].value == "99")
			form.v08fonction.value = "- Fonction : " + form.p_fctAutre.value;
		else
			form.v08fonction.value = "- Fonction : " + form.elements["p_fonction"].value + " - " + form.p_fonction.options[form.p_fonction.selectedIndex].text;
	}
	else { form.v08fonction.value = "- Fonction : " + form.elements["p_fonction"].value + " - " + form.p_fonction.options[form.p_fonction.selectedIndex].text; }

	// Test si une valeur de la liste déroulante "service" est sélectionnée
	if (form.p_service)
	{
		if (form.elements["p_service"].selectedIndex < 1)
		{
			alert("Vous avez oubli\xE9 de s\xE9lectionner votre service.\n");
			form.elements["p_service"].focus();
			return false;
		}
		// Récupération de la valeur du champ "service"
		form.v09service.value = "- Service : " + form.elements["p_service"].value + " - " + form.p_service.options[form.p_service.selectedIndex].text;
	}
	
	// Test si le champ "adresse" est vide
	if (form.p_adresse.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir votre adresse.\n");
		form.p_adresse.focus();
		return false;
	}
	// Récupération de la valeur du champ "adresse"
	form.v10adresse.value = "- Adresse : " + form.p_adresse.value;

	// Test si le champ "CP" est vide
	if (form.p_cp.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir votre code postal.\n");
		form.p_cp.focus();
		return false;
	}

	// Test si une valeur non-numérique est saisie dans le champ "CP"
	if (form.elements["p_pays"].selectedIndex == "00000")
	{
		if (!ValideNumerique(form.p_cp.value, 5))
		{
			alert("Votre code postal doit comporter 5 chiffres.\n");
			form.p_cp.focus();
			return false;
		}
	}
	// Récupération de la valeur du champ "CP"
	form.v11cp.value = "- Code postal : " + form.p_cp.value;
	
	// Test si le champ "ville" est vide
	if (form.p_ville.value == "")
	{
		alert("Vous avez oubli\xE9 de saisir votre ville.\n");
		form.p_ville.focus();
		return false;
	}
	// Récupération de la valeur du champ "ville"
	form.v12ville.value = "- Ville : " + form.p_ville.value;

	// Test si une valeur de la liste déroulante "pays" est sélectionnée
	if ((form.elements["p_pays"].selectedIndex < 1) && (form.elements["p_pays"].selectedIndex != "00000"))
	{
		alert("Vous avez oubli\xE9 de s\xE9lectionner votre pays.\n");
		form.elements["p_pays"].focus();
		return false;
	}
	// Récupération de la valeur du champ "pays"
	form.v13pays.value = "- Pays : " + form.elements["p_pays"].value + " - " + form.p_pays.options[form.p_pays.selectedIndex].text;
	

	if (form.p_checkBox && document.getElementById('p_checkBox').checked)
	{
		// Récupération de la valeur du champ "adresse de facturation"
		form.v14adressefact.value = "- Adresse de facturation : " + form.p_adressefact.value;
		
		// Test si une valeur non-numérique est saisie dans le champ "CP"
		if (form.elements["p_paysfact"].selectedIndex == "00000")
		{
			if (form.p_cpfact.value != "" && !ValideNumerique(form.p_cpfact.value, 5))
			{
				alert("Votre code postal de facturation doit comporter 5 chiffres.\n");
				form.p_cpfact.focus();
				return false;
			}
		}
		// Récupération de la valeur du champ "CP"
		form.v15cpfact.value = "- Code postal de facturation : " + form.p_cpfact.value;
		
		// Récupération de la valeur du champ "ville"
		form.v16villefact.value = "- Ville de facturation : " + form.p_villefact.value;

		// Récupération de la valeur du champ "pays de facturation"
		form.v17paysfact.value = "- Pays de facturation : " + form.elements["p_paysfact"].value + " - " + form.p_paysfact.options[form.p_paysfact.selectedIndex].text;
	}

	if (form.p_jnais && form.p_mnais && form.p_anais)
	{
		//Jour de naissance
		if (form.elements["p_jnais"].selectedIndex < 1)
		{
			alert("Vous avez oubli\xE9 de s\xE9lectionner votre jour de naissance.\n");
			form.elements["p_jnais"].focus();
			return false;
		}

		//Mois de naissance
		if (form.elements["p_mnais"].selectedIndex < 1)
		{
			alert("Vous avez oubli\xE9 de s\xE9lectionner votre mois de naissance.\n");
			form.elements["p_mnais"].focus();
			return false;
		}

		//Année de naissance
		if (form.elements["p_anais"].selectedIndex < 1)
		{
			alert("Vous avez oubli\xE9 de s\xE9lectionner votre année de naissance.\n");
			form.elements["p_anais"].focus();
			return false;
		}
		form.v22jmanais.value = "- Date de naissance : " + form.p_jnais.value + " " + form.p_mnais.value + " " + form.p_anais.value;
	}

	// Enrichissement des offres et objet dans le mail
	if (form.p_essai)
	{
		if (document.getElementById("p_essai").checked)
			form.v90offre.value = "- Offre : " + form.p_essai.value;
	}
	
	if (form.p_duo || form.p_tout)
	{
		if (form.p_radio[0].checked)
			form.v90offre.value = "- Offre Duo : " + form.p_radio[0].value;

		if (form.p_radio[1].checked)
			form.v90offre.value = "- Offre Tout numérique : " + form.p_radio[1].value;
	}

	if (form.p_option)
	{
		if (form.p_option.checked)
		{
			form.v90offre.value = "- Offre : " + form.p_option.value;
			if (formID == "abo_tsa")
				form.p_subject.value = co + " - abonnement au MM48";
		}
		else
		{
			if (formID == "abo_tsa")
				form.p_subject.value = co + " - abonnement au MM48E";
		}
	}

	// Code promotion
	if (form.p_promo)
	{
		if (form.p_promo.value != "Code privilège")
			form.v89promo.value = "- Code privilège : " + form.p_promo.value;
		else
			form.v89promo.value = "- Code privilège :";
	}

	return true;
}

/* **********************************
****** Fonctions de validation ******
*********************************** */

// Validation du formulaire
function doValid(formID)
{
	var form = document.forms[formID];
	return check(formID);
}

// Réinitialisation du formulaire
function doReset(formID)
{
    var form = document.forms[formID];
    form.reset();
    return false;
}


/* ***************************
****** Autres fonctions ******
**************************** */

// Ouverture d'une popup sans taille fixe
function openNotFixedWindow(urlDest, width, height, target, blankPage)
{
	var dlg;
	var name = "_blank";
	if((target!=null) && (target != ""))
		name=target;

	dlg = window.open(blankPage, name, "resizable=yes,scrollbars=yes,width=" + width + ",height=" + height);
	dlg.location=urlDest;
	dlg.opener = window;
}

// Montrer/cacher block
function ShowOrHide(checkBoxId, objetId, content, backgroundPrev, background)
{	
	var objContent = document.getElementById(content);
	var objCheckBox = document.getElementById(checkBoxId);
	var objetTemp = document.getElementById(objetId);
	
	if(objCheckBox.checked==true){
		objetTemp.style.display = 'block';
		objContent.style.height = "1220px";
		document.getElementById(backgroundPrev).style.display = "none";
		document.getElementById(background).style.display = "block";
	}else{
		objetTemp.style.display = 'none';
		objContent.style.height = "1169px";
		document.getElementById(backgroundPrev).style.display = "block";
		document.getElementById(background).style.display = "none";	
	}
}


