// fonctions relatives a la presentation des tarifs
function private_tarif(value)
{
	var s = ""+value;
	while (s.length < 3)
		s = "0"+s;
	var i = s.substring(0, s.length-2);
	var d = s.substring(s.length-2);
	return i+"."+d;
}
var EURO = 6.55957;
/*
function tarif(value)
{
	var f=private_tarif(value);
	var e=private_tarif(Math.round(value/EURO));
	return e+"&euro;&nbsp;&nbsp;<img src='../images/Franc.gif' alt='"+f+"F'>";
}
*/
// Renvoie pour affichage, le montant passe en parametre avec l'euro pour unite monetaire
function tarif(value)
{
	var e=private_tarif(value);
	return e+"&nbsp;&euro;";
}

// Renvoie pour affichage, le montant passe en parametre diminue de la remise, avec l'euro
// pour unite monetaire
function tarifRemise(value, remise)
{
    var e = private_tarif (Math.round(value * (1 - remise/100)));
    return e+"&euro;";
}

function putTarif(value)
{
	document.write(tarif(value));
}

function putTarifRemise(value, remise)
{
    document.write (tarifRemise(value, remise));
}
function tarifE(value)
{
	var e=private_tarif(Math.round(value/EURO));
	return e+"&euro;";
}
function putTarifE(value)
{
	document.write(tarifE(value));
}

// Convertit en Francs, la somme en Euros passee en parametre
function tarifF(value)
{
	var f=private_tarif(Math.round(value*EURO));
	return f+"F";
}
// Affiche en Francs, la somme en Euros passee en parametre
function putTarifF(value)
{
	document.write(tarifF(value));
}

// fonctions relatives au recepice de commande
function nbretg(value)
{
	var nbretge =  value;
	if (nbretge>1)
	{
	return nbretge + "&nbsp;t&eacute;l&eacute;grammes ont &eacute;t&eacute; g&eacute;n&eacute;r&eacute;s";
	}
	else
	{
	return nbretge + "&nbsp;t&eacute;l&eacute;gramme a &eacute;t&eacute; g&eacute;n&eacute;r&eacute;";
	}
}
function putnbretg(value)
{
	document.write(nbretg(value));
}

// fonction relative au Panier
function activecgen(a_cg, commander)
{
  if (a_cg.checked == true)
  {
    commander.disabled = false;
  }
  else
  {
    commander.disabled = true;
  }
}

// fonctions relatives au controle de saisie des formulaires
function checkValide(t, a, e, c)
{
	for (var i=0; i<t.length; i++)
		if (a.indexOf(t.charAt(i)) < 0)
		{
			erreurId(7, e, t.charAt(i), a);
			c.focus();
			return false;
		}
	return true;
}
function changeCheck(coche, combo)
{
	combo.disabled = !coche.checked;
	if (!coche.checked)
		combo.selectedIndex = 0;
	if (coche.checked ^ combo.selectedIndex > 1)
		combo.focus();

        if (coche.name == 'd_del' && combo.selectedIndex < 2)
            document.forms[0].d_gar.checked = false;
}
function changeSel(combo, coche)
{
	if (combo.selectedIndex == 1)
	{
		coche.checked = false;
		combo.disabled = true;
		combo.selectedIndex = 0;
	}
	if (coche.checked && combo.selectedIndex == 0)
		combo.focus();

        if (combo.name == 'd_tdel' && combo.selectedIndex < 2)
            document.forms[0].d_gar.checked = false;



	resetMontant(coche);
	return true;
}

