function popupper(url,x,y,name,scroll_bar,resize,stat,locText,tool_bar) {
    var win = null;
	var centerwidth=(screen.width/2)-(x/2);
	var centerheight=(screen.height/2)-(y/2);
	var scrollbarstext = 'scrollbars = no,';
	var resizabletext = 'resizable = no,';
	var statustext = 'status = no,';
	var locationtext = 'location = no,';
	var toolbartext = 'toolbar = no,';
	var features = '';
	if (scroll_bar == "O"){
		scrollbarstext = 'scrollbars = yes,'
	}
	if (resize == "O"){
		resizabletext = 'resizable = yes,'
	}
	if (stat == "O"){
		statustext = 'status = yes,'
	}
	if (locText == "O"){
		locationtext = 'location = yes,'
	}
	if (tool_bar == 1){
		toolbartext = 'toolbar = yes,'
	}
	features = scrollbarstext + resizabletext + statustext;
	features = features + locationtext + toolbartext;
	features = features + 'width = '+x+',height = '+y;
	features = features + ',top = ' + centerheight;
	features = features + ',left = ' + centerwidth;
	win = window.open(url, name, features);
}

function menuderoulant(selection){
	window.location=selection.options[selection.selectedIndex].value;
}


function verif_form_contact(form)
{
var message="";

if(form.elements['objet'].value ==""){
 message=message+"- Vous devez saisir un objet. \n"; 
form.objet.focus();
form.objet.className = "erreurChamp";
alert(message);
return false;
}
else{
	form.objet.className ="inputProfil";	
}

if(form.elements['email'].value ==""){
message=message+"- Vous devez saisir votre email \n"; 
form.email.focus();
form.email.className = "erreurChamp";
alert(message);
return false;
}

else if (form.email.value.indexOf('@') == -1 || form.email.value.indexOf('.') == -1  || form.email.length < 7) {
	message=message+"Votre email n'est pas valide \n";
	form.email.focus();
	form.email.className = "erreurChamp";
	alert(message);
	return false;
}
else{
	form.email.className ="inputProfil";	
}

if(form.elements['message'].value ==""){
 message=message+"- Vous devez saisir un message. \n"; 
form.message.focus();
form.message.className = "erreurChamp";
alert(message);
return false;
}
else{
	form.message.className ="inputProfil";	
}

form.submit();
}

//ajouts 20-08-2007
function verif_form_inscription2(val)
{
	message="- Vous devez saisir votre entreprise\n"; 
	if (val == "") 
	{
	alert(message);
	return false;
	}
	return true;
}


function verif_form_inscription1(form)
{
var message="";

if(form.elements['nom'].value ==""){
 message=message+"- Vous devez saisir votre nom \n"; 
form.nom.focus();
form.nom.className = "erreurChamp";
alert(message);
return false;
}
else{
	form.nom.className ="inputProfil";	
}

if(form.elements['prenom'].value ==""){
 message=message+"- Vous devez saisir votre prénom \n"; 
form.prenom.focus();
form.prenom.className = "erreurChamp";
alert(message);
return false;
}
else{
	form.prenom.className ="inputProfil";	
}

if(form.elements['email'].value ==""){
message=message+"- Vous devez saisir votre email \n"; 
form.email.focus();
form.email.className = "erreurChamp";
alert(message);
return false;
}

else if (form.email.value.indexOf('@') == -1 || form.email.value.indexOf('.') == -1  || form.email.length < 7) {
	message=message+"Votre email n'est pas valide \n";
	form.email.focus();
	form.email.className = "erreurChamp";
	alert(message);
	return false;
}
else{
	form.email.className ="inputProfil";	
}

if(form.elements['tel'].value ==""){
 message=message+"- Vous devez saisir votre numero de telephone \n"; 
form.tel.focus();
form.tel.className = "erreurChamp";
alert(message);
return false;
}
else{
	form.tel.className ="inputProfil";	
}


return true;
}


//fin ajouts 20-08-2007

//ajouts 09-08-2007
//-----------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------ PARTIE COMMUNE -------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------------------


//--------------------------------
//Partie Commune - Methodes Publiques Gestion des erreurs
//--------------------------------

/*
* afficherErreurChampsObligatoires: Affiche le message d'erreur pour les champs obligatoires non remplis
*/
function afficherErreurChampsObligatoires(){
	try{
		this.afficherMessageAlerte(_msgChampsObligatoires);
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherErreurChampsObligatoires");
	}	
}

