GuruMeditation = (function(Error){
	// (C) Andrea Giammarchi - Mit Style License
	function GuruMeditation(message, detail){
		this.message = String(message);
		this.detail = String(detail || "0000AAC0");
		this.interval = 0;
		this.div = document.createElement("div");
	};
	function callback(callback, arguments){
		if(callback)
			callback.apply(this, arguments || []);
	};
	function message(){
		for(var	message = this.message.split(""), length = message.length; length < 8; length++)
			message.unshift("0");
		return	"Guru Meditation #".concat(message.join(""), ".", this.detail);
	};
	Error.show = function(){
		var	pre = document.createElement("pre"),
			div = this.div,
			border = true;
		if(this.interval)
			this.remove();
		pre.appendChild(document.createTextNode("Software Failure.   Press left mouse button to continue."));
		pre.appendChild(document.createElement("br"));
		pre.appendChild(document.createTextNode(message.call(this)));
		div.appendChild(pre);
		div.style.zIndex = Math.pow(2, 10) - 1;
		div.style.padding = "8px";
		div.style.margin = pre.style.margin = pre.style.padding = 0;
		div.style.position = "fixed";
		div.style.left = div.style.top = "50%";
		div.style.marginTop = "-54px";
		div.style.marginLeft = "-326px";
		div.style.width = "652px";
		div.style.height = "93px";
		pre.style.width = "636px";
		pre.style.height = "52px";
		pre.style.textAlign = "center";
		pre.style.fontFamily = "monospace";
		pre.style.fontSize = "11pt";
		pre.style.fontWeight = "bold";
		div.style.background = pre.style.background = "black";
		pre.style.color = "red";
		pre.style.paddingTop = "24px";
		pre.style.border = "8px solid red";
		this.interval = setInterval(function(){
			pre.style.border = border ? "8px solid black" : "8px solid red";
			border = !border;
		}, 500);
		(document.body || document.documentElement).appendChild(div);
		callback.apply(this, arguments);
		return	this;
	};
	Error.remove = function(){
		clearInterval(this.interval);
		this.interval = 0;
		this.div.parentNode.removeChild(this.div);
		callback.apply(this, arguments);
		return	this;
	};
	GuruMeditation.prototype = Error;
	return GuruMeditation;
})(new Error);