var E001 = "{0}必须输入";
var E002 = "{0}输入格式不正确";
var E003 = "{0}请输入数字";
var E004 = "{0}不能超过{1}个字符";
var E005 =  "{0}不是有效的邮件地址";
/*
 * 方 法 名:getAddressName
 * 作    用:取xml语句
 * 参    数:1.Address_I	类型：string 所需语句的ID和语言
		    2.name		类型：string 所需存放选项的控件名
 * 作    者:周振宇


 * 作成日期:2008/10/16
 */
function getAddressName(Address_I,name,default_la) {	
	var adinfo= new Array();
	if(Address_I!=","&&Address_I!="")
	{
		adinfo=Address_I.split(",")
	}
	else
	{
		adinfo[0]=default_la;
		adinfo[1]="";
	}

	xmlDoc=loadXMLDoc("/ini/"+adinfo[0]+"/addressname.xml");
	//xmlDoc = loadXMLDoc('/ini/cn/addressname.xml');
	messageStr="";			
	
	
	
	
	var messageStr="";
	
	var xmlindex=1;
	var listindex=1;
	
	messageStr = selectXMLNodeWithPath("/MSG/MESSAGE[@xmlid='"+adinfo[0]+"-1']",xmlDoc);	
	//messageStr = selectXMLNodeWithPath("/MSG/MESSAGE[@xmlid='cn-1']",xmlDoc);
	
	document.getElementById(name).options[listindex]=new Option(messageStr,"-1");
	if(adinfo[1]==-1)
	{ 
		document.getElementById(name).options[listindex].selected = true;
	}
	listindex++;

	
	while(selectXMLNodeWithPath("/MSG/MESSAGE[@xmlid='"+adinfo[0]+xmlindex+"']",xmlDoc))
	{
		messageStr=selectXMLNodeWithPath("/MSG/MESSAGE[@xmlid='"+adinfo[0]+xmlindex+"']",xmlDoc);
		document.getElementById(name).options[listindex]=new Option(messageStr,listindex);
		if(adinfo[1]==listindex)
		{
			document.getElementById(name).options[listindex].selected = true;
		}
		listindex++;
		xmlindex++;
	}
}
/**
*     方法名:null_check
*     作用:必须输入check
*     参数: 1.str   输入的字符串
 			2.parameter1    控件名字
*    返回值: 字符串    message 报错消息
*    作者:       李     健


*    作成日期:  2007/05/29
*    更新日期:  无			
*/
function  null_Check(str,parameter1){
	var message = "";
	if (str == ""){
		message =  E001.replace('{0}',parameter1);
	}
	return message;
}
/**
*     方法名:email_check
*     作用:mail格式check
*     参数: 1.email   输入的mail
 			2.parameter1    控件名字
*    返回值: 字符串    message  报错消息
*    作者:       李     健


*    作成日期:  2007/05/29
*    更新日期:  无			
*/
function email_check(email,parameter1){
	var message = "";
	//var stra=/^([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/gi;
	var stra=/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
	if (email == ""){
		message =  E001.replace('{0}',parameter1);
	}else{
		if (stra.test(email) == false ){
			message = E005.replace('{0}',parameter1);
		}else{
			if(email.match("'")){
				message = E005.replace('{0}',parameter1);
			}
		}
	}
	return  message;
}

/**
*     方法名:null_check
*     作用:必须输入check
*     参数: 1.num   输入的字符串
 			2.parameter1    控件名字
*    返回值: 字符串    message  报错消息
*    作者:       李     健


*    作成日期:  2007/05/29
*    更新日期:  无			
*/
function number_check(num,parameter1){
	var message = "";
	var stra=/^-?[0-9]\d*$/;
	if (null_Check(num,parameter1) != ""){
		message = null_Check(num,parameter1);
	}else{
		if (stra.test(num) == false ){
			message = E003.replace('{0}',parameter1);
		}
	}
	return  message;
}