/*
* afficherMessageAlerte : Gestion de l'affichage des messages d'alerte recuperés dans la fabrique de collections
*
* @param : pCode : code du message à afficher
* @param : pNbCaracteres : Entier à concatener dans le message
* @param : pChaine : Chaine à concaténer dans le message
* @return : reponse du msg d'alerte
*/
function afficherMessageAlerte(pCode,pNbCaracteres,pChaine){
	try{
		alert(window.top.portailClient._fabriqueCollections.getMessage(pCode,pNbCaracteres,pChaine));
	}
	catch(exception){
		alert(exception.description + " dans afficherMessageAlerte");
	}
}

/*
* afficherMessageAlerteIntroduction : Gestion de l'affichage des messages d'alerte recuperés dans la fabrique de collections
*
* @param : pCode : code du message à afficher
* @param : pPosCaracteres : Entier à concatener dans le message
* @param : pChaine : Chaine à concaténer dans le message
* @return : reponse du msg d'alerte
*/
function afficherMessageAlerteIntroduction(pCode,pPosCaracteres,pChaine){
	try{
		alert(window.top.portailClient._fabriqueCollections.getMessageIntroduction(pCode,pPosCaracteres,pChaine));
	}
	catch(exception){
		alert(exception.description + " dans afficherMessageAlerteIntroduction");
	}
}

/*
* afficherConfirmation : Gestion de l'affichage des confirmation recuperés dans la fabrique de collections
*
* @param : pCode : code du message à afficher
* @param : pNbCaracteres : Entier à concatener dans le message
* @param : pChaine : Chaine à concaténer dans le message
* @return (boolean) réponse du msg de confirmation
*/
function afficherConfirmation(pCode,pNbCaracteres,pChaine){
	try{
		return confirm(window.top.portailClient._fabriqueCollections.getMessage(pCode,pNbCaracteres,pChaine));
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherConfirmation");
	}
}

/*
* afficherChampErreur : applique le style Erreur à l'objet
*
* @param : pObj : obj à modifier
*/
function afficherChampErreur(pObj,pTitle){
	try{	
		pObj.focus();
		pObj.className = "inputErreur"+getTypeChamp(pObj.className);
		pObj.disabled = false;
		
		//gestion de l'indicateur erreur
		var idHelp = "help"+pObj.id;
		if (pTitle && !getObjet(idHelp)){		
			var obj = document.createElement("td")
			obj.className = "indicateurErreur";
			obj.title = pTitle;
			obj.id = idHelp;
			
			//on recherche la zone TD
			var zoneAjout = pObj
			while (zoneAjout.parentElement){
				zoneAjout = zoneAjout.parentElement;
				if (zoneAjout.innerHTML.substring(0,3).toLowerCase() == "<td"){
					zoneAjout.appendChild(obj);
					return;
				}
			}			
		}
		
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherChampErreur");
	}//catch				
}

/*
* afficherChampNormal : applique le style Normal à l'objet
*
* @param : pObj : obj à modifier
*/
function afficherChampNormal(pObj){
	try{
		pObj.className = "input"+getTypeChamp(pObj.className);		
		pObj.disabled = false;
		
		var idHelp = "help"+pObj.id;
		var objHelp = getObjet(idHelp)
		//gestion de l'indicateur erreur
		if (objHelp){
			//on recherche la zone TD
			var zoneAjout = pObj
			while (zoneAjout.parentElement){
				zoneAjout = zoneAjout.parentElement;
				if (zoneAjout.innerHTML.substring(0,3).toLowerCase() == "<td"){
					zoneAjout.removeChild(objHelp);
					return;
				}
			}			
		}				
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherChampNormal");
	}//catch	
}

/*
* setFocusChamp : placer le focus à l'objet
*
* @param : pObj : obj à focuser
*/
function setFocusChamp(pObj){
	try{
		pObj.focus();	
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans setFocusChamp");
	}	
}

/*
* afficherChampNormalFocus : placer le focus à l'objet
*
* @param : pObj : obj à modifier et à focuser
*/
function afficherChampNormalFocus(pObj){
	try{
		afficherChampNormal(pObj);
		pObj.focus();	
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherChampNormalFocus");
	}	
}

/*
* afficherChampObligatoireErreur : applique le style Erreur-champ obligatoire à l'objet
*
* @param : pObj : obj à modifier
*/
function afficherChampObligatoireErreur(pObj){
	try{	
		pObj.focus();
		pObj.className = "inputObligatoire"+getTypeChamp(pObj.className);
		pObj.disabled = false;
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherChampObligatoireErreur");
	}//catch				
}

