/**
  * XML function by Christian Gleerup
  * non thread safe xml functions.
  * cg@mybanker.dk
  */

var requester = null
	
function selectNode(_nodename, _tree) {
	
	if (!_nodename || !_tree) {
		return false;
	}
	
	writeMessage('>searchin for node \'' + _nodename +"\'[br]");
	toSearch = new Array();
	
	if (_tree.nextSibling) {
		toSearch.push(_tree.nextSibling);
	
	} else if (_tree.firstChild) {
		toSearch.push(_tree.firstChild);
	
	} else {
		writeMessage('Emty tree, exiting[br]');
		return false;	
	}
		
	while (elementToCheck = toSearch.pop() ) {
		
		
		//se om dette er noden vi leder efter
		writeMessage(elementToCheck.nodeName + "[br]");
		if (elementToCheck.nodeName==_nodename) {
			return elementToCheck;
		}
		
		//kig om denne har børn der efterfølgende skal undersøges.
		if (elementToCheck.firstChild) {
			toSearch.push(elementToCheck.firstChild);
		}
		
		// undersøg nodens søskende
		if (sibling = elementToCheck.nextSibling)
		do {
			
			//se om dette er noden vi leder efter
			writeMessage(sibling.nodeName + "[br]");
			if (sibling.nodeName==_nodename) {
				return sibling;
			}
			//kig om denne har børn der efterfølgende skal undersøges.
			if (sibling.firstChild) {
				toSearch.push(sibling.firstChild);
			}
		} while (sibling = sibling.nextSibling);
		
	} //end while [no more elements to check
	
	writeMessage('element not found');

}


function printNodeInfo(_node) {
	writeMessage(" Node object: " + _node+"[br] ");
	writeMessage(" | Node Name : " + _node.nodeName);
	writeMessage(" | Node Type : " + _node.nodeType);
	
	if (_node.nodeType==3) {
		writeMessage(_node.data);
	}
	
	
	writeMessage(" | #Childs : " + _node.childNodes.length+"[br] ");
}

function newRequester() {
	
	try {
	 var requester = new XMLHttpRequest();
	} catch (error) {
	 try {
	   var requester = new ActiveXObject("Microsoft.XMLHTTP");
	 } catch (error) {
	   return false;
	 }
	}
	return requester;
}

function exchangeData(_url, _eventHandler) {

	//setup paassword requester
	requester = newRequester();
	requester.onreadystatechange = _eventHandler;
	requester.open("GET",  _url, true);
	requester.send(null);
}
