//<script language=javascript>
/*********************************************************************************
* Fichier:	GlobalLibJavacript.asp
* Description:	Fichier contenant les fonctions d'usage general cote client.
* 
* Auteur:	Edmundo Campos pour Marcotte Multimedia
* Date: 	2000-12-13
*
* Suivi des modifications:
*
* derniere modif: 8 janvier 2001
* auteur: Annie Raymond
*
*
*********************************************************************************
* Index des fonctions disponibles dans ce fichier (par ordre d'apparition):
* 
* Important:	Pour retrouver rapidement la fonction recherchee, faire une recherche
* 				sur le numero de la fonction + "-" ou par le nom de la fonction.
* _______________________________________________________________________________
* 
* 1- gf_ConfirmerQuitter()		- Affiche un message pour confirmer la sortie
* 2- gf_AfficherMsgConfirmation()- Affiche un message de confirmation
* 3- gf_Trim()					- Enlève les espaces en blanc dans une chaîne
* 4- gf_DetecterNavigateur()	- Detecte le navigateur utilise par le client
* 5- gf_ObtenirErrMsg()			- Pour obtenir un message d'erreur
* 6- gf_SelectChamp()			- Selectionne un champ dans un formulaire
* 7- gf_ValiderChamp()			- Appelle la validation unitaire d'un champ
* 8- gf_ValiderCodePostal()		- Valide un champ contenant un code postal
* 9- gf_ObtenirSeparateur()
* 10- gf_ConfirmSupp()
* 11- validation()
* 12- fermer()
* 13- gf_OuvrirFenetre()
* 14- gf_makeLinkTo()
* 15- ouvrirfenetre()
* 16- Edit()
* 17- gf_ValiderEmail()
*********************************************************************************/

/*********************************************************************************
* Fonctions d'usage general
*********************************************************************************/

/*1-******************************************************************************
* Fonction:	gf_ConfirmerQuitter()
* 
* Entree(s):	Aucune
* Sortie(s):	Aucune
* 
* Description:	Affiche un message de confirmation avant de quitter
*********************************************************************************/
function gf_ConfirmerQuitter()
{
	if(gf_AfficherMsgConfirmation('CONFIRMER_QUITTER')){
		window.location.href="administration.asp";
	}
}

/*2-******************************************************************************
* Fonction:	gf_AfficherMsgConfirmation(ps_IdMsg)
* 
* Entree(s):	ps_IdMsg {String} - Indicateur du message à afficher
* Sortie(s):	True/False - Selon ce que l'utilisateur a choisi
* 
* Description:	Affiche un message de confirmation
*********************************************************************************/
function gf_AfficherMsgConfirmation(ps_IdMsg)
{
	if(confirm(gf_ObtenirErrMsg(ps_IdMsg))){return true;}
	else{return false;}
}

/*3-******************************************************************************
* Fonction:	gf_Trim(ps_Chaine)
* 
* Entree(s):	ps_Chaine {String} - Chaine à traiter
* Sortie(s):	{String} - Chaîne avec les espaces enlevés
* 
* Description:	Enlève les espaces en blanc dans une chaîne de caractères
*********************************************************************************/
function gf_Trim(ps_Chaine) {
	var s_RetVal = "";
	var i_Debut = 0;
	var i_Fin = 0;
	
	while ((i_Debut < ps_Chaine.length) && (ps_Chaine.charAt(i_Debut) == ' ')) {
		++i_Debut;
	}
	
	i_Fin = ps_Chaine.length;
	
	while ((i_Fin > 0) && (ps_Chaine.charAt(i_Fin - 1) == ' ')){--i_Fin;}
	
	s_RetVal = ps_Chaine.substring(i_Debut, i_Fin);
	
	return s_RetVal;
}

