<!--
/**
 * cookie.js
 * @fileoverview javascript Cookie处理, 包括设置/删除/获取Cookie等操作
 * @author Lynk Li
 */

/**
 * GetCookieVal
 * 获得Cookie解码后的值
 * @param int offset Cookie 所在索引 
 */
function GetCookieVal(offset){
        var endstr = document.cookie.indexOf (";", offset);
        if (endstr == -1)
        endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr));
}

/**
 * SetCookie
 * 设定Cookie值
 * @param String name Cookie名称
 * @param String value Cookie值
 */
function Cookie_set(name, value) {
        var expdate = new Date();
        var argv = Cookie_set.arguments;
        var argc = Cookie_set.arguments.length;
        var expires = (argc > 2) ? argv[2] : null;
        var path = "/";
        var domain = (argc > 4) ? argv[4] : null;
        var secure = (argc > 5) ? argv[5] : false;
        if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
        document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
        +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
        +((secure == true) ? "; secure" : "");
}

/**
 * DelCookie
 * 删除Cookie
 * @param String name Cookie名称
 */
function Cookie_delete(name){
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval = Cookie_get(name);
        document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

/**
 * GetCookie
 * 获得Cookie的原始值
 * @param String name Cookie名称
 * @return String Cookie值
 */
function Cookie_get(name){
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var i = 0;
        while (i < clen)
        {
                var j = i + alen;
                if (document.cookie.substring(i, j) == arg)
                        return GetCookieVal (j);
                i = document.cookie.indexOf(" ", i) + 1;
                        if (i == 0) break;
        }
        return null;
}
//-->