	//TB 20061024 store a copy of the total responseXML
var objTotalXml = new Object();



function yuna_do_request()
{
	if (window.XMLHttpRequest)
	{
		objReq = new XMLHttpRequest();
		objReq.onreadystatechange = yuna_on_ready_state_change;
	}
	else if (window.ActiveXObject)
	{
		objReq = new ActiveXObject("Microsoft.XMLHTTP");
    if (objReq)
    {
			objReq.onreadystatechange = yuna_on_ready_state_change;
    }
  }
  yuna_send_request();
}

function yuna_send_request()
{
	blnRequestProcessed = false;
	objReq.open("POST", strXmlProgramFile, true);
	objReq.send('nothing');
}


function yuna_on_ready_state_change()
{
	if (objReq.readyState == 4)
	{
	   	if (objReq.status == 200)
	   	{
	   		strResponseText = objReq.responseText;
	   		objResponseXml = objReq.responseXML;

	   		//alert(strResponseText);
		 	//alert(objResponseXml);
			//alert(blnRequestProcessed);

				// added 04092006 MH, process_request() werd soms abusievelijk 4 x gefired
				// nu blnRequestProcessed vlag op true
				if (objResponseXml && blnRequestProcessed==false)
				{
					objTotalXml = objResponseXml.cloneNode(true);
					get_chunk_and_process(objResponseXml);
					blnRequestProcessed = true;
				}
	   	}
	}
}




function get_chunk_and_process(objResponseXml)
{
	var objNow = new Date();

		// future date, placeholder for the date found in the dag nodes
	var objDateFound = new Date();
	objDateFound.setFullYear(2010);
	objDateFound.setMonth(1);
	objDateFound.setDate(1);

	var blnDateFound = false;

	var arrNodesDag = objResponseXml.getElementsByTagName('dag');
	var objTheChunkToProcess = new Object();

	for (var i=0;i<arrNodesDag.length;i++)
	{
		var strDagDate = arrNodesDag[i].getAttribute('gids_datum');

		var objDagDate = new Date();
		objDagDate.setFullYear(strDagDate.substr(0,4));
		objDagDate.setMonth(strDagDate.substr(5,2));
		objDagDate.setDate(strDagDate.substr(8,2));

		if ( (objDagDate>objNow && objDagDate<=objDateFound))
		{
			objTheChunkToProcess = arrNodesDag[i];
				// set date of chunk to dagDate
			objDateFound.setFullYear(strDagDate.substr(0,4));
			objDateFound.setMonth(strDagDate.substr(5,2));
			objDateFound.setDate(strDagDate.substr(8,2));

			blnDateFound = true;
		}
	}

	if (blnDateFound==false)
	{
		var intLastNodeIndex = (arrNodesDag.length)-1;
		objTheChunkToProcess = arrNodesDag[intLastNodeIndex];
	}

		// nu dit weer in de (lege) zender-node plakken (ivm zendercode) en het geknutsel is klaar
	arrZenderNodes = objResponseXml.getElementsByTagName('zender');
	objZenderNode = arrZenderNodes[0];
	strZenderKode = objZenderNode.getAttribute('zenderkode');

	while (objZenderNode.hasChildNodes())
	{
	  objZenderNode.removeChild(objZenderNode.firstChild);
	}

	objZenderNode.setAttribute('zenderkode',strZenderKode);
	objZenderNode.appendChild(objTheChunkToProcess);

		// nu nog de lege nebo_gids_export
	objConstructedXml = objResponseXml.getElementsByTagName('nebo_gids_export')[0];
	while (objConstructedXml.hasChildNodes())
	{
	  objConstructedXml.removeChild(objConstructedXml.firstChild);
	}
	objConstructedXml.appendChild(objZenderNode);

		// klaar, parsen voordat het uit elkaar valt.
	process_request(objConstructedXml);
}



