var pageInitialised = false;

function initialisePage() {
	if (pageInitialised) return;
	showTextSizeSelector();
	var textSize = getSavedTextSize();
	if (textSize) {
		setTextSizeForElements(textSize);
	}
	else {
		changeTextSize("textSize0Selector");
	}
	pageInitialised = true;
}

function hideWhileLoading() {
	var formFrame = document.getElementById("contactForm");
	if (!formFrame) return;
	if (formFrame.readyState == "loading") {
		formFrame.style.visibility = "hidden";
	}
}

function formatContactForm() {
	initialisePage();  //  IE does not do this automatcally when page is loaded
	var formlink = document.getElementById("formlink");
	if (!formlink) return;
	var formFrame = document.getElementById("contactForm");
	if (!formFrame) return;
	formFrame.onload = formatContactForm;
	formFrame.onreadystatechange = hideWhileLoading;
	var formDoc = formFrame.contentDocument || formFrame.contentWindow.document;
	formFrame.style.visibility = "visible";
	if (formDoc.URL.toLowerCase().indexOf("formsubmitted.htm") > 0) { // request has been submitted
		var responseMessage = formDoc.getElementById("responseMessage").cloneNode(true);
		formDoc.body.innerHTML = "";
		formDoc.body.appendChild(responseMessage);
		return;
	}
	var contentEl = formDoc.getElementById("tinc_content");
	if (!contentEl) return
	formlink.innerHTML = formlink.textContent || formlink.innerText;
	contentEl.firstChild.style.display = "none"; // hide title
	var elements = formDoc.getElementsByTagName("*");	
	for (var i = 0; i < elements.length; i++) {
		var el = elements[i];
		if (el.style || el.className) {
			el.style.backgroundColor = "white";
			el.style.border = "solid black 0px";
		}
		if (el.tagName.toLowerCase() == "form") {
			el.style.width = (formFrame.width - 50) + "px";
		}
		if ((el.tagName.toLowerCase() == "input") ||
		    (el.tagName.toLowerCase() == "textarea")) {
			el.style.border = "solid gray 1px";
		}
		if ((el.className.toLowerCase() == "buttonframe") ||
			(el.className.toLowerCase() == "fieldframe")) {
			el.style.width = (formFrame.width - 40) + "px";
		}
	}
	contentEl.style.width = (formFrame.width - 30) + "px";
	contentEl.style.border = "solid gray 1px";
	formFrame.style.display = "block"; 
	formFrame.height = 300; 
}

function showTextSizeSelector() {
	var selectorTable = document.getElementById("TextSizeSelector");
	if (!selectorTable) return;
	selectorTable.style.visibility = "visible";
}

function changeTextSize(selectorElName) {
	var selectorEl = document.getElementById(selectorElName);
	if (!selectorEl) return;
	var textSize = null;
	if (selectorEl.currentStyle) // IE
		textSize = selectorEl.currentStyle.fontSize;
	else if (window.getComputedStyle)  // Mozilla
		textSize = window.getComputedStyle(selectorEl, null).fontSize;
	if (!textSize) return;
	setTextSizeForElements(textSize);
	saveTextSize(textSize);
}

function setTextSizeForElements(textSize) {
	setTextSizeForElementClass(textSize, "TextObject");
	setTextSizeForElementClass(textSize, "VariableSizedText");
}

function setTextSizeForElementClass(textSize, className) {
	var elements = document.getElementsByTagName("*");
	for (var i = 0; i < elements.length; i++) {
		if (elements[i].className == className) {
			elements[i].style.fontSize = textSize;
		}
	}
}

 function getSavedTextSize() {
		var name = "TextSize";
		if (document.cookie.length > 0){
			begin = document.cookie.indexOf(name + "=");
			if (begin != -1){
				begin += name.length + 1;
				end = document.cookie.indexOf(";", begin);
				if (end == -1) end = document.cookie.length;
				return unescape(document.cookie.substring(begin, end));
			}
		}
		return null;
	}

	function saveTextSize(value) {
		var expiryDate = new Date ();
		expiryDate.setTime(expiryDate.getTime() + (365 * 24 * 3600 * 1000));
		document.cookie = "TextSize" + "=" + escape(value) + "; expires=" + expiryDate.toGMTString();
	}
