diff --git a/javascript/fileHandler.js b/javascript/fileHandler.js
index c6dbe100c82cd1844bd3a364f8febc13f2414aea..6b7c335b1041092e89c18b907e9f98c6a640dbe6 100644
--- a/javascript/fileHandler.js
+++ b/javascript/fileHandler.js
@@ -4,27 +4,37 @@ function handleFile() {
     const selectedFile = fileHandler.files[0];
     
     if (selectedFile == null) {
-        return alert("No chosen file!")
+        return alert("No chosen file!");
     }
 
-    //console.log(selectedFile); // Printer bare selve filen til loggen
-
     fileHandler.value = "";
     document.getElementById("loadButton").style.backgroundColor = "orangered";
     
     var read = new FileReader();
     read.readAsDataURL(selectedFile);
     
-    var newLayer = L.geoJSON(null, {style: getStyle()})
+    var newLayer = L.geoJSON(null, {style: getStyle()});
+
+    var info = null;
 
     read.onloadend = function() {
         fetch(read.result).then(function(response) {
             return response.json();
         }).then(function(data) {
+            info = isInputMultiPolygon(data);
+            
+            if (info[0]) {
+                if (info[1] == "P") {
+                    data = inputMultiPolygon(data);
+                } else if (info[1] == "L") {
+                    data = inputMultiLine(data);
+                }
+            }
+
             newLayer.addData(data);
         })
     }
-
+    
     overlayMaps[selectedFile.name] = newLayer;
 
     updateSidebar();
diff --git a/javascript/turfFormatConverter.js b/javascript/turfFormatConverter.js
index 2b2e9d6bd07d7bd04a26dccfe4f74f0f3c9a7ca9..617d02d32464b72ddce571054a9cf42ebeff8e40 100644
--- a/javascript/turfFormatConverter.js
+++ b/javascript/turfFormatConverter.js
@@ -33,3 +33,98 @@ function multiPolygonToFeatureCollection(layer) {
     }
     return turf.featureCollection(features);
 }
+
+/*
+Håndtering av input-filer fra bruker for å få de på rett format egnet for turf-operasjoner
+*/
+
+function isInputMultiPolygon(layer) {
+    liste = layer["features"];
+    for (var i = 0; i < liste.length; i++) {
+        if (liste[i]["geometry"]["type"] == "MultiPolygon") {
+            return [true, "P"];
+        } else if (liste[i]["geometry"]["type"] == "MultiLineString") {
+            return [true, "L"];
+        }
+    }
+    return [false, null];
+}
+
+function turnList(liste) {
+    /*var more = false;
+    try {
+        var test = liste[0][0][0];
+        if (test != null) {
+            more = true;
+        }
+    } catch {
+
+        more = false;
+    }
+
+    if (more) {
+        var newList = [];
+        console.log("JA")
+        for (var i = 0; i < layer.length; i++) {
+            newList.push(turnList(liste[i]));
+        }
+    } else {*/
+    var newList = [];
+
+    for (var i = liste.length - 1; i > -1; i--) {
+        newList.push(liste[i]);
+    }
+    //}
+
+    return newList;
+}
+
+function inputMultiPolygon(layer) {
+    liste = layer["features"];
+    k = liste.length;
+
+    for (var i = 0; i < k; i++) {
+        if (liste[i]["geometry"]["coordinates"].length == 1) {
+            liste[i]["geometry"]["type"] = "Polygon";
+            liste[i]["geometry"]["coordinates"] = [turnList(liste[i]["geometry"]["coordinates"][0][0])];
+        }
+        else if (liste[i]["geometry"]["coordinates"].length > 1) {
+            var coordinates = liste[i]["geometry"]["coordinates"];
+            liste[i]["geometry"]["type"] = "Polygon";
+            liste[i]["geometry"]["coordinates"] = [turnList(coordinates[0][0])];
+            for (var j = 1; j < coordinates.length; j++) {
+                newElement = {"type": liste[i]["type"], "properties": liste[i]["properties"], "geometry": {"type": "Polygon", "coordinates": [turnList(coordinates[j][0])]}};
+                liste.push(newElement);
+            }
+        }
+    }
+
+    layer["features"] = liste;
+
+    return layer;
+}
+
+function inputMultiLine(layer) {
+    liste = layer["features"];
+    k = liste.length;
+
+    for (var i = 0; i < k; i++) {
+        if (liste[i]["geometry"]["coordinates"].length == 1) {
+            liste[i]["geometry"]["type"] = "LineString";
+            liste[i]["geometry"]["coordinates"] = liste[i]["geometry"]["coordinates"][0];
+        }
+        else if (liste[i]["geometry"]["coordinates"].length > 1) {
+            var coordinates = liste[i]["geometry"]["coordinates"];
+            liste[i]["geometry"]["type"] = "LineString";
+            liste[i]["geometry"]["coordinates"] = coordinates[0];
+            for (var j = 1; j < coordinates.length; j++) {
+                newElement = {"type": liste[i]["type"], "properties": liste[i]["properties"], "geometry": {"type": "LineString", "coordinates": coordinates[j]}};
+                liste.push(newElement);
+            }
+        }
+    }
+
+    layer["features"] = liste;
+
+    return layer;
+}