/*
* afficherChampInactif : applique le style inactif à l'objet
*
* @param : pObj : obj à modifier
*/
function afficherChampInactif(pObj){
	try{	
		pObj.className = "inputDisabled"+getTypeChamp(pObj.className);
		pObj.disabled = true;
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherChampInactif");
	}//catch				
}

/*
* getTypeChamp : recupere le type d'un champ
*
* @param : pClass : obj champ
* @return : type de l'obj
*/
function getTypeChamp(pClass){
	try{	
		var typeTel = "Telephone";
		var typeImmat = "Immatriculation";
		var typeFax = "Fax";
		var typeNoContrat = "NoContrat";
		var typeNoSinistre = "NoSinistre";
		var typeNumerique = "Numerique";
		//Recherche du type
		if (pClass.indexOf(typeTel) != -1){
			return typeTel;	
		}
		if (pClass.indexOf(typeImmat) != -1){
			return typeImmat;	
		}
		if (pClass.indexOf(typeFax) != -1){
			return typeFax;	
		}
		if (pClass.indexOf(typeNoContrat) != -1){
			return typeNoContrat;	
		}
		if (pClass.indexOf(typeNoSinistre) != -1){
			return typeNoSinistre;	
		}
		if (pClass.indexOf(typeNumerique) != -1){
			return typeNumerique;	
		}
		return "";
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans getTypeChamp");
	}//catch	
}

//--------------------------------
//Partie Commune - Methodes Publiques Calendrier
//--------------------------------

//Instanciation de l'obj calendrier
try{
	var calendrier = new Calendrier();
}catch(exc){

}
/*
* fermerCalendrier : ferme le calendrier s'il est ouvert
* @param : pObj : pointeur vers la ligne a activer
* @param : pClass : class de style appliquer
*/
function fermerCalendrier(){
	try{
		calendrier.fermerCalendrier(document);	
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans fermerCalendrier");
	}//catch		
}

//--------------------------------
//Partie Commune - Methodes Publiques Sous Rubrique
//--------------------------------
var rubriqueOuverteId = null;
/*
* deplierRubrique : permet de deplier un obj IHM sous rubrique
* @param : pId : id de l'objet
*/
function deplierRubrique(pId){
	try{
		if (pId != rubriqueOuverteId){
			getObjet(pId).style.height = "";
			getObjet(pId+"Replier").style.display = "block";
			getObjet(pId+"Deplier").style.display = "none";
			getObjet(pId+"content").style.display = "block";
			replierRubrique(rubriqueOuverteId);
			rubriqueOuverteId = pId;
		}
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans deplierRubrique");
	}
}

/*
* replierRubrique : permet de replier un obj IHM sous rubrique
* @param : pId : id de l'objet
*/
function replierRubrique(pId){
	try{
		if (pId){
			getObjet(pId).style.height = 20;
			getObjet(pId+"Replier").style.display = "none";
			getObjet(pId+"content").style.display = "none";
			getObjet(pId+"Deplier").style.display = "block";
			rubriqueOuverteId = null;
		}

	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans replierRubrique");
	}
}

/*
* setRubriqueOuverte : permet de mettre à jour l'obj IHM sous rubrique déplié
* @param : pId : id de l'objet
*/
function setRubriqueOuverte(pId){
	try{	rubriqueOuverteId  = pId;		
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans setRubriqueOuverte");
	}
}

/*
* getRubriqueOuverte : permet de connaitre l'obj IHM sous rubrique déplié
*/
function getRubriqueOuverte(){
	try{	return rubriqueOuverteId;		
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans getRubriqueOuverte");
	}
}

/*
* estDeplieeRubrique : permet de savoir si un obj IHM sous rubrique est déplié
* @param : pId : id de l'objet
*/
function estDeplieeRubrique(pId){
	try{	var estDeplie = (getObjet(pId+"content").style.display == "block");
			if (estDeplie && (pId != rubriqueOuverteId))
				rubriqueOuverteId = pId;
			return estDeplie;		
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans estDeplieeRubrique");
	}
}

//----------------------------------
//Partie Commune - Methodes Publiques Objet graphique
//----------------------------------

/*
* getObjet: retourne l'objet correspondant à l'id passé en paramètre
* @param : id de l'élément
* @return : objet HTML
*/
function getObjet(pId){
	try{		
		return document.getElementById(pId);
	} catch(exception){
		afficherMessageAlerte(exception.description + " dans getObjet");
	}	
}

/*
* getValeurObjet: retourne la valeur de l'objet correspondant à l'id passé en paramètre
* @param : id de l'élément
* @return : String, valeur de l'objet
*/
function getValeurObjet(pId){
	try{		
		return getObjet(pId).value;
	} catch(exception){
		afficherMessageAlerte(exception.description + " dans getValeurObjet");
	}	
}

