// affichage d'un message d'erreur
var erreurs = new Array
	(
/* 1*/		"\n\nLe code postal et la ville du destinataire ne correspondent pas ou sont mal orthographiés pour notre système.\n\nAstuce :\nSupprimez :\n - Soit le contenu du champ Ville, puis cliquez sur l'image à droite du champ Code Postal\npour obtenir automatiquement ou sélectionner la ville correspondante.",
/* 2*/		"\n\nLe code postal et la ville de la signature ne correspondent pas ou sont mal orthographiés pour notre système.\n\nAstuce :\nSupprimez :\n - Soit le contenu du champ Ville, puis cliquez sur l'image à droite du champ Code Postal\npour obtenir automatiquement ou sélectionner la ville correspondante.",
/* 3*/		"\n\nLe code postal et la ville ne correspondent pas ou sont mal orthographiés pour notre système.\n\nAstuce :\n\n Vous saisissez :\n\n  - Soit le code départemental ou le code postal dans le champ Code Postal,\n    puis cliquez sur l'image qui se trouve à droite de ce champ,\n    pour obtenir automatiquement ou sélectionner la ville correspondante.\n\n  - Soit la ville ou une partie du nom de la ville dans le champ Ville/Commune,\n    puis cliquez sur l'image qui se trouve à droite du champ Code Postal\n    pour obtenir automatiquement ou sélectionner le code postal correspondant.",
/* 4*/		"veuillez sélectionner un illustré",
/* 5*/		"le champ '' {0} '' est un champ obligatoire. Vous devez le compléter.",
/* 6*/		"ce champ doit contenir {0} caractères ",
/* 7*/		"{0} {1}\ncaractères autorisés: {2}",
/* 8*/		"le champ '' {0} '' est un champ obligatoire. Vous devez le compléter.",
/* 9*/		"Pour positionner votre texte personnalisé, insérer, au moins une fois à l'endoit choisi dans le champ {0}, une parenthèse ouverte suivie d'une parenthèse fermée sans espace.",
/*10*/		"Pour positionner votre texte personnalisé, insérer, au plus une fois à l'endoit choisi dans le champ {0}, une parenthèse ouverte suivie d'une parenthèse fermée sans espace.",
/*11*/          "format de l\'adresse email incorrect",
/*12*/          "ce champ doit contenir au moins {0} caractères ",
/*13*/          "Abonné existant déjà",
/*14*/          "Choisissez un autre identifiant et mot de passe",
/*15*/          "Veuillez saisir un identifiant et un mot de passe",
/*16*/          "Identifiant et/ou mot de passe incorrects",
/*17*/          "Votre demande d\'abonnement est en cours de traitement. Attendez d\'avoir reçu un avis par email avant de chercher à vous identifier",
/*18*/          "Nouveau mot de passe et sa confirmation incohérents",
/*19*/          "Pour un accusé de réception par email, saisissez votre adresse email",
/*20*/          "Le délai d\'accès à l\'historique de votre commande a expiré. Appelez le service du télégramme par téléphone pour obtenir les renseignements voulus",
/*21*/          "La modification de votre abonnement demande confirmation de votre part. Veuillez vous identifier à partir de la page d'accueil",
/*22*/          "Votre abonnement est arrivé à expiration, il est à renouveler. Veuillez vous identifier à partir de la page d'accueil",
/*23*/          "Précisez au moins un critère de saisie",
/*24*/          "Sélectionnez un télégramme précis avant de cliquer sur le bouton de regénération",
/*25*/          "Montant maximum de remise autorisé : {0}",
/*26*/          "Problème de cohérence dans la BDD, pour le télégramme sélectionné",
/*27*/          "Votre abonnement a pris fin. Veuillez contacter nos services si vous souhaitez le réactiver",
/*28*/		 "Paiement du telegramme non effectué. Accès refusé",
/*29*/		 "Il faut absolument cocher une case pour supprimer un enregistrement.",
/*30*/		"le code postal et la ville de l'expéditeur ne correspondent pas.",             //Cette erreur est utilisé dans le cadre du MTC
/*31*/		"le code postal et la ville du destinataire n° {0} ne correspondent pas.",      //Cette erreur est utilisé dans le cadre du MTC
/*32*/          "Veuillez saisir les coordonnées d'au moins un destinataire",                   //Cette erreur est utilisé dans le cadre du MTC
/*33*/          "Il faut saisir le PBX_ID pour pouvoir passer une commande dans autorise",
/*34*/          "\n\n Lors d\'une Création ou Modification, Tous les champs doivent être saisie. \n\n Aucune sauvegarde n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*35*/          "\n\n Il faut absolument sélectionner une ligne (bouton radio) pour supprimer un enregistrement. \n\n Aucune suppression n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*36*/          "\n\n Il faut absolument sélectionner une ligne (bouton radio) pour modifier un enregistrement. \n\n Aucune modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*37*/          "\n\n Il faut absolument cocher une case pour effectuer une detaxe. \n\n Aucune modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*38*/          "\n\n Il faut absolument cocher une case pour reinjecter un Telememo. \n\n Aucune modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*39*/          "\n\n Désolé, cet utilisateur est habilité au Module SAVTG. \n\n Il est donc impossible de supprimer celui-ci. \n\n Aucune suppression n\'a été éffectuée en Base de données. \n\n Cordialement.",
/*40*/          "\n\n Désolé, le LIBELLE saisie est déjà existant. \n\n Il ne peut y avoir deux LIBELLE identiques. \n\n Aucune Création n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*41*/          "\n\n Désolé, la date d'origine n'est pas encore passée. \n\n Vous ne pouvez pas changer l'année pour ce LIBELLE. \n\n Aucune Modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action ultérieurement.",
/*42*/          "\n\n Désolé, vous avez sélectionné la même année. \n\n Cela équivaut à une date d'origine identique pour ce LIBELLE. \n\n Aucune Modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*43*/          "\n\n Désolé, vous ne pouvez pas supprimer ce LIBELLE. \n\n En effet, ce LIBELLE correspond à un jour férié nationnal. \n\n Aucune Modification n\'a été éffectuée en Base de données. \n\n Cordialement.",
/*44*/          "\n\n Désolé, il y a eu un problème technique. \n\n Aucune Modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*45*/          "\n\n Attention, au choix de la TVA pour le Code Département 97 . \n\n En effet, la TVA doit être soit de 8,5 %, soit de 0 % pour ce Code Département. \n\n Aucune Modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*46*/          "\n\n Attention, au choix de la TVA par rapport au Code Département . \n\n En effet, la TVA à appliquer est toujours de 19,6 % sauf pour le Code Département 97. \n\n Aucune Modification n\'a été éffectuée en Base de données. \n\n Merci de reprendre votre action.",
/*47*/          "\n\n Saisissez un type de cadeau.",
/*48*/          "\n\n Saisissez un montant de cadeau.",
/*49*/		"\n\n TELEX et cadeau ou illustration sont incompatibles.",
/*50*/		"\n\n Texte non conforme. \n\n Merci de vérifier la saisie de celui-ci. \n\n Pensez à laisser des espaces entre chaque mot.",
		""
	);

