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)//Créditos "skywalker.TO", "Micox"
	{var ini=0;
     while (ini!=-1)
	 	{ini=texto.indexOf('<script', ini);
        if (ini >=0)
			{//Define o inicio para depois do fechamento dessa tag
            ini=texto.indexOf('>', ini) + 1;
            //Procura o final do script
            var fim=texto.indexOf('</script>', ini);
            codigo=texto.substring(ini,fim);
            //eval(codigo);
			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);
	//var url=pagina;
	//pagina=complxUrl(url);
	if(carrega==true)
		{conteudo.innerHTML='<br><br><br><br><p id="carregando" align="center">Carregando... Aguarde<br><br><img src="imagens/loading_animation_liferay.gif" /></p>';
		conteudo.style.cursor="wait";}
	if(xmlhttp)
		{xmlhttp.open("GET", pagina, true);
    	//Executada quando o navegador obtiver o código
    	xmlhttp.onreadystatechange=function(){trataResultado(conteudo, xmlhttp);}
		xmlhttp.send(null);
		return true;}
	else {return false;}}
