// Set the object enable or disable.
function enableObj(sObj, nEnable) {
document.getElementById(sObj).disabled = nEnable;
}

// Open a modal dialog for choosing existing record.
function goExistList(slink) {
showModalDialog(slink, window, "dialogHeight:400px;dialogWidth:600px;edge:Sunken;center:Yes;resizable:No;status:No;");
}

// Logout the system.
function goLogout(sURI) {
frmUpload.LogStatus.value = "Logout";
document.frmUpload.action = sURI;
document.frmUpload.submit();
}

function preReset() {
disableEdit(false);
return true;
}

function menuOnClk(nMainCat) {
document.frmUpload.MainMenuSel.value = nMainCat;
document.frmUpload.action = "showpage.php?MainCat=" + nMainCat;
document.frmUpload.submit();
}

// Change editor tools background image.
function bbc_highlight(something, imgloc, mode) {
something.style.backgroundImage = "url(" + (mode ? imgloc + "/bbc_hoverbg.gif)" : imgloc + "/bbc_bg.gif)");
}

// Remember the current position.
function storeCaret(text)
{
	// Only bother if it will be useful.
	if (typeof(text.createTextRange) != "undefined")
		text.caretPos = document.selection.createRange().duplicate();
}

// Replaces the currently selected text with the passed text.
function replaceText(text, textarea)
{
	// Disable functions if it is existing record data.
	if (textarea.disabled)
	{
		alert("It is not allow to edit the existing record.");
		return false;
	}

	// Attempt to create a text range (IE).
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		caretPos.select();
	}
	// Mozilla text range replace.
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var scrollPos = textarea.scrollTop;

		textarea.value = begin + text + end;

		if (textarea.setSelectionRange)
		{
			textarea.focus();
			textarea.setSelectionRange(begin.length + text.length, begin.length + text.length);
		}
		textarea.scrollTop = scrollPos;
	}
	// Just put it on the end.
	else
	{
		textarea.value += text;
		textarea.focus(textarea.value.length - 1);
	}
}

// Surrounds the selected text with text1 and text2.
function surroundText(text1, text2, textarea)
{
	// Disable functions if it is existing record data.
	if (textarea.disabled)
	{
		alert("It is not allow to edit the existing record.");
		return false;
	}

	// Can a text range be created?
	if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
	{
		var caretPos = textarea.caretPos, temp_length = caretPos.text.length;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;

		if (temp_length == 0)
		{
			caretPos.moveStart("character", -text2.length);
			caretPos.moveEnd("character", -text2.length);
			caretPos.select();
		}
		else
			textarea.focus(caretPos);
	}
	// Mozilla text range wrap.
	else if (typeof(textarea.selectionStart) != "undefined")
	{
		var begin = textarea.value.substr(0, textarea.selectionStart);
		var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
		var end = textarea.value.substr(textarea.selectionEnd);
		var newCursorPos = textarea.selectionStart;
		var scrollPos = textarea.scrollTop;

		textarea.value = begin + text1 + selection + text2 + end;

		if (textarea.setSelectionRange)
		{
			if (selection.length == 0)
				textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
			else
				textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
			textarea.focus();
		}
		textarea.scrollTop = scrollPos;
	}
	// Just put them on the end, then.
	else
	{
		textarea.value += text1 + text2;
		textarea.focus(textarea.value.length - 1);
	}
}

