var isIE = (navigator.appName == "Microsoft Internet Explorer");

function chamaAjax (url, id_destino){
	var pagina = false;
	if (!isIE) {pagina = new XMLHttpRequest();
	} else {
		try {
			pagina = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			// versão antiga do IE
			try {
				pagina = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) { }
		}
	}
	pagina.onreadystatechange = function () {
		//Função de Resposta
		carregaPagina(pagina, id_destino);
	}
	pagina.open('GET',url, true);
	pagina.send(null);
}

function carregaPagina(pagina, id_destino) {
	var destino = document.getElementById(id_destino);
	var aguarde = document.getElementById("divAjax");
	aguarde.style.visibility = "visible";
	if (pagina.readyState == 1) { aguarde.innerHTML = "<div class='carregando'>Carregando...</div>"; }
	if (pagina.readyState == 3) { aguarde.innerHTML = "<div class='carregando'>Carregando...</div>"; }
	if (pagina.readyState == 4) {
		if (pagina.status == 200) { //Se a "status" retornado for "ok" (ver propriedade "status")
			texto = pagina.responseText;

			destino.innerHTML = texto;
			if(isIE) {
				ini=0;
				while (ini!=-1){
					ini = texto.indexOf('<script', ini);
					if (ini >=0){
						ini = texto.indexOf('>', ini) + 1;
						var fim = texto.indexOf('</script>', ini);
						var s = texto.substr(ini, fim - ini);
						eval(s);
					}
				}
			}
			else
			{
				var scripts = destino.getElementsByTagName('script');
				for(i = 0; i < scripts.length; i++) {
					s = scripts[i].innerHTML;
					eval(s);
				}
			}
			aguarde.style.visibility = "hidden";
			carregouScript = true;
		} else {
			//Se o servidor retornou outro código que não "200", mostrar o erro.
			aguarde.style.visibility = "hidden";
			alert('Ocorreu um erro ao carregar a página ' + pagina.statusText + '');
		}
	}
}

function chamaPgInterna (url){
	var id_destino = "divPgInterna";
	var pagina = false;
	if (!isIE) {pagina = new XMLHttpRequest();}
	else {
		try {
			pagina = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			// versão antiga do IE
			try {
				pagina = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) { }
		}
	}
	pagina.onreadystatechange = function () {
		//Função de Resposta
		carregaPgInterna(pagina, id_destino);
	}
	pagina.open('GET',url, true);
	pagina.send(null);
}

function carregaPgInterna(pagina, id_destino) {
	var destino = document.getElementById(id_destino);
	if (pagina.readyState == 1) {  }
	if (pagina.readyState == 3) {  }
	if (pagina.readyState == 4) {
		if (pagina.status == 200) { //Se a "status" retornado for "ok" (ver propriedade "status")
			var texto = pagina.responseText;
			destino.innerHTML = texto;
			if(isIE) {
				ini=0;
				while (ini!=-1){
					ini = texto.indexOf('<script', ini);
					if (ini >=0){
						ini = texto.indexOf('>', ini) + 1;
						var fim = texto.indexOf('</script>', ini);
						var s = texto.substr(ini, fim - ini);
						eval(s);
					}
				}
			}
			else
			{
				var scripts = destino.getElementsByTagName('script');
				for(i = 0; i < scripts.length; i++) {
					s = scripts[i].innerHTML;
					eval(s);
				}
			}
		} else {
			//Se o servidor retornou outro código que não "200", mostrar o erro.
			alert('Ocorreu um erro ao carregar a página ' + pagina.statusText + '');
		}
	}
}

function chamaAjaxPost (url, id_destino, parametros){
	var pagina = false;
	if (!isIE) {pagina = new XMLHttpRequest();
	} else {
		try {
			pagina = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			// versão antiga do IE
			try {
				pagina = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) { }
		}
	}
	pagina.onreadystatechange = function () {
		//Função de Resposta
		carregaPagina(pagina, id_destino);
	}
	pagina.open('POST',url);
	pagina.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	pagina.setRequestHeader("Content-length", parametros.length);
	pagina.setRequestHeader("Connection", "close");
	pagina.send(parametros);
}
