////////////////////////////
// FONCTIONS POUR L'AJAX //
///////////////////////////

var ajax_obj = new sack();

function trim(string)
{
	return string.replace(/(^\s*)|(\s*$)/g,'');
}
function urlencode(ch) {
   ch = ch.replace(/[ ]/g,"+") 
   return escape(ch) 
}
function urldecode(ch) {
   ch = ch.replace(/[+]/g," ")
   return unescape(ch)
}



//Fonction permettant de créer le pageflip
function ajaxCreatePageFlip()
{
	var url = "includes/ajax/ajaxCreatePageFlip.php";
	ajax_obj.requestFile = url;
	ajax_obj.onCompletion = function(){ ajaxCompletCreatePageFlip(); };
	ajax_obj.runAJAX();
}
function ajaxCompletCreatePageFlip()
{
	var splitReponse = ajax_obj.response.split("##");
	
	//Affichage du nombre de pages totales
	document.getElementById("pagesTotales").innerHTML = splitReponse[1];
	
	//Affichage des miniatures
	document.getElementById("vignettes").innerHTML = splitReponse[0];
	
	//Remplissage du sommaire
	if(splitReponse[2] != "<div></div>")
	{
		document.getElementById("linkSommaire").style.display = "inline";
		document.getElementById("sommaire").innerHTML = splitReponse[2];
	}
	
	//Remplissage du select aller a
	var contentSelectGoto = "<select name=\"numPage\" style=\"text-align:center; width:55px;font-size:10px;\">";
	for(i=1 ; i<=parseInt(splitReponse[1]) ; i++)
	{
		contentSelectGoto = contentSelectGoto + "<option value=\"" + i + "\" style=\"margin:0 auto 0 auto;\">" + i + "</option>";
	}
	contentSelectGoto = contentSelectGoto + "</select>";
	document.getElementById("selectAllerA").innerHTML = contentSelectGoto;
	
	//Remplissage du select de recherche des refs
	if(splitReponse[3] == "true")
	{
		document.getElementById("contentNavig").style.height = "230px";
		document.getElementById("selectSearchRef").innerHTML =  splitReponse[4];
		document.getElementById("searchRef").style.display = "inline";
	}
	
	//Création du lien pour le téléchargement du PDF
	ajaxGetPDF("linkPDF");
	
	//Affichage des bandeaux
	document.getElementById("bandeauHaut").style.visibility = "visible";
	document.getElementById("bandeauGauche").style.visibility = "visible";
}


//Fonction de recherche
function ajaxRecherche(table,nameCat)
{
	var valeur;
	var element = "";
	if (table=="textes")
	{
		valeur = trim(document.getElementById("searchText").keyword.value);
		element = "un/des mot(s) clé(s)";
	}
	else
	{
		valeur = trim(document.getElementById("searchRef").reference.value);
		element = "une référence";
	}

	if(valeur != "" && valeur != "nothing")
	{	
		//On regarde si on est en mode "Mon cat", si c'est le cas on récupère les numéro de page
		var GoodSelect = "";
		if(document.getElementById("blockTools").style.display == "none")
		{
			//On recupere le nom du cookie
			var nameCookie = "CatalogueVirtuel-Select-" + nameCat;
			//On lit le contenu du cookie
			var tabSelect  = readCookie(nameCookie);
			if ((tabSelect == "") || (tabSelect == null))
			{
				//Si on est en mode "Mon catalogue", on revient sur le cat général
				if(document.getElementById("blockTools").style.display == "none")
				{
					window.location = window.location;
				}
				else
				{
					alert("Votre sélection est vide.");
				}
			}
			else
			{
				//On cré un tableau des pages
				var splitTest = tabSelect.split("#");
				//On construit notre chaine contenant la liste des pages
				for (i=0; i<splitTest.length; i++)
				{
					if (splitTest[i]!="" && splitTest[i])
					{
						if(parseInt(splitTest[i])==1)
						{
							GoodSelect = GoodSelect + splitTest[i] + "-";	
						}
						else
						{
							GoodSelect = GoodSelect + splitTest[i] + "-";
							pageImpaire = parseInt(splitTest[i]) + 1;
							if(i == splitTest.length-1)
							{
								GoodSelect = GoodSelect + pageImpaire;
							}
							else
							{
								GoodSelect = GoodSelect + pageImpaire + "-";
							}
						}
					}
				}
			}
		}
		
		var url = "includes/ajax/ajaxRecherche.php?table=" + table + "&valeur=" + urlencode(valeur) + "&goodSelect=" + GoodSelect;
		ajax_obj.requestFile = url;
		ajax_obj.onCompletion = function(){ ajaxCompletRecherche(valeur); };
		ajax_obj.runAJAX();
	}
	else
	{
		alert("Vous devez saisir " + element + " avant de pouvoir effectuer une recherche.");
		if (table=="textes")
		{
			document.getElementById("searchText").keyword.select();
		}
	}
	
	return false;
}
function ajaxCompletRecherche(valeur)
{
	var splitReponse  = ajax_obj.response.split("##");
	
	if(splitReponse[0] == "true")
	{		
		document.getElementById("contenuSearch").innerHTML = urldecode(splitReponse[1]);
		showHideFlash("hide",false,false,false);
		
		//On change le bouton de retour dans le bandeau gauche
		backTo("catalogue",false);
	}
	else
	{
		alert("Aucun résultat n'a été trouvé pour \"" + valeur + "\".");	
	}
}

