/* fonctions de reduction et agrandissement de fenetres */

function enlarge(id, rubrique) {
    var myDiv = document.getElementById(id);
    var myDivLink = document.getElementById(id + "Link");
    myDiv.style.display = "";
    myDivLink.innerHTML = "<h3 class='title'>" + rubrique + " <a href='javascript:collapse(\"" + id + "\", \"" + rubrique + "\")' class='topLink'><img src='img/masquer.jpg'/></a></h3>";
}

function collapse(id, rubrique) {
    var myDiv = document.getElementById(id);
    var myDivLink = document.getElementById(id + "Link");
    myDiv.style.display = "none";
    myDivLink.innerHTML = "<h3 class='title'>" + rubrique + " <a href='javascript:enlarge(\"" + id + "\", \"" + rubrique + "\")' class='topLink'><img src='img/montrer.jpg'></a></h3>";
}

function reduceAll() {
    collapse("recherche", "recherche");
    collapse("result", "r&eacute;sultats");
    collapse("detail", "d&eacute;tail");
}

function enlargeAll() {
    enlarge("recherche", "recherche");
    enlarge("result", "r&eacute;sultats");
    enlarge("detail", "d&eacute;tail");
}

/* position initiale des fenêtres */
function initialWin() {
    enlarge("recherche", "recherche");
    collapse("result", "r&eacute;sultats");
    collapse("detail", "d&eacute;tail");
}



/* GESTION DES MESSAGES D'ERREURS */
/* cache la couche des messages d'erreurs */
function hideSombre() {
    document.getElementById("sombre").style.display = "none";
    document.getElementById("msg").style.display = "none";
    document.body.style.overflow = "";
}

/* modifie l'opacité de la couche des messages d'erreurs */
function opac(id, value) {
    if (!document.all) {
        document.getElementById(id).style.opacity = (value - 1) / 10;
    }
}

/* Affiche le message d'erreur ou de succès */
function showSombre() {
    opac("sombre", 0);
    
    document.getElementById("msg").style.display = "";
    opac('msg', 11);
    document.getElementById("sombre").style.display = "";
    for (i = 1; i < 9; i++) {
         str = "opac('sombre', " + i + ")";
         setTimeout(str, 40 * i);
    }
    document.body.style.overflow = "hidden";
    if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			document.getElementById("sombre").style.height = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			document.getElementById("sombre").style.height = document.body.offsetHeight;
		}
}

function displayMsg(msg) {
	document.getElementById("msg").innerHTML = "<p style='text-align:right;margin: 1px; padding:1px;'><input style='font-size: 10px; font-weight: bold; margin:0' type='button' value='x' onclick='hideSombre()' /></p>" + msg;
	window.scrollTo(0,0);
	showSombre();	
}
/* inscrit un message de succes ou d'erreur et l'affiche à l'écran */
function displayError(msg) {
    displayMsg("<p>" + msg + "</p><p class='closebox'><input type='button' value='OK' onClick='hideSombre()' /></p>");
}

/* inscrit un message de succes ou d'erreur et l'affiche à l'écran */
function displayConfirm(msg) {
    displayMsg("<p>" + msg + "</p><p class='closebox'><input type='button' value='OUI' onClick='hideSombre(); return true' /><input type='button' value='NON' onClick='hideSombre(); return false' /></p>");
}

function loginForm() {
		displayMsg("<form action='index.php' method='post'><table align='center'><tr><th>login: </th><td><input type='text' name='login' /></td></tr><tr><th>mot de passe: </th><td><input type='password' name='passwd' /></td></tr><tr><td colspan='2'><br /><input type='submit' value='Connexion' /></td></tr></table></form>");
}


function ModifProprioForm(nom, prenom, phone, email, proprio) {
		displayMsg("<input type='hidden' id='proprioId' value='"+ proprio +"' /><table align='center'><tr><th>Nom: </th><td><input type='text' id='proprioNom' value='"+ nom +"' /></td></tr><tr><th>Pr&eacute;nom: </th><td><input type='text' id='proprioPrenom' value='"+ prenom +"' /></td></tr><tr><th>T&eacute;l&eacute;phone: </th><td><input type='text' id='proprioPhone' value='"+ phone +"' /></td></tr><tr><th>E-mail: </th><td><input type='text' id='proprioEmail' value='"+ email +"' /></td></tr><tr><td colspan='2'><br /><input type='button' value='Mettre à jour' onClick='UpdateProprio()' /></td></tr></table>");
}



	// tableau de la liste des résultats
	var s;
	var actif = 0;
	
	
	/* recupere la liste des elements et initialise le menu de résultats */
	function LoadResults(query) {
		document.getElementById('allresults').innerHTML = "<p style='text-align:center; height:380px'><br /><br /><br /><br /><br /><br /><img src='img/loading.gif' /><br /><br /></p>";
		var xhr = getXhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				var ts = xhr.responseText.split("|");
				document.getElementById('allresults').innerHTML = ts[0];
				document.getElementById('lnRslt').innerHTML = ts[1];
				LoadElement(query);
			}
		}
		xhr.open("GET","inc/ajax/getResults.php?" + query, true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send(null);
	}
	
	
	function ChangeResults(query, act) {
		
		/*opac('lnRslt', value)
		document.getElementById('lnRslt').style.opacity = 0.2;*/
		var xhr = getXhr();
		
		// On défini ce qu'on va faire quand on aura la réponse
		xhr.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr.readyState == 4 && xhr.status == 200){
				var ts = xhr.responseText;
				document.getElementById('lnRslt').innerHTML = ts;
				for (i = 2; i <= 11; i++) {
						str = "opac('lnRslt', " + i + ")";
		        setTimeout(str, 40 * i);
		    }
				
				actif = act;
				HideNumbers(s);
				GetElement(s);
			}
		}
		xhr.open("GET","inc/ajax/getChangeResults.php?" + query, true);
		xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr.send(null);
		var k = 1;
		for (i = 10; i > 0; (i--, k++)) {
				str = "opac('lnRslt', " + i + ")";
        setTimeout(str, 40 * k);
    }
	}
	
	
