
// A função abaixo cria a instância do Ajax tanto para o Firefox como para o internet explorer
function createXMLHTTP() {

    //Monta um array para a tentativa das versões no I.E., apartir da versão 5.0 passa a ser nativo. 
    var arrSignatures = ["MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP", "MSXML2.XMLHTTP.4.0", "Microsoft.XMLHTTP"];

    //Pecorre o array na base da tentativa e erro. 
    for (var i = 0; i < arrSignatures.length; i++) {
                //Efetua a tentativa em outros Navegadores FireFox, Lynux e Opera e retorna o objeto 
        try {
                var ajax = new XMLHttpRequest();
            return ajax;
        }
        catch (oError) {
            try {
	    	    //Efetua a tentativa do Internet Explorer, dando certo efeuta o retorno da função e sai do laço  
    	        var ajax = new ActiveXObject(arrSignatures[i]);
                return ajax;
            }
            catch (exc) {
                //Envia a mensagem de erro para o usuário e aborta a execução.
                window.alert("Esse browser não tem recursos para uso do Ajax!");
                return false;
            }
        }
    }
    throw new Error("Esse browser não tem recursos para uso do Ajax");
    //Caso passe de todo o laço sem possibilidade de retorno envia a seguinte mensagem de erro para o usuário
}

/* BEGIN  ********** BIBLIOTECAS XML *********************************  */

function xmlLoader(url) {
    //by Micox: micoxjcg@yahoo.com.br.
    if (window.XMLHttpRequest) {
        var Loader = createXMLHTTP();
        Loader.open("GET", url, false);
        Loader.send(null);
        return Loader.responseXML;
    } else if (window.ActiveXObject) {
        var Loader = new ActiveXObject("Msxml2.DOMDocument.3.0");
        Loader.async = false;
        Loader.load(url);
        return Loader;
    }
}


function xmlMicoxArvore(xmlNode, identacao) {
    //by Micox: micoxjcg@yahoo.com.br
    var arvoreTxt = ""; //esta var armazenara o conteudo
    alert(xmlNode.childNodes.length);
    for (var i = 0; i < xmlNode.childNodes.length; i++) {//percorrendo os filhos do nó
        if (xmlNode.childNodes[i].nodeType == 1) {//ignorar espaços em branco
            //pegando o nome do nó
            arvoreTxt = arvoreTxt + identacao + xmlNode.childNodes[i].nodeName + ": "
            if (xmlNode.childNodes[i].childNodes.length == 0) {
                //se não tiver filhos eu já pego o nodevalue
                arvoreTxt = arvoreTxt + xmlNode.childNodes[i].nodeValue
                for (var z = 0; z < xmlNode.childNodes[i].attributes.length; z++) {
                    var atrib = xmlNode.childNodes[i].attributes[z];
                    arvoreTxt = arvoreTxt + " (" + atrib.nodeName + " = " + atrib.nodeValue + ")";
                }
                arvoreTxt = arvoreTxt + "<br />\n";
            } else if (xmlNode.childNodes[i].childNodes.length > 0) {
                //se tiver filhos eu tenho que pegar o valor pegando o valor do primeiro filho
                arvoreTxt = arvoreTxt + xmlNode.childNodes[i].firstChild.nodeValue;
                for (var z = 0; z < xmlNode.childNodes[i].attributes.length; z++) {
                    var atrib = xmlNode.childNodes[i].attributes[z];
                    arvoreTxt = arvoreTxt + " (" + atrib.nodeName + " = " + atrib.nodeValue + ")";
                }
                //recursividade para carregas os filhos dos filhos
                arvoreTxt = arvoreTxt + "<br />\n" + xmlMicoxArvore(xmlNode.childNodes[i], identacao + "> > ");
            }
        }
    }
    return arvoreTxt;
}

/* END  ********** BIBLIOTECAS XML *********************************  */

