dojo.registerModulePath("personal","../personal");

dojo.require("dojo.widget.ContentPane") ;
dojo.require("dojo.html.selection");
dojo.require("dojo.dnd.*");
dojo.require("dojo.event.*");
dojo.require("dojo.lfx.*");
dojo.require("dojo.io.*");
dojo.require("dojo.dom");
dojo.require("dojo.widget.Tooltip");

dojo.require("personal.widget.UniversTab") ;
dojo.require("personal.personalContext") ;
dojo.require("personal.dropMenu");
dojo.require("personal.dragMenu");
dojo.require("personal.dropBloc");
dojo.require("personal.widget.closeBloc");


/* pagination */
var firstDisplayedTab=0;
var lastDisplayedTab =0;
var currentTabSize=0;
var currentMenu;
var personalContext;
var universTab;

// zones de DROP
var targetDropMenuLeft;
var targetDropMenuRight;
var targetDropBlocLeft;
var targetDropBlocRight;

// variable globale renseignant le nombre de bloc dans mon accueil
var nbBlocsInAccueil = 0;

var boolDragMenu = 0;

function openIn(_zone,url) {
	var ladate = new Date();
	
	var zone = dojo.widget.byId(_zone) ;
	if(!zone) {
		zone = dojo.byId(_zone) ;
	}
	if (zone) {
		// comopsant DOJO trop lent
		//dojo.dom.removeChildren(zone.domNode) ;
		//zone.setUrl(url) ;
		
		requestAjax(zone, url, '');
	}
}
					
function openInVentre(url) {
	openIn("ventre",url) ;
}

function openInMenu(url) {
	openIn("accordion",url) ;
}

function getContext() {
	return personalContext ;
}

function getUniversTab() {
	return universTab;
}


/************ fonctions sur le dialog************/

var dlg; // on déclare une variable pour l'objet dialog

function initDialog(e) {
	dlg = dojo.widget.byId("dlg"); // on crée le dialog
}

function  buildDlg(url_cible, pars) {
	var ladate = new Date();
	
	pars += "&anticache=" + ladate.getTime();
	var myAjax = new Ajax.Updater("contenuDlg",
			url_cible,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 onComplete: OnUpdatebuildDlg()
			});
}

function OnUpdatebuildDlg() {
	dojo.byId("top_bandeau").style.display = "none"; // on n'affiche pas le bandeau flash pour ne pas être gêné
	dlg.show();
}

function fermerDialog(reloadMenu, action) {
	if (reloadMenu == "oui") {
		//if (action == "ouvreLivre") ouvreLivre();
		requestAjax.defer("accordion", "/site_portail/menuFaux.asp", "");
		
		if (action == "desinscription") {
			dojo.byId("linkModifProfil").style.display = "none";
			gotoAccueil();
		}
		else  dojo.byId("linkModifProfil").style.display = "block";
	}
	
	switch (action) {
		case "ouvreLivre":
			ouvreLivre();
			break;
		case "ouvreTiBlonScore":
			ouvreTiBlonScore();
			break;
		default:
			break;
	}
	
	dojo.byId("top_bandeau").style.display = "block"; // on réaffiche le bandeau flash pour ne pas être gêné
	dlg.hide();
}
		
/************ fonctions sur le dialog************/



/************ fonctions sur le menu gauche ************/

function hideSousMenu(idStr, strCur, level) {
	// on cache tous les sous menus
	var boolCurr = false;
	var acc = document.getElementById(idStr);
	var currMenu = document.getElementById(strCur);
	var apanels = acc.getElementsByTagName('div');
	
	for (i = 0; i < apanels.length; i++) {
		if (apanels[i].className == "bodyMenu"+level) {
			var input = apanels[i].getElementsByTagName('input')[0]; // on récupère la valeur de la session du premier input
			if (input.value == "In") {
				// ce div nous interesse, il nous faut recuperer ces infos
				var strSearch = "bodyMenu";
				var deb = strSearch.length;
				var fin = apanels[i].id.length;
				var recupId = apanels[i].id.substring(deb, fin);
				var obj = document.getElementById("img"+recupId);
				if (obj != null) majPictoPlus("img"+recupId); // on met à jour le picto plus moins
				
				apanels[i].style.display = 'block';
				currMenu.value = apanels[i].id; // valeur vaut le nom de la session
				//alert(currMenu.id+" "+currMenu.value);
				boolCurr = true;
			}
			else apanels[i].style.display = 'none';
		}
	}
}

function accordion(id, level, pId) {
	var ladate = new Date();
	var bodyMenu = "bodyMenu"+id+level;
	var currMenu = document.getElementById("currMenu"+pId+level);
	
	//alert("currMenu"+pId+level+" "+currMenu.value);
	if (parseInt(currMenu.value) == 0) {
		// on met à jour la session du menu correspondant
		var xhr = file(serverPath+"/site_portail/sessionMenu.asp?bodyMenu="+bodyMenu+"&etatMenu=In&anticache="+ladate.getTime());
		if (xhr.readyState == 4) {
			// picto plus
			if (pId != 0) majPictoPlus("img"+id+level);
			wipeInOut(bodyMenu, "In");
			currMenu.value = bodyMenu;
		}
	}
	else if (currMenu.value == bodyMenu) {
		// on met à jour la session du menu correspondant
		var xhr = file(serverPath+"/site_portail/sessionMenu.asp?bodyMenu="+bodyMenu+"&etatMenu=Out&anticache="+ladate.getTime());
		if (xhr.readyState == 4) {
			// picto plus
			if (pId != 0) majPictoPlus("img"+id+level);
			wipeInOut(bodyMenu, "Out");
			currMenu.value = "0";
		}
	}
	else {
		// on met à jour la session du menu correspondant
		var xhr = file(serverPath+"/site_portail/sessionMenu.asp?bodyMenu="+currMenu.value+"&etatMenu=Out&anticache="+ladate.getTime());
		if (xhr.readyState == 4) {
			// picto plus
			if (pId != 0) majPictoPlus("img"+id+level);
			wipeInOut(currMenu.value, "Out");
			
			var xhr2 = file(serverPath+"/site_portail/sessionMenu.asp?bodyMenu="+bodyMenu+"&etatMenu=In&anticache="+ladate.getTime());
			if (xhr2.readyState == 4) {
				// mise a jour du picto plus_moins de l'ancien courant
				if ((pId != 0) && /* pour Firefox */ (parseInt(currMenu.value) != 0)) majPictoPlus.defer("img"+currMenu.value.substring(8, currMenu.value.length));
				wipeInOut.defer(bodyMenu, "In");
				
				currMenu.value = bodyMenu;
			}
		}
	}
}

