function extraiScript(texto){
	//desenvolvido por Skywalker.to
    var ini, pos_src, fim, codigo;
    var objScript = null;
    ini = texto.indexOf('<script', 0)
    while (ini!=-1){
        var objScript = document.createElement("script");
        pos_src = texto.indexOf(' src', ini)
        ini = texto.indexOf('>', ini) + 1;

        if (pos_src < ini && pos_src >=0){
            ini = pos_src + 4;
            fim = texto.indexOf('.', ini)+4;
            codigo = texto.substring(ini,fim);
            codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");
            objScript.src = codigo;
        }else{
            fim = texto.indexOf('</script>', ini);
            codigo = texto.substring(ini,fim);
            objScript.text = codigo;
        }
        document.body.appendChild(objScript);
        ini = texto.indexOf('<script', fim);
        objScript = null;
    }
}

function ajaxRequest(){
	var ajaxXMLHttp = false;
	if (window.XMLHttpRequest){ //mozilla
		ajaxXMLHttp = new XMLHttpRequest();
	}else if (window.ActiveXObject){ //IE
		try
		{
			ajaxXMLHttp = new ActiveXObject("Msxm12.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				ajaxXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Esse browser não tem recursos para uso do Ajax");
				ajaxXMLHttp = false;
			}
		}
	}
	return ajaxXMLHttp;
}

filaText=[];
ifilaText=0;

function consultaAjaxText(url, parametros, metodo, elementRetorno, msgCarregar){
	if(controlerImagem){
		//alert('achou controlerImagem')
		clearTimeout(controlerImagem);
	}
    filaText[filaText.length]=[url, parametros, metodo, elementRetorno, msgCarregar];
    if((ifilaText + 1)==filaText.length){
		ajaxRunText();
	}
}