function ConverteTexto(strTexto) {

    strTexto = strTexto.replace(/\+/g, " "); // Substitue o “+” por um espaço.
    strTexto = unescape(strTexto); // Desfaz o que a função urlencode(); fez.

    return strTexto;
}


function tb_parseQuery(query) {
    var Params = {};
    if (!query) { return Params; } // return empty object
    var Pairs = query.split(/[;&]/);
    for (var i = 0; i < Pairs.length; i++) {
        var KeyVal = Pairs[i].split('=');
        if (!KeyVal || KeyVal.length != 2) { continue; }
        var key = unescape(KeyVal[0]);
        var val = unescape(KeyVal[1]);
        val = val.replace(/\+/g, ' ');
        Params[key] = val;
    }
    return Params;
}



function OpenBox(URL) {

    var params = tb_parseQuery(URL)

    if (params['validar'] != undefined && eval(params['validar'] + '();') != true)
        return;

    document.getElementById('BX_window').style.display = 'Block';
    document.getElementById('BX_iframeContent').style.height = params['height'];
    document.getElementById('BX_iframeContent').style.width = params['width'];
    document.getElementById('BX_iframeContent').style.display = 'Block';
    document.getElementById('BX_iframeContent').src = URL;

    //$("BX_iframeContent").append("<div id='BX_title' style='width:"+params['width']+"px;'><div id='BX_ajaxWindowTitle'>"+params['titulo']+"</div><div id='BX_closeAjaxWindow'><a href='javascript:CloseBox();' id='BX_closeWindowButton' title='Close'>Fechar</a></div></div>");
}

function CloseBox() {

    document.getElementById('BX_window').style.display = 'none';
    document.getElementById('BX_iframeContent').style.display = 'none';

}

function getPosicaoElemento(elemID) {
    var offsetTrail = elemID;
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 &&
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    return { left: offsetLeft, top: offsetTop };
}

function SelecionaObjeto(Objeto) {
    SelecionarItem(document.getElementById(Objeto));

    if (document.getElementById(Objeto).checked == false)
        document.getElementById(Objeto).checked = true;
    else
        document.getElementById(Objeto).checked = false;

    SelecionarItem(document.getElementById(Objeto));
}

function SelecionarItem(Item) {

    if (Item.checked == true) {

        if (document.getElementById('Selecionados').value.indexOf(Item.value) < 0) {
            document.getElementById('Selecionados').value = document.getElementById('Selecionados').value + ',' + Item.value;

        }
    }
    else {
        if (document.getElementById('Selecionados').value.indexOf(Item.value) >= 0) {
            vetItens = document.getElementById('Selecionados').value.split(",")
            document.getElementById('Selecionados').value = '';
            var remontaItens = '';
            for (var i = 0; i <= vetItens.length - 1; i++) {
                if (vetItens[i] != Item.value && vetItens[i] != '' && vetItens[i] != 'undefined') {
                    document.getElementById('Selecionados').value = document.getElementById('Selecionados').value + ',' + vetItens[i];
                }
            }
        }
    }
    //alert(document.getElementById('Selecionados').value);
}

function FecharDiv(Objeto) {
    document.getElementsByTagName('body')[0].style.overflow = 'auto';
    document.getElementsByTagName('html')[0].style.overflow = 'auto';

    document.getElementById('div_' + Objeto).style.visibility = "hidden";
    document.getElementById('ifr_' + Objeto).style.visibility = "hidden";
    document.getElementById(Objeto).style.visibility = "hidden";

}