/*
* afficherObjet: Affiche l'objet correspondant à l'id passé en paramètre
* @param : id de l'élément
*/
function afficherObjet(pId){
	try{		
		getObjet(pId).style.display = "block";
	} catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherObjet");
	}	
}

/*
* masquerObjet: Masque l'objet correspondant à l'id passé en paramètre
* @param : id de l'élément
*/
function masquerObjet(pId){
	try{		
		getObjet(pId).style.display = "none";
	} catch(exception){
		afficherMessageAlerte(exception.description + " dans masquerObjet");
	}	
}

/*
* alternerAffichageElement: Permet de passer un composant en caché lorsqu'il est affiché et permet de l'afficher lorsqu'il est masqué
* @param : id de l'élément
*/	
function alternerAffichageElement(pId) {
	try{		
		var element = getObjet(pId);
		if (element.currentStyle.display == "none") {
			afficherObjet(pId);
		} else {
			masquerObjet(pId);
		}
	} catch(exception){
		afficherMessageAlerte(exception.description + " dans alternerAffichageElement");
	}
}

/**
* getChampFormulaire : Retourne lle pointeur vers l'objet HTML correspondant au champ de formulaire
* @param : pId : id du composant graphique
*/
function getChampFormulaire(pId){
	try{	
		var obj = getObjet("cpt"+pId);
		if (!obj){
			obj = eval("window.cpt"+pId);	
		}
		return obj;
	} catch(exception){
		alert(exception.description + " dans getChampFormulaire");
	}	
}

/**
* getValeurChampFormulaire : Retourne la valeur du champ de formulaire dont l'id est passé en paramètre
* @param : pId : id du composant graphique
*/
function getValeurChampFormulaire(pId){
	try{	
		return getChampFormulaire(pId).value;
	} catch(exception){
		alert(exception.description + " dans getValeurChampFormulaire");
	}	
}

//-----------------------------------------
//Partie Commune - Methodes Publiques Instructions générales
//-----------------------------------------

/*
* imprimerEcran : permet d'imprimer l'écran en cours
*/
function imprimerEcran(){
	try{	
		window.print();
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans imprimerEcran");
	}//catch		
}

/*
* afficherEcran : affiche un nouvel écran, utilisé pour la navigation
*
* @param : pUrl : ecran à afficher avec extension HTML
*/
function afficherEcran(pUrl){
	try{	
		document.location = pUrl;
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans afficherEcran");
	}//catch		
}

//----------------------
//Partie Commune - Methodes publiques GED
//----------------------

/*
* afficherDocumentGED : affiche le document ged
*/
function afficherDocumentGED(pUrl){
	var objSuperposition = _getObjetSuperposition();
	if (objSuperposition){
		objSuperposition.afficherApplicationEcranReduit();
	}else{
		window.setTimeout("afficherDocumentGED()",500);
	}
	
	if (pUrl){
		parent.parent.document.DocumentGED.location = pUrl;
	}
}

/*
* masquerDocumentGED : masque le document ged
*/
function masquerDocumentGED(){
	var objSuperposition = _getObjetSuperposition();
	if (objSuperposition){
		objSuperposition.afficherApplicationPleinEcran();
	}
}

/*
* afficherComparaisonDocument : ouvre la comparaison de document ged
*/
function afficherComparaisonDocument(){
	var objSuperposition = _getObjetSuperposition();
	if (objSuperposition){
		objSuperposition.afficherComparaisonDocument();
	}	
}

/*
* chargerDocumentGED (serveur, docId, library, typeGED, nbPages, annotation)
*
* @pServeur : Serveur 
* @pDocId : id du document
* @pLibrary : librairie 
* @pTypeGED : type de GED
* @pNbPages : nombre de pages 
* @pAnnotation : indicateur pour piloter les annotations
*/
function chargerDocumentGED(pDocId, pLibrary, pTypeGED, pNbPages, pAnnotation){	
	var date = new Date();
	var annotation = "";
	if (pAnnotation){
		annotation = "VIEWER_AVEC_ANNOTATIONS";
	}
	
	var urlSplitee= document.location.href.split("/");
	var pServeur = urlSplitee[0] + "//" + urlSplitee[2] + "/" ;
	
	parent.parent.document.DocumentGED.location = pServeur + "ViewerGedServlet?DocId=" + pDocId + "&Library=" + pLibrary + "&Viewer=" + annotation + "&TypeGED=" + pTypeGED+ "&NbPages=" + pNbPages + "&Nb=" + date.getTime();	
}