// renvoie true ssi le navigateur est Netscape
function isNetscape()
{
	return document.layers ? true : false;
}
top.isNetscape = isNetscape;

var hidden = top.isNetscape() ? "hide" : "hidden";
var visible = top.isNetscape() ? "show" : "visible";

// recherche d'un element dont l'id est specifie, undefined sinon
function getElementWithID(id)
{
	if (top.isNetscape())
		return document[id];
	else
		return document.all[id];
}

// recherche d'une image specifique, dqnd un layer/div donne
function getImageWithID(id, layer)
{
	if (top.isNetscape())
		return document.layers[layer].document.images[id];
	else
		return document.all[layer].all[id];
}

// renvoie la visibilite (css:visibility) d'un element
function getVisibility(n)
{
	if (top.isNetscape())
		return n.visibility;
	else
		return n.style.visibility;
}
// affecte la visibilite (css:visibility) d'un element
function setVisibility(n,v)
{
	if (top.isNetscape())
		n.visibility = v;
	else
		n.style.visibility = v;
}
// affecte la couleur de fond d'un element
function setBackgroundColor(n,v)
{
	if (top.isNetscape())
		n.backgroundColor = v;
	else
		n.style.backgroundColor = v;
}
// affecte la position d'un element (top, left)
function setPosition(n,t,l)
{
	if (top.isNetscape())
	{
		n.top = t;
		n.left = l;
	}
	else
	{
		n.style.posTop = t;
		n.style.posLeft = l;
	}
}
// renvoie la position d'un element (top)
function getPositionTop(n)
{
	if (top.isNetscape())
		return n.top;
	else
		return n.style.posTop;
}
// renvoie la position d'un element (left)
function getPositionLeft(n)
{
	if (top.isNetscape())
		return n.left;
	else
		return n.style.posLeft;
}