/**
*     方法名:length_check
*     作用:必须输入check
*     参数: 1.str   输入的字符串
 			2.parameter1    控件名字
*    返回值: 字符串    message  报错消息
*    作者:       李     健


*    作成日期:  2007/05/29
*    更新日期:  无			
*/
function length_check(str,parameter1,parameter2){
	var message = "";
	if (null_Check(str,parameter1) != ""){
		message = null_Check(str,parameter1);
	}else{
		if (str.length > parameter2){
			message = E004.replace('{0}',parameter1);
			message = message.replace('{1}',parameter2);
		}
	}
	return  message;
}

/**
*     方法名:getMessage
*     作用:取xml语句
*     参数: 	1.xmlID   类型：string 所需语句的ID
 		2.value   类型：array  所需穿的参数
		3.la      类型：string 画面使用的语言
*    返回值: 字符串    message  报错消息
*    作者:       周振宇


*    作成日期:  2007/05/29
*    更新日期:  无			
*/
function getMessage(xmlID,value,la) {
	xmlDoc=loadXMLDoc("../../ini/"+la+"htmlmessage.xml");	
	maxNum = xmlDoc.getElementsByTagName("MESSAGE").length;
	column = xmlDoc.getElementsByTagName("MESSAGE");	
	messageStr = "";
	for (n=0;n<maxNum;n++)
	{
		if(column.item(n).childNodes.item(0).text == xmlID){
				valuelen = value.length;
				messageStr=column.item(n).childNodes.item(1).text;
				for (i = 0; i < valuelen; i++) {
	  				k = i+1;
	  				messageStr = messageStr.replace("[%"+k+"]", value[i]);
	  			}
		}		
		
	}
	return messageStr;
}


function selectXMLNodeWithPath(path,xmlDoc){
	messageStr = "";
	if (window.ActiveXObject) {
		xmlDoc.setProperty("SelectionLanguage","XPath");
		var nodes=xmlDoc.selectNodes(path);
		for (i=0;i<nodes.length;i++) {
			messageStr = messageStr+ nodes[i].childNodes[0].nodeValue;
	  	}
	}
	else {
		var nodes=null;
		nodes = xmlDoc.evaluate(path, xmlDoc, null, XPathResult.ANY_TYPE, null);
		var result=nodes.iterateNext();
		while (result) {
			messageStr = messageStr+ result.childNodes[0].nodeValue;  	
			result=nodes.iterateNext();
		}
	}
	return messageStr;
}

function loadXMLDoc(dname){
	if (window.XMLHttpRequest)
	  {
  		xhttp=new XMLHttpRequest();
  	}
	else
  	{
  		xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  	}
	xhttp.open("GET",dname,false);
	xhttp.send();
	return xhttp.responseXML;
} 

/**
*     方法名:getXMLMessage
*     作用:取xml语句
*     参数: 	1.xmlID   类型：string 所需语句的ID
 							2.value   类型：array  所需穿的参数
							3.la      类型：string 画面使用的语言
*    返回值: 字符串    message  报错消息
*    作者:       Chenyu Pan
*    作成日期:  2007/09/28
*    更新日期:  无			
*/
function getXMLMessage(xmlID,arrayvalue,la) {		
	xmlDoc=loadXMLDoc("../../ini/"+la+"/htmlmessage.xml");	
	messageStr="";			
	messageStr = selectXMLNodeWithPath("/MSG/MESSAGE[@xmlid='"+xmlID+"']",xmlDoc);	
	len = arrayvalue.length;				
	for (i = 0; i < len; i++)	
	  messageStr = messageStr.replace("[%"+(i+1)+"]", arrayvalue[i]);
	return messageStr;
}
/**
* 功能：电话号码的有效性检测


* 方法名： phone_Check ,type:0---移动电话，1----固定电话
* 参数： 电话号phone
*/
function phone_Check(phone,type){
    var phone_flag =/^[0-9\-()+]{7,}$/;
    var mobile_flag =/^[0-9]{11,12}$/;
	var message ="";
	switch (type){
	   case 1:	if (null_Check(phone,'联系电话')!=''){
			 		message=null_Check(phone,'联系电话');
				}else
			    if (phone_flag.test(phone)==false)
			    	message = getXMLMessage("BE0101",new Array('联系电话') ,"cn");break;
	   case 0:  if (mobile_flag.test(phone)==false)
			    	message = getXMLMessage("BE0101",new Array('移动电话') ,"cn");;break;    
    }		
	return message;	
}
/**
*功能：判断输入的字符串是否大于指定的长度
*方法名：checkstr()
*参数：str------用于指定要判断的字符，digit----用于指定字符串的最大长度


返回值：true,false
*/
function checkstr(str,digit){
    var n=0;
	for(i=0;i<str.length;i++){
	  var leg=str.charCodeAt(i);
	  if(leg>255){
	       n+=2;
	  }else{
	       n+=1;
	  }
	}
	if(n>digit){
	   return true;
	}else{
	  return false;
	}
}

