/** traducciones **/
// no_selecting_tag_list en criticas/detalle.html

/** fin traducciones **/


var tab_resumen, tab_fotos, tab_video;
var cargando = 0;
var mostrar_tabs = [];
var timeout_buscador;
var scroll_eventos_pestana;
$(document).ready(function (){
	/* GEvent.addListener(map, 'moveend', function() {
			$("*").tooltip({ track: true , opacity: 0, showURL: false});
		}
	);
	*/

 
      
      
     cargar_geopuntos(''); 
   

		
   
   /*
    $("#close").click(function() {
		$("#cabecera-eventos").slideUp("fast", function(){
			$("#apartado-cabecera-eventos").slideUp("fast");
		});
    });
	*/



 /*   $("#toggle").click(function(){
    	var img=document.getElementById('toggle');
    	if(img.src=="/img/down.png") {
			$("#cabecera-eventos").slideDown("slow", function() {
				//img.src="img/up.png";
				$(".imagen-flecha-abajo").html('<img src="up.png" alt="abrir" />');
				//img.alt="up";
			});
     	} else { // si la flecha no es abajo, sera arriba ;)
			$("#cabecera-eventos").slideUp("fast", function(){
				//img.src="img/down.png";
				$(".imagen-flecha-abajo").html('<img src="down.png" alt="cerrar" />');
				//img.alt="down";
			});
		}
	}); */




	//Desplegable cabecera eventos
	$(".toggle").click( function() {
		if ($("#cabecera-eventos").is(":hidden")) {
			$("#cabecera-eventos").slideDown("normal");
			$("#boton-novedades").html('<img src="/img/up.png" alt="Subir" />');
			$("#novedades-mini-principal").show("fast");
			// carrusell de novedades
			if(!scroll_eventos_pestana) {
				scroll_eventos_pestana = true;
				$("#slider").easySlider({
						prevId: 'prevBtn',
						prevText: 'Previous',
						nextId: 'nextBtn',
						nextText: 'Next',
						controlsShow: true,
						controlsBefore: '',
						controlsAfter: '',
						controlsFade: true,
						firstId: 'firstBtn',
						firstText: 'First',
						firstShow: false,
						lastId: 'lastBtn',
						lastText: 'Last',
						lastShow: false,
						vertical: false,
						speed: 800,
						auto: false,
						pause: 2000,
						continuous: false
				    });
			}

		} else {
			$("#novedades-mini-principal").hide("fast");
			$("#boton-novedades").html('<img src="/img/down.png" alt="Bajar" />');
			$("#cabecera-eventos").slideUp("slow");

		}
	});

	// efecto quitar mini-cajas
	$(".quitar").click(function(){
		var element = $(this);
		var I = element.attr("id");
		$('li#list'+I).fadeOut('slow', function() {$(this).remove();});
		return false;
	});

	// Texto aleatorio de cabecera
	/*
	$('#news').innerfade({
			animationtype: 'slide',
			speed: 650,
			timeout: 3000,
			type: 'random',
			containerheight: 'null'
	});
	*/

    // Buscador
	/*$("#buscar").keypress(function (e) {
		clearTimeout(timeout_buscador);
		timeout_buscador = setTimeout ('buscar_criticas()', 1500);
	});*/

	// Buscador
	/*
	$("#buscar").keypress(function (e) {
	  if (e.keyCode == '13') {
	     buscar_criticas_id();
	   }
	});

*/
	
     // autocomplete buscar
     /*
	$("#buscar").autocomplete('/criticas/busqueda/', {
		width: 240,
		selectFirst: false,
		minChars: 3
		
	});
	*/

	/* 
    $("#buscar").result(function(event, data, formatted) {  
		$('#idcritica').val(jQuery.trim(data[1]));
	});
  */




		


   // splitter
	// $("#rightSplitterContainer").splitter({splitHorizontal:true,A:$('#rightTopPane'),B:$('#rightBottomPane'),closeableto:100});


 


	// Quitar-poner border inputs
	/*$('input[type="text"]').addClass("sinfocoCampo");
		$('input[type="text"]').focus(function() {
			$(this).removeClass("sinfocoCampo").addClass("focoCampo");
		    if (this.value == this.defaultValue){
		    	this.value = '';
				}
				if(this.value != this.defaultValue){
	    			this.select();
	    		}
		});
		$('input[type="text"]').blur(function() {
			$(this).removeClass("focoCampo").addClass("sinfocoCampo");
		    if ($.trim(this.value) == ''){
			    	this.value = (this.defaultValue ? this.defaultValue : '');
				}
		});*/
		
	// quitar-poner texto en input #buscar
		$('#buscar').focus(function() {
		    if (this.value == this.defaultValue){
		    	this.value = '';
				}
		    if(this.value != this.defaultValue){
	    		this.select();
	    		}
		});
		$('#buscar').blur(function() {
		    if ($.trim(this.value) == ''){
			    	this.value = (this.defaultValue ? this.defaultValue : '');
				}
		});



     //controles mapa
     	//mover mapa
	$(".mover-mapa-derecha").click(function() {map.panBy({ width: -250, height: 0 }); });
	$(".mover-mapa-izquierda").click(function() { map.panBy({ width: 250, height: 0 }); });
	$(".mover-mapa-arriba").click(function() { map.panBy({ width: 0, height: 100 }); });
	$(".mover-mapa-abajo").click(function() { map.panBy({ width: 0, height: -100 }); });
	//zoom mapa
	$(".zoom-mas-x1").click(function() { map.setZoom(map.getZoom() + 1); });
	$(".zoom-mas-x2").click(function() { map.setZoom(map.getZoom() + 2); });
	$(".zoom-mas-x3").click(function() { map.setZoom(map.getZoom() + 3); });
	$(".zoom-menos-x1").click(function() { map.setZoom(map.getZoom() - 1); });
	$(".zoom-menos-x2").click(function() { map.setZoom(map.getZoom() - 2); });
	$(".zoom-menos-x3").click(function() { map.setZoom(map.getZoom() - 3); });	 
	

    //mostra/ocultar presentacion
	$(".boton-iniciar").click(function() {
		$("#info-ayuda").slideUp("slow");
   	 });



    


	// ranking provincia selected
	$('#ranking-provincias-mini ul li a').click(function(evt){
		evt.preventDefault();
		changeStyle(this);
	});

	
	$("#ranking-provincias-mini li a").click(function(){
	    setTimeout ("$('.ranking-mini2').animate( { backgroundColor: '#FFFF00' }, 400).animate( { backgroundColor: 'white' }, 400).animate( { backgroundColor: '#FFFF00' }, 200).animate( { backgroundColor: 'white' }, 200)",1100);
	});





   //setTimeout ('$(".novedades").slideDown("slow")',2000); // muestra la capa con retardo de 1,5 segundos de cargar la pagina

     //setTimeout ('cargar_geopuntos(\'\')', 1000); 

	//tabs_pagina_principal();

});


