// Variables globales
var xmlHttp;
var xmlHttp1;
var xmlHttp2;
var glRubrique;
var glURL;
var glUrlIframe;
var glUrlIframeOldIE;

glURL = '';
glRubrique = '';

// Fonction d'affichage du résultat de la recherche
// ATTENTION : APPEL SYNCHRONE DE L'AUTRE PAGE SUR LE SERVEUR : ON ATTEND LA FIN DE SON EXECUTION AVANT L'AFFICHAGE
function findArticles(PUrl) {
 var lParam;

 // Je supprime le innerHTML de la DIV_RESULTAT  afin d'afficher la mire d'attente
 document.getElementById('div_resultat').innerHTML = '';
 
 lParam = '?ID=' + glRubrique;
 lParam = lParam + '&p1=' + document.getElementById('sel_nbaff_par_page').value + '&p2=' + document.getElementById('page_en_cours').value;
 lParam = lParam + '&p3=' + document.getElementById('input_texte_recherche').value;
 xmlHttp=GetXmlHttpObject();
 if (xmlHttp==null) {
  alert ("Browser does not support HTTP Request");
  return;
 }
 
 var url= PUrl + lParam + "&nocache=" + Math.random();
 //"?nocache=" + Math.random();
 
 
 // Ancien code asynchrone
 xmlHttp.onreadystatechange=stateVisibilityResultatRecherche;
 xmlHttp.open("GET",url,true); // asynchrone // IE NE FONCITONNE PAS
 xmlHttp.send(null);
 // FIN CODE ASYNCHRONE
 
 // // CODE SYNCHRONE
 // xmlHttp.open("GET",url,false); // synchrone : FONCTIONNE PAS SOUS FIREFOX
 // xmlHttp.send(null);
 // // // Suppression de l'ancienne navigation
 // // var node = document.getElementById('div_resultat');
 // // var childrenNumber = document.getElementById('div_resultat').childNodes.length;
 // // for (i = 0; i < childrenNumber; i++) {
	// // //alert('childrenNumber : '+childrenNumber);
	// // elem = node.childNodes[0];
	// // //elem.onclick = "";
	// // elem.parentNode.removeChild(elem);
 // // }
 // // // Si synchrone, je peux interpréter directement le résultat ici car le jaavscript attend la réponse
 // document.getElementById('div_resultat').innerHTML = xmlHttp.responseText;
 // document.getElementById('page_max').value=document.getElementById('pmax').value; // Si champ INPUT
 // document.getElementById('div_nbarttrouve').innerHTML=document.getElementById('nbarticletrouve').value; // Si DIV
 // // FIN CODE SYNCHRONE
}

function construitMenu(PUrl) {
 var lParam = '';
 var ID ;//= document.getElementById('rubniv1').value;
 lParam = '?p1=' + glRubrique;
 //alert(glRubrique);
 xmlHttp1=GetXmlHttpObject();
 if (xmlHttp1==null) {
  alert ("Browser does not support HTTP Request");
  return;
 }
 var url= PUrl + lParam + "&nocache=" + Math.random();
 //"?nocache=" + Math.random();
 // code asynchrone
 xmlHttp1.onreadystatechange=stateVisibilityMenu;
 xmlHttp1.open("GET",url,true); // asynchrone
 xmlHttp1.send(null);
}

// 
//function goRubrique(pRubrique) {
function goRubrique() {
 if (document.getElementById('sel_rubrique')) {
	//glRubrique = document.getElementById('sel_rubrique').value;
	if (document.getElementById('sel_rubrique').value == '-555' && trim(document.getElementById('input_texte_recherche').value) != '') {
		glRubrique = '';
	}
	else {
		glRubrique = document.getElementById('sel_rubrique').value;
	}
 }
 else {
	glRubrique = '';
 }
}

// Fonction permettant de naviger quand clic sur une page ou un bouton de navigation de page
function goPage(PURL,pNouvellePage) {
 var elem;
 var newElem;
 var i;
 var tmp;
 var lpmax;

 glURL = PURL;
 
 document.getElementById('page_en_cours').value = pNouvellePage;
 document.getElementById('nb_article_par_page').value = document.getElementById('sel_nbaff_par_page').value;
 
 findArticles(PURL);
}

