emailuis/emailui/data/html/header.js
branchRCL_3
changeset 10 f5907b1a1053
parent 2 5253a20d2a1e
child 16 b5fbb9b25d57
--- a/emailuis/emailui/data/html/header.js	Fri Feb 19 22:37:30 2010 +0200
+++ b/emailuis/emailui/data/html/header.js	Fri Mar 12 15:41:14 2010 +0200
@@ -1,54 +1,79 @@
-function collapseHeader()
-	{
-	handleHeaderDisplay( "header_table", "table_initial" )
-	parent.document.getElementById('headerBody').rows = '10%,*';
+var collapsed = true;
+var displayImagesHidden = false;
+var previousPageYOffset = -1;
+var setScrollPositionInterval;
+
+function collapseHeader(sendEvent) {
+	if (sendEvent) {
+    	location.href = "cmail://collapseHeader/";
+    	}
+    collapsed = true;
+	handleHeaderDisplay( "header_table", "table_initial" );
+	updateHeader();
 	}
-	
-function expandHeader()
-	{
+
+function expandHeader(sendEvent) {
+	if (sendEvent) {
+	    location.href = "cmail://expandHeader/";
+    	}
+	collapsed = false;
 	handleHeaderDisplay( "table_initial", "header_table" )
-	parent.document.getElementById('headerBody').rows = '40%,*';
+	parent.document.getElementById('email_frameSet').rows = "40%, *";
 	}
-	
-function handleHeaderDisplay( tableToHide, tableToShow )
-	{
+
+function updateHeader() {
+    var rows = "40%, *";
+	if (collapsed) {
+    	if (displayImagesHidden || (parent.header_frame.g_autoLoadImages != 0) || (parent.hiddenCount == 0)) {
+            rows = "10%, *";
+        } else {
+            rows = "17%, *";
+	    }
+	}
+    parent.document.getElementById('email_frameSet').rows = rows;
+    }
+
+function handleHeaderDisplay( tableToHide, tableToShow ) {
 	document.getElementById(tableToShow).style.display = "";
 	document.getElementById(tableToHide).style.display = "none";
 	}
 
-var intervalHandler;
-function fetchMoreIfAtBottom()
-   {
-   var element = parent.body_frame.document.body;
+function init(scrollPos) {
+	if (document.getElementById("table_initial").style.display != "none") {
+    	    collapseHeader(false);
+	} else {
+	    expandHeader(false);
+	}
+    window.scrollTo(0, scrollPos);
+	setScrollPositionInterval = setInterval("updateScrollPosition()", 500);
+    }
+
+function displayImagesButtonPressed() {
+    hideDisplayImagesButton();
+    parent.restoreImages("body_frame");
+    requestDisplayImages();
+}
 
-   if ( element == null )
-      {
-      return;
-      }
-    
-    var viewport = parent.pageYOffset;
-    var elementHeight = element.offsetHeight;
-    var elementOffsetTop = element.offsetTop;
-    var screenHeight = screen.availHeight;
-    if ( elementOffsetTop + elementHeight - viewport < screenHeight )
-       {            
-       location.href = "cmail://body/" + viewport
-       clearInterval(intervalHandler);
-       }
+function hideDisplayImagesButton() {
+	document.getElementById("displayImagesTable").style.display = "none";
+    displayImagesHidden = true;
+    updateHeader();
+}
+
+function showDisplayImagesButton() {
+	document.getElementById("displayImagesTable").style.display = "";
+    displayImagesHidden = false;
+    updateHeader();
+}
+
+function requestDisplayImages() {
+    location.href = "cmail://displayImages/";
+}
+
+function updateScrollPosition() {
+    if (previousPageYOffset != parent.pageYOffset) {
+        previousPageYOffset = parent.pageYOffset;
+        location.href = "cmail://body/" + previousPageYOffset;
     }
-	   
-function scrollHandler()
-	{	
-	  intervalHandler = setInterval( "fetchMoreIfAtBottom()", 500);
-	} 
-				
-function init(scrollPos)
-    {
-    collapseHeader();
-    window.scrollTo(0, scrollPos);
-    //start a scrolling event which will trigger the check of bottom reached...
-    //this will take care of short document not does not need scrolling
-    scrollHandler();
-    } 
+}
 
-//onload=init;
\ No newline at end of file