﻿var minWidth = 980, refWidth = 980, maxWidth = 1200;
var colWidth = 192, stretchable = 0;
var bordersOn = 0;

var stretchableElement = [
	"full-width", "half-width", "padding-inset", "padding-inset-b", "col-b", "col-c", "normal",
	"col1", "col2", "col3", "col4", "col5", "col6"
];
var width;

function stretch() {
	stretchTo(minWidth);
	var w = getWidth();
	if (w > minWidth && w <= maxWidth) stretchTo(w);
	if (w > maxWidth) stretchTo(maxWidth);
}

function getWidth() {
	return document.body.offsetWidth;
}

function stretchTo(w) {
	var q = 1.0*w/refWidth;
	var dw = bordersOn ? 12 : 1;
	var a = document.getElementsByTagName("*");
	if (stretchableElement && !width) width = new Array(stretchableElement.length);
	for (var i = 0; a && i < a.length; i++) {
		for (var j = 0; stretchableElement && j < stretchableElement.length; j++) {
			if (containsWord(a[i].className, stretchableElement[j])) {
				if (!width[j]) width[j] = a[i].offsetWidth;
				if (stretchableElement[j] == "normal")
					a[i].style.width = (getWidth() > minWidth ? getWidth() : minWidth) + "px";
				else if (stretchableElement[j] == "padding-inset")
					a[i].style.width = (w-88-colWidth*4)/3 + "px";
				else a[i].style.width = width[j]*q + "px";
			}
		}
	}
}

function renderDoors() {
	var a = document.getElementsByTagName("a");
	for (var i = 0; a && i < a.length; i++) {
		if (containsWord(a[i].className, "door")) {
			a[i].onmouseover = function() {
				var span = this.getElementsByTagName("span")[0];
				span.className = "active";
				var img = this.getElementsByTagName("img")[0];
				if (img) img.src = img.src.replace("closed", "open");
			};
			a[i].onmouseout = function() {
				var span = this.getElementsByTagName("span")[0];
				span.className = "";
				var img = this.getElementsByTagName("img")[0];
				if (img) img.src = img.src.replace("open", "closed");
			};
		}
	}
}

function containsWord(s, w) {
	return s ? s.match(new RegExp("(^| )" + w + "( |$)")) : false;
}

function init() {
	stretchable = (document.body.className == "stretchable");
	if (stretchable) stretch();
	renderDoors();
}

function refresh() {
	if (stretchable) stretch();
}

window.onload = init;
window.onresize = refresh;
