//有思工作室Cookie类。


//判断是否是登录用户操作增加，删除，修改。
exports.IsloginId = function (req, UserId) {
    //如果没有Cookie，直接返回false
    if (!req.headers.cookie) return false;//ie 为空，但chrome不为空，还要加判断啊。
    var _uscookie=GetUSCookie(req);
    if(!_uscookie) return false;//chrome判断有思cookie是否为空
    var _cid = GetUSCookie(req).userid; //获取Cookie中保存的用户id
    //console.log(_cid);
    //如果用户id等于登录用户id，则获取授权，否则，不能获取
    if (_cid == UserId) return true;
    else return false;
}
//从原始Cookie中SplitCookie后再获取1473的Cookie集合。因为有思的Cookie有很多
GetUSCookie = function (req) {
    ////获取有思Cookie。格式为userid=72854d28-f45c-48d7-92b7-3cd933e03022&username=13928417148&Loginid=dfdcfd00-41f3-923d-bcdc-0d59a423883b
    var _uj = {}; //定义一个接受的集合，以后可以这样访问 _uj.userid  _uj.username。。
    var _usc=SplitCookie(req).usestudiosso;
    if(!_usc) return false; //如果没有找到有思Cookie，返回false。
    var _uc = _usc.split("&");
    //按照&号拆分出3个。
    for (var i = 0; i < _uc.length; i++) {
        var idx = _uc[i].indexOf('=');
        var key = _uc[i].substr(0, idx).trim(); //得到key值。
        //由于1473特性。需要反向找到最后一个Cookie。所以还需要反向获得值。
        var last = _uc[i].lastIndexOf('=');
        var val = _uc[i].substr(++last, _uc[i].length).trim(); //得到value值。
        //var val = _uc[i].substr(++idx, _uc[i].length).trim();
        _uj[key] = val; //加入集合中。
    }
    return _uj;
}

//不带exports就是私有方法？带了exports在本文件中访问不了。
//把原始Cookie字符串拆分成集合。
SplitCookie = function (req) {
    //cookie原始格式_ga=GA1.2.231946673.1395199498; Hm_lvt_1fce47ee7e8655ddd108fca7116f0752=1395213071,1395213219,1395213766,1395214600; use
    //studiosso=userid=72854d28-f45c-48d7-92b7-3cd933e03022&username=13928417148&Loginid=25e6bb4b-a8f5-698d-ee06-a4cb3e56f4af
    var cookieObj = {}; //定义集合，以便获取数据
    var pairs = req.headers.cookie.split(/[;,] */); //根据分号，逗号拆分字符串为字符串数组。
    //循环数组中每个元素，按照等号拆分成键值对。如果没有等号会有错误，暂时不管他了，以后再修正。
    for (var i = 0; i < pairs.length; i++) {
        var idx = pairs[i].indexOf('=');
        var key = pairs[i].substr(0, idx).trim();
        var val = pairs[i].substr(++idx, pairs[i].length).trim();
        cookieObj[key] = val; //加入集合中。
    }
    return cookieObj;
}

