// NewLife Example client-side configuration

function StatusbalkTekst(txt) {
	window.status = txt;
	setTimeout("StatusbalkLeeg()",3000); // ms
}

function StatusbalkLeeg() {
	window.status="";
}

/* Scott Andrew's */
function cfgAddEvent(obj, evType, fn) {
	if (obj.addEventListener){
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

function cfgGetActiveStyleSheet() {
	if (!document.getElementsByTagName) { return null; }
	var i;
	var links = document.getElementsByTagName("link");

	for(i = 0; i < links.length; i++) {
		var a = links[i];
		var rel = a.getAttribute('rel');
		var title = a.getAttribute('title');

		if (rel.indexOf("style") != -1 && title && !a.disabled) {
			return title;
		}
	}
	return null;
}

function cfgGetCookie(name, useLang) {
	var langString = useLang ? cfgGetLang() : "";
	var nameEQ = name + langString + "=";
	var ca = document.cookie.split(';');

	for(var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') {
			c = c.substring(1, c.length);
		}
		if (c.indexOf(nameEQ) == 0) {
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

function cfgGetDocTextSize() {
	if (!document.getElementsByTagName) { return 0; }
	var size = 0;
	var body = document.getElementsByTagName('body')[0];

	if (body.style && body.style.fontSize) {
		size = body.style.fontSize;
	}
	else if (typeof(getComputedStyle) != 'undefined') {
		size = getComputedStyle(body,'').getPropertyValue('font-size');
	}
	else if (body.currentStyle) {
		size = body.currentStyle.fontSize;
	}
	return size;
}

function cfgGetLang() {
	var langString = "";
	if (document.documentElement) {
		langString = document.documentElement.lang;
		if (langString != "") {
			langString = "-" + langString;
		}
	}
	return langString;
}

function cfgGetPreferredStyleSheet() {
	if (!document.getElementsByTagName) { return null; }
	var i, a;
	var links = document.getElementsByTagName("link");

	for (i = 0; i <  links.length; i++) {
		a = links[i];
		var rel = a.getAttribute('rel');
		var title = a.getAttribute('title');

		if (rel.indexOf("style") != -1 && rel.indexOf("alt") == -1 && title) {
			return title;
		}
	}
	return null;
}

function cfgGetComputedStyle(node,styleProp) {
	if (typeof(window.getComputedStyle) != 'undefined') {
		return document.defaultView.getComputedStyle(node,null).getPropertyValue(styleProp);
	}
	else if (node.currentStyle) {
		return node.currentStyle[styleProp];
	}
	return null;
}

function cfgSetCookie(name,value,days,useLang) {
	var langString = useLang ? cfgGetLang() : "";
	var cookie = name + langString + "=" + value + ";";
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		cookie += " expires=" + date.toGMTString() + ";";
	}
	cookie += " path=/";
	document.cookie = cookie;
}

function cfgGetNodeVisible(node) {
	return (cfgGetComputedStyle(node,'visibility') == "visible");
}

function cfgSetNodeVisible(node,show) {
	node.style.visibility = (show ? 'visible' : 'collapse');
}

function cfgSetTextSize(chgsize,rs) {
	if (!document.getElementsByTagName) { return; }
	var ssize = cfgGetDocTextSize();
	if (!ssize) {
		ssize = "12pt";
	}
	var newSize;
	var sunit = ssize.match(/[^0-9]*.$/g);
	switch (chgsize) {
	case 'incr':
		newSize = parseInt(ssize) + 1;
		if (newSize >= 100) { newSize=100; }
		newSize += sunit;
		break;

	case 'decr':
		newSize = parseInt(ssize) - 1;
		if (newSize < 3) { newSize=3; }
		newSize += sunit;
		break;

	case 'reset':
		if (rs) {newSize = rs;} else {newSize = "12pt";}
		break;

	case 'clear':
		document.getElementsByTagName('html')[0].style.fontSize = "";
		document.getElementsByTagName('body')[0].style.fontSize = "";
		cfgSetCookie("cfg-textsize", '12pt', -1, true);
		return;

	default:
		newSize = cfgGetCookie("cfg-textsize", true);
		if (!newSize) {
			newSize = ssize;
		}
		break;
	}

	if (newSize != ssize) {
		document.getElementsByTagName('html')[0].style.fontSize = newSize;
		document.getElementsByTagName('body')[0].style.fontSize = newSize;
		cfgSetCookie("cfg-textsize", newSize, 365, true);
	}
}

function cfgSetLinkTargets() {
	if (!document.getElementsByTagName || !document.getElementById("content")) return;
	var anchors = document.getElementById("content").getElementsByTagName("a");
    var re = new RegExp('(^| )external( |$)','i');
    var rd = new RegExp('(^| )download( |$)','i');
    var links = cfgGetCookie("cfg-links");
    var el = (links == "new");
    var dl = (el || (links == "down"));
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href")	&& anchor.getAttribute("rel")) {
			if (dl && rd.test(anchor.getAttribute("rel"))) {
				// open external link in download window
				anchor.target = "download";
			}
			else if (el && re.test(anchor.getAttribute("rel"))) {
				// open external link in new window
				anchor.target = "_blank";
			}
		}
	}
}

function cfgSetStyleSheet(newtitle) {
	// this function exists solely to
	// distinguish when the user chooses a new
	// theme. IE does not properly reflow the page
	// when a new theme is chosen and we must force
	// a reload when IE users choose a new theme.

	cfgSetStyleSheetInternal(newtitle);
	if (navigator.userAgent.indexOf('MSIE') != -1 &&
		!window.opera &&
		navigator.product != 'Gecko') {
		history.go(0);
		echo('go!');
	}
}

function cfgSetStyleSheetInternal(newtitle) {
	if (!document.getElementsByTagName) { return; }
	var i;
	var savedtitle = '';
	var links = document.getElementsByTagName("link");

	if (!newtitle) {
		newtitle = savedtitle = cfgGetCookie("cfg-style", false);
	}
	if (!newtitle) {
		newtitle = cfgGetPreferredStyleSheet();
	}
	var activesheet = null;
	for (i = 0; i < links.length; i++) {
		var a = links[i];
		var rel = a.getAttribute('rel');
		var title = a.getAttribute('title');

		if (rel.indexOf("style") != -1) {
			if (title || newtitle == 'none') { a.disabled = true; }
			else if (newtitle == 'basis') { a.disabled = false; }
			if (title == newtitle) {
				activesheet = a;
			}
		}
	}
	if (activesheet) {
		activesheet.disabled = false;
	}
	if (newtitle != savedtitle) {
		cfgSetCookie("cfg-style", newtitle, 365, false);
	}
}

function cfgSetTheme() {
	cfgSetStyleSheetInternal();
	cfgSetTextSize();
	cfgSetLinkTargets();
	return true;
}


function getInnerSize() {
  var width = 0, height = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    width = window.innerWidth;
    height = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    width = document.documentElement.clientWidth;
    height = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    width = document.body.clientWidth;
    height = document.body.clientHeight;
  }
  //window.alert( 'width=' + width +' height='+height);
  return [ width, height];
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

// main
// conditioneel stylesheet 800x600 invoegen
if (window.screen.width <= 800) {
	document.write('<link rel="stylesheet" href="style/norm800.css" type="text/css"/>');
}
// activate preferences
cfgAddEvent(window,'load',cfgSetTheme);
