﻿var estadoPos = Array(33,107,35,30,102,6,150,27,184,13,237,53,251,71,291,71,313,88,310,97,292,106,313,121,312,125,250,118,216,87,90,110,132,106,196,148,214,159,281,190,260,214,201,203,158,180,187,223,192,251,164,260);
var estadoId = Array("AC","AM","RR","PA","AP","MA","PI","CE","RN","PB","PE","AL","SE","BA","TO","RO","MT","GO","MG","ES","RJ","SP","MS","PR","SC","RS");

/*function getAreaTop(obj){
	var coords = obj.coords.split(",");
	var ponto = {x:-1,y:-1}
	for (var i = 0; i < coords.length; i+=2){
		if (ponto.x < 0 || parseInt(coords[i]) < ponto.x)
			ponto.x = parseInt(coords[i]);
		if (ponto.y < 0 || parseInt(coords[i+1]) < ponto.y)
			ponto.y = parseInt(coords[i+1]);
	}
	
	return ponto;
}*/

function getPontoEstado(estado){
	var ponto = {};
	for (var i = 0; i < estadoId.length; i++){
		if (estadoId[i] == estado){
			ponto.x = estadoPos[i*2];
			ponto.y = estadoPos[i*2+1];
			return ponto;
		}
	}
	ponto.x = -1;ponto.y = -1;
	return ponto;
}

function exibeMapa(obj,img){
	//var ponto = getAreaTop(obj);
	var ponto = getPontoEstado(obj.alt);
	window.title = ponto.x + "," + ponto.y;
	if (ponto.x >= 0){
	    setOpacity(document.imgMapa.img,0);
		document.imgMapa.style.display = "block";
		document.imgMapa.link.href = obj.href;
		document.imgMapa.link.title = obj.title;
		document.imgMapa.img.src = "./imgs/mapa/" + obj.alt + ".gif";
		document.imgMapa.atual = obj;
		document.imgMapa.imgPrincipal = img;
		document.imgMapa.img.alt = obj.alt;
		document.imgMapa.style.top = ponto.y + getTop(img) + "px";
		document.imgMapa.style.left = ponto.x + getLeft(img) + "px";
		document.imgMapa.img.style.display = "block";
		fadeOut(document.imgMapa.img);
	}
}

function fechaImgMapa(){
    document.imgMapa.style.display = "none";
    document.imgMapa.img.src = "";
    document.imgMapa.img.style.display = "none";
    document.imgMapa.atual = null;
}

function animaMapaBrasil(){
	// Pré-carregamento das imagens
	var preLoad;
	for (var i = 0; i < estadoId.length; i++){
		preLoad = document.createElement("img");
		preLoad.style.display="none";
		preLoad.src = "./imgs/mapa/" + estadoId[i] + ".gif";
	}
	
	document.imgMapa = document.createElement("div");
	document.imgMapa.atual = null;
	document.imgMapa.link = document.createElement("a");
	document.imgMapa.img = document.createElement("img");
	document.imgMapa.style.display = "none";
	document.imgMapa.style.zIndex = "1";
	document.imgMapa.style.position = "absolute";
	document.imgMapa.link.appendChild(document.imgMapa.img);
	document.imgMapa.appendChild(document.imgMapa.link);
	document.body.appendChild(document.imgMapa);
	
	document.imgMapa.onmouseout = function(){fechaImgMapa(this);}
	
	var areas = document.getElementById("map_rep_mapa_brasil").getElementsByTagName("area");
	for (i = 0; i < areas.length; i++){
	    if (contemClasse(areas[i],"atual")){
	        var mpA = document.createElement("div");
	        var mpLinkA = document.createElement("a");
	        var mpImgA = document.createElement("img");
	        mpA.style.display = "block";
	        mpA.style.zIndex = "0";
	        mpA.style.position = "absolute";
	        mpLinkA.appendChild(mpImgA);
	        mpA.appendChild(mpLinkA);
	        document.body.appendChild(mpA);
	        var ponto = getPontoEstado(areas[i].alt);
		    mpLinkA.href = areas[i].href;
		    mpLinkA.title = areas[i].title;
		    mpImgA.src = "./imgs/mapa/" + areas[i].alt + ".gif";
		    mpImgA.alt = areas[i].alt;
		    mpA.style.top = ponto.y + getTop(document.getElementById("rep_mapa_brasil")) + "px";
		    mpA.style.left = ponto.x + getLeft(document.getElementById("rep_mapa_brasil")) + "px";
		    mpImgA.style.display = "block";
	        
	    }else{
		    areas[i].onmouseover = function(){
			    exibeMapa(this,document.getElementById("rep_mapa_brasil"));
		    }
		}
	}
}
addEvent(window,"load",animaMapaBrasil);