// Case a cocher "delai de remise garanti" (X.L. le 01/12/01)
function checkGar(coche)
{
    if (coche.checked && document.forms[0].d_tdel.selectedIndex < 2)
            coche.checked = false;

    resetMontant(coche);
}
function changeIllustration()
{
	document.forms[0].d_lux.checked |= document.forms[0].d_cc.checked;
	document.forms[0].d_lux.disabled = document.forms[0].d_cc.checked;
	if (!document.forms[0].d_lux.checked)
		document.forms[0].s_rub.selectedIndex = 0;
	if (document.forms[0].d_lux.checked ^ document.forms[0].s_rub.selectedIndex > 1)
		document.forms[0].s_rub.focus();
}
// Gestion de la checkbox joindre un cheque-cadeau
/*function activeCC()
{
	document.forms[0].cc_type.disabled = !document.forms[0].d_cc.checked;
	document.forms[0].cc_mtt.disabled = !document.forms[0].d_cc.checked;
	document.forms[0].cc_offert.disabled = !document.forms[0].d_cc.checked;
	if (!document.forms[0].d_cc.checked)
	{
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_mtt.selectedIndex = 0;
		document.forms[0].cc_offert.value = "";
		resetMontant();
	}
	changeIllustration();
}
//Gestion de la checkbox joindre un cheque-cadeau
function MTC_activeCC()
{
	document.forms[0].cc_type.disabled = !document.forms[0].d_cc.checked;
	document.forms[0].cc_mtt.disabled = !document.forms[0].d_cc.checked;
	document.forms[0].cc_offert.disabled = !document.forms[0].d_cc.checked;
	if (!document.forms[0].d_cc.checked)
	{
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_mtt.selectedIndex = 0;
		document.forms[0].cc_offert.value = "";
		MTC_resetMontants();
	}
	changeIllustration();
}*/
function verifRetour()
{
	if(document.forms[0].s_rub.value != "defaut")
	{
		document.forms[0].d_lux.checked = true;
		showPreview(document.forms[0].s_rub);
	}
}
/*
// Chargement des differents montants selon le cheque-cadeau
function calculMontantCc()
{	
	//Initialisation du tableau option du select menu
		document.forms[0].cc_mtt.options.length=1;

	if(document.forms[0].cc_type.selectedIndex >= 2)
	{	
		// Recuperation de la valeur du type de cc
		retour = document.forms[0].cc_type.value;

		vmin="";	// Valeur minimale
		vmax="";	// Valeur maximale
		pas="";		// Valeur du pas
		val="";		// Valeur discrete
		def="";		// valeur par défaut
		nbTir=0;

		for (i=0; i< retour.length; i++)
		{
			if(retour.charAt(i) != '-')
			{
				if(nbTir == 1)
				{
					vmin += retour.charAt(i);
				}
				if(nbTir == 2)
				{
					vmax += retour.charAt(i);
				}
				if(nbTir == 3)
				{
					pas += retour.charAt(i);
				}
				if(nbTir == 4)
				{
					val += retour.charAt(i);
				}
				if(nbTir == 5)
				{
					def += retour.charAt(i);
				}
			}
			else
			{
				nbTir++;
			}
		}

		// Inscription de la valeur minimale pour le montant
		document.forms[0].cc_mtt.options[1] = new Option(vmin,vmin);
		if(vmin==def)
			document.forms[0].cc_mtt.options[1].selected = true;
	
		// Inscription de la valeur discrete pour le montant
		document.forms[0].cc_mtt.options[2] = new Option(val,val);
		if(val==def)
			document.forms[0].cc_mtt.options[2].selected = true;

		// Inscription des autres valeurs jusqu'a vmax
		i = 3;
		vmin = parseInt(vmin);
		vmin += (parseInt(val) - vmin);
		vmin += parseInt(pas);

		while (vmin <= vmax)
		{
			document.forms[0].cc_mtt.options[i] = new Option(vmin,vmin);
			if(vmin==def)
				document.forms[0].cc_mtt.options[i].selected = true;
			i++;
			vmin += parseInt(pas); 
		}	
	}
	else
	{
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_type.disabled = true;
		document.forms[0].cc_mtt.disabled = true;
		document.forms[0].cc_offert.disabled = true;
                document.forms[0].d_lux.disabled = false;
		document.forms[0].cc_offert.value = "";
		document.forms[0].d_cc.checked = false;
		resetMontant();
	}
}
// Chargement des differents montants selon le cheque-cadeau
function MTC_calculMontantCc()
{
	//Initialisation du tableau option du select menu
		document.forms[0].cc_mtt.options.length=1;
	

	if(document.forms[0].cc_type.selectedIndex >= 2)
	{	
		// Recuperation de la valeur du type de cc
		retour = document.forms[0].cc_type.value;

		vmin="";	// Valeur minimale
		vmax="";	// Valeur maximale
		pas="";		// Valeur du pas
		val="";		// Valeur discrete
		def="";		// valeur par défaut
		nbTir=0;

		for (i=0; i<=retour.length; i++)
		{
			if(retour.charAt(i) != '-')
			{
				if(nbTir == 1)
					vmin += retour.charAt(i);
				if(nbTir == 2)
					vmax += retour.charAt(i);
				if(nbTir == 3)
					pas += retour.charAt(i);
				if(nbTir == 4)
					val += retour.charAt(i);
				if(nbTir == 5)
					def += retour.charAt(i);
			}
			else
			{
				nbTir++;
			}
		}

		// Inscription de la valeur minimale pour le montant
		document.forms[0].cc_mtt.options[1] = new Option(vmin,vmin);
		if(vmin==def)
			document.forms[0].cc_mtt.options[1].selected = true;
	
		// Inscription de la valeur discrete pour le montant
		document.forms[0].cc_mtt.options[2] = new Option(val,val);
		if(val==def)
			document.forms[0].cc_mtt.options[2].selected = true;

		// Inscription des autres valeurs jusqu'a vmax
		i = 3;
		vmin = parseInt(vmin);
		vmin += (parseInt(val) - vmin);
		
		while (vmin < vmax)
		{
			vmin += parseInt(pas);
			document.forms[0].cc_mtt.options[i] = new Option(vmin,vmin);
			if(vmin==def)
				document.forms[0].cc_mtt.options[i].selected = true;
			i++; 
		}	
	}
	else
	{
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_type.disabled = true;
		document.forms[0].cc_mtt.disabled = true;
		document.forms[0].cc_offert.disabled = true;
                document.forms[0].d_lux.disabled = false;
		document.forms[0].cc_offert.value = "";
		document.forms[0].d_cc.checked = false;
		MTC_resetMontants();
	}
}
// Verification du montant du cheque-cadeau
function verifCc()
{
	resetMontant();
	
	if(document.forms[0].cc_mtt.selectedIndex == "0")
	{
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_type.disabled = true;
		document.forms[0].cc_mtt.disabled = true;
		document.forms[0].cc_offert.disabled = true;
                document.forms[0].d_lux.disabled = false;
		document.forms[0].d_cc.checked = false;
	}
}
// Verification du montant du cheque-cadeau
function MTC_verifCc()
{
	MTC_resetMontants();
	
	if(document.forms[0].cc_mtt.selectedIndex == "0")
	{
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_type.disabled = true;
		document.forms[0].cc_mtt.disabled = true;
		document.forms[0].cc_offert.disabled = true;
                document.forms[0].d_lux.disabled = false;
		document.forms[0].d_cc.checked = false;
	}
}*/
function checkIllustration()
{
	if (document.forms[0].s_rub.selectedIndex == 1)
	{
		document.forms[0].d_lux.disabled = false;
		document.forms[0].d_lux.checked = false;
		document.forms[0].d_cc.checked = false;
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_type.disabled = true;
		document.forms[0].cc_mtt.selectedIndex = 0;
		document.forms[0].cc_mtt.disabled = true;
		document.forms[0].cc_offert.value = "";
		document.forms[0].cc_offert.disabled = true;
		document.forms[0].s_rub.selectedIndex = 0;
	}
	resetMontant();
	if (!document.forms[0].d_lux.checked ^ document.forms[0].s_rub.selectedIndex > 1)
		return true;
	else if (document.forms[0].s_rub.selectedIndex == 0)
	{
		erreurId(4);
		document.forms[0].s_rub.selectedIndex = 2;
		showPreview(document.forms[0].s_rub);
		document.forms[0].s_rub.focus();
		return false;
	}
	else
	{
		document.forms[0].d_lux.checked = true;
		return false;
	}
}
function changeSignature(b)
{
	document.forms[0].s_sig.checked |= document.forms[0].d_acc.checked;
	document.forms[0].s_sig.disabled = document.forms[0].d_acc.checked;
	if (b && !document.forms[0].d_acc.checked)
		document.forms[0].s_sig.checked = false;
}
function changeNtelephone(t)
{
       var nptel = document.forms[0].s_tel;
       var porteur = document.forms[0].s_por;

       nptel.disabled=document.forms[0].d_acc.checked;
       if (porteur.type != 'hidden')
            porteur.disabled=document.forms[0].d_acc.checked;

       if (t && !document.forms[0].d_acc.checked)
       {
                   nptel.disabled=false;
                   if (porteur.type != 'hidden')
                        porteur.disabled=false;
       }
       else if (document.forms[0].d_acc.checked)
       {
            if (nptel.checked)
            {
                   alert ("Un Accusé réception représente uniquement les moyens de remise France Télécom,\nc'est à dire la remise par Téléphone, Fax ou Télex.\n\nNe pas téléphoner implique que le Télégramme est remis uniquement par le courrier.\n\nDe ce fait, un Accusé réception est incompatible avec Ne pas téléphoner.\n\nIl faut donc choisir l'une ou l'autre de ces 2 options.");
                   nptel.checked=false;
                   nptel.disabled=false;
                   document.forms[0].d_acc.checked=false;
                   document.forms[0].s_sig.checked=false;
                   document.forms[0].s_sig.disabled=false;
                   if (porteur.type != 'hidden')
                   {
                        porteur.checked=false;
                        porteur.disabled=false;
                   }
            }
            else if (porteur.type != 'hidden' && porteur.checked)
            {
                   alert ("Un Accusé réception représente uniquement les moyens de remise France Télécom,\nc'est à dire la remise par Téléphone, Fax ou Télex.\n\nPar porteur implique que le Télégramme est remis uniquement en main propre.\n\nDe ce fait, un Accusé réception est incompatible avec Par porteur.\n\nIl faut donc choisir l'une ou l'autre de ces 2 options.");
                   nptel.disabled=false;
                   porteur.checked=false;
                   porteur.disabled=false;
                   document.forms[0].d_acc.checked=false;
                   document.forms[0].s_sig.checked=false;
                   document.forms[0].s_sig.disabled=false;
            }
       }
}

