//----------------------------------------------------------------------------------
// Purpose       : Met XMLHTTP ophalen van data. Kan geschreven worden in een 
//				   container (layer) waarvan de id meegegeven kan worden. Ook
//				   XML response mogelijk, locale functie verwerkXmlLocal vereist,
//                 heeft betrekking op synchroon afwerken van de XMLHTTP actie en
//                 het teruggeven van het object.
//----------------------------------------------------------------------------------
// File          : xmlhttplib.js
// Creation date : 31-05-2006
// Mutation date : 
//----------------------------------------------------------------------------------
// Copyright     : FORTIUS Internet solutions
// Author        : M.J. Berkman
//----------------------------------------------------------------------------------
// Globale variabelen
//----------------------------------------------------------------------------------
var containerId;
var outputType;
var xmlHttp;
//----------------------------------------------------------------------------------
// showContent(url,pContainerIdm pOutputType)
//----------------------------------------------------------------------------------
function showContent(url,pContainerId,pOutputType) {
	containerId=pContainerId;
	outputType=pOutputType;
	xmlHttp=getXmlHttpObject(stateChanged)
	xmlHttp.open("POST", url , true)
	xmlHttp.send(null)
}
//----------------------------------------------------------------------------------
// stateChanged()
//----------------------------------------------------------------------------------
function stateChanged() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
		if (xmlHttp.status == 200) {
			// Check op Clientmessage in XML (foutmelding)
			if(xmlHttp.responseXML.getElementsByTagName("CLIENTMESSAGE").length > 0) {
				// de foutmelding wordt geschreven door een progress programma
				alert('Er is een technisch probleem opgetreden met het uitvoeren van de gevraagde pagina.\n\nDe foutmelding: ' + xmlHttp.responseXML.getElementsByTagName("CLIENTMESSAGE")[0].firstChild.nodeValue + '.');
			}
			else {
				// XHTML maken met XSL genoemd in appcase
				if(outputType=="XHTML") {
				  document.getElementById(containerId).innerHTML=xmlHttp.responseText;
				}
				// B2B call zonder XSL uit appcase
				else {
				  // als de response <HTML> bevat is daar een progress foutmelding
				  // standaard wordt er nu een alert gegeven.
				  if(xmlHttp.responseText.indexOf('<HTML>') == -1) {			  
				  	verwerkXmlLocal(xmlHttp.responseXML);
				  }
				  // Logging?
				  //else {
				  //alert('Er is een probleem opgetreden, dit is de response\n\n' + xmlHttp.responseText);	
				  //}
				}
			}
		}
        else {
        	alert('There was a problem with the request.\nHTTPRequest Status = ' + xmlHttp.status);
		}
	} 
    else {
    	//alert('Show status (logging).\nHTTPRequest Readystate = ' + http_request.readyState);
    }
}
//----------------------------------------------------------------------------------
// getXmlHttpObject(handler)
//----------------------------------------------------------------------------------
function getXmlHttpObject(handler)
{ 
	var objXmlHttp=null
	
	if (navigator.userAgent.indexOf("Opera")>=0) {
		alert("This site doesn't work in Opera") 
		return 
	}
	if (navigator.userAgent.indexOf("MSIE")>=0) { 
		var strName="Msxml2.XMLHTTP"
		if (navigator.appVersion.indexOf("MSIE 5.5")>=0) {
			strName="Microsoft.XMLHTTP"
		} 
		try { 
			objXmlHttp=new ActiveXObject(strName)
			objXmlHttp.onreadystatechange=handler 
			return objXmlHttp
		} 
		catch(e) { 
			alert("Error. Scripting for ActiveX might be disabled") 
			return 
		} 
	} 
	if (navigator.userAgent.indexOf("Mozilla")>=0) {
		objXmlHttp=new XMLHttpRequest()
		objXmlHttp.onload=handler
		objXmlHttp.onerror=handler 
		return objXmlHttp
	}
}
