<!--

/**
 * AJAX - <js/ajax.js>
 * version 1.0
 *
 * ***********************************************************************************************
 *
 * Denne funktion indeholder ajax-klassen, som bruges til at oprette interaktion mellem klient og
 * server, ved at sende & hente mindre mængder data.
 *
 * ***********************************************************************************************
 *
 * iTechnic - <http://www.itechnic.dk>, <kontakt@itechnic.dk>
 * Copyright (c) 2006+ iTechnic, all rights reserved.
 */

/**
 * ajax
 * version 1.0
 *
 * ***********************************************************************************************
 *
 * Denne funktion initialiserer ajax-manageren.
 *
 * Dette gøres ved at oprette et XMLHttpRequest-objekt, samt gemme relevante informationer som an-
 * givet i parametrene.
 *
 * ***********************************************************************************************
 *
 * param	string	url							Bruges til at angive hvilken side der skal hentes.
 * param	string	var							Bruges til at angive eventuelle variabler.
 * param	func		handler					Bruges til at angive en funktion, som skal kaldes når indholdet er hentet.
 * param	mixed		param						Bruges til at angive eventuelle parametre til funktionen.
 * ...		...			...							...
 */
function ajax(){
	/* Tjek om browseren understøtter AJAX */
	if(!document.getElementById)
		return false; /* Afbryd funktionen, da browseren ikke understøtter AJAX */

	/* Hent argumenterne/parametrene */
	var args=ajax.arguments;
	var handler=args[2];

	/* Start med at oprette et XMLHttpRequest-objekt */
	var requestManager=(window.ActiveXObject)?new ActiveXObject('Microsoft.XMLHTTP'):new XMLHttpRequest();

	/* Tilføj en funktion til at håndtere readystatechange-eventet */
	requestManager.onreadystatechange=
	function(){
		/**
		 * Tjek om filen er downloadet.
		 *
		 * readyState = 4 tjekker, om filen er downloadet.
		 * status = 200 tjekker, om der opstod en fejl under downloading.
		 */
		if(requestManager.readyState == 4 && requestManager.status == 200)
			/* Tjek om brugeren har tilføjet en handler-funktion */
			if(handler) handler(requestManager.responseText, args); /* Hent listen over parametre */
	}

	/* Sørg for at siden ikke bliver hentet fra cache (tilføj &rand=) */
	args[1]+=(args[1]?'&rand=':'rand=')+(new Date().getTime());

	/* Begynd at hente siden */
	requestManager.open('GET',args[0]+'?'+args[1],true);
	requestManager.send(null);
}

// -->