// Mini-edit
// Format text in forum threads
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);


// Profile-options
// Handle mouseover on profile column in threads
function initProfileOptions() {
	widgets = $$(".profileOptions li a");
	widgets.each(function(w) {
		w.onmouseover = function () {
			w.firstChild.style.display = 'block';	
		};
		w.onmouseout = function () {
			w.firstChild.style.display = 'none';	
		};
	});
}
Event.observe(window, 'load', initProfileOptions);


// Thread-subscription
// Toggle help display
function initSubscriptionHelp() {	
	if ( $('topicSubscription') != undefined) {
		// I18n strings for show/hide label
		var helpTxtShow = ($('helpTxtShow') ? $('helpTxtShow').innerHTML : '');
		var helpTxtHide = ($('helpTxtHide') ? $('helpTxtHide').innerHTML : '');

		// Update DOM
		var helpToggle = document.createElement('a');
			helpToggle.innerHTML = helpTxtShow;
			helpToggle.rel = helpTxtHide;
			helpToggle.id =	'helpToggle';
			helpToggle.href	= '#';
			helpToggle.onclick = function() {
				Effect.toggle(
					'topicSubscriptionHelp',
					'blind',
					{onComplete: this.innerHTML = flipTxt() }
				);
				return false;
			}

		// Insert into DOM
		$('topicSubscription').appendChild(helpToggle);
		
		function flipTxt() {
			var txt = $('helpToggle').innerHTML == helpTxtShow ? helpTxtHide : helpTxtShow;
			return txt;
		};
	}
}
document.observe('dom:loaded', initSubscriptionHelp);