/*
** 把论坛的发表回复内容含有"@用户"加上连接
** 方旭 [2010-11-24]
*/
function ty_bbs_attention_load() {
	var div_key = "div.post";
	if (location.hostname == 'www4.tianya.cn' && location.pathname.match(/(techforum|tianyacity)/gi) != null) {
		div_key = "div.content";
		// www4号服务器[城市]
		if (location.pathname.match(/tianyacity/gi) != null)
		{
			jQuery('#AllDelResponse').find(div_key).each(ty_bbs_attention_action);
		}
	}
	jQuery('#pContentDiv').find(div_key).each(ty_bbs_attention_action);
}
function ty_bbs_attention_action(k, item, content) {
	var s;
	if (content == undefined)
		s = jQuery(this).html();
	else
		s = content;
	if (s == "") return;
	var arr = ty_bbs_attention(s);
	for (var i = 0; i < arr.length; i++) {
		s = s.replace('@'+arr[i], '<a href=http://my.tianya.cn/name/'+encodeURIComponent(arr[i])
			+ ' name='+ty_hashCode(arr[i])+' class=post_msg target=_blank>@' + arr[i] + '</a>');
	}
	if (arr.length > 0)
		if (content == undefined)
			jQuery(this).html(s);
	return s;
}
/*
** 获得天涯论坛“关注”用户
** 方旭 [2010-11-24]
** AttentionTaskImpl.attentUsers
*/
function ty_bbs_attention(content) {
	if (content == null || content.length == 0){
		return array;
	}
	var max_len = 2000; // 最多判断前2000字符
	var max_size = 21;  // 最多显示前20个用户
	var max_name = 17;  // 用户名字最长16字符
	var index = 0;
	var array = new Array();
	var temp = content;
	if (content.length > max_len){
		temp = content.substring(0, max_len);
	}
	if (window.location.href.indexOf('water')) {
		max_size = 101; // 灌水专区扩充到100个用户
	}
	if (temp.indexOf("@") > -1) {
		var names = temp.split("@");
		//if (names.length > 0) {
			var userName;
			var sub, length, temp1, c, chars;
			var size = names.length > max_size ? max_size : names.length;
			for (var i = 1; i < size; i ++) {
				sub = names[i].length > max_name ? max_name : names[i].length;
				chars = names[i].substring(0, sub).split("");
				length = sub;
				temp1 = 0;
				for (var j = 0; j < sub; j ++) {
					c = chars[j];
					// 非法字符[论坛发表回复](c > 0 && c <= 40) || 
					if (c == '.') {
						//alert("c=" + c);
						length = 0;
						break;
					}
					// 分割字符
					if (c == ' ' || c == '　' || c == ',' || c == '，'
							|| c == '~' || c == '～' || c == '!' || c == '！'
							|| c == '@' || c == '＠' || c == '#' || c == '＃'
							|| c == '$' || c == '￥' || c == '%' || c == '％'
							|| c == '^' || c == '…' || c == '&' || c == '＆'
							|| c == '*' || c == '×' || c == '(' || c == '（'
							|| c == ')' || c == '）' /*|| c == '-' */|| c == '－'
							|| c == '+' || c == '＋' /*|| c == '_' || c == '—'*/
							|| c == '=' || c == '＝' || c == '[' || c == '【'
							|| c == ']' || c == '】' || c == '{' || c == '｛'
							|| c == '}' || c == '｝' || c == ':' || c == '：'
							|| c == ';' || c == '；' || c == '"' || c == '“' || c == '”'
							|| c == '\'' || c == '＼' || c == ',' || c == '，'
							|| c == '<' || c == '《' || c == '>' || c == '》'
							/*|| c == '.' */|| c == '。' || c == '?' || c == '？'
							|| c == '/' || c == '、' || c == '|' || c == '｜'
							|| c == '\\' || c == '＼' || c == '\n' || c == '\r') {
						length = j;
						break;
					}
					if (ty_isDoubleChar(c)) {
						temp1 += 2;
					} else {
						temp1 += 1;
					}
					// 归为误关注@
					if (temp1 >= max_name) {
						length = 0;
						break;
					}
				}
				if (length > 1) {
					userName = names[i].substring(0, length);
					if (userName != null && userName.length > 0) {
						//alert(userName);
						array[index++] = userName;
					}
				}
			}
		//}
	}
	return array;
}
//双字节
function ty_isDoubleChar(c){
	if (c.charCodeAt(0) > 0 && c.charCodeAt(0) < 127) {
		return false;
	} else {
		return true;
	}
}
//hash code 算法实现
function ty_hashCode(str){
	var h = 0, off = 0;
	var len = str.length;
	for(var i = 0; i < len; i++){
		h = 31 * h  + str.charCodeAt(off++);
		if(h > 0x7fffffff || h < 0x80000000){
			h = h & 0xffffffff;
		}
	}
	return h;
};
