var comentarioVotado = null;

function VotarComentarioAjax(idComentario,voto,posicion,comentario_id_contenido,comentario_pagina,valoracion, total_valoracion)
{
		//Mostramos mensaje de enviándo voto
		comentarioVotado = null;
		jQuery('#comments_votador_'+idComentario).hide();
		jQuery('#comments_enviando_'+idComentario)
			.removeClass("enviando_error")
			.addClass("enviando")
			.html('Enviando voto')
			.show();

		//Obtenemos los votos actuales del comentario
		var votos = parseInt(valoracion);
		var total = parseInt(total_valoracion);

		jQuery.ajax(
			{
				url: "/proc/voto/",
				type: "POST",
				dataType: "json",
				data: "operacion=comentarios&id_comentario="+idComentario+"&voto_comentario="+voto+"&comentario_id_contenido="+comentario_id_contenido+"&comentario_pagina="+comentario_pagina,
				timeout: 5000,
				success: function(respuesta)
				{
					if (respuesta.status == 'error')
					{
						jQuery('#comments_enviando_'+idComentario)
							.removeClass("enviando")
							.addClass("enviando_error")
							.html(respuesta.message);
					}
					else if (respuesta.status == 'error-login')
					{
						comentarioVotado = {
							'idComentario': idComentario,
							'voto': voto,
							'posicion': posicion,
							'comentario_id_contenido': comentario_id_contenido,
							'comentario_pagina': comentario_pagina,
							'valoracion': valoracion,
							'total_valoracion': total_valoracion
						}

						jQuery('#comments_enviando_'+idComentario).html('Identificando al usuario');

						//Si estamos en una página privada tenemos que recargar la información del usuario para que sea real
						if (document.getElementById('registrado_on') != null){
							CargarBarraUsuario();
						}

						// Protección por si el usuario sigue privado
						if (document.getElementById('registrado_on') != null)
						{
							jQuery('#comments_enviando_'+idComentario)
							.removeClass("enviando")
							.addClass("enviando_error")
							.html('Hubo alg&uacute;n problema en el proceso de identificaci&oacute;n, por favor vu&eacute;lvalo a intentar<br />');
						}
						else
						{
							jQuery('#lnkCommentLogin').click();
							setTimeout("jQuery('#comments_enviando_'+comentarioVotado.idComentario).hide(); jQuery('#comments_votador_'+comentarioVotado.idComentario).show();", 3000);
						}
					}
					else if (respuesta.status == 'success')
					{

						if (voto == 'favor'){ votos = votos +1; total = total +1;}
						else if (voto == 'contra'){ votos = votos - 1; total = total +1;}

						var literal = 'votos'; if (total == 1) { literal = 'voto';}
						var cadena_total = '('+total+' '+literal+')';
						
						jQuery('#comments_enviando_'+idComentario)
							.removeClass("enviando")
							.addClass("enviando_texto")
							.html(respuesta.message);
						jQuery('#comments_votos_'+idComentario).html(String(votos));
						jQuery('#comments_totalVotos_'+idComentario).html(cadena_total);

						//Repintamos el voto según sus valores
						valoracion_comentario('#comments_votos_'+idComentario, posicion);
					}

				},
				error: function(p1,p2,p3)
				{
					jQuery('#comments_enviando_'+idComentario)
							.removeClass("enviando")
							.addClass("enviando_error")
							.html('Se ha producido un error en el proceso de votaci&oacute;n, por favor vu&eacute;lvalo a intentar<br>');
					jQuery('#comments_votador_'+idComentario).show();
				}
			});

}

//Función parecida a valoraciones_comentarios: se invoca desde la votación de comentarios mediante ajax
function valoracion_comentario(divVoto, posicion)
{
	var votoObj = jQuery(divVoto);
	var commentObj = votoObj.parents('.comment_off, .comment');

	// Forzar normal
	commentObj.removeClass('comDestacado').removeClass('colapsado');
	commentObj.find('.aviso_tono').show();

	// Destacar/Ocultar
	destacar_comentario(votoObj, commentObj)
}

function valoraciones_comentarios(recolocar)
{
	var comentarioColapsado = false;
	$('.comment_off,.comment').each(function()
	{
		var votosObj = $(this).find('.votos');

		destacar_comentario(votosObj, $(this));
		comentarioColapsado = $(this).attr('class').match(/colapsado/);
	});

	if(comentarioColapsado == true && recolocar != false)
	{
		var urlComentariosActual = document.location.href;

		anclaComentario = new Array();
		anclaComentario = urlComentariosActual.split('#comentarios_');
		if(anclaComentario.length == '2')
		{
			document.location.href = '#comentarios_'+anclaComentario[1];
		}
	}
}

function destacar_comentario(votoObj, commentObj)
{
	var umbralInferior = '';
	var umbralSuperior = '';
	var esAnonimo = (commentObj.attr('class').match(/comment_off/) ? true : false);
	
	//comentario de usuario anónimo
	if (esAnonimo === true){
		umbralInferior = umbrales.ai;
		umbralSuperior = umbrales.as;
	}else{//comentario de usuario registrado
		umbralInferior = umbrales.ri;
		umbralSuperior = umbrales.rs;
	}

	var votos = parseInt(votoObj.html());
	
	if(votos > 0)
	{
		votoObj.addClass('favor');
	}
	else if(votos < 0)
	{
		votoObj.addClass('contra');
	}
	else if (votos == 0)
	{
		votoObj.removeClass('favor').removeClass('contra');
	}

	if(votos >= umbralSuperior)
	{
		commentObj.addClass('comDestacado');
	}
	else if(votos <= umbralInferior)
	{
		commentObj.addClass('colapsado');
		commentObj.find('.aviso_tono').hide();

		var commentContObj = commentObj.find('.contComentario');
		if (!commentContObj.html().match(/Leer comentario/))
		{
			commentContObj.append('<p class="comColapsado"><a href="javascript:;" title="Haz clic para leer el comentario">Leer comentario</a></p>');
			commentObj.find('.comColapsado > a').click(function()
			{
				commentObj.removeClass('colapsado');
				commentObj.find('.aviso_tono').show();
			});
		}
	}
}