/*
*    方法名:PageSetup_Null
*    作用:设置页眉页脚为空
*    参数: 	
*    返回值: 
*    作者:       Wang Lei
*    作成日期:  2007/11/21
*/
var HKEY_Root,HKEY_Path,HKEY_Key; 
HKEY_Root="HKEY_CURRENT_USER"; 
HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\"; 

function PageSetup_Null() 
{ 
 try 
 { 
  var Wsh=new ActiveXObject("WScript.Shell"); 
  HKEY_Key="header"; 
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); 
  HKEY_Key="footer"; 
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,""); 
 } 
 catch(e){} 
} 

/*
*    方法名:PageSetup_Default()
*    作用:设置页眉页脚为空
*    参数: 	
*    返回值: 
*    作者:       Wang Lei
*    作成日期:  2007/11/21
*/
function  PageSetup_Default() 
{   
try 
 { 
  var Wsh=new ActiveXObject("WScript.Shell"); 
  HKEY_Key="header"; 
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P"); 
  HKEY_Key="footer"; 
  Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d"); 
 } 
 catch(e){} 
} 
/*
 *类  名：editor()
 *子方法：create()/createhtml()/exeCommands()/changescreen()/selectColor()/createlink()
 *作  用：编辑器的主类，在指定容器中(accepter)创建HTML编辑器


 *作  者：zhouzhenyu
 *日  期：2008/05/30
 *备  注：如果使用中出现什么bug，或逻辑错误等，请及时通知我。Email:zhouzhenyu@shibasoft.com.cn							
 *使用方法、规则及注意点：
 *				editor()类：
 *							如下表，
 *							accepter参数必须输入，并且必须以id命名，存放编辑区的容器为span【注意：禁止使用div】须能够支持innerHTML属性的HTML元素
 *							objectname参数必须输入，必须与实例化时对象名称相同，否则将当时编辑区的工具失效，并出错。


 *							language参数有默认值，为"cn"，但考虑到系统的多国语言性，在这里也是必须输入的。


 *							其他控制长宽的参数---考虑到各个页面的编辑器长宽并不统一，并可能影响到界面显示问题，因此可以进行设置，一般情况下使用默认值即可。


 *				create()方法：


 *							代码逻辑上,必须在接收器（accepter）生成之后使用该方法.否则将造成方法找不到接收器从而出错


 *				changescreen()方法：


 *							在全屏时用到id为fullscreen的span容器，需要对所有be模板进行更新
 *参数：


 |--------------------------------------------------------------------------------------------------------------|
 |	name			type		value				describe			remark									|
 |	accepter 		string 		not null			存放编辑区的容器	容器Id,容器需为span						|
 |	objectname		string		not null			实例化对象的名称											|
 |	language		string		default cn			按钮显示语言种类	cn/jp/en								|
 |	info			string		default null		编辑区初始内容												|
 |	width			string		default	384px		编辑区初始宽度		为支持px or %单位，故使用string型		|
 |	height			string		default	300px		编辑区初始高度		同上									|
 |	fullwidth		string		default	屏幕分辨率	编辑区全屏宽度		同上									|
 |	fullheight		string		default 屏幕分辨率	编辑区全屏高度		同上									|
 |	brposition		int			default 14			按钮换行位置		编辑区宽度较小时使按钮换行，防止撑大画面|
 |	cssclass		string		default frame_blue	编辑区域的css样式											|
 |--------------------------------------------------------------------------------------------------------------|
 */
 //class
 var editor = function(accepter,objectname,info,language,width,height,fullwidth,fullheight,brposition,cssclass)
 {
  	// Properties/属性


	this.Accepter		= accepter;
	this.ObjectName		= objectname;
	this.Language		= language		|| 'cn';
	this.Info			= info;
	this.Width			= width			|| '384px';
	this.Height			= height		|| '300px';
	this.FullWidth		= fullwidth		|| (window.screen.availWidth-50);
	this.FullHeight		= fullheight	|| (window.screen.availHeight-230);
	this.BrPosition		= brposition	|| 14;
	this.CssClass		= cssclass		|| 'frame_blue';
	//以下为内部参数，作用：浏览器版本获取，为控制模态窗口的大小，以及浏览器不支持该类的出错提示
	this.IEversion		= navigator.appVersion;
	this.IEname			= navigator.appName;
	this.IEx			= "";
	if(this.IEname == "Microsoft Internet Explorer"){
    	this.IEx=parseFloat(this.IEversion.substring(this.IEversion.indexOf("MSIE")+5,this.IEversion.lastIndexOf("Windows")))   
	}else{
		alert("Caution:Your browser is not Microsoft Internet Explorer,that may cause an unknow error!");
	}
	if(this.IEx<6){
		alert("Caution:The version of your browser is under Microsoft IE6.0,that may cause an unknow error!");
	}
 }
 /*
  |-------------------------------------------------------------|
  |继承于：editor类												|
  |方法名：create                   							|
  |功  能：出错处理，调用创建编辑区域的函数 					|
  |备  注：prototype-对象的新实例“继承”赋予该对象原型的操作		|
  |-------------------------------------------------------------|
  */
 editor.prototype.create = function()
 {
	if(!this.ObjectName)
	{
		alert('Error: The Objectname is required');
		return ;
	}
	var oAccepter = document.getElementById(this.Accepter);	
	if(!oAccepter)
	{
		alert('Error: The div accepter with id set to "' + this.Accepter + '" was not found');
		return ;
	}
	else
	{
		 oAccepter.innerHTML=this.createhtml();
	}
 }
 /*
  |-------------------------|
  |继承于：editor类			|
  |方法名：createhtml		|
  |作  用：生成编辑区html	|
  |-------------------------|
  */
  //btninfo按钮各类属性	:类型|名称的XML编号|传递的函数参数|宽度|图片名


  var btninfo = new Array(
						 Array('BUTTON','ED01','Bold','16','bold'),
						 Array('BUTTON','ED02','Italic','16','italic'),   
						 Array('BUTTON','ED03','Underline','16','underline'), 
						 Array('BUTTON','ED04','JustifyLeft','16','left'), 
						 Array('BUTTON','ED05','JustifyCenter','16','center'), 
						 Array('BUTTON','ED06','JustifyRight','16','right'), 
						 Array('BUTTON','ED07','InsertOrderedList','16','ol'), 
						 Array('BUTTON','ED08','InsertUnorderedList','16','ul'), 
						 Array('BUTTON','ED09','Outdent','16','outdent'), 
						 Array('BUTTON','ED10','Indent','16','indent'), 
						 Array('BUTTON','ED11','InsertHorizontalRule','16','hr'), 
						 Array('BUTTON','ED12','BackColor','16','bgcolor'), 
						 Array('BUTTON','ED13','ForeColor','16','fontcolor'), 
						 Array('SBUTTON','ED14','SourCecode','42','sourcecode'), 
						 Array('SELECTFN','ED15','FontName','',''), 
						 Array('SELECTFS','ED16','FontSize','',''), 
						 Array('BUTTON','ED17','Undo','16','undo'), 
						 Array('BUTTON','ED18','Redo','16','redo'), 
						 Array('BUTTON','ED19','CreateLink','16','url'), 
						 Array('BUTTON','ED20','UnLink','16','unurl'), 
						 Array('BUTTON','ED21','RemoveFormat','32','plain'), 
						 //Array('BUTTON','ED22','Tips','21','tip'), //该功能存在bug，暂时关闭


						 Array('SBUTTON','ED23','ChangeScreen','16','changescreen')
					 	);
 editor.prototype.createhtml = function()
 {
	var area="<table width='"+this.Width+"' border='0' align='center' cellpadding='0' cellspacing='0' class='"+this.CssClass+"'><tr><td align='left' width='100%'>";
	var num=btninfo.length;
	for(var i=0;i<num;i++)
	{
		if(i==this.BrPosition){area+="<br id=thebr>";}
		switch(btninfo[i][0])
		{
			case 'BUTTON':
				area+="<BUTTON name='b[]' title='"+getXMLMessage(btninfo[i][1],"",this.Language)+"' onclick="+this.ObjectName+".exeCommands('"+btninfo[i][2]+"')><IMG height=16 width="+btninfo[i][3]+" src='../../../images/editbar/"+btninfo[i][4]+".jpg'></BUTTON>";
				break;
			case 'SBUTTON':
				area+="<BUTTON title='"+getXMLMessage(btninfo[i][1],"",this.Language)+"' onclick="+this.ObjectName+".exeCommands('"+btninfo[i][2]+"')><IMG height=16 width="+btninfo[i][3]+" src='../../../images/editbar/"+btninfo[i][4]+".jpg'></BUTTON>";
				break;
			case 'SELECTFN':
				area+="<select name='b[]' title='"+getXMLMessage(btninfo[i][1],"",this.Language)+"' onchange="+this.ObjectName+".exeCommands('"+btninfo[i][2]+"',this.options[this.selectedIndex].value) name=fname><OPTION value=default selected>--"+getXMLMessage(btninfo[i][1],"",this.Language)+"--</OPTION><OPTION value=宋体>宋体</OPTION><OPTION value=黑体>黑体</OPTION><OPTION value=隶书>隶书</OPTION><OPTION value=楷体_GB2312>楷体</OPTION><OPTION value=仿宋_GB2312>仿宋</OPTION><OPTION value=华文琥珀>华文琥珀</OPTION><OPTION value=华文彩云>华文彩云</OPTION><OPTION value=方正舒体>方正舒体</OPTION><OPTION value=Arial>Arial</OPTION><OPTION value=Courier>Courier</OPTION><OPTION value='MS Mincho'>MS Mincho</OPTION><OPTION value='Sans Serif'>Sans Serif</OPTION><OPTION value=Tahoma>Tahoma</OPTION><OPTION value=Verdana>Verdana</OPTION><OPTION value=Wingdings>Wingdings</OPTION></select>";
				break;
			case 'SELECTFS':
				area+="<select name='b[]' title='"+getXMLMessage(btninfo[i][1],"",this.Language)+"' onchange="+this.ObjectName+".exeCommands('"+btninfo[i][2]+"',this.options[this.selectedIndex].value) name=fsize><OPTION value='' selected>-"+getXMLMessage(btninfo[i][1],"",this.Language)+"-</OPTION><OPTION value=1>1</OPTION><OPTION value=2>2</OPTION><OPTION value=3>3</OPTION><OPTION value=4>4</OPTION><OPTION value=5>5</OPTION><OPTION value=6>6</OPTION></select>";
				break;
		}
	}
	area+="<OBJECT id=dlgHelper height=0px width=0px classid=clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b></OBJECT>";
	area+="<DIV id=foo contentEditable=true style='OVERFLOW: scroll; BORDER: #7f9db9 1px solid;WIDTH: "+this.Width+"; WORD-BREAK: break-all; HEIGHT: "+this.Height+";line-height:1.2'>"+this.Info+"</DIV>";
	area+="</td></tr></table>";
	return area;
 }
 /*
  |---------------------|
  |方法名：exeCommands	|
  |继承于：editor类		|
  |作  用：按钮方法集合	|
  |参  数：				|
  |---------------------------------------------------------|
  |	name		type		value		describe			|
  |	action	 	string		not null	表示按下的哪个按钮	|
  |	font	 	string		allow null	select下拉框选中值	|
  |---------------------------------------------------------|
 */
