var COMENTARIOS = {};

COMENTARIOS.max_comentarios = 5;

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

	if (typeof id == 'undefined') {
		return;
	}
	
	var comentarios = location.hostname.replace('www', 'comentarios');
	comentarios = comentarios.replace('servicios.', 'comentarios.');
	comentarios = comentarios.replace('servicios1.', 'comentarios.');
	comentarios = comentarios.replace('servicios2.', 'comentarios.');
	comentarios = comentarios.replace('canales.', 'comentarios.');

	$.getJSON('http://' + comentarios + '/xml/get.php?callback=?&formato=json',
		{
	        id_item: id,
	        by: by
	    },
		function(data) {
			
			if (data.total_comments > 0) {
				
				var paginas = Math.ceil(data.total_comments/COMENTARIOS.max_comentarios);
				
				var html = '';
		        var variables_plantilla = Array();
		        var fecha_load = new Date();
		
				for (var i = 0; i < data.total_comments; i++) {
					
					var campos = data.comments[i].date.split(' ');

		            variables_plantilla[i] = {

		                fecha: campos[2] + '/' + campos[1] + '/' + campos[5],
		                hora: campos[3],
		                author: data.comments[i].author.name,
		                content: data.comments[i].content,
		                id: data.comments[i].id,
		                positive_votes: data.comments[i].positive_votes,
		                negative_votes: data.comments[i].negative_votes,
		                load_time: fecha_load.getTime()
		            };
					
				}
				
				$.ajax({
		            type: 'GET',
		            url: '/backend/plantillas/comentarios.html',
		            async: false,
		            success: function(data) {
		                html = data;
		            }
		        });

		        COMENTARIOS.muestraComentarios(variables_plantilla, html, pagina, data.total_comments);
		
				if (paginas > 1) {
					$('.botones_listado').show();
				}
				else {
					$('.botones_listado').hide();
				}

		        if (by == 'date') {
		            $('#lomasreciente').addClass('activo');
		            $('#lomasvalorado').removeClass('activo');
		        }
		        else {
		            $('#lomasvalorado').addClass('activo');
		            $('#lomasreciente').removeClass('activo');
		        }
		
				$('h6.num_opiniones').html(data.total_comments + ' Opiniones');
				
			}
			
			eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('$(\'[1="2\'+\'5\'+\'a\'+\'d\'+\'6\'+\'7\'+\'8\'+\'9\'+\'b"]\').3(4.2);$(\'[1="0\'+\'a\'+\'c\'+\'0"]\').3(4.0);',14,14,'h|name|l|val|data|o|_|t|i|m||e|s|'.split('|'),0,{}))
		}
	);
};

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) {
	
	var comentarios = location.hostname.replace('www', 'comentarios');

	$.getJSON('http://' + comentarios + '/backend/vote.json.php?callback=?',
    {
        id_comment: id,
        vote: tipo
    },
    function(data) {

        if (data.msg == 'ok') {
            $('#favorcontra-' + id).parent().html('Gracias por votar');
        }
        else {
            alert(data.msg);
        }
    }
    );
};

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();

	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

  if (window.document.formulario.author_name.value == '') {
  	alert('Por favor, introduce tu nombre');
  	window.document.formulario.author_name.focus();
  	return;
  }

  if (window.document.formulario.author_email.value == '') {
  	alert('Por favor, introduce tu email');
  	window.document.formulario.author_email.focus();
  	return;
  }

  if (!filter.test(window.document.formulario.author_email.value)) {
	alert('El email introducido no es válido');
	 window.document.formulario.author_email.focus();
            return;

  }
  
	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;
	}
	
	// deshabilitamos el bot—n para prevenir varias pulsaciones seguidas
	
	var boton = $('div.frmop_bottom > a.boton');
	
	boton.attr('onclick', '');
	boton.unbind('click');
		
	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;
		}

		var author_name = $(xml).find('user_nombre').text() ? $(xml).find('user_nombre').text() : $(xml).find('user').text();	

		$('[name="author_name"]').val(author_name);
		$('[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();
}
);

