var text_input = "Sample Text";
var help_mode = "HTML 代碼 - 幫助信息\n\n點擊相應的代碼按鈕即可獲得相應的說明和提示";
var adv_mode = "HTML 代碼 - 直接插入\n\n點擊代碼按鈕後不出現提示即直接插入相應代碼";
var normal_mode = "HTML 代碼 - 提示插入\n\n點擊代碼按鈕後出現嚮導窗口幫助您完成代碼插入";
var email_help = "插入郵件地址\n\n插入郵件地址連接。\n例如：\n[email]contact@p2pzone.org[/email]\n[email=contact@p2pzone.org]UNet.Boards.Pro[/email]";
var email_normal = "請輸入鏈接顯示的文字，如果留空則直接顯示郵件地址。";
var email_normal_input = "請輸入郵件地址。";
var fontsize_help = "設置字號\n\n將標籤所包圍的文字設置成指定字號。\n例如：[size=3]文字大小為 3[/size]";
var fontsize_normal = "請輸入要設置為指定字號的文字。";
var font_help = "設定字體\n\n將標籤所包圍的文字設置成指定字體。\n例如：[font=仿宋]字體為仿宋[/font]";
var font_normal = "請輸入要設置成指定字體的文字。";
var bold_help = "插入粗體文本\n\n將標籤所包圍的文本變成粗體。\n例如：[b]UNet.Boards.Pro[/b]";
var bold_normal = "請輸入要設置成粗體的文字。";
var italicize_help = "插入斜體文本\n\n將標籤所包圍的文本變成斜體。\n例如：[i]UNet.Boards.Pro[/i]";
var italicize_normal = "請輸入要設置成斜體的文字。";
var quote_help = "插入引用\n\n將標籤所包圍的文本作為引用特殊顯示。\n例如：[quote]UNetBoard 版權所有[/quote]";
var quote_normal = "請輸入要作為引用顯示的文字。";
var color_help = "定義文本顏色\n\n將標籤所包圍的文本變為制定顏色。\n例如：[color=red]紅顏色[/color]";
var color_normal = "請輸入要設置成指定顏色的文字。";
var boxcolor_help = "定義網底顏色\n\n將標籤所包圍的內容變為制定底色。\n例如：[box=red]網底內容[/box]";
var boxcolor_normal = "請輸入要設置成指定網底顏色的內容。";
var center_help = "居中對齊\n\n將標籤所包圍的文本居中對齊顯示。\n例如：[align=center]內容居中[/align]";
var center_normal = "請輸入要居中對齊的文字。";
var link_help = "插入超級鏈接\n\n插入一個超級連接。\n例如：\n[url]http://pro.p2pzone.org/[/url]\n[url=http://pro.p2pzone.org/]UNet.Boards.Pro[/url]";
var link_normal = "請輸入鏈接顯示的文字，如果留空則直接顯示鏈接。";
var link_normal_input = "請輸入 URL。";
var image_help = "插入圖像\n\n在文本中插入一幅圖像。\n例如：[img]http://pro.p2pzone.org//images/logo.gif[/img]";
var image_normal = "請輸入圖像的 URL。";
var flash_help = "插入 flash\n\n在文本中插入 flash 動畫。\n例如：[swf]http://pro.p2pzone.org//images/banner.swf[/swf]";
var flash_normal = "請輸入 flash 動畫的 URL。";
var code_help = "插入代碼\n\n插入程序或原始程序碼。\n例如：[code]echo\"這裡是我們的討論區\";[/code]";
var code_normal = "請輸入要插入的代碼。";
var list_help = "插入列表\n\n插入可由瀏覽器顯示來的規則列表項。\n例如：\n[list]\n[*]；列表項 #1\n[*]；列表項 #2\n[*]；列表項 #3\n[/list]";
var list_normal = "請選擇列表格式：字母式列表輸入 \"A\"；數字式列表輸入 \"1\"。此處也可留空。";
var list_normal_error = "錯誤：列表格式只能選擇輸入 \"A\" 或 \"1\"。";
var list_normal_input = "請輸入列表項目內容，如果留空表示項目結束。";
var underline_help = "插入下劃線\n\n給標籤所包圍的文本加上下劃線。\n例如：[u]UNet.Boards.Pro[/u]";
var underline_normal = "請輸入要加下劃線的文字。";
var emImg_help = "插入表情符號\n\n在文本中插入一個表情符號。\n例如：今天天氣很好[em02]";

