﻿CityingCookie = {
    add: function(key, val, option) {
        var tmp = key + "=" + escape(val);
        if (option) {
            if (option.expireDays) {
                var date = new Date();
                var ms = option.expireDays * 24 * 3600 * 1000;
                date.setTime(date.getTime() + ms);
                tmp += "; expires=" + date.toGMTString();
            }
            if (option.path) tmp += "; path=" + path;
            if (option.domain) tmp += "; domain=" + domain;
            //tmp += "; domain=mycitying.com";
            if (option.secure) tmp += "; true";
        }
        document.cookie = tmp;
        return this;
    },
    find: function(key) {        
        var aTmp = document.cookie.split("; ");
        var oCookie = {};
        for (var i = 0; i < aTmp.length; i++) {
            var arr = aTmp[i].split("=");
            oCookie[arr[0]] = arr[1];
            if (key && arr[0] == key) return unescape(arr[1]); //find one;
        }
        return key ? '' : oCookie; //find all or Empty;
    },
    del: function(key) {
        if (key) {//del one;
            this.add(key, '', { expireDays: -1 });
        } else {//clear all;
            var allCookie = this.find();
            for (var _key in allCookie) this.add(_key, '', { expireDays: -1 });
        }
        return this;
    },
    clear: function() { return this.del(); },
    toObj: function() { return this.find(); }
};

var g_blinkswitch = 0;
var g_blinktitle = document.title;
var g_interval = null;


//获取当前cookie的时间，比较上次执行时间与当前的时间差
function regularCheck() {
    var lg = CityingCookie.find("lgo");
    if (lg == null || lg =="") {return;}
    var timeSpan = 30 * 1000;
    var cookieName = "lastcheck"
    var timeLastCheck = CityingCookie.find(cookieName);
    if (timeLastCheck != null && timeLastCheck != "") {
        var timeGet = Date.parse(timeLastCheck);
        var timeDiff = new Date() - timeGet;
        if (timeDiff > timeSpan) {
            CityingCookie.add(cookieName, new Date().toString());
            requestCheck();
        }
    }
    else {
        CityingCookie.add(cookieName, new Date().toString());
        requestCheck();
    }



}

regularCheck(); //加载页面启动一次
var Interval = setInterval("regularCheck()", 1000 * 30); //此后每30秒检查一次

//发送定时请求；
function requestCheck() {
    var url = "/ajax/RegularCheck.ashx"; // + Math.random(); 
    //请求内容
    $.post(url, function(data) {
        displayMessage(data);
    });
    //post
}


function displayMessage(data) {
    var num = data.split("|")[0];
    var type = data.split("|")[1];
    if (num != "0" && num != "") {
        if (g_interval != null) { window.clearInterval(g_interval); }
        g_interval = setInterval("blinkNewMsg('" + data + "')", 1000);
        if ($("#messageurl")) { $("#messageurl").attr("href", messageUrl(type)); }
    }
    else {
        if (g_interval != null) { window.clearInterval(g_interval); }
        if (document.title != g_blinktitle) { document.title = g_blinktitle };
        if ($("#messages")) { $("#messages").html(""); }
        if ($("#messageurl")) {$("#messageurl").attr("href", messageUrl("default")); }
    }
 }


 function blinkNewMsg(data) {
     var num = data.split("|")[0];
     var type = data.split("|")[1];
    document.title = g_blinkswitch % 2 ? "【新消息】 - " + g_blinktitle : "【" + num + "个未读】 - " + g_blinktitle;
    if ($("#messages")) { $("#messages").html("<img src='\/images\/ico\/icon_haveemail.gif' alt='new message' /><strong>" + num + "</strong>"); }
    if ($("#messages").parent()) { $("#messages").parent().attr("href", messageUrl(type)); }
    g_blinkswitch++;
}

function messageUrl(type) {
    switch(type){
        case "sys":
            return "/message/sys.aspx";
            break;
        case "rev":
            return "/message/commenttome.aspx";
            break;
        case "revto":
            return "/message/commentmeto.aspx";
            break;
        case "mes":
            return "/message/homemsgtome.aspx";
            break;
        case "mesto":
            return "/message/homemsgmeto.aspx";
            break;
        default:
            return "/message/";
    }
}