// JavaScript Document

function openAjax(url, param, destino){
	
	var ajax;

	if(window.XMLHttpRequest){
		ajax = new XMLHttpRequest();
	} else if(window.ActiveXObject){ 
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	} else { 
		alert("Seu navegador não tem suporte ao AJAX!");
	}

	if(param != ''){
		ajax.open('POST', url + '?' + param, true);
		//ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8") 
		//ajax.send(param);
		ajax.send(null);
	} else {
		ajax.open('POST', url, true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8") 
		ajax.send(null);
	}
	
	ajax.onreadystatechange = function(){
		if(ajax.readyState == 1){
			document.getElementById(destino).innerHTML = '<img src="../images/ajax-loader.gif" id="lab_ajaxLoader" />';
		} else if(ajax.readyState == 4){ 
			x = document.getElementById(destino);
			texto = unescape(ajax.responseText.replace(/\+/g," "));
			x.innerHTML = texto;
			
			// executa scripts.
			extraiScript(texto);
		}
	};
	
	// Função para executar Javascript carregado pelo Ajax;
	
	function extraiScript(texto){
		
		var ini, pos_src, fim, codigo;
		var objScript = null;
		
		ini = texto.indexOf('<script', 0);
		
		while (ini != -1){
			var objScript = document.createElement("script");
			
			//Busca se tem algum "src" a partir do inicio do script.
			pos_src = texto.indexOf(' src', ini)
			ini = texto.indexOf('>', ini) + 1;
			
			//Verifica se este é um bloco de script ou include para um arquivo de scripts.
			if (pos_src < ini && pos_src >= 0){ // Se encontrou um "src" dentro da tag script, esta é um include de um arquivo script.
				// Marca como sendo o inicio do nome do arquivo para depois do src.
				ini = pos_src + 4;
				// Procura pelo ponto do nome da extenção do arquivo e marca para depois dele.
				fim = texto.indexOf('.', ini) + 4;
				// Pega o nome do arquivo.
				codigo = texto.substring(ini, fim);
				// Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano.
				codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
				// Adiciona o arquivo de script ao objeto que sera adicionado ao documento
				objScript.src = codigo;
			} else { // Se não encontrou um "src" dentro da tag script, esta é um bloco de codigo script.
				// Procura o final do script.
				fim = texto.indexOf('</script>', ini);
				// Extrai apenas o script
				codigo = texto.substring(ini, fim);
				// Adiciona o bloco de script ao objeto que será adicionado ao documento.
				objScript.text = codigo;
			}
		
			//Adiciona o script ao documento
			document.body.appendChild(objScript);
			// Procura a proxima tag de <script
			ini = texto.indexOf('<script', fim);
			
			//Limpa o objeto de script
			objScript = null;
		}
		
	}

}