function instanciaAjax(){
	if(typeof(XMLHttpRequest)!='undefined'){return new XMLHttpRequest();}
	var xmlajax=['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'];
	for(var i=0;i<xmlajax.length;i++){
		try {return new ActiveXObject(xmlajax[i]);}catch(e){}
	}
	return null;
}
		
function getText(obj){
	var text;
	var alvo = objDom(obj);
	if (alvo.innerText) {text=alvo.innerText;}
	else if (alvo.textContent){text=alvo.textContent;}
	else {text=false;}
	return text;
} 

function objDom(oDom, oType, doc){
	var doc, oObj;
	if(!doc) {doc = document;}
	oType = (!oType) ? "id" : oType;
	if(typeof(oDom) == 'objetc' && doc.all){oObj=doc.all[oDom];}
	for (var i=0; !oObj && doc.forms && i< doc.forms.length; i++) 
		{oObj=doc.forms[i][oDom];}
	if(!oObj && typeof(oDom) == 'string'){
		if(oType == 'id'){
			oObj=doc.getElementById(oDom);
		}else if (oType == 'tag'){
			oObj=doc.getElementsByTagName(oDom);
		}else if (oType == 'class'){
			oObj=getElementsByClassName(oDom, doc);
		}
	}
	if(!oObj){
		try{
			var tagDom=oDom.tagName;
			oObj=oDom;
		} catch(e) {oObj=false}
	}
	return oObj;
}

/*function devolveMsgErro(erro)
	{switch(erro)
		{case 0: erro="Erro indefinido de Javascript";
         case 400: erro="Erro 400: Solicita&ccedil;&atilde;o incompreens&iacute;vel"; break;
         case 403: case 404: erro="404: A p&aacute;gina solicidata n&atilde;o foi encontrada"; break;
         case 405: erro="Erro 405: O servidor n&atilde;o suporta a requisi&ccedil;&atilde;o solicitada"; break;
         case 500: erro="Erro 500: Erro desconhecido do servidor"; break;
         case 503: erro="Erro 503: Servidor sobrecarregado"; break;
         default: erro="Erro " + erro; break;}
	erro = "<h3>"+erro+"</h3>";
	return erro;}
*/
function exeScript(texto){
	var ini=0;
	while (ini!=-1){
		ini=texto.indexOf('<script', ini);
        	if (ini >=0){
			ini=texto.indexOf('>', ini) + 1;
			var fim=texto.indexOf('</script>', ini);
			codigo=texto.substring(ini,fim);
			var novo = document.createElement("script");
			novo.text = codigo;
			document.body.appendChild(novo);
		}
	}
}

/*function complxUrl(url) //http://forum.imasters.com.br/index.php?showtopic=172859
	{var dt = new Date();
        if(url.indexOf("?")>=0) //Verifica GET("?")
			{var url = url + "&" + encodeURI(Math.random() + "_" + dt.getTime());} 
		else //Senão adiciona um parametro
			{var url = url + "?" + encodeURI(Math.random() + "_" + dt.getTime());}
		return url;}			
*/
function trataResultado(conteudo, xmlhttp){
	if(xmlhttp.readyState==4){
		if(xmlhttp.status==200){
			conteudo.style.cursor="default";
			var texto=xmlhttp.responseText;
			conteudo.innerHTML=texto;
			var prefixTitle = document.title.replace(/ -.*/, "")+" - ";
			document.title=prefixTitle+getText(objDom("h1", "tag", conteudo)[0]);
			exeScript(texto);
		}else{
			conteudo.innerHTML=devolveMsgErro(xmlhttp.status);
		}
	}

}

function carregaConteudo(pagina, id, carrega){
	var xmlhttp=instanciaAjax();
	var conteudo=document.getElementById(id);
	if(carrega==true){
		conteudo.innerHTML='<p id="carregando"><img src="http://i85.photobucket.com/albums' + 
		'/k43/bermonruf/net/carregando.gif" width="16" height="16" /> Carregando... Aguarde</p>';
		conteudo.style.cursor="wait";
	}
	if(xmlhttp){
		xmlhttp.open("GET", pagina, true);
		xmlhttp.onreadystatechange=function(){trataResultado(conteudo, xmlhttp);}
		xmlhttp.send(null);
		return true;
	}
	else {return false;}
}
