// tinyajax.js

function makeRequest(url,output_type) {
	var http_request = false;
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
        	http_request.overrideMimeType('text/xml');            
        }
    }else if (window.ActiveXObject) { // IE    	
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");			
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		try {
			showAlertBox('Giving up :( Cannot create an XMLHTTP instance');
		}catch(e){alert('Giving up :( Cannot create an XMLHTTP instance');}
		return false;
	}
	if (output_type) {
		http_request.onreadystatechange = function() { handleResponse(http_request,output_type); };
	}
	http_request.open('GET', url, true);
    http_request.send(null);
}

function handleResponse(http_request,output_type) {
	if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc;
		    switch(output_type){
				case "xml":				
					if (window.ActiveXObject){
						try {
							var parser = new DOMImplementation();
							var domDoc = parser.loadXML(http_request.responseText);
							xmldoc = domDoc.getDocumentElement();
						} catch(e){}
 					} else if (window.XMLHttpRequest){
 						xmldoc = http_request.responseXML;
					}
					break;
				default:
					xmldoc = http_request.responseText;
			}
			getResponse(xmldoc);
		} else if (http_request.status == 999) {
			showRuntimeError();
		} else if (http_request.status == 998) {
			showBadRequestError();
		} else if (http_request.status == 400) {
			showBadRequestError();
		} else if (http_request.status == 401) {
			showUnauthorizedError();
		} else {
			try {
				showAlertBox('There was a problem with the request.');
			}catch(e){alert('There was a problem with the request.');}
		}
	}
}
function showUnauthorizedError(){
	try {
		showAlertBox('You are not authorized.');
	}catch(e){alert('You are not authorized.');}
}
