From 750eafcd2e0903943321f13e763a2efc1e42877e Mon Sep 17 00:00:00 2001
From: pnorcrss <peter.james.norcross@gmail.com>
Date: Wed, 31 Jul 2013 13:00:16 -0500
Subject: [PATCH 1/5] added and implemented _getSafeElemSize()

---
 src/viewer.js | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/viewer.js b/src/viewer.js
index 8ebbd2b3..55c4cce9 100644
--- a/src/viewer.js
+++ b/src/viewer.js
@@ -1107,6 +1107,17 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
     }
 });
 
+
+/**
+ * [_getSafeElemSize returns getElementSize(), but refuses to return NaN]
+ * @return {[NaN]}
+ * @private
+ */
+function _getSafeElemSize () {
+        var _nElementSize = $.getElementSize();
+        return isNaN(_nElementSize) ? 0 : _nElementSize;
+}
+
 /**
  * @function
  * @private
@@ -1121,7 +1132,7 @@ function openTileSource( viewer, source ) {
     }
 
     _this.canvas.innerHTML = "";
-    THIS[ _this.hash ].prevContainerSize = $.getElementSize( _this.container );
+    THIS[ _this.hash ].prevContainerSize = $._getSafeElemSize( _this.container );
 
 
     if( _this.collectionMode ){
@@ -1514,7 +1525,7 @@ function updateOnce( viewer ) {
 
     //viewer.profiler.beginUpdate();
 
-    containerSize = $.getElementSize( viewer.container );
+    containerSize = $._getSafeElemSize( viewer.container );
     if ( !containerSize.equals( THIS[ viewer.hash ].prevContainerSize ) ) {
         // maintain image position
         viewer.viewport.resize( containerSize, true );

From bf3dd7c0314d05987cd94e713ac596b8a396c5ad Mon Sep 17 00:00:00 2001
From: pnorcrss <peter.james.norcross@gmail.com>
Date: Wed, 31 Jul 2013 13:28:38 -0500
Subject: [PATCH 2/5] fixed _getSafeElemSize() calls

---
 src/viewer.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/viewer.js b/src/viewer.js
index 55c4cce9..ecb22a19 100644
--- a/src/viewer.js
+++ b/src/viewer.js
@@ -1132,7 +1132,7 @@ function openTileSource( viewer, source ) {
     }
 
     _this.canvas.innerHTML = "";
-    THIS[ _this.hash ].prevContainerSize = $._getSafeElemSize( _this.container );
+    THIS[ _this.hash ].prevContainerSize = _getSafeElemSize( _this.container );
 
 
     if( _this.collectionMode ){
@@ -1525,7 +1525,7 @@ function updateOnce( viewer ) {
 
     //viewer.profiler.beginUpdate();
 
-    containerSize = $._getSafeElemSize( viewer.container );
+    containerSize = _getSafeElemSize( viewer.container );
     if ( !containerSize.equals( THIS[ viewer.hash ].prevContainerSize ) ) {
         // maintain image position
         viewer.viewport.resize( containerSize, true );

From cb39fb7e3292c127f087f75a514e206db76ae9d8 Mon Sep 17 00:00:00 2001
From: pnorcrss <peter.james.norcross@gmail.com>
Date: Wed, 31 Jul 2013 14:01:46 -0500
Subject: [PATCH 3/5] fixed _getSafeElemSize()

---
 src/viewer.js | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/viewer.js b/src/viewer.js
index ecb22a19..80b16dd2 100644
--- a/src/viewer.js
+++ b/src/viewer.js
@@ -1113,9 +1113,13 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
  * @return {[NaN]}
  * @private
  */
-function _getSafeElemSize () {
-        var _nElementSize = $.getElementSize();
-        return isNaN(_nElementSize) ? 0 : _nElementSize;
+function _getSafeElemSize (oElement) {
+        var _oElementSize = $.getElementSize(oElement);
+
+        return new $.Point (
+            ( _oElementSize.x === 0 ? 1 : _oElementSize.x ),
+            ( _oElementSize.y === 0 ? 1 : _oElementSize.y )
+        );
 }
 
 /**

From e47210d0bd9f4d31f49c9e6e6c22b93c5d203262 Mon Sep 17 00:00:00 2001
From: pnorcrss <peter.james.norcross@gmail.com>
Date: Wed, 31 Jul 2013 14:10:44 -0500
Subject: [PATCH 4/5] refactored _getSafeElemSize()

---
 src/viewer.js | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/viewer.js b/src/viewer.js
index 80b16dd2..249ba52e 100644
--- a/src/viewer.js
+++ b/src/viewer.js
@@ -1114,12 +1114,12 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
  * @private
  */
 function _getSafeElemSize (oElement) {
-        var _oElementSize = $.getElementSize(oElement);
+        oElement = $.getElement( oElement );
 
-        return new $.Point (
-            ( _oElementSize.x === 0 ? 1 : _oElementSize.x ),
-            ( _oElementSize.y === 0 ? 1 : _oElementSize.y )
-        );
+        return new $.Point(
+                (oElement.clientWidth === 0 ? 1 : oElement.clientWidth),
+                (oElement.clientHeight === 0 ? 1 : oElement.clientHeight)
+                );
 }
 
 /**

From 26938ed10e0a0bf1a6bc07fac4c67c8a538ff8de Mon Sep 17 00:00:00 2001
From: pnorcrss <peter.james.norcross@gmail.com>
Date: Thu, 1 Aug 2013 12:11:33 -0500
Subject: [PATCH 5/5] cleaned up docBlock and tabs in _getSafeElemWidth()

---
 src/viewer.js | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/viewer.js b/src/viewer.js
index 249ba52e..9c1c7469 100644
--- a/src/viewer.js
+++ b/src/viewer.js
@@ -1109,17 +1109,19 @@ $.extend( $.Viewer.prototype, $.EventHandler.prototype, $.ControlDock.prototype,
 
 
 /**
- * [_getSafeElemSize returns getElementSize(), but refuses to return NaN]
- * @return {[NaN]}
+ * _getSafeElemSize returns getElementSize(), but refuses to return 0 for X or y,
+ * which was causing some calling operations in updateOnve and openTileSource to
+ * return NaN.
+ * @returns {point}
  * @private
  */
 function _getSafeElemSize (oElement) {
-        oElement = $.getElement( oElement );
+    oElement = $.getElement( oElement );
 
-        return new $.Point(
-                (oElement.clientWidth === 0 ? 1 : oElement.clientWidth),
-                (oElement.clientHeight === 0 ? 1 : oElement.clientHeight)
-                );
+    return new $.Point(
+        (oElement.clientWidth === 0 ? 1 : oElement.clientWidth),
+        (oElement.clientHeight === 0 ? 1 : oElement.clientHeight)
+    );
 }
 
 /**