Break window and document up in Options
[skeletonkey.git] / options.js
index 5d3b447dffb3f3f1c083635cb1305bc5dab88ed2..4d2e2452ea2ddfb39713f7241eeb275b30472498 100644 (file)
 
 (function main() {
   document.addEventListener('DOMContentLoaded', function() {
-    var win = null;
+    var doc = null;
     if (window.location.pathname.indexOf('options.html') != -1)
-      win = window;
-    var controller = new SkeletonKeyOptions(win);
+      doc = document;
+    var controller = new SkeletonKeyOptions(doc, window);
   });
 })();
 
  * SkeletonKeyOptions is a controller for both retrieving settings and for
  * displaying the view.
  *
- * @param {Window} win The window and document on wich to operate.
+ * @param {HTMLDocument} doc The document on wich to operate.
+ * @param {Window} win The window to use for localStorage.
  */
-var SkeletonKeyOptions = SkeletonKeyOptions || function(win) {
+var SkeletonKeyOptions = SkeletonKeyOptions || function(doc, win) {
+  if (doc) {
+    this._maxLength = doc.getElementById('maxlength');
+    this._saveButton = doc.getElementById('save');
+    this._saveButton.onclick = this.onSave.bind(this);
+  }
   if (win) {
     this._storage = win.localStorage;
-    this._maxLength = win.document.getElementById('maxlength');
-    this._saveButton = win.document.getElementById('save');
-    this._saveButton.onclick = this.onSave.bind(this);
   }
 };