diff --git a/html/js/lazyload.js b/html/js/lazyload.js
new file mode 100644
index 0000000000..723d4e7e6b
--- /dev/null
+++ b/html/js/lazyload.js
@@ -0,0 +1,36 @@
+/*
+ * LibreNMS module to initialize and support lazy loading of graph images
+ *
+ * Copyright (c) 2015 Travis Hegner
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation, either version 3 of the License, or (at your
+ * option) any later version. Please see LICENSE.txt at the top level of
+ * the source code distribution for details.
+ */
+$(document).ready(function(){
+
+ //initialize jquery lazyload for all '.lazy' img tags
+ $("img.lazy").load(lazyload_done).lazyload({
+ effect: "fadeIn",
+ threshold: 300,
+ placeholder: ""
+ });
+
+
+ //re-initializes images loaded after an ajax call
+ $(document).ajaxStop(function() {
+ $("img.lazy").load(lazyload_done).lazyload({
+ effect: "fadeIn",
+ threshold: 300,
+ placeholder: ""
+ });
+ });
+});
+
+function lazyload_done() {
+ //Since RRD takes the width and height params for only the canvas, we must unset them
+ //from the final (larger) image to prevent the browser from resizing them.
+ $(this).removeAttr('width').removeAttr('height').removeClass('lazy');
+}
\ No newline at end of file