// Jos ei ole elementtiä
if (!window.Element) {
	// Luodaan tyhjä
	Element = {};
}

// Hakee elementin ID:n
Element.find = function(e) {
	if (typeof e == "string") {
		e = document.getElementById(e);
	}
	return e;
};

// Liittää kursorin kohdalle tekstin text
Element.insertAtCursor = function(el, text, doNotReplace) {
	// Jos jotain sattuu olemaan valittuna
	
	if (document.selection) {
		// Valinnasta elementti range
		var range = document.selection.createRange();
		// Jos valinta ei ole viestiboksissa unohdetaan valinta ja kirjoitetaan viestiboksiin
		if (range.parentElement() != el) {
			el.value += text;
			return;
		}
		
		// Lisätään / korvataan teksti
		if (doNotReplace) {
			range.text += text;
		} else {
			range.text = text;
		}
		
	// Jos ei ole valintaa	
	} else if (typeof el.selectionStart != "undefined") {

		if (doNotReplace) {
			el.value = el.value.substring(0, el.selectionStart)
				+ text
				+ el.value.substring(el.selectionStart, el.value.length);
		} else {
			el.value = el.value.substring(0, el.selectionStart)
				+ text
				+ el.value.substring(el.selectionEnd, el.value.length);
		}
	} else {
		el.value += text;
	}
	el.focus();
	
};

Element.surroundSelection = function(el, begin, end) {
	if (document.selection) {
		var range = document.selection.createRange();

		if (range.parentElement() != el) {
			el.value += begin + end;
			return;
		}
					
		range.text = begin + range.text + end;
	} else if (typeof el.selectionStart != "undefined") {
		el.value = el.value.substring(0, el.selectionStart)
			+ begin
			+ el.value.substring(el.selectionStart, el.selectionEnd)
			+ end
			+ el.value.substring(el.selectionEnd, el.value.length);
	} else {
		el.value += begin + end;
	}
};

if (!window.BBCode) {
	BBCode = {};
}

BBCode.insertTag = function(el, beginTag, endTag, promptString, initialValue) {
	
	if (promptString) {
		beginTag = beginTag.replace(/%s/, prompt(promptString, initialValue));
	}

	Element.surroundSelection(Element.find(el), beginTag, endTag);
	
};

BBCode.insertSmiley = function(el, smiley) {
	Element.insertAtCursor(Element.find(el), smiley, true);
};
