try{
    xmlhttp = new XMLHttpRequest();
}catch(ee){
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(E){
            xmlhttp = false;
        }
    }
}

atual=""

function carrega(pagina, local){
	//Exibe o texto carregando no div conteúdo
//	alert(pagina);
//	alert(local);
    var conteudo = document.getElementById(local)
	conteudo.innerHTML='<div class="carregando">Carregando...</div>'
    //Guarda a página escolhida na variável atual    
	atual=pagina
    //Abre a url
    xmlhttp.open("GET", "scripts/montaConteudo.php?pag="+ pagina ,true);
    //Executada quando o navegador obtiver o código
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4){
            //Lê o texto
            var texto=xmlhttp.responseText
            //Desfaz o urlencode
            texto=texto.replace(/\+/g," ")
            texto=unescape(texto)
            //Exibe o texto no div conteúdo
            var conteudo=document.getElementById(local)
            conteudo.innerHTML=texto			
        }
    }
    xmlhttp.send(null) 
}

var divAcao;
function aplicaAcao(formulario, get, local) { 
	if( !document.getElementById(local) ){
		return false;
	}
	divAcao=document.getElementById(local)
	//alert(formulario)
	
    divAcao.innerHTML='<div class="carregando">Carregando...</div>'
	
	xmlhttp.open("POST", "acaoAjax.php?" + get, true); 
	//charset=iso-8859-1
	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1"); 
	xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate"); 
    xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0"); 
    xmlhttp.setRequestHeader("Pragma", "no-cache"); 
    xmlhttp.onreadystatechange = processReqChange; 
	if (formulario!=null) {
		alert(local + formulario)
		xmlhttp.send(capturaFormulario(formulario)); 			
	} else {
		xmlhttp.send(local + formulario);		
	}
} 


function msgAcao(local, msg) { 
	document.getElementById(local).innerHTML='<div class="carregando">' + msg + '</div>'
} 

function processReqChange() { 
//alert(divAcao)
	if (xmlhttp.readyState == 4) { 
            if (xmlhttp.status == 200) { 
                divAcao.innerHTML = xmlhttp.responseText; 
				//document.getElementById("acao").innerHTML = xmlhttp.responseText; 
                } else { 
                    alert("Falha ao carregar o arquivo!"); 
                } 
    } 
/**** os estados possíveis são:
0 = não inicializado 
1 = carregando 
2 = carregado 
3 = modo interativo 
4 = completado	
*/	
} 
//--> 

function capturaFormulario(form) { 
    var queryString = ""; 
    for (var i = 0; i < form.elements.length; i++) { 
        if (form.elements[i].type == "text" || form.elements[i].type == "password" || 
            form.elements[i].type == "textarea" || form.elements[i].type == "select-one" || form.elements[i].type == "hidden") { 
                        queryString = queryString + form.elements[i].name + "=" + form.elements[i].value + "&"; 
        } 
        if (form.elements[i].type == "checkbox") { 
                        queryString = queryString + form.elements[i].name + "=" + form.elements[i].checked + "&"; 
        } 
        if (form.elements[i].type == "select") { 
                        queryString = queryString + form.elements[i].name + "=" + form.elements[i].checked + "&"; 
        } 
		if (form.elements[i].type == "radio") { 
            if (form.elements[i].checked == true) { 
                            queryString = queryString + form.elements[i].name + "=" + form.elements[i].value + "&"; 
            } 
        } 
    } 
        return queryString; 
}
/* UPLOAD via AJAX */
/* funçõezinhas padrão pra facilitar */
function $m(quem){
	//apelido só pra não ficar repetindo o document.getElementById
	return document.getElementById(quem)
}

function remove(quem){
	quem.parentNode.removeChild(quem);
}

function addEvent(obj, evType, fn){
	//o velho do elcio.com.br/crossbrowser
	if (obj.addEventListener)
		obj.addEventListener(evType, fn, true)
	if (obj.attachEvent)
		obj.attachEvent("on"+evType, fn)
}

function removeEvent( obj, type, fn ) {
	if ( obj.detachEvent ) {
		obj.detachEvent( 'on'+type, fn );
	} else {
		obj.removeEventListener( type, fn, false ); 
	}
} 
/* a que faz o serviço pesado */
function upArquivo(form,url_action,id_elemento_retorno,html_exibe_carregando,html_erro_http){
	/******
	* micoxUpload - Submete um form para um iframe oculto e pega o resultado. Consequentemente pode
	* ser usado pra fazer upload de arquivos de forma assíncrona.
	* Use a vontade mas coloque meu nome nos créditos. Licença Creative Commons.
	* Versão: 1.0 - 03/03/2007 - Testado no FF2.0 IE6.0 e OP9.1
	* Autor: Micox - Náiron JCG - elmicox.blogspot.com - micoxjcg@yahoo.com.br
	* Parametros:
	* form - o form a ser submetido ou seu ID
	* url_action - url pra onde deve ser submetido o form
	* id_elemento_retorno - id do elemento que irá receber a informação de retorno
	* html_exibe_carregando - Texto (ou imagem) que será exibido enquanto se carrega o upload
	* html_erro_http - texto (ou imagem) que será exibido se der erro HTTP.
	*******/
	
	//testando se passou o ID ou o objeto mesmo
	form = typeof(form)=="string"?$m(form):form;
	
	var erro="";
		if(form==null || typeof(form)=="undefined"){ 
			erro += "form passado 1o parametro não existe!\n";
		} else if(form.nodeName!="FORM"){ 
			erro += "form passado 1o parametro não é um form!\n";
		} if($m(id_elemento_retorno)==null) { 
			erro += "O elemento passado no 3o parâmetro não existe!.\n";
		}
		if(erro.length>0) {
			alert("Falha ao chamar a função upload:\n" + erro);
			return;
		}
	
		//criando o iframe
		var iframe = document.createElement("iframe");
		iframe.setAttribute("id","micox-temp");
		iframe.setAttribute("name","micox-temp");
		iframe.setAttribute("width","0");
		iframe.setAttribute("height","0");
		iframe.setAttribute("border","0");
		iframe.setAttribute("style","width: 0; height: 0; border: none;");
		/* Não usei display:none pra esconder o iframe
		pois tem uma lenda que diz que o NS6 ignora
		iframes que tenham o display:none */
		
		//adicionando ao documento
		form.parentNode.appendChild(iframe);
		window.frames['micox-temp'].name="micox-temp"; //ie sucks
	
		//adicionando o evento ao carregar
		var carregou = function() { 
			removeEvent( $m('micox-temp'),"load", carregou);
			var cross = "javascript: ";
			cross += "window.parent.$m('" + id_elemento_retorno + "').innerHTML = document.body.innerHTML; void(0); ";
			
			$m(id_elemento_retorno).innerHTML = html_erro_http;
			$m('micox-temp').src = cross;
			//deleta o iframe
			setTimeout(function(){ remove($m('micox-temp'))}, 250); 
		}
		addEvent( $m('micox-temp'),"load", carregou)
		
		//setando propriedades do form
		form.setAttribute("target","micox-temp");
		form.setAttribute("action",url_action);
		form.setAttribute("method","post");
		form.setAttribute("enctype","multipart/form-data");
		form.setAttribute("encoding","multipart/form-data");
		//submetendo
		form.submit();
		
		//se for pra exibir alguma imagem ou texto enquanto carrega
		if(html_exibe_carregando.length > 0){
			$m(id_elemento_retorno ).innerHTML = '<div class="carregando">' + html_exibe_carregando + '</div>';
		}

}
