window.addEventListener ? window.addEventListener("load", shoutbox_init, false)
		: window.attachEvent("onload", shoutbox_init);

var d = document, sb_interval = 10000, sb_page = 0, sb_active = true;
var sb_request = false;

function shoutbox_init() {
	if (!d.getElementById || !d.createElement)
		return;

	if (!d.getElementById("shoutbox"))
		return false;

	getShoutbox(false);
}

function getShoutbox(noTimer) {
	if (!sb_active)
		return false;

	if (window.XMLHttpRequest) {
		sb_request = new XMLHttpRequest(); // Mozilla, Safari, Opera
	} else if (window.ActiveXObject) {
		try {
			sb_request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
		} catch (e) {
			try {
				sb_request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
			} catch (e) {
			}
		}
	}

	if (!sb_request) {
		alert("Kann keine XMLHTTP-Instanz erzeugen");
		return false;
	} else {
		var url = "/ajax/shoutbox.php?page=" + sb_page;
		sb_request.open('GET', url, true);

		sb_request.setRequestHeader('Content-Type',
				'application/x-www-form-urlencoded');
		sb_request.send(null);

		sb_request.onreadystatechange = interpretRequestShoutboxContent;
	}

	if (!noTimer)
		setTimeout(function() {
			getShoutbox(false);
		}, sb_interval);
}

// Request auswerten
function interpretRequestShoutboxContent() {

	switch (sb_request.readyState) {
	case 4:
		if (sb_request.status != 200) {
			// alert("Der Request wurde abgeschlossen, ist aber nicht
			// OK\nFehler:"+request.status);
		} else {
			var content = sb_request.responseText;

			d.getElementById("shoutbox").innerHTML = content;
		}
		break;
	default:
		break;
	}
}

function sb_changePage(value) {
	sb_page += value;

	if (sb_page < 0)
		sb_page = 0;

	getShoutbox(true);
}

function toggleSBForm() {
	if (d.getElementById("sb_form").style.visibility == "visible") {
		sb_active = true;
		d.getElementById("sb_form").style.visibility = "hidden";
	} else {
		sb_active = false;
		d.getElementById("sb_form").style.visibility = "visible";
	}
}

function addSB() {
	d.getElementById("sb_submit").style.visibility = "hidden";

	var text = d.getElementById("sb_text").value;

	if (window.XMLHttpRequest) {
		sb_request = new XMLHttpRequest(); // Mozilla, Safari, Opera
	} else if (window.ActiveXObject) {
		try {
			sb_request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
		} catch (e) {
			try {
				sb_request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
			} catch (e) {
			}
		}
	}

	if (!sb_request) {
		alert("Kann keine XMLHTTP-Instanz erzeugen");

		d.getElementById("sb_submit").style.visibility = "visible";
		return false;
	} else {
		var url = "/ajax/shoutbox.php?action=add&text=" + text;
		sb_request.open('GET', url, true);

		sb_request.setRequestHeader('Content-Type',
				'application/x-www-form-urlencoded');
		sb_request.setRequestHeader("charset", "utf-8");
		sb_request.send(null);

		sb_request.onreadystatechange = interpretRequestShoutboxAdd;
	}
}
function interpretRequestShoutboxAdd() {

	switch (sb_request.readyState) {
	case 4:
		if (sb_request.status != 200) {
			alert("Fehler beim schreiben");
		} else {
			var content = sb_request.responseText;

			sb_page = 0;
			sb_active = true;
			getShoutbox(true);
		}
		break;
	default:
		break;
	}
}

function validateSB() {
	d.getElementById("sb_submit").disabled = (d.getElementById("sb_text").value.length > 0) ? false
			: true;
	d.getElementById("sb_submit").style.visibility = (d
			.getElementById("sb_text").value.length > 0) ? "visible" : "hidden";
}
