/**
 * Package: WIKIng
 * File: includes/js/js.js
 * Description: global JavaScript functions
 **/

function addCode(code) {
	// the textarea
	var obj = document.getElementsByName('editform')[0].contents;
	if (obj.selectionStart !== false) {
		// Gecko / Opera
		var start = obj.selectionStart;
		var end	  = obj.selectionEnd;
		if (code == '[[Image:') {
			obj.value = obj.value.substr(0, start) +  code + obj.value.substring(start, end) + ']]' + obj.value.substr(end, obj.value.length);
		} else if (code == '[[') {
			obj.value = obj.value.substr(0, start) +  code + obj.value.substring(start, end) + ']]' + obj.value.substr(end, obj.value.length);
		} else if (code == '[') {
			obj.value = obj.value.substr(0, start) +  code + obj.value.substring(start, end) + ']' + obj.value.substr(end, obj.value.length);
		} else if (code == '<u>') {
			obj.value = obj.value.substr(0, start) +  code + obj.value.substring(start, end) + '</u>' + obj.value.substr(end, obj.value.length);
		} else if (code == '<s>') {
			obj.value = obj.value.substr(0, start) +  code + obj.value.substring(start, end) + '</s>' + obj.value.substr(end, obj.value.length);
		} else {
			obj.value = obj.value.substr(0, start) +  code + obj.value.substring(start, end) + code + obj.value.substr(end, obj.value.length);
		}
		obj.focus();
		var pos = start + code.length;
		obj.setSelectionRange(pos, pos);
	} else if (document.selection !== false) {
		// Internet Exploder (*choke*)
		obj.focus();
		var str = document.selection.createRange().text;
		if (code == '[[Image:') {
			document.selection.createRange().text = code + str + ']]';
		} else if (code == '[[') {
			document.selection.createRange().text = code + str + ']]';
		} else if (code == '[') {
			document.selection.createRange().text = code + str + ']';
		} else if (code == '<u>') {
			document.selection.createRange().text = code + str + '</u>';
		} else if (code == '<s>') {
			document.selection.createRange().text = code + str + '</s>';
		} else {
			document.selection.createRange().text = code + str + code;
		}
	} else {
		// other browsers
		if (code == '[[Image:') {
			obj.value += code + ']]';
		} else if (code == '[[') {
			obj.value += code + ']]';
		} else if (code == '[') {
			obj.value += code + ']';
		} else if (code == '<u>') {
			obj.value += code + '</u>';
		} else if (code == '<s>') {
			obj.value += code + '</s>';
		} else {
			obj.value += code + code;
		}
		obj.focus();
	}
}
