function createXMLHTTPObject ( )
{
	var XMLHttpFactories = [
		function ( ) { return new XMLHttpRequest( ) },
		function ( ) { return new ActiveXObject ( "Msxml2.XMLHTTP" ) },
		function ( ) { return new ActiveXObject ( "Msxml3.XMLHTTP" ) },
		function ( ) { return new ActiveXObject ( "Microsoft.XMLHTTP" ) }
	];
	var xmlhttp = false;
	
	for ( var i = 0; i < XMLHttpFactories.length; i++ )
	{
		try 
		{ 
			xmlhttp = XMLHttpFactories[i]( ); 
		} 
		catch (error) 
		{
			continue;
		}
		break;
	}
	
	return xmlhttp;
}

function sendRequest ( url, callback )
{
	var req = createXMLHTTPObject ( );
	if ( !req ) return;
	
	req.open ( "GET", url, true );
	req.onreadystatechange = function ( )
	{
		if ( req.readyState != 4 ) return;
		if ( req.status != 200 && req.status != 304 ) 
		{
			alert ( "HTTP error " + req.status );
			return;
		}
		callback ( req );
	}
	if ( req.readyState == 4 ) return;
	req.send ( null );
}