//-------------------------------
//Partie Commune - Methodes privées Gestion des messages
//-------------------------------

//Messages avec code
var _msgChampsObligatoires = "S0S5XH";
var _msgLigneEnCoursDAjout = "S0SBYH";
var _msgLigneEnCoursDeModif = "S0SBZH";

//-------------------------------
//Partie Commune - Methodes privées GED
//-------------------------------

var objSuperposition = null;
/*
* _getObjetSuperposition : récupère le pointeur vers l'objet superposition de l'application courante
*
* @return : null ou pointeur vers l'objet superposition
*/
function _getObjetSuperposition(){
	var win = window;
	while (win.parent){
		if (win.parent.superposition){
			return 	win.parent.superposition
		}else{
			if (win != win.parent){
				win = win.parent;
			}else{
				return null;
			}
		}
	}	
}

/*
* fermerComparaisonDocument : ferme la comparaison de document ged
*/
function fermerComparaisonDocument(){
	var objSuperposition = _getObjetSuperposition();
	if (objSuperposition){
		objSuperposition.fermerComparaisonDocument();
	}	
}

//-------------------------------
//Partie Commune - Methodes privées Objets Spécifiques
//-------------------------------

/*
* selectionnerListeCheckBox / sltLstChbx : Sélectionner/déselectionne tous les éléments d'une liste de checkbox
*
* @param : pName : nom du groupe de checkbox
* @param : pEtat : Etat souhaité checked ou ""
*/
function sltLstChbx(pName,pEtat){
	try{
		var lstObj = document.getElementsByTagName("input")
		for (var i = 0;i<lstObj.length;i++){
			if (lstObj [i].name == pName){
				lstObj[i].checked = pEtat;	
			}
		}
		setCptSltLstChbx(pName.replace("cptTableSelect",""),pName);
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans sltLstChbx");
	}	
}

/*
* setCompteurSelectionListeCheckBox / setCptSltLstChbx : Compte le nombre de cases cochées
*
* @param : pIdTab : Id du tableau concerné
* @param : pName : nom du groupe de checkbox
*/
function setCptSltLstChbx(pIdTab,pName){
	try{
	
		var lstObj = document.getElementsByTagName("input")
		var compteur = 0;
		for (var i = 0;i<lstObj.length;i++){
			if (lstObj [i].name == pName && lstObj[i].checked){
				compteur++;	
			}
		}
		if (getObjet("taSelectCompteur"+pIdTab) != null) {
					getObjet("taSelectCompteur"+pIdTab).innerHTML = compteur;
		}
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans setCptSltLstChbx");
	}	
}

/*
* viderListeRadio : Déselectionne tous les éléments d'une liste de radio
*
* @param : pName : nom du groupe de radio
*/
function viderListeRadio(pName){
	try{
		var lstObj = document.getElementsByTagName("input")
		for (var i = 0;i<lstObj.length;i++){
			if (lstObj [i].name == pName){
				lstObj[i].checked = false;	
			}
		}
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans viderListeRadio");
	}	
}

//-------------------------------
//Partie Commune - Methodes privées Gestion des tableaux
//-------------------------------

var ligneActive = null;

/*
* setLigneActiveTableau / setLnActTb : selectionne une ligne d'un tableau
*
* @param : pNom : Id du tableau
* @param : pClass : class css de la ligne active
*/
function setLnActTb(pNom,pClass) {
	try {
		if (ligneActive && getObjet(ligneActive.id)!=null) {
			getObjet(ligneActive.id).onmouseout = ligneActive.onmouseout;
			getObjet(ligneActive.id).onmouseover = ligneActive.onmouseover;
			getObjet(ligneActive.id).className = ligneActive.className;
		}
		var pObj = getObjet(pNom);
		if (pObj!=null) {
			ligneActive = new Object();	
			ligneActive.id = pObj.id;
			ligneActive.onmouseout = pObj.onmouseout;
			ligneActive.onmouseover = pObj.onmouseover;
			ligneActive.className = pClass;
				
			pObj.onmouseout = null;
			pObj.onmouseover = null;
			pObj.className = "TbLnSlt";
		}
	}//try
	catch(exception){
		afficherMessageAlerte(exception.description + " dans setLnActTb");
	}//catch
}

//-------------------------------
//Partie Commune - Methodes privées outils
//-------------------------------

