var dropdowntimeout;
var ajaxDropdown = function(name, file, noquery) {
	clearTimeout(dropdowntimeout);
	start = function() {
		if(!noquery) { var q = $(name + "_input").value; }
		new Ajax.Updater(name + "_list", file, {
			method: 'post',
			evalScripts: true,
			parameters: { q: q },
			onCreate: function() { wait($(name + "_list"), "<p>Liste wird geladen...</p>"); $(name + "_list").show(); }
		});
	}
	dropdowntimeout = setTimeout("start()", 500);
}
var ajaxDropdownBlur = function(name) {
	clearTimeout(dropdowntimeout);
	start = function() {
		if(!$(name + "_hidden").value) { ajaxDropdownSelect(name, $(name + "_input").value, $(name + "_input").value); }
		else { ajaxDropdownSelect(name, $(name + "_hidden").value, $(name + "_input").value); }
	}
	dropdowntimeout = setTimeout("start()", 100);
}
var ajaxDropdownSelect = function(name, value, label) {
	if($(name + "_hidden")) { $(name + "_hidden").value = value; }
	$(name + "_input").value = label;
	$(name + "_list").hide();
}
var calendar = function(target, y, m, d, doafter) {
	new Ajax.Updater("overlaybox", "snippets/tools/calendar.php", {
			method: 'post',
			evalScripts: true,
			parameters: { target: target, doafter: doafter, y: y, m: m, d: d },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "436px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var clearOverlay = function() { $("overlay").style.display = "none"; }
var commentCompose = function(tablename, itemid, type) {
	new Ajax.Updater("overlaybox", "snippets/tools/commentarea/compose.php", {
			method: 'post',
			evalScripts: true,
			parameters: { tablename: tablename, itemid: itemid, type: type },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "600px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var composeMessage = function(to) {
	new Ajax.Updater("overlaybox", "snippets/community/messages/compose.php", {
			method: 'get',
			evalScripts: true,
			parameters: { to: to },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "600px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var editText = function(id) {
	new Ajax.Updater("overlaybox", "snippets/tools/texts/edit.php", {
			method: 'post',
			evalScripts: true,
			parameters: { id: id },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "600px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var favArtistUi = function(artistid) {
	new Ajax.Updater("favartist_" + artistid, "snippets/tools/artists/fav/ui.php", {
			method: 'post',
			evalScripts: true,
			parameters: { artistid: artistid },
			onCreate: function() { wait("favartist_" + artistid); }
		});
}
var friendrq = function(to) {
	new Ajax.Updater("overlaybox", "snippets/community/friends/request.php", {
			method: 'get',
			evalScripts: true,
			parameters: { to: to },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "400px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var geoSetPos = function(q, target) {
	new Ajax.Updater("overlaybox", "snippets/tools/geo/setpos.php", {
			method: 'get',
			evalScripts: true,
			parameters: { q: q, target: target },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "600px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var geoShowPos = function(q, header) {
	new Ajax.Updater("overlaybox", "snippets/tools/geo/showpos.php", {
			method: 'get',
			evalScripts: true,
			parameters: { q: q, header: header },
			onComplete: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "600px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var myPresenceUi = function(eventid) {
	new Ajax.Updater("mypresence[" + eventid + "]", "snippets/tools/presence/ui.php", {
			method: 'post',
			evalScripts: true,
			parameters: { eventid: eventid },
			onCreate: function() { wait("mypresence[" + eventid + "]"); }
		});
}
var keepOnline = function() {
	new Ajax.Request("snippets/community/keep_online.php", {
			method: 'post',
			evalScripts: true
		});
}
var previewText = function(text) {
	new Ajax.Updater("overlaybox", "snippets/tools/previewtext.php", {
			method: 'post',
			evalScripts: true,
			parameters: { text: text },
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "400px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
var rate = function(table, id, rating) {
	new Ajax.Request("snippets/tools/rating/rate.php", {
			method: 'post',
			evalScripts: true,
			parameters: { table: table, id: id, rating: rating },
			onSuccess: function() { ratingBox(table, id); }
		});
}
var ratingHover = function(table, id, rating, icon) {
	for(i = 1; i <= 5; i++) {
		$("rate_" + table + "_" + id + "_" + i).src = "imgs/icons/" + icon + ".dimmed";
	}
	for(i = 1; i <= rating; i++) {
		$("rate_" + table + "_" + id + "_" + i).src = "imgs/icons/" + icon;
	}
}
var ratingBox = function(table, id) {
	new Ajax.Updater("rbox_" + table + "_" + id, "snippets/tools/rating/ratingbox.php", {
			method: 'post',
			evalScripts: true,
			parameters: { table: table, id: id },
			onCreate: function() { wait("rbox_" + table + "_" + id); }
		});
}
var refreshComments = function(tablename, itemid, offset, type) {
	if(!type) { type = ""; }
	new Ajax.Updater("comments_" + tablename + "_" + itemid, "snippets/tools/commentarea/comments" + type + ".php", {
		method: 'post',
		evalScripts: true,
		parameters: { tablename: tablename, itemid: itemid, offset: offset },
		onCreate: function() { wait("comments_" + tablename + "_" + itemid); }
	});
}
var replaceHeaders = function() {
	var headers = $$('h1');
	for(i = 0; i < headers.length; i++) {
		var label = headers[i].innerHTML;
		headers[i].replace("<img src=\"php/imgs/h1.php?t=" + escape(label) + "\" class=\"h1\" alt=\"" + label + "\" />");
	}
}
var savePresence = function(eventid) {
	new Ajax.Request("snippets/tools/presence/save.php", {
			method: 'post',
			evalScripts: true,
			parameters: $("presenceform[" + eventid + "]").serialize(),
			onCreate: function() { $("presencecheckbox[" + eventid + "]").replace("<img src=\"imgs/icons/wait16trans.gif\" class=\"ajaxWait\" />"); },
			onComplete: function() { myPresenceUi(eventid); }
		});
}
var showImage = function(file) {
	new Ajax.Updater("overlaybox", "snippets/tools/image.php", {
			method: 'get',
			evalScripts: true,
			parameters: { file: file },
			onCreate: function() { wait("overlaybox"); },
			onComplete: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "600px"; }
		});
}
var switchview = function(elementid) {
	if($(elementid).className == "vTiles") { $(elementid).className = "vBiglist"; }
	if($(elementid).className == "vBiglist") { $(elementid).className = "vList"; }
	if($(elementid).className == "vList") { $(elementid).className = "vTiles"; }
}
var wait = function(elementid) {
	$(elementid).innerHTML = "<span class=\"wait\"><img src=\"imgs/icons/wait16trans.gif\" /></span>";
}
var writeNews = function() {
	new Ajax.Updater("overlaybox", "snippets/news/compose.php", {
			method: 'get',
			evalScripts: true,
			onSuccess: function() { $("overlay").style.display = "block"; $("overlaybox").style.width = "400px"; },
			onCreate: function() { wait("overlaybox"); }
		});
}
setInterval("keepOnline()", 60000);