diff -r e1b6206813b4 -r f5907b1a1053 emailuis/emailui/data/html/header.js --- 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