/*
* trim : supprime les blancs du début et de la fin d'une chaine
*
* @param : pChaine : Chaine à trimer
*/
function trim(pChaine) {
	try{
		if (pChaine != null && pChaine.length > 0) {
			var charDebut = pChaine.substring(0,1);
			while (charDebut == ' ') {
				pChaine = pChaine.substring(1,pChaine.length);
				charDebut = pChaine.substring(0,1);
			}
			var charFin = pChaine.substring(pChaine.length-1,pChaine.length);
			while (charFin == ' ') {
				pChaine = pChaine.substring(0,pChaine.length-1);
				charFin = pChaine.substring(pChaine.length-1,pChaine.length);
			}
		}
		return pChaine;
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans trim");
	}
}

/*
* imprimerFluxHTML : imprime un flux html
*
* @param : pFluxHTML : Chaine à imprimer
*/
function imprimerFluxHTML(pFluxHTML){
try{
	var str = "top=200,left=400,height=500,width=500";
	var popup = window.open('print.html','ECAPrint',str);
	popup.document.write(pFluxHTML);
	popup.document.close();
	popup.print();
	popup.close();
	}
	catch(exception){
		afficherMessageAlerte(exception.description + " dans imprimerFluxHTML");
	}


}

function estVide(id,lib)
{

	// id : id de l'objet à contrôler
	// lib : libellé long du champ
	
	objet = getObjet('cpt'+id);

	if((objet.value == '') || (objet.value == undefined))
	{		
		alert("Veuillez renseigner le champ : " + lib + ".\nMerci.");			
		afficherChampErreur(objet);
		return true;
	}
	else
	{
		afficherChampNormal(objet);
		return false;
	}	
}
//fin ajouts




















function selectLangue(LANG)
{
	//alert('valeur : '+csSite);
	var url = "admin.php?action=changeLangue&LANG="+LANG;
	goTo(url);
}


/********************************************/






// ------------------------------------------- Fonctions générales -----------------------------------------------



/**
*	Redirection vers la page url
*/

function goTo(url)
{
	location.href = url;
}


/**
 *	Fonction qui déconnecte l'abonnée  (utilise ajax)
 */

function logout()
{			
	getByAJAX("get","../accueil/logout.php?type=ajax", false, "EVAL");  
}

/**
*	Ouvre une popup
*/

function ouvrirPopup(lien,width,height,left,top)
{	
	window.open(""+lien+"","","height="+height+",width="+width+",toolbar=0,menubar=0,scrollbars=0,resizable=1,status=0,location=0,left="+left+",top="+top);
}

function ouvrirPopupWithScroll(lien,width,height,left,top)
{	
	window.open(""+lien+"","","height="+height+",width="+width+",toolbar=0,menubar=0,scrollbars=1,resizable=1,status=0,location=0,left="+left+",top="+top);
}

function ouvrirPopupWithDate(lien,width,height,left,top,date)
{	
	window.open(""+lien+"?date="+date+"","","height="+height+",width="+width+",toolbar=0,menubar=0,scrollbars=0,resizable=1,status=0,location=0,left="+left+",top="+top);
}

// Affiche la div message pendant 2 sec
function afficherMessageTemp(msg)
{	
	try
	{
		setTimeout("masquerDiv('message')",2000);	
		document.all.message.innerHTML = msg;
		document.getElementById("message").style.visibility = "visible";		
	}
	catch(exception)
	{
		alert("Erreur dans 'afficherMessageTemp':" + exception.description);
	}	
}

// Affiche la div passé en paramètre pendant 2 sec
function afficherDivTemp(id)
{	
	try
	{
		setTimeout("masquerDiv('"+id+"')",2000);	
		document.getElementById(id).style.visibility = "visible";		
	}
	catch(exception)
	{
		alert("Erreur dans 'afficherDivTemp':" + exception.description);
	}	
}



/**
*	Selectionne un item dans une liste selon la valeur
*/

function selItemListe(idListe,valeurItem)
{	
	tabOptions = getObjet('cpt'+idListe).options;
	nbOption = tabOptions.length;
		
	for(i=0;i<nbOption;i++)
	{	
		if(tabOptions[i].value == valeurItem)
		{
			tabOptions[i].selected = true;
		}
	}					
}


// ------------------------------------------- Fonctions pour les dates -------------------------------------------

/**
*	Retourne le nombre de jours entre deux dates format "jj/mm/aaaa"
*/

