﻿function eyunCookie() {
    this.key = ""; //初始化key。    
    this.value = ""; //初始化key's value。    
    this.expires = 0; //初始化cookie的有效时间，单位毫秒。    
    this.init = function() {//对象初始化    
        this.key = "";
        this.value = "";
        this.expires = 0;
    }
    this.set = function(key, value, expires) {//设置cookie    
        if (this.key == "") this.key = key;
        if (this.value == "") this.value = value;
        if (this.expires <= 0) this.expires = expires;
        if (this.key == "" || typeof (this.key) != "string") {
            alert("请先设置欲保存的cookie名称！");
            this.init();
            return false;
        }
        if (this.key.match(/[,; ]/)) {
            alert("cookie名称中不能包含“,”、“;”或空格！");
            this.init();
            return false;
        }
        if (this.value.toString().match(/[,; ]/) || typeof (this.value) == "undefined") {
            alert("cookie值中不能包含“,”、“;”或空格！");
            this.init();
            return false;
        }
        if (this.expires <= 0 || typeof (this.expires) != "number") {
            alert("请先正确设置cookie的有效时间！");
            this.init();
            return false;
        }
        var cookie = document.cookie;
        if (cookie.indexOf(this.key + "=") != -1) {
            /*if (!confirm("欲保存的cookie名称已经存在，是否要进行替换？")) {
                this.init();
                return false;
            }*/
        }
        var dt = new Date();
        dt.setTime(dt.getTime() + this.expires);
        document.cookie = this.key + "=" + this.value + ";expires=" + dt.toGMTString();
        this.init();
        return true;
    }

    this.get = function(key) {//取得名为key的cookie的值    
        if (key == "" || key.match(/[,; ]/)) {
            alert("请正确设置欲查找的cookie名称！")
            return false;
        }
        var cookie = document.cookie;
        var start = cookie.indexOf(key + "=");
        if (start == -1) {
            //alert("欲查找的cookie不存在！")
            return false;
        }
        var end = cookie.indexOf(";", start);
        if (end == -1) end = cookie.length;
        var getCookie = cookie.substring(start + key.length + 1, end);
        //alert("cookie：" + key + "的值为" + getCookie);
        return getCookie;
    }
    this.showAll = function() {//显示所有cookie    
        alert("共有以下cookie对：\n" + document.cookie.split(";").toString().replace(/,/g, "\n"));
    }
    this.del = function(key) {//删除名为key的cookie    
        if (key == "" || key.match(/[,; ]/)) {
            alert("请正确设置欲删除的cookie名称！")
            return false;
        }
        var dt = new Date();
        dt.setTime(dt.getTime());
        document.cookie = key + "=eyunDelete;expires=" + dt.toGMTString();
        this.init();
        return true;
    }
    this.destroy = function() {//销毁所有cookie    
        var dt = new Date();
        dt.setTime(dt.getTime());
        while (document.cookie != "") {
            document.cookie = document.cookie + ";expires=" + dt.toGMTString();
            this.init();
            return true;
        }
    }
}
/*使用示例
var cookieTest = new eyunCookie()
function settest() {
    cookieTest.key = "test"
    cookieTest.value = "ok"
    cookieTest.expires = 31536000000
    cookieTest.set()
} 
*/   

