www.gusucode.com > QQ空间互踩联盟源码程序asp编程 > ubb/js/ubb.js

    domain = "www.eedit.cn"

function callclip(param)
{
	eval(param).focus();
	eval(param).document.execCommand("selectAll");
	eval(param).document.execCommand("Copy");
	alert('复制成功!');
}
function clearALL()
{
	if(confirm('这个操作很可能让您前功尽弃,是否要清空所有内容?')){
		//删除及建立数组
		delete arrUndo;	
		arrUndo = new Array();
		document.getElementById('main_editer').focus();
		document.getElementById('main_editer').document.execCommand("selectAll");
		document.getElementById('main_editer').document.execCommand('Copy');
		document.getElementById('main_editer').value='';
		previw(1);
		document.getElementById('main_editer').focus();
	}
}

var UBBrange;

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 get_textarea()	//获取文本
{
	var post = main_editer;
	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 set_textarea(str)		//应用文本
{
	var r=document.selection.createRange();
	if(r.text==''){
		document.all ? insertAtCaret(main_editer, str) : main_editer.value += str;
	}else{
		r.text=str;
	}
	newUndo(document.getElementById("main_editer").value);
	previw(0);
}
function show_win(win_name,flag){
	if(flag==0){
		if(document.all[win_name].style.display==''){
			document.all[win_name].style.display='none';
		}else{
			document.all[win_name].style.display='';
		}
	}else if(flag==1){
		document.all[win_name].style.display='';
	}else if(flag==2){
		document.all[win_name].style.display='none';
	}
}
function set_font()		//设置字体
{
	var s = get_textarea();
	if(selFont.selectedIndex!=0){
	s = '[ftf=' + selFont.options[selFont.selectedIndex].value + ']'+ s + '[/ft]';
	}
	selFont.selectedIndex=0;
	set_textarea(s);
}
function set_fontsize()		//设置字体大小
{
	var s = get_textarea();
	if(selFontSize.selectedIndex!=0){
		s = '[fts=' + selFontSize.options[selFontSize.selectedIndex].value + ']'+ s + '[/ft]';
	}
	selFontSize.selectedIndex=0;
	set_textarea(s);
}
function be_bold()	//加粗
{
	var s = get_textarea();
	s = '[B]'+ s + '[/B]';
	set_textarea(s);
}
function be_italicize()	//加斜体
{
	var s = get_textarea();
	s = '[I]'+ s + '[/I]';
	set_textarea(s);
}
function be_underline()	//加下划线
{
	var s = get_textarea();
	s = '[U]'+ s + '[/U]';
	set_textarea(s);
}
function set_color(s_col,s_col2,flag,s)	//设置颜色
{
	if(s=='') s = get_textarea();
	if(flag){
		s = '[ffg,'+s_col+','+s_col2+']'+s+'[/ft]'
	}else{
		s = '[ftc='+ s_col + ']' + s + '[/ft]';
	}
	set_textarea(s);
}
function be_url()	//设置超级链接
{
	var s = get_textarea();
	s = '[url='+ s + ']'+ s + '[/url]';
	set_textarea(s);
}
function be_email()	//设置超级链接
{
	var s = get_textarea();
	s = '[email]'+ s + '[/email]';
	set_textarea(s);
}
function set_face(s_face)	//设置表情
{
	var s = get_textarea();
	s = s + '[em]' + s_face + '[/em]';
	set_textarea(s);
}
function be_image(s)	//设置图片
{
	if(s=='') s = get_textarea();
	s = '[img]'+ s + '[/img]';
	set_textarea(s);
}
function be_center()	//置中
{
	var s = get_textarea();
	s = '[M]'+ s + '[/M]';
	set_textarea(s);
}
function be_right()	//置右
{
	var s = get_textarea();
	s = '[R]'+ s + '[/R]';
	set_textarea(s);
}
function set_flash()		//设置flash
{
	var s = get_textarea();
	var wfh,wfw,wfl,wft;
	if(win_flash_bg.checked){
		if(win_flash_autosize.checked){
			wfw=350;
			wfh=300;
		}else{
			wfw=win_flash_width.value;
			wfh=win_flash_height.value;
		}
		wfl=win_flash_left.value;
		wft=win_flash_top.value;
		s='[flasht,' + wfw + ',' + wfh + ',' + wfl + ',' + wft + ']' + win_flash_url.value + '[/flasht]'
	}else{
		if(win_flash_autosize.checked){
			s='[flash]' + win_flash_url.value + '[/flash]'
		}else{
			wfw=win_flash_width.value;
			wfh=win_flash_height.value;
			s='[flash,' + wfw + ',' + wfh + ']' + win_flash_url.value + '[/flash]'
		}
	}
	set_textarea(s);
	show_win("win_flash",2);
}
function set_video()		//设置video
{
	var s = get_textarea();
	var wvh,wvw,wvap,wvar
	if(win_video_autoplay.checked){wvap='true';}else{wvap='false';}
	if(win_video_autoreplay.checked){wvar='true';}else{wvar='false';}
	if(win_video_autosize.checked){
		s='[video,'+ wvar +','+ wvap +']' + win_video_url.value + '[/video]'
	}else{
		wvw=win_video_width.value;
		wvh=win_video_height.value;
		s='[video,'+ wvw +','+ wvh +','+ wvar +','+ wvap +']' + win_video_url.value + '[/video]'
	}
	set_textarea(s);
	show_win("win_video",2);
}
function set_audio()		//设置audio
{
	var s = get_textarea();
	var waar,waap,wah
	if(win_audio_autoplay.checked){waap='true';}else{waap='false';}
	if(win_audio_autoreplay.checked){waar='true';}else{waar='false';}
	if(win_audio_hide.checked){wah='true';}else{wah='false';}
	s='[audio,'+ waar +','+ waap +','+ wah +']' + win_audio_url.value + '[/audio]'
	set_textarea(s);
	show_win("win_audio",2);
}
function set_rainbow(){	//设置彩虹文字
	
	var wr_text = win_rainbow_text.value;
	var wr_code,wr_rgb,r,g,b,i,j,istep
	var wr_rgb1,wr_rgb2,r1,g1,b1,r2,g2,b2
	
	r1=g1=b1=r2=g2=b2=0;
	r=0;g=0;b=0;istep=0;
	wr_code='';
	
	if(wr_text==''){
		show_win('win_rainbow',0);
		return;
	}
	
	if(win_rainbow_style1.checked){
		istep=40;
		r=255;i=1;j=0;
		do{
			if(wr_text.charCodeAt(j) != 32){
				if(g+istep<256){
					if(i==1)g+=istep;
				}else if(i==1){
					i=2;g=255;
				}
				if(r-istep>-1){
					if(i==2)r-=istep;
				}else if(i==2){
					i=3;r=0;
				}
				if(b+istep<256){
					if(i==3)b+=istep;
				}else if(i==3){
					i=4;b=255;
				}
				if(g-istep>-1){
					if(i==4)g-=istep;
				}else if(i==4){
					i=5;g=0;
				}
				if(r+istep<256){
					if(i==5)r+=istep;
				}else if(i==5){
					i=6;r=255;
				}
				if(b-istep>-1){
					if(i==6)b-=istep;
				}else if(i==6){
					i=1;b=0;
				}
				wr_rgb='';
				wr_rgb+=parseInt(r).toString(16).length==1 ? 0+parseInt(r).toString(16) : parseInt(r).toString(16);
				wr_rgb+=parseInt(g).toString(16).length==1 ? 0+parseInt(g).toString(16) : parseInt(g).toString(16);
				wr_rgb+=parseInt(b).toString(16).length==1 ? 0+parseInt(b).toString(16) : parseInt(b).toString(16);
				wr_rgb=wr_rgb.toUpperCase();
				wr_code+='[ftc='+ wr_rgb +']'+wr_text.charAt(j)+'[/ft]';
			}else{
				wr_code+=wr_text.charAt(j);
			}
			j++;
		}while (j<wr_text.length);
	}else if(win_rainbow_style2.checked){
		istep=255/wr_text.length;
		for(i=1;i<wr_text.length+1;i++){
			if(wr_text.charCodeAt(i-1)!=32){
				r+=istep;
				g+=istep;
				b+=istep;
				if(r>255) r=255;
				if(g>255) g=255;
				if(b>255) b=255;
				wr_rgb='';
				wr_rgb+=parseInt(r).toString(16).length==1 ? 0+parseInt(r).toString(16) : parseInt(r).toString(16);
				wr_rgb+=parseInt(g).toString(16).length==1 ? 0+parseInt(g).toString(16) : parseInt(g).toString(16);
				wr_rgb+=parseInt(b).toString(16).length==1 ? 0+parseInt(b).toString(16) : parseInt(b).toString(16);
				wr_rgb=wr_rgb.toUpperCase();
				wr_code+='[ftc='+ wr_rgb +']'+wr_text.charAt(i-1)+'[/ft]';
			}else{
				wr_code+=wr_text.charAt(i-1);
			}
		}
	}else if(win_rainbow_style3.checked){
		istep=255/wr_text.length;
		for(i=1;i<wr_text.length+1;i++){
			if(wr_text.charCodeAt(i-1)!=32){
				r+=istep;
				g=29;
				b=36;
				if(r>255) r=255;
				if(g>255) g=255;
				if(b>255) b=255;
				wr_rgb='';
				wr_rgb+=parseInt(r).toString(16).length==1 ? 0+parseInt(r).toString(16) : parseInt(r).toString(16);
				wr_rgb+=parseInt(g).toString(16).length==1 ? 0+parseInt(g).toString(16) : parseInt(g).toString(16);
				wr_rgb+=parseInt(b).toString(16).length==1 ? 0+parseInt(b).toString(16) : parseInt(b).toString(16);
				wr_rgb=wr_rgb.toUpperCase();
				wr_code+='[ftc='+ wr_rgb +']'+wr_text.charAt(i-1)+'[/ft]';
			}else{
				wr_code+=wr_text.charAt(i-1);
			}
		}
	}else if(win_rainbow_style4.checked){
		istep=255/wr_text.length;
		for(i=1;i<wr_text.length+1;i++){
			if(wr_text.charCodeAt(i-1)!=32){
				r=0;
				g=174;
				b+=istep;
				if(r>255) r=255;
				if(g>255) g=255;
				if(b>255) b=255;
				wr_rgb='';
				wr_rgb+=parseInt(r).toString(16).length==1 ? 0+parseInt(r).toString(16) : parseInt(r).toString(16);
				wr_rgb+=parseInt(g).toString(16).length==1 ? 0+parseInt(g).toString(16) : parseInt(g).toString(16);
				wr_rgb+=parseInt(255-b).toString(16).length==1 ? 0+parseInt(255-b).toString(16) : parseInt(255-b).toString(16);
				wr_rgb=wr_rgb.toUpperCase();
				wr_code+='[ftc='+ wr_rgb +']'+wr_text.charAt(i-1)+'[/ft]';
			}else{
				wr_code+=wr_text.charAt(i-1);
			}
		}
	}else if(win_rainbow_style5.checked){
		if(win_rainbow_A.value.length!=6||win_rainbow_B.value.length!=6){
			alert('颜色代码错误!');
			return;
		}else{
			wr_rgb1=win_rainbow_A.value;
			wr_rgb2=win_rainbow_B.value;
			r1=parseInt("0x"+String(wr_rgb1).substr(0,2));
			g1=parseInt("0x"+String(wr_rgb1).substr(2,2));
			b1=parseInt("0x"+String(wr_rgb1).substr(4,2));
			r2=parseInt("0x"+String(wr_rgb2).substr(0,2));
			g2=parseInt("0x"+String(wr_rgb2).substr(2,2));
			b2=parseInt("0x"+String(wr_rgb2).substr(4,2));;
			if(isNaN(r1)) r1=0
			if(isNaN(g1)) g1=0
			if(isNaN(b1)) b1=0
			if(isNaN(r2)) r2=0
			if(isNaN(g2)) g2=0
			if(isNaN(b2)) b2=0
			istep=255/wr_text.length;
			for(i=1;i<wr_text.length+1;i++){
				if(wr_text.charCodeAt(i-1)!=32){
					wr_rgb='';
					wr_rgb+=parseInt(r1).toString(16).length==1 ? 0+parseInt(r1).toString(16) : parseInt(r1).toString(16);
					wr_rgb+=parseInt(g1).toString(16).length==1 ? 0+parseInt(g1).toString(16) : parseInt(g1).toString(16);
					wr_rgb+=parseInt(b1).toString(16).length==1 ? 0+parseInt(b1).toString(16) : parseInt(b1).toString(16);
					wr_rgb=wr_rgb.toUpperCase();
					wr_code+='[ftc='+ wr_rgb +']'+wr_text.charAt(i-1)+'[/ft]';
					r1>r2?r1-=istep:r1+=istep;
					g1>g2?g1-=istep:g1+=istep;
					b1>b2?b1-=istep:b1+=istep;
					if(r1>255) r1=255;
					if(r1<0) r1=0;
					if(g1>255) g1=255;
					if(g1<0) g1=0;
					if(b1>255) b1=255;
					if(b1<0) b1=0;
				}else{
				wr_code+=wr_text.charAt(i-1);
				}
			}
		}
	}
	set_textarea(wr_code);
	show_win("win_rainbow",0);
}

function be_marquee()	//滚动文字
{
	var s = get_textarea();
	s = '[marque]'+ s + '[/marque]';
	set_textarea(s);
}

var me_value;
function previw(flag) {
	if(flag==1||auto_preview.checked){
		if(me_value!=main_editer.value){
			pr.innerHTML=ubbReplace(main_editer.value,'all');
			me_value=main_editer.value;
			move_all_div();
		}
	}
}
//用来移动浮动FLASH,使之能正确显示在相对位置
function move_all_div()
{
	//try{
	var tmp_adv=0;
	var tmp_x=0;
	var tmp_y=0;
	var int_x=0,int_y=0;
	if(adv_mode!=undefined){tmp_adv=adv_mode;}else{tmp_adv=0}
	if(flas_div_x!=undefined){tmp_x=flas_div_x;}else{tmp_x=200}
	if(flas_div_y!=undefined){tmp_y=flas_div_y;}else{tmp_y=320}
	if(tmp_adv!=1){
		var arrDiv = document.getElementsByTagName("EMBED");
		for(var i=0; i<arrDiv.length; i++){
			int_x=0;
			int_y=0;
			if(arrDiv[i].id=='preFlash'){
				if(isNaN(parseInt(arrDiv[i].style.top,10))){int_y=0;}else{int_x=parseInt(arrDiv[i].style.top,10);}
				if(isNaN(parseInt(arrDiv[i].style.left,10))){int_x=0;}else{int_x=parseInt(arrDiv[i].style.left,10);}
				if(isNaN(int_x)){int_x=0};
				if(isNaN(int_y)){int_y=0};
				int_x+=tmp_x;
				int_y+=tmp_y;
				arrDiv[i].style.top=int_y+"px";
				arrDiv[i].style.left=int_x+"px";
			}
			//arrDiv[i].style.left=parseInt(arrDiv[i].style.top)+280+"px"
			//arrDiv[i].style.left=(document.documentElement.scrollWidth-parseInt(arrDiv[i].width))/2+"px"
		}
	}
	//}catch(e){}
}
//写图片集的代码
function write_moreimage_list(){
	var s;
	s='';
	//Cyworld的像素画,总量 496 张
	s+="<option name ='Cyworld' value='496' selected>Cyworld 像素画</option>";
	//从网上手机的分隔栏 728 张
	s+="<option name ='fgx' value='728'>各种分隔线</option>";
	//精美的像素画
	s+="<option name ='pix01' value='200'>精美的像素画</option>";
	//糖提供的图片仓库的GIF
	s+="<option name ='pix02' value='336'>挂件1(by糖)</option>";
	document.write(s);
}
//图片集翻页
function win_moreimage_page(ipage){
	var pagenum = 20;
	var s,t;
	
	var maxIndex = parseInt(win_moreimage_list.options[win_moreimage_list.selectedIndex].value);
	var path = win_moreimage_list.options[win_moreimage_list.selectedIndex].name;
	
	if(ipage<1) ipage=1;
	if((ipage-1)*pagenum>maxIndex){
		if(maxIndex % pagenum==0){ipage=maxIndex/pagenum;}else{ipage=parseInt(maxIndex/pagenum+1);}
	}
	
	s='';
	
	s+="<img src='sbb_Previous2.gif' onClick='win_moreimage_page("+(ipage-5)+");' alt='前 5 页'> "
	s+="<img src='sbb_Previous.gif' onClick='win_moreimage_page("+(ipage-1)+");' alt='前一页'> "
	for(var i=ipage-2;i<ipage+3;i++){
		if(i>0&&(i-1)*pagenum<maxIndex){
			if(i==ipage){
				s+="<B>"+i+"</B> "
			}else{
				s+="<a href='#' onClick='win_moreimage_page("+i+")';>" + i + "</a> ";
			}
		}
	}
	s+="<img src='sbb_next.gif' onClick='win_moreimage_page("+(ipage+1)+");' alt='下一页'> "
	s+="<img src='sbb_next2.gif' onClick='win_moreimage_page("+(ipage+5)+");' alt='下 5 页'> "
	s+="<br>";
	
	for(var i=(ipage-1)*pagenum+1;i<ipage*pagenum+1;i++){
		if(i<maxIndex+1){
			t=i.toString();
			if(t.length==1) t="00"+t;
			if(t.length==2) t="0"+t;
			s+="<img src='"+path+"/img"+t+".gif' class='moreimage' onClick='be_moreimage(this.src);'>";
		}
	}
	win_moreimage_bar.innerHTML = s;
}
function be_moreimage(str){
	be_image(str);
	show_win("win_moreimage",0);
}

///FLASH集代码.......................
function write_moreflash_list(){
	var s;
	s='';
	//来自21CN的FLASH漂浮
	s+="<option name ='21cn' value='209' selected>漂浮(21cn)</option>";
	s+="<option name ='kiss'  value='18'>漂浮(18)</option>";
	s+="<option name ='flash4'  value='42'>漂浮(42I)</option>";
	s+="<option name ='flash5'  value='42'>漂浮(42II)</option>";
	s+="<option name ='flash3'  value='49'>漂浮(杂)</option>";
	document.write(s);
}
//FLASH集翻页
function win_moreflash_page(ipage){
	var pagenum = 1;
	var s,t;
	
	var maxIndex = parseInt(win_moreflash_list.options[win_moreflash_list.selectedIndex].value);
	var path = win_moreflash_list.options[win_moreflash_list.selectedIndex].name;
	
	if(ipage<1) ipage=1;
	if((ipage-1)*pagenum>maxIndex){
		if(maxIndex % pagenum==0){ipage=maxIndex/pagenum;}else{ipage=parseInt(maxIndex/pagenum+1);}
	}
	
	s='';
	
	s+="<img src='sbb_Previous2.gif' onClick='win_moreflash_page("+(ipage-5)+");' alt='前第 5 个'> "
	s+="<img src='sbb_Previous.gif' onClick='win_moreflash_page("+(ipage-1)+");' alt='前一个'> "
	s+=" "+ ipage +" ";
	s+="<img src='sbb_next.gif' onClick='win_moreflash_page("+(ipage+1)+");' alt='下一个'> "
	s+="<img src='sbb_next2.gif' onClick='win_moreflash_page("+(ipage+5)+");' alt='下第 5 个'><BR>"
	for(var i=ipage-49;i<ipage+50;i++){
		if(i>0&&(i-1)*pagenum<maxIndex){
			if(i==ipage){
				s+="<B>"+i+"</B> "
			}else{
				s+="<a href='javascript:win_moreflash_page("+i+")';>" + i + "</a> ";
			}
		}
	}
	s+="<br>";
	s+="  <font color='#FFFFFF' style='background-color:#000000;' onMousemove='thePreFlashDiv.style.backgroundColor=\"#000000\";'> 黑 </font> <font color='#000000' style='background-color:#FFFFFF;' onMousemove='thePreFlashDiv.style.backgroundColor=\"#FFFFFF\";'> 白 </font><br>";
	
	for(var i=(ipage-1)*pagenum+1;i<ipage*pagenum+1;i++){
		if(i<maxIndex+1){
			t=i.toString();
			if(t.length==1) t="00"+t;
			if(t.length==2) t="0"+t;
			s+="<div id='thePreFlashDiv' style='background-color:#000000;' width='500' height='400'><EMBED id='thePreFlash'  width='500' height='400' allowscriptaccess='never' wmode='transparent' menu='false' src='"+path+"/flash"+t+".swf'  type='application/octet-stream' quality='high' /></div>"
			//s+="<img src='"+path+"/img"+t+".gif' class='moreflash' onClick='be_moreflash(this.src);'>";
		}
	}
	s+="<br><input type=button class='inputbutton' value='提交' onclick='be_moreflash(thePreFlash.src);'>"
	win_moreflash_bar.innerHTML = s;
}
function be_moreflash(str){
	set_textarea('[flasht,' + 640 + ',' + 480 + ',' + 0 + ',' + 0 + ']http://'+ domain + "/" + str + '[/flasht]');
	show_win("win_moreflash",0);
}


///符号集代码.......................
function write_moretext_list(){
	var s;
	s='';
	s+="<option value='。,、;:?!…—·ˉˇ¨‘’“”々~‖∶"'`|〃〔〕〈〉《》「」『』.〖〗【】()[]{}' selected>标点符号集</option>";
	s+="<option value='αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ'>希腊字母</option>";
	s+="<option value='абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'>俄文</option>";
	s+="<option value='ㄅㄉㄓㄚㄞㄢㄦㄆㄊㄍㄐㄔㄗㄧㄛㄟㄣㄇㄋㄎㄑㄕㄘㄨㄜㄠㄤㄈㄏㄒㄖㄙㄩㄝㄡㄥ'>注音符号</option>";
	s+="<option value='āáǎàōóǒòêēéěèīíǐìūúǔùǖǘǚǜü'>拼音</option>";
	s+="<option value='ぁぃぅぇぉかきくけこんさしすせそたちつってとゐなにぬねのはひふへほゑまみむめもゃゅょゎをあいうえおがぎぐげござじずぜぞだぢづでどぱぴぷぺぽばびぶべぼらりるれろやゆよわ'>日文平假名</option>";
	s+="<option value='ァィゥヴェォカヵキクケヶコサシスセソタチツッテトヰンナニヌネノハヒフヘホヱマミムメモャュョヮヲアイウエオガギグゲゴザジズゼゾダヂヅデドパピプペポバビブベボラリルレロヤユヨワ'>日文片假名</option>";
	s+="<option value='ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩①②③④⑤⑥⑦⑧⑨⑩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇'>数字序号</option>";
	s+="<option value='≈≡≠=≤≥<>≮≯∷±+-×÷/∫∮∝∞∧∨∑∏∪∩∈∵∴⊥∥∠⌒⊙≌∽√'>数学符号</option>";
	s+="<option value='┌┍┎┏┐┑┒┓─┄┈├┝┞┟┠┡┢┣│┆┊┬┭┮┯┰┱┲┳┼┽┾┿╀╁╂╃└┕┖┗┘┙┚┛━┅┉┤┥┦┧┨┩┪┫┃┇┋┴┵┶┷┸┹┺┻╄╅╆╇╈╉╊╋≡ ╝╚╔ ╗╬ ═ ╓ ╩'>制表符</option>";
	s+="<option value='§№☆★○●◎◇◆□■△▲▼▽※→←↑↓〓#&@\^_ ̄'>特殊符号</option>";
	s+="<option value='▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▓▔▕◢◣◤◥☉♀♂'>方块符号</option>";
	document.write(s);
}
//符号集显示
function win_moretext_page(){
	var s='';
	var sText = win_moretext_list.options[win_moretext_list.selectedIndex].value;
	s+="<table cellpadding='0' cellspacing='0'><tr></tr>";
	for(var i=0;i<sText.length;i++){
		if(i%12==0) s+="</tr><tr>"
		s+="<td width=30 align='center' valign='middle' class='border_color' style='height: 30px;font-size: 12px;position: static;font-family: Verdana, Arial;cursor: hand;' onMouseOver='this.style.fontSize=\"18px\";' onMouseOut='this.style.fontSize=\"12px\";' onClick='set_textarea(this.innerHTML);'>"+sText.substr(i,1)+"</td>";
	}
	s+='</tr></table>';
	win_moretext_bar.innerHTML = s;
}

//去除代码
function be_nocode(sExp)
{
	var s = get_textarea();
	if(s==''){
		alert('请选中要去除代码的文字!');
		return;
	}
	var rExp=new RegExp(sExp,"g");
	set_textarea(s.replace(rExp,""));
}

//撤销功能
var arrUndo = new Array();
function newUndo(str){
	if(str==undefined){str='';}
	if(str!=arrUndo[arrUndo.length-1]){arrUndo.push(str);}
}
function getUndo(obj){
	if(arrUndo.length>0){
		arrUndo.pop();
		obj.value = arrUndo[arrUndo.length-1]==undefined?'':arrUndo[arrUndo.length-1];
		previw(0);
	}
}

//从腾讯QQ空间上要来的代码,稍作更改
//**********************************
//**********************************
//**********************************
//**********************************
//**********************************
//**********************************
//**********************************
var imgcacheDomain='imgcache.qq.com';
var isIE=1;
	
function ubbReplace(srcString, replacewhat) {
	
	srcString =	Text2HTML(entityReplace(srcString));
	srcString = srcString.replace(/([ -!:-@\[-`\{-~、。·ˉˇ¨〃々~‖…‘’“”〔〕〈〉!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}ˊˋ﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡﹢﹣﹤﹥﹦﹨﹩﹪﹫]{18})/g,"$1<wbr>")
	//表情
	if(/(all)|(face)/.test(replacewhat))
		srcString = srcString.replace(/\[em\]e(\d{1,3})\[\/em\]/g, "<img src='http://"+domain+"/img/em/e$1.gif' hspace='3' vspace='3' align='absmiddle'><wbr>");

	//超链接
	if(/(all)|(anchor)/.test(replacewhat))
		srcString = srcString.replace(/\[url=(http[^\]\"\']+)]([^\[]+)\[\/url\]/g, "<a href='$1' target='_blank'>$2</a><wbr>").replace(/\[url=([^\]\"\']+)](http[^\[]+)\[\/url\]/g, "<a href='$2' target='_blank'>$1</a><wbr>").replace(/\[url]([^\[\"\']+)\[\/url\]/g, "<a href='$1' target='_blank'>$1</a><wbr>");

	if(/all/.test(replacewhat))
		srcString = srcString.replace(/\[ppk_url=(http[^\]\"\']+)]([^\[]+)\[\/ppk_url\]/g, "<a href='$1' target='_blank' style='color:#EF6EA8'>$2</a><wbr>").replace(/\[url=([^\]\"\']+)](http[^\[]+)\[\/url\]/g, "<a href='$2' target='_blank'>$1</a><wbr>").replace(/\[url]([^\[\"\']+)\[\/url\]/g, "<a href='$1' target='_blank'>$1</a><wbr>");

	//图片
	if(/(all)|(image)/.test(replacewhat))	{
		srcString=srcString.replace(/\[img\][^\[]+((&#)|(")|(&quot;)|(my22)|(isme)|(r1\.cn)|(139\.com)|(eex\.cn)|(q-zone)|(qzone)|(cgi_client_entry)|([\'\"]))[^\[]+\[\/img\]/i, "[非法图片链接]");
 		var w = /sign/.test(replacewhat)?"670,160":"670,999";
        if (/imageLimit/.test(replacewhat)) {
        	var limitCount=0
			var regstr = /\[img\]http(.[^\]\'\"]*)\[\/img\]/i;		
        	while (regstr.exec(srcString) != null) {
        		if (limitCount>=1)
					srcString = srcString.replace(regstr, " <a href='http$1' target='_blank'>[图片链接]<a> ");
 				  else
 					srcString = srcString.replace(regstr, "<a href='http$1' target='_blank'><img onload='picsize(this,"+w+")'  src='about:blank' onerror=\"regImg(this,'http$1')\" border='0'><a> ");
	       		limitCount++
        	}
        }
		else 
		srcString = srcString.replace(/\[img\]http(.[^\]\'\"]*)\[\/img\]/ig, "<a href='http$1' target='_blank'><img onload='picsize(this,"+w+")'  src='about:blank' onerror=\"regImg(this,'http$1')\" border='0'><a> ");
	}
	 //flash
	if(/(all)|(flash)/.test(replacewhat))
	{
		var regstr = new RegExp("\\[flash,([0-9]{1,3}),([0-9]{1,3})\\]([\u2E80-\u9FFF0-9a-zA-Z&#=;.:_\\-?~\%/+;\/]{1,})\\[\\/flash\\]", "g");
		srcString = srcString.replace(regstr, "<EMBED allowscriptaccess='never' menu='false' src='$3' width='$1' height='$2'/><wbr>");
		var regstr = new RegExp("\\[flasht,([0-9]{1,4}),([0-9]{1,4}),([0-9]{1,4}),([0-9]{1,4})\\]([\u2E80-\u9FFF0-9a-zA-Z&#=;.:_\\-?~\%/+\/]{1,})\\[\\/flasht\\]", "g");
		//srcString = srcString.replace(regstr, "<EMBED allowscriptaccess='never' wmode='transparent' menu='false' src='$5' width='$1' height='$2' type='application/octet-stream' wmode='transparent' quality='high' style='position: absolute; left: $3; top: $4'/><wbr>");
		//将原来的绝对位置换成相对位置。
		//srcString = srcString.replace(regstr, "<div name='fl' style='position: absolute;left: $3; top: $4;' width='$1' height='$2'><EMBED allowscriptaccess='never' wmode='transparent' menu='false' src='$5' width='$1' height='$2' type='application/octet-stream' wmode='transparent' quality='high'/></div><wbr>");
		srcString = srcString.replace(regstr, "<EMBED id='preFlash' allowscriptaccess='never' wmode='transparent' menu='false' src='$5' width='$1' height='$2' type='application/octet-stream' wmode='transparent' quality='high' style='position: absolute;left: $3; top: $4;' width='$1' height='$2' /><wbr>");

	  var regstr = new RegExp("\\[flash\\]([\u2E80-\u9FFF0-9a-zA-Z&#=;.:_\\-?&~\%/+\/]{1,})\\[\\/flash\\]", "g");
		srcString = srcString.replace(regstr, "<EMBED allowscriptaccess='never' menu='false' src='$1'/><wbr>");
	}
	 //video
	if(/(all)|(video)/.test(replacewhat))
	{
		var regstr = new RegExp("\\[video,([0-9]{1,3}),([0-9]{1,3}),([truefals]{4,5}),([truefals]{4,5})\\]([\u2E80-\u9FFF0-9a-zA-Z&#=;.:_\\-?\%/+\/]{1,})\\[\\/video\\]", "g");
		srcString = srcString.replace(regstr, "<EMBED allowscriptaccess='never' enableContextMenu='False' src='$5' width='$1' height='$2' loop = '$3' autostart='$4' showstatusbar='1'/><wbr>");
		var regstr = new RegExp("\\[video,([truefals]{4,5}),([truefals]{4,5})\\]([\u2E80-\u9FFF0-9a-zA-Z&#=;.:_\\-?\%/+\/]{1,})\\[\\/video\\]", "g");
		srcString = srcString.replace(regstr, "<EMBED allowscriptaccess='never' enableContextMenu='False' src='$3' loop = '$1' autostart='$2' showstatusbar='1'/><wbr>");
	}

	//quote
	if(/(all)|(quote)/.test(replacewhat)){
			var srcString = srcString.replace(/\[quote=([^\]]*)\]/g,"\x00$1<br />\x02").replace(/\[\/quote\]/g,"\x01").replace(/\[quote\]/g,"\x00");
			var maxQuote = 2;
			for(var i=0;i<maxQuote;i++)
				srcString = srcString.replace(/\x00([^\x00\x01\x02]*)\x02?([^\x00\x01\x02]*)\x01/g, function(a,b,c){
					if(c=="")//alert("["+b+"]"+"\n"+"["+c+"]");
						return "<div class=\"mode_table_quote\"><span class=\"mode_table_quote_title\">引用内容:</span><br/>"+b+"</div>";
					else
						return "<div class=\"mode_table_quote\"><span class=\"mode_table_quote_title\">"+b+"引用内容:</span><br/>"+c+"</div>";
				});
			srcString=srcString.replace(/[\x00\x02\x01]/g,"");
	}
	//font
	var fontCount = 0;var a;

	//glow
	if(/(all\b)|(glow\b)/.test(replacewhat) && isIE){
		var regstr = /\[ffg,([a-zA-z#0-9]{1,10}),([a-zA-z&#=;0-9]{1,10})\]/g
		if(a = srcString.match(regstr)){
			fontCount+=a.length;
			srcString = srcString.replace(regstr, '<font style="filter: glow(color=$1,strength=3); height:10px; color:$2; padding:1px">');
		}
	}else	if(/glow_limit/.test(replacewhat) && isIE){
		var regstr = /\[ffg,([a-zA-z#0-9]{1,10}),([a-zA-z&#=;0-9]{1,10})\](.{1,30})\[\/ft\]/
		if(a = srcString.match(regstr)){
			if(!/\[f/.test(a[3]))
				srcString = srcString.replace(regstr, '<font style="filter: glow(color=$1,strength=3); height:10px; color:$2; padding:1px">$3</font>');
		}
	}

	//glow For msg
	if(/(all\b)|(glow_msg\b)/.test(replacewhat) && isIE){
		srcString = srcString.replace(/\[cx1\]([^\r]*?)\[\/cx1\]/g, '<span class="title_cx1">$1</span>');
		srcString = srcString.replace(/\[cx2\]([^\r]*?)\[\/cx2\]/g, '<span class="title_cx2">$1</span>');
	}

	var regstr = /\[ffg,([a-zA-z#0-9]{1,10}),([a-zA-z&#=;0-9]{1,10})\]/g
	if(a = srcString.match(regstr)){
		fontCount+=a.length;
		srcString = srcString.replace(regstr, "<font color='$1'><wbr>");
	}
	
	regstr = new RegExp("\\[ft=([^\\]]+)\\]", "g");
	if(a = srcString.match(regstr)){
		fontCount+=a.length;
		srcString = srcString.replace(regstr, function(){
			var s = arguments[1].split(",");
			var color = s[0]?' color='+s[0]:'';
			var size = s[1]?' size='+s[1]:'';		
			var face = s[2]?' face='+s[2]:'';
			return '<font'+color+size+face+' style="line-height:1.3em">'
		});
	}
	
	// color
	var regstr = new RegExp("\\[ftc=([a-zA-z#0-9]{1,10})\\]", "g");
	if(a = srcString.match(regstr)){
		fontCount+=a.length;
		srcString = srcString.replace(regstr, "<font color='$1'><wbr>");
	}
	// size
	var regstr = new RegExp("\\[fts=([1-6]{1,1})\\]", "g");
	if(a = srcString.match(regstr)){
		fontCount+=a.length;
		srcString = srcString.replace(regstr, "<font size='$1'  style='line-height:1.5em'><wbr>");
	}
	// font familly
	var regstr = new RegExp("\\[ftf=([\u4E00-\u9FFFa-zA-Z_0-9\,&#=;\\ ]{1,})\\]", "g");
	if(a = srcString.match(regstr)){
		fontCount+=a.length;
		srcString = srcString.replace(regstr, "<font face='$1'><wbr>");
	}


	var regstr = /\[\/ft\]/g;
	if(a = srcString.match(regstr)){
		fontCount-=a.length;
		srcString = srcString.replace(regstr, "</font><wbr>");
	}
	if(fontCount>0){
		srcString += (new Array(fontCount+1)).join("</font><wbr>");
	}

	//email
	if(/(all)|(email)/.test(replacewhat))
	{
		var regstr = new RegExp("\\[email\\]([0-9a-zA-Z&#=;._@\\@-]{1,})\\[\\/email\\]", "g");
		srcString = srcString.replace(regstr, "<a href='mailto:$1' target='_blank'>$1</a><wbr>");
		var regstr = new RegExp("\\[email=([\u4E00-\u9FFFa-zA-Z&#=;\\ ,.]{1,})\\]([0-9a-zA-Z&#=;._@\\@-]{1,})\\[\\/email\\]", "g");
		srcString = srcString.replace(regstr, "<a href='mailto:$2' target='_blank'>$1</a><wbr>");
	}

	//<j> replace font style

		var regstr = new RegExp("\\[B\\]", "g");
		srcString = srcString.replace(regstr, "<B><wbr>");

		var regstr = new RegExp("\\[\\/B\\]", "g");
		srcString = srcString.replace(regstr, "</B><wbr>");

		var regstr = new RegExp("\\[M\\]", "g");
		srcString = srcString.replace(regstr, "<center>");

		var regstr = new RegExp("\\[\\/M\\]", "g");
		srcString = srcString.replace(regstr, "</center>");

		var regstr = new RegExp("\\[R\\]", "g");
		srcString = srcString.replace(regstr, "<center style='text-align: right'>");

		var regstr = new RegExp("\\[\\/R\\]", "g");
		srcString = srcString.replace(regstr, "</center>");

		var regstr = new RegExp("\\[U\\]", "g");
		srcString = srcString.replace(regstr, "<U><wbr>");

		var regstr = new RegExp("\\[\\/U\\]", "g");
		srcString = srcString.replace(regstr, "</U><wbr>");

		var regstr = new RegExp("\\[I\\]", "g");
		srcString = srcString.replace(regstr, "<I><wbr>");

		var regstr = new RegExp("\\[\\/I\\]", "g");
		srcString = srcString.replace(regstr, "</I><wbr>");

	//marquee
	if(/(all)|(marquee)/.test(replacewhat))
	{
		var regstr = new RegExp("\\[marque\\]", "g");
		srcString = srcString.replace(regstr, "<marquee><wbr>");

		var regstr = new RegExp("\\[\\/marque\\]", "g");
		srcString = srcString.replace(regstr, "</marquee><wbr>");
	}

	if(/(all)|(audio)/.test(replacewhat)){
    //audio For New Ubb
	srcString=srcString.replace(/\[audio,(true|false),(true|false)(\]|,true\]|,false\])([\u2E80-\u9FFF0-9a-zA-Z&#=;.:_\-?\%/+\/]{1,})\[\/audio\]/ig,function(a,a1,a2,a3,a4,b){return '<EMBED allowscriptaccess="never" src="'+a4+'" loop="'+a1+'" autostart="'+a2+'"'+((a3==',true]')?' height="0" width="0"':'')+' showstatusbar="1" /><wbr>';});
	}

	return srcString;
}

function entityReplace(str)
{
	return str.replace(/&#38;?/g,"&amp;").replace(/&#(\d+);?/g,function(a,b){return String.fromCharCode(b)}).replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,"\"").replace(/&nbsp;/g," ").replace(/&#13;/g,"\n").replace(/(&#10;)|(&#x\w*;)/g,"").replace(/&amp;/g,"&");
}
function Text2HTML(str){
	return str.replace(/\x0a/g,"<br>").replace(/ /g,"&nbsp;")
}

function picsize(obj,MaxWidth,MaxHeight){
	obj.onload=null;
	img=new Image();
	img.src=obj.src;
	if (img.width>MaxWidth && img.height>MaxHeight){
		if (img.width/img.height>MaxWidth/MaxHeight) {
			obj.height=MaxWidth*img.height/img.width;
			obj.width=MaxWidth;
		}else {
			obj.width=MaxHeight*img.width/img.height;
			obj.height=MaxHeight;
		}
	}else if (img.width>MaxWidth) {
		obj.height=MaxWidth*img.height/img.width;
		obj.width=MaxWidth;
	}else if (img.height>MaxHeight) {
		obj.width=MaxHeight*img.width/img.height;
		obj.height=MaxHeight;
	}else{
		obj.width=img.width;
		obj.height=img.height;
	}
}

// 以 <img src="about:blank" onerror=regImg(this,"http://...gif") /> 的方式定义图片可以避
// 免重复加载和图片堵塞页面问题。建议在发现图片下载造成页面延迟的情形下使用。
function regImg(e,src)
{
	if(!window.imgHash) window.imgHash = new Object();
	if(src.indexOf("[%")>0)return;
	src = src.replace(/<%.*%>/g,"")
	var a = imgHash[src];
	e.onerror=null;
	if(a==null) {
		e.style.display="none";
		a=imgHash[src]=[];
		a[0]=new Image();
		a[1]=e;
		a[0].onload=function(){setImges(a)};
		a[0].src=src;
	}else{
		if(a[0].readyState=="complete")
			e.src=src;
		else{
			e.style.display="none";
			a[a.length]=e;
		}
	}
}

function setImges(a){
	for(var i=1;i<a.length;i++){
		a[i].src=a[0].src;
		a[i].style.display="";
	}
	a.length=1;
	a[0].onload=null;
}