function ChangeBBCodeMode(mode)
{
	BBCodeMode = mode;
}

function InsertAtCursor(text_insert)
{
	if(document.selection)
	{
		document.form_insert.text.focus();
		document.selection.createRange().text += text_insert;
		document.selection.empty();
	}
	else
	{
		var textarea = document.form_insert.text;
		var content = textarea.value;
		var SelStart = textarea.selectionStart;
		var SelEnd = textarea.selectionEnd;
		if(SelStart || SelEnd)
		{
			textarea.value = content.substring(0,SelStart);
			textarea.value += text_insert;
			textarea.value += content.substring(SelEnd,content.length);
		}
		else
			textarea.value += text_insert;
	}
}

function post_helper(ins,type,object)
{
	if(ins != 0)
	{
		if(type == 'bbcode')
		{
			if(BBCodeMode == 'advanced')
			{
				if(!surround_marked_text(ins))
				{
					if(object != null)
					{
						var len = object.value.length;
						if(object.value.substr(len - 1,1) == "*")
						{
							InsertAtCursor(get_complement(ins));
							object.value = object.value.substr(0,len - 1);
						}
						else
						{
							InsertAtCursor(ins);
							object.value += "*";
						}
					}
					else
						InsertAtCursor(ins);
				}
			}
			else
			{
				ins = trim(ins);
				var sub6 = ins.substr(0,6);
				if(sub6 == "[CODE]" || ins.substr(0,7) == "[QUOTE]" || sub6 == "[LIST]")
					document.form_insert.text.value += ins;
				else
					show_bbcode_prompt(ins);
			}
		}
		else
			InsertAtCursor(ins);
	}
	document.form_insert.text.focus();
}

function show_bbcode_prompt(ins)
{
	if(ins.substr(0,5) == "[URL=" || ins.substr(0,6) == "[MAIL=")
	{
		var url = prompt(get_prompt_text(ins),"");
		if(url != null && url != "")
		{
			var title = prompt(get_prompt_text(ins + "|title"),"");
			if(title != null)
			{
				if(ins.substr(0,5) == "[URL=")
				{
					if(title != "")
						document.form_insert.text.value += "[URL=" + url + "]" + title + "[/URL]";
					else
						document.form_insert.text.value += "[URL]" + url + "[/URL]";
				}
				else
				{
					if(title != "")
						document.form_insert.text.value += "[MAIL=" + url + "]" + title + "[/MAIL]";
					else
						document.form_insert.text.value += "[MAIL]" + url + "[/MAIL]";
				}
			}
		}
		return;
	}

	var input;
	switch(ins)
	{
		case "[B]":
		case "[I]":
		case "[U]":
		case "[IMG]":
			input = prompt(get_prompt_text(ins),"");
			break;
	}

	if(ins.substr(0,6) == "[FONT=" || ins.substr(0,6) == "[SIZE=" || ins.substr(0,7) == "[COLOR=")
		input = prompt(get_prompt_text(ins),"");

	if(input != null && input != "")
		document.form_insert.text.value += ins + input + get_complement(ins);
}

function jumpto(loc)
{
	if(loc != "")
		document.location.href = loc;
}

function count_string(string,zeichen)
{
	var posi;
	var count = 0;
	for(var i=0;i < string.length;i++)
	{
		posi = string.indexOf(zeichen);
		if(posi != -1)
		{
			count++;
			string = string.substr((posi + 3),(string.length-posi + 3));
		}
		else
			break;
	}
	return count;
}

function get_complement(ins)
{
	switch(ins)
	{
		case "[B]": return "[/B]";
		case "[I]": return "[/I]";
		case "[U]": return "[/U]";
		case "[QUOTE]": return "[/QUOTE]";
		case "[CODE]": return "[/CODE]";
		case "[IMG]": return "[/IMG]";
		case "[LIST]": return "[/LIST]";
		case "[URL=": return "[/URL]";
	}

	if(ins.substr(0,6) == "[FONT=")
		return "[/FONT]";
	if(ins.substr(0,6) == "[SIZE=")
		return "[/SIZE]";
	if(ins.substr(0,7) == "[COLOR=")
		return "[/COLOR]";

	return "";
}

function trim(input)
{
	if(input == "")
		return "";

	var i = 0;
	for(;i < input.length;i++)
	{
		if(input[i] != '\n' && input[i] != '\r' && input[i] != '\t' && input[i] != ' ')
			break;
	}

	var a = input.length - 1;
	for(;a >= 0;a--)
	{
		if(input[a] != '\n' && input[a] != '\r' && input[a] != '\t' && input[a] != ' ')
			break;
	}

	return input.substr(i,a - i + 1);;
}

function surround_marked_text(ins)
{
	ins = trim(ins);

	var EndTag = get_complement(ins);
	if(EndTag == "")
		return false;

	if(document.selection)
	{
		document.form_insert.text.focus();
		var selection = document.selection.createRange().text;
		if(selection != "")
		{
			document.selection.createRange().text = ins + selection + EndTag;
			document.selection.empty();
			return true;
		}
		return false;
	}

	var textarea = document.form_insert.text;
	var content = textarea.value;
	if(textarea.selectionEnd != textarea.selectionStart)
	{
		var SelStart = textarea.selectionStart;
		var SelEnd = textarea.selectionEnd;
		textarea.value = content.substring(0,SelStart);
		textarea.value += ins + content.substring(SelStart,SelEnd) + EndTag;
		textarea.value += content.substring(SelEnd,content.length);
		return true;
	}
	return false;
}

function NumericSort(a,b)
{
	return a[0] - b[0];
}

function find_bbcode()
{
	var code = new Array("[B]","[I]","[U]","[FONT=","[SIZE=","[COLOR=","[CODE]","[QUOTE","[MAIL=","[URL=","[IMG]","[LIST]");
	var replace = new Array("[/B]","[/I]","[/U]","[/FONT]","[/SIZE]","[/COLOR]","[/CODE]","[/QUOTE]","[/MAIL]","[/URL]",
													"[/IMG]","[/LIST]");

	var upper_text = document.form_insert.text.value.toUpperCase();
	var pos;
	var tags = new Array();
	for(var x = 0;x < 12;x++)
	{
		if(count_string(upper_text,code[x]) > count_string(upper_text,replace[x]))
		{
			pos = upper_text.indexOf(code[x]);
			tags.push(new Array(pos,replace[x]));
		}
	}
	tags.sort(NumericSort);
	tags.reverse();

	var text = document.form_insert.text;
	for(var i = 0;i < tags.length;i++)
		text.value += tags[i][1];

	var tag_ids = new Array("bbc_bold","bbc_italic","bbc_underline","bbc_code","bbc_quote","bbc_mail","bbc_url","bbc_img","bbc_list");
	for(var i = 0;i < tag_ids.length;i++)
	{
		var object = document.getElementById(tag_ids[i]);
		var len = object.value.length;
		if(object.value.substr(len - 1,1) == "*")
			object.value = object.value.substr(0,len - 1);
	}
}

function markall(id)
{
	var f = document.getElementsByName(id)[0];
	for(var i = 0; i < f.length;i++)
	{
		f.elements[i].checked = (f.elements[i].checked == 1) ? 0 : 1;
	}
}

function CheckAgreement(checkbox,submit_id)
{
	var f = document.getElementById(submit_id);
	if(checkbox.checked)
	{
		f.disabled = false;
		f.style.color = '#000000';
	}
	else
	{
		f.disabled = true;
		f.style.color = '#BBBBBB';
	}
}