//if(!restDomain){
//	restDomain = "";
//}

var pagina_actual = 1;
var num_paginas = 1;

var elementos_pagina = 5;
var idHilo = 0;
var limite = 4;

function enviarComentario(contentPagePk, pageUrl, imgUrl, title) {
	
	callback = function(data) {
		// console.log("Control 2" + data.response.login);
		if(!data.response){
			alert("Captcha incorrecto");
			hideSubmitButtons();
		    Recaptcha.destroy();
		    $('#boton_enviar').css('display', 'block');
		}else{
			
			fb.publicar('facebook_share','texto_comentario',imgUrl , pageUrl, title);
			msn.publicar('live_share','texto_comentario',imgUrl , pageUrl, title);
			var original = $('#capa_modulo_comentarios').html();
			$('#capa_modulo_comentarios')
					.html(escribeComentario(data.response) + original);
			$('#boton_enviar').css('display', 'none');
			$('#texto_comentario').val("");
			hideSubmitButtons();
		    Recaptcha.destroy();
		}

	};
	
	var challenge = "";
	var response = "";
	if(testSessionOnClient()==null){
		challenge = Recaptcha.get_challenge();
		response = Recaptcha.get_response();
	}
	
	var comentario = $('#texto_comentario').val();
	if(validateComment(comentario)){
		if (comentario.length > 3999)
			comentario = comentario.substring(0, 3999);
		$.getJSON(restDomain + "rest/comments/json/" + $('#idHilo').val() + "/" + contentPagePk
				+ "?callback=?&texto=" + escape(comentario)+"&recaptcha_challenge_field="+challenge+"&recaptcha_response_field="+response, function(data) {
			callback(data);
		});
	}
	return false;
}

/*
 * Campos del objeto Comentario Web texto; login; correo; fecha; fechaTexto;
 * facebook; twitter; windowsLive; avatar; premium; esUsuarioZona3
 */
function escribeComentario(comentario) {	
	html = '<li>';
	// html += '<a title="t�tulo del link" href="#"><img title="Foto de
	// "'+comentario.login+' src="/static/imagen/'+comentario.avatar+'"
	// alt="'+comentario.login+'"/></a>';
	// html += '<div>';
	if (comentario.esUsuarioZona3 == true) {
		html += '<a title="avatar" href="'+restDomain+'spaceuser/verMuroPublico.action?userName='+comentario.login+'" class="left"><img title="Foto de "'
				+ comentario.login + ' src="'+ mainDomain +'avatarZona3/'
				+ comentario.avatar + '" alt="' + comentario.login + '"/></a>';
		html += '<div>';
		html += '<p>#'+comentario.numcomentario+' <a title="alias" class="alias" href="'+restDomain+'spaceuser/verMuroPublico.action?userName='+comentario.login+'">'
				+ comentario.login + '</a> ' + comentario.texto + '</p>';
	} else {
		html += '<img class="left" title="Foto de "'
				+ comentario.login
				+ ' src="'+mainDomain+'static/imgs/usuario.jpg" alt="'
				+ comentario.login + '"/>';
		html += '<div>';
		html += '<p>#'+comentario.numcomentario+' <span class="alias">' + comentario.login + '</span> '
				+ comentario.texto + '</p>';
	}
	html += '<span class="fecha">' + comentario.fechaTexto + '</span>';
	html += '</div>';
	html += '</li>';
	return html;
}

