social_init.js
5.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
// 兼容性探测
(function() {
var method;
var methods = new Array(
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
);
var length = methods.length;
var console = (window.console = window.console || {});
while (length--) {
method = methods[length];
// Only stub undefined methods.
if (!console[method]) {
console[method] = function(){};
}
}
}(window));
//event对象
try{
var browserName = $.client.browserVersion.browser; //浏览器名称
var browserVersion = parseInt($.client.browserVersion.version);//浏览器版本
if(browserName != "IE"){
var im_event = getEvent();
}
//语言环境
Env = {languageid: window.languageid || readCookie("languageidweaver"), language_loc: {"7": "zh-CN", "8": "en", "9": "zh-TW"}}
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};
}
//Array对象扩展
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(arr,func) {
return function(arr, func) {
for (var i = 0, len = arr.length; i < len; i++) {
func.call(arr, arr[i], i, arr)
}
}
};
}
if (!Array.prototype.unique) {
Array.prototype.unique = function() {
var obj = {},arr = this;
for(var len = arr.length, i = len - 1;i >= 0; --i){
var value = arr[i];
if(typeof obj[value] === 'undefined'){
obj[value] = i;
}else{
arr.splice(obj[value], 1);
for(var j = i; j < arr.length; j++){
obj[arr[j]] = j;
}
}
}
return arr;
};
}
if (!Array.prototype.removeValues) {
Array.prototype.removeValues = function(arr) {
var obj = {},arr0 = this;
if(typeof arr === 'array' || typeof arr === 'object') {
for(var i = 0; i < arr.length; ++i){
obj[arr[i]] = 1;
}
}else{
obj[arr] = 1;
}
for(var len = arr0.length, j = len - 1;j >= 0; --j){
if(obj[arr0[j]]) {
arr0.splice(j, 1);
}
}
return arr0;
};
}
}catch(err){
Env = {languageid: window.languageid, language_loc: {"7": "zh-CN", "8": "en", "9": "zh-TW"}};
}
// jquery插件初始化
$(function(){
//加载i18n配置
jQuery.i18n.properties({
name : 'strings',
path : '/social/i18n/',
mode : 'map',
language : Env.language_loc[Env.languageid],
cache: false,
callback : function() {
console.log("i18n配置成功加载!");
if(typeof window.social_i18n === 'undefined'){
window.social_i18n = function(propname){
var reg_text = $.i18n.prop(propname);
if(arguments.length > 1){
for(var i = 1; i < arguments.length; ++i){
reg_text = reg_text.replace(/\$\{([0-9]+)\}/, arguments[i]);
}
}
return reg_text;
}
}
}
});
});
//全局公共变量
var SOCIAL_GLOBAL = {
OnlineStatus : {
//保存获取过的人员的状态
M_ONLINESTATUS : new Array(),
//保存获取过状态的ID
M_ALLUSERSTATUS : new Array(),
//保存组织架构人员树地址信息 (可以废除)
M_ORG_TREE : new Array(),
//保存常用组人员树地址信息(可以废除)
M_PUBLICGROUP_TREE : new Array(),
M_PRIVATEGROUP_TREE : new Array(),
//保存常用组和组织架构人员数叶子节点,
M_ORGGROUP_TREE : new Object(),
//在线状态设置
TOP_ONLINESTATUS : new Array(),
LEFT_ONLINESTATUS : new Array(),
RIGHT_ONLINESTATUS : new Array(),
//判断是否改变了状态
M_IS_CHANGESTATUS : new Array(),
init : function (){
this.TOP_ONLINESTATUS['away']='/social/images/userStatus/top/away.png';
this.TOP_ONLINESTATUS['online']='/social/images/userStatus/top/online.png';
this.TOP_ONLINESTATUS['busy']='/social/images/userStatus/top/busy.png';
this.LEFT_ONLINESTATUS['away']='/social/images/userStatus/left/away.png';
this.LEFT_ONLINESTATUS['online']='/social/images/userStatus/left/mobileOnline.png';
this.LEFT_ONLINESTATUS['busy']='/social/images/userStatus/left/busy.png';
this.RIGHT_ONLINESTATUS['away']='/social/images/userStatus/right/away.png';
this.RIGHT_ONLINESTATUS['online']='/social/images/userStatus/right/mobileOnline.png';
this.RIGHT_ONLINESTATUS['busy']='/social/images/userStatus/right/busy.png';
}
},
// 离线消息缓冲池
OfflineMsgPool: new Array(),
// 已接收的 离线消息量
ReceivedOfflineMsgCount: 0,
// 空闲计数
idleCount: 0,
// 时间处理间隔
MilisThrehold: 30,
// 离线消息监听器
offlineMsgHandler: null
};
SOCIAL_GLOBAL.OnlineStatus.init();