
/* ------------------------------------------------------------------------------------------------------------------------------------------- */
/**
* A NOTER ::
* 
* Ces fonctions sont identiques, elles chargent une page dans un cadre.
* Dans le principe elle font la meme chose que la fonction "requete",
* mais en plus détaillé, c'est à dire que tu intervenir au moment 
* ou les données sont reçues.
* 
* J'ai crée une fonction qui s'occupent de chargé dans la
* colonne x ( paramètre : "numero_de_la_colonne" )
* une page HTML ( paramètre : "url_de_la_page" ).
* En prime, lorsque la fonction est appelée, elle enregistre
* la page chargée (l'url en parametre) dans un cookie, ce qui permettra,
* quand on rechargera la page, d'afficher les pages dans les colonnes...
* 
* Tu peux dupliquer / modifier la fonction et l'adapter...
* 
* Lorsque la variable "readyState" est égale à 4 c'est que le script à reçu les données à chargées,
* C'est donc à cette endroit de la fonction que tu peut faire telle ou telle action, comme modifier un cookie...
* Ces données sont contenues dans "ajax.xhr.responseText".
* 
* 
*/

/**
* Chargement des pages dans les colonnes
*/

function charge_colonne( numero_de_la_colonne , url_de_la_page )
  {
	var ajax = new get_xhr();
	ajax.xhr.open( "GET", url_de_la_page , true );
	ajax.xhr.onreadystatechange = function attente()
	  {
		if( ajax.xhr.readyState == 4 )	/* Données reçues ! */
		  {
			/* Enregistrement du la page chargée dans un cookie au nom de la colonne visée */
			setcookie( "colonne_" + numero_de_la_colonne , url_de_la_page );

			/* Chargement des données reçues dans la colonne correspondante */
			document.getElementById( "colonne_" + numero_de_la_colonne ).innerHTML = ajax.xhr.responseText;
		  }
	  };
	ajax.xhr.send(null);
	return;
  };



/**
* Charge toutes les pages via les valeurs des cookies
*/

function reload_pages()
  {
	var nombre_de_colonne = 5;

	for( i=1 ; i<nombre_de_colonne+1 ; i++ )
	  {
		var page = getcookie( "colonne_" + i );
		if( page != "" )
		  {
			charge_colonne( i , page );
		  }
	  }

  };


/* ------------------------------------------------------------------------------------------------------------------------------------------- */

/**
* Fonction qui charge une page (HTML ou PHP) dans une zone de la page (div/cellule/...)
*/

function requete( url , cadre )
  {
	var XHR = null;
	if(window.XMLHttpRequest)
	  {
		XHR = new XMLHttpRequest();
	  }
	else if(window.ActiveXObject)
	  {
		XHR = new ActiveXObject("Microsoft.XMLHTTP");
	  }
	else
	  {
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
	  }

	XHR.open("GET",url, true);
	XHR.onreadystatechange = function attente()
	  {
		if(XHR.readyState == 4)
		  {
			document.getElementById( cadre ).innerHTML = XHR.responseText;
		  }
		else
		  {
		  }
	  };
	XHR.send(null);
	return;
  };


/**
* Cree un objet ajax
*/

function get_xhr()
   {
	if(window.XMLHttpRequest)
	  {
		this.xhr = new XMLHttpRequest(); 
	  }
	else if(window.ActiveXObject)
	   { 
		try
		   {
			this.xhr = new ActiveXObject("Msxml2.XMLHTTP");
		   }
		catch(e) 
		   {
			this.xhr = new ActiveXObject("Microsoft.XMLHTTP");
		   }
	   }
	else 
	   {
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...\nGet Firefox :D !"); 
		this.xhr = false; 
	   } 
   };

/**
* Crée un cookie
*/

function setcookie( name , value )
  {
	var argv 	= setcookie.arguments;
	var argc 	= setcookie.arguments.length;
	var expires	= (argc > 2) ? argv[2] : null;
	var path	= (argc > 3) ? argv[3] : "/";
	var domain	= (argc > 4) ? argv[4] : null;
	var secure	= (argc > 5) ? argv[5] : false;

	document.cookie = name + "=" + escape(value)+
						((expires==null) ? "" : ("; expires="+expires.toGMTString())) +
						((path==null) ? "" : ("; path="+path)) +
						((domain==null) ? "" : ( "; domain="+domain ) ) +
						((secure==true) ? "; secure" : "");

  };

/**
* Retourne le contenu d'un cookie
*/

function getcookie( name )
  {
	var i, j;
	var cookie = document.cookie;
	i = cookie.indexOf( name );
	if(i==-1)
	  {
		return "";
	  }
	j = cookie.indexOf(";",i);
	if(j==-1)
	  {
		j = cookie.length;
	  }

	return unescape( cookie.substring( i + name.length + 1 , j ) );
  };



/* ------------------------------------------------------------------------------------------------------------------------------------------- */

/**
* Fonction qui recupère l'ancre dans l'URL
*/

function get_anchor()
  {
	return document.location.hash.substring( 1 );
  };