function getNbJours(dateDebut,dateFin)
{	

	jourDebut = dateDebut.substr(0,2);
	moisDebut = dateDebut.substr(3,2)-1;
	anneeDebut = dateDebut.substr(6,4); 

	jourFin = dateFin.substr(0,2);
	moisFin = dateFin.substr(3,2)-1;
	anneeFin =dateFin.substr(6,4); 
		
	nbMilliDebut = Date.UTC(anneeDebut,moisDebut,jourDebut);
	nbMilliFin = Date.UTC(anneeFin,moisFin,jourFin);	
	
	nbJours = (nbMilliFin - nbMilliDebut)/ (1000*3600*24);	
	
	return (nbJours+1);	
}

/**
*	fonction permettent de vérifier que la date saisie est potérieure à la date courante
*/	

function estDateDepasse(dateSaisie)
{
	dateCourante = new Date();
	var jourCourant = dateCourante.getDate();
	var moisCourant = dateCourante.getMonth()+1;
	var anneeCourante = dateCourante.getYear();
	valCourant = Date.UTC(anneeCourante,moisCourant,jourCourant);

	var jourSaisi = dateSaisie.substr(0,2);
	var moisSaisi = dateSaisie.substr(3,2);
	var anneeSaisie = dateSaisie.substr(6,4);
	valSaisi = Date.UTC(anneeSaisie,moisSaisi,jourSaisi);	
	
	if(valSaisi < valCourant)
	{
		return true;
	}
	else
	{
		return false;
	}
}

// ----------------------------------------------- Fonction pour les arbres --------------------------------------

function afficheFils(id) 
{			
	var d = document.getElementById(id);
		
	if ((d)&&((d.style.display == 'none')||(d.style.display == ''))) 
	{		
		d.style.display='block';		
	}
	else
	{
		d.style.display='none';
	}			
}

// ----------------------------------------------- Fonctions pour les tableaux ----------------------------------------------------------

/**
*	Affiche le msg et change la classe de l'objet
*/

function afficheOnMouseOver(msg)
{
	try	
	{			
		afficherPopup(msg,50,20);		
	}
	catch(exception)
	{
		alert("Erreur dans 'afficheOnMouseOver':" + exception.description);
	}	
	

}

/**
*	Masque le msg et change la classe de l'objet
*/

function masqueOnMouseOut()
{
	try
	{
		masquerDiv('popup');
	}
	catch(exception)
	{
		alert("Erreur dans 'masqueOnMouseOut':" + exception.description);
	}	
	

}

// ----------------------------------------------- Ajax ----------------------------------------------------------