//Fonction permettant d'enregistrer le contenu d'un Post-It
function ajaxSaveContentPostIt(nameCat,numPostIt,textePostIt,xPosition,yPosition)
{	
	//On converti en entier la xPosition et la yPosition
	xPosition = parseInt(xPosition);
	yPosition = parseInt(yPosition);
	
	//On récupère le numéro de la page sur laquelle on se trouve
	var numPage = document.getElementById("numPageGauche").innerHTML;
	if(numPage == 0)
	{
		numPage = 1		
	}
	else
	{
		numPage = parseInt(numPage.replace(" - ",""));
		/*var splitNumPage = numPage.split(" /");
		numPage = parseInt(splitNumPage[0]);*/	
	}
	
	//On enlève les espaces de part et d'autres du texte
	textePostIt = trim(textePostIt);
	if(textePostIt == "")
	{
		textePostIt = false;
	}
	
	//On récupère l'identifiant stocké en cookie
	var nameCookie = "CatalogueVirtuel-PI-" + nameCat;
	var idCookie = readCookie(nameCookie);
	if(idCookie != null)
	{
		var createCookie = "false";
		var url = "includes/ajax/ajaxSaveContentPostIt.php?idCookie=" + idCookie + "&numPage=" + numPage + "&numPostIt=" + numPostIt + "&textePostIt=" + textePostIt + "&xPosition=" + xPosition + "&yPosition=" + yPosition;
	}
	else
	{
		var createCookie = "true";
		var url = "includes/ajax/ajaxSaveContentPostIt.php?idCookie=false&numPage=" + numPage + "&numPostIt=" + numPostIt + "&textePostIt=" + urlencode(textePostIt) + "&xPosition=" + xPosition + "&yPosition=" + yPosition;	
	}	
	ajax_obj.requestFile = url;
	ajax_obj.onCompletion = function(){ ajaxCompletSaveContentPostIt(createCookie,nameCat); };
	ajax_obj.runAJAX();
}
function ajaxCompletSaveContentPostIt(createCookie,nameCat)
{
	if(createCookie == "true")
	{
		//Création du nom du Cookie
		var nameCookie = "CatalogueVirtuel-PI-" + nameCat;
		
		//Initialisation de la durée du cookie à 1 an
		var expires = new Date;
		expires.setFullYear(expires.getFullYear()+1);
		
		//Tous le site
		var path = null;
		
		//Le domaine courant
		var domain = null;
		
		//Pas de sécurité
		var secure = false;
		
		//Ecriture du cookie
		document.cookie = nameCookie + "=" + escape(ajax_obj.response) + ((expires==null) ? "" : ("; expires=" + expires.toGMTString())) + ((path==null) ? "" : ("; path="+path)) + ((domain==null) ? "" : ("; domain="+domain)) + ((secure==true) ? "; secure" : "");	
	}
}


