function CreateActiveXRequest()
{
	try { return new ActiveXObject( "Msxml2.XMLHTTP.6.0" ) } catch( e ) {}
	try { return new ActiveXObject( "Msxml2.XMLHTTP.3.0" ) } catch( e ) {}
	try { return new ActiveXObject( "Msxml2.XMLHTTP" ) } catch( e ) {}
	try { return new ActiveXObject( "Microsoft.XMLHTTP" ) } catch( e ) {}
	return false;
}

function CreateRequest( cb )
{
	var request = false;

	if ( window.XMLHttpRequest )
	{
		try { request = new XMLHttpRequest(); } catch( e ) {}
	}
	else if ( window.ActiveXObject )
	{
		request = CreateActiveXRequest();
	}
	
	if ( !request ) { return false; }

	request.onreadystatechange = function()
	{
		var done = 4, ok = 200;
		if ( request.readyState == done &&
			 request.status == ok &&
			 request.responseText )
		{
			cb( request.responseText );
		}
	};
	
	return request;
}

function SendGetRequest( url, params, cb )
{
	try
	{
		var request = CreateRequest( cb );
		if ( !request ) return false;

		request.open( 'GET', url + "?" + params, true );
		request.send( null );
	}
	catch ( e )
	{
		return false;
	}
	
	return true;
}

function SendPostRequest( url, params, cb )
{
	try
	{
		var request = CreateRequest( cb );
		if ( !request ) return false;

		request.open( 'POST', url , true );

		request.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" );
		request.send( params );
	}
	catch ( e )
	{
		return false;
	}
	
	return true;
}