function formatText(id,tagstart,tagend) {
  	el = $(id);
	if (el.setSelectionRange) {
		el.value = el.value.substring(0,el.selectionStart) + tagstart + el.value.substring(el.selectionStart,el.selectionEnd) + tagend + el.value.substring(el.selectionEnd,el.value.length);
	}
  	else {
  		var selectedText = document.selection.createRange().text;
        if (selectedText != "") {
            var newText = tagstart + selectedText + tagend;
            document.selection.createRange().text = newText;
        } 
  	}
};

function initMiniedit () {
	me = $$(".miniedit textarea");
	target = me[0];
	quotes = $$(".miniedit ul li a.quote");
	quotes.each(function(w) {
		w.onclick = function() {formatText(target,"[quote]","[/quote]"); return false;};
	});
	links = $$(".miniedit ul li a.link");
	links.each(function(w) {
		w.onclick = function () {formatText(target,"[link]","[/link]"); return false;};
	});
	underlines = $$(".miniedit ul li a.underline");
	underlines.each(function(w) {
		w.onclick = function () {formatText(target,"[u]","[/u]"); return false;};
	});
	italic = $$(".miniedit ul li a.italic");
	italic.each(function(w) {
		w.onclick = function () {formatText(target,"[i]","[/i]"); return false;};
	});
	bolds = $$(".miniedit ul li a.bold");
	bolds.each(function(w) {
		w.onclick = function() {formatText(target,"[b]","[/b]"); return false;};
	});
	initSmileys(target);
}

function insertSmiley(target, tag) {
	el = $(target);
	// IE
	if (document.selection) {
    target.focus();
    selection = document.selection.createRange();
    selection.text = tag;
  }
  
	if (el.setSelectionRange) {
		el.value = el.value.substring(0,el.selectionStart) + tag + el.value.substring(el.selectionStart,el.selectionEnd) + el.value.substring(el.selectionEnd,el.value.length);
	}
  	else {
  		var selectedText = document.selection.createRange().text;
        if (selectedText != "") {
            var newText = tag + selectedText;
            document.selection.createRange().text = newText;
        } 
  	}
}
function initSmileys (target) {
	buttons = $$(".smileyContainer a");
	buttons.each(function(w) {
		w.onclick = function () {
			insertSmiley(target, w.firstChild.alt);
			return false;
		};
	});
}


Event.observe(window, 'load', initMiniedit);