//Fonction permettant de récupérer le contenu d'un Post It
function ajaxRecupContentPostIt(nameCat,numPostIt)
{
	//Création du nom du Coookie
	var nameCookie = "CatalogueVirtuel-PI-" + nameCat;
	
	//On récupère le numéro de la page sur laquelle on se trouve
	var numPage = document.getElementById("numPageGauche").innerHTML;
	if(numPage == 0)
	{
		numPage = 1		
	}
	else
	{
		numPage = parseInt(numPage.replace(" - ",""));
		/*var splitNumPage = numPage.split(" /");
		numPage = parseInt(splitNumPage[0]);*/	
	}
	
	//On va récupérer l'identifiant de la personne dans le Coookie
	var idCookie = readCookie(nameCookie);
	if(idCookie != null)
	{
		var url = "includes/ajax/ajaxRecupContentPostIt.php?idCookie=" + idCookie + "&numPage=" + numPage + "&numPostIt=" + numPostIt;	
		ajax_obj.requestFile = url;
		ajax_obj.onCompletion = function(){ ajaxCompletRecupContentPostIt(numPostIt); };
		ajax_obj.runAJAX();	
	}
	else
	{
		alert("Erreur de cookie !");
	}
}
function ajaxCompletRecupContentPostIt(numPostIt)
{	
	if(ajax_obj.response != "##false##")
	{
		if(trim(ajax_obj.response) != "null" && trim(ajax_obj.response) != "")
		{
			getMovieName("pageflip").flashRecupContentPostIt(urldecode(ajax_obj.response),numPostIt);
		}
	}
	else
	{
		alert("Cette entrée n'existe plus en base de données !");
	}
}


//fonction permettant de supprimer un postIt
function ajaxRemovePostIt(nameCat,numPostIt)
{
	if(confirm("Etes-vous sûr de vouloir supprimer ce Post-It ?"))
	{
		//Création du nom du Coookie
		var nameCookie = "CatalogueVirtuel-PI-" + nameCat;
		
		//On récupère le numéro de la page sur laquelle on se trouve
		var numPage = document.getElementById("numPageGauche").innerHTML;
		if(numPage == 0)
		{
			numPage = 1		
		}
		else
		{
			numPage = parseInt(numPage.replace(" - ",""));
			/*var splitNumPage = numPage.split(" /");
			numPage = parseInt(splitNumPage[0]);*/	
		}
		
		//On va récupérer l'identifiant de la personne dans le Coookie
		var idCookie = readCookie(nameCookie);
		if(idCookie != null)
		{
			var url = "includes/ajax/ajaxRemovePostIt.php?idCookie=" + idCookie + "&numPage=" + numPage + "&numPostIt=" + numPostIt;	
			ajax_obj.requestFile = url;
			ajax_obj.onCompletion = function(){ ajaxCompletRemovePostIt(nameCat,numPostIt); };
			ajax_obj.runAJAX();	
		}
		else
		{
			ajaxCompletRemovePostIt(nameCat,1);
		}
	}
}
function ajaxCompletRemovePostIt(nameCat,numPostIt)
{
	//On efface le post-it de l'écran
	getMovieName("pageflip").flashRemovePostIt("remove",numPostIt);		
	//AJOUT D'UNE STAT 3C-->
	ajaxCreateStats(nameCat,"Supression post-it");
}


