www.gusucode.com > CC校友录贴吧 CCBar源码程序asp编程 > meditor/common/comm2.js

    var mRegExp = new Object();


function insert(what) 
{
	mEditor.focus();
	var sel = mEditor.document.selection.createRange();

	switch(what){
	case "excel":
		insertHTML(getLangText("Cmpnts","0x2003"));
		break;
	case "quote":
		insertHTML('<table width=95% border="0" align="Center" cellpadding="6" cellspacing="0" style="border: 1px Dotted #6595d6; TABLE-LAYOUT: fixed; background-color:#e8f4ff"><tr><td style="WORD-WRAP: break-word"><font style="color: #990066;font-weight:bold">' + getLangText("Cmpnts","0x2001") + ':</font><br>' + String.HTMLEncode(sel.text) + '</td></tr></table>');
		break;
	case "code":
		insertHTML('<table width=95% border="0" align="Center" cellpadding="6" cellspacing="0" style="border: 1px Dotted #78DCCA; TABLE-LAYOUT: fixed; background-color:#e8f4ff"><tr><td style="WORD-WRAP: break-word"><font style="color: #990033;font-weight:bold">' + getLangText("Cmpnts","0x2002") + '</font><br>' + String.HTMLEncode(sel.text) + '</td></tr></table>');
		break;
	case "date":
		window.execScript('pasteHTML(FormatDateTime(now,1))','VBScript');  
		break;
	case "time":
		window.execScript('pasteHTML(FormatDateTime(now,3))','VBScript');  
		break;
	case "big":	
		insertHTML("<big>" + sel.text + "</big>");
		break;
	case "small":
		insertHTML("<small>" + sel.text + "</small>");
		break;
	case "br":
		insertHTML("<br>")
		break;
	default:
		break;
	}
	sel=null;
	mEditor.focus();
}

function URLFilters(s)
{
	var re;
	var sHttpUploadPath = relativePath2AbsoluteHttpPath(mSystem["UploadPath"],getEditorHttpPath())
	var sHttpIconImage = relativePath2AbsoluteHttpPath(mSystem["IconImage"],getEditorHttpPath())
	var sHttpFilesImage = relativePath2AbsoluteHttpPath(mSystem["FilesImage"],getEditorHttpPath())
	var sHttpBgImage = relativePath2AbsoluteHttpPath(mSystem["BgImage"],getEditorHttpPath())
	
	re = new RegExp("(" + sHttpUploadPath + ")+","ig");
	s = s.replace(re,ConvertURL(mSystem["UploadPath"],mSystem["UrlMode"]));
	re = new RegExp("(" + sHttpIconImage + ")+","ig");
	s = s.replace(re,ConvertURL(mSystem["IconImage"],"1"));
	re = new RegExp("(" + sHttpFilesImage + ")+","ig");
	s = s.replace(re,ConvertURL(mSystem["FilesImage"],"1"));
	re = new RegExp("(" + sHttpBgImage + ")+","ig");
	s = s.replace(re,ConvertURL(mSystem["BgImage"],"1"));
	
	return s;
}
//alert(ConvertURL(mSystem["UploadPath"],"3"));
//=============================================================================================
//	相对路径或绝对根路径URL转换    sPath:相对路径或绝对根路径
//=============================================================================================

function ConvertURL(sPath,v)
{
	switch(v)
	{
		case "1": //绝对根路径模式
			sPath = absoluteHttpPath2AbsoluteRootPath(relativePath2AbsoluteHttpPath(sPath,getEditorHttpPath()),getSitePath());
			break;
		case "2": //绝对URL全路径模式
			sPath = relativePath2AbsoluteHttpPath(sPath,getEditorHttpPath());
			break;
		case "3": //相对路径模式
			sPath = absoluteHttpPath2RelativePath(relativePath2AbsoluteHttpPath(sPath,getEditorHttpPath()),getEditorHttpPath(),getSitePath())
			break;
	}
	return sPath;
}

//=============================================================================================
//	网站全称
//=============================================================================================
function getSitePath()
{
	return (document.location.protocol + "//" + document.location.host).toLowerCase();
}
//alert(getSitePath()); //后面不带"/"
//=============================================================================================
//	mEditor所在的根路径
//=============================================================================================
function getEditorRootPath()
{
	var url = document.location.pathname;
	return url.substring(0,url.lastIndexOf("/")+1);
}
//alert(getEditorRootPath());
//=============================================================================================
//	mEditor所在的http路径
//=============================================================================================
function getEditorHttpPath()
{
	return getSitePath()+getEditorRootPath();
}
//alert(getEditorHttpPath());
//=============================================================================================
//	在同网将http绝对路径转换成绝对根路径
//=============================================================================================
function absoluteHttpPath2AbsoluteRootPath(str,sSitePath)
{
	sSitePath = sSitePath.toLowerCase();
	if(sSitePath.substr(sSitePath.length-1)!="/")sSitePath += "/";
	var re = new RegExp("(" + sSitePath + ")+","ig");
	str = str.replace(re,"/")
	return str;
}
//alert(absoluteHttpPath2AbsoluteRootPath("http://localhost/sina",getSitePath()));

