//20090312
function _bloco(arr,capital,_fn,ind,id){
    var _fns=["montaPrevisao","montaSelectBrasil","montaInternacional","aeroportos","praias","changeCidadePrincipal","changeCidadesBrasil"]
    if(capital){
      _xml[arr]=="loaded"?eval(_fn)(arr,ind,id):setTimeout("_bloco("+arr,capital,_fn,ind,id+")",300);
    }else{
      _xml[arr]=="loaded"?eval(_fns[arr])(arr):setTimeout("_bloco("+arr+")",300);
    }
}

function setText(o, txt){IE?o.innerText=txt:o.text=txt}//cross para setar valor dentro do option

function createOption(value,txt){
    obj=d.createElement("OPTION");
    obj.setAttribute("value",value)
    setText(obj,txt)
    return obj;
}

function loading(id){
    $(id).innerHTML="<div class='loading'>Carregando...</div><div class='ajax_loader'><img src='images/ajax-loader.gif' /></div>";
    $(id).style.visibility="visible";
}

function montaImagem(icon,size){//montaImagem(5,'03') = "http://images.ig.com.br/ult_us/fixas/versao_2006/climatempo/previsao/03_chuva_c.gif"
  var imagensPath="http://images.ig.com.br/ult_us/fixas/versao_2006/climatempo/previsao/";
  var imagem=["",//para corrigir indice de icones com indice do array
      size+"_sol",
      size+"_solnuvem",
      size+"_nuvens",
      size+"_solnuvemchuva",
      size+"_chuva_c",
      size+"_cinzachuvaraio",
      size+"_neve_a",
      size+"_neve_b",
      size+"_neve_c",
      size+"_chuva_b",
      size+"_chuva_a",
      size+"_cinzachuva",
      size+"_cinzaluachuvaraio",
      size+"_cinzaraio",
      size+"_cinzaraiosol",
      size+"_garoa",
      size+"_luachuva",
      size+"_luanuvens",
      size+"_solnuvens"]
  return imagensPath+imagem[icon]+".gif";
}


function findNode(dados,termo){
  var rX, rY;
  for(var y=0;y<dados.length;y++){
    if(dados[y].nodeType==1){
        if(dados[y].attributes[0].nodeValue==termo){
          rY=y;
        }
        for(var x=0;x<dados[y].childNodes.length;x++){
          if(dados[y].childNodes[x].nodeType==1){
            if(dados[y].childNodes[x].attributes[0].nodeValue==termo){
              rX=x
              rY=y
              break;
            }
          }
        }
      }
    }
    return rY+","+rX
}


/*Brasil*/
    function montaPrevisao(arr){
      var ptG, ptM;
      var dados=IE?_txt[arr].firstChild.nextSibling:_txt[arr].firstChild;
      var cidadeNome=dados.attributes[0].value;
        with(cidadeNome){
            if(length>=16)font=10;
            if(length>=18)font=9;
            if(length>=20)font=8;
            if(length>16)cidadeNome='<span style="font-size:'+font+'px">'+cidadeNome+'</span>'
        }
      ptG=pttG.replace("XXX_city_name",cidadeNome)
      $('bloco_nacional').innerHTML="";
      for(var i=0,c=0;i<dados.childNodes.length;i++){
        if(dados.childNodes[i].nodeType==1){
          if(c<1){
            text='<div class="cidade_maior">'+patternNacional(i,dados,ptG,"01","60")+'</div><div class="hrtemp hrg"><!-- // --></div>';
          }else{
            text+='<div class="cidade_menor">'+patternNacional(i,dados,pttM,"03","40")+'</div>';
          }
          c++
        }
      }
      $('bloco_nacional').innerHTML=text;
      $('bloco_nacional').style.visibility="visible";
    }
    
    //monta select brasileiro
    function montaSelectBrasil(arr){
          var dados=IE?_txt[arr].firstChild.nextSibling.childNodes:_txt[arr].firstChild.childNodes;
          $("nac_estado").innerHTML="";//zera os valores
          $("nac_estado").appendChild(createOption(null,"Selecione:"))
          
          var sp=findNode(dados,"São Paulo").split(",");
          for(var i=0;i<dados.length;i++){
            if(dados[i].nodeType==1)$("nac_estado").appendChild(createOption(i+","+dados[i].attributes[1].nodeValue,dados[i].attributes[0].nodeValue))
          }
          
          s=IE?Math.ceil(sp[0])+1:Math.ceil((sp[0]/2));
          $("nac_estado").options[s].selected="selected";
          
          $("nac_estado").onchange=function(){
            if(this.value!=""){
              $("nac_cidade").innerHTML="";
              $("nac_cidade").disabled="disabled";
              $("nac_cidade").appendChild(createOption(null,"Carregando..."))
              _data(xmlPath+this.value.split(",")[1]+".xml",6,true)
            }
          }
    }
    
    function changeCidadePrincipal(arr){
        changeCidadesBrasil(arr,true)
    }
    
    function changeCidadesBrasil(arr,sel){
          var dados=IE?_txt[arr].firstChild.nextSibling.childNodes:_txt[arr].firstChild.childNodes;
          $("nac_cidade").innerHTML="";
          $("nac_cidade").appendChild(createOption(null,"Selecione:"))
          $("nac_cidade").removeAttribute("disabled")
          
          for(var i=0;i<dados.length;i++)
            if(dados[i].nodeType==1)$("nac_cidade").appendChild(createOption(i+","+dados[i].attributes[1].nodeValue,dados[i].attributes[0].nodeValue))
          
          if(sel){
            var sp=findNode(dados,"São Paulo").split(",");
            s=IE?Math.ceil(sp[0])+1:Math.ceil((sp[0]/2));
            $("nac_cidade").options[s].selected="selected";
          }  
                
          $("nac_cidade").onchange=function(){
              if(this.value!=""){
                loading('bloco_nacional');
                _data(xmlPath+this.value.split(",")[1]+".xml",0,true)
                }
            }
    }


