addDOMLoadEvent(leer_informacion_ciudades);

var dataJSON = null;
var dataJSONServicios = null;

function dameNombres(ciudad) {
	if (dataJSON == null)
	{
		$.ajax({
			async: false,
			type: "GET",
			url: "/data/tuciudad/ciudades.js",
			dataType: "json",
			success: function(data) {
				dataJSON = data;
			}
		});

	}
	return dataJSON[ciudad];
}

function dameServicios() {
	if (dataJSONServicios == null)
	{
		$.ajax({
			async: false,
			type: "GET",
			url: "/data/tuciudad/tuciudad.js",
			dataType: "json",
			success: function(data) {
				dataJSONServicios = data;
			}
		});

	}
	return dataJSONServicios;
}

function leer_informacion_ciudades()
{
	if (document.getElementById('cargando') != null){
		//Vemos si el usuario tiene información de ciudades guardadas en la cookie
		ciudades = leerCiudadCookie();
		if (ciudades == ''){
			$('#cargando').hide();
			comboCiudades('on');
		}else{
			$('#cargando').hide();
			$('#titulo_modulo').html('Últimas noticias de...');
			pintarCiudades(ciudades);
		}
   } 
   
}

function comboCiudades(opcion,cancelar){
	if (opcion == 'on'){
		document.getElementById('ciudades').value='';
		$('#combo_ciudades').show();
		if (cancelar == 'cancelar'){
			$('#cancelar').show();
		}else{
			$('#cancelar').hide();
		}
	}else if (opcion == 'off'){
		$('#combo_ciudades').hide();
	}
}

function ciudadRepetida(opcion){
	if (opcion == 'on'){
		$('.repetida').show().fadeIn(5000).fadeOut(5000);
	}else if (opcion == 'off'){
		$('.repetida').hide();
	}
}

function anadir_ciudad()
{
	ciudad_seleccionada = $('#ciudades').val();
	if (ciudad_seleccionada == ''){
		alert('Por favor, debe elegir una ciudad');
	}else{
		ciudadRepetida('off');
		selected  = document.getElementById('ciudades').selectedIndex;
		nombre_ciudad_seleccionada = document.getElementById('ciudades').options[selected].text;
		objeto_ciudad = document.getElementById('ciudades').options[document.getElementById('ciudades').selectedIndex];
		nombre_publi_seleccionada=objeto_ciudad.getAttribute('id_publi');
		guardarCiudadCookie(ciudad_seleccionada,nombre_ciudad_seleccionada,nombre_publi_seleccionada);
	}
}


function leerCiudadCookie()
{
 	datos_cookie = $.cookie('USER_PREF');
 	if (datos_cookie != null)
 	{
 		datos_ciudades = datos_cookie.split("#");
 		return datos_ciudades[0];
 	}else{
 		return '';
 	}
}

function numeroCiudadesCookie(ciudades)
{
	if (ciudades != '')
	{
		datos_ciudades = ciudades.split("|");
		numero_ciudades= (datos_ciudades.length - 1);
		return numero_ciudades;
	}else
	{
		return 0;
	}

}

function guardarInfoCookie(datos_ciudad_new){
	if (datos_ciudad_new == '' || datos_ciudad_new == '#'){
		$.cookie('USER_PREF', '', {expires: 0, path: '/'});
	}else{ 
		$.cookie('USER_PREF', datos_ciudad_new, {expires: 3650, path: '/'});
	}
}

function guardarCiudadCookie(ciudad,nombre,nombre_publi)
{
	datos_ciudad_old = leerCiudadCookie();
	if (datos_ciudad_old.indexOf(ciudad) != -1){
		ciudadRepetida('on');
	}
	else
	{
		numero_ciudades = numeroCiudadesCookie(datos_ciudad_old);
		if (numero_ciudades < 3)
		{
			datos_ciudad_new = datos_ciudad_old + ciudad + "|" + "#";
			guardarInfoCookie(datos_ciudad_new);
			pintoNuevaCiudad(ciudad,ciudad,nombre,nombre_publi,'',(numero_ciudades+1));
		}
	}
}

