var COMENTARIOS = {};

COMENTARIOS.getComentarios = function(id, by, pagina) {

	if (typeof id == 'undefined') {
		return;
	}
	
    $.get('/backend/COMENTARIOS.getComentarios.php',
    {
        id: id,
        by: by,
        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;

        $(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: '/backend/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());
	}
	*/
	
	$('.art_ch5_comentarios').text(limite);
	
    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('/backend/COMENTARIOS.votarComentario.php',
    {
        id: id,
        tipo: tipo
    },
    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 + "')");
    eval('var formu = window.document.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.submit();

    alert('Gracias por denunciar el comentario');

};

COMENTARIOS.enviarComentario = function() {
    
	var fecha_submit = new Date();
    

	if (window.document.formulario.message.value == '') {
		alert('Por favor, introduce tu opini—n');
	    window.document.formulario.message.focus();
	    return;
	}
	
	if (!window.document.formulario.acepto.checked) {
	  	alert('Tienes que aceptar las condiciones de uso');
	  	return;
	}
		
	window.document.formulario.submit_time.value = fecha_submit.getTime();

	window.document.formulario.submit();
	if ($.browser.msie && $.browser.version <= 6 ) setTimeout("window.location.reload()",500);
	
	  
};

COMENTARIOS.setNumComentariosPortada = function() {

    var id = '';

    $('.num_comentarios').each(function() {
        	var campos = $(this).attr('id').split('-');
			if (typeof campos[2] != 'undefined') {
	        	id = id ? id + '|' + campos[2] : campos[2];
			}
    	}
    );

	$('.num-comentarios').each(function() {
        	var campos = $(this).attr('id').split('-');
	        if (typeof campos[2] != 'undefined') {
	        	id = id ? id + '|' + campos[2] : campos[2];
			}
    	}
    );

    if (id != '') {
        $.get("/backend/COMENTARIOS.getComentariosPortada.php",
        {
            id: id,
            by: 'date'
        },
        function(data) {
            
			var campos = data.split('|');
            var limite = campos.length;
            var i = limite - 1;
            do {
				
                var 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])) {
					document.getElementById('num-comentarios-' + campos2[0]).innerHTML = texto;
				}
                
            }
            while (i--);
        }
        );
    }
};

COMENTARIOS.desaprobar = function(id) {

    if (confirm('Quiere desaprobar este comenario?')) {

        $.post('/backend/COMENTARIOS.desaprobar.php',
        {
            id: id
        },
        function(xml) {

            var estado = $(xml).find('estado').text();

            if (estado == 'OK') {

                $('#opinion-' + id).remove();

                var opiniones = $('.num_opiniones').text().split(' ');
                $('.num_opiniones').text((parseInt(opiniones[0]) - 1) + ' ' + opiniones[1]);
            }
            else {
                alert($(xml).find('desc').text());
            }
        }
        );
    }
};

COMENTARIOS.eliminar = function(id) {

    if (confirm('Quiere eliminar este comenario?')) {

        $.post('/backend/COMENTARIOS.eliminar.php',
        {
            id: id
        },
        function(xml) {

            var estado = $(xml).find('estado').text();

            if (estado == 'OK') {

                $('#opinion-' + id).remove();

                var opiniones = $('.num_opiniones').text().split(' ');
                $('.num_opiniones').text((parseInt(opiniones[0]) - 1) + ' ' + opiniones[1]);
            }
            else {
                alert($(xml).find('desc').text());
            }
        }
        );
    }
};

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];
};

$(document).ready(function() {
	
	if ($.cookie('registro') != '' && $.cookie('registro') != null) {

		var xml;
		var xmlstr = $.cookie('registro');
		xmlstr = COMENTARIOS.str_replace('+', ' ', xmlstr);

		// Parche para IE
		if (window.ActiveXObject) {
		    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		 	xmlDoc.async = false;
			xmlDoc.onreadystatechange = function() {
				if (xmlDoc.readyState != 4) {
					return false;
				}
			};
			xmlDoc.loadXML(xmlstr);
			xml = xmlDoc;
        }
		else {
			xml = xmlstr;
		}
		
		$('[name="author_name"]').val($(xml).find('user').text());
		$('[name="author_email"]').val($(xml).find('user_email').text());
		
	}
	else {
		window.document.formulario.author_name.value = '';
		window.document.formulario.author_email.value = '';
	}

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