function scrollWin(divid){
		$('html, body').animate({
		scrollTop: $(divid).offset().top
		}, 2000);
	}


	


function critica_on_click(marker, idcritica, tabs) {
	myPano = new GStreetviewPanorama(document.getElementById('streetview'));
	map.savePosition();
	$("#detalle-de-critica").load("/criticas/detalle/" + idcritica, function() {
		callback_comentarios_onload();
	});

	var marker = eval("map_marker" + idcritica);
	map.setCenter(marker.getLatLng(), 17);

	// solución problema con left en ie
	if ($.browser.msie) {
		var desplazamapa = 0;
		var tamanomapa = "49%";
	}
	else
	{
		var desplazamapa = "50%";
		var tamanomapa = "50%";
	}


	mostrar_tabs = [];
	cargar_tab("resumen", marker, idcritica);
	if(tabs.exists("fotos")) cargar_tab("fotos", marker, idcritica);
	if(tabs.exists("video")) cargar_tab("video", marker, idcritica);

	panoClient = new GStreetviewClient();
	panoClient.getNearestPanorama(marker.getLatLng(), function(panoData) {
		if (panoData.code == 200) {
			$.getJSON("/criticas/get_datos_de_critica/" + idcritica, function(gpow) {

					//console.log("/criticas/get_datos_de_critica/" + idcritica)
					$("#mapaprincipal").animate({ width : tamanomapa , left : desplazamapa} , function() {
						map.checkResize();
						$("#streetview").show("slow", function () {
							myPOV = {yaw : parseFloat(gpow["yaw"]), pitch : parseFloat(gpow["pitch"]), zoom : parseFloat(gpow["zoom"])}

							myPano.setLocationAndPOV(marker.getLatLng(), myPOV);
							map.setCenter(marker.getLatLng(), 16);
							map.panBy({ width: -35, height: 140 });
						});

					});
		  		}
			);
		}
	});

	return true
}