defmode	= "normalmode";		

if (defmode	== "advmode") {
		helpmode = false;
		normalmode = false;
		advmode	= true;
} else if (defmode == "helpmode") {
		helpmode = true;
		normalmode = false;
		advmode	= false;
} else {
		helpmode = false;
		normalmode = true;
		advmode	= false;
}

function chmode(swtch){
		if (swtch == 1){
				advmode	= false;
				normalmode = false;
				helpmode = true;
				alert(help_mode);
		} else if (swtch ==	0) {
				helpmode = false;
				normalmode = false;
				advmode	= true;
				alert(adv_mode);
		} else if (swtch ==	2) {
				helpmode = false;
				advmode	= false;
				normalmode = true;
				alert(normal_mode);
		}
}

function AddText(NewCode) {
		if (document.all){
			insertAtCaret(document.MyForm.Content, NewCode);
		} else{
			document.MyForm.Content.value += NewCode;
		}
		setfocus();
}

function storeCaret	(textEl){
		if (textEl.createTextRange){
				textEl.caretPos	= document.selection.createRange().duplicate();
		}
}

function insertAtCaret (textEl,	text){
		if (textEl.createTextRange && textEl.caretPos){
				var	caretPos = textEl.caretPos;
				caretPos.text += caretPos.text.charAt(caretPos.text.length - 2)	== ' ' ? text +	' '	: text;
		} else if(textEl) {
				textEl.value +=	text;
		} else {
			textEl.value = text;
		}
}

