var getplayer = function (fname) {
return '';
};
var updateavatar = function () {
$("#list_reload").click();
layer.closeAll();
};
var f_getURL = function () {
return "source/pack/chat/saverecord.php";
};
var f_getMAX = function () {
return 60;
};
var f_getMIN = function () {
return 3;
};
var f_complete = function (filename) {
if (filename == "error") {
$("#textarea").val($("#textarea").val() + "[语音保存失败]");
} else {
$("#textarea").val($("#textarea").val() + "[record:" + filename.substr(9, filename.length - 13) + "]");
}
$("#textarea").focus();
$(".wl_faces_box8").hide();
};
var isIE = function () {
if (!!window.ActiveXObject || "ActiveXObject" in window) {
return true;
} else {
return false;
}
};
var createAjax = function () {
var xhr = null;
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xhr = new XMLHttpRequest();
}
}
return xhr;
};
var ajax = function (conf) {
var type = conf.type;
var url = conf.url;
var data = conf.data;
var dataType = conf.dataType;
var success = conf.success;
if (type == null) {
type = "get";
}
if (dataType == null) {
dataType = "text";
}
var xhr = createAjax();
xhr.open(type, url, true);
if (!isIE()) {
xhr.withCredentials = true;
}
if (type == "GET" || type == "get") {
xhr.send(null);
} else {
if (type == "POST" || type == "post") {
xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
xhr.send(data);
}
}
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
if (dataType == "text" || dataType == "TEXT") {
if (success != null) {
success(xhr.responseText);
}
} else {
if (dataType == "xml" || dataType == "XML") {
if (success != null) {
success(xhr.responseXML);
}
} else {
if (dataType == "jsonp" || dataType == "JSONP") {
if (success != null) {
success(eval("(" + xhr.responseText + ")"));
}
}
}
}
} else {
if (xhr.readyState == 4 && xhr.status != 200) {
}
}
};
};
var listenMsg = {
nid: 0, mid: 0, gid: 0, queryUrl: in_ssl + "://" + in_server + "/source/pack/api/chat/", stop: function () {
clearTimeout(listenMsg.nid);
listenMsg.nid = 0;
clearTimeout(listenMsg.mid);
listenMsg.mid = 0;
clearTimeout(listenMsg.gid);
listenMsg.gid = 0;
$(".message_box").text("");
}, start: function (_uid, _type, _do) {
ajax({
type: "get",
url: listenMsg.queryUrl + "start.php?type=" + _type + "&do=" + _do + "&uid=" + _uid,
dataType: "jsonp",
success: function (data) {
if (data["start"] == -1) {
listenMsg.stop();
$("#send_tips").text("您已退出应用中心");
$(".chat03_content li b").text("");
$(".chat03_content li label").removeClass("online offline").addClass("offline");
if ($("#list_reload").hasClass("chat02_title_t")) {
$("#list_reload").removeClass("chat02_title_t").addClass("chat002_title_t");
}
} else {
if (_type == "msg") {
clearTimeout(listenMsg.mid);
clearTimeout(listenMsg.gid);
if (isNaN(data["start"])) {
$(".close_btn").html("" + getplayer("send") + "");
$(".message_box").append(data["start"]);
$(".chat01_content").scrollTop($(".message_box")[0].scrollHeight);
}
listenMsg.mid = setTimeout("listenMsg.start(" + _uid + ", '" + _type + "', 0);", data["sleep"]);
} else {
if (data["status"] > 0) {
if ($("#uid_" + _uid + " label").hasClass("offline")) {
$("#uid_" + _uid + " label").html("" + getplayer("online") + "");
$("#uid_" + _uid + " label").removeClass("offline").addClass("online");
}
} else {
if ($("#uid_" + _uid + " label").hasClass("online")) {
$("#uid_" + _uid + " label").removeClass("online").addClass("offline");
}
}
if (data["start"] > 0) {
$("#uid_" + _uid + " b").html(data["start"] + "" + getplayer("msg") + "");
$(".chat03_content").animate({scrollTop: $("#uid_" + _uid).offset().top - $(".chat03_content").offset().top}, 100);
} else {
$("#uid_" + _uid + " b").text("");
}
listenMsg.nid = setTimeout("listenMsg.start(" + _uid + ", '" + _type + "', 0);", data["sleep"]);
}
}
}
});
}, group: function (_num) {
ajax({
type: "get",
url: listenMsg.queryUrl + "group.php?num=" + _num,
dataType: "jsonp",
success: function (data) {
if (data["group"] != -1) {
clearTimeout(listenMsg.gid);
if (data["num"] > _num) {
$(".close_btn").html("" + getplayer("send") + "");
$(".talkTo").attr("num", data["num"]);
$(".message_box").append(data["group"]);
$(".chat01_content").scrollTop($(".message_box")[0].scrollHeight);
}
listenMsg.gid = setTimeout("listenMsg.group(" + data["num"] + ");", data["sleep"]);
}
}
});
}, login: function () {
$(".chat03_content").html('
');
if (isIE()) {
$("#send_tips").text("工具->Internet 选项->安全->自定义级别->其他->通过域访问数据源->启用");
}
ajax({
type: "get", url: listenMsg.queryUrl + "login.php" + in_info, dataType: "jsonp", success: function (data) {
if (data["uid"] == -1) {
$("#send_tips").text("您的应用中心帐号已经被锁定,请咨询官方人员!");
} else {
listenMsg.stop();
listenMsg.group($(".talkTo").attr("num"));
listenMsg.list(data["uid"]);
$(".talkTo").attr("verify", data["verify"]);
$(".talkTo a").text("公共频道");
$(".talkTo a").attr("uid", 0);
$("#send_tips").text("按 Enter 键快捷发送");
if ($("#list_reload").hasClass("chat002_title_t")) {
$("#list_reload").removeClass("chat002_title_t").addClass("chat02_title_t");
}
if ($("#_bar", window.parent.document)) {
$("#_bar", window.parent.document).css("background-image", "url(" + data["avatar"] + ")");
}
}
}
});
}, list: function (_uid) {
ajax({
type: "get",
url: listenMsg.queryUrl + "list.php?uid=" + _uid,
dataType: "jsonp",
success: function (data) {
$(".chat03_content").html(data["list"]);
jQuery.getScript("static/pack/chat/js/menu.js", function () {
$(".chat03_content li").contextMenu("menu_list", {
bindings: {
space: function (t) {
window.open("http://" + t.title);
}, lock: function (t) {
lib.away(t.id.substr(4));
}
}
});
});
}
});
}, lock: function (_id) {
ajax({
type: "get",
url: listenMsg.queryUrl + "lib.php/lock?id=" + _id,
dataType: "jsonp",
success: function (data) {
if (data["lock"] == -1) {
layer.msg("请先登录管理中心!", 3, 11);
} else if (data["lock"] == -2) {
layer.msg("请先登录应用中心!", 3, 11);
} else if (data["lock"] == -3) {
layer.msg("站长不存在或已被管理员锁定!", 3, 11);
} else if (data["lock"] == -4) {
layer.msg("您不能锁定自己!", 3, 8);
} else {
layer.msg("恭喜,锁定站长成功!", 3, 1);
setTimeout("$('#list_reload').click();", 3e3);
}
}
});
}, first: function (_pswd) {
if (_pswd.length < 6) {
layer.msg("设置密码长度最短为6位!", 3, 8);
return;
}
ajax({
type: "get",
url: listenMsg.queryUrl + "lib.php/first?pswd=" + escape(_pswd),
dataType: "jsonp",
success: function (data) {
if (data["first"] == -1) {
layer.msg("请先登录应用中心!", 3, 11);
} else if (data["first"] == -2) {
layer.msg("您已经设置过密码!", 3, 11);
} else {
$(".talkTo").attr("verify", data["first"]);
layer.msg("密码设置成功,请继续您的操作!", 3, 1);
}
}
});
}, verify: function (_pswd) {
ajax({
type: "get",
url: listenMsg.queryUrl + "lib.php/verify?pswd=" + escape(_pswd),
dataType: "jsonp",
success: function (data) {
if (data["verify"] == -1) {
layer.msg("请先登录应用中心!", 3, 11);
} else if (data["verify"] == -2) {
lib.reset();
} else {
$(".talkTo").attr("verify", data["verify"]);
layer.msg("密码校验成功,请继续您的操作!", 3, 1);
}
}
});
}, game: function (_mid, _tid) {
ajax({
type: "get",
url: in_ssl + "://" + in_server + "/source/pack/api/poker/enterTable.php?tableID=" + _tid,
dataType: "text",
success: function (data) {
if (data == "failure") {
layer.tips("房间人数已满员!", "#" + _mid, {
style: ["background-color:#FF8901;color:#fff", "#FF8901"],
maxWidth: 185,
time: 3,
closeBtn: [0, true]
});
} else {
lib.poker();
}
}
});
}, send: function () {
if ($("#textarea").val() == "") {
$("#textarea").focus();
return;
}
ajax({
type: "get",
url: listenMsg.queryUrl + "send.php?text=" + escape($("#textarea").val()) + "&uname=" + $(".talkTo a").text() + "&uid=" + $(".talkTo a").attr("uid"),
dataType: "jsonp",
success: function (data) {
if (data["send"] == -1) {
$("#send_tips").text("请先登录应用中心");
} else if (data["send"] == -2) {
layer.prompt({title: "发送消息前,请先设置密码"}, function (_pswd) {
listenMsg.first(_pswd);
});
} else if (data["send"] == -3) {
layer.prompt({title: "发送消息前,请先校验密码"}, function (_pswd) {
listenMsg.verify(_pswd);
});
} else {
$("#textarea").val("");
if ($(".talkTo a").attr("uid") > 0) {
listenMsg.start($(".talkTo a").attr("uid"), "msg", 1);
} else {
listenMsg.group($(".talkTo").attr("num"));
}
}
}
});
}
};
(function () {
lib = {
press: function (_type, _id, _class) {
var key = navigator.appName == "Netscape" ? event.which : window.event.keyCode;
if (_type == "send" && key == 13) {
listenMsg.send();
} else if (_type == "value" && key == 27) {
var val = _id == "_img" ? "[img]" + $("#_img").val() + "[/img]" : "[flash]" + $("#_flash").val() + "[/flash]";
$("#textarea").val($("#textarea").val() + val);
$("#textarea").focus();
$("." + _class).hide();
}
}, disturb: function (_mode) {
if (_mode > 0) {
$("#list_reload").click();
$("#set_disturb").attr("title", "开启免打扰");
$("#set_disturb").attr("onclick", "lib.disturb(0)");
$("#set_disturb").css("background", "url('static/pack/chat/icon/disturb.png') no-repeat 10px 8px");
layer.tips("已关闭免打扰模式!", "#set_disturb", {
style: ["background-color:#FF8901;color:#fff", "#FF8901"],
maxWidth: 185,
time: 1
});
} else {
listenMsg.stop();
$("#set_disturb").attr("title", "关闭免打扰");
$("#set_disturb").attr("onclick", "lib.disturb(1)");
$("#set_disturb").css("background", "url('static/pack/chat/icon/nodisturb.png') no-repeat 10px 8px");
layer.tips("已开启免打扰模式!", "#set_disturb", {
style: ["background-color:#99C521;color:#fff", "#99C521"],
maxWidth: 185,
closeBtn: [0, true]
});
}
}, away: function (_id) {
$.layer({
shade: [0],
area: ["auto", "auto"],
dialog: {
msg: "确认要通过锁定来踢出该站长?", btns: 2, type: 4, btn: ["确认", "取消"], yes: function () {
listenMsg.lock(_id);
}, no: function () {
layer.msg("已取消锁定", 1, 0);
}
}
});
}, reset: function () {
$.layer({
shade: [0],
area: ["auto", "auto"],
dialog: {
msg: "密码有误,是否重置密码?", btns: 2, type: 4, btn: ["确认", "取消"], yes: function () {
window.open(in_ssl + "://" + in_server + "/index/setting/resetpw/");
}, no: function () {
layer.msg("已取消重置", 1, 0);
}
}
});
}, avatar: function () {
$.layer({
type: 1,
title: "更新头像",
area: ["auto", "auto"],
page: {html: ''}
});
}, poker: function () {
$.layer({
type: 2,
shade: [0],
maxmin: true,
title: "斗地主",
area: ["826px", "549px"],
iframe: {src: in_ssl + "://" + in_server + "/source/pack/api/poker/game.php", scrolling: "no"}
});
}, shake: function (_size, _time, _id, _speed) {
if ($("#_dialog", window.parent.document) && $("#_dialog", window.parent.document).is(":hidden")) {
$("#_dialog", window.parent.document).show();
}
$(".close_btn").html("" + getplayer("shake") + "");
var len = _size, c = _time, step = 0, shake = $("#" + _id), off = shake.offset();
this.step = 0;
timer = setInterval(function () {
var set = lib.pos();
shake.offset({top: off.top + set.y * len, left: off.left + set.x * len});
if (step++ >= c) {
shake.offset({top: off.top, left: off.left});
clearInterval(timer);
}
}, _speed);
}, pos: function () {
this.step = this.step ? this.step : 0;
this.step = this.step == 4 ? 0 : this.step;
var set = {0: {x: 0, y: -1}, 1: {x: -1, y: 0}, 2: {x: 0, y: 1}, 3: {x: 1, y: 0}};
return set[this.step++];
}
};
})();
$(document).ready(function () {
$("body").delegate(".chat03_content li", "mouseover", function () {
$(this).addClass("hover").siblings().removeClass("hover");
});
$("body").delegate(".chat03_content li", "mouseout", function () {
$(this).removeClass("hover").siblings().removeClass("hover");
});
$("body").delegate(".chat03_content li", "click", function () {
$(this).addClass("choosed").siblings().removeClass("choosed");
$(".talkTo a").text($(this).children(".chat03_name").text());
$(".talkTo a").attr("uid", $(this).children(".chat03_name").attr("uid"));
$(".message_box").text("");
listenMsg.start($(this).children(".chat03_name").attr("uid"), "msg", 2);
});
$("#_emoji").mouseover(function () {
$(this).removeClass("ctb00").addClass("ctb01");
$(".wl_faces_box").show();
}).mouseout(function () {
$(this).removeClass("ctb01").addClass("ctb00");
$(".wl_faces_box").hide();
});
$("#_record").mouseover(function () {
$(this).removeClass("ctb07").addClass("ctb08");
$(".wl_faces_box8").show();
}).mouseout(function () {
$(this).removeClass("ctb08").addClass("ctb07");
$(".wl_faces_box8").hide();
});
$(".ctb02").mouseover(function () {
$(".wl_faces_box2").show();
}).mouseout(function () {
$(".wl_faces_box2").hide();
});
$(".ctb03").mouseover(function () {
$(".wl_faces_box3").show();
}).mouseout(function () {
$(".wl_faces_box3").hide();
});
$("#_shake").mouseover(function () {
$(this).removeClass("ctb04").addClass("ctb05");
}).mouseout(function () {
$(this).removeClass("ctb05").addClass("ctb04");
});
$("#_shake").click(function () {
$("#textarea").val($("#textarea").val() + "[event:shake]");
$("#textarea").focus();
});
$("#_upload").mouseover(function () {
$(this).removeClass("ctb09").addClass("ctb10");
}).mouseout(function () {
$(this).removeClass("ctb10").addClass("ctb09");
});
$(".ctb06").click(function () {
if ($(".talkTo").attr("verify") == "8f00b204e9800998") {
layer.prompt({title: "更新头像前,请先设置密码"}, function (_pswd) {
listenMsg.first(_pswd);
});
} else if ($(".talkTo").attr("verify").match(/\:/)) {
lib.avatar();
} else {
layer.prompt({title: "更新头像前,请先校验密码"}, function (_pswd) {
listenMsg.verify(_pswd);
});
}
});
$(".ctb11").click(function () {
lib.poker();
});
$(".chat02_title_l").click(function () {
$(".talkTo").attr("num", 0);
$("#list_reload").click();
});
$(".wl_faces_box").mouseover(function () {
$("#_emoji").removeClass("ctb00").addClass("ctb01");
$(this).show();
}).mouseout(function () {
$("#_emoji").removeClass("ctb01").addClass("ctb00");
$(this).hide();
});
$(".wl_faces_box8").mouseover(function () {
$("#_record").removeClass("ctb07").addClass("ctb08");
$(this).show();
}).mouseout(function () {
$("#_record").removeClass("ctb08").addClass("ctb07");
$(this).hide();
});
$(".wl_faces_box2").mouseover(function () {
$(this).show();
}).mouseout(function () {
$(this).hide();
});
$(".wl_faces_box3").mouseover(function () {
$(this).show();
}).mouseout(function () {
$(this).hide();
});
$(".wl_faces_close").click(function () {
$(".wl_faces_box").hide();
});
$(".wl_faces_close8").click(function () {
$(".wl_faces_box8").hide();
});
$(".wl_faces_close2").click(function () {
$(".wl_faces_box2").hide();
});
$(".wl_faces_close3").click(function () {
$(".wl_faces_box3").hide();
});
$(".close_btn").click(function () {
$(".message_box").text("");
});
$("#list_reload").click(function () {
listenMsg.login();
});
$(".wl_faces_main img").click(function () {
var i = $(this).attr("src");
$("#textarea").val($("#textarea").val() + "[emoji:" + i.substr(i.indexOf("emoji/") + 10, 2) + "]");
$("#textarea").focus();
$(".wl_faces_box").hide();
});
});