	function onForumLoad() {
	// EventListener für dpl-Klick wird gesetzt
	/*try {
		document.getElementById("body").addEventListener("dblclick", translate, false);
	}
	catch(e) {
		// IE
		document.body.ondblclick = function() {
			var selection =  document.selection.createRange().text;
			startDictRequest(selection);
		}
	}
	
	document.getElementsByTagName("body")[0].oncontextmenu = function() {
		return false;
	}*/
	if (!message) {
		message = new Message();
	}
}

function translate(event) {
	var selection = window.getSelection();
	startDictRequest(selection);
}

function startDictRequest(str) {
	window.location.href = server + "/" + lp+"?lp="+lp+"&lang="+lang+"&searchLoc=0&cmpType=relaxed&sectHdr=on&spellToler=on&chinese=both&pinyin=diacritic&search="+str+"&relink=on";
}

/**
* Javascriptfunktionen für eine Message
*/
var message;
function Message() {
	this.url = server + "/forum/manageMessage.php?ajax=info";
	this.xslt = new Xslt();
	this.xPath = new XPath();
	this.xslt.init("/trainer/Xsl/AJAX/manageMessage.php");
	this.postBack = "managemessage";
	this.option = new Option();
}

Message.prototype = new Ajax();

Message.prototype.newMessage = function(event, idperson, nick, uid) {
	this.idperson = idperson;
	help(event,document.getElementById("newMessage"));
	document.getElementById("newMessageTo").innerHTML = nick;
	if (uid) {
		document.getElementById("uid").value = uid;
	}
	else {
		document.getElementById("uid").value = "";
	}
}

Message.prototype.init = function() {
	this.asyncron = false;
	var str = encodeURI("ajax=info&postBack="+this.postBack+"&value[action]=load&value[object]=messagelisting");
	this.startPostRequest(str);
	this.asyncron = true;
}

Message.prototype.loadPage = function(page) {
	if (page) {
		this.option.page = page;
	}
	
	var str = encodeURI("ajax=info&postBack="+this.postBack+"&value[action]=load&value[object]=messagelisting");
	str += encodeURI(this.option.toString());
	
	this.asyncron = false;
	this.startPostRequest(str);
	this.asyncron = true;
}

Message.prototype.writeMessage = function(event) {
	this.xslt.setParameter("mode", "search");
	var result = this.xslt.transformToDocument(this.xmlDocument);
	this.xslt.setParameter("mode", "");
	
	document.getElementById("newMessage").innerHTML = "";
	appendXSLTResult(document.getElementById("newMessage"), result);
	
	help(event,document.getElementById("newMessage"));
}

Message.prototype.personLoaded = function(xmlDoc) {
	var node;
	this.xPath.evaluate("//person/idperson", xmlDoc);
	if (node = this.xPath.iterateNext()) {
		this.idperson = node.firstChild.data;
		this.uid = null;
	}
	this.xslt.setParameter("mode", "search");
	var result = this.xslt.transformToDocument(xmlDoc);
	this.xslt.setParameter("mode", "");
	
	document.getElementById("newMessage").innerHTML = "";
	appendXSLTResult(document.getElementById("newMessage"), result);
}

Message.prototype.search = function(event) {
	this.startPostRequest(postBackString(event, "writeMessage"));
}

Message.prototype.reply = function(event) {
	var node;
	this.xPath.evaluate("//message[string(uid) = '"+this.uid+"']/person/nick", this.xmlDocument);
	if (node = this.xPath.iterateNext()) {
		this.newMessage(event, this.idperson, node.firstChild.data, this.uid);
		document.getElementById("viewMessage").style.display = "none";
	}
}

Message.prototype.send = function(event) {
	this.startPostRequest(postBackString(event, "writeMessage") + "&value[idperson]=" + this.idperson);
	clearSubForm(document.writeMessage);
	this.idperson = null;
	this.uid = null;
	document.getElementById("uid").value = "";
	document.getElementById("newMessage").style.display = "none";
}

Message.prototype.viewMessage = function(uid, folder) {
	this.folder = folder;
	this.uid = uid;
	this.startPostRequest("ajax=info&postBack=managemessage&value[object]=message&value[action]=load&value[uid]=" + uid+"&value[folder]="+this.folder);
}

Message.prototype.deleteMessage = function(uid, folder) {
	this.folder = folder;
	this.uid = uid;
	this.startPostRequest("ajax=info&postBack=managemessage&value[object]=message&value[action]=delete&value[uid]=" + uid+"&value[folder]="+this.folder);
}

/**
* Ergebniss des Ajax-Requests wird behandelt
* Statische Funktion
*/
Message.prototype.update = function() {
	
	if(message.xmlHttpReq.readyState == 4) {
		if (message.xmlHttpReq.responseXML 
			&& message.xmlHttpReq.responseXML.documentElement 
			&& message.xmlHttpReq.responseXML.documentElement.firstChild) {
			
			// Thread ist als bookmark gespeichert worden
			if (message.xmlHttpReq.responseXML.documentElement.firstChild.nodeName == "message" && message.xmlHttpReq.responseXML.documentElement.getAttribute("load") == "true") {
				message.messageLoaded(message.xmlHttpReq.responseXML);
			}
			if (message.xmlHttpReq.responseXML.documentElement.firstChild.nodeName == "messagelisting" && message.xmlHttpReq.responseXML.documentElement.getAttribute("load") == "true") {
				message.xmlDocument = message.xmlHttpReq.responseXML;
				message.messageListingLoaded();
			}
			if (message.xmlHttpReq.responseXML.documentElement.getAttribute("search") == "true") {
				message.personLoaded(message.xmlHttpReq.responseXML);
			}
		}
	}
}

// Nachricht wird angezeigt
Message.prototype.messageLoaded = function(xmlDoc) {
	this.xslt.setParameter("mode", "view");
	var result = this.xslt.transformToDocument(xmlDoc);
	this.xslt.setParameter("mode", "");
	
	document.getElementById("viewMessage").innerHTML = "";
	appendXSLTResult(document.getElementById("viewMessage"), result);
	document.getElementById("viewMessage").style.display = "block";
}

// Nachricht wird angezeigt
Message.prototype.messageListingLoaded = function() {
	this.xslt.setParameter("mode", "preview");
	var result = this.xslt.transformToDocument(this.xmlDocument);
	this.xslt.setParameter("mode", "");
	
	document.getElementById("previewmessages").innerHTML = "";
	appendXSLTResult(document.getElementById("previewmessages"), result);
	//document.getElementById("viewMessage").style.display = "block";
}
