punbb/style/imports/minmax.js
changeset 0 f9ffdbd96607
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/punbb/style/imports/minmax.js	Wed Jul 11 21:01:48 2007 -0400
@@ -0,0 +1,84 @@
+// minmax.js - written by Andrew Clover <and@doxdesk.com>
+// Adapted for PunBB by Rickard Andersson and Paul Sullivan
+
+/*@cc_on
+@if (@_win32 && @_jscript_version>4)
+
+var minmax_elements;
+
+function minmax_bind(el) {
+	var em, ms;
+	var st= el.style, cs= el.currentStyle;
+
+	if (minmax_elements==window.undefined) {
+		if (!document.body || !document.body.currentStyle) return;
+		minmax_elements= new Array();
+		window.attachEvent('onresize', minmax_delayout);
+	}
+
+	if (cs['max-width'])
+		st['maxWidth']= cs['max-width'];
+
+	ms= cs['maxWidth'];
+	if (ms && ms!='auto' && ms!='none' && ms!='0' && ms!='') {
+		st.minmaxWidth= cs.width;
+		minmax_elements[minmax_elements.length]= el;
+		minmax_delayout();
+	}
+}
+
+var minmax_delaying= false;
+function minmax_delayout() {
+	if (minmax_delaying) return;
+	minmax_delaying= true;
+	window.setTimeout(minmax_layout, 0);
+}
+
+function minmax_stopdelaying() {
+	minmax_delaying= false;
+}
+
+function minmax_layout() {
+	window.setTimeout(minmax_stopdelaying, 100);
+	var i, el, st, cs, optimal, inrange;
+	for (i= minmax_elements.length; i-->0;) {
+		el= minmax_elements[i]; st= el.style; cs= el.currentStyle;
+
+		st.width= st.minmaxWidth; optimal= el.offsetWidth;
+		inrange= true;
+		if (inrange && cs.minWidth && cs.minWidth!='0' && cs.minWidth!='auto' && cs.minWidth!='') {
+			st.width= cs.minWidth;
+			inrange= (el.offsetWidth<optimal);
+		}
+		if (inrange && cs.maxWidth && cs.maxWidth!='none' && cs.maxWidth!='auto' && cs.maxWidth!='') {
+			st.width= cs.maxWidth;
+			inrange= (el.offsetWidth>optimal);
+		}
+		if (inrange) st.width= st.minmaxWidth;
+	}
+}
+
+var minmax_SCANDELAY= 500;
+
+function minmax_scan() {
+	var el;
+	for (var i= 0; i<document.all.length; i++) {
+		el= document.all[i];
+		if (!el.minmax_bound) {
+			el.minmax_bound= true;
+			minmax_bind(el);
+		}
+	}
+}
+
+var minmax_scanner;
+function minmax_stop() {
+	window.clearInterval(minmax_scanner);
+	minmax_scan();
+}
+
+minmax_scan();
+minmax_scanner= window.setInterval(minmax_scan, minmax_SCANDELAY);
+window.attachEvent('onload', minmax_stop);
+
+@end @*/