| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/HostingSpaces/admin/chatme24.com/wwwroot/_frameworks/main/urban/js/ |
Upload File : |
var CMessages = function(guid, gname, request_user_id, url_tmpl_main, imHistoryMessages, notifLifetime, notifPosition) {
var $this=this;
this.guid = guid;
this.gname = gname;
this.requestUid = request_user_id;
this.urlTmplMain = url_tmpl_main;
this.imHistoryMessages = imHistoryMessages*1;
this.notifLifetime = notifLifetime*1;
this.notifPosition = notifPosition;
this.userTo = 0;
this.next_search = 0;
this.number_blocked_users = 0;
this.counter_all = 0;
this.counter_msg = {};
this.isOpenMessages = false;
this.isEnter = false;
this.langParts = {};
this.url_ajax;
this.url_main;
this.url_tmpl_main;
this.dur = 400;
this.durShowNewIm = 250;
this.isDeleteAction=false;
this.userCache = {};
this.messagesCache = {};
this.setData = function(data){
for (var key in data) {
$this[key] = data[key];
//console.log(key, $this[key]);
}
}
this.imH;
this.open = function(uid){
if (paidAccesMode == 'access_paying' && !isCurUserSuperPowers) {
alertCustom($this.langParts.to_update_profile,true,ALERT_HTML_ALERT);
return;
}
$this.preloader.hide();
var imH=getHeightIm();//$.cookie('height_im')*1;
if (imH) $('#pp_message_update > .cont').css({height:imH+112});
if (!$this.el) $this.el=$('#pp_message').modalPopup({
css:{}, shCss: {visibility:'hidden'},
wrCss:{zIndex:1000, transition:'opacity .23s linear', opacity:0, background: 'rgba(0,0,0,.3)', willChange: 'opacity'}
});
$('.message_tab', $this.el.open()).css({left:$('.show_messages').offset().left});
$this.el.data('popup').stop().delay(20).css({opacity:1});
$.post(url_ajax+'?cmd=pp_messages',{user_id:uid,is_mode_fb:isFbModeTitle},function(res){
if ($this.isOpenMessages){
var data=checkDataAjax(res);
if(data!==false){
var $data=$('<div>'+data+'</div>');
if(imH)$data.find('.name_chat .dialog').height(imH);
$('.head>*', $data).appendTo('#pp_message .head').fadeTo(0,1);
$('.cont>*', $data).appendTo('#pp_message .cont').fadeTo(0,1);
$('#pp_message .cont').delay(200).height('auto').delay(400).removeClass('preloader', 1);
//isVisibleMessages=true;
if(!imH)endResizeIm();
$this.imH=imH;
}else{
alertCustom($this.langParts.server_error_try_again,true,ALERT_HTML_ALERT);
$('#pp_message_cont').html('');
}
}
})
}
this.show = function(uid, isWall){
if (!ajax_login_status) {
window.location.href=url_main+urlPageLogin;
return;
}
if(!Profile.isAccessToSiteWithMinNumberUploadPhotos()){
return;
}
if (activePage == 'email_not_confirmed.php') {
alertCustom($this.langParts.your_account_is_temporarily_blocked,true,ALERT_HTML_ALERT);
return;
}
$this.hideAllNotifMsg();
var fn=function(){
$this.isOpenMessages=true;
$this.open(uid);
}
var $tab=$('#pp_message_tab'),
$wall=$('#wall_content'),
d=500,top=$win.scrollTop();
if((isWall||0) && $wall[0] && $wall.is(':visible')){
$tab[top?'hide':'show']();
fn();
return;
}
$tab.show();
if(top){
if(top<200){d=250
}else if(top<500){d=500
}else{d=700}
$('html, body').animate({scrollTop:0},d);
setTimeout(fn,d);
}else{fn()};
//if (uid) {fn()}
//else {$.scrollTo(0, 150, {onAfter: fn})}
return false;
}
$(window).resize(function(){
$('.message_tab', $this.el).css({left:$('.show_messages').offset().left});
})
this.setUserCacheData = function(uid,online,data){
users_list[uid]=online*1;
if (!$this.userCache[uid]) {
$this.userCache[uid]={};
}
for (var key in data) {
$this.userCache[uid][key] = data[key];
}
}
this.setUserCache = function(uid, key, value) {
if (!$this.userCache[uid]) {$this.userCache[uid]={}}
$this.userCache[uid][key] = value;
}
this.userCacheRemove = function(uid){
delete $this.userCache[uid];
delete users_list[uid];
}
this.messagesCacheAdd = function(uid, mid) {
if (!$this.messagesCache[uid]) {$this.messagesCache[uid]={}}
if ($this.messagesCache[uid][mid]) return;
$this.messagesCache[uid][mid] = mid;
}
this.messagesCacheRemoveByMid = function(uid, mid) {
if (!this.messagesCache[uid][mid]) return;
delete this.messagesCache[uid][mid];
}
this.messagesCacheRemoveByUid = function(uid) {
delete $this.messagesCache[uid];
}
/* Prints a message+ */
this.updateWritingUsers = function(writingUsers){
for (var uid in writingUsers) {
if(uid==$this.userTo){
var $listMsg=$('#pp_message_list_message_'+uid);
if (!$listMsg.find('.wr')[0]) {
var dirTmpl = dirTmplMain.substr(1, dirTmplMain.length-1),
img=$("<img style='margin-top:4px;' class='wr' src='" + dirTmpl + "images/is_writing.png'>");
$listMsg.find('.pp_message_msg_user_'+uid).last().find('.msg_check').after(img);
blink[uid]=setInterval(function(){img.animate({opacity: 'toggle'}, 600)}, 600);
}
break;
}
}
}
this.deleteWritingUsers = function(deleteWritingUsers){
for (var uid in deleteWritingUsers) {
$('#pp_message_list_message_'+uid).children('.pp_message_msg_user_'+uid)
.find('.wr').fadeOut($this.dur, function(){
clearInterval(blink[uid]);
$(this).remove();
});
}
}
/* Prints a message+ */
this.send_input = function(){
status_writing[$this.userTo] = parseInt(new Date()/1000);
}
this.reset_send = function(e){
if(isKeyPressed(e,13)==true&&$this.isEnter==true)$this.isEnter=false;
}
this.send = function(msg,uid,to_delete){//not used param!!!
var isUploadImage=false;
if (typeof msg!='string') {
msg=uid=0;
isUploadImage=$this.isImageLoaded;
}
var msg=msg||$.trim(pp_message_message.val()),
uid=uid||$this.userTo,
to_delete=to_delete||0;
if(msg!==''||to_delete||isUploadImage){
var data={user_to:uid,msg:msg,to_delete:to_delete};
if(isUploadImage){
data['image_upload']=$this.isImageLoaded?1:0;
data['ind']=$this.isImageLoaded;
}
$.post(url_ajax+'?cmd=send_message',data,
function(res){
var data=checkDataAjax(res);
if(data!==false){
if(typeof data['redirect']!='undefined'){
window.location.href=data['url']
}else{
data=$($.trim(data));
data.filter('script').appendTo('#update_server');
var $msg=data.filter('.item');
if($msg[0]){
var mid=$msg.data('msgId'),
$list=$('#pp_message_list_message_'+uid, pp_message);
if (!$('#pp_message_msg_'+mid)[0]&&$list[0]) {
//$this.setLastId(mid);
$msg.hide().appendTo($list).slideDown({step:function(){$list.scrollTop($list[0].scrollHeight)}});
}
}
}
}
})
isUploadImage&&$this.clearUploadImage();
};
if (!to_delete) pp_message_message.val('').trigger('autosize').focus();
return false;
}
this.checkExistenceMessages = function(existingMsg){//Not used - DISABLED
var existingMsg = jQuery.parseJSON(existingMsg);
for (var uid in $this.messagesCache) {
for (var mid in $this.messagesCache[uid]) {
if($.type(existingMsg[mid])!=='number'){
delete $this.messagesCache[uid][mid];
if(mid.indexOf('system')==-1){
$('#pp_message_msg_'+mid).slideUp($this.dur,function(){
$(this).remove();
})
}
}
}
}
}
this.moveImToFirst = function(uid,d){
var $im=$('#pp_im_open_user_'+uid);
if(!$im||$im.index()==0)return;
$im.oneTransEnd(function(){
pp_message_im_list.animate({scrollTop:0},350)
$im.prependTo('#pp_message_list_user_open_im').delay(d||50).removeClass('to_hide',0);
}).addClass('to_hide',0);
}
this.setLastId = function(mid){
mid=mid*1;
if((mid^0)!==mid||last_id>=mid)return;
last_id=mid;
console.log('SET LAST ID', last_id);
}
this.show_message = function(user_id, msg_id, update, muid, isSpecialDelivery){//"update" can be removed
var $userIm=$('[data-im-user-to-id = '+user_id+']'),
list=$('#pp_message_list_message_'+user_id, pp_message),
sel_msg='#pp_message_msg_'+msg_id;
if(update*1)$this.setLastId(msg_id);//??? retry last_id
isSpecialDelivery *=1;
var fnMoveToFirst=function(){
var isMy=muid==$this.guid;
if(isMy||isSpecialDelivery){
$this.moveImToFirst(user_id);
}
}
if($userIm[0]&&!list[0]){
$this.set_counter(user_id,1,1);
fnMoveToFirst();
}else if(!$userIm[0]&&!list[0]){
if(user_id in users_list)return false;
users_list[user_id]=1;
$(sel_msg,'#update_server').remove();
$.post(url_ajax+'?cmd=pp_messages',{user_id:user_id,user_current:$this.userTo,show_im:1,is_mode_fb:isFbModeTitle}, function(res){
var data=checkDataAjax(res);
if(data!==false){
var sUserIm='#pp_im_open_user_'+user_id,
sUserListMsg='#pp_message_list_message_'+user_id;
data=$(trim(data));
var $userIm=data.filter(sUserIm),
$userInfo=data.filter('#pp_message_user_to_pic_'+user_id+', #pp_message_user_to_info_'+user_id).hide(),
$userListMsg=data.filter(sUserListMsg).hide(),
$visIm=$('[id ^=pp_message_list_message_]:visible',pp_message),
fn=function(){
if(!$visIm[0]){
$this.set_im(user_id,true)
}else if(muid!=$this.guid){
$this.set_counter(user_id,$userListMsg.find('.item').length)
}
};
if(!$visIm[0]&&!$('#pp_message_user_to_info_'+user_id)[0]){
pp_message_action.before($userInfo).delay(800).fadeIn(400);
}
if(!$visIm[0]&&!$(sUserListMsg, pp_message)[0]) {
pp_message_frm.before($userListMsg);
}
if(!$(sUserIm, pp_message)[0]){
if(!$visIm[0]){
$userIm.find('.count_two').hide().text('0');
$userIm.find('.color').addClass('first_selected');
$('[data-im-user-to-id="'+$this.userTo+'"] > .color',pp_message_im_open).removeClass('first_selected');
}
$userIm.css({height:'46px',display:'none'})
[isSpecialDelivery?'prependTo':'appendTo']('#pp_message_list_user_open_im').slideDown($this.durShowNewIm,fn)
}
$('#pp_message_message').prop('disabled', false);
}else{
delete users_list[user_id];
}
});
return false;
} else if(list[0]&&!list.children(sel_msg)[0]){
var msg=$(sel_msg).hide(),title=msg.find('.tit').removeClass('blue green'),
notMy=muid!=$this.guid;
if(notMy){//"update*1" can be removed//update*1&&
msg.css({background: 'rgba(256,256,0,0.3)', transition: 'background 1s'});
list.mouseover(function hideNew(){
setTimeout("$('[id ^=pp_message_msg_]:visible').css('background', '')", 10);
$(this).off('mouseover', hideNew)
});
$this.set_counter(user_id,1,1);
}
title.addClass((notMy)?'green':'blue');//update*1&&
msg.appendTo(list).stop().slideDown({step:function(){list.scrollTop(list[0].scrollHeight)}});
fnMoveToFirst();
} else {
$(sel_msg,'#update_server').remove();
}
}
this.showOriginalMessage = function(e){
var el=$(e);
el.parent().next('.pp_message_original_text').show('slow');
el.hide();
}
// Data sets for the window
this.dialog_scroll = function(user_id, dur){
var dur=dur||1,user_id=user_id||$this.userTo;
$('#pp_message_list_message_'+user_id).scrollTo('100%',dur);
}
this.dialogScroll = function(uid){
var uid=uid||$this.userTo,
list=$('#pp_message_list_message_'+uid);
if(list[0])list.scrollTop(list[0].scrollHeight);
}
this.disabled_frm_post = function(){
var dis, pp_body=pp_message.closest('.pp_body'), top=pp_body.scrollTop();
pp_message_action=$('#pp_message_action');
if($('[data-im-user-to-id]:visible')[0]&&$this.userTo!=$this.guid){
pp_message_action.show();
dis=false;
}else{
pp_message_action.hide();
dis=true;
}
$('#pp_message_frm *').prop('disabled',dis);
pp_message_message[dis?'blur':'focus']();
pp_body.scrollTop(top);
}
this.durCounter=350;
this.set_counter = function(user_id, delta_all, delta){
var delta_all=delta_all||0,delta=delta||0,count,
pp_message_count_all=$('#pp_message_count_all'),
pp_count_msg=$('#pp_message_count_new_'+user_id),
count_im=pp_count_msg.text()*1,
count_all=pp_message_count_all.text()*1;
if(user_id==$this.userTo){
count=count_all-count_im;
pp_count_msg.stop().fadeOut($this.durCounter,function(){$(this).text('0')});
}else{
count=count_all+delta_all*1;
count_im=count_im+delta*1;
pp_count_msg.text(count_im);
if(count_im>0){
if(!pp_count_msg.is(':visible')){
pp_count_msg.css('display','none').stop().fadeIn($this.durCounter);
}
}
}
$this.set_counter_all(count);
}
this.set_counter_all = function(count,isSound){
var pageC=$('#messages_counter'),pageCv=$('#messages_counter_value'),
pageCval=pageCv.text()*1,ppC=$('#pp_message_count_all'),isSound=isSound||false;
count=count*1;
if(count>0){
if(isSound&&pageCval!=count){$this.playSound()}
ppC.text(count);
pageCv.text(count);
pageC.stop().fadeIn($this.durCounter);
}else{
ppC.text('');
pageC.stop().hide(1,function(){pageCv.text('')});
}
}
this.hide_list_msg = function(is){
$('.pp_message_user_info', pp_message).hide();
pp_message_action.hide();
if(is){$('#im_list_msg_empty', pp_message).show();}
else{$('#im_list_msg_empty_info', pp_message).show()}
$('#pp_message_frm *').prop('disabled',true).blur();
}
this.set_im = function(id, noFirstIm, isRemoveIm, moveToFirst){
var uidPrev=$this.userTo;
$ppMessageCont.removeClass('preloader', 1);
isRemoveIm=isRemoveIm||false;
$this.userTo=id;
$this.next_search=0;
$this.preloader.height(pp_message.height()).show();
$ppMessageNameChat.addClass('show_loader');
if (!(noFirstIm||0)){
var sColor = '#pp_im_open_user_'+uidPrev+' > .color, #pp_im_open_user_'+id+' > .color';
if (isRemoveIm) {
sColor = '#pp_im_open_user_'+id+' > .color';
}
$(sColor).oneTransEnd(function(){
if(moveToFirst&&$(this).closest('.pp_im_open_user')[0].id=='pp_im_open_user_'+id){
$this.moveImToFirst(id,1);
}
}).toggleClass('first_selected',0);
}
var $userInfoPrev;
var $listMsg=$('#pp_message_list_message_'+$this.userTo),
fnShowPart=function(){
$this.set_counter(id);
$userInfoPrev.css('display','none').removeClass('to_hide');
isRemoveIm&&$this.user_im_remove(uidPrev);
if($this.imH)$listMsg.height($this.imH);
$listMsg.show(0,function(){
$listMsg.scrollTop($listMsg[0].scrollHeight-1);
}).oneTransEnd(function(){
$ppMessageNameChat.removeClass('show_loader',1);
$this.preloader.hide();
$listMsg.css('opacity',1).removeClass('to_show');//.removeAttr('style');
}).addClass('to_show');
//return;
$('#pp_message_user_to_pic_'+id+', #pp_message_user_to_info_'+id).css('opacity',0)
.show().oneTransEnd(function(){
$(this).removeAttr('style').removeClass('to_show');
}).addClass('to_show')
$('#pp_message_action').show();
$('#pp_message_frm').children('input').prop('disabled',false);
$('#pp_message_message').focus();
$.post(url_server+'?cmd=activate_im',{user_current:id,is_mode_fb:isFbModeTitle});
$this.isVisibleActionBlock();
$this.disabled_frm_post();
};
if ($listMsg[0]) {
$listMsg.css('opacity',0);
$userInfoPrev=$('.pp_message_user_info:visible', pp_message);
if($userInfoPrev.eq(2)[0]){
$userInfoPrev.eq(2).oneTransEnd(fnShowPart);
}else if($userInfoPrev.eq(0)[0]){
$userInfoPrev.eq(0).oneTransEnd(fnShowPart);
}else{
fnShowPart();
}
$userInfoPrev.addClass('to_hide');
} else {
$userInfoPrev=$('.pp_message_user_info:visible', pp_message).addClass('to_hide');
$.post(url_ajax+'?cmd=pp_messages',{user_id:id,is_mode_fb:isFbModeTitle, upload_im:1},function(res){
if(!$this.isOpenMessages)return;
var data=checkDataAjax(res);
if(data!==false){
var $data=$(trim(data));
if($this.imH)$data.find('.name_chat .dialog').height($this.imH);
$('#pp_message_user_to_pic_'+id+', #pp_message_user_to_info_'+id, $data)
.hide().prependTo(pp_message_chat_info);
$listMsg=$('#pp_message_list_message_'+id, $data).css('opacity',0).hide().insertAfter(pp_message_chat_info);
setTimeout(function(){
$this.search();
fnShowPart()
},100);
}else{
!isRemoveIm&&$this.set_im(uidPrev)
alertCustom($this.langParts.server_error_try_again,true,ALERT_HTML_ALERT);
}
})
}
}
this.user_im_remove = function(user_id){
setTimeout(function(){
$('[data-im-user-to-id="'+user_id+'"]').remove();
$('#pp_message_user_to_info_'+user_id).remove();
$('#pp_message_user_to_pic_'+user_id).remove();
$('#pp_message_list_message_'+user_id).remove();
$this.messagesCacheRemoveByUid(user_id);
$this.userCacheRemove(user_id);
},10);
}
/* DELETE */
this.select_open = function(){
if($('[data-im-user-to-id]:visible',pp_message_im_open)[0]){
$this.isDeleteAction=true;
//pp_message_im_list.animate({scrollTop:0}, 200);
$('.pp_message .name').css('bottom', 0);
$('.pp_message .name .frm_search_name').addClass('hidden');
$('.pp_message .name .radio, #pp_message_delete_im').removeClass('hidden');
}
}
this.select_all = function(){
pp_message_im_open.find('.niceRadio > a').addClass('checked');
$('.delete_im',pp_message_im_open).prop('checked', true);
$this.set_count_delete();
}
this.select_none = function(){
pp_message_im_open.find('.niceRadio > a').removeClass('checked');
$('.delete_im',pp_message_im_open).prop('checked', false);
$this.frm_delete_hide();
$this.isDeleteAction=false;
}
this.set_count_delete = function(){
var count=$('.delete_im:checked',pp_message_im_open).length,
title=$this.langParts.delete_counter,dis=true;
if(count>0){
dis=false;
title=$this.langParts.delete_counter+' ('+count+')';
}
pp_message_delete_im_btn.prop('disabled',dis).val(title);
}
this.frm_delete_hide = function(){
//pp_message_im_list.animate({scrollTop:0}, 200);
$('.pp_message .name .frm_search_name').removeClass('hidden');
$('.pp_message .name .radio, #pp_message_delete_im').addClass('hidden');
pp_message_delete_im_btn.val($this.langParts.delete_counter);
$('.delete_im',pp_message_im_open).prop('checked', false);
$this.set_count_delete();
}
this.confirmDeleteSelectedIm = function(){
alertHtmlArea = '.column_main';
confirmCustom($this.langParts.clear_conversation, $this.deleteSelectedIm);
}
this.deleteSelectedIm = function(){
confirmHtmlClose();
var delete_im={},replace=0,
deleteIm=$('.delete_im:checked',pp_message_im_open).closest('.item');
deleteIm.each(function(){
delete_im[$(this).data('imUserToId')]=1;
});
replace=$('.delete_im:not(:checked)',pp_message_im_open).closest('.item').eq(0).data('imUserToId');
pp_message_delete_im_btn.prop('disabled',true);
$.post(url_ajax,{cmd:'delete_users_im',delete_im:delete_im},
function(res){
$this.isDeleteAction=false;
pp_message_delete_im_btn.prop('disabled',false);
if(checkDataAjax(res)!==false){
for (var uid in delete_im) {
$this.messagesCacheRemoveByUid(uid);
}
var t=200,i=0;
(function fu(){
var item=deleteIm.eq(i),id=item.data('imUserToId');
item.slideUp(t*=.9, function(){
if(id==$this.userTo){
if(replace){
if($('[data-im-user-to-id="'+replace+'"]:visible', pp_message_im_open)[0]){
$this.set_im(replace,false,true)
}else{
$('[data-im-user-to-id="'+replace+'"] > .color', pp_message_im_open).toggleClass('first_selected');
$this.userTo=replace;
$this.hide_list_msg(true);
}
}else{$this.hide_list_msg(false)}
}else{
$this.user_im_remove(id);
}
delete delete_im[id];
$this.userCacheRemove(id);
//delete users_list[id];
i++; fu();
})
})()
$this.frm_delete_hide();
pp_message_im_list.scrollTop(0);
}
});
}
/* DELETE */
/* Online status users+ */
this.getOneUserOnline = function(userId){
for (var uid in users_list) {
if (uid != userId && users_list[uid]) {
return uid;
}
}
return 0;
}
this.updateOnlineUsers = function(usersStatus){
for (var uid in usersStatus) {
users_list[uid]=usersStatus[uid];
$this.setOnlineUser(uid, usersStatus[uid]);
}
}
this.setOnlineUser = function(uid, status){
$('#pp_im_open_user_online_'+uid).toggleClass('online offline');
var isModeStatus=$('[data-im-status].btn_msg.active',pp_message).data('imStatus');
if(!isModeStatus){
var user=$('#pp_im_open_user_'+uid),uidOnline=$this.getOneUserOnline(uid);
if(status){
user.slideDown(250);
if(!uidOnline){$this.set_im(uid)}
}else{
user.slideUp(250,function(){
if(uidOnline){
$this.set_im(uidOnline)
}else{
$this.hide_list_msg(true)
}
})
}
}
}
/* Online status users+ */
/* ON LINE */
this.statusViewIm=1;
this.status_display = function(status){
if($('#status_view_im_'+status).is('.active'))return;
$this.statusViewImt=status;
var is=true,node=$.trim(pp_message_search_inp.val()),
fn=function(el){
var onLine=$('.online', pp_message_im_open).closest('.item'),
idCur=onLine.data('imUserToId'),msgCur,id=el.data('imUserToId');
if(node){
onLine.each(function(){
idCur=$(this).data('imUserToId'),
msgCur=$('#pp_message_list_message_'+idCur, pp_message).find('.backlight');
if(msgCur[0]){return false}else{idCur=0}
});
}
if(status&&!onLine[0]){
$this.set_im(id,($this.userTo==id));//,true
is=false;
}else if(!status){
//var id=el.data('imUserToId');
if($('#pp_message_user_to_info_'+id+':visible')[0]){
//var id=onLine.data('imUserToId');
if(idCur&&onLine[0]&&idCur!=$this.userTo){$this.set_im(idCur)}
else{$this.hide_list_msg(true)}
is=false;
}
}
};
var t=250,i=0,offLine=$('.offline', pp_message_im_open).closest('.item'),
isSearch=true,node=$.trim(pp_message_search_inp.val());
(function fu(){
var item=offLine.eq(i);
if(item[0]){
if(status){
if(node){
var msg=$('#pp_message_list_message_'+item.data('imUserToId'), pp_message).find('.backlight');
isSearch=(msg[0])?true:false;
}
if(isSearch){item.slideDown(t*=.9, function(){if(is)fn(item); i++; fu();})}
else{i++; fu();}
}else{
item.slideUp(t*=.9, function(){if(is)fn(item); i++; fu();})
}
}
})()
$('#pp_message_list_user').scrollTop(0);
$ppMessageStatusViewIm.addClass('fast').removeClass('active').delay(190).removeClass('fast', 1);
$('#status_view_im_'+status).addClass('active');
}
/* ON LINE */
/* SOUND */
this.setOptionSound = function(){
$.post(url_ajax,{cmd:'set_im_sound'},
function(res){
if(checkDataAjax(res)!==false)
$('#pp_message_sound').toggleClass('off changing').delay(1).removeClass('changing', 1);
});
}
this.playSound = function(){
playSound();
/*soundManager.setup({url: $this.url_main+'_server/js/sound/',
onready: function() {
var mySound = soundManager.createSound({
id: 'aSound',
url: $this.url_main+'_server/im_new/sounds/pop_sound_chat.mp3'
});
mySound.play();
}
});*/
}
/* SOUND */
/* ACTION */
this.confirmblockUser = function(){
$this.showActionBlock(1);
alertHtmlArea = '.column_main';
confirmCustom(ALERT_HTML_ARE_YOU_SURE, $this.blockUser);
}
this.blockUser = function(){
confirmHtmlClose();
var uid=$this.userTo;
$.post(url_ajax,{cmd:'block_user',user_id:uid},function(res){
if(checkDataAjax(res)!==false){
if($this.requestUid==uid){
alertCustomRedirect(url_main+'search_results.php',$this.langParts.user_has_been_blocked,ALERT_HTML_SUCCESS)
}
$this.number_blocked_users++;
$('#narrow_blocked_count').text($this.number_blocked_users);//user_block_list_count
var userInfo=$('#pp_im_open_user_'+uid, pp_message_im_open),
setUser=$('.pp_im_open_user:visible:not([id=pp_im_open_user_'+uid+'])', pp_message_im_open).first();
userInfo.slideUp($this.durShowNewIm*.8,function(){
if(!setUser[0]){
setUser=$('.pp_im_open_user:not([id=pp_im_open_user_'+uid+'])', pp_message_im_open).first();
if(setUser[0]){
$this.userTo=setUser.data('imUserToId');
$('#pp_im_open_user_'+$this.userTo+' > .color', pp_message_im_open).toggleClass('first_selected');
}
$this.hide_list_msg(setUser[0]);
$this.user_im_remove(uid);
}
})
if(setUser[0]){
setTimeout(function(){$this.set_im(setUser.data('imUserToId'),false,true)},100)
}
}
})
return false;
}
this.videoChatInvite = function(){
var nameTo=$("#pp_message_user_to_info_"+$this.userTo+" .title a").text();
videoChatInvite($this.userTo,nameTo,users_list[$this.userTo]);
}
this.audioChatInvite = function(){
var nameTo=$("#pp_message_user_to_info_"+$this.userTo+" .title a").text();
audioChatInvite($this.userTo,nameTo,users_list[$this.userTo]);
}
this.streetChatInvite = function(){
cityStreetChat.invite($this.userTo);
}
this.clearHistoryMessages = function(){
confirmHtmlClose();
var uid=$this.userTo,firstMid=$this.userCache[uid]['first_msg_id'];
$this.userCache[uid]['first_msg_id']=0;
$.post(url_ajax,{cmd:'clear_history_messages',user_id:uid},function(res){
if(checkDataAjax(res)!==false){
$this.messagesCacheRemoveByUid(uid);
$('#pp_message_list_message_'+uid).html('');
}else{
$this.userCache[uid]['first_msg_id']=firstMid;
//Error
}
})
return false;
}
this.confirmClearHistoryMessages = function(){
$this.showActionBlock(1);
alertHtmlArea = '.column_main';
confirmCustom(ALERT_HTML_ARE_YOU_SURE, $this.clearHistoryMessages);
}
this.showActionBlock = function(dur) {
var dur=dur||300;
if (!$('#pp_message_action_item:visible')[0]){
if($('#pp_message_list_message_'+$this.userTo).find('.item')[0]){
pp_message_action_clear.show();
pp_message_action_block.removeClass('arrow');
}else{
pp_message_action_clear.hide();
pp_message_action_block.addClass('arrow');
}
}
var w=$('#pp_message_action_item').width();
pp_message_action_item.css({left:'-'+(w+12)+'px'}).stop().animate({height:'toggle'},dur);
}
this.isVisibleActionBlock = function() {
if ($('#pp_message_action_item:visible')[0]){
$this.showActionBlock(1)
}
}
/* ACTION */
/* SEARCH */
this.search_up = function(e){
if(isKeyPressed(e,13)){
$this.search_scroll();
return false;
}else{$this.search()}
}
this.search = function(){
$this.next_search=0;
var search_im={},
node=$.trim(pp_message_search_inp.val()),
search_area=$('.pp_message_node, .gift_msg_decor_txt', pp_message);
search_area.unhighlight({className:'backlight'});
if(node){
search_area.highlight(node,{className: 'backlight'});
};
return;
/*var t=250,i=0,list=$('[id ^= pp_message_list_message_]', pp_message),isCurOnline=false;
(function fu(){
var item=list.eq(i),id=item.data('imListMsg'),
im=$('[data-im-user-to-id="'+id+'"]', pp_message_im_open),
isModeStatus=$('[data-im-status].btn_msg.active',pp_message).data('imStatus'),
is=(isModeStatus||(!isModeStatus&&im.find('.online').length));
if((item.find('.backlight')[0]||!node)&&is){
var curOnline=$('[data-im-user-to-id="'+$this.userTo+'"]', pp_message_im_open).find('.online'),
setVisisble=!curOnline[0]&&!isCurOnline&&!isModeStatus;
if(setVisisble){
$('[data-im-user-to-id="'+$this.userTo+'"] > .color', pp_message_im_open).removeClass('first_selected');
im.find('.color').addClass('first_selected');
}
im.slideDown(t*=.9, function(){
i++; fu();
if((id==$this.userTo&&!$('[id = pp_message_list_message_'+id+']:visible', pp_message)[0])
||setVisisble){
$this.set_im(id,true);
isCurOnline=true;
}
})
}else{
im.slideUp(t*=.9, function(){
i++; fu();
if(id==$this.userTo){
var set=$('[id != pp_message_list_message_'+id+']', pp_message).find('.backlight').eq(0),
setId=set.closest('.dialog').data('imListMsg'),
isSet=(isModeStatus||(!isModeStatus&&$('[data-im-user-to-id="'+setId+'"]', pp_message_im_open).find('.online').length));
if(setId&&isSet){$this.set_im(setId)}//&&is
else{$this.hide_list_msg(true)}
}
})
}
})()
setTimeout('pp_message_search_inp.focus();',400);*/
}
this.search_scroll = function(){
var list=$('[id ^= pp_message_list_message_]:visible', pp_message),
backlight=list.find('.backlight');
if(backlight[$this.next_search]){
list.scrollTo(backlight[$this.next_search]);
$this.next_search++;
}else if(backlight[0]){
$this.next_search=1;
list.scrollTo(backlight[0]);
}else{
$this.next_search=0;
}
}
/* SEARCH */
this.is_read_msg = function(mid){
var $mark=$('#pp_message_msg_check_'+mid+':hidden');
if ($mark[0]) {
$('.msg_check[data-msg-uid='+$this.guid+']:hidden', $mark.closest('.list_msg_with_user')).each(function(){
var id=$(this).data('mid');
if(id<=mid)$('#pp_message_msg_check_'+id).fadeIn($this.dur);
})
}
}
this.replaceMsgPhotoGrantAccess = function(el,msg){
el.slideUp($this.dur,function(){
var l='<a href="./search_results.php?display=profile&uid='+$this.guid+'">'+$this.gname+'</a>';
el.find('.tit').toggleClass('green blue').children('a').html(l);
el.find('.pp_message_node').html(msg);
var list=$('#pp_message_list_message_'+$this.userTo);
el.slideDown({step:function(){list.scrollTop(list[0].scrollHeight)},duration:$this.dur});
});
}
this.wait = 4000;
//function ready(uid){if ($this.userCache[uid]['ajax_more_msg']) {clearTimeout($this.userCache[uid]['ajax_more_msg']); $this.userCache[uid]['ajax_more_msg']=0}};
this.uploadingMsg = function($el){
var uid=$el.data('imListMsg');
if($this.userCache[uid]==undefined)return;
var firstMid=$this.userCache[uid]['first_msg_id'];
if($this.userCache[uid]['ajax_more_msg']||!firstMid||$('#pp_message_msg_'+firstMid)[0]) return;
$this.userCache[uid]['ajax_more_msg']=true;
var $listBox=$('#pp_message_list_message_'+uid), idLoader=+new Date+'_loader_msg',$loader;
if(!$('.loader_msg')[0]){
$loader=$('<div class="loader_msg" id="'+idLoader+'"><img src="'+$this.urlTmplMain+'/images/loader_msg.gif"/></div>');
$listBox.prepend($loader.slideDown($this.dur*.5));
}
$this.userCache[uid]['limit_start']+=$this.imHistoryMessages;
//$this.userCache[uid]['ajax_more_msg']=setTimeout(function(){ready(uid)}, $this.wait);
$.post(url_ajax+'?cmd=uploading_msg',{user_id:uid, limit_start:$this.userCache[uid]['limit_start']}, function(res){
$loader=$('.loader_msg');
if($loader[0])$loader.slideUp($this.dur*.5,function(){$(this).remove()});
var data=checkDataAjax(res);
if(data!==false){
var $data=$(trim(data));
$data.find('script').appendTo('#update_server');
var $listAllMsg=$data.filter('.list_msg_with_user'),
$listMsg=$listAllMsg.find('.item'),
firstId=$this.userCache[uid]['first_msg_id'],
msgId, t=$this.dur, i=$listMsg.length-1, $msg;
if($('#pp_message_msg_'+firstId,$listAllMsg)[0]||!$listMsg.length){
$this.userCache[uid]['ajax_more_msg']=false;
$this.userCache[uid]['first_msg_id']=0;
}
(function fu(){
if(i<0){
$this.userCache[uid]['ajax_more_msg']=false;
return false;
}
var $msg=$listMsg.eq(i);
if($msg[0]){
msgId=this.id;
if(!$('#'+msgId)[0]){
var title=$msg.find('.tit').removeClass('blue green');
title.addClass($msg.data('msgUid')!=$this.guid?'green':'blue');
$msg.hide().prependTo($listBox).stop()
.slideDown({
duration:t*=.7,
step:function(){$listBox.scrollTop(0)},
complete:function(){i--; fu();}
})
}else{
i--; fu();
}
}
})()
}else{
$this.userCache[uid]['ajax_more_msg']=false;
//Server error
}
//ready(uid);
});
}
this.hideAllNotifMsg = function(){
$('.notifications:visible:not(.remove)').addClass('remove').css({opacity:0, transition:'all .5s'})
.oneTransEnd(function(){$(this).remove()})
}
this.hideNotifMsg = function($bl){
var $vis=$('.notifications:visible:not(.remove)');
if($bl!==undefined){
if($bl.is('.remove'))return;
var css={opacity:0, height:'0px', marginBottom:'0px', marginTop:'0px', transition:'all .7s'};
if($vis.first()[0]==$bl[0]){
css={opacity:0};
}
$bl.addClass('remove').css(css).oneTransEnd(function(){$(this).remove()})
}else if($vis[0]&&$vis.length>2){
$vis.eq(0).addClass('remove').css({opacity:0}).oneTransEnd(function(){$(this).remove()})//, height:'0px'
}
}
this.showNotifMsg = function(data, t, isInfo){
var id = 'notif_new_msg'+data['id'],
avatar = data['photo'],
title = data['title'],
msg = data['text'];
isInfo=isInfo||0;
if($('#'+id)[0])return;
if(!$('#notifications_box')[0]){
var pos=9;
if($this.notifPosition=='right'){
var $main=$('.main')[0];
pos +=$main.offsetWidth-$main.clientWidth;
}
$('<div id="notifications_box"></div>').css($this.notifPosition,pos).appendTo('body');
}
$this.hideNotifMsg();
var $notifCl=$('#notifications_tmpl').clone();
$notifCl.attr('id', id);
$notifCl.find('.title').html(title);
var $text=$notifCl.find('.text').html(msg);
var $link=$notifCl.find('.title > a'),
uid=$notifCl.find('.text > div').data('uid');
$notifCl.find('.avatar').data({url:$link[0].href,uid:uid});
$notifCl.find('.notifications_show_msg').data('uid', uid);
if(!isInfo&&~$link[0].href.indexOf('#null')){
$link.click(function(){
$this.show(uid);
return false;
})
}
if(isInfo){
$text.removeClass('notifications_show_msg');
var $linkText=$text.find('a');
if($linkText[0]){
$text.click(function(){
location.href=$linkText[0].href;
})
}
}
$notifCl.find('img').attr('src',avatar);
$notifCl.appendTo('#notifications_box');
setTimeout(function(){
$('#'+id).css({opacity:1, height:'100px', marginBottom:'15px', marginTop:'-4px'})//, marginBottom:'10px'
},10);
setTimeout(function(){$this.hideNotifMsg($('#'+id));},($this.notifLifetime+t)*1000);
}
this.showNotifAllMsg = function(listMsg, isInfo){
if (activePage == 'city.php' && isSiteOptionActive('message_notifications_not_show_when_3d_city')) {//isFullScreen()
return;
}
var i=0,j=0,l=listMsg.length;
if(l)lastNewMsgId=listMsg[l-1]['id'];
(function fu(){
if(listMsg[i]!==undefined){
if(i>=(l-3)){
$this.showNotifMsg(listMsg[i], ++j, isInfo);
}
i++; fu();
}
})()
}
/* Upload image */
this.initLightbox = function($img) {
if(!$img[0])return;
var $contW=$('.cont_w');
$this.maxWidthLightbox=$contW[0]?$contW[0].offsetWidth:995;
var data={
resizeImage: true,
maxWidth: $this.maxWidthLightbox,
imageLoading: url_tmpl+'common/lightbox/images/loader_urban.gif',
imageBtnPrev: url_tmpl+'common/lightbox/images/prev.gif',
imageBtnNext: url_tmpl+'common/lightbox/images/next.gif',
imageBtnClose: url_tmpl+'common/lightbox/images/close.gif',
imageBlank: url_tmpl+'common/lightbox/images/blank.gif',
setWrap: true
};
$img.lightBox(data);
}
this.checkPaydUploadImage = function() {
if(!userAllowedFeature['upload_image_chat_paid']){
confirmHtml($this.langParts.upload_im_need_upgrade, function(){
redirectUrl(urlPagesSite.upgrade)
},ALERT_HTML_ALERT);
return true;
}
return false;
}
this.changeUploadImage = function($file) {
if($this.checkPaydUploadImage())return false;
$file.parent('form').find('input[type=submit]').click();
}
this.clickUpload = function($file) {
$file.next('input[type=reset]').click();
}
this.processUploadImage=false;
this.isImageLoaded=0;
this.clearUploadImage = function(reset,checkPayd){
if (checkPayd||false) {
if($this.checkPaydUploadImage())return;
}
var $bl=$this.addImageIm;
if (reset||false) {
if ($bl.is('.disabled')) {
return;
}
}
$bl.addClass('disabled');
$bl.attr('title', $this.langParts.upload_image);
$this.processUploadImage=false;
$this.isImageLoaded=0;
$this.addImageIm.removeClass('to_hide');
$this.clickUpload($bl.find('.pp_message_upload_img_input_file'));
}
this.initCheckPaydUploadImage = function(){
if(userAllowedFeature['upload_image_chat_paid']){
if ($this.addImageIm.is('.no_available')) {
$this.addImageIm.removeClass('no_available');
}
return false;
} else if(!$this.addImageIm.is('.no_available')) {
$this.addImageIm.addClass('no_available');
return true;
}
}
this.initAddImage = function(){
$this.addImageIm=$('#pp_message_upload_img');
$this.initCheckPaydUploadImage();
$('#pp_message_upload_img_frm').submit(function(e){
var indx=+new Date,
frm = $(this), file = frm.find('input[type=file]'),
fileName = file.attr('name'), formData = new FormData(),
error = '';
$.each(file[0].files, function(i, file){
if ("image/jpeg,image/png,image/gif".indexOf(file.type) === -1) {
error = $this.langParts['accept_file_types'];
return false;
}else if (file.size > $this.maxFileSize) {
error = $this.langParts['max_file_size'];
return false;
}
formData.append(fileName, file);
});
if (error) {
alertHtml(error, true, ALERT_HTML_ALERT);
return false;
}
$this.processUploadImage=true;
$this.addImageIm.addClass('to_hide');
var xhr = new XMLHttpRequest();
xhr.open("POST", url_ajax+'?cmd=upload_image_im&input_name='+fileName+'&ind='+indx);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if(xhr.status == 200) {
var data = xhr.responseText;
data = checkDataAjax(data);
if (data) {
if (data!='complete_upload_image') {
alertHtml(data, true, ALERT_HTML_ALERT);
} else {
$this.isImageLoaded=indx;
$this.addImageIm.removeClass('disabled')
.attr('title', $this.langParts.delete_image);
}
}
$this.processUploadImage = false;
$this.addImageIm.removeClass('to_hide');
}
}
};
xhr.send(formData);
return false;
});
}
/* Upload image */
$(function(){
$this.preloader=$('#pp_message_preloader');
$('body').on('click', '.show_messages, #pp_message_list_user_open_im > .item, #pp_message_close, .photo_grant_access, .photo_deny_access, .pp_body, .pp_message_user_info, .name_chat_info, .notifications_show_msg', function(e){
var el=$(this),target=$(e.target);
var isNotif=target.is('.notifications_show_msg');
if (isNotif||target.closest('.notifications_show_msg')[0]){
var uid=isNotif ? el.children('div').data('uid') : el.data('uid');
Messages.show(uid,1);
return false;
}
if (target.is('a#pp_message_action_current')){
$this.showActionBlock();
return false;
}
if(el.is('#pp_message_list_user_open_im > .item')){
var uid=el.data('imUserToId');
if (!$this.isDeleteAction&&uid!=$this.userTo){
$this.set_im(uid, false, false, true);
} else if(!target.is('.niceRadio > a')&&$this.isDeleteAction){
el.find('.niceRadio > a').click();
}
return false;
}
if(el.is('#pp_message_close')){
for(var uid in users_list){
$this.userCacheRemove(uid)
//delete users_list[uid]
};
$.post(url_ajax,{cmd:'delete_empty_im'});
$this.el.data('popup').fadeTo(0,0);
setTimeout(function(){
$this.el.close(0);
$('.cont, .head', '#pp_message').html('').addClass('preloader');
},420);
$this.isOpenMessages=false;
isVisibleMessages=false;
return false;
}
/* Hide Delete */
if(el.is('.pp_message_user_info') || el.is('.name_chat_info')){
if ($('#pp_message_delete_im:visible')[0]){$this.select_none()}
}
/* Hide Delete */
/* Grand Access */
if(el.is('.photo_grant_access')){
var btn=$(this);
if(btn.hasClass('ajax'))return;
var msg=btn.closest('.item'),mid=msg.data('msgId');
btn.addClass('ajax');
$.post(url_ajax,{cmd:'send_request_private_access',type:'request_approved',user_to:btn.data('userId'),mid:mid},
function(res){
if(checkDataAjax(res)){
updateCounterTitle('#narrow_private_photo_count');//my_friends_count
$this.replaceMsgPhotoGrantAccess(msg,$this.langParts.you_granted_access);
}
btn.removeClass('ajax');
})
return false;
}
if(el.is('.photo_deny_access')){
var btn=$(this);
if(btn.hasClass('ajax'))return;
var msg=btn.closest('.item'),mid=msg.data('msgId'),uid=$this.userTo;
btn.addClass('ajax');
$.post(url_ajax,{cmd:'send_request_private_access',type:'request_declined',user_to:btn.data('userId'),mid:mid},
function(res){
if(checkDataAjax(res)){
$this.replaceMsgPhotoGrantAccess(msg,$this.langParts.sorry_albums_today);
}
btn.removeClass('ajax');
})
return false;
}
/* Grand Access */
if(el.is('.pp_body')){
if (e.target==this && $('#pp_message_close:visible')[0]) $('#pp_message_close').click();
}
})
$('body').on('mouseenter mouseleave', '#pp_message_action, #pp_message_list_user_open_im > .item, .notifications_show_msg', function(e){
var el=$(this)
//if(el.is('#pp_message_action')){$this.showActionBlock()};
if(el.is('#pp_message_list_user_open_im > .item')){
//$(this).find('.color').toggleClass('selected');
//$(this).find('.nik > a').toggleClass('selected');
}
if(el.is('.notifications_show_msg')){
var color=e.type=='mouseenter'?'#ff5f23':'#6796dd';
el.children('div').css({color:color});
}
})
// wheel
$('body').on('wheel', 'div.list_msg_with_user:visible', function(e){
var el=$(this);
if(el.is('.list_msg_with_user')&&!el.scrollTop()){
$this.uploadingMsg($(this))
}
})
Messages
})
return this;
}
function showImageIm(img) {
var $img=$(img).addClass('to_show');
Messages.initLightbox($img.closest('a'));
}