function addTextBegin(text) {
	var txtarea = document.getElementById('data');
	txtarea.value = text + txtarea.value;
	txtarea.focus();
}

function addTextWhereDefined(open, close) {
	var laatikko = document.getElementById('data');
	var asia = laatikko.value;

	/* We might have to deal with IE which knows
	 * not about selectionStart and selectionEnd.
	 * So we teach.
	 */
	if (document.selection) {
		var matka = document.selection.createRange();
		var tmp = matka.duplicate();
		tmp.moveToElementText(laatikko);
		tmp.setEndPoint('EndToEnd', matka);
		laatikko.selectionStart = tmp.text.length - matka.text.length;
		laatikko.selectionEnd = laatikko.selectionStart + matka.text.length;
	}

	/* Now we should have these with most of the browsers.
	 */
	if (laatikko.selectionStart && laatikko.selectionEnd) {
		alku = laatikko.selectionStart;
		loppu = laatikko.selectionEnd;

		begin = asia.substring(0, alku);
		middle = asia.substring(alku, loppu);
		end = asia.substring(loppu);

		laatikko.value = begin + open + middle + close + end;

		laatikko.focus();
		laatikko.selectionStart = alku + open.length;
		laatikko.selectionEnd = loppu + open.length;
	}
}

function addCite() {
	addTextBegin("</p><p class=\"sitaatti\">\n\"Cite\"<br/>\n<br/>\n(Reference)<br/>\n\n");
}

function addBr() {
	addTextWhereDefined('', '<br />');
}

function addUrl() {
	addTextWhereDefined('<a href="URL">', '</a>');
}

function addImg() {
	addTextWhereDefined('<img src="URL">', '</img>');
}

function addBold() {
	addTextWhereDefined('<b>', '</b>');
}

function addItalic() {
	addTextWhereDefined('<i>', '</i>');
}