//Fonction permettant d'afficher à l'écran les Post-It contenus en base
function ajaxRecupPostIt(nameCat)
{
	if(document.getElementById("blockTools").style.display != "none")
	{
		//Création du nom du Coookie
		var nameCookie = "CatalogueVirtuel-PI-" + nameCat;
			
		//On récupère le numéro de la page sur laquelle on se trouve
		var numPage = document.getElementById("numPageGauche").innerHTML;
		if(numPage == 0)
		{
			numPage = 1		
		}
		else
		{
			numPage = parseInt(numPage.replace(" - ",""));
			/*var splitNumPage = numPage.split(" /");
			numPage = parseInt(splitNumPage[0]);	*/
		}
		
		//On va récupérer l'identifiant de la personne dans le Coookie
		var idCookie = readCookie(nameCookie);
		if(idCookie != null)
		{
			var url = "includes/ajax/ajaxRecupPostIt.php?idCookie=" + idCookie + "&numPage=" + numPage ;
			ajax_obj.requestFile = url;
			ajax_obj.onCompletion = function(){ ajaxCompletRecupPostIt(nameCat); };
			ajax_obj.runAJAX();
		}
	}
}
function ajaxCompletRecupPostIt(nameCat)
{
	if(ajax_obj.response != "false##")
	{
		var tabPI = ajax_obj.response.split("##");
		for(var i=1 ; i<tabPI.length-1 ; i++)
		{
			tabDonnees = tabPI[i].split("--");
 			getMovieName("pageflip").flashShowPostIt(tabDonnees[0],tabDonnees[1],tabDonnees[2]);
		}
	}
}

// Fonction permettant de créer le pageFlip de sélection
function ajaxSeeSelect(nameCat)
{	
	//on recupere le nom du cookie
	var nameCookie = "CatalogueVirtuel-Select-" + nameCat;
	
	//on lit le contenu du cookie
	var tabSelect  = readCookie(nameCookie);
	
	if ((tabSelect == "") || (tabSelect == null))
	{
		//Si on est en mode "Mon catalogue", on revient sur le cat général
		if(document.getElementById("blockTools").style.display == "none")
		{
			window.location = window.location;
		}
		else
		{
			alert("Votre sélection est vide.");
		}
	}
	else
	{
		//init variable
		var GoodSelect = "";
		
		// on cré un tableau des pages
		var splitTest = tabSelect.split("#");
		
		//on construit notre chaine contenat la liste des pages
		for (i=0; i<splitTest.length; i++)
		{
			if (splitTest[i]!="")
			{
				GoodSelect = GoodSelect + splitTest[i] + "-";
			}
		}
		
		//on recupere le numero de la derniere page
		numPageMax = parseInt(document.getElementById("pagesTotales").innerHTML);
		
		var url = "includes/ajax/ajaxSeeSelect.php?tabSelect=" + GoodSelect + "&NumMax=" + numPageMax;
		ajax_obj.requestFile = url;
		ajax_obj.onCompletion = function(){ ajaxCompletSeeSelect(); };
		ajax_obj.runAJAX();
	}
}
function ajaxCompletSeeSelect()
{
	//On affiche les Loading
	afficheLoading();
	
	//On masque le block selec 1 et on affiche le 2, et on enlève le MP et le PI
	document.getElementById("backToResults").style.display = "none";
	document.getElementById("backToCat").style.display = "none";
	document.getElementById("blockMaSelecFirst").style.display = "none";
	document.getElementById("blockMaSelecTwo").style.display = "inline";
	document.getElementById("blockTools").style.display = "none";
	document.getElementById("mpG").innerHTML = "";
	document.getElementById("mpD").innerHTML = "";
	
	//On affiche le nbre de page de la selec et on affiche les vignettes
	var splitReponse = ajax_obj.response.split("##");
	document.getElementById("pagesTotales").innerHTML = splitReponse[1];
	document.getElementById("vignettes").innerHTML = splitReponse[0];
	
	//Affichage du select aller a
	var contentSelect = "<select name=\"numPage\" style=\"text-align:center; width:55px;font-size:10px;\">";
	for(i=1 ; i<=parseInt(splitReponse[1]) ; i++)
	{
		contentSelect = contentSelect + "<option value=\"" + i + "\" style=\"margin:0 auto 0 auto;\">" + i + "</option>";
	}
	contentSelect = contentSelect + "</select>";
	document.getElementById("selectAllerA").innerHTML = contentSelect;
	
	//Création du lien pour le téléchargement du PDF perso
	ajaxGetPDF("linkPDFPerso");
} 
//Fonction permettant d'ajouter des stats 3c pour le pageflip
function ajaxCreateStats(nameCat,action)
{
	//var url = "includes/ajax/ajaxCreateStats.php?nameCat=" + nameCat + "&action=" + action;
	//ajax_obj.requestFile = url;
	//ajax_obj.onCompletion = function(){ /*rien*/ };
	//ajax_obj.runAJAX();
}


