// PrestoConn.js

var maxcons=30;
var httpcons = new Array();

function conn(nome, div, url){
	this.conn=false;
	this.nome = nome;
	this.div = div;
	this.url = url;
}

for (i=0;i<maxcons;i++)
{
	httpcons[i]=new conn('','','');
}


function getPrestoHttp() {
	var xmlHttp = false;
	xmlHttp = new XMLHttpRequest();
	return xmlHttp;
}

function createPresto(nome, url, div ){
	url = limpaAmp(url);
	var indice = findPresto( nome );
	if( indice == -1 ){
		indice = findPresto ('');
	}
	if(indice>=0){
		httpcons[indice].nome = nome;
		httpcons[indice].div = div;
		httpcons[indice].url = url;
		httpcons[indice].conn = getPrestoHttp();
	}else{
		alert("Não há conectores presto disponíveis...");
	}
}
function findPresto( nome ) {
	var res = -1;
	for (i=0;i<maxcons&&(res==-1);i++){
		if( nome == httpcons[i].nome){
			res = i;
		}
	}
	return res;
}

function updatePage(i){
	if (httpcons[i].conn.readyState == 4) {
		var response = httpcons[i].conn.responseText;
		var conteudo;
		try{
			conteudo = document.getElementById(httpcons[i].div)
			conteudo.innerHTML = response;
			window.parent.resizeCaller();
		}catch(e){
		}
		
		try{

			var scripts = conteudo.getElementsByTagName('script');
			for( j = 0 ; j < scripts.length ; j++ ){
				s = scripts[j].innerHTML;
				if( s.length >0 ){
					head=document.getElementsByTagName('head').item(0);
					script=document.createElement('script');
					script.text=s;  
					script.type='text/javascript';
					script.defer=true;
					void(head.appendChild(script));
					eval( s );
				}
			}
		
			var s = document.getElementById("jscode"+httpcons[i].nome);
			head=document.getElementsByTagName('head').item(0);
			script=document.createElement('script');
			script.text=s.innerHTML;  
			script.type='text/javascript';
			script.defer=true;
			void(head.appendChild(script));
		}catch(e){
		}
		httpcons[i].nome='';
	}
}

function updatePage0(){	updatePage(0);}
function updatePage1(){	updatePage(1);}
function updatePage2(){	updatePage(2);}
function updatePage3(){	updatePage(3);}
function updatePage4(){	updatePage(4);}
function updatePage5(){	updatePage(5);}
function updatePage6(){	updatePage(6);}
function updatePage7(){	updatePage(7);}
function updatePage8(){	updatePage(8);}
function updatePage9(){	updatePage(9);}

function updatePage10(){	updatePage(10);}
function updatePage11(){	updatePage(11);}
function updatePage12(){	updatePage(12);}
function updatePage13(){	updatePage(13);}
function updatePage14(){	updatePage(14);}
function updatePage15(){	updatePage(15);}
function updatePage16(){	updatePage(16);}
function updatePage17(){	updatePage(17);}
function updatePage18(){	updatePage(18);}
function updatePage19(){	updatePage(19);}

function updatePage20(){	updatePage(20);}
function updatePage21(){	updatePage(21);}
function updatePage22(){	updatePage(22);}
function updatePage23(){	updatePage(23);}
function updatePage24(){	updatePage(24);}
function updatePage25(){	updatePage(25);}
function updatePage26(){	updatePage(26);}
function updatePage27(){	updatePage(27);}
function updatePage28(){	updatePage(28);}
function updatePage29(){	updatePage(29);}

function callServer( nome, id ) {
	var i = findPresto( nome );
	if( i >= 0 ){
		try{
			document.getElementById( httpcons[i].div ).innerHTML = 'A obter dados...';
		}catch(e){}
		
		var url = httpcons[i].url;
		if( typeof id != 'undefined' ){
			url = url + id;
		}
		url = url+ "&token="+Math.random()+"&jsdivname=jscode"+httpcons[i].nome;
		httpcons[i].conn.open("GET", url, true);
		switch(i){
			case 0:httpcons[i].conn.onreadystatechange = updatePage0; break;
			case 1:httpcons[i].conn.onreadystatechange = updatePage1; break; 
			case 2:httpcons[i].conn.onreadystatechange = updatePage2; break;
			case 3:httpcons[i].conn.onreadystatechange = updatePage3; break;
			case 4:httpcons[i].conn.onreadystatechange = updatePage4; break;
			case 5:httpcons[i].conn.onreadystatechange = updatePage5; break;
			case 6:httpcons[i].conn.onreadystatechange = updatePage6; break;
			case 7:httpcons[i].conn.onreadystatechange = updatePage7; break;
			case 8:httpcons[i].conn.onreadystatechange = updatePage8; break;
			case 9:httpcons[i].conn.onreadystatechange = updatePage9; break;

			case 10:httpcons[i].conn.onreadystatechange = updatePage10; break;
			case 11:httpcons[i].conn.onreadystatechange = updatePage11; break; 
			case 12:httpcons[i].conn.onreadystatechange = updatePage12; break;
			case 13:httpcons[i].conn.onreadystatechange = updatePage13; break;
			case 14:httpcons[i].conn.onreadystatechange = updatePage14; break;
			case 15:httpcons[i].conn.onreadystatechange = updatePage15; break;
			case 16:httpcons[i].conn.onreadystatechange = updatePage16; break;
			case 17:httpcons[i].conn.onreadystatechange = updatePage17; break;
			case 18:httpcons[i].conn.onreadystatechange = updatePage18; break;
			case 19:httpcons[i].conn.onreadystatechange = updatePage19; break;

			case 20:httpcons[i].conn.onreadystatechange = updatePage20; break;
			case 21:httpcons[i].conn.onreadystatechange = updatePage21; break; 
			case 22:httpcons[i].conn.onreadystatechange = updatePage22; break;
			case 23:httpcons[i].conn.onreadystatechange = updatePage23; break;
			case 24:httpcons[i].conn.onreadystatechange = updatePage24; break;
			case 25:httpcons[i].conn.onreadystatechange = updatePage25; break;
			case 26:httpcons[i].conn.onreadystatechange = updatePage26; break;
			case 27:httpcons[i].conn.onreadystatechange = updatePage27; break;
			case 28:httpcons[i].conn.onreadystatechange = updatePage28; break;
			case 29:httpcons[i].conn.onreadystatechange = updatePage29; break;


		}
		httpcons[i].conn.send(null);
	}
}
