//********************************************************************
//	Funciones para el dibujado del mapa interactivo
//  Audioviator 2.0. 2007
//********************************************************************


var		m_imagen_show = null;
var 	m_opacidad_final = 1;
var 	m_opacidad_inicial	= 0.4;
var		m_timeout = 100;
var	  	m_incremento_opacidad = 0.4;
var 	m_cargando = false;
var		m_div_mostrado = null;
var 	mapa_inactivo = false;
var		cad_titulo_principal;


//Realiza la carga anticipada de las imágenes
function mapa_init_mundo()
{
	//Carga anticipada de las imágenes
	(new Image()).src = "mapa_interactivo/gral_mundo_ue.gif";
	(new Image()).src = "mapa_interactivo/gral_europa_selec.gif";
	(new Image()).src = "mapa_interactivo/gral_africa_selec.gif";
}

function sube_opacidad(divname)
{
	var div = document.getElementById(divname);
	if (!div) return;
	if (m_div_mostrado != divname) return;
	if (div.style.opacity >= m_opacidad_final) return;
	var nueva_opacidad = parseFloat(div.style.opacity) + m_incremento_opacidad;
	nueva_opacidad = nueva_opacidad>1?1:nueva_opacidad;
	div.style.opacity = nueva_opacidad;
	div.style.filter = "alpha(opacity=" + (nueva_opacidad*100)  + ")";
	setTimeout("sube_opacidad('" + divname  + "')",m_timeout);
}


function baja_opacidad(divname)
{
	var div = document.getElementById(divname);
	if (!div) return;
	if (m_div_mostrado == divname) return;
	var nueva_opacidad = div.style.opacity==""?1.0:parseFloat(div.style.opacity) - m_incremento_opacidad;
	nueva_opacidad = nueva_opacidad<=0?0:nueva_opacidad;
	if (nueva_opacidad == 0)
	{
		div.style.visibility = "hidden";
		return;
	}
	setAlpha(div,nueva_opacidad);
	setTimeout("baja_opacidad('" + divname  + "')",m_timeout);
}

//Inicia la animación para mostrar una transparencia
function show_div(divname)
{
	if (mapa_inactivo) return;
	if (m_cargando) return;
	var div = document.getElementById(divname);
	if (!div) return;
	//Si quiero mostrar una imagen que estoy ocultando
	//tengo que parar el ocultamiento
	m_div_mostrado  = divname;	
	div.style.visibility = 'visible';
	div.style.opacity = m_opacidad_inicial;
	div.style.filter = "alpha(opacity=" + (m_opacidad_inicial*100)  + ")";
	setTimeout("sube_opacidad('" + divname  + "')",m_timeout);
	div.style.cursor='pointer';
	m_imagen_show = divname;
	return;
}

//Inicia la animación para ocultar una transparencia
function hide_div(divname)
{
	if (m_cargando) return;
	if (m_div_mostrado == divname) m_div_mostrado = null;
	//Si ya estoy escondiendo una imagen termino bruscamente de esconderla
	m_imagen_hide = document.getElementById(divname);
	document.body.style.cursor='auto';
	baja_opacidad(divname,m_timeout);
	return;
}