function getByAJAX(methode, urlPageHTTP, bAsynchrone, action) 
{
// methode : GET, POST (Que GET pour l'instant)
// urlPageHTTP : chemin d'acce a la page
// bAsynchrone : true, false
// action : EVAL (execution Javascript)
//          ALERT (affichage texte)

	var xhr_object = null;

	if(window.XMLHttpRequest) // Firefox
	{
		xhr_object = new XMLHttpRequest();
	}
	else if(window.ActiveXObject) // Internet Explorer
	{
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else // XMLHttpRequest non supporté par le navigateur
	{ 
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");		
		return;
	}

	xhr_object.open(methode, urlPageHTTP, bAsynchrone);
	xhr_object.send(null);	

	if(xhr_object.readyState == 4) 
	{
		RespTxt = xhr_object.responseText;
		if (action == "RETURN")
		{
			return RespTxt;
		}
		else if (action == "EVAL") 
		{
			eval(RespTxt);
		}
		else if (action == "ALERT") 
		{
			if (trim(RespTxt) != "") 
			{
				alert(trim(RespTxt));
			}
		}
	}		
}








/*****************************************/


function verifFormulaire(type){
	//expression regulière pour tester le nom/prenom
	var reg_nom = /^[a-zA-Z]+(-[a-zA-Z]+)?$/;
	//expression regulière pour tester le mail
	var reg_mail = /^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+$/;
	var reg_login = /^[a-zA-Z0-9\.\-_]+$/;
	var getPass = new Array();
	var stock = new Array();
	var error = "";
	var temp = document.getElementsByTagName("input");

	for(var i = 0; i < temp.length; i++){
		if(temp[i].type == "password"){
			getPass.push(temp[i]);
			continue;
		}
		stock[temp[i].name.toUpperCase()] = temp[i].value;
	}
	if(!reg_nom.test(stock["PRENOM"])){
		if(stock["PRENOM"].length != 0)
			error += "format incorrect pour un prénom\n";
	}
	if(!reg_nom.test(stock["NOM"])){
		if(stock["NOM"].length != 0)
			error += "format incorrect pour un nom\n"
	}
	if(!reg_mail.test(stock["MAILU"])){
		if(stock["MAILU"].length != 0)
			error += "format incorrect pour un e-mail\n"
	}
	if(!reg_login.test(stock["PSEUDO"])){
		if(stock["PSEUDO"].length == 0)
			error += "le champ Pseudo est obligatoire\n"
		else{
			if(stock["PSEUDO"].length >= 4)
				error += "format incorrect pour un Pseudo\n"
			else
				error += "le champ Pseudo est trop court (minimum de 4caractères)\n"
		}
	}
	// alert(type);
	switch(type){
		case 'ADD':{
				if(getPass[0].value.length >= 6 && getPass[1].value.length >= 6){
					if(!getPass[0].value.match(new RegExp(getPass[1].value)))
						error += "les mots de passe sont différents\n"
				}else
					error += "les mots de passe sont trop courts (minimum de 6 caractères)\n"
				if(getPass[0].value.length == 0 || getPass[1].value.length == 0)
					error += "le mot de passe et la confirmation sont obligatoires\n"
				break;
			}
		case 'MODIFY':{
				if((getPass[0].value.length == 0) && (getPass[1].value.length == 0)){
					break;
				}
				if((getPass[0].value.length == 0) || (getPass[1].value.length == 0)){
					error += "le mot de passe et la confirmation sont obligatoires\n"
					break;
				}
				if(getPass[0].value.length >= 6 && getPass[1].value.length >= 6){
					if(!getPass[0].value.match(new RegExp(getPass[1].value)))
						error += "les mots de passe sont différents\n"
				}else
					error += "les mots de passe sont trop courts (minimum de 6 caractères)\n"
				break;
			}
	}
	if(error != ""){
		alert(error);
		return false;
	}else{
		// alert("OK");
		// return false;
		document.forms["formUser"].submit();
		return true
	}
}
function modifyLink(){
	var reg = /(modify=)(\w+)/g;
	if(window.location.href.match(/\?/g)){
		if(window.location.href.match(/modify/g))
			newURL = window.location.href.replace(reg, "$1")
		else
			newURL = window.location.href + "&modify=";
		var result = "";
		if(/TRUE/g.test(window.location.href))
			result = "FALSE";
		else
			result = "TRUE";
		window.location.href = newURL + result;
	}
	else
		window.location.href = window.location.pathname + "?modify=" + "TRUE";
}
function confirmSuppression(name){
	if(confirm("Voulez vous vraiment supprimer " + name + "?")){
		alert("ici");
		return true;
	}else{
		alert("la");
		window.stop();
		return false;
	}
}
//enlever les doublons lors du choix de la rubrique
function rubrikURL(element){
	var reg = /(rub=)(\w+)/g;
	//s'il existe déjà un argument
	if(window.location.href.match(/\?/g)){
		if(window.location.href.match(reg))
			window.location.href = window.location.href.replace(reg, "$1" + element.selectedIndex);
		else
			window.location.href = window.location.pathname + "&rub=" + element.selectedIndex;
	}else
		window.location.href = window.location.pathname + "?rub=" + element.selectedIndex;
}

//Change Language
function ChangeLanguage( languageCode ){
	var reg = /(Lang=)(\w+)/g;
	var regT = new RegExp("Lang", "g");
	if(window.location.href.indexOf("?", 0) != -1){
		//annuler l'ancien Language
		if(regT.test(window.location.href))
			window.location.href = window.location.href.replace(reg, "$1"+ languageCode);
		else
			window.location.href = window.location.href + "&Lang=" + languageCode;
	}
	else
		window.location.href = window.location.pathname + "?Lang=" + languageCode ;
}

//Change Toolbar
function ChangeToolbar( toolbarName ){
	var reg = /(Toolbar=)(\w+)/g;
	var regT = new RegExp("Toolbar", "g");
	if(window.location.href.indexOf("?", 0) != -1){
		//annuler l'ancien toolbar
		if(regT.test(window.location.href))
			window.location.href = window.location.href.replace(reg, "$1"+ toolbarName);
		else
			window.location.href = window.location.href + "&Toolbar=" + toolbarName ;
	}
	else
		window.location.href = window.location.pathname + "?Toolbar=" + toolbarName ;
}

//Change skin
function ChangeSkin( skinName ){
	var reg = /(Skin=)(\w+)/g;
	var regT = new RegExp("Skin", "g");
	//si Skin n'est pas le premier paramètre de la liste
	if(window.location.href.indexOf("?", 0) != -1){
		//si Skin a deja été défini
		if(regT.test(window.location.href))
			window.location.href = window.location.href.replace(reg, "$1"+ skinName);
		else
			window.location.href = window.location.href + "&Skin=" + skinName;
	}
	else
		window.location.href = window.location.pathname + "?Skin=" + skinName;
}