// recharge la page suite redimensionnement fenetre navigateur
function reloadPage()
{
	if (innerWidth != origWidth || innerHeight != origHeight)
		location.reload();
}

// oblige le navigateur a telecharger la page a nouveau apres un redimensionnement
function pagedim()
{
	if (document.layers)
	{
		origWidth = innerWidth;
		origHeight = innerHeight;
	}
	if (document.layers) onresize = reloadPage;
}

// ouvre une nouvelle fenetre (sa position et sa taille sont specifiees)
function openWindow(url, intWidth, intHeight, intLeft, intTop)
{
	window.open(url, "frame"+(new Date().getSeconds()), "toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,menubar=no,titlebar=no,width="+intWidth+",height="+intHeight+",left="+intLeft+",top="+intTop);
}

// verifie la validite d'une adresse email
// a priori fonction non exploitee
function checkMail(email)
{
        var v = email.value;
	for  (var i=0; i < v.length; i++)
		if  ("abcdefghijklmnopqrstuvwxyz0123456789@.-_".indexOf(v.charAt(i).toLowerCase()) == -1)
			return false;
	var separator = v.indexOf('@');
	return separator > 0 && separator < v.length-1;
}


// Verification de la saisie du champ Email, pendant cette saisie
function checkEmailChar(e)
{
	var v = checkValide(e.value, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.@-_", "Caractère invalide", e);
	if (!v)
	    e.focus();

	return v;
}

// Verification finale de la saisie du champ Email
function checkEmail(e, saioblig)
{
        if (!saioblig && e.value.length == 0)
            return true;

	var v = checkValide(e.value, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.@-_", "caractère invalide", e);
	if (v)
        {
            var separator = e.value.indexOf('@');
	    v = separator > 0 && separator < e.value.length-1;
            if (!v)
                erreurId(11);
        }

        if (!v)
	    e.focus();
	return v;
}

// verifie la validite de l'adresse email pour le Telememo
function checkMailTelememo(email)
{
	for  (var i=0; i < email.length; i++)
		if  ("abcdefghijklmnopqrstuvwxyz0123456789@.-_".indexOf(email.charAt(i).toLowerCase()) == -1)
			return false;
	var separator = email.indexOf('@');
	return separator > 0 && separator < email.length-1;
}

// blocage du bouton droit de la souris, pour prevenir la copie d'image)
function blockNetscape(e)
{
	if (e.which == 3)
	{
		alert("Copie des images interdite");
		return false;
	}
}
function blockExplorer()
{
	 if (event.button == 2 && event.srcElement.tagName == "IMG")
		alert("Copie des images interdite");
}
if (top.isNetscape())
{
	captureEvents(Event.MOUSEDOWN);
	onMouseDown = blockNetscape;
}
else
{
	document.onmousedown = blockExplorer;
}

// Vérification qu'un champ n'est pas vide
function checkNotEmpty(e,n)
{
    if (e.value.length == 0)
    {
        erreurId(8,n);
        return false;
    }
    return true;
}

function erreurId(id, a, b, c)
{
	if (id > 0)
	{
		var message = erreurs[id-1];
		var t = message.indexOf("{0}");
		if (t >= 0)
			message = message.substring(0, t)+a+message.substring(t+3);
		var t = message.indexOf("{1}");
		if (t >= 0)
			message = message.substring(0, t)+b+message.substring(t+3);
		var t = message.indexOf("{2}");
		if (t >= 0)
			message = message.substring(0, t)+c+message.substring(t+3);
		alert("Attention : "+message);
	}
}

// utile a la verification des formulaire
function checkTrue()
{
	return true;
}

/*fonction retournant l'objet dont on a passé la chaine correspondant à l'attribut name en parametre.*/
/*Si cet objet n'existe pas, retourne null*/
function getElementWithName(name)
{
	var i;
	for (i=0;i<document.all.length;i++)
	{
		if (document.all[i].name == name)
			return document.all[i];
	}
	return null;
}

/**Cette fonction permet de desactiver un objet à partir du nom ou de l'id
function desactiveObject(var obj)
{
    obj=getElementWithID(obj);
    if (obj ==null)
            obj = getElementWithName(obj);
    if (obj!=null)
    {
        obj.disabled=true;
    }
}

/*Cette fonction remet à zero (met value égale à chaine vide ou decoche selon le type de l'objet) les objets dont on a passé soit l'id, soit le nom en parametre*/
function RAZ()
{
    var obj,i,args=RAZ.arguments;
    for (i=0;i<args.length;i++)
    {
        obj=getElementWithID(args[i]);
        if (obj ==null)
            obj = getElementWithName(args[i]);
        if (obj!=null)
        {
            switch(obj.type)
            {
                case 'text' :	    obj.value="";
                                    break;
                case 'checkbox' :   obj.checked=false;
                                    obj.disabled=false;
                                    break;
                case 'textarea' :   obj.value="";
                                    break;
                default :           obj.disabled=true;
                                    obj.selectedIndex=0;
                                    break;
            }
        }
    }
}

/**permet de le contenu de chaque champ texte vers un autre. Les paramètres fonctionnent par couple.
 *Exemple : CopyTo('a','b','c','d') va copier le contenu du champ a vers le champ b 
 *et celui du champ c vers le champ d.
 *Il n'y a pas de limite au nombre de paramètre
 **/
function copyTo()
{
	var objFrom,objTo,i,args=copyTo.arguments;
	for (i=0;i<args.length-1;i+=2)
	{
		objFrom=getElementWithID(args[i]);
		if (objFrom ==null)
			objFrom  = getElementWithName(args[i]);

		objTo=getElementWithID(args[i+1]);
		if (objTo ==null)
			objTo  = getElementWithName(args[i+1]);

		if (objFrom!=null && objTo!=null && objFrom.value!=null && objTo.value!=null)
			objTo.value = objFrom.value
	}
}


function changeApercuBgColor()
{
	var selectColor = getElementWithID("selectColor");
	var apercuColor = getElementWithID("apercuColor");
	apercuColor.bgColor = selectColor.value;

}

function changeApercuFont()
{
	var selectFont = getElementWithID("selectFont");
	var apercuFont = getElementWithID("apercuFont");
	apercuFont.face = selectFont.value;

}

function changeApercuFontColor()
{
	var selectFontColor = getElementWithID("selectFontColor");
	var apercuFont = getElementWithID("apercuFont");
	apercuFont.color = selectFontColor.value;
}

function parseDate(dst)
{
	var strDate ="";

	if(dst.getDate()<10)
	  strDate += "0"+dst.getDate()+"/";
	else
	  strDate+=dst.getDate()+"/";

	if ((dst.getMonth()+1)<10)
	  strDate += "0"+(dst.getMonth()+1)+"/";
	else
	  strDate+=(dst.getMonth()+1)+"/";

	strDate += dst.getFullYear()+" ";
  
	if(dst.getHours()<10)
	  strDate += "0"+dst.getHours()+":";
	else
	  strDate+=dst.getHours()+":";

	if(dst.getMinutes()<10)
	  strDate += "0"+dst.getMinutes()+":";
	else
	  strDate+=dst.getMinutes()+":";

	if(dst.getSeconds()<10)
	  strDate += "0"+dst.getSeconds();
	else
	  strDate+=dst.getSeconds();

	return strDate;
}
