$('document').ready(function(){
  initApuraHandlers('mapIm_1');
  initApuraHandlers('mapIm_2');
});

var xml_1="http://apuracao.ig.com.br/resultado/2turno2010/presidente/homeResumoApuracaoTotal.xml";
var xml_2="http://apuracao.ig.com.br/resultado/2turno2010/governador/homeResumoApuracaoTotal.xml";
var tt=null;
var tta=null;
var tta2=null;
var ttp=null;
var ttOffX=5;
var ttOffY=5;
var maxWidthTt=100;
var maxWidthTtapu=140;
var maxWidthTtapu2=180;
var ufAtual='';
var timeToDieTt=1000;
var msgNaoDivulgado='Ainda não divulgado';
var objImages=null;
var ufs=['AC','AL','AM','AP','BA','CE','DF','ES','GO','MA','MG','MS','MT','PA','PB','PE','PI','PR','RJ','RN','RO','RR','RS','SC','SE','SP','TO'];
var apuraData={};

// inicialização 
function initApuraHandlers(map){
  var im = document.getElementById(map);
  
  for (var k in im.childNodes){
    var c=im.childNodes[k];
    if (c.nodeName=='AREA'){
      c.onmousemove=ttUf;
    }
  }
  
  if(map == "mapIm_1"){
    apuraData = getApura(apuraData, xml_1, '1');
  }else if(map == "mapIm_2"){
    apuraData = getApura(apuraData, xml_2, '2');
  }
  atualizaMapa(apuraData);
}
// ajax força bruta para não causar confusão em outros pontos - chamar de novo para atualizar
function getApura(apura, xmlPath, indice){
  if (window.XMLHttpRequest){
    xmlhttp = new XMLHttpRequest();// code for IE7+, Firefox, Chrome, Opera, Safari
  }else{
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");// code for IE6, IE5
  }
  
  xmlhttp.open("GET",xmlPath,false);
  xmlhttp.send();
  xmlDoc=xmlhttp.responseXML;
  
  if(typeof xmlDoc == 'object'){
    $("#mapaapuracao2010_1").css("display","block");
    $("#mapaapuracao2010_2").css("display","block");
  }
  
  var estados = xmlDoc.getElementsByTagName('estado');
  var arattr=['nome', 'sigla', 'eleitores', 'eleitoresApurados', 'eleitoresApuradosPerc', 'eleito', 'eleito2', 'siglaPartido', 'siglaPartido2', 'situacao', 'percEleito', 'percEleito2'];
  
  for (var i=0; i<estados.length; i++){
    var umEstado={};
    
    for (var k=0; k < arattr.length; k++){
      var val;
      if (typeof estados[i].getAttribute != 'undefined'){
        val=estados[i].getAttribute(arattr[k]);
      }else{
        val=estados[i].attributes[arattr[k]];
      }
      
      eval('umEstado.'+arattr[k]+'="'+((!val) ||typeof val == 'undefined'?'':val)+'";');
    }
    apura[umEstado.sigla + '_' + indice]=umEstado;
  }
  
  for (var i=0; i<ufs.length; i++){
    if (typeof(apura[ufs[i] + '_' + indice])=='undefined'){
      apura[ufs[i] + '_' + indice]={};
      for (var k=0; k<arattr.length; k++){
        apura[ufs[i] + '_' + indice][arattr[k]]='';
      }
      apura[ufs[i] + '_' + indice]['sigla']=ufs[i];
      apura[ufs[i] + '_' + indice]['nome']=ufs[i];
      apura[ufs[i] + '_' + indice]['eleitores']=0;
      apura[ufs[i] + '_' + indice]['eleitoresApurados']=0;
      apura[ufs[i] + '_' + indice]['eleitoresApuradosPerc']=0;
      apura[ufs[i] + '_' + indice]['percEleito']=0;
      apura[ufs[i] + '_' + indice]['percEleito2']=0;
      apura[ufs[i] + '_' + indice]['siglaPartido']=0;
      apura[ufs[i] + '_' + indice]['siglaPartido2']=0;
    }
  }
  return apura;
}
// função que faz o trabalho de colorir o mapa
function atualizaMapa(vals){
  if (!objImages) {
    if (!getObjImages()) return;
  }
  for(var id in vals){
    var perc=parseInt(vals[id].eleitoresApuradosPerc);
    var percEleito=parseInt(vals[id].percEleito);
    var percEleito2=parseInt(vals[id].percEleito2);
    var eleito=vals[id].eleito;
    var sigla=vals[id].sigla;
    var situacao=vals[id].situacao;
    var siglaPartido=vals[id].siglaPartido;
    
    var img=null;
    var ida=id.toLowerCase()+'a';      
    var idv=id.toLowerCase()+'v';
    
    try{
      var imga=objImages[ida];
      var imgv=objImages[idv];
      
      // se for do mapa 1, colorirá conforme o partido      
      if(id.match('_1$')=='_1'){
        if(siglaPartido != "" && siglaPartido != null){
          if(siglaPartido!='PT'){
          imga.style.display='';
          imgv.style.display='none';
          }else if(siglaPartido=='PT'){
            imga.style.display='none';
            imgv.style.display='';
          }
        }else{
          imga.style.display='none';
          imgv.style.display='none';
        }
      // se for o mapa 2, colorirá conforme o status
      }else if(id.match('_2$')=='_2'){
        if(situacao != "" && situacao != null){
          if (situacao==6){
          imga.style.display='';
          imgv.style.display='none';
          }else if (situacao==1){
            imga.style.display='none';
            imgv.style.display='';
          }
        }else{
          imga.style.display='none';
          imgv.style.display='none';
        }
      }
    } catch(e){
      alert(e + ' - ' + id + ' catch');
      break;
    }
  }
}
function ttUf(e){
  if (!e) var e = window.event;
  var el = (window.event) ? e.srcElement : e.target;
  
  if(!tt && el.parentNode.id == "mapIm_1"){
    criaTt();
  }else if(!tt && el.parentNode.id == "mapIm_2"){
    criaTt();
  }
  
  if (tt.tout) clearTimeout(tt.tout);
  if (ttp.tout) clearTimeout(ttp.tout);
  if (tta.tout) clearTimeout(tta.tout);
  if (tta2.tout) clearTimeout(tta2.tout);
  var x=e.clientX;
  var y=e.clientY;
  var scr=getScrollXY();
  var scrollX=scr[0];
  var scrollY=scr[1];
  x+=scrollX;
  y+=scrollY;
  
  var uf=pegaAttribute(el, 'uf');
  var rebuild=(ufAtual!=uf);
  ufAtual=uf;
  
  var percApu=apuraData[ufAtual].eleitoresApuradosPerc;
  var situa = apuraData[ufAtual].situacao;
  
  var usaTooltipDuplo = false;
  var usaTooltipSimples = false;
  var usaTooltipPresidente = false;
  if(el.parentNode.id=="mapIm_1"){
    usaTooltipPresidente = true;
  }else if(situa==1){
    usaTooltipSimples = true;
  }else if(situa==6){
    usaTooltipDuplo = true;
  }else{
    usaTooltipDuplo = true;
  }
  var usaTooltipBasico=false;
  
  if (usaTooltipPresidente){
    tt.style.display='none';
    tta.style.display='none';
    tta2.style.display='none';
    if (rebuild){
      var ttpUf=ttp.getElementsByTagName('dt');
      for(var i in ttpUf){
        ttpUf[i].innerHTML=apuraData[ufAtual].nome;
      }
      $('#ttPresidente dd').empty();
      var ttpNome=ttp.getElementsByTagName('dd');
      //if(ttpNome.length>=2){
        if(apuraData[ufAtual].siglaPartido=='PT'){
          ttpNome[0].innerHTML='<strong>Dilma Rousseff</strong>'+apuraData[ufAtual].percEleito+'%';
          ttpNome[0].className='ddpt';
          ttpNome[1].innerHTML='<strong>Jos&eacute; Serra</strong>'+apuraData[ufAtual].percEleito2+'%';
          ttpNome[1].className='ddpsdb';
        }else if(apuraData[ufAtual].siglaPartido=='PSDB'){
          ttpNome[0].innerHTML='<strong>Jos&eacute; Serra</strong>'+apuraData[ufAtual].percEleito+'%';
          ttpNome[0].className='ddpsdb';
          ttpNome[1].innerHTML='<strong>Dilma Rousseff</strong>'+apuraData[ufAtual].percEleito2+'%';
          ttpNome[1].className='ddpt';
        }
        if(apuraData[ufAtual].siglaPartido==''){
           ttpNome[0].innerHTML='<strong>Dilma Rousseff</strong> 0%';
            ttpNome[0].className='ddpt';
            ttpNome[1].innerHTML='<strong>Jos&eacute; Serra</strong> 0%';
            ttpNome[1].className='ddpsdb';
        }
      //}
    }
    ttp.style.display='';
    var w=ttp.offsetWidth;
    var h=ttp.offsetHeight;
    ttp.style.left=(x-w-ttOffX<0?0:x-w-ttOffX)+'px';
    ttp.style.top=(y-h-ttOffY<0?0:y-h-ttOffY)+'px';
  }else if (usaTooltipDuplo){
    tt.style.display='none';
    tta.style.display='none';
    ttp.style.display='none';
    if (rebuild){
      var tdnome=document.getElementById('ttip2ContNome1');
      tdnome.innerHTML=apuraData[ufAtual].eleito;      
      var tdnome2=document.getElementById('ttip2ContNome2');
      tdnome2.innerHTML=apuraData[ufAtual].eleito2;      
      var tdsiglapartido=document.getElementById('ttip2SiglaPartido1');/*Sigla Partido*/
      tdsiglapartido.innerHTML="("+apuraData[ufAtual].siglaPartido+")";      
      var tdsiglapartido2=document.getElementById('ttip2SiglaPartido2');/*Sigla Partido*/
      tdsiglapartido2.innerHTML="("+apuraData[ufAtual].siglaPartido2+")";      
      var tdperc=document.getElementById('ttip2ContPerc1');
      tdperc.innerHTML=apuraData[ufAtual].percEleito+'%';      
      var tdperc2=document.getElementById('ttip2ContPerc2');
      tdperc2.innerHTML=apuraData[ufAtual].percEleito2+'%';      
      var tduf=document.getElementById('ttip2ContUF');
      tduf.innerHTML=apuraData[ufAtual].sigla;
      var tdpercapu=document.getElementById('ttip2ContPerc');
      tdpercapu.innerHTML=percApu+'%';
    }
    var tbtta2=document.getElementById('tbttipapu2');
    tta2.style.width=(maxWidthTtapu2/2)+'px';
    tta2.style.display='';
    var w=tbtta2.offsetWidth;
    var h=tta2.offsetHeight;
    if (w>maxWidthTtapu2) {
      tta2.style.width=maxWidthTtapu2+'px';
      w=maxWidthTtapu2;
    }
    tta2.style.left=(x-w-ttOffX<0?0:x-w-ttOffX)+'px';
    tta2.style.top=(y-h-ttOffY<0?0:y-h-ttOffY)+'px';
  }else if (usaTooltipSimples){
    tta.style.display='none';
    tta2.style.display='none';
    ttp.style.display='none';
    if (rebuild){
      var tdnome=document.getElementById('ttipContNome');
      var candidato = (apuraData[ufAtual].percEleito > apuraData[ufAtual].percEleito2) ? apuraData[ufAtual].eleito : apuraData[ufAtual].eleito2;
      var valorEmPorcento = (apuraData[ufAtual].percEleito > apuraData[ufAtual].percEleito2) ? apuraData[ufAtual].percEleito : apuraData[ufAtual].percEleito2;
      tdnome.innerHTML=(apuraData[ufAtual].situacao==6?'Segundo turno':candidato);
      
      var tdsiglapartido=document.getElementById('ttipSiglaPartido');/*Sigla Partido*/
      tdsiglapartido.innerHTML="("+apuraData[ufAtual].siglaPartido+")"; 
      
      var tdperc=document.getElementById('ttipContPercC');
      tdperc.innerHTML = valorEmPorcento+'%';

      var tdnome=document.getElementById('ttipContUF');
      tdnome.innerHTML=apuraData[ufAtual].sigla;
      var tdnome=document.getElementById('ttipContPerc');
      tdnome.innerHTML=percApu+'%';
    }
    var tbtt=document.getElementById('tbttip');
    tt.style.width=(maxWidthTt/2)+'px';
    tt.style.display='';
    var w=tbtt.offsetWidth;
    var h=tt.offsetHeight;
    if (w>maxWidthTt) {
      tt.style.width=maxWidthTt+'px';
      w=maxWidthTt;
    }
    tt.style.left=(x-w-ttOffX<0?0:x-w-ttOffX)+'px';
    tt.style.top=(y-h-ttOffY<0?0:y-h-ttOffY)+'px';
    
  }else if (usaTooltipBasico){ 
    tt.style.display='none';
    tta2.style.display='none';
    ttp.style.display='none';
    if (rebuild){
      var tdnome=document.getElementById('ttipapuContUF');
      tdnome.innerHTML=ufAtual;
      var tdnome=document.getElementById('ttipapuContPerc');
      tdnome.innerHTML=percApu+'%';
    }
    var tbtta=document.getElementById('tbttipapu');
    tta.style.width=(maxWidthTtapu/2)+'px';
    tta.style.display='';
    var w=tbtta.offsetWidth;
    var h=tta.offsetHeight;
    if (w>maxWidthTtapu) {
      tt.style.width=maxWidthTtapu+'px';
      w=maxWidthTtapu;
    }
    tta.style.left=(x-w-ttOffX<0?0:x-w-ttOffX)+'px';
    tta.style.top=(y-h-ttOffY<0?0:y-h-ttOffY)+'px';
  }
}
// neutralidade ao pegar o atributo
function pegaAttribute(el, qual){
  var val=null;
  if (typeof el.getAttribute != 'undefined') val=el.getAttribute(qual); else val=el.attributes[qual];
  return val;
}
function showUf(uf){
  document.location='http://apuracao.ig.com.br/2turno2010/'+uf.toLowerCase();
}
function hideTts(){
  if (tt) hideTt();
  if (tta) hideTta();
  if (tta2) hideTta2();
  if (ttp) hideTtp();
}
function hideTt(){tt.style.display='none';}
function hideTta(){tta.style.display='none';}
function hideTta2(){tta2.style.display='none';}
function hideTtp(){ttp.style.display='none';}
function getObjImages(){
  objImages={};
  var aca= document.getElementById('ac_1a');
  if (!aca) return false;
  for (var i=0; i<ufs.length; i++){
    for(j=1; j<=2;j++){
      var ida=ufs[i].toLowerCase()+'_'+j+'a';
      var idv=ufs[i].toLowerCase()+'_'+j+'v';
      objImages[ida]=document.getElementById(ida);
      objImages[idv]=document.getElementById(idv);
    }
 }
  return true;
}
//criação dos tooltips
function criaTt(){
  tt=document.createElement('div');
  tt.style.position='absolute';
  tt.id='ttip';
  tt.style.left=0;
  tt.style.top=0;
  tt.style.display='none';
  tt.style.zIndex=110;
  tt.innerHTML='<table id="tbttip" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">'+
  '<tr><td><img src="images/tt11.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<td colspan="2" style="background-image:url(\'images/tt12.gif\');background-repeat: repeat-x;"><\/td>'+
  '<td><img src="images/tt13.gif" alt="" width="3" height="3" border="0" /><\/td><\/tr>'+
  '<tr><td style="background-color:white;border-left:solid 1px #005088;"><\/td>'+
  '<td colspan="2" id="ttipContNome" align="center">Nome do <br />candidato<\/td>'+
  '<td style="background-color:white;border-right:solid 1px #005088"><\/td><\/tr>'+
  '<tr><td style="background-color:white;border-left:solid 1px #005088;"><\/td>'+
  '<td colspan="2" id="ttipSiglaPartido" align="center">Nome do <br />candidato<\/td>'+
  '<td style="background-color:white;border-right:solid 1px #005088"><\/td><\/tr>'+
  '<tr><td style="background-color:white;border-left:solid 1px #005088;"><\/td>'+
  '<td id="ttipContPercC" colspan="2" valign="top" align="center">Percent<\/td>'+
  '<td style="background-color:white;border-right:solid 1px #005088"><\/td><\/tr>'+
  '<tr><td style="background-color:#7599B2;color:white;border-left:solid 1px #005088;"><\/td>'+
  '<td id="ttipContUF" align="center">UF<\/td>'+
  '<td id="ttipContPerc" align="center">Perc<\/td>'+
  '<td style="background-color:#005088;color:white;"><\/td><\/tr>'+
  '<tr><td><img src="images/tt41.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<td style="background-color:#7599B2;color:white;border-bottom:solid 1px #005088;"><\/td>'+
  '<td style="background-color:#005088;color:white;border-bottom:solid 1px #005088;"><\/td>'+
  '<td><img src="images/tt43.gif" alt="" width="3" height="3" border="0" /><\/td><\/tr>'+
  '<\/table>';
  document.body.appendChild(tt);
  
  ttp=document.createElement('div');
  ttp.style.position='absolute';
  ttp.id='ttPresidente';
  ttp.className='ttPresidente';
  ttp.style.left=0;
  ttp.style.top=0;
  ttp.style.display='none';
  ttp.style.zIndex=110;
  ttp.innerHTML='<dl><dt/><dd/><dd/></dl>';
  document.body.appendChild(ttp);
  
  tta=document.createElement('div');
  tta.id='ttipapu';
  tta.style.position='absolute';
  tta.style.left=0;
  tta.style.top=0;
  tta.style.display='none';
  tta.style.zIndex=110;
  tta.innerHTML='<table cid="tbttipapu" ellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">'+
  '<tr><td><img src="images/tta11.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<td style="background-color:#7599B2;color:white;border-top:solid 1px #005088;"><\/td>'+
  '<td style="background-color:#005088;color:white;border-top:solid 1px #005088;"><\/td>'+
  '<td><img src="images/tta13.gif" alt="" width="3" height="3" border="0" /><\/td><\/tr>'+
  '<tr><td style="background-color:#7599B2;color:white;border-left:solid 1px #005088;"><\/td>'+
  '<td id="ttipapuContUF" align="center" style="padding:2px;background-color:#7599B2;color:white;">UF<\/td>'+
  '<td id="ttipapuContPerc" align="center" style="padding:2px;background-color:#005088;color:white;">Perc<\/td>'+
  '<td style="background-color:#005088;color:white;"><\/td><\/tr>'+
  '<tr><td><img src="images/tt41.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<td style="background-color:#7599B2;color:white;border-bottom:solid 1px #005088;"><\/td>'+
  '<td style="background-color:#005088;color:white;border-bottom:solid 1px #005088;"><\/td>'+
  '<td><img src="images/tt43.gif" alt="" width="3" height="3" border="0" /><\/td><\/tr>'+
  '<\/table>';
  document.body.appendChild(tta);

  tta2=document.createElement('div');
  tta2.id='ttipapu2';
  tta2.style.position='absolute';
  tta2.style.left=0;
  tta2.style.top=0;
  tta2.style.display='none';
  tta2.style.zIndex=110;
  tta2.innerHTML='<table id="tbttipapu2" cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td>'+
  '<table cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;margin-right:1px;" width=100%><tr>'+
  '<td valign="top" width=2><img src="images/tt11.gif" alt="" width="3" height="3" border="0"/><\/td>'+
  '<td style="background-image:url(\'images/tt12.gif\');background-repeat:repeat-x;border-right:solid 1px #005088;"><\/td>'+
  '<td style="background-image:url(\'images/tt12.gif\');background-repeat:repeat-x;"><\/td>'+
  '<td valign="top" width=2><img src="images/tt13.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<\/tr><tr>'+
  '<td style="background-image:url(\'images/tt21.gif\');background-repeat:repeat-y;"><\/td>'+
  '<td id="ttip2ContNome1" valign="top" align="center"><\/td>'+
  '<td id="ttip2ContNome2" valign="top" align="center"><\/td>'+
  '<td style="background-image:url(\'images/tt23.gif\');background-repeat:repeat-y;"><\/td>'+
  '<\/tr><tr>'+  
  '<td style="background-image:url(\'images/tt21.gif\');background-repeat:repeat-y;"><\/td>'+
  '<td id="ttip2SiglaPartido1" valign="top" align="center"><\/td>'+
  '<td id="ttip2SiglaPartido2" valign="top" align="center"><\/td>'+
  '<td style="background-image:url(\'images/tt23.gif\');background-repeat:repeat-y;"><\/td>'+
  '<\/tr><tr>'+  
  '<td style="background-image:url(\'images/tt21.gif\');background-repeat:repeat-y;"><\/td>'+
  '<td id="ttip2ContPerc1" valign="top" align="center"><\/td>'+
  '<td id="ttip2ContPerc2" valign="top" align="center"><\/td>'+
  '<td style="background-image:url(\'images/tt23.gif\');background-repeat:repeat-y;"><\/td>'+
  '<\/tr><\/table>'+
  '<\/td><\/tr><tr><td>'+
  '<table cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;border-top:solid 1px #005088;" width=100%><tr>'+
  '<td style="background-image:url(\'images/tt31.gif\');background-repeat:repeat-y;"><\/td>'+
  '<td id="ttip2ContUF" align="center"><\/td>'+
  '<td id="ttip2ContPerc" align="center"><\/td>'+
  '<td style="background-image:url(\'images/tt33.gif\');background-repeat:repeat-y;"><\/td>'+
  '<\/tr><tr>'+
  '<td width=2><img src="images/tt41.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<td style=";background-color:#7599B2;border-bottom:solid 1px #005088;"><\/td>'+
  '<td style=";background-color:#005088;border-bottom:solid 1px #005088;"><\/td>'+
  '<td width=2><img src="images/tt43.gif" alt="" width="3" height="3" border="0" /><\/td>'+
  '<\/tr><\/table><\/td><\/tr><\/table>';
  document.body.appendChild(tta2);
}
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}
