// Scripts para o formulário do MAPLINK

var URLJSs = "http://www3.uol.com.br/tempo/maplink-cidades/";   // local onde os JSs das cidades dos estados ficam armazenados

var estados=[{e:"Escolha",uf:""},{e:"Acre",uf:"AC"},{e:"Alagoas",uf:"AL"},{e:"Amazonas",uf:"AM"},{e:"Amapá",uf:"AP"},{e:"Bahia",uf:"BA"},{e:"Ceará",uf:"CE"},{e:"Distrito Federal",uf:"DF"},{e:"Espírito Santo",uf:"ES"},{e:"Goiás",uf:"GO"},{e:"Maranhão",uf:"MA"},{e:"Minas Gerais",uf:"MG"},{e:"Mato Grosso do Sul",uf:"MS"},{e:"Mato Grosso",uf:"MT"},{e:"Pará",uf:"PA"},{e:"Paraíba",uf:"PB"},{e:"Pernambuco",uf:"PE"},{e:"Piauí",uf:"PI"},{e:"Paraná",uf:"PR"},{e:"Rio de Janeiro",uf:"RJ"},{e:"Rio Grande do Norte",uf:"RN"},{e:"Rondônia",uf:"RO"},{e:"Roraima",uf:"RR"},{e:"Rio Grande do Sul",uf:"RS"},{e:"Santa Catarina",uf:"SC"},{e:"Sergipe",uf:"SE"},{e:"São Paulo",uf:"SP"},{e:"Tocantins",uf:"TO"}];
var JSCarregados = {};

function carregarCboEstados() 
{
    var cboEstados = document.getElementById("cboEstados");
    cboEstados.options.length= 0;
    for(var i = 0; i < estados.length; i++)
        cboEstados.options[i] = new Option(estados[i].e, estados[i].uf);
    cboEstados.onchange = carregarCboCidades;
    cboEstados.value= "";
    //carregarCboCidades();
}

function getXMLHTTP()
{
    var XMLHTTP = null;

    if(window.ActiveXObject) {
        try {
            XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e) {
           try {
                XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e) {  }
        }
    }
    else if(window.XMLHttpRequest) {
        try {
            XMLHTTP = new XMLHttpRequest();
        } catch(e) { }
    }
    return XMLHTTP;
}

var xmlHttp = getXMLHTTP();

function carregarCboCidades() 
{
    var cboCidades = document.getElementById("cboCidades");
    cboCidades.options.length= 0;
    cboCidades.options[0] = new Option("Aguarde...", "Aguarde...");
    cboCidades.options[0].selected = true;
    
    var uf = document.getElementById("cboEstados").value;
      
    if (JSCarregados[uf]) {  // arquivo JS já foi carregado anteriormente
        populaCboCidade(JSCarregados[uf].cidades, JSCarregados[uf].capital, uf); 
    }    
    else {  // carrega arquivo JS dinamicamente
        xmlHttp.open("GET", URLJSs + uf + ".js", true);
        xmlHttp.setRequestHeader("encoding", "utf-8");    
        xmlHttp.onreadystatechange = carregaCboCidadesCB;
        xmlHttp.send(null);
    }
}

function carregaCboCidadesCB() 
{
   if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            var cidadesObj = eval("(" + xmlHttp.responseText + ")");
            JSCarregados[cidadesObj.uf] = cidadesObj;
            populaCboCidade(JSCarregados[cidadesObj.uf].cidades, JSCarregados[cidadesObj.uf].capital, cidadesObj.uf);
        }
    }
}

function populaCboCidade(cidades, capital, uf)
{
    var cboCidades = document.getElementById("cboCidades");
    cboCidades.options.length= 0;
    for(var i = 0; i < cidades.length; i++)
        cboCidades.options[i] = new Option(cidades[i].nome, cidades[i].nome);
    cboCidades.value = capital;
}

function enviarEndereco() {
    var uf = document.getElementById("cboEstados").value;
    var i = document.getElementById("cboCidades").selectedIndex;
    //window.open("http://maplink.uol.com.br/v2/mapa.aspx?t=aEND&str=" + escape(document.getElementById("txtRua").value) + "&nb=" + escape(document.getElementById("txtNumero").value) + "&ct=" + escape(document.getElementById("cboCidades").value) + "&st=" + uf + "&ctlat=" + JSCarregados[uf].cidades[i].y + "&ctlng=" + JSCarregados[uf].cidades[i].x);
	window.open("http://maplink.uol.com.br/v2/mapa.aspx?t=aEND&ct=" + escape(document.getElementById("cboCidades").value) + "&st=" + uf + "&ctlat=" + JSCarregados[uf].cidades[i].y + "&ctlng=" + JSCarregados[uf].cidades[i].x);
}

function isNumberKey(evt) {
    var e = evt? evt: window.event;
    var charCode = (e.which) ? e.which : e.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
       return false;
       
    return true;
}

function enviarForm(evt)
{
    var e = evt? evt: window.event;
    if(e.keyCode == 13) 
         enviarEndereco();
}

