//Lokalisierung des Datepickers
jQuery(function($){
        $.datepicker.regional['de'] = {clearText: 'löschen', clearStatus: 'aktuelles Datum löschen',
                closeText: 'schließen', closeStatus: 'ohne Änderungen schließen',
                prevText: '&#x3c;zurück', prevStatus: 'letzten Monat zeigen',
                nextText: 'Vor&#x3e;', nextStatus: 'nächsten Monat zeigen',
                currentText: 'heute', currentStatus: '',
                monthNames: ['Januar','Februar','März','April','Mai','Juni',
                'Juli','August','September','Oktober','November','Dezember'],
                monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
                'Jul','Aug','Sep','Okt','Nov','Dez'],
                monthStatus: 'anderen Monat anzeigen', yearStatus: 'anderes Jahr anzeigen',
                weekHeader: 'Wo', weekStatus: 'Woche des Monats',
                dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
                dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
                dayStatus: 'Setze DD als ersten Wochentag', dateStatus: 'Wähle D, M d',
                dateFormat: 'dd.mm.yy', firstDay: 1, 
                initStatus: 'Wähle ein Datum', isRTL: false};
        $.datepicker.setDefaults($.datepicker.regional['de']);
});

var monthNames = new Array('Januar','Februar','März','April','Mai','Juni', 'Juli','August','September','Oktober','November','Dezember');

