diff --git a/src/pages/profile_page.html b/src/pages/profile_page.html
index 8968999..defd8db 100644
--- a/src/pages/profile_page.html
+++ b/src/pages/profile_page.html
@@ -178,11 +178,16 @@
+
+
+
-
-
diff --git a/static/javascript/resize_photo_dialouge.js b/static/javascript/resize_photo_dialouge.js
new file mode 100644
index 0000000..5aa7497
--- /dev/null
+++ b/static/javascript/resize_photo_dialouge.js
@@ -0,0 +1,52 @@
+const resize_photo_box = document.getElementById("resize_photo_box");
+
+// Drag handling
+var startXOffset = 0,
+ startYOffset = 0;
+
+function calculateOffsets() {
+ const yOffset = startYOffset + (currentY - y_start);
+ const xOffset = startXOffset + (currentX - x_start);
+
+ var top = bitmap.height / 2 - yOffset - 175;
+ if (top > 0) top = 0;
+
+ var bottom = -(bitmap.height / 2) - yOffset + 10 + 175;
+ if (bottom < 0) bottom = 0;
+
+ var left = bitmap.width / 2 - xOffset - 175;
+ if (left > 0) left = 0;
+
+ var right = -(bitmap.width / 2) - xOffset + 10 + 175;
+ if (right < 0) right = 0;
+ return { x: xOffset + left + right, y: yOffset + top + bottom };
+}
+
+var mouseClicked = false;
+resize_photo_box.addEventListener("mousemove", () => {
+ if (!mouseClicked) return;
+
+ offsets = calculateOffsets();
+
+ y_top = new_profile_image.style.setProperty("--x-offset", offsets.x + "px");
+ new_profile_image.style.setProperty("--y-offset", offsets.y + "px");
+});
+
+resize_photo_box.addEventListener("mousedown", () => {
+ x_start = currentX;
+ y_start = currentY;
+ mouseClicked = true;
+ set_cursor_state(CURSOR_GRABBING);
+});
+
+resize_photo_box.addEventListener("mouseup", () => {
+ offsets = calculateOffsets();
+
+ startXOffset = offsets.x;
+ startYOffset = offsets.y;
+});
+
+document.body.addEventListener("mouseup", () => {
+ mouseClicked = false;
+ set_cursor_state(CURSOR_NORMAL);
+});