editor.prototype.exeCommands = function(action,font){
	document.all.foo.focus();
	switch(action)
	{
		case 'Bold':
			document.execCommand('Bold');
			break;
		case 'Italic':
			document.execCommand('Italic');
			break;
		case 'Underline':
			document.execCommand('Underline');
			break;
		case 'JustifyLeft':
			document.execCommand('JustifyLeft');
			break;
		case 'JustifyCenter':
			document.execCommand('JustifyCenter');
			break;
		case 'JustifyRight':
			document.execCommand('JustifyRight');
			break;
		case 'InsertOrderedList':
			document.execCommand('InsertOrderedList');
			break;
		case 'InsertUnorderedList':
			document.execCommand('InsertUnorderedList');
			break;
		case 'Outdent':
			document.execCommand('Outdent');
			break;
		case 'Indent':
			document.execCommand('Indent');
			break;
		case 'InsertHorizontalRule':
			document.execCommand('InsertHorizontalRule');
			break;
		case 'BackColor':
			document.execCommand('BackColor', true, this.selectColor());
			break;
		case 'ForeColor':
			document.execCommand('ForeColor', true, this.selectColor());
			break;
		case 'SourCecode':
			this.sourcecode();
			break;
		case 'FontName':
			document.execCommand('FontName',false,font);
			break;
		case 'FontSize':
			document.execCommand('FontSize',false,font);
			break;
		case 'Undo':
			document.execCommand('Undo');
			break;
		case 'Redo':
			document.execCommand('Redo');
			break;
		case 'CreateLink':
			//document.execCommand('CreateLink');
			this.createlink();//该功能存在bug，新增没有问题，修改含有复杂或较长代码时函数中replace方法不起作用
			break;
		case 'UnLink':
			document.execCommand('UnLink');
			break;
		case 'RemoveFormat':
			document.execCommand('RemoveFormat');
			break;
		case 'Tips':
			this.edittips();
			break;
		case 'ChangeScreen':
			this.changescreen();
			break;
	}
	//document.execCommand('Unselect');//取消选中-，createlink()，edittips()按钮在执行完操作后会出现全选所有文本的状况，考虑改善
}
/*
  |---------------------|
  |方法名：changescreen	|
  |继承于：editor类		|
  |作  用：全屏编辑转换	|
  |参  数：				|
  |-----------------------------------------------------------------------------|
  |	name		type		value		describe								|
  |	screentype 	int			default 1	函数内部参数	  1 普通状态 0全屏状态	|
  | pagehtml 	string		null		存储页面信息							|
  | edithtml 	string		null		存储编辑区信息							|
  |-----------------------------------------------------------------------------|
 */