$(document).ready(function()
{
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		GENERAL
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	$('#loginform #loginPassword').focus(function()
	{
		if($(this).val() == "Passwort")
		{
			$(this).val("");
		}
	});
	
	$('#loginform #loginPassword').blur(function()
	{
		if($(this).val() == "")
		{
			$(this).val("Passwort");
		}
	});
	
	$('#loginform #loginEmail').focus(function()
	{
		if($(this).val() == "E-Mail")
		{
			$(this).val("");
		}
	});
	
	$('#loginform #loginEmail').blur(function()
	{
		if($(this).val() == "")
		{
			$(this).val("E-Mail");
		}
	});
	
	$('h2').wrap('<div class="h2wrapper" />');
	
	$('.promtmessage').dialog(
	{
		buttons:
		{
			Ok: function()
			{
				$(this).dialog('close');
			}
		}
	});
	
	$('#tabs').tabs();
	
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		MESSAGES
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	//Nachrichten ein-/ausklappen
	$(".message .name").click(function()
	{
		//Wenn geschlossen
		if($(this).find(".arrow").attr('src') == '/images/icons/32/bullet_toggle_plus.png')
		{
			$(this).parent().parent().parent().addClass('opened');
			
			//Pfeil drehen
			$(this).find(".arrow").attr('src', '/images/icons/32/bullet_toggle_minus.png').attr('alt', '[schließen]');
			
			//Fettdruck entfernen
			$(this).parent().parent().parent().find(".unread").css("font-weight", "normal");
			
			//Als gelesen markieren
			var request_url = "messages.php?action=markread&id=" + $(this).parent().parent().parent().attr('id').substr(7);
			$.get(request_url + "&" + nocaching());
		}
		else
		{
			$(this).parent().parent().parent().removeClass('opened');
			
			//Pfeil drehen
			$(this).find(".arrow").attr('src', '/images/icons/32/bullet_toggle_plus.png').attr('alt', '[öffnen]');
		}
		
		//Ein-/Ausklappen
		$(this).parent().parent().parent().find('.text').slideToggle(300);
	});
	
	//Nachrichten löschen
	$(".message .delete").click(function()
	{
		var confirmed = confirm("Soll die Nachricht wirklich gelöscht werden?");
		
		if(confirmed)
		{
			//Ausblenden
			$(this).parent().parent().parent().fadeOut(400);
			
			//Löschen
			var request_url = "messages.php?action=delete&id=" + $(this).parent().parent().parent().attr('id').substr(7);
			$.get(request_url + "&" + nocaching());
			
			window.setTimeout("checkNumMessages()", 600);
		}
	});
	
	//Antworten
	$(".message .answer").click(function()
	{
		//Einblenden
		$('#answerform' + $(this).parent().parent().parent().attr('id').substr(7)).slideToggle(300);
	});
	
	//Alle Nachrichten löschen
	$('#deleteAll').click(function()
	{
		var confirmed = confirm("Sollen wirklich alle Nachrichten gelöscht werden?");
		
		if(confirmed)
		{
			$('.message:visible').each(function()
			{
				//Ausblenden
				$(this).fadeOut(400);
				
				//Löschen
				var request_url = "messages.php?action=delete&id=" + $(this).attr('id').substr(7);
				$.get(request_url + "&" + nocaching());
			});
			
			$(this).fadeOut(400);
			
			window.setTimeout("checkNumMessages()", 600);
		}
	});
	
	//Antwort autocomplete
	if($('.newmessageform #to').size() > 0)
	{
		$('.newmessageform #to').autocomplete(
		{
			source: userNames
		});
	}
	
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		DATEPICKER BIRTHDAY
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	//Initialisieren des Datepickers
	$("#birthday").datepicker(
	{
		dateFormat: 'dd. mm. yy',
		changeYear: true,
		yearRange: 'c-20:2010',
		maxDate: '0'
	});
	
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		BENUTZERVERWALTUNG SORTIERUNG
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	$("#usercontroltable .delete").click(function()
	{
		$user = $(this).parent().parent();
		$id = $user.attr('id').substr(4);
		$.get("usercontrol.php?action=delete&id=" + $id + "&" + nocaching(), function(data)
		{
			if(data == "1")
			{
				$user.hide();
			}
		});
	});
	
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		GRUPPENVERWALTUNG SORTIERUNG
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	//Reihenfolge der Kategorien
	$(".groupsortable").sortable(
	{
		cancel: 'a, input, li > ul',
		axis: 'y',
		tolerance: 'pointer',
		connectWith: '.deletethem'
	});
	
	//Reihenfolge der Foren in einer Kategorie
	$(".groupcatsortable").sortable(
	{
		cancel: 'a, input',
		axis: 'y',
		tolerance: 'pointer',
		connectWith: '.groupcatsortable, .deletethem',
		receive: function(event, ui)
		{
			var id = ui.item.attr('id');
			var teile = id.split("_");
			var id2 = ui.item.parent().parent().attr('id');
			var teile2 = id2.split("_");
			teile[1] = teile2[1];
			id = teile.join("_");
			ui.item.attr('id', id);
		}
	});
	
	//"Mülleimer"
	$(".deletethem").sortable(
	{
		tolerance: 'pointer',
		items: '',
		receive: function(event, ui)
		{
			ui.item.hide();
		}
	});
	
	//Neue Kategorie anlegen
	$("#new_groupcat").click(function()
	{
		var request = "groupcontrol.php?action=newgroupcat";
		$.get(request + "&" + nocaching(), function(data)
		{
			$(".groupsortable").append('\n'
				+ '						<li id="groupcat_' + data + '" class="s_groupcat">'
				+ '							<input class="catname" type="text" name="catname_' + data + '" value="Neue Kategorie" />'
				+ '							<input class="catchoosable" type="checkbox" name="catchooseable_{temp:echo $groupcat->id;}" value="1" /> wählbar'
				+ '							<ul class="groupcatsortable">'
				+ '							</ul>'
				+ '						</li>');
			
			$(".groupcatsortable:last").sortable(
			{
				cancel: 'a, input',
				axis: 'y',
				tolerance: 'pointer',
				connectWith: '.groupcatsortable, .deletethem',
				receive: function(event, ui)
				{
					var id = ui.item.attr('id');
					var teile = id.split("_");
					var id2 = ui.item.parent().parent().attr('id');
					var teile2 = id2.split("_");
					teile[1] = teile2[1];
					id = teile.join("_");
					ui.item.attr('id', id);
				}
			});
		});
	});
	
	//Neue Gruppe in letzter Kategorie anlegen
	$("#new_group").click(function()
	{
		if($(".groupsortable").children().size() > 0)
		{
			var request = "groupcontrol.php?action=newgroup&parent=";
			var id = $(".groupsortable").children(":last").attr('id');
			var teile = id.split("_");
			var parent = teile[1];
			request += parent;
			
			$.get(request + "&" + nocaching(), function(data)
			{
				if(data != "false")
				{
					$(".groupcatsortable:last").append('\n'
						+ '										<li id="groupcat_' + parent + '_' + data + '" class="s_group">'
						+ '											<input class="groupname" type="text" name="groupname_' + data + '" value="Neue Gruppe" />'
						+ '											<a href="groupcontrol.php?action=editgroup&id=' + data + '">Bearbeiten</a>'
						+ '										</li>');
				}
			});
		}
		else
		{
			alert("Es ist noch keine Kategorie vorhanden. Lege erst eine Kategorie an!");
		}
	});
	
	//Speichern der Struktur der Gruppen
	$("#save_groupstructure").click(function()
	{
		//Reihenfolge der Kategorien
		var request = "groupcontrol.php?action=savestructure&" + $(".groupsortable").sortable('serialize');
		var teile;
		//Reihenfolge der Gruppen pro Kategorie
		$(".groupcatsortable").each(function()
		{
			request += "&" + $(this).sortable('serialize');
		});
		//Namen der Kategorien
		$(".s_groupcat").each(function()
		{
			teile = $(this).attr('id').split("_");
			request += "&cat" + teile[1] + "=" + $(this).children(".catname").val();
			if($(this).children(".catchoosable").attr("checked") == true)
			{
				request += "&chooseable" + teile[1] + "=1";
			}
			else
			{
				request += "&chooseable" + teile[1] + "=0";
			}
			if($(this).children(".catmultiple").attr("checked") == true)
			{
				request += "&multiple" + teile[1] + "=1";
			}
			else
			{
				request += "&multiple" + teile[1] + "=0";
			}
		});
		//Namen der Gruppen
		$(".s_group").each(function()
		{
			teile = $(this).attr('id').split("_");
			request += "&group" + teile[2] + "=" + $(this).children(".groupname").val();
		});
		//Kategorien löschen
		$(".deletethem").children(".s_groupcat").each(function()
		{
			teile = $(this).attr('id').split("_");
			request += "&deletecat[]=" + teile[1];
		});
		//Gruppen löschen
		$(".deletethem").children(".s_group").each(function()
		{
			teile = $(this).attr('id').split("_");
			request += "&deletegroup[]=" + teile[2];
		});
		//Absenden des Ganzen
		$.get(request + "&" + nocaching(), function(data)
		{
			alert(data);
		});
	});
	
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		MODULCONTROL
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	$(".moduleList .sortable").sortable(
	{
		tolerance: 'pointer',
		connectWith: '.moduleList, .sortable',
		placeholder: 'module placeholder',
		forcePlaceholderSize: true
	});
	
	$("#activeModules .sortable").bind("sortupdate", function(event, ui)
	{
		$.get("modulecontrol.php?action=savemodules&" + $(this).sortable('serialize') + "&" + nocaching());
	});
	
	/* ---------------------------------------------------------------------------------------------------------------------------------
																		SETTINGS
	----------------------------------------------------------------------------------------------------------------------------------*/
	
	//Avatar löschen
	$("#deleteavatar").click(function()
	{
		var confirmed = confirm("Soll dein Avatar wirklich gelöscht werden?");
		
		if(confirmed)
		{
			$.get("settings.php?action=deleteavatar&" + nocaching(), function(data)
			{
				$("#avatar_image").replaceWith("keiner");
			});
		}
	});
	
	$new_avatar_form = $('#upload_avatar').dialog(
	{
		'autoOpen': false
	});
	
	$new_avatar_button = $('#new_avatar_button').click(function ()
	{
		$new_avatar_form.dialog('open');
	});
	
	setupTextareaButtonbarSmileys();
	
	statusbar();
	hideAll();
	setTimeout("opened()", 500);
});

	/* ---------------------------------------------------------------------------------------------------------------------------------
																		SONSTIGE FUNKTIONEN
	----------------------------------------------------------------------------------------------------------------------------------*/
		