function critica_on_close(marker, idcritica) {

	myPano.remove();
	$("#streetview").hide();
	$("#mapaprincipal").animate({ width : "100%" , left: 0 }, function () {
		map.checkResize();
		map.returnToSavedPosition();
	});
}


/*function callback_comentarios_onload() {
	$("#form-new-comentario").validate({
		rules: {
			codigo: {
				required: true,
				remote: "/formularios/captcha"
			}
		},
		messages: {
			captcha: "Correct captcha is required. Click the captcha to generate a new one"
		},
		submitHandler: function(form) {
			$.post("/comentarios/save/" + $("#idcritica").val(), {
					autor : $("#autor").val(),
					email : $("#email").val(),
					www : $("#www").val(),
					comentario : $("#comentario").val(),
					codigo : $("#codigo").val()
				},

			function(data){
				$("#listado-comentarios").load("/comentarios/view/" + $("#idcritica").val(), function() {
					callback_comentarios_onload()
				});
			});
			return false;
		}
	});
}*/

function callback_comentarios_onload() {
	$('#submit-comentario').live('click', function() {	
		$("#form-new-comentario").validate({
				
			submitHandler: function(form) {
				$.post("/comentarios/save/" , {
						comentario : $("#comentario").val(),
						tipo_comentario : $('input[name=tipo_comentario]:checked', '#form-new-comentario').val() ,					
						idcriticacomentario: $("#idcriticacomentario").val()
					},

				function(data){
					$("#listado-comentarios").load("/comentarios/view/" + $("#idcriticacomentario").val(), function() {
						callback_comentarios_onload()
					});
				});
				return false;
			}
		});
	});

	// form para respuesta a pregunta
	$('#submit').live('click', function() {	
		$("#form-new-comentario-respuesta").validate({		
			submitHandler: function(form) {
				$.post("/comentarios/save/" , {
						respuesta : $("#respuesta").val(),
						tiporespuesta : 'respuesta' ,					
						idrefrespuesta: $("#idrefrespuesta").val(),
						idcriticarespuesta: $("#idcriticarespuesta").val()
					},

				function(data){
					$("#listado-comentarios").load("/comentarios/view/" + $("#idcriticacomentario").val(), function() {
						callback_comentarios_onload()
					});
				});
				return false;
			}
		});
	});
}


/* Mostrar textbox respuesta pregunta comentarios */
function formrespuesta(idrefcomentario, idcritica,idcomentario){
		$(".formulario-respuesta"+idcomentario).load("/comentarios/respuesta/" + idrefcomentario + "/" + idcritica, 
			function() { $("#respuesta").focus(); });	
}