function wipeInOut(bodyMenu, type) {
	if (type == "In") dojo.lfx.html.wipeIn(dojo.byId(bodyMenu), 300).play();
	else dojo.lfx.html.wipeOut(dojo.byId(bodyMenu), 300).play();
}

function majPictoPlus(strId) {
	var img = document.getElementById(strId);
	var path = img.src.substring(0, img.src.lastIndexOf("/")+1);
	var valSrc = img.src.substring(img.src.lastIndexOf("/")+1);
	var indexFin = parseInt(valSrc.indexOf("_plus"));
	
	if (indexFin > -1) {
		valSrc = valSrc.substring(0, indexFin)+"_moins.gif";
	}
	else {
		indexFin = parseInt(valSrc.indexOf("_moins"));
		valSrc = valSrc.substring(0, indexFin)+"_plus.gif";
	}
	img.src = path+valSrc;
	img.style.visible = "visible";
}

function accordion_newOnglet(id, level, pId, fichier, name, bodyMenu) {
	var currMenu = document.getElementById("currMenu"+pId+level);
	
	accordion(id, level, pId);
	if (currMenu.value == bodyMenu) newOnglet(fichier, name);
}
	
/********** fin fonctions sur le menu gauche **********/


/************ fonctions sur les onglets ************/

function gotoAccueil() {
	var UniversTab = getUniversTab();
	var domOnglets = UniversTab.getTabs();
	
	UniversTab.firstDisplayedTab=0;
	UniversTab.redraw();
	getContext().changeUnivers(0);
	domOnglets[UniversTab.selectedTab].setActive(false, 0);
}

function getOnglets(tagName, className, parentElement) {
  var elements = new Array ();
  var children = parentElement.getElementsByTagName(tagName);
  for ( var a = 0; a < children.length; a++ ) {
	  if (children[a].className == className) {
		  elements[elements.length] = children[a];
	  }
  }
  return elements;
}

function newOnglet(fichier, name) {
	var UniversTab = getUniversTab();
	var tabUnivers = getContext().universes;
	// ne pas confondre tabUnivers et getUniversTab()
	// tabUnivers : elmts
	// getUniversTab() : elmts du DOM
	
	if (name == "") {
		var ladate = new Date();
		// on récupère le nom de la page
		var xhr = file(serverPath+"/site_portail/include/recup_label.asp?url="+fichier+"&anticache="+ladate.getTime());
		if (xhr.readyState == 4) {
			// avec JSON pbm caractères spéciaux
			/*var json = eval('(' + xhr.responseText + ')');
			name = json.label[0].titre;
			alert(name);*/
			
			name = xhr.responseText;
		}
	}
	
	var lastElmt = tabUnivers[(tabUnivers.length-1)];
	var i = parseInt(lastElmt.aUniqueId)+1;
	var elmt = {aUniqueId:i,componentUrl:fichier,shortLabel:name,closeIcon:"activeClose"};
	
	getContext().universes[tabUnivers.length] = elmt;
	
	var rowData = elmt;
	var row = dojo.widget.createWidget("personal:UniversTabItem",rowData);
	
	UniversTab.registerChild(row, i);
	
	UniversTab.tabIteratorPoint.appendChild(row.domNode);
	
	var tabSize = UniversTab.currentTabSize;
	var tailleFenetre = dojo.html.getBorderBox(UniversTab.listeUnivers).width;
	var iLast = UniversTab.lastDisplayedTab;
	var onglets = getOnglets("div", "elmtUnivers", UniversTab.listeUnivers);
	var sizeLast = dojo.html.getBorderBox(onglets[iLast]).width;

	if ((tabSize + sizeLast) > tailleFenetre) {
		while (UniversTab.lastDisplayedTab < i) {
			UniversTab.firstDisplayedTab++;
			UniversTab.redraw();
		}
	}
	else UniversTab.redraw();
	
	var domOnglets = UniversTab.getTabs();
	domOnglets[UniversTab.selectedTab].setActive(false, elmt.aUniqueId);
	
	// on change d'univers
	getContext().changeUnivers(elmt.aUniqueId) ;
}

function majOnglet(url, label) {
	var UniversTab = getUniversTab();
	var domOnglets = UniversTab.getTabs();
	
	if (label == "") {
		var ladate = new Date();
		// on récupère le nom de la page
		var xhr = file(serverPath+"/site_portail/include/recup_label.asp?url="+url+"&anticache="+ladate.getTime());
		if (xhr.readyState == 4) {
			// avec JSON pbm caractères spéciaux
			// var json = eval('(' + xhr.responseText + ')');
			// label = json.label[0].titre;
			
			label = xhr.responseText;
			domOnglets[UniversTab.selectedTab].majAttributs(url, label);
		}
	}
	else domOnglets[UniversTab.selectedTab].majAttributs(url, label);
	
	document.location.href = "#";
}