function escribePaginacion() {
	
	var inicio1 = 1;
	var fin1 = inicio1 + limite;
	
	if (pagina_actual > limite && num_paginas > limite) {
		inicio1 = pagina_actual;
		fin1 = inicio1 + limite;
		//limite += inicio1 - 1;
	}
	
	if(fin1>num_paginas && num_paginas > limite){
		inicio1 = num_paginas - limite;
		fin1 = num_paginas + 1;
	}
	
	var fin2 = num_paginas;
	var inicio2 = num_paginas - limite;
	var cadena = "";
	// console.log("inicio:"+inicio1);

	if (pagina_actual == 1)
		html = '<a title="anterior" class="prev disabled">&laquo; Anterior</a>';
	else
		html = '<a title="anterior" class="prev" href="#capa_modulo_comentarios" onclick="javascript:listarComentarios('
				+ idHilo
				+ ','
				+ (pagina_actual - 1)
				+ ','
				+ elementos_pagina
				+ ');">&laquo; Anterior</a>';
	html += '<ul>';

	if (inicio1 > 1)
		html += '<li><a title="título del link" onclick="javascript:listarComentarios('
				+ idHilo
				+ ','
				+ (inicio1 - 1)
				+ ','
				+ elementos_pagina
				+ ')";>...</a></li>';

	// console.log("COOnt."+inicio1);
	// console.log("COOnt."+ (inicio1+limite));
	for (i = inicio1; (i < fin1) && (i <= num_paginas); i++) {
		if (i == pagina_actual) {
			cadena += '[' + i + ']';
			// console.log('['+i+']');
			html += '<li class="active"><a title="título del link">' + i + '</a></li>';
			
		} else {
			cadena += i;
			html += '<li><a title="Paginaci&oacute;n" onclick="javascript:listarComentarios('
					+ idHilo
					+ ','
					+ i
					+ ','
					+ elementos_pagina
					+ ')";>'
					+ i
					+ '</a></li>';
		}
	}
	
	if (fin1 <= num_paginas)
		html += '<li><a title="título del link" onclick="javascript:listarComentarios('
				+ idHilo
				+ ','
				+ fin1
				+ ','
				+ elementos_pagina
				+ ')";>...</a></li>';

	html += '</ul>';
	if (pagina_actual == num_paginas)
		html += '<a title="siguiente" class="next disabled">Siguiente &raquo;</a>';
	else
		html += '<a title="siguiente" class="next" href="#capa_modulo_comentarios" onclick="javascript:listarComentarios('
				+ idHilo
				+ ','
				+ (pagina_actual + 1)
				+ ','
				+ elementos_pagina
				+ ');">Siguiente &raquo;</a>';
	html += '<p></p>';
	$('#capa_modulo_paginador').html(html);

	return cadena;
}

function listarComentarios(idHilo, numPagina, elemPorPagina) {
	callback = function(data) {

		num_paginas = data.response.paginasTotales;
		pagina_actual = data.response.pagina;

		html = '<div class="todos">';
		html += '<ul id="capa_comentarios">';

		for (i = 0; i < data.response.results.length; i++)
			html += escribeComentario(data.response.results[i]);

		html += '</ul>';
		html += '</div>';
		// console.log("dsdsdd-"+html);
		$('#capa_modulo_comentarios').html(html);
		// pinta la paginaci�n
		escribePaginacion();
	};

	$.getJSON(restDomain + "rest/comments/json/" + idHilo + "/pag/"
			+ numPagina + "/" + elemPorPagina + "?callback=?", function(data) {
		callback(data);
	});

	return false;
}

function showRecaptcha(element, submitButton, themeName, captchaButton, contentPagePk, pageUrl, imgUrl, title) {
	if(testSessionOnClient()==null){
	  Recaptcha.create("6LfmkroSAAAAAMKBXW-yYuThN6QU1xlnrlMfKaAy", element, {
	        theme: themeName,
	        tabindex: 0,
	        callback: Recaptcha.focus_response_field,
	        custom_theme_widget: element,
	        lang: 'es'
	  });
	  hideSubmitButtons();
	  document.getElementById(submitButton).style.display = "block";
	  //document.getElementById('dynamic_recaptcha_message').style.display = "block";
	  document.getElementById(captchaButton).style.display = "none";
	}else{
		enviarComentario(contentPagePk, pageUrl, imgUrl, title);
	}
	  
}

function hideSubmitButtons() {
	  document.getElementById('submit_button_1').style.display = "none";
	  //document.getElementById('dynamic_recaptcha_message').style.display = "none";
}

function destroyRecaptchaWidget() {
  hideSubmitButtons();
  Recaptcha.destroy();

}


$(document).ready(function() {
	if ($('#capa_modulo_comentarios').length > 0) {
		idHilo = $('#idHilo').val();
		num_paginas = $('#nPages').val();
		if(num_paginas > 40){
			limite = 10;
		}else if(num_paginas > 20){
			limite = 7;
		}else{
			limite = 4;
		}
		//escribePaginacion();
	}
});

function validateComment(comment){
	if(comment=="" || comment=="null"){
		alert("No se pueden enviar comentarios vacíos.");
		return null;
	}
    // Expresión regular para el código html.
    var re = new RegExp("<(\"[^\"]*\"|'[^']*'|[^'\">])*(>)?");
    if(comment.match(re)){
            alert("No está permitido ningún tipo de código HTML. Por favor, revisa el comentario.");
            return false;
    }
    // Expresión regular para controlar los enlaces.
    var re = new RegExp("([a-zA-Z0-9]{3,9}://)?([a-zA-Z0-9-_/@%]+\\.){1,}[a-zA-Z0-9-_/@%\\?&=;]+");
    if(comment.match(re)){
            alert("No está permitido incluir enlaces. Por favor, revisa el comentario.");
            return false;
    }
    return true;
}



