function base64_decode (s) {
	var base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split("");
	var base64inv = {}; for (var i = 0; i < base64chars.length; i++) { base64inv[base64chars[i]] = i; }
	var p = (s.charAt(s.length-1) == '=' ? (s.charAt(s.length-2) == '=' ? 'AA' : 'A') : ""); var r = ""; s = s.substr(0, s.length - p.length) + p;
	s = s.replace(new RegExp('[^'+base64chars.join("")+']', 'g'), "");
	for (var c = 0; c < s.length; c += 4) {
		var n = (base64inv[s.charAt(c)] << 18) + base64inv[s.charAt(c+3)] + (base64inv[s.charAt(c+1)] << 12) + (base64inv[s.charAt(c+2)] << 6);
		r += String.fromCharCode((n >>> 16) & 255, (n >>> 8) & 255, n & 255);
	}
	return r.substring(0, r.length - p.length);
}

familyaffairs = {
	init: function() {
		familyaffairs.externalizeLinks();
		familyaffairs.asafeLinks();
		familyaffairs.formsinit();
	},
	formsinit: function() {
		if(document.getElementById('bookingform') && location.hash.length > 1) {
			var cba = document.getElementById('artist-select').getElementsByTagName('input');
			for (var i=0; i<cba.length; i++) {
				if(cba[i].name == "artist-" + location.hash.substring(1)) {
					cba[i].checked = true;
				}
			}
		}
		if(document.getElementById('guestlistform') && location.hash.length > 1) {
			document.getElementById('guestlistform').elements['venue'].value = location.hash.substring(1);
		}
	},
	externalizeLinks: function() {
		var links = document.getElementsByTagName("a");
		var myHost = document.location.protocol + "//" + document.location.host;
		for (var i=0; i<links.length; i++) {
			if (links[i].href.indexOf("http") == 0 && links[i].href.indexOf(myHost) != 0 || links[i].href.indexOf(".pdf") > -1) {
				links[i].target = "_blank";
			}
		}

		// set galleryimg="no" for all images, IE only
		if (document.all) {
			var imgArr = document.getElementsByTagName("img");
			for (var i=0; i<imgArr.length; i++) {
				imgArr[i].galleryimg = "no";
			}
		}
	},
	asafeLinks: function() {
		var links = document.getElementsByTagName("a");
		for (var i=0; i<links.length; i++) {
			if (links[i].href.indexOf("asafe.php?a=") > -1) {
				var a = links[i].href.substring(links[i].href.indexOf("asafe.php?a=")+12);
				a = base64_decode(a);
				links[i].href = "mailto:" + a;
				links[i].innerHTML = a;
			}
		}
	}
}

/* (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig, see http://www.thefutureoftheweb.com/blog/adddomloadevent */
addDOMLoadEvent=(function(){var e=[],t,s,n,i,o,d=document,w=window,r='readyState',c='onreadystatechange',x=function(){n=1;clearInterval(t);while(i=e.shift())i();if(s)s[c]=''};return function(f){if(n)return f();if(!e[0]){d.addEventListener&&d.addEventListener("DOMContentLoaded",x,false);/*@cc_on@*//*@if(@_win32)d.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");s=d.getElementById("__ie_onload");s[c]=function(){s[r]=="complete"&&x()};/*@end@*/if(/WebKit/i.test(navigator.userAgent))t=setInterval(function(){/loaded|complete/.test(d[r])&&x()},10);o=w.onload;w.onload=function(){x();o&&o()}}e.push(f)}})();

addDOMLoadEvent(familyaffairs.init);