var urln="";
var element_id="";

var ends= new Array();
var divs= new Array();
var pags_num=-1;
var next=pags_num;


var timeout=20;    //tempo do time out

var carregando=0;
var tempo_carregamento=0;
var time_interval="";

function timeout_(){
   tempo_carregamento++;
   if(tempo_carregamento>=timeout){
                carregando=0;
                tempo_carregamento=0;
			    clearInterval(time_interval);
                var d_i_v = divs[pags_num];
                document.getElementById(d_i_v).innerHTML='<span class=\'style\'>Tempo de Carregamento esgotado!</span>';
                req="";
                if(ends[pags_num+1] != "" && ends[pags_num+1] != undefined){
                      ajax(ends[pags_num+1],divs[pags_num+1]);
			    }
   }
}

function timed(){
                carregando=0;
                tempo_carregamento=0;
			    clearInterval(time_interval);
                if(ends[pags_num+1] != "" && ends[pags_num+1] != undefined){
                      ajax(ends[pags_num+1],divs[pags_num+1]);
			    }
}

function ajax(url, eId, fra){
 if(carregando==0){
   carregando=1;
   time_interval=setInterval('timeout_()',1000);

   pags_num++;
   next++;
   ends[pags_num]=url;
   divs[pags_num]=eId;
   frase = fra;
   urln=url;
   element_id = eId;



	req = null;
  	try
	{
		req = new XMLHttpRequest(); /* Especificação W3C */
  	}
	catch(e)
	{
	  	try
		{
			req = new ActiveXObject("Msxml2.XMLHTTP"); /* I.E. 6.x */
		}
		catch(ee)
		{
		  	try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP"); /* I.E. 5.x */
	  		}
			catch(eee)
			{
			  	alert("Problemas criando objeto XMLHttpRequest: " + eee.description);
	  		}
		}
  	}
	if (req) {
		req.onreadystatechange = processReqChange;
		req.open("GET",url,true);
		req.send(null);
	}
  } else {
     next++;
     ends[next]=url;
     divs[next]=eId;
     if(frase=="" || frase==undefined){
			frase="Carregando...";
	}
	document.getElementById(eId).innerHTML = "<table width=100% height= class=tabela><tr><td align=center><img src='images/ajax-loader.gif'><BR><span class='style1_b'><b>"+frase+"</b></span></td></tr></table>";
  }
}


function processReqChange() {
	if (req.readyState == 1) {
		if(frase=="" || frase==undefined){
			frase="Carregando...";
		}
		document.getElementById(element_id).innerHTML = "<table width=100% height= class=tabela><tr><td align=center><img src='images/ajax-loader.gif'><BR><span class='style1_b'><b>"+frase+"</b></span></td></tr></table>";
	}
 if (req.readyState == 4) {
		if (req.status == 200) {
			var texto=req.responseText;
			if(texto != ""){
				var conteudo=document.getElementById(element_id);
				var texto=req.responseText;
				conteudo.innerHTML="";
                conteudo.innerHTML="<div style='display:none;'>asdf</div>"+texto;
                timed();
				var scripts = conteudo.getElementsByTagName("script");
				for(i = 0; i < scripts.length; i++)
				{
			    	var	s = scripts[i].innerHTML;
					eval(s);
				}
			}
		} else {
		    var conteudo=document.getElementById(element_id);
			conteudo.innerHTML="Página não encontrada! <b>"+urln+"</b>";
            timed();
		}
	}

}


function voltar(nu,div){
 nu2 = 0;
 pag = "";
 for(i=pags_num;i>=0 && nu2<=nu;i--){
    if(divs[i]==div){
       nu2++;
       pag=ends[i];
    }
 }
 
 ajax(pag,div);
}

function atualizar(div){
  voltar(1,div);
}
