﻿function filterKey(str){
	var s=str;
	s=s.replace("&gt;", '');
	s=s.replace("&lt;", '');
	s=s.replace("&amp;", '');
	s=s.replace("&nbsp;", '');
	s=s.replace("&mdash;", '');
	return s;
}
function toRightLen(node, num) {
    var node = filterKey((node.replace(/<[^>]+>/g, "")).replace(/^\s+|\s+$/g, ""));
    var z = /[^\x00-\xff]/g;	
    var x = node.replace(z, 'rr');
//    var y = node.split("&gt;").length - 1;
//    var u = node.split("&lt;").length - 1;
//    var n = node.split("&amp;").length - 1;
//    var w = node.split("&nbsp;").length - 1;
//	var m = node.split("&mdash;").length - 1;
//	
//    num = num + (y + u) * 4 + n * 5 + w * 6+m * 7;
	//alert(x);
    var result = '';
    if (x.length < num) {
        return node;
    } else {
        if (node.substr(0, num).replace(z, 'rr').length > num) {
            var cut = Math.floor(num / 2);
            for (var i = cut; i < num; i++) {
                result = node.substr(0, i).replace(z, 'rr').length;
                if (result >= num) {
                    return node.substr(0, i).replace(/^\s+|\s+$/g, "");
                }
            }
        } else {
            return node.substr(0, num).replace(/^\s+|\s+$/g, "");
        }
    }
}
function htmlIntercept(num, node,o) {
    var newvalue, tkey, oldvalue, len, subkey, dd2, pos, sum;
    oldvalue = node;
    len = filterKey((oldvalue.replace(/<[^>]+>/g, "")).replace(/^\s+|\s+$/g, "").replace(/[^\x00-\xff]/g, 'rr')).length;
    if (len <= num) {
        return oldvalue
    }
    newvalue = toRightLen(oldvalue, num);
   
	tkey = newvalue.charAt(newvalue.length - 1); //最后字符
    subkey = (newvalue.split(tkey)).length - 1; //次数
    pos = oldvalue.indexOf(tkey);
    sum = (oldvalue.split(tkey)).length-1;

    for (var i = 1; i <= sum; i++) {
        
            dd2 = toRightLen(oldvalue.substring(0, pos + 1), num);
            if (dd2 == newvalue) {
                var div = document.createElement('div');
                div.innerHTML = oldvalue.substring(0, pos + 1);
                return div.innerHTML+o;
            }
            pos = oldvalue.indexOf(tkey, pos + 1);
        
    }
    return;
}

// 获得cookie值
function GetCookie(nm) {
    var m = null;
    if (window.RegExp) {
        var re = new RegExp(";\\s*" + nm + "=([^;]*)", "i");
        m = re.exec(';' + document.cookie);
    }
    return (m ? unescape(m[1]) : null);
}
// 设置cookie值
function SetCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 86400000));
        expires = "; expires=" + date.toGMTString();
    }
    document.cookie = name + "=" + escape(value) + expires + ";path=/";
}

// 得到字符串的真实长度（双字节换算为两个单字节）  
function getStrActualLen(sChars) {
    return sChars.replace(/[^\x00-\xff]/g, "xx").length;
}
// 截取固定长度子字符串 sSource为字符串iLen为长度  
function getInterceptedStr(sSource, iLen) {
    if (sSource.replace(/[^\x00-\xff]/g, "xx").length <= iLen) {
        return sSource;
    }
    var str = "";
    var l = 0;
    var schar;
    for (var i = 0; schar = sSource.charAt(i); i++) {
        l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1);
        if (l >= iLen) {
            break;
        }
        str += schar;
    }
    return str;
}

