function initToc(file)
{
	var x = "/" + file, xl = x.length;
	var toc = toElem("toc"), p = toc.parentNode, doc = toElem("content");
	p.removeChild(toc);
	p.insertBefore(toc, doc);
	toc.style.display = "block";
	toc = toc.getElementsByTagName("A");
	for(var i = 0; i < toc.length; i++)
	{
		if(toc[i].href.slice(-xl) == x)
		{
			toc[i].className = "current";
			break;
		}
	}
}

var addEvent = (window.attachEvent ?
	function(o, e, f) { o.attachEvent("on" + e, function() { return f(event); }) }
	:
	function(o, e, f) { o.addEventListener(e, f, false) }
);


function toElem(a0)
{
	if(typeof a0 == "string")
	{
		var a1 = document.getElementById(a0);
		if(a1) return a1;
		a1 = document.getElementsByName(a0);
		if(a1.length > 0) return a1[0];
		a0 = null;
	}
	return a0;
}

function addCssClass(e, n)
{
	var cc = e.className.split(" ");
	for(var i = 0, l = cc.length; i < l; i++) { if(cc[i] == n) return; }
	cc.push(n);
	e.className = cc.join(" ");
}

function removeCssClass(e, n)
{
	var cc = e.className.split(" ");
	for(var i = 0, l = cc.length; i < l; i++) { if(cc[i] == n) { cc.splice(i, 1); e.className = cc.join(" "); return; } }
}

var TextBoxWithPrompt =
{
	onfocus: function(e)
	{
		e = e || window.event;
		var i = e.srcElement || e.target, p = i.getAttribute("prompt");
		if(i.value == p) { i.value = ""; removeCssClass(i, "nodata"); }
	},

	onblur: function(e)
	{
		e = e || window.event;
		var i = e.srcElement || e.target, p = i.getAttribute("prompt");
		if(i.value == "" || i.value == p) { addCssClass(i, "nodata"); i.value = p; }
	},

	onsubmit: function(e, i)
	{
		e = e || window.event;
		var f = e.srcElement || e.target, i = f.elements[i], p = i.getAttribute("prompt");
		if(i.value == p) i.value = "";
	},

	submit: function(i)
	{
		return function(e) { TextBoxWithPrompt.onsubmit(e, i); }
	},

	init: function(f, i)
	{
		i = i ? f.elements[i] : toElem(f);
		f = i.form;
		var a = document.activeElement;
		addEvent(i, "focus", this.onfocus);
		addEvent(i, "blur", this.onblur);
		addEvent(f, "submit", this.submit(i.name));
		if(!a || a != i) this.onblur({ target: i });
	}
}
