currentStyle = 'default';
selectedStyleSheet = '';
currentBg = '';
currentFg = '';
currentLetterSpace = '0.0em';
currentLineHeight = 1.23;
currentWidth = 'fixed';
smallWidth = '67em';
realWidth = smallWidth;
controlWidth = true;
currentFont = '100%';
currentFontFamily = 'default';
toolsOpen = false;
changed = false;
fontFamilies = new Array();
fontFamilies['default'] = '';
fontFamilies['sansserif'] = 'Verdana, Arial, sans-serif';
fontFamilies['serif'] = 'Times New Roman, serif';
fontFamilies['cursive'] = 'Comic Sans MS, cursive';
fontFamilies['monospace'] = 'Courier New, monospace';

var rememberSize = false;
currentSizeX = '';
currentSizeY = '';

function accessPopup(url, name, features) {
	savePrefs();
	
	var result = window.open(url, name, features);
    
    if (result == false) {
        return true;
    } else {
        return false;
    }
    
}

function showHideTools() {
	if (toolsOpen) {
		document.getElementById('accesspanel').style.display = '';
		//document.getElementById('accessopen').innerHTML = 'Show Tools';
		toolsOpen = false;
	} else {
		document.getElementById('accesspanel').style.display = 'inline';
		//document.getElementById('accessopen').innerHTML = 'Hide Tools';
		toolsOpen = true;
	}
}

function changeFont() {
	currentFontFamily = document.getElementById('font').value;
	setPrefs();
}

function determineStyle() {
	var colours = currentStyle.split('/');
	currentFg = colours[0];
	if (colours.length > 1) currentBg = colours[1];
	
	switch (currentFg) {
		case 'yellow':
			selectedStyleSheet = 'Yellow on Blue';
			break;
		case 'white':
			selectedStyleSheet = 'White on Black';
			break;
		case 'black':
			selectedStyleSheet = 'Black on White';
			break;
		default:
			selectedStyleSheet = 'Default';
			currentBg = '';
			break;
	}
}

function changeBg() {
	currentStyle = document.getElementById('fgbg').value;
	determineStyle();
	setPrefs();
}

function changeStyleSheet() {
	var i, link;
	var links = document.getElementsByTagName("link");
	for (i = 0 ; i < links.length ; i++) {
		if ((links[i].getAttribute("rel").indexOf("style") != -1) && (links[i].getAttribute("title"))) {
			if (links[i].getAttribute("title") == selectedStyleSheet) {
				links[i].disabled = false;
			} else {
				links[i].disabled = true;
			}
		}
	}
}

function changeWidth() {
	if (currentWidth == 'fixed') {
		currentWidth = 'flow';
	} else {
		currentWidth = 'fixed';
	}
	setPrefs();
}

function determineLineHeight() {
	var tmpLs = new Number(currentLetterSpace.substring(0, currentLetterSpace.indexOf('em')));
	currentLineHeight = 1.23 + (tmpLs * 2);
}

function changeLetterSpaceUp() {
	var tmpLs = new Number(currentLetterSpace.substring(0, currentLetterSpace.indexOf('em')));
	tmpLs += 0.1;
	if (tmpLs > 0.5) tmpLs = 0.5;
	currentLetterSpace = tmpLs + 'em';
	setPrefs();
}

function changeLetterSpaceDown() {
	var tmpLs = new Number(currentLetterSpace.substring(0, currentLetterSpace.indexOf('em')));
	tmpLs -= 0.1;
	if (tmpLs < 0.0) tmpLs = 0.0;
	currentLetterSpace = tmpLs + 'em';
	setPrefs();
}

function changeFontUp() {
	var tmpFont = new Number(currentFont.substring(0, currentFont.indexOf('%')));
	tmpFont += 20;
	if (tmpFont > 200) tmpFont = 200;
	currentFont = tmpFont + '%';
	setPrefs();
}

function changeFontDown() {
	var tmpFont = new Number(currentFont.substring(0, currentFont.indexOf('%')));
	tmpFont -= 20;
	if (tmpFont < 65) tmpFont = 65;
	currentFont = tmpFont + '%';
	setPrefs();
}

function reset() {
	currentBg = '';
	currentFg = '';
	currentStyle = 'default';
	currentWidth = 'fixed';
	currentFont = '100%';
	currentFontFamily = 'default';
	currentLetterSpace = '0.0em';
	setDropDown();
	determineStyle();
	setPrefs();
	location.reload();
}

