includes/clientside/static/fadefilter.js
changeset 869 58bc29c14a4d
parent 694 43367c66d869
child 907 44851d7e9bda
--- a/includes/clientside/static/fadefilter.js	Sun Mar 15 11:15:16 2009 -0400
+++ b/includes/clientside/static/fadefilter.js	Wed Mar 18 11:35:28 2009 -0400
@@ -14,7 +14,7 @@
   if ( !opacVal )
     opacVal = 70;
   darkener_index[layerid] = ( typeof(darkener_index[layerid]) == 'number' ) ? darkener_index[layerid] + 1 : 1;
-  if(document.getElementById(layerid))
+  if(document.getElementById(layerid) && !document.getElementById(layerid).destroying)
   {
     document.getElementById(layerid).style.zIndex = getHighestZ() + 1;
     if(nofade)
@@ -38,7 +38,18 @@
         opacity(layerid, 0, opacVal, 1000);
       }
     }
-  } else {
+  }
+  else if(document.getElementById(layerid) && document.getElementById(layerid).destroying)
+  {
+    // fade in progress - abort
+    console.warn('Aborting fade');
+    abortFades();
+    changeOpac(opacVal, layerid);
+    document.getElementById(layerid).destroying = false;
+    return document.getElementById(layerid);
+  }
+  else
+  {
     w = getWidth();
     h = getHeight();
     var thediv = document.createElement('div');
@@ -103,9 +114,10 @@
     }
     else
     {
+      document.getElementById(layerid).destroying = true;
       var from = document.getElementById(layerid).myOpacVal;
       opacity(layerid, from, 0, 1000);
-      setTimeout("document.getElementById('" + layerid + "').style.display = 'none';", 1000);
+      setTimeout("if ( document.getElementById('" + layerid + "').destroying ) { document.getElementById('" + layerid + "').destroying = false; document.getElementById('" + layerid + "').style.display = 'none'; }", 1000);
     }
   }
   return document.getElementById(layerid);