diff --git a/js/animations.js b/js/animations.js
new file mode 100644
index 0000000..2681a88
--- /dev/null
+++ b/js/animations.js
@@ -0,0 +1,6 @@
+function change_victim(user) {
+	$(".victima").fadeOut(400, function() {
+		$(".victima").load('./ajax/victiminfo.php?userid=' + user.id);
+		$(".victima").fadeIn(400);
+	});
+}
diff --git a/js/utils.js b/js/utils.js
index 42f720a..5f22129 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -17,13 +17,6 @@
 		'success': function(data) {
 			$.notify('Resposta guardada', 'success');
 			console.log(data);
-			
-			if (msg == 'CONF KILL' || msg == 'CONF DEAD') {
-				$(".victima").fadeOut(400, function() {
-					$(".victima").load('./ajax/victiminfo.php?userid=' + user.id);
-					$(".victima").fadeIn(400);
-				});
-			}
 		},
 		'error': function(xhr, status, error) { 
 			$.notify('Error! Torna-ho a intentar o contacta amb l\'Andreu: +34681236024');
@@ -48,9 +41,24 @@
 	return dead || info.mort;
 }
 
-function change_victim(user) {
-	$(".victima").fadeOut(400, function() {
-		$(".victima").load('./ajax/victiminfo.php?userid=' + user.id);
-		$(".victima").fadeIn(400);
-	});
+function update_info(user) {
+	$.ajax({
+		url: "./ajax/checkrequests.php",
+		data: { id: user.id },
+		type: 'GET',
+		success: function(response, status, xhr) {
+			let info = JSON.parse(response);
+			
+			// Check if user is dead
+			if (!user.mort) user.mort = check_requests(info, user);
+			else location.reload();
+			
+			// Check if there has been a change of victim					
+			if (info.quimata != user.quimata) {
+				change_victim(info);
+				user.quimata = info.quimata;
+			}
+			
+			console.log(response);
+	}});	
 }
