/******************************************************************************
  Name: UBB Code Insert For Asp 3.0
  Copyright: Crossday Discuz! Board 
  Modified by: DreamEditor Dahangzhou.com
  Eample: Example.asp
*******************************************************************************/
//Begin Define
var text_input = "这里输入文字";
var help_mode = "UBB代码 - 帮助信息\n\n点击相应的代码按钮即可获得相应的说明和提示";
var adv_mode = "UBB代码 - 直接插入\n\n点击代码按钮后不出现提示即直接插入相应代码";
var normal_mode = "UBB代码 - 提示插入\n\n点击代码按钮后出现向导窗口帮助您完成代码插入";

var font_help = "设定字体\n\n将标签所包围的文字设置成指定字体。\n例如：[font=仿宋]字体为仿宋[/font]";
var font_normal = "请输入要设置成指定字体的文字。";

var fontsize_help = "设置字号\n\n将标签所包围的文字设置成指定字号。\n例如：[size=3]文字大小为 3[/size]";
var fontsize_normal = "请输入要设置为指定字号的文字。";

var color_help = "定义文本颜色\n\n将标签所包围的文本变为制定颜色。\n例如：[color=red]红颜色[/color]";
var color_normal = "请输入要设置成指定颜色的文字。";

var bold_help = "插入粗体文本\n\n将标签所包围的文本变成粗体。\n例如：[b]粗体文字[/b]";
var bold_normal = "请输入要设置成粗体的文字。";

var italicize_help = "插入斜体文本\n\n将标签所包围的文本变成斜体。\n例如：[i]斜体文字[/i]";
var italicize_normal = "请输入要设置成斜体的文字。";

var underline_help = "插入下划线\n\n给标签所包围的文本加上下划线。\n例如：[u]下划线文字[/u]";
var underline_normal = "请输入要加下划线的文字。";

var center_help = "居中对齐\n\n将标签所包围的文本居中对齐显示。\n例如：[align=center]内容居中[/align]";
var center_normal = "请输入要居中对齐的文字。";

var right_help = "居右对齐\n\n将标签所包围的文本居右对齐显示。\n例如：[align=right]内容居右[/align]";
var right_normal = "请输入要居右对齐的文字。";

var link_help = "插入超级链接\n\n插入一个超级连接。\n例如：\n[url]http://www.dahangzhou.com[/url]\n[url=http://www.mydomain.com]大杭州[/url]";
var link_normal = "请输入链接显示的文字，如果留空则直接显示链接。";
var link_normal_input = "请输入 URL。";

var email_help = "插入邮件地址\n\n插入邮件地址连接。\n例如：\n[email]myname@mydomain.com[/email]\n[email=myname@mydomain.com]我的名字[/email]";
var email_normal = "请输入链接显示的文字，如果留空则直接显示邮件地址。";
var email_normal_input = "请输入邮件地址。";

var image_help = "插入图像\n\n在文本中插入一幅图像。\n例如：[img]http://www.dahangzhou.com/images/logo.gif[/img]";
var image_normal = "请输入图像的 URL。";

var flash_help = "插入 flash\n\n在文本中插入 flash 动画。\n例如：[swf]http://www.dahangzhou.com/ubb/images/eg.swf[/swf]";
var flash_normal = "请输入 flash 动画的 URL。";

var shockwave_help = "插入 shockwave\n\n在文本中插入 shockwave 动画。\n例如：[dir]http://www.dahangzhou.com/ubb/images/eg.dir[/dir]"
var shockwave_normal = "请输入 shockwave 动画的 URL。";

var realplay_help = "插入 realplay\n\n在文本中插入 realplay 文件。\n例如：[rm]http://www.dahangzhou.com/ubb/images/eg.rm[/rm]"
var realplay_normal = "请输入 realplay 文件的 URL。";

var mediaplay_help = "插入 mediaplay\n\n在文本中插入 mediaplay 文件。\n例如：[mp]http://www.dahangzhou.com/ubb/images/eg.wmv[/mp]"
var mediaplay_normal = "请输入 mediaplay 文件的 URL。";

