Код
var gbch = {
getcooks: function (name) {
return cookgb(name, 'get');
},
o: {
a: 8
},
post: function () {
if (ucodes.ru.logged != "1") return alert('Отправка сообщений лишь для пользователей доступна.');
var msg = $("#txtchatGB").val(),
m = $("#statimg-chat");
if (msg.length < 2) return _uWnd.alert('Ваше сообщение слишком короткое', 'Ошибка', {
w: 215,
h: 75,
tm: 3000
});
m.show().attr('src', '/chatallcfg/load.gif');
gbch.o["message"] = msg;
$.get("/gb", function (k) {
var ds = k.split("_y8M=_dS('"),
dc = k.split("_y7M=_dC('");
ds = (typeof ds[1] !== "undefined") ? ds[1].split("');")[0].replace(/\\\'/g, "'") : "";
dc = (typeof dc[1] !== "undefined") ? dc[1].split("');")[0].replace(/\\\'/g, "'") : "";
if (ds) decodeS(ds);
if (dc) decodeS(dc);
var seckey = $("input[name='seckey']", k).val(),
skimg = $("#secImg", k).clone();
if (!seckey) postmessageinchat();
else {
gbch.o.seckey = seckey;
capcodechat(skimg);
}
});
}
}
function capcodechat(img) {
new _uWnd('cap', 'Каптча', 300, 70, {
modal: 1,
oncontent: function () {
$("#capImgSpanchat").html(img);
$("#capchatcode").focus();
},
onclose: function () {
$("#statimg-chat").hide();
}
},
' ');
}
function chkcapcodechat(v) {
if (v.length >= 4) {
gbch.o.code = v;
postmessageinchat();
}
}
function postmessageinchat() {
var m = $("#statimg-chat");
$.post("/gb", gbch.o, function (data) {
var ress = $(data).text();
if (ress.indexOf("успешно") > -1) {
if (_uWnd.getbyname('cap')) _uWnd.close('cap');
$("#txtchatGB").val("");
setTimeout(function () {
loadPageChat(1, true);
},
350);
m.show().attr('src', '/chatallcfg/ok.png');
setTimeout(function () {
m.hide();
},
1000);
}
else if (ress.indexOf("код безопасности") > -1) {
try {
$("#secImg").trigger("click");
$("#capchatcode").val("");
} catch(e) {}
}
else {
alert(ress.replace("document.getElementById('gbsbm').disabled=false;", ""));
m.show().attr('src', '/chatallcfg/error.png');
setTimeout(function () {
m.hide();
},
1000);
}
});
}
function optionschat() {
new _uWnd('opt', 'Настройки', 530, 150, {
align: 0,
modal: 1,
oncontent: function () {
var autosmile = gbch.getcooks('autosmileschat'),
autoload = gbch.getcooks('newmessloadchat'),
fastsend = gbch.getcooks('fastsendctrlenter'),
colorchat = gbch.getcooks('colormymesschat'),
hidebbcodes = gbch.getcooks('hidechatbbcodes'),
alrtnew = gbch.getcooks('alertnewmessages'),
reloadbutton = gbch.getcooks('reloadbuttonshowchat');
if (autosmile == "yes") $("#autosmileschat option[value='yes']").attr("selected", true);
if (fastsend == "no") $("#fastsendctrlenter option[value='no']").attr("selected", true);
if (autoload) $("#newmessloadchat option[value='" + autoload + "']").attr("selected", true);
if (colorchat) $("#colormymesschat option[value='" + colorchat + "']").attr("selected", true);
if (hidebbcodes == "yes") $("#hidechatbbcodes option[value='yes']").attr("selected", true);
if (alrtnew == "no") $("#alertnewmessages option[value='no']").attr("selected", true);
if (reloadbutton == "no") $("#reloadbuttonshowchat option[value='no']").attr("selected", true);
}
},
'Настраиваемые функции');
}
function myreloadchat() {
var lr = gbch.TimeOfLastReload || 0;
if (((new Date()).valueOf() - lr) < 4500) return _uWnd.alert('Нельзя обновлять чат слишком часто. Минимальный интервал: 4.5 секунды', 'Предупреждение', {
w: 245,
h: 75,
tm: 3000
});
loadPageChat(gbch.pagenow || 1);
if (gbch.getcooks('alertnewmessages') != "no") {
$("#reNewPostsChat").show();
setTimeout(function () {
$("#reNewPostsChat").fadeOut("slow");
},
100000);
}
}
function setoptionchat(n, v) {
cookgb(n, 'set', v, 365);
}
function ifchatautosmiles() {
if (gbch.getcooks('autosmileschat') == "yes") smilesToggleChat();
}
function cookgb(a, t, v, x) {
if (t == 'set') {
var h = new Date();
h.setTime(h.getTime() + (x * 86400000));
var ex = "; expires=" + h.toGMTString();
document.cookie = a + "=" + v + ex + "; path=/";
}
if (t == 'get') {
var k = a + "=",
ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(k) == 0) return c.substring(k.length, c.length);
}
return null;
}
if (t == 'del') {
arguments.callee(a, 'set', '', -1);
}
}
function decodeS(s) {
var i, r = "",
l = s.length - 1,
k = s.substr(l, 1);
for (i = 0; i < l; i++) {
c = s.charCodeAt(i) - k;
if (c < 32) {
c = 127 - (32 - c);
}
r += String.fromCharCode(c);
};
gbch.o[r.split('"')[3]] = r.split('"')[5];
}
function smilesToggleChat() {
$.get("/index/35-1-0", function (xml) {
var d = $('cmd[p="content"]', xml).text(),
imgs = [];
$("img", d).each(function () {
var onclk = $(this).parents("tr").attr("onclick").toString();
onclk = onclk.split("'")[1] || onclk.split('"')[1];
imgs.push('
');
});
new _uWnd('smls', 'Смайлы', 400, 300, {
y: $("#txtchatGB").position().top - $(window).scrollTop() - 250,
x: $("#txtchatGB").position().left - $(window).scrollLeft() + 75,
maxw: 400,
maxh: 300,
oncontent: function () {
setTimeout(function () {
_uWnd.getbyname('smls').checksize()
},
500);
}
},
imgs.reverse().join(" "));
});
}
function chatsmilegb(a) {
$("#txtchatGB")[0].value += " " + a + " ";
$("#txtchatGB").focus();
}
function loadPageChat(n, ran) {
gbch.TimeOfLastReload = (new Date()).valueOf();
gbch.pagenow = n;
var _cb = $("#compageblock").html();
if (_cb) $("#compageblock").html("Загрузка…");
var url = ran ? "/gb?" + Math.floor(Math.random() * 99999) : "/gb/" + n;
$("#gbcb1").load(url + " .blockGbChat", function (data) {
if ($(".blockGbChat", data).size() == 0) $('#gbcb1').html('
var pgs = $("#pagesBlock1", data).html(), morathan1page = $("#pagesBlock1 a", data).size();
if (morathan1page) $("#gbcb1").append($("").html(pgs.replace(/swchItemA/gi, 'now-page-chat').replace(/Страницы\:\s/i, '').replace(/swchItem/gi, 'notsel-page').replace(/swchItemDots/gi, 'dot-page-cht').replace(/spages/gi, 'loadPageChat'))).find("#compageblock a").attr("href", "javascript://");
});
}
function toUmane(a) {
$("#txtchatGB")[0].value += "[b]" + a + "[/b], ";
$("#txtchatGB").focus();
}
function userChatNav(o, t) {
var _ = "chb" + o.num,
tp = $(t).position();
$("#" + _).show().css({
top: tp.top - $(window).scrollTop() - 10,
left: tp.left - $(window).scrollLeft() - 10
});
}
function menuJJ(obj, a) {
if (a) {
if (obj.h) clearTimeout(obj.h);
} else {
obj.h = setTimeout(function () {
$(obj).fadeOut(500);
},
900);
}
}
function delchatmsg(id, c) {
if (!confirm('Удалить сообщение?')) return;
$.get("/gb", function (y) {
var ssid = y.match(/\/index\/92\-9\-\'\+id\+\'\-(\w+)\'/) || [];
if (ssid && ssid[1]) {
$.get("/index/92-9-" + id + "-" + ssid[1], function () {
$(c).slideUp(1000, function () {
$(c).remove();
if ($(".blockGbChat").size() == 0) loadPageChat(1);
})
})
} else alert('Истек период сессии');
});
}
function menuNavChat(id, f) {
if (f == 0) window.open('/index/8-' + id, 'prof', 'scrollbars=1,top=70,left=15,resizable=1,width=650,height=400');
if (f == 1) window.open('/index/14-' + id + '-0-1', 'pm', 'scrollbars=1,top=70,left=15,resizable=1,width=650,height=370');
}
loadPageChat(1);
if (gbch.getcooks('reloadbuttonshowchat') == 'no') $("#reloadchatbutton").hide();
function ctrlpost(e, f) {
if (gbch.getcooks("fastsendctrlenter") == "no") return;
e = e || window.event;
if (e.keyCode == 10 || e.ctrlKey && e.keyCode == 13) f();
}
gbch.reloadtime = gbch.getcooks('newmessloadchat') || 10000;
$("#txtchatGB").bind("select change click focus keyup", function () {
if (document.selection) this.sel = document.selection.createRange().duplicate();
});
function bbcodeChat(tg) {
var o = '[' + tg + ']',
c = '[/' + tg + ']',
doc = $('#txtchatGB')[0];
doc.focus();
if (window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) {
var s = doc.sel;
if (s) {
var l = s.text.length;
s.text = o + s.text + c;
s.moveEnd("character", -c.length);
s.moveStart("character", -l);
s.select();
}
} else {
var ss = doc.scrollTop;
sel1 = doc.value.substr(0, doc.selectionStart);
sel2 = doc.value.substr(doc.selectionEnd);
sel = doc.value.substr(doc.selectionStart, doc.selectionEnd - doc.selectionStart);
doc.value = sel1 + o + sel + c + sel2;
doc.selectionStart = sel1.length + o.length;
doc.selectionEnd = doc.selectionStart + sel.length;
doc.scrollTop = ss;
};
return false;
}
setInterval(function () {
var _colorChat = gbch.getcooks('colormymesschat') || 'black';
$("div.blockGbChat").each(function () {
if ($(this).html().indexOf('' + ucodes.ru.login + '') > -1) $(this).find('.messageChatMess').css("color", _colorChat);
});
},
1000);
if (gbch.getcooks('hidechatbbcodes') == "yes") $("#bbcodesInChat").hide();
setInterval(function () {
var lr = gbch.TimeOfLastReload || 0,
_n = gbch.pagenow || 1;
if ((((new Date()).valueOf() - lr) > gbch.reloadtime) && $(".chat-block-div:visible").size() == 0) {
loadPageChat(_n);
if (gbch.getcooks('alertnewmessages') != "no") {
$("#reNewPostsChat").show();
setTimeout(function () {
$("#reNewPostsChat").fadeOut("slow");
},
2000);
}
}
},
gbch.reloadtime);
getcooks: function (name) {
return cookgb(name, 'get');
},
o: {
a: 8
},
post: function () {
if (ucodes.ru.logged != "1") return alert('Отправка сообщений лишь для пользователей доступна.');
var msg = $("#txtchatGB").val(),
m = $("#statimg-chat");
if (msg.length < 2) return _uWnd.alert('Ваше сообщение слишком короткое', 'Ошибка', {
w: 215,
h: 75,
tm: 3000
});
m.show().attr('src', '/chatallcfg/load.gif');
gbch.o["message"] = msg;
$.get("/gb", function (k) {
var ds = k.split("_y8M=_dS('"),
dc = k.split("_y7M=_dC('");
ds = (typeof ds[1] !== "undefined") ? ds[1].split("');")[0].replace(/\\\'/g, "'") : "";
dc = (typeof dc[1] !== "undefined") ? dc[1].split("');")[0].replace(/\\\'/g, "'") : "";
if (ds) decodeS(ds);
if (dc) decodeS(dc);
var seckey = $("input[name='seckey']", k).val(),
skimg = $("#secImg", k).clone();
if (!seckey) postmessageinchat();
else {
gbch.o.seckey = seckey;
capcodechat(skimg);
}
});
}
}
function capcodechat(img) {
new _uWnd('cap', 'Каптча', 300, 70, {
modal: 1,
oncontent: function () {
$("#capImgSpanchat").html(img);
$("#capchatcode").focus();
},
onclose: function () {
$("#statimg-chat").hide();
}
},
' ');
}
function chkcapcodechat(v) {
if (v.length >= 4) {
gbch.o.code = v;
postmessageinchat();
}
}
function postmessageinchat() {
var m = $("#statimg-chat");
$.post("/gb", gbch.o, function (data) {
var ress = $(data).text();
if (ress.indexOf("успешно") > -1) {
if (_uWnd.getbyname('cap')) _uWnd.close('cap');
$("#txtchatGB").val("");
setTimeout(function () {
loadPageChat(1, true);
},
350);
m.show().attr('src', '/chatallcfg/ok.png');
setTimeout(function () {
m.hide();
},
1000);
}
else if (ress.indexOf("код безопасности") > -1) {
try {
$("#secImg").trigger("click");
$("#capchatcode").val("");
} catch(e) {}
}
else {
alert(ress.replace("document.getElementById('gbsbm').disabled=false;", ""));
m.show().attr('src', '/chatallcfg/error.png');
setTimeout(function () {
m.hide();
},
1000);
}
});
}
function optionschat() {
new _uWnd('opt', 'Настройки', 530, 150, {
align: 0,
modal: 1,
oncontent: function () {
var autosmile = gbch.getcooks('autosmileschat'),
autoload = gbch.getcooks('newmessloadchat'),
fastsend = gbch.getcooks('fastsendctrlenter'),
colorchat = gbch.getcooks('colormymesschat'),
hidebbcodes = gbch.getcooks('hidechatbbcodes'),
alrtnew = gbch.getcooks('alertnewmessages'),
reloadbutton = gbch.getcooks('reloadbuttonshowchat');
if (autosmile == "yes") $("#autosmileschat option[value='yes']").attr("selected", true);
if (fastsend == "no") $("#fastsendctrlenter option[value='no']").attr("selected", true);
if (autoload) $("#newmessloadchat option[value='" + autoload + "']").attr("selected", true);
if (colorchat) $("#colormymesschat option[value='" + colorchat + "']").attr("selected", true);
if (hidebbcodes == "yes") $("#hidechatbbcodes option[value='yes']").attr("selected", true);
if (alrtnew == "no") $("#alertnewmessages option[value='no']").attr("selected", true);
if (reloadbutton == "no") $("#reloadbuttonshowchat option[value='no']").attr("selected", true);
}
},
'Настраиваемые функции
Автоматически открывать окошко со смайликами
НетДаПодгружать новые сообщения каждые
10 сек20 сек30 сек1 мин5 минОтправлять сообщения комбинацией клавиш Ctrl+Enter
ДаНетЦвет сообщений, которые адресованы Вам
Цвет сайтаЧерныйЗеленыйСинийОранжевыйСиреневыйЖелтыйСалатовыйРозовыйСкрывать панель ББ-кодов
НетДаУведомлять о обновлении сообщений
ДаНетПоказывать кнопку обновления сообщений
ДаНет}
function myreloadchat() {
var lr = gbch.TimeOfLastReload || 0;
if (((new Date()).valueOf() - lr) < 4500) return _uWnd.alert('Нельзя обновлять чат слишком часто. Минимальный интервал: 4.5 секунды', 'Предупреждение', {
w: 245,
h: 75,
tm: 3000
});
loadPageChat(gbch.pagenow || 1);
if (gbch.getcooks('alertnewmessages') != "no") {
$("#reNewPostsChat").show();
setTimeout(function () {
$("#reNewPostsChat").fadeOut("slow");
},
100000);
}
}
function setoptionchat(n, v) {
cookgb(n, 'set', v, 365);
}
function ifchatautosmiles() {
if (gbch.getcooks('autosmileschat') == "yes") smilesToggleChat();
}
function cookgb(a, t, v, x) {
if (t == 'set') {
var h = new Date();
h.setTime(h.getTime() + (x * 86400000));
var ex = "; expires=" + h.toGMTString();
document.cookie = a + "=" + v + ex + "; path=/";
}
if (t == 'get') {
var k = a + "=",
ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(k) == 0) return c.substring(k.length, c.length);
}
return null;
}
if (t == 'del') {
arguments.callee(a, 'set', '', -1);
}
}
function decodeS(s) {
var i, r = "",
l = s.length - 1,
k = s.substr(l, 1);
for (i = 0; i < l; i++) {
c = s.charCodeAt(i) - k;
if (c < 32) {
c = 127 - (32 - c);
}
r += String.fromCharCode(c);
};
gbch.o[r.split('"')[3]] = r.split('"')[5];
}
function smilesToggleChat() {
$.get("/index/35-1-0", function (xml) {
var d = $('cmd[p="content"]', xml).text(),
imgs = [];
$("img", d).each(function () {
var onclk = $(this).parents("tr").attr("onclick").toString();
onclk = onclk.split("'")[1] || onclk.split('"')[1];
imgs.push('
});
new _uWnd('smls', 'Смайлы', 400, 300, {
y: $("#txtchatGB").position().top - $(window).scrollTop() - 250,
x: $("#txtchatGB").position().left - $(window).scrollLeft() + 75,
maxw: 400,
maxh: 300,
oncontent: function () {
setTimeout(function () {
_uWnd.getbyname('smls').checksize()
},
500);
}
},
imgs.reverse().join(" "));
});
}
function chatsmilegb(a) {
$("#txtchatGB")[0].value += " " + a + " ";
$("#txtchatGB").focus();
}
function loadPageChat(n, ran) {
gbch.TimeOfLastReload = (new Date()).valueOf();
gbch.pagenow = n;
var _cb = $("#compageblock").html();
if (_cb) $("#compageblock").html("Загрузка…");
var url = ran ? "/gb?" + Math.floor(Math.random() * 99999) : "/gb/" + n;
$("#gbcb1").load(url + " .blockGbChat", function (data) {
if ($(".blockGbChat", data).size() == 0) $('#gbcb1').html('
Сообщений нет
'); var pgs = $("#pagesBlock1", data).html(), morathan1page = $("#pagesBlock1 a", data).size();
if (morathan1page) $("#gbcb1").append($("").html(pgs.replace(/swchItemA/gi, 'now-page-chat').replace(/Страницы\:\s/i, '').replace(/swchItem/gi, 'notsel-page').replace(/swchItemDots/gi, 'dot-page-cht').replace(/spages/gi, 'loadPageChat'))).find("#compageblock a").attr("href", "javascript://");
});
}
function toUmane(a) {
$("#txtchatGB")[0].value += "[b]" + a + "[/b], ";
$("#txtchatGB").focus();
}
function userChatNav(o, t) {
var _ = "chb" + o.num,
tp = $(t).position();
$("#" + _).show().css({
top: tp.top - $(window).scrollTop() - 10,
left: tp.left - $(window).scrollLeft() - 10
});
}
function menuJJ(obj, a) {
if (a) {
if (obj.h) clearTimeout(obj.h);
} else {
obj.h = setTimeout(function () {
$(obj).fadeOut(500);
},
900);
}
}
function delchatmsg(id, c) {
if (!confirm('Удалить сообщение?')) return;
$.get("/gb", function (y) {
var ssid = y.match(/\/index\/92\-9\-\'\+id\+\'\-(\w+)\'/) || [];
if (ssid && ssid[1]) {
$.get("/index/92-9-" + id + "-" + ssid[1], function () {
$(c).slideUp(1000, function () {
$(c).remove();
if ($(".blockGbChat").size() == 0) loadPageChat(1);
})
})
} else alert('Истек период сессии');
});
}
function menuNavChat(id, f) {
if (f == 0) window.open('/index/8-' + id, 'prof', 'scrollbars=1,top=70,left=15,resizable=1,width=650,height=400');
if (f == 1) window.open('/index/14-' + id + '-0-1', 'pm', 'scrollbars=1,top=70,left=15,resizable=1,width=650,height=370');
}
loadPageChat(1);
if (gbch.getcooks('reloadbuttonshowchat') == 'no') $("#reloadchatbutton").hide();
function ctrlpost(e, f) {
if (gbch.getcooks("fastsendctrlenter") == "no") return;
e = e || window.event;
if (e.keyCode == 10 || e.ctrlKey && e.keyCode == 13) f();
}
gbch.reloadtime = gbch.getcooks('newmessloadchat') || 10000;
$("#txtchatGB").bind("select change click focus keyup", function () {
if (document.selection) this.sel = document.selection.createRange().duplicate();
});
function bbcodeChat(tg) {
var o = '[' + tg + ']',
c = '[/' + tg + ']',
doc = $('#txtchatGB')[0];
doc.focus();
if (window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) {
var s = doc.sel;
if (s) {
var l = s.text.length;
s.text = o + s.text + c;
s.moveEnd("character", -c.length);
s.moveStart("character", -l);
s.select();
}
} else {
var ss = doc.scrollTop;
sel1 = doc.value.substr(0, doc.selectionStart);
sel2 = doc.value.substr(doc.selectionEnd);
sel = doc.value.substr(doc.selectionStart, doc.selectionEnd - doc.selectionStart);
doc.value = sel1 + o + sel + c + sel2;
doc.selectionStart = sel1.length + o.length;
doc.selectionEnd = doc.selectionStart + sel.length;
doc.scrollTop = ss;
};
return false;
}
setInterval(function () {
var _colorChat = gbch.getcooks('colormymesschat') || 'black';
$("div.blockGbChat").each(function () {
if ($(this).html().indexOf('' + ucodes.ru.login + '') > -1) $(this).find('.messageChatMess').css("color", _colorChat);
});
},
1000);
if (gbch.getcooks('hidechatbbcodes') == "yes") $("#bbcodesInChat").hide();
setInterval(function () {
var lr = gbch.TimeOfLastReload || 0,
_n = gbch.pagenow || 1;
if ((((new Date()).valueOf() - lr) > gbch.reloadtime) && $(".chat-block-div:visible").size() == 0) {
loadPageChat(_n);
if (gbch.getcooks('alertnewmessages') != "no") {
$("#reNewPostsChat").show();
setTimeout(function () {
$("#reNewPostsChat").fadeOut("slow");
},
2000);
}
}
},
gbch.reloadtime);