/*Mundo*/
      function montaPrevisaoInternacional(node,x,arr,nomePais){
            var dados=IE?_txt[arr].firstChild.nextSibling.childNodes[node].childNodes[x]:_txt[arr].firstChild.childNodes[node].childNodes[x];
            blocoInternacional[nomePais]='<div class="cidade_media">'+patternInternacional("1",dados,pttI,"02",nomePais,"50")+'</div>';
      }
      
      function montaInternacional(arr){
            var bar='<div class="hrtemp hrm"><!-- // --></div>';
            var paises=["Estados Unidos","França","Japão","Argentina"]
            var paisesBusca=["New York", "Paris", "Tokio", "Buenos Aires"];
            var dados=IE?_txt[arr].firstChild.nextSibling.childNodes:_txt[arr].firstChild.childNodes;
            $('bloco_internacional').innerHTML="";
            $("int_paises").innerHTML="";//zera os valores
            $("int_paises").appendChild(createOption(null,"Selecione:"))
            
            for(i in paisesBusca){
              pais=findNode(dados,paisesBusca[i]).split(",");
              montaPrevisaoInternacional(pais[0],pais[1],arr,i)
            }
            
            for(var i=0;i<dados.length;i++)
              if(dados[i].nodeType==1)$("int_paises").appendChild(createOption(i,dados[i].attributes[0].nodeValue))
                
            $('bloco_internacional').innerHTML+=blocoInternacional[0]+bar+blocoInternacional[1]+bar+blocoInternacional[2]+bar+blocoInternacional[3];
            
            $("int_paises").onchange=function(){if(this.value!="")populaEstadosInternacional(arr,this.value)}     
            
            $('bloco_internacional').style.visibility="visible";
            blocoInternacional=null;
      }
      
      function populaEstadosInternacional(arr,pais){
            var dados=IE?_txt[arr].firstChild.nextSibling.childNodes[pais].childNodes:_txt[arr].firstChild.childNodes[pais].childNodes;
            $("int_estados").innerHTML="";//zera os valores
            $("int_estados").appendChild(createOption(null,"Selecione:"))
            for(var i=0;i<dados.length;i++){
              if(dados[i].nodeType==1){
                $("int_estados").appendChild(createOption(i,dados[i].attributes[0].nodeValue))
              }
            }
            $("int_estados").onchange=function(){if(this.value!="")montaPrevisaoInt(this.value,dados)}
            $("int_estados").removeAttribute("disabled")
      }
      
      
      function montaPrevisaoInt(arr,dados){
            var ptG, ptM;
            
            var cidadeNome=dados[arr].attributes[0].value;
              with(cidadeNome){
                      if(length>=16)font=10;
                      if(length>=18)font=9;
                      if(length>=20)font=8;
                      if(length>16)cidadeNome='<span style="font-size:'+font+'px">'+cidadeNome+'</span>'
               }
        
            ptG=pttG.replace("XXX_city_name",cidadeNome)
            $('bloco_internacional').innerHTML="";
            for(var i=0,c=0;i<dados[arr].childNodes.length;i++){
              if(dados[arr].childNodes[i].nodeType==1){
                if(c<1){
                  $('bloco_internacional').innerHTML='<div class="cidade_maior">'+patternInternacional(i,dados[arr],ptG,"01","","55")+'</div><div class="hrtemp hrg"><!-- // --></div>';
                }else{
                  $('bloco_internacional').innerHTML+='<div class="cidade_menor">'+patternInternacional(i,dados[arr],pttM,"03","","30")+'</div>';
                }
                c++
              }
          }
      }


