// JavaScript Document

function requestPageForValidation(url, metodo, modo, tagId) {
  //var divImagem = "<img src='../resources/img/carregando2.gif'>"
  var divImagem = "";
  goAjax( url , metodo, modo , tagId, divImagem);
}

function requestPage(url, metodo, modo, tagId) {
  var divImagem = "<br /><br /><br /><br /><br /><br />";
  divImagem = divImagem + "<div align='center'>";
  divImagem = divImagem + "<img src='../resources/img/carregando.gif'>";
  divImagem = divImagem + "</div><br /><br />";
  goAjax( url , metodo, modo , tagId, divImagem);
}

function goAjax(url, metodo, modo, tagRetorno,divImagem) {
    //Tenta criar o objeto xmlHTTP
    try{
        xmlhttp = new XMLHttpRequest();
    }catch(ee){
        try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            try{
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }catch(E){
                xmlhttp = false;
            }
        }
    }
    
    document.getElementById(tagRetorno).innerHTML = divImagem;
    
    if ( url.indexOf("?") == -1 ) {
        url = url + "?rnd"+ Math.random();
    } else {
        url = url + "&rnd"+ Math.random();
    }

    if(metodo == "GET") {
        xmlhttp.open("GET", url, modo);
    } else {        
        xmlhttp.open("POST", url, modo);
        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 = function() {
        if(xmlhttp.readyState == 4) {
            //retorno=xmlhttp.responseText
            retorno=unescape(xmlhttp.responseText.replace(/\+/g," "));
			document.getElementById(tagRetorno).innerHTML = retorno;
			extraiScript(retorno);
        }
    }
    
    if(metodo == "GET") {
        xmlhttp.send(null);
    }
		
}

function extraiScript(texto) {
    // inicializa o inicio ><
    var ini = 0;
    // loop enquanto achar um script
    while (ini!=-1){
        // procura uma tag de script
        ini = texto.indexOf('<script', ini);
        // se encontrar
        if (ini >=0){
            // define o inicio para depois do fechamento dessa tag
            ini = texto.indexOf('>', ini) + 1;
            // procura o final do script
            var fim = texto.indexOf('</script>', ini);
            // extrai apenas o script
            codigo = texto.substring(ini,fim);
            // executa o script
            eval(codigo);
        }
    }
}