/**
 * read a cookie
 * @param {Object} cookieName
 */
function getCookie(cookieName){
    var arg = cookieName + '=';
    var alen = arg.length;
    var clen = document.cookie.length;
    //alert(document.cookie);
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            var endstr = document.cookie.indexOf(';', j);
            if (endstr == -1) {
                endstr = document.cookie.length;
            }
            var ret = unescape(document.cookie.substring(j, endstr));
            if (ret != '') {
                return ret;
            }
        }
        i = document.cookie.indexOf(' ', i) + 1;
        if (i == 0) 
            break;
    }
    return '';
}

/**
 * delete a cookie
 * @param {Object} cookieName
 */
function delCookie(cookieName){
    var exp = new Date();
    exp.setTime(exp.getTime() - 100);
    document.cookie = cookieName + '=; path=/; domain=kuwo.cn; expires=' + exp.toGMTString();
    document.cookie = cookieName + '=; path=/; expires=' + exp.toGMTString();
    //alert(exp.toGMTString());
    //alert('after del : ' + document.cookie);
}

/**
 * add a cookie
 * @param {Object} cookieName
 * @param {Object} cookieValue
 */
function addCookie(cookieName, cookieValue){
    var expdate = new Date();
    var argv = addCookie.arguments;
    var argc = addCookie.arguments.length;
    var expires = (argc > 2 && argv[2] != 0) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    if (expires != null) {
        expdate.setTime(expdate.getTime() + (expires * 1000));
    }
    //set the domain!
    //domain = 'kuwo.cn';
    domain = null;
    document.cookie = cookieName + '=' + escape(cookieValue) +
    ((expires == null) ? '' : ('; expires=' + expdate.toGMTString())) +
    ((path == null) ? '' : ('; path=' + path)) +
    ((domain == null) ? '' : ('; domain=' + domain)) +
    ((secure == true) ? '; secure' : '');
    //alert(expdate.toGMTString());
    //alert(path);
    //alert(domain);
    //alert('after add : ' + document.cookie);
}

/**
 * 检查是否登录
 */
function isLogin(){
    if (getCookie('userid') == null || getCookie('userid') == '') {
        return false;
    }
    return true;
}

/**
 * 检查登录的用户是否为uid的用户
 * @param {Object} uid
 */
function isHost(uid){
    if (uid == getCookie('userid')) {
        return true;
    }
    return false;
}

/**
 * 检查登录uid用户是否激活kzone空间
 * @param {Object} uid
 */
function isHostMlogActivated(uid){
    if (uid == getCookie('userid') && getCookie('mlogdomain') != null && getCookie('mlogdomain') != '') {
        return true;
    }
    return false;
}

/**
 * 检查cookieName标记的操作是否过期
 * @param {Object} cookieName
 * @param {Object} operation
 * @param {Object} time
 */
function checkInterval(cookieName, operation, time){
    var cookieValue = getCookie(cookieName);
    var curTime = new Date();
    if (cookieValue == '') {
        var cookieValue = curTime.getTime();
        addCookie(cookieName, cookieValue, 3600, '/', 'kuwo.cn');//1 hour
    }
    else 
        if (curTime.getTime() - cookieValue < time) {
            if (time < 60000) {
                inf('对不起，两次' + operation + '必须间隔' + (time / 1000) + '秒以上');
            }
            else {
                inf('对不起，两次' + operation + '必须间隔' + (time / 60000) + '分钟以上');
            }
            return false;
        }
    addCookie(cookieName, curTime.getTime(), 3600, '/', 'kuwo.cn');//1 hour
    return true;
}
