//Flag para evitar envíos múltiples
var enviandoComentario = false;

function checkEmailAddress(email)
{
	return email.match(/\b(^(\S+@).+((\.com)|(\.cat)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.info)|(\..{2,2}))$)\b/gi);
}

function ComprobarCamposEnvioComentario()
{
	var datos_necesarios = false;
	if (!(document.getElementById('registrado_on')))
	{
		datos_necesarios = true;
	}
	else if (document.getElementById('registrado_off').checked)
	{
		datos_necesarios = true;
	}

	if (datos_necesarios)
	{
		if ((document.getElementById('datos_no_reg')) && (document.getElementById('datos_no_reg').style.display=='none'))
		{
			alert('Termine el registro o pulse \'volver\' para regresar al formulario anterior');
			return false;
		}
		else if(document.getElementById('nombre').value == '')
		{
			alert('El campo \'Nombre\' es obligatorio');
			return false;
		}
		else if(document.getElementById('email').value == '')
		{
			alert('El campo \'Correo electrónico\' es obligatorio');
			return false;
		}
		else if(!checkEmailAddress(document.getElementById('email').value))
		{
			alert('Introduzca una dirección de \'Correo electrónico\' correcta');
			return false;
		}
	}

	if(document.getElementById('comentario').value == '')
	{
		alert('El campo \'Comentario\' es obligatorio');
		return false;
	}
	else if(document.getElementById('codigo').value == '')
	{
		alert('Debe introducir el código de seguridad');
		return false;
	}
	else
	{
		return true;
	}
}

function PrevisualizarComentario(idComentario)
{
	document.getElementById('comments_form').target = "_blank";
	if(ComprobarCamposEnvioComentario())
	{
		document.getElementById('comments_form').action = '/previsualizar_comentario/'+idComentario+'/';
		document.getElementById('comments_form').submit();
	}
	else
	{
		return false;
	}
}

function EnviarComentario(idContenido,tipoContenido,resto)
{
	if(!enviandoComentario)
	{
		enviandoComentario = true;
		document.getElementById('comments_form').target = "_self";
		if(ComprobarCamposEnvioComentario())
		{
			document.getElementById('comments_form').action = '/'+tipoContenido+'/'+idContenido+'/l'+resto+'/#comentarios';
			document.getElementById('comments_form').submit();
		}
		else
		{
			enviandoComentario = false;
			return false;
		}
	}
}

function EnviarComentario2(idContenido)
{
	if(!enviandoComentario)
	{
		enviandoComentario = true;
		document.getElementById('comments_form').target = "_self";
		if(ComprobarCamposEnvioComentario())
		{
			document.getElementById('comments_form').id_contenido.value = idContenido;
			document.getElementById('comments_form').action = '/proc/add/comment/';
			document.getElementById('comments_form').submit();
		}
		else
		{
			enviandoComentario = false;
			return false;
		}
	}
}

function Identificarse()
{
	document.getElementById('comments_volver').action = '/usuarios/identificacion/';
	document.getElementById('comments_volver').submit();
	return false;
}

function Salir(tag)
{
	document.comments_volver.url_volver.value += ((typeof tag) == "string" && tag!="")?tag:"";
	
	document.getElementById('comments_volver').action = '/proc/desconexion/';
	document.getElementById('comments_volver').submit();
	return false;
}

function Registrarse(tag)
{
	document.comments_volver.url_volver.value += ((typeof tag) == "string" && tag!="")?tag:"";
	
	document.getElementById('comments_volver').action = url_web_20m+'usuarios/registro/';
	document.getElementById('comments_volver').submit();	
	return false;
}

function CambiarDatos(tag)
{
	document.comments_volver.url_volver.value += ((typeof tag) == "string" && tag!="")?tag:"";
	
	document.getElementById('comments_volver').action = url_web_20m+'usuarios/modificar/registro/';
	document.getElementById('comments_volver').submit();	
	return false;
}