/* recupere la liste des elements et initialise le menu de résultats */
	function LoadElement(query) {
		document.getElementById('test').innerHTML = "<p style='text-align:center'><img src='img/loader.gif' /><br /></p>";
		var xhr2 = getXhr();
		// On défini ce qu'on va faire quand on aura la réponse
		xhr2.onreadystatechange = function(){
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
			if(xhr2.readyState == 4 && xhr2.status == 200) {
				var ts = xhr2.responseText.split("|"); 
				eval(ts[0]);
				actif = ts[1];
				GetElement(s);
				if (s.length > 5)
						HideNumbers(s);
			}
		}
		xhr2.open("GET","inc/ajax/getNbPage.php?" + query, true);
		xhr2.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xhr2.send(null);
	}
	
	/* affiche les pages de résultats disponibles */
	function ShowNumbers(s) {
		var str = "<table>";
		for (i = 0; i < s.length; i++) {
			if (i % 8 == 0) 
					str += "<tr>";
			str += "<td style='text-align:center;width:60px;font-size:11px'>";
			if (i == actif)
				str += "<b class='thisActive'>";
			str += s[i];
			if (i == actif)
				str += "</b>";
			str += "</td>";
			if (i % 8 == 7 || i == s.length - 1) 
					str += "</tr>";
			document.getElementById('numbers').innerHTML = str + "</table>";
		}
		
		document.getElementById('numbers').style.display = '';	
		document.getElementById('show').innerHTML = "<a class='nbresult' style='cursor: pointer' onclick='HideNumbers(s)'>Masquer les " + s.length + " pages de r&eacute;sultats</a>";	
	}
	
	function HideNumbers(s) {
		document.getElementById('show').innerHTML = "<a class='nbresult' style='cursor: pointer' onclick='ShowNumbers(s)'>Montrer les " + s.length + " pages de r&eacute;sultats</a>";
		document.getElementById('numbers').style.display = 'none';	
	}
	
	function GetMin() {
		return parseInt(document.getElementById('min').value);
	}

	function GetMax() {
		return parseInt(document.getElementById('max').value);
	}
	
	function SetMin(min) {
		document.getElementById('min').value = parseInt(min);
	}

	function SetMax(max) {
		document.getElementById('max').value = parseInt(max);
	}		
	
	function isFull(s) {
		return GetMax() >= s.length; 
	}

	function isEmpty() {
		return GetMin() <= 0; 
	}

	function GetElement(s) {
		if (s.length < 2) {
			document.getElementById('test').innerHTML = "";
			return;
		}
		var str = "<table><tr>";
		
		for (i = GetMin(); i < GetMax(); i++) {
			str += "<td style='text-align:center;width:65px;font-size:11px'><font style='font-size:10px; color:#C9C9C9'>";
			str += (i + 1) + "</b> / <b>" + s.length + "</b></font><br />";
			
			str += (i == actif) ? "<b class='thisActive'" : "<b>";
			
			str += s[i] + "</b></td>";
		}
		document.getElementById('test').innerHTML = str + "</tr></table>";
		if (!isEmpty()) {
			document.getElementById('prev').innerHTML = " &laquo;";
			document.getElementById('first').innerHTML = "&laquo;&laquo; ";
		}
		else {
			document.getElementById('prev').innerHTML = "";
			document.getElementById('first').innerHTML = "";
		}

		if (!isFull(s)) {
			document.getElementById('next').innerHTML = " &raquo;";
			document.getElementById('last').innerHTML = " &raquo;&raquo;";
		}
		else {
			document.getElementById('next').innerHTML = "";
			document.getElementById('last').innerHTML = "";
		}
	}

	/* affiche les pages de résultats disponibles */
	function GetFirst() {
		if (isEmpty())
			return;
		SetMin(0);
		SetMax((GetMax() >= 5) ? 5 : GetMax());
		GetElement(s);
	}
	/* affiche les pages de résultats disponibles */
	function GetLast(s) {
		if (isFull(s))
			return;
		SetMin((s.length - 5 >= 0) ? s.length - 5 : 0);
		SetMax(s.length);
		GetElement(s);
	}

	/* affiche les pages de résultats disponibles */
	function GetPrevElement(s) {
		if (isEmpty())
			return;
		SetMin(GetMin() - 1);
		SetMax(GetMax() - 1);
		GetElement(s);
		p=setTimeout("GetPrevElement(s)", 400);
	}
	function StopPrev() {
		clearTimeout(p);
	}

	/* affiche les pages de résultats disponibles */
	function GetNextElement(s) {
		if (isFull(s))
			return;
		SetMin(GetMin() + 1);
		SetMax(GetMax() + 1);
		GetElement(s);
		n=setTimeout("GetNextElement(s)", 400);
	}

	function StopNext() {
		clearTimeout(n);
	}
	
	
	function resetSpan(span) {
		document.getElementById(span).innerHTML = "<img src='img/loader.gif' />";
		document.getElementById(span).style.display = 'none';
	}
	