function changePorteur(coche)
{
    if (coche.checked)  // decocher la case "ne pas telephoner"
        document.forms[0].s_tel.checked=false;
        document.forms[0].s_por.checked=false;
}
function checkAlpha(e)
{
	e.value = e.value.toUpperCase();
	var v = checkValide(e.value, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ.,:?'+-/=() \n\r", "Caractère invalide", e);
	if (!v)
		e.focus();
	return v;
}
function checkAlphaNonNull(e, n)
{
	if (!checkAlpha(e))
		return false;
	else if (e.value.length == 0)
	{
		erreurId(8, n);
		e.focus();
		return false;
	}
	return true;
}
function countOccurrences(e, s)
{
	var start = 0;
	var count = 0;
	while (true)
	{
		var index = e.indexOf(s, start);
		if (index < start)
			return count;
		count++;
		start = index + s.length;
	}
}
function checkNumeric(e,m,n)
{
	if (checkValide(e.value, "0123456789", "Caractère invalide, doit être numérique.", e))
	{
		if (e.value.length > 0)
		{
			if (!m || (!n && e.value.length != m) || (e.value.length != m && e.value.length != n))
			{
				erreurId(6, m+(n ? (" ou "+n) : ""));
				e.focus();
				return false;
			}
		}
	}
	return true;
}
function checkNumericNonNull(e, l, n)
{
	if (!checkNumeric(e, l))
		return false;
	else if (e.value.length == 0)
	{
		erreurId(5, n);
		e.focus();
		return false;
	}
	return true;
}

function checkRemise(e, nMax)
{
    if (checkNumeric(e, 1, 3))
        if (e.value <= nMax)
            return true;
        else
            erreurId(25, nMax);
    return false;
}
function checkText(e)
{
	checkAlpha(e);
	resetMontant(e);
}

function checkParVides(e)
{
	var parVides = countOccurrences(e.value, "()");
	var estPerso = top.aLignePerso || document.forms[0].d_tex.value.length > 0;
	if (parVides == 1 || (parVides == 0 && !estPerso))
		return true;
	erreurId(parVides > 1 ? 10 : 9, "Texte", "()");
	e.focus();
	return false;
}


function checkChequeCadeau()
{
    if (document.forms[0].d_cc.checked)
    {
        if (document.forms[0].cc_type.selectedIndex < 2)
        {
            erreurId(47);
            document.forms[0].cc_type.focus();
            return false;
        }
        else if (document.forms[0].cc_mtt.selectedIndex < 1)
        {
            erreurId(48);
            document.forms[0].cc_mtt.focus();
            return false;
        }
        else if (document.forms[0].cc_offert.value.length > 0)
            return checkAlpha(document.forms[0].cc_offert, "Offert");
    }
    return true;
}




// Modif. X.L. le 30/11/01. Les nouveaux elements mis dans la page simple.jsp le sont de maniere 
// optionnelle, en fonction de la valeur de chacune des variables bDelaiGaranti et bAccuseChoix. 
// Ces options d'affichage sont prises en compte dans la fonction serviceLine de Utile.java. 
// Si une option est presente, les elements qu'elle remplace sont toujours presents mais ont pour 
// type HIDDEN.
function checkSimple()
{
        var bRet;

        if (document.forms[0].d_dae.type == 'hidden')  // On est avec delai garanti
            bRet = changeSel(document.forms[0].d_tdel, document.forms[0].d_del);
        else
            bRet = changeSel(document.forms[0].d_dae, document.forms[0].d_dif);

        if (document.forms[0].d_tacc.type != 'hidden')  // On est avec plusieurs choix d'accuse
        {
            bRet = bRet && changeSel(document.forms[0].d_tacc, document.forms[0].d_acc);
/*
            if (bRet && document.forms[0].d_tacc.selectedIndex == 3)    // accuse par mail
                bRet = bRet && checkEmail(document.forms[0].g_email, true)
*/
        }

	return bRet
                && checkIllustration()
		&& checkAlphaNonNull(document.forms[0].d_nom, "Nom")
		&& checkAlpha(document.forms[0].d_pre)
		&& checkNumeric(document.forms[0].d_tel,10)
		&& checkNumeric(document.forms[0].d_fax,10)
/*		&& checkNumeric(document.forms[0].d_tlx,6) */
		&& checkAlpha(document.forms[0].d_adr, "Adresse")
		&& checkNumericNonNull(document.forms[0].d_cod, 5, "Code Postal")
		&& checkAlphaNonNull(document.forms[0].d_vil, "Ville")
		&& checkAlphaNonNull(document.forms[0].m_tex, "Texte")
                && checkChequeCadeau();
}

function checkMultiple()
{
	return true
                && checkSimple()
		&& checkParVides(document.forms[0].m_tex);
}

function checkExpediteur()
{
	return true
		&& checkAlphaNonNull(document.forms[0].e_nom, "Nom")
		&& checkAlpha(document.forms[0].e_pre)
		&& checkNumeric(document.forms[0].e_tel,10)
		&& checkNumeric(document.forms[0].e_fax,10)
/*		&& checkNumeric(document.forms[0].e_tlx,6) */
		&& checkAlphaNonNull(document.forms[0].e_adr, "Adresse")
		&& checkNumericNonNull(document.forms[0].e_cod, 5, "Code Postal")
		&& checkAlphaNonNull(document.forms[0].e_vil, "Ville")
                && checkEmail (document.forms[0].e_email, false);
}

function checkEnvoi()
{
	return true
		&& checkAlphaNonNull(document.forms[0].e_nom, "Nom")
		&& checkAlpha(document.forms[0].e_pre)
		&& checkNumeric(document.forms[0].e_tel,10)
		&& checkNumeric(document.forms[0].e_fax,10)
/*		&& checkNumeric(document.forms[0].e_tlx,6) */
		&& checkAlphaNonNull(document.forms[0].e_adr, "Adresse")
		&& checkNumericNonNull(document.forms[0].e_cod, 5, "Code Postal")
		&& checkAlphaNonNull(document.forms[0].e_vil, "Ville");
}

function checkEnvoiCommande()
{
	return true
		&& checkAlphaNonNull(document.forms[0].e_nom, "Nom")
		&& checkAlpha(document.forms[0].e_pre)
		&& checkNumeric(document.forms[0].e_tel,10)
		&& checkNumeric(document.forms[0].e_fax,10)
/*		&& checkNumeric(document.forms[0].e_tlx,6) */
		&& checkAlphaNonNull(document.forms[0].e_adr, "Adresse")
		&& checkNumericNonNull(document.forms[0].e_cod, 5, "Code Postal")
		&& checkAlphaNonNull(document.forms[0].e_vil, "Ville")
                && checkNumericNonNull(document.forms[0].c_num, 16, "Numéro");
}

function checkBmr()
{
        if (!checkEnvoiCommande(true))
           return false;
        else alert ("La validation de paiement par Télécommerce peut durer quelques minutes...\n\nVous obtiendrez soit :\n\n  -Paiement Accepté\n  -Paiement refusé\n  -Erreur de traitement\n\nDans les 2 derniers cas, votre commande n'est pas traitée.\n\nPour lancer votre commande, cliquez sur ok\n");
        return true;      
}

// selection de la grille de tarifs (ouverture d'une fenetre)
function selectionTarifs()
{
	openWindow("../jsp/tarifs.jsp", 790, 350, 0, 180);
}

// selection d'une proposition (ouverture d'une fenetre)
function selectionIdee()
{
	top.propositionTarget = document.forms[0].m_tex;
	openWindow("../jsp/proposition.jsp", 790, 300, 0, 207);
}

// fonctions relatives au calcul du tarif temps-reel
top.calculeMontant = calculeMontant;

//Liv_170303
function calculeMontant()
{
        modifTVA();
	var montant = Math.round(FORFAIT*(TVA/1000.0));
	var form = document.forms[0];
	montant += Math.round(montantPour('d_acc', form)*(TVA/1000.0));
        montant += Math.round(montantPour('d_lux', form)*(TVA/1000.0));
	montant += Math.round(montantPour('d_dif', form)*(TVA/1000.0));
	montant += Math.round(montantPour('s_tel', form)*(TVA/1000.0));
	//Ajout du montant du cheque-cadeau
	montant += Math.round((document.forms[0].cc_mtt.value)*100);
	montant += Math.round(montantPour('d_cc', form)*(TVA/1000.0));

        // Debut de modif. par X.L. pour ajouter la prise en compte du delai de remise garanti,
        // et de la remise sous 4 heures
        montant += Math.round(montantPour('d_del', form)*(TVA/1000.0));
        montant += Math.round(montantPour('d_gar', form)*(TVA/1000.0));
        // Fin de modif. par X.L.

	if (!top.estMultiple)
        {
	    montant += Math.round(form.s_con.selectedIndex * TARIF['s_con']*(TVA/1000.0));
            montant += Math.round(montantPour('s_por', form)*(TVA/1000.0));  // modif. X.L.
        }
	var texteVariable = form.d_tex;
	var texteCommun = form.m_tex;
	var texte = (texteVariable ? texteVariable.value + " " : "") + (texteCommun ? texteCommun.value : "");
	var mots = compteMots(texte);
	if (mots > FORFAIT_BASE)
		montant += Math.floor((mots - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * Math.round(FORFAIT_EXTRA*(TVA/1000.0));
	//form.montantTotal.value = private_tarif(Math.round(montant/EURO));
        form.montantTotal.value = private_tarif(montant);
	return montant;
}
function montantPour(name, form)
{
        // Avec l'ajout du délai garanti et du délai de remise sous 4 heures et du fait que ces
        // nouveaux éléments sont optionnels dans la page de saisie du télégramme, il faut tester au
        // préalable si l'élément est caché ou non. (X.L. le 01/12/01)
        if (!form[name] || form[name].type == 'hidden' || !form[name].checked)
            return 0;

        // Dans le cas du délai de remise, on peut avoir sous 4 heures ou différé, ce qui n'est pas le
        // même tarif.
        if (name == 'd_del')
        {
            if (form.d_tel.value == null)
                return 0;
            else if (form.d_tdel.value == 40 && TARIF[name])    // Remise sous 4 heures
                return TARIF[name];
            else if (TARIF['d_dif'])
                return TARIF['d_dif'];
            return 0;
        }

	if (TARIF[name] && form[name] && form[name].checked)
		return TARIF[name];
	return 0;
}
function resetMontant(e)
{
	var form = e;
	while (form && form.tagName != "FORM") form = form.parentElement;
	calculeMontant(form);
}
var separateurs = " \t\n\r";
function compteMots(texte)
{
	var t = ""+texte;
	var motsTaxes = 0;
	var s = 0;
	for (var i=0; i<t.length; i++)
		if (separateurs.indexOf(t.charAt(i)) >= 0)
		{
			var longueur = i-s;
			motsTaxes += Math.floor((longueur-1)/10 + 1);
			s = i;
		}
	return motsTaxes;
}

// affichage d'une fenetre de previsualisation
function showPreview(sel)
{
	top.prevue.src = "../images/cartes/prevue-"+sel.options[sel.selectedIndex].value+".gif";
}

// affichage de l'assistant code postal
function assistPostal(cod, vil)
{
	top.codePostalTarget = document.forms[0].elements[cod];
	top.villeTarget = document.forms[0].elements[vil];
	openWindow("../../../../jsp/zones.jsp?c="+top.codePostalTarget.value+"&v="+escape(top.villeTarget.value), 490, 400, 0, 207);
}

//Intégration du 24/11/2003
//creation Michel Bichara pour demande confirmation suppression TG Simple ou TG Multiple
function confSuppTG()
{
    var f = document.forms[0];
        if (confirm ("Confirmez-vous la suppression de ce télégramme ?"))
        {
            f.action="supprimeTelegramme.jsp?id=<%=i%>";
            f.submit();
        }
        else
            erreurId(-1);   // Pour revenir dans la page sans afficher d'erreur
}

//creation Michel Bichara pour demande confirmation suppression Destinataire TG Multiple
function confSuppTGDM()
{
    var fdm = document.forms[0];
        if (confirm ("Confirmez-vous la suppression de ce destinataire ?"))
        {
            fdm.action="supprimeDestinataire.jsp?id=<%=i%>&dst=<%=j%>";
            fdm.submit();
        }
        else
            erreurId(-1);   // Pour revenir dans la page sans afficher d'erreur
}

//creation Michel Bichara pour demande confirmation Ajout Destinataire TG Multiple
function confAjoutTGDM()
{
    var fdma = document.forms[0];
        if (confirm ("Confirmez-vous l'ajout d'un Autre Destinataire pour ce télégramme ?"))
        {
            fdma.action="multiple.jsp?id=<%=i%>";
            fdma.submit();
        }
        else
            erreurId(-1);   // Pour revenir dans la page sans afficher d'erreur
}

//Intégration du Module TLC du 170303


/*
* Vérification que le TELEX est exclusif du chèque cadeau et de l'illustration
*/
function MTC_checkTelex()
{

	var s = document.forms[0].d_tlx;

	if ((s.value != null && s.value.length > 0) && 
	    (document.forms[0].d_lux.checked || document.forms[0].d_cc.checked))
	{
		erreurId(49);
		document.forms[0].d_tlx.focus();		
		return false;
	}

	return true;
}






////Livraison du 170303
/*Crea. PPC le 13/01/2002
La difference avec la fonction checkSimple() est que l'on verifie les champs correspondant à l'expediteur.
Les messages d'alertes envoyés sont également different;
*/
function MTC_checkSimple()
{
        var bRet;

        if (document.forms[0].d_dae.type == 'hidden')  // On est avec delai garanti
            bRet = MTC_changeSel(document.forms[0].d_tdel, document.forms[0].d_del);
        else
            bRet = MTC_changeSel(document.forms[0].d_dae, document.forms[0].d_dif);

        if (document.forms[0].d_tacc.type != 'hidden')  // On est avec plusieurs choix d'accuse
        {
//            bRet = bRet && MTC_changeSel(document.forms[0].d_tacc, document.forms[0].d_acc);

        }

	return bRet
		&& MTC_checkIllustration()
                && checkAlphaNonNull(document.forms[0].e_nom, "Nom de l'expediteur")
		&& checkAlpha(document.forms[0].e_pre)
		&& checkNumericNonNull(document.forms[0].e_tel,10, "Telephone de l'expediteur")
		&& checkNumeric(document.forms[0].e_fax,10)
		&& checkNumeric(document.forms[0].e_tlx,6)
		&& checkAlphaNonNull(document.forms[0].e_adr, "Adresse de l'expediteur")
		&& checkNumericNonNull(document.forms[0].e_cod, 5, "Code Postal de l'expediteur")
		&& checkAlphaNonNull(document.forms[0].e_vil, "Ville de l'expediteur")
		&& checkAlphaNonNull(document.forms[0].d_nom, "Nom du destinataire")
		&& checkAlpha(document.forms[0].d_pre)
		&& checkNumeric(document.forms[0].d_tel,10)
		&& checkNumeric(document.forms[0].d_fax,10)
		&& checkNumeric(document.forms[0].d_tlx,6)
		&& checkAlpha(document.forms[0].d_adr, "Adresse du destinataire")
		&& checkNumericNonNull(document.forms[0].d_cod, 5, "Code Postal du destinataire")
		&& checkAlphaNonNull(document.forms[0].d_vil, "Ville du destinataire")
		&& checkAlphaNonNull(document.forms[0].m_tex, "Texte du Message")
		&& checkChequeCadeau()
                && MTC_verifySignature()
		&& MTC_checkTelex();
}

/**
 * Cette fonction permet de verifier les champs des destinataires lors d'un telegramme multi-destinataire emis
 * par le MTC
 * parametre : la variable first indique le numero du premier destinataire (inclu)
 * et la variable last indique celui du dernier (exclu)
 **/
function MTC_checkMultiple(first, last)
{
    var i;
    var bRet = true;
    var dNom,dPre,dTel,dFax,dTlx,dAdr,dCod,dVil;
    for (i=first;i<last;i++)
    {
        MTC_checkDest(i);
        var inc = getElementWithID("include_"+i);
        if (inc.value == "true")
        {
            dNom = getElementWithID("d"+i+"_nom");
            dPre = getElementWithID("d"+i+"_pre");
            dTel = getElementWithID("d"+i+"_tel");
            dFax = getElementWithID("d"+i+"_fax");
            dTlx = getElementWithID("d"+i+"_tlx");
            dAdr = getElementWithID("d"+i+"_adr");
            dCod = getElementWithID("d"+i+"_cod");
            dVil = getElementWithID("d"+i+"_vil");
            bRet = bRet 
		&& checkAlphaNonNull(dNom, "Nom du destinataire n°"+i)
		&& checkAlpha(dPre)
		&& checkNumeric(dTel,10)
		&& checkNumeric(dFax,10)
		&& checkNumeric(dTlx,6)
		&& checkAlpha(dAdr, "Adresse du destinataire n°"+i)
		&& checkNumericNonNull(dCod, 5, "Code Postal du destinataire n°"+i)
		&& checkAlphaNonNull(dVil, "Ville du destinataire n°"+i);
        }
    }
    return bRet;

}

//Cette variable represente la TVA a appliquer
var TVA;
//Cette fonction modifie la TVA en fonction du code postal de l'expediteur
function modifTVA()
{
    var form = document.forms[0];
    var code_dept = form.e_cod.value;
    var i;
    for (i=0;i<TVAs[0].length;i++)
    {
        if (code_dept == TVAs[0][i])
        {
            TVA = TVAs[1][i];
            return TVA;
        }
        TVA = defaultTVA;
    }
}

/**
 * A utiliser avec la page multi.jsp du MTC. retourne le nombre de destinataire
 * selectionné sur la page dont les numeros sont compris entre first et last (inclus)
 **/
function MTC_getNDestMulti()
{
    var i;
    var iRet=0;
    for (i=first;i<last;i++)
    {
        var obj = getElementWithID("include_"+i);
        if (obj.value=="true")
            iRet++;
    }
    return iRet;
}

/** Cette fonction met à jour le montant HT sur les pages multidestinataires du MTC
 **/
function MTC_calculeMontantHTMulti()
{
    var motsVariables = 0;
    var motsTotaux = 0;
    var Montant = 0;
    var montantMess = 0;
    var montantForfait = FORFAIT;  //Montant du forfait
    for (i=0;i<(first-1);i++)
    {
        motsVariables = MTC_compteMotsTaxes(MPs[i]);
        motsTotaux = motsVariables+motsCommuns;

        montantMess += montantForfait;
        montantMess += HTSvcPerso;
	if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * FORFAIT_EXTRA;
        Montant += montantMess;
        montantMess = 0;
    }

    var Texte;
    var Include;

    for (i=first;i<last;i++)
    {
        Include = getElementWithID("include_"+i);
        if (Include.value == "true")
        {
            Texte = getElementWithID("d"+i+"_tex");
            motsVariables = MTC_compteMotsTaxes(Texte.value);
            motsTotaux = motsVariables+motsCommuns;
            montantMess += montantForfait;
            montantMess += HTSvcPerso;
            if (motsTotaux > FORFAIT_BASE)
                    montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * FORFAIT_EXTRA;
            Montant += montantMess;
            montantMess = 0;
        }
    }

    for (i=(last-1);i<MPs.length;i++)
    {
        motsVariables = MTC_compteMotsTaxes(MPs[i]);
        motsTotaux = motsVariables+motsCommuns;

        montantMess += montantForfait;
        montantMess += HTSvcPerso;
	if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * FORFAIT_EXTRA;
        Montant += montantMess;
        montantMess = 0;
    }
    
    Montant += HTSvcGlo;
    var champ = getElementWithID('montantTotalHT');
    if (champ)
        champ.value = private_tarif(Montant);

}

/** Cette fonction met à jour le montant TTC sur les pages multidestinataires du MTC
 **/
function MTC_calculeMontantTTCMulti()
{
    var motsVariables = 0;
    var motsTotaux = 0;
    var Montant = 0;
    var montantMess = 0;
    var montantForfait = Math.round(FORFAIT*(TVA/1000.0));  //Montant du forfait
    for (i=0;i<(first-1);i++)
    {
        motsVariables = MTC_compteMotsTaxes(MPs[i]);
        motsTotaux = motsVariables+motsCommuns;

        montantMess += montantForfait;
        montantMess += TTCSvcPerso;
	if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * Math.round(FORFAIT_EXTRA*(TVA/1000));
        Montant += montantMess;
        montantMess = 0;
    }

    var Texte;
    var Include;

    for (i=first;i<last;i++)
    {
        Include = getElementWithID("include_"+i);
        if (Include.value == "true")
        {
            Texte = getElementWithID("d"+i+"_tex");
            motsVariables = MTC_compteMotsTaxes(Texte.value);
            motsTotaux = motsVariables+motsCommuns;
            montantMess += montantForfait;
            montantMess += TTCSvcPerso;
            if (motsTotaux > FORFAIT_BASE)
                    montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * Math.round(FORFAIT_EXTRA*(TVA/1000));
            Montant += montantMess;
            montantMess = 0;
        }
    }

    for (i=(last-1);i<MPs.length;i++)
    {
        motsVariables = MTC_compteMotsTaxes(MPs[i]);
        motsTotaux = motsVariables+motsCommuns;

        montantMess += montantForfait;
        montantMess += TTCSvcPerso;
	if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * Math.round(FORFAIT_EXTRA*(TVA/1000));
        Montant += montantMess;
        montantMess = 0;
    }
    
    Montant += TTCSvcGlo;
    var champ = getElementWithID('montantTotalTTC');
    if (champ)
        champ.value = private_tarif(Montant);

}

/** Cette fonction remet à jour les montants sur les pages multidestinataires du MTC
 **/
function MTC_resetMontantsMulti()
{
        modifTVA();
        MTC_calculeMotsReelsMulti();
        MTC_calculeMotsTaxesMulti();
	MTC_calculeMontantHTMulti();
        MTC_calculeMontantTTCMulti();
}

/** Cette fonction met à jour le champ include d'indice demandé
 *  (Mise à true si le code postal, la ville et le nom sont remplis, false dans le cas contraire)
 **/
function MTC_checkDest(indice)
{
    var oNom;
    oNom = getElementWithID("d"+indice+"_nom");
    var oPre;
    oPre = getElementWithID("d"+indice+"_pre");
    var oTel;
    oTel = getElementWithID("d"+indice+"_tel");
    var oFax;
    oFax = getElementWithID("d"+indice+"_fax");
    var oTlx;
    oTlx = getElementWithID("d"+indice+"_tlx");
    var oAdr;
    oAdr = getElementWithID("d"+indice+"_adr");
    var oCod;
    oCod = getElementWithID("d"+indice+"_cod");
    var oVil;
    oVil = getElementWithID("d"+indice+"_vil");
    var oInclude;
    oInclude = getElementWithID("include_"+indice);
    oInclude.value = ((oNom.value!="")||(oPre.value!="")||(oTel.value!="")||(oFax.value!="")||(oTlx.value!="")||(oAdr.value!="")||(oCod.value!="")||(oVil.value!=""));
    MTC_resetMontantsMulti();
}

//Liv_170303
/**Cette fonction compte le nombre de mots dans la chaine passée en parametre **/
function MTC_compteMotsReels(texte)
{
    
    var str = new String(texte);
    while(str.charAt(str.length-1) == ' ' && str.length>0)
    {
        str = str.substring(0, str.length-1);
    }

    while(str.charAt(0) == ' ' && str.length>0)
    {
        str = str.substring(1);
    }

     if (str.length==0)
        return 0;

    str = str + " ";
    var mots =0;
    var s = 0;
    var j=0;
    for (var i=0;i<str.length;i++)
    {
        if (separateurs.indexOf(str.charAt(i)) >= 0)
        {
            var sub =str.substring(s, i);

            var longueur = sub.length;
            if (longueur>0)
                mots ++;
            s = i+1;
        }
    }
    return mots;
}

//Liv_170303
//Cette fonction fournit un meilleur moyen de compter les mots Taxes
function MTC_compteMotsTaxes(texte)
{
    var str = ""+texte;
    while(separateurs.indexOf(str.charAt(str.length-1)) >= 0 && str.length>0)
    {
        str = str.substring(0, str.length-1);
    }
    while(separateurs.indexOf(str.charAt(0)) >= 0 && str.length>0)
    {
        str = str.substring(1);
    }

     if (str.length==0)
        return 0;

    str = str + " ";
    var motsTaxes = 0;
    var s = 0;
    for (var i=0;i<str.length;i++)
    {
        if (separateurs.indexOf(str.charAt(i)) >= 0)
        {
            var sub =str.substring(s, i);

            var longueur = sub.length;
            motsTaxes += Math.ceil(longueur/10);
            s = i+1;
        }
    }
    return motsTaxes;
}

/*
    Pour que cette fonction soit utilisé, il faut que la variable javascript nDest ai été initialisée au nombre 
    de destinataires déja existant (si il s'agit de la premiere saisie d'un destinataire, nDest doit être
    initialisé à 1.
 */

function MTC_calculeMontantHT()
{
        var Montant = 0;                                        //Montant total du telegramme
        var montantSvcGlobal = 0;                               //Montant du service Global
        var montantSvcPerso =0;                                 //Montant du service Personnalisé
        var montantMess = 0;                                    //Montant d'un Message
        var montantForfait = FORFAIT;  //Montant du forfait
        
	var form = document.forms[0];
	montantSvcPerso += montantPour('d_acc', form);
	montantSvcPerso += montantPour('d_cc', form)+montantPour('d_lux', form);
	// ajout du montant du cheque cadeau
	montantSvcPerso += (parseInt(document.forms[0].cc_mtt.value)*100);
	montantSvcPerso += montantPour('d_dif', form);
	montantSvcGlobal += montantPour('s_tel', form);

        // Debut de modif. par X.L. pour ajouter la prise en compte du delai de remise garanti,
        // et de la remise sous 4 heures
        montantSvcPerso += montantPour('d_del', form);
        montantSvcPerso += montantPour('d_gar', form);
        // Fin de modif. par X.L.

        montantSvcGlobal += montantPour('s_por', form);  // modif. X.L.
        

	var texteVariable = form.d_tex;
	var texteCommun = form.m_tex;
        var texteSign = "";
        var SigCheck = getElementWithID("s_sig");
        if (SigCheck && SigCheck.checked)
        {
            texteSign += (form.g_nom.value ? form.g_nom.value+" " : "") + (form.g_pre.value ? form.g_pre.value + " " : "") + (form.g_adr.value ? form.g_adr.value + " " : "") + (form.g_cod.value ? form.g_cod.value + " " : "") + (form.g_vil.value ? form.g_vil.value +" " : "");
        }
	var strTexteCommun = (texteCommun ? texteCommun.value: "") + (texteSign ? " " + texteSign : "");
	var motsCommuns = MTC_compteMotsTaxes(strTexteCommun);

        var strTexteVariable = (texteVariable ? texteVariable.value + " " : "")
        var motsVariables =MTC_compteMotsTaxes(strTexteVariable);

        var motsTotaux = motsCommuns + motsVariables;
        montantMess += montantForfait;
        montantMess += montantSvcPerso;
	if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * FORFAIT_EXTRA;
        Montant += montantMess;
        for (i = 1;i<MPs.length;i++)
        {
            montantMess = 0;
            montantMess += montantForfait;
            montantMess += montantSvcPerso;
            motsVariables = MTC_compteMotsTaxes(MPs[i]);
            motsTotaux = motsVariables + motsCommuns;
            if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * FORFAIT_EXTRA;
            Montant += montantMess;
        }

        var montantUnit = Montant;
	
        montantSvcGlobal += form.s_con.selectedIndex * TARIF['s_con'];
        Montant+=montantSvcGlobal;
        if(form.montantTotalHT)
            form.montantTotalHT.value = private_tarif(Montant);
        if(form.montantTotalHTSvcPerso)
            form.montantTotalHTSvcPerso.value = montantSvcPerso;
        if(form.montantTotalHTSvcGlo)
            form.montantTotalHTSvcGlo.value = montantSvcGlobal;
        if(form.motsCommuns)
            form.motsCommuns.value = motsCommuns;
	return Montant;
}

function MTC_calculeMontantTTC()
{
        modifTVA();
        var Montant = 0;                                        //Montant total du telegramme
        var montantSvcGlobal = 0;                               //Montant du service Global
        var montantSvcPerso =0;                                 //Montant du service Personnalisé
        var montantMess = 0;                                    //Montant d'un Message
        var montantForfait = Math.round(FORFAIT*(TVA/1000.0));  //Montant du forfait
        
	var form = document.forms[0];
	montantSvcPerso += Math.round(montantPour('d_acc', form)*(TVA/1000.0));
	montantSvcPerso += Math.round((montantPour('d_cc', form)+montantPour('d_lux', form))*(TVA/1000.0));
	// Ajout du montant du cheque
	montantSvcPerso += (parseInt(document.forms[0].cc_mtt.value)*100);
	montantSvcPerso += Math.round(montantPour('d_dif', form)*(TVA/1000.0));
	montantSvcGlobal += Math.round(montantPour('s_tel', form)*(TVA/1000.0));

        // Debut de modif. par X.L. pour ajouter la prise en compte du delai de remise garanti,
        // et de la remise sous 4 heures
        montantSvcPerso += Math.round(montantPour('d_del', form)*(TVA/1000.0));
        montantSvcPerso += Math.round(montantPour('d_gar', form)*(TVA/1000.0));
        // Fin de modif. par X.L.

        montantSvcGlobal += Math.round(montantPour('s_por', form)*(TVA/1000.0));  // modif. X.L.
        

	var texteVariable = form.d_tex;
	var texteCommun = form.m_tex;
        var texteSign = "";
        var SigCheck = getElementWithID("s_sig");
        if (SigCheck && SigCheck.checked)
        {
            texteSign += (form.g_nom.value ? form.g_nom.value+" " : "") + (form.g_pre.value ? form.g_pre.value + " " : "") + (form.g_adr.value ? form.g_adr.value + " " : "") + (form.g_cod.value ? form.g_cod.value + " " : "") + (form.g_vil.value ? form.g_vil.value +" " : "");
        }
	var strTexteCommun = (texteCommun ? texteCommun.value: "") + (texteSign ? " " + texteSign : "");
	var motsCommuns = MTC_compteMotsTaxes(strTexteCommun);
        
        var strTexteVariable = (texteVariable ? texteVariable.value + " " : "")
        var motsVariables =MTC_compteMotsTaxes(strTexteVariable);

        var motsTotaux = motsCommuns + motsVariables;
        montantMess += montantForfait;
        montantMess += montantSvcPerso;
	if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * Math.round(FORFAIT_EXTRA*(TVA/1000));
        Montant += montantMess;
        for (i = 1;i<MPs.length;i++)
        {
            montantMess = 0;
            montantMess += montantForfait;
            montantMess += montantSvcPerso;
            motsVariables = MTC_compteMotsTaxes(MPs[i]);
            motsTotaux = motsVariables + motsCommuns;
            if (motsTotaux > FORFAIT_BASE)
		montantMess += Math.floor((motsTotaux - FORFAIT_BASE + FORFAIT_EXTRA_BASE)/FORFAIT_EXTRA_BASE) * Math.round(FORFAIT_EXTRA*(TVA/1000));
            Montant += montantMess;
        }

        var montantUnit = Montant;
	
        montantSvcGlobal += Math.round(form.s_con.selectedIndex * TARIF['s_con']*(TVA/1000));
        Montant+=montantSvcGlobal;
        if(form.montantTotalTTC)
            form.montantTotalTTC.value = private_tarif(Math.round(Montant));
        if(form.montantTotalTTCSvcPerso)
            form.montantTotalTTCSvcPerso.value = montantSvcPerso;
        if(form.montantTotalTTCSvcGlo)
            form.montantTotalTTCSvcGlo.value = montantSvcGlobal;
//        if(form.motsCommuns)
//            form.motsCommuns.value = motsCommuns;
        if(form.CommonWords)
            form.CommonWords.value = motsCommuns;
	return Montant;
}

function MTC_calculeMotsReels()
{
	var form = document.forms[0];
	var texteVariable = form.d_tex;
	var texteCommun = form.m_tex;
        var texteSign = "";
        if (form.s_sig.checked)
        {
            texteSign += (form.g_nom.value ? form.g_nom.value+" " : "") + (form.g_pre.value ? form.g_pre.value + " " : "") + (form.g_adr.value ? form.g_adr.value + " " : "") + (form.g_cod.value ? form.g_cod.value + " " : "") + (form.g_vil.value ? form.g_vil.value +" " : "");
        }
	var strTexteCommun = (texteCommun ? texteCommun.value: "") + (texteSign ? " " + texteSign : "");
	var motsCommuns = MTC_compteMotsReels(strTexteCommun);
        if (strTexteCommun.indexOf("()",0)>=0)
            motsCommuns--;
        var strTexteVariable = (texteVariable? texteVariable.value+" ": "");
        for (j = 1;j<MPs.length;j++)
        {
            strTexteVariable += (MPs[j]+" ");
        }
        var motsVariables = MTC_compteMotsReels(strTexteVariable);
        if(form.MotsReels)
            form.MotsReels.value=motsCommuns;
        if(form.MotsReelsMP)
            form.MotsReelsMP.value=motsVariables;

}

function MTC_calculeMotsTaxes()
{
	var form = document.forms[0];
	var texteVariable = form.d_tex;
	var texteCommun = form.m_tex;
        var texteSign = "";
        if (form.s_sig.checked)
        {
            texteSign += (form.g_nom.value ? form.g_nom.value+" " : "") + (form.g_pre.value ? form.g_pre.value + " " : "") + (form.g_adr.value ? form.g_adr.value + " " : "") + (form.g_cod.value ? form.g_cod.value + " " : "") + (form.g_vil.value ? form.g_vil.value +" " : "");
        }
	var strTexteCommun = (texteCommun ? texteCommun.value: "") + (texteSign ? " " + texteSign : "");
	var motsCommuns = MTC_compteMotsTaxes(strTexteCommun);
        if (strTexteCommun.indexOf("()",0)>=0)
            motsCommuns--;
        var strTexteVariable = (texteVariable ? texteVariable.value + " " : "");
        for ( j = 1;j<MPs.length;j++)
        {
            strTexteVariable += (MPs[j]+" ");
        }
        var motsVariables = MTC_compteMotsTaxes(strTexteVariable);
        if(form.MotsTaxes)
            form.MotsTaxes.value=motsCommuns;
        if(form.MotsTaxesMP)
            form.MotsTaxesMP.value=motsVariables;
}

//Fonction destinée à mettre à jour les montants TTC et HT ainsi que le nombre sur la page simple.jsp (pour WebTG)
//et sur la page saisie_TG(pour MTC)
function MTC_resetMontants(e)
{
	var form = e;
	while (form && form.tagName != "FORM") form = form.parentElement;
        modifTVA();
        MTC_calculeMotsReels();
        MTC_calculeMotsTaxes();
	MTC_calculeMontantHT();
        MTC_calculeMontantTTC();
}

//Livraison du 170303
function MTC_changeSel(combo, coche)
{
	if (combo.selectedIndex == 1)
	{
		coche.checked = false;
		combo.disabled = true;
		combo.selectedIndex = 0;
	}
	if (coche.checked && combo.selectedIndex == 0)
	{
		combo.focus();
	}

        if (combo.name == 'd_tdel' && combo.selectedIndex < 2)
            document.forms[0].d_gar.checked = false;

        if (combo.name == 'd_tacc' && combo.selectedIndex < 2)
        {
            document.forms[0].s_sig.checked=false;
            document.forms[0].s_sig.disabled=false;
            RAZ ('g_nom', 'g_pre', 'g_adr', 'g_cod', 'g_vil');
        }
        MTC_resetMontants(coche);
	return true;
}

function MTC_checkGar(coche)
{
    if (coche.checked && document.forms[0].d_tdel.selectedIndex < 2)
            coche.checked = false;

    MTC_resetMontants(coche);
}


function MTC_checkText(e)
{
	checkAlpha(e);
	MTC_resetMontants(e);
}


function MTC_checkIllustration()
{
	if (document.forms[0].s_rub.selectedIndex == 1)
	{
		document.forms[0].d_lux.disabled = false;
		document.forms[0].d_lux.checked = false;
		document.forms[0].d_cc.checked = false;
		document.forms[0].cc_type.selectedIndex = 0;
		document.forms[0].cc_type.disabled = true;
		document.forms[0].cc_mtt.selectedIndex = 0;
		document.forms[0].cc_mtt.disabled = true;
		document.forms[0].cc_offert.value = "";
		document.forms[0].cc_offert.disabled = true;
		document.forms[0].s_rub.selectedIndex = 0;
	}
	MTC_resetMontants();
	if (!document.forms[0].d_lux.checked ^ document.forms[0].s_rub.selectedIndex > 1)
		return true;
	else if (document.forms[0].s_rub.selectedIndex == 0)
	{
		erreurId(4);
		document.forms[0].s_rub.selectedIndex = 2;
		showPreview(document.forms[0].s_rub);
		document.forms[0].s_rub.focus();
		return false;
	}
	else
	{
		document.forms[0].d_lux.checked = true;
		return false;
	}
}

//Livraison du 270203 pour les 3 fonctions qui suivent
/**
Verifie la signature
X.L. le 27/02/03
*/
function MTC_verifySignature ()
{
    if (! document.forms[0].s_sig.checked)
        return true;

    var bRet;
    bRet = true;

    return bRet     
        && checkAlphaNonNull(document.forms[0].g_nom, "Nom de la signature")
	&& checkAlpha(document.forms[0].g_pre)
	&& checkAlphaNonNull(document.forms[0].g_adr, "Adresse de la signature")
	&& checkNumericNonNull(document.forms[0].g_cod, 5, "Code Postal de la signature")
	&& checkAlphaNonNull(document.forms[0].g_vil, "Ville de la signature");
}

function MTC_changeSignature(b)
{
	document.forms[0].s_sig.checked |= document.forms[0].d_acc.checked;
//	document.forms[0].s_sig.disabled = document.forms[0].d_acc.checked;
	if (b && !document.forms[0].d_acc.checked)
        {
	    document.forms[0].s_sig.checked = false;
            RAZ ('g_nom', 'g_pre', 'g_adr', 'g_cod', 'g_vil');
        }

        if (document.forms[0].s_sig.checked && document.forms[0].g_nom.value == "")
            copyTo('e_nom','g_nom','e_pre','g_pre','e_adr','g_adr','e_cod','g_cod','e_vil','g_vil');
}


function MTC_checkUncheckSignature(sig)
{
    if (sig.checked)
    {
        if (document.forms[0].g_nom.value == "")
        {
            copyTo('e_nom','g_nom','e_pre','g_pre','e_adr','g_adr','e_cod','g_cod','e_vil','g_vil');
        }
    }
    else
        RAZ ('g_nom', 'g_pre', 'g_adr', 'g_cod', 'g_vil'); 
}

/* Intégration du 110403 nlles fonctions */

function MTC_calculeMotsReelsMulti()
{
    var form = document.forms[0];
    var strTexteVariable="";
    for (i = 0;i<MPs.length;i++)
    {
        strTexteVariable += MPs[i];
        strTexteVariable += " ";
    }
    var Texte;
    var Include;
    for (i = first;i<last;i++)
    {
        Texte = getElementWithID("d"+i+"_tex");
        Include = getElementWithID("include_"+i);
        if (Include.value == "true")
        {
            strTexteVariable += Texte.value;
            strTexteVariable += " ";
        }
    }
    
    var motsVariables = MTC_compteMotsReels(strTexteVariable);
    if (form.MotsReelsMP)
        form.MotsReelsMP.value = motsVariables;
}

function MTC_calculeMotsTaxesMulti()
{
    var form = document.forms[0];
    var strTexteVariable="";
    for (i = 0;i<MPs.length;i++)
    {
        strTexteVariable += MPs[i];
        strTexteVariable += " ";
    }
    var Texte;
    var Include;
    for (i = first;i<last;i++)
    {
        Texte = getElementWithID("d"+i+"_tex");
        Include = getElementWithID("include_"+i);
        if (Include.value == "true")
        {
            strTexteVariable += Texte.value;
            strTexteVariable += " ";
        }
    }
    
    var motsVariables = MTC_compteMotsTaxes(strTexteVariable);
    if (form.MotsTaxesMP)
        form.MotsTaxesMP.value = motsVariables;
}

/** P.P.C. le 09/04/2003
 *  Cette fonction permet de verifier si la présence de la chaine "()" est necessaire dans le message du telegramme (présence ou non de Message Personnalisés).
 *  Si c'est le cas, elle verifie la présence de cette chaine et retourne une erreur en cas d'abscence
 */
function MTC_checkMPs()
{
    var presence;
    var MP = getElementWithID("d_tex");
    var Mess = getElementWithID("m_tex");
    presence = MP.value;
    for (i = 1; i<MPs.length;i++)
    {
        var Temp = (MPs[i] != '');
        presence = (presence || Temp);
    }
    
    if (presence)
    {
        var count = countOccurrences(Mess.value, "()")
        if (count == 0)
        {
            erreurId(9, "Texte", "()");
            Mess.focus();
            return false;
        }
        else if (count >1)
        {
            erreurId(10, "Texte", "()");
            Mess.focus();
            return false;
        }
    }
    return true;
}