function pintoNuevaCiudad(ciudad,pos,nombre,nombre_publi,reintento,numero_ciudades){

	comboCiudades('off');
	if (reintento != 'reintento'){
		trozo_html ='<div id="ciudad_'+pos+'" class="contenedor_ciudad">';
	}else{
		trozo_html ='';
	}
   trozo_html+='<h6><a href="/'+ciudad+'/">'+nombre+'</a> </h6>';
   trozo_html+='<a href="#" onClick="eliminarCiudad(\''+ciudad+'\',\''+pos+'\'); return false;" ><img src="'+url_css3+'i/ico_cerrar_mod.gif" border="0" title="Eliminar ciudad" alt="Eliminar ciudad" /></a>';
	trozo_html+='<div class="clear_b"></div>';
   trozo_html+='<span id="span_noticias_'+pos+'" class="tab_on"><a href="#" style="text-decoration:none" onClick="habilitarPestana('+"'noticias'"+',\''+pos+'\'); return false">Noticias</a></span><span id="span_servicios_'+pos+'" class="tab_off"><a href="#" style="text-decoration:none" onClick="habilitarPestana('+"'servicios'"+',\''+pos+'\'); return false">Servicios</a></span>';
   trozo_html+='<ul class="ciudad" id="noticias_'+pos+'">';																							
	trozo_html+='</ul>';
	trozo_html+='<ul class="servicios" id="servicios_'+pos+'" style="display:none">';
	trozo_html+='</ul>';
	trozo_html+= pintarTagPublicidad(ciudad,pos);
	if (reintento != 'reintento'){
		trozo_html+='</div>';
	}else{
		trozo_html+='';
	}

	if (numero_ciudades <= 2){
		botonAnadirCiudad('on');
	}else{
		botonAnadirCiudad('off');
	}
	
	if (reintento != 'reintento'){
		$('#contenedor').append(trozo_html);
	}else{
		$('#ciudad_'+pos).html(trozo_html);
	}
	
	//Mostramos el gif de cargando... mientras se lanza el ajax al rss de noticias
	var gif_cargando = '<center><img src="'+url_imagen+'loadinfo_azul.gif"/></center>\n';
	$('#ciudad_'+pos+' > #noticias_'+pos).html(gif_cargando);
	
	
	 $.ajax({
        type: "GET",
        url: "/rss/"+ciudad+'/',
        dataType: "xml",
        timeout: 5000,
        success: function(respuesta)
        {
        			i = 1;
        			lista_noticias ='';

               $(respuesta).find('item').each(function(){
                if (i<=5){
                  title = $(this).find('title').text();
                  link = $(this).find('link').text();
                  lista_noticias +='<li><a href="'+link+'">'+title+'</a></li>';
                	i ++;
                }else
                {
                		return '';
                }
               }); //close each(
               
               if (lista_noticias == ''){
               	lista_noticias  = '<li class="sin_noticias">Lo sentimos, en este momento no hay noticias de la ciudad seleccionada</li>';
               }
                
               $('#ciudad_'+pos+' > #noticias_'+pos).html(lista_noticias);
               pintarListaServicios(ciudad,pos,nombre,nombre_publi);
		  },
        error: function(p1,p2,p3)
        {
        	   error_peticion_ajax  ='<div id="error_'+pos+'" class="error">';
				error_peticion_ajax +='<p><strong>Se ha producido un error.</strong> No ha sido posible cargar las noticias.</p>';
				error_peticion_ajax +='<span><a href="#" onClick="reintentarPintarCiudad(\''+ciudad+'\',\''+pos+'\',\''+nombre+'\',\''+nombre_publi+'\',\''+numero_ciudades+'\'); return false; ">Reintentar</a></span>';
				error_peticion_ajax +='</div>';
				$('#ciudad_'+pos).html(error_peticion_ajax);            
        }
    });

}

function reintentarPintarCiudad(ciudad,pos,nombre,nombre_publi,numero_ciudades){
	$('#ciudad_'+pos).html('');
	$('#error_'+pos).remove();
	pintoNuevaCiudad(ciudad,pos,nombre,nombre_publi,'reintento',numero_ciudades);
}

function pintarListaServicios(ciudad,pos,nombre,nombre_publi){

			var json=dameServicios();

			var carta =''; var television =''; var fotos = ''; var callejero = ''; var cartelera =''; var empleo = '';
			var impresa = ''; var rss = ''; var lista_servicios = '';
			
			for (var i=0; i<json.markers.length; i++) 
			{
				if ((json.markers[i].nombrebis == nombre) || (json.markers[i].nombre == nombre_publi)) 
				{
					if(json.markers[i].carta)
						carta = '<li class="carta"><a href="' +json.markers[i].carta + '">Carta de Lectores</a></li>';
					if(json.markers[i].television)
						television = '<li class="tv"><a href="' +json.markers[i].television + '">Televisión</a></li>';
					if(json.markers[i].fotos)
						fotos = '<li class="fotos"><a href="' +json.markers[i].fotos + '">Fotos antiguas</a></li>';
					if(json.markers[i].callejero)
						callejero = '<li class="callejero"><a href="' +json.markers[i].callejero + '">Callejero</a></li>';
					if(json.markers[i].cartelera)
						cartelera = '<li class="cartelera"><a href="' +json.markers[i].cartelera + '">Cartelera</a></li>';
					if(json.markers[i].empleo)
						empleo = '<li class="empleo"><a href="' +json.markers[i].empleo + '">Empleo</a></li>';		
					if(json.markers[i].impresa)
						impresa = '<li class="impresa"><a href="' +json.markers[i].impresa + '">Edición impresa</a></li>';
					if(json.markers[i].rss)
						rss = '<li class="rss"><a href="' +json.markers[i].rss + '">RSS</a></li>';
					break;
				}
			}
        
        /* Parse JSON objects */
        lista_servicios=carta + television + fotos + callejero + cartelera + empleo + impresa + rss;
        
        if (lista_servicios == ''){
        		lista_servicios = '<li class="sin_servicios">Lo sentimos, pero en este momento no hay servicios disponibles en esta ciudad</li>';
        }
        
        $('#ciudad_'+pos+' > #servicios_'+pos).html(lista_servicios);

}