function email() {
	if (helpmode) {
		alert(email_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[EMAIL]" + range.text	+ "[/EMAIL]";
	} else if (advmode)	{
		AddTxt="[EMAIL]	[/EMAIL]";
		AddText(AddTxt);
	} else {
		txt2=prompt(email_normal,"");
		if (txt2!=null)	{
			txt=prompt(email_normal_input,"name@domain.com");
			if (txt!=null) {
				if (txt2=="") {
					AddTxt="[EMAIL]"+txt+"[/EMAIL]";
				} else {
					AddTxt="[EMAIL="+txt+"]"+txt2+"[/EMAIL]";
				}
				AddText(AddTxt);
			}
		}
	}
}

function chsize(size) {
	if (helpmode) {
		alert(fontsize_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[SIZE=" +	size + "]" + range.text	+ "[/SIZE]";
	} else if (advmode)	{
		AddTxt="[SIZE="+size+"]	[/SIZE]";
		AddText(AddTxt);
	} else {
		txt=prompt(fontsize_normal,text_input);
		if (txt!=null) {
			AddTxt="[SIZE="+size+"]"+txt;
			AddText(AddTxt);
			AddText("[/SIZE]");
		}
	}
}

function chfont(font) {
	if (helpmode){
		 alert(font_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[FONT=" +	font + "]" + range.text	+ "[/FONT]";
   } else if (advmode) {
		AddTxt="[FONT="+font+"]	[/FONT]";
		AddText(AddTxt);
	} else {
		txt=prompt(font_normal,text_input);
		if (txt!=null) {
			AddTxt="[FONT="+font+"]"+txt;
			AddText(AddTxt);
			AddText("[/FONT]");
		}
	}
}

function bold()	{
	if (helpmode) {
		alert(bold_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[B]" + range.text	+ "[/B]";
		setfocus();
	} else if (advmode)	{
		AddTxt="[B]	[/B]";
		AddText(AddTxt);
	} else {
		txt=prompt(bold_normal,text_input);
		if (txt!=null) {
			AddTxt="[B]"+txt;
			AddText(AddTxt);
			AddText("[/B]");
		}
	}
}

function italicize() {
	if (helpmode) {
		alert(italicize_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[I]" + range.text	+ "[/I]";
	} else if (advmode)	{
		AddTxt="[I]	[/I]";
		AddText(AddTxt);
	} else {
		txt=prompt(italicize_normal,text_input);
		if (txt!=null) {
			AddTxt="[I]"+txt;
			AddText(AddTxt);
			AddText("[/I]");
		}
	}
}

function quote() {
	if (helpmode){
		alert(quote_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[QUOTE]" + range.text	+ "[/QUOTE]";
	} else if (advmode)	{
		AddTxt="\r[QUOTE]\r[/QUOTE]";
		AddText(AddTxt);
	} else {
		txt=prompt(quote_normal,text_input);
		if(txt!=null) {
			AddTxt="[QUOTE]"+txt;
			AddText(AddTxt);
			AddText("[/QUOTE]");
		}
	}
}

function chcolor(color)	{
	if (helpmode) {
		alert(color_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[COLOR=" + color + "]" + range.text +	"[/COLOR]";
		} else if (advmode)	{
			AddTxt="[COLOR="+color+"] [/COLOR]";
			AddText(AddTxt);
		} else {
		txt=prompt(color_normal,text_input);
		if(txt!=null) {
			AddTxt="[COLOR="+color+"]"+txt;
			AddText(AddTxt);
			AddText("[/COLOR]");
		}
	}
}

function addbox(color) {
        if (helpmode) {
                alert(boxcolor_help);
        } else if (getSelectedText()) {
                var range = document.selection.createRange();
                range.text = "[BOX=" + color + "]" + range.text + "[/BOX]";
        } else if (advmode) {
                AddTxt="[BOX="+color+"] [/BOX]";
                AddText(AddTxt);
        } else {
        txt=prompt(boxcolor_normal,text_input);
                if(txt!=null) {
                        AddTxt="[BOX="+color+"]"+txt;
                        AddText(AddTxt);
                        AddText("[/BOX]");
                }
        }
}

function center() {
	if (helpmode) {
		alert(center_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[CENTER]"	+ range.text + "[/CENTER]";
	} else if (advmode)	{
		AddTxt="[ALIGN=center] [/ALIGN]";
		AddText(AddTxt);
	} else {
		txt=prompt(center_normal,text_input);
		if (txt!=null) {
			AddTxt="\r[ALIGN=center]"+txt;
			AddText(AddTxt);
			AddText("[/ALIGN]");
		}
	}
}

function hyperlink() {
	if (helpmode) {
		alert(link_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[URL]" + range.text +	"[/URL]";
	} else if (advmode)	{
		AddTxt="[URL] [/URL]";
		AddText(AddTxt);
	} else {
		txt2=prompt(link_normal,"");
		if (txt2!=null)	{
			txt=prompt(link_normal_input,"http://");
			if (txt!=null) {
				if (txt2=="") {
					AddTxt="[URL]"+txt;
					AddText(AddTxt);
					AddText("[/URL]");
				} else {
					AddTxt="[URL="+txt+"]"+txt2;
					AddText(AddTxt);
					AddText("[/URL]");
				}
			}
		}
	}
}

function image() {
	if (helpmode){
		alert(image_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[IMG]" + range.text +	"[/IMG]";
	} else if (advmode)	{
		AddTxt="[IMG] [/IMG]";
		AddText(AddTxt);
	} else {
		txt=prompt(image_normal,"http://");
		if(txt!=null) {
			AddTxt="\r[IMG]"+txt;
			AddText(AddTxt);
			AddText("[/IMG]");
		}
	}
}

function underline() {
	if (helpmode) {
		alert(underline_help);
	} else if (getSelectedText()) {
		var	range =	document.selection.createRange();
		range.text = "[U]" + range.text	+ "[/U]";
	} else if (advmode)	{
		AddTxt="[U]	[/U]";
		AddText(AddTxt);
	} else {
		txt=prompt(underline_normal,text_input);
		if (txt!=null) {
			AddTxt="[U]"+txt;
			AddText(AddTxt);
			AddText("[/U]");
		}
	}
}

function setfocus()	{
	document.MyForm.Content.focus();
}

function getSelectedText() {
	var	post = document.MyForm.Content;
	var	selected = '';
	if(post.isTextEdit){
		post.focus();
		var	sel	= document.selection;
		var	rng	= sel.createRange();
		rng.colapse;
		if((sel.type ==	"Text" || sel.type == "None") && rng !=	null){
			if(rng.text.length > 0)	selected = rng.text;
		}
	}
	return selected;
}