//Versteckt alle Nachrichten
function hideAll()
{
	//Alle Nachrichten einklappen
	$(".message .text, .answerform").hide();
	
	//Pfeile drehen
	$(".message .arrow").attr('src', '/images/icons/32/bullet_toggle_plus.png').attr('alt', '[öffnen]');
}

//Zeigt Nachricht an
function opened()
{
	if($('.message.opened').size() > 0)
	{
		//Pfeil drehen
		$('.message.opened .arrow').attr('src', '/images/icons/32/bullet_toggle_minus.png').attr('alt', '[schließen]');
		
		//Fettdruck entfernen
		$('.message.opened .unread').css("font-weight", "normal")
		
		//Als gelesen markieren
		var request_url = "messages.php?action=markread&id=" + $('.message.opened').attr('id').substr(7);
		$.get(request_url + "&" + nocaching());
		
		//Ein-/Ausklappen
		$('.message.opened .text').slideToggle(300);
		$('.message.opened').removeClass('opened');
	}
}

//Prüft, ob noch Nachrichten angezeigt werden und blendet gegebenenfalls Meldung ein
function checkNumMessages()
{
	if($(".messagelist").children("div:visible").size() == 0)
	{
		$(".messagelist").children(".nomessages").fadeIn(200);
	}
}
	