function CambiarImagen(tag)
{
	document.comments_volver.url_volver.value += ((typeof tag) == "string" && tag!="")?tag:"";
	 
	document.getElementById('comments_volver').action = url_web_20m+'usuarios/modificar/registro/#subir_imagen';
	document.getElementById('comments_volver').submit();	
	return false;
}

/* ENVIO DE COMENTARIOS AJAX */
function MostrarCargando ()
{
	OcultarMensajeError();
	$('#form_fieldset').hide();
	$('#preloadCom').html('<p>Tu comentario está siendo publicado</p><img src="'+url_css3+'i/loading_news.gif" alt=\"Espere, por favor\" width=\"107\" height=\"41\"/></p>');
	$('#preloadCom').show();
}

function OcultarCargando ()
{
	$('#preloadCom').hide();
	$('#form_fieldset').show();
}

function OcultarMensajeError ()
{
	$('#nombre').removeClass("error");
	$('#email').removeClass("error");
	$('#comentario').removeClass("error");
	$('#codigo').removeClass("error");
	$('#alarmMsg').css({display:"none"});
}

function AnadirClaseError (type)
{
	switch(type)
   {
		case "empty-name" :
			nombreClase = 'nombre';
			break;

		case "empty-email" :
		case "incorrect-email" :
			nombreClase = 'email';
			break;

		case "empty-commentary" :
		case "duplicated-commentary" :
			nombreClase = 'comentario';
			break;

		case "empty-captcha" :
		case "captcha" :
			nombreClase = 'codigo';
			break;
	}

	$('#'+nombreClase).removeClass("inp_txt");
	$('#'+nombreClase).addClass("error");
}

function LimpiarCampos ()
{
	$("#nombre").attr("value","");
	$("#email").attr("value","");
	$("#url").attr("value","");
	$("#codigo").attr("value","");
	$("#comentario").attr("value","");
	$("#mostrarInformacion").attr("checked", "");
}

function MensajeError (type, destino)
{
	switch(type)
   {
   	// Errores detectados en el Cliente
   	case "no-identified" :
			mensaje = 'Termine el registro o pulse &quot;volver&quot; para regresar al formulario anterior.';
			break;

		case "empty-name" :
			AnadirClaseError (type);
			mensaje = 'El campo &quot;Nombre&quot; es obligatorio.';
			break;

		case "empty-email" :
			AnadirClaseError (type);
			mensaje = 'El campo &quot;Correo electr&oacute;nico&quot; es obligatorio.';
			break;

		case "incorrect-email" :
			AnadirClaseError (type);
			mensaje = 'Introduzca una dirección de correo electrónica válida.';
			break;

		case "empty-commentary" :
			AnadirClaseError (type);
			mensaje = 'El campo &quot;comentario&quot; es obligatorio.';
			break;

		case "empty-captcha" :
			AnadirClaseError (type);
			mensaje = 'Debe introducir el código de seguridad.';
			break;

		case "noncontacted" :
			mensaje = 'Se ha producido un error. Por favor, <a href="/'+destino+'">comprueba</a> que tu comentario se haya publicado.';
			break;

   	// Errores detectados en el Servidor
		case "captcha" :
			AnadirClaseError (type);
			$("#codigo").attr("value","");
			$('#codigo').focus();
			mensaje = 'El código de seguridad no es correcto.';
			break;

		case "duplicated-commentary" :
			AnadirClaseError (type);
			mensaje = 'Este comentario ya ha sido enviado. No se permiten comentarios duplicados.';
			break;

		case "ip-deactivated" :
			mensaje = 'Comentarios desactivados temporamente para esta IP. <a href="mailto:zona20@20minutos.es">Contáctenos</a> si cree que es un error.';
			break;

		case "registered-user" :
		case "add-process" :
			mensaje = 'Se ha producido un error, por favor inténtelo de nuevo.';
			break;

		case "rules-leaked" :
			mensaje = 'El comentario incumple las normas de participación. <a href="mailto:zona20@20minutos.es">Contáctenos</a> si cree que es un error.';
			break;
	}

	$('#alarmMsg').css({display:"block"});
	$('#alarmMsg').html('<p><strong>'+mensaje+'</strong></p>');
}