function ajaxRunText(){
	ajax = false;
	ajax = ajaxRequest();
	if (!ajax){
		alert("Erro na Chamada Ajax");
		return false;
	}else{
		elementRetornoText = document.getElementById(filaText[ifilaText][3]);
		ajax.onreadystatechange = processaAjaxText;
		if (filaText[ifilaText][2]=="get"){
			//ajax.onreadystatechange = processaAjaxText;
			ajax.open("GET", filaText[ifilaText][0]+"?"+filaText[ifilaText][1], true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.setRequestHeader("Cache-Control", "no-cache");
			ajax.setRequestHeader("Pragma", "no-cache");
			ajax.send(null);
		}else if (filaText[ifilaText][2]=="post"){
			//ajax.onreadystatechange = processaAjaxText;
			ajax.open("POST", filaText[ifilaText][0], true);
			ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajax.setRequestHeader("Cache-Control", "no-cache");
			ajax.setRequestHeader("Pragma", "no-cache");
			ajax.send(filaText[ifilaText][1]);
		}
	}
}

function processaAjaxText(){
	if (ajax.readyState == 1)
	{
		elementRetornoText.innerHTML = "<div align='center' id='carregando'><img src='img/loader.gif' alt='carregando'/><br><br> Aguarde... Site sendo Carregado !</div>";
	}
	if (ajax.readyState == 4)
	{
		if (ajax.status == 200)
		{
			extraiScript(ajax.responseText);
			elementRetornoText.innerHTML = ajax.responseText;
		}else{
			elementRetornoText.innerHTML = "<div>Falha no Carregamento.<br>"+erroPagina(ajax.status)+"</div>";
		}
		ifilaText++;
		if(ifilaText < filaText.length){
			setTimeout("ajaxRunText()", 20);
		}
	}
}

filaXML = [];
ifilaXML = 0;
/**
*	Wesley Garcia de Sousa
*	Instruções de Elcio Ferreira
*	Variaveis com suas respectivas posicoes no vetor;
*	urlXML			filaXML[ifilaXML][0]
*	parametrosXML	filaXML[ifilaXML][1]
*	metodoXML		filaXML[ifilaXML][2]
*	msgCarregarXML  filaXML[ifilaXML][3]
*	idSelect		filaXML[ifilaXML][4]
*	idOption		filaXML[ifilaXML][5]
*	selectAtualizar filaXML[ifilaXML][6]
*/
function consultaAjaxXML(urlXML, parametrosXML, metodoXML, msgCarregarXML, idSelect, idOption, selectAtualizar){
	filaXML[filaXML.length]=[urlXML, parametrosXML, metodoXML, msgCarregarXML, idSelect, idOption, selectAtualizar];
    if((ifilaXML + 1) == filaXML.length){
		ajaxRunXML();
	}
}

function ajaxRunXML(){
	//alert("aki");
	ajaxXML = false;
	ajaxXML = ajaxRequest();
	if (!ajaxXML)
	{
		alert("Erro na Chamada Ajax");
		return false;
	}else{
		selectRetorno = document.getElementById(filaXML[ifilaXML][4]);
		selectRetorno.options.length = 1;
		optionRetorno = document.getElementById(filaXML[ifilaXML][5]);
		ajaxXML.onreadystatechange = processaAjaxXML;
		if (filaXML[ifilaXML][2]=="get")
		{
			ajaxXML.open(filaXML[ifilaXML][2], filaXML[ifilaXML][0]+"?"+filaXML[ifilaXML][1], true);
			ajaxXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajaxXML.setRequestHeader("Cache-Control", "no-cache");
			ajaxXML.setRequestHeader("Pragma", "no-cache");
			ajaxXML.send(null);
		}else if (filaXML[ifilaXML][2]=="post")
		{
			ajaxXML.open(filaXML[ifilaXML][2], filaXML[ifilaXML][0], true);
			ajaxXML.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			ajaxXML.setRequestHeader("Cache-Control", "no-cache");
			ajaxXML.setRequestHeader("Pragma", "no-cache");
			ajaxXML.send(filaXML[ifilaXML][1]);
		}
	}
}

function processaAjaxXML(){
	if (ajaxXML.readyState == 1)
	{
		optionRetorno.innerHTML = filaXML[ifilaXML][3];
	}
	if (ajaxXML.readyState == 4)
	{
		if (ajaxXML.status == 200)
		{
			switch(filaXML[ifilaXML][6]){
				case "categ":
					iniOption = "Categorias (Todos)";
					break;
				case "pais":
					iniOption = "Países (Todos)";
					break;
				case "uf":
					iniOption = "UF (Todos)";
					break;
				case "codcidade":
					iniOption = "Cidades (Todos)";
					break;
				case "codsetor":
					iniOption = "Setores (Todos)";
					break;
			}
			optionRetorno.innerHTML = iniOption;
			//alert(ajaxXML.responseText);
			var vetorXML = ajaxXML.responseXML.getElementsByTagName("xml");
			if (vetorXML.length > 0)
			{
				for (i = 0; i < vetorXML.length; i++)
				{
					var xml  = vetorXML[i];
					var codigo	   = xml.getElementsByTagName("codigo")[0].firstChild.nodeValue;
					var descricao  = xml.getElementsByTagName("descricao")[0].firstChild.nodeValue;
					var novoOption = document.createElement("option");					
					novoOption.setAttribute("id", filaXML[ifilaXML][5]);
					novoOption.value = codigo;
					novoOption.text  = descricao;
					selectRetorno.options.add(novoOption);
				}
			}
		}else{
			alert(erroPagina(ajaxXML.status));
		}
		ifilaXML++;
		if(ifilaXML < filaXML.length){
			setTimeout("ajaxRunXML();", 20);
		}
	}
}

function erroPagina(erro){
	switch(erro){
		case 0: return "Erro desconhecido de javascript";
		case 400: return "400: Solicitação incompreensível"; break;
		case 404: return "404: Não foi encontrada a URL solicitada"; break;
		case 405: return "405: O servidor não suporta o m&eacute;todo solicitado"; break;
		case 500: return "500: Erro desconhecido de natureza do servidor"; break;
		case 503: return "503: Capacidade máxima do servidor alcançada"; break;
		default: return "Erro " + erro + ". Mais informações em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; break;
	}
}
