var req;

function loadXMLDoc(url, method, content){
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open(method, url, true);
		if(method == 'POST'){
			req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			req.send(content);
		}
		else{
			req.send(null);
		}
		
		at = window.setTimeout("req.abort();", 5000);
	}
	else if(window.ActiveXObject){
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if(req){
			req.onreadystatechange = processReqChange;
			req.open(method, url, true);
			if(method == 'POST'){
				req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				if(content == null) content = '';
				req.send(content);
			}
			else{
				req.send();
			}
			
			at = window.setTimeout("req.abort();", 5000);
		}
	}
}

function processReqChange(){
	if(req.readyState == 4){
		clearTimeout(at);
		
		if(req.status == 200){
			response = req.responseXML.documentElement;
			
			method = '';
			if(response.getElementsByTagName('method')[0].firstChild != null){
				method = response.getElementsByTagName('method')[0].firstChild.data;			
			}

			code = '';
			if(response.getElementsByTagName('code')[0].firstChild != null){
				code = response.getElementsByTagName('code')[0].firstChild.data;
			}
			
			data = '';
			if(response.getElementsByTagName('data')[0].firstChild != null){
				data = response.getElementsByTagName('data')[0].firstChild.data;
			}
			
			if(method != ''){
				eval(method + '(code, data);');
			}
		}
		else{
			AlertAjaxError();
		}
	}
}

function AlertAjaxError(){
	alert("There was a problem retievin the XML data:\n" + req.statusText);
}

function ajax_error(code, data){
	div = GetObj('ajax_msg');
	if(!div) return;
	
	div.innerHTML = data;
	div.style.left = GetScreenMargin(self.screen.width, 300);
	div.style.top = GetScreenMargin(self.screen.height, 200);
	div.style.display = 'block';
	div.focus();
}

function aj_close_err(){
	div = GetObj('ajax_msg');
	if(!div) return;	
		
	div.style.display = 'none';
}