function CriaJanela(pstrParam, pstrURL, NomeJanela) {

    document.getElementsByTagName('body')[0].scrollTop = 0;
    document.getElementsByTagName('body')[0].style.overflow = 'hidden';
    document.getElementsByTagName('html')[0].style.overflow = 'hidden';

    // Criando o objeto Ajax
    var objAjax;
    objAjax = createXMLHTTP();
    document.getElementsByTagName('body')[0].onResize = "alert('You have changed the size of the window');";

    // Criando div de fundo
    if (document.getElementById('div_' + NomeJanela) != '[object]') {
        var node0 = document.createElement('DIV');
        node0.setAttribute('id', 'div_' + NomeJanela);
        document.getElementsByTagName('body')[0].appendChild(node0);
        document.getElementById('div_' + NomeJanela).style.position = 'absolute';
        document.getElementById('div_' + NomeJanela).style.top = '0px';
        document.getElementById('div_' + NomeJanela).style.left = '0px';

        //document.getElementById('div_'+NomeJanela).style.background = '#999999';
        document.getElementById('div_' + NomeJanela).className = "bodyCor";
        document.getElementById('div_' + NomeJanela).style.filter = 'Alpha(Opacity=50)';
        document.getElementById('div_' + NomeJanela).style.height = '100%';
        document.getElementById('div_' + NomeJanela).style.width = '100%';
        document.getElementById('div_' + NomeJanela).style.zindex = '2';
        document.getElementById('div_' + NomeJanela).onclick = 'FecharDiv();';
        document.getElementById('div_' + NomeJanela).style.border = "none";
    }
    else
        document.getElementById('div_' + NomeJanela).style.visibility = "visible";

    // Criando div de fundo
    if (document.getElementById('ifr_' + NomeJanela) != '[object]') {
        var node0 = document.createElement('iframe');
        node0.setAttribute('id', 'ifr_' + NomeJanela);
        document.getElementsByTagName('body')[0].appendChild(node0);
        document.getElementById('ifr_' + NomeJanela).style.position = 'absolute';
        document.getElementById('ifr_' + NomeJanela).style.top = '0px';
        document.getElementById('ifr_' + NomeJanela).style.left = '0px';
        document.getElementById('ifr_' + NomeJanela).style.background = '#999999';
        document.getElementById('ifr_' + NomeJanela).style.filter = 'Alpha(Opacity=0)';
        document.getElementById('ifr_' + NomeJanela).style.height = '100%';
        document.getElementById('ifr_' + NomeJanela).style.width = '100%';
        document.getElementById('ifr_' + NomeJanela).style.zindex = '1';
        document.getElementById('ifr_' + NomeJanela).onclick = "FecharDiv();";
        document.getElementById('ifr_' + NomeJanela).style.visibility = "visible";
        document.getElementById('ifr_' + NomeJanela).style.border = "0";
    }
    else
        document.getElementById('ifr_' + NomeJanela).style.visibility = "visible";

    // Criando div de fundo
    if (document.getElementById(NomeJanela) != '[object]') {
        var node0 = document.createElement('DIV');
        node0.setAttribute('id', NomeJanela);
        document.getElementsByTagName('body')[0].appendChild(node0);
        document.getElementById(NomeJanela).style.border = '1px solid #000000';
        document.getElementById(NomeJanela).style.padding = '0px 0px 4px 0px';
        document.getElementById(NomeJanela).style.zindex = '101';

        document.getElementById(NomeJanela).style.top = (document.getElementsByTagName('body')[0].offsetHeight - document.getElementById(NomeJanela).style.height) / 2;
        document.getElementById(NomeJanela).style.left = (document.getElementsByTagName('body')[0].offsetWidth - document.getElementById(NomeJanela).style.width) / 2;

        document.getElementById(NomeJanela).style.position = 'absolute';
        document.getElementById(NomeJanela).textalign = 'center';
        document.getElementById(NomeJanela).style.visibility = "visible";
        document.getElementById(NomeJanela).style.border = "0";
    }
    else
        document.getElementById(NomeJanela).style.visibility = "visible";

    //document.getElementById(pstrDivResposta).innerHTML 	= '<center><span class="bordaBairros" style="background:#FFFFFF;"><span style=" height:17px; padding-top:1px; text-align:center;">&nbsp;&nbsp;&nbsp;&nbsp; Aguarde... &nbsp;&nbsp;&nbsp;&nbsp;</span></span></center>';
    //Efetuando a abertura da requisição, Tipo, URL Requirida, Tipo de Conexão true - Assincrona e false sincrona 
    objAjax.open("get", pstrURL + "?" + 'base=nom_' + NomeJanela + '&' + pstrParam, true);

    //Informando o tipo da página de requisição 
    objAjax.setRequestHeader("Content-Type", "text/plain");

    //Informando o controle de cachê no caso abaixo informando para ignorar o cachê 
    objAjax.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    objAjax.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
    objAjax.setRequestHeader("Pragma", "no-cache");

    objAjax.onreadystatechange = function() {
        //Validando o status do retorno 
        if (objAjax.readyState == 4) {

            if (parseInt(navigator.appVersion) > 3) {
                if (navigator.appName == "Netscape") {
                    winW = window.innerWidth;
                    winH = window.innerHeight;
                }

                if (navigator.appName.indexOf("Microsoft") != -1) {
                    winW = document.body.offsetWidth;
                    winH = document.body.offsetHeight;
                }
            }

            //Informando aonde o conteúdo deve ser posicionado 
            document.getElementById(NomeJanela).innerHTML = objAjax.responseText;
            document.getElementById('div_' + NomeJanela).onclick = "FecharDiv();";
            document.getElementById('ifr_' + NomeJanela).onclick = "FecharDiv();";
            document.getElementById(NomeJanela).onclick = "FecharDiv();";

            window.onresize = function() {
                document.getElementById(NomeJanela).style.top = parseInt((document.body.offsetHeight - document.getElementById('nom_' + NomeJanela).offsetHeight) / 2) + 'px';
                document.getElementById(NomeJanela).style.left = parseInt((document.body.offsetWidth - document.getElementById('nom_' + NomeJanela).offsetWidth) / 2) + 'px';
                document.getElementById('div_' + NomeJanela).style.height = document.body.offsetHeight;

                //					alert(document.getElementById('nom_'+NomeJanela).offsetHeight);
            }


            document.getElementById(NomeJanela).style.top = parseInt((winH - document.getElementById('nom_' + NomeJanela).offsetHeight) / 2) + 'px';
            document.getElementById(NomeJanela).style.left = parseInt((winW - document.getElementById('nom_' + NomeJanela).offsetWidth) / 2) + 'px';
        }
    }

    //Perceba que a requesição deve ser feita abaixo da função onreadystatechange, 
    //Não esqueça de colocar null se não houver nenhum parâmetro senão não funciona nos outros navegadores. 
    objAjax.send(pstrParam);
}