var continente_seleccionado = null;
function onclick_continente(control)
{		
	if (mapa_inactivo)
	{
		//Para poner en grande de nuevo el mapa
		onclick_pais("ES");
		return;
	}
	if (m_cargando) return;
	m_cargando = true;
  m_html = null;
  cad_titulo_principal = document.getElementById("titulo_principal").innerHTML;

  if (!control || control.id == 'area_flecha')
  	m_html = "map_mundo_eu.php";
  else if (control.id == 'area_europa')
  	m_html = "map_europa.php";
  else if (control.id == 'area_asia_este')
  	m_html = "map_asia_este.php";
  else if (control.id == 'area_asia_oeste')
  	m_html = "map_asia_oeste.php";
  else if (control.id == 'area_america_norte')
  	m_html = "map_america_norte.php";
  else if (control.id == 'area_america_sur')
  	m_html = "map_america_sur.php";
  else if (control.id == 'area_africa')
  	m_html = "map_africa.php";
  else if (control.id == 'area_oceania')
  	m_html = "map_oceania.php";
  	 	  	
  continente_seleccionado = control;
  
  if (m_html == null) 
  {
  			m_cargando = false;
  	  	return;
  }

	var aload = document.getElementById("div_ajax_loader");
	var mapa_general = document.getElementById("div_mapa_general");
	var imagen_show = document.getElementById(m_imagen_show);	
	
	var left = mapa_general.clientWidth/2 - aload.clientWidth/2;	
	var top = mapa_general.clientHeight/2 - aload.clientHeight/2;

	setAlpha(mapa_general,0.2);
	mapa_general.style.opacity = '0.2';
	mapa_general.style.filter = "alpha(opacity=20)";
		
	if (imagen_show) imagen_show.style.visibility = 'hidden';
	setAlpha(aload,0.5);	
	aload.style.left = left + "px";
	aload.style.top = top + "px";
	aload.style.visibility = 'visible';	
	
	document.body.style.cursor='auto';
		
	
	var termina_post = function(response)
	{
		var contenedor= document.getElementById("container_mapa");
		contenedor.innerHTML = response;
		m_cargando = false; 
		aload.style.opacity = 1;
		aload.style.filter = "alpha(opacity=50)";
		aload.style.left = left + "px";
		aload.style.top = top + "px";
		aload.style.visibility = 'hidden';	
		showAlpha("div_mapa_general",0,0.1,40);
		//setAlpha("div_mapa_general",1);
	}
	
	var ajax = new XAjax(m_html,null,termina_post);
	ajax.send();	
}



/*******************************************************************************************************************************/
/*******************************************************************************************************************************/
/*******************************************************************************************************************************/
/*******************************************************************************************************************************/

var pais_seleccionado = "";
function onclick_pais(pais)
{
	//Primero realizo el tracking
	var nombre_pais = document.getElementById("area_" + pais.toLowerCase() ).title;
	track_event("PAIS","CLICK",nombre_pais);
	
	pais_seleccionado = pais;
	m_cargando = true;
	var img = document.getElementById("div_mapa_general").getElementsByTagName("IMG")[0];
	convertTo(img,"minimapa");
}


/*********************************************************************************/
/* Convierte un elemento en otro de la manera más suave posible
/* "a" debe ser una imagen siempre
/*********************************************************************************/	
var ct_opa,ct_opb;
var ct_posa,ct_posb;
var ct_x_inc,ct_y_inc;
var ct_x,ct_y;
var ct_x_dest,ct_y_dest;
var ct_left;
var ct_opacity;
var ct_endremove;
function convertTo(a,b)
{
	var guid = getGUID();
	if (typeof a == "string") a = document.getElementById(a);
	if (typeof b == "string") b = document.getElementById(b);
	ct_opa=1.0;ct_opb=0.0;
	setAlpha(a,ct_opa);
	setAlpha(b,ct_opb); b.style.visibility  = "visible";
	ct_posa = getPosition(a);
	ct_posb = getPosition(b);
	domobj = createDOM("IMG",null,null,guid,null);
	domobj.src  = a.src;
	domobj.style.position = "absolute";
	domobj.style.left = ct_posa.x + "px";
	domobj.style.top = ct_posa.y + "px";
	domobj.style.width = "640px";
	domobj.style.height = "420px";
	ct_x = 640; ct_y =480;
	ct_left = 0;
	relation = ct_x / ct_y;
	ct_x_inc = 60;
	ct_y_inc = ct_x_inc / relation;
	a.style.visibility = "hidden";
//	domobj.innerHTML = a.innerHTML;
	document.body.appendChild(domobj);
	convertTo_reduce(guid,b.id);
}