var screentype=1;//1 普通状态 0全屏状态


var pagehtml='';//存储页面信息
var edithtml='';//存储编辑区信息



editor.prototype.changescreen = function(){
	if(screentype==0)
	{
		edithtml=document.all.fullscreen.innerHTML;
		document.all.fullscreen.innerHTML=pagehtml;
		document.all.editarea.innerHTML=edithtml;
		document.all.foo.style.width=this.Width;
		document.all.foo.style.height=this.Height;
		if(this.BrPosition<btninfo.length){
			document.all.thebr.style.display='block';//按钮换行开启


		}
		screentype=1;
	}
	else
	{	
		edithtml=document.all.editarea.innerHTML;
		pagehtml=document.all.fullscreen.innerHTML;
		document.all.fullscreen.innerHTML=edithtml;
		document.all.foo.style.width=this.FullWidth;
		document.all.foo.style.height=this.FullHeight;
		if(this.BrPosition<btninfo.length){
			document.all.thebr.style.display='none';//按钮换行关闭
		}
		screentype=0;
	}
}
/*
  |-----------------------------|
  |方法名：sourcecode			| 
  |继承于：editor类				|
  |作  用：源代码，查看与转换	|
  |参  数：						|
  |-------------------------------------------------------------------------|
  |	name		type		value		describe							|
  |	sourcetype 	int			default 1	函数内部参数	  1 外观 0源代码	|
  |-------------------------------------------------------------------------|
 */