//Fonction permettant de télécharger le PDF du catalogue
function ajaxGetPDF(idLink)
{
	var url = "includes/ajax/ajaxGetPDF.php";
	ajax_obj.requestFile = url;
	ajax_obj.onCompletion = function(){ ajaxCompletGetPDF(idLink); };
	ajax_obj.runAJAX();
}
function ajaxCompletGetPDF(idLink)
{
	//On split le résultat
	tabResult = ajax_obj.response.split("##");
	
	if(idLink == "linkPDF")
	{
		document.getElementById("linkPDF").href = "http://demo.3c-e.com/pageflip-papn/pdfs/" + tabResult[2] + "/" + tabResult[1];
	}
	if(idLink == "linkPDFPerso")
	{
		//On récupère le nombre de pages totales
		var pagesTotales = tabResult[0];
		var lngTotale = pagesTotales.length;
		pagesTotales = parseInt(pagesTotales);
		
		//On recupere le nom du cookie
		var nameCookie = "CatalogueVirtuel-Select-" + tabResult[2];
		
		//On lit le contenu du cookie
		var tabSelect  = readCookie(nameCookie);

		//Init variable
		var GoodSelect = "";
		
		//On cré un tableau des pages
		var splitTest = tabSelect.split("#");
		
		//On construit notre chaine contenant la liste des pages
		for (i=0; i<splitTest.length; i++)
		{
			if (splitTest[i]!="")
			{
				nbrZero = "";
				for(j=0 ; j<(lngTotale-splitTest[i].length) ; j++)
				{
					nbrZero = nbrZero + "0";
				}
				
				if(parseInt(splitTest[i])==1)
				{
					GoodSelect = GoodSelect + nbrZero + splitTest[i] + "-";	
				}
				else
				{
					if(parseInt(splitTest[i])==pagesTotales)
					{
						GoodSelect = GoodSelect + nbrZero + splitTest[i];	
					}
					else
					{
						GoodSelect = GoodSelect + nbrZero + splitTest[i] + "-";
						pageImpaire = parseInt(splitTest[i]) + 1;
						if(i == splitTest.length-1)
						{
							GoodSelect = GoodSelect + nbrZero + pageImpaire;
						}
						else
						{
							GoodSelect = GoodSelect + nbrZero + pageImpaire + "-";
						}
					}
				}
			}
			
			document.getElementById("linkPDFPerso").href = "http://demo.3c-e.com/pageflip-papn/mon-pdf.asp?nameCat=" + tabResult[2] + "&namePDF=" + tabResult[1] + "&numsPage=" + GoodSelect;
		}
	}
}


//Fonction permettant d'afficher les surlignages des recherches
function ajaxSurlignage(nameCat,numPageShow,numPageSearch,texte,fichierXML)
{
	//On affiche le flash
	showHideFlash("show",numPageShow,nameCat,fichierXML); 
	
	//On change le bouton de retour dans le bandeau gauche
	backTo("resultats",false);
	
	//On marque un temps d'arrêt permettant l'affichage complet du flash, puis on lance le surlignage
	setTimeout("ajaxSurlignageGO(" + numPageSearch + ",'" + texte + "')",300);
}
function ajaxSurlignageGO(numPage,texte)
{
	var url = "includes/ajax/ajaxSurlignage.php?numPage=" + numPage + "&texte=" + texte;
	ajax_obj.requestFile = url;
	ajax_obj.onCompletion = function(){ ajaxCompletSurlignage(); };
	ajax_obj.runAJAX();	
}
function ajaxCompletSurlignage()
{
	//On split le résultat
	tabResult = ajax_obj.response.split("##");
	
	if(tabResult[0] == "true")
	{
		if(document.getElementById("contenuBas").style.display=="block" && document.getElementById("pageflip"))
		{
			for(var i=1 ; i<tabResult.length ; i++)
			{
				if(trim(tabResult[i]) != "")
				{
					eval(tabResult[i]);
				}
			}
		}
	}
}