var preload_imagem=new Image();
preload_imagem.src=TXT_AJAX_IMAGEM_PROCESSAMENTO;

//Inicializar as variaveis que vão conter os conteudos da pagina requisitada
	/*var xmlhttp = false; //objecto que é usado para processar o pedido
	var resultado; //variável que leva os conteudos do objecto
		
	function ajax_html_submit(url, parametros){
		//Passar o url para o objecto xmlhttp
		xmlhttp.open("POST",url,true);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		//xmlhttp.setRequestHeader('Content-type','text/html;charset=ISO-8859-1;');
		xmlhttp.send(parametros);	
	}
	
	function semcache(url){
		return url.concat(/\?/.test(url)?"&":"?","semcache=",(new Date).getTime(),".",Math.random()*1234567);
	}*/

//------------------------------------------------------------------------------
	function Ajax(){
		//Inicializar as variaveis que vão conter os conteudos da pagina requisitada
		this.__xmlhttp = false; //objecto que é usado para processar o pedido

		try{
			//Validar se o browser é o firefox (ou algum browser que suporte o método XMLHttpRequest)
			this.__xmlhttp = new XMLHttpRequest();
		} catch(erro) {
			try{
				//caso seja uma versão mais recente do Explorer
				this.__xmlhttp = new ActiveXObject("Msxm12.XMLHTTP");
			} catch(erro){
				try{
					//para versões mais antigas do Explorer
					this.__xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch(erro) {
					alert(TXT_AJAX_BROWSER_NAO_SUPORTADO);
				}
			}
		}

		this.lerPagina=function(destino,url,parametros,metodo,carregando,cache,assync,popup){

			if(metodo!="POST"){ metodo="GET"; } else { metodo="POST"; }
			if(assync!=false){ assync=true; } else { assync=false; }
			if(cache!=true){ cache=false; } else { cache=true; }
			if(parametros && metodo=="GET"){ url=url+"?"+parametros; }
			if(popup!==true){ popup=false; } else { popup=true; }

			var tipoObjecto=document.getElementById(destino).tagName;

			//altera o url de forma a ser sempre diferente a cada pedido por causa do cache
			if(cache==false){
				url=url.concat(/\?/.test(url)?"&":"?","___semcache=",(new Date).getTime(),".",Math.random()*1234567);
			}

			//passar o URL para o objecto de xmlhttp
			this.__xmlhttp.open(metodo,url,assync);
			if(metodo=="POST"){
				this.__xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				this.__xmlhttp.setRequestHeader("Content-length", parametros.length);
				this.__xmlhttp.setRequestHeader("Connection", "close");
			}
			
			//Operações necessárias enquanto está a ler o url e quando termina
			this.__xmlhttp.onreadystatechange=function(){

				//Estados disponíveis de onreadystatechange
				//0 = o comando Open ainda não foi executado
				//1 = o comando Open foi executado mas o Send ainda não
				//2 = o comando Send foi executado mas não houve resposta do servidor
				//3 = a processar a informação
				//4 = a resposta do servidor foi recebida

				//Inicialização do processo
				if(carregando==true){
					if(this.readyState==3){
						if(tipoObjecto=="INPUT" || tipoObjecto=="TEXTAREA"){
							//document.getElementById(destino).value=TXT_AJAX_AGUARDE;
						} else if(tipoObjecto=="IMG"){
							document.getElementById(destino).src=TXT_AJAX_IMAGEM_PROCESSAMENTO;
						} else {
							document.getElementById(destino).innerHTML=TXT_AJAX_AGUARDE;
						}
					}
				}

				//Processo terminado
				if(this.readyState==4){

					if(this.status==200 || this.status==304){
						//Caso o estado seja 200 (ok) ou 304 (unmodified)
						if(tipoObjecto=="INPUT" || tipoObjecto=="TEXTAREA"){
							document.getElementById(destino).value=this.responseText;
						} else if(tipoObjecto=="IMG"){
							ajax_lerImagem(this.responseText,destino,carregando);
						} else {
							document.getElementById(destino).innerHTML=this.responseText;
							if(popup==true){
								sistema_popupAlinhar(destino);
							}
							// EXPERIMENTAL ////////////////////////////////////
							// método para executar javascript quando se abre uma pagina atravez de ajax
							var regex = /<script type=\"text\/javascript\">([\s\S]*?)<\/script>/igm;
							var resultado;
							while (resultado = regex.exec(this.responseText)) {
								eval(resultado[1]);
							}
						}
					} else if(this.status=="404"){
						//Caso o estado seja 404 página não encontrada
						if(tipoObjecto=="INPUT" || tipoObjecto=="TEXTAREA"){
							document.getElementById(destino).value=TXT_AJAX_PAGINA_NAO_ENCONTRADA;
						} else {
							document.getElementById(destino).innerHTML=TXT_AJAX_PAGINA_NAO_ENCONTRADA;
							if(popup==true){
								sistema_popupAlinhar(destino);
							}
						}
					} else {
						alert(TXT_AJAX_ERRO_INESPERADO);
					}
				}
			}

			//Envia o pedido de AJAX
			this.__xmlhttp.send(parametros);
		}
	}

	function ajax_lerPagina(destino,url,parametros,metodo,carregando,cache,assync){
		if(metodo!="POST"){metodo="GET";} else {metodo="POST";}
		if(assync!=false){assync=true;} else {assync=false;}
		if(cache!=true){cache=false;} else {cache=true;}

		this.ajax=new Ajax();
		this.ajax.lerPagina(destino,url,parametros,metodo,carregando,cache,assync);
	}

	function ajax_lerImagem(destino,url,comprimento,altura,titulo,carregando){
		var objecto=document.getElementById(destino);
		var preload;
		var cache=false;

		if(!titulo){
			titulo="";
		}

		//altera o url de forma a ser sempre diferente a cada pedido por causa do cache
		if(cache==false){
			url=url.concat(/\?/.test(url)?"&":"?","___semcache=",(new Date).getTime(),".",Math.random()*1234567);
		}

		//Definir a imagem para o estado de processamento
		if(carregando==true){
			objecto.src=TXT_AJAX_IMAGEM_PROCESSAMENTO;
			objecto.removeAttribute("width");
			objecto.removeAttribute("height");
		}

		//Efectuar o preload da imagem
		preload=new Image();
		preload.src=url;

		//Adicionar o evento para o caso da imagem não existir
		sistema_adicionarEvento(preload,"error",function(){
			objecto.removeAttribute("width");
			objecto.removeAttribute("height");
			//Substitui a imagem por uma que representa um erro
			objecto.src=TXT_AJAX_IMAGEM_ERRO;
			objecto.title="ERRO PA";
		})

		//Passar para o destino quando terminar de fazer o download
		sistema_adicionarEvento(preload,"load",function(){
			objecto.src=url;
			//objecto.alt=altTag;
			objecto.title=titulo;
			if(comprimento){
				objecto.width = comprimento;
			} else {
				objecto.removeAttribute("width");
			}

			if(altura){
				objecto.height = altura;
			} else {
				objecto.removeAttribute("height");
			}
		});
	}
	
//------------------------------------------------------------------------------

	

	
/*
		
		function ajax_html(url, a_ler, objecto, tipo_objecto, assync, tamanho_x, tamanho_y){
			if(assync=="false"){
				assync=false;
			} else {
				assync=true;
			}
			if(!tipo_objecto){
				tipo_objecto="div";
			} else {
				if(tipo_objecto!="div" && tipo_objecto!="input" && tipo_objecto!="imagem"){
					tipo_objecto="div";
				}
			}

			//Passar o url para o objecto xmlhttp
			xmlhttp.open("GET",url,assync);
			//Operações necessárias enquanto está a ler o url e quando termina
			xmlhttp.onreadystatechange=function(){
				//Mostrar mensagem de processo de leitura
				if(a_ler==true){
					if(xmlhttp.readyState==3){
						resultado = "<center><table cellpadding='0' cellspacing='0'><tr><td><img src='imagens/aguarde.jpg'></td><td align='center'><b>" + TXT_AJAX_AGUARDE + "</b></td></tr></table></center>";
						switch(tipo_objecto){
							case 'div':{
								objecto.innerHTML = resultado;
								break;
							}

							case 'input':{
								objecto.value = resultado;
								break;
							}

							case 'imagem':{
								objecto.src = "imagens/aguarde.jpg";
									if(tamanho_x){
										objecto.width = tamanho_x;
									} else {
										objecto.removeAttribute("width");
									}

									if(tamanho_y){
										objecto.height = tamanho_y;
									} else {
										objecto.removeAttribute("height");
									}
								break;
							}
						}
					}
				}

				//Processo para quando termina de fazer download do url
				if(xmlhttp.readyState==4){
					//Caso o resultado seja ok
					if(xmlhttp.status == 200){
						resultado = xmlhttp.responseText;
						switch(tipo_objecto){
							case 'div':{
								objecto.innerHTML = resultado;
								break;
							}

							case 'input':{
								objecto.value = resultado;
								break;
							}

							case 'imagem':{
								objecto.src = url;
									if(tamanho_x){
										objecto.width = tamanho_x;
									} else {
										objecto.removeAttribute("width");
									}

									if(tamanho_y){
										objecto.height = tamanho_y;
									} else {
										objecto.removeAttribute("height");
									}
								break;
							}
						}
					}

					//Caso a página não seja encontrada
					if(xmlhttp.status == 404){
						resultado = "<center>" + TXT_AJAX_PAGINA_NAO_ENCONTRADA + "</center>";
						objecto.innerHTML = resultado;
					}
				}
			}
			xmlhttp.send(null);
		}*/
