
/**
     * HTML元素value值过滤处理函数：将<code> &<> </code>等特殊字符作转化处理
     * @sample
     * <code>
     *    <input type="text" name="Name" value="<%=CMyString.filterForHTMLValue(sContent)%>">
     * </code>
     * @param _sContent 指定的文本内容
     * @return 处理后的文本内容
     */
function filterToHTML(_sContent, _bChangeBlank) {
    if (_sContent == null) {
        return "";
    }
    var nSrcLen = _sContent.length;
    var sTemp = "";//记录替换的字符
    var i;
    var cTemp;
    for (i = 0; i < nSrcLen; i++) {
        cTemp = _sContent.charAt(i);
        switch (cTemp) {
          case " ":
            sTemp += (_bChangeBlank ? "&nbsp;" : " ");
            break;
          case "<":
            sTemp += ("&lt;");
            break;
          case ">":
            sTemp += ("&gt;");
            break;
          case "\n":
            sTemp += ("<br>");
            break;
          case "\"":
            sTemp += ("&quot;");
            break;
          case "&":   //why: 2002-3-19
                    //caohui@0515
                    //处理unicode代码
            var bUnicode = false;
            for (var j = (i + 1); j < nSrcLen && !bUnicode; j++) {
                cTemp = _sContent.charAt(j);
                if (cTemp == "#" || cTemp == ";") {
                    sTemp += ("&");
                    bUnicode = true;
                }
            }
            if (!bUnicode) {
                sTemp += ("&amp;");
            }
            break;
          case 9: //Tab
            sTemp += (_bChangeBlank ? "&nbsp;&nbsp;&nbsp;&nbsp;" : "    ");
            break;
          default:
            sTemp += (cTemp);
        }//case
    }
    return sTemp;
}//END:filterToHTML

//获得字符串的长度
function getLen(str) {
    var totallength = 0;
    for (var i = 0; i < str.length; i++) {
        var intCode = str.charCodeAt(i);
        if (intCode >= 0 && intCode <= 128) {
            totallength = totallength + 1;	//非中文单个字符长度加 1
        } else {
            totallength = totallength + 2;	//中文字符长度则加 2
        }
    } //end for
    return totallength;
}

//调用CutStr("china中china国",12) 中文计2个字符
function CutStr(str,len) {
    var templen = 0;
    var tempstr="";
    for(var i = 0; i < str.length; i++){
        var c = str.charAt(i);
        if(IsCnChar(c))
           templen += 1;
        else
           templen += 2;
        tempstr+=str.substring(i,i+1);
        if(templen >= len)
              break;
    }
    if (getLen(str) > len)
     tempstr += "...";
    return tempstr;
}
function IsCnChar(c)
{
    if(c.length > 1){
        return false;
    }
    else if (c == ""){
        return true;
    }
    else
    {
        if (/^([\uFF66-\uFF9F]|[\u0000-\u00FF])*$/gi.test(c))
            return true;
        else
            return false;
    }
}
//替换字符串
function replace(str, replace_what, replace_with) {
    var ndx = str.indexOf(replace_what);
    var delta = replace_with.length - replace_what.length;
    while (ndx >= 0) {
        str = str.substring(0, ndx) + replace_with + str.substring(ndx + replace_what.length);
        ndx = str.indexOf(replace_what, ndx + delta + 1);
    }
    return str;
}
function filterToUrl(str) {
	//str = encodeURI(str)
    str = replace(str, "%", "%25");
    str = replace(str, "#", "%23");
    str = replace(str, "?", "%3F");
    str = replace(str, "/", "%2F");
    str = replace(str, "=", "%3D");
    str = replace(str, ",", "%2C");
    str = replace(str, ";", "%3B");
    str = replace(str, "&", "%26");
    str = replace(str, " ", "%20");
    str = replace(str, "<", "%3C");
    str = replace(str, ">", "%3E");
    str = replace(str, "'", "%27");
    return str;
}

//JavaScript过滤处理函数
function filterForJs(p_sUrl) {
    var sRet;
    sRet = replace(p_sUrl, "\"", "\"\"");
    sRet = replace(sRet, "\\", "\\\\");
    sRet = replace(sRet, "'", "\\'");
    return sRet;
}
function trim(s) {
    var iFirst = 0;
    var iLast = s.length - 1;
    var sTrimChars = " \t";
    while ((iFirst < iLast) && (sTrimChars.indexOf(s.charAt(iFirst)) != -1)) {
        iFirst++;
    }
    while ((iLast >= iFirst) && (sTrimChars.indexOf(s.charAt(iLast)) != -1)) {
        iLast--;
    }
    return s.substring(iFirst, iLast + 1);
}