//=============================================================================================
//	在同网将http绝对路径转换成与某目录的相对路径(相对同网某个http绝对地址:sRelativeFldrHttpPath)
//=============================================================================================
function absoluteHttpPath2RelativePath(sAbsoluteHttpPath,sRelativeFldrHttpPath,sSitePath)
{
	var i,j,k,sResultPath = "";
	sSitePath = sSitePath.toLowerCase();
	sAbsoluteHttpPath = sAbsoluteHttpPath.toLowerCase().replace(sSitePath + "/","");
	sRelativeFldrHttpPath = sRelativeFldrHttpPath.toLowerCase().replace(sSitePath + "/","");
	if(sAbsoluteHttpPath.substr(sAbsoluteHttpPath.length-1)=="/")sAbsoluteHttpPath = sAbsoluteHttpPath.substr(0,sAbsoluteHttpPath.length-1);
	if(sRelativeFldrHttpPath.substr(sRelativeFldrHttpPath.length-1)=="/")sRelativeFldrHttpPath = sRelativeFldrHttpPath.substr(0,sRelativeFldrHttpPath.length-1);

	aAbsolutePath = sAbsoluteHttpPath.split("/");
	aRelativeFldrHttpPath = sRelativeFldrHttpPath.split("/");
	
	for(i=0;i<aAbsolutePath.length ;i++){
		if(aAbsolutePath[i] != aRelativeFldrHttpPath[i]){break;}
	}
	k = aRelativeFldrHttpPath.length - i;
	if(sRelativeFldrHttpPath =="")
	{
		sResultPath = "";
	}
	else
	{
		for(j=0;j<k;j++){sResultPath +="../";}
	}
	for(;i<aAbsolutePath.length;i++){
		if(sAbsoluteHttpPath == "")break;
		sResultPath += aAbsolutePath[i] + "/";
	}
	
	if(sResultPath=="")sResultPath = "./";
	
	return sResultPath;
}
//alert(absoluteHttpPath2RelativePath("http://localhost/sina",getEditorHttpPath(),getSitePath()));

//=============================================================================================
//	在同网将相对路径或绝对根路径(sRelativePath)转换成http绝对路径(相对同网某个http绝对地址:sEditorRootPath)
//=============================================================================================
function relativePath2AbsoluteHttpPath(sRelativePath,sEditorRootPath)
{
	var sResultPath = "",sTemp1 = "",sTemp2 = "";
	var sSitePath = getSitePath();
	var sRelativePath = sRelativePath.toLowerCase();
	var sEditorRootPath = sEditorRootPath.toLowerCase();
	
	if(sEditorRootPath.substr(sEditorRootPath.length-1)=="/")sEditorRootPath = sEditorRootPath.substr(0,sEditorRootPath.length-1);
	sEditorRootPath = sEditorRootPath.replace(sSitePath + "/","");
	
	aRelativePath = sRelativePath.split("/");
	aEditorRootPath = sEditorRootPath.split("/");

	var pos = aEditorRootPath.length - 1;
	
	if(sRelativePath.substr(0,1)=="/")
	{
		sResultPath = sSitePath + sRelativePath;
	}
	else if(sRelativePath.substr(0,1)=="")
	{
		sResultPath = sSitePath + "/" + sEditorRootPath;
	}
	else
	{
		for(var i=0;i<aRelativePath.length;i++)
		{
			if(aRelativePath[i] =="..")
			{
				if(pos>=0)pos--;
			}
			else if(aRelativePath[i] == "." || aRelativePath[i] == ""){}
			else
			{
				sTemp2 += aRelativePath[i] + "/";
			}
		}
		for(var j=0;j<=pos&&pos>=0;j++)
		{
			sTemp1 += aEditorRootPath[j] + "/";
		}
		sResultPath = sSitePath + "/" + sTemp1 + sTemp2;
	}
	return sResultPath;
}
//alert(relativePath2AbsoluteHttpPath("../upload/",getEditorHttpPath()));

//=============================================================================================
//  在同网将相对路径转换成绝对根路径(相对同网某个http绝对地址)
//=============================================================================================
function relativePath2AbsoluteRootPath(url)
{
	return absoluteHttpPath2AbsoluteRootPath(relativePath2AbsoluteHttpPath(url,getEditorHttpPath()),getSitePath());
}
//alert(relativePath2AbsoluteRootPath("images"));