/*4-******************************************************************************
* Fonction:	gf_DetecterNavigateur()
* 
* Entree(s):	Aucune
* Sortie(s):	True
* 
* Description:	Detecte le navigateur utilise ainsi que la plateforme utilisée par
*				le client
*********************************************************************************/
function gf_DetecterNavigateur()
{
	if(navigator.appVersion.indexOf("Mac") != -1 ){
		document.form1.Mac.value = 1;
		document.form1.TailleChampPetit.value =10;
		document.form1.TailleChampMoyen.value =25;
		document.form1.TailleChampGrand.value =40;
	}
	else{
		document.form1.Mac.value = 0;
		document.form1.TailleChampPetit.value =15;
		document.form1.TailleChampMoyen.value =30;
		document.form1.TailleChampGrand.value =80;
	}
		
	if (navigator.appName == "Netscape"){document.form1.Netscape.value = 1;}
	else{document.form1.Netscape.value = 0;}
		
	return true;
}

/*5-******************************************************************************
* Fonction:	gf_ObtenirErrMsg(ps_Nom)
* 
* Entree(s):	ps_Nom {String} - Identifiant du message d'erreur
* Sortie(s):	{string} - Message d'erreur
* 
* Description:	Gere les messages d'erreur cote client ou admin, soit retourne le message
*				d'erreur correpondant a l'identifiant passe en parametre
*********************************************************************************/
function gf_ObtenirErrMsg(ps_Nom)
{
	switch(ps_Nom.toUpperCase()){
		case 'CONFIRMER_QUITTER':
			return 'Are you sure you want to quit?';
		case 'CONFIRMER_SUPP_QUESTION':
			return 'Are you sure you wish to delete this question ?';
		case 'ENTRER_CHOIX':
			return 'Please enter your choice of answer';
		case 'ENTRER_QUESTION':
			return 'You need to insert a question.';	
		case 'ENTRER_TITRE':
			return 'You must enter a title.';	
		case 'ENTRER_NOM':
			return 'Please enter your name'
		case 'ENTRER_HEAD':
			return 'You must enter a header.'
		case 'ENTRER_EMAIL':
			return 'Enter your email address to submit your comments'
		case 'ENTRER_NAME':
			return 'Please enter your name'
		case 'ENTRER_CAMPNAME':
			return 'Please enter the campaign name'
		case 'ENTRER_TITLE':
			return 'Please enter a title'
		case 'ENTRER_COMMENT':
			return 'Please submit your comment'
		case 'BAD_EMAIL':
			return 'Your email address is incorrect, please check this'
		case 'CHECK_CAT':
			return 'You must check the category before editing the header'
		case 'NL_TITLE':
			return 'You must enter the Newsletter title before!'
		case 'NUM_MAX':
			return 'You must enter a valid number for the max stories/page'
		case 'NUM_NEWSLETTER':
			return 'You must enter a valid number for the newsletter order'
			case 'NUM_RANKING':
			return 'You must enter a valid number for the ranking order'
		case 'ASSOCIER':
			return 'You need to attach a gift form and a regular form to this subscription'
		case 'CHOOSECAT':
			return 'Please choose a news category'
		case 'TITLE_STATIC':
			return 'You must choose a news category or a Html page title'
	default:
			return 'Unknown message.'
			
	}
	
}


/*6-******************************************************************************
* Fonction:	gf_SelectChamp(po_Champ)
* 
* Entree(s):	po_Champ {String} - Variable objet contenant le champ a valider
* Sortie(s):	Aucune
* 
* Description:	Met le focus sur le champ passé en paramètre
*********************************************************************************/
function gf_SelectChamp(po_Champ){
	po_Champ.select();	// Ne marche quavec netscape....
	po_champ.focus();	// Met le focus sur le champ	
}

/*********************************************************************************
* Fonctions concernant les VALIDATIONS UNITAIRES
*********************************************************************************/

