/**
 * ajaxPostForm - POST een form, verwacht een bepaalde xml response
 *                en geeft deze door aan aCallbackFunction
 *
 *  Verwachte response:
 *    <reponse>
 *        <returnValue>1</returnValue>
 *        <html>content die afgehandeld moet worden</html>
 *    </resonse>
 *
 * Prototype van aCallbackFunction: function (returnValue, html) { ... }
 *
 */
function ajaxPostForm(aFormId, aCallbackFunction) {
	// antwoord van de sever ontvangen
	var s = function(o) {
		// geldig xml antwoord?
		if (o.responseXML == null) {
			alert('Geen geldig antwoord van de server ontvangen: '+o.responseText);
			return;
		}
		
		// xml waardes ophalen
		var returnValue = getTextByTagName(o.responseXML, 'returnValue');
		var html = getTextByTagName(o.responseXML, 'html');;
		
		// functie aanroepen dat wat met de returnValue & html doet
		aCallbackFunction(returnValue, html);
	}
	
	// 404 response of iets dergelijks
	var f = function(o) {
		alert('Ongeldige pagina opgevraagd');
	}
	
	$(aFormId).request({onSuccess: s, onFailure: f});
}

/**
 *  getTextByTagName() - haalt tekst op in tagname
 *
 *  Voorbeeld: <response><result>Bla !</result><result>Nog een bla!</result></response>
 *
 * getTextByTagName(xmlDoc, 'result') == 'Bla !'
 *
 */
function getTextByTagName(aXmlDocument, aTagName) {
	var e = aXmlDocument.getElementsByTagName(aTagName).item(0);
	
	var data = '';
	// firefox deelt de data op in verschillende childNodes bij een bepaalde lengte :/
	for(var x=0; x < e.childNodes.length; x++) {
		data += e.childNodes[x].nodeValue;
	}
	
	return data;
}

/**
 * setErrors() - zet de error velden met de opgegeven invoer
 *
 *	Voorbeeld invoer:
 *		naam:Ongeldige naam opgegeven
 *		leeftijd:Ongeldige leeftijd opgegeven
 *
 *  Het script zoekt naar de velden 'naam_error' en 'leeftijd_error' 
 *  en zet daar de betreffende waarden
 *
 */
function setErrors(input) {
	var lines = input.split('\n');
	for(var x=0; x < lines.length; x++) {
		var pos = lines[x].indexOf(':');
		
		var key = lines[x].substr(0, pos);
		var value = lines[x].substr(pos+1);
		
		// veld bestaat?
		if ($(key + '_error'))
			$(key + '_error').innerHTML = value;
	}
}

function ajaxGetToDiv(aDivId, aUrl) {
	new Ajax.Updater(aDivId, aUrl, {method: 'GET'});
}