function convertTo_reduce(id,id2)
{
	domobj = document.getElementById(id);
	//progreso = ();
	if (ct_x <= 0 && ct_y <= 0)
	{
		document.body.removeChild(domobj);
		ct_opacity = 0;
		showAlpha(id2);
		var mapa = document.getElementById("container_mapa");
		mapa.innerHTML = "";
		busca_guias_pais();
		return;
	}
	ct_x -= ct_x_inc;
	ct_y -= ct_y_inc;
	ct_left += ct_x_inc;
	if (ct_x<0) ct_x = 0;
	if (ct_y<0) ct_y = 0;
	domobj.style.width = Math.round(ct_x) + "px";
	domobj.style.height = Math.round(ct_y) + "px";
	domobj.style.marginLeft = Math.round(ct_left) + "px";
	setTimeout("convertTo_reduce('" +  id  + "','" +  id2  + "')",20);
}

function convertTo_show(id)
{
	if (ct_opacity >= 1)
	{
		setAlpha(id,1);
		return;
	}
	setAlpha(document.getElementById(id),ct_opacity);
	ct_opacity += 0.2;
	setTimeout("convertTo_show('" +  id   + "')",20);
}


var ancho_corto = "281px";
var ancho_largo = "593px";
function busca_guias_pais()
{
	/******************** Mostrar la imagen de carga ***********************/
	var map = document.getElementById("container_mapa");
	map.innerHTML = '<div id="div_ajax_loader" class="sobrewap"><img src="mapa_interactivo/ajax_loader.gif" border="0" usemap="#Map"></div>';
	var aload = document.getElementById("div_ajax_loader");
	var left = 640/2 - aload.clientWidth/2;	
	var top  =  420/2 - aload.clientHeight/2;
	setAlpha(aload,0.5);	
	aload.style.left = left + "px";
	aload.style.top = top + "px";
	aload.style.visibility = 'visible';	
	aload.style.cursor = "default";
	/********************** Hacer la petición ajax **********************/


	var ontermina = function(resp)
	{
		coloca_guias(resp);
	}
	
	var ajax = new XAjax("funciones_busqueda_json.php",null,ontermina);
	ajax.send("function","BUSQUEDA_PAIS","pais",pais_seleccionado);
}


function coloca_guias(resp)
{
		var aload = document.getElementById("div_ajax_loader");
		
		container = aload.parentNode;
		container.removeChild(aload);
		var resul = json_decode(resp);
		document.getElementById("titulo_principal").innerHTML = resul.cad_resultados;
		if (resul.confirmacion == 1)
		{
			separa = createDOM("DIV",null,"","",container);
			separa.style.height = "18px";
			maxi = resul.guias.length>8?8:resul.guias.length;
			for (i=0;i<maxi;i++)
			{
				dom1name = "GUIA" + i;
				dom1 = createDOM("DIV","divContainerBusquedaMain","",dom1name,container);
				dom1.style.minWidth = getAnchoContainer(resul.guias.length,i);
				var caracteres = dom1.style.minWidth == ancho_corto?80:320;
				dom2 = createDOM("DIV","audioguias_2_3","","GUIA_S" + i,dom1);
				dom2.innerHTML = '<a href="muestra_guia.php?idguia=' + resul.guias[i].ID_GUIA  + '">' + resul.guias[i].NOMBRE +  " (" + resul.guias[i].CIUDAD  + ")" + '</a>';
				dom2.innerHTML += '<p>'+ divide_palabras(resul.guias[i].DESCRIPCION,caracteres)   +'... </p>';
			}
			
			if (resul.guias.length > 0)
			{
				showAlpha("masinfo",0,0.2,40);
			}
			else
			{
				dom1name = "GUIACREA";
				dom1 = createDOM("DIV","divContainerBusquedaMainError","",dom1name,container);
				dom1.style.minWidth = ancho_largo;
				dom2 = createDOM("DIV","","","GUIACREA_S",dom1);
				dom2.innerHTML = "<img src='imagenes/iconosv2/warning64x64.png' style='float:right;' />"; 
				dom2.innerHTML += '<p style="font-size:16px; color:#FFF;">' +  resul.NO_SE_ENCONTRARON_GUIAS + '</p>';
				/*dom2.innerHTML += '<p style="text-align:center;"><br/><a href="/" style="font-size:23px; color:#FFFFFF; cursor:pointer;" >'+ 
									"Crea tu propia audiogu&iacute;a"   +'... </a></p>';*/
			}
			
			//Si hay menos de 4 resultados mostramos el div de crea tu propia audioguía
			if (resul.guias.length < 4)
			{
				dom1name = "GUIACREA";
				dom1 = createDOM("DIV","divContainerBusquedaMainCrea","",dom1name,container);
				dom1.style.minWidth = ancho_largo;
				dom2 = createDOM("DIV","","","GUIACREA_S",dom1);
				dom2.innerHTML = "<img src='imagenes/iconosv2/rss48x48.png' style='position:absolute; margin-left:540px;' />"; 
				dom2.innerHTML += '<a href="/" style="font-size:16px;">' + resul.NO_ENCUENTRAS_BUSCAS + '</a>';
				dom2.innerHTML += '<p style="text-align:center;"><br/><a href="/" style="font-size:23px; color:#FFFFFF; cursor:pointer;" >'+ 
									resul.CREA_PROPIA_AUDIOGUIA  +'... </a></p>';
			}
			
			if (resul.info_pais)
			{
				var elem = document.getElementById("titulo_destacada");
				elem.innerHTML =  resul.DATOS_INTERES;	
				showAlpha("titulo_destacada",0,0.1,40);
				elem = document.getElementById("nombre_destacada");
				elem.innerHTML =  resul.info_pais.countryName;	
				showAlpha("nombre_destacada",0,0.1,40);
				document.getElementById("bandera_destacada").src = "imagenes/round_flags/32x32/" +  pais_seleccionado.toLowerCase()  + ".png";
				document.getElementById("bandera_destacada").title =  resul.info_pais.countryName;	
				document.getElementById("bandera_destacada").alt =  resul.info_pais.countryName;	
				document.getElementById("texto_destacada").innerHTML = "";
				showAlpha("bandera_destacada",0,0.1,40);
			}
			
			alphaelement("container_mapa","divContainerBusquedaMain,divContainerBusquedaMainCrea,divContainerBusquedaMainError",
							 0,20,(resul.guias.length<4?4:resul.guias.length)*(0.2/8.0),0);
		}
		else
		 alert("respuesta error");
}