var quicktime_help = "插入 quicktime\n\n在文本中插入 quicktime 文件。\n例如：[qt]http://www.dahangzhou.com/ubb/images/eg.3gp[/qt]"
var quicktime_normal = "请输入 quicktime 文件的 URL。";

var code_help = "插入代码\n\n插入程序或脚本原始代码。\n例如：[code]echo \"这里是我们的论坛\";[/code]";
var code_normal = "请输入要插入的代码。";

var quote_help = "插入引用\n\n将标签所包围的文本作为引用特殊显示。\n例如：[quote]www.dahangzhou.com是由大杭州的域名[/quote]";
var quote_normal = "请输入要作为引用显示的文字。";

var move_help = "插入移动效果的文字\n\n标签所包围的文本使用移动效果。\n例如：[move]移动效果[/move]";
var move_normal = "请输入要使用移动效果的文字。";

var fly_help = "插入飞行效果的文字\n\n标签所包围的文本使用飞行效果。\n例如：[fly]飞行效果[/fly]";
var fly_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 smilie_help = "插入表情"
//End Define

//默认模式(normalmode, advmode, helpmode)
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 setfocus() {
	document.MainForm.Content.focus();
}

function AddText(NewCode) {
	document.all ? insertAtCaret(document.MainForm.Content, NewCode) : document.MainForm.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 getSelectedText() {
        var post = document.MainForm.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;
}

function ctlent(eventobject)
{
	if(event.ctrlKey && window.event.keyCode==13)
	{
		var sInputString = document.MainForm.Content.value;
		sInputString = sInputString.replace(/\r\n/g,"");
		sInputString = sInputString.replace(/\r/g,"");
		sInputString = sInputString.replace(/\n/g,"");
		sInputString = sInputString.replace(/\s/g,"");
		
		if(sInputString =="")
		{
			alert("内容不能为空！");
			document.MainForm.Content.focus();
		}
		else
		document.MainForm.submit();
	}
}

//按钮函数
function chfont(font) {
	if (helpmode){
		alert(font_help);
	} else if (getSelectedText()) {
		var range = document.selection.createRange();
		range.text = "[face=" + font + "]" + range.text + "[/face]";
	} else if (advmode) {
		AddTxt="[face="+font+"] [/face]";
		AddText(AddTxt);
	} else {
		txt=prompt(font_normal,text_input);
		if (txt!=null) {
			AddTxt="[face="+font+"]"+txt;
			AddText(AddTxt);
			AddText("[/face]");
		}
	}
}

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 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 bold() {
	if (helpmode) {
		alert(bold_help);
	} else if (getSelectedText()) {
		var range = document.selection.createRange();
		range.text = "[b]" + range.text + "[/b]";
	} 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 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 center() {
	if (helpmode) {
		alert(center_help);
	} else if (getSelectedText()) {
		var range = document.selection.createRange();
		range.text = "[align=center]" + range.text + "[/align]";
	} else if (advmode) {
		AddTxt="[align=center] [/align]";
		AddText(AddTxt);
	} else {
		txt=prompt(center_normal,text_input);
		if (txt!=null) {
			AddTxt="[align=center]"+txt;
			AddText(AddTxt);
			AddText("[/align]");
		}
	}
}

function right() {
	if (helpmode) {
		alert(right_help);
	} else if (getSelectedText()) {
		var range = document.selection.createRange();
		range.text = "[align=right]" + range.text + "[/align]";
	} else if (advmode) {
		AddTxt="[align=right] [/align]";
		AddText(AddTxt);
	} else {
		txt=prompt(right_normal,text_input);
		if (txt!=null) {
			AddTxt="[align=right]"+txt;
			AddText(AddTxt);
			AddText("[/align]");
		}
	}
}

function hyperlink() {
	if (helpmode) {
		alert(link_help);
	} 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 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 image() {
	if (helpmode){
		alert(image_help);
	} else if (advmode) {
		AddTxt="[img] [/img]";
		AddText(AddTxt);
	} else {
		txt=prompt(image_normal,"http://");
		if(txt!=null) {
			AddTxt="[img]"+txt;
			AddText(AddTxt);
			AddText("[/img]");
		}
	}
}

function flash() {
	if (helpmode){
		alert(flash_help);
	} else if (advmode) {
		AddTxt="[swf] [/swf]";
		AddText(AddTxt);
	} else {
		txt=prompt(flash_normal,"http://");
		if(txt!=null) {
			AddTxt="[swf]"+txt;
			AddText(AddTxt);
			AddText("[/swf]");
		}
	}
}

function shockwave() {
	if (helpmode){
		alert(shockwave_help);
	} else if (advmode) {
		AddTxt="[dir] [/dir]";
		AddText(AddTxt);
	} else {
		txt=prompt(shockwave_normal,"http://");
		if(txt!=null) {
			AddTxt="[dir]"+txt;
			AddText(AddTxt);
			AddText("[/dir]");
		}
	}
}

function realplay() {
	if (helpmode){
		alert(realplay_help);
	} else if (advmode) {
		AddTxt="[rp] [/rp]";
		AddText(AddTxt);
	} else {
		txt=prompt(realplay_normal,"http://");
		if(txt!=null) {
			AddTxt="[rp]"+txt;
			AddText(AddTxt);
			AddText("[/rp]");
		}
	}
}

function mediaplay() {
	if (helpmode){
		alert(mediaplay_help);
	} else if (advmode) {
		AddTxt="[mp] [/mp]";
		AddText(AddTxt);
	} else {
		txt=prompt(mediaplay_normal,"http://");
		if(txt!=null) {
			AddTxt="[mp]"+txt;
			AddText(AddTxt);
			AddText("[/mp]");
		}
	}
}

function quicktime() {
	if (helpmode){
		alert(quicktime_help);
	} else if (advmode) {
		AddTxt="[qt] [/qt]";
		AddText(AddTxt);
	} else {
		txt=prompt(quicktime_normal,"http://");
		if(txt!=null) {
			AddTxt="[qt]"+txt;
			AddText(AddTxt);
			AddText("[/qt]");
		}
	}
}

function code() {
	if (helpmode) {
		alert(code_help);
	} else if (getSelectedText()) {
		var range = document.selection.createRange();
		range.text = "[code]" + range.text + "[/code]";
	} else if (advmode) {
		AddTxt="[code]\r[/code]";
		AddText(AddTxt);
	} else {
		txt=prompt(code_normal,"");
		if (txt!=null) {
			AddTxt="[code]"+txt;
			AddText(AddTxt);
			AddText("[/code]");
		}
	}
}

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="[quote][/quote]";
		AddText(AddTxt);
	} else {
		txt=prompt(quote_normal,text_input);
		if(txt!=null) {
			AddTxt="[quote]"+txt;
			AddText(AddTxt);
			AddText("[/quote]");
		}
	}
}
function quotedetail(who,txt) {
	if (helpmode){
		alert(quote_help);
	} 
	else {
		if(who!=null && txt!=null) {
			AddTxt="[quote][b][color=Red]"+who+"说：[/color][/b]\r\n"+txt;
			AddText(AddTxt);
			AddText("[/quote]");
		}
	}
}
function move() {
	if (helpmode){
		alert(move_help);
	} else if (advmode) {
		AddTxt="[move] [/move]";
		AddText(AddTxt);
	} else {
		txt=prompt(move_normal,"");
		if(txt!=null) {
			AddTxt="[move]"+txt;
			AddText(AddTxt);
			AddText("[/move]");
		}
	}
}

function fly() {
	if (helpmode){
		alert(fly_help);
	} else if (advmode) {
		AddTxt="[fly] [/fly]";
		AddText(AddTxt);
	} else {
		txt=prompt(fly_normal,"");
		if(txt!=null) {
			AddTxt="[fly]"+txt;
			AddText(AddTxt);
			AddText("[/fly]");
		}
	}
}

function list() {
	if (helpmode) {
		alert(list_help);
	} else if (advmode) {
		AddTxt="[list][*][*][*][/list]";
		AddText(AddTxt);
	} else {
		txt=prompt(list_normal,"");
		while ((txt!="") && (txt!="A") && (txt!="a") && (txt!="1") && (txt!=null)) {
			txt=prompt(list_normal_error,"");
		}
		if (txt!=null) {
			if (txt=="") {
				AddTxt="[list]";
			} else {
				AddTxt="[list="+txt+"]";
			}
			txt="1";
			while ((txt!="") && (txt!=null)) {
				txt=prompt(list_normal_input,"");
				if (txt!="") {
					AddTxt+="[*]"+txt+"[/*]";
				}
			}
			AddTxt+="[/list]";
			AddText(AddTxt);
		}
	}
}

//
function insertsmilie(em) {
	if (helpmode){
		alert(smilie_help);
	} 
	else {
		AddText(em);
	}
}

function html_trans(str) 
{
	str = str.replace(/\r\n/g,"");
	str = str.replace(/\r/g,"");
	str = str.replace(/\n/g,"");
	str = str.replace(/on(load|click|dbclick|mouseover|mousedown|mouseup)="[^"]+"/ig,"");
	str = str.replace(/<script[^>]*?>([\w\W]*?)<\/script>/ig,"");
	str = str.replace(/<a[^>]+href="(javascript:[^"]+)"[^>]*?>(.*?)<\/a>/ig,"$2");
	str = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)<\/a>/ig,"[url=$1]$2[/url]");
	str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig,"[color=$1]$2[/color]");
	str = str.replace(/<img[^>]+src="([^"]+)"[^>]*>/ig,"[img]$1[/img]");
	str = str.replace(/<([\/]?)b>/ig,"[$1b]");
	str = str.replace(/<([\/]?)strong>/ig,"[$1b]");
	str = str.replace(/<([\/]?)u>/ig,"[$1u]");
	str = str.replace(/<([\/]?)i>/ig,"[$1i]");
	str = str.replace(/<([\/]?)center>/ig,"[$1center]");
	str = str.replace(/<div[^>]*?align="?(center|right)"?[^>]*?>(.*?)<\/div>/ig,"[align=$1]$2[/align]");
	str = str.replace(/<td[^>]*?align="?(center|right)"?[^>]*?>(.*?)<\/td>/ig,"[align=$1]$2[/align]");
	str = str.replace(/<td[^>]*?align="?middle"?[^>]*?>(.*?)<\/td>/ig,"[align=center]$1[/align]");
	str = str.replace(/<tr[^>]*?>/ig,"\r\n");
	str = str.replace(/<p[^>]*?>/ig,"\r\n");
	str = str.replace(/&nbsp;/g," ");
	str = str.replace(/&amp;/g,"&");
	str = str.replace(/&quot;/g,"\"");
	str = str.replace(/&lt;/g,"<");
	str = str.replace(/&gt;/g,">");
	str = str.replace(/<br>/ig,"\r\n");
	str = str.replace(/<[^>]*?>/g,"");
	
	str = str.replace(/\[b\](\s*)\[\/b\]/ig,"");
	str = str.replace(/\[i\](\s*)\[\/i\]/ig,"");
	str = str.replace(/\[i\](\s*)\[\/i\]/ig,"");
	str = str.replace(/\[center\](\s*)\[\/center\]/ig,"");
	str = str.replace(/\[img\](\s*)\[\/img\]/ig,"");
	str = str.replace(/\[url=([^\]]*?)\](\s*)\[\/url\]/ig,"");
	str = str.replace(/\[url=(\s*)\]([^\]]*?)\[\/url\]/ig,"");
	str = str.replace(/\[color=([^\]]*?)\](\s*)\[\/color\]/ig,"");
	str = str.replace(/\[color=(\s*)\]([^\]]*?)\[\/color\]/ig,"");
	str = str.replace(/\[align=(center|right)\](\s*)\[\/align\]/ig,"");
	str = str.replace(/\[url=([^\]]+)\]\n(\[img\]\1\[\/img\])\n\[\/url\]/ig,"$2");
    
	return str;
}
