var msgRetorno = Array();
msgRetorno[0] = '<b style="color:#FF0000;">Erro!</b>';
msgRetorno[1] = '<b style="color:#027b46;">Inserindo dados... Aguarde!</b>';
msgRetorno[2] = '<b style="color:#0000FC;">Dados j&aacute; existentes...</b>';
msgRetorno[3] = '<b style="color:#FF000C;">Removendo dados... Aguarde!</b>';
msgRetorno[4] = '<b style="color:#2500FC;">Alterando dados... Aguarde!</b>'
msgRetorno[5] = '<b style="color:#2500FC;">Falha na alteracao dos dados...</b>'

function openAjax() {
    var ajax;
    try{
        ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers decentes, como: Firefox, Safari, dentre outros.
    }catch(ee){
        try{
            ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS
        }catch(e){
            try{
                ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
            }catch(E){
                ajax = false;
            }
        }
    }
    return ajax;
}

/**
 * Function que executa comandos JavaScript retornados
 * pelo responseText do Ajax
 * @author Ronaldo Lidio
 * @since 2008
 */
var retornoJs = "";
function delimitador(texto){
    retornoJs="try{"
    while(texto.indexOf("%js")!=-1){
        var inicio = texto.indexOf("%js");
        var fim  = texto.indexOf("js%");
        var js="";
        if(inicio>=0){
            for(var i=(inicio+3);i<fim;i++){
                js=js+texto.charAt(i);
            }
            retornoJs = retornoJs+js;
        }
		
        texto=texto.replace(js,"");
        texto=texto.replace("%js","");
        texto=texto.replace("js%","");
    }

    retornoJs = retornoJs+"}catch(e){alert(e);}";
    eval(retornoJs);
    return texto;
}

function metodosRequest(tipo, base, pagina, parametros, funcXML, funcXmlReturn){
    var ajax = new openAjax();
	
    /*
	if(parametros){
		var parametros = parametros.toLowerCase();
	}
	*/
    parametros = "cache=" + Math.ceil(Math.random() * 100000) + "&" + (parametros != null ? parametros : '');
	
    base != null ? base = document.getElementById(base) : base = document.createElement('div');
	
    tipo = tipo.toUpperCase();
	
    if(tipo == 'POST'){
        ajax.open("POST", pagina, true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        ajax.send(parametros);
    }else if(tipo == 'GET'){
        ajax.open("GET", pagina + "?" + parametros, true);
        ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
        ajax.send(null);
    }
	
	
    if (ajax.readyState == 1) {
        if(base){
            base.innerHTML = 'Aguarde...<br />';
            //base.innerHTML = '<img src="teste-01/img/loading.gif" width="34" height="34" alt="loading"/>';
        }
    }
	
    ajax.onreadystatechange = function(){
        if (ajax.readyState == 4 && ajax.status == 200) {
            var response = ajax.responseText;
            if (funcXML == null) {
                if (response.indexOf("%js") != -1) {
                    base.innerHTML = delimitador(response);
                }
                else {
                    if (!msgRetorno[response]) {
                        base.innerHTML = response;
                    }
                    else {
                        base.innerHTML = msgRetorno[response];
                    }
                    if (response == 1 || response == 4 || response == 3) {
                        var time = setTimeout(function(){
                            if (document.forms[0])
                                document.forms[0].reset();
                            base.innerHTML = '';
                        },2000);
                    }
                }
            }
            else {
                var xml = ajax.responseXML;
                if (funcXmlReturn)
                    funcXML(xml, funcXmlReturn);
                else
                    funcXML(xml);
            }
        }
    /*
		var t = setTimeout(function(){
			base.innerHTML = ''
		}, 3000);
		*/
    }
}



function carregaPagina(pagina, base){
    var ajax = new openAjax();
    parametros = "pagina=ok";
    ajax.open("POST", pagina, true);
    ajax.send(parametros);

    if (ajax.readyState == 1) {
    //document.getElementById(base).innerHTML = '<p align="center" style="font:icon">Aguarde<br>Carregando a p&aacute;gina...</p>';
    }
    ajax.onreadystatechange = function(){
        if (ajax.readyState == 4 && ajax.status == 200) {
            if (ajax.responseText) {
                //document.getElementById(base).innerHTML = ajax.responseText;
                objMsg = setTimeout(function() {
                    document.getElementById(base).innerHTML = delimitador(ajax.responseText);
                }, 0);
            }
            else
            if (ajax.readyState == 404) {
                document.getElementById(base).innerHTML = '<p align="center">P&aacute;gina n&atilde;o encontrada...</p>';
            }
            else {
                //document.getElementById(base).innerHTML = ajax.responseText;
					
                objMsg = setTimeout(function() {
                    document.getElementById(base).innerHTML = delimitador(ajax.responseText);
                }, 0);
            }
        }
    }
}

