Q:

Retorno de conexão XMLHttpRequest

Tenho o seguinte código:
function httpGet(theUrl)
{
    var xmlHttp = null;

    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}
httpGet("www.xxxx.com.br/");

Como faço para testar se a URL Está ou não ATIVA? Por exemplo, ele tenta entrar nesse endereço, se ele não conseguir ele me retorna um Alert "Site fora do AR"?

A:

É bem simples, basta verificar a propriedade status da requisição AJAX. Por exemplo:
var xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', url, false);
xmlHttp.send();

xmlHttp.onreadystatechange = function() {
  if ( xmlHttp.readyState === 4 && xmlHttp.status === 200 ) {
    // Continuação do código
  } else {
    alert('Fora do ar');
  }
};

A:

Por ativa você quer dizer se houve alguma resposta?
Se sim, a maneira correta é utilizando um tempo de timeout.
A propriedade timeout do objeto XMLHttpRequest aceita um número em millisegundos de timeout, e a propriedade ontimeout é a (função) chamada quando este tempo é atingido.
xmlHttp.timeout = 10000; //10 segundos
xmlHttp.ontimeout = function() { alert('Parece que o site está fora do ar...'); }

status diferente de 200 não quer dizer o site está fora do ar!
Toda a família 200 do protocolo HTTP (201, 202, 203, 204...) têm significado de que a requisição foi bem sucedida.
Além de as respostas de redirecionamento (família 300) poderem também ser perfeitamente válidas (por exemplo o status 304 é retornado quando é utilizado o cache do browser e não uma nova requisição).
Mesmo os status de erro (400 e 500) não siginificam que o servidor está fora do ar. Estar fora do ar significa não responder; e para determinar isso utilizamos o tempo chamado de timeout.