function setDropDown() {
	var dropdown = document.getElementById('fgbg');
	if (dropdown != null) {
		dropdown = dropdown.options;
		for (i = 0 ; i < dropdown.length ; i++) {
			if (dropdown[i].value == currentStyle) dropdown[i].selected = 'true';
		}
		dropdown = document.getElementById('font').options;
		for (i = 0 ; i < dropdown.length ; i++) {
			if (dropdown[i].value == currentFontFamily) dropdown[i].selected = 'true';
		}
	}
}

function setPrefs() {
	determineStyle();
	determineLineHeight();
	changeStyleSheet();
	if (currentWidth == 'fixed') {
		realWidth = smallWidth;
	} else {
		realWidth = '96%';
	}
	
	document.body.style.fontFamily = fontFamilies[currentFontFamily];
	var spans = document.getElementById('pagebody').getElementsByTagName('span');
	for (i = 0 ; i < spans.length ; i++) {
		spans[i].style.fontFamily = fontFamilies[currentFontFamily];
	}
	
	document.body.style.backgroundColor = currentBg;
	
	if (navigator.userAgent.indexOf("Gecko") != -1) {
		var ps = document.getElementById('pagebody').getElementsByTagName('p');
		for (i = 0 ; i < ps.length ; i++) {
			ps[i].style.fontSize = null;
		}
	}
	
	document.getElementById('layoutcontainer').style.fontSize = currentFont;
	
	if (navigator.userAgent.indexOf("Gecko") != -1) {
		var ps = document.getElementById('pagebody').getElementsByTagName('p');
		for (i = 0 ; i < ps.length ; i++) {
			if (document.defaultView.getComputedStyle(ps[i], "").getPropertyValue("position") != "static") {
				ps[i].style.fontSize = document.defaultView.getComputedStyle(ps[i], "").getPropertyValue("font-size");
			}
		}
	}
	
	if (controlWidth) {
		var el = document.getElementById('layoutcontainer');
		el.style.width = realWidth;
		el.style.minmaxWidth = realWidth;
	}
	
	document.body.style.letterSpacing = currentLetterSpace;
	document.body.style.fontFamily = fontFamilies[currentFontFamily];
	document.body.style.lineHeight = currentLineHeight;
	
	if (rememberSize) {
		if ((currentSizeX != '') && (currentSizeY != '')) {
			window.resizeTo(currentSizeX, currentSizeY);
		}
	}
	
	if (window.minmax_layout) minmax_layout();
}

function savePrefs() {
	var expdate = new Date();
	var cookieExpires = new Date();
	cookieExpires.setTime(expdate.getTime() + 365 * (24 * 60 * 60 * 1000));
	document.cookie = 'currentStyle=' + currentStyle + '; expires=' + cookieExpires.toGMTString();
	document.cookie = 'currentWidth=' + currentWidth + '; expires=' + cookieExpires.toGMTString();
	document.cookie = 'currentFont=' + currentFont + '; expires=' + cookieExpires.toGMTString();
	document.cookie = 'currentLetterSpace=' + currentLetterSpace + '; expires=' + cookieExpires.toGMTString();
	document.cookie = 'currentFontFamily=' + currentFontFamily + '; expires=' + cookieExpires.toGMTString();
	
	if (rememberSize) {
		if ((currentSizeX < windowWidth()-40) || (currentSizeX > windowWidth()+40)) {
			document.cookie = 'currentSizeX=' + windowWidth() + '; expires=' + cookieExpires.toGMTString();
		}
			
		if ((currentSizeY < windowHeight()-60) || (currentSizeY > windowHeight()+60)) {
			document.cookie = 'currentSizeY=' + windowHeight() + '; expires=' + cookieExpires.toGMTString();
		}
	}
}

function windowWidth() {
	if (window.outerWidth) {
		return window.outerWidth;
	} else {
		return document.documentElement.clientWidth + 10;
	}
}

function windowHeight() {
	if (window.outerHeight) {
		return window.outerHeight;
	} else {
		return document.documentElement.clientHeight + 30;
	}
}

function loadPrefs(theWidth) {
	if (theWidth != null) {
		smallWidth = theWidth;
		realWidth = smallWidth;
	}
	var currentPrefs = document.cookie.split(';');
	for (i = 0 ; i < currentPrefs.length ; i++) {
		var pref = currentPrefs[i].replace(' ', '').split('=');
		if (pref[0].indexOf('current') == 0) {
			eval(pref[0] + ' = \'' + pref[1] + '\'');
		}
	}
	selectedStyleSheet = 'Default'; // IE both sucks and blows
	changeStyleSheet();
	var tmpLs = new Number(currentLetterSpace.substring(0, currentLetterSpace.indexOf('em')));
	currentLineHeight = 1.23 + (tmpLs * 2);
	setDropDown();
	determineStyle();
	setPrefs();
}