/*7-******************************************************************************
* Fonction:	gf_ValiderChamp(po_Champ,pi_IdValid,pb_Obligatoire)
* 
* Entree(s):	po_Champ {String} - Variable objet contenant le champ a valider
*				pi_IdValid {String} - Identifiant du type de validation
*				pb_Obligatoire {String} - Flag pour savoir si champ obligatoire
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	Effectue l'appel a la validation unitaire du champ passe en parametre
*********************************************************************************/
function gf_ValiderChamp(po_Champ,pi_IdValid,pb_Obligatoire)
{
	switch(pi_IdValid){
		case 0: // Code Postal
			if(!gf_ValiderCodePostal(po_Champ)){
				alert(gf_ObtenirErrMsg('code_postal_invalide'));
				gf_SelectChamp(po_Champ);
			}
			break;
		default:
			break;
		
	}
}

/*8-******************************************************************************
* Fonction:	gf_ValiderCodePostal(po_Champ)
* 
* Entree(s):	po_Champ {objet} - Variable objet contenant le champ a valider
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	Valide un code postal
*********************************************************************************/
function gf_ValiderCodePostal(po_Champ){

	var ls_CodePostal = po_Champ.value;
	var i;
	
	if(ls_CodePostal==''){return true;}
	
	for(i=0;i<ls_CodePostal.length;i++){
		if(!isNan(ls_CodePostal.charAt(i))){return false;}
		i++;
	}
	
	for(i=1;i<ls_CodePostal.length;i++){
		if(isNan(ls_CodePostal.charAt(i))){return false;}
		i++;
	}
	
	return true;
}

/*9-******************************************************************************
* Fonction:	gf_ObtenirSeparateur(pi_IdCat,pi_IdSep)
* 
* Entree(s):	pi_IdCat {Integer} - Identifiant de la catégorie de séparateur
*				pi_IdSep {Integer} - Identifiant du séparateur
* Sortie(s):	{String} - Séparateur demandé
* 
* Description:	Gère les différents séparateurs, soit retourne un séparateur
*				correspodant aux différents identifiants passés en paramètre
*********************************************************************************/
function gf_ObtenirSeparateur(pi_IdCat,pi_IdSep)
{
	switch(pi_IdCat){
		case 0: // Numérique
			switch(pi_IdSep){
				case 0: // Virgule
					return ',';
				case 1: // Point
					return '.';
				default:
					return '';
			}
			break;
		case 1: // Date
			switch(pi_IdSep){
				case 0:
					return '-';
				case 1: 
					return '/';
				default:
					return '';
			}
			break;
		case 2: // Pour séparer des enregistrements dans une chaîne de caractères
			switch(pi_IdSep){
				case 0:	// Virgule
					return ',';
				case 1: // Astérisque
					return '*';
				default:
					return '';
			}
			break;
		default:
			break;
	}

}
/*10-******************************************************************************
* Fonction:	gf_ConfirmSupp(ps_ASupp)
* 
* Entree(s):	ps_ASupp {string} - nom de l'objet a supprimer
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	confirmation de suppression 
*********************************************************************************/
function gf_ConfirmSupp(ps_ASupp) {
	if (confirm('Are you sure you want to delete ' + ps_ASupp + ' ?') == 0) 
 		return false;
	else 
		return true;
}

/*11-******************************************************************************
* Fonction:	validation(NomObjet)
* 
* Entree(s):	NomObjet {string} - Variable objet contenant le champ a valider
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	confirmation de suppression 
*********************************************************************************/
function validation(NomObjet) {
	if (confirm('Are you sure you want to delete ' + NomObjet + ' ?') == 0) 
 		return false;
	else 
		return true;
}
/*12-******************************************************************************
* Fonction:	fermer()
* 
* Description:	Ferme la fenetre active 
*********************************************************************************/
function fermer(){

	window.close() 
}
/*13-******************************************************************************
* Fonction:	gf_OuvrirFenetre(ps_url,ps_nomWin,ps_paraWin)
* 
* Entree(s):	ps_url {string} - url de la page a ouvrir
*				ps_nomWin (string)- nom de la fenetre
*				ps_paraWin (string)- parametre de la fenetre
*
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	Ouverture de fenetre
*********************************************************************************/
function gf_OuvrirFenetre(ps_url,ps_nomWin,ps_paraWin){
	 window.open(ps_url,ps_nomWin,ps_paraWin);
}