function eliminarCiudad(ciudad,pos){

	botonAnadirCiudad('off');
	comboCiudades('off');
	datos_ciudad_old=leerCiudadCookie();
	ciudad_eliminar=ciudad+'|';
	datos_ciudad_old=datos_ciudad_old.replace(ciudad_eliminar,'');
	num_ciudades_cookie=numeroCiudadesCookie(datos_ciudad_old);
	datos_ciudad_new = datos_ciudad_old + "#";
	guardarInfoCookie(datos_ciudad_new);	
	$('#ciudad_'+pos).remove();
	if (num_ciudades_cookie < 3){
		botonAnadirCiudad('on');
	}
	if (num_ciudades_cookie == 0){
		botonAnadirCiudad('off');
		comboCiudades('on');
	} 
}

function habilitarPestana(capa,pos)
{
	if (capa == 'servicios'){
		$('#ciudad_'+pos+' > #noticias_'+pos).hide();
		$('#ciudad_'+pos+' > #servicios_'+pos).show();
		$('#span_noticias_'+pos).removeClass("tab_on");
		$('#span_noticias_'+pos).addClass("tab_off");
		$('#span_servicios_'+pos).removeClass("tab_off");
		$('#span_servicios_'+pos).addClass("tab_on");
	}else if (capa == 'noticias'){
		$('#ciudad_'+pos+' > #servicios_'+pos).hide();
		$('#ciudad_'+pos+' > #noticias_'+pos).show();
		$('#span_noticias_'+pos).removeClass("tab_off");
		$('#span_noticias_'+pos).addClass("tab_on");
		$('#span_servicios_'+pos).removeClass("tab_on");
		$('#span_servicios_'+pos).addClass("tab_off");
	}
	
}

function pintarTagPublicidad(ciudad,pos){

	//Pintamos publicidad en nuestro módulo, dependiendo de la ciudad
	publicidad = '<div class="publi" id="publi_'+pos+'">\n';
	publicidad += '<iframe id="frame_'+pos+'" width="379" height="0" scrolling="no" src="/adserver_module_local/'+ciudad+'/" frameborder="0" onLoad="calcHeight(\'frame_'+pos+'\');" >\n';
	publicidad +='</iframe>\n';
	publicidad += '</div>\n';
	
	return publicidad;
}

function botonAnadirCiudad(opcion){

	if (opcion == 'on'){
		$('#boton_anadir_ciudad').show();
	}else if (opcion =='off'){
		$('#boton_anadir_ciudad').hide();
	}

}

function pintarCiudades(ciudades){

	if (ciudades!=''){
		var numero_ciudades = numeroCiudadesCookie(ciudades);
		if (numero_ciudades > 3){
			//Machacamos la información de la cookie para solo tener 3 ciudades
			numero_ciudades = 3;
			ciudades = eliminarCiudadesCookie(ciudades);
		}
		var datos_ciudades = ciudades.split("|");

		var num_ciudades = numero_ciudades;
		for (var pos=0; pos<numero_ciudades; pos++)
		{
			ciudad_codificado=datos_ciudades[pos];
			datos_ciudad=dameNombres(ciudad_codificado);
			if (datos_ciudad != undefined){ //Existe la ciudad incluida en la cookie
				nombre_ciudad=datos_ciudad.nombre;
				nombre_publi=datos_ciudad.nombrepubli;
				pintoNuevaCiudad(ciudad_codificado, ciudad_codificado, nombre_ciudad,nombre_publi,'',num_ciudades);
			}else{ //La ciudad de la cookie no existe
				eliminarNombreCiudadCookie(ciudades,ciudad_codificado);
				num_ciudades = num_ciudades - 1;
			}
		}
	}

}

function eliminarNombreCiudadCookie(ciudades,ciudad_codificado){

	var ciudad_eliminar=ciudad_codificado+'|';
	var datos_ciudades_new=ciudades.replace(ciudad_eliminar,'');
	var datos_ciudades_cookie = datos_ciudades_new + '#';
	guardarInfoCookie(datos_ciudades_cookie);
}

function eliminarCiudadesCookie(ciudades){
	var datos_ciudades_new = '';
	var datos_ciudades = ciudades.split("|");
	for (var i=0; i<3; i++){
		datos_ciudades_new += datos_ciudades[i] + "|";
	}
	var datos_ciudades_cookie = datos_ciudades_new + '#';
	guardarInfoCookie(datos_ciudades_cookie);
	return datos_ciudades_new;
}

function cancelar_anadir_ciudad(){
	comboCiudades('off');
 	botonAnadirCiudad('on');
}
