metanohi/prestatic/aesthetics.js

69 lines
2.1 KiB
JavaScript

/*
To the extent possible under law, Niels Serup has waived all copyright and
related or neighboring rights to this file. This file is available under the
Creative Commons Zero 1.0 license, see
http://creativecommons.org/publicdomain/zero/1.0/
This JavaScript file contains trivial code. It is required for aesthetic
reasons only. Not loading it will not make a website depending on it less
functional.
*/
get_window_size = function() {
if (window.innerHeight)
return [window.innerHeight, window.innerWidth];
else if (self.innerHeight)
return [self.innerHeight, self.innerWidth];
else if (document.documentElement && document.documentElement.clientHeight)
return [document.documentElement.clientHeight,
document.documentElement.clientWidth];
else if (document.body)
return [document.body.clientHeight, document.body.clientWidth];
};
is_screen_media = function() {
return (document.getElementsByTagName('link')[0].getAttribute('media').indexOf(
'screen') != -1 || (document.styleSheets &&
(document.styleSheets[0].media.mediaText.indexOf(
'screen') != -1 || document.styleSheets[0].media.indexOf(
'screen') != -1)));
};
set_min_height = function() {
var ws, wh, ww, h;
ws = get_window_size();
wh = ws[0];
ww = ws[1];
h = metadiv.offsetHeight + 15;
metadiv.style.position = 'absolute';
metadiv.style.bottom = '5px';
metadiv.style.width = (contentdiv.offsetWidth - 22) + 'px';
contentdiv.style.paddingBottom = h + 'px';
h = wh - h - menudiv.offsetHeight - 145;
contentdiv.style.minHeight = h + 'px';
};
set_logo_width = function() {
var ws;
ws = get_window_size();
ww = ws[1];
logodiv.style.width = ww + 'px';
};
adjust_sizes = function() {
if (!is_screen_media())
return;
set_min_height();
set_logo_width();
};
window.addEventListener('load', function(event){
menudiv = document.getElementById('menu');
contentdiv = document.getElementById('content');
metadiv = document.getElementById('metadata');
logodiv = document.getElementById('logo');
adjust_sizes();
}, false);