/*14-******************************************************************************
* Fonction:	gf_makeLinkTo(s)
* 
* Entree(s):	s 	- nom du combo box
*
* 
* Description:	fait l action immediatement, supprime la necessite d un bouton "go"
*********************************************************************************/
function gf_makeLinkTo(s)
{
	if(s.options[s.selectedIndex].value == "")
	{
		alert("Sélectionnez une entreprise S.V.P.");
	}
	else
	{
		window.top.location.href = s.options[s.selectedIndex].value;
	}
	
}
/*15-******************************************************************************
* Fonction:	ouvrirFenetre
*
*Auteur: Annie Raymond, 15 janvier 2001
* Entree(s):	check1	- verifier si cocher ou non
*				id - id de l'entete de categorie
*				id_news	- id du newsletter a modifier l'entete de categorie
* 
* Description:	Permet la modification de l'entete ou bas de page dans newsletter
*********************************************************************************/

function ouvrirFenetre(check1,id,id_news)
{
	
	
	if (check1.checked == false)
	{
		alert(gf_ObtenirErrMsg('CHECK_CAT'));
	}
	else
	{
	window.open("modif_entete.asp?id="+id +"&id_news=" + id_news + "", "winX", "top=100, left=50,width=600,height=600");
	}
	

}
/*16-******************************************************************************
* Fonction:	Edit
* 
* Entree(s):	head_Bottom	- Pied ou entete a modifier
*				id_news	- id du newsletter a modifier l'entete ou le bas de page
* 
* Description:	Permet la modification de l'entete ou bas de page dans newsletter
*********************************************************************************/

function Edit(head_Bottom,id_news)
{
	
	
	if (head_Bottom == 'Entete')
	{
		window.open("modif_enteteNL.asp?flag=1&id_news=" + id_news + "", "winX", "top=100, left=50,width=600,height=600,scrollbars=yes");
	}
	else
	{
	window.open("modif_enteteNL.asp?flag=2&id_news=" + id_news + "", "winX", "top=100, left=50,width=600,height=600,scrollbars=yes");
	}
	

}
/*17-******************************************************************************
* Fonction:	gf_ValiderEmail(po_Champ)
* 
* Entree(s):	po_Champ {objet} - Variable objet contenant le champ a valider
* Sortie(s):	True/False - flag Succes/Echec
* 
* Description:	Valide un adresse email (obligatoire)
*********************************************************************************/
function gf_ValiderEmail(po_Champ){
	var lb_bon = 0 
	var ls_email = po_Champ.value;
	
	if (ls_email != "votre@courriel.com")
	{
		if(ls_email.search('@') > 0 && (ls_email.search('@') + 4) < ls_email.length)
		{
			if(ls_email.indexOf(".") > 0 && (ls_email.indexOf(".") + 1) < ls_email.length  )
			{
				if(ls_email.length > 7 )
				{
					lb_bon =1 ;
				}
				else{lb_bon = 0; }
			}
			else{lb_bon = 0 ;}
		}
		else{lb_bon = 0; }
	}
	else{lb_bon = 0; }
	
	
	if (lb_bon)
	{
		po_Champ.value = po_Champ.value.toLowerCase();
		return true;
	}
	else
	{
		alert(gf_ObtenirErrMsg('BAD_EMAIL'));
		po_Champ.select();
		return false;
	}
}

/*15-******************************************************************************
* Fonction:	NouvelleFenetre
*
*Auteur: Annie Raymond, 15 janvier 2001
* Entree(s):	check1	- verifier si cocher ou non
*				id - id de l'entete de categorie
*				id_news	- id du newsletter a modifier l'entete de categorie
* 
* Description:	Permet la modification de l'entete ou bas de page dans newsletter
*********************************************************************************/

function NouvelleFenetre(url)
{

	window.open(url, "winX", "top=100, left=50,width=600,height=600");
}