diff --git a/gui/html/detect.js b/gui/html/detect.js
index 6f4fe1c..f5f0f64 100644
--- a/gui/html/detect.js
+++ b/gui/html/detect.js
@@ -18,23 +18,23 @@
         browserName = "Microsoft Internet Explorer";
         fullVersion = nAgt.substring(verOffset + 5);
     }
-    // In Chrome, the true version is after "Chrome" 
+    // In Chrome, the true version is after "Chrome"
     else if ((verOffset = nAgt.indexOf("Chrome")) != -1) {
         browserName = "Chrome";
         fullVersion = nAgt.substring(verOffset + 7);
     }
-    // In Safari, the true version is after "Safari" or after "Version" 
+    // In Safari, the true version is after "Safari" or after "Version"
     else if ((verOffset = nAgt.indexOf("Safari")) != -1) {
         browserName = "Safari";
         fullVersion = nAgt.substring(verOffset + 7);
         if ((verOffset = nAgt.indexOf("Version")) != -1) fullVersion = nAgt.substring(verOffset + 8);
     }
-    // In Firefox, the true version is after "Firefox" 
+    // In Firefox, the true version is after "Firefox"
     else if ((verOffset = nAgt.indexOf("Firefox")) != -1) {
         browserName = "Firefox";
         fullVersion = nAgt.substring(verOffset + 8);
     }
-    // In most other browsers, "name/version" is at the end of userAgent 
+    // In most other browsers, "name/version" is at the end of userAgent
     else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {
         browserName = nAgt.substring(nameOffset, verOffset);
         fullVersion = nAgt.substring(verOffset + 1);
@@ -52,17 +52,9 @@
         majorVersion = parseInt(navigator.appVersion, 10);
     }
 
-    //document.write(''
-    // +'Browser name  = '+browserName+'<br>'
-    // +'Full version  = '+fullVersion+'<br>'
-    // +'Major version = '+majorVersion+'<br>'
-    // +'navigator.appName = '+navigator.appName+'<br>'
-    // +'navigator.userAgent = '+navigator.userAgent+'<br>'
-    //)
-
-	if (browserName == "Safari" && fullVersion == "5.1.7") {
-		return false;
-	} else {
-		return true;
-	}
+    if (browserName == "Safari" && fullVersion == "5.1.7") {
+	return false;
+    } else {
+	return true;
+    }
 }