function getAnchoContainer(numresul,index)
{
	switch (numresul)
	{
		case 7: return index==0?ancho_largo:ancho_corto;
		case 6: return index<=1?ancho_largo:ancho_corto;
		case 5: return index<=2?ancho_largo:ancho_corto;
		case 4: 
		case 3:
		case 2:
		case 1:
		return ancho_largo;
		default: return ancho_corto;
	}
}

function click_minimapa()
{
	/******************** Mostrar la imagen de carga ***********************/
	var map = document.getElementById("container_mapa");
	map.innerHTML = '<div id="div_ajax_loader" class="sobrewap"><img src="mapa_interactivo/ajax_loader.gif" border="0" usemap="#Map"></div>';
	var aload = document.getElementById("div_ajax_loader");

	setAlpha(aload,0.5);	
	aload.style.left = "275px";
	aload.style.top = "977px";
	aload.style.marginTop = "200px";
	aload.style.visibility = 'visible';	
	aload.style.cursor = "default";
	/********************** Hacer la petición ajax **********************/
	if (destacada_inner != null) document.getElementById("container_destacada").innerHTML = destacada_inner;
	
	document.getElementById("titulo_principal").innerHTML = cad_titulo_principal;
	div = createDOM("DIV",null,"","div_mapa_general",map);
	div.style.marginLeft = "10px";
	m_cargando = false;	
	hideAlpha("minimapa",1,0.2,40);
	hideAlpha("masinfo",1,0.2,40);
	onclick_continente(continente_seleccionado);
}

function click_masinfo()
{
	//Si hay país seleccionado
	if (pais_seleccionado != null && pais_seleccionado != "")
		document.location = "resultados_busqueda.php?function=BUSQUEDA_PAIS&pais=" + pais_seleccionado.toLowerCase() +  "&time_pet=" + getGUID();
	else if (enlace_crinchi)
		document.location = "resultados_busqueda.php?" + enlace_crinchi;
}