/********** fin fonctions sur les onglets **********/


/************ fonctions sur les blocs dans mon Accueil ************/
	
function recupBlocs(left_col, right_col) {
	var ladate = new Date();
	
	nbBlocsInAccueil = 0;
	if (testSessionVisiteur()) {
		buildBlocs(file(serverPath+"/site_portail/blocs_perso.asp?action=recup&id_col="+left_col+"&anticache="+ladate.getTime()), left_col);
		buildBlocs(file(serverPath+"/site_portail/blocs_perso.asp?action=recup&id_col="+right_col+"&anticache="+ladate.getTime()), right_col);
	}
	
	if (nbBlocsInAccueil == 0) {
		if (boolDragMenu == 1) dojo.byId("explication").innerHTML = "";
		else requestAjax("explication", "/site_portail/include/explication.asp", "none=none");
	}
}

function buildBlocs(xhr, id_col) {
	if (xhr.readyState == 4) {
		var contBlocs = dojo.byId(id_col);
		var doc = eval('(' + xhr.responseText + ')');
		
		if (doc.blocs.length > 0) {
			if (id_col == "left_col") var strBlocs = doc.blocs[0].left_col;
			else var strBlocs = doc.blocs[0].right_col;
			
			//alert(strBlocs); 
			
			if (strBlocs != null) {
				var tabBlocs = strBlocs.split(",");
				
				if (strBlocs.RLTrim().length > 0) {
					for (var i=0; i<tabBlocs.length; i++) {
						var ladate = new Date();
						var page = file(serverPath+"/site_portail/blocs_perso.asp?action=page&id_page="+tabBlocs[i]+"&anticache="+ladate.getTime());
						
						if (page.readyState == 4) {
							var json = eval('(' + page.responseText + ')'); 
							
							var newDiv = document.createElement('div');
							newDiv.id = "blocPerso_"+json.page[0].id;
							newDiv.id_page = json.page[0].id;
							newDiv.id_col = id_col;
							dojo.html.addClass(newDiv,"blocPerso");
							dojo.html.addClass(newDiv,"blocPerso_"+json.page[0].id); // permettra de le retrouver
							newDiv.innerHTML = json.page[0].resume;
							
							var rowData = {id:newDiv.id_page,id_col:id_col};
							
							bloc = dojo.widget.createWidget("personal:closeBloc", rowData) ;
							newDiv.appendChild(bloc.domNode);
							
							//add the item
							contBlocs.appendChild(newDiv);
							
							var dnd = new dojo.dnd.HtmlDragSource(newDiv, "blocDrag", true);
							
							// on incrémente nbBlocsInAccueil
							nbBlocsInAccueil++;
						}
					}
				}
			}
		}
	}
}

function majBlocsDomHTML(id_col, left_children, right_children) {
	var oCol = dojo.byId(id_col);
	//alert(id_col);
	
	// on supprime tous les blocs de cet inetrnaute
	var ladate = new Date();
	var delAjax = file(serverPath+"/site_portail/blocs_perso.asp?action=delete&id_col="+id_col+"&anticache="+ladate.getTime());
	if (delAjax.readyState == 4) {
		// on parcours les enfants du DOM et une chaine caracteres avec id_page de ces derniers
		var str_children = "";
		var index_children = 0;
		var children = oCol.getElementsByTagName("div");
		
		for (var a=0; a<children.length; a++) {
			var classeStr = children[a].className;
			if (classeStr.indexOf("blocPerso",0) > -1) {
				// ce div nous interesse, il nous faut recuperer ces infos
				var strSearch = "blocPerso";
				var lastIndex = classeStr.lastIndexOf(strSearch);
				var id_div = classeStr.substring(lastIndex, classeStr.length).RLTrim();
				var id_page = dojo.byId(id_div).id_page;
				var elmt = id_page;
				if (index_children == 0) str_children = elmt;
				else str_children += ","+elmt;
				
				// on supprime le widget de fermeture du bloc
				dojo.widget.byId(id_page).destroy();
				
				index_children++;
			}
		}
		
		// on vide les elements du dom HTML de la colonne
		dojo.dom.removeChildren(oCol);
		
		if (id_col == "left_col") {
			left_children = str_children;
			// on conserve left_children tant que right_children n'est pas recupere
			// le dom HTML de col_left ne doit pas etre regenere tant que right_children n'est pas recupere
			majBlocsDomHTML("right_col", left_children, right_children); 
		}
		else {
			right_children = str_children;
			majBlocsBDD("left_col", left_children, right_children);
		}
	}
}

function majBlocsBDD(id_col, left_children, right_children) {
	var ladate = new Date();
	
	if (id_col == "left_col") str_children = left_children;
	else str_children = right_children;
	
	// on met a jour la table espace_perso dans la base
	var majAjax = file(serverPath+"/site_portail/blocs_perso.asp?action=maj&id_col="+id_col+"&str_children="+str_children+"&anticache="+ladate.getTime());
	//alert(majAjax.readyState);
	if (majAjax.readyState == 4) {
		// on reconstruit la colonne
		buildBlocs(file(serverPath+"/site_portail/blocs_perso.asp?action=recup&id_col="+id_col+"&anticache="+ladate.getTime()), id_col);
		if (id_col == "left_col") majBlocsBDD("right_col", left_children, right_children);
	}
}

/************ fin fonctions sur les blocs dans mon Accueil ************/


/************ fonctions de la boite à recettes ************/

