
function lal_addLinks2(_obj, _includeLabels) {
	if (_includeLabels == null || _includeLabels.length == 0) return;
	var labels = _includeLabels.split("\$");
	for (var i=0; i < labels.length; i++) {
		lal_replaceNode(_obj,labels[i]);
	}
}

function lal_replaceNode(_obj, _label) {
	if (typeof _obj) {
		lal_replaceOneTextNode(_obj,_label);
		var nodes = _obj.childNodes;
//		alert(nodes.length);
		for(var i = 0; i < nodes.length; i++) {
			lal_replaceNode(nodes[i],_label);
		}
	}
}
//HTML标签属性中含有的label不替换，只替换文本节点TextNode
function lal_replaceOneTextNode(_obj, _label) {
	if (typeof _obj) {
		if (_obj.nodeType == 3) {
			var sValue = _obj.nodeValue;
			sValue = sValue.replace(/^\s+|\s+$/g,""); 
			sLabel = lal_escape(sLabel);
//			alert(sValue.length);
			if(sValue.length>0) {
				var replacement = '<a href="../content/tag_' +encodeURIComponent(_label)+ '.html" target="_blank"><font color="#FFCC00">'+_label+'</font></a>';
				var sReg = new RegExp(_label,"gi");
				sValue = sValue.replace(sReg,replacement);
				_obj.parentNode.innerHTML = sValue;
//				alert(_obj.parentNode.outerHTML);
//				alert(sValue);
//				_obj.data = sValue;
			}
		}
	}
}

function lal_addLinks3(_sContent, _includeLabels) {
	if (_includeLabels == null || _includeLabels.length == 0) return _sContent;
	if (_sContent == null || _sContent.length == 0) return _sContent;

	var pattern = /<(?!s)[^>]*>?s/gm;
	var sResult = "";
	
	var parts = pattern.exec(_sContent);
	var values = _sContent.split(pattern);
	for(var i = 0; i<values.length;i++) {
		values[i] = lal_replaceOnePart(values[i],_includeLabels);
	}

	if (parts.length == values.length) {
		for(var j=0; j < parts.length; j++) {
			sResult += parts[j]+values[j];
		}
	}
	if (parts.length < values.length) {
		for(var j=0; j < parts.length; j++) {
			sResult += values[j]+parts[j];
		}
		for(var k=parts.length; k<values.length;k++) {
			sResult += values[k];
		}
	}
	if (values.length < parts.length) {
		for(var j=0; j < values.length; j++) {
			sResult += parts[j]+values[j];
		}
		for(var k=values.length; k<parts.length;k++) {
			sResult += parts[k];
		}
	}

	return sResult;
}
//修改:roy 2009.12.16 label已经在链接中时不加链接
function lal_addLinks(_sValue, _includeLabels) {
	_sValue = '>'+_sValue+'<';
	var begin = 0;
	var end = 0;
	do{
		begin = _sValue.indexOf('>',end);
		end = _sValue.indexOf('<',begin);
		while(_sValue.substring(end+1,end+2).toLowerCase()=="a"){
			begin = _sValue.toLowerCase().indexOf("</a>")+3;
			end =  _sValue.toLowerCase().indexOf('<',begin);
		}
		
	}while ((end - begin) == 1 || end==_sValue.length-1);

	if (begin == -1) return _sValue.substring(1,_sValue.length-1);

	var sLeft = _sValue.substring(1, begin+1);
	var sMiddle = lal_replaceOnePart(_sValue.substring(begin+1, end), _includeLabels);
	var sRight = lal_addLinks(_sValue.substring(end, _sValue.length-1), _includeLabels);
//	var sRight = _sValue.substring(end, _sValue.length);
	return sLeft + sMiddle+ sRight;
}

function lal_replaceOnePart(_sValue, _includeLabels) {
	var labels = _includeLabels.split("\$");
	for (var i=0; i < labels.length; i++) {
		var sLabel = labels[i].replace(/^\s+|\s+$/g,""); 
		sLabel = lal_escape(sLabel);
		var replacement = '<a href="../content/tag_' +encodeURIComponent(sLabel)+ '.html" target="_blank"><font color="#FF6600"><u>'+sLabel+'</u></font></a>';
		var sReg = new RegExp(sLabel,"gi");
		_sValue = _sValue.replace(sReg,replacement);
	}
	return _sValue;
}

function lal_addLinks4(_sContent, _includeLabels) {
	if (_includeLabels == null || _includeLabels.length == 0) return _sContent;
	if (_sContent == null || _sContent.length == 0) return _sContent;
	var labels = _includeLabels.split("\$");
	for (var i=0; i < labels.length; i++) {
		var sLabel = labels[i].replace(/^\s+|\s+$/g,""); 
		sLabel = lal_escape(sLabel);
		var replacement = '<a href="../content/tag_' +encodeURIComponent(sLabel)+ '.html" target="_blank"><font color="#FFCC00"><u>'+sLabel+'</u></font></a>';
		var sReg = new RegExp(sLabel,"gi");
		_sContent = _sContent.replace(sReg,replacement);
	}
	return _sContent;
}

//若标签中含有以下特殊字符，则文章内容中会自动转义，所以匹配时也需自动转义
function lal_escape(_sValue) {
	var chars = [['&','&amp;'],['"',"&quot;"],['<','&lt;'],['>','&gt;'],[' ','&nbsp;']];
	for(var i = 0; i < chars.length; i++) {
		_sValue = _sValue.replace(chars[i][0],chars[i][1]);
	}
	return _sValue;
}