/* Subir mejor respuesta a pregunta */
function respuestautil(voto,idrefcomentario,idcomentario){ 
			$(".utiles"+idcomentario).load("/comentarios/util/" + voto + "/" + idrefcomentario + "/" + idcomentario, function() {
					$("#listado-comentarios").load("/comentarios/view/" + $("#idcriticacomentario").val());
				});
}

/* Eliminar comentario */
function eliminacomentario(id){ 
			$("#alerta-comentarios").load("/comentarios/eliminacomentario/" + id, function() {
					$("#listado-comentarios").load("/comentarios/view/" + $("#idcriticacomentario").val());
				});
}



function cargar_tab(nombre, marker, idcritica) {
	$("#cargando").show();
	cargando++;

	$.ajax({
		url: "/criticas/ajax/" + idcritica + "/" + nombre,
		success: function(html) {
			cargando--;
			mostrar_tabs[mostrar_tabs.length] = new GInfoWindowTab(nombre, html);
			if(!cargando) mostrar_ventana_tabs(marker);
		}
	});

}




function mostrar_ventana_tabs(marker) {
	marker.openInfoWindowTabs(mostrar_tabs);
	$("#cargando").hide();
	//$("a.fancybox").fancybox();
}


function getcritica(id) {
	
	//$("#detalle-de-critica").load("/criticas/detalle/" + id, function() {
	//	callback_comentarios_onload();
	//});

	
	
	$("#content-map").slideDown("fast");	
	//map.checkResize();
	 // Activamos streetview
	 myPano = new GStreetviewPanorama(document.getElementById('streetview'));
	 GEvent.addListener(myPano, 'error', handleNoFlash);
	var marker = eval("map_marker" + id);
	//critica_on_click(marker, id);
	GEvent.trigger(marker, "click");


/*
	if($("#onoffmap").val()==1){
		var marker = eval("map_marker" + id);
		//critica_on_click(marker, id);
		GEvent.trigger(marker, "click");
	}else{
		$("#detalle-de-critica").load("/criticas/detalle/" + id, function() {
			callback_comentarios_onload();
		});
	}
*/
}




/* Guarda id critica como favorita para usuario activo */
function save_critica_favorite(idcritica) {
	$(".save-critica-favorite").load("/criticas/savefavorite/" + idcritica + "/saving" );
}



/* Busquedas */
function buscar_criticas() {
	$("#cargando").show();
	map_cluster.removeMarkers();
	 $("#geopuntos").load("/criticas/geopuntos/" + $("#buscar").val() + "/" + categoria_seleccionada, function() {
		$("#cargando").hide();
	});
	/* carga ranking ciudades */
	//$(".ranking-ciudades").load("/criticas/rankingciudades/" + $("#buscar").val() );
}

function buscar_criticas_id() {
	if ($("#idcritica").val()=="") { alert('Oops!, intenta de nuevo la búsqueda, borra lo anterior y vuelve a escribir.\n '); }
	else{
       		scrollWin('#mapaprincipal');
		$("#cargando").show();
		map_cluster.removeMarkers();
		 $("#geopuntos").load("/criticas/geopuntos///"+ $("#idcritica").val(), function() {
			$("#cargando").hide();
		});
		/* carga ranking ciudades */
		//$(".ranking-ciudades").load("/criticas/rankingciudades/" + $("#buscar").val() );
	}
}

function buscar_criticas_clic(valor) {
	map_cluster.removeMarkers();
	$("#geopuntos").load("/criticas/geopuntos/" + valor);

}




/* Ranking */
function mostrar_ranking_ciudades(provincia) {
//	$("#ranking-ciudades").show();
	
	$(".ranking-ciudades").load("/criticas/rankingciudades/" + provincia);

	//$('novedades-mini2').next().slideToggle();

}


function cargar_geopuntos(zona) {
	
	//$("#cargando").show();
	$("#geopuntos").load("/criticas/geopuntos/" + zona +"/" + categoria_seleccionada + "/" + critica_seleccionada + "/", function() {
		//$("#cargando").hide();
//		$("*").tooltip({ track: true , opacity: 0, showURL: false});
//		$("#kmz").load("/criticas/kmz/");
	});


}