function majBoiteWithSearch(url, topTen) {
	var ladate = new Date();
	
	var valType = "";
	var valDiff = "";
	var valTheme = "";
	var valProd = "";
	
	var selType = dojo.byId("selType");
	var selDiff = dojo.byId("selDiff");
	var selTheme = dojo.byId("selTheme");
	var selProd = dojo.byId("selProd");
	
	if (selType.value != "#") valType = selType.value;
	if (selDiff.value != "#") valDiff = selDiff.value;
	if (selTheme.value != "#") valTheme = selTheme.value;
	if (selProd.value != "#") valProd = selProd.value;
	
	var pars = "valType="+valType+"&valDiff="+valDiff+"&valTheme="+valTheme+"&valProd="+valProd;
	
	var myAjax = new Ajax.Updater("boite",
				url,
				{
				 method: 'get',
				 parameters: pars,
				 onComplete: onMajBoiteWithSearch(topTen, valType, valDiff, valTheme, valProd)
				});
}

function onMajBoiteWithSearch(topTen, valType, valDiff, valTheme, valProd) {
	var ladate = new Date();
	
	var url = "/site_portail/include/list_recettes.asp";
	var pars = "valType="+valType+"&valDiff="+valDiff+"&valTheme="+valTheme+"&valProd="+valProd+"&topTen="+topTen;
	
	//alert(pars);
	requestAjax("result", url, pars);
}

function searchFilter(topTen) {
	var ladate = new Date();
	
	var valType = "";
	var valDiff = "";
	var valTheme = "";
	var valProd = "";
	
	var selType = dojo.byId("selType");
	var selDiff = dojo.byId("selDiff");
	var selTheme = dojo.byId("selTheme");
	var selProd = dojo.byId("selProd");
	
	if (selType.value != "#") valType = selType.value;
	if (selDiff.value != "#") valDiff = selDiff.value;
	if (selTheme.value != "#") valTheme = selTheme.value;
	if (selProd.value != "#") valProd = selProd.value;
	
	var url = "/site_portail/include/list_recettes.asp";
	var pars = "valType="+valType+"&valDiff="+valDiff+"&valTheme="+valTheme+"&valProd="+valProd+"&topTen="+topTen;
	
	//alert(pars);
	requestAjax("result", url, pars);
}

function majBoite(url, url2, pars) {
	var ladate = new Date();
 	pars += "&anticache=" + ladate.getTime();
	
	var myAjax = new Ajax.Updater("boite",
				url,
				{
				 method: 'get',
				 parameters: pars,
				 onComplete: onUpdateBoite(url2, pars)
				});
}

function onUpdateBoite(url, pars) {
	majResult(url, pars);
}

function majResult(url, pars) {
	var ladate = new Date();
 	pars += "&anticache=" + ladate.getTime();
	
	var myAjax = new Ajax.Updater("result",
				url,
				{
				 method: 'get',
				 parameters: pars,
				 onComplete: onUpdateResult()
				});
}

function onUpdateResult() {
}

function focusRecette(id_recette) {
	var ladate = new Date();
	// on est obligé de se servir d'une session
	var majAjax = file("/site_portail/sessionRecette.asp?idRecette="+id_recette+"&anticache="+ladate.getTime());
	
	if (majAjax.readyState == 4) {
		// on ouvre la boite à recherche qui grâce à la session sera sur le détail d'une fiche recette
		newOnglet('/site_portail/FCK/File/se_regaler/la_boitea_recettes/boite_recettes.asp', '');
	}
}

function showDetailPicto(msg) {
	var p = dojo.byId("detail_picto");
	p.innerHTML = msg;
}

function hideDetailPicto() {
	var p = dojo.byId("detail_picto");
	p.innerHTML = "";
}

function ouvreLivre() {
	var ladate = new Date();
	window.open("/livre-recette/livre.asp?anticache="+ladate.getTime(),"mon_livre","menubar=no, status=no, scrollbars=no, menubar=no, width=920, height=660");
}

function verifOuvreLivre(url_cible, pars) {
	if (testSessionVisiteur()) ouvreLivre();
	else buildDlg('/formulaires/alert.asp', 'typeMessage=noAccessLivre&action=ouvreLivre');
}

function verifAjoutLivre(url_cible, pars) {
	if (testSessionVisiteur()) {
		var ladate = new Date();
		var majAjax = file("/site_portail/include/ajout_livre.asp?"+pars+"&anticache="+ladate.getTime());
		
		//alert(majAjax.responseText);
		if (majAjax.readyState == 4) buildDlg('/formulaires/alert.asp', 'typeMessage='+majAjax.responseText);
	}
	else buildDlg('/formulaires/alert.asp', 'typeMessage=noAccessAjoutLivre');
}

function verifPropose(url_cible, pars) {
	if (testSessionVisiteur()) buildDlg('/formulaires/recette.asp', pars+'&repRacine=/site_portail/');
	else buildDlg('/formulaires/alert.asp', 'typeMessage=noAccessPropose&action=proposeRecette');
}

function verifCommentaire(url_cible, pars) {
	if (testSessionVisiteur()) buildDlg('/formulaires/commentaire.asp', pars+'&repRacine=/site_portail/');
	else buildDlg('/formulaires/alert.asp', 'typeMessage=noAccessCommentaire&action=ajouteCommentaire');
}

function verifEnvoisAmis(url_cible, pars) {
	buildDlg('/formulaires/envoi_amis.asp', pars+'&repRacine=/site_portail/');	
}

/************ fin fonctions de la boite à recettes ************/


/************ fonctions sur les formulaires ************/