/*Aeroportos*/
      function aeroportos(arr){
            var dados=IE?_txt[arr].childNodes[1].childNodes:_txt[arr].childNodes[0].childNodes;
            $('aeroportos').innerHTML="";
            $('aeroportos').appendChild(createOption(null,"Selecione:"))
            
            for(var i=0;i<dados.length;i++)
              if(dados[i].nodeType==1)$("aeroportos").appendChild(createOption(i,dados[i].attributes[0].nodeValue))
              
            
            
            var aero=findNode(dados,"Aeroporto de Congonhas").split(",");
            s=IE?Math.ceil(aero[0])+1:Math.ceil((aero[0]/2));
            $("aeroportos").options[s].selected="selected";
            
            $('aeroporto').innerHTML = patternAeroporto(aero[0],dados)
                
            $("aeroportos").onchange=function(){if(this.value!="")$('aeroporto').innerHTML =patternAeroporto(this.value,dados)}
      }


/*Praias*/
      function praias(arr){
            var dados=IE?_txt[arr].childNodes[1].childNodes:_txt[arr].childNodes[0].childNodes;
            $('ct_praia_estado').innerHTML="";
            $('ct_praia_estado').appendChild(createOption(null,"Selecione:"))
            
            for(var i=0;i<dados.length;i++)
              if(dados[i].nodeType==1)$("ct_praia_estado").appendChild(createOption(i,dados[i].attributes[0].nodeValue))
              
            //define local padrão
            var local=findNode(dados,"Pitangueiras").split(",");
            
            if(local[0]=="undefined" || local[1]=="undefined"){
                local[0]=31;
                local[1]=67;
            }
            
            populaPraias(arr,local[0],local[1]);
            
            s=IE?Math.ceil(local[0])+1:Math.ceil((local[0]/2));
            $("ct_praia_estado").options[s].selected="selected";
            $("ct_praia_estado").onchange=function(){if(this.value!="")populaPraias(arr,this.value)}
      }
      
      function populaPraias(arr,cidade,praia){
            var dados=IE?_txt[arr].firstChild.nextSibling.childNodes[cidade].childNodes:_txt[arr].firstChild.childNodes[cidade].childNodes;
            
            $("ct_praia").innerHTML="";//zera os valores
            $("ct_praia").appendChild(createOption(null,"Selecione:"))
            for(var i=0;i<dados.length;i++)
              if(dados[i].nodeType==1)$("ct_praia").appendChild(createOption(i,dados[i].attributes[0].nodeValue))
            
            if(praia!=null){
              $('pattern_praias').innerHTML=patternPraias(dados[praia])
              s=IE?Math.ceil(praia)+1:Math.ceil((praia/2));
              $("ct_praia").options[s].selected="selected";
            }
            
            $('pattern_praias').style.visibility="visible";
            $("ct_praia").onchange=function(){if(this.value!="")$('pattern_praias').innerHTML=patternPraias(dados[this.value])}
      }


/*Capitais e  regiões*/
      var finished=false;
      function monta_capitais(){
          var brasil={sudeste:["sao_paulo","belo_horizonte","vitoria","rio_de_janeiro"],
                        norte:["manaus","boa_vista","rio_branco","belem","porto_velho","macapa","palmas"],
                        sul:["florianopolis","curitiba","porto_alegre"],
                        nordeste:["sao_luis","teresina","maceio","salvador","fortaleza","joao_pessoa","recife","aracaju","natal"],
                        centrooeste:["campo_grande","brasilia","goiania","cuiaba"]}
      
          var c=7;
          for(i in brasil) {
            for(j=0; j<brasil[i].length; j++){
              _data(xmlPath+brasil[i][j]+".xml",c++,false,true,'montaCidade',j,"capital_" + i)
            }
          }
          finished=true;
      }
      
      function montaCidade(arr,ind,id){
        no=IE?1:0;
        dados=_txt[arr].childNodes[no]
        $(id).innerHTML+=patternCapitais(dados);
        if(finished){
          $('regioes_capitais').style.display="";
          $('loading_regioes').style.display="none";
          $('loading_regioes').innerHTML="";
        }
      }

