// JavaScript Document
// highlight current link
function quoteMeta(str) {
	str = str.replace( /([^A-Za-z0-9])/g , "\\$1" );
	return str;
}
function urlFormatting (url) {
	// skip js links
	if (url.match(/^javascript:/gi)) {
		return url;
	}	
	var location = document.location.toString();
	location = location.replace(/^([\s\S]*\/)[^\/]*$/i, "$1");
	var domain = location.replace(/(^(http|https):\/\/[^\/]*)[\s\S]*/i, '$1');
	url = url.replace(/^\//gi, domain+'/');
	url = url.replace(/^([^#][^:"]*)$/gi, location+'$1');
	while(url.match(/([^:][^\/])\/[^\/]*\/\.\.\//gi)) {
		url = url.replace(/([^:][^\/])\/[^\/]*\/\.\.\//gi, '$1/');
	}
	// ensure that everything after # is not URL encoded since this seems to break IE
	url = url.replace(/^[^#]*#[\s\S]+$/g, function (x){s=x.split('#');return s[0]+'#'+unescape(s[1]);});
	// ensure that white space is encoded in links as this breaks older browsers, but we won't enforce any other encoding.
	url = url.replace(/^[^"#]*/g, function (x){return x.replace(/ /g, '%20');});
	return url;
}
function highlightCurrentLinks () {
	var a = document.getElementsByTagName('A');
	var n = a.length;
	var loc = document.location.toString();
	for (var i=0; i<n; i++) {
		var h = urlFormatting(a[i].getAttribute('href'));
		if (loc.substr(0, h.length)==h||loc+'index.html'==h) {
			a[i].className = 'current';	
			a[i].removeAttribute('href');
		}
	}
}
// hide email addresses
function writeMailLink(domain, user, subject, text) {
	if (subject) {
		domain += '?subject='+subject;
	}
	if (!text) {
		text = user+'@'+domain;
	}
	document.write('<a href="mailto:'+user+'@'+domain+'">'+text+'</a>');
}