function afficheNavigation() {

 pNouvellePage = document.getElementById('page_en_cours').value;
 // J'attends la fin de l'exécution de la page ajax
 // Je suis obliger de faire afficher cette boucle car si traitement ajax synchrone : OK sous IFREFOX et OPERA mais KO pour IE et GOOGLE CHROME
 // Donc appel ajax asynchrone et boucle pour attendre l'affichage des résultats
 //while (document.getElementById('div_resultat').value=='') {window.focus(); }
 
 lpmax = document.getElementById('page_max').value;

 var node = document.getElementById('div_navigation');
 // Suppression de l'ancienne navigation
 var childrenNumber = document.getElementById('div_navigation').childNodes.length;
 for (i = 0; i < childrenNumber; i++) {
	elem = node.childNodes[0];
	//elem.onclick = "";
	elem.parentNode.removeChild(elem);
 }
 
 // Mise en place de la nouvelle navigation
 var tab=new Array;
 var pagedeb = pNouvellePage-4;
 for (i = 0; i < 9; i++) {
	if (pNouvellePage <= 5) {
		tab[i] = i+1;
	}
	else {
		//if (pNouvellePage > lpmax-4) { tab[i] = lpmax - 8 + i; } // ANCIEN CODE
		if (pNouvellePage > lpmax-4) {
			// Gestion des cas particulier si lpmax =6,7,8 ou 9 (ne pas afficher de négatif, de 0 et ne pas afficher 1 en fonction de la page en cour (pNouvellePage)
			if (lpmax > 5 && lpmax < 10) { tab[i] = i + 1; }
			else { tab[i] = lpmax - 8 + i; }
		}
		else { tab[i] = pagedeb + i; }
	}
 }
 
 if (lpmax != 0) {
	 var newElem = document.createElement("span");
	 tmp = tab[i];
	 newElem.className = 'spanafflibpage';
	 newElem.id = 'spanafflibpage';
	 newElem.innerHTML = 'Pages';
	 //newElem.style.width = '50px';
	 //newElem.style.textAlign = 'left';
	 node.appendChild(newElem);
 }

 // Gestion du cas où nous ne sommes pas sur la première page
 if (pNouvellePage != 1) {
	 var newElem = document.createElement("a");
	 newElem.className = 'aprem';
	 newElem.id = 'aprem';
	 //newElem.innerHTML = '<<<';
	 newElem.innerHTML = '&lt;&lt;';
	 newElem.href = "javascript:void(null);";
	 newElem.onclick = function(){goPage(glURL,1); }
	 node.appendChild(newElem);
	 var newElem = document.createElement("a");
	 newElem.className = 'apreced';
	 newElem.id = 'apreced';
	 newElem.innerHTML = '&lt;'; //'<<';
	 newElem.href = "javascript:void(null);";
	 //newElem.style.width = '40px';
	 //newElem.style.textAlign = 'center';
	 newElem.onclick = function(){goPage(glURL,eval(pNouvellePage)-1); }
	 node.appendChild(newElem);
 }
 for (i = 0; i < 9; i++) {
	 if (tab[i] > lpmax) { break; }
	 if (tab[i] != pNouvellePage) {
		 var newElem = document.createElement("a");
		 tmp = tab[i];
		 newElem.className = 'anav';
		 newElem.id = 'a'+tmp;
		 newElem.innerHTML = tmp;
		 newElem.href = "javascript:void(null);";
		 //newElem.onclick = function(){goPage(PURL,tab[i]); }  // NE FONCITONNE PAS, indique toujours la dernière valeur de tab[i]
		 switch (i) {
			 case 0 :
				newElem.onclick = function(){goPage(glURL,tab[0]); }
				break;
			 case 1 :
				newElem.onclick = function(){goPage(glURL,tab[1]); }
				break;
			 case 2 :
				newElem.onclick = function(){goPage(glURL,tab[2]); }
				break;
			 case 3 :
				newElem.onclick = function(){goPage(glURL,tab[3]); }
				break;
			 case 4 :
				newElem.onclick = function(){goPage(glURL,tab[4]); }
				break;
			 case 5 :
				newElem.onclick = function(){goPage(glURL,tab[5]); }
				break;
			 case 6 :
				newElem.onclick = function(){goPage(glURL,tab[6]); }
				break;
			 case 7 :
				newElem.onclick = function(){goPage(glURL,tab[7]); }
				break;
			 case 8 :
				newElem.onclick = function(){goPage(glURL,tab[8]); }
				break;
			 case 9 :
				newElem.onclick = function(){goPage(glURL,tab[9]); }
				break;
		 }
		 node.appendChild(newElem);
	 }
	 else {
		 var newElem = document.createElement("span");
		 tmp = tab[i];
		 newElem.className = 'spannav';
		 newElem.id = 'span'+tmp;
		 newElem.innerHTML = tmp;
		 node.appendChild(newElem);
	 }
 }
 // Affichage de la naviation suivant et dernière page
 if (lpmax > 1 && pNouvellePage != lpmax) {
	 var newElem = document.createElement("a");
	 newElem.className = 'asuiv';
	 newElem.id = 'asuiv';
	 newElem.innerHTML = '&gt;'; //'>';
	 newElem.href = "javascript:void(null);";
	 newElem.onclick = function(){goPage(glURL,eval(pNouvellePage)+1); }
	 node.appendChild(newElem);
	 var newElem = document.createElement("a");
	 newElem.className = 'adernier';
	 newElem.id = 'adernier';
	 newElem.innerHTML = '&gt;&gt;'; //'>>';
	 newElem.href = "javascript:void(null);";
	 newElem.onclick = function(){goPage(glURL,lpmax); }
	 node.appendChild(newElem);
 }

}


