var mplayer;

function doMenuOver(e, ele) {
	var ele = ele.getElementsByTagName("img")[0];
	ele.src = ele.src.replace(".gif","_over.gif");
}

function doMenuOut(e, ele) {
	var ele = ele.getElementsByTagName("img")[0];
	ele.src = ele.src.replace("_over.gif",".gif");
}

function pageLoaded(text,xmlResponse) {
	var nodeLeft = xmlResponse.getElementsByTagName("left")[0];
	var nodeRight = xmlResponse.getElementsByTagName("right")[0];
	var nodePage = xmlResponse.getElementsByTagName("page")[0];
	var nodeTitle = xmlResponse.getElementsByTagName("title")[0];
	ScrollBars.resetAreas();
	document.title = nodeTitle.firstChild.nodeValue;
	$("leftcontent").innerHTML = nodeLeft.firstChild.nodeValue;
	$("rightcontent").innerHTML = nodeRight.firstChild.nodeValue;
	$("page").className = nodePage.firstChild.nodeValue + "_page";
	initContent();
}

function topicLoaded(text,xmlResponse) {
	var nodeRight = xmlResponse.getElementsByTagName("right")[0];
	ScrollBars.resetAreas(false, true);
	$("rightcontent").innerHTML = nodeRight.firstChild.nodeValue;
	initContent();
}

function doError(code, text) {
	var rcol = $("rightcol");
	rcol.innerHTML = code + ": " + text;
}

function doLinkClick(e, ele) {
	var parts = ele.href.split("?");
	if (parts.length > 1) {
		query = parts[1];
	} else {
		query = "";
	}
	var ajax = new Ajax();
	ajax.params = "ac=" + new Date().getTime() + "&" + query;
	ajax.onloaded = pageLoaded;
	ajax.onerror = doError;
	ajax.execute("/getcontent.php");
	e.cancel();
}

function doIndexLinkClick(e, ele) {
	var parts = ele.href.split("?");
	if (parts.length > 1) {
		query = parts[1];
	} else {
		query = "";
	}
	var ajax = new Ajax();
	ajax.params = "ac=" + new Date().getTime() + "&" + query;
	ajax.onloaded = topicLoaded;
	ajax.onerror = doError;
	ajax.execute("/getcontent.php");
	e.cancel();
}


function playmp3(filename) {
	if (mplayer.isLoaded()) {
		var movie = mplayer.getMovie();
		movie.SetVariable("filename",filename)
 		movie.TCallLabel("/","play");
	}
}

function doEmailError(code, text) {
	$("mlistcontent").innerHTML = text;
}

function emailFeedback(text,xmlResponse) {
	var nodeResponse = xmlResponse.getElementsByTagName("response")[0];
	if (nodeResponse.getAttribute("result") == "success") {
		$("mlistbtn").disabled = true;
	}
	var nodeMsg = xmlResponse.getElementsByTagName("msg")[0];
	$("mlistcontent").innerHTML = nodeMsg.firstChild.nodeValue;
}

function addEmail(e, ele) {
	$("mlistcontent").innerHTML = "Please wait...";
	var ajax = new Ajax();
	ajax.params = "action=subscribe&mail=" + $("mlistinput").value;
	ajax.onloaded = emailFeedback;
	ajax.onerror = doEmailError;
	ajax.execute("/maillist.php");
	e.cancel();
}

function initContent() {
	ScrollBars.update();
	var ancs = document.getElementsByTagName("a");
	for (var i = 0, len = ancs.length; i < len; i++) {
		var anc = ancs[i];
		switch (anc.rel) {
			// Make external links open in new window
			case "external":
				anc.target = "_blank";
				break;
			case "internal":
				if (!anc.eventAdded) {
					EventMan.addEvent(anc,"click",doLinkClick);
					anc.eventAdded = true;
				}
				break;
			case "index":
				if (!anc.eventAdded) {
					EventMan.addEvent(anc,"click",doIndexLinkClick);
					anc.eventAdded = true;
				}
				break;
		}
	}

	var link = $("archivelink");
	if (link) {
		EventMan.addEvent(link,"click",showArchive);
	}

	var link = $("mlistlink");
	if (link) {
		EventMan.addEvent(link,"click",showMailingList);
	}

	var closebtn = $("archiveclosebtn");
	if (closebtn) {
		EventMan.addEvent(closebtn,"click",hidePanels);
	}

	var closebtn = $("mlistclosebtn");
	if (closebtn) {
		EventMan.addEvent(closebtn,"click",hidePanels);
	}

	var mlistform = $("mlistform");
	if (mlistform) {
		EventMan.addEvent(mlistform,"submit",addEmail);
	}

	if ($("archivepanel")) {
		Archive.init();
	}

	Gallery.init();
}

function hidePanels(fade) {
	$("archivepanel").style.visibility = "hidden";
	$("mlistpanel").style.visibility = "hidden";
}

function showArchive(e) {
	hidePanels();
	Archive.show();
	e.cancel();
}

function showMailingList(e) {
	hidePanels();
	var panel = $("mlistpanel");
	panel.style.visibility = "visible";
	$("mlistinput").focus();
	e.cancel();
}

function initPage() {
	ScrollBars.init();
	var menuEle = $("menu");
	var menubuttons = menuEle.getElementsByTagName("li");
	for (var i = 0, len = menubuttons.length; i < len; i++) {
		var btn = menubuttons[i].getElementsByTagName("a")[0];
		EventMan.addEvent(btn,"mouseover",doMenuOver);
		EventMan.addEvent(btn,"mouseout",doMenuOut);
	}
	initContent();

	if ($("player")) {
		mplayer = new FlashObject("player.swf", "mp3player", "114", "44", "7");
		mplayer.addParam("quality", "high");
		mplayer.addParam("wmode", "transparent");
		mplayer.addParam("base", "./")
		mplayer.addVar("noplaystr",noplaystr);
		mplayer.output("player");
	}
}

EventMan.addEvent(window, "load", initPage);