var COMENTARIOS = {};

COMENTARIOS.getComentarios = function(id, by, pagina) {
	if (typeof id == 'undefined') {
		return;
	}
	$.get(directorio + '/backend/COMENTARIOS.getComentarios.php',
	{
			id: id,
			by: by,
			comentarios_dominio : comentarios_dominio,
			r: Math.random()
	},
	function(xml) {
		var i = 0;
		var html = '';
		var variables_plantilla = Array();
		var fecha_load = new Date();

		var limite = $(xml).find('comment').length;
		pluriel = ''
		if(limite > 1) 
		{
			pluriel = 's';
		}
		if (window.document.getElementById('num-comentarios')) {
			window.document.getElementById('num-comentarios').innerHTML = limite + ' Comentario'+pluriel;
		}
		if (window.document.getElementById('num-comentarios2')) {
			window.document.getElementById('num-comentarios2').innerHTML = limite + ' Comentario'+pluriel;
		}

		$(xml).find('comment').each(function() {
				var $comment = $(this);
				var campos = $comment.find('date').text().split(' ');
				variables_plantilla[i] = {
					fecha: campos[2] + '/' + campos[1] + '/' + campos[5],
					hora: campos[3],
					author: $comment.find('author').find('name').text(),
					content: $comment.find('content').text(),
					id: $comment.find('id').text(),
					positive_votes: $comment.find('positive_votes').text(),
					negative_votes: $comment.find('negative_votes').text(),
					load_time: fecha_load.getTime()
				};
				i++;
			}
		);

		$.ajax({
				type: 'GET',
				url: directorio + '/plantillas/comentarios.html',
				async: false,
				success: function(data) {
					html = data;
				}
		});

		COMENTARIOS.muestraComentarios(variables_plantilla, html, pagina, limite);

		if (by == 'date') {
				$('#lomasreciente').addClass('activo');
				$('#lomasvalorado').removeClass('activo');
		}
		else {
				$('#lomasvalorado').addClass('activo');
				$('#lomasreciente').removeClass('activo');
		}
	});
};

COMENTARIOS.muestraComentarios = function(variables_plantilla, html, pagina, limite) {
	var max_comentarios = 5;
	var limite_b = ((((pagina - 1) * max_comentarios) + max_comentarios) > limite) ? limite: (((pagina - 1) * max_comentarios) + max_comentarios);
	var inicio = (pagina - 1) * max_comentarios;
	var paginas = Math.ceil(limite / max_comentarios);
	var $contenido = $('<div></div>');

	for (i = inicio; i < limite_b; i++) {

		var t = $.template(html);

		if (i == inicio) {
			$contenido.html(t, {
				fecha: variables_plantilla[i].fecha,
				hora: variables_plantilla[i].hora,
				author: variables_plantilla[i].author,
				content: variables_plantilla[i].content,
				id: variables_plantilla[i].id,
				positive_votes: variables_plantilla[i].positive_votes,
				negative_votes: variables_plantilla[i].negative_votes,
				load_time: variables_plantilla[i].load_time
			});
		}
		else {
			$contenido.append(t, {
				fecha: variables_plantilla[i].fecha,
				hora: variables_plantilla[i].hora,
				author: variables_plantilla[i].author,
				content: variables_plantilla[i].content,
				id: variables_plantilla[i].id,
				positive_votes: variables_plantilla[i].positive_votes,
				negative_votes: variables_plantilla[i].negative_votes,
				load_time: variables_plantilla[i].load_time
			});
		}

		if ($.cookie('admin') == 1) {
			$contenido.find('#moderacion-' + variables_plantilla[i].id).show();
		}
	}

	window.document.getElementById('bloque-opiniones').innerHTML = $contenido.html();

	var opiniones = $('.num_opiniones').text().split(' ');

	if ($('.num_opiniones').text().indexOf(' ') != -1) {
		$('.num_opiniones').text(limite + ' ' + opiniones[1]);
	}
	else {
		$('.num_opiniones').text(limite + ' ' + $('.num_opiniones').text());
	}

	var $listado_seguimiento = $('.listado_seguimiento');

	$listado_seguimiento.find('strong').text((pagina < 10) ? '0' + pagina: pagina);
	$listado_seguimiento.html($listado_seguimiento.find('strong'));
	$listado_seguimiento.append('/' + ((paginas < 10) ? '0' + paginas: paginas));

	var $anterior = $('#anterior');
	var $siguiente = $('#siguiente');

	$anterior.attr('href', 'javascript:void(0)');
	$siguiente.attr('href', 'javascript:void(0)');

	if (pagina > 1) {
		$anterior.unbind('click');
		$anterior.bind('click',
		function() {
			COMENTARIOS.muestraComentarios(variables_plantilla, html, (pagina - 1), limite);
		});
	}

	if (pagina != paginas) {
		$siguiente.unbind('click');
		$siguiente.bind('click',
		function() {
				COMENTARIOS.muestraComentarios(variables_plantilla, html, (pagina + 1), limite);
		});
	}
};