/*****							****
					TAGS

****								****/


/* Añade tags relacionados con una critica tags - tag 
 *    @idcritica - Identificador de la critica.
 *    @tipo - Tipo: good o bad, etiquetas buenas o malas
 */
function addtag(tipo, idtag) {
			$("#grabando-tag").load("/tags/save/" + idcritica + "/" + idtag + "/" + tipo, function(){ $("#cargando").show(); });
			setTimeout ('$("#listado-tags").load("/tags/view/' + idcritica+'", function(){$("#cargando").hide();})', 1000);
}




/* Comprueba si existe tag contenido en caja texto tags/view #new-"+tipo+"-tag
 *	 
 *	@params - tipo. Diferenciador tags: good o bad.
 *	@returns - Llama la funcion addtag(tipo,idtag);
 */
function existetag(tipo) {
	var tagvalue = $("#new-"+tipo+"-tag").val();
	if ( tagvalue !== ""){

			$.get("/tags/existetag/" + tagvalue + "/"+ tipo, function(idtag){
						if(idtag!=="false"){// si existe devuelve idtag
							addtag(tipo, idtag);
						}else{
							addtag(tipo, tagvalue);
						} 		
			 });	

	}else alert(no_selecting_tag_list);	
}



/* Voto de un tag en critica tras clicar botón tags/view 
 *	 
 *	@params - idtag. Id del tag a votar
 *	@params - idcritica. Id de la critica donde esta el tag votado
 */
function pressingtag(idtag,idcritica) {
	$(this).load("/tags/pressingtag/" + idtag + "/" + idcritica , 
			function() { $("#listado-tags").load("/tags/view/" + idcritica); });
}




/* Elimina el tag votado a una critica tags/view 
 *	 
 *	@params - idreftag. Id de tabla reftags
 *	@param - tipo Diferencia entre tag: good o bad
 */
function delete_reftag_critica(idreftag, tipo) {
	$.get("/tags/delete_reftag_critica/" + idreftag + "/" + tipo + "/" + idcritica , 
			function() { $("#listado-tags").load("/tags/view/" + idcritica); });
}




/* Elimina el pressing de un tag realizado por usuario activo en sesion
 *	 
 *	@params - idreftag. Id de tabla reftags
 *	@param - tipo Diferencia entre tag: good o bad
 */
function delete_pressing_reftag_critica(idrefvototag, idreftag, tipo) {
	$.get("/tags/delete_pressing_reftag_critica/" + idrefvototag + "/" + idreftag + "/" + tipo + "/" + idcritica , 
			function() { $("#listado-tags").load("/tags/view/" + idcritica); });
	
}



/* Muestra los usuarios que han hecho pressing fame en un tag de una critica
 *	 
 *	@params - idcritica. Id de la critica
 * 	@params - idtag Id del tag a votar
 *	@param - tipo Diferencia entre tag: good o bad
 */
function list_users_pressing(idcritica, idtag, tipo){
  if ($("#list-users-pressingfame"+idtag).text().length < 20) 
    $("#list-users-pressingfame"+idtag).load("/tags/list_users_pressing/" + idcritica + "/" + idtag + "/" + tipo );

}





/* recibe un enlace (a) */
    function changeStyle(element){

        var new_style = $(element).attr('class');
        /* Obtenemos el li seleccionado */
        var selected = $(element).parent().siblings('.selected').get(0);
        selected = $(selected);
        /* obtenemos la clase del enlace seleccionado */
        var old_style = selected.find('a').attr('class');

        /* Deseleccionamos el estilo actual */
        selected.removeClass('selected').animate({"opacity": "0.5"}, "slow");
        /* Seleccionamos el li del nuevo enlace seleccionado */
        $(element).parent().addClass('selected').animate({"opacity": "1"}, "fast");

    }





