function mycode_surround(field, ins_begin, ins_end, opt_begin) {
	if (document.selection) 
	{
		field.focus();
		var selected = document.selection.createRange().text;
		var ins = ins_begin + (selected?opt_begin:'') + selected + ins_end;
		var selected2 = document.selection.createRange();
		var sel = document.selection.createRange();
		selected2.moveStart ('character', -field.value.length);
		sel.text = ins_begin + (selected?opt_begin:'') + selected + ins_end;
		sel.moveStart('character', selected2.text.length + ins.length - selected.length);
	}

	//MOZILLA/NETSCAPE/SAFARI support
	else if (field.selectionStart || field.selectionStart == 0) 
	{
		var startPos = field.selectionStart;
		var endPos = field.selectionEnd;
		var selected = field.value.substring(startPos, endPos);
		var ins = ins_begin + (selected?opt_begin:'') + selected + ins_end;
		field.focus();
		field.value = field.value.substring(0, startPos) + ins + field.value.substring(endPos, field.value.length);
		field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
	}
}

function mycode_ins(fieldId, tag)
{
	field=document.getElementById(fieldId);
	if (tag=='**') mycode_surround(field,  '**',  '**', '');
	if (tag=='__') mycode_surround(field,  '__',  '__', '');
	if (tag=='---') mycode_surround(field, '---', '---', '');
	if (tag=='___') mycode_surround(field, '___', '___', '');
	if (tag=='[[') {
		var url = prompt("Aadress või e-mail");
		mycode_surround(field, '[['+url, ']]', ' ');
	}
}

function bbcode_ins(fieldId, tag)
{
	field=document.getElementById(fieldId);
	if(tag=='b' || tag=='i' || tag=='u' || tag == 'php' || tag == 'code')
	{
		if (document.selection) 
		{
			field.focus();
			var selected = document.selection.createRange().text;
			var ins = '[' + tag + ']' + selected + '[/' + tag +']';
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			selected2.moveStart ('character', -field.value.length);
			sel.text = '[' + tag + ']' + selected + '[/' + tag+']';
			sel.moveStart('character', selected2.text.length + ins.length - selected.length);
		
		}
		
		//MOZILLA/NETSCAPE/SAFARI support
		
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var selected = field.value.substring(startPos, endPos);
			var ins = '[' + tag + ']' + selected + '[/' + tag +']';
			field.focus();
			field.value = field.value.substring(0, startPos) + ins + field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
		}
	}
	else if(tag == 'img')
	{
		var path = prompt('Enter image path', 'http://');
		if(!path)
		{
			return;
		}
		if (document.selection) 
		{
			field.focus();
			var selected = document.selection.createRange().text;
			var ins = '[' + tag + ']' + path + '[/' + tag+']';
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			sel.text = '[' + tag + ']' + path + '[/' + tag+']';
			selected2.moveStart ('character', -field.value.length);
			sel.moveStart('character', selected2.text.length + ins.length - selected.length);
		}
		//MOZILLA/NETSCAPE/SAFARI support
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var ins = '[' + tag + ']' + path + '[/' + tag+']';
			field.focus();
			field.value = field.value.substring(0, startPos)
			+ ins
			+ field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
		} 
	}
	else if(tag == 'url' || tag == 'mail')
	{
		var url = tag=='url'?prompt('Sisesta internetiaadress', 'http://'):prompt('Sisesta e-mail', '');
		var linkText = prompt('Sisesta lingi tekst (või jäta tühjaks)', '');
		if(!url||url=='http://')
		{
			return;
		}
		if (document.selection) 
		{
			field.focus();
			
			var selected = document.selection.createRange().text;
			var ins = linkText!=''&&linkText!=url?
				'[' + tag + '='+url+']' + linkText + '[/' + tag+']':
				'[' + tag + ']' + url + '[/' + tag + ']';
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			sel.text = ins;
			selected2.moveStart ('character', -field.value.length);
			sel.moveStart('character', selected2.text.length + ins.length - selected.length);

		}
		//MOZILLA/NETSCAPE/SAFARI support
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			var ins = linkText!=''&&linkText!=url?
				'[' + tag + '='+url+']' + linkText + '[/' + tag+']':
				'[' + tag + ']' + url + '[/' + tag + ']';
			field.focus();
			field.value = field.value.substring(0, startPos)
			+ ins
			+ field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+ins.length, endPos+ins.length-selected.length);
		}
	}
	else //For smilies
	{
		if (document.selection) 
		{
			field.focus();
		
			var selected = document.selection.createRange().text;
			var ins = tag;
			var selected2 = document.selection.createRange();
			var sel = document.selection.createRange();
			sel.text = tag;
			selected2.moveStart ('character', -field.value.length);
			sel.moveStart('character', selected2.text.length + ins.length - selected.length);
		}
		
		//MOZILLA/NETSCAPE/SAFARI support
		
		else if (field.selectionStart || field.selectionStart == 0) 
		{
			var startPos = field.selectionStart;
			var endPos = field.selectionEnd;
			field.focus();
			field.value = field.value.substring(0, startPos) + tag + field.value.substring(endPos, field.value.length);
			field.setSelectionRange(endPos+tag.length, endPos+tag.length);
		}
	}
}