403Webshell
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/mobile/impact_mobile/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/HostingSpaces/admin/chatme24.com/wwwroot/_frameworks/mobile/impact_mobile/js/messages.js
var CMessages = function(guid) {

    var $this=this;

    this.guid = guid;
    this.imHistoryMessages = 0;
    this.messagesCache = {};
    this.newMailFromUsers = {};
    this.blink,
    this.langParts = {};
    this.dur = 400;
    this.uidHistoryClear = 0;
    this.isShowSettings = false;
    this.wait = 4000;
    this.isAjax = {access:0, more_msg:0, send:0};
    $this.stop=0;

    /*this.init = function(){
        $this.$wnd = $(window);
        $this.$stContent = $('.st-content-inner');
        $this.updateServer = $('#update_server');


        $this.numberNewMessagesBox = $('.number_new_messages');
        $this.userMenuNewMessages = $('#user_menu_counter_messages');
        $this.$counterEventsUserMenu=$('#counter_events')
        $this.messageSettings = $('#message_settings');

    }*/

    this.prepareMsgBeforeShow = function($block){
        var $block=$block||$('.messages_msg', $this.messagesBox);
        $block.css({maxWidth:($this.$wnd.width()-(isOneChat=='general_chat'?102:140))+'px'});//160
        $this.setBannerParam();
    }

    this.prepareOneMsgBeforeShow = function($msg){
        $this.prepareMsgBeforeShow($msg.find('.messages_msg'));
    }

    this.setData = function(data){
        for (var key in data) {
           $this[key] = data[key];
        }
    }

    this.setLastId = function(lastId){
        last_id=lastId*1;
        console.log('SET LAST ID1', last_id);
    }

    this.setLastMid = function(mid){
        mid=mid*1;
        if((mid^0)!==mid||last_id>=mid)return;
        last_id=mid;
        console.log('SET LAST ID', last_id);
    }

    this.setLimitStart = function(start,stop_more,limitLoad){
        limitLoad=(limitLoad*1)||0;
        if(!limitLoad)limitStart=start*1;
        $this.stop=stop_more*1;
        //console.log('SET LIMIT GENERAL limit:',limitLoad,' limitStart:',limitStart,' stop:',$this.stop);
    }

    this.usersCacheAdd = function(uid, status){
        //console.log('USER ADD', uid, status);
        users_list[uid]=status*1;
	}

    this.usersCacheRemove = function(uid){
        delete users_list[uid];
    }

    this.inUserCache = function(uid){
        return uid in users_list;
    }

    this.messagesCacheAdd = function(uid, mid, isSp) {
		if (!$this.messagesCache[uid]) {$this.messagesCache[uid]={}}
        //console.log('MESSAGE ADD', uid, mid, isSp);
		//if ($this.messagesCache[uid][mid]) return;
		$this.messagesCache[uid][mid] = isSp*1;
	}

    this.messagesCacheRemoveByMid = function(uid, mid) {
		if (!$this.messagesCache[uid][mid]) return;
		delete $this.messagesCache[uid][mid];
	}

	this.messagesCacheRemoveByUid = function(uid) {
        if (!$this.messagesCache[uid]) return;
		delete $this.messagesCache[uid];
	}

    this.clearCacheAll = function() {
        users_list={};
        $this.messagesCache={};
    }

    /* Upgrade Menu TO -> profile.js*/
    this.$counterEventsUserMenu=false;
    this.setNumberMessages = function(counter, lastNewMessageUserId, lastNewMessageText){
        //console.log(counter, lastNewMessageUserId, lastNewMessageText, imMessagesCount);
        if ($this.$counterEventsUserMenu === false) {
            $this.$counterEventsUserMenu=$('#counter_events');
        }
        counter=counter*1;
        if($this.$counterEventsUserMenu[0]){
            $this.$counterEventsUserMenu[counter?'addClass':'removeClass']('to_show');
        }
        if(!counter)counter='';
        updateCounter('messages',counter);

		var imMessagesCountCurrent = imMessagesCount;
		imMessagesCount = counter;
		//mobileAppLoaded = true;
		if(counter && mobileAppLoaded) {
			if(counter > imMessagesCountCurrent) {
				//console.log(counter, lastNewMessageUserId);
				if(lastNewMessageUserId) {
					mobileAppNotification(lastNewMessageUserId, lastNewMessageText);
				}
				//console.log('push');
			}
		}
    }
    /* Upgrade Menu TO -> profile.js*/

    /* ONE CHAT */
    this.notMoreMsg = function(mid) {
        var mid=mid||$this.firstMsgId;
        if($('#msg_'+mid)[0]){
            $this.firstMsgId=0;
        }
	}

    this.clearChat = function(){
        console.log('CLEAR');
        appCurrentImUserId=0;
        users_list={};
        isOneChat='';
        userTo=0;
        limitStart=0;
        last_id=0;
    }

    this.initOneChat = function(user_to, url_photo, user_name, limit_start, first_msg_id, user_to_photo, user_to_name, url_page_profile_view){
        //$('#main').css({overflow:'hidden!important'});
        $('body').addClass('fixFixed');
        //$('#wrapper, #content, .message_chat').css('height', '100%');
        $this.messageTextBlH=0;
        $this.messagesCont=$('#message_cont');
        $this.$messagesBox=$('#messages_box');
        $this.$profilePic=$('#one_chat_profile_pic');
        $this.$messageTextBl=$('#message_field_chat');
        $this.$messageText=$('#message_text');
        $this.$messageText.autosize({isSetScrollHeight:false,callback:$this.prepareMessagesCont});
        appCurrentImUserId=user_to;
        $this.usersCacheAdd(user_to);
        userTo=user_to;
        limitStart=limit_start*1;
        isOneChat='one_chat';
        $this.isAjax={access:0, more_msg:0, send:0};
        $this.stop=0;
        $this.firstMsgId=first_msg_id*1;

        $this.notMoreMsg();

        $this.$loaderBox=$('#loader_box_msg');//to_hide to_show
        $this.$htmlMsgBlock=$('<div class="im_msg_one to_show"><div class="item answer">'+
                                '<div class="msg">'+
                                    '<div class="info">'+
                                        '<p><strong class="name">'+user_name+'</strong><span class="data">'+l('just_now')+'</span>'+
                                        '<span class="icon_check msg_read hide"></span>'+
                                        '</p>'+
                                        '<div class="msg_txt"></div>'+
                                    '</div>'+
                                    '<div class="pic">'+
                                        '<button title="" style="background-image: url('+url_files+url_photo+');"></button>'+
                                    '</div>'+
                                '</div>'+
                              '</div></div>');

        $this.$htmlMsgWriteBlock=
                $('<div id="msg_write" class="im_msg_one to_show left write" data-send="0" data-id="0" data-msg-user-id="'+userTo+'" data-to-user-id="'+userTo+'">'+
                    '<div class="item">'+
                        '<div class="msg">'+
                            '<div class="pic go_to_page" data-cl-loader="loader_one_chat_msg_to_profile" data-type-loader="fade_btn" data-url="'+url_page_profile_view+'?user_id='+userTo+'">'+
                                '<button id="msg_user_pic_chat_write" class="to_opacity_show" style="background-image: url('+urlFiles+user_to_photo+');"></button>'+
                            '</div>'+
                            '<div class="info">'+
                                '<p><strong class="name">'+user_to_name+'</strong></p>'+
                                '<div class="msg_txt"><span class="blink_msg">...</span></div>'+
                            '</div>'+
                        '</div>'+
                    '</div>'+
                '</div>');
        $this.$btnSend=$('#message_btn_send');
        $this.$messageText.keydown(function(e){
            if (e.which == 13){
                $this.send();
                return false;
            }
        }).focus(function(){
            //setTimeout($this.reInitToScrollChat,200)
        }).on('change propertychange input', $this.setWritingOneChat);

        $this.messagesCont.scroll(function(e){
            if (!$this.messagesCont.scrollTop()){
                $this.uploadingMsg();
            }
        });

        $win.on(getEventOrientation(), function(){setTimeout(function(){$this.prepareMessagesContResize(400)},getTimeOrientation())});
        $this.reInitToScrollChat();
        $('.message_chat').addClass('to_show',0);
        $this.$messageText.focus();

        /* Access private photo */
        $('body').on('click', '.photo_grant_access, .photo_deny_access, .go_to_albums', function(e){
            var el=$(this);
            if(el.is('.photo_grant_access') || el.is('.photo_deny_access')){
                if($this.isAjax.access)return false;
                var type='request_approved',
                    msg=l('private_photo_you_granted_access');
                if (el.is('.photo_deny_access')) {
                    type='request_declined';
                    msg=l('private_photo_request_declined');
                }
                var $block=el.closest('.im_msg_one'),mid=$block.data('id'),uid=el.data('userId');
                el.data('clLoader','loader_msg_access').addLoader();
                $this.isAjax.access=1;
                $.post(url_main+'tools_ajax.php',{cmd:'send_request_private_access',type:type,user_to:uid,mid:mid},
                    function(res){
                         if(checkDataAjax(res)){
                            $block.addClass('initial').find('.item').oneTransEnd(function(){
                                $block.find('.item').addClass('answer');
                                $block.find('.msg_txt').html(msg);
                                $block.find('.name').text(user_name);
                                $block.find('button').css('background-image','url('+url_files+url_photo+')');
                                $(this).oneTransEnd(function(){$block.removeClass('initial')}).removeClass('to_hide');
                            }).addClass('to_hide',0);
                        }
                        $this.isAjax.access=0;
                })
            } else if (el.is('.go_to_albums')) {
                getPage(el,this.href,false,true);
            }
            return false;
        })
        /* Access private photo */
        if(!checkWebrtc())$('.btn_audio_video').remove();
        $this.$messageTextBl.addClass('to_show');
    }

    this.prepareMessagesCont = function(ta,ta,height){
        var th=parseInt(ta)+16;
        if($this.messageTextBlH!=th){
            $this.messageTextBlH=th;
        }else{
            th=0;
        }
        if(th){
            /*var h=$win[0].innerHeight-th-50;
            $this.messagesCont.height(h);
            if($this.$profilePic.is('.hide')){
                h -=$this.$profilePic.outerHeight(true);
                $this.$messagesBox.css({minHeight:(h+1)});
            }*/
            $this.prepareMessagesContResize();
            //console.log(th);
        }
    }

    this.prepareMessagesContResize = function(d){
        //$this.messagesCont.height($win[0].innerHeight-$this.messageTextBlH-50);
        //console.log($this.messageTextBlH);
        $this.$messagesBox.css({paddingBottom:$this.messageTextBlH-57})
        if($this.$messageText.is(':focus')){
            if($this.sendMsg){
                $this.reInitToScrollChat();
            }else{
                $this.reInitToScrollChatAnimate(d);
            }
        }
        if($this.$profilePic.is('.hide')){
            //$this.$messagesBox.css({minHeight:($this.messagesCont.height()-19)});
            $this.$messagesBox.css({minHeight:($this.messagesCont.height()+1)});
        } else {
            $this.$messagesBox.css({minHeight:($this.messagesCont.height()-128)});
        }
    }

    this.reInitToScrollChat = function(scrollToY){
        var sc=defaultFunctionParamValue(scrollToY, $this.messagesCont[0].scrollHeight);
        //console.log('SCROLL',sc);
        $this.messagesCont[0].scrollTop=sc;
    }

    this.reInitToScrollChatAnimate = function(d, scrollToY){
        console.log('ANIMATE');
        var sc=defaultFunctionParamValue(scrollToY, $this.messagesCont[0].scrollHeight);
        $this.messagesCont.delay(1)//.animate({scrollTop:sc},d||1800)
        .animate({scrollTop:sc},d||800)
    }

    this.showMsgOne = function($msg,t,call,fnTo,cont,scrollToY){
		//!isCurUserSuperPowers&&$msg.find('.upgrade_msg').show();
		$msg.css({opacity:0, display:'none', overflow:'hidden'})[fnTo||'appendTo'](cont||$this.$messagesBox)
		.animate({opacity:1,height:'toggle'},
                 {duration:t||450,
				  specialEasing: {
					opacity: 'linear',
					//height: 'easeOutQuart'
				  },
                  step:function(h,fn){
                    $this.reInitToScrollChat(scrollToY);
                  },
                  complete:function(){
                        $this.reInitToScrollChat(scrollToY);
						if(typeof call=='function')call();
                        if(!$this.firstMsgId&&$jq('#one_chat_profile_pic').is('.hide')){
                            $jq('#one_chat_profile_pic').slideDown({
                                duration:t,
                                step:function(){
                                    $this.reInitToScrollChat(1);
                                },
                                complete:function(){
                                    $this.reInitToScrollChat(1);
                                    $jq('#one_chat_profile_pic').removeClass('hide');
                                }
                            })
                        }
                  }
        })
	}

    this.showMsgBouncein = function($msg,call,fnTo,scrollToY){
        var cont=$this.$messagesBox;
        if(!fnTo){
            fnTo='appendTo';
            var $lastWrite=$('.write',$this.$messagesBox);
            if($lastWrite[0]){
                fnTo='insertBefore';
                cont=$lastWrite;
            }
        }
        $msg.oneAnimationEnd(function(){
            if(typeof call=='function')call();
            if(!$this.firstMsgId&&$jq('#one_chat_profile_pic').is('.hide')){
                $jq('#one_chat_profile_pic').slideDown({
                    duration:300,
                        step:function(){
                            $this.reInitToScrollChat(1);
                        },
                        complete:function(){
                            $this.reInitToScrollChat(1);
                            $jq('#one_chat_profile_pic').removeClass('hide');
                        }
                })
            }
        })[fnTo](cont);
        setTimeout(function(){$this.reInitToScrollChat(scrollToY)},10);
        //$this.reInitToScrollChatAnimate(scrollToY);
    }

    this.sendMsg = false;
    this.send = function(msg){
        if($this.processUploadImage)return false;
        if (typeof msg!='string') msg=0;
        var msg=msg||$.trim($this.$messageText.val());
        if(!msg && !$this.isImageLoaded){
            $this.$messageText.val('').trigger('autosize').focus();
            return false;
        }
        var send= +new Date, $msg=$this.$htmlMsgBlock.clone();

        if($this.isImageLoaded){
            $msg.find('.msg_txt').html('<div class="mod_image_preload">...</div>' + '\n');
        }

        var $node=$msg.find('.msg_txt');
        $node[0].innerHTML +=strToHtml(msg);

		$msg.attr({'id':'msg_'+send,'data-msg-user-id':$this.guid,'data-to-user-id':userTo,'data-id':0,'data-send':send})
            .data({dataMsgUserId:$this.guid, dataToUserId:userTo, id:0, send:send});

        //$this.showMsgOne($msg);
        $this.sendMsg = true;
        $this.$messageText.val('').trigger('autosize',function(){
            $this.showMsgBouncein($msg)
        }).focus()
        $this.sendMsg = false;
        msg=emojiToHtml(msg);
        //return false;
        $.post(url_main+'messages.php?cmd=send_message&display=one_chat',
               {ajax:1,user_to:userTo,msg:msg,send:send,to_delete:0,
               image_upload:$this.isImageLoaded?1:0,ind:$this.isImageLoaded},
               function(res){
                    var data=checkDataAjax(res);
                    if(data!==false){
                        if(data=='redirect'){
                            getPage([],urlPagesSite.messages,false)
                        }else{
                            data=$($.trim(data));
                            if(!data[0]||!data[0].id)return;
                            if($('#'+data[0].id,$this.$messagesBox)[0]&&data[0].id.indexOf('system')==-1)return;

                            data.imagesLoaded(function(){
                                var dataId=data.data('id');
                                $msg.attr({'id':data[0].id,'data-id':dataId})
                                    .data('id',dataId);
                                $msg.find('.icon_check').attr('id','msg_read_'+dataId);
                                data.filter('script:not(.in_content)').appendTo('#update_server');
                                //$msg.find('.data').html(data.find('.data').html()).animate({width:'toggle',paddingRight: '5px'},{duration:200});
                                var txt=data.find('.msg_txt').html();
                                if(trim(txt)!=trim($node.html())){
                                    $node.html(txt);
                                    setTimeout(function(){
                                        $this.reInitToScrollChat();
                                    },10)

                                }
                            })
                        }
                    }
        })

        $this.clearUploadImage();

		return false;
    }

    this.setWritingOneChat = function(){
        status_writing = parseInt(new Date()/1000);
    }

    /* Upload more scroll top msg */
    function ready(){if ($this.isAjax['more_msg']) {clearTimeout($this.isAjax['more_msg']); $this.isAjax['more_msg']=0}};
    this.uploadingMsg = function(){
        if ($this.isAjax['more_msg']||!$this.firstMsgId||$this.stop) return;
        $this.$loaderBox.addClass('show');
        limitStart+=$this.imHistoryMessages;
        $this.isAjax['more_msg']=setTimeout(ready, $this.wait);
        $.post(url_main+'messages.php',{ajax:1, display:'one_chat', user_id:userTo, limit_start:limitStart}, function(res){
            $this.$loaderBox.removeClass('show');
            var data=checkDataAjax(res);
            if(data!==false){
                var data=$.trim(data);
                if(data===''){$this.stop=1;return}//$this.firstMsgId=0;
                var $html=$('<div>'+data+'</div>'), $listMsg=$html.find('.im_msg_one');
                $html.children('script:not(.in_content)').appendTo('#update_server');
                //$this.$loaderBox.oneTransEnd(function(){
                    $this.showUploadingMsg($listMsg);
                //}).removeClass('show');
            }else{
                serverError();
            }
            ready();
        });
    }

    this.showUploadingMsg = function($listMsg){
        var $msg, firstId, mid, t=600,i=$listMsg.length-1;
        firstId = $this.firstMsgId;
        (function fu(){
            if(i<0)return false;
            var item=$listMsg.eq(i);
            item.slideUp(t*=.7, function(){
                $msg=$(this);
                $msg.addClass($msg.data('msgUserId')==$this.guid?'to_show_upload':'to_show_upload left');//.hide();
                mid=$msg.data('id');
                if($this.firstMsgId==mid)$this.firstMsgId=0;
                if(!$('#msg_'+mid,$this.$messagesBox)[0]){
                    //if(t<180)t=180;
                    $this.showMsgBouncein($msg.css({animationDuration:t+'ms'}),false,'prependTo',1);
                    setTimeout(function(){i--; fu();},t)
                    //$this.showMsgOne($msg,t,function(){i--; fu();},'prependTo',false,1);
                }else{
                    i--; fu();
                }
            })
        })()
    }
    /* Upload more scroll top msg */
    /* Update server */
    this.updateOneChat = function(data){
        var $html=$('<div>'+data+'</div>');
        var $listMsg=$html.find('.im_msg_one'), $msg, $block, $appendBlock, $listMsgBlock,
            lastMsgUid, msgUid, mid, isShowMsg, t=500,i=0;
        if($listMsg[0]){
            $listMsg.imagesLoaded(function(){
                (function fu(){
                var item=$listMsg.eq(i);
                if(!item[0]){
                    $html.children('script:not(.in_content)').appendTo('#update_server');
                    return;
                }
                mid=item.data('id');
                $this.setLastMid(mid);
                if(!$('#'+item[0].id,$this.$messagesBox)[0]){
                    item.addClass(item.data('msgUserId')==$this.guid?'to_show':'to_show left')
                    .css({animationDuration:t+'ms'});
                    //console.log(item[0].id);
                    $this.showMsgBouncein(item,function(){i--; fu();});
                    t*=.9;
                    //$this.showMsgOne(item,t,function(){i++; fu();});
                }else{
                    i++; fu();
                }
                })()
            })
        }else{
            $html.children('script:not(.in_content)').appendTo('#update_server');
        }
    }

    this.setReadMsg = function(mid){
        //console.log('SET READ MSG', mid);
        var $mark=$('#msg_read_'+mid+'.hide');
        if ($mark[0]) {
            $('[data-msg-user-id='+siteGuid+'].im_msg_one .msg_read.hide').each(function(){
                var $el=$(this),id=$el.closest('.im_msg_one').data('id');
                //console.log('SET',id);
                if(id<=mid)$el.removeClass('hide');
            })
        }
    }
    /* Update server */

    this.showOriginalMessage = function($el){
        var $orig=$el.closest('.msg_original_title').next('.msg_original_text').not(':animated');
        if($orig[0]){
            var isV=$orig.is(':visible');
            $el.text(isV?l('show_original_message'):l('hide_original_message'))
            $orig.stop()[isV?'hide':'show'](250);
        }
    }
    /* ONE CHAT */

    /* Prints a message+ */
    this.updateWritingUser = function(){
        if($('.write',$this.$messagesBox)[0])return;
        $this.showMsgBouncein($this.$htmlMsgWriteBlock.clone());
    }

    this.deleteWritingUser = function(){
        var $wrBlock=$('.write',$this.$messagesBox);
        if(!$wrBlock[0])return;
        $wrBlock.animate({width:'toggle',height:'toggle'},
                 {duration:400,
                  step:function(h,fn){
                    $this.reInitToScrollChat();
                  },
                  complete:function(){
                    $this.reInitToScrollChat();
                    $wrBlock.remove();
                  }
        })
    }
    /* Prints a message+ */

    /* GENERAL CHATS */
    this.initGeneral = function(){
        $this.ajaxUpdateGeneralChat=0;
        userTo=0;
        isOneChat='general_chat';
        $this.updateServer = $('#update_server');
        $this.messagesBox = $('#messages_box');
        $this.messagesCont = $('#content').css('min-height',$win[0].innerHeight-50+1);
        $win.on('resize orientationchange', function(){
            $this.messagesCont.css('min-height',$win[0].innerHeight-50+1);
        });
        $this.$noOneFound = $('.no_one_found');
        $this.$loaderGeneral=$('#loader_general');
        $this.isAjax={access:0, more_msg:0, send:0};
        //$this.stop=0;
        $this.showLinkNoOneFound();
        $jq('#main').scroll(function(e){
            if (this.clientHeight+this.scrollTop>$this.messagesBox.height()+10){
                $this.uploadingHistoryGeneral();
            }
        })[0].scrollTop=0;

        $('body').off('mousedown touchstart').on('mousedown touchstart', '.to_one_chat .data', function(e){
            var $el=$(this);
            if($el.closest('.to_one_chat').find('.css_loader')[0])return false;
            if($('.delete', $el).is('.to_show')){
                $this.actionClear[$el[0].id]=true;
                showConfirm(l('really_delete_all_messages'),
                    function(){$this.historyClear($el); $this.actionClear[$el[0].id]=false;},
                    function(){
                        var $date=$('.info_date_bl', $el);
                        clearTimeout($date.data('action'));
                        $date.removeClass('to_hide');
                        $('.delete', $el).removeClass('to_show');
                        $this.actionClear[$el[0].id]=false;})
			}else{
                $this.showActionClear($el)
            }
			return false;
        }).off('mouseup touchend').on('mouseup touchend', '.to_one_chat .data', function(e){
            var $el=$(this);
            if($el.closest('.to_one_chat').find('.css_loader')[0]) return false;
            $this.hideActionClear($el);
            return !$('.info_date_bl', $el).is('.to_hide');
        }).off('click', '.to_one_chat').on('click', '.to_one_chat', function(e){
            var $el=$(this),$date=$el.find('.data');
            if($el.find('.css_loader')[0])return false;
            if ($('.info_date_bl', $date).is('.to_hide')||$this.actionClear[$date[0].id])return false;
            $this.toOneChat($date.data('uid'));
        }).on('click', '.im_audio_message > .im_audio_message_loader', function(e){
			var $el=$(this);
			if ($el.is('.im_audio_message_loader')) {
				playImAudioMessage($el);
			}
			return false;
        }).on('click', '.photo_grant_access, .photo_deny_access, .go_to_albums', function(e){
            var el=$(this);
            if(el.is('.photo_grant_access') || el.is('.photo_deny_access')){
                if($this.isAjax.access)return false;
                var type='request_approved',
                    msg=l('private_photo_you_granted_access');
                if (el.is('.photo_deny_access')) {
                    type='request_declined';
                    msg=l('private_photo_request_declined');
                }
                var $block=el.closest('.im_msg_one'),mid=$block.data('id'),uid=el.data('userId');
                el.data('clLoader','loader_msg_access').addLoader();
                $this.isAjax.access=1;
                $.post(url_main+'tools_ajax.php',{cmd:'send_request_private_access',type:type,user_to:uid,mid:mid},
                    function(res){
                        if(checkDataAjax(res)){
                            $block.slideUp(300, function(){
                                $block.html(msg).slideDown(300);
                            })
                        }
                        $this.isAjax.access=0;
                })
            } else if (el.is('.go_to_albums')) {
                getPage(el,this.href,false,true);
            }
            return false;
        }).on('click', '.message_menu_link, .message_info_module_menu, #main_wrap', function(e){
            var el=$(this);
			if(el.is('.message_menu_link') || el.is('.message_info_module_menu')) {
				return false;
			}

			if(el.is('#main_wrap')) {
				$this.messageMenuDeleteAll();
			}
        })
    }

    this.showPhotoUser = function(sel,urlPhoto){
        var $photoBl=$(sel);
        if($photoBl.is('to_opacity_show'))return;
        $('<img src="'+urlPhoto+'"/>').load(function(){
            $photoBl.toggleClass('to_opacity_hide to_opacity_show')
        })
    }

    this.toOneChat = function(uid){
        goToPage($('#msg_user_pic_'+uid).find('.pic_btn'), urlPagesSite.messages+'?display=one_chat&user_id='+uid)
    }

    /* No One Found */
    this.hideLinkNoOneFound = function(dur){
        if($('.to_one_chat:first', $this.messagesBox)[0]&&!$this.$noOneFound.is('.to_hide')){
            $this.$noOneFound.toggleClass('to_show to_hide');
            //$this.setBannerParam();
        }
    }

    this.showLinkNoOneFound = function(){
        if(!$('.to_one_chat:first', $this.messagesBox)[0]&&!$this.$noOneFound.is('.to_show')){
            $this.$noOneFound.removeClass('to_hide').delay(1).toggleClass('to_show',0);
            //var $banner=$('.footer_mobile_messages, .footer_mobile_paid_messages').stop().fadeOut(200);
            //$this.$noOneFound.addClass('to_show').fadeTo(0,0).css({display:'table'}).delay(200).fadeTo(400,1,function(){
                //$banner.stop().fadeIn(400);
                //$this.messagesBox.removeAttr('style');
                //$this.setBannerParam();
            //})
        }
    }

    this.setBannerParam = function(){
        var $banner=$('.footer_mobile_messages, .footer_mobile_paid_messages');
        if($banner[0]){
            if(!$('.to_one_chat:first', $this.messagesBox)[0]){
                var b=$this.$noOneFound.height()/2,
                    hd=$this.$noOneFound.find('div').height()/2;
                $banner.css({top: (b+hd)+'px', marginBottom: hd+'px'}).fadeIn(400);
            }else{
                $('.bl_message_one').height($win.height()-$banner.height()-100);
                $banner.removeAttr('style').stop().fadeIn(400);
            }
        }
    }
    /* No One Found */

    /* Clearing history */
    this.actionClear={};
    this.showActionClear = function($el){
		var $date=$('.info_date_bl', $el);
        clearTimeout($date.data('action'));
		if(!$date[0]||$date.is('to_hide'))return;
        $date.data('action',setTimeout(function(){
            $date.addClass('to_hide');
            $('.delete', $el).oneTransEnd(function(){vibrate(150)}).toggleClass('to_hide to_show',0);
        },400))
	}

    this.hideActionClear = function($el){
        var $date=$('.info_date_bl', $el);
        clearTimeout($date.data('action'));
		if(!$date[0]||!$date.is('.to_hide')||$this.actionClear[$el[0].id])return;
        $date.data('action',setTimeout(function(){
            if($this.actionClear[$el[0].id])return;
            $date.removeClass('to_hide');
            $('.delete', $el).toggleClass('to_show to_hide',0);
        },2000))
    }

    this.historyClear = function($el){
		var uid=$el.data('uid');
		$el.addLoader();
		$.post(url_main+'messages.php', {ajax:1, cmd:'clear_history_messages', user_id:uid}, function(res){
			var data=checkDataAjax(res);
			if(data){
				$this.removeGeneralImUser(uid);
                $this.uploadingHistoryGeneral(1);
			}else{
				serverError();
                $el.removeLoader();
			}
        })
        return;
    }
    /* Clearing history */
    /* Upload history */
    this.updateHistoryGeneral = function(data){
        var $data=$('<div>'+data+'</div>');
        $data.find('script:not(.in_content)').appendTo('#update_server');
        var $ims=$data.find('.im_general_user');
        if(!$ims[0]){
            $this.stop=1;
            return;
        }
        var i=0;
        (function fu(){
            var $item=$ims.eq(i);
            if($item[0]){
                var $existsIm=$('#im_'+$item.data('uid'));
                if(!$existsIm[0]){
                    $item.addClass('to_hide').appendTo($this.messagesBox).delay(10).removeClass('to_hide',0);
                    i++; fu();
                }else{
                    i++; fu();
                }
            }
        })()
    }

    this.uploadingHistoryGeneral = function(limit){
        if($this.ajaxUpdateGeneralChat&&!limit)return;
        limit=limit||0;
        var isMoreMsg=$this.isAjax.more_msg;
        if(limit)isMoreMsg=0;
        if(isMoreMsg||$this.stop)return;
        console.log('UPLOAD HISTORY GENERAL stop:', $this.stop, ' limit:', limit);
        $this.$loaderGeneral.addClass('show');
        if(limit){
            start=limitStart+$this.imHistoryMessages-limit;
        } else {
            limitStart+=$this.imHistoryMessages;
            start=limitStart;
        }
        $this.isAjax.more_msg=true;
        $.post(url_main+'messages.php',{ajax:1, user_id:userTo, limit_start:start, limit:limit}, function(res){
            $this.$loaderGeneral.removeClass('show');
            var data=checkDataAjax(res);
            if(data!==false){
                var data=$.trim(data);
                if(data===''){$this.stop=1;return}
                $this.updateHistoryGeneral(data);
            }else{
                serverError();
            }
			$this.isAjax.more_msg=false;
        })
    }
    /* Upload history */

    this.setStatusNewMessagesFromUsers = function(msgFromUsers){
        var $newMail;
        for (var uid in msgFromUsers) {
            $newMail=$('#new_mail_'+uid);
            if($newMail[0]){
                var n=Boolean(msgFromUsers[uid]*1);
                if(n!=$newMail.is('.unread'))$newMail[n?'addClass':'removeClass']('unread',0);
            }
        }
    }

    this.updateOnlineUsers = function(usersStatus){
        for (var uid in usersStatus) {
            users_list[uid]=usersStatus[uid];
            $('#im_user_status_'+uid).fadeTo(400,usersStatus[uid]);
        }
    }

    this.removeGeneralImUser = function(uid,cl){
        cl=cl||'to_hide';
        $this.messagesCacheRemoveByUid(uid);
        $this.usersCacheRemove(uid);
        $('#im_'+uid).oneTransEnd(function(){
            $(this).remove();
            if(cl=='to_hide')$this.showLinkNoOneFound();
        }).addClass(cl);
	}

    this.ajaxUpdateGeneralChat=0;
    this.removeUsersGeneralChat = function(users){
        for (var uid in users) {
            //console.log('REMOVE GENERAL IM', uid);
            $this.removeGeneralImUser(uid,'to_remove');
        }
    }

    this.setOrderUsersGeneralChat = function(users){
        for (var uid in users) {
            //console.log('SET or', uid,users[uid]);
            $('#im_'+uid).attr('data-check-order',users[uid]).data('checkOrder',users[uid]);
        }
    }

    this.checkOrderUsersGeneralChat = function(users){
        var $chats=$('.im_general_user[data-check-order!=""]',$this.messagesBox);
        if (!$chats[0]) {
            $this.ajaxUpdateGeneralChat=0;
            return;
        }
        var i=0;
        (function fu(){
            var $item=$chats.eq(i);
            if (!$item[0]){
                $this.ajaxUpdateGeneralChat=0;
                return;
            }
            var o=$item.data('checkOrder'),ro=$item.index('.im_general_user');
            $item.attr('data-check-order','').data('checkOrder','');
            //if(ro)ro--;
            //console.log('CHECK ORDER',$item[0].id,o,ro);
            if(o!=ro){
                if(!o){
                    var $eQ0=$('.im_general_user',$this.messagesBox).eq(0);
                    if ($eQ0[0]&&$item[0].id!=$eQ0[0].id) {
                        $item.oneTransEnd(function(){
                            $item.prependTo($this.messagesBox).oneTransEnd(function(){
                            }).removeClass('to_hide',0);
                            i++; fu();
                        }).addClass('to_hide',0);
                    }else{
                        i++; fu();
                    }
                }else{
                    o--;
                    var $eQo=$('.im_general_user',$this.messagesBox).eq(o);
                    if($eQo[0]&&$item[0].id!=$eQo[0].id){
                        $item.oneTransEnd(function(){
                            $item.insertAfter($eQo).oneTransEnd(function(){
                            }).removeClass('to_hide',0);
                            i++; fu();
                        }).addClass('to_hide',0);
                    }else{
                        i++; fu();
                    }
                }
            }else{
                i++; fu();
            }
        })()
    }

    this.update = function(data){
        console.log('SERVER UPDATE GENERAL CHATS',last_id,$this.ajaxUpdateGeneralChat);
        var $html=$(data);
        $html.filter('script:not(.in_content)').appendTo('#update_server');
        if(activePage != 'messages.php')return;
        //console.log($this.ajaxUpdateGeneralChat,$this.isAjax.more_msg);
        if($this.ajaxUpdateGeneralChat)return;//||$this.isAjax.more_msg
        $this.ajaxUpdateGeneralChat=1;
        $html.filter('.script').find('script:not(.in_content)').appendTo('#update_server');
        console.log('SERVER UPDATE GENERAL CHATS EXECUTE');
        setTimeout(function(){
            var $chats = $html.filter('.im_general_user').addClass('to_hide');
            if ($chats[0]) {
                var i=0;
                (function fu(){
                    var $item=$chats.eq(i);
                    if (!$item[0]){
                        $this.checkOrderUsersGeneralChat();
                        return;
                    }
                    var $im=$('#'+$item[0].id);
                    if(!$im[0]){
                        var order=$item.data('order');
                        var $itemMsg=$item.find('.im_msg_one'),
                            itemMsgId=$itemMsg.data('id');
                        //if(itemMsgId>last_id)last_id=itemMsgId;
                        $this.setLastMid(itemMsgId);
                        if(!order){
                            $item.prependTo($this.messagesBox)
                            .delay(10).oneTransEnd(function(){
                                i++; fu();
                            }).removeClass('to_hide',0);
                        }else{
                            order--;
                            $item.insertAfter($('.im_general_user').eq(order))
                            .delay(10).oneTransEnd(function(){
                                i++; fu();
                            }).removeClass('to_hide',0);
                        }
                        $this.hideLinkNoOneFound();
                    }else{
                        var $itemMsg=$item.find('.im_msg_one'), $imMsg=$im.find('.im_msg_one'),itemMsgId=$itemMsg.data('id');
                        if (itemMsgId>$imMsg.data('id')) {
                            $this.messagesCacheRemoveByMid($im.data('uid'),$imMsg.data('id'));
                            //if(itemMsgId!='block')last_id=itemMsgId;
                            $this.setLastMid(itemMsgId);
                            var dur=300;
                            $im[$item.find('.item').is('unread')?'addClass':'removeClass']('unread');
                            $im.find('.info_bl').slideUp(dur,function(){
                                $(this).html($item.find('.info_bl').html()).slideDown(dur,function(){});
                            });
                            $im.find('.info_date').slideUp(300,function(){
                                $(this).html($item.find('.info_date').html()).slideDown(dur,function(){});
                            });
                        }
                        i++; fu();
                    }
                })()
            }else{
                $this.checkOrderUsersGeneralChat();
                $this.showLinkNoOneFound();
            }
        },400)
    }
    /* Upload history */
    /* GENERAL CHATS */

    this.initLightbox = function($img) {
        if(!$img[0])return;
        var fn=function(){
        $this.maxWidthLightbox=$win.width();
        var data={
            resizeImage:   true,
            deltaWidth : 20,
            deltaWrap: 20,
            maxWidth:      $this.maxWidthLightbox,
            imageLoading:  url_tmpl+'common/lightbox/images/loader.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,
            //containerBorderSize: 8
        };
        $img.lightBox(data);
        }
        fn();
        $win.on('resize orientationchange',fn)
    }

    this.prepareStyle = function(){
        var w=$win.width()-140;
        $('#message_custom_style')[0].innerHTML=[
                "#lightbox-wrap{height:", $win.height(), "px;}",
                ".mod_im_msg_video .one_media_youtube{width:", w, "px; height:", Math.round(w/1.247), "px;}"
                ].join("");
    }

    this.checkPaydUploadImage = function() {
        if(!userAllowedFeature['upload_image_chat_paid']){
            showConfirm(l('upload_im_need_upgrade'),
            function(){
                uploadPageUpgrade([],'',true)
            })
            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=$('#field_send');
        if (reset||false) {
            if ($bl.is('.disabled')) {
                return;
            }
        }

        $bl.addClass('disabled');
        $('#pp_message_upload_img').attr('title', l('upload_image'));

        $this.processUploadImage=false;
        $this.isImageLoaded=0;
        $this.addImageIm.removeClass('to_hide');
        $this.addImageImLoader.removeChildrenLoader();
        if(userAllowedFeature['upload_image_chat_paid']){
            $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.addImageImLoader=$('#pp_message_upload_img_loader');

        $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 = l('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) {
                    showAlert(error,false,'fa-info-circle')
                    return false;
                }
                $this.processUploadImage=true;
                $this.addImageImLoader.removeClass('add_loader').addChildrenLoader();
                $this.addImageIm.addClass('to_hide').attr('title', '');

                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') {
                                    showAlert(data,false,'fa-info-circle');
                                } else {
                                    $this.isImageLoaded=indx;

                                    $('#field_send').removeClass('disabled');
                                    $('#pp_message_upload_img').attr('title', l('upload_image_delete'));
                                }
                            }
                            $this.processUploadImage = false;
                            $this.addImageIm.removeClass('to_hide');
                            $this.addImageImLoader.removeChildrenLoader();

                            //$this.send();
                        }
                    }
                };
                xhr.send(formData);
                return false;
        });
    }

	this.messageMenuShow = function(id){

		$this.messageMenuDeleteAll(id);

		var actionButton = $('#message_info_module_link_' + id);
		if(actionButton.hasClass('animating')) {
			return;
		} else {
			actionButton.addClass('animating');
		}

		var isMenuInitialized = actionButton.hasClass('initialized');

		if(!isMenuInitialized) {
			$('#message_info_module_menu').clone().prop('id', 'message_info_module_menu_' + id).appendTo('#message_info_module_' + id);
		}

		var $menu = $('#message_info_module_menu_' + id);
		$menu.click(function(){
			actionButton.click();
		});

		if(!isMenuInitialized) {

			$menu.position({
				my: 'right top',
				at: 'right bottom',
				of: actionButton,
				collision: 'flip',
				using: function(coords){
					$menu.css({'left': coords.left});
					actionButton.addClass('initialized');
					$menu.addClass('initialized');
					$this.messageMenuAnimate($menu, actionButton);
				}
				});

		} else {
			$this.messageMenuAnimate($menu, actionButton);
		}

		return false;
	}

	this.messageMenuAnimate = function($menu, actionButton){
		$menu.fadeToggle({complete: function(){
				actionButton.removeClass('animating');
			}
		});
	}

	this.messageMenuDeleteAll = function(id){

		var id = id || 0;

		$('.message_menu_link').each(function(){
			var itemId = $(this).data('id');
			if(itemId != id && ($(this).hasClass('initialized') || $(this).hasClass('animating'))) {
				$(this).removeClass('animating initialized');
				var itemMenu = $('#message_info_module_menu_' + itemId);
				if(itemMenu.length) {
					itemMenu.remove();
				}
			}
		});
	}

    $(function(){
    })
    return this;
}

function showImageIm(img) {
    var $img=$(img).addClass('to_show');
    messages.initLightbox($img.closest('a'));
}

Youez - 2016 - github.com/yon3zu
LinuXploit