function verif_ident(id_form, action) {
	var form = dojo.byId(id_form);
	
	var ladate = new Date();
	
	var objEmail = form.email;
	var valEmail = objEmail.value;
	
	var objMdp = form.mdp;
	var valMdp = objMdp.value;
	
	var lenEmail = valEmail.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	var verifEmail = regEmail.test(valEmail);
	
	var lenMdp = valMdp.RLTrim().length;
	
	if (lenEmail == 0) {
		alert("Votre email n'est pas renseigné !");
		objEmail.focus();
	}
	else if (!verifEmail) {
		alert("Votre email n'a pas le bon format !");
		objEmail.focus();
	}
	else if (lenMdp == 0) {
		alert("Votre mot de passe n'est pas renseigné !");
		objMdp.focus();
	}
	else {
		sUrl = "/formulaires/verif_compte.asp";
		
		var existeCompte = file(sUrl+"?email="+escape(valEmail)+"&mdp="+escape(valMdp)+"&anticache="+ladate.getTime());
		
		//alert(existeCompte.responseText);
		if(existeCompte.readyState == 4) { // page éxécutée correctement
			if (parseInt(existeCompte.responseText) != 1) {
				alert("Impossible de vous identifier,\nil doit y avoir une erreur dans votre adresse email ou dans votre mot de passe !");
				objMdp.value = "";
			}
			else buildDlg('/formulaires/alert.asp', 'typeMessage=identOk&action='+action);
		}
		else {
			alert("Identification impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
			return false;
		}
	}
	
	return false;
}

function oubli_mdp(id_form) {
	var form = dojo.byId(id_form);
	
	var ladate = new Date();
	
	var objEmail = form.email;
	var valEmail = objEmail.value;
	
	var lenEmail = valEmail.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	var verifEmail = regEmail.test(valEmail);
	
	if (lenEmail == 0) {
		alert("Saisissez votre adresse email et cliquez à nouveau sur le lien \"Mot de passe oublié ?\".\nUn mail vous rappelant votre mot de passe vous sera envoyé !");
		objEmail.focus();
	}
	else if (!verifEmail) {
		alert("Votre email n'a pas le bon format !");
		objEmail.focus();
	}
	else {
		var sUrl = "/formulaires/envoi_mdp.asp";
		
		var envoiMdp = file(sUrl+"?email="+escape(valEmail)+"&anticache="+ladate.getTime());
		//alert(envoiMdp.responseText);
		if(envoiMdp.readyState == 4) { // page éxécutée correctement
			if (envoiMdp.responseText == 0) {
				alert("Adresse email inconnue.\nNous vous invitons à vous inscrire !");
				buildDlg('/site_portail/include/inscription.asp', '');
			}
			else if (envoiMdp.responseText == 1) {
				alert("Un mail vous a été envoyé.\nVous y trouverez votre mot de passe.\n\nA très bientôt !");
			}
			else {
				alert("Opération impossible,\nUn problème est survenu lors de l'envoi, veuillez réessayer ultérieurement !");
			}
		}
		else {
			alert("Opération impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
		}
	}
}

function verif_inscrit(id_form, typeMsg, action) {
	var form = dojo.byId(id_form);
	var ladate = new Date();
	
	var objCivilite = form.civilite;
	
	var objNom = form.nom;
	var lenNom = objNom.value.RLTrim().length;
	
	var objPrenom = form.prenom;
	var lenPrenom = objPrenom.value.RLTrim().length;
	
	var objAdresse = form.adresse;
	var lenAdresse = objAdresse.value.RLTrim().length;
	
	var objCP = form.cp;
	var lenCP = objCP.value.RLTrim().length;
	
	var objVille = form.ville;
	var lenVille = objVille.value.RLTrim().length;
	
	var objPays = form.pays;
	var lenPays = objPays.value.RLTrim().length;
	
	var objEmail = form.email;
	var lenEmail = objEmail.value.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	var verifEmail = regEmail.test(objEmail.value);
	
	var objMdp = form.mdp;
	var objMdpBis = form.mdp_bis;
	var regMdp = /^[a-zA-Z0-9]{5,16}$/;
	var lenMdp = objMdp.value.RLTrim().length;
	var verifMdp = regMdp.test(objMdp.value);
	
	var objEnews = form.e_news;
	
	if (objCivilite.value == "") {
		alert("Votre civilité n'est pas renseignée !");
		objCivilite.focus();
	}
	else if (lenNom == 0) {
		alert("Votre nom n'est pas renseigné !");
		objNom.focus();
	}
	else if (lenPrenom == 0) {
		alert("Votre prénom n'est pas renseigné !");
		objPrenom.focus();
	}
	else if (lenEmail == 0) {
		alert("Votre email n'est pas renseigné !");
		objEmail.focus();
	}
	else if (!verifEmail) {
		alert("Votre email n'a pas le bon format !");
		objEmail.focus();
	}
	else {
		var existeEmail = file("/formulaires/existe_email.asp?email="+escape(objEmail.value)+"&anticache="+ladate.getTime());
		
		if(existeEmail.readyState == 4) { // page éxécutée correctement
			if (parseInt(existeEmail.responseText) > 0) {
				alert("Inscription impossible,\ncette adresse email est déjà utilisée !");
				objEmail.value = "";
				objEmail.focus();
			}
			else if (lenMdp == 0) {
				alert("Votre mot de passe n'est pas renseigné !");
				objMdp.focus();
			}
			else if (!verifMdp) {
				alert("Votre mot de passe n'a pas le bon format :\n- Il doit contenir 5 à 16 caractères.\n- Il ne peut contenir que des lettres ou des numéros.");
				objMdp.focus();
			}
			else if (objMdp.value != objMdpBis.value) {
				alert("La confirmation de votre mot de passe n'est pas valide !");
				objMdpBis.value = "";
				objMdpBis.focus();
			}
			else {
				// envoi du formulaire
				var kw = {
					url: "/formulaires/inscription_ok.asp",
					content: {},
					formNode: id_form,
					load: function(type, data) {
						// data = 0 données correctes
						// data = 1 données incorrectes
						// data = 2 utilisateur existe déjà
						// data = 3 erreur envoi de mail
						if (parseInt(data) > 0) alert("Inscription impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
						else buildDlg('/formulaires/alert.asp', 'typeMessage='+typeMsg+'&action='+action);
					},
					error: function(type, error) {
						alert(String(type) + "\n" + String(error));
					},
					method: "POST",
					multipart: false
				};
				
				dojo.io.bind(kw);
			}
		}
		else {
			alert("Inscription impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
		}
	}
	
	return false;
}

function desinscrit(id_form, typeMsg, action) {
	if (window.confirm("Cliquez sur OK pour confirmer la suppression de votre compte Béghin Say !")) {
		// envoi du formulaire
		var kw = {
			url: "/formulaires/desinscription_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				// data = 2 utilisateur existe déjà
				// data = 3 erreur envoi de mail
				if (parseInt(data) > 0) alert("Suppression impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else buildDlg('/formulaires/alert.asp', 'typeMessage='+typeMsg+'&action='+action);
			},
			error: function(type, error) {
				alert(String(type) + "\n" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	else return false;
}

function verif_e_news(id_form) {
	var form = dojo.byId(id_form);
	var ladate = new Date();
	
	var objEmail = form.email;
	var lenEmail = objEmail.value.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	var verifEmail = regEmail.test(objEmail.value);
	
	var objEnews = form.e_news;
	
	if (lenEmail == 0) {
		alert("Votre email n'est pas renseigné !");
		objEmail.focus();
	}
	else if (!verifEmail) {
		alert("Votre email n'a pas le bon format !");
		objEmail.focus();
	}
	else if (!objEnews.checked) {
		alert("Vous devez accepter de recevoir les e-news!");
	}
	else {
		// envoi du formulaire
		var kw = {
			url: "/formulaires/e_news_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				// data = 2 utilisateur existe déjà
				// data = 3 erreur envoi de mail
				if (parseInt(data) > 0) alert("Inscription impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else {
					buildDlg('/formulaires/alert.asp', 'typeMessage=merciAjoutEnews');
				}
			},
			error: function(type, error) {
				alert(String(type) + "\n" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	
	return false;
}

function verif_envoi_amis(id_form) {
	var form = dojo.byId(id_form);
	var ladate = new Date();
	
	var objEmail = form.email;
	var lenEmail = objEmail.value.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	
	var errEmails = false;
	var tabEmail = objEmail.value.RLTrim().split(";");
	for (var i=0; i<tabEmail.length; i++) {
		var verifEmail = regEmail.test(tabEmail[i]);
		if (!verifEmail) errEmails = true;
	}
	
	if (lenEmail == 0) {
		alert("Aucun email n'est renseigné !");
		objEmail.focus();
	}
	else if (errEmails) {
		alert("Le format des emails renseignés n'est pas correcte !\nLes emails doivent être séparés par des points-virgules, sans espaces.");
		objEmail.focus();
	}
	else {
		// envoi du formulaire
		var kw = {
			url: "/formulaires/envoi_amis_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				// data = 2 utilisateur existe déjà
				// data = 3 erreur envoi de mail
				if (parseInt(data) > 0) alert("Inscription impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else {
					buildDlg('/formulaires/alert.asp', 'typeMessage=merciEnvoiAmis');
				}
			},
			error: function(type, error) {
				alert(String(type) + "\ntt" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	
	return false;
}

function destinataires_contact(url, label, destinataires) {
	var ladate = new Date();
	// on est obligé de se servir d'une session
	var majAjax = file("/site_portail/sessionDestinataires.asp?destinataires="+destinataires+"&anticache="+ladate.getTime());
	
	if (majAjax.readyState == 4) {
		// on ouvre le formulaire de contact professionnel
		majOnglet(url,'');
	}
}

function verif_contact_consommateurs(id_form) {
	var form = dojo.byId(id_form);
	
	var objCivilite = form.civilite;
	
	var objNom = form.nom;
	var lenNom = objNom.value.RLTrim().length;
	
	var objPrenom = form.prenom;
	var lenPrenom = objPrenom.value.RLTrim().length;
	
	var objAdresse = form.adresse;
	var lenAdresse = objAdresse.value.RLTrim().length;
	
	var objCP = form.cp;
	var lenCP = objCP.value.RLTrim().length;
	
	var objVille = form.ville;
	var lenVille = objVille.value.RLTrim().length;
	
	var objPays = form.pays;
	var lenPays = objPays.value.RLTrim().length;
	
	var objEmail = form.email;
	var lenEmail = objEmail.value.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	var verifEmail = regEmail.test(objEmail.value);
	
	var objProd = form.rProduit;
	
	var objMotif = form.motif;
	
	if (objCivilite.value == "") {
		alert("Votre civilité n'est pas renseignée !");
		objCivilite.focus();
	}
	else if (lenNom == 0) {
		alert("Votre nom n'est pas renseigné !");
		objNom.focus();
	}
	else if (lenPrenom == 0) {
		alert("Votre prénom n'est pas renseigné !");
		objPrenom.focus();
	}
	else if (lenAdresse == 0) {
		alert("Votre adresse n'est pas renseignée !");
		objAdresse.focus();
	}
	else if (lenCP == 0) {
		alert("Votre code postal n'est pas renseigné !");
		objCP.focus();
	}
	else if (lenVille == 0) {
		alert("Votre ville n'est pas renseignée !");
		objVille.focus();
	}
	else if (lenPays == 0) {
		alert("Votre pays n'est pas renseigné !");
		objPays.focus();
	}
	else if (lenEmail == 0) {
		alert("Votre email n'est pas renseigné !");
		objEmail.focus();
	}
	else if (!verifEmail) {
		alert("Votre email n'a pas le bon format !");
		objEmail.focus();
	}
	else if (objMotif.selectedIndex == 1) {
		if (objProd.selectedIndex == 0) {
			alert("Dans le cas d'une demande de documentation,\nmerci de sélectionner le produit concerné !");
			objProd.focus();
		}
		else verif_contact_consommateurs_suite(id_form);
	}
	else if (objMotif.selectedIndex == 2) {
		var objCode = form.code;
		var lenCode = objCode.value.RLTrim().length;
		
		var objDay = form.dayDLUO;
		var objMonth = form.monthDLUO;
		
		var objYear = form.yearDLUO;
		var regYear = /^[0-9]{4}$/;
		var verifYear = regYear.test(objYear.value);
		
		var objEchantillon = form.echantillon;
		var objEmballage = form.emballage;
		
		if (objProd.selectedIndex == 0) {
			alert("Dans le cas d'une réclamation,\nmerci de sélectionner le produit concerné !");
			objProd.focus();
		}
		else if (lenCode == 0) {
			alert("Le code de traçabilité n'est pas renseigné !");
			objCode.focus();
		}
		else if ((objDay.value == "--") || (objMonth.value == "--") || (!verifYear)) {
			alert("La date limite d'utilisation optimale n'est pas complète !");
			objDay.focus();
		}
		else if (objEchantillon.selectedIndex == 0) {
			alert("Avez-vous conservé un échantillon de ce produit !");
			objEchantillon.focus();
		}
		else if (objEmballage.selectedIndex == 0) {
			alert("Avez-vous conservé l'emballage de ce produit !");
			objEmballage.focus();
		}
		else verif_contact_consommateurs_suite(id_form);
	}
	else verif_contact_consommateurs_suite(id_form);
	
	return false;
}

function verif_contact_consommateurs_suite(id_form) {
	var ladate = new Date();
	var form = dojo.byId(id_form);
	var form_atlantic = dojo.byId("atlantic_form");
	
	var objMsg = form.message;
	var lenMsg = objMsg.value.RLTrim().length;
	
	if (lenMsg == 0) {
		alert("Votre message est vide !");
		objMsg.focus();
	}
	else {
		// envoi du formulaire
		var kw = {
			url: "/site_portail/include/contact_consommateurs_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				// data = 3 erreur envoi de mail
				if (parseInt(data) > 0) alert("Opération impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else {
					majOnglet('/site_portail/FCK/File/footer/contact.asp','');
					buildDlg('/formulaires/alert.asp', 'typeMessage=merciContact');
				}
			},
			error: function(type, error) {
				alert(String(type) + "\n" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	
	return false;
}

function change_motif(obj) {
	if (parseInt(obj.value) == 2) dojo.byId("tabReclamation").style.display = "block";
	else dojo.byId("tabReclamation").style.display = "none";
}

function verif_contact_professionnels(id_form) {
	var form = dojo.byId(id_form);
	var ladate = new Date();
	
	var objSoc = form.societe;
	var lenSoc = objSoc.value.RLTrim().length;
	
	var objCivilite = form.civilite;
	
	var objNom = form.nom;
	var lenNom = objNom.value.RLTrim().length;
	
	var objPrenom = form.prenom;
	var lenPrenom = objPrenom.value.RLTrim().length;
	
	var objCP = form.cp;
	var lenCP = objCP.value.RLTrim().length;
	
	var objVille = form.ville;
	var lenVille = objVille.value.RLTrim().length;
	
	var objPays = form.pays;
	var lenPays = objPays.value.RLTrim().length;
	
	var objEmail = form.email;
	var lenEmail = objEmail.value.RLTrim().length;
	var regEmail = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@([a-zA-Z0-9-]{2,}[.])+[a-zA-Z]{2,3}$/;
	var verifEmail = regEmail.test(objEmail.value);
	
	var objMsg = form.message;
	var lenMsg = objMsg.value.RLTrim().length;
	
	if (lenSoc == 0) {
		alert("Merci de renseigner le nom de votre société !");
		objSoc.focus();
	}
	else if (objCivilite.value == "") {
		alert("Votre civilité n'est pas renseignée !");
		objCivilite.focus();
	}
	else if (lenNom == 0) {
		alert("Votre nom n'est pas renseigné !");
		objNom.focus();
	}
	else if (lenPrenom == 0) {
		alert("Votre prénom n'est pas renseigné !");
		objPrenom.focus();
	}
	else if (lenEmail == 0) {
		alert("Votre email n'est pas renseigné !");
		objEmail.focus();
	}
	else if (!verifEmail) {
		alert("Votre email n'a pas le bon format !");
		objEmail.focus();
	}
	else if (lenMsg == 0) {
		alert("Votre message est vide !");
		objMsg.focus();
	}
	else {
		// envoi du formulaire
		var kw = {
			url: "/site_portail/include/contact_professionnels_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				// data = 3 erreur envoi de mail
				if (parseInt(data) > 0) alert("Opération impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else {
					majOnglet('/site_portail/FCK/File/footer/contact.asp','');
					buildDlg('/formulaires/alert.asp', 'typeMessage=merciContact');
				}
			},
			error: function(type, error) {
				alert(String(type) + "\n" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	
	return false;
}

function verif_commentaire(id_form) {
	var form = dojo.byId(id_form);
	var ladate = new Date();
	
	var objMsg = form.message;
	var lenMsg = objMsg.value.RLTrim().length;
	
	var objAccepte = form.accepte;
	
	if (lenMsg == 0) {
		alert("Votre message est vide !");
		objMsg.focus();
	}
	else if (!objAccepte.checked) {
		alert("Vous devez accepter la publication de votre commentaire sur le site beghin-say.fr !");
	}
	else {
		// envoi du formulaire
		var kw = {
			url: "/formulaires/commentaire_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				if (parseInt(data) > 0) alert("Opération impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else {
					buildDlg('/formulaires/alert.asp', 'typeMessage=merciAjoutCommentaire');
				}
			},
			error: function(type, error) {
				alert(String(type) + "\n" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	
	return false;
}

function verif_recette(id_form) {
	var form = dojo.byId(id_form);
	var ladate = new Date();
	
	var objTitre = form.titre;
	var lenTitre = objTitre.value.RLTrim().length;
	
	var objIngredients = form.ingredients;
	var lenIngredients = objIngredients.value.RLTrim().length;
	
	var objPreparation = form.preparation;
	var lenPreparation = objPreparation.value.RLTrim().length;
	
	var objAccepte = form.accepte;
	
	if (lenTitre == 0) {
		alert("Votre recette n'a pas de titre !");
		objTitre.focus();
	}
	else if (lenIngredients == 0) {
		alert("Merci d'indiquer les ingrédients !");
		objIngredients.focus();
	}
	else if (lenPreparation == 0) {
		alert("Merci de décrire la préparation !");
		objPreparation.focus();
	}
	else if (!objAccepte.checked) {
		alert("Vous devez accepter la publication de votre recette sur le site beghin-say.fr !");
	}
	else {
		// envoi du formulaire
		var kw = {
			url: "/formulaires/recette_ok.asp",
			content: {},
			formNode: id_form,
			load: function(type, data) {
				// data = 0 données correctes
				// data = 1 données incorrectes
				
				if (parseInt(data) > 0) alert("Soumission impossible,\nun problème est survenu, veuillez réessayer ultérieurement !");
				else {
					buildDlg('/formulaires/alert.asp', 'typeMessage=merciAjoutRecette');
				}
			},
			error: function(type, error) {
				alert(String(type) + "\n" + String(error));
			},
			method: "POST",
			multipart: false
		};
		
		dojo.io.bind(kw);
	}
	
	return false;
}

/************ fin fonctions sur les formulaires ************/


/************ fonctions diverses ************/

function focusSearch(obj) {
	if (obj.value.RLTrim() == "Search") obj.value = "";
}

function blurSearch(obj) {
	if (obj.value.RLTrim() == "") obj.value = "Search";
}

function indexServer() {
	var ladate = new Date();
	var objSearch = dojo.byId("fSearch");
	var valSearch = objSearch.value.RLTrim();
	var lenSearch = valSearch.length;
	
	if ((lenSearch == 0) || (valSearch == "Search")) alert("Vous n'avez saisi aucune chaîne de caractères !");
	else {
		buildDlg('/wait.asp', '');
		
		loadStr = file("/site_portail/sessionSearch.asp?strSearch="+valSearch+"&anticache="+ladate.getTime());
		if (loadStr.readyState == 4) {
			newOnglet('/site_portail/FCK/File/footer/resultat_recherche.asp', '');
		}
	}
	
	return false;
}

function requestAjax(cible, url, pars) {
	var ladate = new Date();
	var urlFaux = "menuFaux.asp";
	
 	pars += "&anticache=" + ladate.getTime();
	
	if (url.indexOf(urlFaux) > -1) {
		// defer permet d'attendre l'éxécution du js lancé précédemment
		requestAjax.defer("accordion", "/site_portail/menuGauche.asp", "");
	}
	
	requestUpdate.defer(cible, url, pars);
}

function requestUpdate(cible, url, pars) {
	var myAjax = new Ajax.Updater(cible,
			url,
			{
			 method: 'get',
			 parameters: pars,
			 evalScripts: true,
			 onLoading: OnLoadContent(cible),
			 onComplete: OnUpdateRequestAjax(cible)
			});
}

function OnUpdateRequestAjax(cible) {
	/*if (cible == "accordion") {
		dojo.byId("loadMenu").style.display = "none";
	}*/
}

function OnLoadContent(cible) {
	if (cible == "accordion") {
		//buildDlg('/wait.asp', '');
		//dojo.byId("loadMenu").style.display = "block";
	}
}

function contDyn(cible, id, urlASP) {
	var path = '/site_portail/';
	var url = path+'include/'+urlASP;
	var pars = 'id='+id;
	pars += '&pathSite='+path;
	
	requestAjax(cible, url, pars);
}

function testSessionVisiteur() {
	//var ladate = new Date();
	//var xhr = file(serverPath+"/site_portail/sessionVisiteur.asp?anticache="+ladate.getTime());
	return true
	//if (xhr.responseText != "") return true;
	//else return false;
}

function file(fichier) {
	if (window.XMLHttpRequest) // FIREFOX
		xhr_object = new XMLHttpRequest();
	else if (window.ActiveXObject) // IE
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
	else
		return(false);
	
	xhr_object.open("GET", fichier, false);
	xhr_object.send(null);
	
	return xhr_object;
}

String.prototype.RLTrim = function () {
	/* =========================
 	supprimer les espaces initiaux et finaux
 	==========================
 	exemples :
 	alert("    exemple    ".RLTrim()); */
 	return this.replace(/(^\s*)|(\s*$)/g,"");
}


function gere_rss(num){
	for (var i=1;i<4;i++){
		if (i==num){
			$("reg_"+i).style.display="block";
			$("s"+i).style.display="block";
		}
		else{
			$("reg_"+i).style.display="none";
			$("s"+i).style.display="none";
		}
	}

}


/********** fin fonctions utiles **********/


/************ différents messages d'alertes présents dans les composants DOJO ************/
/********************* nécessaire à cause des caractères spéciaux ************************/

function AlreadyInAccueil() {alert("L'accès direct à cette page est déjà dans votre accueil personnalisé !");}

/************ fin différents messages d'alertes présents dans les composants DOJO ************/