// 
// Sympatico MSN Autos Gadget - Copyright 2007.
//
// HTTP.js - HTTP GET/POST Utils
// This library contains methods and functions for sending/receiving client-side HTTP requests


var HTTP = {

	////////////////////////////////////////////////////////////////
	// Creates and returns an new XMLHTTPRequest object.
	newRequest: function() {
	
		return new ActiveXObject("Microsoft.XMLHTTP");
	
	},
	
	////////////////////////////////////////////////////////////////
	// Uses XmlHttpRequest to fetch a text document from a specified
	// URL asynchronously, passing the returned data to a callback
	// function.
	getText: function(url, callback) {
	

		var request = HTTP.newRequest();
		request.open("GET", url);
		request.onreadystatechange = function() {
			if(request.readyState == 4 && request.status == 200)
				callback(request.responseText);
		}
		
		request.send(null);

	
	},
	
	////////////////////////////////////////////////////////////////
	// Use XMLHttpRequest to fetch an XML document from a specified
	// URL asynchronously, passing the returned data to a callback
	// function.
	getXML: function (url, callback) 
	    {
		try 
		{
			var request = HTTP.newRequest();
			request.open("GET", url);
			request.onreadystatechange = function() {
				if (request.readyState == 4 && request.status == 200)
						callback(request.responseXML);
			}
			
			request.send(null);
		} catch (e) 
		{
			throw new Error("HTTP.getXML failed to retrieve requested document: " + e.message);
		}
	},
	
		////////////////////////////////////////////////////////////////
	// Use XMLHttpRequest to fetch an XML document from a specified
	// URL asynchronously, passing the returned data to a callback
	// function.
	getXMLSync: function (url, callback) 
	    {
		try 
		{
			var request = HTTP.newRequest();
			request.open("GET", url);
			request.onreadystatechange = function() {
				if (request.status == 200)
						callback(request.responseXML);
			}
			
			request.send(null);
		} catch (e) 
		{
			throw new Error("HTTP.getXML failed to retrieve requested document: " + e.message);
		}
	}
}