﻿function MostraPais(idPaises, idCampos, idInternacional)
{       
    var comboPais = document.getElementById(idPaises);
    
    if(!comboPais)
        return;
        
    var visible = (comboPais.options[comboPais.selectedIndex].value=="31");
        
    var display = (visible ? "block" : "none");
        
    var fields = idCampos.split(";");
    
    var obj;
    for(var i=0; i < fields.length; i++)
    {
        obj = document.getElementById(fields[i]);        
        if(obj != null)
            obj.style.display = display;        
    }
    
    document.getElementById(idInternacional).style.display = (visible ? "none" : "block");
    
}

function BuscaCidades(cod, idCidades, idBairros, url)
{
    var comboCidade = document.getElementById(idCidades);
    if(cod!=-1)
    {
        var thisDocument = defineCallBack(idCidades, 1 , 0, "Cidade");
            
        var xmlhttp = new getXMLHttpObject();
        
        if (xmlhttp) 
        {
            comboCidade.disabled = true;    
            var length = comboCidade.options.length;
            for(var i=length-1; i>-1; i--)
            {
                comboCidade.remove(i);
            }
            
            var comboBairro = document.getElementById(idBairros);
            comboBairro.disabled = true;    
            var length = comboBairro.options.length;
            for(var i=length-1; i>-1; i--)
            {
                comboBairro.remove(i);
            }
        
            getPageContent(xmlhttp, "GET", 
                url + "BuscaXML.aspx?action=CIDADE&cod=" + cod , 
                true, thisDocument);
        }
    }
    else
    {        
        while(comboCidade.options.length > 0 )
        {
            comboCidade.remove(0);
        }
        comboCidade.disabled = true;
    }
}

function BuscaBairros(cod, idBairro, url)
{
    var comboBairro = document.getElementById(idBairro);
    if(cod!=-1)
    {
        var thisDocument = defineCallBack(idBairro, 0, 1, "Bairro");
        
        comboBairro.disabled = true;
        
        var xmlhttp = new getXMLHttpObject();
        
        if (xmlhttp) 
        {   
            comboBairro.disabled = true;    
            var length = comboBairro.options.length;
            for(var i=length-1; i>-1; i--)
            {
                comboBairro.remove(i);
            }
        
            getPageContent(xmlhttp, "GET", 
                url + "BuscaXML.aspx?action=BAIRRO&cod=" + cod , 
                true, thisDocument);
        }
    }
    else
    {        
        for(var i=comboBairro.options.length-1; i>-1; i--)
        {
            comboBairro.remove(i);
        }
        comboBairro.disabled = true;
    }
}

function getXMLHttpObject() 
{
    var xmlhttp = null;
    try 
    {
         xmlhttp = new XMLHttpRequest();	// firefox
    }
    catch(ex1)
    {
        try
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");	// ie
        }
        catch(ex2)
        {
            try
            {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");	// ie
            }
            catch(ex3)
            {
            }
        }
    }
    return xmlhttp;
}

function defineCallBack(idObject, indexCod, indexDescr, descricaoCampo)
{
    this.responseText = null;
    this.exec = function() 
    {
        PreencheByXML(this.responseText, idObject, indexCod, indexDescr, descricaoCampo);
    }
    return this;
}

function getPageContent(xmlhttp, method, url, isAsync, obj)
{
    xmlhttp.open(method, url, isAsync);
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            obj.responseText = xmlhttp.responseText;
            obj.exec();
        }
    }
    xmlhttp.send(null);
}

function PreencheByXML(xml, idObject, indexCod, indexDescr, descricaoCampo)
{   
    if (window.ActiveXObject) //IE
    {
        var doc=new ActiveXObject("Microsoft.XMLDOM");
        doc.async="false";
        doc.loadXML(xml);
    }    
    else  //Mozilla, Firefox, Opera
    {
        var parser=new DOMParser();
        var doc=parser.parseFromString(xml,"text/xml");
    }
        
    var comboGeneric = document.getElementById(idObject);
            
    var newOption;
    
    newOption = document.createElement("OPTION");
    comboGeneric.options.add(newOption);
    
    newOption.innerText = ">>> Selecione um " + descricaoCampo + " <<<";
    newOption.value = "-1";
    
    for(var i=0; i < doc.documentElement.childNodes.length; i++)
    {
        newOption = document.createElement("OPTION");
        comboGeneric.options.add(newOption);
        
        newOption.innerText = doc.documentElement.childNodes[i].childNodes[indexDescr].text;
        newOption.value = doc.documentElement.childNodes[i].childNodes[indexCod].text;
    }
    
    comboGeneric.disabled = false;
    
}