function ComprobarCamposEnvioComentariojQuery(name_form)
{
	OcultarMensajeError();

	var datos_necesarios = false;
	if (!(name_form.registrado_on))
	{
		datos_necesarios = true;
	}
	else if (name_form.registrado_off.checked)
	{
		datos_necesarios = true;
	}

	if (datos_necesarios)
	{
		var nombre = name_form.nombre.value.replace(/^\s*|\s*$/g,"");
		if ( (name_form.datos_no_reg) && (name_form.datos_no_reg.style.display=='none') )
		{
			MensajeError('no-identified');
			return false;
		}
		else if(nombre == '')
		{
			MensajeError('empty-name');
			$('#nombre').focus();
			return false;
		}
		else if(name_form.email.value == '')
		{
			MensajeError('empty-email');
			$('#email').focus();
			return false;
		}
		else if(!checkEmailAddress(name_form.email.value))
		{
			MensajeError('incorrect-email');
			$('#email').focus();
			return false;
		}
	}

	var comentario = name_form.comentario.value.replace(/^\s*|\s*$/g,"");
	if(comentario == '')
	{
		MensajeError('empty-commentary');
		$('#comentario').focus();
		return false;
	}
	else if(name_form.codigo.value == '')
	{
		MensajeError('empty-captcha');
		$('#codigo').focus();
		return false;
	}
	else
	{
		return true;
	}
}

function ProcesoEnvioComentarioAjax (ident, destino, name_form)
{
	nombre = URLEncode(name_form.nombre.value);
	email = name_form.email.value;
	comentario = URLEncode(name_form.comentario.value);
	url = name_form.url.value;
	codigo = name_form.codigo.value;
	code_ok = name_form.code_ok.value;

	if (!(name_form.registrado_on))
	{
		registrado = 'no';
	}
	else if (name_form.registrado_on.checked)
	{
		registrado = 'yes';
	}
	else if (name_form.registrado_off.checked)
	{
		registrado = 'no';
	}

	if (name_form.mostrarInformacion.checked)
	{
		mostrarInformacion = 'on';
	}
	else
	{
		mostrarInformacion = 'off';
	}

	$.ajax(
	{
		url: "/proc/add_comment/",
		type: "POST",
   	dataType: "json",
		timeout: 20000,
		data: "ident=" + ident + "&nombre=" + nombre + "&email=" + email + "&comentario=" + comentario + "&url=" + url
			+ "&mostrarInformacion=" + mostrarInformacion + "&codigo=" + codigo + "&code_ok=" + code_ok  + "&registrado=" + registrado  + "&ajax=S",
   	success: function(respuesta)
	   {
	   	OcultarMensajeError();

			enviandoComentario = false;

			if (respuesta.code == 'ok')
			{
				CaptchaImage.disable();
				recargaAjax('event', destino, 'nuevo_comentario', respuesta.pos);
			}
			else
			{
				CaptchaImage.activate(false).load();
				OcultarCargando();
				MensajeError(respuesta.type);
			}

			return false;
		},
		error: function(p1,p2,p3)
		{
			CaptchaImage.disable();
			OcultarCargando();
			LimpiarCampos();
			MensajeError('noncontacted', destino);
			enviandoComentario = false;
			return false;
		}
 	});
}

function EnviarComentarioAjax(idContenido, destino, name_form)
{
	if (!enviandoComentario)
	{
		enviandoComentario = true;
		if(ComprobarCamposEnvioComentariojQuery(name_form))
		{
			name_form.id_contenido.value = idContenido;
			MostrarCargando();
		   ProcesoEnvioComentarioAjax(idContenido, destino, name_form);
		}
		else
		{
			enviandoComentario = false;
			return false;
		}
	}
}

/* /ENVIO DE COMENTARIOS AJAX */