var sourcetype=0;//1 外观 0 源


editor.prototype.sourcecode = function(){
	//查看源代码时关闭具有样式编辑功能的按钮，反之开启


	var btn=document.getElementsByName('b[]');
	var btnnum=btn.length;
	for(var i=0;i<btnnum;i++){
		if(sourcetype==1)
			btn[i].disabled=false;
		else
			btn[i].disabled=true;
	}
	//执行源代码转换


	var inner=document.all.foo.innerHTML;
	var innertext=document.all.foo.innerText;
	if(sourcetype==1){
		inner=innertext.replace(/&amp;/g,'&').
						replace(/&quot;/g,'\'').
						replace(/&lt;/g,'<').
						replace(/&gt;/g,'>');
		sourcetype=0;
	}else{
		inner=inner.replace(/&/g,'&amp;').
					replace(/\'/g,'&quot;').
					replace(/</g,'&lt;').
					replace(/>/g,'&gt;');
		sourcetype=1;
	}
	document.all.foo.innerHTML=inner;
}
/*
  |-----------------------------|
  |方法名：selectColor			|  
  |继承于：editor类				|
  |作  用：选择字体或背景颜色	|
  |参  数：						|
  |-----------------------------|
*/
editor.prototype.selectColor = function(){
	var sColor = document.getElementById("dlgHelper").choosecolordlg();//启用控件方法
	sColor = sColor.toString(16);
	if (sColor.length < 6) {
		var sTempString = "000000".substring(0,6-sColor.length);
		sColor = sTempString.concat(sColor);
	}
	return sColor;//返回选中的颜色


}
/*
  |-----------------------------|
  |方法名：edittips				|
  |继承于：editor类				|
  |作  用：给文字添加提示信息	|
  |参  数：						|
  |-----------------------------|
*/
editor.prototype.edittips = function(){
	var info	= document.selection.createRange();//选中区域的对象


	var title	= info.htmlText.toLowerCase().replace(/(title=)(.*?)(>)/,'');
	var otips	= RegExp.$2;//取出replace正则表达式第二部分匹配的配容
	var tips	= "";//存放新提示信息


	if(info.text != ""){//如果有字符串被选中的话
		if(this.IEx>=7){
				tips = window.showModalDialog("../../html/"+this.Language+"/be/edittips.htm",otips,
										  "dialogWidth=400px;dialogHeight=200px;scroll=1;status=0");//IE7+,开启模态窗口，并将窗口返回值附给提示信息参数


		}else{
				tips = window.showModalDialog("../../html/"+this.Language+"/be/edittips.htm",otips,
										  "dialogWidth=410px;dialogHeight=255px;scroll=1;status=0");//IE6-,开启模态窗口，并将窗口返回值附给提示信息参数


		}
		var oinfo = document.getElementById("foo").innerHTML;//获取编辑框中所有内容


		var newinfo = "";//存放加入新提示信息的内容
		var ninfo = "";//存放新全局内容
		if(tips!=null){
			if(otips==""){//新建tips
				newinfo = "<span title='"+tips+"'>"+info.text+"</span>";
				ninfo = oinfo.replace(info.text,newinfo);
			}else{//修改tips
				newinfo = info.htmlText.replace(otips,tips);
				ninfo = oinfo.replace(info.htmlText,newinfo);
			}
			document.getElementById("foo").innerHTML = ninfo;//将编辑框中的内容更新
		}
	}else{
		var errmsg = getXMLMessage("E002","",this.Language);//如果没有选中字符串则提示
		alert(errmsg);
	}
	return;//函数结束返回
}
/*
  |-----------------------------|
  |方法名：createlink			|  
  |继承于：editor类				|
  |作  用：创建链接				|
  |参  数：						|
  |-----------------------------|
*/
String.prototype.trim = function(){
	return this.replace(/(^\s*)|(\s*$)/g,"")
};

editor.prototype.createlink = function(){
	var info		= document.selection.createRange();//选中区域的对象


	var href		= info.htmlText.toLowerCase().replace(/(href=")(.*?)(")/,'');
	var olink		= RegExp.$2;//取出链接信息
		href		= href.replace(/(target=)(.*?)(>)/,'');
	var otarget		= RegExp.$2;//取出目标窗口信息
	var otype		= olink.substr(0,5);//获取链接类型信息
	var linkinfo	= new Array(otype,otarget,olink);
	var nlinkinfo	= "";//初始化新链接参数
	
	if(info.text != ""){//如果有字符串被选中的话
		if(this.IEx>=7){
				nlinkinfo = window.showModalDialog("../../html/"+this.Language+"/be/editlink.htm",linkinfo,
										   "dialogWidth=400px;dialogHeight=140px;scroll=1;status=0");//IE7+,开启模态窗口，并将窗口返回值附给提示信息参数	
		}else{
				nlinkinfo = window.showModalDialog("../../html/"+this.Language+"/be/editlink.htm",linkinfo,
										   "dialogWidth=410px;dialogHeight=200px;scroll=1;status=0");//IE6-,开启模态窗口，并将窗口返回值附给提示信息参数	
		}
		linkinfo = "";
		var oinfo = document.getElementById("foo").innerHTML;//获取编辑框中所有内容


		var newlink = "";
		var ninfo = "";
		if(nlinkinfo!=null){
			if(olink==""){//新建连接
				newlink = "<a href='"+nlinkinfo[0]+"' target='"+nlinkinfo[1]+"'>"+info.text+"</a>";
				ninfo = oinfo.replace(info.text,newlink);
			}else{//修改连接
				newlink = info.htmlText.replace(olink,nlinkinfo[0]).replace(otarget,nlinkinfo[1]);
				ninfo = oinfo.replace(info.htmlText,newlink);
			}
			document.getElementById("foo").innerHTML = ninfo;//将编辑框中的内容更新
		}
	}else{
		var errmsg = getXMLMessage("E005","",this.Language);//如果没有选中字符串则提示
		alert(errmsg);
	}
	return;//函数结束返回
}
editor.prototype.dosave = function(){
	if(sourcetype==1){
		this.sourcecode();
	}
}






function isIE6()
{
	var browser=navigator.appName
	var b_version=navigator.appVersion
	var version=parseFloat(b_version)
	if ((browser=="Microsoft Internet Explorer")&& (version<7))
		return true;
	else 
		return false;
}



function addImgToTDcommon(url,W,H)
{
	var temp = document.getElementById("preview");
	//alert(temp);
	if (temp)
	{
		temp.setAttribute("src", url);
	}
	else
	{
		var img = document.createElement("img");
		img.setAttribute("src", url);
		img.setAttribute("width", W);
		img.setAttribute("height", H);
		img.setAttribute("id", "preview");
		document.getElementById("preview_fake").appendChild(img);		
	}
}
function addImgToTDcommon_logoimg(url,W,H)
{
	var temp = document.getElementById("preview_logoimg");
	//alert(temp);
	if (temp)
	{
		temp.setAttribute("src", url);
	}
	else
	{
		var img = document.createElement("img");
		img.setAttribute("src", url);
		img.setAttribute("width", W);
		img.setAttribute("height", H);
		img.setAttribute("id", "preview_logoimg");
		document.getElementById("preview_fake_logoimg").appendChild(img);		
	}
}