COMENTARIOS.mostrarDenunciar = function(id) {
	$('#formdenunciar-' + id).slideDown("slow");
};

COMENTARIOS.votarComentario = function(id, tipo) {
	$.post(directorio + '/backend/COMENTARIOS.votarComentario.php',
	{
		id: id,
		tipo: tipo,
		comentarios_dominio : comentarios_dominio
	},
	function(data) {
		if (data == 'ok') {
			$('#favorcontra-' + id).parent().html('Gracias por votar');
		}
		else {
			alert(data);
		}
	});
};

COMENTARIOS.denunciarComentario = function(id) {
	var fecha_submit = new Date();
	var filter = /^[A-Za-z][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	eval("var formu = document.getElementById('formulario-" + id + "')");

	/*
	if (formu.nombre.value == '') {
		alert('Por favor, introduzca su nombre');
		formu.nombre.focus();
		return;
	}

	if (formu.email.value == '') {
		alert('Por favor, introduzca su email');
		formu.email.focus();
		return;
	}

	if (!filter.test(formu.email.value)) {
		alert('El email introducido no es v‡lido');
		formu.email.value.focus();
		return;
	}
	*/
	if (formu.denuncia.value == '') {
		alert('Por favor, introduzca su denuncia');
		formu.denuncia.focus();
		return;
	}

	formu.submit_time.value = fecha_submit.getTime();
	formu.comentarios_dominio.value = comentarios_dominio;
	formu.action = directorio + '/backend/COMENTARIOS.denunciarComentario.php';
	formu.submit();

	alert('Gracias por denunciar el comentario');

};

COMENTARIOS.enviarComentario = function() {
	var fecha_submit = new Date();
	var filter = /^[A-Za-z][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (typeof REGISTRO == 'undefined') {
		$.getScript(directorio +'/js/registro.js', function() {
			if ($.cookie('registro')) REGISTRO.getXML($.cookie('registro'));
			if (typeof REGISTRO.xml != 'undefined') {
				window.document.formulario.author_name.value = $(REGISTRO.xml).find('user').text();
				if($(REGISTRO.xml).find('user_email').text() != ''){
					window.document.formulario.author_email.value = $(REGISTRO.xml).find('user_email').text();
				}
			} 

			if ($('[name="author_name"]').val() == '') {
				alert('Por favor, introduce tu nombre');
				return;
			}

			if ($('[name="author_email"]').val() == '') {
				alert('Por favor, introduce tu email');
				return;
			}

			if (!filter.test($('[name="author_email"]').val())) {
				alert('El email introducido no es válido');
				return;
			}
			
			if (!window.document.formulario.acepto.checked) {
				alert('Tienes que aceptar las condiciones de uso');
				return;
			}

			if (window.document.formulario.message.value == '') {
				alert('Por favor, introduce tu opinión');
				window.document.formulario.message.focus();
				return;
			}

			window.document.formulario.message.value = window.document.formulario.message.value;
			window.document.formulario.submit_time.value = fecha_submit.getTime();
			window.document.formulario.comentarios_dominio.value = comentarios_dominio;
			window.document.formulario.action = directorio + '/backend/COMENTARIOS.enviarComentario.php';
			window.document.formulario.submit();
		});
	}
	else {
		if (typeof REGISTRO.xml != 'undefined') {
			window.document.formulario.author_name.value = $(REGISTRO.xml).find('user').text();
			if($(REGISTRO.xml).find('user_email').text() != '') {
				window.document.formulario.author_email.value = $(REGISTRO.xml).find('user_email').text();
			}
		}

		if ($('[name="author_name"]').val() == '') {
			alert('Por favor, introduce tu nombre');
			return;
		}

		if ($('[name="author_email"]').val() == '') {
			alert('Por favor, introduce tu email');
			return;
		}

		if (!filter.test($('[name="author_email"]').val())) {
			alert('El email introducido no es válido');
			return;
		}
		
		if (!window.document.formulario.acepto.checked) {
			alert('Tienes que aceptar las condiciones de uso');
			return;
		}

		if (window.document.formulario.message.value == '') {
			alert('Por favor, introduce tu opinión');
			window.document.formulario.message.focus();
			return;
		}

		window.document.formulario.message.value = window.document.formulario.message.value;
		window.document.formulario.submit_time.value = fecha_submit.getTime();
		window.document.formulario.comentarios_dominio.value = comentarios_dominio;
		window.document.formulario.action = directorio + '/backend/COMENTARIOS.enviarComentario.php';
		window.document.formulario.submit();
	}
};

COMENTARIOS.setNumComentariosPortada = function() {
	var id = '';

	$('.numcomentarios').each(function() {
		var campos = $(this).attr('id').split('-');
		id = id ? id + '|' + campos[2] : campos[2];
	});
	
	id = COMENTARIOS.str_replace('solidario', 'rc', id);

	if (id != '') {
		$.get(directorio + "/backend/COMENTARIOS.getComentariosPortada.php",
		{
			id: id,
			by: 'date',
			comentarios_dominio : comentarios_dominio
		},
		function(data) {
			var campos = data.split('|');
			var limite = campos.length;
			var i = limite - 1;
			do {
				campos2 = campos[i].split('@');
				var num = campos2[1];
				var texto = '';

				switch (true) {
					case(num == 0 || num == '') :
						texto = document.getElementById('num-comentarios-' + campos2[0]).innerHTML;
						break;
					case (num == 1) :
						texto = '1 Comentario';
						break;
					default:
						texto = num + '  Comentarios';
						break;
				}

				if (document.getElementById('num-comentarios-' + campos2[0])) {
					if(document.getElementById('comentarios_sin_texto')) {
						texto = texto.replace(' Comentario', '');
						texto = texto.replace(' Comentarios', '');
						$('.numcomentarios').each(function() {
							$(this).html(texto);
						});
					}	else {
						document.getElementById('num-comentarios-' + campos2[0]).innerHTML = texto;
					}
				}
			}
			while (i--);
		});
	}
};

COMENTARIOS.str_replace = function(search, replace, subject) {
	var f = search,
			r = replace,
			s = subject;
	var ra = r instanceof Array,
			sa = s instanceof Array,
			f = [].concat(f),
			r = [].concat(r),
			i = (s = [].concat(s)).length;

while (j = 0, i--) {
	if (s[i]) {
		while (s[i] = (s[i] + '').split(f[j]).join(ra ? r[j] || "": r[0]), ++j in f) {};
	}	
};

	return sa ? s: s[0];
};



COMENTARIOS.publishToMiniFeed = function (textocoment, enlace, tipo, id, xdr) {
	if ('facebook' == tipo){
		FB.init(id, xdr);
		var msg = textocoment;
		var user_message_prompt = 'Tu comentario:';
		url = 'http://'+jQuery.url.attr("host")+enlace;
		var attachment = {
			'name': 'El partido en directo' ,
			'caption': '{*actor*} comparte un comentario del mundial', 
			'href': url
		};

		var action_link = [{'text':'Ver directo','href':url}];
		FB.ensureInit(function() {
			FB.Connect.streamPublish(msg,attachment,action_link,null,user_message_prompt);
		});

	}
	else if ('twitter' == tipo) {
		var status = 'http://'+jQuery.url.attr("host")+enlace+' ';
		var i = 0;
		textocoment = decodeURIComponent(  textocoment );
		
		while (i < textocoment.length && status.length < 140){
			status = status + textocoment[i];
			i++;
		}
		window.open('http://twitter.com/home?status='+status);
	}
	return false;
};

$(document).ready(function() {
	if ($('[name=id_item]').length) {
    	COMENTARIOS.getComentarios($('[name=id_item]').val(), 'date', 1);
	}
	COMENTARIOS.setNumComentariosPortada();
}
);