function getPosicaoElemento(elemID) {
    var offsetTrail = elemID;
    var offsetLeft = 0;
    var offsetTop = 0;

    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }

    if (navigator.userAgent.indexOf("Mac") != -1 && typeof (document.body.leftMargin) != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }

    return { left: offsetLeft, top: offsetTop };
}

function OcultaObjetos(prObejto) {
    document.getElementById("" + prObejto + "").style.visibility = "hidden";
    document.getElementById("RetornoEvo2").style.visibility = "hidden";
    document.getElementById("retEvos").style.visibility = "hidden";
    return false;
}

function Formatabr(text) {
    var normalized_Enters = text //.replace(/\r|\n/g, "\r\n");
    var text_with_br = normalized_Enters.replace(/\r\n/g, "<br />");
    return text_with_br;
}

function UnFormatabr(text) {
    var normalized_Enters = text //.replace(/\r|\n/g, "\r\n");
    var text_with_br = normalized_Enters.replace("<br>", /\r|\n/g);
    return text_with_br;
}

//Mozilla
if (window.XMLHttpRequest) {
  tpBrowser = 'ns';
  http_request = new XMLHttpRequest();

  if (http_request.overrideMimeType)
    http_request.overrideMimeType('text/xml');
}

//Internet Explorer
else if (window.ActiveXObject) {
  tpBrowser = 'ie';
  try {http_request = new ActiveXObject("Msxml2.XMLHTTP");}
  catch (e) {
    try {http_request = new ActiveXObject("Microsoft.XMLHTTP");}
    catch (e) {}
  }
}