function setupTextareaButtonbarSmileys()
{
	//Smiley-Buttons
	$(".smileys img").click(function()
	{
		$textfield = $(this).parent().parent().parent().parent().parent().find("textarea");
		var range = $textfield.caret();
		
		if(range.start < range.end)
		{
			$textfield.val($textfield.val().substr(0, range.start) + $textfield.val().substr(range.end));
		}
		
		var inserttext = $(this).attr('alt');
		
		var before = $textfield.val().substr(range.start-1, 1);
		var after = $textfield.val().substr(range.start, 1);
		
		if(before != " " && before != "." && before != "," && before != "\n")
		{
			inserttext = " " + inserttext;
		}
		if(after != " " && after != "." && after != "," && after != "\n")
		{
			inserttext = inserttext + " ";
		}
		
		$textfield.val($textfield.val().substr(0, range.start) + inserttext + $textfield.val().substr(range.start));
		
		$textfield.caret(range.start + inserttext.length, range.start + inserttext.length);
	});
	
	//Smiley-Scrollbar
	$('.smileys .scrollbar').slider(
	{
		min: 1,
		max: 3,
		value: 1,
		slide: function(event, ui)
		{
			var position = ui.value-1;
			var margin = 0 - position * $('.smileys .allSmileys').width()/3;
			$('.smileys .allSmileys').css('margin-left', margin + 'px'); 
		},
		animate: true
	});
	
	//Text-Format Buttons
	$(".boldbutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		var range = $textfield.caret();
		
		var starttag = "[b]";
		var endtag = "[/b]";
		
		$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
		
		if(range.start < range.end)
		{
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			$textfield.caret(range.start + starttag.length, range.start + starttag.length);
		}
	});
	$(".italicbutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		var range = $textfield.caret();
		
		var starttag = "[i]";
		var endtag = "[/i]";
		
		$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
		
		if(range.start < range.end)
		{
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			$textfield.caret(range.start + starttag.length, range.start + starttag.length);
		}
	});
	$(".underlinebutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		var range = $textfield.caret();
		
		var starttag = "[u]";
		var endtag = "[/u]";
		
		$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
		
		if(range.start < range.end)
		{
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			$textfield.caret(range.start + starttag.length, range.start + starttag.length);
		}
	});
	$(".colorbutton ul li").click(function()
	{
		$textfield = $(this).parent().parent().parent().parent().find("textarea");
		var range = $textfield.caret();
		
		var starttag = "[color=" + $(this).attr('title') + "]";
		var endtag = "[/color]";
		
		$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
		
		if(range.start < range.end)
		{
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			$textfield.caret(range.start + starttag.length, range.start + starttag.length);
		}
	});
	$(".quotebutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		
		var whoiscited = $("#whoiscited")
		if(whoiscited.size() == 0)
		{
			$("body").prepend('<form id="whoiscited"><label for="citedperson">Wer wird zitiert? (optional)</label><input id="citedperson" type="text" /></form>');
			whoiscited = $("#whoiscited").dialog({autoopen: false, buttons: {"OK": function() {$(this).dialog("close"); finishciteddialog($textfield);}}, modal: true}).submit(function()
			{
				$(this).dialog("close"); finishciteddialog($textfield);
				return false;
			});
		}
		
		whoiscited.find("#citedperson").val("").parent().dialog("open");
	});
	$(".imagebutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		var range = $textfield.caret();
		
		if(range.start < range.end)
		{
			finishsrcdialog($textfield);
		}
		else
		{
			var whereisthesrc = $("#whereisthesrc")
			if(whereisthesrc.size() == 0)
			{
				$("body").prepend('<form id="whereisthesrc"><label for="srcoftheimage">Url des Bildes</label><input id="srcoftheimage" type="text" /></form>');
				whereisthesrc = $("#whereisthesrc").dialog({autoopen: false, buttons: {"OK": function() {$(this).dialog("close"); finishsrcdialog($textfield);}}, modal: true}).submit(function()
				{
					$(this).dialog("close"); finishsrcdialog($textfield);
					return false;
				});
			}
			
			whereisthesrc.find("#srcoftheimage").val("").parent().dialog("open");
		}
	});
	$(".linkbutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		
		var whereshallilink = $("#whereshallilink")
		if(whereshallilink.size() == 0)
		{
			$("body").prepend('<form id="whereshallilink"><label for="wheretolink">Wohin soll verlinkt werden?</label><input id="wheretolink" type="text" /></form>');
			whereshallilink = $("#whereshallilink").dialog({autoopen: false, buttons: {"OK": function() {$(this).dialog("close"); finishlinktodialog($textfield);}}, modal: true}).submit(function()
			{
				$(this).dialog("close"); finishlinktodialog($textfield);
				return false;
			});
		}
		
		whereshallilink.find("#wheretolink").val("").parent().dialog("open");
	});
	$(".emailbutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		
		var whatistheaddress = $("#whatistheaddress")
		if(whatistheaddress.size() == 0)
		{
			$("body").prepend('<form id="whatistheaddress"><label for="mailaddress">Wohin soll verlinkt werden?</label><input id="mailaddress" type="text" /></form>');
			whatistheaddress = $("#whatistheaddress").dialog({autoopen: false, buttons: {"OK": function() {$(this).dialog("close"); finishmailtodialog($textfield);}}, modal: true}).submit(function()
			{
				$(this).dialog("close"); finishmailtodialog($textfield);
				return false;
			});
		}
		
		whatistheaddress.find("#mailaddress").val("").parent().dialog("open");
	});
	$(".youtubebutton").click(function()
	{
		$textfield = $(this).parent().parent().find("textarea");
		var range = $textfield.caret();
		
		var starttag = "[youtube]";
		var endtag = "[/youtube]";
		
		if(range.start < range.end)
		{
			$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
			
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			var whichvideo = $("#whichvideo")
			if(whichvideo.size() == 0)
			{
				$("body").prepend('<form id="whichvideo"><label for="videourl">Wie ist die Adresse des YouTube-Videos</label><input id="videourl" type="text" /></form>');
				whichvideo = $("#whichvideo").dialog({autoopen: false, buttons: {"OK": function() {$(this).dialog("close"); finishyoutubedialog($textfield);}}, modal: true}).submit(function()
				{
					$(this).dialog("close"); finishyoutubedialog($textfield);
					return false;
				});
			}
			
			whichvideo.find("#videourl").val("").parent().dialog("open");
		}
	});
}
function finishyoutubedialog($textfield)
{
	var range = $textfield.caret();
	
	var videoid = $("#whichvideo #videourl").val();
	var url = $("#whichvideo #videourl").val();
	
	
	if(url.indexOf("?") >= 0)
	{
		// Es gibt Parameter
		var undef = url.split("?");
		var args  = undef[1].split("&");
		for(i = 0; i < args.length; i++)
		{
			var a = args[i].split("=");
			if(a[0] == "v")
			{
				videoid = a[1];
			}
		}
	}
	
	var starttag = "[youtube]";
	var endtag = "[/youtube]";
	
	$textfield.val($textfield.val().substr(0, range.start) + starttag + videoid + endtag + $textfield.val().substr(range.end));
	
	$textfield.caret(range.start + starttag.length + videoid.lenght + endtag.length, range.start + starttag.length + videoid.lenght + endtag.length);
}
function finishmailtodialog($textfield)
{
	var range = $textfield.caret();
	
	var linkthere = $("#whatistheaddress #mailaddress").val();
	if(linkthere != "")
	{
		var endtag = "[/email]";
		if(range.start < range.end)
		{
			var starttag = "[email=" + linkthere + "]";
			$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			var starttag = "[email]";
			$textfield.val($textfield.val().substr(0, range.start) + starttag + linkthere + endtag + $textfield.val().substr(range.end));
			$textfield.caret(range.end + starttag.length + endtag.length + linkthere.length, range.end + starttag.length + endtag.length + linkthere.length);
		}
	}
}
function finishlinktodialog($textfield)
{
	var range = $textfield.caret();
	
	var linkthere = $("#whereshallilink #wheretolink").val();
	if(linkthere != "")
	{
		var endtag = "[/url]";
		if(range.start < range.end)
		{
			var starttag = "[url=" + linkthere + "]";
			$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
			$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
		}
		else
		{
			var starttag = "[url]";
			$textfield.val($textfield.val().substr(0, range.start) + starttag + linkthere + endtag + $textfield.val().substr(range.end));
			$textfield.caret(range.end + starttag.length + endtag.length + linkthere.length, range.end + starttag.length + endtag.length + linkthere.length);
		}
	}
}
function finishwidthdialog($textfield)
{
	var range = $textfield.caret();
	
	if($("#whatwidth #widthoftheimage").val() != "")
	{
		var starttag = "[img=" + $("#whatwidth #widthoftheimage").val() + "]";
	}
	else
	{
		var starttag = "[img]";
	}
	var endtag = "[/img]";
	
	if(range.start < range.end)
	{
		$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
		$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
	}
	else
	{
		if($("#whereisthesrc #srcoftheimage").val() != "")
		{
			var src = $("#whereisthesrc #srcoftheimage").val();
			$textfield.val($textfield.val().substr(0, range.start) + starttag + src + endtag + $textfield.val().substr(range.end));
			$textfield.caret(range.start + starttag.length + endtag.length + src.length, range.start + starttag.length + endtag.length + src.length);
		}
		else
		{
			$textfield.val($textfield.val().substr(0, range.start) + starttag + endtag + $textfield.val().substr(range.end));
			$textfield.caret(range.start + starttag.length, range.start + starttag.length);
		}
	}
}
function finishsrcdialog($textfield)
{
	var whatwidth = $("#whatwidth")
	if(whatwidth.size() == 0)
	{
		$("body").prepend('<form id="whatwidth"><label for="widthoftheimage">Wie breit (in Pixeln) soll das Bild angezeigt werden? (optional)</label><input id="widthoftheimage" type="text" /></form>');
		whatwidth = $("#whatwidth").dialog({autoopen: false, buttons: {"OK": function() {$(this).dialog("close"); finishwidthdialog($textfield);}}, modal: true}).submit(function()
		{
			$(this).dialog("close"); finishwidthdialog($textfield);
			return false;
		});
	}
	
	whatwidth.find("#widthoftheimage").val("").parent().dialog("open");
}
function finishciteddialog($textfield)
{
	var range = $textfield.caret();
	
	if($("#whoiscited #citedperson").val() != "")
	{
		var starttag = "[quote=" + $("#whoiscited #citedperson").val() + "]";
	}
	else
	{
		var starttag = "[quote]";
	}
	var endtag = "[/quote]";
	
	$textfield.val($textfield.val().substr(0, range.start) + starttag + $textfield.val().substr(range.start, range.end-range.start) + endtag + $textfield.val().substr(range.end));
	
	if(range.start < range.end)
	{
		$textfield.caret(range.end + starttag.length + endtag.length, range.end + starttag.length + endtag.length);
	}
	else
	{
		$textfield.caret(range.start + starttag.length, range.start + starttag.length);
	}
}

//Statusbar aktualisieren
function statusbar()
{
	$.get("index.php?statusbar&" + nocaching(), function(data)
	{
		statusbarCallback(data);
	});
}

//Verhindert das Caching von AJAX-GET-Requests
function nocaching()
{
	return "nocaching=" + escape(Math.random());
}