/********************************************
	Tabs página principal
********************************************/
/* function tabs_pagina_principal() {
	var tabContainers = $('.resumen-tabs > div');
	var tabContainers2 = $('.resumen2-tabs > div');
	tabContainers.hide().filter(':first').show();
	tabContainers2.hide().filter(':first').show();

	// tabs ciudad
	$('.resumen-tabs ul.resumen-tabNavigation a').click(function () {
		tabContainers.hide();
		tabContainers.filter(this.hash).show();
		$('.resumen-tabs ul.resumen-tabNavigation a').removeClass('selected');
		$(this).addClass('selected');
		return false;
	}).filter(':first').click();

	// tabs pais
	$('.resumen2-tabs ul.resumen2-tabNavigation a').click(function () {
		tabContainers2.hide();
		tabContainers2.filter(this.hash).show();
		$('.resumen2-tabs ul.resumen2-tabNavigation a').removeClass('selected');
		$(this).addClass('selected');
		return false;
	}).filter(':first').click();


}
*/



/********************************************
	Efecto para desplegar y ver todos los checkbox de las categorias lugar
********************************************/



/********************************************
	Efecto para desplegar últimas críticas
********************************************/
$(document).ready(function (){
    $("#toggle1").click(function(){
    var img=document.getElementById('toggle1');
    if(img.src=="/img/list-remove.png")
     {
      $("#ultimas_criticas_arriba").slideUp("slow", function(){
	img.src="img/list-add.png";
	img.alt="up";
      });
     }
    else // si la flecha no es abajo, sera arriba
     {
      $("#ultimas_criticas_arriba").slideDown("fast", function(){
	img.src="img/list-remove.png";
	img.alt="down";
      });
     }
    });
});


/********************************************
	Efecto para desplegar solución críticas
********************************************/
/*
$(document).ready(function (){
    $("#toggle2").click(function(){
    var img=document.getElementById('toggle2');
    if(img.src=="/img/list-remove.png")
     {
      $("#solucion_criticas_arriba").slideUp("slow", function(){
	img.src="img/list-add.png";
	img.alt="up";
      });
     }
    else // si la flecha no es abajo, sera arriba
     {
      $("#solucion_criticas_arriba").slideDown("fast", function(){
	img.src="img/list-remove.png";
	img.alt="down";
      });
     }
    });
});
*/





/*¨*******************************************
	Para quitar y  poner iconos en el mapa mediante checkbox
**********************************************/
 //<![CDATA[
function Markers(grupo){

// map.closeInfoWindow();
map.getInfoWindow().hide()
   if (document.getElementById(grupo).checked==false) { // hide the marker
      for (var i=0;i<gmarkers.length;i++) {
         if (gmarkers[i].type==grupo)  {
            map.removeOverlay(gmarkers[i]);
         }
      }
   } else { // show the marker again
      for (var i=0;i<gmarkers.length;i++) {
         if (gmarkers[i].type==grupo)  {
            map.addOverlay(gmarkers[i]);
         }
      }
   }
}
  //]]>





/*****************************************************************************************************************
*	PARA STREETVIEW
*****************************************************************************************************************/
var myPano; var svOverlay;

function streetview_show(panoData) {
	if (panoData.code != 200) {  return; }
	$("#streetview").show("slow",
		function () { myPano.setLocationAndPOV(panoData.location.latlng); }
	);

}

function streetview_yaw_changed(data) { $("#yaw").val(data) }
function streetview_pitch_changed(data) { $("#pitch").val(data) }
function streetview_zoom_changed(data) { $("#zoom").val(data) }

function handleNoFlash(errorCode) { if (errorCode == FLASH_UNAVAILABLE) { alert('Error: Flash doesn\'t appear to be supported by your browser'); return; } }



Array.prototype.exists = function(o) { for(var i = 0; i < this.length; i++)   if(this[i] === o) return true; return false; }


var Criticas = {

}

