// Documento JavaScript
// Esta función cargará las paginas
function carregar(url, id_contenedor){
    var pagina_requerida = false
    document.getElementById(id_contenedor).innerHTML="<center><img src='img/load.gif'></center>";
    if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest()
    } else if (window.ActiveXObject){ // pero si es IE
        try {
            pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
        }
        catch (e){ // en caso que sea una versión antigua
            try{
                pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){}
        }
    }
    else
        return false
    pagina_requerida.onreadystatechange=function(){ // función de respuesta
        cargarpagina(pagina_requerida, id_contenedor)
    }
    url = antiCacheRand(url)
    pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
    pagina_requerida.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;")
    pagina_requerida.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate")
    pagina_requerida.setRequestHeader("Pragma", "no-cache")
    pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
    if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)){
        document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText;
		doScript(pagina_requerida.responseText);
    }
}


//a função que gera o randomico *********
function antiCacheRand(aurl){
    //Adiciona um parametro randomico à querystring. By Micox (micoxjcgATyahooPONTOcomPONTObr).
    var dt = new Date();
    if(aurl.indexOf("?")>=0){// já tem parametros
        return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
    }else{ 
        return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime());
    }
}

function doScript(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 e 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 e 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 extencao 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 nao encontrou um "src" dentro da tag script, esta e 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 sera 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;
    }
}