
pag_status = false;
fila = new Array();
pos=0;
function pag(url,target, tipo, data) {
	if(tipo!=undefined && data==undefined){
		alert('Necessário o campo data preenchido no POST');
		return false;
	}
	if(data==undefined){
		data=null;
	}
	if(tipo==undefined){
		tipo = "GET";
	}
   document.getElementById(target).innerHTML = 'carregando...';
   if(pag_status==false){
	   pag_status = true;
		   ver = url.indexOf('?');
		   if(ver==-1){
			   url = url+'?';
		   }
	   if (window.XMLHttpRequest) {
		   req = new XMLHttpRequest();
		   req.onreadystatechange = function() {pagDone(url, target);};
		   req.open(tipo, url+'&target='+target, true);
		   if(tipo=="POST"){
			   req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			   req.setRequestHeader('encoding', 'ISO-8859-1');
			}
		   req.send(data);
		   
	   } else if (window.ActiveXObject) {
		   req = new ActiveXObject("Microsoft.XMLHTTP");
		   if (req) {
			   req.onreadystatechange = function() {pagDone(url, target);};
			   req.open(tipo, url+'&target='+target, true);
			   if(tipo=="POST"){
				   req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				   req.setRequestHeader('encoding', 'ISO-8859-1');
				}
			   req.send(data);
		   }
	   }
   }else{
	   document.getElementById(target).innerHTML = '...'
	 // alert('Aguarde, Carregando o arquivo solicitado anteriormente');
	   pagAddFila(url,target);
   }	   
}
function pagAddFila(a, b){
	fila[pos]=new Array();
	fila[pos]['url'] = a;
	fila[pos]['target'] = b;
	pos++;
}
function pagDone(url, target) {	
var results='';
   if (req.readyState == 4) {	  
	   if (req.status == 200 || req.status == 304 || req.status == 0) {
		   results = req.responseText;
		   document.getElementById(target).innerHTML = results;			   
	   } else {
		   document.getElementById(target).innerHTML="erro:" + req.statusText+"<br />URL: "+url+"<br />TARGET: "+target;
	   }		   
		pag_status = false;
		pagNextItem(target);
		pagFilterJavascript(results);		   
   }
}
function pagNextItem(target){
	tmp = new Array();
	poss=0;
	for(i=0;i<fila.length;i++){
		if(fila[i]['target']!=target){
			tmp[poss]=new Array();
			tmp[poss]['url'] = fila[i]['url'];
			tmp[poss]['target'] = fila[i]['target'];
			poss++;
		}
	}
	fila=new Array();
	fila = tmp;
	if(fila.length>0){
		pag(fila[0]['url'], fila[0]['target']);
	}
}

function pagFilterJavascript(results){
	var ini = 0;
	while (ini!=-1){
		// procura uma tag de script
		ini = results.indexOf('<script', ini);
		// se encontrar
		if (ini >=0){
			// define o inicio para depois do fechamento dessa tag
			ini = results.indexOf('>', ini) + 1;
			// procura o final do script
			var fim = results.indexOf('</script>', ini);
			// extrai apenas o script
			codigo = results.substring(ini,fim);
			// executa o script
			novo = document.createElement("script")
			novo.text = codigo;
			document.body.appendChild(novo);
		}
	}
}

function pagClear(target){
	 document.getElementById(target).innerHTML='procurando...';
}
function loopFormpag(form){
		var strng = "";
		for (var i = 0; i<form.elements.length; i++){
			if(form.elements[i].name){
				strng+= "&"+form.elements[i].name+"="+form.elements[i].value;
			}
			if(form.elements[i].name=="pag_acao"){
				arquivo = form.elements[i].value;
				envia = true;
			}
			if(form.elements[i].name=="pag_target"){
				alvo = form.elements[i].value;
			}
		}
		if(envia){
			pag(arquivo,alvo, 'POST', strng);
			return false;
		}
}

var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
var bMoz = (navigator.appName == 'Netscape');
function execJS(node) {
  var st = node.getElementsByTagName('SCRIPT');
  var strExec;
  for(var i=0;i<st.length; i++) {     
	if (bSaf) {
	  strExec = st[i].innerHTML;
	}
	else if (bOpera) {
	  strExec = st[i].text;
	}
	else if (bMoz) {
	  strExec = st[i].textContent;
	}
	else {
	  strExec = st[i].text;
	}
	try {
	  eval(strExec);
	} catch(e) {
	  alert(e);
	}
  }
}