// Fonction d'affichage de la page web exécuté
function stateVisibilityResultatRecherche() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{ 
		 document.getElementById('div_resultat').innerHTML = xmlHttp.responseText;
		 document.getElementById('page_max').value=document.getElementById('pmax').value; // Si champ INPUT
		 document.getElementById('div_nbarttrouve').innerHTML=document.getElementById('nbarticletrouve').value; // Si DIV
		 afficheNavigation();
		 resizeImage();
	} 
	else {
		
		if (document.getElementById('div_resultat').innerHTML == '') {

			var ltmp;
			var lposdeb, lposfin;
			var versionNavig;
			ltmp = navigator.appVersion;
			lposdeb = eval(ltmp.indexOf('MSIE',0)+5)
			lposfin = eval(ltmp.indexOf(';',lposdeb))

			if (navigator.appName == 'Microsoft Internet Explorer') {
				versionNavig = eval(ltmp.substring(lposdeb,lposfin));
			}
			
			//document.getElementById('div_resultat').innerHTML = glUrlIframe;

			if ( (navigator.appName != 'Microsoft Internet Explorer') || (navigator.appName == 'Microsoft Internet Explorer' && versionNavig >= 7)) {
				// Tous les autres navigateurs
				document.getElementById('div_resultat').innerHTML = glUrlIframe;
			}
			else {
				// Ancien IE : versions < 7.0
				//document.getElementById('div_resultat').innerHTML = "Recherche en cours...";
				//alert('OLD IE');
				var node = document.getElementById('div_resultat');
				var newElem = document.createElement('div');
				newElem.className = 'div_img_attente';
				newElem.id = 'div_img_attente';
				newElem.href = "javascript:void(null);";
				node.appendChild(newElem);
			}
		}
 	}
}

// Fonction d'affichage du menu
function stateVisibilityMenu() {
	if (xmlHttp1.readyState==4 || xmlHttp1.readyState=="complete")
	{ 
		//document.getElementById('div_menuprincipal').innerHTML='';
		document.getElementById('div_menuprincipal_dynamique').innerHTML=xmlHttp1.responseText;
	} 
}

// Fonction retournant un objet XMLHttp
function GetXmlHttpObject() { 
 var objXMLHttp=null;
 if (window.XMLHttpRequest) {
  objXMLHttp=new XMLHttpRequest();
 }
 else if (window.ActiveXObject) {
  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 return objXMLHttp;
}




